Tải bản đầy đủ (.doc) (38 trang)

Đồ Án Cơ Sở 5 Đề Tài Nhận Dạng Biển Số Xe Bằng Python.doc

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.85 MB, 38 trang )

ĐẠI HỌC ĐÀ NẴNG

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
VIỆT - HÀN
----------

ĐỒ ÁN CƠ SỞ 5

Đề tài : NHẬN DẠNG BIỂN SỐ XE
BẰNG PYTHON


Lời mở đầu

Sự phát triển mạnh mẽ của công nghệ thông tin trong những năm gần đây đã tạo
nên những thay đổi to lớn đối với cuộc sống con người. Nó ngày càng khẳng định
được vai trị của mình trong sự phát triển chung của xã hội.Trong thời đại ngày nay
mọi việc con người có thể làm thì hầu như máy móc cũng có thể làm được. đó là nhờ
những người lập trình viên đã biến những chiếc máy tính và những ngoại vi của nó trở
thành những hệ thống thơng minh có thể thực hiện bất cứ cơng việc gì.

Đơn giản như cơng việc gửi xe, chỉ vài năm trước đây khi đi đến bất kì bãi gửi xe
nào chúng ta cũng thấy tất cả xe đều phải được nhân viên coi xe gi bằng giấy, việc này
là vô cũng bất tiện và nhiều rủi ro như giấy rất dễ bị hư hao, rách hoặc dính nước…
khơng những vậy việc ghi giấy khơng thể tránh khỏi sai sót khi người nhân viên coi xe
một thoáng mất tập trung và ghi sai, vì vậy rất mất thời gian. Trong khn khổ chương
trình đã học, cũng như yêu cầu của đồ án kết thúc mơn, em đã viết một chương
trình : “ NHẬN DẠNG BIỂN SỐ XE BẰNG PYTHON”

Song vì thời gian có hạn, và cịn thiếu nhiều kinh nghiệm và kỹ năng cịn hạn
chế. Nên chắc chắn khơng tránh khỏi những thiếu sót. Vì vậy em rất mong nhận


được nhiều ý kiến đóng góp từ thầy cơ và bạn bè để chúng em hoàn thành tốt
đề tài này. Chân thành cảm ơn thầy cô và các bạn.


Lời cảm ơn
Để đồ án này đạt kết quả tốt đẹp, em đã nhận được sự hỗ trợ, giúp đỡ của thầy
cơ. Với tình cảm sâu sắc, chân thành, cho phép em được bày tỏ lòng biết ơn sâu sắc
đến tất cả quý thầy cô đã tạo điều kiện giúp đỡ trong quá trình học tập và nghiên cứu
đề tài
Trước hết chúng em xin gửi tới quý thầy cô Khoa Công Nghệ Thông Tin và Truyền
Thông - Đại Học Đà Nẵng lời chào trân trọng, lời chúc sức khỏe và lời cảm ơn sâu sắc
nhất. Với sự quan tâm, dạy dỗ, chỉ bảo tận tình chu đáo và những kiến thức mà các
thầy cô đã truyền đạt đã giúp em có thể hồn thành đề tài mơn học lập trình mạng.
Đặc biệt em xin gửi lời cảm ơn chân thành nhất đến giảng viên ThS. Lê Kim
Trọng đã quan tâm giúp đỡ tận tình chúng em hồn thành tốt đồ án này trong thời
gian qua.
Với điều kiện thời gian cũng như kinh nghiệm cịn hạn chế, đồ án này sẽ
khơng thể tránh được những thiếu sót. Em rất mong nhận được sự chỉ bảo, đóng
góp ý kiến của các thầy cơ, để em có thể bổ sung, nâng cao kinh nghiệm và kỹ năng
của bản thân để phục vụ cho công việc thực tế sau này.

em xin chân thành cảm ơn!


MỤC LỤC
Trang
Chương 1 GIỚI THIỆU TỔNG QUAN...........................................................................1
1.1 Tổng quan đề tài........................................................................................ 1
1.2 Mục tiêu nghiên cứu đề tài........................................................................1
1.3 Phương pháp nghiên cứu........................................................................... 1

