Tải bản đầy đủ (.docx) (48 trang)

Sử dụng deeplearning (Yolo) để phân loại đối tượng trong video

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.33 MB, 48 trang )

-------Trường Đại Học Công Nghiệp Hà Nội
Khoa Công Nghệ Thông Tin
--------

Đồ án tốt nghiệp

Đề tài: Nghiên cứu về thư viện darkflow yolo ứng dụng trong
phân loại đối tượng video
Sinh viên thực hiện : Đỗ Xuân Sơn
Lớp: KHMT2-K10
Giáo viên hướng dẫn :TS.Ngô Đức Vĩnh


Lời cảm ơn!
Để đồ án này đạt kết quả tốt , em đã nhận được sự hỗ trợ, giúp đỡ của thầy Ngô Đức
Vĩnh. Với tình cảm sâu sắc, chân thành, em xin phép được bày tỏ lòng biết ơn sâu sắc
thầy đã tạo điều kiện giúp đỡ trong quá trình học tập và nghiên cứu đề tài.
Với sự quan tâm, dạy dỗ, chỉ bảo tận tình chu đáo của thầy, đến nay tôi đã có thể hoàn
thành luận đồ án tốt nghiệp , đề tài:
" Nghiên cứu về thư viện darkflow yolo ứng dụng trong phân loại đối tượng video "
Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế của sinh viên, đồ án này
không thể tránh được những thiếu sót. Em rất mong nhận được sự chỉ bảo, đóng góp ý
kiến của các thầy cô để tôi có điều kiện bổ sung, nâng cao ý thức của mình, phục vụ
tốt hơn công tác thực tế sau này.

Em xin chân thành cảm ơn!


MỤC LỤC
Lời cảm ơn!...........................................................................................................................2
Mở Đầu..........................................................................................................................................4


1.Lý Do Chọn Đề Tài................................................................................................................4
2.Mục Tiêu Nghiên Cứu...........................................................................................................6
3.Phương Pháp Nghiên Cứu.....................................................................................................6
4. Đối tượng nghiên cứu...........................................................................................................6
CHƯƠNG I: MÔ TẢ SƠ BỘ VỀ BÀI TOÁN PHÂN LOẠI ĐỐI TƯỢNG..............................7
1.Tổng Quan Về Lĩnh Vực Nghiên Cứu.................................................................................7
2. Phân loại đối tượng trong video...........................................................................................7
2.1. Phân loại dựa theo hình dạng........................................................................................7
2.2.Phương pháp dựa theo chuyển động..............................................................................8
3. Ứng Dụng Trí Tuệ Nhân Tạo Vào Nhận Dạng Và Phân Loại Đối Tượng..........................8
CHƯƠNG II: TỔNG QUAN VỀ YOLO...................................................................................10
1.Giới thiệu về Yolo................................................................................................................10
2.Lịch sử phát triển.................................................................................................................10
2.1.Yolo v1..........................................................................................................................10
2.2.YOLOv2........................................................................................................................17
2.3.Yolo 9000......................................................................................................................30
2.4.Yolo v3..........................................................................................................................30
3.Cấu trúc file của Yolo..........................................................................................................32
CHƯƠNG III : THỰC NGHIỆM...............................................................................................33
1.Cài Đặt.................................................................................................................................33
1.1.Opencv..........................................................................................................................33
1.2.CUDA...........................................................................................................................34
1.3.cuDNN..........................................................................................................................36
1.4. Mô tả cài đặt................................................................................................................36
2.Traning.................................................................................................................................39
2.1.Tạo dataset cho việc train lớp mới...............................................................................39
2.2.Tool sử dụng cho training set.......................................................................................40
2.3.Download Pre-trained model...............................................................................41



2.4.Data file.........................................................................................................................41
2.5. Thông số cấu hình YOLOv3.......................................................................................42
2.6. Siêu tham số hàng loạt trong YOLOv3 (Batch hyper-parameter in YOLOv3).........42
2.7. Tham số cấu hình phân khu trong YOLOv3 (Subdivisions configuration parameter
in YOLOv3)........................................................................................................................42
2.8. Width, Height, Channels..............................................................................................43
2.9.Động lượng và phân rã (Momentum and Decay)...................................................43
2.10. Tỷ lệ học tập, các bước, quy mô, ghi trong (Learning Rate, Steps, Scales, Burn In)
.............................................................................................................................................43
2.11. Tăng dữ Liệu (Data augmentation)...........................................................................44
2.12. Số lần lặp lại (Number of iterations).........................................................................44
2.13.Training YOLOv3.....................................................................................................44
2.14.Khi nào nên dừng lại việc training.............................................................................46
3.Detection and classification cho video................................................................................46
4.Kết quả.................................................................................................................................46
5.Kết luận................................................................................................................................47


