Korean Institute of Information Technology
[ Article ]
The Journal of Korean Institute of Information Technology - Vol. 19, No. 4, pp.1-9
ISSN: 1598-8619 (Print) 2093-7571 (Online)
Print publication date 30 Apr 2021
Received 11 Jan 2021 Revised 12 Apr 2021 Accepted 15 Apr 2021
DOI: https://doi.org/10.14801/jkiit.2021.19.4.1

YOLO와 CNN을 이용한 강인한 차량 번호판 인식 시스템 구현

김재정* ; 김창복**
*가천대학교 에너지IT학과 학부생
**가천대학교 에너지IT학과 교수(교신저자)
Implementation of Robust License Plate Recognition System using YOLO and CNN
Jae-Jung Kim* ; Chang-Bok Kim**

Correspondence to: Chang-Bok Kim Department of Energy IT, Gachon University, 1342, Seongnam-daero, Sujeong-gu, Seongnam-si, Gyeonggi-do, Korea Tel.: +82-31-750-4773, Email: cbkim@gachon.ac.kr

초록

최근 지능형 교통 시스템의 발전에 따라 자동차 번호판 인식에 대한 연구가 관심을 끌고 있다. 국내 자동차 번호판 인식은 영상의 질과 한글 문제로 오 인식이 자주 발생한다. 본 연구는 YOLO(You Only Look Once)와 CNN(Convolution Neural Network)을 이용하여 환경 변화에 강인한 실시간 자동차 번호판 인식 시스템을 구현하였다. YOLO는 특정 번호판 영역만 추출하는 경우에 사용하였으며, CNN은 번호판을 인식하는 데 사용하였다. 번호판 인식은 실제 번호판 도면에서 숫자 및 문자를 추출하였고, 환경에 강인하도록 변형하고 증식하여 CNN으로 학습하였다. 또한, 오 인식이 많은 한글 인식을 위해 침식과 평균 영역을 이용한 분리된 자음과 모음 영역 검출, 한글 음절이 없는 경우 음절 영역 추출 등 3가지 알고리즘을 사용하였다. 최종적으로 제안 번호판 인식 시스템과 기존 OCR 알고리즘을 비교하였다. 실험 결과로서 easy OCR은 62.5%의 정확도를 가지며, 침식만을 이용한 알고리즘은 82.5%, 그리고 제안 알고리즘은 97.5%의 정확도를 획득했다.

Abstract

In recent years, with the development of intelligent transportation systems, research on license plate recognition is drawing attention. Domestic license plate recognition is frequently misrecognized due to image quality and Korean language problems. This study implemented a real-time license plate recognition system robust against environmental changes using YOLO and CNN. YOLO was used to extract only a specific license plate area, and CNN was used to recognize license plates. License plate recognition extracted numbers and letters from the actual license plate drawing. Then, it was transformed and multiplied to be robust to the environment, and learned with CNN. In addition, three algorithms were used for recognizing Korean characters with many misrecognitions, such as detection of separated consonants and vowel regions using erosion and average regions, and extraction of syllable regions when there is no Korean syllable. Finally, the proposed license plate recognition system and the existing OCR algorithm were compared. As a result of the experiment, the easy OCR has an accuracy of 62.5%, the algorithm using only erosion is 82.5%, and the proposed algorithm has an accuracy of 97.5%.

Keywords:

you only look once, license plate, object detection, optical character recognition, convolution neural network

Ⅰ. 서 론

자동차 번호판 인식은 주차 제어, 주차 위치 확인, 도로 교통 관리 등 주차 및 도로 교통관제 시스템과 같이 다양한 분야에서 사용된다. 지능형 교통 시스템의 발전에 따라 자동차 번호판 인식에 대한 연구가 지속적으로 관심을 끌고 있다.

