You are on page 1of 57

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT


----------

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

ĐỀ TÀI:
XÂY DỰNG ỨNG DỤNG NHẬN DIỆN BIỂN BÁO GIAO
THÔNG TRÊN THIẾT BỊ DI ĐỘNG

Hà Nội, 05/2023
tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Mục Lục
LỜI CẢM ƠN................................................................................................................3

LỜI MỞ ĐẦU................................................................................................................4

CHƯƠNG 1: KHẢO SÁT MÔ TẢ BÀI TOÁN.........................................................6

1.1 Khảo sát bài toán...................................................................................................6

1.2. Tổng quan về phát hiện và nhận diện biển báo....................................................8

1.3. Mục tiêu và nhiệm vụ nghiên cứu......................................................................10

1.4. Đối tượng và phạm vi nghiên cứu......................................................................12

1.5. Phương pháp để nghiên cứu bài toán.................................................................14

CHƯƠNG 2: CÁC KIẾN THỨC NỀN TẢNG.........................................................17

2.1 Artificial Intelligence, Machine leaning, deep leaning.......................................17

2.2 Thuật toán YOLO................................................................................................20

2.2.1 Giới thiệu......................................................................................................20

2.2.2 Các phiên bản của YOLO............................................................................23

2.2.3 Kiến trúc.......................................................................................................28

2.3 Lập trình di động.................................................................................................31

CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG TRÊN THIẾT BỊ DI ĐỘNG.................34

3.1 Xây dựng mô hình..............................................................................................34

3.1.1 Môi trường huấn luyện.................................................................................34

3.1.2 Chuẩn bị dữ liệu...........................................................................................36

3.1.3 Training model.............................................................................................41

3.1.4 Kết quả.........................................................................................................43

3.2 Xây dựng ứng dụng.............................................................................................46

3.2.1 Lựa chọn framework....................................................................................46


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng
3.2.2 Phân tích thiết kế hệ thống ứng dụng...........................................................48

3.2.3 Triến khai ứng dụng.....................................................................................48

ĐÁNH GIÁ KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN..............................................53

1.Đánh giá kết quả của đề tài....................................................................................53

2. Hướng phát triển đề tài..........................................................................................53

DANH MỤC TÀI LIỆU THAM KHẢO...................................................................55


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

LỜI CẢM ƠN

Chúng em xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc đối với các
thầy cô của trường Đại học Mỏ- Địa chất và đặc biệt là các thầy cô khoa Công
Nghệ Thông Tin của trường đã tạo điều kiện cho chúng em có cơ hội tham gia
vào đề tài NCKH.

Chúng em cũng xin chân thành cảm ơn Thầy Lê Hồng Anh đã nhiệt tình
hướng dẫn chỉ bảo, hỗ trợ chúng em trong quá trình thực hiện đề tài.

Mặc dù đã cố gắng hoàn thành báo cáo trong phạm vi và khả năng cho
phép nhưng chắc chắn sẽ không tránh khỏi những thiết sót. Chúng em rất mong
nhận được sự thông cảm, góp ý và tận tình chỉ bảo của quý thầy cô và các bạn.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

LỜI MỞ ĐẦU

Tại Việt Nam, tình trạng an toàn giao thông đường bộ vẫn còn diễn biến
phức tạp, số người chết vì tai nạn giao thông vẫn ở mức cao do tình trạng xâm
phạm các công trình giao thông vẫn còn xảy ra phổ biến, hạ tầng giao thông
kém, biển báo dày đặc nên gây ra rất nhiều khó khăn cho người tham gia giao
thông. Cụ thể, năm 2022, Toàn quốc xảy ra 10.316 vụ tai nạn giao thông, làm
chết 5.810 người và bị thương 6.945 người. So với cùng kỳ năm 2019 (khi chưa
có dịch Covid-19), số vụ giảm 35%, số người chết giảm 16,6% và số người bị
thương giảm gần 43%. Tuy nhiên, nếu so với cùng kỳ năm ngoái, 2 tiêu chí số
vụ và số người chết tăng tương ứng 2% và 13%, còn số người bị thương giảm
gần 2%. Riêng ùn tắc giao thông xảy ra 75 vụ, giảm 41 vụ so với cùng kỳ năm
ngoái. Các vụ tai nạn dẫn đến chết người xảy ra trên các tuyến quốc lộ có chiều
hướng gia tăng. Theo đánh giá của Bộ Công an và các nhà chức năng, nguyên
nhân của những vụ tai nạn giao thông trên chủ yếu do người điều khiển phương
tiện đi sai phần đường, tránh vượt sai quy định, vi phạm tốc độ, chuyển hướng
không quan sát hết biển báo giao thông.

Ở thời đại công nghệ 4.0 ngày nay, trí tuệ nhân tạo (Artificial Intelligence -
AI) đang trở thành một trong những lĩnh vực phát triển mạnh nhất. Trong đó, AI
nhận diện biến báo giao thông đóng vai trò quan trọng trong việc giảm thiểu tai
nạn giao thông và tăng cường an toàn cho những người tham gia giao thông. Trí
tuệ nhân tạo đang được áp dụng trong việc nhận diện biển báo giao thông tại
Việt Nam nhằm cải thiện tính an toàn và đảm bảo an toàn giao thông. Việc này
đang được triển khai trong một số dự án thử nghiệm và có tiềm năng để được
phát triển rộng rãi trong tương lai. Ứng dụng của trí tuệ nhân tạo trong nhận diện
biển báo giao thông có thể giúp giảm thiểu các tai nạn giao thông và cải thiện
tính an toàn trên các tuyến đường. Ngoài ra, nó còn có thể giúp quản lý giao
thông một cách thông minh hơn, bằng cách tự động cập nhật thông tin về biển

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

báo giao thông và đưa ra các giải pháp phù hợp với tình huống giao thông thực
tế.

Tuy nhiên, để triển khai thành công các hệ thống nhận diện biển báo giao
thông, cần có sự đầu tư và phát triển hạ tầng công nghệ cũng như đào tạo nhân
lực với kỹ năng và kiến thức về trí tuệ nhân tạo. Việc này đòi hỏi sự hợp tác
giữa các đơn vị chức năng và các công ty công nghệ tại Việt Nam để đưa ra các
giải pháp tiên tiến và hiệu quả trong việc giải quyết các vấn đề giao thông trên
địa bàn.

Nghiên cứu về AI nhận diện vật thể giao thông là một lĩnh vực còn khá là
mới tại Việt Nam nhưng đầy triển vọng. Nó sử dụng các kỹ thuật học máy và
mô hình học sâu để phân loại và nhận diện các vật thể giao thông trong các hình
ảnh hoặc video được chụp từ các camera giám sát hoặc cảm biến trên các
phương tiện giao thông. Ở thời đại công nghệ hiện nay, việc áp dụng trí tuệ nhân
tạo vào giải quyết các vấn đề trong đời sống trở nên ngày càng phổ biến và
mang lại nhiều lợi ích hơn bao giờ hết đặc biệt trong lĩnh vực giao thông đường
bộ, nhận dạng biển báo giao thông bằng mobile app là một ứng dụng rất hữu ích
giúp cho người dùng có thể nhận biết các biển báo trên đường một cách dễ dàng
và thuận tiện.

Trong nghiên cứu này, chúng em tập trung vào việc phát triển một mô hình
AI nhận diện vật thể giao thông hiệu quả và chính xác. Chúng em sẽ xem xét các
kỹ thuật tiên tiến nhất trong lĩnh vực này và thử nghiệm chúng trên các bộ dữ
liệu thực tế. Mục tiêu của nghiên cứu này là tạo ra một mô hình AI có thể nhận
diện biển báo giao thông được sử dụng để giảm thiểu tai nạn giao thông và nâng
cao chất lượng cuộc sống cho cộng đồng.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

CHƯƠNG 1: KHẢO SÁT MÔ TẢ BÀI TOÁN

1.1 Khảo sát bài toán

Nói về giao thông trên địa bàn nước Việt Nam ta ngày nay, tình trạng ùn
tắc và tai nạn giao thông trên các địa bàn đặc biệt là thành phố lớn luôn được coi
là vấn đề bức thiết.

Việt Nam là một trong những nước có mật độ giao thông đường bộ cao
nhất thế giới. Tuy nhiên, tình trạng tai nạn giao thông và vi phạm luật giao thông
tại Việt Nam cũng rất phổ biến. Theo thống kê từ Cục Đăng kiểm Việt Nam,
tính đến tháng 6 năm 2021, số lượng xe cộ tham gia giao thông đường bộ tại
Việt Nam là hơn 48 triệu chiếc, trong đó có hơn 38 triệu xe máy và 10 triệu ô tô
và xe tải. Điều này đặt ra nhiều thách thức trong việc quản lý và duy trì an toàn
giao thông. Ngoài ra, theo Bộ Giao thông Vận tải Việt Nam, trong năm 2020,
toàn quốc xảy ra 18.220 vụ tai nạn giao thông, làm chết 8.279 người và bị
thương 14.802 người. Số lượng vụ tai nạn tăng 4,57% so với năm 2019, trong
đó, tai nạn xảy ra trên đường cao tốc chiếm tỷ lệ cao nhất. Các yếu tố gây ra tai
nạn giao thông được xác định bao gồm thiếu tầm nhìn, thiếu thông tin về biển
báo, nhận thức của người tham gia giao thông còn hạn chế, tốc độ, và sự không
tuân thủ luật giao thông. Trong đó, việc không tuân thủ luật giao thông được cho
là nguyên nhân chính dẫn đến tai nạn và thương vong. Dữ liệu về tình trạng giao
thông đường bộ tại Việt Nam cho thấy tình trạng giao thông ở nước ta đang diễn
ra khá phức tạp và nguy hiểm. Xuất hiện những tình trạng đó không thể không
kể đến nhận thức của người Việt Nam về biển báo giao thông:

Nhận thức chung: Người Việt Nam có nhận thức tổng quát về tầm quan
trọng của biển báo giao thông và tầm quan trọng của việc tuân thủ quy tắc giao
thông. Hầu hết mọi người hiểu rằng biển báo giao thông được sử dụng để cung
cấp thông tin và quy định để đảm bảo an toàn và trật tự trên đường.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Hiểu biết cơ bản về biển báo: Đa số người Việt Nam có kiến thức cơ bản về
một số biển báo giao thông phổ biến như biển cấm, biển hiệu lệnh và biển chỉ
dẫn cơ bản. Họ hiểu ý nghĩa của những biểu tượng và màu sắc được sử dụng
trên biển báo để nhận biết các hạn chế và quy tắc giao thông.

Khả năng nhận diện biển báo: Mặc dù người Việt Nam có một mức độ
nhận diện biển báo tương đối tốt, nhưng có thể xảy ra những trường hợp không
nhận diện chính xác một số biển báo đặc biệt hoặc không quen thuộc. Điều này
có thể do sự thiếu hiểu biết hoặc bị mất tập trung khi lái xe.

Cải thiện nhận thức thông qua giáo dục: Các chương trình giáo dục giao
thông được triển khai trong hệ thống giáo dục Việt Nam nhằm nâng cao nhận
thức và hiểu biết về biển báo giao thông. Những người tham gia khóa đào tạo lái
xe cũng được học về biển báo và quy tắc giao thông liên quan.

