ĐẠ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,…
Phương pháp thủ công được con người sử dụng một cách rộng rãi lý do bởi tính
đơn giản không cần các thiết bị phức tạp, đồng thời cũng không thể có giải pháp khác
ngoài việc sử dụng giác quan của con người để nhận biết được bảng số xe của các
phương tiện giao thông. Phương pháp này tồn tại rất nhiều nhược điểm, đặc biệt trong
trường hợp đông xe thì độ trễ của phương pháp này sẽ là một trở ngại đáng kể dẫn đến
hiện tượng ùn ứ tại đầu bãi giữ xe,thêm vào đó sự lãng phí nguồn nhân lực, bởi 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. Độ chính xác
đôi khi 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. Độ 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…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, bài toán được đặt ra là làm thế nào để tăng
hiệu quả trong việc quản lý giữ xe, với giả thiết ta có thể đặt camera ở vị trí cổng giữ 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 nhận ảnh từ
camera, xử lý, nhận dạng ký tự trên biển số.
Trong báo cáo đề tài này sẽ trình bày phương pháp mạng noron nhân tạo trong máy
học, đây là một phương pháp phổ biến hiện nay được ứng dụng rộng rãi và giải quyế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.
!
Các neuron là các đơn vị xử lý thông tin cơ sở của bộ não với tốc độ xử lý
chậm hơn từ 5 tới 6 lần các cổng logic silicon. Các synapse về cơ bản lả các đơn vị
cấu trúc và chức năng làm trung gian kết nối giữa các neuron. Kiểu synapse chung
nhất là synapse hóa học.
Trong bộ não, có một số lượng rất lớn các tổ chức giải phẫu quy mô lớn
nhỏ cấu tạo dựa trên cơ sở các neuron và các synapse; chứng được phân thành
nhiều cấp theo quy mô và chức năng đặc thù. Cần phải nhận thấy rằng kiểu cấu
trúc phân cấp hoàn hảo này là đặc trưng duy nhất của bộ não, chúng không được
tìm thấy ở bất kì nơi nào trong một máy tính số, và không ở đâu chúng ta đạt tới
gần sự tái tạo lại chúng. Tuy nhiên, hiện nay chúng ta đang tiến hành từng bước
một trên con đường dần tới một sự phân cấp các mức tính toán tương tự như vậy,
gọi là các neuron nhân tạo. Các neuron nhân tạo mà chúng ta dùng để thiết kế nên
các mạng neuron nhân tạo thực sự còn rất thô sơ so với những gì được tìm thấy
trong bộ não. Nhưng với những tiến bộ đáng ghi nhận trên rất nhiều lĩnh vực trong
các thập kỷ vừa qua, chúng ta có quyền hy vọng rằng trong các thập kỷ tới các
mạng neuron nhân tạo sẽ tinh vi hơn nhiều so với hiện nay
b) Khái niệm mạng nơ-ron nhân tạo
Dựa trên nền tảng mạng noron thần kinh của bộ não con người, quá trình mô phỏng
và xây dựng các mạng noron nhân tạo được nghiên cứu và thực hiện nhằm nâng cao tính
“thông minh” cho các thiết bị điện tử, vi tính.
Mạng nơ-ron nhân tạo hay thường gọi ngắn gọn là mạng nơ-ron là một mô hình toán
học hay mô hình tính toán được xây dựng dựa trên các mạng nơ-ron sinh học. Nó gồm có
một nhóm các nơ-ron nhân tạo (nút) nối với nhau, và xử lý thông tin bằng cách truyền
theo các kết nối và tính giá trị mới tại các nút (cách tiếp cận connectionism đối với tính
toán). Trong nhiều trường hợp, mạng nơ-ron nhân tạo là một hệ thống thích ứng
(adaptive system) tự thay đổi cấu trúc của mình dựa trên các thông tin bên ngoài hay bên
trong chảy qua mạng trong quá trình học.
"
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.
%
Giai đoạn 2: vào khoảng gần những năm 1960, một số mô hình noron 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à 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: Có thể tính 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. Đặcbiệ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 noron
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 noron 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.
2. Mô hình của một mạng nơ-ron nhân tạo
a) Mô hình cấu trúc mộ nơ-ron nhân tạo
&
Để mô phỏng các tế bào thần kinh và các khớp nối thần kinh của bộ não con
người, trong mạng noron nhân tạo cũng có các thành phần có vai trò tương tự là các
noron nhân tạo cùng các kết nối synapse.
Một noron nhân tạo là một đơn vị tính toán hay đơn vị xử lý thông tin cơ sở cho
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
$ Hàm vùng tuyến tính
$ Hàm sigma: Hàm sigma là dạng chung nhất của hàm kích hoạt, được sử dụng
trong cấu trúc mạng noron nhân tạo, Nó làm một hàm tăng và thể hiện một sự
trung gian giữa tuyến tính và phi tuyến tính. Một ví dụ của hàm này là hàm
logistics, xác định như sau:
Trong đó:
- a là tham số độ dốc của hàm sigma.
- v là hệ số góc của độ dốc
Bằng việc biến đổi tham số a, chúng ta thu được các hàm sigma với các độ dốc
khác nhau.
(
c) Kiến trúc mạng nơ-ron
Trong bộ não con người, các tế bào thần kinh liên kết với nhau thông qua các khớp
nối thần kinh tạo thành những mạng lưới với kiến trúc vô cùng phức tạp và đang dạng.
Đối với mạng noron nhân tạo, chúng ta có ba lớp kiến trúc cơ bản sau:
#$ Các mạng tiến đơn mức
Trong một mạng noron phân mức, các noron được tổ chức dưới dạng các mức.
Dạng đơn giản nhất của mạng phân mức bao gồm một mức đầu vào các nút nguồn chiếu
trực tiếp tới mức đầu ra các noron (các nút tính toán). Mạng noron không có chu trình
đơn giản như trên gọi lại một mạng đơn mức, tức chỉ có một mức là mức đầu ra gồm các
nút tính toán.
)*+,-).
$ Các mạng tiến đa mức
Lớp thứ 2 của một mạng noron tiến được phân biệt bởi sự có mặt của một hay
nhiều mức ẩn, mà các nút tính toán của chúng được gọi là các noron ẩn hay các đơn vị
ẩn ( “ẩn” mang ý nghĩa là không tiếp xúc với môi trường bên ngoài).
Chức năng của các noron ẩn là can thiệp vào giữa đầu vào và đầu ra của mạng một
các hữu hiệu. Bằng biệc thêm một vài mức ẩn, mạng có khả năng rút ra được các thống
kê bậc cao của tính hiệu đầu vào. Khả năng các noron ẩn rút ra được các thông kệ bậc cao
đặ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
cặp mẫu đầu vào x, và một đích tương ứng t, mục đích là tìm ra hàm f(x) thoảmãn tất
cảcác mẫu học đầu vào.
23)4
o Học không có thầy:
Với cách học không có thầy, không có phản hồi từ môi trường đểchỉ ra rằng đầu ra
của mạng là đúng. Mạng sẽ phải khám phá các đặc trưng, các điều chỉnh, các mối tương
quan, hay các lớp trong dữ liệu vào một cách tự động. Trong thực tế, đối với phần lớn các
biến thể của học không có thầy, các đích trùng với đầu vào. Nói một cách khác, học
#
không có thầy luôn thực hiện một công việc tương tự nhưmột mạng tự liên hợp, cô đọng
thông tin từ dữ liệu vào.
3. Ứng dụng
Kể từ khi ra đời và phát triển mạng nơron đã được ứng dụng trong rất
nhiều lĩnh vực. Do vậy, liệt kê được tất cả các ứng dụng của mạng nơron là
không thực tế. Tuy nhiên, ta có thể đưa ra một số ứng dụng điển hình của mạng
nơron như sau:
- Xử lý ảnh, nhìn máy: Gồm trùng khớp ảnh, tiền xử lý ảnh, phân đoạn và
phân tích ảnh, nén ảnh,…
- Xử lý tín hiệu: Phân tích tín hiệu địa chấn và hình thái học.
- Nhận dạng mẫu: Gồm việc tách các nét đặc biệt của mẫu, phân loại và
phân tích tín hiệu của rada, nhận dạng và hiểu tiếng nói, nhận dạng vân
tay, lý tự, chữ viết,…
- Y học: Phân tích và hiểu tín hiệu điện tâm đồ, chuẩn đoán bệnh, xử lý
ảnh y học.
- Quân sự: Các hệ phát hiện thủy lôi, phân loại luồng rada, nhận dạng
người nói.
- Các hệ tài chính: Gồm phân tích thi trường chứng khoán, định giá bất
động sản, cấp phát thẻ tín dụng và thương mại an toàn.
- Trí tuệ nhân tạo: Gồm các hệ chuyên gia,…
- 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
#!
M$ M<$
Ảnh nhận từ camera (a) và ảnh đã chuyển sang ảnh mức xám (b)
b) Lược đồ mức xám (Histogram):
Lược đồ mức xám 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)
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.
Lược đồ mức xám của các loại ảnh.
Nhìn và biểu đồ trên ta nhận thấy rằng: nếu ảnh tối thì mức xám sẽ tập trung ở
gần gốc tọa độ.
c) Xử lý ảnh bằng thuật toán K-means:
XV;8Y,KWV?Z,[G6;H21
D\WV>)I]V>);13WV^>);)[8W@W
)_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=
$Ik,>
x
y
P
;
=y∈z#=p=J{=;∈z#=p={
b
y
;>).yD;8W@W8W@W,?@J|8W
@W)_<,cIbB;?@WV>),?@1+,u<E
)99F
Thuật toán K-means gồm các bước sau:
o Đặc trưng các thành phần phân nhóm sẽ được trích ra.
o 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,…
o 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.
#&
o 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.
FunctionK-means()
{
khởi trị cho k trọng số của k nhóm (w
1
, …,w
k
)
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
j
với j ∈ {1, …,k}
Do
Cập nhật trọng tâm w
j
là trọng tâm
mới nhất của các mẫu có trong nhóm
C
j
, 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.
}
d) Lọc trung vị (Median):
Đây 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]
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.
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++)
{
P=trung bình biên độ phổ của hàng pixel thứ i;
//sử dụng thư viện AForge
If (P>=ngưỡng)
If (flag=1)
/
height=height+1;
else
{
top=i;
flag=1;
}
else
if (height>=h)
bottom=i;
}
Tách ảnh mới: đỉnh là top, đáy là bottom=RowImage
i=0;
thiết lập giá trị ban đầu;
flag=0;
for (i=0; i<image.Width;i++)
{
P=trung bình biên độ phổ của cột pixel thứ i;
//sử dụng thư viện AForge
If (P>=ngưỡng)
If (flag=1)
width=width+1;
#
else
{
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)
− X?@)MiD7$
Ảnh bảng số (Invert)
− 7
!
Ảnh bảng số (Median)
− [;;<9•;7
Ảnh bảng số (BlobsFiltering)
Thuật toán tách ký tự:
Input: ảnh biển số trích được từ thuật toán trích biển số và đã qua )ền xử lý.
Output: mảng các ký tự trên biển số.
Với h: ngưỡng cao
w: ngưỡng rộng.
Functiondefine_line ( image, thres)
{
i=0;
c=0;
"