1.4 PyQt5 và Qt Designer:................................................................................ 2
1.4.1 Qt:.............................................................................................................2
1.4.2 PyQt:.........................................................................................................2
1.4.3 Qt Designer:..............................................................................................3
1.5 Sơ lược về ngơn ngữ lập trình Python........................................................3
1.5.1 Ng̀n gớc cái tên “python”:.....................................................................4
1.5.2 Tính năng của Python:..............................................................................4
1.5.3 Cơng cụ lập trình Python-Pycharm:..........................................................4
Chương 2 NGHIÊN CỨU TỔNG QUAN..................................................................6
2.1 Trí tuệ nhân tạo - AI ?................................................................................. 6
2.1.1 AI là gì ?.....................................................................................................6
2.1.2 Ứng dụng của AI trong thực tế :...............................................................6
2.2 Nhận dạng biển số.....................................................................................7


2.2.1 Sự phát triển của nhận dạng biển số........................................................7
2.2.2 Nhận dạng biển số xe như nào ?...............................................................8
2.3 Kiến trúc mạng WPOD................................................................................ 8
2.3.1 Tại sao lại chọn mạng WPOD ?.................................................................8
2.3.2 Cách hoạt động của mạng WPOD...........................................................10
2.3.3 Chi tiết về kiến trúc mạng WPOD............................................................11
2.4 Phương pháp nhận dạng Support Vector Machine (SVM).........................12
2.4.1 Tổng quan về SVM..................................................................................12
2.4.2 Các vector hỗ trợ....................................................................................13
2.4.3 Thủ thuật Kernel.....................................................................................15
Chương 3 PHÂN TÍCH VÀ THIẾT KẾ

HỆ THỐNG......................17

3.1 Phân tích yêu cầu..................................................................................... 17

3.1.1 Yêu cầu chức năng..................................................................................17
3.1.2 Yêu cầu hệ thống....................................................................................17
3.2 Biểu đồ ca sử dụng................................................................................... 17
3.2.1 Chức năng đưa dữ liệu vào.....................................................................17
3.2.2 Chức năng đưa ra ảnh đã threshold.......................................................17
3.2.3 Chức năng đưa ra các contour tìm được................................................18
3.2.4 Chức năng nhận dạng và hiển thị biển số xe...........................................18
3.3 Thiết kế hệ thống..................................................................................... 19
3.3.1 Phương pháp nhận dạng biển số xe thơng thường................................20
3.3.2 Giải quyết bài tốn bằng WPOD và SVM................................................21
Chương 4 CHƯƠNG TRÌNH DEMO.....................................................................24
4.1 Một số hình ảnh của chương trình...........................................................24
4.2 Code của chương trình.............................................................................26
Chương 5 Kết luận............................................................................................ 30
5.1 Kết quả đạt được:.................................................................................... 30


5.2 Hạn chế:................................................................................................... 30
5.3 Hướng phát triển:....................................................................................30
TÀI LIỆU THAM KHẢO........................................................................................ 31


DANH MỤC HÌNH ẢNH
Trang
Hình 1: Hình ảnh ví dụ về nhận dạng biển số............................................................7
Hình 2: Kết quả detect dùng YOLO trên ảnh với hướng nhìn chính diện và hướng ....
nghiêng khi chụp biển số xe......................................................................................9
Hình 3: Kết quả dectect khi sử dụng WPOD cho trường hợp biển số xe bị nghiêng..9
Hình 4: Hoạt động của mạng WPOD........................................................................10
Hình 5: Kiến trúc mạng WPOD.................................................................................11

Hình 6: SVM.............................................................................................................12
Hình 7: SVM trong khơng gian hai chiều và ba chiều...............................................13
Hình 8: Siêu phẳng tối ưu có lề cực đại...................................................................13
Hình 9: Vector hỗ trợ...............................................................................................14
Hình 10: Dữ liệu được phân tách phi tuyến tính.....................................................14
Hình 11: ví dụ Φ(x) = x2+x........................................................................................15
HÌnh 12: Biểu diễn trực quan của thủ thuật Kernel.................................................15
Hình 13: Biểu đồ use-case.......................................................................................19
Hình 14: Lưu đồ chi tiết của hệ thống nhận diện biển số xe....................................20
Hình 15: Các bước xử lý bài tốn.............................................................................20
Hình 15: Data dùng để train....................................................................................22
Hình 16: Code model SVM.......................................................................................23
Hình 17: Predict biển số...........................................................................................24
Hình 18: Ảnh biển số sau threshold.........................................................................24
Hình 19: Các contour tìm được................................................................................25
Hình 20 Kết quả nhận dạng được............................................................................26
Hình 21: Lấy dữ liệu.................................................................................................26
Hình 22: Tách biển số..............................................................................................27
Hình 23: Chuyển ảnh về gray và threshold..............................................................28


