Tải bản đầy đủ (.pdf) (51 trang)

Đồ án khoa cơ điện, điện tử, đại học lạc hồng (18)

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 (3.11 MB, 51 trang )

ĐẠI HỌC LẠC HỒNG
KHOA CƠ ĐIỆN ĐIỆN TỬ
---

BÁO CÁO NGHIÊN CỨU KHOA HỌC

Đề tài:

NHẬN DIỆN THỦ NGỮ HỖ TRỢ NGƯỜI CÂM

PHẠM TÀI NĂNG
TRIỆU VẦN PHAM

Đồng nai, 6/2022


ĐẠI HỌC LẠC HỒNG
KHOA CƠ ĐIỆN ĐIỆN TỬ
---

BÁO CÁO NGHIÊN CỨU KHOA HỌC

Đề tài:

NHẬN DIỆN THỦ NGỮ HỖ TRỢ NGƯỜI CÂM
Chuyên ngành: Kỹ thuật Điện - Điện tử

NGƯỜI HƯỚNG DẪN KHOA HỌC
ThS :NGÔ KIM LONG
SVTH: PHẠM TÀI NĂNG
TRIỆU VẦN PHAM



1


LỜI CẢM ƠN
Cảm ơn các thầy cô đã giúp đỡ chúng em trong quá trình học tập và quá trình làm đồ
án tốt nghiệp, cảm ơn các thầy cô trong khoa Cơ Điện – Điện Tử cùng với sự động viên
tinh thần từ bạn bè và gia đình ln ở phía sau ủng hộ.
Lời nói đầu tiên em xin cảm ơn đến Ban giám hiệu trường Đại Học Lạc Hồng, quý thầy
cô trong khoa Cơ Điện – Điện Tử đã tận tình giúp đỡ chúng em trong suốt thời gian
vừa qua em học tập tại trường.
Đặc biệt em xin gửi lời cảm ơn chân thành nhất đến với thầy giáo ThS Ngô Kim Long
đã trực tiếp giúp đỡ và hướng dẫn em trong quá trình làm đồ án này.

Đồng nai, ngày tháng năm 2022
Sinh viên thực hiện
2


Phạm Tài Năng
Triệu Vần Pham

3


LỜI CAM ĐOAN
Tơi xin cam đoan cơng trình nghiên cứu là của tôi, các số liệu, kết quả nêu ra
trong đồ án tốt nghiệp là trung thực và chính xác.
Tơi xin cam đoan mọi sự giúp đỡ cho việc thực hiện đồ án tốt nghiệp này đã
được xin phép, tất cả các thơng tin trích dẫn trong luận văn đều được ghi rõ nguồn góc.


Sinh viên thực hiện

Phạm Tài Năng
Triệu Vần Pham

4


MỤC LỤC

CHƯƠNG 1

TỔNG QUAN

1.1 Đặt vấn đề
1.2 Tổng quan.
1.3 Mục đích và phạm vi nghiên cứu.
1.4 Phương pháp nghiên cứu.
1.4.1 Nghiên cứu tổng quan.
1.4.2 Nghiên cứu lí thuyết.
CHƯƠNG 2

3
3
3
4
4
4
4


2.1 Giới thiệu phần cứng.
2.2 Giới thiệu deep learning và ứng dụng.
2.3 Mơ hình Convolution Neural Network (CNN)
2.3.1 giới thiệu mạng CNN
2.3.2 Kiến trúc CNN
2.4 Các mơ hình họ YOLO.
2.4.1 Tổng quan về YOLO.
2.4.2 Kiến trúc YOLO v1.
2.4.3 Kiến trúc YOLOv2.
2.4.4 YOLO-v3.
2.4.5 YOLOv4.
CHƯƠNG 3 THIẾT KẾ

5
8
10
10
10
11
11
12
12
13
14
15

3.1 Phát biểu bài toán.
3.2 Thuật toán YOLOV5.
3.2.1 Kiến trúc của YOLO v5

