Tải bản đầy đủ (.docx) (59 trang)

Nghiên cứu ứng dụng mạng neural nhân tạo trong nhận dạng biển số xe mô tô hai bánh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.49 MB, 59 trang )

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.


2.3.1. Các loại ảnh cơ bản trong xử lý ảnh.
2.3.2. Các khái niệm cơ bản trong xử lý ảnh
2.3.2.1. Phần tử ảnh (pixel)
2.3.2.2. Mức xám (gray level)
2.3.2.3. Ảnh số
2.3.2.4. Ảnh nhị phân (binary image)
2.3.2.5. Ảnh xám (gray image)
2.3.2.6. Ảnh màu (color image)
2.4 Kỹ thuật chuyển ảnh màu sang mức xám.
2.5. Lược đồ mức xám.
2.6. Các kỹ thuật xử lý ảnh
2.6.1. Xử lý ảnh bằng thuật toán K-means……………………………………………28
2.6.2. Lọc trung vị (Median)
2.6.3. Lọc BlobsFiltering
2.7. Phương pháp phân tích phổ tần số (Fast Fourier Transform):
2.8. Kết luận chương

2


Chương Ba: Xây dựng hệ thống
3.1. Giới thiệu chương
3.2. Mô hình hệ thống nhận dạng biển số xe mô tô hai bánh
3.3. Tách biển số, xử lý ảnh biển số và tách ký tự chữ số
3.3.1. Tách biển số
3.3.1.1. Lọc bỏ ngoại cảnh
3.3.1.2. Tách biển số khỏi nền
3.3.2. Tiền xử lý ảnh
3.3.3. Tách ký tự trên biển số.
3.4 Nhận dạng ký tự bằng mạng Neural nhân tạo.

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

biển số xe đã và đang được áp dụng rộng rãi trong thực tiễn, ứng dụng trong camera an ninh, hay trong
bãi giữ xe thông minh.
Vì vậy, em chọn đề tài “Nghiên cứu ứng dụng mạng Neural trong nhận dạng biển số xe mô tô hai
bánh” để làm đề tài đồ án tốt nghiệp bằng cách nghiên cứu và thực hiện mô phỏng trên Visual Studio.
Để thực hiện được nội dung này thì đồ án của em được cấu thành bởi các chương sau:
Chương 1: Mạng Neural nhân tạo.
Chương 2: Cơ sở lý thuyết.
Chương 3: Xây dựng hệ thống.
Chương 4: Mô phỏng đánh giá.
Chương 5: Kết luận và hướng phát triển của đề tài.

5


Chương Một

MẠNG NEURAL NHÂN TẠO
1.1. Mở đầu chương
Ở chương này ta sẽ tìm hiểu về lịch sử ra đời, thành phần cấu trúc cũng như cách huấn luyện cho
mạng Neural nhân tạo và ứng dụng của nó trong thực tiễn.
1.2. Sơ lược về neural sinh học

Qua quá trình nghiên cứu về bộ não, người ta thấy rằng: bộ não con người bao
gồm khoảng 1011 Neural tham gia vào khoảng 10 15 kết nối trên các đường truyền. Mỗi
đường truyền này dài khoảng hơn một mét. Các Neural có nhiều đặc điểm chung với các
tế bào khác trong cơ thể, ngoài ra chúng còn có những khả năng mà các tế bào khác
không có được, đó là khả năng nhận, xử lý và truyền các tín hiệu điện hóa trên các đường
mòn Neural, các con đường này tạo nên hệ thống giao tiếp của bộ não. Sau đây là những
thành phần chính trong cấu trúc của một Neural trong bộ não con người


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.