Mở Đầu
1.Lý Do Chọn Đề Tài
Xã hội ngày càng phát triển thì công nghệ cũng càng ngày càng phát
triển theo từ các cuộc cách mạng công nghiệp đầu tiên đến bây giờ là cuộc cách
mạng công ngiệp 4.0 . Là cuộc cách mạng mà cốt lõi là công nghệ thông tin với
các thiết bị thông minh như robot hay xe tự lái để tăng năng suất lao động và
phục vụ cho các nhu cầu đời sống con người nhưng vấn đề gặp phải chung ở
đây đối với các thiết bị này là chúng vẫn còn rất ngây ngô so để chúng có trở
nên thực sự thông minh thì con người phải dạy cho chúng hiểu và phân được
các sự vật trong thực tế nhằm đưa ra các bài toán xử lý chính xác nhằm đạt được
mục đích công việc từ đó đã phát triển nên nhiều chương trình nhằm giúp máy
tính nhận diện được các đối tượng ngoài đời thực

Với cơ sở sử dụng opencv và cài đặt thêm thư viện YoLo trên môi
trường Python ứng dụng giúp nhận diện đối tượng trong video nhằm mục đích
giải quyết vấn đề trên


2.Mục Tiêu Nghiên Cứu
Tìm hiểu ứng dụng Yolo trong nhận dạng và phân loại các đối tượng ngoài đời thực
3.Phương Pháp Nghiên Cứu
Cài đặt môi trường Yolo ,Opencv, darkNet hoặc darkflow và Python
Áp dụng mô hình có sẵn để nhận dạng với đối tượng tượng trong video
Đánh giá mức độ chính xác của mô hình
4. Đối tượng nghiên cứu
Open CV ,YoLo trên môi trường Python

6


CHƯƠNG I: MÔ TẢ SƠ BỘ VỀ BÀI TOÁN PHÂN LOẠI ĐỐI TƯỢNG
1.Tổng Quan Về Lĩnh Vực Nghiên Cứu
Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ. Nó là một ngành khoa học
mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nó rất nhanh,
kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính chuyên dụng riêng
cho nó.
Xử lý ảnh được đưa vào giảng dạy ở bậc đại học ở nước ta khoảng chục năm nay. Nó là
môn học liên quan đến nhiều lĩnh vực và cần nhiều kiến thức cơ sở khác. Đầu tiên phải
kể đến Xử lý tín hiệu số là một môn học hết sức cơ bản cho xử lý tín hiệu chung, các
khái niệm về tích chập, các biến đổi Fourier, biến đổi Laplace, các bộ lọc hữu hạn…
Thứ hai, các công cụ toán như Đại số tuyến tính, Sác xuất, thống kê. Một số kiến thứ
cần thiết như trí tuệ nhân tao, Mạng nơ ron nhân tạo cũng được đề cập trong quá trình
phân tích và nhận dạng ảnh.

Ứng dụng công nghệ trí tuệ nhân tạo cụ thể là mạng noron để phát hiện và phân loại
đối tượng trong video
2. Phân loại đối tượng trong video
Phân loại đối tượng là quá trình phân lớp đối tượng chuyển động thuộc lớp sự vật nào
(người, phương tiện…). Các vùng chuyển động phát hiện được (trong bước phát hiện
đối tượng chuyển động) trong video tương ứng với các đối tượng khác nhau như
người bộ hành, xe cộ, … Nhận biết kiểu (loại) của một đối tượng phát hiện được để theo
dõi tin cậy và phân tích hành động của nó một cách chính xác là rất quan trọng.
Có 2 cách tiếp cận phổ biến:
_ Phương pháp dựa trên hình dạng(shape)
_ Phương pháp dựa trên sự chuyển động (motion)
Các phương pháp dựa trên hình dạng sử dụng thông tin không gian hai chiều của đối
tượng, trong khi đó các phương pháp dựa trên sự chuyển động sử dụng các đặc trưng
thuộc thời gian đã được theo dõi của các đối tượng cho giải pháp phân loại.
2.1. Phân loại dựa theo hình dạng
Các đặc trưng chung được sử dụng trong phân chia các đối tượng theo hình dạng là
tạo các hình chữ nhật bao quanh, tạo các vùng, hình chiếu và độ nghiêng của các vùng
chứa đối tượng được phát hiện.
Hướng tiếp cận này sử dụng độ dài các đường nét của hình chiếu và vùng thông tin
để phân loại các đối tượng đã được phát hiện. Phương pháp này phụ thuộc vào các giả
định, chẳng hạn như, nếu là con người thì sẽ nhỏ hơn xe cộ và có bóng phức tạp. Mức
độ rải rác (dispersedness) được dùng như là một ma trận phân loại và nó được định
nghĩa trong các giới hạn của các vùng của đối tượng và độ dài đường viền (chu vi)
như sau:

