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

Xây dựng ứng dụng nhận diện biển số đăng ký xe

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 (2 MB, 79 trang )

1

LỜI CẢM ƠN
Sau một thời gian tìm hiểu đề tài “Xây dựng ứng dụng nhận diện biển
số đăng ký xe” em đã hoàn thành tiến độ dự kiến. Để đạt được kết quả này, em
đã nỗ lực thực hiện đồng thời cũng nhận được rất nhiều sự giúp đỡ, quan tâm,
ủng hộ của các thầy cô, bạn bè và gia đình.
Em xin chân thành gửi lời cảm ơn giáo viên hướng dẫn: Thầy giáo, Ths.
Nguyễn Đình Dũng - Bộ môn Mạng và Truyền Thông – Khoa công nghệ thông
tin – Đại học công nghệ thông tin và truyền thông – Đại học Thái Nguyên đã tận
tình giúp đỡ em hoàn thành đồ án tốt nghiệp này.
Em xin chân thành cảm ơn các thầy, cô giáo thuộc bộ môn Mạng và
Truyền Thông đã trang bị cho em những kiến thức chuyên ngành rất hữu ích để
em hoàn thành đề tài và phục vụ cho công việc của em sau này.
Do thời gian có hạn nên đề tài của em không thể tránh khỏi những thiếu
sót, em rất mong được sự đóng góp ý kiến từ phía thầy cô và các bạn. Em xin
chân thành cảm ơn!
Thái Nguyên, tháng 06 năm 2012
Sinh viên
Lê Văn Thành

1


2

LỜI CAM ĐOAN
Đồ án này đã được hoàn thành sau một thời gian nghiên cứu, tìm hiểu các
nguồn tài liệu, sách báo chuyên ngành và thông tin trên mạng mà theo em là hoàn
toàn tin cậy. Nội dung đồ án được em tổng hợp lại từ các tài liệu tham khảo,
không sao chép toàn bộ các đồ án và các công trình nghiên cứu của các tác giả


khác. Em xin chịu trách nhiệm về nội dung trong đồ án mình.
Thái Nguyên, tháng 6 năm 2012
Sinh Viên
Lê Văn Thành

2


3

MỤC LỤC

3


4

MỤC HÌNH ẢNH

4


5

DANH MỤC TỪ VIẾT TẮT
FFT

Fast Fourier Transform

LPR


License Plate Recognition

NN

Neural Network

SVM

Support Vector Machine

GIF

Graphics Interchanger Format

JPGE

Joint Photographic Expert Group

RLE

Run Length Encoded

ORC

Optical character recognition

MIT

Massachurehs Insritute of Technology


ANN

Artificial Neural Network

BPNN

Back Propagation Neural Network

5


6

LỜI NÓI ĐẦU
Ngày nay, công nghệ thông tin là một trong những ngành khoa học mũi
nhọn trên toàn thế giới. Những ứng dụng của công nghệ thông tin cũng rộng
khắp trong tất cả các lĩnh vực khoa học như: giáo dục, y tế, kinh tế, văn hóa,…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. Nhận dạng và xử lý ảnh cũng là một trong
những chuyên ngành của tin học có tầm ứng dụng to lớn. Có thể kể ra hàng loạt
các lĩnh vực đã áp dụng kỹ thuật nhận dạng ảnh 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,… Bài toán nhận dạng biển số
xe là một trong những bài toán hay nhưng cũng không kém phần hóc búa trong
lĩnh vực nhận dạng. Bài toán mang tầm quan trọng và tính thiết thực cao trong
cuộc sống, như giúp giải quyết vấn đề trông giữ xe ở các bãi gửi xe trở nên dễ
dàng, an toàn và nhanh chóng hơn bao giờ hết.
Nắm được tầm quan trọng đó, ở đề tài này em sẽ trình bày phương pháp
nhận dạng xe mô tô hai bánh thông qua dữ liệu đầu vào là ảnh chụp phần đuôi

xe, sau đó qua các quá trình xử lý ảnh, tách ký tự, nhận dạng ký tự ta sẽ nhận
được kết quả của biển số xe. Đây là đề tài được nhiều cơ quan trong nước quan
tâm khi xe mô tô đang là phương tiện đi lại chủ yếu của người dân.
Dưới đây là bản báo cáo chi tiết về quá trình xây dựng và hoàn thiện ứng
dụng. Nội dung báo cáo bao gồm các chương chính sau:
Chương 1: Cơ sở lý thuyết Nêu tổng quan về cơ sở lý thuyết được vận
dụng trong việc xây dựng ứng dụng bao gồm tổng quan về lý thuyết xử lý ảnh, lý
thuyết về nhận dạng ảnh dựa trên mạng nơron nhân tạo.
Chương 2: Khảo sát và phân tích bài toán Nêu quá trình phân tích bài
toán, các thuật toán được sử dụng trong quá trình xây dựng chương trình
Chương 3: Xây dựng ứng dụng Nêu quá trình xây dựng hoàn thiện và
kiểm thử chương trình

