1. Trang chủ
  2. » Giáo Dục - Đào Tạo

báo cáo cuối kỳ đề tài phát hiện và theo dõi người

29 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phát hiện và theo dõi người
Trường học Đại học Bách khoa Hà Nội
Chuyên ngành Trí tuệ nhân tạo & Ứng dụng
Thể loại Báo cáo cuối kỳ
Thành phố Hà Nội
Định dạng
Số trang 29
Dung lượng 13,7 MB

Nội dung

Độ chính xác và nhanh nhạy phù hợp vớimáy tính fps đạt chuẩn 1.6 Tổng quan Object Tracking1.6.1 Khái niệmObject Tracking là bài toán theo dõi một hoặc nhiều đối tượng chuyển động theo th

Trang 1

ĐẠI HỌC BÁCH KHOA HÀ NỘI

TRƯỜNG ĐIỆN – ĐIỆN TỬ

Bộ môn Trí tuệ nhân tạo & Ứng dụng

BÁO CÁO CUỐI KỲ

Đề tài:

PHÁT HIỆN VÀ THEO DÕI NGƯỜI

Trang 2

LỜI NÓI ĐẦU

Trang 3

MỤC LỤC

BẢNG PHÂN CÔNG CÔNG VIỆC 6

CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 7

1.1 Giới thiệu về Yolo 7

1.2 Cách yolo hoạt động 8

1.3 Hàm tính IOU 8

1.4 Loss function 9

1.4.1 Classifycation loss 9

1.4.2 Localization loss 10

1.4.3 Confidence loss 11

1.4.4 Total loss 11

1.5 YOLOv5 12

1.5.1 Lịch sử và tranh cãi 12

1.5.2 Kiến trúc yolov5 13

1.5.3 Các loại mô hình yolov5 khác nhau 14

1.6 Tổng quan Object Tracking 14

1.6.1 Khái niệm 14

1.6.2 Phân loại 14

1.6.3 Dataset và Metric đánh giá 16

1.6.4 Multiple Object Tracking 17

1.6.5 Realtime Object Tracking 18

1.7 Deep SORT 18

1.7.1 Ý tưởng 19

1.7.2 Training bộ trích xuất đặc trưng 19

1.7.3 Quản lý vòng đời 1 track 21

CHƯƠNG 2 THỰC HIỆN ĐỀ TÀI 22

2.1 Phương pháp giải quyết bài toán 22

2.2 Nhận diện người sử dụng model yolov5s 23

2.2.1 Mô hình thuật toán 23

2.2.2 Trainning model 23

2.2.3 Kết quả đánh giá metric ML 25

2.2.4 Detection 25

2.2 Theo dõi và đếm số người trong video – Deepsort 26

2.3 Kết quả thu được và đánh giá của Yolov5 và Deepsort 27

Trang 4

KẾT LUẬN 29 TÀI LIỆU THAM KHẢO 30

Trang 5

DANH MỤC HÌNH VẼ

Hình 1 1 Mô hình mạng Yolo 7

Hình 1 2 Cơ chế hoạt động của Yolo 8

Hình 1 3 Hàm tính IOU 9

Hình 1 4 Tính giá trị hàm Localization loss 10

Hình 1 5 Kiến trúc Yolov5 13

Hình 1 6 Các loại mô hình Yolov5 14

Hình 1 7 Single Object Tracking 15

Hình 1 8 Multiple Object Tracking 15

Hình 1 9 MOT Challenge 16

Hình 1 10 ImageNet VID 17

Hình 1 11 Đánh giá thử nghiệm 3 hàm loss 20

Hình 1 12 Vòng đời của một track 21

Hình 2 1 Luồng xử lý của Deepsort 22

Hình 2 2 Chỉnh sửa lại file coco.yaml 24

Hình 2 3 Quá trình training Yolov5 24

Hình 2 4 Kết quả đánh giá sau khi train 25

Hình 2 5 Chưa nhận diện người trong bức ảnh 25

Hình 2 6 Sau khi nhận diện người trong bức ảnh 26

Hình 2 7 Sử dụng tập dữ liệu MOT16 26

Hình 2 8 Giao diện đầu vào ảnh hoặc video 27

Hình 2 9 Kết quả thu được 28

Hình 2 10 Lỗi không deploy lên Heroku 28

