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

ứng dụng học máy trong nhận diện biển số xe

53 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Ứng dụng học máy trong nhận diện biển số xe
Tác giả Bùi Như Quỳnh, Nguyễn Xuân Chiến, Lê Thanh Long, Nguyễn Thị Kim Dung, Chu Văn Hùng
Người hướng dẫn Đoàn Thị Thanh Hằng
Trường học Trường Đại học Công nghệ Giao thông Vận tải
Chuyên ngành Nhập môn trí tuệ nhân tạo
Thể loại Đồ án
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 53
Dung lượng 9,88 MB

Nội dung

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GIAO THÔNG VẬN TẢIKHOA CÔNG NGHỆ THÔNG TIN ********** Đ TI: ỨNG DỤNG HỌC MÁY TRONG NHẬN DIỆN BIỂN SỐ XEMôn học: Nhập môn trí tuệ nhân tạoGiảng viên hướng dẫn:

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GIAO THÔNG VẬN TẢI

KHOA CÔNG NGHỆ THÔNG TIN

**********

Đ TI: ỨNG DỤNG HỌC MÁY TRONG NHẬN DIỆN

BIỂN SỐ XEMôn học: Nhập môn trí tuệ nhân tạoGiảng viên hướng dẫn: Đoàn Thị Thanh HằngThực hiện: Nhóm 5 – 72DCTT23

Bùi Như QuỳnhNguyễn Xuân ChiếnLê Thanh LongNguyễn Thị Kim DungChu Văn Hùng

Hà Nội, 2023

Trang 2

BẢNG PHÂN CÔNG NHIỆM VỤ

tạo- Tạo tập dữ liệuLê Thanh Long - Báo cáo chương 1: Tổng quan trí tuệ nhân

tạo- Dự đoán và hiển thị kết quả nhận diện

- Tạo tập dữ liệu

chương trình và module- Huấn luyện dữ liệu- Dự đoán và hiển thị kết quả nhận diện

- Dự đoán và hiển thị kết quả nhận diện

Trang 3

MỤC LỤCDANH MỤC HÌNH III

CÁC TỪ VIẾT TẮT IV

LỜI MỞ ĐẦU 1

CHƯƠNG 1: TỔNG QUAN V TRÍ TUỆ NHÂN TẠO 2

1.1 LỊCH SỬ HÌNH THÀNH VÀ PHÁT TRIỂN CỦA TRÍ TUỆ NHÂN TẠO 2

1.1.1 Lịch sử hình thành và phát triển 2

1.1.2 Mục tiêu của trí tuệ nhân tạo 3

1.2 CÁC LĨNH VỰC TRÍ TUỆ NHÂN TẠO NGHIÊN CỨU 4

1.3 CÁC VẤN ĐỀ TRÍ TUỆ NHÂN TẠO CHƯA GIẢI QUYẾT ĐƯỢC 5

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 7

2.1 TÌM HIỂU MACHINE LEARNING 7

2.2 HÀM OPENCV 7

2.2.1 OpenCV là gì? 7

2.2.2 Tính năng và các module phổ biến trong OpenCV 8

2.2.3 Phát hiện khuôn mặt với các hàm trong OpenCV 9

3.1 THUẬT TOÁN TỐI ƯU ADAM 15

3.2 QUY TRÌNH XÂY DỰNG CHƯƠNG TRÌNH 15

3.2.1 Tạo tập dữ liệu 15

3.2.2 Xây dựng mô hình CNN 18

3.2.3 Huấn luyện mô hình 21

1

Trang 4

3.2.4 Đánh giá mô hình 21

3.2.5 Kiểm tra và thực thi 21

CHƯƠNG 4: CHƯƠNG TRÌNH V KẾT QUẢ THÍ NGHIỆM 22

4.1 MỘT SỐ CÔNG CỤ SỬ DỤNG 22

4.2 CÁC MODULE 22

4.2.1 Tạo tập dữ liệu 22

4.2.2 Huấn luyện mô hình 23

4.2.3 Thực thi nhận diện khuôn mặt 25

4.3 KẾT QUẢ CHƯƠNG TRÌNH 25

4.3.1 Kết quả quá trình huấn luyện 25

4.3.2 Kết quả nhận diện khuôn mặt 27

KẾT LUẬN 28

TI LIỆU THAM KHẢO 29

Trang 5