자동차 번호판 인식은 검출된 번호판 영상의 모양, 색상 또는 질감 등의 속성을 이용한다. 따라서 품질 좋은 영상을 얻기 위해 최적의 조건을 갖춘 카메라로 차량을 멈춘 상태에서 촬영하기도 한다. 하지만 일반 도로나 골목 등 개방된 환경에서 촬영된 영상은 색상과 왜곡 등에 의해서 번호판을 오 인식하는 경우가 많다[1].

최근 신형 자동차 번호판이 추가됨에 따라 문자 인식 기능이 오 인식 되는 사례가 발생되었다. 이러한 오 인식은 신형 번호판 양식의 글자 수 증가와 반사 필름식 번호판 등의 재질 변화에 따른 것으로 분석된다[2]. 또한, 국내 번호판에서 한글은 자음과 모음으로 나뉘어져 있어 음절 단위로 인식하기에 어려움이 있다.

최근 딥러닝(Deep learning)을 이용한 번호판 인식에 대한 연구가 활발히 진행되고 있다. 딥러닝을 이용한 번호판 문자 인식은 영상처리 후에 번호판 영역을 추출 후 DNN(Deep Neural Network)을 통한 문자 인식 방법과 CNN(Convolution Neural Network)을 활용하여 객체 인식 네트워크를 통한 번호판 영역 검출 후 OCR(Optical Character Recognition)을 이용한 문자 인식 방법을 사용하였다[3][4]. 최근, CRNN (Convolutional Recurrent Neural Networks)과 tiny-YOLOv3 그리고 YOLO-SPP(Spatial Pyramid Pooling)를 이용한 연구가 국내 및 다국적 번호판에 대한 높은 인식률을 보였다[5][6].

YOLO는 딥러닝 기반의 객체검출(Object detection) 중에 1단계 방법으로 대표적인 2단계 방식의 R-CNN, Fast R-CNN, Faster R-CNN 계열 방법과 비교하여 정확도는 다소 낮으나 검출 속도가 빠른 장점이 있다[7]-[10]. YOLO v4는 80개의 객체를 검출할 수 있으며, 네트워크의 수정을 통하여 사용자가 원하는 객체만을 검출할 수 있도록 하는 학습 기능이 있다.

본 연구는 YOLO v4와 CNN을 이용하여 다양한 환경변화에 강인한 실시간 자동차 번호판 인식 시스템을 구현하였다. 본 연구는 최근 개정된 국내 번호판 인식으로 제한하며, 기존 연구와는 달리 학습을 위해 다량의 번호판 영상 데이터 없이 실제 번호판이 아닌 도로 교통공사에서 제공하는 번호판 양식만으로 데이터를 증식하여, 단순한 CNN 네트워크를 사용하였다, YOLO는 특정 ROI(Region Of Interest)인 번호판 영역의 추출에 사용하였으며, CNN은 번호판 인식에 사용하였다.

특히, 본 시스템은 오 인식이 많은 한글 인식을 위해 영상 침식, 분리된 자음과 모음 영역 검출, 한글 음절이 없는 경우 음절 영역 추출 등 3가지 알고리즘을 사용하였다. 최종적으로 제안 번호판 인식 모델과 Easy OCR과 Tesseract OCR등 기존 OCR 알고리즘과 본 번호판 인식 시스템을 비교하였다.


Ⅱ. 번호판 검출 및 문자 인식

2.1 번호판 검출

영상에서 번호판을 검출하는 방법을 객체 검출이라 하며, 영상에 존재하는 모든 객체에 대해서 지역화와 분류를 수행하는 것이다. 지역화는 객체의 좌표인 경계 박스(Bounding box)를 찾는 회귀이고, 분류는 경계 박스 내 객체가 무엇인지 인지하는 문제이다. YOLO는 1단계 방법으로 객체의 지역화와 분류를 예측하는 딥러닝 기반의 객체 검출 알고리즘이며, 다른 딥러닝 알고리즘에 비해 속도가 매우 빠르고, 높은 mAP(mean Average Precision)를 보인다.