Hình 24: Tìm contour và nhận dạng........................................................................29


Chương 1

GIỚI THIỆU TỔNG QUAN

1.1 Tổng quan đề tài
Sự phát triển mạnh mẽ của công nghệ thông tin trong những năm gần đây đã tạo

nên những thay đổi to lớn đối với cuộc sống con người. Nó ngày càng khẳng định
được vai trị của mình trong sự phát triển chung của xã hội.Trong thời đại ngày nay
mọi việc con người có thể làm thì hầu như máy móc cũng có thể làm được. đó là nhờ
những người lập trình viên đã biến những chiếc máy tính và những ngoại vi của nó trở
thành những hệ thống thơng minh có thể thực hiện bất cứ cơng việc gì.
Đơn giản như cơng việc gửi xe, chỉ vài năm trước đây khi đi đến bất kì bãi gửi xe
nào chúng ta cũng thấy tất cả xe đều phải được nhân viên coi xe gi bằng giấy, việc này
là vô cũng bất tiện và nhiều rủi ro như giấy rất dễ bị hư hao, rách hoặc dính nước…
khơng những vậy việc ghi giấy khơng thể tránh khỏi sai sót khi người nhân viên coi xe
một thống mất tập trung và ghi sai, vì vậy rất mất thời gian. Để bắt kịp với xu thế
hiện nay, em muốn nghiên cứu cũng như tiếp cận bài toán nhận dạng này. Vì thế em
muốn thực hiện đề tài nhận dạng biển số xe bằng ngơn ngữ lập trình Python. .Mục
tiêu dự kiến của em là hiểu thêm về bài tốn nhận dạng, ứng dụng được nó vào thực
tế.

1.2 Mục tiêu nghiên cứu đề tài


Xây dựng được chương trình giúp người dùng nhận dạng được các biển số thông
qua các hình ảnh hoặc camera đầu vào.



Chương trình có thể nhận dạng được số xe một cách chính xác và in nó ra màn
hình.



Hiểu rõ hơn về các thuật tốn nhận dạng và cách hoạt động nhằm nâng cao hiểu
biết về cơng nghệ hiện nay


1.3 Phương pháp nghiên cứu


Tìm hiểu về ngơn ngữ lập trình Python




Tìm hiểu về cơng cụ lập trình Pycharm



Tìm hiểu về các thư viện hỗ trợ lập trình



Tham khảo các chức năng, các điểm ưu nhược của các ứng dụng đã có, từ đó
quyết định các ứng dụng và hướng phát triển



Tham khảo và lập trình giao diện cho ứng dụng



Phân tích các chức năng và u cầu cần có




Nghiên cứu về cách thức hoạt động của bài toán nhận dạng



Nghiên cứu và hiểu được thuật toán của bài toán nhận dạng biển số xe



Kiểm thử phần mềm, sửa chữa và phát triển thêm các ý tưởng mới



Xây dựng báo cáo hoàn chỉnh

1.4 PyQt5 và Qt Designer:
1.4.1 Qt:
Qt là một Application framework đa nền tảng viết trên ngôn ngữ C++ , được dùng
để phát triển các ứng dụng trên desktop, hệ thống nhúng và mobile. Hỗ trợ cho các
platform bao gồm : Linux, OS X, Windows, VxWorks, QNX, Android, iOS, BlackBerry,
Sailfish OS và một số platform khác.

1.4.2 PyQt:
PyQt là Python interface của Qt, kết hợp của ngơn ngữ lập trình Python và thư
viện Qt, là một thư viện bao gồm các thành phần giao diện điều khiển
(widgets , graphical control elements).
PyQt được phát triển bởi Riverbank Computing Limited.
Các class của PyQt5 được chia thành các module, bao gồm : 