LỜI MỞ ĐẦUTrong bối cảnh cuộc sống hiện đại đang chuyển biến nhanh chóng và trí tuệnhân tạo ngày càng trở thành một động lực mạnh mẽ đằng sau sự đổi mới và tiệních trong nhiều lĩnh vực Học máy là một lĩnh vực của trí tuệ nhân tạo với khảnăng học từ dữ liệu và tối ưu hóa hiệu suất theo thời gian Việc ứng dụng họcmáy vào nhận diện biển số đang trở thành một xu hướng quan trọng, đặc biệttrong ngữ cảnh nhu cầu về an ninh và tiện ích ngày càng tăng giúp mở ra nhữngcánh cửa mới đối với khả năng nhận diện và xử lý thông tin từ hình ảnh với độchính xác ngày càng cao.

Hiện nay, với sự phát triển kinh tế xã hội đã bùng nổ số lượng phương tiệngiao thông Gây ra những khó khăn trong công tác quản lý, xử lý vi phạm giaothông mà nguồn nhân lực con người khó có thể đảm đương được Vì vậy vần đểcần thiết là có một hệ thông quản lý, xử lý vi phạm giao thông tự động

Để xây dựng hệ thống quản lý giao thông tự động thì “ Bài toán nhận dạngbiển số xe” là tiền đề để xây dựng những mô hình quản lý đó Tuy nhiên, hiệnnay ở Việt Nam nhưng hệ thống quản lý đó chưa nhiều và lĩnh vực nhận dạngcòn đang phát triển

Từ những thực tế đó, chúng em đã quyết định lựa chọn tìm hiểu về bài toán“ nhận dạng bằng phương pháp học máy” trong đó chú trọng vào việc nhận dạngbiển số xe Để phục vụ cho bước đầu trong hệ thống quản lý phương tiện giaothông tại Việt Nam Trong điều kiện năng lực và thời gian có hạn, nên báo cáocủa chúng em không tránh khỏi những sai sót Chúng em kính mong thầy cô vàcác bạn đóng góp những ý kiến để em có thể chỉnh sửa và bổ sung những phầnthiếu sót để em hoàn thiện đề tài của mình

3

Trang 6

CHƯƠNG 1: TỔNG QUAN V TRÍ TUỆ NHÂN TẠO

1.1 LdCH Se HÌNH THNH V PHÁT TRIỂN CfA TRÍ TUỆ NHÂNTẠO

1.1.1 Lịch sử hình thành và phát triển

Lịch sử phát triển của trí tuệ nhân tạo (TTNT) là một hành trình kỳ diệu từnhững tưởng tượng đầu tiên của con người về máy tính thông minh cho đếnnhững đóng góp quan trọng và tiến bộ của công nghệ trong thời đại hiện đại Làmột lĩnh vực đa ngành, TTNT có mục tiêu là tạo ra máy tính có khả năng nghĩ,học, và đưa ra quyết định giống như con người

Turing được coi là người khai sinh ngành trí tuệ nhân tạo Khi ông đưa raphép thử Turing vào những năm 1950 ông nhận ra rằng máy tính có thể lưu trữcả chương trình và dữ liệu, mở ra cánh cửa cho khả năng máy tính có thể có trítuệ giống con người Turing có ý nghĩa rất lớn đã trở thành tiêu chí đánh giá sựthông minh của máy tính trong môi trường giao tiếp hơn thế nhấn mạnh rằngkhả năng giao tiếp thành công của máy với con người trong một cuộc đối thoạitự do và không hạn chế là một biểu hiện của trí thông minh nhân tạo

Trí tuệ nhân tạo là trí thông minh được thể hiện bằng máy móc, trái ngượcvới trí thông minh tự nhiên được con người thể hiện Thông thường, thuật ngữ"trí tuệ nhân tạo" thường được sử dụng để mô tả các máy móc (hoặc máy tính)bắt chước các chức năng "nhận thức" mà con người liên kết với tâm trí conngười, như "học tập" và "giải quyết vấn đề" Trí tuệ nhân tạo có thể được coi làtrí thông minh của máy tính được tạo ra bởi những lập trình của con người vớimục tiêu giúp máy tính có được hành vi thông minh tự động hóa giống conngười

Lịch sử phát triển của trí tuệ nhân tạo có thể chia thành các giai đoạn quantrọng Những năm đầu tiên là giai đoạn tích cực với nhiều tưởng tượng vànghiên cứu rộng khắp, theo sau là giai đoạn gián đoạn và thất vọng khi các kết

Trang 7

quả không đạt được như mong đợi Tuy nhiên, những thành công về sau đã đánhdấu sự hồi sinh của TTNT, đặc biệt là với sự xuất hiện mạnh mẽ của máy học vàhọc sâu.

Hình 1.1 Lịch sử phát triển của Trí tuệ nhân tạo

