TRƯ Ờ NG ĐẠ I HỌ C MỞ THÀNH PHỐ HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
Y& Y
ĐỒ ÁN MÔN HỌ C
NGHIÊN CỨ U XÂY DỰ NG HỆ THỐ NG NHẬ N
DẠ NG BIỂ N SỐ XE TỰ ĐỘ NG
GVHD: SVTH:
Thầ y TS. Lê Xuân Trư ờ ng Lê Hoàng Hiế u 0851010085
Lê Trung Thả o 0851010245
Tháng 2 Năm 2012
TRƯ Ờ NG ĐẠ I HỌ C MỞ THÀNH PHỐ HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
3
LỜ I CẢ M Ơ N
Y& Y
Kiế n thứ c là 1 hành trang quan trọ ng trên con đư ờ ng vào đờ i củ a mỗ i chũng ta , vớ i
kiế n thứ c ta có thể lao độ ng , làm việ c , nuôi số ng bả n thân , gia đình , làm ngư ờ i có ích
cho xã hộ i. vớ i mỗ i ngày trôi qua , nhữ ng kiế n thứ c dù là nhỏ bé cũ ng đề u giúp ích cho
chúng ta , hoàn thiệ n con ngư ờ i chúng ta hơ n.
Để có đư ợ c nguồ n kiế n thứ c hữ u ích trong biể n khơ i tri thứ c nhậ n loạ i , chúng em
chân thành cả m ơ n các thầ y cô khoa công nghệ thông tin – trư ờ ng đạ i họ c mở Tp.Hồ Chí
Minh đã dạ y dỗ chúng em nhữ ng tri thứ c hữ u ích trong ngành họ c củ a mình . không chỉ
có thế , các thầ y cô còn dạ y dỗ , chỉ bả o cho chúng em nhữ ng kinh nghiệ m hế t sứ c quý
giá trên con đư ờ ng vào đờ i . đó là nhữ ng món quà vô giá mà chúng em không thể nào
quên , chúng em xin chân thành cả m ơ n các thầ y cô .
Đặ c biệ t cả m ơ n thầ y Lê Xuân Trư ờ ng , đã trự c tiế p hư ớ ng đẫ n em thự c hiệ n đồ án
này , dư ớ i sự hư ớ ng dẫ n củ a thầ y nhóm em đã cơ bả n hoàn thành đư ợ c đồ án , thầ y đã
giúp em nhiề u ý kiế n rấ t hữ u ích và tuyệ t vờ i em xin cả m ơ n thầ y.
Như ng vẫ n còn đó nhữ ng thiế u sót và nhữ ng điề u cầ n họ c thêm để hoàn thiệ n hơ n
nữ a bả n thân mình , em mong sẽ luôn đư ợ c nhậ n thêm sự chỉ dạ y từ các thầ y , các cô hơ n
nữ a . em xin đư ợ c gử i lờ i cả m ơ n chân thành đế n thầ y.
Xin chúc các thầ y cô sứ c khỏ e dồ i dào và gặ t hái đư ợ c thêm nhiề u thành công trên
con đư ờ ng giả ng dạ y củ a mình.
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
4
NHẬ N XÉT CỦ A GIẢ NG VIÊN HƯ Ớ NG DẪ N
Y& Y
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
5
MỤ C LỤ C
C
HƯ Ơ NG
1
:
T
Ổ NG QUAN
1.1. G
IỚ I THIỆ U
6
1.2. M
Ụ C ĐÍCH LÀM ĐỀ TÀI
7
1.3. P
HƯ Ơ NG PHÁP NGHIÊN CỨ U
7
1.4. B
Ố CỤ C BÁO CÁO
8
C
HƯ Ơ NG
2
:
XỬ LÝ NHẬ N DẠ NG BIỂ N SỐ
2.1. N
HẬ N DẠ NG BIỂ N SỐ XE
9
2.1.1. T
RÌNH BÀY KỸ THUẬ T RÚT TRÍCH BIỂ N SỐ XE
10
2.1.1.1. M
Ụ C ĐÍCH
: 10
2.1.1.2. PHƯ Ơ NG PHÁP: 10
2.1.1.3. T
HỰ C HIỆ N
: 11
2.1.1.3.1. G
IỚ I HẠ N VÙNG BIỂ N SỐ
: 11
2.1.1.3.2. C
HUYỂ N Ả NH MÀU THÀNH Ả NH XÁM 12
2.1.1.3.3. LÀM MỜ VÀ MỊ N Ả NH 13
2.1.1.3.4. T
ÌM KIẾ M CÁC CẠ NH BẰ NG GIẢ I THUẬ T
C
ANNY
14
2.1.1.3.5. T
HUẬ T TOÁN TÌM ĐƯ Ờ NG VIỀ N
16
2.1.1.3.6. S
Ử DỤ NG PHƯ Ơ NG PHÁP HÌNH THÁI HỌ C
17
2.1.1.3.7. X
ÁC ĐỊ NH VÙNG BIỂ N SỐ
18
2.1.2. K
IỂ M TRA BIỂ N SỐ XANH
19
2.1.3. T
RÌNH BÀY KỸ THUẬ T CÁCH LY KÝ TỰ
: 21
2.1.3.1. P
HƯ Ơ NG PHÁP THỰ C HIỆ N
: 21
2.1.4. T
RÌNH BÀY KỸ THUẬ T NHẬ N DẠ NG KÝ TỰ
: 23
2.1.4.1. P
HƯ Ơ NG PHÁP
23
2.1.4.2. S
O KHỚ P MẪ U
(T
EMPLATE
M
ATCHING
): 24
2.1.4.3. T
HỰ C
H
IỆ N
: 24
2.1.4.4. T
Ổ NG KẾ T
: 27
CHƯ Ơ NG
3
:
Ứ NG
DỤ NG
DEMO
3. G
IỚ I THIỆ U
28
3.1. V
ÀI HÌNH Ả NH MINH HỌ A
30
3.1.1. M
Ở THƯ MỤ C Ả NH VÀ LOAD VÀO
L
ISTBOX
30
3.1.2. L
OAD Ả NH VÀO KHUNG VÀ THỰ C HIỆ N XÁC ĐỊ NH BIỂ N SỐ
31
CHƯ Ơ NG 4 : TỔ NG KẾ T
4.1. Ư
U ĐIỂ M
33
4.2. H
Ạ N CHẾ
33
4.3. H
Ư Ớ NG PHÁT TRIỂ N
33
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
6
Chư ơ ng 1: TỔ NG QUAN
1.1 Giớ i thiệ u
Hiệ n nay , Sự gia tăng các phư ơ ng tiệ n giao thông tạ i Việ t Nam đang phát triể n vớ i
tố c độ chóng mặ t , sự thể hiệ n rõ rệ t nhấ t đó chính là hình ả nh các phư ơ ng tiệ n giao
thông ngày càng đông đúc hơ n ở Việ t Nam , nhấ t là tạ i các thành phố lớ n như Hà Nộ i và
TP.Hồ Chí Minh . Điề u này tạ o nên 1 áp lự c lớ n đố i vớ i các nhà quả n lý đư ờ ng bộ trong
vấ n đề quả n lý các phư ơ ng tiệ n giao thông mà thự c tế đây là 1 trong nhữ ng vấ n đề nhứ c
nhố i hiệ n nay củ a xã hộ i .
Vớ i các hiệ n trạ ng trong việ c quả n lý các phư ơ ng tiệ n giao thông hiệ n nay thì việ c
nghiên cứ u hệ thố ng nhậ n dạ ng biể n số xe tự độ ng có ý nghĩ a hế t sứ c quan trọ ng , Hệ
thố ng này có thể đư ợ c ứ ng dụ ng vào nhiề u lĩ nh vự c khác nhau để trợ giúp công tác quả n
lý các phư ơ ng tiệ n giao thông nói chung . Đặ c biệ t là tạ i các hệ thố ng đang bị quá tả i như
tạ i các bãi giữ xe công cộ ng …
Trên thế giớ i , đặ c biệ t tạ i các nư ớ c phát triể n như Mỹ , Hàn Quố c , Nhậ t Bả n … hệ
thố ng nhậ n dạ ng biể n số xe tự độ ng đã đư ợ c phát triể n , các ứ ng dụ ng củ a hệ thố ng hế t
sứ c phổ biế n điể n hình là các bãi giữ xe thông minh.
Tạ i Việ t Nam , các ứ ng dụ ng củ a hệ thố ng nhậ n dạ ng biể n số tự độ ng là hế t sứ c hiế m
hoi ngay cả ở các thành phố lớ n như Hà Nộ i và TP.Hồ Chí Minh , nhữ ng nơ i có thể ứ ng
dụ ng đư ợ c hệ thố ng nhậ n dạ ng biể n số xe tự độ ng 1 cách hiệ u quả như các bãi giữ xe ,
các trạ m thu phí giao thông thì vẫ n hiệ n nay vẫ n còn đang thự c hiệ n 1 cách thủ công
kém hiệ u quả và cồ ng kề nh.
Để xây dự ng tố t 1 hệ thố ng nhậ n dạ ng biể n số xe tự độ ng thì yêu cầ u đặ t ra là phả i
nhậ n dạ ng đư ợ c vùng biể n số xe mà ở đây nhóm thự c hiệ n sử dụ ng phư ơ ng pháp phát
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
7
hiệ n và làm nổ i cạ nh kế t hợ p vớ i phư ơ ng pháp hình thái họ c , cách ly các kí tự biể n số và
nhậ n dạ ng biể n số bằ ng phư ơ ng pháp khớ p mẫ u kế t hợ p phư ơ ng pháp hình thái họ c.
1.2 Mụ c đích làm đề tài
Hiệ n nay tạ i các Trạ m thu phí giao thông đư ờ ng bộ , các bãi giữ xe công cộ ng và đặ c
biệ t là trong công tác phát hiệ n vi phạ m giao thông thì cách thự c hiệ n vẫ n nặ ng tính thủ
công điề u này tạ o nên 1 áp lự c rấ t lớ n cho các nhà quả n lý , do đó đề tài này đư ợ c
nghiên cứ u để phụ c vụ cho việ c thự c hiệ n công tác quả n lý các phư ơ ng tiệ n đư ợ c đư ợ c
nhanh chóng , hiệ u quả , chính xác
• Thu phí giao thông : Việ c lắ p đặ t hệ thố ng nhậ n dạ ng biể n số xe tự độ ng tạ i
các trạ m thu phí giao thông tạ i các đư ờ ng cao tố c, quố c lộ có thể giúp hỗ trợ
hoặ c tự độ ng việ c thu phí giao thông , đồ ng thờ i có thể thu thậ p các thông tin
về giao thông khác nhau …
• Bãi giữ xe tự độ ng : việ c lắ p đặ t hệ thố ng nhậ n dạ ng biể n số xe tự độ ng tạ i các
bãi giữ xe tự độ ng sẽ giúp tự độ ng hóa hoàn toàn việ c thu phí giữ xe , hoặ c là
1 phầ n củ a hệ thố ng quả n lý bãi giữ xe , giúp giả m thờ i gian chờ đợ i vào bãi
giữ …
• Quả n lý giao thông : hệ thố ng nhậ n diệ n biể n số xe tự độ ng đặ c biệ t có ích
trong việ c phát hiệ n , điề u tiế t giao thông , phát hiệ n các vi phạ m giao thông
Sau khi hoàn thành , hệ thố ng nhậ n dạ ng biể n số xe tự độ ng có thể đư ợ c kế t hợ p vớ i
các hệ thố ng cụ thể đố i vớ i từ ng chứ c năng cụ thể để cho ra đờ i 1 hệ thố ng hoàn chỉ nh
phụ c vụ các công tác quả n lý phư ơ ng tiệ n giao thông.
1.3 Phư ơ ng pháp nghiên cứ u
Để có thể xây dự ng đư ợ c ứ ng dụ ng, các phư ơ ng pháp sau đã đư ợ c tìm hiể u và từ ng
bư ớ c áp dụ ng vào đề tài:
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
8
Chụ p ả nh xe có biể n số theo mộ t tiêu chuẩ n đặ t ra củ a phầ n mề m.
Nghiên cứ u và ứ ng dụ ng Thuậ t toán khác nhau để phát hiệ n vùng chứ a biể n số xe
theo các bư ớ c : giả m vùng dữ liệ u đầ u vào từ ả nh nguồ n sao cho vùng dữ liệ u đó có khả
năng chứ a vùng biể n số xe cao nhấ t , lọ c nhiễ u trên vùng trích xuấ t , sử dụ ng thuậ t toán
tìm kiế m cạ nh Canny , thuậ t toán làm việ c trên các vùng liên thông như thuậ t toán phát
hiệ n viề n kế t hợ p phư ơ ng pháp hình thái họ c để phát hiệ n các vùng có khả năng là biể n
số , sau đó chọ n ra vùng biể n số .
Từ vùng biể n số , sử dụ ng lạ i thuậ t toán phát hiệ n viề n kế t hợ p các điề u kiệ n phù hợ p
để tìm ra các chữ số 1 cách chính xác
Sử dụ ng phư ơ ng pháp so khớ p mẫ u , so sánh ả nh các kí tự biể n số đư ợ c cắ t ra vớ i tậ p
ả nh mẫ u để so sánh đố i chiế u nhậ n dạ ng
Áp dụ ng vào đồ án này nhóm em thự c hiệ n tìm hiể u về bộ thư việ n xử lý ả nh mã
nguồ n mở OpenCV do Intel phát triể n để thự c hiệ n phầ n demo cho đồ án
1.4 Bố cụ c báo cáo
Chư ơ ng 1: Tổ ng Quan. Giớ i thiệ u về đề tài, tình trạ ng ứ ng dụ ng hiệ n nay.
Chư ơ ng 2: Xử lý nhậ n dạ ng biể n số , các thuậ t giả i , phư ơ ng pháp nhậ n dạ ng biể n số
Chư ơ ng 3: Hình ả nh chư ơ ng trình Demo.
Chư ơ ng 4: Kế t luậ n và hư ớ ng phát triể n củ a ứ ng dụ ng.
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
9
Chư ơ ng 2:
XỬ LÝ NHẬ N DẠ NG BIỂ N SỐ
2.1 Nhậ n dạ ng biể n số xe
Xử lý nhậ n dạ ng biể n số xe trả i qua quá trình tuầ n tự , bắ t đầ u từ việ c rút trích vùng
biể n số , kiể m tra xem biể n số đó là biể n số trắ ng hay biể n số màu mà ở đây cụ thể là
biể n số xanh (thự c tế còn có biể n số đỏ và biể n số vàng ).
Lư ợ c đồ các giai đoạ n xử lý Nhậ n Dạ ng Biể n Số Xe
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
10
Sau khi rút trích và xác đị nh màu biể n số , ta tiế n hành cách ly các kí tự trên biể n số
sao cho chính xác , khít vớ i kí tự như ng cũ ng không cắ t mấ t phầ n nào củ a kí tự .
Bư ớ c cuố i cùng là nhậ n dạ ng kí tự , so sánh , đố i chiế u các kí tự đã đư ợ c cách ly vớ i
bộ ả nh đố i chiế u , từ đó xác đị nh đư ợ c biể n số xe.
2.1.1 Trình bày kỹ thuậ t rút trích biể n số xe
2.1.1.1 Mụ c đích:
Từ bộ ả nh nguồ n , ta sử dụ ng các kĩ thuậ t thích hợ p nhằ m xác đị nh vùng chứ a biể n số
xe , sao cho chính xác , có chấ t lư ợ ng tố t nhấ t nhằ m tạ o thuậ n lợ i cho quá trình cách ly
và nhậ n dạ ng kí tự ở các bư ớ c sau.
2.1.1.2 Phư ơ ng pháp:
Có rấ t nhiề u phư ơ ng pháp khác nhau để thự c hiệ n nhiệ m vụ này. Trong đồ án này sử
dụ ng phư ơ ng pháp phát hiệ n viề n kế t hợ p vớ i phư ơ ng pháp hình thái họ c để nhậ n dạ ng
chính xác vùng ả nh chứ a biể n số và rút trích biể n số . trong quá trình thự c hiệ n đồ án ,
giai đoạ n này chỉ đư ợ c sử dụ ng để tăng độ chính xác củ a toàn bộ quá trình nhậ n dạ ng
biể n số xe lên mứ c cao nhấ t có thể . Khi tiế n hành thử nghiệ m nhậ n dạ ng mà không trả i
qua quá trình nhậ n dạ ng vùng biể n số xe , vẫ n có thể nhậ n diệ n đư ợ c các kí tự biể n số xe
, tuy nhiên tỉ lệ nhậ n dạ ng chính xác không cao lắ m.
Lư ợ c đồ sử lý tuầ n tự trả i qua 7 bư ớ c :
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
11
Biể u đồ dòng xử lý quá trình trích biể n số từ ả nh đầ u vào
2.1.1.3 Thự c hiệ n:
2.1.1.3.1 Giớ i hạ n vùng biể n số :
Kế thừ a từ Khóa luậ n tố t nghiệ p xây dự ng hệ thố ng bãi giữ xe tự ô tô củ a Võ Ngô
Văn Xuân và Trầ n Hữ u Tâm thự c hiệ n , việ c giớ i hạ n vùng biể n số để làm giả m thờ i gian
xử lý ả nh đồ ng thờ i tăng tỉ lệ chính xác củ a việ c trích xuấ t biể n số xe
Do điề u kiệ n ả nh đầ u vào phả i thỏ a 1 số tính chấ t đặ c biệ t về hư ớ ng camera , chiề u xe
vào, nên ta xác đị nh đư ợ c rằ ng vùng chứ a biể n số xe là vùng ở nử a dư ớ i hình , và đư ợ c
thu hẹ p về bề ngang như ở hình minh họ a sau:
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
12
Hình 2.17 – Cách giớ i hạ n vùng biể n số
Ta có thể xây dự ng 1 module xử lý đặ c biệ t để tự độ ng nhậ n dạ ng vùng có khả năng
là biể n số xe cao nhấ t , như ng do độ phứ c tạ p khi xây dự ng module nên nhóm thự c hiệ n
đã không chọ n phư ơ ng pháp đó.
2.1.1.3.2 Chuyể n ả nh màu thành ả nh xám
Ả nh sau khi đư ợ c giớ i hạ n sẽ tiế n hành chuyể n ả nh về đạ ng đa mứ c xám (Grayscale)
Để thự c hiệ n yêu cầ u này ta thư ờ ng áp dụ ng 1 trong nhữ ng công thứ c sau đây :
I
( x , y )
= 0.3086 * Red
( x , y )
+ 0.6094 * Green
( x , y )
+ 0.0820 * Blue
( x , y )
I
( x , y )
= 0.299 * Red
( x , y )
+ 0.587 * Green
( x , y )
+ 0.114 * Blue
( x , y )
Vớ i x,y là tọ a độ điể m ả nh cầ n chuyể n .
Trong báo cáo sử dụ ng hàm thư việ n củ a Thư việ n xử lý ả nh mã nguồ n mở OpenCV:
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
13
cv::cvtColor(src_img , gray_img , CV_BGR2GRAY) trong đó :
• src_img : ả nh cầ n chuyể n sang đa mứ c xám.
• gray_img : nơ i lư u giữ ả nh sau khi đã chuyể n sang đa mứ c xám
• CV_BGR2GRAY : Thông số chuyể n đổ i từ ả nh BGR sang ả nh đa mứ c xám.
Ả nh sau khi chuyể n thành ả nh đa mứ c xám
2.1.1.3.3 Làm mờ và mị n ả nh
Bộ lọ c Gaussian đư ợ c sử dụ ng để làm giả m nhiễ u và giả m mứ c độ chi tiế t ( không
mong muố n ) như các vùng bẩ n nhỏ trên biể n số , các hình ả nh bị hạ t nhằ m chuẩ n bị
hình ả nh cho bư ớ c xử lý tiế p theo .
o Lý thuyế t Bộ lọ c Gaussian:
Bộ lọ c Gaussian là 1 bộ lọ c làm mờ ả nh sử dụ ng lý thuyế t về hàm Gaussian (hay còn
đư ợ c biế t đế n là dạ ng phân phố i chuẩ n trong xác xuấ t thố ng kê) để tính toán việ c chuyể n
đổ i từ ng pixcel củ a hình:
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
14
Trong báo cáo sử dụ ng hàm xử lý củ a thư việ n xử lý ả nh mã nguồ n mở OpenCV.
cv::GaussianBlur(src_img , des_img , mask_size , sigmaX) trong đó :
• Src_img : ả nh nguồ n cầ n làm mờ .
• Des_img : nơ i lư u giữ ả nh sau khi làm mờ bằ ng bộ lọ c Gaussian
• Mask_size : kích thư ớ c mặ t na lọ c
• sigmaX : độ lệ ch theo phư ơ ng ngang .
Ả nh sau khi xử lý bằ ng bộ lọ c Gaussian
2.1.1.3.4 Tìm kiế m các cạ nh bằ ng giả i thuậ t Canny
Giả i thuậ t Canny đư ợ c sử dụ ng để tách ra các đư ờ ng nét là khung sư ờ n củ a bứ c ả nh ,
nhằ m chuẩ n bị cho bư ớ c lọ c bỏ các khung sư ờ n ả nh không phù hợ p ở bư ớ c sau
Giả i thuậ t Canny là phư ơ ng pháp tách đư ờ ng biên đư ợ c dùng khá phổ biế n theo toán
tử đạ o hàm. Mà đạ o hàm lạ i chị u ả nh hư ở ng lớ n củ a nhiễ u , do đó , ở bư ớ c trên ta đã tiế n
hành lọ c nhiễ u để đạ t đư ợ c hiệ u quả cao nhấ t trong việ c tách khung sư ờ n .
Ư u điể m củ a thuậ t giả i canny so vớ i các phư ơ ng pháp tách sư ờ n ả nh khác là :
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
15
• Thuậ t toán nhậ n diệ n rấ t tố t các đư ờ ng thẳ ng góc cạ nh củ a các dữ liệ u hình
ả nh
• Các cạ nh đư ợ c đánh dấ u gầ n như giố ng vớ i các cạ nh trong ả nh thậ t
• 1 cạ nh trong hình chỉ đư ợ c đánh dấ u 1 lầ n không trùng lắ p, do đó tránh đư ợ c
hiệ n tư ợ ng nhiễ u trùng lắ p .
Trong ứ ng dụ ng sử dụ ng hàm Canny củ a thư việ n xử lý ả nh OpenCV :
Cv::Canny(src_img , des_img , threshold1 , threshold2) trong đó :
• Src_img : ả nh nguồ n , bắ t buộ c phả i là ả nh đa mứ c xám
• Des_img : Ả nh sau khi qua thuậ t giả i Canny
• Threshold1 , threshold2 : các thông số ngư ỡ ng củ a hàm , có thể điề u chỉ nh
theo ý muố n
Lư u ý : giả i thuậ t Canny trong thu việ n xử lý ả nh OpenCV khi kế t thúc sẽ chuyể n kế t
quả thành ả nh nhị phân (tứ c ả nh mà mỗ i pixcel chỉ mang 1 trong 2 giá trị màu là đen
hoặ c trắ ng).
Hình 2.20 - Ả nh sau khi sử dụ ng giả i thuậ t Canny
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
16
2.1.1.3.5 Thuậ t toán tìm đư ờ ng viề n
Thuậ t toán tìm đư ờ ng viề n đư ợ c sử dụ ng để tìm ra chính xác các đư ờ ng nét nố i liề n
vớ i nhau , mà trong đó các thông tin về các điể m thuộ c đư ờ ng viề n đề u đư ợ c lư u giữ lạ i
như : tọ a độ , số đư ờ ng viề n , kích cỡ đư ờ ng viề n tính theo khung chữ nhậ t , chiề u cao ,
chiề u rộ ng đư ờ ng viề n …
Giả i thuậ t về tìm kiế m đư ờ ng viề n chỉ sử dụ ng đư ợ c khi ả nh đầ u vào là ả nh nhị phân ,
ví dụ như ả nh đã qua sử lý bằ ng giả i thuậ t Canny , hoặ c ả nh đã đư ợ c chuyể n về ả nh nhị
phân.
Trong ứ ng dụ ng sử dụ ng hàm thư việ n củ a thư việ n xử lý ả nh OpenCV :
cv::findContours(src_img , contours , mode, method) trong đó :
• Src_img : ả nh cầ n lư u giữ lạ i các thông tin về các đư ờ ng viề n
• Contours : vecto lư u giữ thông tin các tọ a độ điể m củ a đư ờ ng viề n
• Mode , method : các chế độ lư u giữ , phư ơ ng thứ c tìm kiế m thông tin các tọ a
độ điể m củ a đư ờ ng viề n
Hình 2.22 - Ả nh sau khi áp dụ ng thuậ t toán tìm đư ờ ng viề n
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
17
2.1.1.3.6 Sử dụ ng phư ơ ng pháp hình thái họ c
Phư ơ ng pháp hình thái họ c tứ c là ta sẽ dự a vào đặ c trư ng củ a biể n số xe để nhậ n dạ ng
biể n số xe như kích thư ớ c , màu sắ c , sự đố i xứ ng …
Tuy nhiên nhóm thự c hiệ n đồ án nhậ n thấ y rằ ng đố i vớ i các biể n số xe ô tô , có thể vì
1 lý do khách quan (các đư ờ ng nét nằ m chồ ng lấ n lẫ n nhau , độ sáng không đủ …) mà
đư ờ ng viề n không thể đư ợ c xác đị nh đầ y đủ (đứ t nét , rờ i rạ c) gây khó khăn cho việ c xác
đị nh vùng chứ a biể n số .
Do đó nhóm thự c hiệ n tiế n hành xác đị nh trự c tiế p các đư ờ ng viề n có khả năng cao
nhấ t là các kí tự biể n số , từ đó xác đị nh vùng chứ a các kí tự này , đó chính là vùng biể n
số .
Để xác đị nh các đư ờ ng viề n có khả năng cao là kí tự , nhóm đã tiế n hành thử ở 15 ả nh
bấ t kì trong tậ p ả nh mẫ u và chọ n các tiêu chí để xác đị nh các đư ờ ng viề n như sau :
• 550px <= diệ n tích <= 2500px
• 0.25 <= tỉ lệ chiề u rộ ng / chiề u cao <= 0.74
• 38px < Chiề u cao < 65px
Và kế t quả đạ t đư ợ c là :
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
18
Ả nh sau khi lọ c bằ ng các tiêu chuẩ n hình thái họ c
2.1.1.3.7 Xác đị nh vùng biể n số
Sau khi đã có đư ợ c ả nh vớ i các đư ờ ng viề n phù hợ p vớ i các đặ c điể m hình thái họ c ,
ta tiế n hành xác đị nh vùng biể n số bằ ng cách rấ t đơ n giả n là quét hình , lấ y ra giá trị củ a
pixcel có tọ a độ x nhỏ nhấ t , y nhỏ nhấ t , x lớ n nhấ t , y lớ n nhấ t mà chúng có màu đen
lư u giữ lạ i trong 4 giá trị tư ơ ng ứ ng xmin , ymin , xmax , ymax.
Đoạ n code này khá đơ n giả n , chỉ cầ n sử dụ ng 2 vòng lặ p để quét hình là ta có thể xác
đị nh đư ợ c 1 cách chính xác.
Khi đã có giá trị xmin , ymin , xmax , ymax ta xác đị nh đư ợ c vùng chứ a biể n số là
vùng có tọ a độ góc trên bên trái là A(xmin - 5 , ymin - 5) vớ i chiề u rộ ng là Width =
xmax – xmin +10 , chiề u cao Height = ymax – ymin +10.
Sở dĩ ở đây ta kéo rộ ng góc trên bên trái và tăng chiề u dài , chiề u rộ ng lên 5px là để
lấ y trọ n vùng chứ a chữ số , đồ ng thờ i đả m bả o ko làm mấ t phầ n nào củ a kí tự trên biể n
số .
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
19
Ả nh sau khi xác đị nh vùng biể n số :
Ả nh sau khi xác đị nh vùng biể n số từ ả nh trích lọ c
Ả nh vùng biể n số ánh xạ từ ả nh trên
2.1.2 Kiể m tra biể n số xanh
Sau khi trả i qua giai đoạ n xác đị nh biể n số thì dù là biể n số xanh , biể n số dân dụ ng
bình thư ờ ng hay biể n số quân độ i có ả nh nề n màu đỏ … đề u sẽ đư ợ c xác đị nh 1 cách
chính xác.
Nguyên nhân là do phư ơ ng pháp xác đị nh vùng biể n số đã trình bày ở trên dự a hoàn
toàn vào cách xác đị nh đư ờ ng viề n , do đó không bị ả nh hư ở ng bở i màu sắ c , đây là 1 ư u
điể m lớ n củ a phư ơ ng pháp xác đị nh biể n số bằ ng xác đị nh viề n.
Tuy nhiên ta vẫ n phả i kiể m tra màu sắ c củ a biể n số để chỉ nh sử a ả nh , chuẩ n bị cho
bư ớ c tiế p theo là cách ly và nhậ n dạ ng kí tự .
Phư ơ ng pháp xác đị nh biể n số màu như sau (cụ thể ở đây là biể n số màu xanh):
Ta sẽ nhìn sự khác nhau giữ a biể n số gố c màu xanh và màu trắ ng để tiệ n cho việ c đố i
chiế u , so sánh :
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
20
Ta chuyể n ả nh về dạ ng ả nh đa mứ c xám
Sau đó ta chuyể n ả nh thành ả nh nhị phân , đẻ chuyể n ả nh đa mứ c xám thành ả nh nhị
phân ta cầ n xác đị nh ngư ỡ ng T để chuyể n
Để làm rõ hơ n thì ta có lý thuyế t về ả nh đa mứ c xám : ả nh đa mứ c xám là ả nh có giá
trị điể m ả nh trong khoả ng [0,255] ( vớ i 0 là màu đen , 255 là màu trắ ng ) vớ i 1 ngư ỡ ng
T xác đị nh thì các điể m ả nh nào lớ n hơ n hoặ c bằ ng ngư ỡ ng T sẽ đư ợ c chuyể n thành màu
trắ ng , giá trị = 255 , điể m ả nh nào nhỏ hơ n ngư ỡ ng T thì sẽ đư ợ c chuyể n thành màu đen
, giá trị = 0 . ở báo cáo này sử dụ ng phư ơ ng pháp tìm ngư ỡ ng tự độ ng Otsu
ả nh sau khi nhị phân hóa sử dụ ng phư ơ ng pháp Otsu :
Để xác đị nh biể n số xanh , ta xác đị nh tấ m biể n số đó có số pixcel đen > số pixcel
trắ ng như trên hình ta thấ y.
Để đế m số pixcel trắ ng và đen ta phả i quét qua toàn bộ ả nh , lư u lạ i số pixcel trắ ng ,
số pixcel đen rồ i sau đó tiế n hành so sánh. ( Công đoạ n này chỉ đơ n giả n là quét và đế m
số lư ợ ng pixcel ) .
Sau khi xác đị nh đư ợ c biể n số xanh ta thự c biệ n bư ớ c cuố i cùng để chuẩ n bị cho việ c
tách ả nh các kí tự đó là nhị phân hóa lạ i ả nh biể n số xe nề n xanh vớ i ngư ỡ ng trung gian
là 128 như ng đả o ngư ợ c (tứ c chữ màu trắ ng -> đen , và nề n đen -> nề n trằ ng) để tư ơ ng
tự như ả nh biể n số thư ờ ng :
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
21
2.1.3 Trình bày kỹ thuậ t cách ly ký tự :
Sau khi nhậ n dạ ng đư ợ c vùng biể n số , bư ớ c tiế p theo đó là cách ly kí tự , đây là bư ớ c
quan trọ ng nhấ t trong quá trình nhậ n diệ n kí tự , kĩ thuậ t cách ly phả i làm sao đả m bả o
lấ y đư ợ c trọ n vẹ n kí tự , không bị mấ t kí tự , mấ t 1 phầ n kí tự hoặ c lấ y nhầ m kí tự để khi
ta tiế n hành nhậ n dạ ng thì kế t quả nhậ n dạ ng sẽ đạ t hiệ u quả cao nhấ t.
2.1.3.1 Phư ơ ng pháp thự c hiệ n:
Có nhiề u cách để thự c hiệ n cách ly ký tự , như ng chúng em chọ n phư ơ ng pháp giố ng
như đã nêu ở phầ n trích lọ c biể n số , đó là phư ơ ng pháp phát hiệ n viề n kế t hợ p vớ i
phư ơ ng pháp hình thái họ c . Vớ i hình ả nh đã đư ợ c nhị phân hóa ở bư ớ c kiể m tra biể n số
nề n xanh là ả nh nguồ n , ta sử dụ ng lạ i hàm xác đị nh và lư u giữ thông tin viề n
cv::findContours kế t hợ p vớ i đặ c điể m hình thái củ a vùng kí tự nằ m trên biể n số là :
• 550px <= Diệ n tích <= 2500px
• 0.25 <= tỉ lệ chiề u rộ ng / chiề u cao <= 0.74
• 38px < Chiề u cao < 65px
Ta sẽ có đư ợ c 1 mả ng các đư ờ ng viề n phù hợ p vớ i các đặ c điể m hình thái trên đư ợ c lư u
giữ lạ i dùng để xử lý ở bư ớ c tiế p theo :
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
22
Hình ả nh biể n số sau khi lọ c các đư ờ ng viề n không thỏ a các đặ c điể m hình thái
Như ở hình trên , mả ng các đư ờ ng viề n sẽ bao gồ m 9 phầ n tử vớ i thứ tự ngẫ u nhiên
trong quá trinh xác đị nh viề n và các phầ n tử sai (phù hợ p vớ i điề u kiệ n , như ng lạ i không
phả i là phầ n kí tự cầ n cách ly : như vòng tròn nhỏ ở trong số 0 , số 9 , số 8 , chữ B … tùy
dữ liệ u ả nh đầ u vào) .
Do đó , có 2 vấ n đề cầ n xử lý : loạ i bỏ các phầ n tử sai , và sắ p xế p các phầ n tử kí tự
đúng trong mả ng theo đúng thứ tự nằ m trên biể n số xe
Vấ n đề thứ nhấ t : vớ i mả ng các đư ờ ng viề n thu thậ p đư ợ c , ta cũ ng sẽ có 1 mả ng các
hình ả nh ứ ng vớ i các đư ờ ng viề n tư ơ ng ứ ng , và các hình ả nh này ở dạ ng nhị phân như
các các hình sau đây :
…
Từ các hình ả nh như trên , ta có 1 nhậ n xét đó là ở các ả nh không phả i là kí tự thì tỉ lệ
điể m ả nh trắ ng so vớ i tổ ng số điể m ả nh luôn rấ t lớ n .
Từ nhậ n xét trên và thự c nghiệ m kiể m tra thì kế t quả chính xác như vậ y , để loạ i bỏ các
đư ờ ng viề n sai , ta xác đị nh đư ờ ng viề n nào mà hình ả nh củ a nó có tỉ lệ điể m ả nh trắ ng so
vớ i tổ ng số điể m ả nh > 80% thì sẽ tiế n hành loạ i bỏ đư ờ ng viề n đó . Sau khi loạ i bỏ các
đư ờ ng viề n sai ta sẽ có 1 mả ng các đư ờ ng viề n chính xác củ a từ ng kí tự nằ m rờ i nhau . từ
các đư ờ ng viề n này ta dễ dàng chuyể n chúng thành 1 mả ng các hình ả nh như sau :
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
23
Ả nh đư ờ ng viề n nhị phân (đây chính là ả nh đư ợ c sử dụ ng để so vớ i bộ ả nh mẫ u)
Ả nh gố c từ ng kí tự sau khi đư ợ c tách
Vấ n đề thứ 2 : xác đị nh vị trí thứ tự củ a từ ng đư ờ ng viề n ứ ng vớ i từ ng kí tự trong biể n số
xe , để giả i quyế t vấ n đề này ta tiế n quét mả ng các đư ờ ng viề n , lấ y ra tọ a độ điể m ả nh
nằ m ở góc trên cùng bên trái A(x,y) củ a từ ng đư ờ ng viề n rồ i so sánh chúng vớ i nhau , do
không thể có 2 đư ờ ng viề n trùng nhau nên ứ ng vớ i điể m ả nh nào có giá trị x nhỏ nhấ t thì
đư ờ ng viề n tư ơ ng ứ ng nằ m ở vị trí đầ u tiên , x nhỏ thứ 2 thì đư ờ ng viề n tư ơ ng ứ ng nằ m ở
vị trí thứ 2 … như hình sau.
Ta có : x1 < x2 < x3 < x4 < x5 < x6 < x7
Thì đư ờ ng viề n tư ơ ng ứ ng vớ i tọ a độ x sẽ đư ợ c đánh số thứ tự như sau:
x1 = 1 , x2 = 2 , x3 = 3 … x7 = 7
tứ c là đã đúng vớ i thứ tự trên ả nh thậ t.
2.1.4 Trình bày kỹ thuậ t nhậ n dạ ng ký tự :
2.1.4.1 Phư ơ ng pháp:
Kỹ thuậ t nhậ n dạ ng kí tự có rấ t nhiề u kí thuậ t khác nhau
,
như ng phư ơ ng pháp phổ biế n
nhấ t là sử dụ ng mạ ng nơ -ron nhân tạ o , tứ c là huấ n luyệ n cho máy tính nhậ n dạ ng kí tự ,
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
24
như ng việ c xây dự ng 1 mạ ng nơ -ron nhân tạ o là hế t sứ c phứ c tạ p và tố n nhiề u thờ i gian
để thu thậ p các hình ả nh mẫ u làm đầ u vào cho việ c huấ n luyệ n nhậ n dạ ng . do đó nhóm
em đã không sử dụ ng phư ơ ng pháp này thay vào đó nhóm em sử dụ ng phư ơ ng pháp so
khớ p mẫ u để tiế n hành nhậ n dạ ng kí tự
2.1.4.2 So khớ p mẫ u (Template Matching):
Đây là kỹ thuậ t nhậ n dạ ng dự a vào mứ c độ tư ơ ng tự củ a ả nh ký tự so vớ i bộ ả nh mẫ u
cho trư ớ c. Trong đó bộ ả nh mẫ u đư ợ c xây dự ng là các kí tự chữ in đư ợ c sử dụ ng trên
biể n số xe tạ i Việ t Nam. Bộ ả nh này đư ợ c xây dự ng từ các biể n số chụ p lạ i trong bộ ả nh
mẫ u , các font chữ biể n số kế t hợ p vớ i các quy đị nh về chữ số và chữ cái trên biể n số xe.
Bộ ả nh đư ợ c xây dự ng bao gồ m tổ ng cộ ng 30 kí tự vớ i kích thư ớ c 35px*55px đư ợ c
đặ t tên từ 0-29 như hình dư ớ i
Bộ ả nh mẫ u để nhậ n dạ ng kí tự
2.1.4.3 Thự c Hiệ n:
Sau khi trả i qua bư ớ c tách các kí tự , ta đã thu đư ợ c 1 mả ng bao gồ m các hình ả nh rờ i
rạ c củ a từ ng kí tự biể n số đã đư ợ c nhị phân và có khuôn dạ ng giố ng như bộ ả nh mẫ u
(chữ đen , nề n trắ ng ) :
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
25
Tuy nhiên kích thư ớ c củ a các hình ả nh này lạ i không đồ ng nhấ t , vì thế ta phả i resize
các hình ả nh này về kích thư ớ c 35px * 55px như bộ ả nh mẫ u để bắ t đầ u tiế n hành so
sánh đố i chiế u .
Việ c thay đổ i lạ i kích thư ớ c ả nh ta sử dụ ng hàm cv::resize(src_img , des_img , size)
trong thư việ n OpenCV. Vớ i
• Src_img : ả nh đầ u vào cầ n resize
• Des_img : ả nh đích dùng để lư u hình ả nh sau khi resize.
• Size : kích thư ớ c ả nh muố n resize.
Sau đó ta tiế n hành thuậ t toán so sánh , nhậ n dạ ng kí tự như sau :
Bư ớ c 1 : ta tạ o 1 ả nh DEMO không có hình , màu trắ ng , có kích thư ớ c 35px * 55 px
. đặ t mã cho từ ng ả nh trong bộ ả nh mẫ u , ở đây ta đặ t bả ng mã như tên ả nh như sau :
0 – 0 4 – 4 8 – 8 C – 12 H – 16 N – 20 T – 24 Y - 28
1 – 1 5 – 5 9 – 9 D – 13 K – 17 P – 21 U – 25 Z - 29
2 – 2 6 – 6 A – 10 E – 14 L – 18 R – 22 V - 26
3 – 3 7 – 7 B – 11 F – 15 M – 19 S – 23 X - 27
Bư ớ c 2 : ta tiế n hành so sánh ả nh cầ n nhậ n diệ n vớ i từ ng ả nh trong bộ ả nh đố i chiế u
để so sánh mã từ 0-29 ở trên bằ ng cách duyệ t qua từ ng điể m ả nh củ a 2 tấ m ả nh. Nế u
chúng giố ng nhau (đề u là màu trắ ng hoặ c đề u là màu đen) thì ta sẽ vẽ điể m ả nh tạ i vị trí
đó củ a ả nh DEMO là màu trắ ng , nế u chúng không giố ng nhau (1 trắ ng và 1 đen) thì ta
vẽ điể m ả nh tạ i vị trí đó củ a ả nh DEMO là màu đen.
Ví dụ : hình
Đồ Án Môn Họ c 2012
SVTH: Lê Hoàng Hiế u – Lê Trung Thả o
26
Hình cầ n nhậ n dạ ng kí tự : … …
Hình trong bộ ả nh mẫ u : … …
Hình DEMO theo thuậ t giả i : … …
Bư ớ c 3 : ta tiế n hành quét kiể m tra hình DEMO đế m số lư ợ ng pixcel màu đen và số
lư ợ ng pixcel màu trắ ng sau đó xác đị nh tỉ lệ pixcel màu đen / pixcel màu trắ ng.
Ratio = Num_Black_Pixcel / Num_White_Pixcel
ứ ng vớ i từ ng ả nh trong bộ ả nh mẫ u sẽ tư ơ ng ứ ng vớ i 1 con số Ratio xác đị nh. Như
vậ y ta thấ y rằ ng vớ i con số Ratio càng nhỏ thì độ giố ng nhau càng tăng , và ả nh nào có
con số Ratio bé nhấ t thì nó chính là kí tự cầ n xác đị nh . Do đó duyệ t qua 30 ả nh trong bộ
ả nh mẫ u , ả nh nào ứ ng vớ i con số Ratio nhỏ nhấ t sẽ là kí tự đúng. Từ mã ả nh củ a hình
ả nh đúng đó ta tra bả ng mã sẽ ra đư ợ c kí tự củ a ả nh cầ n nhậ n dạ ng.
Như trong ví dụ ở bư ớ c 2 ta thấ y rằ ng ứ ng vớ i hình có mã là 5 trong bộ ả nh mẫ u thì
số Ratio là bé nhấ t do đó ta nhậ n diệ n đư ợ c chính xác kí tự cầ n xác đị nh là số 5.
Bư ớ c 4 : lặ p lạ i bư ớ c 2 và bư ớ c 3 cho kí tự cầ n nhậ n dạ ng tiế p theo , lư u lạ i kí tự đã
nhậ n dạ ng đư ợ c vào 1 chuỗ i , sau đó xuấ t chuỗ i kí tự biể n số xác đị nh đư ợ c.
Như vậ y là ta đã có thể nhậ n dạ ng đư ợ c các kí tự trên biể n số xe dự a vào thuậ t giả i
trên , mặ c dù phư ơ ng pháp này có nhiề u hạ n chế (biể n số có vế t bẩ n , các con ố c vít làm
sai lệ ch nhậ n dạ ng) như ng khả năng nhậ n dạ ng chính xác kí tự là khả quan và có hiệ u
quả tố t.