3.2.2 Các pretrain-model của YOLO v5
3.2.3 Hiệu suất của các kiến trúc YOLO v5
3.3 Các độ đo trong bài toán Object detection.
3.3.1 Giới thiệu về các độ đo.
3.3.2 Các độ đo trong bài toán object detection
3.4 Dữ liệu thực nghiệm.
3.4.1 Tổng quan
3.4.2 Bảng tập dữ liệu:
3.5 Quá trình huấn luyện và kiểm thử.
3.5.1 Cấu hình yêu cầu
3.5.2 Quá trình huấn luyện và kiểm thử.
CHƯƠNG 4 34

15
16
16
17
17
18
18
19
21
21
21
22
22
23

4.1 Kết quả huấn luyện
4.2 Bảng thống kế thử nghiệm.

4.2.1 Kết quả kiểm thử trên tập validation dataset.
4.2.2 Kết quả kiểm thử trên tập testing dataset.

25
27
27
27
5


4.3 Đánh giá kết quả thực nghiệm
4.4 Nhận xét
CHƯƠNG 5 39

28
29

5.1 Kết quả đạt được.
TÀI LIỆU THAM KHẢO

30
1

PHỤ LỤC

6


DANH MỤC HÌNH ẢNH
Hình 1. 1 Găng tay chuyển ngữ ...................................................................................10

Hình 1. 2 Đồng hồ thơng minh giúp người câm điếc ..................................................10
Hình 2. 1 Phần mềm lập trình visual code ...................................................................12
Hình 2. 2 Ngơn ngữ lập trình Python 3.7 .....................................................................13
Hình 2. 3 Quy trình cho một bài tốn học sâu. ............................................................ 15
Hình 2. 4 Mơ hình convolution neural network ...........................................................17
Hình 2. 5 Sơ đồ phát triển của thuật toán YOLO ........................................................19
Hình 2. 6 Mơ hình kiến trúc YOLO v1 phiên bản đầu tiên .........................................19
Hình 2. 7 Mơ hình kiến trúc Yolov2 ............................................................................20
Hình 2. 8 Mơ hình kiến trúc YOLOv3 .........................................................................20
Hình 2. 9 Mơ hình kiến trúc YOLOv4 .........................................................................21
Hình 3. 1 Mơ hình kiến trúc YOLO v5 ........................................................................25
Hình 3. 2 Confusion matrix..........................................................................................27
Hình 3. 3 Hình ảnh trong tập huấn luyện .....................................................................30
Hình 3. 4 Hình ảnh quá trình huấn luyện model tại epoch thứ 99 ............................... 33
Hình 3. 5 Kết quả đánh giá trên tập validation dataset ................................................33
Hình 3. 6 Kết quả đánh giá trên tập testing dataset .....................................................34

Hình 4. 1 Ảnh dự đốn trên tập test

28

Hình 5. 1 Nhận diện được chữ A và phát ra âm thanh.................................................39
Hình 5. 2 Nhận diện được chữ B và phát ra âm thanh .................................................39

7


DANH MỤC BẢNG BIỂU
Bảng 3. 1 Tập dữ liệu huấn luyện ................................................................................30
Bảng 3. 2 Cấu hình tham số model. .............................................................................31

Bảng 4. 1 Kết quả tửu trên tập validation dataset ........................................................36
Bảng 4. 2 Kết quả kiểm thử trên tập testing dataset ....................................................36

8


CHƯƠNG 1 TỔNG QUAN
1.1 Đặt vấn đề
Hiện nay các bệnh nhân bị câm rất khó tiếp xúc được với các thiết bị y tế, do thiếu
phiên dịch viên ngôn ngữ. Ở nước ta hiện có khoảng 1 đến 2,5 triệu người câm, tuy
nhiên có rất ít phiên dịch viên ngơn ngữ ký hiệu. Đối tượng áp dụng là : sản phẩn dùng
hỗ trợ cho những đối tượng bị dị tật khơng thể giao tiếp được bằng lời nói và gặp nhiều
khó khăn khi muốn giao tiếp với những người lạ không biết ngôn ngữ của người câm
trong những trường hợp như: giao lưu với mọi người ngoài xh hay trường hợp khẩn
cấp như muốn hỏi đường về nhà khi đi lạc ...Đây là một đề tài có tính nhân văn cao là
cơ hội giúp người câm điếc có một cuộc sống hằng ngày gần hơn với người bình
thường. Người bình thường cũng có thể giao tiếp dễ dàng với người câm điếc mà không
bị rào cản bởi các ngôn ngữ kí hiệu. Nhóm hy vọng dự án này có thể được phát triển
mở rộng để đóng góp cho cộng đồng người câm điếc hòa nhập hơn với xã hội.