QtCore : là module bao gồm phần lõi khơng thuộc chức năng GUI, ví dụ

dùng để làm việc với thời gian, file và thư mục, các loại dữ liệu, streams,
URLs, mime type, threads hoặc processes.




QtGui : bao gồm các class dùng cho việc lập trình giao diện (windowing
system integration), event handling, 2D graphics, basic imaging, fonts và
text.



QtWidgets : bao gồm các class cho widget, ví dụ : button, hộp thoại, … được
sử dụng để tạo nên giao diện người dùng cơ bản nhất.



QtMultimedia : thư viện cho việc sử dụng âm thanh, hình ảnh, camera,… 



QtBluetooth : bao gồm các class giúp tìm kiếm và kết nối với các thiết bị có
giao tiếp với phần mềm.



QtNetwork : bao gồm các class dùng cho việc lập trình mạng, hỗ trợ lập
trình TCP/IP và UDP client , server hỗ trợ việc lập trình mạng.




QtPositioning : bao gồm các class giúp việc hỗ trợ xác định vị.



Enginio : module giúp các client truy cập các Cloud Services của Qt.



QtWebSockets : cung cấp các công cụ cho WebSocket protocol.



QtWebKit : cung cấp các class dùng cho làm việc với các trình duyệt Web ,
dựa trên thư viện WebKit2.



QtWebKitWidgets : các widget cho WebKit.



QtXml : các class dùng cho làm việc với XML file.



QtSvg : dùng cho hiển thị các thành phần của SVG file.




QtSql : cung cấp các class dùng cho việc làm việc với dữ liệu.



QtTest : cung cấp các công cụ cho phép test các đơn vị của ứng dụng với
PyQt5.

1.4.3 Qt Designer:
Qt Designer là một công cụ Qt để thiết kế và xây dựng giao diện người dùng đồ
họa (GUI) với Qt Widget. Bạn có thể soạn và tùy chỉnh các cửa sổ hoặc hộp thoại của
mình theo cách bạn sẽ thấy (What you see is what you get – Những gì bạn đang thấy
là những gì bạn sẽ nhận được) và kiểm tra chúng bằng các kiểu và độ phân giải khác
nhau.


Các tiện ích và biểu mẫu được tạo bằng Qt Designer tích hợp liền mạch với mã
được lập trình, sử dụng cơ chế vị trí và tín hiệu của Qt để bạn có thể dễ dàng gán
hành vi cho các phần tử đồ họa. Tất cả các thuộc tính được đặt trong Qt Designer có
thể được thay đổi động trong mã. Hơn nữa, các tính năng như quảng cáo widget và
plugin tùy chỉnh cho phép bạn sử dụng các thành phần của riêng mình với Qt
Designer .

1.5 Sơ lược về ngơn ngữ lập trình Python
Phiên bản sử dụng trong đờ án: Python 3.7.8
Python là một ngơn ngữ lập trình bậc cao cho các mục đích lập trình đa năng,
do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991. Python được thiết kế
với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ. Python là ngơn ngữ có hình thức rất
sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình. Cấu trúc của
Python cịn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu.


1.5.1 Ng̀n gớc cái tên “python”:
Rossum – Tác giả của Python, là fan của một sê-ri chương trình hài cuối những
năm 1970, và cái tên “Python” được lấy từ tên một phần trong sê-ri đó “Monty
Python’s Flying Circus”.

1.5.2 Tính năng của Python:
 Đơn giản, dể học
 Miễn phí với mã nguồn mở
 Có thể chạy python trên hầu hết các nền tảng khác nhau
 Ngôn ngữ thông dịch cấp cao
 Thư viện tiêu chuẩn lớn
 Hướng đối tượng

1.5.3 Cơng cụ lập trình Python-Pycharm:
Phiên bản sử dụng trong đờ án: PyCharm 2020.2.3 (Community Edition)


