본문 바로가기
Daily Coding

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

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

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

안녕하세요

오늘은 즐거운 토요일입니다.

어제 오래간만에 회식을 했는데 주체를 못 해서 꽐라가 되어버렸습니다.

여러 가지 실수도 좀 한듯하고....ㅠ

그럼에도 불구하고 술을 끊겠다는 생각은 전혀 들지 않네요

아마 오후 늦게 쯤 되면 또 한잔 하고 싶어 질지도 모르겠어요 ㅋ

 

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

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

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

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

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

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

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

 

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

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

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

 

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

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

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

 

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

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

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

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

 

오늘은 배경차분의 방법 중 MOG 배경 모델을 배워봤습니다. 이전의 일정 양의 영상에 대해 MOG확률 모델(Mixture Of Gaussian)을 설정하여 배경과 전경을 구분하는 방법이라고 합니다. 

 

앞에서 배운 이동평균 배경 영상보다는 좀더 머신러닝에 가까운 기법이라고 할 수 있겠네요.

배경차분: MOG 배경모델

관련 함수는

먼저 BackgroundSubtractorMOG2 클래스를 생성해주는

cv2.createBackgroundSubtractorMOG2(, history=None, varThreshold=None, detectShadows=None) -> dst

history는 히스토리 길이이며 기본값은 500입니다. 현재 기준에서 이전 몇 개의 프레임을 분석할 건지에 대한 것이네요

varThreshold는 픽셀과 모델 사이의 마할라노비스 거리 제곱에 대한 임계값이라는데 해 다익 셀이 배경 모델에 의해 잘 표현되는지를 판단한다고 하네요... 뭔 말인지;;;;

detectShadows는 그림자 검출 여부이고 기본값은 True입니다. False로 하면 이진 영상에서 0과 255로만 표현되는 것 같아요

 

다음 전면 객체 마스크 생성 함수입니다.

cv2.BackgroundSubtractor.apply(image, fgmask=None, learningRate=None) -> fgmask

image는 (입력) 다음 비디오 프레임

fgmask는 (출력) 전경 마스크 영상, 8비트 이진 영상

learningRate는 배경 모델 학습 속도입니다. 기본값은 -1로 자동 결정입니다. 

 

다음 배경 영상을 반환하는 함수는

cv2.BackgroundSubtractor.getBackgroundImage(, backgroundImage=None) -> backgroundImage

backgroundImage는 (출력) 학습된 배경 영상입니다.

 

다음은 객체추적을 위한 평균 이동 알고리즘을 배워봤습니다.

 

평균이동 알고리즘: meanshift

평균 이동 알고리즘이란 국지적으로 평균을 탐색하면서 중심점을 이동해가는 것인데요

관련 함수는 

cv2.meanShift(probImage, window, criteria) -> retval, window

probImage는 관심 객체에 대한 히스토그램 역투영 영상(확률 영상)

window는 초기 검색 영역 윈도와 결과 영역 반환

criteria는 알고리즘 종료 기준이며 (type, maxCount, epslion) 튜플 형태입니다.

이건 사용 방식을 아예 외우는 게 좋다고 합니다.

  e.g) term_crit = (cv2.TERM_CRITERIA_EPS|cv2.TERM_CRITERIA_COUNT, 10, 1) -> 최대 10번 반복하며, 정확도가 1 이하이면 종료

retval는 알고리즘 내부 반복 횟수이네요.

 

황선규 박사님이 귤을 들고 이리저리 움직이는 모습은 참 귀여우시기까지 하네요 ㅎㅎ

 

그럼 모두들 즐거운 주말 보내세요~ ^^

 

 

 

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

 

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

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

www.fastcampus.co.kr

 

 

댓글