5

Trang 8

1.1.2 Mục tiêu của trí tuệ nhân tạo

Mục tiêu của trí tuệ nhân tạo không chỉ dừng lại ở việc tạo ra máy tínhthông minh, mà còn mở rộng đến việc hiểu biết cách con người suy nghĩ, học,và xử lý kiến thức Các công nghệ TTNT trở thành một lực lượng trung tâmtrong xã hội đang chuyển sang chế tạo các hệ thống có nhận thức như con ngườivà đáng tin cậy Một số yếu tố đã thúc đẩy cuộc cách mạng trí tuệ nhân tạo.Quan trọng nhất trong số đó là máy học, được hỗ trợ một phần bởi nguồn tàinguyên điện toán đám mây và thu thập dữ liệu rộng khắp dựa trên web Máy họcđã đạt tiến bộ đáng kể bằng "học sâu", một dạng đào tạo các mạng lưới thầnkinh nhân tạo thích nghi sử dụng phương pháp gọi là lan truyền ngược Trí tuệnhân tạođang mở ra một cánh cửa mới của sự sáng tạo và khám phá, đặt conngười trước những cơ hội và trách nhiệm chưa từng có

1.2 CÁC LĨNH VỰC TRÍ TUỆ NHÂN TẠO NGHIÊN CỨU

Trí tuệ nhân tạo đã được chia ra làm nhiều nhánh nghiên cứu nhỏ mỗinhánh quan tâm đến một vài khả năng của con người

Khả năngNhánh nghiên

cứu

Mục tiêu

các kỹ thuật giúp cho máy tính cóthể học tri thức từ dữ liệu đầu vào.Khả năng biểu

diễn tri thức vàsuy diễn

Các phương phápbiểu diễn tri thức vàsuy diễn

Nhánh cung cấp cơ sở để máy tínhcó thể thực hiện việc suy diễn nhưcon người

Khả năng nghe,nhìn

Thị giác máy tính,xử lý tiếng nói

Các nhánh này nghiên cứu và pháttriển các kỹ thuật để giúp máy tínhcó thể nghe và nhìn như con người.Khả năng sử

dụng ngôn ngữ

Xử lý ngôn ngữ tựnhiên

Nhánh nghiên cứu này giúp cho máytính có thể hiểu được ngôn ngữ mà

Trang 9

con người đang sử dụng Khả năng thể

hiện cử chỉ

hành động và cử chỉ như con người

Bảng 1.1: Các lĩnh vực nghiên cứu của Trí tuệ nhân tạo

Trí tuệ nhân tạo cũng được nghiên cứu và ứng dụng trong một số các lĩnhvực như:

Trong lĩnh vực xử lý ngôn ngữ tự nhiên: Hiện nay việc dịch máy tức làchuyển một đoạn văn từ ngôn ngữ này sang ngôn ngữ khác được thực hiện dễdàng bởi ứng dụng Google Translate với kết quả rất tốt Gần đây, một dạng ứngdụng khác cũng rất được quan tâm đó là chatbot được khá nhiều công ty sử dụnglàm trợ lý ảo trên các trang mua sắm và các diễn đàn

Trong lĩnh vực thị giác máy tính: Việc trang bị khả năng nhìn cho máy tínhđã được nghiên cứu từ vài thập niên gần đây Với sự hỗ trợ từ học sâu, hiện naymáy tính có khả năng thực hiện các bài toán trong thị giác máy tính với tốc độvà độ chính xác cao

Giao thông: Trí tuệ nhân tạo được sử dụng để phát triển công nghệ ô tô tựlái và hệ thống giao thông thông minh nhằm cải thiện an toàn, giảm tai nạn vàtăng hiệu quả giao thông

Y tế: Các ứng dụng dựa trên trí tuệ nhân tạo có thể cải thiện các kết quả sứckhỏe và chất lượng cuộc sống cho con người Những ứng dụng chính bao gồmhỗ trợ quyết định lâm sàng, theo dõi và điều trị bệnh nhân, phát hiện bệnh, chẩnđoán y khoa, tư vấn điều trị và dự đoán xu hướng bệnh tật Nó cũng được ápdụng trong nghiên cứu genom và phát triển dược phẩm

Giáo dục: Trí tuệ nhân tạo có thể được sử dụng trong hệ thống giáo dục đểcung cấp việc học ở quy mô cá nhân hóa, tạo ra các nền tảng học tập cá nhânhóa, cung cấp hỗ trợ giáo viên và tự động hóa quá trình đánh giá

7

Trang 10