현재 YOLO는 v1부터 v4까지 개발되었으며, YOLO v4는 학계에서 좋은 성능을 보이는 여러 가지 기법들을 적용하여 성능 향상을 이뤘다. 즉, YOLO는 작은 객체에 취약한 점이 있는데, 작은 객체들을 검출하기 위해 높은 해상도를 사용하였다. 또한, receptive field를 물리적으로 키워 주기 위해 레이어 수를 늘렸으며, 하나의 영상에서 다양한 종류, 다양한 크기의 객체들을 동시에 검출하려면 높은 표현력이 필요하기 때문에 파라미터를 늘렸다. 그림 1에 YOLO v4 네트워크에 대해서 나타냈다.

Fig. 1.

YOLO V4 network[11]

YOLO v4는 YOLO v3을 기반으로 하였고, 속도를 증가하기 위해 backbone을 CSPNet 기반의 CSPDarkNet53으로 바꾸고 Neck에는 SPP(Spatial Pyramid Pooling)와 PAN(Path Aggregation Network)을 적용하였고, Bag of Freebies, Bag of Specials를 적용하였다[11].

2.2 문자 인식

자동차 번호판은 흰색 바탕에 검은색 문자와 숫자로 구성되며, 페인트 식으로 제작된다. 2019년도의 신규 자동차 번호판은 앞 숫자를 3자리로 늘렸으며, 페인트 식 번호판과 국가 상징 및 축약부호, 위·변조 방지 홀로그램 등이 추가된 재귀 반자식 필름 번호판 등 총 2가지 방식으로 제작된다. 또한, 신규 번호판은 숫자 및 서체보다는 조금 작게 제작되며 숫자 사이의 간격이 다소 좁아진다. 그림 2에 국내 번호판을 나타냈다.

Fig. 2.

Domestic license plate

국내 번호판은 숫자 10개와 문자 35개로 구성되어 있다. 본 연구에서 번호판의 숫자와 문자 영상은 실제 국토 교통부에서 제공하는 문서를 이용하였다. 그림 3은 실제 사용한 자동차 번호 문서 예시이다.

Fig. 3.

Actual license plate document

번호판 인식을 위해서는 영상인 문자와 숫자를 컴퓨터가 이해할 수 있는 텍스트 형식으로 변환이 필요하다. OCR(Optical Character Recognition)은 영상을 컴퓨터가 읽을 수 있는 문자로 변환하는 알고리즘이다. Easy OCR은 영상에서 문자영역을 추출하고, 문자를 분리하고, 문자를 인식한다. Tesseract OCR은 분할과정을 거쳐 나온 영상에서 특징 점을 추출하여, LSTM과 같은 딥러닝 기법과 템플릿 매칭 기법을 사용하여 문자를 인식한다. 


Ⅲ. 번호판 인식 시스템

본 시스템은 자동차 영상에서 번호판 검출을 위해 YOLO 학습을 통해 얻어지는 모델과 번호판 인식을 위한 CNN 네트워크를 구축하여 학습을 통해 얻어지는 모델이 있다. 본 시스템은 이러한 학습 모델들을 이용하여 CCTV로 입력되는 자동차 번호판 인식 시스템을 구현하였다. 그림 4에 본 시스템의 전체 구성도를 나타냈다.

Fig. 4.

Overall block diagram of the proposed system

제안 시스템은 번호판 검출, 번호판 영상 처리, 번호판 인식 부분으로 나누어진다. YOLO 학습 모델은 번호판 영역을 추출하기 위해 사용하였으며, 번호판 영상 처리는 잡음 제거, 이진화, 침식 경계선 추출 등 번호판의 숫자와 문자를 추출하는 전처리 과정이다. 번호판 인식은 추출된 문자와 숫자를 이용하여 CNN 학습 모델로 번호판의 숫자와 문자를 텍스트로 인식하기 위해 사용하였다.

3.1 번호판 및 문자 검출

번호판 검출은 YOLO Marker를 이용해서 자동차 영상을 라벨링을 한 후 생성된 obj.names, obj.data, train.txt파일을 Darknet으로 학습하였다. 이때 자동차 영상에서 번호판만을 검출하기 위해 YOLO 네트워크에서 class를 1로 하고 filter를 18개로 하여 학습하였다. 필터 수는 다음과 같이 계산된다,