7


Phương pháp phân loại này phát triển bởi Collins sử dụng cách nhìn dựa theo các đặc
trưng của thị giác để huấn luyện một mạng nơ ron các đối tượng phân loại thừa nhận

các lớp. Đầu vào của mạng nơ ron là mức độ rải rác, các miền, tỉ lệ tương quan của
các vùng đối tượng và độ phóng đại của camera. Cũng như phương pháp trước, việc
phân loại được thực hiện trên mỗi frame và các kết quả được đưa vào biểu đồ để duy
trì sự phân loại theo thời gian
2.2.Phương pháp dựa theo chuyển động
Một số phương pháp trong một số bài viết chỉ sử dụng các đặc trưng chuyển động
theo thời gian của các đối tượng để thừa nhận các lớp của chúng. Một cách tổng quát,
chúng được dùng để phân biệt các đối tượng cứng (như xe cộ) và không cứng (như
người). Phương pháp này dựa trên cơ sở tính chất đặc biệt theo thời gian của 9 các đối
tượng chuyển động. Với đối tượng được đưa ra ở chu kỳ chuyển động, đặc tính của nó
đo được cũng như hiển thị một chu kỳ chuyển động.
Phương pháp này khai thác đầu mối này để phân loại các đối tượng chuyển động sử
dụng chu kỳ. Phân tích luồng quang học (optical flow) cũng là hữu ích để phân biệt các
đối tượng “cứng” và đối tượng “mềm”. A.J. Lipton trình bày một phương pháp được sử
dụng phân tích optical flow cục bộ của các vùng đối tượng đã được phát hiện. Nó được
mong đợi cho các đối tượng mềm như là con người và sẽ đưa ra giá trị flow trung bình,
còn các đối tượng cứng như là xe cộ sẽ được đưa ra giá trị flow nhỏ. Cũng vậy, phần
còn lại trong chuyển động phát sinh của con người sẽ có chu kỳ. Bằng cách sử dụng gợi
ý này, chuyển động của con người và cả con người có thể được phân biệt với các đối
tượng khác như là xe cộ

3. Ứng Dụng Trí Tuệ Nhân Tạo Vào Nhận Dạng Và Phân Loại Đối Tượng
Ứng dụng công nghệ mạng noron trong trí tuệ nhân tạo để nhận dạng và phân loại đối
tương.
Có 3 detectors dò đối tượng chính mà ta thường gặp được hỗ trợ trong opencv là :
+R-CNN và các biến thể của chúng, bao gồm R-CNN, Fast R-CNN và F-RN nhanh hơn
+Phát hiện bắn một lần (SSD)
+Yolo
R-CNN là một trong những detectors tìm đối tượng dựa trên học tập sâu đầu tiên và là
một ví dụ về detectors hai giai đoạn

_R-CNN đầu tiên, phân cấp tính năng phong phú để phát hiện đối tượng chính xác và
phân đoạn ngữ nghĩa, (2013) Girshick et al. đề xuất một trình phát hiện đối tượng yêu

8


cầu một thuật toán như Tìm kiếm chọn lọc (hoặc tương đương) để đề xuất các hộp giới
hạn ứng viên có thể chứa các đối tượng.

