그동안 수학적 이론을 공부하면서 컴퓨터 비전 전반에 대해 간략하게 살펴봤었다.
하지만 컴퓨터 비전으로 뭘 할수있는지는 알겠으나 이걸 어떻게 할수있는지 잘 모르겠더라
그래서 수학적 알고리즘을 하나하나 구현해봐야 되는건가 싶어
잠시 파이썬으로 히스토그램 평활화를 구현해보기도 했으나
이런 방식으로 해선 끝도 없겠더라
그래서 다른 방향은 opencv에 있는 예제들을 대부분 한번 해보면 다음에 무엇을 할지 정리되지 않을까 싶은 마음에 시작했다.
컴퓨터 비전 분야에서 내가 하고싶은 목표는 특징을 이용한 그래프 기반 슬램을 구현하는것으로
물론 내가 밑바닥 부터 구현할수는 없으니 적어도
특징 검출, 비주얼 오도메트리, 비주얼 슬램 순으로 해보곤 싶었다.
그에 앞서 opencv로 어떤것들을 할수 있는가 고민하다가
opencv 예제를 해보려고 하였지만
그나마 가장 빠르고 쉽게할수 있는 opencv-python 예제를 선택해서 빠르게 훑어가는 중이다.
이전에도 opencv 예제들을 몇번 해본적은 있으나 c++에서만 해봤고
대강 흐름 로직은 알겠지만
지금 opencv-python에서 하는것 이미지 프로세싱, 특징, 영상, 머신러능 등 만큼 잘 체계화 되어있지는 않았었다.
그런 이유로 이번주 초에 시작하여
프로토타이핑, 대학수학, 확률론과 병행하면서
OPENCV 소개, GUI 프로그래밍, 기본 연산, 이미지 프로세싱 부분까지 오게되었다.
지금까지 한것만해도 다른 과목들과 같이 병행한것 치고는 많이 오긴했다.
GUI 프로그래밍 연습 많이 안됬었는데 기능도 한번 둘러보고,
특히 그라디언트, 푸리에변환, 허프변환 탬플릿 매칭, 웨터 셰드 알고리즘을 이용한 영상 분할 등은
이전에 공부했을때는 제대로 보지 못했지만 그래도 정리하면서 많은 도움이 되었다.
다른 학문들은 대충대충 하면 금방 끝낫던 반면에
opencv-pythonn은 내 나름대로는 빠르게 한다고는 했지만 아직까지 할게 너무많이 남아있다.
여전히
- 특징 검출과 기술자
- 영상 해석
- 카메라 캘리브레이션과 3차원 복원
- 머신러닝
위 와같이 많은 주제가 남아있다보니
이번주 중으로 끝내기는 힘들것 같더라.
그래서 생각을 정리해보고자 이렇게 글을 쓰고 있다.
다음주부터는 주미 파워유저 발표 자료랑
프로토 타이핑에 전념해야하는만큼
이번 주말 중에 opencv 전반을 마무리하기를 희망하고 있다.
일단 피처가 무엇인지는 알고 있으니
피처 검출 부분은 대부분 간단히 넘어가고자한다.
넘어가고자 했으나
그래도 대표적인 특징인 SIFT, SURF는 물론
Fast, BRIEF, ORB 특징도 짚고 넘어가야겠다.
그동안 공부한 내용을 정리하면
SIFT와 서프는 회전, 평행이동과 스케일 변화에 강인한 특징으로 알고있다.
하지만 FAST는 회전, 평행이동에는 강인하나 스케일에는 강인하지 못한것으로 알고
브리프는 회전 변환에 강하고,
ORB는 FAST와 브리프의 조합으로 알고있다.
내가 이해하는 특징에 대한 내용은 이정도로
대가 위에서 말한 특징들 전반과 특징 전반을 오늘 6시 이전까지 마무리하면 많이 진행될것 같다.
오늘 저녁시간에는 비디오 해석과 카메라 캘리브레이션 정도 내용을 갈수있으면 좋겟다.
원래 더 나아가면 물체 검출 부분이 있는데
도저히 하르케스케이드가 잘 이해되지않는다
하르가 유사 하르 커널을 조합하여 여러 하르특징을 만들어내고
케스케이드라고 하는 약분류기들의 모음을 통해 얼굴 부분을 검출한다 정도로 개념은 알고 있지만
이거에 대해 그렇게 시원하게 알고있지는 않다.
직접 케스케이드 분류기에 대해서 정의하고 다양한 훈련을 겪어봐야할지
이를 어떻게 다루어야 될지는 이번 주말에 하기는 벅잘것 같다.
여유가 된다면 머신러닝과 함께 이 내용을 정리해보려고 한다.
일단 오늘 중으로 특징 검출, 비디오 해석, 스테레오 비전 등 내용을 할수 있으면 좋겠다.
컴퓨터 비전을 다다루려고 하는데 1주일 안에 시간을 쪼개서 하자니 너무 벅차긴한데
한번이라도 이렇게 돌려본데에 의의를 두자
이전에 비주얼 오도메트리 연습을 할떄
지금 만큼의 백그라운드 지식이 없이 하다보니
오도메트리 조차 제대로 검출해보지도 못하고 남의 예제에서 대충해보고 마무리했다.
그래도 지금이라면 동내 영상을 찍고 어느정도 할수있을것 같은 기분이 들기도 하다.
비주얼 오도메트리와 백엔드 최적화까지 어느정도 다룰수있으면 좋겟다 ㅠㅜ
'로봇 > 영상' 카테고리의 다른 글
opencv-python 튜토리얼 - 21. SIFT 소개 (0) | 2020.08.15 |
---|---|
opencv-python 튜토리얼 - 20. 피처 이해하기 (0) | 2020.08.15 |
opencv-python 튜토리얼 - 19. 워터셰드 알고리즘으로 영상 분할 (0) | 2020.08.15 |
opencv-python 튜토리얼 - 18. 허프 변환 (0) | 2020.08.15 |
opencv-python 튜토리얼 - 17. 탬플릿 매칭 (0) | 2020.08.15 |