filter=5×classes+5(1) 

YOLO v4는 각 그리드 당 앵커(Anchor)가 3개 이므로 3개 출력에서 52×52×3(8112)과 26×26×3(2028), 그리고 13×13×3(507)개의 경계 박스를 추천한다. 여기서 번호판일 확률이 90% 이상인 박스만을 추출하고, NMS(Non Maximum Suppression) 알고리즘을 적용하여 확률이 작은 동일한 번호판을 제거하였다.

영상 전처리는 잡음제거, 이진화 그리고 한글을 추출하기 위해 침식을 사용하였다. 잡음 제거를 위하여 blur 처리를 하였으며, ostu 알고리즘을 이용한 이진화를 통하여 흑백 영상을 변환하였으며, 번호판의 각 숫자와 문자를 추출하기 위해서 경계선을 추출하였다.

한글은 자음과 모음이 있어 이를 하나의 문자로 추출하기 위해서는 자음과 모음이 연결되어야 하기 때문에, 침식을 사용하여 자음과 모음을 연결하였다. 경계선을 통해 얻어진 문자 및 숫자 좌표를 이용하여, 번호판을 순서대로 인식하기 위해 버블 정렬을 한 후 CNN으로 학습 한 모델을 이용하여 학습을 하였다.

본 연구는 차량의 촬영 위치에 따라 번호판이 회전되어 오 인식되는 경우를 해결하기 위해 좌표를 이용하여 정렬하였다. 즉, 시작 숫자와 끝 숫자 좌표의 중심점을 찾아 피타고라스의 정리를 이용하여, 번호판의 회전 각도를 찾아 번호판을 정렬하였다.

Fig. 5.

License plate rotation

delta_x와 delta_y는 직각 삼각형의 밑변과 높이 이며, degree는 번호판의 회전 각도이다. 또한, distance는 윗변의 길이 이며, number_center는 윗변의 중심점으로 본 중심점을 기준으로 번호판을 회전 각도만큼 회전하여 번호판을 수평으로 정렬한다. 최종적으로 scale은 회전으로 인해 크기가 줄어드는 영상을 보정하는 파라미터이다.

3.2 한글 문자 추출

본 연구는 전체 영상에서 번호판을 인식하는 것이 아니라 번호판의 문자와 숫자를 분리하여 문자 단위별로 인식하는 방법을 사용한다. 이때 한글 문자는 자음과 모음으로 분리되어 있기때문에 하나의 음절로 된 문자의 좌표를 구하기 다소 어렵다. 제안 시스템은 오 인식이 많은 한글 문자의 인식률을 향상하기 위해 3가지 알고리즘을 이용하였다. 첫 번째 알고리즘은 기본적인 방법으로 자음과 모음을 연결하기 위해 침식을 이용하여, 영상을 두껍게 하는 것이다. 그러나 이것은 숫자에도 영향을 주어 다른 지점의 숫자와 연결이 되는 문제점이 있기 때문에 한계가 있다. 따라서 침식의 iter를 4로 주어 다른 영역에는 문제를 주지 않고 대부분의 자음과 모음을 붙이게 하였다.

두 번째 알고리즘은 자음과 모음은 숫자 영역 보다 다소 작음을 고려하여, 모든 객체의 영역에 대해서 평균을 구하고 각 객체들에 대해서 곱셈하여 평균에 70% 보다 작은 객체들이 연속하여 두 번 나타나면 두 개의 객체가 자음과 모음으로 인식하여 새로운 한글 문자의 좌표를 그린다. 그림 6에 한글 문자 추출 알고리즘에 대해서 나타냈다.

Fig. 6.

Hangul character extraction algorithm

또한, 2번째 알고리즘 시도 후에도 한글 문자를 인식하지 못하는 경우에, 한글 문자 여부를 검색하여 한글 문자가 없는 경우 한글 문자는 번호판 맨 뒤에서 다섯 번째 위치에 있으므로 그 위치의 좌표를 다시 검출하여 인식하였다.