Trang 6

BẢNG PHÂN CÔNG CÔNG VIỆC

 Mục tiêu project

 Hiểu và biết áp dụng những gì đã học vào project

 Tăng cường khả năng làm việc nhóm

 Mỗi thành viên đều hiểu và có thể áp dụng vào các bài toán khác

Phân công các công việc

1.1 Cách yolo hoạt động

Hình 1 1 Cơ chế hoạt động của Yolo

YOLO hoạt động theo cơ chế detect vật thể trên từng vùng ảnh Ảnh được chia thành S x

S ô, ô hay còn gọi là cell Thực ra là chia trong tưởng tượng, không phải cắt ảnh ra hay thực hiện bất kì bước image-processing nào Bản chất của việc chia ảnh là việc chia output, target thành dạng matrix AA kích thước S x S Nếu trong ảnh, tâm của vật thể nằm trong cell thứ (i,j) thì output tương ứng nó sẽ nằm trong A[i,j]

Luồng xử lí như sau:

Trang 7

 Convolution network tiến hành trích xuất đặc trưng ảnh

 Extra layers (fully connected layers) phân tích, phát hiện vật thể Trả về output là một matrix AA có kích thước:

Shape(A) = S*S*(5*B + C) Shape(A)=S∗S∗(5∗B+C)

 Trong đó, B là số bound box, mỗi bound box gồm 5 số liệu: (x,y,w,h,confidence_score) confidence score xác suất tại ô đó có object hay không Cuốicùng là C phần tử - đại diện cho phân bố xác suất về loại object, tức classdistribution Vì C phần tử này là một phân phối xác suất nên cần đảm bảo:

0

c

pi=1

prediction được định nghĩa Pr(Object) * IOU(pred, truth)Pr(Object)∗

IOU(pred,truth), ta sẽ làm rõ hơn IOU(pred, truth) là gì IOU (INTERSECTIONOVER UNION) là hàm đánh giá độ chính xác của object detector trên tập dữ liệu

cụ thể IOU được tính bằng:

1.2 Loss function

Hàm lỗi trong YOLO được tính trên việc dự đoán và nhãn mô hình để tính Cụ thểhơn nó là tổng độ lỗi của 3 thành phần con sau :

 Độ lỗi của việc dự đoán loại nhãn của object - Classifycation loss

 Độ lỗi của dự đoán tọa độ tâm, chiều dài, rộng của boundary box (x, y ,w, h)

Trang 8

1.4.2 Localization loss

Localization loss là hàm lỗi dùng để tính giá trị lỗi cho boundary box được dự đoánbao gồm tọa độ tâm, chiều rộng, chiều cao của so với vị trí thực tế từ dữ liệu huấnluyện của mô hình Lưu ý rằng chúng ta không nên tính giá trị hàm lỗi này trực tiếp

từ kích thức ảnh thực tế mà cần phải chuẩn hóa về [0, 1] so với tâm của boundingbox Việc chuẩn hóa này kích thước này giúp cho mô hình dự đoán nhanh hơn vàchính xác hơn so với để giá trị mặc định của ảnh Hãy cùng xem một ví dụ:

Giá trị hàm Localization loss được tính trên tổng giá trị lỗi dự đoán toạ độ tâm (x, y)

và (w, h) của predicted bounding box với grouth-truth bounding box Tại mỗi ô có chưa object, ta chọn 1 boundary box có IOU (Intersect over union) tốt nhất, rồi sau

đó tính độ lỗi theo các boundary box này

Hình 1 2 Tính giá trị hàm Localization loss

Trang 9

Giá trị hàm lỗi dự đoán tọa độ tâm (x, y) của predicted bounding box và (x̂ , ŷ) làtọa độ tâm của truth bounding box được tính như sau :

Giá trị hàm lỗi dự đoán (w, h ) của predicted bounding box so với truth boundingbox được tính như sau :

Trang 10

1.5.1 Kiến trúc yolov5

Họ mô hình YOLO bao gồm ba khối kiến trúc chính i) Xương sống, ii) Cổ và iii) Đầu

1 YOLOv5 Backbone: Nó sử dụng CSPDarknet làm xương sống để trích xuất

tính năng từ các hình ảnh bao gồm các mạng một phần xuyên giai đoạn

