Thumbnail
개발 · 프로그래밍 교양 · 기타

파이썬 무료 강의 (활용편6) - 이미지 처리 (OpenCV)

(5.0)
16개의 수강평 ∙ 837명의 수강생

무료

지식공유자: 나도코딩
총 48개 수업 (5시간 40분)
수강기한: 무제한
수료증: 미발급
난이도:  입문-초급-중급이상
지식공유자 답변: 미제공
폴더에 추가 공유
초급자를 위해 준비한
[개발 · 프로그래밍, OpenCV] 강의입니다.

파이썬을 활용하여 컴퓨터 비전 및 이미지 처리의 최강자인 OpenCV 라이브러리의 사용법을 익히고, 다양한 재미있는 프로젝트를 통해 실생활에 이미지 처리를 응용하는 방법을 공부합니다.

✍️
이런 걸
배워요!
이미지 처리에 빠질 수 없는 OpenCV 의 사용법
반자동 문서 스캐너 개발 (미니 프로젝트 #1)
사진에서 카드 검출 및 분류하는 프로그램 개발 (미니 프로젝트 #2)
얼굴 인식을 통한 캐릭터 씌우기 (실전 프로젝트)

다양하고 재밌는 프로젝트를 통해 배우는
파이썬 활용 이미지 처리 강의!

📢 강의 수강 전 확인해주세요.

  • 강의 속 개발환경은 Jupyter Notebook, Python 3.x입니다.

일상 속에서 매일 만나는
이미지 처리

 

불과 얼마 전까지만 해도 식당이나 카페 등 어떤 장소에 방문하실 때 QR 코드를 인식해야 했었는데요. QR 체크인을 한 번이라도 해보셨다면 여러분은 벌써 이미지 처리를 경험하신 겁니다. 스마트폰 화면에 떠 있는 QR 코드를 매장 입구에 비치된 기기에 적당한 거리에서 갖다 대면 자동으로 영역을 찾아서 QR 을 인식하게 되지요.

(출처 : https://www.emkat.com/products/emkat-temperature-screening-kiosk/)

체온 측정도 한 번쯤 해보셨을 텐데요. 사람 키 높이에 태블릿을 설치하여 거기에 사람 얼굴을 대면 자동으로 얼굴 영역을 검출하고 체온을 측정하여 정상 여부를 알려주기도 합니다.

이처럼, 이미지 처리(컴퓨터 비전)란 이미지 데이터로부터 유용한 정보를 얻기 위해 이미지를 조작하고 분석하는 과정을 의미합니다. 카메라로 인식된 이미지 중에서 QR 코드를, 또는 사람 얼굴을 자동으로 검출하는 것 외에도 정말 많은 분야에서 활용되고 있어요.

얼굴 필터, 이런 거 다들 한 번씩은 해보셨죠?

(출처 : https://play.google.com/store/apps/details?id=com.campmobile.snow&hl=ko )

그 외에도 몇 개 생각해 보자면,
뉴스에 내보낼 인터뷰 동영상에서 사람 얼굴 찾아서 그 부분만 모자이크 한다든지,
차량 블랙박스 동영상을 올리려는데 다른 차의 번호판을 자동으로 찾아서 모자이크 하거나,
아, 번호판이라면 유료 주차장 들어가고 나올 때도 자동으로 인식을 하지요?

사용자에게 어울리는 옷을 추천한다든지,
자동으로 몸 부분에 가상으로 옷을 입혀본다든지,
잘생겼나 못생겼나 확인하는 재미난 콘텐츠도.. 닮은꼴 연예인이라든지,
손동작을 인식해서 마이너리티 리포트에 나오는 슉슉 하는 걸 만든다든지,
보안 검색대를 통과할 때 소지하면 안 되는 물품을 자동으로 인식한다든지 등..

OpenCV

이미지 처리는 OpenCV의 도움을 받아서 진행합니다.
OpenCV는 실시간 이미지 처리를 위한 오픈소스 라이브러리인데, 아주 그냥 뭐 최고입니다 ㅎㅎ


강의에서는 OpenCV를 이용해서 무엇을 할 수 있는지 다양한 예제를 통해 하나씩 알아볼게요.

#1 예제

원본 이미지를 다양한 방법으로 변형시켜볼게요.

원본 이미지

돌리기

자르기

 

크기 줄이기

흑백 효과

흐릿하게 하기

너무 쉬워 보이나요? 😀
조금 더 깊게 들어가 보겠습니다.

#2 예제

책에 있는 모든 글자 부분을 얻어오려고 합니다.

원본 이미지

책을 읽는 사진이 한 장 있습니다.

grayscale 변환

먼저 이미지를 단순하게 하기 위해 grayscale로 변환을 해줍니다. 컬러보다는 흑백이 훨씬 아무래도 더 단순하겠죠?

 

threshold 함수

빨갛게 칠해진 영역의 글자를 얻어오기 위해서 OpenCV의 threshold란 함수를 이용할 수 있어요. 하지만 딱 원하는 부분이 잘 보이지가 않네요. 이건 햇빛 그림자로 인해 밝은 부분과 어두운 부분이 공존해서 그렇습니다. 이미지 전체를 기준으로 적용하다 보니 그런 건데요.

adaptive threshold 적용

이럴 때는 adaptive threshold란 것을 적용하면, 어때요, 훨씬 낫죠? 이렇게 하면 이미지를 작은 영역으로 나누어서 처리하다 보니 햇빛(또는 조명 등)에 따른 음영 차이가 있어도 책에 있는 글자 부분들을 선명하게 찾아낼 수 있어요!

#3 예제

이미지 처리에는 침식, 팽창이란 것도 있는데 이들을 적당히 조합한 열림 & 닫힘 연산이란 것도 쉬운 예제와 함께 공부합니다. 각각 어떤 식으로 동작하는지 자세한 설명은 물론, 어떤 경우에 써야 하는지도 쉽게 파악이 가능할 거예요.

열림 연산

 

닫힘 연산

음... 이 사진만 봐서는 잘 모르실 수도 있겠네요😊
이런 것도 해볼 수 있어요!

#4 예제

이미지 내에서 어떤 영역을 찾아서 변형을 주면 이렇게 사다리꼴 형태의 이미지로부터 직사각형 형태로 이미지를 펼칠 수도 있고요.

#5 예제

원하는 영역을 선택해서 추출해 보는, 반자동 문서 스캐너도 만들 수 있습니다.
예제에서는 카드 이미지로 해볼게요.

조금 더 나아가면 윤곽선 검출이란 것을 통해서 이미지 내에서 자동으로 카드 또는 문서가 있는 영역을 검출해서 추출해 볼 수도 있어요.

강의에서 다루지는 않지만 글자 영역을 검출하여 읽어내면 어떤 종류의 카드가 있는지도 쉽게 확인이 가능하지요. 명함 관리 프로그램으로 응용한다면 글자를 읽어내서 이름 / 전화번호 / 이메일 주소 등을 분류해서 저장도 할 수 있겠고요. 비대면 계좌 개설 서비스를 제공하는 입장이라 하면 신분증으로부터 원하는 영역의 글자를 읽어와서 자동으로 입력항목을 채우고, 또 주민등록번호 부분은 알아서 모자이크 또는 가리기 처리를 해볼 수도 있겠네요.

#6 예제

이러한 이미지 처리 기법들을 통해서 사람 얼굴을 찾아서 재미난 뭔가를 하는 게 빠질 수 없겠죠?
프로젝트에서는 mediapipe라는 패키지의 도움을 받을 건데요. (https://google.github.io/mediapipe/)

홈페이지에 소개된 것처럼 얼굴 검출뿐 아니라 사물 인식, 모션 인식 등 굉장히 다양하고 재미있는 작업들을 해볼 수 있답니다.

우리는 그중에 가장 처음에 소개되는 얼굴 검출의 예제 코드를 응용해 볼 텐데요. 이걸 이용하면 이미지 내에서 사람 얼굴을 찾아서 눈, 코, 입, 귀의 위치를 단 몇 줄의 코드로 찾아낼 수 있고 거기에 도형도 그려볼 수 있어요.

도형 말고 동물 이미지를 한번 씌워볼까요? 똥손으로 그린 귀와 코입니다.

 

이걸 씌워보니

이렇게 되네요🤣

이제 다 되었습니다. 진짜 그럴듯한 캐릭터 이미지를 하나 구해와서 덮어 씌워보면

짠!! 이 아저씨 얼굴에 귀여운 캐릭터 이미지를 씌워봤습니다.
사실 이 과정에서 투명도 처리를 위한 작업이 조금 있는데, 강의 뒷부분에서 아주 자세히 설명드리니 걱정하지 않으셔도 됩니다.

여기까지 공부하고 나면 여러분 머릿속에는 온갖 창의적인 아이디어가 떠오르면서 당장 적용하고 싶은 욕구가 생길 수도 있습니다. 물론 쉽게 구현도 해볼 수 있을 거고요. 개구쟁이처럼 장난스러운 프로그램도 만들 수 있을 거고요 ✨

이 모든 내용이 약 5시간 40분이면 충분합니다.

그럼, 지금 바로 시작해 볼까요?

 

Designed by Freepik
 https://www.freepik.com

Images, Videos by Pixabay, Pexels
https://www.pixabay.com
https://www.pexels.com

지식공유자가 알려주는
강의 수강 꿀팁!
🎓
이런 분들께
추천드려요!
파이썬 기본을 공부하신 분
파이썬을 실생활에 활용해보고 싶은 분
다양한 이미지처리 기법을 통해 나만의 프로젝트를 완성하실 분

안녕하세요
나도코딩 입니다.
나도코딩의 썸네일

초보자에게는 너무도 어렵게만 느껴지는 코딩,
차근차근 쉽고 재미있게 알려드리겠습니다. ^^
함께 하실래요?

YouTube 바로가기

 

커리큘럼 총 48 개 ˙ 5시간 40분의 수업
이 강의는 영상이 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 1. OpenCV 전반전
환경설정 미리보기 04:03 이미지 출력 미리보기 13:09 동영상 출력 #1 파일 미리보기 08:06
동영상 출력 #2 카메라 04:23
도형 그리기 #1 빈 스케치북 05:25
도형 그리기 #2 영역 색칠 02:36
도형 그리기 #3 직선 08:55
도형 그리기 #4 원 03:44
도형 그리기 #5 사각형 03:22
도형 그리기 #6 다각형 10:50
텍스트 #1 기본 08:21
텍스트 #2 한글 우회 06:27
파일 저장 #1 이미지 05:12
파일 저장 #2 동영상 10:00
크기 조정 10:45
이미지 자르기 06:45
이미지 대칭 04:41
이미지 회전 04:20
이미지 변형 - 흑백 05:17
이미지 변형 - 흐림 06:37
이미지 변형 - 원근 #1 09:41
이미지 변형 - 원근 #2 05:03
섹션 2. 반자동 문서 스캐너 프로젝트
마우스 이벤트 등록 09:13
기본 코드 완성 07:46
지점 선 긋기 05:29
실시간 선 긋기 미리보기 06:26
섹션 3. OpenCV 후반전
이미지 변형 - 이진화 #1 Trackbar 12:44
이미지 변형 - 이진화 #2 임계값 05:47
이미지 변형 - 이진화 #3 Adaptive Threshold 미리보기 08:06
이미지 변형 - 이진화 #4 오츠 알고리즘 03:47
이미지 변환 - 팽창 08:46
이미지 변환 - 침식 04:45
이미지 변환 - 열림 & 닫힘 08:12
이미지 검출 - 경계선 10:57
이미지 검출 - 윤곽선 #1 기본 10:16
이미지 검출 - 윤곽선 #2 찾기 모드 05:19
이미지 검출 - 윤곽선 #3 면적 06:54
섹션 4. 카드 검출 & 분류기 프로젝트
섹션 5. 퀴즈
퀴즈 09:21
섹션 6. 얼굴인식 실전 프로젝트
환경설정 및 기본 코드 정리 13:19
눈과 코 인식하여 도형 그리기 15:53
그림판 이미지 씌우기 10:09
캐릭터 이미지 씌우기 미리보기 12:16
보충설명 07:42
마치며 (학습 참고 자료) 01:24
강의 게시일 : 2022년 04월 12일 (마지막 업데이트일 : 2022년 04월 12일)
수강평 총 16개
수강생분들이 직접 작성하신 수강평입니다. 수강평을 작성 시 300잎이 적립됩니다.
5.0
16개의 수강평
5점
4점
3점
2점
1점
VIEW 좋아요 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
egs41 thumbnail
도움이 많이 되었습니다. 유익한 강의 감사합니다.
2022-09-20
허종덕 thumbnail
감사합니다
2022-08-30
yoonsic38 thumbnail
유튜브에서도 이미 수강했는데 감사했습니다!
2022-08-18
Keonsu Jin thumbnail
무료이지만, 아주 좋은 강의였던 것 같습니다. opencv를 python에서 다뤄보는 입문 강의로써 추천합니다.
2022-08-16
정지범 thumbnail
정말 좋습니다 굳굳
2022-08-08
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의를
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스