6


7
Do kiến thức còn nhiều thiếu sót, nên kết quả còn hạn chế, rất mong nhận
được sự đóng góp, đánh giá nhận xét của thầy cô để em hoàn thiện hơn kiến thức
cũng như kết quả đề tài này.
Em xin chân thành cảm ơn!
Thái Nguyên, tháng 06 năm 2012
Sinh viên thực hiện
Lê Văn Thành

7


8


CHƯƠNG I: CƠ SỞ LÝ THUYẾT
1.1. Giới thiệu tổng quan
1.1.1. Đặt vấn đề
Thực tế hiện nay, các bãi giữ xe mô tô 2 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à 3 người:
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,…
Ưu điểm của 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 phương pháp này cũng 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 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. Và đa số vé xe khá đơn giản và dễ nhầm lẫn , việc
đối chiếu lúc xe ra cũng do con người (dễ bị ảnh hưởng các yếu tố chủ quan ,
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…Thứ tư là tốc độ công việc không cao, do thực hiện việc xe ra
vào qua nhiều khâu như đọc biển số, ghi vé, bấm 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. Không có khả năng thống
kê, tính toán lượng xe ra, vào …
Tóm lại nhược điểm của phương pháp 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. Rất dễ xảy ra mất mát tài sản.
Xuất phát từ những nhược điểm trên, một phương pháp đã được sử dụng
làm tăng hiệu quả trong việc quản lý giữ xe, đó là sẽ đặt camera ở vị trí cổng giữ
8



9
xe, khi có xe vào camera sẽ 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 và sẽ in phần vé cho người gửi
xe. Phương pháp này khắc phục những nhược điểm của phương pháp thủ công,
và giai đoạn xử lý, nhận dạng ký tự trên biển số sẽ là nội dung của đề tài nhận
dạng trực tuyến xe mô tô hai bánh mà em sẽ trình bày.
1.1.2. Phát biểu bài toán
Trong đề tài này em sẽ giải quyết vấn đề bằng cách phân rã thành ba bài
toán liên quan lẫn nhau, trong đó kết quả bài toán trước sẽ là đầu vào của bài
toán sau:
 Trích biển số trong ảnh đơn:
• Đầu vào: ảnh chụp có nền phức tạp.
• Đầu ra: ảnh biển số được trích từ ảnh trên.
 Tách các ký tự trong ảnh biển số:
• Đầu vào: ảnh biển số, là kết quả của bài toán trích biển số.
• Đầu ra: ảnh các ký tự rời rạc trên biển số.
 Nhận dạng ký tự đơn trên biển số:
• Đầu vào: ảnh các ký tự đơn trên biển số, là kết quả của bài
toán tách các ảnh ký tự.
• Đầu ra: chuỗi kết quả ghi nhận lại giá trị từng ký tự trên biển
số xe dưới dạng text và hiển thị kết quả.
Mục tiêu
Đây là bài toán về nhận dạng và xử lý ảnh, trong đồ án này, em xin tập
trung nghiên cứu giải thuật trích biển số xe thông qua ảnh chụp, tách ký tự trên
biển số và nhận dạng kí tự trên biển số xe. Ngôn ngữ được sử dụng để xây dựng
chương trình là CSharp.
1.1.3. Phạm vi giải quyết của đề tài.
Do điều kiện về khả năng cũng như thời gian còn hạn chế nên đề tài chỉ

tập trung nghiên cứu và nhận dạng ảnh chụp xe mô tô 2 bánh.

9


10
Đề tài tập trung nghiên cứu các thuật toán nhằm giải quyết bài toán nhận
dạng trực tuyến xe mô tô hai bánh trên ảnh đơn được chụp từ thiết bị camera
trong đó phạm vi vấn đề như sau:
• Ảnh có nền phức tạp, với các điều kiện sáng tối.
• Các loại biển số xe mô tô được qui định theo luật biển số hiện nay của
công an giao thông về màu sắc, phông chữ, chất liệu,…
• Đối với hệ thống cài đặt cụ thể, các điều kiện về vị trí, khoảng cách đặt
camera chụp cũng sẽ được dùng làm tham số để tăng hiệu quả nhận dạng.
1.1.4. Tìm hiểu hệ thống nhận dạng biển số xe
Hệ thống nhận dạng biển số xe mô tô bao gồm các bước phát hiện biển số
xe, chụp lại ảnh, trích ảnh chứa vùng văn bản và dùng thuật toán thích hợp nhận
dạng các ký tự trong biển số thành các ký tự dạng TEXT để máy tính có thể lưu
trữ và xử lý được.
Như vậy hệ thống nhận dạng sẽ bao gồm: bộ phận cảm biến phát hiện
chuyển động, camera trực tuyến dùng để chụp ảnh xe, chương trình trích biển số,
chương trình tách ký tự trong hình biển số, chương trình nhận dạng từng ký tự
trong biển số. Ở mức độ của đề tài, em chỉ tập trung xây dựng phần quan trọng
nhất trong toàn bộ hệ thống đó chính là xây dựng chương trình nhận dạng biển số
xe dựa vào dữ liệu đầu vào là các ảnh chụp phần đuôi xe và dữ liệu đầu ra cần
đạt được sẽ là các ký tự chữ và số ở dạng TEXT.
 Các phương pháp trích biển số xe trong một ả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ụ thể, có một số hướng tiếp cận 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 ứng viên biển số, nhưng do biển số xe mô tô hiện nay ở
nước ta không có đường bao hay do thời gian đường bao sẽ bị mờ nên ta không
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,…; hoặc tiếp cận
10


11
theo hướng khung nền. Trong đề tài 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 (Fast Fourier Transform).

 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ừ ảnh
thành từng ảnh đơ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ư: áp dụng phép chiếu đếm số điểm
ảnh theo đường ngang và đường dọc, dựa vào đó xác định các điểm tách hoặc áp
dụng thuật toán xác định các thành phần liên thông của từng ký tự trên ảnh đã
được phân ngưỡng nhị phân. Trong đề tài 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).
 Các phương pháp nhận dạng ký tự:
