OFFLINE 8주
OpenCV로 배우는
컴퓨터 비전 프로그래밍 24기


OpenCV를 사용할 줄 아는 사람은 많지만, 자신 있게 '잘 쓴다'고 이야기하는 사람은 적습니다. '잘 쓰는 방법'에 집중한 8주 커리큘럼을 준비 했습니다. C++을 사용한 OpenCV 활용으로 컴퓨터 비전 프로그래밍을 배울 수 있는 국내 유일의 교육 과정입니다. 8주간 매주 새로운 프로젝트로 OpenCV 활용법을 깊이 있게 익힙니다. OpenCV의 다양한 함수와 클래스 활용법, OpenCV 소스코드 디버깅, GPU 활용, 병렬프로그램 등의 다양한 프로그래밍 기법을 익히고, 딥러닝을 활용한 이미지 인식, 객체 검출과 분할, 포즈 인식까지 학습합니다.
  • Deep Dive

    OpenCV5의 기초 함수 활용부터 고급 기법까지 체계적으로 학습

    OpenCV의 단순한 함수 활용법을 배울 수 있는 온라인 강의는 많습니다. 하지만, 정작 내가 만들고자 하는 프로그램에 어떤 OpenCV 함수를 어떻게 적용해야하는지 알려주는 강의는 없습니다. 기초부터 응용까지 학습하는 국내 유일 커리큘럼입니다.

  • Private 1:1 Feedback

    다수를 위한 공개 피드백이 아닌 전문가의 1:1 개인 피드백

    8주 동안 매주 한 개의 중요 프로젝트를 진행하여 총 8개의 프로젝트로 학습을 이어갑니다. 수업 시간에는 최대한 많은 이론과 깊이 있는 내용을 전달 드리기 위해 실습 시간을 소극적으로 갖게 됩니다. 그래서 과제를 통해 1:1 코드 리뷰로 이를 보완하고자 합니다.

  • Dramatic Growth

    오늘 배워, 내일 적용 가능하도록 문제 해결에 집중한 과제 중심 과정

    하루를 배워도 내일 당장 회사에서 적용 가능한 실무 기술을 배울 수 있도록 오로지 실무 문제 해결 능력 트레이닝에만 집중합니다. 응용력과 활용력 증진에 집중할 수 있는 과정으로 설계 했습니다. 실습은 C++로 진행되지만, 파이썬 코드도 함께 제공하여 응용력을 높였습니다.

11월 개강반


모집 기간
2024. 9. 30 (월) ~ 2024. 10. 31 (목)

과정 일정 및 시간
8주 | 2024. 11. 2 (토) ~ 2024. 12. 21 (토)
주 1회, 매주 토요일 14:00 - 18:00 (4h), 총 32h 오프라인

※ 녹화본을 온라인으로 제공해드리고 30일 동안 수강 가능하십니다.


모집 인원
오프라인 현장 참가 : 15명 선착순
※ 모집 인원 및 강의실 환경에 따라 수강 인원은 변동될 수 있습니다.
※ 개강 전 자세한 안내는 이메일 및 문자로 안내 드립니다.

수업 장소 및 준비 사항
오프라인
- 위치 : 강남역 4번출구 미왕빌딩 11층 패스트캠퍼스
- 강의장 주소 : [도로명] 서울 강남구 강남대로 364 [지번] 역삼동 826-21
- 강의장 : 개별 문자 및 이메일 안내 - 준비사항 : 개별 노트북

온라인 녹화
- 채널 : 패스트캠퍼스 온라인 강의장

피상적인 OpenCV 사용법만이 아니라
알고리즘의 원리 이해를 바탕으로한 응용력에 집중한 과정입니다.

