[OpenCV] 자동차 번호판 인식 분석 5 OpenCV

번호판 영역을 찾았으니 이제 문자인식을 할 차례이다.

문자인식은 상당히 어려운 문제에 속한다.(내 경우에)
전지적 천재 시점으로 본다면 뭐, 그렇게 어려운 문제까진 아닐지도 모른다.
나같은 잉여자원의 경우 애로사항이 마구 꽃피는 그런 문제이지만. :)


뭐 일단 결과를 보자. 결과는 훌륭하게 나타났다. 번호판 영역에서 각 문자들을 레이블로 잡아주고
레이블 영역을 분석해서 해당 결과값을 메세지박스에 출력했다.

그럼 이 레이블들이 어떤 문자임을 어떻게 찾아낼 수 있을까?

방법은 여러가지가 있겠다. 번호판 사진 가지고 인식기(OCR)에 돌리는 방법. 특징을 추출해서
SVM에 넣고 학습시켜서 결과를 내는 방법, 템플릿 매칭 등등 취향에 따르면 된다.

뭐 그럴수도 있고, 프로젝트에 따라서 템플릿 매칭이 더 좋을수도 있고 상황에 따라서
잘 선택하면 된다.

전지적 잉여시점에서 만들었을때 한글의 방대한 템플릿(한글이 몇자까지 조합되는가 당신은 아시는가)에
충격과 공포를 잊을수 없어서 일단 숫자부터 만들기로 하자.

숫자는 0~9까지의 10개의 수로 이루어져 있고, 어떻게보면 비슷하지만 다 다르다. 0,1,2,3,4,5,6,7,8,9
딱 봐도 다르다는걸 알 수 있다. 6,9는 뒤집은거 아닌가요! 안뒤집으면 된다. 거꾸로된 번호판 인식할건
아니지 않나? 뭐 그렇게 인식 해야된다면 알고리즘은 다시 만들던가...

아뭏든, 숫자인식을 하려면 일단 특징을 찾아야한다. 자동차 번호판의 경우 인쇄체로 다~ 똑같은 글씨체로
숫자가 나와있다.(아닐수도 있다.) 고로, 각 숫자 이미지를 그대로 떠다가 비교하더라도 생각보다
높은 인식률이 나온다.

하지만 이진화된 사진의 상태에 따라서 엉뚱한 결과값을 보여줄수도 있다. 그래서 좀 더 높은 인식률을
보이는 방법을 찾을 필요가 있다.


                                   

그래서 나온것이 이 발로하는 매칭이다.
뭔소리냐고?
조낸 갸날픈 숫자 8이 있다. 그리고 충격과 공포로 두꺼운 숫자 8이 있다.
충격과 공포로 두꺼운 숫자 8은 조낸 갸날픈 숫자 8앞에 서면 조낸 갸날픈 숫자 8은
충격과 공포로 두꺼운 숫자 8에 가려서 보이지 않게 된다.
음? 그러니까 뚱뚱보가 해골 앞에서면 뒤에 해골은 안보인다는 소리다.

뭔소린지 헛갈린다면 죄송하다.
'얇은 숫자그림을 더 두꺼운 숫자그림으로 덧씌워서 얇은 숫자 그림이 보이지 않는다면
가장 완벽하게 매칭이 되었다.'
라고 판단하는 것이 이번의 매칭 방법이다.

뭔가 생각보다 좀 거시기 하지만 어쨋든 숫자 인식에 있어서는 결과는 훌륭하게 나온다.
자 그렇게 하려면 얇은 숫자그림과 두꺼운 숫자그림이 필요하다.
두꺼운 숫자 그림은 우리가 미리 준비하자. 인쇄체와 같은 체로 만들든, 그림판으로 만들든,
이미지에서 따온 뒤 두껍게 칠하든 취향껏 만들면 된다.

자 그럼 얇은 숫자그림은?
여기서 세선화(thinning)라는 녀석이 나타난다.
그놈이 뭐냐고?

다음에 합시다... 밥좀 먹구요.

덧글

  • 응원중 2011/12/10 13:45 # 삭제 답글

    dddddㅇㅇbbbbb
  • 딩딩 2011/12/10 14:02 #

    잉여의분석을보시면잘못된길로가실가능성이존재합니다ㅇㅅㅇ
  • 몽몽이 2011/12/11 00:46 # 답글

    비나 눈이 오는 경우라든지 하루 중 해가 떠서 넘어갈 때까지의 그늘 각도의 변화 등의 영향이 궁금합니다.
    무쟈게 오래 전 이야기지만 그것 때문에 인식률이 문제가 돼서 엎어지는 경우를 봤었거든요.
  • 딩딩 2011/12/11 03:12 #

    눈과 비라면 사진기의 도움으로 같은 사진을여러장 찍어서 눈비에 가려질만한 부분을 복원하는 방법을 도전하겠습니다만... 노가다가 필요하겠네요
  • 딩딩 2011/12/11 03:14 #

    시간의 변화는 인식기의 위치에 달라지겠지만 고정된 위치라면 시간에따라 필터의 차이를 두면 어느정도 끌어올릴수 있을거라고봅니다. 해봐야 알겠지만요. ^~^;
  • 딩딩 2011/12/11 03:16 #

    어떻게 쓰냐에 따라서 무인인식분야는 ai에 신경을 많이 써야 하는것 같습니다.
  • 딩딩 2011/12/11 03:18 #

    참고로 저는 아직 학부4년생의 잉여지식만을 가지고 있습니다^~^; 어서 자라서 전지적 천재시점에서 코딩해보고 싶네용. ^~^
  • 2012/01/05 10:18 # 삭제 답글 비공개

    비공개 덧글입니다.
  • 딩딩 2012/01/05 19:41 #

    네이버 오픈 씨브이 카페에 올려두었습니다
  • 2013/08/18 22:48 # 답글 비공개

    비공개 덧글입니다.
  • 기다림 2015/05/27 15:52 # 삭제 답글

    밥 다 자셨나?
  • 나도기다림 2018/02/02 01:31 # 삭제

    ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
댓글 입력 영역