Có nhiều phương pháp nhận dạng ký tự đơn đã được nghiên cứu trong
thời gian gần đây, đặc biệt là trên các ký tự chữ in. Vấn đề quan trọng trong
nhận dạng ký tự đơn in là việc định loại font chữ , kiểu chữ; chất lượng ảnh nhận
được có tốt hay không; và một vấn đề quan trọng nữa là khả năng học tăng
cường để tự chỉnh lỗi trong quá trình nhận dạng cũng khá phức tạp.
Hiện nay có nhiều hướng tiếp cận để giải quyết bài toán này như: phương
pháp đ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 Nơron, SVM, mô hình Markov ẩn,…. Trong đề tài này, em sử dụng
mạng Nơron để xây dựng module nhận dạng ký tự. Phương pháp nhận dạng ký
tự bằng mạng Nơron là phương pháp được dùng khá phổ biến trong lĩnh vực
nhận dạng ký tự và được đánh giá rất cao, có khả năng nhận dạng khá chính xác
đối với cả những hình ảnh ký tự đầu vào kém chất lượng.

11


12

1.2. Xử lý ảnh
1.2.1. Các loại ảnh cơ bản
IMG: là ảnh đen trắng. Phần đầu của ảnh là 16 bytes chứa các thông tin
cần thiết. Toàn bộ ảnh chỉ có những điểm sáng và tối tương ứng giá trị 1 hoặc 0.
PCX: sử dụng phương pháp mã loạt dài RLE ( Run – Length – Encoded)
để nén dữ liệu ảnh.
GIF: ( Graphics Interchanger Format): ảnh dạng nén, lưu trữ tốt ảnh ở
dạng đen trắng và ảnh 16 màu, nhưng đối với ảnh 256 màu thì khả năng nén
kém.
JPGE: (Joint Photographic Expert Group): là tên của một tổ chức nghiên
cứu các chuẩn nén cho ảnh tone liên tục. Khắc phục nhược điểm của ảnh gif.
1.2.2. Kỹ thuật chuyển ảnh sang ảnh mức xám
Sử dụng camera thu nhận ảnh thì ảnh sẽ là 24 bit màu, do đó dung lượng
lưu trữ rất lớn và ảnh hưởng đến tốc xử lý ảnh. Vì vậy khi thu nhận ảnh, ta sẽ
chuyển ảnh về ảnh mức xám ( Gray Scale) 8 bits theo công thức:
X=0.2125*R + 0.71554*G + 0.0721*B
Quá trình chuyển đổi này có thể gây mất thông tin nhưng có thể chấp nhận
được.