_Các vùng này sau đó được chuyển vào CNN để phân loại, cuối cùng dẫn đến một trong
những detectors tìm đối tượng dựa trên học tập sâu đầu tiên.
Vấn đề với phương pháp R-CNN tiêu chuẩn là nó rất chậm và không phải là máy phát
hiện đối tượng đầu cuối hoàn chỉnh. Girshick et al. xuất bản một bài báo thứ hai vào
năm 2015, có tựa đề Fast R- CNN. Thuật toán R-CNN nhanh đã tạo ra những cải tiến
đáng kể cho R-CNN ban đầu, cụ thể là tăng độ chính xác và giảm thời gian cần thiết để
thực hiện chuyển tiếp; tuy nhiên, mô hình vẫn dựa vào thuật toán đề xuất khu vực bên
ngoài.
Mãi cho đến khi bài báo tiếp theo năm 2015 của Girshick và cộng sự, Faster R-CNN:
Hướng tới phát hiện đối tượng theo thời gian thực với Mạng đề xuất khu vực, R-CNN
đã trở thành một trình phát hiện đối tượng học sâu thực sự từ đầu đến cuối loại bỏ yêu
cầu Tìm kiếm có chọn lọc và thay vào đó dựa vào Mạng đề xuất khu vực (RPN) là (1)
tích chập hoàn toàn và (2) có thể dự đoán các hộp giới hạn đối tượng và điểm số của đối
tượng xác định (nghĩa là điểm số định lượng khả năng đó là khu vực của một hình ảnh
có thể chứa một hình ảnh). Đầu ra của RPN sau đó được chuyển vào thành phần RCNN để phân loại và ghi nhãn cuối cùng.
Mặc dù R-CNN có xu hướng rất chính xác, vấn đề lớn nhất với gia đình mạng R-CNN
là tốc độ của chúng - chúng rất chậm, chỉ đạt 5 FPS trên GPU.
Để giúp tăng tốc độ của các máy dò tìm đối tượng dựa trên học tập sâu, cả detectors một
lần bắn (SSD) và YOLO đều sử dụng chiến lược phát hiện một giai đoạn.
SSD mặc dù là có thời gian thực hiện ngắn nhất nhưng cho kết quả kém nhất
Yolo vừa đảm bảo về tốc độ xử lý vừa đảm bảo về độ chính xác vừa đủ để xử dụng với

các ứng dụng thực tế

9


CHƯƠNG II: TỔNG QUAN VỀ YOLO
1.Giới thiệu về Yolo
YOLO là viết tắt của You Only Look Once. Đó là mô hình phát hiện đối tượng sử dụng các
tính năng được học bởi một mạng neural network chập sâu để phát hiện một đối tượng.
Thư viện sử dụng để hỗ trợ tính toán cho Yolo tận dụng phần cứng GPU là Darkflow trên nền
tảng Windown và Darknet giành cho Linux
2.Lịch sử phát triển
Yolo đã trải qua 4 phiên bản đến phiên bản mới nhất là là Yolo v3 từ năm 2015-2018
2.1.Yolo v1
Ô lưới (Grid cell)
Cắt ảnh gốc YOLO chia hình ảnh đầu vào thành lưới S × S. Mỗi ô lưới dự đoán chỉ một đối
tượng.
Ví dụ, ô lưới màu vàng bên dưới cố gắng dự đoán đối tượng người ở người có trung tâm (dấu
chấm màu xanh) nằm trong ô lưới.

Mỗi ô lưới dự đoán một số hộp cố định. Trong ví dụ này, ô lưới màu vàng đưa ra hai dự đoán
hộp ranh giới (hộp màu xanh) để xác định vị trí của người đó.

10


Tuy nhiên, quy tắc một đối tượng giới hạn mức độ các đối tượng được phát hiện gần.
Vì thế, YOLO có một số hạn chế về mức độ gần gũi của các vật thể. Hình dưới đây, có 9
Santas ở góc dưới bên trái nhưng YOLO chỉ có thể phát hiện 5.


11


Đối với mỗi ô lưới:
nó dự đoán boundary boxes (các hộp ranh giới) B và mỗi hộp có một điểm tự tin, nó chỉ phát
hiện một đối tượng bất kể số lượng hộp B, nó dự đoán C xác suất của lớp có điều kiện (một
cho mỗi lớp cho khả năng của lớp đối tượng).
Để đánh giá PASCAL VOC, YOLO sử dụng lưới 7 × 7 (S × S), 2 hộp ranh giới (B) và 20 lớp
(C).

