DOI QR코드

DOI QR Code

CPU 기반의 딥러닝 컨볼루션 신경망을 이용한 이륜 차량 번호판 인식 알고리즘

Twowheeled Motor Vehicle License Plate Recognition Algorithm using CPU based Deep Learning Convolutional Neural Network

  • 김진호 (경일대학교 전자공학과)
  • 투고 : 2023.12.04
  • 심사 : 2023.12.15
  • 발행 : 2023.12.30

초록

Many research results on the traffic enforcement of illegal driving of twowheeled motor vehicles using license plate recognition are introduced. Deep learning convolutional neural networks can be used for character and word recognition of license plates because of better generalization capability compared to traditional Backpropagation neural networks. In the plates of twowheeled motor vehicles, the interdependent government and city words are included. If we implement the mutually independent word recognizers using error correction rules for two word recognition results, efficient license plate recognition results can be derived. The CPU based convolutional neural network without library under real time processing has an advantage of low cost real application compared to GPU based convolutional neural network with library. In this paper twowheeled motor vehicle license plate recognition algorithm is introduced using CPU based deep-learning convolutional neural network. The experimental results show that the proposed plate recognizer has 96.2% success rate for outdoor twowheeled motor vehicle images in real time.

키워드

Ⅰ. 서론

최근 이륜 차량 번호판을 인식하여 도로 교통 단속에 적용하기 위한 연구들이 많이 진행되고 있다[1-3]. 국내 이륜차량 번호판은 상단에 17개의 광역시, 도단어와 광역시, 도 소속의 206개 시, 군, 구 단어들이 조합되어 있고 하단에 19개의 한글 중 1개 글자 및 4자리의 숫자들이 나열되어 있다. 한글 단어 및 문자 그리고 숫자를 인식하기 위해 딥러닝 컨볼루션 신경망(Convolutional Neural Network) 구조의 인식기를 설계하고 학습용 데이터베이스를 이용하여 인식기를 학습시키는 방식으로 인식기를 구현한다. 최근 다양하게 제공되고 있는 컨볼루션 신경망[4-9] 구현을 위한 라이브러리들을 사용하여 인식기를 구현할 경우 실시간 처리를 위해 대부분 GPU 기반에서 실행된다[4]. 하지만 컨볼루션 신경망 구현을 위해 라이브러리를 사용하지 않고 실시간 번호판 인식이 가능한 CPU 기반의 인식기를 직접 구현하면[5] 모바일이나 에지기기에서도 저비용 고성능 인식기를 사용할 수 있다.

한편, 이륜 차량 번호판 상단의 지역 명칭을 뜻하는 한글 단어들을 인식하기 위해서는 먼저 17개 광역시, 도 단어들을 인식하는 한 개의 딥러닝 단어 인식기를 구현해야 한다. 이어서 각 광역시, 도에 소속된 시, 군, 구 단어들을 별도로 인식하기 위해 17개의 광역시, 도 별로 각각에 종속적인 시, 군, 구 단어 인식기를 구현하거나 또는 광역시, 도 단어 인식 결과와 무관하게 206개 시, 군, 구 단어를 동시에 인식할 수 있는 1개의 독립적 단어 인식기를 구현할 수 있다. 1개의 독립적인 단어 인식기가 17개의 종속적 단어 인식기에 비해 계산 복잡도는 낮지만 광역시, 도와 시, 군, 구 인식 결과의 매칭에 오류가 발생할 수 있다. 따라서 광역시, 도 인식기와 1개의 독립적인 시, 군, 구 단어 인식기를 구현하고 단어 인식 결과들의 매칭 오류를 보정하면 저비용 고성능의 번호판 인식기를 마련할 수 있다.

다른 고려 사항으로 이륜 차량은 사륜 차량과 다르게 좌우로 많이 기울어 질 수 있어서 번호판 영역을 검출한 다음 번호판이 회전된 경우 이를 올바르게 보정하고 크기를 정규화 해야만 번호판에 기록된 문자들의 위치를 정확하게 해석하고 분할하여 인식할 수 있다. 번호판 영역을 검출한 다음 파란색 테두리 정보를 이용하여 번호판 사각형 영역의 4개 모서리 점을 찾아서 효율적으로 직사각형 형태로 회전 보정[10,11]을 하면서 크기를 정규화 하는 알고리즘을 마련해야 번호판 영역을 해석하고 문자들을 정확하게 분할 할 수 있다. 번호판을 이진화할 경우 잡음 픽셀들이 유입되어 테두리 성분 이외의 직선 성분들이 유입되어 테두리 정보 추출에 어려움을 겪을 수 있기 때문에 잡음 성분이 제거된 번호판의 테두리 정보를 정확히 추출할 수 있는 방안도 마련될 필요가 있다.