Thách thức về sự thay đổi: Một thách thức cho nhận thức của người Việt
Nam về biển báo giao thông là sự thay đổi liên tục của các biển báo và quy tắc
giao thông. Việc cập nhật và thông báo sự thay đổi này đôi khi không đồng nhất
và có thể gây nhầm lẫn hoặc không nhận biết được các biển báo mới.

Hình 1.1 Giao thông một góc phố tại Hà Nội


Nghiên cứu khoa học lần thứ 36
tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Thực tế, ngành giao thông vận tải tại Việt Nam đã trải qua nhiều thay đổi
trong những năm vừa qua. Để tạo ra những bước đột phá mang tính cách mạng,
công nghệ là yếu tố không thể thiếu. Trí tuệ nhân tạo hiện đang là một trong
những công nghệ được ứng dụng hiệu quả hàng đầu hiện nay.

Nhiều nghiên cứu đã chỉ ra tiềm năng phát triển của trí tuệ nhân tạo trong
lĩnh vực giao thông vận tải với dự báo thị trường toàn cầu sẽ đạt 3.870.000.000
USD vào năm 2026.

Đó là dấu hiệu tích cực cho thấy các công nghệ tiên tiến như AI, Computer
Vision (Thị giác máy tính) và Machine Learning (Máy học) sẽ góp phần quan
trọng trong việc định hình tương lai của ngành giao thông vận tải. Những con
đường thông minh sẽ được tạo ra, mang lại nhiều lợi ích thiết thực cho đời sống
xã hội.

Việc nghiên cứu ra app nhận diện biển báo giao thông giúp người tham gia
giao thông hiểu rõ hơn về biển báo, hỗ trợ người dùng dễ dàng nhận diện biển
báo, nâng cao đồng thời cải thiện giao thông đường bộ nước ta.

1.2. Tổng quan về phát hiện và nhận diện biển báo

Bài toán phát hiện và nhận dạng biển báo giao thông cụ thể gồm qua 2 giai
đoạn: Giai đoạn phát hiện biển báo giao thông và giai đoạn nhận dạng biển báo
giao thông. Trong các phần sau sẽ trình bày cụ thể từng giai đoạn:

1.2.1 Phát hiện biển báo giao thông

Phát hiện biển báo giao thông là thuật toán xuất phát từ thuật toán phát hiện
vật thể, được sử dụng trong các ứng dụng nhận diện và phân tích ảnh. Khi cho
một nguồn ảnh đầu vào (có thể hình ảnh từ camera hoặc từ tệp video định dạng
AVI), thuật toán xác định biển báo giao thông trong khung hình nhận được đó là
những hình ảnh có phải biển báo giao thông hay không. Nếu có, thuật toán sẽ
xác định vị trí và phạm vi chiếm chỗ của biển báo giao thông đó trong ảnh. Điều
Nghiên cứu khoa học lần thứ 36
tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

này rất quan trọng đối với các ứng dụng phân tích vật thể và biển báo giao thông
nói riêng, vì nó giúp cho hệ thống có thể xác định được biển báo giao thông
đang được áp dụng tại địa điểm và thời điểm hiện tại.

Để phát hiện biển báo giao thông, thuật toán phát hiện vật thể sử dụng các
kỹ thuật xử lý ảnh để tìm kiếm các đặc điểm đặc trưng của biển báo giao thông,
chẳng hạn như màu sắc, hình dạng và kích thước. Khi đã tìm thấy các đặc điểm
này, thuật toán sẽ phân loại biển báo giao thông dựa trên các quy tắc và hướng
dẫn được lập trình trước.

Thuật toán phát hiện biển báo giao thông là một phần quan trọng của các hệ
thống nhận diện và phân tích giao thông thông minh, giúp cho người dùng có
thể nhận biết được các biển báo giao thông và nắm được thông tin về các hạn
chế và quy định của giao thông. Nó cũng có thể được sử dụng để cải thiện an
toàn giao thông và giảm thiểu tai nạn giao thông bằng cách cảnh báo người lái
xe về các biển báo giao thông quan trọng hoặc các tình huống nguy hiểm trên
đường.

1.2.2 Nhận dạng biển báo giao thông

Biển báo giao thông là phương tiện để thông báo cho người tham gia giao
thông về tình trạng đường, đưa ra những chỉ dẫn, hay cảnh báo giúp người tham
gia giao thông xử lý và đưa ra những hành vi hợp lý, đảm bảo an toàn giao
thông. Mỗi người tham gia giao thông đòi hỏi phải nắm bắt và hiểu hết toàn bộ ý
nghĩa của tất cả các loại biển báo giao thông. Việc này trở nên khá khó khăn khi
số lượng biển báo quá lớn, dày đặc và không được dán nhãn rõ chi tiết têntên
từng biển báo.

Vì những lý do trên, với mong muốn xây dựng một ứng dụng nhận dạng
biển báo giao thông hỗ trợ cho các phương tiện giao thông thông minh cho phép
người dùng có thể hiểu được tín hiệu của các loại biển báo giao thông này để
đưa ra các cảnh báo thích hợp và có áp dụng hỗ trợ phục vụ cho một số trường
hợp khác.
Nghiên cứu khoa học lần thứ 36
tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Chức năng chính cơ bản của ứng dụng là phát hiện, nhận dạng và đưa ra
những cảnh báo hợp lý về các loại biển báo giao thông. Người dùng có bộ
camera trên xe, chụp hình hoặc quét camera qua khung cảnh có hình biển báo.
Ứng dụng sẽ tự động phát hiện (detect) các khu vực có hình dạng biển báo và
xuất hiện hình ảnh cùng thông tin biển báo mà ứng dụng nhận ra.

Hình 1.2 - Bài toán nhận dạng biển báo giao thông

1.3. Mục tiêu và nhiệm vụ nghiên cứu

1.3.1. Mục tiêu nghiên cứu

Nghiên cứu nhận dạng biển báo giao thông nhằm đạt được mục tiêu tìm
cách để máy tính hoặc các hệ thống tự động có thể nhận dạng và phân loại các
biển báo giao thông một cách chính xác và nhanh chóng giúp người dùng có thể
nâng cao hiểu biết về biển báo giao thông. Mục tiêu của nghiên cứu này là xây
dựng các thuật toán và mô hình máy học để phân loại biển báo giao thông dựa
trên các đặc điểm hình ảnh như hình dạng, màu sắc, kí hiệu,... và nghiên cứu
cách để cải thiện độ chính xác và tốc độ nhận dạng của các thuật toán và mô
Nghiên cứu khoa học lần thứ 36
tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

hình máy học. Nghiên cứu cũng tập trung vào việc tìm kiếm các kỹ thuật mới để
giảm thiểu sự ảnh hưởng của các yếu tố môi trường như ánh sáng mờ, mưa,
tuyết, v.v. đến quá trình nhận dạng và phát triển các ứng dụng thực tế của công
nghệ nhận dạng biển báo giao thông, như hệ thống hỗ trợ lái xe, hệ thống giám
sát tốc độ, hệ thống phát hiện vi phạm giao thông,...

1.3.2. Nhiệm vụ nghiên cứu

Nhiệm vụ của nghiên cứu nhận dạng biển báo giao thông là xác định các
phương pháp và kỹ thuật nhận dạng biển báo giao thông một cách chính xác và
nhanh chóng. Các nhiệm vụ cụ thể trong lĩnh vực này bao gồm tìm hiểu và đánh
giá các phương pháp phân loại biển báo giao thông dựa trên các đặc điểm hình
ảnh, màu sắc, hình dạng, kí hiệu, v.v. Đồng thời, nghiên cứu cách để cải thiện độ
chính xác và tốc độ nhận dạng của các thuật toán và mô hình máy học. Cụ thể
như sau:

 Nghiên cứu tổng quan về xử lý ảnh số: Chức năng của nghiên cứu này là
cung cấp kiến thức về xử lý ảnh số cho các nghiên cứu về nhận dạng biển báo
giao thông. Nghiên cứu tổng quan này tập trung vào các kỹ thuật xử lý ảnh số
như lọc, biến đổi, mô hình màu, phân đoạn, v.v. để giúp hiểu rõ hơn về các
phương pháp xử lý ảnh được sử dụng trong các thuật toán nhận dạng biển báo
giao thông.

 Nghiên cứu phân tích và tổng hợp các phương pháp nhận dạng, xử lý
hình ảnh biển báo giao thông tại Việt Nam: Chức năng của nghiên cứu này là
tập trung vào việc phân tích và tổng hợp các phương pháp nhận dạng, xử lý hình
ảnh biển báo giao thông đã được sử dụng tại Việt Nam. Nghiên cứu này sẽ giúp
hiểu rõ hơn về các phương pháp nhận dạng biển báo giao thông hiệu quả tại Việt
Nam, từ đó có thể đề xuất các cải tiến hoặc phát triển các phương pháp mới phù
hợp với điều kiện địa phương.

 Nghiên cứu cơ sở lý thuyết về mô hình Yolov5: Chức năng của nghiên


cứu này là tập trung vào việc phân tích và nghiên cứu cơ sở lý thuyết về mô hình
Nghiên cứu khoa học lần thứ 36
tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Yolov5 - một mô hình mạng nơ-ron tích chập (CNN) được sử dụng để nhận
dạng đối tượng trong hình ảnh. Nghiên cứu này sẽ giúp hiểu rõ hơn về cách hoạt
động của mô hình Yolov5, các thành phần cơ bản của mô hình và cách sử dụng
mô hình trong việc nhận dạng biển báo giao thông.

 Nhận dạng biển báo giao thông qua mobile app: Chức năng của nghiên
cứu này là phát triển một ứng dụng di động để nhận dạng biển báo giao thông
thông qua camera trên thiết bị di động. Ứng dụng này sẽ sử dụng các phương
pháp và kỹ thuật nhận dạng biển báo giao thông để nhận diện biển báo và hiển
thị thông tin tương ứng cho người dùng. Nghiên cứu này có thể tập trung vào
các vấn đề như cải thiện độ chính xác của thuật toán nhận dạng, tối ưu hóa thời
gian xử lý, phát triển giao diện người dùng thân thiện và dễ sử dụng, cải thiện
khả năng phân biệt giữa các biển báo tương đồng nhau hoặc có điều kiện ánh
sáng khác nhau, v.v. Ứng dụng di động nhận dạng biển báo giao thông có thể
giúp tăng cường an toàn giao thông và giảm nguy cơ tai nạn đường bộ bằng cách
cung cấp thông tin quan trọng về biển báo giao thông cho người dùng trong thời
gian thực.

Bên cạnh đó, nghiên cứu cũng tập trung vào việc phát triển các ứng dụng
thực tế của công nghệ nhận dạng biển báo giao thông, như hệ thống hỗ trợ lái
xe, hệ thống giám sát tốc độ, hệ thống phát hiện vi phạm giao thông,... để cải
thiện an toàn giao thông và giảm thiểu tai nạn giao thông. Với các nhiệm vụ
trên, nghiên cứu nhận dạng biển báo giao thông đóng vai trò rất quan trọng trong
việc cải thiện hiệu quả và an toàn của giao thông đường bộ.

1.4. Đối tượng và phạm vi nghiên cứu

1.4.1. Đối tượng nghiên cứu