8주 동안 진행되는 32시간 과정입니다. 이전보다 깊이 있게 많은 내용을 공유드릴 수 있도록 커리큘럼과 교육 운영안을 개편했습니다. 코로나 이전 진행했던 과정에서는 과제가 없었으나, 이번 과정에서는 과제가 출제되고 보다 심도 있는 프로젝트가 진행됩니다.
과제를 하실 것을 권장 드리지만, 과제를 하지 못하고 수업에 참여하셔도, 매주 새로운 내용을 이해하시는 것에 어려움이 있지는 않으실 겁니다. 그러나, 과제를 제출해주시는 분들께는 1:1 코드리뷰를 해드릴 예정입니다. 가급적 많은 분들이 수업에 참여하시고, 과제를 통해 보다 빠르게 실력을 쌓아가실 수 있기를 기대합니다.
OpenCV에는 방대한 기능이 있습니다. 지속적인 업데이트를 통해 전통적인 컴퓨터 비전 알고리즘과 최신의 딥러닝 활용을 모두 지원합니다. OpenCV만을 잘 다뤄도 컴퓨터 비전 분야에서 소위 '고수'의 반열에 오를 수 있습니다. 하지만, OpenCV에 대한 원리 이해 없이 사용법만을 익힌다면 부족한 응용력으로 인해 실무에서 활용이 어려우실 수 있습니다. 8주간 8개의 중요 프로젝트를 함께 진행하고, 과제를 통해 응용력을 길러 실무에서 OpenCV를 활용한 컴퓨터 비전 프로그래밍을 자유롭게 하실 수 있을 것입니다.

수강생 B님

어려운 이론들로 인해서 영상처리 입문에 어려움이 있었는데 이번 기회로 입문에 성공하였고 이론을 이해하는 데 아주 큰 도움이 되었습니다.

수강생 J님

현재 영상처리와 인공지능관련 솔루션 개발에 도움이되어 만족스럽습니다.

수강생 D님

구조나 설계, 흐름을 만들거나 의존을 끊어내는 과정 등에 대해 고민해볼 수 있는 시간이었습니다.

수강생 K님

어려운 부분은 페이스북 그룹에 질문을 남기면 답변을 굉장히 빨리 해주십니다. 수업이 끝난 뒤에도 복습과 추가 공부가 가능한 자료를 자주 남겨주셔서 좋았습니다.

수강생 O님

강사님이 강의 준비를 굉장히 꼼꼼히 해오시는 것 같습니다. 예시 빌드도 수차례 돌려보고 검증한 후에 수업에 들어오신다는게 눈에 보입니다.

수강생 D님

OpenCV를 실제 프로젝트에서 사용하는 데에 많은 도움을 받았습니다.

수강생 P님

코드, 환경설정 등 수강생이 궁금해할만한 내용을 자료로 보완해주셔서 수업 외에도 혼자 학습하며 따라갈 수 있었습니다.

수강생 S님

박사님께서 수년간 고생해서 배워오신 내용들을 쉽게 알려주셔서 매우 감사합니다.

수강생 L님

수업 동안 관련 지식을 풍부하게 알려주셨습니다. 무엇보다 이 분야의 진짜 전문가를 선생님으로 모시게 되어 의미 있는 시간이었습니다.

오늘 배워 내일 적용 가능한
과제 중심의 과정입니다.

이미지 슬라이드쇼

지정된 폴더에 있는 모든 이미지 파일을 차례대로 불러와 화면에 출력하는 방법을 배웁니다. 이를 통해 OpenCV 라이브러리의 기초와 주요 함수의 사용법을 익힙니다.

동영상 자동 컷 검출 및 디졸브 적용

동영상 파일을 불러와서 재생하는 방법을 배우고, 이미지의 밝기 분포를 히스토그램으로 표현하는 방법을 배웁니다. 연속된 프레임의 히스토그램을 분석하여 컷(장면 전환)이 발생하는 위치를 검출합니다. 그리고 검출된 컷 위치에 디졸브(dissolve)같은 장면 전환 효과를 적용한 결과 동영상을 생성합니다.

크로마키 동영상 합성

녹색 스크린에서 촬영된 동영상으로부터 녹색 배경과 전경 사람을 분할하고, 전경 사람을 다른 동영상에 합성합니다. 이를 위해 기본적인 컬러 이미지 처리 방법과 다양한 색 공간의 특징에 대해 배웁니다.

동전 카운터

이미지의 에지 정보를 이용하여 원을 검출하는 방법을 배우고, 이를 이용하여 주어진 이미지에서 동전 영역을 검출합니다. 검출된 각각의 동전으로부터 부분 이미지를 추출하고, 동전의 색상 정보를 활용하여 얼마짜리 동전인지를 가늠합니다. 자동으로 계산된 동전의 전체 금액은 이미지에 직접 표시합니다.