본 논문에서는 CPU 기반의 딥러닝 컨볼루션 신경망 인식기를 구현하여 이륜 차량 번호판을 실시간에 인식할 수 있는 알고리즘을 제안하였다. 라이브러리를 사용하지 않고 실시간 처리가 가능한 CPU 기반의 컨볼루션 신경망 인식기를 구현하여 하드웨어 비용부담을 줄였고 광역시, 도 인식기와 시, 군, 구 인식기를 독립적으로 연결하여 상호 단어 매칭 오류를 보정할 수 있는 방법도 마련하였으며 번호판 영상의 기울기 보정을 위한 방안도 마련하였다.

제안한 이륜 차량 번호판 인식기를 구현한 다음 도로 주행 또는 주차된 이륜 차량 영상을 대상으로 번호판 인식을 수행하고 결과를 분석하였다.

Ⅱ. 딥러닝 컨볼루션 신경망을 이용한 이륜차량 번호판 인식 개요

사륜 차량의 번호판은 평면에 부착되어 촬영 각도에 따라서만 기울어져 촬영될 수 있지만 이륜 차량의 번호판은 평면에 부착되지 않았을 뿐만 아니라 차량자체의 기울어짐으로 인해 촬영 각도에 따라 더욱 심하게 변형된 형태로 촬영될 수 있다. <그림 1>에 기울어진 형태로 촬영된 이륜 차량 번호판 영상의 예를 도시하였다.

DGTSA8_2023_v19n4_127_f0001.png 이미지

<그림 1> 기울어진 형태의 이륜 차량 번호판 예

이와 같이 기울어진 형태의 이륜 차량 번호판 인식을 위해서는 번호판 영역 검출, 회전 보정, 문자 영역해석, 개별 문자 분할 그리고 문자 인식 등의 단계를 거쳐야한다. 이륜 차량 번호판 인식을 위한 전체 흐름도를 <그림 2>에 도시하였다.

DGTSA8_2023_v19n4_127_f0002.png 이미지

<그림 2> 이륜 차량 번호판 인식 알고리즘 흐름도

먼저 카메라로 이륜 차량의 영상을 캡쳐한 다음 번호판 영역을 검출하고 번호판 영상을 크로핑한다. 이어서 이륜 차량은 사륜 차량에 비해 상하좌우 기울기 변화가 심하기 때문에 6개의 세부 단계를 거쳐 번호판의 테두리를 찾고 직사각형 형태의 지정된 크기로 번호판 영상을 정규화 한다.

직사각형 형태로 크기가 정규화된 번호판 영상으로부터 광역시, 도 단어 영역 및 시, 군, 구 단어 영역과 1개의 한글 및 4개의 숫자 영역을 각각 분할한다. 이어서 컨볼루션 신경망으로 구현한 광역시, 도 인식기(Government Word Recognizer)와 시, 군, 구 단어 인식기(City Word Recognizer) 그리고 한글 인식기 및 숫자 인식기를 이용하여 번호판의 문자들을 인식한다. 이때 광역시, 도 단어 및 시, 군, 구 단어의 매칭 오류를 줄이고 단어 인식 성능을 높이기 위해 상호 소속 관계와 컨볼루션 신경망 인식기의 신뢰도 값을 이용한 최적의 인식 결과를 도출한다. 이상의 과정으로 이륜 차량의 번호판 인식 결과를 도출하는 방법을 설명하였다.

Ⅲ. 번호판 추출 및 문자 분할

3.1 번호판 영상 정규화

기울어진 이륜 차량의 번호판을 탐지한 다음 번호판 영역을 이진화 하면 다양한 형태의 잡음 픽셀들이 포함되어 번호판 테두리를 검출하기 위해 직선 추출 알고리즘인 허프변환(Hough Transform)[10]을 적용하면 <그림 3>에서와 같이 여러 종류의 직선들이 검출될 수 있다.

DGTSA8_2023_v19n4_127_f0010.png 이미지

<그림 3> (a)원본 번호판 영상을 (b)적응적 이진화 하고 (c)Hough 직선들을 검출한 예