An ninh và an toàn công cộng: Các camera giám sát có thể phát hiện cácbất thường có thể là tội phạm, máy bay không người lái và các ứng dụng cảnhsát tiên đoán.

Giải trí: Các nền tảng chia sẻ và xem blog, video và các thảo luận chuyênđề có vô số thông tin khác do người dùng tạo ra Những nền tảng này phải dựavào các kỹ thuật đang được phát triển trong xử lý ngôn ngữ tự nhiên, tìm kiếmthông tin, xử lý hình ảnh, tạo nguồn từ đám đông và học máy

1.3 CÁC VẤN Đ TRÍ TUỆ NHÂN TẠO CHƯA GIẢI QUYẾT ĐƯỢC

Mặc dù Trí tuệ nhân tạo (AI) đã đạt được nhiều tiến bộ đáng kể, nhưng vẫncòn nhiều vấn đề và thách thức lớn cần được giải quyết Có ba kỹ năng chínhcủa con người mà trí tuệ nhân tạo không thể sao chép hoặc thay thế

- Khả năng đặt các câu hỏi và đào sâu vào những lý do và nhân tố cơbản để thực hiện và hoàn thành một nhiệm vụ, công việc nó sẽ giúp phântích một vấn đề các góc độ mới hoặc khám phá các nguồn dữ liệu vàthông tin mới

- Tính sáng tạo: Các mô hình dựa trên các kỹ thuật trí tuệ nhân tạo cókhả năng gần như vô hạn khi nó phân tích, nhưng không có khả năngtưởng tượng và sáng tạo Trong lịch sử, trí tưởng tượng và sáng tạo chínhlà các yếu tố quan trọng để xã hội loài người phát triển

- Khả năng giao tiếp: Lắng nghe, đồng cảm và xây dựng mối quan hệlà điều rất quan trọng để kết nối với thế giới xung quanh Kỹ năng giaotiếp sẽ được đánh giá cao và là nhân tốt quyết định tới sự thành côngtrong tương lai

Trang 11

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

Học máy (Machine Learning) là một lĩnh vực của trí tuệ nhân tạo liên quanđến việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống "học" tựđộng từ dữ liệu để giải quyết những vấn đề cụ thể Học máy đòi hỏi sự đánh giácủa con người trong việc tìm hiểu dữ liệu cơ sở và lựa chọn các kĩ thuật phù hợpđể phân tích dữ liệu và yêu cầu lượng dữ liệu đủ lớn để "huấn luyện" và đánhgiá mô hình

Một nhánh nhỏ trong học máy gần đây rất được quan tâm là học sâu (DeepLearning) Học sâu là kỹ thuật sử dụng các mạng nơ-ron tương tự như các nơ-ron của não người để xây dựng hệ thống học máy Đây là một sự kết hợp giữatoán học và khoa học thần kinh Kết quả của nó mang lại cực kỳ to lớn, có thểcoi là khởi nguyên của nhiều ngành công nghiệp mới Tại thời điểm này, hầu hếtcác công ty lớn trong ngành công nghệ thông tin lẫn các ngành khác như ô tô,điện tử đều đang tập trung phát triển và ứng dụng kỹ thuật học sâu cho bài toáncủa mình

Trang 12

OpenCV có hơn 500 hàm khác nhau, được chia làm nhiều phần phục vụcác công việc như: xử lý ảnh, an ninh, camera quan sát, nhận diện, robot

OpenCV được phát hành theo giấy phép BSD, do đó nó miễn phí cho cảhọc tập và sử dụng với mục đích thương mại Nó có trên các giao diện C++, C,Python và Java và hỗ trợ Windows, Linux, Mac OS, iOS và Android OpenCVđược thiết kế để hỗ trợ hiệu quả về tính toán và chuyên dùng cho các ứng dụngreal-time (thời gian thực)

OpenCV đưa ra một hệ thống đơn giản, dễ sử dụng giúp mọi người nhanhchóng xây dựng các ứng dụng trong thị giác máy, kể cả các hệ thống kiểm tratrong nhà máy, bức ảnh trong lĩnh vực y học, bảo mật, robot học Nó chứa cáclập trình xử lý ảnh đơn giản, kể cả thực thi các hàm bậc cao như dò tìm khuônmặt, theo dõi khuôn mặt, nhận dạng khuôn mặt OpenCV được giới thiệu vàotháng 1/1999, OpenCV đã được sử dụng trong rất nhiều ứng dụng, các sản phẩmvà các nghiên cứu như: trong lĩnh vực hàng không, sử dụng giảm nhiễu trong yhọc, phân tích đối tượng, an ninh, hệ thống dò tìm, theo dõi tự động và hệ thốngbảo mật , ngoài ra nó còn được sử dụng trong nhận dạng âm thanh OpenCVcòn là một chìa khóa quan trọng trong các robot sử dụng thị giác như Stanford,Asimo