1.2 Tổng quan.
Ở Việt Nam có rất ít thiết bị hỗ trợ cho người câm điếc như: Găng tay chuyển
ngữ. Sản phẩm găng tay chuyển ngữ của 2 bạn Phạm Thiên Tân và Chử Hoàng Minh
Đức nghiên cứu và sáng tạo ra năm 2017 nó có khả năng chuyển đổi ngơn ngữ ký hiệu
thành tiếng Việt xóa bỏ những rào cản vơ hình.
Về mặt ưu điểm: Người đeo vào găng tay sẽ đưa ra các kí hiệu ngơn ngữ sau đó
trên màn hình sẽ xuất hiện văn bản cùng âm thanh tương ứng với từng cử chỉ tay của
người dùng.
Nhược điểm: Cần phải đeo găng tay mới thực hiện được


9


Hình 1. 1 Găng tay chuyển ngữ

Một sản phẩm của 2 bạn Trần Thị Thanh Ngân và Nguyễn Hiền Thảo Chi học
trường THPT chuyên Trần Phú – Hải Phòng đã nghiên cứu ra sản phẩm đồng hồ đa
năng giúp người câm điếc nói chuyện.
Chiếc đồng hồ này tích hợp một chiếc điện thoại thông minh để chuyển đổi ngôn
ngữ ký hiệu của người câm điếc thành giọng nói và giọng nói thành chữ viết.Nhưng
điều đặc biệt sản phẩm này nhìn bên ngồi khơng khác gì các đồng hồ thơng thường.
Nhỏ gọn giúp người khuyết tật cảm thấy bớt sự tự ti trong giao tiếp, nâng cao
cuộc sống hằng ngày.

Hình 1. 2 Đồng hồ thơng minh giúp người câm điếc

Cịn hơm nay chúng em làm về sản phẩm mơ hình nhận dạng thủ ngữ hỗ trợ người
câm giúp cho những người khơng được may mắn về mặt giọng nói họ có thể nói lên

10


được nỗi lịng của mình đồng thời giúp các y bác sĩ trong lĩnh vực phiên dịch giảm bớt
gánh nặng cơng việc để có thể tập trung và phát triển các lĩnh vực khác của ngành y tế.
1.3 Mục đích và phạm vi nghiên cứu.
Đối tượng áp dụng là : sản phẩm dùng hỗ trợ cho những đối tượng bị dị tật khơng
thể giao tiếp được bằng lời nói và gặp nhiều khó khăn khi muốn giao tiếp với những
người lạ không biết ngôn ngữ của người câm trong những trường hợp như: giao lưu với
mọi người ngoài xã hội hay trường hợp khẩn cấp như muốn hỏi đường về nhà khi đi
lạc ...


1.4 Phương pháp nghiên cứu.
Nghiên cứu qua các sách báo, tài liệu trên các website khoa học cơng nghệ trong nước
và quốc tế sau đó phân tích và tổng hợp lại với nhau. Nghiên cứu các kí hiệu thủ ngữ
và xây dựng dữ liệu liên quan đến xử lí ảnh, viết chương trình điều khiển lập trình trên
phần mềm Visual Studio Code bằng ngôn ngữ Python.

11


CHƯƠNG 2

CƠ SỞ LÝ THUYẾT

2.1 Giới thiệu phần mềm.
Sử dụng IDE visual studio code

Hình 2. 1 Phần mềm lập trình visual code