Thông qua hình ảnh và video cung cấp, ứng dụng sẽ nhận diện biển báo
giao thông theo trình tự nhất định. Trong quá trình nhận diện biển báo giao
thông, AI thường sử dụng các kỹ thuật xử lý ảnh và trí tuệ nhân tạo để phân tích

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

và nhận dạng hình ảnh của các biển báo giao thông. Mỗi biển báo sẽ có những
đặc điểm, hình dạng và chức năng riêng do vậy, để nhận diện được biển báo,
ứng dụng phải xử lý hình ảnh của biển báo giao thông được chuyển đổi sang
định dạng phù hợp để phục vụ cho các bước tiếp theo của quá trình nhận diện,
bao gồm việc giảm nhiễu và cân bằng sáng tối cho ảnh. Tiếp đến là phát hiện
biển báo: sử dụng mô hình deep learning để phát hiện và tách biển báo giao
thông ra khỏi hình ảnh nền. Sau khi phát hiện được biển báo, ta sử dụng các kỹ
thuật machine learning hoặc deep learning (cụ thể ở đây là mô hình YoloV5) để
phân loại biển báo vào các loại khác nhau. Cuối cùng, Ứng dụng sẽ đọc nội
dung biển báo: Nếu biển báo có chứa thông tin văn bản, AI sẽ sử dụng các kỹ
thuật nhận dạng ký tự OCR (optical character recognition) để đọc và trích xuất
nội dung từ các ký tự trên biển báo.

Khi tất cả các bước trên được thực hiện thành công, ứng dụng sẽ cung cấp
cho người dùng thông tin về loại biển báo, nội dung trên biển báo và các hướng
dẫn liên quan đến biển báo đó.

1.4.2. Phạm vi nghiên cứu

Nghiên cứu về nhận dạng biển báo giao thông bằng mobile app là một
chủ đề rất hữu ích trong việc nâng cao nhận thức, hiểu biết của người dùng về
biển báo giao thông. Phạm vi nghiên cứu bao gồm hai khía cạnh chính: lý
thuyết và thực nghiệm. Trong khía cạnh lý thuyết, nghiên cứu sẽ tập trung
vào các phương pháp phát hiện hình ảnh, kỹ thuật nhận dạng và xử lý biển
báo giao thông. Để hiểu được những kỹ thuật này, các nhà nghiên cứu cần
phải tìm hiểu kỹ thuật lập trình với Flutter để xây dựng mobile app trên
Android, hiểu về mô hình Object Detection YoloV5 và cách xử lý dữ liệu
ảnh.

Về thực nghiệm, phạm vi nghiên cứu còn bao gồm việc áp dụng phương
pháp nhận dạng biển báo giao thông để đưa ra các cảnh báo thích hợp cho
người tham gia giao thông và có áp dụng hỗ trợ phục vụ cho một số lĩnh vực

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

khác. Các ứng dụng thực tiễn có thể là việc phát hiện vi phạm giao thông, hỗ
trợ tài xế điều khiển phương tiện, tăng cường an toàn giao thông trong khu đô
thị và đôi khi còn được áp dụng trong các lĩnh vực như nông nghiệp và công
nghiệp. Các nghiên cứu liên quan đến nhận dạng biển báo giao thông bằng AI
sẽ đóng góp quan trọng vào việc giảm thiểu tai nạn giao thông và tạo ra một
môi trường giao thông an toàn hơn cho tất cả mọi người.

Ngoài ra, phương pháp nhận dạng biển báo giao thông còn có thể áp
dụng trong nhiều lĩnh vực khác như bảo vệ môi trường, giám sát an ninh…
Ví dụ, mobile app có thể phát hiện biển báo cấm đổ rác và đưa ra cảnh báo để
người dùng biết và hạn chế hành vi đổ rác trái phép, giúp cho việc bảo vệ môi
trường. Bên cạnh đó, trong lĩnh vực giám sát an ninh, phương pháp nhận
dạng biển báo giao thông có thể được áp dụng để giám sát và phát hiện các
hành vi vi phạm luật giao thông, giúp cho việc xử lý nhanh chóng và hiệu quả
hơn.

Vì vậy, phạm vi nghiên cứu của nhận dạng biển báo giao thông bằng
mobile app là rất rộng, có thể ứng dụng trong nhiều lĩnh vực khác nhau để
đem lại giá trị thực tiễn cho xã hội. Tuy nhiên, để đạt được những kết quả tốt
nhất, việc nghiên cứu phải được thực hiện với đầy đủ các khía cạnh từ lý
thuyết đến thực nghiệm, đồng thời sử dụng các công nghệ và phương pháp
tiên tiến nhất.

1.5. Phương pháp để nghiên cứu bài toán

Để nghiên cứu bài toán nhận dạng biển báo giao thông bằng mobile app,
chúng ta cần tìm hiểu về cả lý thuyết và lập trình. Để bắt đầu, một trong những
bước đầu tiên là tìm hiểu kỹ thuật lập trình với Flutter. Flutter là một framework
phát triển ứng dụng di động được phát triển bởi Google, cho phép lập trình viên
phát triển các ứng dụng cho cả iOS và Android với một mã nguồn chung. Tìm
hiểu về Flutter cũng giúp chúng ta hiểu được cách hoạt động của mobile app và
cách xây dựng giao diện người dùng trên nền tảng di động.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Ngoài ra, để hiểu được cách xử lý dữ liệu ảnh, chúng ta cần tìm hiểu về
machine learning, deep learning và mô hình Object Detection YoloV5. YoloV5
là một mô hình nhận dạng vật thể được phát triển bởi Ultralytics, và là một trong
những mô hình nhận dạng đối tượng (Object Detection) hiệu quả nhất hiện nay,
cho phép phát hiện và nhận dạng đối tượng trong ảnh hoặc video với độ chính
xác cao. Việc nghiên cứu về YoloV5 sẽ giúp chúng ta hiểu được cách hoạt động
của mô hình nhận dạng vật thể, cũng như cách để áp dụng mô hình này vào việc
nhận dạng biển báo giao thông.

Sau khi đã hiểu về cách hoạt động của mô hình YoloV5, chúng ta cần tìm
hiểu cách xử lý dữ liệu ảnh. Điều này đặc biệt quan trọng đối với bài toán nhận
dạng biển báo giao thông bởi vì chúng ta cần xử lý ảnh để tìm ra các biển báo
trong hình ảnh và phân loại chúng. Tìm hiểu cách xử lý dữ liệu ảnh bao gồm các
kỹ thuật tiền xử lý, chuẩn hóa và đưa dữ liệu vào mô hình nhận dạng.

Về mặt lập trình, chúng ta sử dụng ngôn ngữ Dart để xây dựng mobile app
trên hệ điều hành Android. Dart là ngôn ngữ lập trình được sử dụng trong
framework Flutter. Nó cho phép lập trình viên viết mã nguồn dễ đọc và dễ hiểu,
và cung cấp nhiều tính năng tiện ích như tính năng tự động đóng gói mã nguồn,
khả năng kiểm tra lỗi và cập nhật nhanh chóng. Việc sử dụng Dart sẽ giúp chúng
ta có thể dễ dàng tương tác với các thư viện và các phần mềm hỗ trợ khác trong
quá trình phát triển ứng dụng. Để train model, chúng ta sử dụng ngôn ngữ
Python, một trong những ngôn ngữ phổ biến nhất hiện nay để xử lý dữ liệu khoa
học.

Ngoài ra, để tăng độ chính xác của ứng dụng, ta có thể sử dụng các kỹ thuật
xử lý ảnh như làm sạch ảnh, xoá nhiễu, cân bằng sáng tối và phân ngưỡng. Các
kỹ thuật này giúp loại bỏ các yếu tố nhiễu trong ảnh, từ đó tăng độ chính xác
cho việc nhận dạng biển báo.

Việc tích hợp ứng dụng với GPS cũng là một giải pháp hữu ích để giúp
người dùng nhận biết được các biển báo giao thông cụ thể trong khu vực mình

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

đang di chuyển. Khi ứng dụng phát hiện ra biển báo, nó có thể gửi thông tin tọa
độ và loại biển báo đến server để lưu trữ hoặc phân tích cho những nhu cầu
khác.

Để phát triển và cải tiến ứng dụng, ta có thể sử dụng các kỹ thuật học máy
để cải thiện độ chính xác của việc nhận dạng biển báo. Ví dụ, ta có thể sử dụng
các mô hình học máy như Convolutional Neural Networks (CNN) để train
model với các bộ dữ liệu biển báo giao thông. Ngoài ra, ta cũng có thể sử dụng
các thuật toán như Support Vector Machines (SVM), Decision Trees, Random
Forests, và Neural Networks để giải quyết bài toán nhận dạng biển báo.

Sau khi đã xây dựng và huấn luyện mô hình, sẽ cần tích hợp mô hình này
vào ứng dụng nhận dạng biển báo giao thông trên mobile app. Khi người dùng
chụp một bức ảnh chứa biển báo giao thông, ứng dụng sẽ tiến hành xử lý ảnh và
nhận diện biển báo giao thông bằng mô hình đã được huấn luyện trước đó. Kết
quả nhận dạng được sẽ được hiển thị trên màn hình và ứng dụng cũng có thể
cung cấp thông tin chi tiết về biển báo đó, giúp người dùng có thể hiểu rõ hơn về
biển báo đó và tuân thủ quy định giao thông.

Tuy nhiên, để đạt được độ chính xác cao, việc cung cấp cho mô hình học
máy một lượng lớn dữ liệu chất lượng là cần thiết. Do đó, việc xây dựng và sử
dụng các bộ dữ liệu chứa các hình ảnh biển báo giao thông đa dạng là một phần
rất quan trọng trong quá trình phát triển ứng dụng.

Tóm lại, để nghiên cứu bài toán nhận dạng biển báo giao thông bằng
mobile app, chúng ta cần tìm hiểu về kỹ thuật lập trình với Flutter, mô hình
Object Detection YoloV5, cũng như các ngôn ngữ lập trình Dart và Python.
Việc nghiên cứu này sẽ giúp chúng ta có thể phát triển được một ứng dụng di
động hiệu quả và tiện lợi để giúp người dùng nhận dạng biển báo giao thông một
cách nhanh chóng và chính xác.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

CHƯƠNG 2: CÁC KIẾN THỨC NỀN TẢNG

2.1 Artificial Intelligence, Machine leaning, deep leaning.

Trí tuệ nhân tạo bắt đầu vào năm 1950 với sự xuất hiện của các nghiên cứu về lý
thuyết trí tuệ máy và học máy. Ở thời điểm đó, các nhà khoa học đã tìm cách xây dựng
máy tính có thể suy luận và tự học như con người. Trong những năm 1960, các nhà
khoa học đã phát triển ra mô hình học máy đầu tiên và thực hiện các nghiên cứu về trí
tuệ máy. Đến năm 1970, các nhà khoa học đã phát triển ra thuật toán học máy và thuật
toán học cục bộ.

Vào những năm 1980 và 1990, AI đã tiến hành nhiều bước tiến trong việc phát
triển các thuật toán học máy nâng cao, như thuật toán học sự kiện và thuật toán học
máy deep learning. Đồng thời công nghệ máy tính và internet cũng phát triển rất mạnh
mẽ, giúp cho việc phát triển AI trở nên dễ dàng hơn.

