본문 바로가기
728x90

전체 글423

DIP 실습 - SpreadSalt Noise / Gradation / Editing Spread Color Salt 주어진 영상(img1.jpg)에 빨강, 파랑, 초록 색의 점을 각각 설정한 개수만큼 무작위로 생성하는 프로그램을 작성하고 생성한 영상에서 빨강,파랑, 초록색의 점을 각각 카운트하는 프로그램을 작성하고 카운트 결과가 실제와 일치하는지 검증하라. 처음에는 SpreadSalt함수를 그대로 변형하여 SpreadRed, SpreadBlue, SpreadGreen함수를 만들어서 이미 색이 있는 점을 찍은 곳에 또다시 점을 찍어서 count를 했을때 원하는 숫자만큼 세지지 않는 문제가 있었다. 이를 해결하기 위해 조건문 하나를 더 넣어줘서 빨간점, 파란점, 초록점이 이미 있는 곳에는 다시 찍지 않고 그냥 넘어가되 for문을 돌리는 횟수의 기준이 되는 n을 1감소 시켜서 찍지 않은 횟수.. 2024. 4. 3.
알고리즘 설계 실습 - 트리 순환 문제 위의 문제처럼 트리를 만들고 preorder, inorder, postoder함수를 짜서 실행시켜보면되는 단순한 문제이다. 이전에 자료구조론 수업을 들을 때 C++로 몇날 몇일을 고생하면서 B트리를 설계했던 기억이 있는데 비교적 간단한 트리 순환 문제였다. import sys input = sys.stdin.readline # 입력 받기 N = int(input()) # 빈 트리 정의 tree = {} for n in range(N): root, left, right = sys.stdin.readline().strip().split() tree[root] = [left, right] # preorder def preorder(root): if root != '.': print(root, end=''.. 2024. 4. 3.
Digital Image Processing - Denoising / Filter / Edge Detection Denoise 노이즈를 제거하는 과정을 denoise라고 하는데 우선 noise에 대서 알아보자. 다양한 노이즈의 종류가 있지만 대표적인 노이즈들을 한번 살펴보자. Salt-and-pepper noise: 흑백 픽셀의 무작위 발생이다. Impuse noise: 백색 픽셀의 무작위 발생이다. Gaussian noise: 가우시안 정규분포를 따르는 노이즈로 자연발생한 노이즈들이 자연적인 분포를 따르며 발생하는 노이즈이다. Gaussian noise를 Gaussian filter로 denoising하면 아래와 같이 standard한 denoising과정이 진행된다. 그러나 아래와 같은 Salt-and-pepper noise를 gaussian filter로 denoise를 하려하면 잘 진행이 되지 않는다. 다양.. 2024. 4. 3.
[논문 리뷰]Asymmetric Student-Teacher Networks for Industrial Anomaly Detection(2) Problem 이제 본격적으로 방법론과 모델의 구조에 대해서 살펴볼텐데 그에 앞서서 이러한 새로운 방법론이 나온 이유를 살펴보자. 기존의 Image anomaly detection 방법론들은 크게 아래의 세가지 문제점이 있었다. 1. Teacher-Student 대칭적 구조로 인한 Undesired Generalization 2. OOD input not OOD output 3. Perfect density models cannot guarantee anomaly detection. 하나씩 살펴보자. Teacher-Student 대칭적 구조로 인한 Undesired Generalization Teacher-Student 구조의 Anomaly Detection은 Teacher와 Student 의 outpu.. 2024. 4. 1.
Softmax classifier Intro 인공지능 응용 수업을 수강하고 있는데 사실 인공지능 기초는 다양한 공개 강의들을 통해서 공부했고 몇몇 프로젝트도 진행했기에 아주 가법게 생각하고 듣기 시작했다. 그러나 생각보다 기초적인 부분에서 수식 증명과 같은 세부사항들에서 잊은 내용들이 있어서 기초를 다시 돌아보기 좋다는 생각이들어 블로그 정리도 간간히 하려고 한다. Express as Probability 추론의 결과를 0부터 1까지의 확률로 표현하기 위해서 sigmoid함수가 사용될 수 있다. Sigmoid함수를 미분하면 위와 같이 계산된다. 이를 간단하게 표현하면 P'=P(1-P)가 된다. Sigmoid함수를 이용하여 미분된 sigmoid 함수를 표현할 수 있는 것이다. 또한 P가 0 또는 1의 극단으로 갈 수록 미분의 결과는 0에 .. 2024. 3. 31.
[논문 리뷰]Asymmetric Student-Teacher Networks for Industrial Anomaly Detection(1) Intro 다른 Knowledge distillation 기반의 Anomaly Detection과 마찬가지로 Teacher-Student 구조로 Anomaly Detection를 수행한다. Student의 undesired Generalization 문제를 해결하기 위해 Teacher-Student 간 비대칭 구조 제안한다. OOD input에 대해 민감하게 반응할 수 있도록 Teacher 모델로 Normalizing flow를 사용한다. 2D RGB 데이터 뿐만 아니라 3D data까지 Anomaly Detection을 확장할 수 있다. Background Image Anomaly Detection은 Input 이미지 내 이상치 포함 여부를 판단하는 Task로 크게 Image-level, Pixel-l.. 2024. 3. 31.
알고리즘 설계 실습 - k번째 교환(heap sort) 문제 N개의 양의 정수가 저장된 배열 A가 있습니다. 아래 의사 코드 (pseudo-code)를 사용한 힙 정렬 로 배열 A를 정렬할 경우 K 번째 교환되는 수와 K 번 교환된 직후의 배열 A의 모든 원소를 출력 해 보세요. N개의 양의 정수가 저장된 배열에 대한 힙 정렬 의사 코드는 아래와 같습니다. heap_sort(A[1..n]) { # A[1..n]을 정렬한다. build_min_heap(A, n); for i 2024. 3. 30.
Digital Image Processing - Filtering in Spatial Domain Convolution 선현대수학 수업을 정리할 때도 기록했었고 CNN부터 시작해서 이미지를 처리하는 다양한 딥러닝 논문들을 공부할때 Convolution layer가 없는 논문을 찾기가 힘들 정도기 때문에 많이 다뤄봤으니 간단하게만 살펴보자. 우선 아래는 1D Convolution이다. 한 함수를 뒤집어서 이동시키며 겹치는 부분의 넓이를 구하는 개념이고 적분식은 바로 아래처럼 표현된다. 이를 확장한 2D Convolution이 본격적으로 이미지 처리를 위해 쓰이는 filter에서 사용되는 연산이다. 아까 봤던 개념처럼 filter인 g를 뒤집어서 겹쳐서 연산을 하는 과정이다. 참고로 f는 source image라고 보면 된다. 이런 뒤집는 관점이 마음에 안들면 아래와 같이 Correlation Filte.. 2024. 3. 29.
[논문리뷰] Deep Learning for Anomaly Detection: A Review Introduction Anomaly Detection을 위한 Deep Learning 알고리즘들에 대한 survey논문으로 anomaly detection에 대해서 전반적인 내용을 한번 다루기에 적합하다고 느꼈다. DBSA 연구실 세미나 영상을 참고하여 도움을 받으며 논문을 읽었다. 매번 어려운 논문을 쉽게 설명해줘서 유튜브 영상을 보고 논문을 함께 보면 이해가 훨씬 빨라져서 감사할 따름이다. 우선 이상치 탐지이란 Data중 정상과 불량을 구분하여 불량(이상)을 감지하고 식별하는 방법론이다. 이때 대다수의 데이터와 다른 특성을 가지는 데이터를 이상치라고 말한다. Anomaly detection은 아래와 같은 다양한 분야에서 쓰인다. Background 이상치 종류는 3가지 정도의 기준에 따라 분류될 수.. 2024. 3. 28.
Digital Image Processing - Pixel Processing / 히스토그램 Pixel processing example Image negatives: 픽셀 값을 최대값에서 뺀다. 밝은 영역이 어둡게, 어두운 영역이 밝게 변한다. 공식:s = T(r) = L-1-r Log transform: 픽셀 값을 로그 함수에 적용한다. 어두운 영역의 명암 대비가 증가하고 밝은 영역은 덜 변한다. 공식: s = T(r) = clog(1+r) Contrast Stretching: 픽셀 값을 일정한 범위에 매핑하여 명암 대비를 조절한다. 어두운 영역을 더 어둡게, 밝은 영역을 더 밝게 만들 수 있다. Color transform: 색조, 채도, 명도를 조절하여 영상의 색상을 변환한다. 다양한 색상 효과를 만들 수 있다. Gamma correction: 영상의 밝기 비선형성을 보정한다. 어둡거나 .. 2024. 3. 26.
Algorithm Design - Parallel Sorting Algorithm / 바이토닉 정렬 / 홀짝 정렬 CPU vs GPUGPU는 CPU와 다르게 수천 수만개의 코어가 존재하여 hardware multithreading이나 SIMD(Single Input, Multiple Data)과 같은 병렬처리에서 강력한 모습을 보인다.CPU는 큰 캐시를 갖고 있어서  긴 대기 시간 메모리 액세스를 짧은 대기 시간 캐시 액세스로 변환하는 능력이 있다. 고도화된 제어능력이 있어서 분기 지연 시간 감소를 위한 분기 예측능력과 데이터 지연 시간 단축을 위한 데이터 포워딩도 할 수 있다. 또한 강력한 ALU로 작업 지연 시간을 단축한다.GPU는 작은 캐시가 특징이다. 메모리 처리량을 높이기 위한 것이다. 분기 예측이나 데이터 포워딩이 없다. 에너지 효율이 높은 ALU가 있어서 지연 시간이 길지만 높은 처리량을 위.. 2024. 3. 26.
Algorithm Design - 셸 정렬 / 퀵 정렬 / 힙 정렬 / 계수 정렬 / 기수 정렬 Shell Sort 셸 정렬(Shell Sort)은 삽입 정렬을 개선한 버전으로, 1959년 도널드 셸(Donald Shell)에 의해 발표되었다. 삽입 정렬이 이웃하는 요소들과의 비교만을 수행하는 반면, 셸 정렬은 떨어진 요소들과의 비교를 통해 더 빠른 정렬을 가능하게 한다. Stable하고 In-place정렬법이라는 장점이 있다. 우선 정렬 과정을 직접 보자. 정렬과정에서 볼 수 있듯이 셸 정렬에서는 '간격(gap)'이라는 개념을 사용하여, 간격만큼 떨어진 요소들을 서로 비교하고 정렬한다. 초기 간격은 보통 배열 크기의 절반으로 설정하고, 각 단계마다 간격을 줄여나간다. 설정된 간격에 따라 배열을 여러 부분 리스트로 나누고, 각 부분 리스트에 대해 독립적으로 삽입 정렬을 수행한다. 간격을 줄여가며 위.. 2024. 3. 22.
728x90