문서 스캔 프로그램

문서를 사진으로 찍어 반듯한 직사각형 형태로 만들어서 저정해주는 프로그램입니다. 주어진 이미지에서 상대적으로 밝은 영역을 모두 검출하고, 이중 사각형 형태의 영역을 찾아 네 개의 모서리 위치를 알아냅니다. 자동으로 검출된 모서리 위치는 사용자가 적절히 조정할 수 있고, 최종적으로 네 모서리를 직사각형 형태가 되도록 이미지 와핑을 수행합니다.

핸드 모션 리모컨

카메라 앞에서 움직이는 사용자의 손 움직임을 계산하여 리모컨의 네 방향을 지정할 수 있는 시뮬레이션 프로그램입니다. 움직임 정보를 추출하고, 이를 이용하여 주된 움직임 방향을 계산합니다.

AR 비디오 플레이어

실제 카메라 화면에 가상의 동영상이 중첩되어 나타나는 기술을 AR(증강현실)이라고 하며, 이 기술을 활용한 동영상 재생 프로그램입니다. 카메라 입력 화면에 특정 사진이 나타나면 해당 사진 영역에 미리 설정해놓은 동영상이 자연스러운 형태로 재생됩니다. 카메라를 사진에 가까이 가져가면 동영상이 확대되어 나타나고, 사진을 멀리서 촬영하면 동영상이 축소되어 나타납니다. 이 프로그램은 특징점 검출과 매칭, RANSAC, 호모그래피 계산 등의 고수준의 컴퓨터 비전 알고리즘이 사용됩니다.

화상 미팅 배경 합성 프로그램

ZOOM과 같은 화상 미팅 프로그램에서 지원되는 배경 합성 기능입니다. 카메라 앞에 앉아 있는 사람의 머리, 목, 어깨 등의 외곽선을 감지하여 사람과 배경 영역을 분할하고, 배경 영역에는 다른 이미지를 합성합니다. 사람 분할은 미리 학습된 딥러닝 모델을 사용하고, OpenCV에서 이 모델을 불러와 사용하는 방법을 설명합니다.

컴퓨터 비전 알고리즘을 밑바닥부터 구현하고,
OpenCV를 활용한 프로그램 개발을 희망하는 분들을 위한 과정 입니다.

인터넷 강의와 유튜브 영상 자료를 통해 독학으로 키울 수 있는 실력의 한계를 느끼신 분


OpenCV를 이용하는데 있어서 원리 파악에 부족함을 느끼고, 응용에 한계를 느끼신 분


OpenCV 함수 내부의 소스 코드 분석과 디버깅 방법까지 배우고 싶으신 분


증강현실(AR), 화상 미팅 배경 합성 프로그램 등을 직접 구현하며 컴퓨터 비전 프로그램을 하고 싶은 분


C++의 빠른 연산을 통해 방대한 양의 이미지 데이터를 빠르게 처리하고 싶으신 분


컴퓨터 비전, 영상 처리, 영상 분석이 필요한 소프트웨어 개발자, 앱 개발자


병원, 카메라 개발, CCTV, 금융 회사 등 영상 분석이 필요한 직종에 종사하시는 개발자

1기~22기
기수강생 직업 분포

OpenCV의 기초부터 고급 기법까지
체계적으로 배울 수 있는 과정은 찾기 어려우실거에요.

OpenCV 오프라인 과정은 컴퓨터 비전의 원리와 활용을 모두 다루고 있습니다.
그래서 몇몇 알고리즘은 OpenCV 함수 활용법만 배우는 것이 아니라 직접 구현하는 방법까지 수업에서 다룹니다.
그렇기 때문에 사용하는 프로그래밍 언어도 파이썬보다는 C++을 주로 다룹니다.
그러므로 C++ 기초 문법과 일반적인 C++ 코딩 방법에 대해 어느 정도 알고 있어야 원활한 수업 이해가 가능할 것 같습니다.
(C++ 기초 문법이 부족하신 분들을 위해 온라인 녹화 강의를 미리 촬영해 두었습니다. 개강 전에 수강하실 수 있도록 하겠습니다.)