Trí tuệ nhân tạo (Artificial Intelligence - AI) là lĩnh vực nghiên cứu và phát triển
các máy tính hoặc hệ thống máy tính có khả năng thực hiện các nhiệm vụ mà trước
đây chỉ có con người mới có thể thực hiện. Mục tiêu của trí tuệ nhân tạo là tạo ra các
hệ thống thông minh, có khả năng học hỏi, lý luận, giải quyết vấn đề, nhận biết và
tương tác với môi trường xung quanh.

Có hai loại chính của trí tuệ nhân tạo:

 Trí tuệ nhân tạo yếu (Weak AI): Đây là hệ thống AI được thiết kế để thực
hiện một tác vụ cụ thể và hạn chế trong phạm vi của tác vụ đó. Ví dụ điển
hình của trí tuệ nhân tạo yếu là trợ lý ảo, hệ thống tự động lái xe, hoặc hệ
thống phân loại email rác.

 Trí tuệ nhân tạo mạnh (Strong AI): Đây là mục tiêu cuối cùng của trí tuệ
nhân tạo, là khả năng tạo ra một hệ thống thông minh như con người, có thể
tự động học và giải quyết các vấn đề phức tạp, nhưng không chỉ giới hạn
trong một tác vụ cụ thể. Tuy nhiên, trí tuệ nhân tạo mạnh vẫn đang trong
giai đoạn nghiên cứu và phát triển và chưa được đạt đến mức độ này.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Machine learning là một lĩnh vực của trí tuệ nhân tạo (AI) tập trung vào việc phát
triển các mô hình và thuật toán để giúp máy tính có thể học hỏi và cải thiện kết quả dự
đoán hoặc hành động dựa trên dữ liệu đầu vào.

Hình 2.3. Machine learning

Các mô hình máy học có thể được huấn luyện trên các tập dữ liệu để học các mối
quan hệ và đặc trưng giữa các thuộc tính của dữ liệu. Sau đó, chúng có thể sử dụng các
mô hình đó để dự đoán các giá trị mới hoặc phân loại các dữ liệu mới.

Các ứng dụng của máy học rất đa dạng và phổ biến trong nhiều lĩnh vực, từ nhận
dạng giọng nói, nhận dạng hình ảnh, phân tích dữ liệu y tế, phân tích tài chính đến dự
báo thời tiết. Các công ty và tổ chức đang tìm cách sử dụng machine learning để cải
thiện các sản phẩm và dịch vụ của mình, tăng hiệu suất và đưa ra quyết định thông
minh hơn.

Deep learning là một phương pháp học máy sử dụng các mạng nơ-ron sâu với
nhiều lớp để xử lý và phân tích dữ liệu phức tạp. Nó tập trung vào việc học các biểu
diễn đại diện của dữ liệu trong một kiến trúc mạng nơ-ron sâu để giải quyết các vấn đề
như phân loại, nhận dạng hình ảnh, xử lý ngôn ngữ tự nhiên, và nhiều ứng dụng khác.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Các mạng nơ-ron sâu được xây dựng từ các lớp kết nối liên kết các nơ-ron, mỗi
lớp đại diện cho một tầng khác nhau của trừu tượng hóa dữ liệu. Dữ liệu được đưa qua
mạng qua các lớp và được xử lý dần dần để cho ra các kết quả tốt hơn.

Deep learning được coi là một trong những công nghệ tiên tiến nhất trong học
máy hiện nay và đã giúp đạt được nhiều kết quả đáng chú ý trong nhiều lĩnh vực. Ví
dụ, các ứng dụng nhận dạng hình ảnh sử dụng deep learning đã đạt độ chính xác cao
hơn so với các phương pháp truyền thống trước đây. Ngoài ra, deep learning cũng
được áp dụng trong các lĩnh vực như xử lý ngôn ngữ tự nhiên, robot học, và các ứng
dụng trong y học.

Phát hiện đối tượng trong thị giác máy tính có thể hiểu là cách xác định đối
tượng trong một hình ảnh và sau đó ước tính chính xác vị trí của nó. Ngày nay,
ứng dụng về phát hiện đối tượng được sử dụng ở khắp mọi nơi. Các trường hợp
sử dụng có thể là theo dõi đối tượng, giám sát video, phát hiện bất thường, ô tô
tự lái hoặc nhận diện khuôn mặt, v.v. Dưới đây sẽ trình bày 2 về ba thuật toán
phát hiện đối tượng chính hiện đang được sử dụng trong ngành:

(1) Region-based Convolutional Neural Networks (R-CNN): R-CNN


đầu tiên xác định một số vùng quan tâm, và sau đó sử dụng CNN để phân loại
các vùng đó nhằm phát hiện các đối tượng trong đó. Bản gốc của R-CNN ban
đầu là chậm nên có một số biến thể nhanh hơn đã được phát triển như: Fast R-
CNN, Faster R-CNN và Mask R-CNN. Trong R-CNN, hình ảnh đầu tiên được
chia thành khoảng 2000 vùng đề xuất và sau đó CNN (ConvNet) được áp dụng
cho từng vùng tương ứng. Vấn đề lớn nhất của phương pháp này là thời gian. Vì
mỗi khu vực trong hình được áp dụng CNN riêng biệt, thời gian đào tạo là
khoảng 84 giờ và thời gian dự đoán là khoảng 47 giây.

(2) Single Shot MultiBox Detector (SSD): SSD là một thuật toán phổ biến
trong việc phát hiện đối tượng. Nó thường nhanh hơn Faster R-CNN. SSD tùy
biến không gian đầu ra của các hộp giới hạn thành một tập hợp các hộp mặc
định theo các tỷ lệ khung hình và tỷ lệ khác nhau cho mỗi vị trí bản đồ đối

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

tượng. Tại thời điểm dự đoán, mạng tạo ra điểm số cho sự hiện diện của từng
loại đối tượng trong mỗi hộp mặc định và tạo ra các điều chỉnh đối với hộp để
phù hợp hơn với hình dạng đối tượng. Ngoài ra, mạng kết hợp các dự đoán từ
nhiều bản đồ đối tượng với các độ phân giải khác nhau để xử lý các đối tượng có
kích thước khác nhau một cách tự nhiên [5].

(3) You Only Look Once (YOLO): YOLO hoặc You Only Look Once là
một thuật toán phát hiện đối tượng khác nhiều so với các thuật toán dựa trên khu
vực đã thấy ở trên. Như tên cho thấy, thuật toán chỉ yêu cầu một lần truyền
chuyển tiếp duy nhất qua mạng nơ-ron để phát hiện các đối tượng. Trong
YOLO, một mạng tích chập đơn dự đoán các hộp giới hạn và xác suất lớp cho
các hộp này. Chiến lược được YOLO sử dụng hoàn toàn khác với các hệ thống
phát hiện trước đó. Một mạng nơ-ron duy nhất được áp dụng cho toàn bộ hình
ảnh. Mạng này chia hình ảnh thành các khu vực và tính toán các hộp giới hạn
cho từng khu vực và xác suất. Các hộp giới hạn đó được tính theo xác suất dự
đoán.

Trong nghiên cứu này, YOLO được lựa chọn sử dụng vì một số lí do như:
YOLO đề xuất việc sử dụng mạng nơ-ron end-to-end đưa ra dự đoán các hộp
giới hạn và xác suất lớp cùng một lúc. Trong khi các thuật toán như Faster
RCNN hoạt động bằng cách phát hiện các khu vực quan tâm bằng cách sử dụng
Mạng đề xuất khu vực và sau đó thực hiện nhận dạng riêng trên các khu vực đó,
YOLO thực hiện tất cả các dự đoán của mình với một lớp full-connected. Do đó,
các phương pháp sử dụng Mạng đề xuất khu vực sẽ thực hiện nhiều lần lặp lại
cho cùng một hình ảnh, trong khi YOLO chỉ sử dụng một lần lặp duy nhất. Một
ưu điểm tiếp theo của YOLO đó là nó hoạt động nhanh hơn 1000 lần so với R-
CNN và nhanh hơn 100 lần so với Fast R-CNN

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

2.2 Thuật toán YOLO

2.2.1 Giới thiệu

Một trong những lĩnh vực quan trọng của Trí tuệ nhân tạo (Artificial
Intelligence) là thị giác máy (Computer Vision). Computer Vision là một lĩnh
vực bao gồm các phương pháp thu nhận, xử lý ảnh kỹ thuật số, phân tích và
nhận dạng các hình ảnh, phát hiện các đối tượng, tạo ảnh, siêu phân giải hình
ảnh và nhiều hơn vậy. Object Detection có lẽ là khía cạnh sâu sắc nhất của thị
giác máy do số lần sử dụng trong thực tế.

Hình 2.4 Ảnh detection các class

Object Detection đề cập đến khả năng của hệ thống máy tính và phần
mềm để định vị các đối tượng trong một hình ảnh và xác định từng đối tượng.
Object Detection đã được sử dụng rộng rãi để phát hiện khuôn mặt, phát hiện xe,
đếm số người đi bộ, hệ thống bảo mật và xe không người lái. Có nhiều cách để
nhận diện đối tượng có thể được sử dụng cũng như trong nhiều lĩnh vực thực
hành. Giống như mọi công nghệ khác, một loạt các ứng dụng sáng tạo và tuyệt
vời của Object Detection sẽ đến từ các lập trình viên và các nhà phát triển phần
mềm.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Bắt đầu sử dụng các phương pháp nhận diện đối tượng hiện đại trong các
ứng dụng và hệ thống, cũng như xây dựng các ứng dụng mới dựa trên các
phương pháp này.Việc triển nhận diện đối tượng sớm liên quan đến việc sử
dụng các thuật toán cổ điển, giống như các thuật toán được hỗ trợ trong
OpenCV, thư viện computer vision phổ biến. Tuy nhiên, các thuật toán cổ điển
này không thể đạt được hiệu suất đủ để làm việc trong các điều kiện khác nhau.

Việc áp dụng đột phát và nhanh cóng của deep learning vào năm 2012 đã
đưa vào sự tồn tại các thuật toán và phương pháp phát hiện đối tượng hiện đại và
chính xác cao như R-CNN, Fast-RCNN, Faster-RCNN, RetinaNet và nhanh hơn
nhưng rất chính xác như SSD và YOLO. Sử dụng các phương pháp và thuật
toán này, dựa trên deep learning và cũng dựa trên việc học máy đòi hỏi rất nhiều
kiến thức về toán học và việc học sâu. Có hàng triệu chuyên gia lập trình và các
nhà phát triển phần mềm muốn tích hợp và tạo ra các sản phẩm mới sử dụng
object detection. Nhưng công nghệ này xa tầm tay của họ và phức tạp để hiểu và
sử dụng thực tế của nó.

ImageAI, một thư viện python cho phép các lập trình viên và các nhà phát
triển phần mềm dễ dàng tích hợp các công nghệ thị giác máy hiện đại vào các
ứng dụng hiện có và mới của họ, và chỉ cần sử dụng một vài dòng mã. ImageAI
hỗ trợ một danh sách các thuật toán học máy hiện đại nhất cho việc dự đoán
hình ảnh,, nhận diện vật thể, phát diện video,...

*Thuật toán Object Detection được chia thành 2 nhóm chính:

 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

YOLO (You Only Look Once) là một thuật toán phát hiện đối tượng
(object detection) trong lĩnh vực thị giác máy tính và trí tuệ nhân tạo. Được giới

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

