50
รายงานโครงการหมายเลข COE2006-17 โปรแกรมอานปายทะเบียนรถ โดย นายวัชรินทร คุณาธิปพงษ รหัส 463040548-0 นายสาธิต ลีสิริกุล รหัส 463040557-9 รายงานนี้เปนรายงานงานโครงการของนักศึกษาชั้นปที4 ซึ่งเสนอเปนสวน หนึ่งในหลักสูตรวิศวกรรมศาสตรบันฑิต ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร มหาวิทยาลัยขอนแกน

เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

Embed Size (px)

DESCRIPTION

เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถknow2pro.com

Citation preview

Page 1: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

รายงานโครงการหมายเลข COE2006-17

โปรแกรมอานปายทะเบยนรถ

โดย

นายวชรนทร คณาธปพงษ รหส 463040548-0

นายสาธต ลสรกล รหส 463040557-9

รายงานนเปนรายงานงานโครงการของนกศกษาชนปท 4 ซงเสนอเปนสวน

หนงในหลกสตรวศวกรรมศาสตรบนฑต

ภาควชาวศวกรรมคอมพวเตอร

คณะวศวกรรมศาสตร มหาวทยาลยขอนแกน

Page 2: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

Project Report No.COE2006-17

License Plate Recognition Application

By

Mr. Watcharin Kunathipapong I.D. 463040548-0

Mr. Satit Leesirikul I.D. 463040557-9

This is the report of fourth year project assignment submitted in partial

Fulfillment of the requirement for the Degree of Bachelor of Engineering

Department of Computer Engineering

Faculty of Engineering Khon Kaen University

Page 3: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

เรอง

โปรแกรมอานปายทะเบยนรถ

โดย นายวชรนทร คณาธปพงษ รหส 463040548-0

นายสาธต ลสรกล รหส 463040557-9

อาจารยทปรกษาโครงการ

.........................................

(อ.ดร. ชชชย คณบว)

อาจารยผรวมประเมนโครงการ

1. .................................................

(ผศ.ดร. กานดา รณนะพงศา)

2. .................................................

(อ.ดร. นวภค เอออนนต)

ประเมนผล ณ วนท12 กมภาพนธ 2550

Page 4: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

กตตกรรมประกาศ

กตตกรรมประกาศนจดทาขนเพอแสดงการขอบคณตอ อ.ดร.นวภค เอออนนต ทชวยสนบสนนใน

การใหยมอปกรณ(กลอง Webcam Logitech) เพอใชในการถายภาพปายทะเบยนรถ ใหคาปรกษาในเรอง

การใชงานโปรแกรม Matlab เพอใหใชโปรแกรมไดอยางถกตอง และมประสทธภาพมากยงขน และ ชวยใน

สวนของการสรางระบบ Neural Network ใหเปนไปอยางถกตอง ขอบคณ อ.ดร.ชชชย คณบว ทชวยคนหา

ขอมลทเกยวของกบการพฒนาโครงการน และชวยกระตนใหผพฒนา พฒนาโครงการนจนเสรจสมบรณ

Page 5: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

บทคดยอ

การอานปายทะเบยนรถ คอเทคโนโลยการประมวลผลรปภาพ ซงใชในการระบยานพาหนะโดย

ระบทปายทะเบยนโครงการใชภาษา C++ และ โปรแกรม Matlab ในการพฒนา ขนแรกจะใชเทคนคท

เหมาะสมคอการทาใหภาพถายของปายทะเบยนรถดขนและงายเพองายตอการนาภาพไปเขาสสวนของ

Neural Network เพอดงตวเลขของปายทะเบยนรถออกมาแปลเปน text file ซงโปรแกรมสามารถทจะระบ

หมายเลขทะเบยนรถไดอยางถกตองมากกวา 50 เปอรเซนต

Page 6: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

Abstract

License Plate Recognition (LPR) is an image-processing technology used to identify vehicles

by their license plates. These projects implement the LPR system by using C++ language and

Matlab7. It first uses a series of image manipulation techniques to detect, normalize and

enhance the image of the license plate, then use neural network to extract the number of the

license plate. The performance of the system shows that it is able to identify vehicle more than

50 percents.

Page 7: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

สารบญ

กตตกรรมประกาศ ก

บทคทยอ ข

Abstract ค

สารบญ ง

สารบญรปภาพ ฉ

สารบญตาราง ซ

บทท1 บทนา 1

1.1 ทมาของโครงการ 1

1.2 วตถประสงค 1

1.3 ขอบเขตของโครงการ 2

1.4 แผนการดาเนนงาน 2

1.5 ขนตอนการดาเนนงาน 2

1.6 ประโยชนทคาดวาจะไดรบ 3

บทท2 ทฤษฎพนฐานและงานวจยทเกยวของ 4

2.1 ทฤษฎพนฐานทเกยวของ 4

2.1.1 Digital Image Processing 4

2.1.2 Neural Network 9

2.1.3 ความรเกยวกบ DirectShow 11

2.2 งานวจยพนฐานทเกยวของ 12

บทท3 การดาเนนงาน 20

3.1 สวนของ Digital Image Processing 20

3.2 สวนรจาปายทะเบยนรถ 27

3.3 โปรแกรมถายภาพทะเบยนรถ 28

บทท4 การออกแบบละพฒนาโปรแกรม 29

4.1 การออกแบบและพฒนาโปรแกรม 29

4.2 หลกการทางานของโปรแกรม 31

บทท5 ผลการดาเนนงาน 32

Page 8: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

บทท6 สรปผลและขอเสนอแนะ 35

6.1 บทสรป 35

6.2 ปญหาทพบในการดาเนนการ 35

6.3 ขอเสนอแนะ 35

ภาคผนวก 36

บรรณานกรม 39

Page 9: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

สารบญรปภาพ

รปท 2.1 ตวอยางการทาการขยายภาพ (Dilation) 4

รปท 2.2 การทาการยอภาพ (Erosion) 5

รปท 2.3 การทา Opening 6

รปท 2.4 การทา Closing 6

รปท 2.5(a) Model of an Ideal digital image 8

รปท 2.5(b) Model of a ramp edge 8

รปท 2.6(a) Two regions separated by a vertical edge 9

รปท 2.6(b) Detail near the edge 9

รปท 2.7 โครงสรางของ Feed-forward network 10

รปท 2.8 แสดงรปแบบ Back-propagation neural network 11

รปท 2.9 รปสเหลยมทเปนสวนของปายทะเบยนรถ 13

รปท 2.10 รปแสดงสวนปานทะเบยนทตดออกมา 13

รปท 2.11 การกาหนดพนทตวอกษร(1) 14

รปท 2.12 การกาหนดพนทตวอกษร(2) 14

รปท 2.13 ขนตอนการเลอกตวอกษร 14

รปท 2.14 ปายทะเบยนแบบเกา 15

รปท 2.15 ปายทะเบยนแบบใหม 15

รปท 2.16 ตวอยางตวเลขของปายทะเบยนแบบเกา ตวอยางตวเลขของปายทะเบยนแบบใหม 15

รปท 2.17 การทา Histogram ในแนวแกน x 16

รปท 2.18 การทา Histogram ในแนวแกน y 16

รปท 2.19 การเลอกแบบตวอกษรใหตรงกบแบบของตวอกษรทนามาอาน 16

รปท 2.20 การตดเมอมนอตหรอภาพแปลกปลอมสดาเขามาตดกบตวอกษร 17

รปท 2.21 ขนตอนการวเคราะหปายทะเบยนรถ 18

รปท 3.1 ภาพทะเบยนรถตงตน 20

รปท 3.2 ภาพปายทะเบยนแบบ Gray Scale 20

รปท 3.3 ภาพ Gray scale ของปายทะเบยนรถทตดขอบ 20

รปท 3.4 ผลลพธการทา Vertical edge detection ของรปปายทะเบยนรถ 21

Page 10: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

รปท 3.5 ผลลพธของDilationและOpening 21

รปท 3.6 ผลการคณรปท 3.3 กบรปท 3.5 22

รปท 3.7 ภาพขาวดาของปายทะเบยนรถ 23

รปท 3.8 ภาพทตดขอบบนกบขอบลาง 24

รปท 3.9 ภาพทตดขอบซายกบขวาออกจากรปท 3.8 25

รปท 3.10 ผลลพธการตดตวอกษร 27

รปท 4.1โปรแกรมจบภาพปายทะเบยนรถ 29

รปท 4.2 โปรแกรมอานปายทะเบยนรถ 30

รปท 4.3 ขนตอนการทางานของโปรแกรม 31

รปท 5.1 โปรแกรมถายภาพ 32

รปท 5.2 โปรแกรมอานปายทะเบยนรถ 33

รปท 7.1 การรนโปรแกรมอานปายทะเบยนรถ 38

Page 11: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

สารบญตาราง ตารางท 1.1 ตารางแสดงขนตอนการดาเนนการ 2

ตารางท 3.1 ตวอยางโคดในการทา Vertical edge detection 21

ตารางท 3.2 ตวอยาง โคดการคณแบบจดตอจด 22

ตารางท 3.3 ตวอยางการแปลงภาพเปนขาวดาดวยวธ Threshold 22

ตารางท 3.4 โคดแสดงการตดขอบบนและลาง ของปายทะเบยน 24

ตารางท 3.5 โคดแสดงการตดขอบซายและขวา ของปายทะเบยน 25

ตารางท 3.6 โคดตวอยางแสดงการตดตวอกษรออกจากกน 27

ตารางท 5.1 แสดงผลลพธทสามารถตดตวอกษรได เทยบกบระยะทาง 34

Page 12: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

1

บทท 1 บทนา

1.1 ทมาของโครงการ

ในการจอดรถตามสถานทตางๆไมวาจะเปนรานอาหาร หางสรรพสนคาขนาดใหญ หรอแมแต