2 YOLOv5 Neck: Nó sử dụng PANet để tạo ra một mạng lưới kim tự tháp

đặc trưng để thực hiện tổng hợp các đặc điểm và chuyển cho Head để dự đoán

3 YOLOv5 Head: Các lớp tạo dự đoán từ các hộp neo để phát hiện đối tượng.

Ngoài điều này, YOLOv5 sử dụng các lựa chọn dưới đây để đào tạo :

1 Kích hoạt và tối ưu hóa: YOLOv5 sử dụng Leaky ReLU và sigmoid

activation cũng như SGD và ADAM làm tùy chọn trình tối ưu hóa

2 Hàm mất mát: Nó sử dụng Binary cross-entropy với logits loss.

Hình 1 3 Kiến trúc Yolov5

Trang 11

1.5.2 Các loại mô hình yolov5 khác nhau

YOLOv5 có nhiều loại mô hình được đào tạo trước như chúng ta có thể thấy ở trên Sựkhác biệt giữa chúng là sự cân bằng giữa kích thước của mô hình và thời gian suy luận.Phiên bản mô hình nhẹ YOLOv5s chỉ 14MB nhưng không chính xác lắm Chúng ta cóYOLOv5x có kích thước 168MB nhưng là phiên bản chính xác nhất trong họ của nó.Phiên bản phù hợp với bài toán là yolov5s Độ chính xác và nhanh nhạy phù hợp vớimáy tính fps đạt chuẩn

1.6 Tổng quan Object Tracking

1.6.1 Khái niệm

Object Tracking là bài toán theo dõi một hoặc nhiều đối tượng chuyển động theo thời gian trong một video Hiểu một cách đơn giản nhất, nó là bài toán ở mức độ cao hơn so với object detection, khi đối tượng được xử lí không đơn giản là một hình ảnh mà là một chuỗi các hình ảnh: video

Việc tracking bên cạnh việc xác định các bounding box, còn quan tâm đến khá nhiều yếu

tố hoặc nhiễu khác nhau:

 ID của mỗi đối tượng cần đảm bảo luôn không đổi qua các frame

 Khi đối tượng bị che khuất hoặc biến mất sau 1 vài frame, hệ thống vẫn cần đảm bảo nhận diện lại được đúng ID khi đối tượng xuất hiện

 Các vấn đề liên quan đến tốc độ xử lí để đảm bảo realtime và tính ứng dụng cao

1.6.2 Phân loại

Object Tracking có thể chia thành 2 cách tiếp cận chính:

Hình 1 4 Các loại mô hình Yolov5

Trang 12

Single Object Tracking (SOT): Cái tên nói lên tất cả, Single Object Tracking tập

trung vào việc theo dõi một đối tượng duy nhất trong toàn bộ video Và tất nhiên,

để biết được cần theo dõi đối tượng nào, việc cung cấp một bounding box từ ban đầu là việc bắt buộc phải có

Hình 1 5 Single Object Tracking

Mutiple Object Tracking (MOT): Mutliple Object Tracking hướng tới các ứng

dụng có tính mở rộng cao hơn Bài toán cố gắng phát hiện đồng thời theo dõi tất

cả các đối tượng trong tầm nhìn, kể cả các đối tượng mới xuất hiện trong video

Vì điểu này, MOT thường là những bài toán khó hơn SOT và nhận được rất nhiều

sự quan tâm của giới nghiên cứu

Hình 1 6 Multiple Object Tracking

Bên cạnh việc tiếp cận, các phương pháp giải lớp bài toán này cũng được phân chia rất đadạng, phổ biến nhất là:

 Online Tracking : Khi xử lí video, Online Tracking chỉ sử dụng frame hiện tại và frame ngay trước đó để tracking Cách xử lí này có thể sẽ làm giảm độ chính xác của thuật toán, tuy nhiên nó lại phản ánh đúng cách vấn đề được xử lí trong thực

tế, khi mà tính "online" là cần thiết

 Offline Tracking : Các phương pháp Offline thường sử dụng toàn bộ frame củavideo, do đó thường đạt được độ chính xác cao hơn nhiều so với Online TrackingNgoài ra còn phân chia theo:

 Detection based Tracking : Tập trung vào mối liên kết chặt chẽ giữa objectdetection và object tracking, từ đó dựa vào các kết quả của detection để theo dõiđối tượng qua các frame

