ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÀI THU HOẠCH MÔN HỌC
MÁY HỌC VÀ ỨNG DỤNG
Đề tài: Mạng nơ-ron nhân tạo vào ứng dụng nhận dạng biển số xe
Giảng viên hướng dẫn: PGS.TS. Vũ Thanh Nguyên
Học viên thực hiện: Lê Bảo Trung
MSHV: CH1301112
TP Hồ Chí Minh, tháng 3 năm 2014
PHỤ LỤC
I. GIỚI THIỆU ĐỀ TÀI
Ngày nay, với sự phát triển không ngừng của ngành công nghệ thông tin nói chung
và khoa học máy tính nói riêng, đã có rất nhiều thành tựu và đề tài nghiên cứu được ứng
dụng rộng rãi, hiệu quả vào đời sống của con người, nó góp phần giúp đời sống con
người ngày càng hiện đại, giảm đi những công việc nặng nhọc trong đời sống hằng ngày,
từ đó làm thu ngắn thời gian lao động và nâng cao đáng kể hiệu suất làm việc. Đặc biệt,
phương pháp máy học cùng với công nghệ xử lý ảnh ngày nay đã đónggóp vai trò to lớn
trong tự động hóa các vấn đề phức tạp tưởng chừng như chỉ có con người mới thực hiện
được. Có thể kể tên những ứng dụng phổ biến mà máy học và xử lý ảnh đang được áp
dụng rộng rãi vào đời sống hiện nay như: xử lý ảnh chụp vệ tinh, dự báo thời tiết, điều
khiển giao thông công cộng, nhận dạng chữ viết tay, phân tích chữ ký, nhận dạng vân tay,
nhận dạng mặt người, nhận dạng hành động của con người,…
Hiện nay, hầu hết các bãi giữ xe ở nước ta đều quản lí bằng cách thức thủ công đơn
giản và không có được năng suất làm việc cao. Quy trình giữ xe cơ bản được mô tả một
cách đơn giản như sau: một người đọc biển số, một người khác sẽ ghi biển số xe vào thẻ
giữ xe, sau đó sẽ bấm vào xe một phần vé xe, phần còn lại sẽ đưa cho chủ xe giữ. Sau đó
xe trong bãi sẽ do nhiều người trông chừng tùy theo bãi xe đó rộng hay hẹp, có nhiều hay
ít góc khuất,…
được nhiều bài toán máy học và đạt được các kết quả rất tố trong thử nghiệm cũng như
ứng dụng vào thực tế. Dựa trên cơ sở lý thuyết của mạng nơron nhân tạo, qua đó giới
thiệu bài toán nhận dạng biển số xe; là một ứng dụng có tính hữu ích cao và đang được
nghiên cứu với rất nhiều phương pháp khác nhau.
II. MẠNG NƠ RON NHÂN TẠO
1. Khái niệm mạng noron
a) Mạng nơ-ron sinh học
Mạng nơ-ron sinh học là một mạng lưới (plexus) các nơ-ron có kết nối hoặc
có liên quan về mặt chức năng trực thuộc hệ thần kinh ngoại biên (peripheral
nervous system) hay hệ thần kinh trung ương (central nervous system). Trong
ngành thần kinh học (neuroscience), nó thường được dùng để chỉ một nhóm nơ-
ron thuộc hệ thần kinh là đối tượng của một nghiên cứu khoa học nhất định.
Hệ thống thần kinh của con người có thể được xem như một hệ thống gồm
ba tầng:
- Trung tâm của hệ thống là bộ não được tạo nên bởi một mạng lưới thần
kinh, nó lien tục tiếp nhận thông tin, nhận thức thông tin, và thực hiện các
quyết định phù hợp.
- Các bộ tiếp nhận bên ngoài bộ não làm nhiệm vụ chuyển đổi các kích thích
từ cơ thể con người hay từ môn trường bên ngoài thành các xung điện; các
xung điện này vận chuyển các thong tin tới mạng lưới thần kinh.
- Các bộ tác động có nhiệm vụ chuyển đổi các xung điện sinh ra bởi mạng
lưới thần kinh thành các đáp ứng có thể thấy được (dưới nhiều dạng khác
nhau), chính là đầu ra của hệ thống.
Sơ đồ khối của hệ thống thần kinh
Hai trong số những thành phần cơ bản của bộ não mà chúng ta cần quan
tâm đến như các yếu tố quyết định khả năng tính toán của bộ não là các tế bào
thần kinh (neuron) và các khớp nối thần kinh (synapse). Người ta ước tính rằng có
xấp xỉ 10 tỷ neuron và 60 nghìn tỷ synapse trong vỏ não con người.
Trong thực tế sử dụng, nhiều mạng nơ-ron là các công cụ mô hình hóa dữ liệu thống
kê phi tuyến. Chúng có thể được dùng để mô hình hóa các mối quan hệ phức tạp giữa dữ
liệu vào và kết quả hoặc để tìm kiếm các dạng/mẫu trong dữ liệu.
Mạng noron có những tính chất và đặc trưng sau:
- Thông tin được xử lý ở các phần tử đơn giản gọi là noron
- Tính hiệu lan truyền giữa các noron thông qua các kết nối (synapse)
- Mỗi kết nối có một trọng số ( được nhân với tín hiệu lan truyền)
- Mỗi noron có một hàm kích hoạt (thường là phi tuyến) tác động lên đầu vào để
tạo thành đầu ra
Trong một mạng noron có 3 kiểu đơn vị:
#$ Các đơn vị đầu vào (input units), nhận tín hiệu từ bên ngoài;
$ Các đơn vị đầu ra (Output units), gửi dữ liệu ra bên ngoài;
$ Các đơn vị ẩn (Hidden units), tín hiệu vào và ra của nó nằm trong mạng.
Mỗi đơn vị j có thể có một hoặc nhiều đầu vào, x0,x1,…,xn, nhưng chỉ có 1 đầu ra zj.
Một đầu vào tới một đơn vị có thể là dữ liệu từ bên ngoài mạng, hoặc đầu ra của một
đơn vị khác, hoặc là đầu ra của chính nó.
c) Quá trình hình thành và phát triển noron nhân tạo
Mạng noron nhân tạo được xây dựng từ những năm 1940 nhằm mô phỏng một số
chức năng của bộ não người. Dựa trên quan điểm cho rằng bộ não người là bộ điều khiển.
Mạng noron nhân tạo được thiết kế tương tự như noron sinh học sẽ có khả năng giải
quyết hàng loạt các bài toán như tính toán tối ưu, điều khiển, công nghệ robot…
Quá trình nghiên cứu và phát triển noron nhân tạo có thể chia thành 4 giai đoạn như
sau:
Giai đoạn 1: Có thể tính từ nghiên cứu của William (1890) về tâm lý học với sự liên kết
các noron thần kinh. Năm 1940 Mc Culloch và Pitts đã cho biết noron có thể mô hình hoá
như thiết bị ngưỡng (Giới hạn) để thực hiện cácphép tính logic và mô hình mạng noron
của Mc Culloch – Pitts cùng với giải thuật huấnluyện mạng của Hebb ra đời năm 1943.
%
hoạt động của một mạng noron. Chúng ta xác định ba thành phần cơ bản của một mô
hình moron:
- Một tập các synapse hay các kết nối, mà mỗi một trong chúng được đặc trưng bởi một
trọng số riêng nó. Tức là một tín hiệu xj tại đầu vào của synapse j nối với neuron k sẽ
được nhân với trọng số synapse wkj. Ở đó k là chỉ số của neuron tại đầu ra của synapse
đang xét, còn j chỉ điểm đầu vào của synapse. Các trọng số của một neuron nhân tạo có
thể nhận cả các giá trị âm và các giá trị dương.
- Một bộ cộng để tính tổng các tín hiệu đầu vào của neuron, đã được nhân với các trọng số
synapse tương ứng; phép toán được mô tả ở đây tạo nên một bộ tổ hợp tuyến tính.
- Một hàm kích hoạt (activation function) để giới hạn biên độ đầu ra của neuron. Hàm kích
hoạt cũng được xem xét như một hàm né; nó giới hạn phạn vi biên độ cho phép của tính
hiệu đầu ra trong một khoảng giá trị hữu hạn. Mô hình neuron còn bao gồm một hệ số
hiệu chính tác độ từ bên ngoài, bk. Hệ số hiệu chính bk có tác dụng tang lên hoặc giảm đi
đầu vào thực của hàm kích hoạt, tùy theo nó dương hay âm.
'
Mô hình phi tuyến của một neuron.
Ta có thể mô tả một noron k bằng cặp công thức sau:
(2.1)
Và
(2.2)
Trong đó:
- x1,x2,…,xm là các tín hiệu đầu vào
- wk1,wk2,…,wkm là các trọng số synapse của neuron
- uk là đầu ra bộ tổ hợp tuyến tính tương ứng
- bk là hệ số hiệu chỉnh
b) Hàm kích hoạt
Hàm kích hoạt, ký hiệu bởi , xác định đầu ra của noron. Có các kiểu hàm kích hoạt cơ
bản như sau:
#$ Hàm ngưỡng: Còn được gọi là hàm Heaviside
đặc biệt có giá trị khi mức đầu vào có kích thước lớn.
#/
*+,).
$ Các mạng hồi quy
Một mạng noron hồi quy được phân biệt so với các mạng noron không hồi quy ở
chỗ là nó có ít nhất 1 vòng lặp phản hồi. Ví dụ, một mạng hồi quy có thể bao gồm một
mức đơn các noron với mỗi noron đưa tín hiệu đầu ra của nó quay trở lại các đầu vào của
các noron khác.
Mạng noron tự phản hồi là trường hợp đầu ra của một noron được phản hồi lại
chính đầu vào cũng noron đó.
01
!$ Mạng học
Chức năngcủa một mạng noron được quết định bởi các nhân tố như: hình trạng
mạng ( số lớp, số đơn vị trên mỗi tầng, và cách mà các lớp được liên kết với nhau) và các
##
trọng số của các liên kết bên trong mạng. Hình trạng của mạng thường là cố định, và các
trọng số được quyết định bởi một thuật toán huấn luyện (training algorithm). Tiến trình
điều chỉnh các trọng số đểmạng “nhận biết” được quan hệgiữa đầu vào và đích mong
muốn được gọi là học (learning) hay huấnluyện (training). Rất nhiều thuật toán học đã
được phát minh để tìm ra tập trọng sốtối ưu làmgiải pháp cho các bài toán. Các thuật toán
đó có thểchia làm hai nhóm chính: Học có thầy (Supervised learning) và Học không có
thầy (Unsupervised Learning).
o Học có thầy:
Mạng được huấn luyện bằng cách cung cấp cho nó các cặp mẫu đầu vào và các
đầu ra mong muốn (target values). Các cặp được cung cấp bởi "thầy giáo", hay bởi hệ
thống trên đó mạng hoạt động. Sự khác biệt giữa các đầu ra thực tế so với các đầu ra
mong muốn được thuật toán sửdụng để thích ứng các trọng số trong mạng. Điều này
thường được đưa ra như một bài toán xấp xỉ hàm số- cho dữ liệu huấn luyện bao gồm các
- Dự đoán: dự đoán các trạng thái của hệ thống,…
- Quy hoạch, kiểm tra và tìm kiếm: Gồm cài đặt song song các bài toán
thỏa mãn ràng buộc, tìm nghiệm giải bài toán người du lịch, điều khiển
robot…
- …
4. Ưu – nhược điểm của mạng noron
Ưu điểm:
- Xử lý song song
#
- Thiết kế hệ thống thích nghi
- Không đòi hỏi các đặc trưng mở rộng của bài toán (chủ yếu dựa
trên tập học).
- Có thể chấp nhận lỗi do tính song song.
Nhược điểm:
- Không có các quy tắc hoặc hướng dẫn thiết kế rõ ràng đối với
một ứng dụng nhất định.
- Không có cách tổng quát để đánh giá hoạt động bên trong mạng
- Việc học đối với mạng có thể khó (hoặc không thể) thực hiện.
Khó có thể đoán trước được hiệu quả của mạng trong tương lai (khả năng
tổng quát hoá).
III. ỨNG DỤNG MẠNG NƠRON NHÂN TẠO VÀO BÀI TOÁN
NHẬN DẠNG BIỂN SỐ XE
1. Bài toán xử lý ảnh
a) Kỹ thuật chuyển ảnh sang ảnh mức xám (Gray Level):
56)7839:;!<)=,>;?@;?A
B;CD?E,+FG6;HI3D8J8=9:KDL
).G)MN5;7$'<972.
OP/I#"QRS/I&#""!QNS/I/&#Q
T3K,U>KV)B2*?>KBW8,?@I
)_9`A>)aIb)_Y)[>)9:
F^JM^c$I5dWV>),?@Y[e
;fDd.<0))g7;=h\VDFJI
gL8 WV >),e ,?@,? ? i5jkll= blRl=
blRlg5=]mbn5oR=k5blg=pW?-WWqm79U[-
J+1FD,?@JK).Ld+IK,-WV>)qm
)79;)[8WV;^>),F?@dD,^?=
#%
r>,[
?-W
r>,[
?-W
rF
r9
[sq>)I;fDdG6;H=D\>)WG7;,?@d
\,?@d\<tsU4<3W?-JWG7;
DCWG7;V)4>)?-.I
b<?Cd\WV>)qm)79
T,u9F>)qD,uV))v>)Ib
V)>K;,K)YHI96t9F>)q
;F,uqm)79IbqV)Mw
#
=p=w
J
$,?@JEu;
)[,K)M
#
=p=
với w
j
=i
l
,
W
j
=i
l
, j ∈ {1, …,k}, l ∈ {1, …, n}
Mỗi nhóm C
j
tương ứng với trọng tâm w
j
Repeat
For mỗi vector ngõ vào i
l
, với l ∈ {1, …, n}
Do
Đưa i
l
vào nhóm C
j
* mà có w
j
* gần
với i
l
nhất.
Formỗi nhóm C
− Sắp xếp tăng
− Nếu J*K là số lẻ thì (J*K+1)/2 chính là trung vị. Gán giá trị này cho điểm ảnh
trung tâm.
e) Bộ lọc BlobsFiltering:
Nếu bộ lọc trung vị (median ) nhằm loại bỏ nhiễu hạt tiêu, nhiễu hạt muối trong
ảnh hoặc Erosion và Dilatation làm đầy hoặc mòn ảnh thì bộ lọc BlobsFiltering sẽ loại bỏ
cả dấu gạch ngang ở giữa hàng ký tự trên của biển số. Đây là một loại nhiễu mà đối với
bảng số nào cũng có. Vì chương trình nhận dạng của chúng ta không cần phải nhận dạng
ký tự này, do ta luôn biết vị trí của nó ở đâu trên bảng số xe. Nếu ta dùng bộ lọc Erosion
#(
thì không tốt vì ta phải dùng mặt nạ quét tương đối lớn và có thể lặp lại nhiều lần và sẽ
gây ảnh hưởng đến ký tự cần nhận dạng. Đối với bộ lọc BlobsFiltering thì chỉ quét một
lần trong ảnh, nó sẽ tìm tất cả các đối tượng (các ký tự, nét gạch ngang và nhiễu nếu có )
trong ảnh, đánh dấu vị trí và kích thước của từng đối tượng. Việc còn lại là ta sẽ qui định
một ngưỡng kích thước thích hợp cho bộ lọc để nó sẽ chỉ giữ lại các ký tự (vì nó có kích
thước lớn hơn ngưỡng) và loại bỏ tất cả các đối tượng còn lại (bao gồm nét gạch ngang
và các nhiễu).
f) Thuật toán tách ký tự
Input= ảnh thu được từ camera.
Output= ảnh biển số trích được.
Với h: ngưỡng cao
w: ngưỡng rộng.
Function fft(image)
{
i=0;
thiết lập giá trị ban đầu;
flag=0;
for (i=0; i<image.Height;i++)
{
{
left=i;
flag=1;
}
else
if (width>=w)
right=i;
}
Biển số xe= ảnh mới với cạnh trái là left và cạnh phải
là right.
}
Một số ảnh sau khi tách được biển số.
Tổng kết thuật toán trích biển số
783J+18,?@;)[<K9F=FLa
G6;HIg+,cD|,LJ\?,eWcW=3a
G6;H9:Jh?C|I
Tiền xử lý:
5J8,?@<K9F=32D\G6;H<K9F}J2
J~)Wc1=D3J2WB<K9F,L•)>€Y[
Da04<K9F=?E4,LJ\WM9=F=p$=
?E,F=p
Ảnh bảng số
− bK9N7D7;
Ảnh bảng số (Gray level)
− O6;H<t8qm)79
Ảnh bảng số (K-mean)