반응형

Program/OPEN_CV 80

[Open CV] 특징점검출과매칭 _ 실전코딩 ( AR비디오 플레이어 )

2022.06.26 금일은 실전코딩 AR 비디오 플레이어에 관한 강의였다. AR 비디오 플레이어 - 카메라 프레임에 특정 영상이 나타나면 해당 위치에 동영상을 재생하는 기능 - 위 영상처럼 하나의 동영상 파일을 카메라 인풋을 받아 인풋 사이즈에 맞춰 리사이즈해주고 인풋에 합성해서 재생시키는 플레이어를 만든다. 구현할 기능 - 기준 영상과 카메라 프레임 사이의 특징점 검출 및 매칭 - 호모그래피 계산 - 동영상 프레임 투시 변환 & 합성 구현 방법 - 내가 설정해 놓은 Reference Image를 카메라 입력 프레임에서 찾는 ( 매칭점 ) 과정이 필요 한데 이 과정에서 Homograpy 를 계산한다. 그리고 합성할 영상에 Homograpy 를 적용시켜 Warping 을 시켜주어 실제 합성을 시킨다. 이론..

Program/OPEN_CV 2022.06.25

[Open CV] 특징점검출과매칭 _ 이미지 스티칭

2022.06.25 금일은 이미지 스티칭에 관한 강의였다. 특징점 검출과 매칭 영상의 응용기법 중 하나인 이미지 스티칭에 대해서 알아본다. 이미지 스티칭 ( Image Stitching ) 이란? - 동일 장면의 사진을 자연스럽게 ( seamless ) 붙여서 한 장의 사진으로 만드는 기술 - 사진 이어 붙이기, 파노라마 영상 ( Panorama Image ) 여러장의 사진들에서 특징점을 여러개 검출하고 특징점들이 서로 겹치는 것들을 찾아서 두장의 영상과의 Perspective Transform 관계를 찾아내서 이어 붙이는 기법이다. 위 영상을 보게되면 하늘 부분에는 특징점들이 잘 잡히지 않는데 산이 있는 곳에는 엣지들이 많아서 특징점들이 많이 잡히는 것을 볼 수 있다. 그래서 두 산에서 공통으로 매칭된..

Program/OPEN_CV 2022.06.24

[Open CV] 특징점 검출과 매칭 _ 호모그래피와 영상매칭

2022.06.24 금일은 호모그래피와 영상 매칭에 관한 강의였다. 지난시간에 계산했던 특징점 매칭을 이용해서 호모그래피를 진행하고 영상 전체를 매칭하는 방법을 알아본다. 호모그래피 ( Homography ) 란? - 두 평면 사이의 투시 변환 ( Perspective transform ) 바닥에 사진이 있는데 이 사진을 v1이라는 지점에서 카메라로 사진을 촬영하고 촬영 결과를 i1이라고 한다. 그럼 비스듬한 상태로 촬영을 했기때문에 비스듬하게 찍혔을것이다. 이때 원래 사진과 기울어지고 비스듬하게 찍힌 사진과의 관계를 표현하는 것을 호모그래피라고 한다. ( H1 , H2 ) * 촬영된 i1 과 i2도 호모그래피 관계가 생긴다. ( i1 -> i2 ) 호모그래피는 기본적으로 투시변환과 거의 유사한데 따라서..

Program/OPEN_CV 2022.06.23

[Open CV] 특징점 검출과 매칭 _ 좋은 매칭 선별

2022.06.23 금일은 좋은매칭 선별에 관한 강의였다. 두개의 영상에서 검출한 특징점으로 매칭한 후에 좋은 매칭들만 선별하는 방법에 대해서 알아본다. 좋은 매칭 선별 방법 #1 - 가장 좋은 매칭 결과에서 distance 값이 작은 것 N개를 사용 - cv2.DMatch.distance 값을 기준으로 정렬 후 상위 N개 선택 ( 유사도가 높다라는 것은 2개의 특징벡터의 distance 값이 작다라고 볼 수 있다. 따라서 해당 distance가 작은 것을 기준으로 몇가지만 골라내면 좋은 매칭이라고 할 수 있다. ) 위 해당하는 특징점은 실수형 기술자이고 가장 기본적인 매칭결과를 matches 라는 결과로 받은 이후 ( matches 는 dmatch라는 클래스 객체를 리스트로 갖고있는 형태 ) match..

Program/OPEN_CV 2022.06.22

[Open CV] 특징점 검출과 매칭 _ 특징점 매칭

2022.06.22 금일은 특징점 매칭에 관한 강의였다. 2개 영상에서 검출한 특징점을 매칭 하는 방법 특징점 매칭 ( feature point matching ) - 두 영상에서 추출한 특징점 기술자를 비교하여 서로 유사한 기술자를 찾는 작업 - 결국 특징점 검출과 매칭은 두장의 영상을 비교하여 얼마나 유사한지를 찾는 작업이라고 생각이 든다. - 왼쪽 영상에서 4개의 특징점을 검출하였고, 오른쪽 영상에서는 3개의 특징점만 검출하였다. 그럼 각각의 점에서 근방에 있는 부분 영상을 추출하고 특징 벡터를 추출한다. ( 특징벡터는 실수 형태의 기술자일 수도 이진 형태의 기술자일 수도 있다. ) 왼쪽의 #3번 같은 경우에는 오른쪽 특징점과 매칭이 될 부분이 하나도 없지만 실제로 매칭을 시켜보면 알고리즘 내부에서..