Là một trình biên tập lập trình code miễn phí dành cho Windows, Linux và
macOS, Visual Studio Code được phát triển bởi Microsoft. Nó được xem là một sự kết
hợp hoàn hảo giữa IDE và Code Editor.
Visual Studio Code hỗ trợ chức năng debug, đi kèm với Git, có syntax
highlighting, tự hồn thành mã thơng minh, snippets, và cải tiến mã nguồn. Nhờ tính
năng tùy chỉnh, Visual Studio Code cũng cho phép người dùng thay đổi theme, phím
tắt, và các tùy chọn khác.
Tính năng của visual code:
Hỗ trợ nhiều ngơn ngữ lập trình.
Visual Studio Code hỗ trợ nhiều ngơn ngữ lập trình như C/C++, C#, F#, Visual
Basic, HTML, CSS, JavaScript, … Vì vậy, nó dễ dàng phát hiện và đưa ra thơng báo

nếu chương chương trình có lỗi.
Hỗ trợ đa nền tảng, cung cấp kho tiện ích mở rộng, hỗ trợ web, lưu trữ dữ liệu
dạng phân cấp, lưu trữ dữ liệu dạng phân cấp, hỗ trợ viết Code, lưu trữ dữ liệu dạng
phân cấp, màn hình đa nhiệm, Intellisense, hỗ trợ Git, bình luận.
12


Lý do chọn visual code .
Lý do bạn nên sử dụng Visual Studio Code là vì nó có rất nhiều ưu điểm vượt
trội so với bất kỳ IDE nào khác:
Hỗ trợ đa nền tảng: Windows, Linux, Mac
Hỗ trợ đa ngôn ngữ: C/C++, C#, F#, Visual Basic, HTML, CSS, JavaScript,
JSON, ít dung lượng, Tính năng mạnh mẽ, Intellisense chuyên nghiệp, Giao diện thân
thiện, Và trên hết, Visual Studio Code là phần mềm miễn phí, được đơng đảo lập trình
viên trên thế giới sử dụng
Nghiên cứu về các động tác thủ ngữ của người câm thông qua sách, báo, trên các
thông tin đại chúng và một số thiết bị và máy đã được ứng dụng vào trong cuộc sống.
Trong đó cũng có nghiên cứu và chọn lọc với các tác giả trong và ngồi nước chun
về xử lí ảnh, các nghiên cứu đã được cơng bố.
Sử dụng ngơn ngữ lập trình Python

Hình 2. 2 Ngơn ngữ lập trình Python 3.7

Python là một ngơn ngữ lập trình bậc cao đa năng hướng đối tượng đã ra đời từ
khá lâu, nhưng đến hiện tại vẫn là ngơn ngữ lập trình có nhiều ứng dụng thực tế và
được sử dụng nhiều nhất hiện nay. Vì Python có ưu điểm dễ đọc, dễ nhớ cấu trúc rõ
ràng và ngắn gọn tương thích trên nhiều nền tảng hệ điều hành khác nhau
như Windows, Mac OS và Linux.

13



Uư điểm của ngơn ngữ lập trình python
Dù là một trong những ngôn ngữ được sử dụng nhiều nhất hiện nay, Python có
những ưu và nhược điểm riêng phù hợp với từng đối tượng khác nhau.
So với những ngôn ngữ lập trình hiện nay Python có cấu trúc đơn giản, rõ ràng
ngắn gọn đặc biệt là rất dễ học đây được coi là ngôn ngữ nhập môn cho những người
muốn theo nghề lập trình viên.
Ngồi ứng dụng của Python rất đa năng thì ngơn ngữ này cịn có mặt trên tất cả
các hệ điều hành như Windows, MacOS, MS-DOS, Unix,...
Một ưu điểm lớn khơng thể bỏ qua của Python chính là tương thích với thư viện
lớn nhất hiện nay với 400 triệu người sử như data mining Scikit-learn, Pandas ...
Có tốc độ xử lý cực nhanh, Python có thể phát triển để tạo ra những script siêu
nhỏ tới những phần mềm cực lớn như Blender 3D.
Nhược điểm của ngôn ngữ lập trình python:
Dù có rất nhiều ưu điểm và có ứng dụng đa năng thì Python cũng có một vài
khuyết điểm như:
Python khơng có các thuộc tính như :protected,private hay public, khơng có vịng
lặp do…while và switch….case.
Dù có nhiều ưu điểm tốt hơn so với các ngơn ngữ lập trình khác nhưng lại có tốc
độ chậm hơn ngơn ngữ lập trình C++, Java.
Tuy cũng có một vài nhược điểm nhỏ nhưng Python vẫn là ngơn ngữ lập trình mà
bất cứ lập trình viên nào cũng nên học hỏi và làm quen, để tiết kiệm thời gian trong
công việc cũng như phát triển hơn nữa trong nghề nghiệp.
ứng dụng của pyhon trong thực tế.
Ứng dụng của Python trong tự động hóa công việc.