2 Tính năng và các module phổ biến trong OpenCV

Theo tính năng và ứng dụng của OpenCV, có thể chia thư viện này thánhcác nhóm tính năng và module tương ứng như sau:

Xử lý và hiển thị Hình ảnh/ Video/ I/O (core, imgproc, highgui)Phát hiện các vật thể (objdetect, features2d, nonfree)

Geometry-based monocular hoặc stereo computer vision (calib3d,stitching, videostab)

Computational photography (photo, video, superres)Machine learning & clustering (ml, flann)

CUDA acceleration (gpu)

Trang 13

OpenCV có cấu trúc module, nghĩa là gói bao gồm một số thư viện liên kếttĩnh (static libraries) hoặc thư viện liên kết động (shared libraries)

Core functionality (core) – module nhỏ gọn để xác định cấu trúc dữliệu cơ bản, bao gồm mảng đa chiều dày đặc và nhiều chức năng cơbản được sử dụng bởi tất cả các module khác

Image Processing (imgproc) – module xử lý hình ảnh gồm cả lọc hình

ảnh tuyến tính và phi tuyến (linear and non-linear image filtering),phép biến đổi hình học (chỉnh size, afin và warp phối cảnh, ánh xạ lạidựa trên bảng chung), chuyển đổi không gian màu, biểu đồ, và nhiềucái khác

Video Analysis (video) – module phân tích video bao gồm các tính

năng ước tính chuyển động, tách nền, và các thuật toán theo dõi vậtthể

Camera Calibration and 3D Reconstruction (calib3d) – thuật toánhình học đa chiều cơ bản, hiệu chuẩn máy ảnh single và stereo (singleand stereo camera calibration), dự đoán kiểu dáng của đối tượng(object pose estimation), thuật toán thư tín âm thanh nổi (stereocorrespondence algorithms) và các yếu tố tái tạo 3D

2D Features Framework (features2d) – phát hiện các đặc tính nổi bật

của bộ nhận diện, bộ truy xuất thông số, thông số đối chọi

Object Detection (objdetect) – phát hiện các đối tượng và mô phỏng

của các hàm được định nghĩa sẵn – predefined classes (vd: khuôn mặt,mắt, cốc, con người, xe hơi, …)

High-level GUI (highgui) – giao diện dễ dùng để thực hiện việc giaotiếp UI đơn giản

Video I/O (videoio) – giao diện dễ dùng để thu và mã hóa video

GPU – Các thuật toán tăng tốc GPU từ các modun OpenCV khác.

11

Trang 14

3 Phát hiện biển số xe với các hàm trong OpenCV

Hiện nay trên thế giới đã có rất nhiều cách tiếp cận khác nhau với việcnhận dạng biển số xe, tuy nhiên trong phạm vi đồ án này chúng em sẽ giải quyếtvấn đề theo 3 bước chính:

1 Phát hiện vị trí và tách biển số xe từ một hình ảnh có sẵn từ đầu vào làcamera

2 Phân đoạn các kí tự có trong biển số xe3 Nhận diện các kí tự đó rồi đưa về mã ASCII

1 Hàm os là gì?

“os” có thể coi là một module bao gói các lệnh gọi POSIX hoặc mô phỏngchúng trên một số nền tảng mà không có POSIX Bạn sẽ thấy các hàm gần nhưđược đặt tên giống hệt như trong C và các ngôn ngữ khác cũng như cách thựchiện tương tự Có thể dễ dàng nhận ra các hằng số như os.R_OK,os.WNOHANG được đặt tên chính xác theo C/POSIX

2 Tạo folder bằng os

os.path.exists() cho phép bạn có thể nối các đường dẫn với nhau theo để tạonên 1 đường dẫn hoàn chỉnh và phù hợp nhất Thay vì phải đau đầu sửa code đểtạo đường dẫn theo từng hệ điều hành khác nhau, phương thức này sẽ giúp bạntạo ra đường dẫn phù hợp nhất Hàm này tạo thư mục theo đường dẫn đượctruyền vào

Hình 2.1 Trong thư mục của “os” đã có các bộ huấn luyện có sẵn

Trang 15

CHƯƠNG 3: THUẬT TOÁN V QUY TRÌNH XÂY DỰNGCHƯƠNG TRÌNH