12


13

(a)

(b)

Hình 1.1. Ảnh nhận từ camera (a) và ảnh đã chuyển sang ảnh mức xám (b)

1.2.3. Lược đồ mức xám
Lược đồ mức xám (Histogram) là một hàm cung cấp tần suất xuất hiện
của mỗi mức xám (gray-level) trong ảnh. Biễu diễn toán học của histogram của
một ảnh số có L=256 mức xám là một hàm rời rạc :
(2.1)
trong đó :
là giá trị xám thứ k (k = 0, 1,..., L-1)
là số pixel có mức xám đó và
là tổng số pixel của ảnh.
Miền giá trị của .
Một cách biễu diễn toán học khác của histogram của một ảnh là số lần
xuất hiện của mỗi mức xám :
(2.2)

13


14
Khi lược đồ xám được biễu diễn trong một hệ tọa độ vuông góc x, y (trục

hoành x biễu diễn số mức xám từ 0 đến L -1, trục tung y biễu diễn số điểm ảnh
có cùng mức xám hay tỷ lệ số điểm ảnh có cùng mức xám trên tổng số điểm
ảnh), thì hình dạng của histogram của ảnh sẽ mang đến cho chúng ta thông tin về
tính động của ảnh (ảnh rất sáng hay ảnh rất đậm) dùng làm cơ sở cho việc tăng
cường độ tương phản.
Ảnh

Ảnh
sáng

Ảnh có độ tương

Ảnh có độ

phản cao

tương phản thấp

Hình 1.2. Lược đồ mức xám của các loại ảnh.
1.2.4. Xử lý ảnh bằng thuật toán K-means
Đây là thuật toán dùng để phân ngưỡng động trong xử lý ảnh thông qua
việc phân nhóm. Phân nhóm là quá trình phân chia hoặc nhóm lại một tập hợp
các mẫu cho sẵn thành những nhóm tách rời. Các mẫu trong cùng một nhóm sẽ
giống hoặc khác nhau (hoặc gần nhau). Sự phân nhóm được dùng rộng rãi trong
các lĩnh vực ứng dụng bao gồm mạng Nơron, trí tuệ nhân tạo và thống kê.
Nhiều thuật toán phân nhóm đã được đưa ra như: ISODATA, CLARA,
CLARANS, P-CLUSTER, DBSCAN,…tuy nhiên phương pháp K-Means nổi
trội hơn do kết quả tốt và được kiểm chứng nhiều trong thực tế. Hiểu đơn giản
phân nhóm K-means là một thuật toán phân loại hoặc nhóm các đối tượng dựa
vào đặc trưng, thuộc tính thành K nhóm. Trong lĩnh vực xử lý ảnh, việc nhóm

các pixel được thực hiện bằng cách tính tổng của bình phương khoảng cách các
pixel với pixel trung tâm của nhóm tương ứng.
14


15
 Các bước thực hiện phân nhóm K-means:
• Qui định số nhóm K và giả định trọng tâm cho mỗi nhóm. Các trọng tâm này có
thể là các điểm tùy ý trong ảnh. Ta giả sử rằng số nhóm K là cố định trong Kmeans. Cho K trọng tâm (w1, …,wk) được khởi trị là một trong n điểm ảnh (i1, …,
in). Do đó:
Wj=il, j ∈ {1, …,k}, l ∈ {1, …, n}
Cj là nhóm thứ j và là tập hợp con tập hợp con được tách ra khỏi tập hợp
các mẫu ban đầu. Chất lượng phân nhóm được quyết định bởi hàm sai số:

• Đặc trưng các thành phần phân nhóm sẽ được trích ra.

• Mỗi thành phần sẽ được đánh dấu và đưa vào nhóm có trị trung bình gần nhất với
thành phần đó bằng cách tính khoảng cách giữa thành phần đó và trị trung bình
của mỗi nhóm. Khoảng cách đó có thể là khoảng cách Euclidean, khoảng cách
khối City,…
• Khi tất cả các thành phần đã được đánh dấu, trị trung bình của mỗi nhóm được
tính toán lại.
• Quá trình lặp lại cho đến khi không có sự thay đổi trị trung bình của mỗi nhóm
hoặc thuật toán đạt đến số lần lặp đã được định trước.

15


16