1.3. Mạng Neural nhân tạo
Mạng Neural nhân tạo (Artificial Neural Network) là một mô phỏng xử lý thông tin, được nghiên
cứu từ hệ thống thần kinh của sinh vật, giống như bộ não bao gồm số lượng lớn các Neural được gắn kết
với nhau để xử lý thông tin. Mạng Neural nhân tạo giống như con người, được học bởi kinh nghiệm
(thông qua huấn luyện), lưu những kinh nghiệm hiểu biết và sử dụng trong việc dự đoán các dữ liệu
chưa biết.
7


Sự kiện đầu tiên đánh dấu sự ra đời của mạng Neural nhân tạo diễn ra vào năm 1943 khi nhà
thần kinh học Warren McCulloch và nhà toán học Walter Pitts viết bài báo mô tả cách thức các Neural
hoạt động. Họ cũng đã tiến hành xây dựng một mạng Neural đơn giản bằng các mạch điện. Các Neural
của họ được xem như là các thiết bị nhị phân với ngưỡng cố định. Kết quả của các mô hình này là các
hàm logic đơn giản chẳng hạn như “ a OR b” hay “a AND b”.
Sau đó, một nhóm các nhà nghiên cứu đã kết hợp những kiến thức về sinh học và tâm thần học
để tạo ra một mạng neural nhân tạo hoàn chỉnh đầu tiên. Ban đầu được chế tạo dưới dạng một mạch
điện tử, sau đó các mạng neural được chuyển thành các chương trình mô phỏng trên máy tính có độ linh
hoạt cao hơn.
Trong thời gian gần đây mạng Neural được phát triển mạnh mẽ với các nghiên cứu về các mạng
Neural nhiều lớp phức tạp. Mặt khác do khả năng phần cứng của máy tính tăng lên rất nhiều cũng góp
phần vào sự phát triển của lĩnh vực nghiên cứu này.

8


Mô hình tổng quát của mạng Neural có thể được hiểu đơn giản như hình sau:

Ngõ ra mong muốn

Ngõ ra


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:

-

Xử lý ngôn ngữ

-

Nhận dạng mẫu

-

Xử lý tín hiệu

-

Lọc và phân loại dữ liệu
Mạng Neural nhân tạo được tạo thành từ cách mô phỏng lại hệ thống thần kinh con người, tức

là mô phỏng lại từng neural thần kinh rồi gắn kết nhiều neural lại với nhau tạo thành mạng Neural nhân
tạo.

1.3.1. Mô hình một Neural nhân tạo
Một Neural là một đơn vị xử lý thông tin và là thành phần cơ bản của một mạng Neural . Cấu
trúc của một Neural được mô tả trên hình dưới.

w



p


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


Hình 1.4: Neural có nhiều ngõ vào
Các hàm truyền phải có các đặc tính sau:
-

Hàm bị chặn trên và chặn dưới

-

Hàm có tính đơn điệu

-

Hàm phải có tính liên tục.

Thông thường hàm truyền là một trong bốn hàm sau

12

f


Hình 1.5: Các hàm truyền cơ bản.
1.3.2. Mạng Neural một lớp
Hình 1.6 mô tả mạng Neural một lớp với :

• R là số phần tử của vector đầu vào
• S là số Neural có trong lớp
• a = (W.P + b) là ngõ ra của mạng

Hình 1.6: Mô hình mạng Neural một lớp


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


1.4.2. Mạng hồi quy
Giống mạng có cấu trúc tiến nhưng nó còn chứa các kết nối ngược trở về các Neural trước đó.
Mạng có thể chạy không ổn định và dao động rất phức tạp. có hai loại là hồi quy hoàn toàn và hồi quy
không hoàn toàn. Hồi quy không hoàn toàn là mạng có cấu trúc tiến, nhưng có một số phần tử có cấu
trúc hồi quy.

Hình 1.10: Mạng Neural hồi quy không hoàn toàn

15