Mỗi hộp ranh giới chứa 5 yếu tố: (x, y, w, h) và điểm tin cậy của hộp. Điểm tin cậy phản ánh
khả năng hộp chứa đối tượng (tính đối tượng) và độ chính xác của hộp ranh giới. Yolo bình
thường hóa chiều rộng hộp giới hạn w và chiều cao h bằng chiều rộng và chiều cao hình ảnh.
x và y là độ lệch cho ô tương ứng. Do đó, x, y, w và h đều nằm trong khoảng từ 0 đến 1.
Mỗi ô có 20 xác suất lớp có điều kiện. Xác suất lớp có điều kiện là xác suất mà đối tượng
được phát hiện thuộc về một lớp cụ thể (một xác suất cho mỗi loại cho mỗi ô). Vì vậy, dự
đoán của YOLO có hình dạng (S, S, B × 5 + C) = (7, 7, 2 × 5 + 20) = (7, 7, 30).

12


YOLO là xây dựng mạng CNN để dự đoán một tenor (7, 7, 30). Nó sử dụng mạng CNN để
giảm kích thước không gian xuống còn 7 × 7 với 1024 kênh đầu ra tại mỗi vị trí. YOLO thực
hiện hồi quy tuyến tính bằng cách sử dụng hai lớp được kết nối đầy đủ để đưa ra dự đoán hộp
ranh giới 7 × 7 × 2 (hình giữa ở dưới). Để đưa ra dự đoán cuối cùng, Yolo giữ những người có
điểm tin cậy hộp cao (lớn hơn 0,25) làm dự đoán cuối cùng của Yolo (hình ảnh bên phải).

Điểm tin cậy của lớp cho mỗi hộp dự đoán được tính là:
Điểm tin cậy của lớp = Điểm tin cậy của hộp x Xác xuất có điều kiện của lớp
Nó đo lường sự tin cậy đối với cả phân loại và localization ( nội địa hóa) (nơi đặt một đối

tượng).
Chúng ta có thể trộn lẫn các điều khoản ghi điểm và xác suất.

Thiết kế của mạng

13


YOLO có 24 lớp chập theo sau là 2 lớp được kết nối đầy đủ (FC). Một số lớp chập sử dụng
xen kẽ các lớp giảm 1 × 1 để giảm độ sâu của bản đồ các tính năng. Đối với lớp chập cuối
cùng, nó tạo ra một tenxơ có hình dạng (7, 7, 1024). Các tenor sau đó được làm phẳng. Sử
dụng 2 lớp được kết nối đầy đủ như một hình thức hồi quy tuyến tính, nó tạo ra các tham số 7
× 7 × 30 và sau đó định hình lại thành (7, 7, 30), tức là 2 dự đoán hộp ranh giới cho mỗi vị trí.
Một phiên bản YOLO nhanh hơn nhưng kém chính xác hơn, được gọi là Fast YOLO, chỉ sử
dụng 9 lớp chập với bản đồ tính năng nông hơn.
Hàm mất mát (Loss function)
YOLO dự đoán nhiều hộp giới hạn cho mỗi ô lưới. Để tính toán tổn thất cho sự tích cực thực
sự một trong số chịu trách nhiệm về đối tượng. Với mục đích này, Yolo chọn một trong
những IoU cao nhất (giao điểm trên liên minh) với sự thật nền tảng. Chiến lược này dẫn đến
sự chuyên môn hóa trong số các dự đoán hộp giới hạn. Mỗi dự đoán sẽ tốt hơn trong việc dự
đoán kích thước và tỷ lệ khung hình nhất định.

YOLO sử dụng sai số bình phương giữa các dự đoán và sự thật nền tảng để tính toán tổn thất.
Hàm mất bao gồm: the classification loss, localization loss (errors between the predicted
boundary box and the ground truth), confidence loss (the objectness of the box).
Classification loss
Nếu một đối tượng được phát hiện, mất phân loại tại mỗi ô là lỗi bình phương của xác suất có
điều kiện của lớp cho mỗi lớp:

14



Localization loss
localization loss đo các lỗi trong vị trí và kích thước hộp ranh giới dự đoán. Chúng ta chỉ đếm
hộp chịu trách nhiệm phát hiện đối tượng

