Coursera Machine Learning(11): 사진의 광학 문자 인식(Photo OCR)

학습기기에 가장 적합한 교재Machine Learning | Coursera로 꼽히는 것을 들었기 때문에 복습과 학습의 내용을 간단하게 요약하고 싶습니다.
마지막 회에서는 11탄이 사진 OCR(Photo Optical Character Recognition)이었다.
 
기계학습의 응용 사례인 컴퓨터시각시스템(Computer Vision), 인공데이터 합성(Artificial Data Synthesis), 천장분석(Ceiling Analysis) 등 기계학습을 실제로 사용하는 프로젝트를 진행할 때 불가결하거나 부족한 요소도 함께 학습한다.
과거의 보도
Coursera Machine Learning(1): 머신러닝이란 무엇입니까?단회귀분석, 최급하강법, 목적함수
Coursera Machine Learning(2): 재회귀 분석, 정표, 정규 방정식
Coursera Machine Learning(3): 논리적 회귀, 정규화
Coursera Machine Learning(4): 신경 네트워크 시작
Coursera Machine Learning(5): 신경 네트워크 및 역방향 속성
Coursera Machine Learning(6): 기계 학습의 모델 평가(교차 심사, Bias & Variance, 부합률 & 재현율)
Coursera Machine Learning(7): 벡터 머신(SVM), 커널(Kernel) 지원
Coursera Machine Learning(8): 무교사 학습(K-Manas), 주성분 분석(PCA)
Coursera Machine Learning(9): 예외 감지(Abnomaly Detection), 레거시 시스템(Recommerder System)
Coursera Machine Learning(10): 대규모 기계 학습

사진 OCR(Photo Optical Character Recorgnition)


인간을 비롯한 영장류는 다른 종에 비해 시각이 좋다.얼굴이든 물체든 신원을 빠르게 식별하고 식별할 수 있도록 이를 바탕으로 행동한다.만약 기계가 인간과 동등한 시각적 인지 능력을 가질 수 있다면 자동차의 오토매틱을 필두로 다양한 응용을 고려할 수 있을 것이다.
사진 OCR, 사진의 광학 문자인식은 기계로 하여금 이미지 내의 문자를 식별하게 하는 시도이다.

위에는 지하철의 광고가 있다.녹색 테두리로 둘러싸인 곳은 문자이며, 사진 OCR의 알고리즘은 이를 정확하게 식별해야 한다.
사람이라면 한순간에 할 수 있지만 기계로 하면 처리를 여러 공정(Pipeline)으로 나눠 각각 필요한 머신러닝 알고리즘을 사용한다.이번 상황은 아래의 파이프라인이다.

1: 기사 탐지(Text Detection)
문자를 포함하는 이미지 ($y=1$) 와 문자를 포함하지 않는 이미지 ($y=0$) 를 대량으로 준비하여 알고리즘을 학습하게 합니다.라벨이 달린 데이터 분류여서 교사가 학습(Supervised Learning)한다.

(Andrew Ng, Coursera Machine Learning Week11 출처)
2: 문자 분리(Character Segmentation)
학생들에게 태그가 달린 데이터를 배우게 하는 것은 같지만 이번에는 글을 문자로 분해하고 싶어서 $y=1$는 $y=0$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