3.3 번호판 인식

제안 시스템은 실제 국토 교통부의 번호판 문서를 사용하여 숫자와 문자를 분리하여 배경을 삭제하고 라벨링을 하였다. 표 1에 번호판의 실제 숫자와 문자에 대한 라벨링을 보였다.

License plate number and character labeling

위와 같이 0부터 34까지의 문자와 35부터 44까지의 숫자를 추출하여 정수로 라벨링하고 라벨링 된 정수를 one-hot 인코딩하였다. 본 연구는 학습 데이터 및 테스트 데이터를 충분히 늘리기 위해 다음과 같이 증식하였다.

rescale은 영상 정규화, rotation_range은 사진을 회전시킬 범위, width_shift_range은 수평 평행 이동, height_shift_range는 수직 평행 이동, shear_range은 영상 찌그러트림, zoom_range는 영상 확대 파라미터이다. 이와 같은 증식은 영상 상태에 따라 다소 변형된 문자와 숫자에 대해서 보다 강인한 인식을 위함이다.

증식된 학습 이미지는 CNN의 입력으로 하였다. 그림 7은 본 연구에서 사용한 CNN 네트워크이다.

Fig. 7.

Proposed CNN network

입력 영상은 LeNet이나 AlexNet 네트워크 구조와 같이 층을 쌓으면서 영상 크기는 줄이고 필터수를 늘렸다[12][13]. 즉, 3번의 컨볼루젼을 통해 특성맵의 필터수를 늘렸으며, 3번의 최대 폴링을 통하여 특성맵의 크기를 줄였다. 또한, CNN의 출력 단에서는 완전 연결층으로 입력하여, softmax로 45개의 출력으로 하였다. 이와 같은 네트워크 구성으로 번호판을 학습하여 학습 결과 모델을 저장하였다.


Ⅳ. 실험 및 비교 검토

본 연구는 실험을 위해 윈도우 10 환경에 파이썬 3.6 그리고 딥러닝을 위해 텐서플로우 2.3.1과 케라스 2.4.3을 사용하였다. CPU는 Intel의 i5-8250U, GPU는 nvidia사 GTX1050, RAM은 8GB를 사용하였다. 또한, 자동차 번호판은 2006년 이후 보급된 흰색 바탕의 지역명이 제외된 번호판으로 범위를 한정하며, 2019년에 추가된 8자리 신형 번호판을 포함하였다.

자동차 번호판 검출을 위해 YOLO v4와 문자 인식을 위해 Easy OCR과 Tesseract OCR 그리고 본 연구의 CNN 학습 모델을 사용하였다. 시스템의 성능을 평가하기 위해 번호판 영상은 도로의 자동차를 대상으로 스마트 폰 카메라를 이용하여 직접 촬영하였다. 번호판 학습을 위해 실제 번호판 도면을 이용하여 문자 및 숫자 영상을 176 x 160 크기로 잘라내어 사용하였고, 충분한 학습 데이터와 강인한 인식을 위해 문자와 숫자를 다소 변형하는 방식으로 학습 데이터를 증식하였다. 그림 8에 문자 “고”를 증식 한 예에 대해서 나타냈다.

Fig. 8.

Character multiplication

본 실험에서는 45개의 숫자와 문자를 증식하여 총 142630의 데이터를 확보했으며, 약 7 : 3 비율인 93558개의 학습 데이터와 49072개의 검증 데이터로 나누어 사용하였다.

CNN 학습에서 활성화 함수는 relu를 사용하였으며, 오차 함수의 최적화를 위해 adam 최적화를 사용하였으며, 학습률은 0.001로 하였다. 학습 파라미터는 총 14,701,485개이며, 학습 횟수는 300번이다. 학습은 1회 당 평균 약 28초의 시간이 소요되어, 총 300회 학습 결과 총 8400초 소요되었다. 그림 9에 학습 결과를 나타냈다.