14



2.2 Giới thiệu deep learning và ứng dụng.
Trong những năm gần đây, trí tuệ nhân tạo (Artificial Intelligence) đang nổi lên
như một bằng chứng của cuộc cách mạng công nghiệp lần thứ tư, với sự phát triển vượt
bậc của deep learning đã giúp cho con người tiến lên một bậc trong ngành khoa học
máy tính, mở ra các hướng nghiên cứu, những ứng dụng trong thực tế. Trí tuệ nhân tạo
đang ngày càng chiếm một phần quan trọng trong cuộc sống của chúng ta, từ những
chiếc xe ô tô tự hành của tesla, google đến các mạng xã hội sử dụng trí tuệ nhân tạo
cũng như các hệ thống gợi ý tiên tiến của Netflix, Tiktok đó chỉ là một trong các ứng
dụng của trí tuệ nhân tạo.
Deep learning được xây dựng dựa trên nguyên lý giống như cấu tạo bộ não của
con người bao gồm các mạng neural network bằng các liên kết với nhau giúp cho máy
có thể học tập tương tự như con người. Các hướng chính nghiên cứu và ứng dụng chính
của deep learning hiện nay chính là computer vision, natural language processing,
reinforcement learning, trong đó computer vision bao gồm các bài tốn chính như phân
loại ảnh, video, phát hiện đối tượng, sinh ảnh, natural language processing áp dụng
trong các bài tốn về text trong đó có dịch máy, phân loại văn bản, phân tích ngữ nghĩa,
các hệ thống tìm kiếm. Reinforcement learning được ứng dụng trong các ứng dụng mơ
phỏng, các hệ thống trị chơi điện tử, robot…

2.3 Sơ đồ về deep learning.

Hình 2. 3 Quy trình cho một bài tốn học sâu.

15


Giai đoạn 1: Thu thập dữ liệu.
Quá trình thu thập dữ liệu phụ thuộc vào bài toán mà chúng ta muốn giải quyết,
đối với các bài tốn có liên quan đến dữ liệu hình ảnh, video ta có thể sử dụng các
camera để thu lưu trữ hoặc chúng ta có thể thu thập nguồn dữ liệu từ internet. Đối với

dữ liệu text ta thường phải thu thập cũng như truy xuất từ database các nguồn phong
phú trên internet. Qúa trình thu thập dữ liệu cần chú ý đến chất lượng của dữ liệu như
sự đa dạng của dữ liệu, độ sạch của dữ liệu, tính nhất quán của dữ liệu.
Quá trình thu thập dữ liệu phụ thuộc vào bài tốn mà chúng ta muốn giải quyết,
đối với các bài toán có liên quan đến dữ liệu hình ảnh, video ta có thể sử dụng các
camera để thu lưu trữ hoặc chúng ta có thể thu thập nguồn dữ liệu từ internet. Đối với
dữ liệu text ta thường phải thu thập cũng như truy xuất từ database các nguồn phong
phú trên internet. Qúa trình thu thập dữ liệu cần chú ý đến chất lượng của dữ liệu như
sự đa dạng của dữ liệu, độ sạch của dữ liệu, tính nhất quán của dữ liệu.
Giai đoạn 2: Tiền xử lý dữ liệu.
Tiền xử lý dữ liệu là một trong những giai đoạn quan trọng trong học máy, nó
giúp xây dựng mơ hình học máy chính xác. Tiền xử lý dữ liệu là một q trình làm sạch
dữ liệu thơ, dữ liệu được thu thập từ nhiều nguồn trong thế giới thực và được chuyển
thành một tập dữ liệu sạch để khả thi cho việc phân tích. Dữ liệu thơ ban đầu có một số
đặc điểm như dữ liệu bị thiếu sót, khơng nhất quán, nhiễu vì vậy dữ liệu này phải được
xử lý trước khi đưa vào học máy.
Giai đoạn 3: Xây dựng model.
Mục tiêu chính của chúng ra là xây dựng model phù hợp dựa trên data hiện có,
đối với dữ liệu hình ảnh thường sẽ xử dụng các model CNN, đối với dữ liệu text thường
sẽ sử dụng các model dạng RNN, LSTM
Giai đoạn 4: Huấn luyện và kiểm thử trên tập dữ liệu.
Để huấn luyện một mơ hình, ban đầu chúng ta chia mơ hình thành 03 giai đoạn
bao gồm: dữ liệu huấn luyện (training data), dữ liệu xác nhận (validation data) và dữ
16


