1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

38 89 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nhận Dạng Biển Số Xe Bằng Python
Người hướng dẫn ThS. Lê Kim Trọng
Trường học Đại Học Đà Nẵng
Chuyên ngành Công Nghệ Thông Tin
Thể loại đồ án
Thành phố Đà Nẵng
Định dạng
Số trang 38
Dung lượng 3,65 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • Chương 1 GIỚI THIỆU TỔNG QUAN (9)
    • 1.1 Tổng quan đề tài (9)
    • 1.2 Mục tiêu nghiên cứu đề tài (9)
    • 1.3 Phương pháp nghiên cứu (9)
    • 1.4 PyQt5 và Qt Designer (10)
      • 1.4.1 Qt (10)
      • 1.4.2 PyQt (10)
      • 1.4.3 Qt Designer (11)
    • 1.5 Sơ lược về ngôn ngữ lập trình Python (12)
      • 1.5.1 Nguồn gốc cái tên “python” (12)
      • 1.5.2 Tính năng của Python (12)
      • 1.5.3 Công cụ lập trình Python-Pycharm (12)
  • Chương 2 NGHIÊN CỨU TỔNG QUAN (13)
    • 2.1 Trí tuệ nhân tạo - AI ? (13)
      • 2.1.1 AI là gì ? (13)
      • 2.1.2 Ứng dụng của AI trong thực tế (14)
    • 2.2 Nhận dạng biển số (14)
      • 2.2.1 Sự phát triển của nhận dạng biển số (14)
      • 2.2.2 Nhận dạng biển số xe như nào ? (15)
    • 2.3 Kiến trúc mạng WPOD (16)
      • 2.3.1 Tại sao lại chọn mạng WPOD ? (16)
      • 2.3.2 Cách hoạt động của mạng WPOD (17)
      • 2.3.3 Chi tiết về kiến trúc mạng WPOD (18)
    • 2.4 Phương pháp nhận dạng Support Vector Machine (SVM) (19)
      • 2.4.1 Tổng quan về SVM (19)
      • 2.4.2 Các vector hỗ trợ (20)
      • 2.4.3 Thủ thuật Kernel (22)
  • Chương 3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG (0)
    • 3.1 Phân tích yêu cầu (23)
      • 3.1.1 Yêu cầu chức năng (23)
      • 3.1.2 Yêu cầu hệ thống (23)
    • 3.2 Biểu đồ ca sử dụng (23)
      • 3.2.1 Chức năng đưa dữ liệu vào (23)
      • 3.2.2 Chức năng đưa ra ảnh đã threshold (23)
      • 3.2.3 Chức năng đưa ra các contour tìm được (24)
      • 3.2.4 Chức năng nhận dạng và hiển thị biển số xe (24)
    • 3.3 Thiết kế hệ thống (25)
      • 3.3.1 Phương pháp nhận dạng biển số xe thông thường (26)
      • 3.3.2 Giải quyết bài toán bằng WPOD và SVM (27)
  • Chương 4 CHƯƠNG TRÌNH DEMO (31)
    • 4.1 Một số hình ảnh của chương trình (31)
    • 4.2 Code của chương trình (33)
  • Chương 5 Kết lu n ậ (37)
    • 5.1 Kết quả đạt được (37)

Nội dung

ĐẠ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 tron[.]

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

Trang 2

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ạonê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 naymọ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 xenà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 xemột thoáng mất tập trung và ghi sai, vì vậy rất mất thời gian Trong khuôn khổ chươngtrì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.

Trang 3

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ềnThô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ắcnhấ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ácthầy cô đã truyền đạt đã giúp em có thể hoà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ê KimTrọng đã quan tâm giúp đỡ tận tình chúng em hoàn thành tốt đồ án này trong thờigian 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, đónggóp ý kiến của các thầy cô, để em có thể bổ sung, nâng cao kinh nghiệm và kỹ năngcủ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!

Trang 4

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 Nguồ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

Trang 5

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 toá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

Trang 6

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

Trang 7

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 toá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

Trang 8

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

Trang 9

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ạonê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 naymọ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 xenà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 xemột thoá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ế emmuố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ụctiêu dự kiến của em là hiểu thêm về bài toá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ôngqua 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ànhình

- Hiểu rõ hơn về các thuật toán nhận dạng và cách hoạt động nhằm nâng cao hiểubiế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

Trang 10

- 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à yê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ácplatform 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

Trang 11

 QtGui : bao gồm các class dùng cho việc lập trình giao diện (windowingsystem 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ậptrì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ớiPyQt5

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

Trang 12

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 Nguồ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)

Trang 13

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í.

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 quá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 toá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

Trang 14

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

Trang 15

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ự độngnhận dạng biển số đã được cải thiện vô cùng Ngày nay, ngành công nghiệp đã pháttriển vượt ra ngoà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 nhanhhơ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ảithiệ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ủaphầ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 độngtheo thời gian thực

Bây giờ, ngành công nghiệp đang vượt ra ngoà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 quantrọng trong các hoạt động đỗ xe thông minh trên toàn cầu Với camera nhân dạngbiể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 đượccả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ụngTrain 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