Fig. 9.

Training result

Training result

자동차 번호판의 숫자와 문자를 CNN으로 학습한 결과 학습 정확률은 99.37%, 그리고 테스트 정확률은 100%의 결과를 얻음으로 해서 학습모델로서 충분하였다. 그림 10에 YOLO를 이용하여 자동차 번호판 만을 검출한 결과이다.

Fig. 10.

License plate detection using YOLO

본 실험을 통해 모든 자동차 영상에서 번호판일 확률이 모두 90% 이상임을 확인하였다. 추출된 번호판은 잡음제거 및 이진화 과정을 거치고, 경계선을 추출한 후 숫자와 문자만을 추출하였다. 또한, YOLO로 검출된 번호판이 영상에 따라 회전되어 있음을 인식하고 시작 숫자의 중심과 이후 숫자의 중심을 이용하여 정렬하였다. 그림 11에 이러한 과정을 나타냈다.

Fig. 11.

Image processing and character extraction

그림 12에 촬영된 차량 영상 중에서 다소 영상의 화질에 문제가 있는 번호판에 대한 예이다. pytesseract는 “4트고 06459”로 읽어내었다. 한글을 정확하게 읽어내지 못하였을 뿐만 아니라 음영이 심한 부분을 문자로 착각하여 실제 존재하지 않는 숫자인 9를 읽어내었으며 3의 경우 번호판 하단의 검은 선을 글자로 인식하여 3을 “트”로 읽어내는 문제가 존재하였다.

Fig. 12.

license plate used in the experiment

또한, easy-OCR의 경우 “43고0645”로 번호판 자체를 높은 정확도로 인식하였으나 한글에 대한 학습이 부족하여 “구”를 “고”로 읽는 문제가 발생하였다. 그러나 제안된 알고리즘은 잡음 없이 문자를 검출하였고, 번호판의 사용되는 한글에 특화된 네트워크를 학습시켜 해당 번호판을 문제없이 읽는 것을 확인할 수 있었다.

본 연구에서는 Easy OCR과 Tesseract OCR 그리고 제안 알고리즘을 이용한 번호판 인식 결과를 비교하였다. 표 3에 비교 결과에 대해서 나타냈다.

License plate recognition results

알고리즘 1은 침식만을 이용하여 번호판을 인식한 것이며, 알고리즘 2와 알고리즘 3은 한글 오 인식을 처리한 것이다. 실험 결과 총 40개의 번호판 중에서 Tesseract OCR은 35개의 번호판 오 인식이 있었으며, Easy OCR은 15개의 오 인식이 있었다. 알고리즘 1은 7개의 오 인식이 있었으며, 알고리즘 2와 3은 1개의 번호판에서 오 인식이 있었다. 알고리즘 별 번호판의 정확도는 Tesseract OCR은 12.5%이며 Easy OCR은 62.5%의 정확도를 가지며, 제안 알고리즘 1은 82.5% 그리고 제안 알고리즘 2와 3은 97.5%의 정확도를 가짐을 알 수 있다. 또한 알고리즘 평균 실행시간은 Tesseract OCR은 1,99초, Easy OCR은 6.91초, 제안 알고리즘 1은 1.44초, 제안 알고리즘 2는 2.58초, 제안 알고리즘은 2.59초 수행되었다. 본 시스템은 차량 3대까지 인식할 수 있으며, 인식하는 데 있어 차량의 수마다 실행시간이 차이가 있다, 본 실험 결과를 통해 다음과 같은 결과를 얻었다.

1. 도로에 있는 자동차 번호판의 영상은 날씨와 외부의 조명 그리고 방향 등 상황에 따라 번호판 영상의 질이 달라져서 오 인식이 많아진다.

2. 기존의 OCR 알고리즘은 영상의 상태에 따라 인식률에 많이 차이가 발생한다. 따라서 화질이 나쁜 영상에 대해서는 인식률이 저조하다.