Chúng ta không muốn trọng số lỗi tuyệt đối trong các hộp lớn và hộp nhỏ như nhau. tức là lỗi
2 pixel trong hộp lớn là giống nhau đối với hộp nhỏ. Để giải quyết một phần điều này, YOLO
dự đoán căn bậc hai của chiều rộng và chiều cao của khung giới hạn thay vì chiều rộng và
chiều cao. Ngoài ra, để nhấn mạnh hơn vào độ chính xác của hộp biên, Yolo nhân hệ số tổn
thất với λcoord (mặc định: 5)

Confidence loss
Nếu một đối tượng được phát hiện trong hộp, mất niềm tin (đo lường tính đối tượng của hộp)


15


Nếu một đối tượng không được phát hiện trong hộp, mất niềm tin là:
Hầu hết các hộp không chứa bất kỳ đối tượng. Điều này gây ra vấn đề mất cân bằng lớp, tức
là Yolo đào tạo mô hình để phát hiện nền thường xuyên hơn là phát hiện các đối tượng. Để
khắc phục điều này, Yolo giảm trọng lượng này xuống theo hệ số λnoobj (mặc định: 0,5).
Loss
Sự mất mát cuối cùng thêm tổn thất nội địa hóa, sự tự tin và phân loại cùng nhau.

Inference: Non-maximal suppression
YOLO có thể thực hiện các phát hiện trùng lặp cho cùng một đối tượng. Để khắc phục điều
này, YOLO áp dụng triệt tiêu không tối đa để loại bỏ các bản sao với độ tin cậy thấp hơn. Ức
chế không tối đa thêm 2-3% trong mAP.

Đây là một trong những triển khai triệt tiêu không tối đa có thể: Sắp xếp các dự đoán theo
điểm số niềm tin. Bắt đầu từ điểm số cao nhất, bỏ qua mọi dự đoán hiện tại nếu Yolo tìm thấy
bất kỳ dự đoán nào trước đó có cùng lớp và IoU> 0,5 với dự đoán hiện tại. Lặp lại bước 2 cho
đến khi tất cả các dự đoán được kiểm tra
Lợi ích của Yolo:
Nhanh. Tốt cho xử lý thời gian thực.
16


Dự đoán (vị trí đối tượng và các lớp) được thực hiện từ một mạng duy nhất. Có thể được đào
tạo từ đầu đến cuối để cải thiện độ chính xác.
YOLO được khái quát hơn. Nó vượt trội hơn các phương pháp khác khi khái quát hóa từ hình
ảnh tự nhiên sang các lĩnh vực khác như tác phẩm nghệ thuật.

Phương pháp đề xuất khu vực giới hạn phân loại cho khu vực cụ thể. YOLO truy cập vào toàn
bộ hình ảnh trong việc dự đoán ranh giới. Với bối cảnh bổ sung, YOLO thể hiện ít tích cực sai
hơn trong các khu vực nền.
2.2.YOLOv2
SSD là đối thủ cạnh tranh mạnh mẽ của YOLO, tại một thời điểm chứng tỏ độ chính xác cao
hơn để xử lý thời gian thực. So sánh với các máy dò dựa trên khu vực, YOLO có lỗi nội địa
hóa cao hơn và việc thu hồi (đo mức độ tốt để xác định vị trí của tất cả các đối tượng) thấp
hơn. YOLOv2 là phiên bản thứ hai của YOLO với mục tiêu cải thiện độ chính xác đáng kể
trong khi làm cho nó nhanh hơn.

Cải thiện độ chính xác Chuẩn hóa hàng loạt Thêm chuẩn hóa hàng loạt trong các lớp chập.
Điều này loại bỏ sự cần thiết phải bỏ (dropouts and pushes) học và đẩy mAP lên 2%.
Phân loại độ phân giải cao Việc đào tạo YOLO bao gồm 2 giai đoạn. Đầu tiên, Yolo đào tạo
một mạng phân loại như VGG16. Sau đó, Yolo thay thế các lớp được kết nối đầy đủ bằng một
lớp chập và giữ lại từ đầu đến cuối để phát hiện đối tượng. YOLO huấn luyện bộ phân loại
với các hình ảnh có kích thước 224 × 224, sau đó là các hình ảnh có kích thước 448 × 448 để

