BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
KHOA CƠNG NGHỆ ĐIỆN TỬ
NGHIÊN CỨU CƠNG NGHỆ NHẬN DIỆN ĐỐI
TƯỢNG VÀ BÁM ĐỐI TƯỢNG THEO THỜI
GIAN THỰC
Khoa: Công nghệ điện tử
Bộ môn: Điện tử - Tự động
Chuyên ngành: Hệ thống thơng minh
Lớp: DHDTMT13B
THÀNH PHỐ HỒ CHÍ MINH, NĂM 2021
1
MỤC LỤC
MỤC LỤC ...................................................................................................................2
DANH MỤC HÌNH ẢNH ..........................................................................................4
DANH MỤC TỪ VIẾT TẮT ......................................................................................5
MỞ ĐẦU .....................................................................................................................6
CHƯƠNG 1
1.1
TỔNG QUAN VỀ CÔNG NGHỆ NHẬN DIỆN ............................7
Giới thiệu về nhận diện đối tượng .................................................................7
1.1.1
Thực trạng về nhận diện đối tượng .........................................................8
1.1.2
Tương lai của công nghệ nhận diện đối tượng .......................................8
1.2
Nhận diện đối tượng so với phát hiện đối tượng ...........................................9
1.3
Các công nghệ nhận diện đối tượng ..............................................................9
1.3.1
Nhận diện đối tượng bằng cách sử dụng Deep learning(học sâu) ..........9
1.3.2
Nhận diện đối tượng bằng cách sử dụng Machine learning(học máy) .10
1.3.3
So sánh Machine Learning với Deep learning......................................11
CHƯƠNG 2
2.1
CƠ SỞ LÝ THUYẾT .....................................................................12
Tổng quan về ngôn ngữ Python và phầm mềm lập trình PyCharm ............12
2.1.1
Ngơn ngữ lập trình hướng đối tượng Python ........................................12
2.1.2
Phầm mềm lập trình PyCharm ..............................................................13
2.2
Giới thiệu về thuận toán k-Nearest Neighbors (kNN) .................................14
2.2.1
Phương pháp rút trích các đặc trưng SIFT............................................14
2.2.2
Hướng dẫn rút trích ảnh theo đặc trưng SIFT.......................................15
2.3
Giới thiệu về phương pháp YOLO v3 .........................................................16
2.3.1
YOLO v3 có gì nổi trội hơn kNN ? ......................................................16
2.3.2
Đối tượng nhận dạng của YOLO v3 .....................................................17
2.3.3
Hướng dẫn nhận diện đối tượng bằng YOLO v3 và giải thích code ....18
CHƯƠNG 3
PHÂN TÍCH VÀ CHẠY CHƯƠNG TRÌNH MƠ PHỎNG .........30
2
3.1
Yêu cầu đạt được của đề tài .........................................................................30
3.2
Lưu đồ giải thuật của chương trình .............................................................31
3.3
Hình ảnh chạy mơ phỏng thực tế .................................................................32
CHƯƠNG 4
4.1
KẾT LUẬN VÀ ĐÁNH GIÁ ........................................................36
Ưu điểm và nhược điểm ..............................................................................36
4.1.1
Ưu điểm ................................................................................................36
4.1.2
Nhược điểm...........................................................................................36
4.2
Hướng phát triển đề tài ................................................................................37
TÀI LIỆU THAM KHẢO .........................................................................................38
PHỤ LỤC(code mô phỏng) ..............................................................................39
3
DANH MỤC HÌNH ẢNH
Hình 1.1
Hình ảnh sau khi được nhận diện đối tượng ...........................................7
Hình 1.2
Cách thức hoạt động của Deep learning và Machine learning .............11
Hình 2.1
Ngơn ngữ lập trình Python....................................................................12
Hình 2.2
Phầm mềm lập trình PyCharm ..............................................................13
Hình 2.3
Hình ảnh khi chưa trích rút đặc trưng SIFT..........................................15
Hình 2.4
Hình ảnh sau được trích rút đặc trưng SIFT .........................................15
Hình 2.5
Nhóm đối tượng di chuyển trước khi nhận dạng ..................................18
Hình 2.6
Nhóm đối tượng phương tiện sau khi nhận diện ..................................19
Hình 2.7
Nhóm đối tượng động vật trước khi nhận diện .....................................20
Hình 2.8
Nhóm đối tượng động vật sau khi được nhận diện ...............................21
Hình 2.9
Nhóm đối tượng đồ vật trước khi nhận diện .........................................22
Hình 2.10
Nhóm đối tượng đồ vật sau khi được nhận diện ...................................23
Hình 2.11
Nhóm đối tượng đồ ăn, trái cây trước khi nhận diện ............................24
Hình 2.12
Nhóm đối tượng đồ ăn, trái cây sau khi được nhận diện ......................25
Hình 3.1:
Lưu đồ giải thuật ...................................................................................31
Hình 3.2:
Nhậm diện đối tượng gấu bơng ............................................................32
Hình 3.3:
Nhận diện đối tượng con diều ...............................................................33
Hình 3.4:
Nhận diện đối tượng hotdog .................................................................33
Hình 3.5:
Nhận diện đối tượng bàn phím và chuột ...............................................34
Hình 3.6:
Nhận diện nhiều đối tượng trong cùng một khung ảnh ........................35
Hình 3.7:
Nhận diện đối tượng có mật độ đơng ...................................................35
4
DANH MỤC TỪ VIẾT TẮT
DL
Deep learning
kNN
k-Nearest Neighbors
ML
Machine learning
KLTN
Khoá luận tốt nghiệp
5
MỞ ĐẦU
Trong thời đại công nghiệp 4.0, thế giới đang không ngừng phát triển ngày
càng đạt nhiều thành tựu mới trong mọi lĩnh vực. Và lĩnh vực chuyên ngành của em
chính là một trong những lĩnh vực được coi là trọng tâm của cuộc cách mạng cơng
nghệp lần này đó là lĩnh vực “Trí tuệ nhân tạo” trong chuyên ngành “Hệ thống
thông minh”.
Để theo kịp với tốc độ phát triển này, em đã học tập và nghiên cứu đề tài
“Nghiên cứu công nghệ nhận diện đối tượng và bám đối tượng theo thời gian thực”
nhằm ứng dụng vào các lĩnh vực trong cuộc sống, như xe tự hành, phân loại hàng
hóa, kiểm tra hàng tồn kho, …
Mục tiêu của đề tài là phát hiện được đối tượng và bám được đối tượng theo
thời gian thực. Thực hiện mô phỏng trên lap top, máy tính.
Đối tượng nghiên cứu: tất cả các đối tượng, vật thể xung quanh cuộc sống
thường ngày của con người.
Ý nghĩa của đề tài là cơ sở để phát triển các ngành liên quan đến “Trí tuệ
nhân tạo” trao dồi thêm kiến thức về xử lí ảnh, áp dụng những kiến thức đã học vào
thực tế.
6
CHƯƠNG 1
1.1
TỔNG QUAN VỀ CÔNG NGHỆ NHẬN DIỆN
Giới thiệu về nhận diện đối tượng
Nhận diện đối tượng là một kỹ thuật thị giác máy tính để xác định các đối
tượng trong hình ảnh hoặc video. Nhận diện đối tượng là đầu ra chính của các thuật
tốn học máy (Machine Learing) và học sâu (Deep Learing).
Khi con người nhìn vào một bức ảnh hoặc xem một đoạn video, chúng ta có
thể dễ dàng phát hiện ra người, đồ vật, cảnh và các chi tiết trực quan. Mục đích là
để dạy máy tính làm những gì tự nhiên đến với con người: đạt được mức độ hiểu
được những gì một hình ảnh chứa.
Nhận diện đối tượng là một công nghệ quan trọng đằng sau những chiếc ô tô
không người lái, cho phép chúng nhận ra biển báo dừng hoặc để phân biệt người đi
bộ với cột đèn. Nó cũng hữu ích trong nhiều ứng dụng khác nhau như xác định bệnh
trong phân tích sinh học, kiểm tra cơng nghiệp và thị giác robot.
Hình 1.1 Hình ảnh sau khi được nhận diện đối tượng
7
1.1.1 Thực trạng về nhận diện đối tượng
Trên thế giới phương pháp nhận diện đối tượng được sử dụng rộng rãi trong
nhiều lĩnh vực của cuộc sống, góp phần làm đa dạng hóa nhu cầu sử dụng của con
người. Nhờ sử dụng phương pháp này đã mang đến nhiều tiện nghi cho người sử
dụng. Giúp các nhà máy giảm bớt nhân cơng, điểm mạnh của phương pháp này là
máy móc có thể hoạt động liên tục, nên đang được rất nhiều doanh nghiệp hướng
tới phát triển.
Còn tại Việt Nam phương pháp này chưa được sử dụng rộng rãi, mới chỉ
được giảng dạy tại các trường đại học, cao đẳng, nghề, … Chưa được sử dụng rộng
rãi vì cịn nhiều khó khăn. Các doanh nghiệp cũng chưa mạnh tay đầu tư vào cơng
nghệ này vì cịn nhiều vướng mắc tới pháp lý.
Hiện nay, mới nhất đã có tập đồn Vinfast đang nghiên cứu và đưa công
nghệ này vào xe hơi. Đây là sẽ là bước khởi đầu thuận lợi cho công nghệ nhận diện
đối tượng thâm nhập vào thị trường Việt Nam.
1.1.2 Tương lai của công nghệ nhận diện đối tượng
Với những lợi ích, thuận tiện mà cơng nghệ mang lại cho cuộc sống của con
người, chúng ta có thể kì vọng vào một tương lai của công nghệ nhận diện.
Đi kèm những lợi ích đó, cũng có những hạn chế đi theo. Đó là nhu cầu việc
làm sẽ bị giảm bớt vì đa số cơng nghệ này sử dụng trên máy móc, sẽ khơng cần đến
cơng nhân nhiều nữa. Kèm theo đó là những vấn đề về pháp lý, vì ở Việt Nam chưa
có những điều luật là sử dụng Trí tuệ nhân tạo (AI).
Tuy nhiên, chúng ta vẫn có thể hy vọng về một tương lai không xa với cơng
nghệ này. Vì cả thế giới đang trong giai đoạn công nghiệp 4.0. Những công nghệ
mới mẻ này hứa hẹn sẽ mang đến những ngành nghề, nhu cầu việc làm mới, … cho
mỗi chúng ta.
8
1.2
Nhận diện đối tượng so với phát hiện đối tượng
Phát hiện đối tượng và nhận diện đối tượng là các kỹ thuật tương tự để xác
định đối tượng, nhưng chúng khác nhau về cách thực hiện.
Phát hiện đối tượng là quá trình tìm kiếm các thể hiện của đối tượng trong
ảnh. Trong trường hợp học sâu, phát hiện đối tượng là một tập hợp con của nhận
diện đối tượng, nơi đối tượng khơng chỉ được xác định mà cịn nằm trong một hình
ảnh. Điều này cho phép nhiều đối tượng được xác định và định vị trong cùng một
hình ảnh.
1.3
Các công nghệ nhận diện đối tượng
1.3.1
Nhận diện đối tượng bằng cách sử dụng Deep learning(học sâu)
Kỹ thuật học sâu đã trở thành một phương pháp phổ biến để thực hiện nhận
dạng đối tượng. Các mơ hình học sâu chẳng hạn như mạng nơ-ron tích tụ hoặc
CNN, được sử dụng để tự động tìm hiểu các tính năng vốn có của một đối tượng
nhằm xác định đối tượng đó. Ví dụ: CNN có thể học cách xác định sự khác biệt
giữa mèo và chó bằng cách phân tích hàng nghìn hình ảnh huấn luyện và tìm hiểu
các đặc điểm khiến chó và mèo khác nhau.
Có hai cách tiếp cận để thực hiện nhận dạng đối tượng bằng cách sử dụng
học sâu:
• Đào tạo một mơ hình từ đầu: Để đào tạo một mạng sâu từ đầu, bạn thu
thập một tập dữ liệu có nhãn rất lớn và thiết kế một kiến trúc mạng sẽ
tìm hiểu các tính năng và xây dựng mơ hình. Kết quả có thể rất ấn
tượng, nhưng cách tiếp cận này yêu cầu một lượng lớn dữ liệu đào tạo
và bạn cần thiết lập các lớp và trọng số trong CNN.
• Sử dụng mơ hình học sâu được đào tạo trước: Hầu hết các ứng dụng
học sâu sử dụng phương pháp học tập chuyển giao, một quy trình bao
gồm việc tinh chỉnh mơ hình được đào tạo trước. Bạn bắt đầu với một
mạng hiện có, chẳng hạn như AlexNet hoặc GoogLeNet và cấp dữ
9
liệu mới chứa các lớp chưa biết trước đây. Phương pháp này ít tốn
thời gian hơn và có thể cung cấp kết quả nhanh hơn vì mơ hình đã
được đào tạo trên hàng nghìn hoặc hàng triệu hình ảnh.
Học sâu mang lại mức độ chính xác cao nhưng yêu cầu một lượng lớn dữ liệu để
đưa ra dự đốn chính xác.
1.3.2 Nhận diện đối tượng bằng cách sử dụng Machine learning(học máy)
Các kỹ thuật học máy cũng phổ biến để nhận dạng đối tượng và cung cấp các
cách tiếp cận khác với học sâu. Các ví dụ phổ biến về kỹ thuật học máy là:
• Trích xuất tính năng HOG với mơ hình học máy SVM
• Mơ hình Bag-of-words với các tính năng như SURF và MSER
• Thuật tốn Viola-Jones, có thể được sử dụng để nhận dạng nhiều đối
tượng, bao gồm cả khn mặt và thân trên
Quy trình cơng việc học máy:
Để thực hiện nhận dạng đối tượng bằng cách sử dụng phương pháp học máy
tiêu chuẩn, bạn bắt đầu với một bộ sưu tập hình ảnh (hoặc video) và chọn các tính
năng có liên quan trong mỗi hình ảnh. Ví dụ: một thuật tốn trích xuất đối tượng có
thể trích xuất các đối tượng địa lý cạnh hoặc góc có thể được sử dụng để phân biệt
giữa các lớp trong dữ liệu của bạn.
Các tính năng này được thêm vào mơ hình học máy, mơ hình này sẽ tách các
tính năng này thành các danh mục riêng biệt của chúng và sau đó sử dụng thơng tin
này khi phân tích và phân loại các đối tượng mới.
Bạn có thể sử dụng nhiều thuật toán học máy và phương pháp trích xuất tính
năng, đưa ra nhiều cách kết hợp để tạo ra một mơ hình nhận dạng đối tượng chính
xác.
10
Sử dụng học máy để nhận dạng đối tượng mang lại sự linh hoạt trong việc
lựa chọn sự kết hợp tốt nhất giữa các tính năng và bộ phân loại cho việc học. Nó có
thể đạt được kết quả chính xác với dữ liệu tối thiểu.
1.3.3 So sánh Machine Learning với Deep learning
Việc xác định cách tiếp cận tốt nhất để nhận dạng đối tượng phụ thuộc vào
ứng dụng của bạn và vấn đề bạn đang cố gắng giải quyết. Trong nhiều trường hợp,
học máy có thể là một kỹ thuật hiệu quả, đặc biệt nếu bạn biết các tính năng hoặc
đặc điểm của hình ảnh là những đặc điểm tốt nhất để sử dụng để phân biệt các lớp
của đối tượng.
Điểm cân nhắc chính cần ghi nhớ khi lựa chọn giữa học máy và học sâu là
liệu bạn có một GPU mạnh và nhiều hình ảnh đào tạo được gắn nhãn hay không.
Nếu câu trả lời cho một trong hai câu hỏi này là Khơng, thì phương pháp học máy
có thể là lựa chọn tốt nhất. Các kỹ thuật học sâu có xu hướng hoạt động tốt hơn với
nhiều hình ảnh hơn và GPU giúp giảm thời gian cần thiết để đào tạo mơ hình.
Tóm lại Deep learning là tập hợp con của Machine learning.
Hình 1.2 Cách thức hoạt động của Deep learning và Machine learning
11
CHƯƠNG 2
CƠ SỞ LÝ THUYẾT
2.1 Tổng quan về ngôn ngữ Python và phầm mềm lập trình PyCharm
2.1.1 Ngơn ngữ lập trình hướng đối tượng Python
Python là một ngơn ngữ lập trình mục đích chung cấp cao được thơng dịch.
Triết lý thiết kế của nó nhấn mạnh khả năng đọc mã với việc sử dụng thụt lề đáng
kể. Cấu trúc ngôn ngữ cũng như cách tiếp cận hướng đối tượng của nó nhằm mục
đích giúp các lập trình viên viết mã logic, rõ ràng cho các dự án quy mô nhỏ và lớn.
Python được định kiểu động và thu thập rác. Nó hỗ trợ nhiều mơ hình lập
trình, bao gồm lập trình có cấu trúc (đặc biệt là thủ tục), hướng đối tượng và chức
năng. Nó thường được mơ tả như một ngôn ngữ "bao gồm pin" do thư viện tiêu
chuẩn tồn diện của nó.
Python có hệ thống thư viện mở cho phép người dùng dễ dàng truy cập, sử
dụng một cách hồn tồn miễn phí. Đây chính là điểm mạnh của Python thu hút
hàng triệu người sử dụng ngôn ngữ này. Python có cách viết hàm rất dễ hiểu, gợi ý
hàm, giúp người dùng sử dụng nó một cách thuận lợi, nhanh chóng, …
Hình 2.1 Ngơn ngữ lập trình Python
12
2.1.2 Phầm mềm lập trình PyCharm
Trong bài nghiên cứu này, em sử dụng phần mềm lập trình PyCharm để lập
trình và mô phỏng kết quả thực hiện được.
Lý do em chọn phầm mềm này thì tính khai báo thư viện đơn giản, cài đặt và
sử dụng thư viện cũng dễ dàng.
PyCharm biết mọi thứ về mã của bạn. Dựa vào nó để hồn thành mã thơng
minh, kiểm tra lỗi nhanh chóng và sửa lỗi nhanh chóng, điều hướng dự án dễ dàng
và hơn thế nữa.
Viết mã gọn gàng và có thể bảo trì trong khi IDE giúp bạn kiểm sốt chất
lượng với các kiểm tra PEP8, hỗ trợ kiểm tra, tái cấu trúc thông minh và một loạt
các kiểm tra.
PyCharm được thiết kế bởi các lập trình viên, dành cho các lập trình viên, để
cung cấp tất cả các cơng cụ bạn cần để phát triển Python hiệu quả.
Hình 2.2 Phầm mềm lập trình PyCharm
13
2.2 Giới thiệu về thuận toán k-Nearest Neighbors (kNN)
Thuật toán kNN là một trong những thuật toán học máy nổi tiếng nhất và tuyệt
đối phải có trong hộp cơng cụ học máy của bạn. Python là ngơn ngữ lập trình dành
cho học máy, vì vậy, cịn cách nào tốt hơn để khám phá kNN hơn là với các gói nổi
tiếng NumPy và scikit-learning của Python.
Thuận toán kNN là một dạng hồi quy tuyến tính hoạt động trong một số
trường hợp nhưng khơng phải lúc nào cũng đưa ra dự đốn chính xác. Các tính năng
của thuận tốn kNN
• kNN là một thuật tốn học máy được giám sát.
• kNN là một thuật tốn học phi tuyến tính.
• kNN là người học được giám sát cả phân loại và hồi quy
• kNN nhanh và dễ hiểu
Bên cạnh những tính năng nổi trội trên kNN cũng còn một số hạn chế, nhược
điểm thực sự của kNN là khả năng thích ứng với các mối quan hệ phức tạp cao giữa
các biến độc lập và phụ thuộc. kNN ít có khả năng thực hiện tốt các tác vụ nâng cao
như thị giác máy tính và xử lý ngơn ngữ tự nhiên.
2.2.1 Phương pháp rút trích các đặc trưng SIFT
SIFT (Scale-invariant Feature Transform) là một thuật tốn tiêu biểu và có
hiệu quả khá cao. Dựa theo các đặc trưng cục bộ bất biến trong ảnh với việc thay
đổi tỷ lệ ảnh, quay ảnh, đôi khi thay đổi điểm nhìn hoặc thay đổi cường độ sáng của
ảnh. Giải thuật SIFT do David G. Lowe đưa ra vào năm 2004 và được phát triển
mạnh mẽ đến nay.
Rút trích đặc trưng ảnh là một bước quan trọng trong so sánh trùng khớp ảnh.
Bước này nó giúp biểu diễn ảnh bằng các đặc trưng quan trọng. Đặc trưng này được
rút trích ra từ các điểm đặc biệt cục bộ (keypoint), các điểm này kèm theo các mô tả
về nó và một vector có lấy keypoint làm điểm gốc.
14
2.2.2 Hướng dẫn rút trích ảnh theo đặc trưng SIFT
Hình 2.3 Hình ảnh khi chưa trích rút đặc trưng SIFT
Hình 2.4 Hình ảnh sau được trích rút đặc trưng SIFT
15
Trên đây là một ví dụ cụ thể là phương pháp rút trích đặc trưng SIFT, áp
dụng trên xe ơ tơ.
Có thể dễ dàng thấy cách thức hoạt động của đặc trưng SIFT là tìm và phát
hiện ra các điểm đặc trưng của đối tượng.
Các bước thực hiện rút trích đặc trưng bao gồm:
• Bước 1: Dị tìm cực trị trong khơng gian đo (Scale-space Extrema
Detection)
• Bước 2: Định vị các điểm đặc trưng (keypoint localization)
• Bước 3: Xác định hướng cho các điểm đặc trưng
• Bước 4: Mơ tả hướng cho các điểm đặc trưng
Mã code để tìm rút đặc trưng ảnh:
•
•
•
•
•
•
•
•
•
•
•
import cv2
import numpy as np
img = cv2.imread('oto.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
sift = cv2.xfeatures2d.SIFT_create()
kp = sift.detect(gray, None)
img = cv2.drawKeypoints(gray, kp, img)
kp, des = sift.detectAndCompute(gray,None)
cv2.imwrite('sift_keypoints.jpg', img)
cv2.imshow('sift_keypoints.jpg', img)
cv2.waitKey(0)
2.3 Giới thiệu về phương pháp YOLO v3
2.3.1 YOLO v3 có gì nổi trội hơn kNN ?
YOLO v3 là một trong những thuật toán phát hiện đối tượng nhanh hơn hiện
có. Mặc dù nó khơng cịn là thuật tốn phát hiện đối tượng chính xác nhất, nhưng
nó là một lựa chọn rất tốt khi bạn cần phát hiện trong thời gian thực mà không làm
mất quá nhiều độ chính xác.
16
Tính năng nổi bật nhất của YOLO v3 là nó thực hiện phát hiện ở ba quy mô
khác nhau. YOLO là một mạng tích hợp hồn tồn và đầu ra cuối cùng của nó được
tạo ra bằng cách áp dụng hạt nhân 1 x 1 trên bản đồ đặc trưng. Trong YOLO v3,
việc phát hiện được thực hiện bằng cách áp dụng các hạt nhân phát hiện 1 x 1 trên
các bản đồ đối tượng có ba kích thước khác nhau tại ba vị trí khác nhau trong mạng.
So với kNN, YOLO nổi trội hơn nhờ khả năng nhận diện theo thời gian thực.
Điều mà kNN chưa làm được. Mặc dù tốc độ nhận dạng còn chậm hơn nhiều so với
kNN, nhưng tính năng nhận diện theo thời gian thực khiến cho YOLO v3 nổi trội
hơn hẳn.
2.3.2 Đối tượng nhận dạng của YOLO v3
YOLO v3 được thiết kế như một thư viện mã nguồn mở được lập trình sẵn,
người dùng chỉ việc tải về và gọi hàm ra sử dụng. YOLO v3 cho phép người dùng
có thể truy cập vào mã nguồn thư viện để sửa chữa.
Theo như thư viện YOLO v3 gốc thì có thể nhận diện được các đối tượng
sau:
• Nhóm đối tượng phương tiện: ơ tơ, tàu hỏa, xe tải, máy bay, xe máy,
xe đạp, tàu thuyền.
• Nhóm đối tượng con người, động vật: con người, con chó, con mèo,
con voi, con hươu cao cổ, con ngựa vằn, con chim, con bị sữa, con
gấu.
• Nhóm đối tượng đồ vật: đèn giao thông, trụ nước cứu hoa, biển báo,
ba lo, túi xách, ván trượt, bình nước, găng tay, cái bát, cái thìa, cái nĩa,
con dao, điện thoại, lap top, gấu bơng, tivi, lị vi sóng, cái giường,
đồng hồ, quyển sách, …
• Nhóm đối tượng đồ ăn, trái cây: quả táo, quả chuối, quả cảm, củ cà
rốt, bánh pizza, bánh donut, bánh sandwich.
17
2.3.3 Hướng dẫn nhận diện đối tượng bằng YOLO v3 và giải thích code
Đầu tiên chúng ta cần có hình ảnh của các đối tượng cần nhận dạng, em sẽ
trình bày cách nhận dạng từng nhóm đối tượng một. Do thư viện YOLO v3 có sẵn
nên, em chỉ nhận diện những đối tượng có sẵn trong thư viện.
Nhóm đối tượng thứ nhất là các phương tiện di chuyển, em có một hình gốc
về các phương tiện di chuyển như thế này:
Hình 2.5 Nhóm đối tượng di chuyển trước khi nhận dạng
18
Sau khi chạy mô phỏng qua code nhận diện đối tượng, ta thu được kết quả
như sau:
Hình 2.6 Nhóm đối tượng phương tiện sau khi nhận diện
Khung hình tứ diện dùng để khoanh vùng đối tượng lại, còn con số thể hiện
độ giống với dữ liệu có trong thư viện. Tỉ lệ này càng cao thì độ giống và độ chính
xác khi nhận diện càng cao (Max=1.0)
19
Tiếp theo đối với nhóm đối tượng động vật, các bước thực hiện cũng tương
tự, hình ảnh về nhóm động vật trước khi nhận diện:
Hình 2.7 Nhóm đối tượng động vật trước khi nhận diện
Sau khi chạy code mô phỏng nhận dạng đối tượng động vật, ta thu được kết
quả nhận diện như sau:
20
Hình 2.8 Nhóm đối tượng động vật sau khi được nhận diện
Tiếp theo đối với nhóm đối tượng đồ vật, trong nhóm này thư viện cho phép
chúng ta nhận diện được rất nhiều các đồ dùng vật dụng trong gia đình, cuộc sống,
em chỉ lấy một vài vật dụng làm ví dụ. Dưới đây là hình ảnh ban đầu của nhóm đối
tượng đồ vật:
21
Hình 2.9 Nhóm đối tượng đồ vật trước khi nhận diện
Sau khi chạy code nhận diện đối tượng đồ vật, ta thu được kết quả nhận diện
đồ vật như sau:
22
Hình 2.10 Nhóm đối tượng đồ vật sau khi được nhận diện
Cuối cùng là nhóm đối tượng đồ ăn, trái cây. Cách làm cũng tương tự như 3
nhóm trên. Hình ảnh ban đầu của nhóm đối tượng này như sau:
23
Hình 2.11 Nhóm đối tượng đồ ăn, trái cây trước khi nhận diện
Sau khi nhận diện ta thu được kết quả như sau:
24
Hình 2.12 Nhóm đối tượng đồ ăn, trái cây sau khi được nhận diện
Trên đây chỉ là nhừn đối tượng đặc trưng cho từng nhóm đối tượng mà thư
viện có thể nhận diện được. Ngồi ra cịn có rất nhiều những đối tượng mà thư viện
có thể nhận diện được. Dưới đây là bảng trình bày các đối tượng mà thư viện có thể
nhận diện được.
STT
Tên đối tượng
STT Tên đối tượng
STT Tên đối tượng
1
2
3
4
5
6
7
8
9
10
11
Con người
Xe đạp
Xe hơi
Xe máy
Máy bay
Xe bus
Tàu hỏa
Xe tải
Thuyền
Đèn giao thông
Trụ nước cứu hỏa
28
29
30
31
32
33
34
35
36
37
38
55
56
57
58
59
60
61
62
63
64
65
Cà vạt
Va li
Dĩa ném
Ván trượt tuyết đơn
Ván trượt tuyết đơi
Bóng thể thao
Con diều
Gậy bóng chày
Găng bóng chày
Ván trượt
Ván lướt sóng
25
Bánh donut
Bánh ngọt
Cái ghế
Ghế sofa
Cây cảnh
Cái giường
Bàn ăn
Toilet
Ti vi
Lap top
Chuột