3. 자동차 번호판 영상을 다소 변형하여 증식하여 학습함으로써 영상의 질에 따라 차이가 나는 자동차 번호판 영상에서 좀 더 강인하게 번호판을 인식할 수 있다.

4. 한글은 자음과 모음으로 구성되어 있어 음절단위로 좌표를 인식함에 어려움이 있어 침식만을 사용한 알고리즘 1로는 오 인식이 많다.

5. 제안 알고리즘 2와 3은 제안 알고리즘 1 보다 정확률은 높아지나 실행시간이 낮아지는 트레이드 오프가 있다.


Ⅴ. 결론 및 향후 과제

제안 시스템은 주변 상황에 따라 영상의 질이 차이가 있는 자동차 번호판 영상에서 기존 OCR보다 오 인식이 적은 시스템을 구축하였다.

기존의 딥러닝 알고리즘은 많은 자동차 영상 데이터 그리고 라벨을 준비하여 학습해야하지만 본 연구는 국내 번호판의 영상만 필요하며, 숫자와 문자의 학습이 간단하고, 한글에 대한 알고리즘을 보강한다면 보다 정확한 결과를 도출할 수 있다.

제안 시스템은 YOLO를 아용하여 보다 많은 자동차 영상으로 학습하고, 보다 많은 번호판 증식을 이용하여 학습을 한다면 더욱 인식률이 높아질 것으로 예상된다. 또한, 오 인식이 많은 한글 음절에 대해 본 알고리즘에 오 인식이 되는 상황을 추가한다면 보다 안정된 시스템이 구축될 것으로 생각된다. 추후 연구과제로서 본 시스템과 IoT를 융합하여 실무에 사용할 수 있는 시스템을 구축하고자 한다.