phát hiện đối tượng. YOLOv2 bắt đầu với các hình ảnh 224 × 224 cho đào tạo phân loại
nhưng sau đó thử lại bộ phân loại một lần nữa với các hình ảnh 448 × 448 sử dụng ít kỷ
nguyên hơn nhiều. Điều này làm cho việc đào tạo máy dò dễ dàng hơn và di chuyển mAP lên
4%.
Kết hợp với hộp neo(Convolutional with Anchor Boxes)

17


việc đào tạo sớm dễ bị ảnh hưởng bởi độ dốc không ổn định. Ban đầu, YOLO đưa ra những
phỏng đoán tùy ý trên các hộp ranh giới. Những dự đoán này có thể hoạt động tốt đối với một
số đối tượng nhưng không tốt cho những đối tượng khác dẫn đến thay đổi độ dốc lớn. Trong
đào tạo sớm, các dự đoán đang chiến đấu với nhau về hình dạng để chuyên môn hóa.

Trong miền thực tế, các hộp ranh giới không phải là tùy ý. Ô tô có hình dạng rất giống nhau
và người đi bộ có tỷ lệ khung hình xấp xỉ 0,41.

18


Vì chúng ta chỉ cần một phỏng đoán là đúng, nên việc đào tạo ban đầu sẽ ổn định hơn nếu
chúng ta bắt đầu với những phỏng đoán đa dạng thường thấy cho các đối tượng trong đời
thực.

19


chúng ta có thể tạo 5 hộp neo với các hình dạng sau

Thay vì dự đoán 5 hộp ranh giới tùy ý Yolo v2 dự đoán độ lệch cho từng hộp neo ở trên. Nếu

hạn chế các giá trị bù, chúng ta có thể duy trì tính đa dạng của các dự đoán và mỗi dự đoán
tập trung vào một hình dạng cụ thể. Vì vậy, việc đào tạo ban đầu sẽ ổn định hơn.
Dưới đây là những thay đổi yolo v2 thực hiện cho mạng: Loại bỏ các lớp được kết nối đầy đủ
chịu trách nhiệm dự đoán hộp ranh giới.

Chúng ta di chuyển dự đoán lớp từ cấp độ ô sang cấp độ hộp biên. Bây giờ, mỗi dự đoán bao
gồm 4 tham số cho hộp ranh giới, điểm tin cậy 1 hộp (tính đối tượng) và 20 xác suất của lớp.
tức là 5 hộp ranh giới với 25 tham số: 125 tham số trên mỗi ô lưới. Giống như YOLO, dự
đoán tính khách quan vẫn dự đoán IOU của sự thật mặt đất và hộp đề xuất.

20


Để tạo dự đoán với hình dạng 7 × 7 × 125, Yolo thay thế lớp chập cuối cùng bằng ba lớp chập
3 × 3 mỗi lớp xuất ra 1024 kênh đầu ra. Sau đó, Yolo áp dụng lớp chập 1 × 1 cuối cùng để
chuyển đổi đầu ra 7 × 7 × 1024 thành 7 × 7 × 125.

Thay đổi kích thước hình ảnh đầu vào từ 448 × 448 thành 416 × 416. Điều này tạo ra kích
thước không gian số lẻ (7 × 7 v.s. ô lưới 8 × 8). Trung tâm của một bức tranh thường bị chiếm
bởi một vật thể lớn. Với một ô lưới số lẻ, chắc chắn hơn về vị trí của đối tượng.

21


Xóa một lớp gộp để làm cho đầu ra không gian của mạng thành 13 × 13 (thay vì 7 × 7). Các
hộp neo giảm mAP một chút từ 69,5 xuống 69,2 nhưng việc thu hồi được cải thiện từ 81%
xuống 88%. tức là ngay cả độ chính xác cũng hơi giảm nhưng nó làm tăng cơ hội phát hiện tất
cả các đối tượng sự thật mặt đất.
Dimension Clusters
Trong nhiều miền vấn đề, các hộp ranh giới có các mẫu mạnh.

Ví dụ, trong lái xe tự trị, 2 hộp ranh giới phổ biến nhất sẽ là ô tô và người đi bộ ở các khoảng
cách khác nhau.
Để xác định các hộp ranh giới K hàng đầu có độ bao phủ tốt nhất cho dữ liệu huấn luyện, ta
chạy K-mean là phân cụm trên dữ liệu đào tạo để xác định vị trí trung tâm của cụm K hàng
đầu.

22