PyCharm là mơi trường phát triển tích hợp đa nền tảng (IDE) được phát triển bởi
Jet Brains và được thiết kế đặc biệt cho Python. PyCharm có mặt trên cả 3 nền tảng
Windows, Linux và Mac OS. 
Hiện tại PyCharm có 2 phiên bản:
Phiên bản Professional: đầy đủ tất cả các tính năng, hỗ trợ Python Web với HTML,
JS, và SQL. Mức giá hiện tại 199$ / năm đầu tiên.
Phiên bản Community: hỗ trợ Python development. Miễn phí.

Chương 2

NGHIÊN CỨU TỔNG QUAN

2.1 Trí tuệ nhân tạo - AI ?

2.1.1 AI là gì ?
AI (Artificial intelligence) là trí thơng minh nhân tạo. Nó là sự mơ phỏng các q
trình trí tuệ của con người bằng máy móc, đặc biệt là các hệ thống hệ máy tính. Các
ứng dụng cụ thể của AI bao gồm xử lý các ngôn ngữ tự nhiên, nhận dạng giọng nói và
thị giác, quản lý hệ thống.
Bản chất của AI là mơ hình, thuật tốn được huấn luyện trên một tập dữ liệu
để giải quyết một bài toán rất cụ thể. AI giống như một đứa bé sơ sinh vậy, nó bắt
đầu thu nhận hình ảnh và học cách phân loại. Nó chỉ có thể nhận diện gương mặt ba,
mẹ hoặc ơng bà chứ khơng thể làm gì khác nữa.
Hiện nay, cơng nghệ AI có 3 hướng chính:
 Xử lý hình ảnh (Computer Vision)
 Xử lý ngơn ngữ tự nhiên (Natural Language Processing)
 Xử lý tín hiệu âm thanh (Audio Signal Processing)
Trong đồ án này, đề tài em thực hiện chủ yếu phát triển theo hướng xử lý hình
ảnh.


2.1.2 Ứng dụng của AI trong thực tế :
 Hệ thống nhận diện khuôn mặt thông qua các camera được gắn tại sân bay
và các tòa nhà
 Các trợ lý ảo (như Siri, Google Assistant, Alexa) có khả năng nghe, hiểu, trả
lời và làm việc cho mình
 Những ứng dụng trong y sinh, dùng AI để chẩn đoán bệnh dựa trên phim
chụp X-quang, X-ray và MRI
 Quen thuộc hơn thì có những dịng smart TV, áp dụng cơng nghệ AI để cải
tiến chất lượng hình ảnh hoặc nhận diện giọng nói…

2.2 Nhận dạng biển số
2.2.1 Sự phát triển của nhận dạng biển số


Hình 1: Hình ảnh ví dụ về nhận dạng biển số

Công nghệ nhận dạng biển số là một công nghệ được phát minh vào năm 1976 tại
chi nhánh phát triển khoa học cảnh sát ở Anh. Ngày nay, nó đã phát triển và trở
thành một phần không thể thiếu trong các hệ thống giao thông và trong các bãi đậu
xe thông minh. Nó hỗ trợ các nhà quản lý rất nhiều trong việc giám sát giao thông và
xử lý các sai phạm.


Với cơng nghệ tiến bộ với tốc độ chóng mặt, các thành phần của hệ thống tự động
nhận dạng biển số đã được cải thiện vô cùng. Ngày nay, ngành công nghiệp đã phát
triển vượt ra ngồi máy ảnh, nơi có thể nhận dạng bằng các cảm biến và thiết bị di
động.
Với các cảm biến hình ảnh có độ phân giải cao và khả năng xử lý dữ liệu nhanh
hơn, độ chính xác phát hiện của hệ thống tự động nhận dạng biển số đã được cải
thiện đáng kể. Những tiến bộ trong phần cứng hiệu suất đã tăng cường khả năng của
phần mềm, từ đó cải thiện kết quả phân tích sau khi chụp và cảnh báo hoạt động
theo thời gian thực.
Bây giờ, ngành cơng nghiệp đang vượt ra ngồi máy ảnh truyền thống; nó có thể
thực hiện nhân dạng biển số chỉ với một chiếc điện thoại thông minh.
Một công nghệ mà việc sử dụng đã từng bị hạn chế trong việc xác định đăng ký xe
đã hết hạn và tìm kiếm những chiếc xe bị đánh cắp giờ đây trở thành một phần quan
trọng trong các hoạt động đỗ xe thông minh trên toàn cầu. Với camera nhân dạng
biển số được cài đặt trên các phương tiện thực thi, cảnh sát viên có thể nhận được
cảnh báo theo thời gian thực về việc chiếm chỗ, thời gian đỗ xe, khu vực dễ tuân thủ
thấp, tranh chấp vé qua đó giúp họ xác định và xác định vị trí lái xe và hướng lái xe
đến chỗ đỗ xe để đảm bảo luồng giao thông liền mạch .

