본문 바로가기
Daily Coding

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

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

 

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

 

안녕하세요

어제는 다들 불금 보내셨나요?

저는 티브이만 보다가 아까운 시간을 다 보낸 것 같습니다.

잘 때 생각해보니 생각 없이 보내는 시간이 꽤 많이 있는 것 같더라고요

그 시간에 책이라도 봤더라면 꽤 많이 볼 수 있었을 텐데 하는 후회와 함께...ㅋ

재미있는 티브이 프로그램이 많다 보니 잠깐 뭐하나 채널 돌리다 보면 어느새 1~2시간 훅 지나가는 건 

일도 아닌 것 같습니다 ㅠ

 

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

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

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

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

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

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

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

 

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

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

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

 

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

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

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

 

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

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

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

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

 

오늘은 템플릿 매칭에서 인쇄체 숫자를 인식해보는 예제를 배워봤습니다.

인식 결과가 단순 비교로 하다 보니 글씨체로 인한 차이도 꽤 있는 것 같습니다.

 

 

숫자 인식

 

그나저나 코드가 상당히 길고 난이도가 있어서 이것도 출력해서 별도로 스터디를 해봐야겠습니다.

 

다음으로 캐스케이드 분류기라는 걸 통해 얼굴과 눈을 검출해보았습니다.

캐스케이드 분류기란 전체 영상을 훑어가면서 제일 유사한 부분을 검출해내는 것인데

기존에 학습한 부분과 다른 점은 미리 학습되어 있는 xml 파일을 이용해서 빠르게 분류를 한다는 것입니다.

Youtube에서 보았던 teachableMachine 도 학습결과를 xml로 저장할 수 있었던 것 같은데

이런 용도로 쓰이는 것이었네요 ㅎㅎ

 

 

얼굴검출

 

관련 함수는

cv2.CascadeClassifier(filename) -> CascadeClassifier object
cv2.CascadeClassifier.load(filename) -> retval

여기서 filename 은 xml 파일을 의미합니다.

미리 학습된 xml 파일은 아래 github 사이트에서 다운로드도 가능합니다.

 

 

최종 학습된 결과로 목표 영상에서 분류를 할 때 사용하는 함수는

cv2.CascadeClassifier.detectMultiScale(image, scaleFactor=None, minNeighbors=None, flags=None, minSize=None, maxSize=None) -> result

위에서 scaleFactor는 영상 축소비율이고 기본값은 1.1인데 숫자를 올릴수록 속도는 빨라집니다.

minNeighbors는 얼마나 많은 이웃 사각형이 검출되어야 최종 검출 영역으로 설정할지를 지정하는 것이며, 기본값은 3입니다.

flags는 사용되지 않는 변수이며

minSize, maxSize는 최소/최대 객체의 크기, (w, h) 튜플 형태인데, 대략의 사이즈를 제한한다면 아무래도 속도는 훨씬 빨라지겠죠

result는 검출된 객체의 사각형 정보(x, y, w, h)를 담은 numpy.ndarray.shape =(N, 4)입니다.

 

주말에는 가족들과 놀러 가기로 해서 이제 곧 출발해야 할 시간이네요.

평일보다 주말이 공부하기는 더 어려운 것 같습니다 ㅎㅎ

모두들 즐거운 주말 보내시길.

 

 

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

 

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

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

www.fastcampus.co.kr

 

댓글