그동안 오프라인 과정을 진행하면서 정해진 강의 시간동안 최대한 많은 이론과 팁을 전달하기 위해,
강의 시간에 실습 시간을 많이 드리지 못했던 것 같습니다. 한편으로 아쉬움이 많았습니다.
그러다보니 코딩에 익숙한 분들은 수업을 잘 따라오는데, 또 그렇지 못한 분들도 있었습니다.

그래서 이번에는 모든 수강생 분들이 수업을 잘 따라오고 있는지를 확인하기 위해 과제를 내드리고,
작성한 코드에 대한 피드백도 드리고자 합니다. 많은 분들이 8주 동안 많은 것을 얻어가시고,
수업이 끝난 이후에도 커뮤니티를 통해 최신의 정보들 습득하실 수 있으면 좋겠습니다.

황선규 강사님

[약력]
– 한양대학교 영상 처리 전공 박사
* 주요 연구 분야 : 객체의 모양 기술, 객체 분할, 패턴 인식 등
– 전) 뉴질랜드 캔터베리 대학교, 한양대학교 PostDoc과 연구 교수
* 실시간 특징점 매칭 연구 진행
– 전) LG 전자 옵티머스 LTE II, G2 등 전략 모델의 카메라 기능 개발 및 Framework 업무 담당

[주요저서]
– OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝 (길벗, 2019년)
– 영상 처리 프로그래밍 by Visual C++ (한빛미디어, 2007년)
– Visual C++ 영상 처리 프로그래밍 (길벗, 2015)
– OpenCV 제대로 배우기 (한빛미디어, 2009년, 번역서)
안녕하세요,
자기소개 부탁드립니다.
안녕하세요, 수강생 여러분. OpenCV 강의를 진행할 강사 황선규입니다. 저는 대학원에서 영상 처리 및 컴퓨터 비전을 전공으로 박사 학위를 받았고, 컴퓨터 비전과 OpenCV에 관한 책을 다수 집필하였습니다. 저는 2016년부터 패스트캠퍼스에서 'OpenCV C++로 배우는 컴퓨터 비전 프로그래밍 CAMP' 강의를 진행하였고, 코로나 시국동안은 여러 회사와 대학에서 온라인 줌(zoom) 위주로 강의를 진행했습니다. 이제 코로나가 진정되고, 패스트캠퍼스에서 다시 오프라인 강의를 시작한다고하여 반가운 마음으로 강의를 준비하고 있습니다. 그동안 온라인 강의에서 느낄 수 없었던 현장감있는 face-to-face 강의를 원하시는 분들의 많은 수강을 기대하고 있습니다.

이번 과정에 특히 신경쓰신 부분이 있다면
어떤 것이 있으신지 궁금합니다.
올해는 OpenCV 5.0 버전이 새로 출시될 것 예정되어 있습니다. 그래서 이번에 새로 오픈되는 강의에서도 가급적이면 OpenCV 5.0에서 나타날 것으로 예상되는 변화를 따라가려고 합니다. 몇몇 사라지는 기능도 있고, 좀 더 보강되는 기능도 있습니다. 특히 딥러닝에 대한 지원은 지속적으로 늘어나고 있어서, OpenCV 최신 버전에서 다룰 수 있는 딥러닝 모델들을 좀 더 살펴보려고 합니다.

과정 참가를 고민하시는 분들께
한 마디 부탁드립니다.
구글에서 OpenCV 강의를 찾아보면 꽤 많은 강의를 발견할 수는 있지만, 기초부터 고급 기법까지 체계적으로 알려주는 강의는 찾기 어렵습니다. 특정 컴퓨터 비전 토픽을 단편적으로 알려준다거나, 또는 단순히 OpenCV 함수 활용법만 알려줘서 정작 내가 만들려고 하는 프로그램에 어떻게 적용해야하는지 고민해야 하는 경우를 많이 봐왔습니다. 저는 대학에서 영상 처리와 컴퓨터 비전을 전공하였고, 다수의 컴퓨터 비전 및 OpenCV 책을 집필하였기 때문에 초보자분들도 컴퓨터 비전의 기초부터 전문적인 내용까지 이해할 수 있는 강의를 제공하고 있습니다. 특히 오프라인 강의는 강사와 수강생 분들과의 직접적인 소통이 가능하기 때문에 더욱 원활한 지식 전달이 가능하다고 생각합니다. 8주간의 과정을 통해서 컴퓨터 비전을 제대로 이해할 수 있는 기회를 잡기 바랍니다.