Program/OPEN_CV 2022.06.22

[Open CV] 특징점 검출과 매칭 _ 특징점 기술

2022.06.21 금일은 특징점 검출과 매칭 특징점기술에 관한 강의였다. 기술자 - 특징점 근방의 부분 영상을 표현하는 실수 또는 이진 벡터 - OpenCV에서는 2차원 행렬 ( numpy.ndarray ) 로 표현 행 개수 : 특징점 개수 / 열 개수 : 특징점 기술사 알고리즘에 의해 정의됨 실수 기술자 : numpy.float32 / 이진 기술자 : numpy.int8 - 한열당 float32고 따라서 4byte 짜리 실수값이라고 볼 수 있다. 그러면 총 64열이기 때문에 특징점 하나에 256 Byte 가 사용됨 실수 기술자 - 주로 특징점 부근 부분 영상의 방향 히스토그램을 사용 - SIFT 방법을 그림으로 표현한 것인데 , 노란색의 주된 방향성분을 고려해서 사각형을 기술하고 사각형을 4개씩 분할..

Program/OPEN_CV 2022.06.21

[Open CV] 특징점 검출과 매칭 _ 특징점 검출

2022.06.20 금일은 특징점 검출과 매칭 특징점검출에 관한 강의였다. 지난 시간 Harris , GFTT, FAST 코너에 대한 설명 중 문제점이 있었다.이동, 회전 변환에는 강인하지만 크기 변환에는 취약하다. 비교 영상에서 확대가 되거나 축소가 되면 코너가 아닌 것처럼 보일 수 있기 때문 작은 객체를 봤을때는 코너처럼 보이기는 하지만 크기를 키우거나 확대하면 엣지로 보일 수 있다.그래서 다양한 크기 관점에서 특징 검출이 필요하다. * 특징점(feature point) = 키포인트(keypoint) = 관심점(interest point) * 기술자(descriptor) = 특징벡터(feature vector) * 특징 벡터(feature vector) : 패턴 인식에서는 인식 대상이 되는 객체가 특..

Program/OPEN_CV 2022.06.20

[Open CV] 특징점 검출과 매칭 _ 코너 검출

2022.06.19 금일은 특징점 검출과 매칭 코너검출에 관한 강의였다. 이번 시간에는 다양한 코너 검출에 관해 알아본다. 코너라고 하는 부분은 영상에서의 모서리 부분 영상안에서 객체의 뾰족하게 튀어나와있는 부분들을 의미한다. 이러한 코너를 검출을 하는 이유는 코너점들이 영상에서 고유한 특징을 가지고있어서 변별력이 높게 잘 검출할 수 있기 때문. 그래서 영상에서의 코너 특징을 찾아서 두개의 영상을 비교한다거나 다른 부분을 찾거나 매칭을 하는등의 처리를 하는 부분에서 코너검출이 많이 사용된다. 코너의 특징 - 평탄한 영역 ( flat ) & 에지 ( edge ) 영역은 고유한 위치를 찾기 어려움 - 코너 ( corner ) 는 변별력이 높은 편이며 영상의 이동, 회전 변환에 강인함 다양한 코너 검출 방법 ..

Program/OPEN_CV 2022.06.19

[Open CV] 영상 분할과 객체 검출 _ 실전코딩 ( 스노우앱 )

2022.06.18 금일은 실전코딩 간단 스노우앱 만들기에 관한 강의였다. 간단 스노우앱? - 카메라 입력 영상에서 얼굴을 검출하여 재미있는 그래픽을 합성하는 프로그램 구현할 기능 - 카메라 입력 영상에서 얼굴&눈 검출하기 - 눈 위치와 맞게 투명한 PNG 파일 합성하기 ( 안경의 알 사이의 거리를 적당히 resize 해서 합성 ) - 합성된 결과를 동영상으로 저장하기 얼굴 & 눈 검출 - 캐스케이드 분류기 사용 XML 파일 다운로드 : https://github.com/opencv/opencv/tree/master/data/haarcascades 얼굴 검출 XML 파일 : haarcascade_frontalface_alt2.xml 눈 검출 XML 파일 : haarcascade_eye.xml 눈 위치와 ..

Program/OPEN_CV 2022.06.18

[Open CV] 영상 분할과 객체 검출 _ HOG 보행자 검출

2022.06.17 금일은 HOG 보행자 검출에 관한 강의였다. HOG ( Histogram of Oriented Gradients ) 란? - 영상의 지역적 그래디언트 방향 정보를 특징 벡터로 사용 - 2005년 CVPR 학회에서 보행자 검출 방법으로 소개되어 널리 사용되기 시작함 - 이후 다양한 객체 인식에서 활용됨 - HOG 특징벡터 추출 방법에다 SVM 머신러닝 알고리즘을 결합해서 사용했을 때 보행자 검출이 잘됨. * 전체 영상에서 부분 영상을 추출하여 그 부분영상에서 특징을 추출해서 그 부분 영상이 사람이 몸인지를 판단하는 알고리즘으로 동작 * 분할된 Cell 내부에서 전체 360도 방향에서 20도씩 9방향으로 나눈 뒤 히스토그램 계산 그런데 실제 8x8 크기의 셀로 분할하여 그냥 사용하게 되면..

Program/OPEN_CV 2022.06.17
반응형