3.1 THUẬT TOÁN KNN

KNN là một trong những thuật toán học có giám sát đơn giản nhất trongMachine Learning, có thể sử dụng cho cả bài toán phân loại và hồi quy Về ýtưởng là gán kết quả với dữ liệu training gần giống với mẫu nhất Ví dụ như khiđi câu cá, ta không biết cá câu lên là cá rô hay cá chép, nhưng khi so sánh nhữngđặc điểm về mắt, mang, vây, từ những con cá rô, cá chép đã thấy thì cuối cùngcó thể quyết định xem con cá mình câu được thuộc nhóm cá nào

KNN hoạt động theo quy trình gồm 4 bước chính:1 Xác định tham số K (số láng giềng gần nhất) 2 Tính khoảng cách từ điểm đang xét đến tất cả các điểm trong tập dữ

liệu cho trước3 Sắp xếp các khoảng cách đó theo thứ tự tăng dần4 Xét trong tập K điểm gần nhất với điểm đang xét, nếu số lượng điểm

của loại nào cao hơn thì coi như điểm đang xét thuộc loại đó

Hình 3.1 Ví dụ về KNNViệc điểm đang xét thuộc loại nào còn phụ thuộc vào hệ số K hay trọng sốkhoảng cách mà người dùng đặt sao cho phù hợp với bài toán đang xét Chẳng

13

Trang 16

hạn ở hình trên nếu ta xét K = 3 thì điểm đang xét sẽ thuộc loại B, ngược lại nếuK = 6 thì nó thuộc loại A Ngoài ra người ta có thể để trọng số cao hơn chonhững điểm gần hơn hay ít khi sử dụng K = 1 để đảm bảo kết quả đầu ra đượctối ưu

Thông thường việc tính khoảng cách đến các điểm sẽ theo công thức Euclid:

X¿= X−min (X )max(X)−min ( X)Để dễ hiểu hơn chúng em xin lấy một ví dụ về một công ty muốn đưa dòngxe ô tô mới của mình vào thị trường và muốn biết xe sẽ bán chạy hay ế Họ tổnghợp các dữ liệu về dung tích xi lanh, giá tiền, màu sơn, diện tích xe của các dòngxe đã xuất ra thị trường Đặt Z là khả năng tiêu thụ cụ các dòng xe Z = 0 nghĩalà xe ế, Z = 1 nghĩa là xe sẽ bán chạy

Hình 3.1.2 Xét khả năng tiêu thụ của xeSau đó ta chuẩn hóa dữ liệu:

Trang 17

Hình 3.1.3 Dữ liệu sau chuẩn hóaSau đó ta tính khoảng cách giữa điểm đang xét đến các dữ liệu cho trước.Lưu ý ở các biến có giá trị định tính nếu khác nhau khoảng cách sẽ bằng 1,giống nhau sẽ bằng 0 Ví dụ ta tính khoảng các giữa dòng xe 6 và 1:

d(6,1)=√(0.34 1− )2

+(0.43 0.85− )2

+12

+(0.89 0.22− )2

Hình 3.1.4 Sau khi tính khoảng cách và xếp hạng

Nhìn hình trên nếu chọn K=1 thì kết quả Z=1, nếu K=3 thì Z=0, nếu K=5 thìZ=0

Tuy nhiên phương pháp này có một số ưu và nhược điểm như sau:- Ưu điểm:

Dễ sử dụng và cài đặtĐộ phức tạp tính toán nhỏViệc dự đoán kết quả rất đơn giản- Nhược điểm:

15

Trang 18

Với K nhỏ, khi gặp nhiễu dễ đưa ra kết quả không chính xácCần nhiều thời gian lưu trainning set và nếu test tăng lên sẽ tốn rất nhiều thời gian

3.2 QUY TRÌNH XÂY DỰNG CHƯƠNG TRÌNH

Trong bài toán chúng ta xác định được input là ảnh chứa biển số xe, outputlà ảnh kết quả nhận diện chữ và số trên biển số xe

1 Phát hiện và tách biển số xe1.1 Hướng giải quyết

Sơ đồ dưới đây sẽ tóm gọn các bước để xác định và tách biển số xe từ clip:

Hình ảnh 3.2.1.Các bước tách biển số xe

