OpenCV 실전 활용 — 명함인식 만들기

이미지 인식에 관심있으신가요?

마이캠퍼스
7 min readJan 6, 2017

OpenCV 그 이상의 이미지 인식을 위해서는 딥러닝 (CNN — Convolutional Neural Network) 이 필요합니다.

“딥러닝과 CNN을 이용한 이미지 인식” 을 빠르게 잘 배우는 길은 여기로 → https://pg.mycampus.io/?idx=79

https://pg.mycampus.io

명함인식을 구현하는 실전을 통해 Python기반으로 OpenCV를 활용하고 이미지를 처리하는 방법을 배웁니다.

OpenCV는 동일한 이름의 클래스, 메쏘드로 C++, Python 등 여러 언어로 제공되기 때문에, 안드로이드와 iOS에도 적용가능한 이미지 인식 및 처리 기술을 익힐 수 있습니다.

오프라인 세미나를 여러번 진행하며 더욱 개선된 내용을 온라인으로 제공합니다. 명함 인식에 바로 활용할 수 있는 소스 코드와 강의 슬라이드 파일이 제공됩니다.

강의 상세 내용

OpenCV 기초

  • 색상추출
  • 필터효과
  • 객체인식
  • 투영변환
  • 머신러닝
  • OpenCV-Python 소개 및 설치
  • Jupyter Notebook 소개 및 설치

OpenCV 실전

  • 이미지 읽기, 쓰기 및 표시하기
  • 이미지 위에 도형 그리기
  • 색상추출 구현하기
  • 투영변환 구현하기 (Projection Transformation)
  • 이미지에서 텍스트 영역만 찾아내기 구현

명함 인식의 각 단계별 구현

  1. 사진에서 명함 영역 찾기 — Canny Edge Detection, GaussianBlur(), Canny(), findContours(), approxPolyDP(), …
  2. 비스듬한 명함을 반듯한 사각형으로 변환하기 — 투영변환 (Projection Transformation), Affine Transformation, Warp Transformation, getAffineTransform(), warpAffine(), getPerspectiveTransform(), warpPerspective(), …
  3. 다른 조명 밝기의 영향을 제거하기, 사각형 명함 영역에서 텍스트 영역을 찾기 — adaptiveThreshold(), …
  4. OCR 엔진을 이용하여 글자를 인식하기 — Tesseract활용, Microsoft Oxford 이미지 인식 서비스, MS Cognitive Services연동 및 활용

강의 및 소스코드에서 사용되는 OpenCV 함수들

  • cv2.Canny()
    cv2.GaussianBlur()
    cv2.VideoCapture()
    cv2.adaptiveThreshold()
    cv2.approxPolyDP()
    cv2.arcLength()
    cv2.boundingRect()
    cv2.boxPoints()
    cv2.contourArea()
    cv2.convertScaleAbs()
    cv2.createTrackbar()
    cv2.cvtColor()
    cv2.destroyAllWindows()
    cv2.dilate()
    cv2.drawContours()
    cv2.findContours()
    cv2.getAffineTransform()
    cv2.getPerspectiveTransform()
    cv2.getTrackbarPos()
    cv2.imread()
    cv2.imshow()
    cv2.imwrite()
    cv2.minAreaRect()
    cv2.namedWindow()
    cv2.rectangle()
    cv2.resize()
    cv2.threshold()
    cv2.waitKey()
    cv2.warpAffine()
    cv2.warpPerspective()

OpenCV 관련 상수값 (함수들의 옵션값)

  • cv2.ADAPTIVE_THRESH_MEAN_C
    cv2.CHAIN_APPROX_SIMPLE
    cv2.COLOR_BGR2GRAY
    cv2.IMREAD_COLOR
    cv2.IMREAD_GRAYSCALE
    cv2.RETR_LIST
    cv2.RETR_TREE
    cv2.THRESH_BINARY
    cv2.WINDOW_NORMAL

“OpenCV를 활용하여 명함 인식 만들기” 인터넷 강의로 가기

세미나 하이라이트 동영상

소스의 데모 실행

인터넷 강의에서 제공하는 소스코드를 실행하여 노트북 웹캠으로 명함을 실시간으로 인식하는 데모 영상입니다

강의 (세미나) 내용 세미나

‘리멤버’(명함인식) 기술, 당신도 만들 수 있다 !

명함인식 서비스를 개발하려면 아래과 같은 처리 단계를 구현해야 합니다. 각각의 단계를 opencv 기반으로 구현하는 방법을 상세 설명합니다. 실제 동작하는 소스 코드를 제공하여 같이 실습을 하도록 합니다. 이 소스를 기반으로 명함 인식 기술과 유사한 다른 응용 앱들을 개발할 수 있을 것입니다. 그리고 open기반의 이미지 처리 및 인식 개발 과정에서 노하우와 trouble shooting 에 대하여 자유롭게 질의 응답하는 시간을 가질 것입니다.

명함 인식의 처리 단계(이를 위한 알고리즘 및 소스코드 제공)

  1. 사진에서 명함 영역 찾기
  2. 비스듬한 명함을 반듯한 사각형으로 변환하기
  3. 사각형 명함 영역에서 텍스트 영역을 찾기
  4. 다른 조명 밝기의 영향을 제거하기
  5. OCR 엔진을 이용하여 글자를 인식하기 (외부 OCR 모듈 및 서비스 활용)
제공되는 소스코드로 실행한 인식 처리 단계1
제공되는 소스코드로 실행한 인식 처리 단계2
제공되는 소스코드로 실행한 인식 처리 단계3
실습내용 — 사진에서 명함영역 찾기
실습내용 — 반듯하게 만들기
실습내용 — 조명의 효과를 제거하기
세미나내용 — 텍스트 블록 찾기
세미나내용 — face detection
세미나내용 — 색상추출하기
실습내용 — OCR(문자인식) 활용하기
세미나내용 — 외곽 추출 & Contour

강사 소개

변동남

이미지 처리 및 인식 기반의 스마트폰 앱 서비스를 직접 개발하고 운영한 SW 개발자입니다.

변동남 강사 (마이크로소프트 이매진컵 참가시)
  • 미래창조과학부 인재양성 프로그램( SW마에스트)에서 100인 중 최종 인증자 9인 선정 (2016)
  • Imagine Cup Korea Finals — World Citizenship 분야 우승 (2015)
  • 한양대학교 컴퓨터전공 (2010~)
  • 색상추출

세미나 상세 내용

OpenCV 활용 소개

  • 색상추출
  • 필터효과
  • 객체인식
  • 투영변환
  • 머신러닝
  • OpenCV-Python 소개 및 설치
  • Jupyter Notebook 소개 및 설치

OpenCV-Python 실전 (명함 인식 기술)

  • 이미지 읽기, 쓰기 및 표시하기
  • 이미지 위에 도형 그리기
  • 색상추출 구현하기
  • 얼굴영역 인식 구현하기
  • 투영변환 구현하기
  • 이미지에서 텍스트 영역만 찾아내기 구현

--

--

마이캠퍼스
마이캠퍼스

Written by 마이캠퍼스

python과 딥러닝의 시작 — 마이캠퍼스

No responses yet