thiệu lần đầu vào năm 2016 bởi Joseph Redmon et al., YOLO đã nhanh chóng
trở thành một trong những công cụ phổ biến nhất trong cộng đồng nghiên cứu và
ứng dụng thực tiễn, với khả năng phát hiện đối tượng trong thời gian thực với độ
chính xác cao.

YOLO khác biệt so với các phương pháp phát hiện đối tượng truyền thống
bởi cách tiếp cận "one-shot", tức là việc phát hiện và phân loại đối tượng được
thực hiện trong một bước duy nhất, thay vì phải áp dụng nhiều lần các mô hình
phân loại riêng biệt. Điều này giúp YOLO đạt được tốc độ phát hiện rất nhanh,
thường với tốc độ lên đến vài chục khung hình mỗi giây, phù hợp cho các ứng
dụng thời gian thực như xe tự hành, giám sát an ninh, nhận dạng hình ảnh trên
video, v.v.

Một đặc điểm nổi bật của YOLO là khả năng phát hiện đa lớp đối tượng
trong cùng một bức ảnh. YOLO có thể phát hiện và định vị các đối tượng thuộc
nhiều lớp khác nhau, ví dụ như người, ô tô, chó, mèo, v.v., trong cùng một bức
ảnh, giúp tăng tính đa dụng và khả năng ứng dụng cho nhiều tác vụ khác nhau.

YOLO sử dụng mạng neural tích chập (convolutional neural network -


CNN) để học cách phát hiện đối tượng. Kiến trúc mạng của YOLO gồm nhiều
lớp tích chập và lớp liên kết (fully connected layers), cho phép học cách trích
xuất đặc trưng từ hình ảnh và dự đoán định vị và phân loại của các đối tượng.
Mỗi một đầu ra của mạng YOLO đại diện cho một ô lưới trong hình ảnh, và
chứa thông tin về các hộp giới hạn (bounding boxes) và xác suất phân loại của
các đối tượng được phát hiện.

2.2.2 Các phiên bản của YOLO

Có nhiều phiên bản của YOLO đã được phát triển và cải tiến trong những
năm gần đây, bao gồm YOLO v1, YOLO v2, YOLO v3, YOLO v4, YOLO v5,
YOLO v6, YOLO v7 và phiên bản mới nhất là YOLO v8. Mỗi phiên bản đều
cải tiến và nâng cao độ chính xác và tốc độ phát hiện của thuật toán.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Một trong những điểm mạnh của YOLO là khả năng hoạt động trên các đối
tượng nhỏ và đa dạng trong hình ảnh. YOLO có thể phát hiện các đối tượng nhỏ
kích thước chỉ vài pixel, ví dụ như các đối tượng nhỏ trong ảnh xám hoặc ảnh
đen trắng, đồng thời vẫn đạt được độ chính xác cao. Điều này làm cho YOLO
trở thành lựa chọn hàng đầu cho các ứng dụng yêu cầu phát hiện đối tượng chi
tiết và nhỏ gọn.

Ngoài ra, YOLO cũng hỗ trợ phát hiện đối tượng trong môi trường thực tế
và khắc phục được các vấn đề gặp phải như đối tượng bị che khuất, đối tượng di
chuyển nhanh, và thay đổi ánh sáng, giúp đảm bảo tính ổn định và đáng tin cậy
của thuật toán trong các ứng dụng thực tế.

Tuy nhiên, YOLO cũng còn một số hạn chế. Vì việc phát hiện đối tượng
được thực hiện trong một bước duy nhất, YOLO có thể gặp khó khăn trong việc
phát hiện các đối tượng có kích thước nhỏ hoặc bị che khuất. Đồng thời, YOLO
cũng có thể gây ra nhầm lẫn trong việc phân loại đối tượng, đặc biệt là đối với
các đối tượng có đặc trưng tương tự hoặc gần nhau.

Tuy nhiên, với những ưu điểm vượt trội về tốc độ, tính đa dụng, và khả
năng hoạt động trên các đối tượng nhỏ và đa dạng, YOLO vẫn là một trong
những thuật toán phát hiện đối tượng hàng đầu được sử dụng rộng rãi trong các
ứng dụng thực tiễn, từ xe tự hành, giám sát an ninh, nhận dạng hình ảnh trên
video, đến công nghiệp, y tế, giao thông, và nhiều lĩnh vực ứng dụng khác.

Ở nghiên cứu này chúng mình đã chọn Yolo v5 được giới thiệu vào năm
2020 bởi đội ngũ phát triển của Ultralytics dểddaof tạo mô hình. YOLO v5 đã
được cải tiến đáng kể so với các phiên bản trước đó, với mục tiêu tăng cường độ
chính xác và tốc độ phát hiện trong ứng dụng thời gian thực.

Một trong những cải tiến chính của YOLO v5 là kiến trúc mạng neural.
YOLO v5 sử dụng một mạng neural dựa trên ResNet, có kiến trúc đơn giản hơn
so với các phiên bản trước đó, giúp giảm bớt khối lượng tính toán và nâng cao
tốc độ phát hiện. Đồng thời, YOLO v5 cũng tích hợp các kỹ thuật như PANet
Nghiên cứu khoa học lần thứ 36
tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

(Path Aggregation Network) để cải thiện khả năng học đại diện của mạng, giúp
đối tượng được phát hiện chính xác hơn.

Ngoài ra, YOLO v5 còn tích hợp công nghệ tự động hóa quy trình huấn
luyện mô hình. Với khả năng tự động chọn các siêu tham số (hyperparameters)
tối ưu, YOLO v5 giúp đơn giản hóa quy trình huấn luyện và giảm bớt công sức
và tài nguyên cần thiết cho việc đào tạo mô hình.

YOLO v5 cũng hỗ trợ nhiều định dạng đầu vào hình ảnh, bao gồm cả hình
ảnh đơn kênh (grayscale) và hình ảnh nhiều kênh (multichannel), giúp đáp ứng
đa dạng các yêu cầu ứng dụng trong thực tế.

Ngoài ra, YOLO v5 cũng hỗ trợ tính năng tiếp tục huấn luyện (resume
training), cho phép người dùng tiếp tục huấn luyện mô hình từ checkpoint đã có,
giúp tiết kiệm thời gian và tài nguyên trong quá trình huấn luyện.

Với những cải tiến vượt trội, YOLO v5 đã được sử dụng rộng rãi trong
nhiều ứng dụng thực tế, từ công nghiệp, giao thông, y tế, an ninh, điện toán đám
mây và nhiều lĩnh vực ứng dụng khác. YOLO v5 tiếp tục định hướng vào việc
đáp ứng nhu cầu ngày càng tăng của việc phát hiện và nhận dạng đối tượng
trong thời gian thực. Đặc biệt, YOLO v5 đã được áp dụng rộng rãi trong lĩnh
vực tự lái xe, nơi nó giúp xe tự động nhận dạng các đối tượng như xe hơi, người
đi bộ, đèn giao thông và các vật thể khác trong môi trường đường phố để giúp
xe hoạt động an toàn và đúng luật.

Ngoài ra, YOLO v5 cũng đem lại nhiều lợi ích cho lĩnh vực an ninh và
giám sát, nơi nó có thể phát hiện và nhận dạng các đối tượng nghi ngờ trong thời
gian thực, giúp cải thiện hiệu quả giám sát an ninh và ngăn chặn các hoạt động
bất hợp pháp.

Cũng đáng lưu ý là YOLO v5 cung cấp khả năng tích hợp với các nền tảng
phổ biến như TensorFlow và PyTorch, giúp dễ dàng tích hợp vào các dự án
machine learning hiện có và tận dụng sức mạnh của các thư viện mã nguồn mở.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Ngoài tính năng phát hiện đối tượng, YOLO v5 còn hỗ trợ các tính năng
như phân loại đối tượng, dự đoán hướng chuyển động của đối tượng, và đánh
giá độ chính xác của đối tượng được phát hiện. Điều này giúp tăng tính đa dạng
và đa nhiệm của YOLO v5 trong các ứng dụng thực tế.

Tóm lại, YOLO v5 là một trong những phiên bản tiên tiến nhất của thuật
toán phát hiện đối tượng YOLO, với nhiều cải tiến đáng kể về kiến trúc mạng,
tính năng tự động hóa quy trình huấn luyện, hỗ trợ nhiều định dạng đầu vào hình
ảnh, tính năng tiếp tục huấn luyện, và tính năng đa dạng hóa. YOLO v5 đã được
sử dụng rộng rãi trong nhiều lĩnh vực ứng dụng thực tế, đặc biệt trong lĩnh vực
tự lái xe, an ninh và giám sát. Với tính năng mạnh mẽ và dễ tích hợp, YOLO v5
tiếp tục là một công cụ quan trọng trong công nghệ thị giác máy tính và ứng
dụng trí tuệ nhân tạo. Nó đem lại khả năng phát hiện và nhận dạng đối tượng
trong thời gian thực, giúp cải thiện tính tự động hóa, hiệu quả và độ chính xác
trong nhiều ứng dụng khác nhau.

*Một số tính năng nổi bật của YOLO v5 gồm:

 Kiến trúc mạng nâng cấp: YOLO v5 sử dụng một mạng nơ-ron tích chập
(convolutional neural network - CNN) với nhiều lớp chuyển đổi kích thước
(skip connections) giúp cải thiện độ chính xác của việc phát hiện đối tượng.
 Tự động hóa quy trình huấn luyện: YOLO v5 cung cấp khả năng tự động
hóa quy trình huấn luyện, bao gồm việc tăng cường dữ liệu (data
augmentation), tối ưu hóa siêu tham số (hyperparameter optimization), và
chọn mô hình tốt nhất (model selection), giúp giảm bớt thời gian và công
sức cần thiết cho quá trình huấn luyện mô hình.
 Hỗ trợ đa định dạng đầu vào hình ảnh: YOLO v5 hỗ trợ nhiều định dạng
đầu vào hình ảnh, bao gồm ảnh 2D, ảnh 3D, và dữ liệu đầu vào từ camera,
giúp mở rộng phạm vi ứng dụng của thuật toán trong các lĩnh vực khác
nhau.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

 Tính năng tiếp tục huấn luyện: YOLO v5 cho phép tiếp tục quá trình huấn
luyện từ checkpoint trước đó, giúp tiết kiệm thời gian và tài nguyên khi cần
cập nhật mô hình đang được huấn luyện.
 Tính năng đa dạng hóa: YOLO v5 cung cấp khả năng đa dạng hóa kiến
thức, cho phép đào tạo mô hình với dữ liệu đa dạng hơn, từ đó cải thiện
tính đa dạng của mô hình và khả năng phát hiện đối tượng trong các tình
huống phức tạp.
Tuy nhiên, cũng cần lưu ý rằng YOLO v5 cũng có nhược điểm của nó, bao
gồm yêu cầu tài nguyên tính toán cao, đặc biệt là trong các ứng dụng thời gian
thực với dữ liệu lớn. Ngoài ra, YOLO v5 cũng có thể đạt độ chính xác thấp đối
với các đối tượng nhỏ kích thước hoặc có hình dáng phức tạp.

*Một số ứng dụng của YOLO v5 bao gồm:

 Phát hiện đối tượng trong hình ảnh và video: YOLO v5 có thể phát hiện và