Hình 1.11: Mạng hồi quy hoàn toàn
1.5. Huấn luyện mạng neural.
1.5.1. Phương pháp huấn luyện
Mạng neural nhân tạo phỏng theo việc xử lý thông tin của bộ não người, do vậy đặc trưng cơ
bản của mạng là có khả năng học, khả năng tái tạo các hình ảnh và dữ liệu khi đã học. Trong trạng thái
học thông tin được lan truyền theo hai chiều nhiều lần để huấn luyện các trọng số. Có 3 kiểu huấn luyện
chính, đó là huấn luyện có giám sát, huấn luyện không giám sát và huấn luyện tăng cường.
1.5.2. Huấn luyện có giám sát
Một thành phần không thể thiếu của phương pháp này là sự có mặt của một “người thầy” (ở
bên ngoài hệ thống). Người thầy này có kiến thức về môi trường thể hiện qua một tập hợp các cặp đầu
vào - đầu ra đã được biết trước. Hệ thống học (ở đây là mạng neural) sẽ phải tìm cách thay đổi các tham
số bên trong của mình (các trọng số và các ngưỡng) để tạo nên một ánh xạ có khả năng ánh xạ các đầu
vào thành các đầu ra mong muốn. Sự thay đổi này được tiến hành nhờ việc so sánh giữa đầu ra thực sự
và đầu ra mong muốn.
1.5.3. Huấn luyện không giám sát
Trong huấn luyện không giám sát, ta phải tìm ra một mô hình mà mô hình đó phù hợp với các
quan sát của mạng. Nó khác biệt với huấn luyện giám sát ở chỗ là đầu ra đúng tương ứng cho mỗi đầu
vào là không biết trước. Mạng sẽ tự chọn đầu ra tương ứng với mỗi mẫu đầu vào. Đầu vào của nó là một

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

mạng được lan truyền ngược trở lại ở đầu vào cho đúng các mẫu. cơ sở cho việc cập nhật các trọng số là
phương pháp gradient.
Với các cặp vào ra (x (f); d(k) – d(k) là đầu ra mong muốn), thuật toán lan truyền ngược thực hiện các
bước như sau:
Đầu tiên, mẫu x(k) được lan truyền từ lớp đầu vào qua các lớp ẩn đi đến lớp đầu ra có kết quả là y (k).
Sau đó, sai số giữa y (k) và d(k) được lan truyền ngược trở lại từ lớp đầu ra tới lớp đầu vào để cập thật
trọng số. Hình 1.12 biểu diễn mạng Neural có m phần tử Neural ở lớp đầu vào, n phần tử Neural ở lớp
đầu ra. Đường nét liền diễn tả lan truyền thẳng của tín hiệu, đường nét đứt thể hiện lan truyền ngược
của các sai số.

18


1.6. Các bước chuẩn bị thiết lập mạng
Trước hết ta phải xác định được tập dữ liệu – là tập bao gồm một số các trường hợp, mỗi trường
hợp chứa những giá trị của ngõ vào và ngõ ra khác nhau. Sau đó xác định những biến nào sẽ sử dụng,
bao nhiêu trường hợp cần thu thập.
Việc lựa chọn những biến sẽ được sử dụng thường do trực giác quyết định và phụ thuộc vào
công việc chuyên môn cũng như lĩnh vực của nó. Trong Neural Networks, ta có thể chọn và loại bỏ nhiều
biến hoặc xác định bằng thực nghiệm những biến hữu ích. Bước đầu, ta nên tính đến bất kì biến nào mà
ta nghĩ có ảnh hưởng đến quá trình thiết kế.
Thực hiện lặp đi lặp lại số thí nghiệm của mỗi cấu hình, giữ lại mạng tốt nhất (thường dựa trên sai
số xác minh). Thí nghiệm nhiều lần trên mỗi cấu hình mạng để tránh rơi vào sai số cục bộ.
Trong mỗi lần thí nghiệm, nếu xảy ra việc huấn luyện chưa đủ (mạng không đạt được mức hiệu
suất chấp nhận) thì thử tăng số Neural trong lớp ẩn. Nếu không hiệu quả, thì thêm một lớp ẩn.
Nếu xảy ra huấn luyện quá mức (sai số xác minh bắt đầu tăng lên) thử bỏ bớt một vài Neural ẩn
(và có thể bỏ lớp ẩn).
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
Một trong những vấn đề thường xảy ra trong suốt quá trình huấn luyện mạng là quá khớp. Q uá

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