이진 영상에서 테두리 성분을 제외한 나머지 직선성분들을 제거하고 Hough 직선들을 검출하면 좀 더 정확하게 번호판 테두리 직선들을 찾을 수 있을 것이다. 번호판 영상에는 흰색 바탕에 테두리가 있고 내부에 문자들이 기록되어 있다는 특징을 이용하면 이진화를 통해 얻은 흑백 영상으로부터 테두리의 수직수평 성분을 검출할 수 있다. 잡음 성분이 제거된 테두리의 수직및 수평 성분을 추출하고 이를 대상으로 Hough 변환을 통한 직선 성분을 추출하면 좀 더 정확한 테두리 직선들을 구할 수 있다. 테두리 직선들의 교차점을 구하면 사각형의 4 모서리 좌표를 얻을 수 있고 이를 이용하여 크기가 정규화된 번호판 영상을 생성할 수 있다.

DGTSA8_2023_v19n4_127_f0011.png 이미지

<그림 4> (a) 원본 번호판 영상 (b) 흑백 이진 영상 (c) 테두리 후보 추출 (d) 수직 성분 추출 (e) 수직 연결 성분 추출 (f) Hough 수직 라인 검출 (g) 수직 수평 라인 기반 테두리 검출을 수행한 예

<그림 4>에 이륜 차량 번호판 영상의 테두리 직선성분을 검출한 예를 도시하였다.

그림에서 원본 번호판 영상을 대상으로 적응적 국소 이진화 기법으로 생성한 흑백 영상으로부터 테두리 추정 후보 픽셀들을 제외한 나머지 잡음 픽셀들을 제거한 다음 테두리로 추정되는 수직 연결 픽셀들만 추출한다. 이어서 Hough 변환을 통해 수직 테두리 직선 성분을 추출한다. 수평 성분에 대해서도 동일한 방법으로 수평 테두리 성분을 추출하여 이들을 바탕으로 번호판 사각형 테두리를 추출한다.

수직 및 수평 테두리의 교차점인 4개의 꼭지점을 찾아서 일정 크기의 직사각형 형태로 정규화 한 예를 <그림 5>에 보였다.

DGTSA8_2023_v19n4_127_f0012.png 이미지

<그림 5> 번호판 영역을 직사각형으로 정규화한 예

입력 번호판의 사각형 4개 꼭지점, A, B, C, D 들의 좌표(x, y)와 회전 보정 결과 생성할 사각형의 4개 꼭지점, A′, B′, C′, D′들의 좌표(X', Y')를 구한다. 식 (1) 및 (2)에 Perspective Transform[11]을 위한 공식을 나타내었다.

x' = ax + by + cxy + d       (1)

y' = ex + fy + gxy + h       (2)

입력 영상의 4개의 꼭지점과 보정결과 영상의 4개 꼭지점들을 식 (1) 및 (2)에 대입해서 도출한 8개 방정식을 풀면 상수 a, b, c, d 및 e, f, g, h의 값을 구할 수 있다. 이를 이용하여 보정 결과 영상의 각 픽셀이 입력 영상에서 어느 위치인지를 구하는 역방향 변환으로 회전 보정된 영상을 생성할 수 있다.

3.2 번호판 영상의 문자 분할

이륜차량 번호판은 상단에 17개의 광역시, 도 명칭과 각 광역시, 도 소속의 206개 시, 군, 구 명칭들이 조합되어 있고 하단에 19개의 한글 중 1개 글자 및 4자리의 숫자들이 연속적으로 나열되어 있다. 이러한 문자 배열 정보를 바탕으로 개별 문자들을 분할한다. <그림 6>에 국내 이륜차량 번호판의 문자 배열 예를 도시하였다.

DGTSA8_2023_v19n4_127_f0003.png 이미지

<그림 6> 이룬 차량 번호판의 문자 배열

IV. 이륜 차량 번호판 인식기

4.1 딥러닝 컨볼루션 신경망 인식기 구조

이륜 차량 번호판에 기록된 문자열을 인식하기 위해 광역시, 도 명칭 및 시, 군, 구 명칭 인식을 위해 단어 인식기를 구현하고 한글 및 숫자를 인식을 위한 문자 인식기를 구현한다. 단어 인식기 및 문자 인식기 입력 층의 이미지 크기는 각각 64x40 및 32x40으로 하고 나머지 구조는 동일하게 설계하였다. <그림 7>에 광역시, 도 단어를 인식하기 위한 딥러닝 컨볼루션 신경망 인식기[4-9]의 구조를 도시하였다.