2.2.2 Nhận dạng biển số xe như nào ?
Để giải quyết được bài toán nhận dạng biển số xe, yêu cầu đặt ra phải giải quyết

được 3 bài toán con:
 Bài toán con thứ 1: Xác định vùng chứa biển số xe và tách biển số
 Bài toán con thứ 2: Phân đoạn từng ký tự
 Bài toán con thứ 3: Nhận dạng ký tự
Ở bài toán này, chúng ta sử dụng WPOD để tách biển số xe ra khỏi ảnh và sử dụng
Train model SVM để nhận diện với :
 Input : là một ảnh có chưa biển số xe hoặc video chứ ảnh số xe


 Ouput: biển số xe bằng chữ số và được in lên màn hình

2.3 Kiến trúc mạng WPOD
2.3.1 Tại sao lại chọn mạng WPOD ?
Vấn đề của các phương pháp object detection được áp dụng vào bài toán phát hiện
biển số xe là nó chỉ đưa về kết quả là một vùng chứa biển số xe (vùng này có thể bao
gồm cả biển số xe và phần chi tiết của thân xe) . Những trường hợp trả về cả biển số là
những trường hợp biển số được chụp thẳng chính diện với camera ví dụ như ở các bãi
gửi xe tự động thì camera sẽ được lắp sao cho camera sẽ hướng thẳng đến vùng có
biển số. Tuy nhiên trong một số trường hợp không phải lúc nào biển số xe cũng được
chụp ở hướng chính diện. Ví dụ trong trường hợp một chú cảnh sát giao thông với
một thiết bị máy quay di động ( hoặc smartphone) dẫn đến góc nhìn tới biển số bị
nghiêng gây ảnh hưởng đến việc trích xuất thơng tin biển số ở các bước sau.
Các bạn có thể nhìn hình 3 dưới đây, có thể nhìn thấy ngay là với trường hợp
hướng nhìn chính diện (hình trái) thì vùng biển số phát hiện được hầu như khơng có
chi tiết của thân xe, với trường hợp hướng nhìn hơi nghiêng một chút (hình phải) thì
vùng biển số đã có rất nhiều các chi tiết thừa ở thân xe.

Hình 2: Kết quả detect dùng YOLO trên ảnh với hướng nhìn chính diện và hướng nghiêng khi chụp biển số
xe


WPOD - Wraped Planer Object Detection Network. Mạng được thiết kế dựa trên ý
tưởng của YOLO, SSD và STN (Spatial Tranformer Network). Trong khi các mạng YOLO
và SSD chỉ trả về một hình chữ nhật bao quanh biển số xe mà không quan tâm đến


không gian xung quanh biển số xe là như thế nào thì WPOD có thể trả về một vùng tứ
giác bao quanh biển số xe và đưa biển số về hướng nhìn chính diện.

Hình 3: Kết quả dectect khi sử dụng WPOD cho trường hợp biển số xe bị nghiêng

Hình 3 là kết quả detect khi sử dụng WPOD, ta có thể thấy vùng biển số xe detect ra
khơng có các chi tiết thừa từ thân xe và WPOD đã chuyển đổi vùng biển số xe này về
hướng chính diện.

2.3.2 Cách hoạt động của mạng WPOD

Hình 4: Hoạt động của mạng WPOD

