본문 바로가기

728x90

ComputerScience/ImageProcessing

(25)
Computer Vision - Corner Detection 1. Corner Detection - 위의 5가지 요구조건을 만족시키기 위해서 코너검출기는 시대에 따라 발전해왔다. - sliding window를 사용한다. - edge를 탐색했던 알고리즘은 한 방향으로의 intensity 차이에 주목했지만 corner는 any direction에서 intensity차이를 주목한다. - "edge"의 경우 윈도우를 위아래로 shift시켰을때 intensity차이는 없고 좌우로 sift시켰을때 intensity차이가 크다. - "corner"의 경우 모든 방향에서 shift시켰을때 intensity차이가 크다. - 이렇게 corner라고 판정하자는 관점을 Moravec이라는 분이 초창기에 제안했다. - 마스크를 u,v만큼 shift한 결과와 원본 마스크의 차이를 구한다..
Computer Vision - Correspondence (Template Matching) 1. Template Matching - 원본 영상에서 노랑 패치와 동일한 부분을 찾으려고 한다. - 노랑 patch를 sliding시켜서 convolution하다보면 일치하는 부분이 더도드라져 보인다. - 픽셀값들이 유사할수록 곱하고 더했을때(convolution) 결과로 더 큰 값이 나오기 때문이다. - 즉 little picture mask를 가지고 sliding하며 convolution시키면 같은 부분을 찾아낼 수 있다. - 이런걸 일치문제라고 한다. - 좌 우 서로 다른 사진이지만 동일한 물체를 담고 있다. - 템플릿 매칭으로 이 두 사진에서 동일한 지점을 찾는 것이다. - 왼쪽의 red box와 일치하는 green box는 누구인지 찾는다고 해보자. - Correlation-based algo..
Computer Vision - Spatial filtering (Several Filters) 1. 2D filter - delta 필터이후에 결과에 추가로 값을 더하고 싶을때 사용한다. (보통은 0) - bordertype은 이미지의 경계에 있는 픽셀에 대해서 convolution을 수행하고자하면 이미지 밖은 값이 없기 때문에 필터가 어떻게 계산을 수행할 것이냐를 말한다. 앵커포인트와 동일할 값을 채워서 계산할수도 있고 이미지를 반전시켰을때 값으로 채워서 사용할수도 있다. - 평균 필터를 사용하는 이유는 convolution이후 영상의 밝기가 밝아지지 않도록 normalize하기 위해서다. (곱하기 연산을 해서 모두 더하면 값이 커지니까 평균내서 다시 작게 만들어야 함) 2. sepFilter - seperate filter는 2D convolution 연산을 x방향으로, y방향으로 분리해서 계..
Computer Vision - Spatial filtering (Convolution) 1. edge - 엣지는 왜 생길까? 깊이가 불연속적인 지점, surface normal 벡터와 빛이 오는 방향이 수직인 지점 등 다양한 이유로 윤곽선이 생긴다. - 영상처리에서는 image intensity의 급격한 변화가 있는 지점을 edge로 판단한다. - 빨간선을 따라가며 픽셀의 intensity를 조사해보면 edge부분에서 급격한 intensity차이가 보인다. 저 곡선의 derivative가 클수록 변화가 더 크다고 볼 수 있고 edge에 유력해진다. - first derivative의 극점이 edge일 확률이 제일 높다. 근데 일차 도함수에서 극점을 찾기가 어려우니 한 번 더 미분한다. 2차 도함수에서 함수값이 0인 부분이 1차 도합수의 극점이기 때문이다. (zero crossing 포인트 ..
Computer Vision - Homogenous Coordinate - 3차원 물체를 2D로 사영시킬때 차원이 축소된다. 카메라 좌표를 옮길때마다 3차원 물체를 다각도에서 2D화면으로 투영시킬 수 있다. - conversion을 할때 우리는 homogeneous coordinates를 사용한다. - 즉 동차좌표계에서 (x,y)는 (x,y,1), (2x, 2y, 2)랑 동일하다. (한 점으로 대응 되는것이 아니라 직선으로 대응) - 이렇게 Homogeneous coordinate를 도입하면 행렬의 곱셈만으로 3차원 물체를 transform, 2D화면에 투영시킬 수 있다. - 즉 위의 예시에서는 실세계의 삼차원 좌표 (x,y,z)를 (fx/z, fy/z) 점으로 사영시켰다. - 3차원 물체의 projection은 위와 같이 표현된다. 아래 예시를 보면 쉽게 이해할수 있다. ..
Computer Vision - Camera Model - 고전적인 pinhole camera는 구멍의 크기에 따라 블러효과가 일어난다. 따라서 렌즈를 사용함으로써 빛을 모아 선명한 이미지를 만들게 되었다. - aperture(조리개)에 따른 선명도 차이이다. - 하지만 aperture를 작게 한다고 반드시 선명해지는 것은 아니다. 빛이 회절하는 성질때문에 오히려 흐린 이미지를 얻을 수 있다. - 핀홀 카메라는 한 지점에서 반사된 모든 빛 중 핀홀을 통과하는 빛만 film에 맺히지만 이렇게 렌즈를 사용하면 반사되는 모든 빛을 한 점으로 모을 수 있다. - 렌즈를 통과한 모든 빛들이 한 곳에 모이는 지점을 초점이라고 하고 그 거리가 focal length이다. - 빛을 모아주는 lense, 빛의 에너지를 조절하는 aperture를 통과한 빛이 image sen..
영상처리 - 11. Histogram matching(Specification) 지난 시간에는 histogram equalization을 배웠다. 이번에는 이를 활용한 histogram specification을 배워보자. histogram matching이라고도 부른다. 원본 이미지의 histogram을 내가 원하는 histogram으로 specify하고 싶을 때 활용가능하다. 아래 천천히 방법을 따라가 보자. 1. 입력 영상 Equalization 첫번째로 입력 영상의 histogram을 생성한다. 그다음 원본(입력) 영상의 equalizaion을 수행한다. 2. 원하는 영상 equalization 이제 내가 원하는 히스토그램을 equalization한다. 이 히스토그램을 역평활화 한다. (inverse) 이렇게 만들어진 역평활화 값을 look-up table이라고 한다. *역 ..
영상처리 - 10. Histogram Equealization Histogram Equealization은 원본 이미지를 cumulative histogram으로 바꾼다음 normalization을 거쳐서 uniformly distributed histogram이 되도록 하는 것을 말한다. 첫번재로 히스토그램을 만든다. 그 다음 누적분포로 히스토그램을 변환한다. sum * 최대 intensity(7) / numOfPixels(16)하여 normalize한다. 반올림하여 새로운 new intensity를 구하면 다음과 같다. 0 -> 0, 1 -> 1, 2 -> 2, 3 -> 5, 4 -> 7, 5 -> 7, 6 -> 7, 7 -> 7, 이 원본이미지의 intensity를 위의 lookup table을 보고 변환한다. 이렇게 하면 이미지의 histogram을 넓게 분..

728x90