
차량의 번호판을 인식하기 위해서는 현재 영상/사진 속에 번호판이 어디에 존재하는지(객체 인식)그리고 번호판이 어떤 글자로 이루어져 있는지(문자 인식)가 중요하다. 따라서, 객체 인식 방법과 문자 인식 방법에 따라 다양한 형태의 프로그램이 만들어지며, 그 성능 또한 사용자의 용도에 맞게 변경 될 수 있다. 본문에서는 가장 대중적인 형태의 객체 인식인 YOLOv3 와 Tesseract-OCR을 이용한 차량 번호판 검출 및 인식에 대해 설명하고자 한다.
| YOLO를 이용한 번호판 객체 인식
앞서 언급했듯, 객체 인식의 방법에는 다양한 방법이 있다. 하지만 차량 번호판 인식의 특성상 빠른 속도의 위치 인식(Region Proposal)과 종류 인식(Classification)이 중요하다. YOLO(You Only Look Once)의 경우, Grid와 Anchor box를 이용한 One-shot-detection의 방식을 이용하며, 기존에 위치 인식Region Proposal과 Classification으로 나누어 처리하던 방식에서 Region Proposal을 제거하고 한번에 Object Detection을 수행하는 구조를 갖는다. 그렇기 때문에 사진/영상을 처리하는 시간을 크게 단축할 수 있고 빠른 속도의 객체 인식 결과를 얻을 수 있다.
그림 1- SxS 그리드 영역으로 나누고 그리드를 기준으로 객체 후보 군을 정하게 된다.
그리드의 크기에 따라 정확도 및 연산처리 속도에 큰 영향을 주게 된다.
번호판 인식에 YOLO를 적용하는 것은 어렵지 않다. YOLO에서 기본적으로 제공해주는 훈련 모델 결과는 coco 데이터 셋을 이용하고 있으며, 차량 번호판의 정보 또한 제공되고있기 때문이다. 하지만 coco 데이터 셋은 전세계적인 영상/사진을 기반으로 모아진 데이터들이기에, 각 나라마다 특수하게 적용되는 번호판의 형태를 모두 인식할 순 없다. 따라서 높은 정확도와 신뢰도를 위해서는 YOLO 신경망에 자신이 원하는 형태의 번호판을 트레이닝/평가 시키는 과정이 필수로 진행되어야 한다.
| 광학 문자 인식 (OCR)
OCR(Optical Character Recognition)은 이미지 속 글자 위치를 찾고 어떤 글자 인지 자동으로 알아내는 기술이다. 이미 존재하는 폰트 또는 학습된 폰트와 대조하는 식으로 이미지를 인식하게 된다. 번호판 인식의 경우, YOLO를 통해 얻게 된 영상/사진 속의 CROP된 번호판 사진에서 글자의 위치와 종류를 파악하는 데에 사용된다. OCR에도 다양한 방법이 있는데, 네이버 클라우드 플랫폼, ABBYY등의 유료 엔진을 이용하거나, 무료 엔진인 Tesseract-OCR을 이용하는 방법이 있다. 인식률과 속도, 비용 등을 고려하여 선택하는 것이 중요하다.
분류 |
번호판 글자 |
|
비영업용 |
가,나,다,라,마 거,너,더,러,머,버,서,어,저,고,노,도,로,모,보,소,오,조,구,누,두,루,무,부,수,우,주 |
|
영업용 |
일반 |
아,바,사,자 |
택배 |
배 |
|
렌터카 |
하,허,호 |
|
군용 |
국,합,육,해,공 |
표 1 - 차량 번호에만 사용되는 한글을 따로 학습 시켜서 인식시켜 더 나은 결과를 얻을 수 있다.
Tesseract-OCR에서 제공하는 한글 폰트는 차량 번호판에서 사용하는 폰트와는 다르다. 따라서 해당하는 폰트와 차량 번호에만 사용되는 한글을 따로 학습 시켜서 인식시켜야 더 나은 결과를 얻을 수 있다.
[YOLO + Tesseract-OCR의 결과]
위 기술한 YOLO를 이용한 번호판 객체 인식과 Tesseract-OCR을 이용하여 차량 번호판 인식을 간단하게 구현 가능하여 그림과 같이 결과를 볼 수 있었다.
그림 2- 1 차량 번호판 샘플 이미지
그림 2-2 OCR을 통해 얻은 이미지의 글자 결과 값]
AI는 하루하루가 다르게 종류가 늘어나고, 발전하고 있기에 추후에는 다양한 형태의 조합을 통해 높은 정확도를 가진 결과를 도출할 수 있을 것이며, 이를 위한 연구가 지속적으로 진행될 것으로 보인다.
참고:
YOLO 홈페이지: https://pjreddie.com/darknet/yolo
YOLO Github: https://github.com/AlexeyAB/darknet
Tessercat-OCR Github: https://github.com/tesseract-ocr/tesseract