0. 강의 구성 및 내용 정리
FastCampus의 OpenCV 올인원 패키지 강의는 총 13개 챕터와 104개의 강의로 이루어져 있으며 총 강의 시간은 31시간으로 한 달에 [한 시간 영상 시청 + 한 시간 복습 및 코드 테스트] 계획에 알맞은 볼륨이라 생각한다. 챌린지는 50일이고 104개의 강의가 있다보니 하루에 2개~3개 정도 들으면 딱 떨어질 수 있었지만 연초 출장과 연휴로 계획이 틀어졌더니 결국 강의 2개를 남기고 챌린지가 마무리 되어 아쉽다.
전체적으로 보면 OpenCV가 제공하는 기능 중 영상 처리 관련한 함수들을 위주로 이해하고 실습할 수 있다. 언어는 python을 사용했기 때문에 다른 언어에 비해 직관적이고, 다른 라이브러리와 응용해서 사용하는 방법이 무궁무진해 보인다. 특히 요즘 머신 러닝 및 딥 러닝에 대한 관심이 높은데 유명한 알고리즘을 실제로 적용하고 테스트해 볼 수 있는 챕터가 포함되어 있다.
아래 표는 각 강의 내용이 정리되어 있는 글의 링크를 정리한 것으로 이후 필요한 내용을 찾고 싶을 때 빠르게 찾기 위해 만들었다. 제목을 더 디테일하게 만들어서 구별할 수도 있겠었지만 일단 제목 포멧이 챌린지 규정 중 하나로 정해져 있고, 너무 길어진 제목은 보기 싫어서 표와 링크를 마무리 글에서 한 방에 정리하는 방법으로 챌린지 기간 중간부터 생각했었다. 링크와 상관없이 교육과정 소개를 보고 싶으면 표 밑 첨부 파일을 참고하면 된다.
| 챕터 | 강의 No. | 제목 | 링크 |
| 1 | 1 | 전체 코스와 컴퓨터 비전 소개 | 링크 |
| 2 | 영상의 구조와 표현 | ||
| 3 | OpenCV 소개와 설치 | 링크 | |
| 4 | VS Code 설치와 개발 환경 설정 | 링크 | |
| 5 | 영상 파일 불러와서 출력하기 | 링크 | |
| 6 | OpenCV 주요 함수 설명 | ||
| 7 | Matplotlib 사용하여 영상 출력하기 | 링크 | |
| 8 | 실전 코딩 - 이미지 슬라이드쇼 | 링크 | |
| 2 | 1 | 영상의 속성과 픽셀 값 처리 | 링크 |
| 2 | 영상의 생성, 복사, 부분 영상 추출 | 링크 | |
| 3 | 마스크 연산과 ROI | 링크 | |
| 4 | OpenCV 그리기 함수 | 링크 | |
| 5 | 카메라와 동영상 처리하기 1 | 링크 | |
| 6 | 카메라와 동영상 처리하기 2 | 링크 | |
| 7 | 키보드 이벤트 처리하기 | ||
| 8 | 마우스 이벤트 처리하기 | ||
| 9 | 트랙바 사용하기 | 링크 | |
| 10 | 연산 시간 측정 방법 | ||
| 11 | 실전 코딩 - 동영상 전환 이펙트 | 링크 | |
| 3 | 1 | 영상의 밝기 조절 | 링크 |
| 2 | 영상의 산술 및 논리 연산 | 링크 | |
| 3 | 컬러 영상 처리와 색 공간 | 링크 | |
| 7 | 특정 색상 영역 추출하기 | ||
| 4 | 히스토그램 분석 | 링크 | |
| 5 | 영상의 명암비 조절 | ||
| 6 | 히스토그램 평활화 | 링크 | |
| 8 | 히스토그램 역투영 | 링크 | |
| 9 | 실전 코딩 - 크로마키 합성 | ||
| 4 | 1 | 필터링 이해하기 | 링크 |
| 2 | 블러링(1) - 평균값 필터 | ||
| 3 | 블러링(2) - 가우시안 필터 | ||
| 5 | 잡음 제거(1) - 미디언 필터 | 링크 | |
| 6 | 잡음 제어(2) - 양방향 필터 | ||
| 4 | 샤프닝 - 언샤프 마스크 필터 | 링크 | |
| 7 | 실전 코딩 - 카툰 필터 카메라 | ||
| 5 | 1 | 영상의 이동 변환과 전단 변환 | 링크 |
| 2 | 영상의 확대와 축소 | ||
| 3 | 이미지 피라미드 | 링크 | |
| 4 | 영상의 회전 | ||
| 5 | 어파인 변환과 투시 변환 | 링크 | |
| 6 | 리매핑 | ||
| 7 | 실전 코딩 - 문서 스캐너 | ||
| 6 | 1 | 영상의 미분과 소베 필터 | 링크 |
| 2 | 그래디언트와 에지 검출 | ||
| 3 | 캐니 에지 검출 | ||
| 4 | 허프 변환 - 직선 검출 | 링크 | |
| 5 | 허프 원 변환 - 원 검출 | ||
| 6 | 실전 코딩 - 동전 카운터 | ||
| 7 | 1 | 영상의 이진화 | 링크 |
| 2 | 자동 이진화 - Otsu 방법 | ||
| 3 | 지역 이진화 | ||
| 4 | 모폴로지(1) - 침식과 팽창 | 링크 | |
| 5 | 모폴로지(2) - 열기와 닫기 | ||
| 6 | 레이블링 | 링크 | |
| 7 | 외곽선 검출 | ||
| 8 | 다양한 외곽선 함수 | ||
| 9 | 실전 코딩 - 명함 인식 프로그램 | ||
| 8 | 1 | 그랩컷 | 링크 |
| 2 | 모멘트 기반 객체 검출 | ||
| 3 | 템플릿 매칭(1) - 이해하기 | 링크 | |
| 4 | 템플릿 매칭(2) - 인쇄체 숫자 인식 | ||
| 5 | 캐스케이드 분류기 - 얼굴 검출 | 링크 | |
| 6 | HOG 보행자 검출 | ||
| 7 | 실전 코딩 - 간단한 스노우 앱 | ||
| 9 | 1 | 코너 검출 | 링크 |
| 2 | 특징점 검출 | 링크 | |
| 3 | 특징점 기술 | ||
| 4 | 특징점 매칭 | ||
| 5 | 좋은 매칭 선별 | ||
| 6 | 호모그래피와 영상 매칭 | 링크 | |
| 7 | 이미지 스티칭 | ||
| 8 | 실전 코딩 - AR 비디오 플레이어 | ||
| 10 | 1 | 배경 차분 - 정적 배경 차분 | 링크 |
| 2 | 배경 차분 - 이동 평균 배경 | ||
| 3 | 배경 차분 - MOG 배경 모델 | ||
| 4 | 평균 이동 알고리즘 | 링크 | |
| 5 | 캠시프트 알고리즘 | ||
| 6 | 루카스-카나데 옵티컬플로우 | 링크 | |
| 7 | 밀집 옵티컬플로우 | ||
| 8 | OpenCV 트레커 | 링크 | |
| 9 | 실전 코딩 - 핸드 모션 리모컨 | ||
| 11 | 1 | 머신 러닝 이해하기 | 링크 |
| 2 | OpenCV 머신 러닝 클래스 | ||
| 3 | k최근접 이웃 알고리즘 | 링크 | |
| 4 | KNN - 필기체 숫자 인식 | ||
| 5 | SVM 알고리즘 | 링크 | |
| 6 | OpenCV SVM 사용하기 | ||
| 7 | HOG SVM - 필기체 숫자 인식 | ||
| 8 | 숫자 영상 정규화 | 링크 | |
| 9 | k-평균 알고리즘 | ||
| 10 | 실전 코딩 - 문서 필기체 숫자 인식 | ||
| 12 | 1 | 딥러닝 이해하기 | 링크 |
| 2 | CNN 이해하기 | ||
| 3 | 딥러닝 학습과 모델 파일 저장 | ||
| 4 | OpenCV DNN 모듈 | 링크 | |
| 5 | MNIST 학습 모델 사용하기 | ||
| 6 | GoogLeNet 영상 인식 | 링크 | |
| 7 | 실전 코딩 - 한글 손글씨 인식 | ||
| 13 | 1 | OepnCV DNN - 얼굴 검출 | 링크 |
| 2 | YOLOv3 - 객체 검출 | ||
| 3 | Mask-RCNN - 영역 분할 | 링크 | |
| 4 | OpenPose - 포즈 인식 | ||
| 5 | EAST - 문자 영역 검출 | 링크 | |
| 6 | 실전 코딩 - 얼굴 인식 |
1. 강의 장단점
강의를 들으면서 느꼈던 좋았던 점과 아쉬웠던 부분을 중간 중간 메모해왔던 것을 정리해보았다.
좋은 점!
1) 평생 소장 가능
글쓴이는 다른 교육 플렛폼 강의들에도 관심이 많아서 결재해둔 것이 여럿 있는데 보통 기한이 6개월 내에 수강해야해서 연장하지 않으면 후에 다시 참고하고 싶을 때 현금으로든 마일리지로든 재 결재를 해야하는 상황이 발생한다. 그에 반해 FastCampus 50일 챌린지를 위해 수강 신청한 이 클래스의 경우 한 번의 결재로 내 계정이 사라지지 않는 한 계속 돌려볼 수 있다. 머신 러닝이나 딥 러닝 파트는 한 두 번 들어서 완전히 이해가는 부분은 아니라서 이 부분이 큰 메리트로 다가왔다.
2) 확실한 강의 자료 제공
아래 그림에서 보다시피 각 챕터 별로 배웠던 내용을 실습할 수 있는 코드를 다 제공해 주신다. 물론 배웠던 내용을 가지고 직접 코딩해봐야 실력이 빨리 늘지만 챌린지하는 동안은 영상 시청 + 블로그 글 쓰기 + 자료 정리까지 하면서 직접 코딩하기에는 저녁 시간만으로는 너무 부족하게 느껴졌기 때문에 빠르게 실습 코드를 돌려볼 수 있어서 좋았다. 나에게 계속 남는 자료이기 때문에 필요한 내용을 구글이라는 자료 바다에서 허우적대는 시간을 빠르게 줄일 수 있다. 모든 실습 코드 중 오류가 났던 파일은 한 두 개로 실습 파일로 애먹은 적이 적다. 코드 외에 강의도 강의 자료 + 실습 코드 분석으로 이루어져 있기 때문에 강의 노트가 제공된다.

