본 포스팅은 충남대 고영준 교수님의 강의자료를 바탕으로 작성한 글입니다. 각도가 다르게 찍힌 사진에서 같은 부분을 나타내는 keypoint들을 찾고 이들을 연결시키는 문제이다.A, B 사진에서 keypoint를 패치를 이용해서 찾는다고 했을 때, A사진의 패치의 히스토그램과 B사진 패치의 히스토그램간 차이가 0이 되면 이상적이다.한 사진에 대해 특징점이 될 수 있는 key point는 여러 개가 있는데, 그 중 매칭되는 것을 어떻게 찾느냐? Feature Matching Algorithm( I1이 주어졌을 때, I2에서의 가장 좋은 매치는?)1. 두 descriptor를 비교하기 위한 거리 함수를 정의한다. (코사인, 유클리드, L2-norm 등.. 뭘 쓸지) 2. 가장 가까운 이웃을 찾는다. - 우선..
본 포스팅은 충남대 고영준 교수님의 강의자료를 바탕으로 작성한 글입니다. 오늘은 다들 아는 '파노라마'에 대해 알아볼 것이다.옆으로 길게 찍는 사진 말이다. 그런 사진을 어떻게 만들 수 있을까?파노라마를 찍을 때도 보면 손이 어쩔 수 없이 흔들리게 될 텐데 그 사진이 웬만해선 잘 이어져있다. 어떻게?! 이어 붙이기?정말 간단한 방법이다. 모두가 생각해낼 수 있을 것이다.이 방법도 물론 가능하다. 정확히 수평으로, 경계를 맞춰서 찍는다면 말이다.그렇게 찍기는 당연히 어렵다.. 그럼 이제 (완벽하지 않은) 여러 이미지를 이어붙일 때 필요한 것이 무엇인지 생각해보겠다. 1. 같은 곳을 찾는다. 각 픽셀이 어디에 위치해있는지 찾는 것!2. 이미지가 어긋나있을 텐데, 그걸 어떻게 정렬할지 찾는다. 기하학적..
기하학적 변형으로 이미지의 형태를 바꿀 것임! p' = T(p) 라고 표현할 수 있는데, p'가 결과 이미지, p가 원본 이미지이다.T is global 이라고 하는 말은, 모든 픽셀에 동일하게 T가 적용됐다는 의미이다.여기서 p와 p'의 값은 다르지만 담고 있는 내용은 같다.[ x' T [ x y' ] = y ] 이 warping의 종류는, - translation - rotation - aspect - scale - affine 어떻게 작용하냐면,[ x' = [ a 0 ] [ x y' ] [ 0 b ] y ]이렇게 되는데, 여기 곱해진 저 2*2 행렬이 scaling matrix라고 불림. 예를 들어, a, b 각각 2씩 넣어주면 2x, 2y가 되기에 각 ..
이미지 파일들이 크니깐.. 저장을 위해서는 잘 표현해야 함.두 가지 표현 방법이 있는데,Lossless 표현은 모든 정보를 표현하는 거고,Lossy 표현은 약간의 정보는 잃는 것임. Huffman Coding자주 쓰이는 정보의 신호 길이를 짧게 하자.빈도수 결정하고, 가장 빈도 낮은 애들부터 두 개씩 묶어서 이진트리 만들고, 각 branch마다 0/1 부과 Run-length Encoding예시 binary image : 011000111001011110100011 ex1) 무조건 0의 개수로 시작123/0321/141/0132 ex2) 1이 어느 위치에 몇 번 있는지22/1361/24/1152 JPEG AlgorithmTransform coding - frequency domain approachin..
이미지 하락을 막음.. 예를 들어 노이즈, 초점안잡힘, 흔들린 이미지 등..만약 그런 이미지 g(x, y)가 주어졌다면, 우리는 f(x, y)를 구하고 싶은데, 이 g(x, y)는g(x, y) = h(x, y) * f(x, y) + n(x, y) 이렇게 된다.이 n(x, y) : 더해지는 노이즈값, h(x, y) : blur 되는 filter Noise 타입 - salt and pepper noise - gaussian noise - speckle noise - periodic noise 우선, 저 blur filter를 1이라고 생각하고 식을 다시 생각해보면g(x, y) = f(x, y) + n(x, y)이다. 1. Salt and Pepper noise날카롭고, 여기저기 그냥 뜬금없이 있다.하양이나 ..
segmentation method - K-means clustering - Mean shift - Normalized_cut - Graph cut - Random_walk - Markov random field (MRF) optimization Semantic segmentation : 이미지를 분류대로 색으로 나눠서 새로운 그림으로 나타냄. 차는 다 차로, 사람은 다 사람으로..Instance segmentation : 그림 위에 인식된 사물들을 색깔로 덮어서 객체별로 표현. 배경은 따로 인식하지 않음Panoptic segmentation : 위 두 개를 합친 건데, 배경까지 전부 다 나누는데(배경들은 따로 나누지 않음. 예를 들어 나무는 그냥 다 나무), 객체는 따로 분리. ex)사람1, 사람2, ..
Binary image : threshold 정해서 그 값보다 크면 흰색, 작으면 검정색으로 정함 Neighborhoods4-neighborhood : 양, 옆, 위, 아래 이렇게 네 방향으로 갈 수 있음. 8-neighborhood : 4-neighborhood연산에, 대각선 방향까지 합함.24-neighborhood : 만약.. 한 칸 정도 물리적으로 떨어져있어도, 그냥 연결됐다고 봄.. connected component : 연결 가능한 모든 원소를 포함하는 배열.connected component labeling : 연결된 애들끼리는 같은 분류로. Morphology 방식들1. TranslationB는 이진 이미지의 픽셀 집합인데, 벡터인 t = (u, v)에 따라 그 이진 이미지 B를 움직이는 ..
윤곽선 추출해내기! 윤곽선이 머냐? pixel을 봤을 때, 날카롭게 각진 애들이다.이걸 어떻게 찾아내지?이미지의 픽셀값을 그래프로 나타냈을 때, 값이 급격히 변하는 부분이 있다. 근데 이걸 정확히 구하려면?한 번 미분하면, 그 변하는 구간에서 극값이 발생함. 이거로 윤곽선 찾기 가능. 근데.. 이 이미지를 어떻게 미분할 것이냐.. 그건 너무 복잡하잖아잘 생각해보면, 미분은 어떤 식이냐면, 원랜 이런 식임. 근데 얠 좀만 더 변형해보면, 이렇게 쓰기도 함. 그렇담 이 식에서, 만약 h에 2를 넣는다면? 이렇게 됩니당. 근데 이걸 벡터의 곱으로 표현할 수 있단 사실.. 어떻게냐면, 이제 x, x-1, x+1값이 있음. 그럼 이 좌표들의 값은 각각 f(x), f(x-1), f(x+1)일 것임.순서대로 ..