Hình 1.3. Lưu đồ giải thuật K-Means

Function K-means()
{
khởi trị cho k trọng số của k nhóm (w1, …,wk) với wj=il,
Wj=il, j ∈ {1, …,k}, l ∈ {1, …, n}
Mỗi nhóm Cj tương ứng với trọng tâm wj
Repeat
For mỗi vector ngõ vào il, với l ∈ {1, …, n}
Do
16


17
Đưa il vào nhóm Cj* mà có wj* gần với il nhất.

For mỗi nhóm Cj với j ∈ {1, …,k}
Do
Cập nhật trọng tâm wj là trọng tâm mới nhất của các
mẫu có trong nhóm
Cj, nghĩa là
Tính lại sai số:

Until E không thay đổi nhiều hoặc không có sự thay
đổi các mẫu trong các nhóm.
}
1.2.5. Lọc trung vị
Lọc trung vị (Median) là phương pháp lọc phi tuyến trong xử lý ảnh, mục
đích của phương pháp lọc này nhằm loại bỏ nhiễu hạt tiêu (pepper noise) hay
nhiễu hạt muối (salt noise) rất hiệu quả mà vẫn đảm bảo độ phân giải. Tuy nhiên

hiệu quả sẽ giảm đi khi số điểm nhiễu trong cửa số lớn hơn hay bằng một nữa số
điểm ảnh trong cửa sổ.
Trong phương pháp này, mức xám của điểm ảnh trung tâm được thay thế
bằng trung vị của một chuỗi các mức xám của các điểm ảnh lân cận thay vì giá trị
trung bình.
Trung vị m của một chuỗi các giá trị là một giá trị sao cho một nửa các giá
trị trong chuỗi nhỏ hơn m và một nửa lớn hơn m.
Giả sử U (m, n) và V(m, n) là ảnh vào và ảnh ra của bộ lọc, lọc trung vị
được định nghĩa:
V(m,n)=Median(U(m-k,n-l)) với k,l thuộc [1,L]
17


18
Tìm trung vị của cửa sổ lân cận kích thước J*K của một điểm ảnh ta làm
như sau:


Lấy các phần tử trong cửa sổ ra mảng 1 chiều (J*K phần tử)



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.
1.2.6. 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 không cần phải nhận dạng ký tự này, do luôn biết vị trí của nó ở đâu trên
bảng số xe. Nếu dùng bộ lọc Erosion thì không tốt vì 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).
1.3. Mạng nơron nhân tạo
1.3.1. Giới thiệu
Những năm 40 của thế kỷ 20, với mong muốn chế tạo những cỗ máy
thông minh có chức năng như bộ não con người, các nhà nghiên cứu đã phát triển
những mô hình phần cứng (sau đó là phần mềm) đơn giản về các nơron sinh học
và cơ chế tương tác của chúng. McCulloh và Pitts là những người đầu tiên đã
xuất bản một công trình nghiên cứu có tính hệ thống về mạng nơron nhân tạo.

18


19
Đến những năm 50 và 60, 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 nơron 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 nơron được chuyển thành các chương trình mô phỏng trên máy tính có
mức độ linh hoạt cao hơn.

Trong thời gian gần đây mạng Nơron được phát triển mạnh mẽ với các
nghiên cứu của Rosenblatt, Widrow và Hoff về các mạng Nơron 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.
1.3.2. Lịch sử phát triển của mạng nơron
Mạng Nơron 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ư
nơron 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 Nơron 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 Nơron
có thể mô hình hoá như thiết bị ngưỡng (Giới hạn) để thực hiện các phép tính
logic và mô hình mạng Nơron của Mc Culloch – Pitts cùng với giải thuật huấn
luyện mạng của Hebb ra đời năm 1943.
 Giai đoạn 2: Vào khoảng gần những năm 1960, một số mô hình Nơron hoàn
thiện hơn đã được đưa ra như: Mô hình Perceptron của Rosenblatt (1958),
Adalile của Widrow (1962). Trong đó mô hình Perceptron rất được quan tâm vì
nguyên lý đơn giản, nhưng nó cũng có hạn chế vì như Marvin Minsky và
Seymour papert của MIT ( Massachurehs Insritute of Technology) đã chứng
minh nó không dùng được cho các hàm logic phức (1969). Còn Adaline là

19


20
mô hình tuyến tính, tự chỉnh, được dùng rộng rãi trong điều khiển thích nghi,
tách nhiễu và phát triển cho đến nay.

 Giai đoạn 3: Vào khoảng đầu thập niên 80. Những đóng góp lớn cho mạng