3) 그 외
챕터들이 따로 노는게 아니고 처음부터 천천히 쌓아올리는 방식으로 이해하게끔 되어 있기 때문에 매 챕터 실전 코딩 부분으로 왔을 때 전에 배웠던 내용을 복습할 수 있게 설계해 두셨다. 전에 있는 내용을 추가 할 수록 더 흥미로운 실전 코딩 예제가 완성되었다.
강의의 장점이라기 보다도 FastCampus 강의 UI적으로는 느린 배속/빠른 배속을 모두 지원해서 원하는 템포로 플레이하면서 볼 수 있고, 앞 영상을 다 들어야만 뒷 영상을 들을 수 있는 구조가 아니기 때문에 자신이 원하는 강의만 선택해서 들어도 무방하다.
아쉬운 점!
1) 예제의 종류와 설명의 깊이
OpenCV에서 제공하는 함수 테스트 하는 경우 OpenCV에서 제공하는 tutorial에 강사님이 처리 방식을 살짝 손 본 예제들도 종종 있었다. OpenCV에서 제공하는 튜토리얼을 이미 해봤을 경우 이 강의에 큰 메리트를 느끼지 못할 수도 있다는 생각이 들었다. 예를 들어 HOG의 경우 OpenCV에서 제공되는 tutorial 중 하나였는데 검출할 사진 예제나 새로운 예제 사진도 같이 추가했더라면 어땠을까라는 생각이 들었다.
딥 러닝과 머신 러닝 부분의 경우 글쓴이는 배경 지식이 있었기 때문에 간단한 글과 사진만으로 이게 뭐가 표현된건지 알 수 있었지만, 영어 논문은 처음이며, 이 부분 지식이 하나도 없는 경우 CNN부터 갈피를 잃었을거란 생각이 든다. 레이어 종류와 Forward, weigth 계산 방식 등에 대한 개념은 Neural Network에 있어 가장 중요한 부분인데 간단하게 짚고 넘어가버린거 같아서 좀 아쉽다. 물론 강의의 포인트가 모델을 직접 돌려보고 사용하는데 있기 때문에 이 부분에 대해서는 크게 만족하는 바이지만 2 챕터만 할당된 만큼 깊은 설명을 기대하는 사람들에게는 다른 강의를 추천해주고 싶다.
2) 커뮤니티 공간
이는 강의에 대한 아쉬운 점이라기 보다도 FastCampus 강의 UI에 대한 아쉬움이긴 한데 학습 강의 별 또는 강의 자체에 댓글 기능이라던가 QnA를 올릴 수 있는 게시판 기능이 없기 때문에 강의에 대한 궁금증이 생기거나 코드 실습시 에러 사항이 생기면 같은 강의를 학습하는 다른 사람들과 교류할 수가 없다. 이는 물론 구글링을 통해 해결할 수 있지만 그보다는 같은 경험을 한 사람들이 올려놓은 글로 해결하면 시간이 훨씬 단축되니 효율성 측면에서 좀 아쉬웠다. 알고 보니 강의 선생님이 운영하고 있는 FACEBOOK 그룹이 있었는데 이를 강의 후반이 다 되어서야 알게되었다. (교육 과정 소개서 및 강의 설명을 꼼꼼히 안 읽어본 나의 탓인가...? 그리고 FACEBOOK과 멀어진지 오래인 상태라 더 아쉽...) 첫 강의 때 강사님이 자기 소개하면서 이 페이지도 공유해줬으면 더 빨리 알았을텐데.. 라는 아쉬움이 남았다. 아래는 혹시라도 둘러보고 싶은 사람들을 위해 FACEBOOK 그룹 링크를 남겨놓는다.
https://www.facebook.com/groups/opencvprogramming
3) 그 외
아무래도 영상 처리에 대한 부분을 다루다 보니 실시간 카메라 영상을 테스트하는 예제의 경우 웹캠이 없는지라 실습이 불가능했다. 몇몇은 촬영한 비디오로 대체하기도 했지만 실전 코딩 프로젝트의 경우 카메라 테스트를 해야 의미가 있는 경우들이 있어서 이에 대한 안내가 사전에 있었더라면 더 좋았을거란 생각이 든다.
머신 러닝의 경우 그래픽 카드가 설치되어 있으면 CUDA를 사용할 수 있는데 이에 대한 설명이 없던 것도 아쉬웠다. (나의 CPU!)
만들어진지 1년 남짓된 강의라고 느껴졌는데 사용하는 python 버전이나 OpenCV 버전들이 옛날 버전들로 되어 있어서 좀 아쉬운 부분도 있다. 특히 머신 러닝 쪽에서 사용했던 tensorflow의 경우 1.x와 2.x 버전에 차이가 많이 나게 되서 1.x 기반으로된 예제를 2.x 기반 환경에서 돌렸다가 계속 에러와 씨름해야했다. (FACEBOOK에 2.x 버전이 제공되어 있는지는 잘 모르겠다.)
코딩에 대한 기본적인 이해가 있어야 강의 내 코드 분석을 들으면서 이해할 수 있다. 직접 코딩을 해본 적이 1도 없을 경우 python으로 코딩하는 법에 대한 기본적인 지식을 갖고 와서 이 강의를 들으면서 새로운 라이브러리 사용법을 배운다는 개념으로 접근해야한다.
이 강의에서 배운 내용을 구글링 할 경우 대부분의 자료는 영어가 많기 때문에 좋던 싫던 영어 공부를 해야한다.
일석이조를 노려보자!
2. 마음대로 챕터 시상식
1. 가장 흥미로웠던 Chapter: CH3. 기본적인 영상 처리 기법
OpenCV, python 및 영상에 대한 기본 개념을 배우고 처음으로 영상 처리에 대한 부분에 대해 배운 챕터라 가장 열심히 했던 기억이 난다. 특히 크로마키의 경우 인터넷 방송을 보면서 어떤 원리로 이루어지는 건지 정말 궁금했는데 직접 구현해 볼 수 있어서 더 흥미로웠던 기억이 난다. 학교에서 히스토그램 배울 때는 Fourier series부터 수학적인 개념으로 접근했기 때문에 정말 배우기 싫어했는데 히스토그램 응용의 한 부분을 배울 수 있어서 새로 보게 되는 계기가 되기도 하였다. 다른 챕터들도 충분히 흥미로웠지만 흥미의 시발점이 되었던 챕터로써 가산점을 부여하여 선정하였다.
2. 가장 힘들었던 Chapter: CH12. 딥러닝 이해와 영상 인식
딥 러닝에 대한 기본적인 소개와 환장할 환경 세팅의 시작이였던 Ch12를 가장 힘들었던 챕터로 꼽았다. Ch12 첫번째 강의는 기본적인 개념 소개와 유명한 알고리즘에 대한 소개에 대한 내용으로 다 알고 있던 내용이라 쉽게 가겠군 이라는 생각 플레그를 꽂자 마자 세번째 강의 딥러닝 학습과 모델 파일 저장에서 tensorflow 설치하는 부분부터 제대로 막혔다. VS python interpreter로 아나콘다 python을 잡아놨는데 아나콘다가 32-bit로 설치되어 있어 tensorflow만 설치하려고 하면 에러나는 것을 몰라서 알아내고 새로 세팅하는데 거진 이틀을 잡아먹었던걸로 기억한다. 헝헝. 그리고 설치된 python 버전에 맞춰 tensorflow 2.x를 설치했더니 학습하는 파일에서 계속 오류가 떠서 그것도 하나하나 잡아가는데 이틀 정도 소요한거 같다. (강의에서 이렇게 하세요라고 하는데는 이유가 있는 것이다.) 오류는 오류대로 나고 인증글은 인증 글대로 써야하고 시간은 모자라고 총체적 난국이 이런 것이다라는 것을 깊이 이해할 수 있었던 챕터이다. 그래도 다행인 것은 이후 딥 러닝 모델들은 이미 학습이 완료된 모델로 만드는 것이 였기 때문에 이러한 불상사는 좀 피할 수 있었지만 세팅만으로도 오래 걸려서 테스트는 포기하다 시피하고 글만 썼던 터라 40일 이후 글은 날림기가 보인다. ㅠㅠ 가장 힘들었던 챕터이자 글 수정이 시급한 챕터이기도 하다.
3. 챌린지 참여 소감
즉흥형 인간이 계획형 인간으로써 살았던 50일!
글쓴이는 개인적으로 넓은 분야에 관심을 가지고 배우는 걸 좋아하지만 항상 용두사미로 끝나는 경향이 있다. 한 마디로 벌려 놓은 일을 제대로 마무리하지 못하는 아주 못된 버릇을 가지고 있는데 이번 50일 챌린지는 개인 스터디를 일과 병행하면서 내가 어디까지 해낼 수 있지는 테스트해 보는 좋은 계기가 되주었다. 퇴근하면 늘어지게 보내버리던 저녁과 잠 충전하느라 바빴던 주말 시간을 포함해 50일간 빠짐없이 강의를 듣고 글로 옮기고 직접 코드를 보는데 할애하면서 열심히 살아보고자 노력했던거 같다. 20일차까지만 해도 열의에 차서 열심히 들었는데 30일차에는 이걸 왜 하고 있지라는 현타가 오기도 했고 마지막 40일차는 얼마 안남았다와 귀찮아졌다의 끝없는 씨름이 되었다. 환급이라는 크고 멋진 당근이 눈 앞에 걸려있기에 끝을 보았다는 생각이 크게 들지만 한 번 해보았으니 두번째는 좀 더 작은 당근이 있어도 끈기 있게 뭔가를 해내게 될거라는 자신감을 가지게 해주는 챌린지였다. 글쓴이와 같이 새로운 것을 배우는데 있어 시작은 잘하지만 마무리를 못하는 사람이 있다면 다음 챌린지를 꼭 참여하라고 추천해주고 싶다.
4. 강의 실습 사진 모음
50일간의 기록이다 보니 그간 했던 실습들의 자료들이 꽤 남아 최종 학습 이미지로 공유한다.





#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #OpenCV를 활용한 컴퓨터비전과 딥러닝 올인원 패키지 Online
패스트캠퍼스(FastCampus) 강의 둘러보러 가기
↓ ↓ ↓
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'남돈내배 > 2022_FastCampus_환급이벤트' 카테고리의 다른 글
| 패스트캠퍼스 챌린지 50일차(추가) - Ch13. 딥러닝 활용: 객체 검출, 포즈 인식 (0) | 2022.03.23 |
|---|---|
| 패스트캠퍼스 챌린지 50일차 - Ch13. 딥러닝 활용: 객체 검출, 포즈 인식 (0) | 2022.03.14 |
| 패스트캠퍼스 챌린지 49일차 - Ch13. 딥러닝 활용: 객체 검출, 포즈 인식 (0) | 2022.03.13 |
| 패스트캠퍼스 챌린지 48일차 - Ch12. 딥러닝 이해와 영상 인식 (0) | 2022.03.12 |
| 패스트캠퍼스 챌린지 47일차 - Ch12. 딥러닝 이해와 영상 인식 (0) | 2022.03.11 |