nhận dạng đối tượng trong hình ảnh và video với tốc độ cao, giúp ứng dụng
trong lĩnh vực an ninh, giao thông, giám sát, và nhận diện hình ảnh.
 Xử lý ảnh y tế: YOLO v5 có thể được sử dụng để phát hiện và định vị các
đối tượng y tế như khối u, dấu hiệu bệnh lý trên hình ảnh chụp từ máy chụp
cắt lớp (CT scan) hoặc siêu âm, giúp hỗ trợ chẩn đoán y tế.
 Tự động hóa công nghiệp: YOLO v5 có thể được áp dụng trong tự động
hóa công nghiệp, như đếm số lượng sản phẩm, phát hiện lỗi sản phẩm, hoặc
theo dõi vật thể trong dây chuyền sản xuất.
 Xử lý ảnh không gian: YOLO v5 có thể được sử dụng để phát hiện và định
vị các đối tượng trong ảnh không gian, như định vị vị trí của vật thể bay,
vật thể không gian, hoặc định vị vị trí của vật thể trên bề mặt hành tinh.
 Ứng dụng di động: YOLO v5 có thể được triển khai trên các thiết bị di
động, giúp phát hiện đối tượng trực tiếp trên thiết bị di động, như ứng dụng

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

nhận diện gương mặt, ứng dụng đọc mã vạch, hoặc ứng dụng theo dõi đối
tượng di động.

Tóm lại, YOLO v5 là một trong những công nghệ phát hiện đối tượng hàng
đầu với tính năng nổi bật như kiến trúc mạng nâng cấp, tự động hóa quy trình
huấn luyện, hỗ trợ đa định dạng đầu vào hình ảnh, tính năng tiếp tục huấn luyện
và đa dạng hóa. Nó có nhiều ứng dụng trong các lĩnh vực khu tận dụng khả năng
phát hiện đối tượng nhanh chóng và chính xác. Tuy nhiên, cũng cần lưu ý rằng
YOLO v5 còn tồn tại một số hạn chế, như độ chính xác không cao với các đối
tượng nhỏ hoặc có hình dáng phức tạp, độ chính xác phụ thuộc vào kích thước
và chất lượng dữ liệu huấn luyện, và yêu cầu phần cứng mạnh mẽ để đạt được
tốc độ phát hiện thời gian thực.

Nếu bạn quan tâm đến YOLO v5, bạn có thể tham khảo mã nguồn mở của
dự án trên GitHub hoặc sử dụng các phiên bản đã được huấn luyện sẵn để triển
khai trong các ứng dụng của riêng bạn. Cũng cần lưu ý rằng YOLO v5 là một
công nghệ nguồn mở và cũng có một số biến thể và phiên bản của nó được phát
triển bởi cộng đồng người dùng và nhà phát triển.

2.2.3 Kiến trúc

Kiến trúc YOLO bao gồm: base network là các mạng convolution làm
nhiệm vụ trích xuất đặc trưng. Phần phía sau là những Extra Layers được áp
dụng để phát hiện vật thể trên feature map của base network. Base network của
YOLO sử dụng chủ yếu là các convolutional layer và các fully conntected layer
được thể hiện ở hình 2.5 Các kiến trúc YOLO cũng khá đa dạng và có thể tùy
biến thành các version cho nhiều input shape khác nhau.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Hình 2.5. Sơ đồ kiến trúc mạng YOLO.

Thành phần Darknet Architechture được gọi là base network có tác dụng
trích suất đặc trưng. Output của base network là một feature map có kích thước
7x7x1024 sẽ được sử dụng làm input cho các Extra layers có tác dụng dự đoán
nhãn và tọa độ bounding box của vật thể.

Trong YOLO version 3, áp dụng một mạng feature extractor là darknet-53


như trong hình 2.6 Mạng này gồm 53 convolutional layers kết nối liên tiếp, mỗi
layer được theo sau bởi một batch normalization và một activation Leaky Relu.
Để giảm kích thước của output sau mỗi convolution layer, down sample được sử
dụng bằng các filter với kích thước là 2. Mẹo này có tác dụng giảm thiểu số
lượng tham số cho mô hình.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Hình 2.6. Các layer trong mạng Darknet-53.

Các bức ảnh khi được đưa vào mô hình sẽ được scale để về chung một kích
thước phù hợp với input shape của mô hình và sau đó được gom lại thành batch
đưa vào huấn luyện.

Hiện tại YOLO đang hỗ trợ 2 đầu vào chính là 416x416 và 608x608. Mỗi
một đầu vào sẽ có một thiết kế các layers riêng phù hợp với shape của input. Sau
khi đi qua các layer convolutional thì shape giảm dần theo cấp số nhân là 2.
Cuối cùng ta thu được một feature map có kích thước tương đối nhỏ để dự báo
vật thể trên từng ô của feature map.

Kích thước của feature map sẽ phụ thuộc vào đầu vào. Đối với input
416x416 thì feature map có các kích thước là 13x13, 26x26 và 52x52. Và khi

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

input là 608x608 sẽ tạo ra feature map 19x19, 38x38, 72x72..Cấu trúc nhận diện
vật thể của YOLOv5 thường có 3 phần được thể hiện ở hình 2.7.

Hình 2.7. Cấu trúc nhận diện vật thể của YOLOv5.

- Backbone: Backbone là 1 mô hình pre-train của 1 mô hình học chuyển


(transfer learning) khác để học các đặc trưng và vị trí của vật thể. Các mô hình
học chuyển thường là VGG16, ResNet-50, ...

- Head: Phần head được sử dụng để tăng khả năng phân biệt đặc trưng để
dự đoán class và bounding-box. Ở phần head có thể áp dụng 1 tầng hoặc 2 tầng:

+ Tầng 1: Dense Prediction, dự đoán trên toàn bộ hình với các mô hình RPN,
YOLO, SSD, ...

+ Tầng 2: Sparse Prediction dự đoán với từng mảng được dự đoán có vật thể
với các mô hình R-CNN series,..

- Neck: Ở phần giữa Backbone và Head, thường có thêm một phần Neck.
Neck thường được dùng để làm giàu thông tin bằng cách kết hợp thông tin giữa
quá trình bottom-up và quá trình top-down (do có một số thông tin quá nhỏ khi
đi qua quá trình ottom-up bị mất mát nên quá trình top-down không tái tạo lại
được).

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

2.3 Lập trình di động

Lập trình ứng dụng di động chính là việc sử dụng những ngôn ngữ lập trình
để viết app phát triển những ứng dụng để gia tăng tới mức tốt nhất tiện ích cho
thiết bị di động mà người dùng đang dùng. Trong đó, hai hệ điều hành được sử
dụng phổ biến hiện nay là iOS và Android thì việc có thể lập trình ứng
dụng mobile phù hợp sẽ đáp ứng tốt cho những yêu cầu, đòi hỏi thực tế của con
người.

*Lí do lập trình ứng dụng trên thiết bị di động:

Thiết bị di động có đặc trưng là được thiết kế nhỏ gọn nên dễ dàng mang
theo bên mình một cách tiện lợi. Đặc biệt, khi các thiết bị di động ngày càng đa
dạng thì việc sử dụng có khả năng đáp ứng cho nhu cầu của con người một cách
hiệu quả nhất. Nó trở thành người bạn đồng hành không thể thiếu đối với con
người, với mọi đối tượng.

Khi nhu cầu của người dùng tăng cao tạo cơ hội không chỉ cho các hãng
sản xuất mà các những nhà lập trình di động. Từ việc phát triển các ứng dụng di
động giúp việc khai thác hết những tính năng, lợi ích của thiết bị hữu ích này trở
nên dễ dàng hơn. Lúc này, những người xây dựng app di động được quan tâm,
chú ý với cơ hội phát triển bản thân, phát triển sự nghiệp hiệu quả.

*Lợi ích khi lập trình ứng dụng app mobile:

Thuận tiện, dễ dàng sử dụng, dễ dàng cung cấp thông tin nhanh chóng, bảo
mật tốt.

*Framework lập trình:

Flutter là một framework phát triển ứng dụng di động đa nền tảng (cross-
platform) được phát triển bởi Google. Nó cho phép lập trình viên xây dựng ứng
dụng di động cho cả iOS và Android từ một mã nguồn duy nhất. Flutter sử dụng
ngôn ngữ Dart làm ngôn ngữ lập trình chính - ngôn ngữ lập trình được phát triển
bởi Google, có mục tiêu làm nền tảng phát triển ứng dụng cho web, máy tính cá

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

nhân và di động. Nó kết hợp các tính năng từ nhiều ngôn ngữ khác nhau và có
cú pháp tương đối dễ đọc và hiểu. Dart và Flutter kết hợp với nhau để cung cấp
một nền tảng mạnh mẽ cho việc phát triển ứng dụng di động và web đa nền tảng.
Dart là ngôn ngữ lập trình mạnh mẽ và linh hoạt, trong khi Flutter cung cấp một
framework đa nền tảng với hiệu suất cao và giao diện người dùng tuyệt vời.

*Tính năng hiệu quả

Thân thiện với thiết bị di động, với dữ liệu di động tới mức tối đa là điều
mà một chuyên viên thiết kế phần mềm di động cần đảm bảo. Dù là người dùng
sử dụng dữ liệu 3G, 4G,… cũng có thể sử dụng dễ dàng và không gặp bất kỳ
những vấn đề không mong muốn, hay vượt quá mức cho phép có thể xảy ra. Với
một app không chiếm quá nhiều data khi hoạt động chạy nền, có thể tối ưu đối
với tất cả các dòng máy sẽ thu hút được nhiều người dùng dễ dàng hơn.

*Một số khác biệt quan trọng giữa ứng dụng di động và web thường:

 Khả năng truy cập: Ứng dụng di động được cài đặt trực tiếp trên điện
thoại di động và hoạt động độc lập, trong khi ứng dụng web thường được
truy cập thông qua trình duyệt web.

 Tương tác người dùng: Ứng dụng di động thường tận dụng tối đa khả
năng tương tác của điện thoại di động như cảm ứng màn hình, cảm biến
gia tốc, camera, v.v. Trong khi đó, ứng dụng web thường có giới hạn
trong việc sử dụng các tính năng này.

 Khả năng truy cập ngoại tuyến: Một số ứng dụng di động cho phép người
dùng truy cập và sử dụng chúng mà không cần kết nối internet. Điều này
có thể hữu ích khi người dùng không có kết nối mạng. Trong khi đó, ứng
dụng web thường yêu cầu kết nối internet liên tục để truy cập và sử dụng.

 Quyền truy cập vào tài nguyên: Ứng dụng di động có thể yêu cầu quyền
truy cập vào các tài nguyên của điện thoại di động như danh bạ, vị trí

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

GPS, máy ảnh, v.v. Điều này cho phép ứng dụng tận dụng tối đa tính năng
của thiết bị.

 Cung cấp trải nghiệm tốt hơn: Với khả năng tận dụng tối đa tính năng của
thiết bị và khả năng tương tác cao hơn, ứng dụng di động thường cung cấp
trải nghiệm tốt hơn cho người dùng. Họ có thể truy cập và sử dụng ứng
dụng một cách nhanh chóng và thuận tiện hơn so với việc truy cập web
thông qua trình duyệt.

 Đa nền tảng: Một ứng dụng di động có thể được phát triển để hoạt động