noron trong giai đoạn này phải kể đến Grossberg, Kohonen, Rumelhart và
Hopfield. Trong đó đóng góp lớn của Hopfield gồm hai mạng phản hồi: Mạng
rời rạc năm 1982 và mạng liên tục năm 1984. Đặc biệt, ông đã dự kiến nhiều khả
năng tính toán lớn của mạng mà một nơron không có khả năng đó. Cảm nhận
của Hopfield đã được Rumelhart, Hinton và Williams đề xuất thuật toán sai số
truyền ngược nổi tiếng để huấn luyện mạng nơron nhiều lớp nhằm giải bài
toán mà mạng khác không thực hiện được. Nhiều ứng dụng mạnh mẽ của
mạng nơron ra đời cùng với các mạng theo kiểu máy Boltzmann và mạng
Neocognition của Fukushima.
 Giai đoạn 4: Tính từ năm 1987 đến nay, hàng năm thế giới đều mở hội nghị
toàn cầu chuyên ngành nơron IJCNN (International Joit Conference on Neural
Networks). Rất nhiều công trình được nghiên cứu để ứng dụng mạng
nơron vào các lĩnh vực như: Kỹ thuật tính, điều khiển, bài toán tối ưu, y học, sinh
học, thống kê, giao thông, hoá học,...Cho đến nay mạng nơron đã tìm và khẳng
định được vị trí của mình trong rất nhiều ứng dụng khác nhau.
1.3.3. Nơron sinh học
Hệ thần kinh gồm hai lớp tế bào: Nơron (tế bào thần kinh) và glia (tế
bào glia). Nơron là thành phần cơ bản của hệ thần kinh, chúng có chức năng
xử lý thông tin. Glia thực hiện chức năng hỗ trợ. Vì vậy trước khi nghiên cứu về
nơron nhân tạo chúng ta sẽ trình bày khái quát về cấu tạo và hoạt động của
nơron sinh học.
Nơron sinh học có nhiều loại, chúng khác nhau về kích thước và
khả năng thu phát tín hiệu. Tuy nhiên chúng có cấu trúc và nguyên lý hoạt
động chung như sau:
Mỗi nơron sinh học gồm có 3 thành phần: Thân nơron với nhân ở bên
trong (soma), một đầu dây thần kinh ra (axon) và một hệ thống phân nhánh
20



21
hình cây (Dendrite) để nhận các thông tin vào. Trong thực tế có rất nhiều dây
2
thần kinh vào và chúng bao phủ một diện tích rất lớn (0,25mm ). Đầu
dây thần kinh ra được rẽ nhánh nhằm chuyển giao tín hiệu từ thân nơron tới
nơron khác. Các nhánh của đầu dây thần kinh được nối với các khớp
thần kinh (synapse). Các khớp thần kinh này được nối với thần kinh vào của
các nơron khác. Các nơron có thể sửa đổi tín hiệu tại các khớp. Hình ảnh đơn
giản của một nơron thể hiện trong hình 1.3.3.

Hình 1.4. Mô hình nơron sinh học
Hoạt động của nơron sinh học có thể được mô tả như sau:
Mỗi nơron nhận tín hiệu vào từ các tế bào thần kinh khác. Chúng tích
hợp các tín hiệu vào, khi tổng tín hiệu vượt quá một ngưỡng nào đó chúng tạo
tín hiệu ra và gửi tín hiệu này tới các nơron khác thông qua dây thần kinh.
Các nơron liên kết với nhau thành mạng. Mức độ bền vững của các
liên kết này xác định một hệ số gọi là trọng số liên kết.

21


22
1.3.4. Nơron nhân tạo
Mô phỏng nơron sinh học, ta có nơron nhân tạo. Mỗi nơron có rất nhiều
dây thần kinh vào, nghĩa là mỗi nơron có thể tiếp nhận đồng thời nhiều dữ
liệu.
Mạng nơron nhân tạo (Artificial Neural Network) là một cấu trúc mạng
được hình thành nên bởi một số lượng lớn các nơron nhân tạo liên kết với
nhau. Mỗi nơron có các đặc tính đầu vào, đầu ra và thực hiện một chức năng
tính toán cục bộ.