수강 전 워밍업이 필요하신 분들을 위해
황선규 강사님의 C++ 영상 강의도 제공합니다.

C++ 영상 강의 제공
- 오프라인 과정에서는 C++를 실습의 주 언어로 사용합니다.
- Python이 익숙하신 분들을 위해 Python 코드도 별도로 제공합니다.
- C++ 기초 영상 강의는 개강 전 이메일로 안내 드립니다.

8주 동안 매주 프로젝트로 학습하는
실습 중심의 커리큘럼입니다.

1주차
이미지 슬라이드쇼
1교시 : 컴퓨터비전과 이미지
- 컴퓨터 비전 개요
- 이미지 구조와 표현 방법
- 이미지 파일 형식 특징
- 이미지 처리 프로그래밍의 기초

2교시 : OpenCV 개요와 설치
- OpenCV 개요
- OpenCV 구조와 모듈
- OpenCV 설치와 시스템 환경 변수 설정하기
- OpenCV 직접 빌드하는 방법

3교시 : OpenCV 예제 프로젝트 만들기
- OpenCV 예제 프로젝트 만들기: HelloCV
- OpenCV 예제 프로그램 빌드와 실행
- OpenCV 프로젝트 템플릿 만들기

4교시 : OpenCV 주요 함수 설명
- HelloCV 프로그램 주요 함수 설명: imread(), imwrite(), namedWindow(), destroyWindow(), imshow(), waitKey()
- OpenCV 그리기 함수 사용법
- OpenCV 도움말 사용법
2주차
동영상 자동 컷 검출 및 디졸브 적용
1교시 : OpenCV 주요 클래스
- Point, Size, Rect, Range, String 클래스
- Mat 클래스
- Vec, Scalar 클래스
- InputArray, OutputArray 클래스

2교시 : OpenCV 주요 기능
- 관심 영역과 마스크 연산
- 카메라와 동영상 처리
- 연산 시간 측정
- 마우스 이벤트 처리하기

3교시 : 이미지의 밝기와 명암비 조절
- 이미지의 화소 처리 기법
- 이미지의 밝기 조절: 직접 구현 방법 & OpenCV 사용 방법
- 이미지의 명암비 조절: 기초와 응용

4교시 : 히스토그램 분석
- 히스토그램 정의와 특징
- 이미지의 히스토그램 구하기
- 히스토그램 스트레칭과 평활화
- 히스토그램 비교
3주차
크로마키 동영상 합성
1교시 : 필터링 (1)

- 필터링 개요와 동작 원리
- 엠보싱 필터 구현하기
- 평균값 필터

2교시 : 필터링 (2)
-가우시안 필터
-언샤프 마스크 필터
-양방향 필터
-미디언 필터

3교시 : 컬러 이미지 처리 (1)
- 컬러 이미지 픽셀 접근 방법
- 다양한 색 공간:RGB, HSV, YCrCb 색 공간
- 색상 평면 나누기

4교시 : 컬러 이미지 처리 (2)
-컬러 히스토그램 평활화
-특정 색상 추출 기법
-히스토그램 역투영
4주차
동전 카운터
1교시 : 기하학적 변환 (1)
- 이동 변환
- 크기 변환과 보간법
- 회전 변환

2교시 : 기하학적 변환 (2)
- 전단 변환
- 어파인 변환과 투시 변환
- 리매핑

3교시 : 에지 검출
- 에지 검출 원리
- 그래디언트와 소벨 필터
- 캐니 에지 검출기

4교시 : 허프 변환
- 허프 변환 직선 검출
- 허프 변환 선분 검출
- 허프 변환 원 검출
5주차
문서 스캔 프로그램
1교시 : OpenCV GPU 활용
- CUDA 개요
- CUDA를 활성화하여 OpenCV 빌드하기
- OpenCL 개요
- OpenCV T-API 사용법

2교시 : 이진화와 모폴로지
- 이진화 원리와 구현
- 자동 임계값 결정: 오츠 방법
- 지역 이진화와 적응형 이진화
- 모폴로지 연산

3교시 : 레이블링
- 레이블링 원리와 구현
- 객체 단위 분석