ta phát hiện ra thời điểm mạng đạt đến trạng thái tốt nhất này, ta có thể ngừng tiến trình
luyện trước khi hiện tượng quá khớp xảy ra.
20


Ta biết rằng, chỉ có thể để đánh giá mức độ tổng quát hóa của mạng bằng cách kiểm tra mạng
trên các mẫu nó không được học. Ta thực hiện như sau: chia mẫu thành tập mẫu huấn luyện và tập mẫu
kiểm tra. Luyện mạng với tập mẫu huấn luyện nhưng định kỳ dừng lại và đánh giá sai số trên tập mẫu
kiểm tra. Khi sai số trên tập mẫu kiểm tra tăng lên thì quá khớp đã bắt đầu và ta dừng tiến trình luyện.
Chú ý rằng, nếu sai số kiểm tra không hề tăng lên, tức là mạng không có đủ số nút ẩn để quá
khớp. Khi đó mạng sẽ không có đủ số nút cần thiết để thực hiện tốt nhất. Do vậy nếu hiện tượng quá
khớp không hề xảy ra thì ta cần bắt đầu lại nhưng sử dụng nhiều nút ẩn hơn.
Ngoài ra, người ta còn áp dụng phương pháp ngưng luyện khi mạng bắt đầu quá khớp. Trong kỹ
thuật này, dữ liệu chia thành hai tập con. Tập thứ nhất là tập huấn luyện, dùng để cập nhật trọng số và
ngưỡng của mạng. Tập thứ hai là tập kiểm tra. Sai số trên tập kiểm tra này được giám sát trong suốt quá
trình huấn luyện. Sai số trên tập kiểm tra thường giảm trong giai đoạn đầu huấn luyện. Tuy nhiên khi
mạng bắt đầu quá khớp dữ liệu, sai số trên tập kiểm tra thường bắt đầu tăng. Khi sai số kiểm tra tăng
sau một số vòng lặp, việc huấn luyện sẽ ngừng, trọng số và ngưỡng ở cực tiểu sai số kiểm tra sẽ được
trả lại.

Hình 1.14: Mạng được ngưng huấn luyện đúng lúc
1.8. Ứng dụng mạng Neural trong lĩnh vự nhận dạng

21


Ứng dụng mạng Neural trong lĩnh vực nhận dạng là xây dựng một hệ thống tin
học có khả năng: cảm nhận-nhận thức-nhận biết các đối tượng vật lý gần giống khả năng
của con người. Nhận dạng có gắn chặt với 3 khả năng trên là một lĩnh vực hết sức rộng
có liên quan đến việc xử lý tín hiệu trong không gian nhiều chiều, mô hình, đồ thị, ngôn

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.


2.2. Tìm hiểu hệ thống nhận dạng biển số xe mô tô hai bánh
Đa số các bãi giữ xe mô tô hai bánh ở nước ta đều quản lí bằng cách thức thủ công đơn giản
nhất đó là trong bãi giữ xe sẽ có ít nhất là hai người:

 Đầu vào: Một người đọc biển số, ghi biển số xe vào vé giữ xe, bấm vào xe
một phần vé xe, phần còn lại sẽ đưa cho chủ xe giữ hoặc chủ xe giữ tấm vé
xe có ghi biển số của mình.
 Đầu ra: Một người kiểm tra số ghi trên vé xe và biển số xe.