trên nhiều nền tảng, chẳng hạn như iOS và Android, giúp đáp ứng được
nhu cầu của một đối tượng người dùng rộng hơn. Trong khi đó, các ứng
dụng web thường có thể truy cập được từ mọi trình duyệt web mà không
cần phải phát triển riêng cho từng nền tảng.

 Cập nhật và phân phối: Việc cập nhật ứng dụng di động và phân phối
phiên bản mới thông qua các cửa hàng ứng dụng như App Store và
Google Play Store có thể dễ dàng hơn so với việc cập nhật và phân phối
các ứng dụng web truyền thống. Người dùng cũng có thể dễ dàng tìm và
cài đặt ứng dụng di động từ các cửa hàng ứng dụng.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG TRÊN THIẾT BỊ DI ĐỘNG

3.1 Xây dựng mô hình

3.1.1 Môi trường huấn luyện

Quá trình huấn luyện mô hình và thử nghiệm của nghiên cứu này được thực
hiện trên Google Colaboratory. Google Colab, hay còn gọi là Google
Colaboratory, là một dịch vụ trực tuyến do Google cung cấp, cho phép người
ung thực hiện các dự án dữ liệu khoa học và học máy một cách dễ dàng và tiện
lợi. Được ra mắt vào năm 2017, Google Colab nhanh chóng trở thành một công
cụ phổ biến trong cộng đồng khoa học dữ liệu và học máy, hỗ trợ các nhà
nghiên cứu, sinh viên, và chuyên gia trong việc thực hiện các công việc liên
quan đến xử lý dữ liệu, huấn luyện mô hình, và phân tích dữ liệu.

Một trong những điểm nổi bật của Google Colab là tính tiện lợi và đơn giản
trong việc sử dụng. Người ung không cần phải cài đặt phần mềm hay cấu hình
phức tạp, mà chỉ cần truy cập vào trình duyệt web và đăng nhập vào tài khoản
Google của mình, sau đó mở một “notebook” mới trên Google Colab để bắt đầu
viết và thực thi mã nguồn Python. Google Colab cung cấp môi trường lập trình
đầy đủ, bao gồm các thư viện phổ biến như NumPy, Pandas, và TensorFlow,
giúp người ung có thể thực hiện các công việc dữ liệu khoa học và học máy một
cách thuận tiện và hiệu quả.

Google Colab cũng tích hợp chặt chẽ với các dịch vụ của Google như
Google Drive, Google Sheets, và Google Cloud Storage. Điều này cho phép
người ung dễ dàng truy cập và làm việc với các dữ liệu được lưu trữ trên đám
mây của Google, chia sẻ và hợp tác với đồng nghiệp, và lưu trữ các kết quả của
công việc dữ liệu khoa học và học máy một cách an toàn và dễ dàng.

Ngoài ra, Google Colab cũng hỗ trợ tính năng chia sẻ notebook, cho phép
người ung chia sẻ các notebook của mình với người khác dưới dạng liên kết
hoặc mã nhúng, giúp ung cường tính hợp tác và trao đổi trong cộng đồng khoa
Nghiên cứu khoa học lần thứ 36
tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

học dữ liệu và học máy. Điều này rất hữu ích cho việc thực hiện các dự án nhóm
hoặc chia sẻ kết quả nghiên cứu với cộng đồng khoa học.

Ngoài tính năng chia sẻ notebook, Google Colab còn hỗ trợ tính năng
“GPU miễn phí” cho người dùng. Điều này cho phép người dùng sử dụng các tài
nguyên xử lý đồ họa (GPU) của Google để thực hiện các công việc đòi hỏi tính
toán nặng, chẳng hạn như huấn luyện mô hình học máy trên dữ liệu lớn. Điều
này giúp ung tốc quá trình huấn luyện và đồng thời giảm bớt thời gian chờ đợi
khi sử dụng các tài nguyên xử lý của máy tính cá nhân.

Một điểm đáng chú ý nữa của Google Colab là tính khả diễn giải. Mỗi
notebook trên Google Colab được lưu trữ dưới dạng tệp tin Jupyter Notebook
( .ipynb ), cho phép người dùng xem lại và chia sẻ lại các mã nguồn, kết quả và
giải thích của công việc dữ liệu khoa học và học máy. Điều này đồng nghĩa với
việc công việc của người dùng trên Google Colab có thể được theo dõi, tái sử
dụng và khả diễn giải một cách dễ dàng.

Tuy nhiên, cũng cần lưu ý rằng Google Colab là một dịch vụ miễn phí, vì
vậy nó có một số giới hạn. Ví dụ, một số tài nguyên xử lý, như GPU, có thể bị
giới hạn thời gian sử dụng hoặc không khả dụng trong một số trường hợp cao
tải. Ngoài ra, dữ liệu và notebook của người dùng cũng được lưu trữ trên đám
mây của Google, vì vậy cần chú ý về quyền riêng tư và bảo mật của dữ liệu.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Hình 3.1 Giao diện Google Colab

Tóm lại, Google Colab là một công cụ mạnh mẽ và tiện lợi cho các nhà
nghiên cứu, sinh viên và chuyên gia trong lĩnh vực dữ liệu khoa học và học máy.
Với tính năng dễ dàng sử dụng, tích hợp với các dịch vụ của Google, tính linh
hoạt trong việc chia sẻ và hợp tác, và tính khả diễn giải, Google Colab đã trở
thành một công cụ phổ biến trong cộng đồng khoa học dữ liệu và học máy.

3.1.2 Chuẩn bị dữ liệu

Dữ liệu cho nghiên cứu được thu thập theo các nguồn video từ camera
giám sát trên Internet chứa các hình ảnh về các biển báo giao thông tại Việt
Nam. Sau khi trích xuất hình ảnh và thực hiện các bước tiền xử lý bao gồm điều
chỉnh kích thước về định dạng 640 x 640, xoay hình ảnh từ −15◦ đến +15◦, v.v.
Bộ dữ liệu cuối cùng gồm hơn 1000 bức ảnh sẽ được sử dụng để đào tạo mô
hình. Bộ dữ liệu được chia với tỉ lệ 85/10/5 lần lượt cho đào tạo/xác thực/kiểm
tra, để phục vụ quá trình huấn luyện mô hình. Các bước thực hiện gồm:

- Đầu tiên tạo 1 thư mục có tên là tên của data là traindata.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

- Tiếp theo, trong thư mục vừa tạo (traindata) ta tạo 2 thư mục images và
labels.
- Copy 80% số ảnh vào thư mục train và 20% vào trong thư mục val của
thư mục images.
- Mở phần mềm makesense.ai và chọn thư mục train trong thư
mục images và chọn thư mục lưu là train trong thư mục labels.
- Tương tự đối với thư mục val.

Tập datasets sử dụng là file traindata.zip bao gồm 136 mẫu biển báo khác
nhau được thể hiện ở hình 3.2 và có 9 classes như bảng A để tiến hành training.

STT Lables

0 CamNguocChieu

1 CamXeTai

2 CamReTrai

3 CamRePhai

4 CamDoXe

5 HieuLenh

6 NguoiDiBo

7 VongXoay

8 XeBuyt

Bảng A: Danh sách 9 biển báo giao thông khác nhau

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Hình 3.2. Một số biển báo trong tệp train của images.

Trong folder traindata sẽ có 2 cấu trúc thư mục là images và labels, thư
mục images để chứa các hình ảnh biển báo giao thông và thư mục labels dùng
để xác định được các nhãn tên gắn trên hình ảnh để hỗ trợ chuẩn đoán hay xác
định chính xác dấu hiệu. Cấu trúc thư mục file images và labels được lưu như
hình 3.3.

Hình 3.3. Cấu trúc thư mục file images và labels.


Nghiên cứu khoa học lần thứ 36
tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Nếu có hình ảnh chưa được gắn nhãn, trước tiên sẽ cần phải gắn nhãn
chúng chỉ cần tải lên những hình ảnh muốn chú thích, chú thích hình ảnh và xuất
nhãn như hình 3.4.

Hình 3.4. Tạo các labels cho các biển báo.

Hình 3.4 thể hiện gắn nhãn nhanh với makesense.ai. MakeSense hỗ trợ nhiều
annotation : bounding box, polygon and point annotation để có thể xuất nhãn ở
các định dạng khác nhau bao gồm YOLO, VOC XML,VGG JSON và CSV.

Hình 3.5. Gắn nhãn hình ảnh với makesene.ai

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Sau khi gắn nhãn cho các biển báo, ta sẽ vào Actions và tải A.zip (gói chứa
các files được định dạng ở YOLO) như hình 3.6.

Hình 3.6. Xuất file chứa các nhãn của các biển báo.

Tiến hành giải nén file.zip vào folder labels ta được các file Text Document
ở hình 3.7.

Hình 3.7 Các tệp Text Document trong folder labels.

File .txt sẽ có format như sau :

- Mỗi hàng sẽ là một đối tượng.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

- Mỗi hàng sẽ có format: class x_center y_center width height.

- Toạ độ của các box sẽ được normalized (từ 0-1) theo format xywh.

- Class sẽ bắt đầu từ 0

3.1.3 Training model

Đầu tiên, việc chuẩn bị dữ liệu là bước quan trọng. Tôi đã tải về bộ dữ liệu
huấn luyện chứa các ảnh và nhãn đối tượng cần nhận diện. Sau đó, tôi đã sử
dụng Google Colab để tạo một notebook Jupyter mới và cài đặt môi trường và
các thư viện cần thiết, bao gồm cài đặt phiên bản YOLOv5 từ GitHub.

Hình 3.8 Cài đặt các môi trường trong google colab

Download file coco128.yaml và chỉnh sửa tên nhãn và lớp, sau đó đổi tên
file thành custom_data.yaml rồi lưu file này trong thư mục data trên google
colab.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Hình 3.9. File coco128.yaml

Tiếp theo để xác định được cấu hình và kiến trúc mô hình YOLOv5 ta viết
một tệp cấu hình mô hình cho custom object detector. Chọn base model (mô
hình cơ sở) nhỏ nhất, nhanh nhất của YOLOv5. YOLOv5 đề xuất 4 versions
theo hình 3.10.

Hình 3.10. Các version của YOLOv5.

AP¬¬¬test biểu thị kết quả máy chủ COCO test-dev2017, còn tất cả các kết
quả AP khác, biểu thị độ chính xác của val2017, size(pixels) là 640. Params (M)
là biến được thu nhận bởi một chương trình con và FLOPs là thước đó hiệu suất

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

của máy tính. Với data và custom_data.yaml files, thì ta sẵn sàng để huấn luyện,
để bắt đầu huấn luyện, ta chạy the training command theo tùy chọn sau:

- img: xác định kích thước hình ảnh đầu vào


- batch: số ảnh để load vào (16-32) một lần
- epochs: số lần học
- data: đặt đường dẫn đến tệp yaml
- cfg: chỉ định cấu hình mô hình
- weights: chỉ định một đường dẫn tùy chỉnh đến weights.
- name: tên kết quả
- nosave: chỉ lưu điểm kiểm tra cuối cùng
- cache: hình ảnh trong bộ nhớ cache để train nhanh hơn

Tiến hành huấn luyện nhận dạng các biển báo giao thông bằng YOLOv5

Hình 3.11. Lệnh tiến hành traing model trong google colab

3.1.4 Kết quả