References

  • S. J. Lee and G. M. Park, "Proposal for License Plate Recognition Using Synthetic Data and Vehicle Type Recognition System", Journal of Broad Engineers, Vol. 25, No. 5, pp. 776-788, Sep. 2020.
  • Y. J. Jeong, I. Ansari, J. C. Shim, and J. H. Lee, "A Car Plate Area Detection System Using Deep Convolution Neural Network", Journal of Korea Multimedia Society, Vol. 20. No. 8, pp. 1166-1174, Aug. 2017. [https://doi.org/10.9717/kmms.2017.20.2.271]
  • S. Kumari, L. Gupta, and P. Gupta, "Automatic License Plate Recognition Using OpenCV and Neural Network", International Journal of Computer Science Trends and Technology, Vol. 5, No. 3, pp. 114-118, 2017.
  • X. T. Dang and E. T. Kim, "Robust Motorbike License Plate Detection and Recognition using Image Warping based on YOLOv2", Journal of Broad Engineers, Vol. 24, No. 5, pp. 713-725, 2019.
  • S. Usmankhujaev, S. W. Lee, and J. W. Kwon, "Korean license plate recognition system using combinedneural networks", International Symposium on Distributed Computing and Artificial Intelligence. Springer, Cham, pp. 10-17, Jun. 2019. [https://doi.org/10.1007/978-3-030-23887-2_2]
  • H. Chris, S. Y. Ahn, and S. W. Lee. "Multinational license plate recognition using generalized character sequence detection" , IEEE Vol. 8, pp. 35185-35199, Feb. 2020. [https://doi.org/10.1109/ACCESS.2020.2974973]
  • J. Redmon, S. Diluvial, R. Girshick, and A. Farhadi, "You only look once: Unified, real-time object detection", Proceedings of the IEEE conference on computer vision and pattern recognition, Las Vegas, NV, USA, pp. 779-788, Jun. 2016. [https://doi.org/10.1109/CVPR.2016.91]
  • R. Joseph, and A. Farhadi, "YOLO9000 : better, faster, stronger",  Proceedings of the IEEE conference on computer vision and pattern recognition, Honolulu, HI, USA, pp. 7263-7271, Jul. 2017.
  • G. Ross, "Fast r-cnn",  Proceedings of the IEEE international conference on computer vision, Santiago, Chile, pp. 1440-1448, Dec. 2015.
  • S. Ren, K. He, R. Girshick, and J. Sun, "Faster r-cnn: Towards real-time object detection with region proposal networks",  IEEE transactions on pattern analysis and machine intelligence, Vol. 39, No. 6, pp. 1137-1149, Jan. 2016. [https://doi.org/10.1109/TPAMI.2016.2577031]
  • A. Bochkovskiy, C. Y. Wang, and, H. M. Liao, "YOLOv4: Optimal Speed and Accuracy of Object Detection", arXiv preprint arXiv:2004.10934, , Apr. 2020.
  • Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner, "Gradient-based learning applied to document recognition",  Proceedings of the IEEE, Vol 86, No. 11, pp. 2278-2324, Nov. 1998. [https://doi.org/10.1109/5.726791]
  • A. Krizhevsky, I. Sutskever, and G. E. Hinton, "Imagenet classification with deep convolutional neural networks",  Communications of the ACM, Vol. 60, No. 6, pp. 84-90, May 2017. [https://doi.org/10.1145/3065386]
저자소개
김 재 정 (Jae-Jung Kim)

2015년 3월 ~ 현재 : 가천대학교 에너지IT학과 재학

관심분야 : 딥러닝, 빅 데이터, IoT, 스마트 폰 어플리케이션

김 창 복 (Chang-Bok Kim)

1986년 2월 : 단국대학교 전자공학과 졸업(공학사)

1989년 2월 : 단국대학교 전자공학과 (공학석사)

2009년 2월 : 인천대학교 컴퓨터 공학과(공학박사)

1994년 ~ 현재 : 가천대학교 IT대학 에너지 IT학과 교수

관심분야 : 데이터 마이닝, 딥러닝, 사물인터넷, 에너지 변환

Fig. 1.

Fig. 1.
YOLO V4 network[11]

Fig. 2.

Fig. 2.
Domestic license plate

Fig. 3.

Fig. 3.
Actual license plate document

Fig. 4.

Fig. 4.
Overall block diagram of the proposed system

Fig. 5.

Fig. 5.
License plate rotation

Fig. 6.

Fig. 6.
Hangul character extraction algorithm

Fig. 7.

Fig. 7.
Proposed CNN network

Fig. 8.

Fig. 8.
Character multiplication

Fig. 9.

Fig. 9.
Training result

Fig. 10.

Fig. 10.
License plate detection using YOLO

Fig. 11.

Fig. 11.
Image processing and character extraction

Fig. 12.

Fig. 12.
license plate used in the experiment


delta_x = s_centerx - e_centerx
delta_y = s_centery - e_centery
degree = np.degrees(np.arctan2(delta_y, delta_x)) - 180
distance = np.sqrt((delta_x ** 2) + (delta_y ** 2))
number_center = ((e_centerx + s_centerx) // 2, (e_centery + s_centery) // 2)
aligned_distance = e_centerx - s_centerx
scale = aligned_distance / distance

Table 1.

License plate number and character labeling

0 1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16 17
18 19 20 21 22 23 24 25 26
0
27 28 29 30 31 32 33 34 35
1 2 3 4 5 6 7 8 9
36 37 38 39 40 41 42 43 44

train_datagen = ImageDataGenerator(
  rescale=1./255,
  rotation_range = 20,
  width_shift_range = 0.1,
  height_shift_range = 0.1,
  shear_range = 0.2,
  zoom_range = 0.1,
  horizontal_flip = False,
)

Table 2.

Training result

Training
loss
Training
accuracy
Test loss Test
accuracy
0.014 0.9937 6.384e-04 1.0000

Table 3.

License plate recognition results

Algorithm Mis-
recognition
Correct number Recognition rate Time
Tesseract OCR 35 5 0.125 1.99
Easy OCR 15 25 0.625 6.91
Proposed algorithm 1 7 33 0.825 1.44
Proposed algorithm 2 1 39 0.975 2.58
Proposed algorithm 3 1 39 0.975 2.59