liệu kiểm thử (testing data). Để huấn luyện bộ phân lớp ta sử dụng tập dữ liệu huấn
luyện (training set), để tinh chỉnh các tham số ta sử dụng tập hợp xác nhận (validation
set) và sau đó kiểm tra hiệu suất của bộ phân loại chưa biết sử dụng tập dữ liệu kiểm
thử (test set). Một lưu ý quan trọng là trong quá trình huấn luyện bộ phân lớp là dữ liệu

kiểm thử không được sử dụng để huấn luyện.
Giai đoạn 5: Đánh giá
Đánh giá mơ hình là một phần quan trọng trong quy trình phát triển mơ hình, nó
giúp tìm ra mơ hình tốt nhất để đại diện cho dữ liệu của chúng ta và mơ hình được chọn
sẽ hoạt động tốt như thế nào trong tương lai.

2.3 Mô hình Convolution Neural Network (CNN)
2.3.1 giới thiệu mạng CNN
Mạng nơ-ron nhân tạo (Neural Network - NN) là một mơ hình lập trình mơ phỏng
cách thức hoạt động của mạng nơ-ron thần kinh. Kết hợp với các kĩ thuật học sâu (Deep
Learning - DL), mạng nơ-ron nhân tạo đang trở thành một công cụ rất mạnh mẽ mang
lại hiệu quả tốt nhất cho nhiều bài tốn khó như nhận dạng ảnh, giọng nói hay xử lý
ngơn ngữ tự nhiên.
Trong mạng neural, mơ hình mạng neural tích chập (CNN) là một phân· trong
những mơ hình để nhận dạng và phân loại hình ảnh. Trong đó, xác định đối tượng và
nhận dạng khn mặt là 1 trong số những lĩnh vực mà CNN được sử dụng rộng rãi
2.3.2 Kiến trúc CNN

Hình 2. 4 Mơ hình convolution neural network

17


Mạng CNN là một tập hợp các lớp Convolution chồng lên nhau và sử dụng các
hàm nonlinear activation như ReLU và tanh để kích hoạt các trọng số trong các node.
Mỗi một lớp sau khi thơng qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn
cho các lớp tiếp theo. Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các
thơng tin trừu tượng hơn cho các lớp tiếp theo. Trong mô hình mạng truyền ngược
(feedforward neural network) thì mỗi neural đầu vào (input node) cho mỗi neural đầu
ra trong các lớp tiếp theo. Mơ hình này gọi là mạng kết nối đầy đủ (fully connected

layer) hay mạng toàn vẹn (affine layer). Cịn trong mơ hình CNNs thì ngược lại. Các
layer liên kết được với nhau thông qua cơ chế convolution. Layer tiếp theo là kết quả
convolution từ layer trước đó, nhờ vậy mà ta có được các kết nối cục bộ. Như vậy mỗi
neuron ở lớp kế tiếp sinh ra từ kết quả của filter áp đặt lên một vùng ảnh cục bộ của
neuron trước đó. Mỗi một lớp được sử dụng các filter khác nhau thơng thường có hàng
trăm hàng nghìn filter như vậy và kết hợp kết quả của chúng lại. Ngồi ra có một số
layer khác như pooling, subsampling layer dùng để chắt lọc lại các thông tin hữu ích
hơn (loại bỏ các thơng tin nhiễu).

