본문 바로가기
Daily Coding

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

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

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

안녕하세요.

어느덧 20일째 되는 수강후기입니다.

오늘은 다소 공기 색깔이 겨울스러운 색이네요.

약간 차분해지면서도 우울해지는 느낌입니다.

후기 작성하고 오후에는 우울함을 만끽하기 위해 밖에 나가봐야겠어요~ ㅎㅎ

 

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

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

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

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

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

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

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

 

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

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

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

 

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

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

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

 

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

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

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

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

 

오늘은 허프 변환의 원 검출과 배운 내용을 토대로 동전 개수를 계산하는 실습을 해봤습니다.

원 검출은 보통 사람 얼굴을 인식할 때 많이 사용하는 걸로 알고 있는데, 최근 자율주행의 핵심이 보행자를 인식하는 것이어서 중요한 부분인 것 같습니다.

파이썬은 이런 것들도 함수로 간단하게 구현할 수 있도록 제공하고 있어서

라이브러리만 잘 찾아서 쓴다면 정말 강력한 언어인 것 같아요

 

허브변환: 원검출

관련 함수는

cv2.HoughCircles(image, method, dp, minDist, circles=None, param1=None, param2=None, minRadius=None, maxRadius=None) ->circles

여기서 image는 선 검출과는 다르게 에지 영상이 아닌 원 영상입니다. 다만 허프 변환이 노이즈에 따른 성능 저하가 크기 때문에 입력영상을 가우시안 블러를 통해 노이즈를 한번 제거해주는 것이 좋다고 합니다.

method는 몇 가지가 있는데 보통 cv2.HOUGH_GRADIENT를 사용하는 것 같아요, OpenCV4.3부터는 cv2.HOUGH_GRADIENT_ALT도 지원하는데 더 정확한 원 검출이 가능하다고 하네요.

dp는 입력영상과 축적 배열의 크기 비율이며, 1이면 동일한 크기인데 속도 이슈가 있어서 더 작게 하는 경우도 있는 것 같습니다.

minDist는 검출된 원 중심점들의 최소 거리

circles는 (cx, cy, r) 정보를 담은 numpy.ndarray.shape=(1, N,3), dtype=np.float32 인 형태로 반환됩니다.

param1은 Canny 에지 검출기의 높은 임계값

param2는 축적 배열에서 원 검출을 위한 임계값입니다.

 

 

동전 개수를 세어보는 실습에서는 아래와 같이 원을 검출하고 크기와 색깔, 특히 Hue 값의 분포를 보고 10원짜리와 100원짜리를 구분하는 실습이었습니다. 확실히 알고리즘은 샘플 데이터로부터 인사이트를 얻어 작성해야 하는 부분이네요. Hue 값의 분포가 10원짜리와 100원짜리가 다르지만 평균값은 비슷해질 수 있어서 보정해주는 방법을 각 Hue 값에 40씩 더해서 큰 부분을 날려버리는 방법은 배우기 힘든 부분일 것 같아요 ㅎ

동전개수 세기

여기서는 새로운 함수는 없었지만....(앞에서 배웠나?)

영상에 텍스트를 삽입하는 함수가 등장했습니다.

cv2.putText(dst, str(sum_of_money)+'won', (40,80), cv2.FONT_HERSHEY_DUPLEX,2, (255,0,0),2, cv2_LINE_AA)

세부 설명은 생략합니다

요 부분은 꼭 복습을 해봐야겠어요~

 

모두들 멜랑꼴리 한 주말 잘 즐겨보시길~ ^^

 

 

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

 

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

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

www.fastcampus.co.kr

 

댓글