본문 바로가기
Daily Coding

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

by 브래드(Brad) 2020. 10. 31.

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

안녕하세요

오늘도 참 날씨 좋은 주말입니다.

주말에 날씨가 좋으면 참 설레는데요

좋은 계획을 잡아서 좋은 날씨를 마음껏 만끽하면 정말 기분이 좋은데

밖에도 못나가고 어영부영하다가 집에서 시간을 다 허비해버리면 정말 허탈합니다.

저도 얼른 수강 후기 적고 후회하는 주말이 되지 않기 위한 계획을 고민해봐야겠어요 ㅎㅎ

 

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

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

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

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

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

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

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

 

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

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

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

 

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

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

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

 

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

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

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

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

 

오늘은 필터링 부분에서 미디언 필터와 양방향 필터에 대해 배워봤습니다.

미디언 필터는 요새는 잘 안 쓰는 방법이기는 하지만 개념적인 이해를 위해 알아두라고 하시더라고요.

수학적으로 보면 어떻게 이런 식의 생각을 할까 놀라게 되는 기법들이 많은 것 같습니다.

미디언 필터는 말 그대로 중간값인데, 일정 범위의 픽셀(보통 3x3)을 크기순으로 정렬해서 그 중간값을 해당 픽셀 값으로 변환하는 방식이네요.

 

관련 함수는 아래와 같습니다.

cv2.medianBlur(src, ksize, dst=None) -> dst

ksize는 커널(필터링 대상이 되는 픽셀의 주변 크기 범위) 크기인데 홀수 값을 지정해줍니다. 3을 쓰면 3x3의 픽셀 정보를 읽습니다

 

미디언 필터는 개념이 단순하지만 문제는 모든 픽셀에 대해 같은 방식을 적용하다 보니 복잡한 부분에서는 선이 약간 뭉개지는 현상이 생깁니다. 그래서 픽셀 주변 값에 맞게 상황에 맞는 필터를 적용해주는 양방향 필터가 많이 쓰이는 것 같습니다.

양방향 필터는 가우시안 필터를 두 번 사용한다는 의미인데요, 더 자세히 이야기하자면 중심에서 원 모양으로 확산되는 형태인 가우시안 필터를 원본의 해당 픽셀 영역(커널)의 값에 따라 선택적으로 적용하는 방법입니다.

이 방법을 사용하면 edge 도 살리면서 면은 부드럽게 만들어주는 효과가 만들어집니다.

관련 함수는

cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace, dst = None, borderType=None) -> dst

이며, d 값은 필터링에 사용될 이웃 픽셀의 거리인데 통상 -1 값을 입력하는 것이 무난하다고 추천합니다.

sigmaColor는 색공간에서 필터의 표준편차 즉 Edge 여부를 어느 범위까지 인정할 것인지에 대한 편차입니다.

값이 너무 작으면 작은 변화에도 Edge로 인식해버리고 너무 크면 Blur와 같은 효과가 납니다.

sigmaSpace는 좌표 공간에서 필터의 표준 편차인데 값이 너무 커지면 필터 크기가 커져서 속도가 느려진다고 합니다.

 

필터링 부분도 거의 마무리되어 가는데 이런 것들이 코드 한 줄로 구현된다는 게 정말 신기하네요.

파이썬이 좀 익숙해지면 C나 Java 도 공부를 해봐야겠어요.

어떻게 다른지 궁금합니다.

 

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

 

 

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

 

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

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

www.fastcampus.co.kr

 

 

댓글