Ngoài ra, còn có cách dùng phấn ghi lên xe một số trùng với số trên vé xe, rồi kiểm tra tương tự,
nhưng cách này lộ rõ những yếu kém như phấn viết lên xe rất dễ bị xóa rồi ghi số khác, mất thẩm mỹ,….
Ưu điểm của những phương pháp thủ công là đơn giản không cần các thiết bị phức tạp. Tuy
nhiên những phương pháp này tồn tại rất nhiều nhược điểm.

• Thứ nhất là lãng phí nguồn nhân lực, do phương pháp này phải cần rất nhiều người để có
thể quản lý tốt toàn bộ bãi giữ xe.
• Thứ hai là độ chính xác không được đảm bảo, do việc đọc, ghi, kiểm tra biển số xe đều
do con người thực hiện nên không thể tránh khỏi sai sót.
• Thứ ba là độ an toàn thấp, do dùng quá nhiều người nên việc quản lí con người khá phức
tạp, hay do việc giám sát cũng là con người nên khó có thể bao quát tốt toàn bộ bãi xe.
• Thứ tư, đa số vé xe khá đơn giản và dễ nhầm lẫn, nên kẻ gian có thể tráo vé, sửa đổi vé
hoặc làm vé giả để qua mặt các nhân viên giữ xe.

23


• Thứ năm là tốc độ công việc không cao, do thực hiện qua nhiều khâu như đọc biển số,
ghi vé, bấm vé, kiểm tra vé.
• Và cuối cùng nhược điểm của phương pháp trên là không có một bằng chứng nào để lưu
giữ những thông tin khi xe ra vào bãi, thời gian ra khỏi bãi. Do đó khi sự cố xảy ra (mất

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ố


Hình 2.2: Phương pháp nhận dạng biển số
24

Nhận dạng ký tự
trên biển số


Với đề tài nhận dạng biển số xe đã nêu, em xin đi vào nghiên cứu ở khâu nhận dạng biển số đầu
vào và đầu ra. Bài toán nhận dạng lúc này được chia ra thành ba bài toán nhỏ là tách biển số xe, tách các
ký tự trên xe và cuối cùng là nhận dạng ký tự.
Như vậy hệ thống nhận dạng sẽ bao gồm: chương trình trích biển số, chương trình tách ký tự
trong ảnh chứa biển số, chương trình nhận dạng từng ký tự trong biển số.
Ta có các phương pháp nhận dạng như sau:

 Các phương pháp trích biển số xe trong ảnh:
Đây là bước không thể thiếu trong bài toán nhận dạng biển số xe, do đó có rất nhiều hướng giải
quyết bài toán này. Có một số Phương pháp chính như: dựa vào đặc trưng cạnh biên trích được ta áp
dụng các thuật toán xác định đường thẳng như phép biến đổi Hough để phát hiện các cặp đoạn thẳng
gần song song ghép thành một ảnh chứa biển số, nhưng do biển số xe mô tô hiện nay ở nước ta không
có đường bao (xe mới) hay do thời gian đường bao sẽ bị mờ (xe cũ) nên ta khó có thể dùng phương
pháp này. Hay tiếp cận theo hướng hình thái học, trong đó chú trọng vào các đặc trưng màu sắc, độ
sáng, sự đối xứng, các góc…. Trong đồ án này em sử dụng một hướng tiếp cận phân tích phổ tần số trên
ảnh để trích vùng chứa biển số.

 Các phương pháp tách ký tự trong ảnh biển số:
Sau khi trích được vùng chứa biển số, ta thực hiện tách các ký tự từ biển số thành từng ký tự
đơn. Dạng chung của biển số xe mô tô hai bánh hiện nay là các ký tự sẽ có cùng kích cỡ, cùng hướng và
xuất hiện trên hai dòng. Đây là đặc trưng rất quan trọng giúp ta đơn giản hóa bài toán này. Hiện nay có
một số thuật toán tách ký tự trên biển số khá hiệu quả như:dung phương pháp hình thái học, lược đồ
chiếu theo đường ngang và đường dọc, dựa vào đó để tách các kí tự. Trong đồ án này, em đã chọn

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


×