Đầu tiên từ clip ta sẽ cắt từng frame ảnh ra từ clip đầu vào để xử lý, táchbiển số Ở phạm vi đồ án này, ý tưởng chủ yếu là nhận diện được biển số từ sựthay đổi đột ngột về cường độ ánh sáng giữa biển số và môi trường xung quanhnên ta sẽ loại bỏ các dữ liệu màu sắc RGB bằng cách chuyển sang ảnh xám.Tiếp theo ta tăng độ tương phản với hai phép toán hình thái học Top Hat vàBlack Hat để làm nổi bật thêm biển số giữa phông nền, hỗ trợ cho việc xử lý nhị

Trang 19

phân sau này Sau đó, ta giảm nhiễu bằng bộ lọc Gauss để loại bỏ những chi tiếtnhiễu có thể gây ảnh hưởng đến quá trình nhận diện, đồng thời làm tăng tốc độxử lý.

Việc lấy ngưỡng sẽ giúp ta tách được thông tin biển số và thông tin nền, ởđây chúng em chọn lấy ngưỡng động (Adaptive Threshold) Tiếp đó ta sử dụngthuật toán phát hiện cạnh Canny để trích xuất những chi tiết cạnh của biển số.Trong quá trình xử lý máy tính có thể nhầm lẫn biển số với những chi tiết nhiễu,việc lọc lần cuối bằng các tỉ lệ cao/rộng hay diện tích của biển số sẽ giúp xácđịnh được đúng biển số Cuối cùng, ta sẽ xác định vị trí của biển số trong ảnhbằng cách vẽ Contour bao quanh

1.2 Chuyển ảnh xám

Ảnh xám (Gray Scale) đơn giản là một hình ảnh trong đó các màu là các sắc

thái của màu xám với 256 cấp độ xám biến thiên từ màu đen đến màu trắng,nằm trong giải giá trị từ 0 đến 255, nghĩa là cần 8 bits hay 1 byte để biểu diễnmỗi điểm ảnh này Lý do cần phải phân biệt giữa ảnh xám và các ảnh khác nằmở việc ảnh xám cung cấp ít thông tin hơn cho mỗi pixel Với ảnh thông thườngthì mỗi pixel thường được cung cấp 3 trường thông tin trong khi với ảnh xámchỉ có 1 trường thông tin, việc giảm khối lượng thông tin giúp tăng tốc độ xử lý,đơn giản hóa giải thuật nhưng vẫn đảm bảo các tác vụ cần thiết

Ở bài này chúng em sẽ chuyển ảnh xám từ hệ màu HSV thay vì RGB vì vớikhông gian màu HSV ta có ba giá trị chính là: Vùng màu (Hue), độ bão hòa(Saturation), cường độ sáng (Value) Vì lý do đó không gian màu HSV thíchnghi tốt hơn đối với sự thay đổi ánh sáng từ môi trường ngoài Khi chuyển đổi,ảnh xám ta cần là ma trận các giá trị cường độ sáng tách ra từ hệ màu HSV

17

Trang 20

2.1 Tăng độ tương phảnA Phép toán hình thái học

Hình thái học toán học là một lý thuyết và kỹ thuật để phân tích và xử lý cấutrúc hình học, hình ảnh đầu ra được xác định chủ yếu dựa vào phần từ cấu trúc(structuring elements/kernel)

Hình 3.2.2 Ví dụ về phần tử cấu trúc

Hình thái học toán học đã được phát triển cho hình ảnh nhị phân, và sau đóđược mở rộng cho ảnh xám, Đây là một trong những kỹ thuật được áp dụngtrong giai đoạn tiền xử lý Hai phép toán thường dùng là phép giãn nở (Dilation)và phép co (Erosion) Từ hai phép toán cơ bản này người ta phát triển thànhmột số phép toán như phép đóng (Closing) và phép mở (Opening) và phép TopHat, Black Hat

a Phép co

Phép toán co có ứng dụng trong việc giảm kích thước của đối tượng, tách rờicác đối tượng gần nhau, làm mảnh và tìm xương của đối tượng

Trang 21

Hình 3.2.4 Phép giãn nở

c.Phép mở

Là thực hiện phép co trước sau đó mới thực hiện phép giãn nở Phép toánmở được ứng dụng trong việc loại bỏ các phần lồi lõm và làm cho đường baocác đối tượng trong ảnh trở nên mượt mà hơn

19

Trang 22

Hình 3.2.4 Phép mởd.Phép đóng

Thực hiện phép giãn nở trước sau đó mới thực hiện phép co Phép toán đóngđược dùng trong ứng dụng làm trơn đường bao các đối tượng, lấp đầy cáckhoảng trống biên và loại bỏ những hố nhỏ

Hình 3.2.6 Phép đónge.Phép Top Hat

Phép Top Hat là kết quả của phép trừ ảnh của ảnh ban đầu với ảnh sau khithực hiện phép mở, dùng để làm nổi bật nhưng chi tiết trắng trong nền tối