DGTSA8_2023_v19n4_127_f0004.png 이미지

<그림 7> 광역시, 도 단어 인식을 위한 딥러닝 컨볼루션 신경망 인식기 구조

인식 대상 단어를 64x40 크기로 정규화하여 입력하면 5x5 커널 필터 4개와 첫 번째 컨볼루션을 수행한다. 컨볼루션에서 padding=0, stride=1로 하면 60x36 크기 4개 채널의 피쳐맵을 생성할 수 있다. 60x36 크기의 피쳐맵을 max pooling을 이용하여 30x18 크기의 4개 피쳐맵으로 축소한 다음 다시 컨볼루션을 수행한다. 두 번째 컨볼루션 층에서는 30x18 크기의 4개 채널 피쳐 맵에 대해 3x3 크기의 8개 커널을 padding=0, stride=1로 컨볼루션하여 28x16 크기의 8개 피쳐맵을 생성한다. 출력된 28x16 크기의 피쳐맵에 max pooling을 적용하여 14x8 크기의 8개 채널의 피쳐맵으로 축소시켜 896개의 피쳐를 얻는다. 896개의 피쳐를 완전 결합층의 입력으로 하여 200개의 은닉층을 갖는 Fully Connected 층을 통과시켜 17개 광역시, 도의 인덱스에 해당되는 17개 출력 뉴런들 각각의 출력 값을 생성한다. 출력 뉴런 값들 중에 최대 값을 갖는 뉴런의 인덱스를 광역시, 도 단어 인식 결과로 얻을 수 있다. 시, 군, 구 명칭 인식을 위한 단어 인식기도 출력 뉴런의 개수만 달리하면 광역시,도 단어 인식기와 동일한 구조로 구현할 수 있다.

4.2 지역 단어 인식기 구성

광역시, 도를 인식한 다음 해당 지역의 시, 군, 구 단어를 인식하기 위해 각 광역시, 도에 속한 시, 군, 구 단어 인식을 위한 단어 인식기는 2가지 방법으로 구현할 수 있다. 아래 <그림 8>에 시, 군, 구 단어를 인식하기 위해 광역시, 도 단어 인식기에 종속적으로 구현하거나 광역시,도 단어 인식기에 독립적으로 구현하는 모델을 보였다.

DGTSA8_2023_v19n4_127_f0005.png 이미지

<그림 8> 광역시, 도 단어 인식기와 시, 군, 구 단어 인식기를 종속적 연결 및 독립적 연결한 예

종속적 단어 인식기 구조에서는 아래 식 (3) 및 (4)에서와 같이 광역시, 도 인식기의 n개 출력 중 최고값의 인덱스 Gi를 광역시, 도 명칭으로 하고 광역시, 도 Gi에 연결된 시, 군, 구 단어 인식기의 m개 출력 중 최고 값 을 갖는 인덱스 Qj를 시, 군, 구 명칭 인식 결과로 얻을 수 있다.

Gi = maxpi | i = 0, 1, 2…,n - 1       (3)

Qj = maxpjGi | j = 0, 1, 2…, m - 1       (4)

한편 독립적 단어 인식기 구조에서는 광역시, 도 인식기의 n개 출력 중 최고 값의 인덱스 Gi를 광역시, 도 명칭으로 하고 독립된 시, 군, 구 단어 인식기에서 k = n x m개의 출력 중 최고 값을 갖는 인덱스 Qj를 시, 군, 구 명칭 인식 결과로 얻을 수 있다.

Gi = maxpi | i = 0, 1, 2…,n - 1       (5)

Qj = maxqj | i = 0, 1, 2…,k - 1       (6)

종속적 단어 인식기와 독립적 단어 인식기의 각 시, 군, 구 단어 인식기들은 <그림 7>에 보인 컨볼루션 신경망 구조와 동일하게 구성하고 출력 뉴런의 개수만 달리하여 구현할 수 있다. n개의 시, 군, 구 단어 인식을 위한 각 단어 인식기는 입력층에서 완전 결합층의 은닉층까지의 전체 신호 전달 시간을 td, 은닉층 뉴런의 개수를 H, 출력층 뉴런의 개수를 O 그리고 두 층 사이 뉴런 쌍의 신호 전달 시간을 tf라 하면 <그림 9>와 같이 처리 시간을 모델링할 수 있다.