2.4 Các mơ hình họ YOLO.
2.4.1 Tổng quan về YOLO.
YOLO là từ viết tắt của “You Only Look Once” nghĩa là bạn chỉ nhìn một lần, ý
nghĩa của câu nói cho ta thấy được tốc độ cực nhanh của chúng. YOLO là một thuật
toán sử dụng mạng neural networks để giải quyết bài toán phát hiện đối tượng thuật
toán này là một bước đột phá trong lĩnh vực computer vision với khả năng nhận diện
đối tượng chính xác và cho tốc độ cao. Yolo được sử dụng rất nhiều trong các bài toán
thực tế như xe tự hành, phát hiện tín hiệu đèn giao thông, các hệ thống giám sát thông
minh, các hệ thống chấm cơng, quản lý tự động, thuật tốn đã và đang được các nhà
khoa học máy tính ứng dụng và nghiên cứu phát triển.
Những đặc điểm nổi bật của YOLO:


Về tốc độ: Thuật toán Yolo được cải thiện về tốc độ nó đáp ứng việc phát hiện
đối tượng theo thời gian thực.

18





Về độ chính xác: Yolo là một trong những thuật tốn đáp ứng được sự cân bằng
giữa độ chính xác và tốc độ tốt nhất hiện nay.



Khả năng triển khai: Yolo rất dễ triển khai và đạt hiệu quả tốt trên các thiết bị
có phần cứng tính tốn nhỏ cũng như đạt hiệu quả cực cao khi triển khai trên
các hệ thống máy chủ.

Hình 2. 5 Sơ đồ phát triển của thuật toán YOLO

2.4.2 Kiến trúc YOLO v1.
Được lấy cảm hứng từ kiến trúc Googlenet, Yolo phiên bản đầu tiên được triển
khai có tổng cộng 24 convolution layers với 2 fully connected layers.

Hình 2. 6 Mơ hình kiến trúc YOLO v1 phiên bản đầu tiên

2.4.3 Kiến trúc YOLOv2.
YOLOv2 được đề xuất năm 2016 với mục đích khắc phục các yếu điểm của
YOLOv1 ( yếu điểm của YOLOv1 chính là khơng giải quyết được vấn đề object nhỏ).

19


YOLOv2 được cải tiến bằng cách bổ xung thêm các batch normalization giúp giá trị độ
đo mAP tăng lên thêm hai phần trăm.

Hình 2. 7 Mơ hình kiến trúc Yolov2

Một đóng góp lớn của phiên bản YOLOv2 chính là cho phép dự đoán nhiều

bounding boxes từ các từ single cell, với mỗi ơ YOLOv2 dự đốn ra 5 bounding boxes
thay vì 1 như phiên bản YOLO v1. Số 5 ở đây được tác giả rút ra từ quá trình thực
nghiệm model và kiến trúc backbone được sử dụng trong model YOLOv2 chính là
DarkNet-19.
2.4.4 YOLO-v3.
YOLO-V3 là bản cải tiến của YOLOv2 về mặt tốc độ cũng như cải thiện điểm
yếu nhận diện object nhỏ của họ nhà YOLO. Bằng việc sử dụng các kiến trúc residual
networks và skip connections đã giúp tốc độ của YOLOv3 tăng lên đáng kể.

Hình 2. 8 Mơ hình kiến trúc YOLOv3

20


YOLOv3 sử dụng backbone là DarkNet-53 (là một phiên bản cải tiến của
DarkNet-19) , một điểm mới của YOLOv3 chính là model cho phép dự đoán các
bounding boxes ở các tỉ lệ khác nhau thay vì chỉ một tỷ lệ nhất định như 2 phiên bản
trước sử dụng. YOLOv3 chỉ dự đốn 3 bounding boxes ít hơn con số 5 trong YOLOv2
nhưng nó đưa ra 3 dự đốn ở tỷ lệ khác nhau nên sẽ sinh ra 9 bounding boxes giúp cải
thiện vấn đề object nhỏ trong họ nhà YOLO.
2.4.5 YOLOv4.
YOLOv4 được đề xuất bởi Bochkovskiy et. al. vào năm 2020 là phiên bản cải
tiến của YOLOv3 Thuật toán đạt được kết quả hiện đại với Độ chính xác trung bình
43,5% khi chạy ở 65 FPS trên GPU Tesla v100.

Hình 2. 9 Mơ hình kiến trúc YOLOv4

