MỤC LỤC
Chương Một : Mạng Neural nhân tạo
1.1. Mở đầu chương
1.2. Sơ lược về neural sinh học
1.3. Mạng Neural nhân tạo
1.3.1. Mô hình một Neural nhân tạo
1.3.2. Mạng Neural một lớp
1.3.3. Mạng Neural nhiều lớp
1.4. Phân loại cấu trúc mạng
1.4.1. Mạng có cấu trúc tiến
1.4.2. Mạng hồi quy
1.5. Huấn luyện mạng neural.
1.5.1. Phương pháp học
1.5.2. Học có giám sát
1.5.3. Học không giám sát
1.5.4. Học tăng cường
1.5.5. Thuật toán lan truyền ngược
1.6. Các bước chuẩn bị thiết lập mạng
1.7. Vấn đề quá khớp và khả năng tổng quát hóa của mạng
1.7.1. Hiện tượng quá khớp
1.7.2. Cải thiện tính tổng quát hóa (ngưng huấn luyện khi mạng quá khớp)
1.8. Ứng dụng mạng Neural trong lĩnh vự nhận dạng
1
1.9. Kết luận chương
Chương Hai: Cơ sở lý thuyết
2.1. Giới thiệu chương
2.2. Tìm hiểu hệ thống nhận dạng biển số xe mô tô hai bánh
2.3. Xử lý ảnh.
3.5. Chương trình mô phỏng
3.6. Kết luận chương.
Chương Bốn: Thử nghiệm, đánh giá và hướng giải quyết đề tài
4.1. Giới thiệu chương
4.2. Thử nghiệm với ảnh chụp biển số
4.3. Nhận xét kết quả
4.4. Một số kết quả mô tả việc thử nghiệm
4.4.1. Tách biển số
4.4.2. Tách ký tự trên biển số
4.4.3. Nhận dạng ký tự sau khi tách
4.5. Hướng giải quyết của đề tài
3
Tài liệu tham khảo……………………………………………………………..………51
Phụ lục…………………………………………………………………………………52
4
MỞ ĐẦU
Mạng neural nhân tạo (Artificial neural networks ) là một mô phỏng xử lý thông tin, được
nghiên cứu ra từ hệ thống thần kinh của sinh vật, giống như bộ não để xử lý thông tin. Trải qua
nhiều năm phát triển, nay mạng Neural thực sự được chú ý và nhanh chóng trở thành hướng đi đầy triển
vọng trong việc xây dựng các máy tính thông minh gần với trí tuệ con người.
Nhờ đặc tính khá mềm dẻo, dễ thích nghi với môi trường nên mạng Neural đã được áp dụng
thành công trong các lĩnh vực nhận dạng, phân loại, giảm nhiễu, dự đoán,….
Nhận dạng ký tự là một trong những ứng dụng điển hình của mạng Neural, trong đó nhận dạng
Hình 1.1 : Mô hình neuron sinh học
Trong đó :
• Các Soma là thân của Neural.
6
• Các dendrites là các dây mảnh, dài, gắn liền với soma, chúng truyền dữ liệu
(dưới dạng xung điện thế) đến cho soma xử lý. Bên trong soma các dữ liệu
đó được tổng hợp lại. Có thể xem gần đúng sự tổng hợp ấy như là một phép
lấy tổng tất cả các dữ liệu mà Neural nhận được.
• Một loại dây dẫn tín hiệu khác cũng gắn với soma là các axon. Khác với
dendrites, axons có khả năng phát các xung điện thế, chúng là các dây dẫn
tín hiệu từ Neural đi các nơi khác. Chỉ khi nào điện thế trong soma vượt
quá một giá trị ngưỡng nào đó thì axon mới phát một xung điện thế, còn
nếu không thì nó ở trạng thái nghỉ.
• Axon nối với các dendrites của các Neural khác thông qua những mối nối
đặc biệt gọi là synapse. Khi điện thế của synapse tăng lên do các xung phát
ra từ axon thì synapse sẽ nhả ra một số chất hoá học, các chất này mở "cửa"
trên dendrites để cho các ions truyền qua. Chính dòng ions này làm thay đổi
điện thế trên dendrites, tạo ra các xung dữ liệu lan truyền tới các Neural
khác.
Có thể tóm tắt hoạt động của một Neural như sau: Neural lấy tổng tất cả các điện thế vào mà
nó nhận được, và phát ra một xung điện thế nếu tổng ấy lớn hơn một ngưỡng nào đó. Các Neural nối
với nhau ở các synapses. Synapse được gọi là mạnh khi nó cho phép truyền dẫn dễ dàng tín hiệu qua các
Neural khác. Ngược lại, một synapse yếu sẽ truyền dẫn tín hiệu rất khó khăn.
Các synapses đóng vai trò rất quan trọng trong sự học tập. Khi chúng ta học tập thì hoạt động
của các synapses được tăng cường, tạo nên nhiều liên kết mạnh giữa các Neural.
Có thể nói rằng người nào học càng giỏi thì càng có nhiều synapses và các synapses ấy càng
mạnh mẽ, hay nói cách khác, liên kết giữa các Neural càng nhiều thì bộ não càng nhạy bén.
Ngõ vào
Mạng Neural gồm các trọng số giữa các Neural
Điều chỉnh
trọng số
Hình 1.2: mô hình toán học tổng quát của mạng Neural
Tín hiệu ngõ vào sau khi qua mạng neural sẽ được tính toán và ngõ ra của mạng sẽ được so sánh
với tín hiệu đích mong muốn. Mạng sẽ tiếp tục cập nhật và điều chỉnh trọng số và ngưỡng đến khi thỏa
mãn ngõ ra yêu cầu.
Điều kiện quan trọng trong việc sử dụng mạng neural là phải biết mối liên hệ giữa ngõ vào và
ngõ ra biết trước. Mối quan hệ này có thể kéo theo nhiều thứ nhưng nó nhất định phải tồn tại.
Tổng quát, nếu ta sử dụng một mạng neural ta sẽ không biết chính xác trạng thái tự nhiên của
mối liên hệ giữa ngõ vào và ngõ ra (nếu ta biết mối liên hệ ta có thể làm mô hình đó trực tiếp mà không
cần mạng Neural ). Một tính năng khác của mạng neural là nó có thể học mối liên hệ giữa ngõ vào và ngõ
9
ra thông qua việc huấn luyện. Có ba loại huấn luyện sử dụng trong mạng neural là huấn luyện có giám
sát, huấn luyện không giám sát và kiểu huấn luyện tăng cường. Với những loại mạng khác nhau thì sử
dụng các loại huấn luyện khác nhau. Huấn luyện có giám sát sử dụng thông dụng nhất.
Trong việc học có giám sát, người sử dụng mạng phải có một tập hợp dữ liệu cần huấn luyện. Tập
hợp này chứa những ngõ vào mẫu với ngõ ra tương ứng và mạng sẽ huấn luyện để đưa ra mối liên hệ
giữa ngõ ra và ngõ vào.
Ngày nay, mạng Neural ngày càng được ứng dụng nhiều trong thực tế. Đặc biệt là các bài toán
nhận dạng mẫu, xử lý, lọc dữ liệu, và điều khiển. Ứng dụng của mạng Neural được chia thành các loại
sau:
wp + b
f
b
Hình 1.3 : Neural một ngõ vào
10
a = f(wp + b)
11
Trong đó :
p là ngõ vào.
w là trọng số
n = wp +b là tổng trọng số và ngưỡng
f là hàm truyền
a = f(wp + b) : ngõ ra của mạng
Nếu có nhiều ngõ vào thì p được định nghĩa đưới dạng một vector R phần tử, hay ma trận R hàng
và một cột.
W1,1
∑
W1,R
13
Trong đó, ma trận trọng số w được biểu diễn như sau:
W=
Các Neural được làm gọn thành một với trọng số w là một ma trận (RxS), với S là số Neural có
trong lớp.
Hình 1.7: Mạng Neural một lớp thu gọn
1.3.3. Mạng Neural nhiều lớp
Ta thấy ngõ ra a của mạng Neural một lớp là một vector, thực tế người ta dùng ngõ ra của lớp
này làm ngõ vào của lớp kia để tăng khả năng huấn luyện. Thông thường người ta dùng ba lớp: một lớp
vào, một lớp ẩn và một lớp đầu ra. Hình 1.9 biểu diễn mạng Neural truyền thắng gồm 3 lớp.
Hình 1.8: Mạng Neural truyền thẳng ba lớp
Mạng có nhiều lớp, mỗi lớp có một ma trận W, một ngưỡng b và một vector ngõ ra a. Thông
thường giá trị ra của một lớp là giá trị đầu vào của lớp tiếp theo. Mỗi lớp trong mạng đảm nhiệm vai trò
khác nhau, gồm đầu vào, đầu ra và các lớp ẩn. Mạng đa lớp có khả năng xử lý rất lớn.
1.4. Phân loại cấu trúc mạng
14
Xét theo theo cấu trúc mạng, người ta chia mạng Neural nhân tạo thành hai kiểu cấu trúc là
mạng có cấu trúc tiến và mạng hồi quy
1.4.1. Mạng có cấu trúc tiến
Trong mạng có cấu trúc tiến, tín hiệu đi vào các Neural ngõ vào, qua các Neural ẩn và cuối cùng
đến các Neural ngõ ra. Mô hình mạng giống như hình vẽ
Hình 1.9: Mạng Neural cấu trúc tiến
tập các biến ngẫu nhiên. Phần lớn các ứng dụng nằm trong vùng của các bài toán ước lượng như mô
hình hóa thống kê, nén, lọc, phân cụm.
1.5.4. Huấn luyện tăng cường
16
Huấn luyện tăng cường nghiên cứu cách thức hoạt động của một chủ thể trong một môi trường
nên chọn các hành động nào, để cực đại một khoản nào đó về lâu dài. Các thuật toán huấn luyện tăng
cường cố gắng tìm một chiến lược ánh xạ các trạng thái của môi trường tới các hành động của chủ thể
trong trường hợp đó.
Huấn luyện tăng cường không có các cặp dữ liệu vào/ra đúng hay sai, các hành động gần tối ưu
cũng không được đánh giá đúng sai một cách tường minh. Luôn có một sự cân bằng của việc học cái mới
và kế thừa cái cũ. Huấn luyện tăng cường là cách thức hoạt động giống não của người nhất.
1.5.5. Thuật toán lan truyền ngược
Được ứng dụng để giải các bài toán điều khiển các hệ phi tuyến phức tạp và bất ổn định. Lan
truyền ngược là một phương pháp cho phép xác định tập trọng sốt tốt nhất của mạng để giải một bài
toán đã cho. Việc áp dụng phương pháp lan truyền ngược là một quá trình lặp đi lặp lại các tiến trình: lan
truyền tiến để thực hiện ánh xạ và lan truyền ngược sai số để cập nhật các trọng số. các trọng số của
mạng là các hệ số của mô hình. Phương pháp giảm gradient được dùng để cập nhật những hệ số này sao
cho giảm thiểu được sai số của mô hình mạng.
Hình 1.12: mạng ba lớp lan truyền ngược
Đầu tiên ta cho lan truyền thẳng trong mạng, qua các neural và được tiếp tục với các hàm kích
hoạt của phần tử Neural, các mạng được nghiên cứu cùng với thuật toán lan truyền ngược được gọi là
“mạng lan truyền ngược”.
17
Thuật toán này cung cấp một thủ tục cho việc thay đổi các vector trọng số trong mạng, đầu ra của
khớp xảy ra khi mạng được luyện quá khớp (quá sát) với dữ liệu huấn luyện (và nhiễu trên tập huấn
luyện), nên nó sẽ trả lời chính xác những gì đã được huấn luyện, còn những gì không được huấn luyện
thì nó không quan tâm. Sai số trong tập huấn luyện được kéo xuống rất bé, nhưng khi đưa dữ liệu mới
vào thì mạng lại tạo sai số lớn. Mạng có nhớ được các mẫu huấn luyện, nhưng mạng không học được
tính tổng quát hóa.
Các đa thức khác nhau có đồ thị khác nhau, với bậc lớn hơn (và do đó có nhiều số hạng hơn) sẽ có
đồ thị phức tạp hơn. Với một tập dữ liệu cho trước, chúng ta muốn tìm ra đa thức biểu diễn tập dữ liệu
này. Dữ liệu có thể có nhiễu, vì thế chúng ta không cần thiết tìm ra phương trình đúng nhất cho tất cả các
điểm.
Mạng có càng nhiều trọng số thì hàm càng phức tạp và do đó sẽ rơi vào tình trạng khớp quá mức.
Mạng có ít trọng số hơn sẽ không đủ khả năng để mô phỏng hàm cơ sở. Ví dụ như mạng không có các
19
lớp ẩn chỉ mô phỏng hàm truyền đơn giản. Hình dưới cho thấy đáp ứng của mạng được huấn luyện quá
nhiều. Rõ ràng mạng này quá khớp với dữ liệu và không tổng quát hóa tốt.
Hình 1.13: Mạng bị quá khớp với mẫu huấn luyện
Vậy chúng ta sẽ chọn lựa độ phức tạp của mạng đúng như thế nào? Mạng lớn hơn sẽ hầu như
luôn luôn có được sai số nhỏ hơn, nhưng điều này có thể là khớp quá mức hơn là một mô hình tốt.
1.7.2. Cải thiện tính tổng quát hóa (ngưng huấn luyện khi mạng quá khớp).
Vấn đề quá khớp xảy ra vì mạng có năng lực quá lớn. Có 3 cách để hạn chế bớt
năng lực của mạng:
– Hạn chế số nút ẩn
– Ngăn không cho mạng sử dụng các trọng số lớn
– Giới hạn số bước luyện
Khi mạng được luyện, nó chuyển các hàm ánh xạ từ đơn giản đến tương đối phức
tạp. Nó sẽ đạt được một cấu hình tổng quát hóa tốt nhất tại một điểm nào đó. Sau điểm đó
mạng sẽ học để mô hình hóa nhiễu, những gì mạng học được sẽ trở thành quá khớp. Nếu
ngữ, cơ sở dữ liệu, phương pháp ra quyết định... Hệ thống nhận dạng phải có khả năng
thể hiện được quá trình nhận thức của con người qua các mức:
o Mức một : mức cảm nhận: cảm nhận được sự tồn tại các đối tượng quan sát, hay
đối tượng mà hệ thống cần nhận dạng. Mức này cũng đưa ra quá trình thu nhận số
liệu qua các bộ cảm biến trong hệ thống nhận dạng, ví dụ trong hệ thống nhận
dạng tiếng nói: đối tượng ở đây là hình biển số xe máy được chụp từ camera.
o Mức hai: mức nhận thức: ở đây biểu diễn quá trình học, mô hình hoá đối tượng để
tiến tách các đối tượng cần nhận dạng thành từng nhóm với các đặc trưng khác
nhau.
o Mức ba: mức nhận biết: từ đối tượng đã được phân thành từng nhóm nhỏ, mạng có
thể nhận biết đây là đối tượng nào ở đầu ra.
1.9. Kết luận chương
Trong chương này ta đã tìm hiểu được mô hình, cấu trúc cũng như cách huấn luyện mạng Neural
và các ứng dụng của mạng Neural vào lĩnh vực nhận dạng, vốn là một trong những ví dụ điển hình của
mạng Neural.
22
Chương Hai
CƠ SỞ LÝ THUYẾT
2.1. Giới thiệu chương
Chương hai sẽ tìm hiểu phương pháp giữ xe thông minh dùng thẻ FRID, đề ra hướng giải quyết
bài toán nhận dạng. Đồng thời trình bày lý thuyết cơ bản của ảnh số, các thuật toán, phép biến đổi, bộ
lọc dùng để nâng cao chất lượng ảnh.
xe, mất vé xe,..) thì không có thông tin để kiểm tra, đối chiếu và không có khả năng thống
kê, tính toán lượng xe vào và ra.
Tóm lại nhược điểm của các phương pháp thue công trên trên là tốc độ và hiệu quả thấp, khả
năng quản lý, kiểm soát rất kém, tính an toàn không cao.
Xuất phát từ những nhược điểm trên thì có một phương pháp làm tăng hiệu quả trong việc quản
lý giữ xe, đó là sẽ đặt camera ở vị trí cổng giữ xe, chụp ảnh biển số. Sau khi phân tích và xử lý ảnh
chương trình máy tính sẽ lưu giữ lại biển số xe cho khách thông qua một thẻ FRID và trong bộ nhớ của
máy tính biển số, ngày giờ gửi xe.
Nhận dạng biển số đầu vào
Lưu thông tin vào máy và thẻ
Giữ xe
Nhận dạng biển số đầu vào
Kiểm tra thông tin ở máy và thẻ
Kết thúc
Hình 2.1: Sơ đồ bãi giữ xe tự động
Trong đó, khâu nhận dạng biển số đầu vào và đầu ra được thực hiện bởi các bước sau:
Chụp hình biển
số xe
Tách biển số xe
Tách ký tự trên
biển số
phương pháp tách ký tự bằng phân tích biểu đồ mức xám (histogram) để tách ký tự
Các phương pháp nhận dạng ký tự:
Hiện nay có nhiều hướng tiếp cận để giải quyết bài toán này như: hình thái học, đo khoảng cách
hình học không gian, phương pháp phân loại bằng máy học như: mạng neural, mô hình Markov ẩn.
Trong đồ án này em sử dụng ứng dụng của mạng neural để nhận dạng ký tự.
25