DGTSA8_2023_v19n4_127_f0006.png 이미지

<그림 9> 시, 군, 구 단어 인식기의 처리 시간 모델

n개 종속적 단어 인식기 각각의 인식 단어 개수를 m, 1개 독립적 단어 인식기의 인식 단어 개수를 k(= n x m)라 하면 종속적 단어 인식기와 독립적 단어 인식기 각각의 계산 복잡도 Cd및 Ci는 다음과 같이 표현할 수 있다.

Cd = n × (td + H × m × tf) = H × m × tf × n + td × n      (7)

C= (td + H × k × tf) = H × m × tf × n + td       (8)

하나의 단어 인식을 위한 컨볼루션 신경망의 처리시간 Td 및 Ti를 다음과 같이 표현할 수 있다.

Td = td + H × m ×tf       (9)

Ti = td + H × m × tf × n, where td ≫ tf       (10)

위 식에서 전체 신호 전달 시간 td는 출력층 뉴런쌍의 신호 신호 전달 시간 tf에 비해 매우 긴 시간이 소요된다. 계산 복잡도는 메모리 등 소요되는 자원의 양과 비례되는 파라미터로서 종속적 단어 인식기의 계산 복잡도가 독립적 단어 인식기의 계산 복잡도 에 비해 매우 큰 것을 알 수 있다. 한편 종속적 단어 인식기의 단어 인식 과정에서는 n개의 시, 군, 구 단어 인식기 모두를 계산할 필요가 없기 때문에 종속적 단어 인식기가 독립적 단어 인식기의 에 비해 빠른 처리 시간을 갖는다. 하지만 td ≫ tf에 따라 두 방식의 처리 시간 차이가 크지 않음을 알 수 있다.

제시한 광역시, 도 및 시, 군, 구 단어 인식기를 구현하기 위해 종속적 방법과 독립적 방법 각각에 대한 장단점을 아래에 설명하였다.

① 종속적 단어 인식기 구현 방식에서는 광역시, 도 단어 인식기에서 인식 에러가 발생할 경우 시, 군, 구 단어 인식기에서도 보정할 수 없는 인식 에러가 발생할 수 있다.

② 독립적 단어 인식기 구현 방식에서는 광역시, 도 단어 인식기의 인식 결과와 시, 군, 구 단어 인식 결과가 상호 연관된 소속 관계가 아닌 결과를 도출할 수 있다.

③ 독립적 단어 인식기 구현 방식에서 광역시, 도 단어 인식기의 인식 결과를 이용하여 해당 광역시, 도에 소속된 시, 군, 구 단어 그룹 중에서 최적의 인식 결과를 도출하더라도 광역시, 도 단어 인식기에서 인식 에러가 발생할 경우 시, 군, 구 단어 인식기의 인식 결과에 여전히 에러가 발생할 수 있다.

이상으로 종속적 단어 인식기 구조에서는 광역시, 도 단어 인식에서 에러가 발생할 경우 시, 군, 구 단어 인식기에서 보정하기 어려운 인식 에러가 발생할 수 있기 때문에 두 단어 인식 결과의 상호 정합 방식으로 인식 에러 보정이 가능한 독립적 단어 인식기 구조를 선택한 다음 두 단어 인식기에서 발생할 수 있는 인식 에러를 보정할 수 있는 방안을 마련하면 고성능의 번호판 인식이 가능하다.

4.2 오류 보정이 가능한 단어 인식기

전국 17개 광역시, 도 단어 인식기의 출력 값 (pn|n = 0, 1, 2, …, 17)과 광역시, 도 소속 206개 시, 군, 구 단어 인식기의 출력 값(qk|k = 0, 1, 2, …, 206)을 각각 구한 다음 광역시, 도와 소속 시, 군, 구 명칭의 정합 결과를 활용하여 최적의 번호판 인식 결과를 도출할 수 있다. 아래에 광역시, 도 인식기와 소속 시, 군, 구 인식기의 신뢰도 및 명칭의 전방향 및 후방향 정합을 통한 최적의 번호판 인식 결과를 도출하는 알고리즘을 설명하였다.

① 광역시, 도 단어 인식기의 인식 결과가 시, 군, 구 단어 인식기의 인식 결과 지역을 포함하고 있으면 전방향 정합(forward matching)이 이루어져 최적의 인식 결과를 얻은 것으로 간주한다.