Với việc giả lập các hệ thống sinh học, các cấu trúc tính toán
mạng nơron có thể giải quyết được lớp các bài toán nhất định như: bài toán lập
lịch, bài toán tìm kiếm, bài toán nhận dạng mẫu, bài toán xếp loại,... Mạng
nơron còn giải quyết được lớp các bài toán sử dụng dữ liệu không đầy đủ, xung
đột mờ hoặc xác suất. Những bài toán này được đặc trưng bởi một số hoặc tất
cả các tính chất sau: Sử dụng không gian nhiều chiều, các tương tác phức tạp,
chưa biết hoặc không thể theo dõi về mặt toán học giữa các biến; không gian
nghiệm có thể rỗng, có nghiệm duy nhất hoặc có một số nghiệm bình đẳng
như nhau. Ngoài ra, mạng nơron nhân tạo còn thích hợp để tìm nghiệm của
những bài toán đòi hỏi đầu vào là những cảm nhận bởi con người như: Tiếng
nói, nhìn và nhận dạng,... Tuy nhiên việc ánh xạ từ một bài toán bất kỳ sang
một giải pháp mạng nơron lại là một việc không đơn giản.
1.3.5. Các thành phần của một nơron nhân tạo
Phần này mô tả một số thành phần cơ bản của một nơron nhân tạo. Những
thành phần này là giống nhau cho dù nơron đó dùng trong tầng vào, tầng ra hay
là ở trong tầng ẩn.
 Thành phần 1. Các nhân tố trọng số: Một nơron thường nhận nhiều đầu vào
cùng lúc. Mỗi đầu vào có trọng số liên quan của riêng nó, trọng số này giúp cho
đầu vào có ảnh hưởng cần thiết lên hàm tổng của đơn vị xử lý (thành phần xử lý).
Những trọng số này có chức năng giống như sức mạnh của các synapes khác
nhau trong nơron sinh học. Trong cả hai trường hợp (nhân tạo và sinh học), một
22


23
số đầu vào quan trọng hơn những đầu vào khác do vậy chúng có ảnh hưởng lớn
hơn tới thành phần xử lý để rồi chúng kết hợp lại để tạo ra sự phản ứng của
nơron (neural response). Các trọng số là những hệ số thích nghi bên trong một
mạng, chúng xác định cường độ (sức mạnh hay là sức ảnh hưởng ) của tín hiệu
vào lên nơron nhân tạo. Những sức mạnh này có thể được điều chỉnh theo những

tập đào tạo đa dạng khác nhau và theo một kiến trúc mạng cụ thể hay là qua các
luật học của nó.
 Thành phần 2. Hàm tổng: Bước đầu tiên trong hoạt động của một thành phần
xử lý là tính toán tổng có trọng số của tất cả các đầu vào. Về mặt toán học, những
đầu vào và các trọng số tương ứng là những véc tơ có thể được biểu diễn :
I = (ii,i2, .., in) và W = (w1, w2, …, wn).
Tín hiệu vào tổng là tích vô hướng của mỗi thành phần trong véc tơ I với
thành phần tương ứng trong véc tơ W và cộng lại tất cả các tích. Input 1 = i1.w1,
input2 = i2.w2… Cuối cùng được cộng lại: input1 + input2 + … + inputn. Kết quả là
một số duy nhất, không phải là một véc tơ.
Hàm tổng có thể phức tạp hơn nhiều so với mô tả ở trên. Đầu vào và các
hệ số trọng số có thể được kết hợp theo nhiều cách khác nhau trước khi được đưa
vào hàm chuyển đổi. Bên cạnh việc tính tổng các tích đơn giản, hàm tổng có thể
chọn max, min, tích … nhờ một số thuật toán chuẩn tắc. Thuật toán cụ thể để kết
hợp các đầu vào của nơron được xác định bởi vệc chọn kiến trúc mạng và mô
hình mạng.
 Thành phần 3. Hàm chuyển đổi: Kết quả của hàm tổng, hầu như luôn là tổng
có trọng số, được chuyển đổi thành một đầu ra có ý nghĩa nhờ một quá trình xử
lý có thuật toán gọi là hàm chuyển đổi. Trong hàm chuyển đổi tổng có thể được
so sánh với một ngưỡng nào đó để quyết định đầu ra của mạng. Nếu như tổng lớn
hơn giá trị ngưỡng thì thành phần xử lý đưa ra đầu ra một tín hiệu. Nếu như tổng
của đầu vào và các tích có trọng số nhỏ hơn ngưỡng thì không có tín hiệu ở đầu
ra. Cả hai kiểu phản ứng đều quan trọng.

23


24
Giá trị ngưỡng, còn gọi hàm chuyển đổi, thường là phi tuyến. Các hàm
tuyến tính bị giới hạn vì đầu ra chỉ đơn giản là tỷ lệ của đầu vào.