โรงเรยน ซงโดยปกตแลวจะมเจาหนาทคอยแจกบตรทจอดรถ และคอยคดคาจอดรถจากเวลา เขา-ออก

จากทจอดรถซงการทางานจาก พนกงานมโอกาสทจะเกดขอผดพลาดขนได อาจเนองมาจาก การขาด

ความรอบคอบ หรอวาการทางานเดมๆซาเปนระยะเวลา นานซงปญหาทเกดขนเหลานเปนการทาให

เกดผลเสยแกบรษทหางรานตางๆ

โปรแกรมการอานปายทะเบยนรถเปนโปรแกรมทพฒนาขนมาเพอทจะชวยในการอานปาย

ทะเบยนรถโดยใชแนวความคดทจะใชแรงงานจากเครองจกรแทนการใชแรงงานจากคน โดยใชวธการ

ตรวจจบภาพและ ใชโปรแกรมชวยในการวเคราะหภาพเพอใหคอมพวเตอรสามารถอานและเขาใจไดวา

ทะเบยนรถนนเปนหมายเลขใด และนอกจากน การใชเครองจกรแทนนนเปนการชวยแกปญหาการอาน

ทะเบยนรถทผดพลาด หรอขอผดพลาดทเกดจากมนษย นนเอง เพราะเครองจกรสามารถทางานไดเปน

ระยะเวลานานโดยไมเหนอยและไมตองการพกผอน และยงสามารถชวยลดคาใชจายทจะตองจาง

พนกงานทจะตองจายคาจางทกเดอนๆอกดวย นอกจากนโปรแกรมยงสามารถทางานไดรวดเรวยงขนลด

ระยะเวลาในการรอรบบตรจอดรถทาใหความวนวายลดลงไดในชวงเวลาเรงดวน

นอกจากนแลวตวโปรแกรมยงสามารถทจะพฒนาเพอใชประยกตใชกบโปรแกรม อนๆไดอกดวย

อาท เชนโปรแกรมทจะชวยตามจบรถทขบฝาไฟแดง หรอพฒนาเปนระบบรกษาความปลอดภยตาม

สถานทสาคญ หรอ งานสาคญตางๆ และยงสามารถพฒนารวมกบโปรแกรมคดเงนสาหรบเกบคาทจอด

รถยนตอกดวย โดยการถายภาพและเกบขอมลทะเบยนรถนนพรอมกบจบเวลาและคานวณออกมาเปน

คาจอดรถซงโปรแกรม ตางๆเหลานจาเปนตองใชโปรแกรมอานปายทะเบยนรถยนตทงสน และยงชวยท

จะอานวยความสะดวกตางๆแก เจาหนา พนกงาน หรอเจาของกจการตางๆ ไดหลากหลายสถานการณ

ทงนขนอยกบวตถประสงคของผนาไปใช หรอผพฒนา

1.2 วตถประสงค พฒนาโปรแกรมทสามารถวเคราะหหมายเลขทะเบยนรถจากภาพถายไดอยางถกตองเพอนาไป

ประยกตใชกบ โปรแกรมประยกต อนๆ ตามวตถประสงคของผนาไปพฒนาตอ

Page 13: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

2

1.3 ขอบเขตของโครงการ

พฒนาโปรแกรมทสามารถอานหมายเลขทะเบยนรถยนตทเปนแบบมาตรฐานไดอยางถกตอง

(เฉพาะตวเลข ไมรวมอกษรทเปนภาษาไทย) โดยไดจากการวเคราะหจากภาพถายเพอใหไดขอมลตวเลข

นนมา และสามารถนาโปรแกรมนไปรนบนระบบปฏบตการ Window XP ได

1.4 แผนการดาเนนงาน 1. ศกษา คนควา เรอง Image processing และการเขยน C++

2. นาขอมลทไดมาใชในการออกแบบโปรแกรม

3. พฒนาโปรแกรมทไดออกแบบไว 4. ทดสอบโปรแกรมเพอหาขอผดพลาดและแกไขโปรแกรม

5. เขยนคมอการใชงานและสรปผลของโครงการ

1.5 ขนตอนการดาเนนงาน โครงการนมระยะเวลาในการจดทา รวมทงสน 9 เดอน โดยเรมตงแตเดอนมถนายน ถงเดอน

กมภาพนธ พ.ศ. 2549 ซงมขนตอนดาเนนงานแสดงดงตารางท 1.1

ตารางท 1.1 ตารางแสดงขนตอนการดาเนนการ

Page 14: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

3

1.6 ประโยชนทคาดวาจะไดรบ 1. ไดโปรแกรมทสามารถวเคราะหหมายเลขทะเบยนรถจากภาพถายไดอยางถกตอง เพอ

นาไปใชประโยชนได

2. ไดรบความรในเรอง Image processing และการเขยน C++

Page 15: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

4

บทท 2 ทฤษฎ และงานวจยพนฐานทเกยวของ

ในบทนจะกลาวถงทฤษพนฐาน ทใชในการทาโครงการ และงานวจยทไดไปศกษาเพอชวยใน

การทาโครงการ ซงแบงเปน 2 หวขอ คอ ทฤษฎพนฐานทเกยวของ และ งานวจยพนฐานทเกยวของ

2.1 ทฤษฎพนฐานทเกยวของ เปนการกลาวถงทฤษฎพนฐานทเกยวของกบการนาไปใชงานในการพฒนาโครงการน 2.1.1 Digital Image Processing การประมวลผลรปภาพดจตอล คอ การใชอลกอรทมของคอมพวเตอรเพอใชในการประมวลผล

รปภาพ บนรปภาพดจตอลทเกยวกบการประมวลผลภาพทเกยวกบการคานวณและการจดการสใน

ระดบ pixel หรอ model ของส มการเปลยนแปลงของสได เพอประโยชนในการไปใชในการทางาน เชน

RGB มประโยชนกบการมองเหนของมนษย ในขณะท CMYK เปนสจรงทใชในเครองคอมพวเตอร

2.1.1.1 การขยายภาพ (Dilation) และการยอภาพ (Erosion)

การขยายภาพ (Dilation) [6] เปนการขยายโครงสรางของภาพใหใหญขน โดยภาพทขยายจะ

เปนอยางไรนนขนอยกบ structuring element ทนามาใชสแกนบนรปภาพ ดงรปท 2.1

รปท 2.1 ตวอยางการทาการขยายภาพ (Dilation)