Điểm cải tiến của YOLOv4 so với YOLOv3 chính là bổ xung thêm trọng số cho
Residual Connections, kết hợp sử dụng Mini Batch Normalization, Cross Stage Partial
Connections kết hợp với các phương pháp tăng cường ảnh để huẩn luyện model và đạt

được SOTA hiện tại.
YOLOv5 là một dự án mã nguồn mở được tác giả đưa lên với mục đích cho cộng
đồng tự đánh giá hiệu quả cũng như chất lượng của mơ hình, yolov5 là phiên bản được
21


cải tiến mạnh mẽ về tốc độ. Trong đồ án này em sẽ sử dụng model YOLOv5s để giải
quyết bài tốn của mình.

22


CHƯƠNG 3 THIẾT KẾ
3.1 Phát biểu bài toán.
Bài toán nhận diện thủ ngữ hỗ trợ người câm sử dụng trí tuệ nhân tạo. Cụ thể khi
người câm thực hiện hành động trước camera thì camera sẽ thu hình ảnh lại vào đẩy
vào mơ hình để dự đốn xem là đang muốn thể hiện hành động gì, khi người dùng giơ
tay ám chỉ kí hiệu chữ cái ‘a’ bằng thủ ngữ, hệ thống sẽ nhận diện kí hiệu và trả về kết
quả của hành động và hiển thị lên màn hình tương tự khi người dùng giơ tay ám chỉ kí
hiệu chữ cái ‘b’ bằng thủ ngữ hệ thống sẽ nhận diện kí hiệu và trả về kết quả của hành
động. Ngược lại khi người dùng giơ các kí hiệu khơng phải thủ ngữ hệ thống sẽ không
trả về kết quả của hành động.
Sơ đồ huấn luyện mơ hình:
Dữ liệu huấn luyện

Gắn nhãn dữ liệu

Tiền xử lí dữ liệu

Huấn luyện mơ hình


Dữ liệu kiểm thử

Mơ hình dự đốn

Kết quả

23


● Dữ liệu huấn luyện:
Dữ liệu huấn luyện là dữ liệu đã được thu thập và gán nhãn với mục đích là được
dùng để huấn luyện mơ hình. Trong đồ án này dữ liệu được thu thập từ các trang web
nổi tiếng như kaggle, UCI, Youtube và dữ liệu tự quay, gán nhãn dữ liệu ở đây là với
mỗi ảnh được gán nhãn bằng cách khoanh vùng khu vực kí hiệu và ghi nhãn.
● Dữ liệu kiểm thử:
Dữ liệu kiểm thử là dữ liệu lấy riêng biệt từ tập dữ liệu mục đích là để đánh giá
khả năng dự đốn của mơ hình, thơng thường dữ liệu kiểm thử sẽ lấy khoảng 10-20%
so với tập dữ liệu gốc để đánh giá hiệu quả mơ hình cũng như tính đúng đẵn, chính xác
của mơ hình sau khi huấn luyện. Trong đồ án này, tập dữ liệu kiểm thử bao gồm 250
ảnh chữa 2 nhãn.
● Tiền xử lý dữ liệu:
Dữ liệu sau khi được thu thập vẫn gặp phải một số vấn đề như sự đa dạng, nhiễu,
một số thiếu hụt khi gán nhãn. Sử dụng các kỹ thuật argument data làm tăng cường dữ
liệu, chuyển ảnh từ dạng RGB [0-255] về miền [0-1]
● Huấn luyện mơ hình:
Huấn luyện mơ hình là quá trình đào tạo cho networks học được những đặc trưng
của dữ liệu, cụ thể trong đồ án chính là các kí hiệu thủ ngữ. Qúa trình thực nghiệm sử
dụng các tham số mơ hình và cấu hình train khác nhau trong đồ án đã chọn được một
bộ tham số tốt nhất.

● Mơ hình dự đốn:
Mơ hình dự đốn chính là mơ hình sau khi trải qua q trình huấn luyện được một
bộ trọng số tốt nhất và mang đi dự đoán kết quả.

3.2 Thuật toán YOLOV5.
3.2.1 Kiến trúc của YOLO v5

24


×