4교시 : 외곽선 검출과 응용
- 외곽선 검출과 구현
- 다양한 OpenCV 외곽선 함수
6주차
핸드 모션 리모컨
1교시 : OpenCV 병렬 프로그래밍
- 병렬 프로그래밍 개요
- cv::parallel_for_() 함수 사용법
- 룩업 테이블 기법

2교시 : 템플릿 매칭
- 템플릿 매칭 기초
- 템플릿 매칭 응용: 다중 객체 검출
- 템플릿 매칭 응용: 인쇄체 숫자 인식

3교시 : 배경 차분과 객체 추적 (1)
- 배경 차분의 기초
- 이동 평균 배경
- MOG 배경 모델

4교시 : 배경 차분과 객체 추적 (2)
- 평균 이동 알고리즘
- 캠시프트 알고리즘
- 모션 벡터 추출
7주차
AR 비디오 플레이어
1교시 : 코너 검출 기법
- 코너의 특징
- 다양한 코너 검출 방법: Harris, GFTT, FAST 방법
- 서브 픽셀 정확도

2교시 : 크기 불변 지역 특징점 검출
- 크기 불변 지역 특징점 기초
- SIFT 알고리즘과 ORB 알고리즘
- OpenCV 특징점 검출 코드 작성 방법

3교시 : 특징점 기술과 매칭 (1)
- 특징점 기술자 원리
- SIFT 특징점 기술 방법
- ORB 특징점 기술 방법

4교시 : 특징점 기술과 매칭 (2)
- 기본적인 특징점 매칭 방법
- 좋은 매칭 선별 방법
- 호모그래피와 이미지 매칭
8주차
화상 미팅 배경 합성 프로그램
1교시 : 딥러닝 기초
- 머신러닝과 딥러닝
- 신경망 기초: 퍼셉트론
- 비용함수, 경사하강법, 역전파

2교시 : 딥러닝 학습과 추론
- 컨볼루션 신경망
- MNIST 학습
- OpenCV DNN 모듈 사용하기

3교시 : OpenCV와 딥러닝 활용 (1)
- 구글넷 이미지 인식
- SSD 얼굴 검출, YuNet 얼굴 검출, Sface 얼굴 인식

4교시 : OpenCV와 딥러닝 활용 (2)
- YOLO 객체 검출
- MaskRCNN 객체 분할
- PPOCR 텍스트 검출, CRNN 텍스트 인식
- PPHumanSeg 사람 분할

상세 커리큘럼 다운받기

패캠 강남역 오프라인 과정은
이렇게 진행 됩니다.

Process
Community

종강 후에도 궁금한 내용은 언제든 강사님께 질문하고
동료들과 함께 성장할 수 있는 커뮤니티

질의 응답 커뮤니티! 이렇게 이용하면 활용도 200%
✓ 실습 중 에러가 나면? 강사 & 수강생간 실시간 질의응답으로 빠른 해결
✓ 강의를 듣는 중 이해가 안가는 부분이 생기면 바로 질문
✓ 트렌드와 커리어 등 고민을 함께 나누는 커뮤니티

* 본 커뮤니티는 디스코드를 통해 운영 되며 30일간 지속 됩니다.
* 강사님이 현업 중 답변하시기에 답변까지 영업일 기준 2일 내외 시간이 소요될 수 있습니다.
Recorded Video

경조사로 인해 참석하지 못한
오프라인 수업도 녹화본으로 출석 가능

녹화본 영상! 이렇게 활용하세요!
✓ 복습 중 생각나지 않는 내용이 있다면 다시 보기
✓ 일정으로 참석하지 못한 날의 수업 진도 따라잡기
✓ 필기 중 놓친 부분 확인하기

* 본 녹화본 영상은 종강 후 30일간 무제한 다시보기가 가능합니다.
* 오프라인 현장 촬영으로 인해 음질 및 화질이 균일하지 않을 수 있습니다.
Classroom

강남역 4번 출구
도보 ‘3초’ 거리에 있는 강의실

미왕빌딩 10층

[도로명] 서울 강남구 강남대로 364
[지번] 역삼동 826-21

네이버 지도 바로가기 →
쾌적한 강의장

강의에 집중할 수 있는
최적의 강의장

자주 묻는 질문
FAQ