(Andrew Ng, Coursera Machine Learning Week11 출처)
3: 문자 인식(Character Recognition)
알파벳은 26글자에 불과하기 때문에 라벨을 엄격하게 구분해도 26글자에 불과하다.독일어로는 움루트가 있어 26+4=30종으로 늘었다.일본어로는 히라가나, 영화 가명, 한자가 있는데... 나도 생각하고 싶지 않아.
이렇게 생각하면 대량의 훈련 데이터가 필요하다.교사와 학습(Supervised Learning)이 있어 해시태그가 필요해 번거롭다.어떻게 하면 좋을지 얘기해야지.
  • 혼자 힘내세요.
  • 고용 바이트(클라우드 서비스 등을 통해).
  • 인공 데이터 합성(Artificial Data Synthesis)
  • 등 시간과 돈에 따라 상황이 많지만 인공 데이터 합성은 엔지니어의 일과 가장 비슷하다.
    문자 인식의 경우(예:).
  • 글씨체를 바꿉니다.
  • 문자 크기를 변경합니다.
  • 문자를 회전합니다.
  • 문자의 위치를 이동합니다.
  • 오류 문자.
  • 배경을 바꾼다.
  • 임의로 선택한 픽셀 값을 0으로 바꿉니다.
  •  
    (Adam Coates & Tao Wang)
    위의 예라면 가져오기 오류 (distotion) 를 통해 데이터 수가 16배 증가했다.이런 기술을 사용하면 원래와 같은 품질의 인공합성 데이터를 만들 수 있다.

    주의점
    예를 들어 목표 사진이 100x100 픽셀이면 문자가 그 중 어디에 있다.그 크기는 5x5 픽셀에 수용할 수 있지만 50x50 픽셀이 아니면 수용할 수 없을 수도 있다.
     
    모두 검사하기 때문에 보통 여러 픽셀 사이즈의
    슬라이딩 창(Sliding Window)을 사용하여 이미지에 포함된 문자나 스캔(scanning)을 찾습니다.슬라이딩 창이 덮인 구역에서는 기계적으로 학습한 알고리즘으로 문자가 포함되어 있는지 아닌지를 판단해야 한다.

    천장 분석(Ceiling Analysis)


    머신러닝의 파이프라인에서 가장 개선할 수 있는 잠재력을 조사하려면 천장분석(Ceiling Analysis)을 사용하십시오.

    위 표에서 각 요소와 요소의 정밀도가 100%일 때 시스템 전체의 정밀도를 총결하였다.
    현재 시스템 전체의 정밀도는 72퍼센트다.괜찮은 것 같아.이때 문장 검출 알고리즘이 100%라면 전체 시스템의 정밀도는 89%로 높아진다.현황별로는 17% 인상됐다.
    그 다음으로 문자 분리 알고리즘도 100%의 정밀도라면 시스템 전체의 정밀도는 90%로 높아진다.
    "...아, 아까보다 1%밖에 안 올랐네!"
    문자 분리 알고리즘을 개선해도 의미가 없다는 것을 알 수 있다.
    마지막으로 문자인식 알고리즘의 정밀도도 100%라면 시스템 전체의 정밀도도 100%이다.아까부터 10% 의 정밀도를 높였다.
    요약하면 시간, 돈, 인원은 최대 17%의 문장 검측과 문자인식 알고리즘에 활용하여 문자인식의 정확도, 최대 10%의 정확도를 개선해야 한다는 것을 알 수 있다.
    주의점
    "어떤 요소의 정밀도가 100%라면...어떻게 조사할까요?"
    예를 들어 문장 검출 알고리즘의 정밀도를 100%로 설정할 때 시스템 전체의 정밀도를 조사하려면 문장 검출에 사용된 테스트 데이터(Test set)를 수동으로 정밀도 100%로 바꾼다.그리고 다음 파이프라인에 연결하여 최종 정밀도가 얼마나 되는지 보면 된다.

    총결산

  • 사진 OCR 등 과제에는 머신러닝 파이프라인이 있다.
  • 각 파이프라인 소자에 대한 문제에 따라 라벨이 달린 데이터를 수집하고 알고리즘을 학습한다.
  • 데이터가 부족하면 인공합성을 한다.
  • 각 요소의 개선 가능성을 계량화하기 위해 천장 분석을 사용한다.
  • 끝맺다


    이번엔 코스리아 머신 레어닝의 최종회다.사진 OCR이라는 예를 통해 기계 학습의 응용 절차를 배웠다.
    Coursera Machine Learning도 이 week11에서 끝납니다.
    기본적인 디자인이 정말 좋아서 나 같은 초보자도 쉽게 이해할 수 있다.11주가 지나면 기계 학습과 데이터 분석의 전체 내용에 대해 이전과 완전히 다른 경치를 볼 수 있다.이 과정을 만든 앤드류 Ng 교수님께 감사드립니다.
    마지막으로 앤드류 Ng 교수의 말을 인용해 닫고 싶습니다.
    나는 너희들이 기계 학습이 자신의 인생을 좋아지게 할 뿐만 아니라, 가능하다면, 언젠가는 많은 다른 사람들의 인생도 좋아질 것이라고 희망한다.
    I hope that you find ways to use machine learning not only to make your life better but maybe someday to use it to make many other people's life better as well. (Andrew Ng)

    좋은 웹페이지 즐겨찾기