การขยายภาพเขยนแทนดวย B A ⊕ โดยมสมการเปนดงน A} A] ) B [( | {z = B A z ⊆∩⊕

โดยท A แทนดวยรปภาพทจะทาการขยายภาพ (Dilation)

B แทนดวย structuring element

Page 16: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

5

การยอภาพ (Erosion) [6] เปนการทาทตรงขามกบการขยายภาพ (Dilation) คอเปนการยอ

โครงสรางของภาพใหเลกลง โดยภาพทยอลงจะเปนอยางไรนน ขนอยกบ structuring element ทนามา

สแกนลงบนภาพ ดงรปท 2.2

รปท 2.2 การทาการยอภาพ (Erosion)

การขยายภาพเขยนแทนดวย B A θ โดยมสมการเปนดงน A} ) B [( | {z = B A z ⊆θ

โดยท A แทนดวยรปภาพทจะทาการยอภาพ (Erosion)

B แทนดวย structuring element

2.1.1.2 Opening(เปดชองวาง) and Closing(ปดชองวาง)

การ Opening [6] เปนการทาใหผวขอบของวตถโคงมนราบเรยบ โดยการตดหรอทาลายสวนท

เปนคอคอดและสวนทโผลยนออกไป โดยมวธการทาคอ นาภาพทจะทา Opening มาทาการยอภาพ

(Erosion) กอน จากนนนาผลลพธทไดมาทาการขยายภาพ (Dilation) ดงรป 2.3

Page 17: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

6

รปท 2.3 การทา Opening

การ Opening เขยนแทนดวย ΒΑo โดยมสมการเปนดงน Β⊕=ΒΑ B) A ( θo

การ Closing [6] กเปนการทาใหผวขอบของวตถโคงมนราบเรยบเหมอนกบ Opening แตจะทา

โดยการรวมสวนทเปนแองลก กาจดสวนทเปนรเลกๆ และเตมสวนทเปนชองวาง โดยมวธการทาคอ นา

ภาพทจะทา Closing มาทาการขยายภาพ (Dilation) กอน จากนนนาผลลพธทไดมาทาการยอภาพ

(Erosion) ดงรป 2.4

รปท 2.4 การทา Closing

การ Closing เขยนแทนดวย Β•Α โดยมสมการเปนดงน ΒΒ⊕Α=Β•Α θ)(

Page 18: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

7

2.1.1.3 Segmentation

โดยทวไปเปนการ Analysis (วเคราะห) หรอ interpret (อธบาย, แปล) ภาพ Segmentation

เปนการแยกภาพออกเปน distinct region ซงมความสมพนธกนในรปภาพ นอกจากนยงเปนการรวม

pixels ทมคณลกษณะเหมอนกน

Segmentation จะเชอมระหวางจะเชอมระหวาง low-level image processing ทเกยวของกบ

ตวมนเอง โดยการจดการ pixel gray level หรอ แกไขขอบกพรอง หรอคณลกษณะหลกของภาพใหดขน

และ high-level image processing ทเกยวของกบการจดการและการวเคราะหของการจบกลมของ

pixels ทแสดงเฉพาะสวนทเราสนใจ เทคนคบางชนดของการ Segmentation จะเจอไดในบาง โปรแกรม

ประยกต ทเกยวของกบการ detection, recognition และ measurement of object ในภาพ กคอการ

Detecting license plate และการจดจามน

Segmentation ถอเปนหนาททยากทสดในกระบวนการทตองใชใน Image analysis ในการจะ

สาเรจกระบวนการนนขนอยกบวาจะทา Segmentation สาเรจหรอเปลา และกระบวนการ

Segmentation นนจะแบงออกไดเปน 2 ประเภทคอ

1. Similarity properties ถกใชในการรวมพกเซลใหเปนกลมเดยวกน

2. Discontinuity of pixel ถกใชในการแยกพกเซล ระหวางพกเซลทเปนของวตถทเราสนใจ ออก

จาก background

2.1.1.4 Thresholding

เปนเทคนคทถกใชหลากหลายในหลายกระบวนการใน Image processing ทแตกตางกน

ออกไป Thresholding เปนการเปลยน database ทเกบคาตางๆหลายๆคาทแตกตางกนออกไป ใหเปน

database ใหมทมคาเพยง 2 คา คอ จะใหพกเซลทมคาตากวาคา Threshold เปนคาคาหนง และ มคา

สงกวาเปนคาอกคาหนงคอ ขาวกบดา (1, 0) ทาใหภาพทผานกระบวนการนจะไดออกมาเปน Binary

Image และ Image Threshold ถอเปน Segmentation อยางหนง

2.1.1.5 Edge Detection (การตรวจหาขอบ)

เสนขอบ(Edge) [6]อาจหมายถงสงทเปนตวบอกถงขอบเขตของพนท แตนยามสาหรบเสนขอบ

ทเราตองการในทนกคอ มนจะตองใหความหมายของการเปลยนแปลงใน gray level เมอเราทาการวด

คาของเสนขอบ (edge) ดงแสดงใหดในรปท 2.5 โดย ideal edge (เสนขอบในทางอดมคต) จะม

ลกษณะดงรปท 2.5(a) Ideal Edge ตามรปแบบนมนจะเปนกลมของพกเซลทตดตอกนไปในทศทางใน

แนวตง โดยจะตงฉากกบการเปลยนแปลงของ gray level ดงรป นนคอในทางอดมคต แตในทางปฏบต

แลวรปภาพตางๆนนจะใหเสนขอบทเบลอๆ ไมชดเจนเหมอนอยางใน ideal edge ภาพพวกนจะใหเสน

Page 19: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

8

ขอบทมรปแบบเปนแบบทางลาด (ramplike) ดงรปท 2.5 (b) เสนขอบของรปแบบนจะไมไดมขนาด 1

พกเซลตอเนองกนไปแตเสนขอบของรปแบบนจะอยบรเวณทางลาด (ramp)นน เราจะหาความหนาของ

เสนขอบไดจากความยาวของทางลาด (ทางลาดนมนเปนจดเรมและจดสนสดของการเปลยนแปลงของ

gray level) และความยาวทางลาดนหาไดจาก slope ของมน

รปท 2.5

รปท 2.5(a) Model of an Ideal digital image. รปท 2.5(b) Model of a ramp edge. The slope

of the ramp is proportional to the degree of blurring in the edge

รปท 2.6(a) จะแสดง first และ second derivatives ของ gray level profile การทา first

derivative จะไดคาคงทตรงชวงทเปนทางลาด (ตรงขอบ) และไดคาเปนศนยตรงชวงทไมไดเปนทางลาด

ในการทา second derivative จะไดคาเปนบวกตรงเสนขอบทอยบรเวณทมการเปลยนแปลงสมพนธกบ

ดานมด และมคาเปนลบตรงเสนขอบทอยบรเวณทมการเปลยนแปลงสมพนธกบดานสวาง สวนทอนๆม

คาเปนศนย ตามรปท 2.6(b)

Page 20: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

9

รปท 2.6(a) รปท 2.6(b)

รปท 2.6(a) Two regions separated by a vertical edge. รปท 2.6(b) Detail near the

edge, showing a gray-level profile, and the first and second derivatives of the profile

จากผลทไดของ First derivative นเองเราสามารถใชในการหาขอบเขตของวตถในภาพได และ

คาบวกลบทไดจากการทา second derivative สามารถใชในการหาเสนขอบทอยบนดานมดและเสน

ขอบทอยบนดานสวางได ใน second derivative จะมคณสมบต zero-crossing ทมประโยชนอยางมาก

ในการหาจดตรงกลางจากเสนขอบทเปนแบบ thick edge

2.1.2 เครอขายใยประสาท (Neural Network)

คอโมเดลทางคณตศาสตร สาหรบประมวลผลสารสนเทศดวยการคานวณแบบคอนเนคชนนสต

(Connectionist) เพอจาลองการทางานของเครอขายประสาทในสมองมนษย ดวยวตถประสงคทจะสราง

เครองมอซงมความสามารถในการเรยนรการจดจาแบบรป (Pattern Recognition) และการอปมาน

ความร (Knowledge deduction) เชนเดยวกบความสามารถทมในสมองมนษย โดยโครงการนใช

เครอขายใยประสาท (Neural Network) [1] แบบ Feed-forward network และใชอลกอรทมทเรยกวา

Back propagation algorithm ในการเรยนรของเครอขายใยประสาท

ขายงานประสาทแบบ Feed-forward network จะมลกษณะการทางานของขอมลทนามา

ประมวลผลในวงจรขายเปนดงนคอ ขอมลนนจะถกสงไปในทสทางเดยวจาก Input node แลวสงตอไป

ยง node ทอยใน layer อนตอไปเรอยๆจนถง Output node โดยทไมมการยอนกลบของขอมล หรอ

เชอมตอขอมลกนกบ node ทอยใน layer เดยวกน ดงรปท 2.7

Page 21: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

10

รปท 2.7 โครงสรางของ Feed-forward network

Back-propagation เปนอลกอรทมทใชในการเรยนรของเครอขายใยประสาทวธหนงทนยมใชใน

multilayer perception เพอปรบคานาหนกในเสนเชอมตอระหวางโหนดใหเหมาะสม โดยการปรบคาน

จะขนกบความแตกตางของคาเอาตพตทคานวณไดกบคาเอาตพตทตองการ โดยมขนตอนดงนคอ

1. กาหนดคาอตราเรวในการเรยนร (Rate parameter)

2. สาหรบแตละตวอยางอนพตใหทาตามขนตอนตอไปนจนกวาไดระดบ performance ท

ตองการ

- คานวณหาคาเอาตพตโดยใชคานาหนกเรมตนซงอาจไดจากการสม

- คานวณหาคา β : แทนประโยชนทจะไดรบสาหรบการเปลยนคาเอาตพตของแตละโหนด

- ในชนเอาตพต (Output Layer)

β z = d z - o z

เมอ d z = คาเอาตพตทตองการ

o z = คาเอาตพตทคานวณได

- ในชนซอน (Hidden Layer)

β j = ∑w j k o k (1 - o k) β k

เมอ w j k = นาหนกของเสนเชอมระหวางชนท j กบ k

- คานวณคานาหนกทเปลยนแปลงไปสาหรบในทกนาหนก ดวยสมการตอไปน

Δ w i j = r o i o j (1 - o j) β j

- เพมคานาหนกทเปลยนแปลง สาหรบตวอยางอนพตทงหมด และเปลยนคานาหนก

Input Output

Page 22: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

11

ชนอนพต ชนท i ชนท j ชนท k ชนท z

อนพต เอาทพต

รปท 2.8 แสดงรปแบบ Back-propagation neural network

2.1.3 ความรเกยวกบ DirectShow

DirectX เปน Application Programming Interface (API) ของ Microsoft ทพฒนาขนเพอใช

จดเตรยม Interface สาหรบควบคมฮารดแวรมลตมเดยบนระบบปฏบตการ windows ใหเปนไปอยางม

ประสทธภาพ โดย DirectX จะม component ตางๆดงน

1. Direct3D ใชจดการเกยวกบกราฟฟก

2. DirectSound and DirectMusic ใชจดการเกยวกบเสยง

3. DirectInput ใชจดการเกยวกบพวก Input Device เชน mouse, keyboard, joystick เปนตน

4. DirecPlay ใชจดการเกนวกบการพฒนาเกมสทเลนผานเครอขาย

5. DirectShow ใชจดการเกยวกบมลตมเดย

6. DirectSetup ใชเกยวกบการ Install directX ใชแสดงผลเวอรชนของ DirectX

โดย DirectShow นนเปนหนงใน component ของ Direct X ทใชในการจดการเกยวกบ

มลตมเดย เชน ใชควบคมการเลน การหยดเลนของไฟลมลตมเดย เปนตน โดยท DirectShow นนทางาน

อยบนพนฐานของ Filter graph ซง Filter graph นจะมอย 3 ชนดดวยกน คอ

1. Source Filters ใชทาหนาทตดตอกบไฟลมลตมเดย กลองหรอเวบแคม เพอนาขอมลมาใช

2. Transform Filters ใชทาหนาทเปลยนแปลงขอมลทไดรบมาจาก Source filters ตามแตท

ผใชงานตองการ เชน เปลยนขอมลมลตมเดยจากทจะแสดงผลเปนภาพสใหเปลยนเปนขาว

ดา

3. Render Filters ใชทาหนาทแสดงผลขอมลมลตมเดยทไดรบมา

โดยผทจะพฒนาโปรแกรมทจะทางานรวมกบกลองหรอเวบแคมจะตองทาการเขยน filter

เหลานขนมาตามแตผพฒนาตองการ

Page 23: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

12

2.2 งานวจยพนฐานทเกยวของ จากการศกษาโครงการของ นาย สพฒน สธทศน, นาย พงศธารน วนยเวคน และนาย อครชย

อรรถกล [3] สามารถสรปถงโครงงานทไดศกษา ไดบทสรปและขนตอนและวธการหลกๆดงน

1. การประมาณสวนกรอบปายทะเบยนรถ (License Plate Estimation)

2. การตดสวนตวเลขโดยละเอยด ( License Plate Segmentation )

3. การทาการรจาตวเลขจากภาพสวนตด ( Number Recognition from Segmented Image )

รายละเอยด

1. จากโครงการทไดศกษานนในสวนของการประมาณสวนกรอบปายทะเบยนรถ

จะเปนการใชวธการตรวจหาสวนของภาพทเปนรป สเหลยม สงททาในขนตอนนกคอ การ

นาภาพ Input มาทาการหา Contour โดยพจารณาในระดบ Threshold ทใชในการทา Binarization

ในระดบตางๆ จากนน เรากจะนา Contour ทกอนทไดน มาทาการประมาณมมของรปเหลยมท

ลอมรอบวาม 4 มมรเปลา โดยถาม 4 มม กแสดงวามความเปน ไปไดทจะเปนรปสเหลยม และ

นอกจากน ยงสามารถทจะพจารณาไดจากภาพโดยผานการทา Edge Detection ดวย ซงกจะทาให

เราสามารถหารปสเหลยมไดเชนกน โดยการพจารณารปเหลยมทงจาก Contour และจากการทา

Edge Detection นน เราจะทาทงใน 3 Channels ส รวมถงในสวนทเปน Gray Scale ดวย

การพจารณาคดสเหลยมทเปนทเปน License Plate คอจากขนตอนขางตนนนเราจะดรป

สเหลยมหลายรปโดยสงทเราหวงกคอ คอ นาจะมรปสเหลยมรปหนงททาหนาทคลายกรอบปาย

ทะเบยนรถ ถงแมมนจะไมได ทบกบสวนทเปนปายทะเบยนเลยกตาม ซงในสวนน เรากจะคด

สเหลยมนนโดยการใหคะแนนความนาจะเปนซงม Heuristic ดงน

- สเหลยมทจะเปนปายทะเบยนควรจะเปนสเหลยมทม Contourซงไดรบการประมาณ

วา จะเปนตวอกษรในภาพจากขนตอนทแลว

- ตวตวอกษรทอยในภาพควรจะมขนาดใกลเคยงหรอเปนอตราสวนทเหมาะสมกบ

ขนาดสเหลยม ดงนน คะแนนทจะใหจะเปนอตราสวนโดยตรงกบ พนทของ Contour ทแทนตวอกษร

หารดวย พนท ของสเหลยมอนนนๆ

โดยหลงจากทเราไดใหคะแนนสเหลยมตางๆ แลว เรากจะสามารถคดเลอกสเหลยมทคาดวา จะ

เปนปายทะเบยนไดจากสเหลยมทมคะแนนมากทสด ซงแสดงเปนรปสเหลยมสแดง ดงรป 2.9

Page 24: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

13

รปท 2.9 รปสเหลยมทเปนสวนของปายทะเบยนรถ

หลงจากหลงจากทเราไดสวนทเปนปายทะเบยนสแดงแลวนน เรากจะทาการตด โดยการตดนน

จะ ตดใหเลยสวนทเปนสเหลยมออกมาเลกนอยดง รปท 2.10 จากนน กสงใหขนตอนท 3 เพอทาการ

Segment Character ตอไป

รปท 2.10 รปแสดงสวนปานทะเบยนทตดออกมา

2. สวนแบงขอบเขตของตวอกษรในภาพโดยละเอยด (License Plate Segmentation)

ในสวนแบงขอบเขตของตวอกษรในภาพนน จะเปนสวนทนาภาพมาจากสวนการหากรอบของ

แผนปายทะเบยน แลวมาทาการหาพนทของตวอกษรในแผนปายทะเบยนนนอยางละเอยด และนาพนท

ทไดตดเปนรปภาพของตวอกษรแตละตวแลวสงไปทาการรจาตวเลข (Number Recognition) เพอแปลง

เปนตวเลขทสามารถจดเกบในรปแบบ String

ในสวนแบงขอบเขตของตวอกษรในภาพ จะแบงการทางานออกเปน 3 ขนตอนดวยกน ซง

ประกอบดวย

a. ขนตอนการหาพนทจะมขนาดเหมาะสมทจะเปนตวอกษร การกาหนดพนททจะนาจะ

เปนตวอกษรของทะเบยนในขนตอนนนจะทาการหาพนททตดกน ทม ขนาดความสงมากกวาความกวาง

และขนาดของความกวางและความสงนนตองไมตากวาคาทกาหนด ซงในทนจะกาหนดไวใหไมตากวา 2

เปอรเซนตของภาพ ซงในขนตอนนจะชวยกาจดพนทไมเกยวของ ออกไปไดพอสมควร ดงรปท 2.11

Page 25: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

14

รปท2.11 การกาหนดพนทตวอกษร

b. ขนตอนการระบพนทตวอกษรทงหมดเปนทะเบยนรถ ในขนตอนนจะพนทหลายๆพนท

จากขนตอนแรกมาทาการหาตวอกษร โดยมวธการคอนาพนททไดมาแตละพนทนามาหาจดตาสดตาม

แกน y นามาเปรยบเทยบกน ซงจะบอกถงพนทมระนาบ ในแนวเดยวกน โดยในทนจะเปนตวอกษรของ

แผนปายทะเบยน แลวนาเฉพาะพนททมความสงใกลเคยง กนและมจานวน 3 ถง 6 พนท ซงคอทะเบยน

ของรถทจะม 3 ถง 6 อยแลว (เชน กข 1 หรอ คง 1234) ดงรปท 2.12

รปท 2.12 การกาหนดพนทตวอกษร

c. ขนตอนการเลอกตวอกษรทเปนตวเลขของทะเบยนรถ ในขนตอนนจะนาพนทจากขนตอนท

แลวมาซงมจานวน 3 ถง 6 พนท มาทาการหาพนททเปน เฉพาะตวเลข โดยการจะใชวธการหาพนททอย

ตาแหนงหลงสดมาหาหนาสด 4 พนท ( ตาแหนงตามแกน x มากทสด มาหานอยทสด ) ซงในทะเบยน

นน จะมตวเลขไมเกน 4 ตว แตอาจมนอยกวาได ทาใหเมอหาพนททอยจากหลงมาหนานน เมอเจอ

ชองวาง จะทาการหยดการหา เพราะอาจสมมต ไดวามตวเลขนอยกวา 4 ตว ซงในทนกาหนดวาจะเกด

ชองวาง เมอเจอตวอกษรทหางกนเกน 2 เทา ของความกวางเฉลยของแตละตวอกษร ดงรปท 2.13

รปท 2.13 ขนตอนการเลอกตวอกษร

Page 26: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

15

จากการทางานของทง 3 ขนตอน จะได Sequence ของพนทออกมานนแตละตวเลข จากนนทา

การตวพนทของแตละตวเลขเพอนาไปทาการรจาเลขออกมา

3. การทาการรจาตวเลขจากภาพสวนตด (Number Recognition from Segmented Image)

ในสวนของการระบตวเลขทะเบยนรถน คอการสามารรถระบหมายเลขทะเบยนรถไดอยาง

ถกตองมากทสด โดยในโครงงานนจะสามารถระบตวเลขทะเบยนทอยในปายทะเบยนได ( ไมรวม

ตวอกษรทอยในปายทะทะเบยน ) โดยหลงจากขนตอนกอนหนานทสามารถตกรอบตวเลขแตละตวได

แลว จะสงภาพของตวเลขเหลานมายงขนตอนน เพอจะระบวาเปนหมายเลขใด

ประเภทของปายทะเบยนและรปแบบตวอกษร ปายทะเบยนรถยนตสวนบคคลในประเทศไทยท

มอยในปจจบนนนม 2 ประเภท คอ ปายทะเบยนแบบเกา (สงเกตไดจากจะมตวเลขนาหนาหนงตว แลว

ตามดวยตวอกษรภาษาไทย 1 ตว) ดง รปท 2.14 และปายทะเบยนแบบใหม (จะนาหนาดวยตวอกษร

ภาษาไทย 2 ตว) ดงรปท 2.15 โดยทง 2 แบบนจะมความแตกตางในรปแบบของตวอกษร (font) ดงนน

ในโครงงานนจะใชฐานขอมลเปนตวอกษร 2 ชดทมรปแบบทง 2 แบบดงทกลาวมา

รปท 2.14 ปายทะเบยนแบบเกา

รปท 2.15 ปายทะเบยนแบบใหม

รปท 2.16 ตวอยางตวเลขของปายทะเบยนแบบเกา ตวอยางตวเลขของปายทะเบยนแบบใหม

Page 27: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

16

กลวธในการจาแนกตวเลข

ในสวนนใชหลกการสาคญ 2 หลกการ ไดแก

1. โดยหลกการแรกใชวธคลายกบในงานวจย A Real Time Vehicle's License Plate

Recognition System ทจะดแทนตวอกษรดวย histogram โดยแยกเปนแกน x และแกน y และนา

histogram ทไดม map กบรปปายทะเบยนทมอยเพอหาคาความแตกตางโดยใหเปนคะแนนดงจะ

กลาวถงตอไป และหาคา เฉลยเพอนาประมวลวานาเปนตวเลขตวใด

รปท 2.17 การทา Histogram ในแนวแกน x

รปท 2.18 การทา Histogram ในแนวแกน y

โดยมขอดคอ ถาจานวน Pixel สดามคาใกลเคยงกน นนคอมความแตกตางในคอลมน หรอแถว

นนนอย ๆ คาของคะแนนจะเพมขนเรวมากแมจะคดจากกรณเดยว และมากกวาการไดคากลาง

โดยความคดนมความคดเนองจากมความเชอวาตวอกษรหนง ๆ จะมความถกตองมาก เปน

พเศษถาแบบของตวอกษรทใชทดสอบตรงกบแบบของตวอกษรทนาอานมาได และเปนตวเลขเดยวกน

และจะทาการถวงนาหนกและบวกคะแนนทไดจากกาเปรยบเทยบภาพกบภาพในฐานขอมลรวมกน

รปท 2.19 การเลอกแบบตวอกษรใหตรงกบแบบของตวอกษรทนามาอาน

Page 28: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

17

2. การตดขอบเพอลดสงรบกวนตาง ๆ ในปายทะเบยนรถจะเหนวามนอตทเปนตวทจะขดขวาง

การอานคาตวเลข นอกจากนน ยงอาจมสงปนเปอนตางๆ ทตดอยทปายทะเบยนอกดวย ดงนนเราจะทา

การตดพนททไมนาจะ ใชตวเลขออกเพอใหไดบรเวณทเปนตวเลขอยางแทจรง (แมจะตองตดตวเลขออก

บางสวน แตในการตดตวเลขหนง ๆ จะตดไดทบรเวณเดมเสมอ)

รปท 2.20 การตดเมอมนอตหรอภาพแปลกปลอมสดาเขามาตดกบตวอกษร

โดยจะทาการตดโดยใชกลวธการหาบรเวณสดา 2 บรเวณทไมตดกน และ ทาการตด และ

resize ใหมขนาดทตองการ

จากการศกษาโครงงานขางตนนเปนการตรวจสอบหาปายทะเบยนรถโดยท รปถายภาพ

ทะเบยนรถนนจะตองเปนรปถายในดานตรงเพราะวาในขนตอนการคดเลอกทะเบยนรถออกมาจากปาย

สเหลยมนนจะเปน การหาสเหลยมทม Contour ทนาจะเปนตวอกษร และมขนาดใกลเคยงและม

อตราสวนทเหมาะสมกบภาพสเหลยมทนาจะเปนปายทะเบยนดงนน คะแนนทจะใหจะเปนอตราสวน

โดยตรงกบ พนทของ Contour ทแทนตวอกษร หารดวย พนท ของสเหลยมอนนนๆ ดงนน ภาพถาย

ทะเบยนรถทไดนนไมเปนภาพในแนวตรงจะทาใหเกดความคลาดเคลอนขนได และการวเคราะหตวเลข

นนไดมาจากการวเคราะห histogram ซงจะสามารถระบวาตวเลขแตละตวนนเปนตวเลขอะไรนน ทาได

โดยการดวา histogram ทไดนนมความสอดคลองใกลเคยงกบ histogram ของตวเลขแตละตว (0-9) ถง

กระนนวธการนยงเปนวธการทไมถกตอง 100% ยงมขอผดพลาดทเกดขนไดอย ซงความถกตองมเพยง

60% เทานน

จากการศกษาโครงการของนายกฤษฎา กลยาสรวฒนและนายฐต กนตถาวร [2] ซงมขนตอน

วธการแยกหมายเลขทะเบยนออกจากภาพดงน ขนแรกจะกาหนดภาพใหมขนาดเหลอ 540 * 720 pixel

เพราะภาพทรบเขามาจะมขนาดไมเทากนจงตองกาหนดขนาดทตายตว เพอใหตวอกษรของปาย

ทะเบยนมขนาดทเหมาะสม จากนนแปลงภาพสของภาพถายทะเบยนรถเปนภาพแบบ Gray scale (256

ส) เพราะวาหากใชภาพสจะทาใหกระบวนการแยกตวอกษรในภาพเปนไปไดยาก จากนนทาการแปลง

ภาพใหเปนแบบ Binary ดวยวธการเลอกคา Threshold (คาระดบความสวางสงกวาคา Threshold จะ

Page 29: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

18

ถกปรบใหเปนสขาว สวนคาระดบความสวางทมคาตากวา Threshold จะถกปรบใหสดา) ซงในการเลอก

คา Threshold จะมใหเลอกไดสองวธ คอ เลอกโดยระบลงในโปรแกรมกอนการทางาน และใหโปรแกรม

คานวณคา Threshold ทเหมาะสมโดยดจากภาพทรบเขามา การภาพใหเปนแบบ Binary นทาใหภาพ

จะเหลอขอมลภาพอยสองระดบ คอ 0 กบ 1 โดยคา 0 จะเปนพนหลงของภาพ สวนคา 1 จะเปนวตถใน

ภาพ จากนนจะทาการลดสญญาณรบกวน (Noise) ทเกดขนโดยการใช Median filter แลวจงทาการหา

ตาแหนงของปายทะเบยน โดยพจารณาจากแตละวตถวามความนาจะเปนปายทะเบยนหรอไม โดย

อาศยคณสมบตทสงเกตได เชน ขนาดการเรยงตวของตวอกษรปายทะเบยนในภาพ เปนตน หลงจาก

ผานขนตอนนจะไดตาแหนงของทะเบยนรถจากนนทาการแยกเลขทะเบยนออกจากภาพ ดวยวธการ

segment เพอเขาสขนตอนการรจารปแบบดวยระบบ Neural Network ซงระบบนจะมการเกบตวอกษร

ทมการใชงานทงหมด 33 ตว และตวเลขอก 10 ตว โดยแตละตวอกษรจะมการเกบรปแบบตวอกษรนนไว

ประมาณ 20-30 ตว หลงจากผานกระบวนการ Neural Network นแลวจะ สามารถระบชนดของ

ตวอกษรและตวเลขได

รปท 2.21 ขนตอนการวเคราะหปายทะเบยนรถ

ในการทดลองของโครงการนจะใชภาพจากกลองดจตอลความละเอยด 5 ลานพกเซล ซงภาพท

ใชในการทดลองจะมทงรปดานหนาและดานหลงของรถ ทเปนแบบหนาตรงทงหมด และภาพทจะให

ผลลพธออกถกตอง ตองมขอกาหนดดงน ความสวางของแสงตองพอเหมาะ ไมมนอตอยบนทะเบยนรถ

ทะเบยนรถตองไมสกปรกมากเกนไป

จากการไดศกษาโครงการนทาใหทราบวาจากกระบวนการทกลาวมาขางตน จะไดผลรบทม

ประสทธภาพในการอานปายทะเบยนรถทสง แตประสทธภาพนจะขนอยกบ ตวอยางของตวอกษรทใส

ใหกบระบบ Neural Network ซงถาใสตวอยางของตวอกษรมากเทาไรกจะทาใหประสทธภาพของการ

อานปายทะเบยนรถสงขนไปดวย แตยงมองคประกอบอนอกทไมสามารถควบคมได ซงมผลทาใหการ

อานปายทะเบยนรถเกดความผดพลาดได เชน ความสวางของภาพมากเกนไปทาใหตวอกษรกบพนหลง

มสทคลายกน ปายทะเบยนเลอะโคลนทาใหภาพดเหมอนตวอกษรตดกน ตาแหนงของปายทะเบยนอย

สงเกนไปทาใหไมสามารถหาตาแหนงได ขอบปายทะเบยนอยตดกบตวอกษรทาใหไมสามารถแยกได

เปนตน

ขอมลภาพ

256 Gray

เปลยนเปนภาพ

แบบไบนาร

การแยกเลข

ทะเบยน

เตรยมขอมลภาพเพอใชงาน

ในการจดจารปแบบ

Page 30: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

19

เมอนามาเปรยบเทยบกบโครงการทเราจะจดทาขนสงทเหมอนกนกคอ วธการทใชคนหา

ตาแหนงของปายทะเบยนรถ สวนทแตกตางกน คอ โครงการเราจะตองสามารถอานปายทะเบยนรถจาก

ภาพทไมใชภาพหนาตรงอยางเดยวได และจะตองอานปายทะเบยนรถจากกลองทจบภาพปายทะเบยน

รถในขณะนนแลวอานออกมาได

สรปจากทไดศกษาทงสองโครงการสงทเหมอนกนกบโครงการของเราจดหลกๆ คอจะเปนวธการ

ทใชในการคนหาปายทะเบยนรถ และสงทแตกตางกน คอ ผลลพธทไดเราคาดหวงจะใหไดผลในการอาน

ปายใหถกตอง 100 % ในภาพแบบหนา และอานแบบไมใชแบบหนาตรงไดดวย

Page 31: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

20

บทท 3 การดาเนนงาน

ในสวนของการดาเนนงานนนจะถกแบงออกเปนทง หมด 3 สวนใหญๆ คอ สวนของ Digital

Image Processing, สวนรจาปายทะเบยนรถ และ สวนของการเขยนโปรแกรมถายภาพ

3.1 Digital Image Processing การดาเนนงานเรมตนจากการศกษาหาความรเกยวกบเรอง Digital Image Processing และ

การใชโปรแกรม Matlab เพอชวยในการสรางโคดทใชในการวเคราะหภาพและเปลยนแปลงภาพใหเปน

ภาพทงายตอการอานหมายเลขของปายทะเบยนรถโดยมขนตอนดงน

1. นาภาพของปายทะเบยนรถทจบภาพไดจากโปรแกรม ดงรปท 3.1 มาทาการแปลงใหเปน

ภาพแบบ Gray scale โดยใชคาสง colormap(gray) ซงจะไดผลลพธออกมาดงรปท 3.2

รปท 3.1 ภาพทะเบยนรถตงตน รปท 3.2 ภาพปายทะเบยนแบบ Gray Scale

2. ตดขอบทง 4 ดานของภาพออกไปบางสวนเพอลดโครงสรางตางๆทไมเกยวของออกไปไดผล

ดงรปท 3.3

รปท 3.3 ภาพ Gray scale ของปายทะเบยนรถทตดขอบ

3. ทา Vertical edge detection โดยใช sobel mask โดยตองกาหนด mask และนา mask ท

กาหนดไปใชในคาสง conv2()ดงตวอยางในตารางไดผลดงรปท3.4

Page 32: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

21

sobelx = [-1 0 1;-2 0 2; -1 0 1];px = conv2(p,sobelx,'same'); px = abs(px);

ตารางท 3.1 ตวอยางโคดในการทา Vertical edge detection

รปท 3.4 ผลลพธการทา Vertical edge detection ของรปปายทะเบยนรถ

4. นาผลลพธทไดจากรปท 3.4 ทาการ Dilation และ Opening ดวย mask และจานวนครงท

ทาทเหมาะสม โดยเรมตนจากการกาหนด mask ซงเปน เมตรกซ โดยใชคาสง ONES(M,N)

ในการกาหนด mask แลวกนา mask ทกาหนดขนนนไปทาการ erosion แลวตามดวยการ

dilation โดยใชคาสง IMERODE()และIMDILATE() ตามลาดบทาใหไดผลลพธดงรปท 3.5

รปท 3.5 ผลลพธของ Dilation และ Opening

Page 33: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

22

5. แลวนารปผลลพธรปท 3.5 ไปคณแบบจดตอจดกบรปท 3.3 ตามโคดตวอยางในตารางท

3.2 ไดผลลพธ ดงรปท 3.6

p4 = p.*double(px5); %ภาพ p4 เปนภาพทเกดจากการ คณกนแบบ จดตอจด ของภาพ p และ ภาพ px5 ทแปลงใหเปน %double(หมายเหต การคณกนแบบจดตอจดตองทางานท doble จงจาเปนตองแปลง คาpx5ให0เปน double กอน)

ตารางท 3.2 ตวอยาง โคดการคณแบบจดตอจด

รปท 3.6 ผลการคณรปท 3.3 กบรปท 3.5

6. นาผลทไดจากรปท 5 ซงเปนแบบ Gray scale แปลงเปนภาพขาวดาดวยวธ Threshold

ตามตวอยางในตารางท 3.3 ซงไดผลลพธดงรปท 3.7

% automatic Threashold T = 0.5; for k = 1:10 T1 = sum(sum((p4>T).*p4))/sum(sum(p4>T)); T2 = sum(sum((p4<=T).*p4))/sum(sum(p4<=T)); T = (T1+T2)/2; end p5 = p4>T*1.3;

ตารางท 3.3 ตวอยางการแปลงภาพเปนขาวดาดวยวธ Threshold

Page 34: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

23

รปท 3.7 ภาพขาวดาของปายทะเบยนรถ

จากนนจะทาการตดใหเหลอแตสวนทเปนตวเลขทะเบยน โดยม 2 ขนตอน ดงน

• หาขอบบนกบขอบลางของตวเลขทะเบยน โดยการหาจดอางอง 2 จดทใชเปนขอบบน

กบขอบลาง จากผลรวมของพกเซลทมสขาวตามแนวแกน X ตาม โคดตวอยางในตาราง

ท 3.4 ซงจะไดผลลพธดงรปท 3.8

%หาคาขอบบนหรอขอบลางของปายทะเบยนรถ top=1; bottom=m; y1=0; y2=0; z1=0; z2=0; z_top = 0; z_bottom = 0; for i = 1:m %หาจานวนของพกเซลทมสขาวในแตงละจดในแนวนอน if sum_horizontal(i) > z1 z1=sum_horizontal(i); y1=i; %ตาแหนงทมผลรวมของพกเซลตามแนวนอนสงสดแตยงไมรวาเปนขอบบนหรอขอบลาง end %แตเราคาดวาเปนขอบของปายทะเบยนแนๆ end for i = top:(y1-18)%เรมคนหาขอบปายทะเบยน จากดานบนของภาพ ลบออก18เพราะความกวางทะเบยนมากกวา18แนนอน if sum_horizontal(i)>=z_top z_top = sum_horizontal(i); z2 = i; %z2 คอตาแหนงขอบของปายทะเบยน end end if 40<=abs(y1-z2) y2 = z2; %ถาเปนจรง y2 คอตาแหนงขอบของปายทะเบยน end %*************************** for i = (y1+18):bottom %ทาการเรมคนหาขอบปายทะเบยนโดยเรมจากดานลางของปายทะเบยน if sum_horizontal(i)>z_bottom z_bottom = sum_horizontal(i); z2 = i; end end %เพอใหแนใจวาเปนปายทะเบยนทตองการเพราะถาไมมมนอาจจะไปเอาสวนทเปนชอจงหวด if 40<=abs(y1-z2)&&z_bottom >(z_top*0.7)y2 = z2; y2 = z2; end if y1<y2

Page 35: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

24

top_y = y1; bottom_y = y2; else top_y = y2; bottom_y = y1; end if top_y == 0 top_y = 1; end if bottom_y > m bottom_y = m; end p6 = p6(top_y:bottom_y,:) %ภาพทตดขอบบนกบขอบลางของปายทะเบยนรถแลว

ตารางท 3.4 โคดแสดงการตดขอบบนและลาง ของปายทะเบยน

รปท 3.8 ภาพทตดขอบบนกบขอบลาง

• หาขอบซายกบขอบขวาของตวเลขทะเบยน (ทากบรปท 3.7) โดยการหาจดอางอง 2 จด

ทใชเปนขอบซายกบขอบขวา จากผลรวมของพกเซลทมสขาวตามแนวแกน Y ตามโคด

ตวอยางในตารางท 3.5 ซงจะไดผลลพธดงรปท 3.9

%หาขอบซายขอบขวาของปายทะเบยนรถ [m,n] = size(p6); sum_vertical(n) = 0; for i = 1:m %หาจานวนของพกเซลทมสขาวในแตงละจดในแนวตง for j = 1:n if p6(i,j)==1 sum_vertical(j)=sum_vertical(j)+1; end end end %หาขอบซายของปายทะเบยนรถ j=1; x_left=1; x_continuous=0; check_LR=true; check_continuous=false; while check_LR if j<=n&&sum_vertical(j)>=(m-2)&& x_continuous<=30 x_left = j; check_continuous = true; x_continuous = 0; end

Page 36: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

25

if check_continuous if x_continuous>30 check_continuous = false; check_LR = false; else x_continuous = x_continuous+1; end end j=j+1; if j>n %ปองกนวนลปไมรจบ check_LR = false; end end %หาขอบขวาของปายทะเบยนรถ j=n; x_right=n; x_continuous=0; check_LR=true; check_continuous=false; LR_compare=1; while check_LR if j>=1 && sum_vertical(j)>=(m-2) && x_continuous<=8 %&& sum_vertical(j)>=LR_compare x_right = j; %LR_compare = sum_vertical(j); check_continuous = true; x_continuous = 0; end if check_continuous if x_continuous>8 check_continuous = false; check_LR = false; else x_continuous = x_continuous+1; end end j=j-1; if j<1 %ปองกนวนลปไมรจบ check_LR = false; end end p7 = p6(:,x_left:x_right) %ภาพทตดขอบซายกบขอบขวาของปายทะเบยนแลว

ตารางท 3.5 โคดแสดงการตดขอบซายและขวา ของปายทะเบยน

รปท 3.9 ภาพทตดขอบซายกบขวาออกจากรปท 3.8

Page 37: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

26

7. ทาการตดตวอกษรออกจากกน โดยการตรวจสอบพกเซลตามแนวตงถาพบพกเซลสดาก

แสดงวาพบดานขวาของตวเลขหรอตวอกษรจากนนตรวจสอบพกเซลตามแนวตงตอไปอก

หากพบวาพกเซลแนวตงจดใดมแตพกเซลสขาวกแสดงวาจดนนเปนจดสนสดของตวเลข

หรอตวอกษรนน แลวทาอยางนตอไปจนตดตวเลขหรอตวอกษรไดครบ ซงผลลพธไดแสดง

ดงรปท 3.10

%ตดตวอกษร [m,n] = size(p7); sumVertical(n)=0; for i = 1:m %หาผลรวมของพกเซลทมสขาวตามแนวตง ในแตละจดตามแนวนอน for j = 1:n if p7(i,j)==1 sumVertical(j)=sumVertical(j)+1; end end end k=1; left_symbol=0; right_symbol=1; symbol(24)=0; for j = 1:n if left_symbol==0 && sumVertical(j)<=(m-3) %ตรวจสอบวาเจอดานซายของตวอกษรหรอยง โดยท m-1 จะเปนการกนวาอาจม1พกเซลสดามารบกวน symbol(k)=j; right_symbol=0; left_symbol=1; if symbol(k)>0 k=k+1; end end if right_symbol==0 && sumVertical(j)>(m-3) %ตรวจสอบวาเจอดานขวาของตวอกษรหรอยง โดยท m-1 จะเปนการกนวาอาจม1พกเซลสดามารบกวน symbol(k)=j; right_symbol=1; left_symbol=0; if (symbol(k)>0&&k>1&&abs(symbol(k-1)-symbol(k))>8);%เงอนไขk>1&&abs(symbol(k-1)-symbol(k))>8 เพอปองกนไมเหนเกบตาแหนงทไมใชตวอกษร k=k+1; else k=k-1; end end end k=k-1; if symbol(1)<=0 %ปองกนคาเกนขอบเขต symbol(1)=1; end if k>0 && symbol(k)<=0&&symbol(k)>=n %ปองกนคาเกนขอบเขต symbol(k)=n; end if k>0 && abs(symbol(1)-symbol(2))<5 %ปองกนการไดสงทไมใชตวอกษร ซงเราไดคาดการวา

Page 38: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

27

ตวอกษรทแทจรงจะตองมความกวางมากกวา5พกเซล symbol(1)=0; symbol(2)=0; end if k>0 && abs(symbol(k-1)-symbol(k))<8 symbol(k-1)=0; symbol(k)=0; end

ตารางท 3.6 โคดตวอยางแสดงการตดตวอกษรออกจากกน

รปท 3.10 ผลลพธการตดตวอกษร

3.2 สวนรจาปายทะเบยนรถ หลงจากผานขนตอนการตดตวเลขและตวอกษรมาแลวกจะมาถงในสวนนคอ สวนรจาปาย

ทะเบยนรถหรอการระบตวเลขของปายทะเบยนรถ(ไมรวมตวอกษร) วาเปนหมายเลขใด ซงขนตอนการ

ระบตวเลขนผพฒนาไดใช Matlab ในการเขยนสวนทเปน เครอขายใยประสาท (Neural network) ซงใน

Matlab นนมฟงกชนใหใชงานในสวนนอยแลวซงผพฒนาโครงการไดแสดงโคดการสรางเครอขายใย

ประสาทนไวในสวนของภาคผนวก โดยทเครอขายใยประสาททสรางนเปนแบบ feed-forward back

propagation network ซงในการใชงานเครอขายใยประสาทใหสามารถจดจาตวเลข 0-9 ไดนน กอนอน

จะตองทาการ train ใหกบเครอขายใยประสาทนกอนนาไปใชงาน โดยผพฒนาโครงการไดใชภาพตวเลข

0-9 อยางละ 10 ภาพ แลวนาภาพเหลานไปหาคา central moment และ sum คาออกไปจากจด central

moment ตามแนวรศม ซงจะไดคาเฉพาะออกมาแตละภาพทงหมด 40 คา จากนนกนาคา 40 คาของแต

ละรปภาพ (ภาพ 0-9 อยางละ 10 ภาพ) น สงเขาไป train ใหกบเครอขายใยประสาทไดจดจาเพอใชเปน

ตวอางองในการเปรยบเทยบตวเลขทะเบยนทจะรบเขามาวาตวเลขทะเบยนนนเปนตวเลขอะไร

Page 39: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

28

3.3 โปรแกรมถายภาพทะเบยนรถ ผพฒนาโครงการไดใช Visual C++ และมการใชไลบราร DirectShow [8] (เพอสาหรบการ

ตดตอกลองหรอเวบแคม) ในการเขยนโปรแกรมในสวนนขนมา ซงการทจะใชงาน DirectShow ไดนน

จะตองทาตามขนตอนดงน (สาหรบ Visual .net 2003)

- ทาการตดตง DirectX 9 Software Development kit (DXsdk)

- ทาการ Build โปรเจคทอยใน c:\โฟรเดอรทตดตง DXsdk\samples\C++\DirectShow\Base

Classes (โดย Build ใน mode Debug และ Release)

- ในการพฒนาโปรเจคจะตองทาการ include โฟรเดอร C:\โฟรเดอรทตดตง DXsdk\ samples

\C++\DirectShow \BaseClasses สาหรบผใช VC++ .NET พฒนาตองไปท Tools->Option->

Project->Directories ->Include Files

การใชงาน DirectShow ตองเพม Include<dshow.h> เขาไป และผใช VC++ .NET ใหไปท

property ของ โปรเจค ไปท Linker->General ใน Additional Library Directories ให add C:\โฟรเดอร

ทตดตง DXsdk \Samples\C++\DirectShow\BaseClasses\Debug และ C:\โฟรเดอรทตดตง DXsdk

\Lib ลงไป ยงอยใน Linker ใหไปท Input ใน Additional Dependencies ให add strmiids.lib,

quartz.lib ลงไป จากนนไปท C/C++ ไปท General ใน Additional Include Directories ให add C:\

โฟรเดอรทตดตง DXsdk \Include ลงไป

Page 40: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

29

บทท 4 การออกแบบและพฒนาโปรแกรม

4.1 การออกแบบโปรแกรมและพฒนาโปรแกรม

การออกแบบและพฒนาโปรแกรมถายภาพทะเบยนรถใช Visual C++ ซงไดผลลพธออกมา

ดงรปท 4.1

รปท 4.1โปรแกรมจบภาพปายทะเบยนรถ

หมายเลข 1 Select Device ทาหนาทในการเลอกชนดกลองทจะใชงาน

หมายเลข 2 ปม Start Video ทาหนาทในการเรมทางานของกลอง ซงจะแสดงภาพทางดานซาย

หมายเลข 3 ปม Capture ทาหนาทในการจบภาพจากกลองทแสดงไวดานซายมาแสดงไว

ดานขวา

หมายเลข 4 ปม Save as ทาหนาทในการ save ภาพทไดจากการจบภาพ

หมายเลข 5 ปม Exit ทาหนาทสนสดโปรแกรม

Page 41: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

30

การออกแบบและพฒนาโปรแกรมอานปายทะเบยนซงไดรวมเอาสวนของการตดตวอกษรและ

ตวเลขกบสวนรจาปายทะเบยนรถ โดยใช Matlab ในการเขยนโปรแกรมนขนมาซงไดผลลพธออกมาดง

รปท 4.2

รปท 4.2 โปรแกรมอานปายทะเบยนรถ

หมายเลข 1 ปม Train ทาหนาทในการสงภาพทเตรยมไว (ภาพ 0-9) เขาไปใหเครอขายใย

ประสาท (Neural Network)

หมายเลข 2 ปม Save ทาหนาทในการบนทกคาทไดทาการ train แลวเพอทาใหกลบมาใชคาน

ไดอกครงโดยไมตองทาการ train อก

หมายเลข 3 ปม Load ทาหนาทในการโหลดคาท train เกบไวเพอนามาใช

หมายเลข 4 ปม Find license plate ทาหนาทในการตดตวอกษรจากภาพปายทะเบยนรถ

หมายเลข 5 ปม Recognize ทาหนาทในการระบวาเลขทะเบยนจากภาพเปนหมายเลขใด

Page 42: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

31

4.2 หลกการทางานของโปรแกรม โปรแกรมทงหมดทไดสรางขนกจะมขนตอนการทางานดง รปท 4.3

รปท 4.3 ขนตอนการทางานของโปรแกรม

Page 43: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

32

บทท 5 ผลการดาเนนงาน

ผลการดาเนนงานทไดตงเปาไวตอนตนนนคอ ตองไดโปรแกรมออกมาสมบรณโดยสามารถ

ทางานรวมกนไดระหวางโปรแกรมทพฒนาขนดวย Visual C++ กบฟงกชนทพฒนาขนดวย Matlab แต

ผลลพธสดทายไมสามารถทาไดทางผพฒนาโครงการจงไดแบงการทางานแยกออกเปน 3 ขนตอน ดงน

1.โปรแกรมจบภาพปายทะเบยนรถ (ใช Visual C++)

2.ฟงกชนทใชในการวเคราะหตาแหนงปายทะเบยนกบตดตวอกษร (ใช Matlab 7.0)

3.ฟงกชนทใชในการจดจาตวเลขของปายทะเบยนรถ (ใช Matlab 7.0)

โดยทง 3 ขนตอนนจะแบงการทางานอยใน 2 โปรแกรม โปรแกรมแรกเปนโปรแกรมถายภาพ

เปนสวนทพฒนาขนจาก Visual C++ ซงใชทาหนาทในการจบภาพทะเบยนรถ เพอใชสาหรบเปนขอมล

ทจะปอนใหกบ ฟงกชนทใชในการวเคราะหตาแหนงปายทะเบยนกบตดตวอกษร ซงหนาตาของ

โปรแกรมเปนดงรปท 5.1

รปท 5.1 โปรแกรมถายภาพ

โดยการจบภาพควรใหมระยะประมาณ 0.5 – 1 เมตร และตาแหนงของปายทะเบยนควรจะอย

ตรงกลางภาพเพอผลลพธทถกตอง โดยภาพทไดจากการบนทกจะไดภาพทกลบหว

หลงจากทไดภาพปายทะเบยนรถมาแลว จากนนตองทาการรนโปรแกรมอานปายทะเบยนรถ

โดยใชโปรแกรม Matlab ในการชวยรน ซงโปรแกรมนรวมการทางานของฟงกชนทใชในการวเคราะห

Page 44: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

33

ตาแหนงปายทะเบยนและฟงกชนทใชในการจดจาตวเลขของปายทะเบยนรถ ซงหนาตาของโปรแกรม

เปนดงรปท 5.2

รปท 5.2 โปรแกรมอานปายทะเบยนรถ

การทางานของโปรแกรมน เรมตนโดยการใหโปรแกรมนจดจาภาพหมายเลข 0 ถง 9 ทไดเตรยม

ไวแลว โดยการกดปม Train ซงภาพตนแบบทใหจดจานนมทงหมด 100 ภาพแบงเปนเลข 0 ถง 9 อยาง

ละ 10 ภาพ ซงในโปรแกรมจะแสดงภาพเหลานอยเหนอปม Train เมอโปรแกรมไดจดจาภาพเหลานเสรจ

แลว ตอจากนนจะตองทาการใหโปรแกรมตดตวอกษรจากภาพปายทะเบยนรถทไดถายไว โดยการลอก

เลข 0 หรอเลข 180 ในชอง Rotate ถาเปนภาพปายทะเบยนรถทกลบหวใหเลอกเลข 180 ถาเปนภาพ

ปายทะเบยนรถทไมกลบหวใหเลอกเลข 0 จากนนทาการเลอกทปม Find license plate มนกจะขน

dialog box ใหเลอกภาพปายทะเบยนรถทตองการ จากนนโปรแกรมจะประมวลผลและแสดงผลลพธ

ของการตดตวอกษรออกมาดงรปท 5.2 ใตขอความ Result จากนนทาการใหโปรแกรมตรวจสอบตวเลขท

ตดไดนน วาเปนตวเลขใดโดยการกดปม Recognize ผลลพธทไดจะแสดงไวในสวนกรอบสแดงซง

ถกตองเฉพาะแตตวเลขเทานน สวนตวอกษรมนจะแสดงตวเลขแทนดงรปท 5.2

Page 45: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

34

ตารางท 5.1 แสดงผลลพธทสามารถตดตวอกษรได เทยบกบระยะทาง

ระยะหางระหวางกลองกบปาย

ทะเบยน

จานวนภาพทใช

ทดสอบ

จานวนภาพทตดตวอกษรไดคดเปน

เปอรเซนต

0.5 เมตร 30 ภาพ 90 %

1 เมตร 30 ภาพ 100%

มากกวา 1.5 เมตร 40 ภาพ 0%

Page 46: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

35

บทท 6 สรปผลและขอเสนอแนะ

6.1 บทสรป

โปรแกรมอานปายทะเบยนรถเปนโปรแกรมทพฒนาขนโดยใช Visual C++ และ Matlab 7.0

เพอทใหสามารถอานปายทะเบยนรถจากภาพทจบได (เฉพาะตวเลข) เพอทจะนาผลทไดนไปประยกตใช

ตอไป โดยโปรแกรมทตองนาไปใชงานจะมอย 2 โปรแกรมคอ

1.โปรแกรมทใชถายปายทะเบยนรถ (ใช Visual C++ เขยน)

2.โปรแกรมอานปานทะเบยนรถ (ใช Matlab เขยน)

โดยโปรแกรมถายปายทะเบยนรถจะทาหนาทในการถายปายทะเบยนรถเพอเตรยมไวเปนขอมล

สาหรบใชในโปรแกรมอานปายทะเบยนรถ สวนโปรแกรมอานปายทะเบยนรถจะทาหนาทวเคราะห

ภาพถายปายทะเบยนรถเพอบอกวาปายทะเบยนรถมหมายเลขทะเบยนเปนอะไร

ซงผลลพธของโปรแกรมอานปายทะเบยนรถยงมขอจากดอยคอ สามารถตรวจสอบไดแตตวเลข

ของปายทะเบยนเทานน และจะตองมสภาพแวดลอมของการถายภาพปายทะเบยนรถทเหมาะสมเพอ

ผลลพธทถกตองอยางเชน จะตองถายภาพจากระยะประมาณ 0.5-1.25 เมตร ปายทะเบยนรถควรถาย

แบบหนาตรงหรอไมเอยงมากจนเกนไป

6.2 ปญหาทพบในการดาเนนงาน ในการรวมฟงกชนทใชตดตวอกษรและฟงกชนทใชจดจาตวเลขทเขยนขนโดย Matlab และ

โปรแกรมถายปายทะเบยนรถทใช Visual C++ ไมสามารถรวมกนทางานเปนโปรแกรมเดยวได และยง

ไมสามารถจดจาในสวนของตวอกษรของทะเบยนได

6.3 ขอเสนอแนะ เพอใหสามารนาไปใชงานไดอยางมประสทธภาพ ควรตองทาเพมเตมในสวนของการจดจา

ตวอกษรของปายทะเบยนรถ และทาใหโปรแกรมถายปายทะเบยนรถกบโปรแกรมอานปายทะเบยนรถ

สามารถทางานรวมกนได ซงจะทาใหสะดวกในการนาไปใชในการใชงานอยางอนตอไปได เชน นาไป

ประยกตใชในการเกบเงนทจอดรถ

Page 47: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

36

ภาคผนวก โคดการสราง Neural Network ใน Matlab

function [net,max_min] = train_lpr() clear all load p100v6 %โหลดไฟล p100v6 ทมภาพตวอกษร 0-9 เกบไว

k = 1; SE1 = ones([2 2]); SE2 = [0 1 0;1 1 1; 0 1 0]; for i = 0:9 %ภายในลปนเปนการปรบปรงภาพ 0-9 ทไดโหลดมาเพอนาไป train for j = 1:10 eval(sprintf('pin = p%d_%d;',i,j)) pin = [ones([size(pin,1) 2]) pin ones([size(pin,1) 2])]; pin = [ones([2 size(pin,2)]); pin; ones([2 size(pin,2)])]; for n = 1:1 %Preprocessing for noise removal pin = imdilate(pin,SE1); pin = imdilate(pin,SE1); pin = imerode(pin,SE1); pin = imerode(pin,SE1); pin = imerode(pin,SE1); pin = imdilate(pin,SE1); pin = imdilate(pin,SE2); pin = imerode(pin,SE2); pin = imerode(pin,SE2); pin = imdilate(pin,SE2); end x(:,k)=feature_extract2(pin,40,1);%array 40*100 y(k) = i; k = k+1; disp(sprintf('p%d_%d',i,j)) end end PR = [min(x,[ ],2) max(x,[ ],2)]; max_min = PR; %เกบคาสงสดตาสดไวเพอใช %normalize x-data to [0-1] for i = 1:size(x,2) x(:,i) = (x(:,i) - PR(:,1))./(PR(:,2)-PR(:,1)); end %minimum and maximum value of x-data PR = [min(x,[],2) max(x,[],2)] %Network structure4layers,Layer1=20 Nodes,Layer2=10Nodes ,... S = [20 10 10 1]; %Types of nodes in each layer T = {'tansig' 'tansig' 'logsig' 'purelin'}; net = newff(PR,S,T,'trainlm','learngdm','mse'); net.trainParam.epochs = 1000; net.trainParam.goal = 0.0001; net = train(net,x,y); %Neural network ทไดสรางเสรจ

Page 48: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

37

โคดการหาคา Central moment function f = feature_extract2(pin,npoint,step);

pin = ~pin; pin = double(pin); %Normalize image to the same pixel (1500 pixels) pin = imresize(pin,sqrt(1500/sum(sum(pin))),'bilinear'); N = size(pin); row = [1:N(1)]'*ones([1 N(2)]); % row = y coordinate col = ones([N(1) 1])*[1:N(2)]; % col = x coordinate m00 = sum(sum(pin)); m10 = sum(sum(col.*pin)); m01 = sum(sum(row.*pin)); %Centroid point xbar = m10/m00; ybar = m01/m00; k = 1; N = size(pin); for theta = 0:2*pi/npoint:2*pi s = 0; i = step; xi = xbar + i*cos(theta); yi = ybar + i*sin(theta); while (xi<=N(2))&(xi>=1)&(yi<=N(1))&(yi>=1) s = s + interp2(pin,xi,yi); i = i+step; xi = xbar + i*cos(theta); yi = ybar + i*sin(theta); end f(k) = s; k = k+1; end f=f';

Page 49: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

38

การใชงานโปรแกรมถายภาพทะเบยนรถและโปรแรมอานปายทะเบยนรถ ผพฒนาโครงการจะอธบายวธในการรนโปรแกรมทง 2 โปรแกรมทไดพฒนาขนในโครงการนคอ

โปรแกรมถายภาพทะเบยนรถและโปรแกมอานปายทะเบยนรถซงมรายละเอยดดงน

- โปรแกรมถายภาพทะเบยนรถ (LPRprogram.exe) ใหทาการคดลอกไฟล msvcr71d.dll และ

mfc71d.dll ทเตรยมไวใหแลวไปไวใน C:\WINDOWS\system32 จากนนจงสามารถรนโปรแกรมนได

- โปรแกรมอานปายทะเบยนรถ โปรแกรมนประกอบไปดวยไฟล LPRprogram.m, train.m,

neural.m, lpr.m, feature_extract2.m, waitPicture.bmp, p100v6.mat, global_var.mat ซงไมควรทา

การเปลยนชอไฟลใดๆเหลาน ในการรนโปรแกรมนนตองใชโปรแกรม Matlab ชวยในการรนโปรแกรม

(ควรเปน Matlab 7.0 ขนไป) โดยวธการคอ ทาการเปดโปรแกรม Matlab ขนมา จากนนทาการเปลยน

ไดเรคทอรไปยงโฟลเดอรทเกบโปรแกรมอานปายทะเบยนรถไว ทาการพมพ LPRprogram ซงเปนชอ

ไฟลททาหนาทในการเรมตนรนโปรแกรมนลงไปใน Matlab command ดงรปท 7.1 กจะสามารถทาการ

รนโปรแกรมได

รปท 7.1 การรนโปรแกรมอานปายทะเบยนรถ

กดสาหรบเปลยนโฟลเดอรไปยงโฟลเดอรท

เกบไฟลทงหมดของโปรแกรมน

พมพชอไฟลทตองการรน สาหรบการ

รนโปรแกรมนไฟลเรมตนการทางาน

โปรแกรมคอ ไฟล LPRprogram

แสดงรายชอของไฟลทงหมดใน

โฟลเดอรทกาลงใชงานอย

Page 50: เอกสารโครงการโปรแกรมอ่านป้ายทะเบียบรถ

39

บรรณานกรม [1] “Artificial Neural Network”, Retrieved 10 Jan, 2006, from

http://202.28.94.55/web/320417/2548/work1/g26/Files/Report_Neural%20Network.doc

[2] กฤษฎา กลยาสรวฒนและ ฐต กนตถาวร. โครงการระบบรจาปายทะเบยนรถ : สถาบนเทคโนโลย

เจาคณทหารลาดกระบง. http://www.ce.kmitl.ac.th/project/display1.php?id1=428

[3] สพฒน สธทศน, พงศธารน วนยเวคนและ อครชย อรรถกล. License Plate Recognition:

จฬาลงกรณมหาวทยาลย. http://www.cp.eng.chula.ac.th/~u45atk/mmdb/index.htm

[4] Dubey, P. Heuristic Approach for License Plate Detection, NECTEC, pages 366-370

[5] krssakar, (16 Apr 2004), Simultaneous Previewing & Video Capture using DirectShow,

Retrieved Dec.20, 2006, from http://www.codeproject.com/audio/DXCapture.asp

[6] Gonzalez, R.C. and Richard E. Woods,“Digital Image Processing”, Second Edition,2002.

[7] Gonzalez, R.C. and Richard E. Woods, “Digital Image Processing using Matlab”,

Second Edition, 2002.

[8] Pesce, M. D. “Programming Microsoft Directshow for digital video and television”