Trang 13

 Detection Free Tracking : Coi video như 1 dạng dữ liệu dạng chuỗi, từ đó, áp dụng những phương pháp dành riêng cho "chuỗi" như RNN, LSTM,

1.6.3 Dataset và Metric đánh giá

Để bắt đầu tìm hiểu về Object Tracking, việc nắm bắt về các tập dữ liệu phổ biến cũng như các metric đánh giá là điều không thể thiếu Về dataset, object tracking thường đánh giá dựa trên các tập dữ liệu sau:

MOT Challenge: MOT Challenge là một cuộc thi thường niên, dataset của MOT

Challenge thường được sử dụng để đánh giá điểm chuẩn cho các phương phápgiải quyết bài toán Mutiple Object Tracking (MOT15, MOT16, MOT17,MOT20, ) Dữ liệu là chuỗi các video đã được gán nhãn của người đi bộ, đượcthu thập từ nhiều nguồn khác nhau, với sự đa dạng về độ phân giải, độ chiếu sáng,

Hình 1 7 MOT Challenge

ImageNet VID: Bên cạnh những bộ dataset nổi tiếng về classification, object

detection, ImageNet cũng cung cấp một bộ dataset đủ lớn về object tracking Đây

là chuỗi các video được gán nhãn từ 30 nhóm đối tượng khác nhau

Trang 14

Hình 1 8 ImageNet VID

Về metric đánh giá, cần quan tâm các metric sau:

FP (False Positive) : tổng số lần xuất hiện một đối tượng được phát hiện mặc dù

không có đối tượng nào tồn tại

FN (False Negative) : tổng số lần mà đối tượng hiện có không được phát hiện.

ID Switches : tổng số lần 1 đối tượng bị gán cho 1 ID mới trong suốt quá trình

tracking video

MOTA: Mutiple Object Tracking Accuracy

MOTP: Mutiple Object Tracking Precision

MT (Most Tracked Target) : tính trong ít nhất 80% video

ML (Most Lost Target) : tính trong 20% video

Hz (FPS): Tốc độ tracking

1.6.4 Multiple Object Tracking

Trang 15

Một phương pháp Mutiple Object Tracking cố gắng hướng đến việc theo dõi tất cả các đối tượng xuất hiện trong khung hình bằng việc phát hiện và gắn định danh cho từng đối tượng Bên cạnh đó, các ID đã được gán cho 1 đối tượng cần đảm bảo nhất quán qua từng frame Vậy, có những vấn đề gì đáng quan tâm ở đây?

trong object detection và vẫn không ngừng có những phương pháp, những thuật toán cải thiện vấn đề này Trong object tracking, đặc biệt là detection based tracking, việc đảm bảo tính chính xác của quá trình detect cũng vô cùng quan trọng

tượng, ID cần đảm bảo nhất quán trong suốt video, tuy nhiên, khi một đối tượng bị che khuất, nếu chỉ dựa riêng vào object detection là không đủ để giải quyết vấn đề này

tự như vấn đề trước đó, chúng ta vẫn đang nói về chỉ số ID switches Cần giải quyết tốt vấn đề nhận dạng lại đối tượng kể cả việc che khuất hay biến mất để giảm số lượng ID_switches xuống mức thấp nhất có thể

nhau : Việc các đối tượng có quỹ đạo chống chéo lên nhau cũng có thể dẫn

đến hậu quả gán nhầm ID cho các đối tượng, đây cũng là vấn đề chúng ta cần chú ý xử lí khi làm việc với Multiple Object Tracking

1.6.5 Realtime Object Tracking

Realtime Object Tracking lại quan tâm nhiều hơn về tốc độ xử lí của phương pháp Thật

sự mà nói, vẫn chưa có định nghĩa, tốc độ như thế nào mới được gọi là realtime (30 FPS,

40 FPS hay phải nhanh hơn thế nữa) Thay vì xét về tốc độ, chúng ta hãy định nghĩa

realtime một cách dễ hình dung hơn Phương pháp được gọi là realtime cần đảm bảo tốc

độ đưa ra output là nhanh hơn hoặc ít nhất là nhanh bằng tốc độ đưa vào input.