Vì chúng ta đang xử lý các hộp biên thay vì các điểm, chúng ta không thể sử dụng khoảng
cách không gian thông thường để đo khoảng cách điểm dữ liệu. Không có gì ngạc nhiên, Yolo
sử dụng IoU.

Ở bên trái, Yolo vẽ sơ đồ IoU trung bình giữa các neo và các hộp sự thật mặt đất bằng cách sử
dụng số lượng cụm (neo) khác nhau. Khi số lượng neo tăng lên, các cao nguyên cải thiện độ
chính xác. Để có lợi nhuận tốt nhất, YOLO ổn định với 5 neo. Ở bên phải, nó hiển thị 5 hình
dạng neo neo. Các hình chữ nhật màu xanh tím được chọn từ bộ dữ liệu COCO trong khi hình
chữ nhật viền đen được chọn từ VOC2007. Trong cả hai trường hợp, chúng ta có các neo
mỏng và cao hơn cho thấy các hộp ranh giới ngoài đời thực không phải là tùy ý.
Dự đoán vị trí trực tiếp
Chúng ta đưa ra dự đoán về việc bù đắp cho các neo. Tuy nhiên, nếu nó không bị ràng buộc,
dự đoán của Yolo sẽ được chọn ngẫu nhiên một lần nữa. YOLO dự đoán 5 tham số (tx, ty, tw,
th và to) và áp dụng hàm sigma để hạn chế phạm vi bù có thể có của nó

23


Đây là hình dung. Hộp màu xanh bên dưới là hộp ranh giới dự đoán và hình chữ nhật chấm là
mỏ neo.


24


bx, by, bw, bh là tọa độ trung tâm x, y, chiều rộng và chiều cao dự đoán của Yolo. tx, ty, tw, th
là những gì mạng đầu ra. cx và cy là tọa độ trên cùng bên trái của lưới. pw và ph là kích thước
neo cho hộp.

Với việc sử dụng phân cụm k-mean (cụm kích thước) và cải tiến được đề cập trong phần này,
mAP tăng 5%.
Các tính năng hạt mịn(Fine-Grained Features)
Các lớp kết hợp giảm dần kích thước không gian. Khi độ phân giải tương ứng giảm, việc phát
hiện các vật nhỏ sẽ khó khăn hơn. Các trình phát hiện đối tượng khác như SSD xác định vị trí
các đối tượng từ các lớp bản đồ đặc trưng khác nhau. Vì vậy, mỗi lớp chuyên ở một quy mô
khác nhau. YOLO áp dụng một cách tiếp cận khác gọi là passthrough. Nó định hình lại lớp 28
× 28 × 512 thành 14 × 14 × 2048. Sau đó, nó kết hợp với lớp đầu ra 14 × 14 × 1024 ban đầu.
Áp dụng các bộ lọc tích chập trên lớp 14 × 14 × 3072 mới để đưa ra dự đoán.

Multi-Scale Training
Sau khi loại bỏ các lớp được kết nối đầy đủ, YOLO có thể chụp ảnh với các kích cỡ khác
nhau. Nếu chiều rộng và chiều cao được nhân đôi, chúng ta chỉ tạo các ô lưới đầu ra 4x và do
đó dự đoán 4x. Do mạng YOLO hạ thấp đầu vào của 32, chúng ta chỉ cần đảm bảo chiều rộng
và chiều cao là bội số của 32. Trong quá trình đào tạo, YOLO chụp ảnh có kích thước 320 ×
320, 352 × 352, Lọ và 608 × 608 (với một bước 32).
Cứ sau 10 đợt, YOLOv2 chọn ngẫu nhiên một kích thước hình ảnh khác để huấn luyện mô
hình. Điều này hoạt động như tăng dữ liệu và buộc mạng phải dự đoán tốt cho kích thước và
tỷ lệ hình ảnh đầu vào khác nhau. Ngoài ra, chúng ta có thể sử dụng hình ảnh có độ phân giải
thấp hơn để phát hiện đối tượng với chi phí chính xác. Đây có thể là một sự đánh đổi tốt cho
tốc độ trên các thiết bị có công suất GPU thấp. Với 288 × 288 YOLO chạy ở tốc độ hơn 90
FPS với mAP gần như tương đương với Fast R-CNN. Ở độ phân giải cao YOLO đạt được
78,6 mAP trên VOC 2007.

Độ chính xác Đây là những cải tiến chính xác sau khi áp dụng các kỹ thuật

25


×