본문 바로가기
Daily Coding

[패스트캠퍼스 수강 후기] {컴퓨터비전인강} 100% 환급 챌린지 - 31일차

by 브래드(Brad) 2020. 11. 18.

OpenCV를 활용한 컴퓨터비전과 딥러닝

안녕하세요

오늘은 날씨가 꽤 덥습니다.

습하기도 하고요.

겨울이 되어가는지라 옷을 두껍게 입고 있는데, 벗을 수도 없고 참 답답하네요 ㅎㅎ

이런 날은 사무실에 앉아있으면 엄청 졸리기도 하는데...

어제 술까지 마셔서 이만저만 힘든 게 아닙니다.ㅎ

 

코딩 공부를 시작하게 된 배경을 다시 언급하자면,

인공지능이 앞으로 세상을 지배할 거라는데, 기계와 소통을 위해 코딩은 점점 필수 능력이 되어가는 것 같습니다.

파이썬으로 공부하면 쉽다는데, 왜 이렇게 어렵게 느껴지는 걸까요???

혼자 너튜브로 공부하려다 보니 두서없이 따라 하기만 하고, 정작 제가 하고 싶은 건 만들지 못하게 되는 것 같습니다.

아마도 제가 더 노력하지 않아서겠지요.

저는 뭔가를 할 수밖에 없는 환경에 놓여야만 움직이는 DNA를 가지고 있는 것 같아요

그래서 투자를 하고 본전심리가 장치가 되어 어쩔 수 없이 실행하게 만드는 유료수강제도를 이용하게 되는 것 같습니다.

 

요새 같은 코로나 시대에는 학원에 가기도 그렇고, 사람마다 이해도나 기본 실력이 다르니 수준이나 진도를 제가 정할 수 있는 온라인 교육이 좋은 것 같습니다.

FastCampus의 교육들은 커리큘럼들도 잘 짜여 있고, 한번 결제하면 평생 소장이 가능하다고 해서 종종 이용하고 있는데요.

이번에는 미션 수행하면 수강료 환급해주는 과정이 생겨서 도전해보기로 했습니다.

 

이번에 도전한 과정은 "OpenCV 를 활용한 컴퓨터 비전과 딥러닝"인데요.

마침 제가 요새 회사에서 추진하고 있는 프로젝트가 "지능형 CCTV 구축"과 관련된 것이어서,

관련 기술도 배울 겸 신청하게 되었어요

 

수강신청 후 환급 미션이 시작되기 전까지는 약간 시간이 있어서 Chapter 1 은 쉬엄쉬엄 들어봤는데요.

FastCampus 강의들의 장점은 영상 1개당 강의시간이 길어도 25분을 넘기지 않고 대체로 10분 안팎이어서

수강에 큰 부담이 없다는 것입니다.

문제는 본인이 꾸준히 하느냐에 대한 것인데 평생 소장이니 의지가 다시 타오를 때 또 보면 되죠 뭐...ㅋ

 

오늘은 매칭 선별에 대한 공부를 했습니다.

지난 시간에 배운 매칭점을 연결해서 그중 어떤 것들이 제대로 매칭 되었는지 선별해내는 과정입니다.

알고리즘은 매칭 거리를 계산하여 그중 짧은 것을 취하는 방식이었습니다.

별도의 함수는 없고 알고리즘 로직을 그대로 코드 작성해주는 방식이네요.

 

좋은 매칭 선별

다음은 호모 그래피에 대한 부분을 배워봤는데, 호모 그래피는 일종의 투시 변환입니다.

두 개의 영상에서 영상이 회전하거나 사진을 찍는 위치에 따라 형태가 일그러질 수 있는데, 그런 것들이 투시 변환된 영상이라고 보는 것입니다. 

위 매칭 선별에서 4개의 점을 찾아 어떤 식의 투시 변환이 되었는지 찾아내는 함수라고 보시면 되겠습니다.

호모그래피

위 예제에서 보시면 왼쪽의 박스 영상이 오른쪽의 여러 영상중 하나에 포함되어 있고 형태가 다소 다른 것을 알 수 있는데, 그럼에도 불구하고 해당 박스를 찾아 어떤 식으로 투시가 되었는지 표시해주고 있습니다.

 

관련 함수는

cv2.findHomography(srcPoints, dstPoints, method=None, ransacReprojThreshold=None, mask=None, maxIters=None, confidence=None) -> retval, mask

srcPoints는 입력점 좌표로 numpy.ndarray.shape=(N,1,2) dtype=numpy.float32

dstPonts는 결과점 좌표로 형식은 위와 동일합니다.

method는 호모 그래피 행렬 계산방법인데 보통 RANSAC(RANdom SAmple Consensus)를 사용한다고 합니다.

ransacReprojThreshold는 RANSAC 재 투영 에러 허용치로 기본값은 3

maxIters는 RANSAC 최대 반복 횟수이고 기본값은 2000

retval 은 호모 그래피 행렬 numpy.ndarray.shape=(3,3), dtype=numpy.float32

mask는 출력 마스크 행렬로 numpy.ndarray.shape=(N,1), dtype=uint8입니다.

 

점점 실력자 코스에 들어가고 있는 것 같습니다.

저는 아직 입문자에 머물러 있지만요 ㅋ

 

덥지만 상쾌한 하루 보내세요~ ^^

 

 

강의 링크: https://bit.ly/2DBM8d4

 

OpenCV를 활용한 컴퓨터비전과 딥러닝 올인원 패키지 Online. | 패스트캠퍼스

황선규 박사에게 배우는 컴퓨터 비전과 딥러닝. 고급 알고리즘의 원리를 제대로 이해하고 수십 가지의 실습을 통해 내 것으로 만드세요.

www.fastcampus.co.kr

 

댓글