25
자동차 번호판 인식 프로그램 - Back Propagation 신경망을 이용한 번호판 인식 프로그램 구현 - 인공지능 Term Project 20800577

15.ai term project_final

  • Upload
    -

  • View
    228

  • Download
    5

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 15.ai term project_final

자동차 번호판 인식 프로그램

- Back Propagation 신경망을 이용한 번호판 인식 프로그램 구현 -

인공지능 Term Project 20800577 장 호 상

Page 2: 15.ai term project_final

목 차

1. 문제 정의 a. 설계목표 b. 사용할 인공지능 기법 소

개 c. 팀 구성 및 역할 분담 d. 구현 일정

2. 예제 프로그램 간략한 소개

3. 구현 프로그램 소개 a. 동작 및 구조 b. 자동차 번호판의 특성 c. 문자 인식 방법 d. 프로그램 구성 – Out Line e. 신경망 구성

4. 중요 Function

5. User Manual

6. 구현 결과

7. Improvement

8. Demonstration

Page 3: 15.ai term project_final

1. 문제정의

1-a. 설계 목표

"Back Propagation Algorithm" 을 이용하여 자동차 번호판을 인식하는 프로그램을 구현한다.

사용하는 프로그래밍 언어는 JAVA 를 선택하였으며, Eclipse 를 개발 툴로 사용할 예정이다.

Page 4: 15.ai term project_final

1. 문제 정의

1-b. 사용 할 인공지능 기법 소개

Back Propagation 신경망

Supervised Learning

자동차 번호판은 비교적 규격화 된 형식의 문자

Back Propagation Algorithm은 문자인식에 많이 사용되는 기법으로 자동차 번호판(문자로 이루어짐)을 인식하는 프로그램에 적합할 것으로 생각된다.

Page 5: 15.ai term project_final

1. 문제 정의

1-c. 팀 구성 및 역할 분담 단독 팀으로 진행할 예정

1-d. 구현 일정 10.24 ~ 10.26 : Term Project 주제 선정 10.26 ~ 10.27 : 도서 대출 및 사용할 예제 코드 분석 10.27 : Term Project 기획서 작성 10.30 ~ 10.31 : 예제 코드 실행 및 분석 11. 1 ~ 11. 3 : 필요한 자료 및 추가 소스코드 수집 11. 5 ~ 11.23 : 최종 프로그램 구현 및 디버깅 11.26 ~ 11.27 : 최종 보고서 작성 11.28 : 발표용 데모 및 PPT 작성

Page 6: 15.ai term project_final

2. 예제 프로그램 소개

XOR에 대한 Back Propagation 신경망을

C++을 통해 구현한 예제 프로그램이다.

Page 7: 15.ai term project_final

3. 구현 프로그램 소개

3-a. 동작 및 구조

Page 8: 15.ai term project_final

3. 구현 프로그램 소개

3-b. 자동차 번호판의 특성

Page 9: 15.ai term project_final

3. 구현 프로그램 소개

3-c. 문자 인식 방법

구현하는 프로그램은 자동차의 영상자료에 대한 디지털화 및 영역 추출은 이미 되어 있다고 가정하고 진행한다.

Page 10: 15.ai term project_final

3. 구현 프로그램 소개

3-c. 문자 인식 방법 - 구성 요소 별 인식 방법

앞 숫자 2, 가운데 한글 1, 뒤 고유 숫자 4

영역을 파악하기 위해서 각 영역별 상대적인 위치 좌표를 이용.

각 영역의 크기는 항상 일정

각 구성요소가 차지하는 영역의 크기 및 위치는 항상 동일한 상대좌표를 갖는다.

Page 11: 15.ai term project_final

3. 구현 프로그램 소개

3-c. 문자 인식 방법

- 문자 인식을 위한 입력 데이터 추출 방법

자동차 번호판은 바탕이 흰색이고

글자는 검정색으로 고정

색상 정보를 이용하여 문자를 인식

Page 12: 15.ai term project_final

3. 구현 프로그램 소개

3-c. 문자 인식에 방법

각 문자 영역의 RGB 정보를 흑백으로 변환하여 Input 데이터로 입력

한 번호판 마다 4번 반복하여 4개의 문자에 대해서 인식

Output Neuron 의 값 중 가장 큰 값을 찾아서 해당 Index 의 문자로 인식

outValue 의 값이 0.0 보다 작으면 인식 오류로

처리

Page 13: 15.ai term project_final

3. 구현 프로그램 소개

3- d. 프로그램 구성 - Out - Line

Page 14: 15.ai term project_final

3. 구현 프로그램 소개

3-e. 신경망 구성

Neuron 의 수

Input Neuron 수 330 개

(전체 pixels 중 약 1/2)

Hidden Neuron 수 : 50 개 -> 1000 개

(인식률 문제로 수정)

Output Neuron 수 : 10 개

(인식할 문자 수 : 0 ~ 9 까지 10 개)

Page 15: 15.ai term project_final

3. 구현 프로그램 소개

3-e. 신경망 구성

Training 설정

한 문자 당 training 은 에러 값이 0.000001f 보다

작을 때까지 학습

같은 문자에 대해서 정확도를 높이기 위해서 6번을 반복하여 training

한 번호판에서 번호 영역의 4개의 문자에 대해 training

Page 16: 15.ai term project_final

4. 중요 Function – Train()

Page 17: 15.ai term project_final

4. 중요 Function – Forwardpass()

Page 18: 15.ai term project_final

4. 중요 Function – Sigmoid()

Page 19: 15.ai term project_final

4. 중요 Function – Putchar()

Page 20: 15.ai term project_final

5. User Manual

Page 21: 15.ai term project_final

6. 구현 결과 - 학습

Page 22: 15.ai term project_final

6. 구현 결과 – 문자인식(성공)

Page 23: 15.ai term project_final

6. 구현 결과 – 문자인식(실패)

Page 24: 15.ai term project_final

7. Improvement

학습 결과 저장하는 기능

실제 카메라를 이용해서 번호판 인식

여러 가지 번호판 종류 추가

오차율을 줄인다면,

실제 번호판 인식 프로그램 구축 가능

Page 25: 15.ai term project_final

8. Demonstration