Trang 16

 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ệnbiể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ể baogồ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ãigử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 đượcchụ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ớimộ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ợphướ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ố

Trang 17

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 rakhô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 quá trình lan truyền tiến qua mạng ta thu được outputfeatures 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 toá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 vuông vớikích thước cố định (phần hình vuông viền trắng trên hình) xung quanh từng cell trênoutput features map Nếu xác suất có đối tượng của cell đó lớn hơn ngưỡng quy địnhthì những giá trị của 6 channels còn lại của cell đó sẽ được sử dụng để tính toán ma

Trang 18

trận tranform từ vùng hình vuông về vùng biển số xe (đa giác viền đỏ trên hình) Và tacũ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 trongcá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íchhoạt là Relu ngoại trừ khối Detection Khối Detection là khối đáng chú ý nhất trongkiến trúc mạng này

Như đã đề cập ở trên thì output features map sẽ bao gồm 8 channels trong đó 2channels đầ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 toán xác suấtcó/không có đối tượng (2 channels đầu tiên của output features map) với luồng nàythì sử dụng activations là softmax, luồng thứ 2 phục vụ cho việc tính toá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óicá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 2luồng nay sau đó sẽ được gộp với nhau để đưa ra output

Trang 19

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 khimạ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ộngrã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ônngữ 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 baolồ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-1chiề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

Ngày đăng: 14/06/2023, 11:43

HÌNH ẢNH LIÊN QUAN

Hình 1: Hình ảnh ví dụ về nhận dạng biển số - Đồ Án Cơ Sở 5 - Đề Tài  - Nhận Dạng Biển Số Xe Bằng Python
Hình 1 Hình ảnh ví dụ về nhận dạng biển số (Trang 14)
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ố - Đồ Án Cơ Sở 5 - Đề Tài  - Nhận Dạng Biển Số Xe Bằng Python
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ố (Trang 16)
Hình 3: Kết quả dectect khi sử dụng WPOD cho trường hợp biển số xe bị nghiêng - Đồ Án Cơ Sở 5 - Đề Tài  - Nhận Dạng Biển Số Xe Bằng Python
Hình 3 Kết quả dectect khi sử dụng WPOD cho trường hợp biển số xe bị nghiêng (Trang 17)
Hình 5: Kiến trúc mạng WPOD - Đồ Án Cơ Sở 5 - Đề Tài  - Nhận Dạng Biển Số Xe Bằng Python
Hình 5 Kiến trúc mạng WPOD (Trang 18)
Hình 6: SVM - Đồ Án Cơ Sở 5 - Đề Tài  - Nhận Dạng Biển Số Xe Bằng Python
Hình 6 SVM (Trang 19)
Hình 7: SVM trong không gian hai chiều và ba chiều - Đồ Án Cơ Sở 5 - Đề Tài  - Nhận Dạng Biển Số Xe Bằng Python
Hình 7 SVM trong không gian hai chiều và ba chiều (Trang 20)
Hình 8: Siêu phẳng tối ưu có lề cực đại - Đồ Án Cơ Sở 5 - Đề Tài  - Nhận Dạng Biển Số Xe Bằng Python
Hình 8 Siêu phẳng tối ưu có lề cực đại (Trang 20)
Hình 10: Dữ liệu được phân tách phi tuyến tính - Đồ Án Cơ Sở 5 - Đề Tài  - Nhận Dạng Biển Số Xe Bằng Python
Hình 10 Dữ liệu được phân tách phi tuyến tính (Trang 21)
Hình 9: Vector hỗ trợ - Đồ Án Cơ Sở 5 - Đề Tài  - Nhận Dạng Biển Số Xe Bằng Python
Hình 9 Vector hỗ trợ (Trang 21)
Hình 11: ví dụ Φ(x) = x 2 +x - Đồ Án Cơ Sở 5 - Đề Tài  - Nhận Dạng Biển Số Xe Bằng Python
Hình 11 ví dụ Φ(x) = x 2 +x (Trang 22)
Hình 13: Biểu đồ use-case - Đồ Án Cơ Sở 5 - Đề Tài  - Nhận Dạng Biển Số Xe Bằng Python
Hình 13 Biểu đồ use-case (Trang 25)
Hình 14: Lưu đồ chi tiết của hệ thống nhận diện biển số xe - Đồ Án Cơ Sở 5 - Đề Tài  - Nhận Dạng Biển Số Xe Bằng Python
Hình 14 Lưu đồ chi tiết của hệ thống nhận diện biển số xe (Trang 26)
Hình 16: Code model SVM - Đồ Án Cơ Sở 5 - Đề Tài  - Nhận Dạng Biển Số Xe Bằng Python
Hình 16 Code model SVM (Trang 29)
Hình 19: Các contour tìm được - Đồ Án Cơ Sở 5 - Đề Tài  - Nhận Dạng Biển Số Xe Bằng Python
Hình 19 Các contour tìm được (Trang 31)
Hình 20 Kết quả nhận dạng được - Đồ Án Cơ Sở 5 - Đề Tài  - Nhận Dạng Biển Số Xe Bằng Python
Hình 20 Kết quả nhận dạng được (Trang 32)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w