Hàm chuyển đổi có thể chỉ đơn giản là cho biết hàm tổng là dương hay
âm. Mạng có thể cho ra đầu ra 0 và 1, 1 và -1, hay con số kết hợp nào đó.
 Thành phần 4. Hàm ra: Mỗi thành phần xử lý cho phép một tín hiệu đầu ra mà
đầu ra này có thể đi tới hàng trăm nơron khác. Điều này giống với nơron sinh học
trong đó có rất nhiều đầu vào và chỉ có một hành động ra. Thường thì đầu ra
tương đương với kết quả của hàm chuyển đổi. Tuy nhiên, một số kiến trúc mạng
chỉnh sửa kết quả của hàm chuyển đổi để kết hợp với những thành phần xử lý lân
cận. Các nơron cho phép cạnh tranh với những nơron khác, khi này chúng hạn
chế các thành phần xử lý khác trừ các thành phần xử lý có sức mạnh rất lớn. Sự
cạnh tranh có thể xẩy ra ở một hay là cả hai mức. Đầu tiên sự cạnh tranh quyết
định xem nơron nhân tạo nào sẽ là tích cực, hay là cung cấp một đầu ra. Tiếp
theo các đầu ra cạnh tranh giúp xác định thành phần xử lý nào sẽ tham gia và quá
trình học hay là quá trình thích nghi.
 Thành phần 5. Giá trị truyền ngược và hàm lỗi: Trong hầu hết các mạng học
sự khác biệt giữa đầu ra hiện tại và đầu ra mong muốn được tính toán, sự khác
biệt có thể được gọi là lỗi thô. Sau khi được tính toán, lỗi thô đó được chuyển đổi
bởi hàm lỗi để làm cho phù hợp với một kiến trúc mạng cụ thể nào đó. Các kiến
trúc mạng cơ sở nhất sử dụng lỗi này một cách trực tiếp nhưng một số khác bình
phương lỗi đó trong khi vẫn giữ lại dấu của nó, một số tính bậc ba của lỗi, một số
khác lại hiệu chỉnh lỗi thô đó để đạt được mục đích cụ thể nào đó. Lỗi của nơron
nhân tạo thường được truyền vào hàm học của một thành phần xử lý khác. Số
hạng lỗi này đôi khi còn được gọi là lỗi hiện thời.
Lỗi hiện thời thường được truyền ngược về một tầng trước đó. Nhưng giá
trị truyền ngược này có thể là lỗi hiện thời hay là lỗi hiện thời đã được điều chỉnh
theo một cách nào đó (thường sử dụng đạo hàm của hàm chuyển đổi), hay là một
đầu ra mong muốn nào đó, điều này phụ thuộc vào kiểu mạng nơron được sử
dụng. Thường thì giá trị truyền ngược này sau khi được điều chỉnh bởi hàm học
24



25
được nhân với mỗi trọng số kết nối vào để thay đổi chúng trước khi bước vào
chu kỳ học mới.
 Thành phần 6. Hàm học: Mục đích của hàm học là để thay đổi giá trị của biến
trọng số kết nối ở các đầu vào của mỗi thành phần xử lý theo một thuật toán nào
đó. Quá trình thay đổi các trọng số của các kết nối đầu nào nhằm thu được một
số kết quả mong muốn cũng có thể được gọi là hàm thích nghi, hay còn gọi là
chế độ học. Có hai kiểu học chính là học có giám sát và học không có giám sát.
Học có giám sát đòi hỏi có một “giáo viên”. Người “giáo viên” này có thể là một
tập dữ liệu đào tạo hay là một “người quan sát,” “người quan sát” này đánh giá
kết quả hoạt động của mạng. Trong khi không có “giáo viên” bên ngoài nào, hệ
thống sẽ phải tự sắp xếp nhờ một tiêu chuẩn bên trọng được thiết kế sẵn trong
mạng.
1.3.6. Đơn vị xử lý
Một đơn vị xử lý cũng được gọi là một nơron hay một nút (node),

thực

hiện một công việc rất đơn giản: nó nhận tín hiệu vào từ các đơn vị phía trước
hay một nguồn bên ngoài và sử dụng chúng để tính tín hiệu ra sẽ được lan truyền
sang các đơn vị khác.

Hình 1.5. Đơn vị xử lý (Processing unit)
Trong đó:
Xj : các đầu vào
wji : các trọng số tương ứng với các đầu vào

25



×