Sau khi đào tạo mô hình, tác giả đã thực hiện các thử nghiệm và đánh giá
về mô hình. Một vài thông số của mô hình được mô tả như hình dưới đây:

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Hình 3.12. Kết quả sau khi training model

*Theo Bảng 1 các tiêu chí đánh giá được giải thích như sau:

Thứ Tự Tiêu Chí Kết Quả


1 Precision 0.970
2 Recall 0.977
3 F1-score 0.963
4 mAP 0.911

(1) (2) Precision và Recall: Trong bài toán Object Detection, Precision và
Recall được định nghĩa như sau:

• Precision: là thang đo độ chính xác của dự đoán..

• Recall: là thang đo độ tốt của khả năng tìm thấy các correct detection.

Công thức tính precision và recall được thực hiện như sau:
TP
recall=
T P+ F N

Trong đó có thể hiểu T P là số lần dự đoán chính xác. T P + F P là tổng số


lần dự đoán.T P + F N là số lần nhận dạng đúng có thể.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

(3) F1-score: F1-score là trung bình điều hòa (harmonic mean) của precision
và recall (giả sử hai đại lượng này khác 0). F1-score được tinh theo công thức:

precision × recall
precision ¿ 2 × precision+recall

(4) Mean Average Precision (mAP): nhiều bài báo cũng như các trang web
lớn thường sử dụng mAP như là thước đo chính cho các bài toán về Object
detection. mAP đơn giản là trung bình AP score (Average precision score) của n
class, được định nghĩa với công thức:
n
mAP=∑ APi
i=1

Với kết quả thu được này, có thể đánh giá mô hình phát hiện biển báo giao
thông sau khi đào tạo đạt mức chấp nhận trong phát hiện khá chính xác các loại
biển báo. Một số hình ảnh minh họa trong việc dự đoán của mô hình được minh
họa như dưới đây :

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Hình 3.13. Minh họa kết quả thử nhiệm của mô hình

3.2 Xây dựng ứng dụng

3.2.1 Lựa chọn framework

Với quyết định sử dụng Flutter để xây dựng ứng dụng nhận diện biển báo
giao thông trên nền tảng Android ! Flutter là một framework phát triển ứng dụng
di động đa nền tảng được phát triển bởi Google, cho phép chúng ta xây dựng
ứng dụng chất lượng cao với giao diện người dùng tương đồng trên nhiều nền
tảng khác nhau.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Flutter cung cấp một loạt các công cụ và thư viện phong phú để phát triển
ứng dụng di động. Bằng cách sử dụng Flutter, chúng ta có thể viết mã một lần và
triển khai ứng dụng trên cả Android và iOS. Điều này giúp tiết kiệm thời gian và
công sức phát triển, đồng thời tăng khả năng mở rộng và tái sử dụng mã nguồn.

Đối với việc xây dựng ứng dụng nhận diện biển báo giao thông, Flutter
cung cấp các công cụ và thư viện hữu ích để làm việc với hình ảnh và video.
Chúng ta có thể sử dụng Flutter để tạo giao diện người dùng đẹp mắt và tương
tác, xử lý và phân tích hình ảnh từ camera hoặc thư viện ảnh của thiết bị, và hiển
thị kết quả nhận diện một cách trực quan.

Flutter cũng hỗ trợ tích hợp dịch vụ trí tuệ nhân tạo như Firebase ML Kit
hoặc TensorFlow Lite để xây dựng mô hình nhận diện biển báo giao thông.
Chúng ta có thể sử dụng các mô hình học máy được huấn luyện trước hoặc tự
tạo mô hình riêng của mình để nhận diện và phân loại các biển báo.

Hình 3.14. Đa nền tảng của Flutter

Với Flutter, chúng ta có thể tạo giao diện người dùng linh hoạt và tương
tác, triển khai mã nguồn một cách dễ dàng trên nền tảng Android, và đảm bảo
hiệu suất cao cho ứng dụng của mình. Bên cạnh đó, cộng đồng Flutter đang phát

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

triển mạnh mẽ, cung cấp nhiều tài liệu, ví dụ và hỗ trợ để chúng ta tiến xa hơn
trong việc xây dựng ứng dụng của mình.

3.2.2 Phân tích thiết kế hệ thống ứng dụng

 Chức năng :

Là một ứng dụng di động trên nền tảng android có 3 chức năng chính :

TRAFFIC SIGN

HOME CAMERA

 HOME ( trang chủ ) :


Trang chủ của ứng dụng( App) mang chức năng chính cập nhật thông tin giao
thông hàng ngày để giúp người dùng nắm bắt được thông tin mỗi ngày.
 CAMERA :
Camera là một chức năng chính của ứng dụng (App) giúp người dùng có thể
nhận diện (detetion) biển báo giao thông một cách nhanh chóng thông qua
camera của thiết bị di dộng bằng cách quét ảnh.

3.2.3 Triến khai ứng dụng

Tiến hành xây dựng ứng dụng dựa trên phân tích và thiết kế giao diện trên nền
tảng android bằng famework Fultter :

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Sau khi đã có khung sườn giao diện app chúng ta tiếp tục goi API đến trang web
tin tức giao thông cho mục trang chủ. Tiếp tục tiến hành nhúng model đã được traing
từ mục 3.1 vào camera của ứng dụng.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Ứng Dụng được xây dựng hoàn chỉnh:

Kiểm thử và đánh giá kết quả ứng dụng sau khi được đẩy lên thiết bị di động.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

Demo với ảnh biển báo giao thông.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

ĐÁNH GIÁ KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN

1.Đánh giá kết quả của đề tài

Qua 1 thời gian nghiên cứu đề tài, nhóm đã thành công trong việc thực hiện
được những chức năng cơ bản của ứng dụng như nhận diện biển báo giao thông
trong ảnh và hiển thị kết quả tương ứng trên màn hình điện thoại. Tuy nhiên, do
thời gian nghiên cứu bị hạn chế nên ứng dụng hiện tại vẫn còn nhiều thiếu xót
và chưa hoàn thiện.

Một trong những hạn chế của ứng dụng là khi làm việc với một số phần
cứng không đáp ứng được các yêu cầu về xử lý hoặc chất lượng camera. Điều
này làm giảm khả năng nhận diện và chính xác của ứng dụng. Ngoài ra, ứng
dụng cũng chưa giải quyết triệt để bài toán về xử lý lỗi góc nhìn (perspective
projection) khi chụp ảnh. Đây là một bài toán khó khăn trong việc nhận diện
biển báo giao thông, đặc biệt trong điều kiện môi trường phức tạp như ánh sáng
yếu, che khuất. Tuy nhiên, nhóm sẽ tiếp tục nghiên cứu và phát triển để cải thiện
ứng dụng và giải quyết các vấn đề còn tồn đọng để hoàn thiện và phát triển thêm
nhiều hướng mới cho app.

2. Hướng phát triển đề tài

Để nâng cấp khả năng hệ thống, hướng phát triển ứng dụng client-server
hoặc kết nối thiết bị với camera của các phương tiện ô tô. Điều này giúp tăng
khả năng nhận dạng và đưa ra cảnh báo tức thời cho người tham gia giao thông.

Tuy nhiên, để đạt được điều này, cần cải thiện khả năng làm việc của hệ
thống. Một số vấn đề còn mắc phải cần được giải quyết, như phát hiện chưa
chính xác trong điều kiện môi trường phức tạp, sửa lỗi góc nhìn khi quay phim,
chụp hình. Để giải quyết các vấn đề này, các kỹ thuật tiên tiến trong lĩnh vực
nhận dạng hình ảnh và xử lý tín hiệu có thể được áp dụng. Ví dụ, để cải thiện
khả năng nhận dạng trong điều kiện môi trường phức tạp, có thể sử dụng các mô

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

hình học sâu (deep learning) để phân tích và tối ưu hóa các thông tin hình ảnh từ
camera. Đồng thời, để sửa lỗi góc nhìn khi quay phim, chụp hình, có thể sử dụng
các thuật toán xử lý ảnh để xoay, cắt, chỉnh sửa ảnh. Nhờ sự cải tiến này, hệ
thống sẽ có khả năng nhận dạng chính xác hơn và đưa ra cảnh báo tức thời cho
người tham gia giao thông, giúp tăng cường an toàn và giảm thiểu tai nạn giao
thông.

Ngoài việc sử dụng hình ảnh, ứng dụng cũng có thể kết hợp với công
nghệ nhận dạng giọng nói để cung cấp thông tin về biển báo giao thông cho
người dùng. Khi người dùng không thể nhìn thấy biển báo giao thông, họ có thể
mô tả nó bằng giọng nói và ứng dụng sẽ đưa ra thông tin tương ứng.

Để giúp người dùng hiểu rõ hơn về các biển báo giao thông, ứng dụng có
thể tích hợp tính năng trợ giúp. Các tính năng này có thể bao gồm mô tả chi tiết
về biển báo giao thông, giải thích ý nghĩa của biển báo, cung cấp thông tin về vị
trí và khoảng cách từ vị trí hiện tại của người dùng đến biển báo giao thông. Bên
cạnh đó, để tăng tính ứng dụng và khả năng sử dụng, cần phải cập nhật các
thông tin về biển báo giao thông thường xuyên để ứng dụng có thể cung cấp
thông tin chính xác và đầy đủ cho người dùng.

Cuối cùng, để phát triển ứng dụng nhận dạng biển báo giao thông trên
mobile app thành công, cần phải có sự hợp tác chặt chẽ giữa các nhà phát triển
và các cơ quan chức năng liên quan, đặc biệt là các cơ quan quản lý giao thông.
Bằng cách hợp tác này, các nhà phát triển ứng dụng có thể có được thông tin
chính xác và đầy đủ về biển báo giao thông, giúp ứng dụng hoạt động hiệu quả
và đáp ứng được nhu cầu của người dùng.

Nghiên cứu khoa học lần thứ 36


tài: Xây dng ng dng nhn din bin báo giao thông trên thit b di ng

DANH MỤC TÀI LIỆU THAM KHẢO

1. Trang web chính thức của Cục đăng kiểm Việt Nam
http://www.vr.org.vn/thong-ke/Pages/tong-hop-so-lieu-phuong-tien-giao-
thong-trong-ca-nuoc.aspx.
2. Luật Giao thông đường bộ số 23/2008/QH12 do Chính Phủ ban hành
https://thuvienphapluat.vn/van-ban/Giao-thong-Van-tai/Luat-giao-thong-
duong-bo-2008-23-2008-QH12-82203.aspx
3. Sách “Trí Tuệ Nhân Tạo Học Máy Và Ứng Dụng” NXB Thanh Niên, tác
giả Nguyễn Quốc Huy, Nguyễn Tất Bảo Thiên.
4. Sách “Deep Learning - Cuộc Cách Mạng Học Sâu” của tác giả Terrence J.
Sejnowski, dịch giả Huỳnh Hữu Tài.
5. Sách “Học máy và ứng dụng trong đánh giá nguy cơ xảy ra thiên tai” do
thầy Lê Văn Hưng và thầy Phạm Văn Đồng – Giảng viên trường Đại học
Mỏ - Địa chất biên soạn.
6. Tổng hợp kiến thức từ YOLOv1 đến YOLOv5 (Phần 3) (viblo.asia)

Nghiên cứu khoa học lần thứ 36

You might also like