Trong thực tế, nếu việc xử lí từng frame chỉ khiến video có độ trễ 1s so với tốc độ bình thường của nó, việc xử lí này cũng có thể chấp nhận rằng đó là realtime Tuy nhiên, ngay

cả khi chấp nhận có độ trễ, việc đảm bảo tính realtime vẫn luôn là một vấn đề nan giải

Thông thường, chúng ta có thể bỏ qua 1 vài frame không xử lí cho đến khi frame hiện

tại xử lí xong, sau đó tiếp tục các frame sau - pha xử lí này vẫn sẽ đem lại cảm giác là

việc xử lí đang là realtime, tuy nhiên, bù lại, việc tracking mỗi x frame lại làm giảm đáng

kể tính chính xác mong muốn

Hiện nay, các nghiên cứu mới nhất vẫn luôn tìm kiếm những phương pháp đủ nhanh để hướng tới tính realtime trong xử lí

1.7 Deep SORT

Trang 16

Deep SORT được Nicolai Wojke và Alex Bewley phát triển ngay SORT nhằm giải quyết các vấn đề thiếu sót liên quan đến số lượng ID switches cao Hướng giải quyết màdeep SORT đề xuất dựa trên việc sử dụng deep learning để trích xuất các đặc trưng của đối tượng nhằm tăng độ chính xác trong quá trình liên kết dữ liệu Ngoài ra, một chiến lược liên kết cũng được xây dựng mang tên Matching Cascade giúp việc liên kết các đốitượng sau khi đã biến mất 1 thời gian được hiệu quả hơn.

1.7.1 Ý tưởng

Trong multiple object tracking, đặc biệt là đối với lớp thuật toán tracking-by-detection,

có 2 yếu tố chính ảnh hưởng trực tiếp đến performance của việc theo dõi:

 Data Association: Quan tâm đến vấn đề liên kết dữ liệu, cụ thể là tiêu chí để xét

và đánh giá nhằm liên kết một detection mới với các track đã được lưu trữ sẵn

 Track Life Cycle Management: Quan tâm đến việc quản lý vòng đời của một track đã được lưu trữ, bao gồm, khi nào thì khởi tạo track, khi nào thì ngưng theo dõi và xóa track ra khỏi bộ nhớ,

1.7.2 Training bộ trích xuất đặc trưng

Sử dụng Wide Residual Network (WRN)

Các mạng neural thông thường, để đạt được performance cao, thường cố gắng phát triển theo chiều hướng tăng độ sâu của mạng Đây là hướng đi chung, và tốt để có tạo ra một bộ trích xuất đăc trưng hiệu quả Tuy nhiên, một nhược điểm đi kèm với các mạng sâu là thời gian huấn luyện và thời gian inferance lớn, đây là điều đi hoàn toàn ngược lại với mục tiêu của deep SORT Do đó, thay vì sử dụng các mạng sâu (Deep Neural

Network), nhóm tác giả lựa chọn các mạng nông (Shallow Neural Network), cụ thể ở đây là Wide Residual Network (WRN) Kiến trúc này được giới thiệu chỉ với số lớp rất nhỏ (16 lớp), vẫn có thể đạt performance vượt trội hơn các kiến trúc hàng nghìn lớp khác Đặc biệt là thời gian training và inference cũng nhanh hơn rất nhiều

Trang 17

Sử dụng cosine softmax classifer:

Nicolai Wojke và Alex Bewley sử dụng một classifer mới bằng việc tham số hóa lại softmax classifer tiêu chuẩn (Hình ảnh: Phía trên là standard softmax classifer, phía dưới là cosine softmax classifer)

Thật ra mình cũng chưa hoàn toàn hiểu rõ lắm về việc chỉnh sửa softmax classifer

này (sử dụng hệ số K, đồng thời bỏ đi các giá trị bias b_kbk) Hi vọng các bạn, có

ai đã đọc paper và hiểu được ý đồ của tác giả, có thể comment để giúp mình hiểu

rõ hơn về kiến trúc này

3 hàm loss được thử nghiệm với kiến trúc này lần lượt là Sparse Softmax Cross Entropy Loss, Magnet Loss và Triplet Loss Và Cross Entropy Loss cho kết quả khả quan nhất

Hình 1 9 Đánh giá thử nghiệm 3 hàm loss

Ngày đăng: 14/08/2024, 18:17

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w