TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN
HỌC MÁY NÂNG CAO
ĐỀ TÀI:
NHẬN DIỆN BIỂN SỐ XE
Sinh viên thực hiện
: LƯU TÙNG LINH
BÙI XUÂN HÙNG
ĐINH TIẾN ĐÔNG
Giảng viên hướng dẫn : PHẠM THỊ KIM DUNG
Ngành
: CƠNG NGHỆ THƠNG TIN
Chun ngành
: CƠNG NGHỆ PHẦN MỀM
Lớp
: D13CNPM7
Khóa
: 2018-2023
Hà Nội, 26 tháng 02 năm 2022
PHIẾU CHẤM ĐIỂM
Sinh viên thực hiện:
Họ và tên
Chữ ký
Ghi chú
Lưu Tùng Linh
(188100310591)
Bùi Xuân Hùng
(18810310603)
Đinh Tiến Đông
(18810310593)
Giảng viên chấm:
Họ tên
Chữ ký
Giảng viên chấm 1:
Giảng viên chấm 2:
MỤC LỤC
Ghi chú
Điểm
CHƯƠNG 1: TỔNG QUAN VỀ HỌC MÁY...........................................................1
1. Tổng quan về học máy......................................................................................1
1.1. Khái niệm về học máy..................................................................................1
1.2. Các phương pháp về học máy......................................................................2
1.2.1 Học có giám sát.......................................................................................2
1.2.2. Học khơng giám sát................................................................................3
1.2.3. Học máy bán giám sát............................................................................4
1.2.4. Học máy tăng cường..............................................................................5
1.3. Ứng dụng của học máy................................................................................6
CHƯƠNG 2: BÀI TOÁN NHẬN DIỆN BIỂN SỐ XE............................................7
1. Giới thiệu về bài toán........................................................................................7
1.1. Đặt vấn đề....................................................................................................7
1.2. Mơ tả............................................................................................................7
1.3. u cầu bài tốn...........................................................................................7
1.4. Phân tích bài tốn.........................................................................................8
2. Mơi trường thực nghiệm....................................................................................8
2.1 Cài đặt mơi trường python............................................................................8
3. Xây dựng và giới thiệu mơ hình........................................................................8
3.1 Mơ hình Yolov4............................................................................................8
3.2. Module PaddleOCR.....................................................................................9
3.3. Xây dựng mơ hình......................................................................................10
3.3.1 Tiến hành Crawl dữ liệu........................................................................10
3.3.2 Gán nhãn dữ liệu qua Labelimg............................................................11
3.3.4. Tiến hành train Model Yolo.................................................................12
3.3.5. Kết quả sau khi train YOLO................................................................13
3.3.6. Cắt vùng ảnh chứa biển số xe dựa vào tọa độ xác định sau khi train
model..............................................................................................................14
3.3.7. Sử dụng PaddleOCR để đọc kí tự biển số đã cắt.................................14
3.4. Giao diện sử dụng......................................................................................15
KẾT LUẬN.............................................................................................................16
LỜI MỞ ĐẦU
Những năm gần đây với sự phát triển vượt bậc của công nghệ thông tin.
“Machine Learning” đang là một cụm từ được mọi người chú ý đến với khả năng
tự học hỏi một cách nhanh chóng khi có một lượng dữ liệu nhất định cùng với
thuật toán phù hợp “Machine learning” một cụm từ được mọi người chú ý đến với
khả năng tự học hỏi một cách nhanh chóng khi có một dữ liệu nhất định cùng với
thuật toán phù hợp.
Hiện nay, càng nhiều người chú ý và quan tâm đến Machine learning bởi
những thành tích đáng kể mà nó đem lại cho con người, ví dụ như con người gia
tăng dung lượng lưu trữ các loại dữ liệu sẵn, việc xử lý tính tốn có chi phí thấp và
hiệu quả hơn rất nhiều lần mang lại độ chính xác cao. Ngồi ra, Machine learning
có thể thay thế con người trong một số cơng việc như kiểm sốt đèn, phương tiện
giao thông hay thiết kết bãi đỗ xe thơng minh,… Chính sự hiệu quả trong cơng
việc và các lợi ích mà Marchine Learrning đem lại cho con người vì vậy em quyết
định chọn đề tài: “Nhận diện biển số xe”.
CHƯƠNG 1: TỔNG QUAN VỀ HỌC MÁY
1. Tổng quan về học máy
1.1. Khái niệm về học máy
Hình 1.1: Minh họa về học máy
- Học máy hay máy học có tên tiếng Anh đầy đủ là Machine Learning, viết tắt là
ML. Thuật tốn Machine Learning là các chương trình máy tính có khả năng học
hỏi và hoàn thành các nhiệm vụ, đồng thời là cách để cải thiện hiệu suất theo thời
gian vô cùng hiệu quả.
- Học máy là công nghệ được phát triển từ trí tuệ nhân tạo
- Ngồi ra, Machine Learning cịn được biết là cịn là cơng nghệ phát triển từ lĩnh
vực trí tuệ nhân tạo tiên tiến nhất hiện nay. Để đảm bảo khơng có sai lệch và không
xuất hiện dữ liệu giả, Machine Learning vẫn cần quá trình tìm hiểu và lựa chọn kỹ
thuật phân tích dữ liệu từ con người.
- Học máy ngày càng mang tính phổ biến trên toàn thế giới. Sự tăng trưởng vượt
bậc của dữ liệu lớn (Big Data) và các thuật toán Machine Learning đã cải thiện độ
chính xác của những mơ hình và dự đốn tương lai.
6
1.2. Các phương pháp về học máy
Có 2 loại học máy chính là học có giám sát (supervised learning) và học khơng
giám sát (unsupervised learning).
1.2.1 Học có giám sát
Hình 1.2.1: Học có giám sát
- Trong học có giám sát, máy tính học cách mơ hình hóa các mối quan hệ dựa trên
dữ liệu được gán nhãn (labeled data). Sau khi tìm hiểu cách tốt nhất để mơ hình
hóa các mối quan hệ cho dữ liệu được gắn nhãn, các thuật toán được huấn luyện
được sử dụng cho các bộ dữ liệu mới.
- Trong học có giám sát, các quan sát bắt buộc phải được dán nhãn trước. Đây
chính là một trong những nhược điểm của phương pháp này, bởi vì khơng phải lúc
nào việc dán nhãn chính xác cho quan sát cũng dễ dàng. Tuy nhiên, việc quan sát
được dán nhãn cũng lại chính là ưu điểm của học có giám sát bởi vì một khi đã thu
thập được một bộ dữ liệu lớn được dán nhãn chuẩn xác, thì việc huấn luyện trở nên
dễ dàng hơn rất nhiều so với khi dữ liệu không được dán nhãn.
7
- Ứng dụng của kĩ thuật học có giám sát: Xác định tín hiệu hay biến số tốt nhất để
dự báo lợi nhuận trong tương lai của cổ phiếu hoặc dự đốn xu hướng thị trường
chứng khốn.
1.2.2. Học khơng giám sát
Hình 1.2.2: Học khơng giám sát
- Trong thuật tốn này chúng ta không biết được dữ liệu đầu ra hay nhãn mà chỉ
có dữ liệu đầu vào. Thuật tốn Học khơng giám sát dựa vào cấu trúc của dữ liệu để
thực hiện một cơng việc nào đó, ví dụ như phân nhóm hoặc giảm số chiều của dữ
liệu để thuận tiện trong việc lưu trữ và tính tốn.
- Một cách tốn học, Học khơng giám sát là khi chúng ta chỉ có dữ liệu vào X mà
khơng biết nhãn Y tương ứng.
- Những thuật tốn loại này được gọi là Học khơng giám sát vì khơng giống như
Học có giám sát, chúng ta khơng biết câu trả lời chính xác cho mỗi dữ liệu đầu
8
vào. Giống như khi ta học, khơng có thầy cơ giáo nào chỉ cho ta biết đó là chữ A
hay chữ B. Cụm không giám sát được đặt tên theo nghĩa này.
- Ứng dụng của học không giám sát: Phân loại các cơng ty thành các nhóm cơng ty
tương đồng dựa trên đặc điểm của chúng thay vì sử dụng tiêu chuẩn của các nhóm
ngành hoặc các quốc gia.
1.2.3. Học máy bán giám sát
Hình 1.2.3: Học bán giám sát
- Các bài tốn khi chúng ta một lượng dữ liệu lớn X nhưng chỉ một phần trong tập
dữ liệu đó được gán nhãn thì được gọi là học bán giám sát. Những bài tốn thuộc
nhóm này nămg giữa hai nhóm là học có giám sát và học khơng giám sát.
- Một ví dụ điển hình cho học bán giám sát là chỉ có một phần ảnh hoặc văn bản
được gán nhãn (ví dụ bức ảnh về người, về động vật hoặc các văn bản khoa học,
…) và một phần lớn các bức ảnh/ văn bản đó chưa được gán nhãn được thu thập từ
internet.
- Thực tế có rất nhiều bài tốn Machine Learning thuộc vào nhóm này vì việc thu
thập dữ liệu có nhãn tốt rất nhiều thời gian và chi phí cao. Rất nhiều loại dữ liệu
9
thậm chí cần phải có chun gia mới gán nhãn được, ngược lại dữ liệu chưa có
nhãn có thể thu thập với chi phí thấp từ internet.
1.2.4. Học máy tăng cường
Hình 1.2.4: Học máy tăng cường
- Học tăng cường là các bài toán giúp cho hệ thống tự động xác định được hành vi
dựa trên hoàn cảnh để đạt được lợi ích cao nhất. Hiện tại học tăng cường chủ yếu
được áp dụng vào lý thuyết trò chơi, các thuật toán cần xác định nước đi tiếp theo
để đạt được điểm số cao nhất.
- Ví dụ điển hình cho phương pháp học tăng cường này là: AlphaGo gần đây nổi
tiếng với việc chơi cờ vây thắng cả con người.
10
1.3. Ứng dụng của học máy
- Các thuật toán ML đang được sử dụng để phân tích dữ liệu lớn (big data) để giúp
dự đoán xu hướng hoặc sự kiện thị trường, ví dụ như dự đốn kết quả cuộc bầu cử
chính trị.
- Các thuật tốn nhận dạng hình ảnh hiện có thể phân tích dữ liệu từ các hệ thống
chụp ảnh vệ tinh để cung cấp thông tin về số lượng khách hàng tại các bãi đậu xe
của cửa hàng bán lẻ, hoạt động vận chuyển và cơ sở sản xuất, và sản lượng nông
nghiệp...Những thông tin này sẽ cung cấp dữ liệu đầu vào cho các mơ hình định
giá hoặc các mơ hình kinh tế.
Nhận diện khn mặt: Thể loại có thể là mặt hiện tại so với khơng có mặt.
Có thể có một danh mục riêng cho mỗi người trong cơ sở dữ liệu của một số
cá nhân.
Nhận dạng ký tự, chữ viết: Chúng ta có thể phân đoạn một đoạn văn bản
thành các hình ảnh nhỏ hơn, mỗi đoạn chứa một ký tự. Các danh mục có thể
bao gồm 26 chữ cái của bảng chữ cái tiếng Anh, mười chữ số và một số ký
tự đặc biệt.
Nhận dạng giọng nói: Nhận dạng giọng nói (SR) là bản dịch các từ được
nói thành văn bản. Nó cịn được gọi là nhận dạng giọng nói tự động (ASR),
nhận dạng giọng nói máy tính hoặc lời nói thành văn bản(STT).
11
CHƯƠNG 2: BÀI TOÁN NHẬN DIỆN BIỂN SỐ XE
1. Giới thiệu về bài toán
1.1. Đặt vấn đề
Bài toán nhận diện biển số xe là một loại bài tốn khơng hề mới, ứng dụng của nó
đã được triển khai rộng rãi trong cuộc sống thường ngày như bãi đỗ xe thông minh,
hệ thống thu tiền tại các đường cao tốc hay đến cả nghiệp vụ truy bắt. Bài toán
nhận diện biển số xe có mơ hình chung như sau:
- Thứ nhất là nhận diện một biển số xe, ta sẽ thu thập dữ liệu thông qua video
hoặc các ảnh đã cắt về biển số xe.
- Thứ hai là ta sẽ xác định vị trí biển số xe trong những bức ảnh hoặc video,
các bức ảnh có thể có nhiều biển số xe, có kích thước và góc độ khác nhau
1.2. Mơ tả
- Bài toán được thực hiện để nhận dạng biển số xe qua model YOLO để phát hiện
biển số xe. Sau đó, crop biển số xe và sử dụng PaddleOCR để hiển thị dữ liệu của
biển
1.3. Yêu cầu bài toán
- Bài tốn có 2 bước chính là:
Phát hiện biển số xe
Nhận diện biển số xe
- Bài toán nhận diện biển số xe phải xác định được tất cả biển số xe có thể nhìn
thấy trong hình
- Sau đó hiển thị dữ liệu của biển số xe tương ứng.
12
1.4. Phân tích bài tốn
- Input: 1 ảnh khơng có kích cỡ nhất định về biển số xe
- Output: Hiện thông tin của biển số xe
- Dataset: Bộ dữ liệu biển số xe ở hầm gửi xe tại tòa chung cư Ecomart
- Xây dựng và train một model YOLO và module có sẵn PaddleOCA
2. Mơi trường thực nghiệm
2.1 Cài đặt môi trường python
- Cài đặt phiên bản python 3.7 tại trang chủ: .
- IDE: Pycharm
- Bộ thư viện sử dụng: flask, numpy, opencv, pandas, yolo, paddleOCR,
matplotlib,
Imutils,…
- Sử dụng Google Colab để train mơ hình dữ liệu học máy
3. Xây dựng và giới thiệu mơ hình
3.1 Mơ hình Yolov4
- Yolo là một mơ hình mạng CNN cho việc phát hiện, nhận dạng, phân loại đối
tượng. Yolo được tạo ra từ việc kết hợp giữa các convolutional layers và connected
layers.Trong đóp các convolutional layers sẽ trích xuất ra các feature của ảnh, cịn
full-connected layers sẽ dự đốn ra xác suất đó và tọa độ của đối tượng.
Họ các mơ hình RCNN ( Region-Based Convolutional Neural Networks) để
giải quyết các bài toán về định vị và nhận diện vật thể.
Họ các mơ hình về YOLO (You Only Look Once) dùng để nhận dạng đối
tượng được thiết kế để nhận diện các vật thể real-time
13
Hình 3.2.1: Mơ hình Yolov4
- YOLO sử dụng linear regression để dự đốn các thơng tin ở mỗi ơ vng. Do đó,
ở layer cuối cùng chúng ta sẽ khơng sử dụng bất kì hàm kích hoạt nào cả. Với ảnh
đầu vào là 448x448, mơ hình CNN có 6 tầng max pooling với size 2x2 sẽ giảm 64
lần kích thước ảnh xuống còn 7x7 ở output đầu ra. Đồng thời thay vì sử dụng tầng
full connected ở các tầng cuối cùng, chúng ta có thể thay thế bằng tầng 1x1 conv
với 13 feature maps để output shape dễ dàng cho ra 7x7x13.
3.2. Module PaddleOCR
- Mô-đun ocr_db_crnn được sử dụng để nhận dạng các ký tự trong ảnh. Dựa trên
hộp văn bản được phát hiện bởi text_detection_db, nó tiếp tục nhận dạng các ký tự
Trung Quốc trong hộp văn bản. Sau đó, phân loại góc của hộp văn bản được phát
hiện được thực hiện. Thuật toán nhận dạng văn bản cuối cùng thông qua CRNN
(Mạng nơ-ron tái chế chuyển đổi), cụ thể là Mạng nơ-ron tổng hợp tuần hồn. Nó
là sự kết hợp của DCNN và RNN và chuyên dùng để nhận dạng các đối tượng tuần
tự trong ảnh. Được sử dụng cùng với mất CTC, để nhận dạng văn bản, nó có thể
học trực tiếp từ các chú thích cấp độ từ hoặc cấp văn bản và khơng u cầu chú
thích cấp độ ký tự chi tiết. Mô-đun này là một mơ hình OCR chung hỗ trợ dự đốn
trực tiếp..
14
Hình 3.2.2: Mơ hình PaddleOCR
3.3. Xây dựng mơ hình
3.3.1 Tiến hành Crawl dữ liệu
Hình 3.3.1: Tiến hành Crawl dữ liệu
15
- Bộ dữ liệu là hơn 1000 bức ảnh được lấy thực tế từ các hầm để xe ở chung cư Hà
Nội và trên website.
- Tiến hành crawl dữ liệu sau khi đã có bộ dữ liệu gốc qua WebDriver.
Hình 3.3.2: Crawl dữ liệu
3.3.2 Gán nhãn dữ liệu qua Labelimg
Hình 3.3.3: Gán nhãn dữ liệu
16
- Dữ liệu được trả về sau khi gán nhãn
Hình 3.3.4: Dữ liệu sau khi gán nhãn
3.3.4. Tiến hành train Model Yolo
Hình 3.3.4: Tiến hành train Model Yolo
17
Hình 3.3.4: Tiến hành train model Yolo
3.3.5. Kết quả sau khi train YOLO
Hình 3.3.5: Kết quả sau khi train model YOLO
18
3.3.6. Cắt vùng ảnh chứa biển số xe dựa vào tọa độ xác định sau khi train
model
Hình 3.3.6: Cắt tạo độ đã xác định trong ảnh biển xe
3.3.7. Sử dụng PaddleOCR để đọc kí tự biển số đã cắt
- Kết quả thu được:
Hình 3.3.6. Sử dụng PaddleOCR để đọc kí tự biển số đã cắt
19
3.4. Giao diện sử dụng
3.4.1. Xây dựng trên nền web
Hình 3.4.1: Giao diện trang chủ
Sử dụng Flask để đưa mô hình nhận diện biển số xe lên nền Web
- Kết quả thu được:
Hình 3.4.2: Kết quả thu được
20
KẾT LUẬN
Kết quả đạt được: chúng em đã cài đặt được thuật toán và sử dụng các thư viện
trong quá trình học tập. Với kiến thức nền tảng đã được học ở trường và bằng sự
nỗ lực của mình, chúng em đã hoàn thành đề tài “Nhận dạng biển số xe”. Mặc dù
đã cố gắng và đầu tư rất nhiều nhưng do thời gian có hạn, kiến thức cịn non yếu
nên phần mềm chắc chắn còn nhiều hạn chế. Chúng em rất mong nhận được sự
thơng cảm và góp ý của thầy, cô giáo để đề tài của chúng em được hoàn thiện hơn.
Một lần nữa chúng em xin chân thành cảm ơn cơ Phạm Thị Kim Dung đã tận
tình giúp đỡ chúng em trong suốt thời gian thực hiện đề tài này.
21
TÀI LIỆU THAM KHẢO
[1]. Giáo trình Machine Learning cơ bản-Vũ Hữu Tập, Nhà xuất bản khoa học và
kỹ thuật.
[2]. Slide bài giảng Học Máy- Nguyễn Nhật Quang, Trường Đại Học Bách Khoa
Hà Nội.
[3]. Trang web Kaggle.com.
[4]. Vũ Hữu Tiệp; Machine Learning cơ bản; Last update: March8, 2018.
[5]. Nguyễn Thanh Tuấn; Deep Learning cơ bản; Last update: October 2019.
22