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

Ứng dụng Object Tracking xây dựng hệ thống giám sát giao thông trên đường cao tốc.

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 (6.82 MB, 70 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

ĐỒ ÁN TỐT NGHIỆP

ỨNG DỤNG OBJECT TRACKING
XÂY DỰNG HỆ THỐNG GIÁM SÁT GIAO THÔNG
TRÊN ĐƯỜNG CAO TỐC

BÙI TIẾN TÙNG


Ngành Toán Tin

Giảng viên hướng dẫn:

TS. LÊ HẢI HÀ

Bộ mơn:

Tốn Tin

Viện:

Tốn ứng dụng và Tin học

HÀ NỘI, 12/2020

Chữ kí của GVHD


TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI


VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC

ỨNG DỤNG OBJECT TRACKING
XÂY DỰNG HỆ THỐNG GIÁM SÁT GIAO THÔNG
TRÊN ĐƯỜNG CAO TỐC

ĐỒ ÁN TỐT NGHIỆP

Chuyên ngành: TOÁN TIN
Chuyên sâu: Tin học

Giảng viên hướng dẫn:
Sinh viên thực hiện:

TS. LÊ HẢI HÀ
BÙI TIẾN TÙNG

Lớp: Toán Tin K61

HÀ NỘI, 12/2020


Nhận xét của giảng viên hướng dẫn
1. Mục tiêu và nội dung của đồ án
(a) Mục tiêu:....

(b) Nội dung:....

2. Kết quả đạt được
(a) ....


(b) ....

(c) ....

3. Ý thức làm việc của sinh viên:
(a) ....

(b) ....

(c) ....

Hà Nội, ngày ... tháng 12 năm 2020
Giảng viên hướng dẫn

TS. Lê Hải Hà


Lời cảm ơn
Đồ án này được hoàn thành tại trường Đại học Bách khoa Hà Nội dưới sự
hướng dẫn của TS. Lê Hải Hà.
Trước hết, tác giả đồ án xin gửi lời cảm ơn sâu sắc tới TS. Lê Hải Hà, người
đã quan tâm hướng dẫn và giúp đỡ trong suốt q trình thực hiện và hồn thành
đồ án.
Tác giả cũng xin trân trọng cảm ơn tập thể team AI Research, công ty Sun
Asterisk đã truyền động lực, cảm hứng cũng như kiến thức và tạo điều kiện
thuận lợi cho tác giả trong suốt quá trình thực hiện đồ án. Đồ án này sẽ khơng
thể hồn thiện nếu thiếu sự giúp đỡ của tất cả mọi người.
Cuối cùng, tác giả xin bày tỏ lịng biết ơn vơ hạn đối với gia đình và bạn bè
đã ln bên cạnh ủng hộ và động viên trong mọi hồn cảnh.


Tóm tắt nội dung đồ án
1. Trình bày tổng quan về các khái niệm, phân loại và ứng dụng của bài toán
theo dõi đối tượng (object tracking).
2. Nêu ra các vấn đề đáng được quan tâm trong object tracking, đồng thời
trình bày chi tiết về thuật toán deep SORT.
3. Đề xuất xây dựng hệ thống tracking, ứng dụng trên mạng lưới camera theo
dõi được lắp đặt trên các đường cao tốc.
Hà Nội, ngày ... tháng 12 năm 2020
Tác giả đồ án

Bùi Tiến Tùng


Mục lục

Mở đầu

1

1 Tổng quan về Object Tracking

3

1.1

Khái niệm

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


3

1.2

Phân loại . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

1.3

Ứng dụng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

1.3.1

An ninh . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

1.3.2

Thương mại . . . . . . . . . . . . . . . . . . . . . . . . . .

6

1.3.3

Giao thông vận tải . . . . . . . . . . . . . . . . . . . . . .


7

2 Các vấn đề của Object Tracking
2.1

2.2

2.3

8

Multiple Object Tracking . . . . . . . . . . . . . . . . . . . . . . .

8

2.1.1

Khó khăn . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

2.1.2

Giải thuật . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Tracking-by-Detection . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.1

Phát hiện (Detection) . . . . . . . . . . . . . . . . . . . . 11


2.2.2

Dự đoán quỹ đạo (Motion Prediction) . . . . . . . . . . . 21

2.2.3

Liên hệ (Affinity) . . . . . . . . . . . . . . . . . . . . . . . 22

2.2.4

Liên kết (Association) . . . . . . . . . . . . . . . . . . . . 23

Realtime Object Tracking . . . . . . . . . . . . . . . . . . . . . . 24
2.3.1

Khó khăn . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.3.2

Giải thuật . . . . . . . . . . . . . . . . . . . . . . . . . . . 24


3 Thuật toán deep SORT
3.1

3.2

3.3

3.4


26

Bộ lọc Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.1.1

Bài toán lọc (Filtering Problem) . . . . . . . . . . . . . . . 26

3.1.2

Thuật toán . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Thuật toán Hungary . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2.1

Bài tốn phân cơng (Assignment Problem) . . . . . . . . . 31

3.2.2

Thuật toán . . . . . . . . . . . . . . . . . . . . . . . . . . 32

SORT - Simple Online and Realtime Tracking . . . . . . . . . . . 34
3.3.1

Mơ hình hóa bài tốn và bộ lọc Kalman . . . . . . . . . . 35

3.3.2

Vấn đề liên kết và thuật toán Hungary . . . . . . . . . . . 37


3.3.3

Tổng kết thuật toán . . . . . . . . . . . . . . . . . . . . . 37

Deep SORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.4.1

Mơ hình hóa bài toán và bộ lọc Kalman . . . . . . . . . . 39

3.4.2

Vấn đề liên kết và thuật toán Hungary . . . . . . . . . . . 40

3.4.3

Chiến lược đối sánh theo tầng (Matching Cascade) . . . . 42

3.4.4

Bộ trích xuất đặc trưng đối tượng . . . . . . . . . . . . . . 43

3.4.5

Tổng kết thuật toán . . . . . . . . . . . . . . . . . . . . . 44

4 Ứng dụng Object Tracking trong giám sát giao thông trên đường
cao tốc

46


4.1

Đặt vấn đề . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.2

Thiết kế hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

4.3

Dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

4.4

4.5

4.3.1

UA DETRAC Dataset . . . . . . . . . . . . . . . . . . . . 50

4.3.2

Highway Monitoring Dataset . . . . . . . . . . . . . . . . . 51

Xây dựng hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.4.1

Trình phát hiện (Detector) . . . . . . . . . . . . . . . . . . 51

4.4.2


Trình theo dõi (Tracker) . . . . . . . . . . . . . . . . . . . 53

4.4.3

Hệ thống đếm (Counting System) . . . . . . . . . . . . . . 55

Đánh giá kết quả và hướng mở rộng . . . . . . . . . . . . . . . . . 56


Kết luận

58

Tài liệu tham khảo

59


Danh sách hình vẽ
1.1

Ví dụ về mutiple object tracking. . . . . . . . . . . . . . . . . . .

4

2.1

Ví dụ về quỹ đạo chồng chéo trong mutiple object tracking. . . .


9

2.2

Mô tả thuật toán chung của tracking-by-detection.

2.3

Kiến trúc mạng YOLOv1. . . . . . . . . . . . . . . . . . . . . . . 13

2.4

Kiến trúc mạng YOLOv2. . . . . . . . . . . . . . . . . . . . . . . 14

2.5

Kiến trúc mạng YOLOv3. . . . . . . . . . . . . . . . . . . . . . . 16

2.6

Kiến trúc mạng YOLOv4. . . . . . . . . . . . . . . . . . . . . . . 18

2.7

Khối kiến trúc SPP. . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.8

So sánh kiến trúc FPN và PANet. . . . . . . . . . . . . . . . . . . 20


2.9

Hiệu suất các mạng YOLOv5. . . . . . . . . . . . . . . . . . . . . 21

3.1

Mô hình bài tốn của bộ lọc Kalman. . . . . . . . . . . . . . . . . 27

3.2

So sánh SORT và các thuật toán tracking khác. . . . . . . . . . . 35

3.3

Luồng xử lí trong SORT. . . . . . . . . . . . . . . . . . . . . . . . 38

3.4

Vấn đề liên kết dữ liệu trong deep SORT. . . . . . . . . . . . . . . 42

3.5

Luồng xử lí trong deep SORT. . . . . . . . . . . . . . . . . . . . . 44

4.1

Cao tốc Đồng Đăng - Trà Lĩnh kết nối Lạng Sơn - Cao Bằng. . . 47

4.2


Thiết kế hệ thống giám sát giao thông. . . . . . . . . . . . . . . . 49

4.3

Sự đa dạng trong bộ dữ liệu UA DETRAC. . . . . . . . . . . . . 50

4.4

Các góc nhìn chính trong Highway Monitoring Dataset. . . . . . . 51

4.5

Đồ thị Precision Recall Curve của YOLOv5 s. . . . . . . . . . . . 53

. . . . . . . . 10


Bảng ký hiệu
R

Tập các số thực

RN

Không gian Euclid thực N chiều

x
ˆ

Giá trị kỳ vọng của biến ngẫu nhiên x


Σ

Ma trận hiệp phương sai của biến ngẫu nhiên

N (ˆ
x, Σ)

Phân phối chuẩn nhiều chiều với giá trị kỳ vọng và ma trận
hiệp phương sai tương ứng

Danh mục các từ viết tắt
SOT

Single Object Tracking

MOT

Mutiple Object Tracking

ID

Identification

YOLO

You Only Look One

IOU


Intersection Over Union

CSP

Cross Stage Partial Network

SPP

Space Pyramid Pooling

PAN

Path Aggregation Network

FPN

Feature Pyramid Network

CNN

Convolutional Neural Network

SORT

Simple Online and Realtime Tracking

WRN

Wide Residual Network


FPS

Frame per second

AP

Average Precision

mAP

mean Average Precision


1

Mở đầu
Hiện nay, việc đầu tư ứng dụng công nghệ - nổi bật là cao tốc, đã và
đang góp phần tích cực cải thiện an tồn giao thơng, phục vụ có hiệu quả
trong cơng tác quản lý, giám sát, điều hành. Song, ở mức độ nào đó, vẫn
cịn những dự án mới chỉ tập trung vào việc hoàn thiện tuyến đường mà
chưa thực sự quan tâm đến việc đầu tư cơng nghệ giám sát vận hành. Có
những nơi đầu tư lại chưa bài bản, thiếu đồng bộ, khả năng kết nối liên
thơng và tích hợp dữ liệu cịn kém.
Nắm bắt được nhu cầu cấp thiết của quá trình tự động hóa hệ thống
camera giám sát giao thơng, đồng thời mong muốn ứng dụng những kiến
thức tìm hiểu được vào thực tiễn, trong báo cáo này, tác giả đồ án trình
bày về lý thuyết theo dõi đối tượng (object tracking), một lĩnh vực được
quan tâm khá nhiều trong thị giác máy tính. Thuật tốn được tập trung
chính trong nội dung báo cáo là deep SORT, một dạng thuật tốn tracking,
thuộc nhóm tracking by detection. Bên cạnh đó, một hệ thống tracking

by detection cũng được đề xuất, nhằm đưa ra được thiết kế cho hệ thống
camera.
Nội dung đồ án được chia làm 4 chương chính.
• Chương 1: Trình bày tổng quan về các khái niệm, phân loại và ứng
dụng của object tracking.
• Chương 2: Nêu ra các vấn đề đáng được quan tâm trong object tracking, đồng thời cũng là các vấn đề mà đồ án mong muốn giải quyết
• Chương 3: Trình bày chi tiết về thuật tốn deep SORT - thuật toán
cốt lõi của đồ án, các định nghĩa, định lí và các cơng thức của deep


2

SORT.
• Chương 4: Đề xuất xây dựng hệ thống tracking, ứng dụng trên mạng
lưới camera theo dõi được lắp đặt trên các đường cao tốc.
Các đóng góp chính trong đồ án bao gồm
• Xây dựng được một bộ detector riêng cho vấn đề phát hiện phương
tiện giao thông. Việc detect có thể đạt kết quả tốt bất kể điều kiện
thời tiết thay đổi: nắng, mưa, tối, đêm (có đèn), ...và thời gian xử
lí gần đạt realtime. Detector này là nền tảng vững chắc để áp dụng
những thuật tốn tracking phía sau.
• Triển khai deep SORT (một phương pháp được xây dựng cho bài toán
theo dõi người đi bộ trong đám đơng) vào bài tốn theo dõi phương
tiện giao thơng di chuyển trên đường cao tốc - với những thay đổi cấu
hình cho phù hợp với bài tốn.
• Đề xuất một mô đun xây dựng hệ thống giám sát và hệ thống đo đếm
lưu lượng giao thông trên đường cao tốc.


3


Chương 1
Tổng quan về Object Tracking
1.1

Khái niệm

Object Tracking hay "Theo dõi đối tượng" là một tác vụ trong lĩnh vực
thị giác máy tính, bao gồm việc trích xuất chuyển động của một đối tượng
từ một chuỗi hình ảnh, nhằm ước tính quỹ đạo của đối tượng.
Mục tiêu của object tracking là liên kết được vị trí của từng đối tượng
trong chuỗi các hình ảnh, khung hình của video. Đây có thể trở thành một
bài tốn khó khi mà tốc độ chuyển động của đối tượng quá nhanh so với
tốc độ tải của khung hình, hoặc khó khăn hơn nữa là đối tượng chuyển
động với quỹ đạo bất thường và khó dự đốn.
Vì những lí do này, object tracking hiện nay đang nhận được rất nhiều
sự quan tâm, nghiên cứu nhằm đưa object tracking ứng dụng vào thực tế.
Đặc biệt, khi một nhiệm vụ có liên quan mật thiết đến object tracking
là object detection hiện đang đạt được những kết quả vượt trội, điều này
cũng kéo theo việc object tracking được quan tâm hơn bao giờ hết.

1.2

Phân loại

Tùy theo các tiêu chí khác nhau, có nhiều cách phân loại object tracking.
Cách phân chia phổ biến nhất là dựa trên đối tượng mục tiêu của object
tracking.
• Single Object Tracking (SOT): Single object tracking nhắm đến khả



4

Hình 1.1: Ví dụ về mutiple object tracking.

năng theo dõi chuyến động của một hoặc một số đối tượng được định
nghĩa trước trong những khung hình đầu tiên. Mục tiêu của trình theo
dõi sau đó là xác định cùng một mục tiêu trong tất cả các khung hình
cịn lại của video. Việc định nghĩa các đối tượng theo dõi ban đầu
được thực hiện mộ cách thủ công bởi người dùng. Điều này có nghĩa
là trình theo dõi có thể theo dõi bất kỳ đối tượng nào mà chúng được
cung cấp, mà không cần quan tâm đến vấn đề phân loại đối tượng.
• Mutiple Object Tracking (MOT): Mutiple object tracking là bài tốn
khó hơn và mang tính ứng dụng rộng rãi hơn (hình 1.1). Thay vì việc
người dùng cần định nghĩa trước đối tượng như SOT, trình theo dõi
trong multiple object tracking cần tự phân loại và định danh tất cả
các đối tượng xuất hiện trong video. Điều này thực sự là vấn đề khó
xử lí khi số lượng đối tượng trong video là không biết trước, đặc biệt
là trường hợp số lượng dày đặc. Một vấn đề khác đáng quan tâm là


5

đảm bảo được liên kết và duy trì định danh của tất cả đối tượng qua
từng khung hình.
Một cách phân chia object tracking phổ biến khác là dựa trên cách xử lí
chuỗi khung hình của thuật tốn.
• Offline Tracking: Offline tracking sử dụng tồn bộ các khung hình
của video để xử lí và theo dõi. Cách xử lí này giúp trình theo dõi đạt
được sự tối ưu tồn cục và đem lại độ chính xác vượt trội. Tuy nhiên,

quy trình xử lí này lại khó để ứng dụng vào thực tế, khi mà các nguồn
video thường đến từ các camera giám sát và ln cập nhật liên tục.
• Online Tracking: Online tracking có cách xử lí đơn giản hơn, chỉ sử
dụng khung hình hiện tại và một số khung hình trước đó để ước lượng
vị trí của đối tượng. Dù độ chính xác thấp hơn các thuật tốn offline
tracking, nhưng online tracking lại là lựa chọn phù hợp nhất để ứng
dụng vào thực tể nhằm phát triển các hệ thống theo dõi thời gian
thực.

1.3

Ứng dụng

Object tracking là một trong những tác vụ của thị giác máy tính có
nhiều ứng dụng thực tế nhất. Những ứng dụng này trải rộng trên nhiều
lĩnh vực khác nhau như an ninh, quân sự, giao thông vận tải, ... Khả năng
theo dõi một đối tượng trong video phụ thuộc vào nhiều yếu tố, như kiến
thức về đối tượng đích, loại thơng số được theo dõi và loại video hiển thị
đối tượng.
1.3.1

An ninh

Các hệ thống an ninh hiện nay yêu cầu tính tự động và bảo mật rất cao
với sự góp mặt của một lượng lớn camera giám sát, điều mà khiến object
tracking thật sư cần thiết. Các ứng dụng rõ ràng nhất của object tracking
có thể kể đến như:


6


• Hệ thống nhận dạng con người dựa trên chuyển động cơ thể
Giúp ích cho q trình xác thực thơng tin, nhận dạng đối tượng, đảm
bảo an ninh trong khu vực giám sát
• Hệ thống giám sát tự động
Hỗ trợ người vận hành quan sát hình ảnh từ camera giám sát trên
các màn hình hoặc lưới màn hành hình khổ lớn. Ngồi ra có thể tích
hợp thêm các mơ đun cảnh báo khi nhận thấy những hành động bất
thường, khả nghi.
• Hệ thống nhận dạng hành vi
Khá tương tự hệ thống tự động giám sát, hệ thống hỗ trợ phân tích,
đánh giá và phân loại hành vi của đối tượng. Tùy thuộc vào các hành
vi này, hệ thống có thể đưa ra cảnh báo hoặc nhận định phù hợp.
1.3.2

Thương mại

Trong lĩnh vực thương mại, object tracking tỏ ra vô cùng hữu ích, khi
góp phần tạo ra nhiều ứng dụng, hệ thống giúp tăng chất lượng cơng việc,
giảm chi phí lao động của các cơng ty và doanh nghiệp,
• Hệ thống giám sát hành vi người dùng
Hỗ trợ người quản lí đưa ra các chiến lược kinh doanh hợp lí nhờ q
trình phân tích hành vi, thói quen và sở thích của khách hàng. Ví
dụ, bằng việc phân loại hoạt động của khách hàng trong siêu thị, hệ
thống giúp xác định số lượng khách hàng quan tâm đến gian hàng và
đánh giá hiệu quả trưng bày.
• Hệ thống theo dõi và giám định sản phẩm
Hỗ trợ thủ tục nhập xuất hàng hóa tại các siêu thị, bến cảng, ... Với
mục tiêu nhanh hơn, minh bạch hơn, ít giấy tờ hơn, hệ thống tn
thủ chính xác việc đưa hàng hóa ra/vào kho, tiếp nhận và trả hàng

nhanh chóng cho khách hàng, đồng thời góp phần cắt giảm chi phí
nhân cơng, thời gian đi lại giải quyết.


7

1.3.3

Giao thông vận tải

Một lĩnh vực tiềm năng không kém của object tracking là giao thông
vận tải, khi mà hiện nay một lượng lớn camera giám sát đã được lắp đặt
ở rất nhiều đoạn đường, ngã tư trọng điểm. Object tracking sẽ là vấn đề
được quan tâm hàng đầu khi mong muốn tự động hóa q trình vận hành
tồn bộ lượng camera này. Một số hệ thống có thể kể đến như:
• Hệ thống giám sát giao thơng
Hỗ trợ người vận hành quan sát hình ảnh giao thơng từ xa trên các
màn hình hoặc lưới màn hành hình khổ lớn tại trung tâm quản lý
điều hành giao thơng.
• Hệ thống điều hướng phương tiện
Tự động ước lượng số lượng phương tiện và hướng di chuyển, điều
hướng giao thông nhằm giảm thiểu tắc nghẽn.
• Hệ thống đo đếm lưu lượng phương tiện
Thu thập, phân tích, báo cáo và lưu trữ thống kê các dữ liệu mơ tả
tình trạng và hiệu suất khai thác của hệ thống đường bộ.


8

Chương 2

Các vấn đề của Object Tracking
Object tracking là một bài tốn khó với nhiều vấn đề cần quan tâm. Để
ứng dụng được vào thực tế, object tracking cần xử lí được các yếu tố về
chuyển động của đối tượng, các nhiễu trong hình ảnh hoặc mất mát thơng
tin khi xử lí ảnh 2 chiều thay vì 3 chiều cũng như làm sao đảm bảo tốc độ
xử lí đủ tốt.
Trong phạm vi báo cáo này, tác giả đồ án xin phép chỉ nêu ra các vấn
đề mà báo cáo quan tâm và sẽ tập trung giải quyết trong phần trình bày
thuật tốn tiếp theo.

2.1
2.1.1

Multiple Object Tracking
Khó khăn

Multiple object tracking (MOT) hay theo dõi đa mục tiêu (multi-target
tracking) quan tâm đến việc phân tích video để xác định và theo dõi các
đối tượng thuộc một hoặc nhiều danh mục khác nhau, như người đi bộ,
phương tiện giao thông, động vật, ... mà chưa có bất kì thơng tin nào về
hình dạng hoặc số lượng các đối tượng cần theo dõi.
Khác với object detection, chỉ quan tâm đến vị trí hay phân lớp của các
đối tượng (thường là các bounding box), đầu ra của object tracking còn
cần thêm một thành phần quan trọng khác là ID của đối tượng. ID này
cần đảm bảo duy trì được tính nhất qn qua mỗi khung hình của video.


9

Hình 2.1: Ví dụ về quỹ đạo chồng chéo trong mutiple object tracking.


Do đó, multiple object tracking tồn tại nhiều vấn đề cần giải quyết.
• Phát hiện chính xác các đối tượng trong mỗi khung hình
• Đối tượng bị che mất một phần hoặc tồn bộ
• Đối tượng ra khỏi phạm vi của khung hình và xuất hiện lại
• Các đối tượng có quỹ đạo chuyển động chồng chéo nhau (hình 2.1)
• ...
Để giải quyết các vấn đề tồn tại này, nhiều thuật toán cũng như ý tưởng
đã được đưa ra. Một khảo sát về object tracking năm 2006[25] chỉ ra rằng,
hầu hết các nghiên cứu đều tập trung vào việc tìm ra các phương pháp để
biểu diễn đối tượng, trích chọn những đặc trưng đủ tốt cũng như mơ hình
chuyển động phù hợp nhằm tăng hiệu suất tracking.
Bên cạnh đó, nhiều giả thiết cũng được đưa ra nhằm đơn giản hóa vấn
đề, có thể kể đến như giả thiết chuyển động của đối tượng là chuyển động
đều, giả thiết camera giám sát là camera tĩnh, có góc nhìn khơng đổi hoặc
giả thiết đối tượng tương phản rõ nét, dễ phân biệt với nền và các đối
tượng khác. Mặc dù các giả thiết này giúp làm tăng hiệu suất tracking,
khi áp dụng vào thực tế, nó khơng đạt được như kì vọng do chịu ảnh hưởng
nhiều từ các yếu tố của môi trường.


10

Hình 2.2: Mơ tả thuật tốn chung của tracking-by-detection.

2.1.2

Giải thuật

Vì multiple object tracking cần tự động phát hiện và định danh đối

tượng mà không được định nghĩa trước, các thuật toán để giải quyết bài
toán này liên hệ rất lớn với các thuật toán của object detection. Một hướng
đi phổ biến và được quan tâm nhất hiện nay là tracking-by-detection.
Trong mục này, tác giả sẽ trình bày khái quát về ý tưởng và khung xử
lí của phương pháp tracking-by-detection, các thành phần cụ thể hơn, sẽ
được trình bày ở mục 2.2.
Ý tưởng của tracking-by-detection khá đơn giản: Từ một tập hợp các
detection (cụ thể là bounding box của đối tượng) được trích xuất từ các
khung hình của video, tiến hành tính tốn độ tương đồng giữa các detection
với các track. Sau đó liên kết chúng với nhau để gán cùng một ID cho các
bounding box cùng một mục tiêu. Vì lí do này, đơi khi các thuật tốn
tracking-by-detection thường được coi như thuật tốn cho bài tốn phân
cơng (assignment problem) thay vì theo dõi (tracking).
Dù khá đa dạng, các thuật tốn tracking-by-detection đều có thể chia
thành 4 cơng đoạn chính[3] (hình 2.2).
• Detection: Sử dụng một thuật tốn object detection để phân tích
từng khung hình, từ đó trích xuất ra các bounding box của các đối
tượng. Trong object tracking, các bounding box này còn được gọi là


11

các detection.
• Feature Extracion, Motion Prediction: Một hoặc nhiều giải thuật được
sử dụng để trích xuất đặc trưng của các bounding box. Bên cạnh đó,
phát triển cả những giải thuật để dự đoán quỹ đạo của đối tượng từ
những track đã được lưu trước đó.
• Affinity: Sử dụng các thuật tốn trích xuất đặc trưng và dự đốn quỹ
đạo trước đó, để tính tốn độ tương đồng giữa các detection vừa phát
hiện và các track đã lưu.

• Association: Dựa vào độ tương đồng vừa tính tốn, liên kết các detetion với các track phù hợp và gán ID cho các detection mới.

2.2
2.2.1

Tracking-by-Detection
Phát hiện (Detection)

"Detection" là công đoạn đầu tiên và cũng là công đoạn quan trọng
nhất quyết định đến kết quả của object tracking. Việc lựa chọn một object
detector phù hợp cần quan tâm đến các yếu tố của toàn bộ bài tốn: về
tốc độ, về độ chính xác, về các đặc điểm của ảnh và video, ...
Trong báo cáo này, với kì vọng có thể ứng dụng object tracking để xây
dựng một hệ thống giám sát giao thông, tác giả đồ án quan tâm nhiều hơn
về tốc độ xử lí của thuật tốn. Ngồi ra, độ chính xác cần đảm bảo ở mức
đủ tốt. Vì lí do này, trong mục này, tác giả chỉ trình bày một họ các mơ
hình object detection đang được coi là nhanh nhất và tốt nhất hiện nay :
YOLO - You Only Look One.
Dù đều được gọi là YOLO, các phiên bản của mô hình này đều có những
cải tiến rất đáng kể sau mỗi phiên bản. Sau 3 phiên bản của tác giả chính
Joseph Redmon là YOLOv1 đến v3, tính đến thời điểm hiện tại có thêm
một paper YOLOv4 của Alexey Bochkovskiy , YOLOv5 của Glenn Jocher
đang được phát triển và 1 vài mơ hình YOLO khác tối ưu từ YOLOv3
như PPYOLO, ...


12
YOLOv1

YOLOv1[12] được giới thiệu lần đầu năm 2015, với ý tưởng coi bài toán

object detection như một bài toán hồi quy các tọa độ của bounding box.
Kiến trúc này có thể được tối ưu để chạy trên GPU với một lần forward
pass, từ đó đạt được tốc độ xử lí vượt trội so với các phương pháp trước
đó.
Thuật tốn chính của YOLOv1 chia ảnh thành một lưới các ô (grid
cell) với kích thước S ∗ S (mặc định là 7x7). Với mỗi grid cell, mơ hình sẽ
đưa ra dự đốn cho B bounding box. Ứng với mỗi box trong B bounding
box này sẽ là 5 tham số x, y, w, h, confidence, lần lượt là tọa độ tâm (x, y),
chiều rộng, chiều cao và độ tự tin của dự đoán.
Độ tự tin của dự đoán ứng với mỗi bounding box được định nghĩa bằng
P (object) ∗ IoUtruth
pred
Trong đó
• P (object) là xác suất tồn tại đối tượng trong ơ lưới
• IoUtruth
pred là vùng giao nhau (intersection over union) của giá trị dự
đốn và giá trị đúng
Bên cạnh đó, mơ hình cũng dự đoán xác suất để các đối tượng trong
mỗi grid cell rơi vào từng class. Xác suất rơi vào từng class cho một grid
cell được tính bằng P (classi /object) . Các giá trị xác suất cho C class sẽ
tạo ra C output cho mỗi grid cell. Lưu ý là mỗi bounding box của cùng
một grid cell sẽ chia sẻ chung một tập các dự đoán về class của vật, đồng
nghĩa với việc tất cả các bounding box trong cùng một grid cell sẽ chỉ có
chung một class.
Vậy tổng số output của mơ hình sẽ là S ∗ S ∗ (5 ∗ B + C). Hình 2.3 mơ
tả kiến trúc của YOLOv1. Mạng backbone của YOLOv1 lấy ý tưởng từ
kiến trúc GoogleNet[19]
Mặc dù đã có nhiều ưu điểm vượt trội so với các phương pháp trước,
YOLOv1 vẫn tồn tại nhiều nhược điểm cần cải thiện:



13

Hình 2.3: Kiến trúc mạng YOLOv1.

• YOLOv1 áp đặt các ràng buộc về không gian trên những bounding
box, mỗi grid cell chỉ có thể predict rất ít bounding box (B) và duy
nhất một class. Các ràng buộc này hạn chế khả năng nhận biết số
object nằm gần nhau, cũng như đối với các object có kích thước nhỏ
• Ngồi ra, trong q trình training, loss function khơng có sự đánh giá
riêng biệt giữa error của bounding box kích thước nhỏ so với error của
bounding box kích thước lớn. Việc coi chúng như cùng loại và tổng
hợp lại làm ảnh hưởng đến độ chính xác tồn cục của mạng. Error
nhỏ trên box lớn nhìn chung ít tác hại, nhưng error nhỏ với box rất
nhỏ sẽ đặc biệt ảnh hưởng đến giá trị IOU.
YOLOv2

Nhằm cải thiện những nhược điểm của YOLOv1, Joseph Redmon đã
cho ra mắt YOLOv2[13] ngay năm 2016, trong paper "YOLO9000: Better,
Faster, Stronger". Như tiêu đề giới thiệu, cải tiến chính của phiên bản này
tốt hơn, nhanh hơn, tiên tiến hơn để bắt kịp Faster R-CNN[15] (phương
pháp sử dụng Region Proposal Network), xử lý được những vấn đề gặp
phải của YOLOv1.
• Thêm Batch Normalization: Kĩ thuật Batch Normalization[7] được
đưa vào sau tất cả các lớp convolution của YOLOv2. Kĩ thuật này
khơng những giảm được thời gian huấn luyện, mà cịn có tác dụng
tăng tính phổ qt (generalize) cho mạng. Ở YOLOv2, Batch Normalization giúp tăng mAP lên khoảng 2%. Mạng cũng khơng cần sử
dụng thêm Dropout để tăng tính phổ quát.



14

Hình 2.4: Kiến trúc mạng YOLOv2.

• High resolution classifier: YOLO được huấn luyện với 2 pha
Pha đầu sẽ huấn luyện một mạng classifier với ảnh đầu vào kích
thước nhỏ (224x224) và pha sau sẽ loại bỏ lớp fully connected và sử
dụng mạng classifier này như phần khung xương (backbone) để huấn
luyện mạng detection. Lưu ý rằng ảnh đầu vào kích thước nhỏ cũng
thường được sử dụng để huấn luyện các mạng classifier, mà sau đó
sẽ được sử dụng như pretrained model cho phần backbone của các
mạng detection khác
Ở pha sau YOLO trước hết finetune mạng backbone dưới ảnh đầu vào
kích thước lớn hơn là 448x448, để mạng "quen" dần với kích thước
ảnh đầu vào lớn, sau đó mới sử dụng kết quả này để huấn luyện
cho quá trình detection. Điều này giúp tăng mAP của YOLOv2 lên
khoảng 4%
• Sử dụng anchor box để đưa ra dự đoán: Trong YOLOv2, Joseph
Redmon loại bỏ lớp fully connected ở giữa mạng và sử dụng kiến trúc
anchor box để predict các bounding box. Việc dự đoán các offset so
với anchor box sẽ dễ dàng hơn nhiều so với dự đoán toạ độ bounding
box. Thay đổi này làm giảm mAP đi một chút nhưng làm recall tăng
lên
• Sử dụng phân cụm K-mean để lựa chọn anchor box: Thay vì
phải chọn anchorbox bằng tay, YOLOv2 sử dụng thuật toán k-means


15

để đưa ra các lựa chọn anchorbox tốt nhất cho mạng. Việc này tạo

ra mean IoU tốt hơn
• Direct location prediction: YOLOv1 khơng có các hạn chế trong
việc dự đốn vị trí của bounding box. Khi các trọng số được khởi tạo
ngẫu nhiên, bounding box có thể được dự đốn ở bất kỳ đâu trong
ảnh. Điều này khiến mơ hình khơng ổn định trong giai đoạn đầu của
q trình huấn luyện. Vị trí của bounding box có thể ở rất xa so với
vị trí của grid cell.
YOLOv2 sử dụng hàm sigmoid (σ) để hạn chế giá trị trong khoảng 0
đến 1, từ đó có thể hạn chế các dự đốn bounding box ở xung quanh
grid cell, giúp mơ hình ổn định hơn trong q trình huấn luyện.
• Add fine-grained features: YOLOv2 sử dụng feature map 13x13
để đưa ra các dự đoán, lớn hơn 7x7 của YOLOv1. Faster R-CNN[15]
và SSD[11] đưa ra dự đoán ở nhiều tầng khác nhau trong mạng để tận
dụng các feature map ở các kích thước khác nhau. YOLOv2 cũng kết
hợp các feature ở các tầng khác nhau lại để đưa ra dự đoán, cụ thể
kiến trúc nguyên bản của YOLOv2 kết hợp feature map 26x26 lấy từ
đoạn gần cuối với feature map 13x13 ở cuối để đưa ra các dự đoán.
Cụ thể là các feature map này sẽ được ghép vào nhau (concatenate)
để tạo thành một khối sử dụng cho dự đốn
• Multi-Scale Training: Sau khi thêm kĩ thuật anchor box cho YOLOv2,
Joseph Redmon đã thay đổi input của mạng thành 416x416 thay vì
448x448. Tuy vậy, YOLOv2 được thiết kể chỉ gồm các lớp convolution và pooling nên có thể thích ứng với nhiều kích thước ảnh đầu
vào khác nhau. Joseph Redmon đã huấn luyện mạng trên nhiều kích
thước ảnh khác nhau để tăng khả năng thích ứng của YOLOv2 với
đa dạng kích thước ảnh.
• Light-weight backbone: Điểm cải tiến của YOLOv2 còn phải kể
đến backbone mới có tên Darknet-19. Mạng này bao gồm 19 lớp con-


16


Hình 2.5: Kiến trúc mạng YOLOv3.

volution và 5 lớp maxpooling tạo ra tốc độ nhanh hơn phiên bản
YOLO trước (hình 2.4).
YOLOv3

Năm 2018, YOLOv3[14] được ra mắt với một số cải tiến về tốc độ và
hiệu suất.
• Logistic regression cho confidence score: YOLOv3 predict độ
tự tin của bounding box (có chứa vật hay khơng) sử dụng logistic
regression
• Thay softmax bằng các logistic classifier rời rạc: YOLOv3 sử
dụng các logistic classifier thay vì softmax cho việc classify đối tượng.
Việc này cho hiệu quả tốt hơn nếu các label không "mutually exclusive", tức là có thể có đối tượng cùng thuộc 2 hay nhiều class khác
nhau.
• Backbone mới – Darknet-53: Backbone được thiết kế lại với việc
thêm các residual blocks (kiến trúc sử dụng trong ResNet[5]).


×