Hình 3.2.7 Phép Top Hat

g.Phép Black Hat

Trang 23

Phép Black Hat là kết quả của phép trừ ảnh của ảnh sau khi thực hiện phépđóng với ảnh ban đầu Dùng làm nổi bật chi tiết tối trong nền trắng.

Hình 3.2.8 Phép Black Hat

B Tăng độ tương phản

Để làm tăng độ tương phản của biển số, chúng em sử dụng chủ yếu hai phépTop Hat và Black Hat Ý tưởng chung là ảnh đầu ra sẽ là ảnh gốc cộng thêm ảnhqua phép Top Hat và trừ đi ảnh qua phép Black Hat Những chi tiết đã sáng sẽsáng hơn và những chi tiết tối lại càng tối hơn, từ đó sẽ làm tăng độ tương phảncho biển số

Hình 3.2.8 Ảnh sau khi tăng độ tương phản

21

Trang 24

1.3 Giảm nhiễu bằng bộ lọc GaussA Nhiễu

Noise được hiểu cơ bản là các dạng chấm hạt nhỏ phân bố trên hình ảnh.Noise có thể làm biến dạng các chi tiết trong ảnh khiến cho chất lượng ảnh thấp

Trên thực tế có nhiều loại nhiễu, nhưng người ta thường chia làm ba loại:nhiễu cộng, nhiễu nhân và nhiễu xung Bản chất của nhiễu thường tương ứngvới tần số cao và cơ sở lý thuyết của bộ lọc là chỉ cho những tín hiệu có tần sốnhất định đi qua, nên người ta thường sử dụng bộ lọc thông thấp hay trung bình

Hình 3.2.9 Nhiễu

B Bộ lọc Gauss (Gauss filter)

Bộ lọc Gauss được cho là bộ lọc hữu ích nhất, được thực hiện bằng cáchnhân chập ảnh đầu vào với một ma trận lọc Gauss sau đó cộng chúng lại để tạothành ảnh đầu ra

Ý tưởng chung là giá trị mỗi điểm ảnh sẽ phụ thuộc nhiều vào các điểm ảnhở gần hơn là các điểm ảnh ở xa Trọng số của sự phụ thuộc được lấy theo hàmGauss (cũng được sử dụng trong quy luật phân phối chuẩn)

Trang 25

Hình 3.2.10 Ma trận lọc Gauss

Giả sử ảnh là một chiều Điểm ảnh ở trung tâm sẽ có trọng số lớn nhất Cácđiểm ảnh ở càng xa trung tâm sẽ có trọng số giảm dần khi khoảng cách từ chúngtới điểm trung tâm tăng lên Như vậy điểm càng gần trung tâm sẽ càng đóng gópnhiều hơn vào giá trị điểm trung tâm

Trang 26

B Nhị phân hóa

Là quá trình biến đổi một ảnh xám thành ảnh nhị phân.- Gọi giá trị cường độ sáng tại một điểm ảnh là I(x,y) - INP(x,y) là cường độ sáng của điểm ảnh trên ảnh nhị phân - (Với 0 < x < image.width) và (0 < y < image.height)

Để biến đổi ảnh xám thành ảnh nhị phân Ta so sánh giá trị cường độ sángcủa điểm ảnh với một ngưỡng nhị phân T

- Nếu I(x,y) > thì INP(x, y) = 0.T

- Nếu I(x,y) > thì INP(x, y) = 255.TC Nhị phân hóa với ngưỡng động

Việc nhị phân hóa ảnh với ngưỡng toàn cục như thông thường sẽ rất khókhăn khi phải tự tính toán và chọn mức ngưỡng phù hợp cho từng ảnh khácnhau Nhị phân hóa ảnh ngưỡng động sẽ giúp tính toán ngưỡng cho phù hợp vớitừng ảnh, lợi thế thứ hai chính là nó rất phù hợp khi ảnh có vùng bị quá chóihoặc quá tối dẫn đến có thể mất luôn hình ảnh tại vùng đó nếu sử dụng ngưỡngtoàn cục

Về ý tưởng chính sẽ theo 3 bước sau:1 Chia tấm ảnh thành nhiều khu vực, cửa sổ (Region) khác nhau 2 Dùng một thuật toán để tìm một giá trị phù hợp với từng cửa sổ.T

3 Áp dụng phương pháp nhị phân hóa cho từng khu vực, cửa sổ vớingưỡng phù hợp.T

Ngày đăng: 18/09/2024, 16:44

w