② 만약 전방향 정합이 이루어지지 못한 경우에는 광역시, 도 단어 인식기의 인식 결과와 시, 군, 구 단어 인식기의 인식 결과를 비교하여 더 높은 신뢰도를 갖는 인식기를 선택한다.

③ 광역시, 도 단어 인식기의 신뢰도가 더 높거나 같을 경우 해당 지역에 소속된 시, 군 , 구 그룹의 전방향 그룹 정합(forward group matching)을 통해 최대 신뢰도의 시, 군, 구 단어를 인식 결과로 선택한다.

④ 만일 시, 군, 구 단어 인식기의 인식 결과의 신뢰도가 더 높을 경우 해당 지역이 소속된 광역시, 도그룹의 후방향 그룹 정합(reverse group matching)을 통해 최대 신뢰도의 광역시, 도 단어를 인식 결과로 도출한다.

이상의 광역시, 도 및 시, 군, 구 단어 인식 결과 보정 알고리즘의 유사 코드를 <그림 10>에 도시하였다.

DGTSA8_2023_v19n4_127_f0007.png 이미지

<그림 10> 인식기 신뢰도 및 전후방 정합을 통한 광역시, 도 및 시, 군, 구 단어 인식 결과 보정 알고리즘

제안한 방식으로 종속적 단어 인식기를 구현하고 인식 결과 에러를 보정하면 독립적 단어 인식기를 구현한 경우에 비해 처리 시간이 다소 증가하더라도 실시간 단어 인식을 수행이 가능하면서도 더 높은 인식 성능을 얻을 수 있다.

V. 실험 및 결과 고찰

본 논문에서는 CPU 기반의 딥러닝 컨볼루션 신경망을 이용하여 광역시, 도 및 시, 군, 구 인식 결과의 에러를 보정할 수 있는 이륜 차량 번호판 실시간 인식 알고리즘을 제안하였다.

컨볼루션 신경망 구조의 단어 인식기와 문자 인식기[4-9]를 윈도우즈 환경에서 Visual Studio 2019 기반의 MFC C/C++ 코드로 구현하여 단어 및 문자를 학습시키고 <그림 11>과 같이 인식 실험을 수행하였다. 인식기 학습을 위해 17개 광역시, 도 및 206개 시, 군, 구 이륜 차량 번호판 영상 724장을 대상으로 문자들을 분할하고 단어 인식기 및 문자 인식기들을 학습시켰다.

DGTSA8_2023_v19n4_127_f0008.png 이미지

<그림 11> 이륜 차량 번호판 인식기 실험 화면

컨볼루션 신경망 인식기를 학습시킨 다음 이륜 차량 번호판 인식기 성능 분석용 애플리케이션을 구현하고 도로상에서 휴대폰으로 촬영한 985장의 이륜 차량 영상을 대상으로 인식 성능 분석 실험을 수행하고 그 결과를 <표 1>에 도시하였다.

<표 1> 이륜 차량 번호판의 인식 실험 수행 결과

DGTSA8_2023_v19n4_127_t0001.png 이미지

이륜 차량 영상 985장을 대상으로 인식 실험을 수행한 결과 독립적 단어 인식기 방식으로 구현했을 경우 948장(96.2%)의 인식 성능을 얻을 수 있어서 종속적 단어 인식 방식의 921장(93.5%)에 비해 더 높은 인식 성능을 얻을 수 있었다.

1440 x 810 크기의 입력 영상에 대해 종속적 단어 인식 방식에서 프레임당 0.031sec의 처리 속도를 얻을 수 있어서 독립적 단어 인식 방식의 처리 속도 0.052sec에 비해 빠르게 동작함을 알 수 있었다. 하지만 독립적 단어 인식 방식으로 이륜 차량 번호판 인식기를 구현해도 실시간 처리에 효과적으로 활용할 수 있음을 확인하였다. 도로상에서 촬영한 이륜 차량 영상을 대상으로 인식 실험을 수행한 결과 회전 보정, 이진화 및 문자 분할 등이 부정확하여 인식 오류가 발생한 예를 <그림 12>에 도시하였다. 도로 상에서 휴대폰으로 임의로 촬영하여 초점이 맞지 않아 흐리게 촬영되었거나 오염된 번호판 등에서 이진화 오류가 발생한 경우 또는 회전 보장에 실패한 경우 인식 에러가 발생하였다.