Hình bên trên thể hiện cách thức hoạt động của mạng WPOD. Ta có thể thấy từ 1
ảnh đầu vào thơng qua q trình lan truyền tiến qua mạng ta thu được output
features map gồm 8 channels trong đó 2 channels đầu tiên là xác suất có/khơng có
biển số xe và 6 channels cịn lại là những thơng số để tính tốn ma trận transform (là
ma trận được sử dụng để chuyển đổi góc nhìn của biển số xe).
Để trích xuất ra được vùng biển số xe thì nhóm tác giả đã xét một hình vng với
kích thước cố định (phần hình vng viền trắng trên hình) xung quanh từng cell trên
output features map. Nếu xác suất có đối tượng của cell đó lớn hơn ngưỡng quy định
thì những giá trị của 6 channels cịn lại của cell đó sẽ được sử dụng để tính tốn ma


trận tranform từ vùng hình vng về vùng biển số xe (đa giác viền đỏ trên hình). Và ta

cũng sẽ sử dụng ma trận này để đưa biển số xe về hướng nhìn chính diện.

2.3.3 Chi tiết về kiến trúc mạng WPOD

Hình 5: Kiến trúc mạng WPOD

Kiến trúc của mạng bao gồm 21 lớp convolutional trong đó có 14 lớp là nằm trong
các khối residual. Tất cả các lớp đều dùng filter với kích thước 3x3 và dùng hàm kích
hoạt là Relu ngoại trừ khối Detection. Khối Detection là khối đáng chú ý nhất trong
kiến trúc mạng này.
Như đã đề cập ở trên thì output features map sẽ bao gồm 8 channels trong đó 2
channels đầu là xác suất có/khơng có đối tượng, 6 channels sau chứa các giá trị để tạo
ra ma trận affine transform. Và để tạo ra được output features map như vậy thì
khối Detection có 2 luồng riêng biệt, luồng thứ nhất dành cho việc tính tốn xác suất
có/khơng có đối tượng (2 channels đầu tiên của output features map) với luồng này
thì sử dụng activations là softmax, luồng thứ 2 phục vụ cho việc tính tốn các thơng số
để tạo ra ma trận transform với luồng này ta không sử dụng hàm kích hoạt hay nói
cách khác hàm kích hoạt cho luồng này là hàm \mathbf{f(x) = x}f(x)=x. Kết quả của 2
luồng nay sau đó sẽ được gộp với nhau để đưa ra output.


2.4 Phương pháp nhận dạng Support Vector Machine
(SVM)
2.4.1 Tổng quan về SVM
Support Vector Machines (có tài liệu dịch là Máy véctơ hỗ trợ) là một trong số
những thuật toán phổ biến và được sử dụng nhiều nhất trong học máy trước khi
mạng nơ ron nhân tạo trở lại với các mơ hình deep learning. Nó được biết đến rộng
rãi ngay từ khi mới được phát triển vào những năm 1990.
Mục tiêu của SVM là tìm ra một siêu phẳng trong không gian N chiều (ứng với
N đặc trưng) chia dữ liệu thành hai phần tương ứng với lớp của chúng. Nói theo ngơn

ngữ của đại số tuyển tính, siêu phẳng này phải có lề cực đại và phân chia hai bao
lồi và cách đều chúng.

Hình 6: SVM

Trong khơng gian N chiều, một siêu phẳng là một khơng gian con có kích thước N-1
chiều. Một cách trực quan, trong một mặt phẳng (2 chiều) thì siêu phẳng là một
đường thẳng, trong một khơng gian 3 chiều thì siêu phẳng là một mặt phẳng.
Siêu phẳng tạo ra một biên giới phân chia 2 lớp của dữ liệu.


Hình 7: SVM trong khơng gian hai chiều và ba chiều

Để phân chia hai lớp dữ liệu, rõ ràng là có rất nhiều siêu phẳng có thể làm được
điều này. Mặc dù vậy, mục tiêu của chúng ta là tìm ra siêu phẳng có lề rộng nhất tức
là có khoảng cách tới các điểm của hai lớp là lớn nhất. Hình dưới đây là một ví dụ trực
quan về điều đó.

Hình 8: Siêu phẳng tối ưu có lề cực đại

2.4.2 Các vector hỗ trợ
Một điểm trong không gian véc tơ có thể được coi là một véc tơ từ gốc tọa độ tới
điểm đó. Các điểm dữ liệu nằm trên hoặc gần nhất với siêu phẳng được gọi là véc tơ
hỗ trợ, chúng ảnh hưởng đến vị trí và hướng của siêu phẳng. Các véc tơ này được sử



×