DGTSA8_2023_v19n4_127_f0009.png 이미지

<그림 12> 인식 오류가 발생한 번호판 영상 예

본 논문에서 제안한 컨볼루션 신경망을 이용하여 광역시, 도 및 시, 군, 구 단어 인식 결과의 에러를 보정할 수 있는 이륜 차량 번호판 알고리즘을 이용하면 정상적으로 촬영된 이륜 차량 영상에 대해 실시간 번호판 인식을 수행할 수 있음을 보였다.

VI. 결론

본 논문에서는 딥러닝 컨볼루션 신경망을 이용하여 광역시, 도 인식기와 시, 군, 구 인식기를 독립적으로 구현하여 상호 단어 매칭 오류를 보정할 수 있는 실시간 이륜 차량 번호판 인식 알고리즘을 제안하였다. 이륜 차량의 특성상 회전된 번호판의 기울기를 보정하기 위한 방법도 마련하였다. 번호판 인식기를 17개 광역시, 도 및 206개 구청의 이륜 차량 번호판 영상 724장을 이용하여 학습시키고 도로상에서 휴대폰으로 촬영한 985장의 이륜 차량 영상을 대상으로 인식 실험을 수행하였다. 인식 실험 결과 독립적 단어 인식 방식에서 96.2%의 인식 성능을 얻을 수 있었으며 1440 x 810 크기의 입력 영상에 대해 프레임당 0.052sec의 속도로 인식할 수 있어서 실시간 인식기 구현이 가능함을 확인하였다. 딥러닝 컨볼루션 신경망 구현을 위해 GPU 기반의 라이브러리를 사용하지 않고 CPU 기반에 구동될 수 있도록 C/C++ 코드의 알고리즘을 작성하여 모바일이나 에지기기에서도 저비용 고성능의 실시간 인식기 구현이 가능하도록 하였다. 입력 영상들에 대한 이진화나 테두리가 오염된 영상 등에 대한 회전 보정 방법을 개선하면 더 우수한 인식 성능을 얻을 수 있을 것으로 사료된다.

참고문헌

  1. 당순정, 김응태, "YOLOv2 기반의 영상워핑을 이용한 강인한 오토바이 번호판 검출 및 인식," 방송공학회논문지 제24권 제5호, 2019., pp.713-725. https://doi.org/10.5909/JBE.2019.24.5.713
  2. D. How, K. Sahari, "Character Recognition of Malaysian Vehicle License Plate with Deep Convolutional Neural Networks," IEEE Int. Symposium on Robotics and Intelligent Sensors, Tokyo, Japan, Dec., 2016, pp.1-5.
  3. 박진형, "오토바이 무인 단속 추진," 전자신문, http://www.etnews.com/20210108000102, 2021.01.10.
  4. Datamadness, "TensorFlow 2 - CPU vs GPU Performance Comparison," https://datamadness.github.io/TensorFlow2-CPU-vs-GPU, 2019.10.27.
  5. 김진호, "딥러닝 신경망을 이용한 문자 및 단어 단위의 영문 차량 번호판 인식," 디지털산업정보학회 논문지 제16권 제4호, Dec., 2020, pp.19-28.
  6. Deep Learning Tutorial, Release 0.1, LISA Lab, U. of Montreal, 2015.
  7. T. Liu, S. Fang, Y. Zhao, P. Wang and J. Zhang, "Implementation of Training Convolutional Neural Networks," arXiv:1506.01195v2, 2015.
  8. Y. Sugomori, Java Deep Learning Essentials, PACKET publishing, Birmingham, Mumbai, 2016.
  9. G. Sarker and S. Ghosh, "A Convolution Neural Network for Optical Character Recognition and Subsequent Machine Translation," Int. Journal of Computer Application, Vol. 182, No. 30, 2018, pp.23-27. https://doi.org/10.5120/ijca2018918203
  10. L. Tong, H. Zhao, Q. Peng, G. Zhan and Y. LI, "Document Image Skew Correction Method based on Characteristic Sample Point Detection and Hough Transform," Journal of Convergence Information Technology, Vol. 7, No. 22, 2012. pp.576-584. https://doi.org/10.4156/jcit.vol7.issue22.68
  11. G. Kiran, M. S, "Automatic Rectification of Perspective Distortion from a Single Image Using Plane Homography," Int. J. of Computational Sciences & Applications, Vol. 3, No. 5, 2013, pp.47-58.