Phát triển ứng dụng phát hiện, phân loại, tracking đa mục tiêu sử dụng các mô hình học sâu (YOLO, LSTM, DNN, DBN)

30 25 0
Phát triển ứng dụng phát hiện, phân loại, tracking đa mục tiêu sử dụng các mô hình học sâu (YOLO, LSTM, DNN, DBN)

Đ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

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG … o0o… Báo cáo đồ án I Đề tài: Phát triển ứng dụng phát hiện, phân loại, tracking đa mục tiêu sử dụng mơ hình học sâu (YOLO, LSTM, DNN, DBN) Giảng viên hướng dẫn: PGS.TS Trần Quang Vinh Sinh viên thực : Họ tên MSSV Lớp Nguyễn Phú Đức 20182435 Điện tử 02 Lê Xuân Vương 20182898 Điện tử 01 Nguyễn Văn Tuấn 20182866 Điện tử 01 Lời nói đầu Deep Learning thuật toán đời lấy ý tưởng từ hoạt động não tới việc tiếp thu nhiều tầng biểu đạt, cụ thể lẫn trừu tượng, qua giúp làm rõ nghĩa loại liệu Deep Learning tập trung vào giải vấn đề liên quan đến mạng thần kinh nhân tạo nhằm nâng cấp cơng nghệ nhận diện giọng nói, tầm nhìn máy tính xử lý ngơn ngữ tự nhiên Một số ứng dụng Deep learning thực tế như: điểu khiển xe tự lái hay robot, nhận diện hình ảnh, phát loại bệnh gặp, hệ thống gợi ý tảng Facebook, Amazon, Netflix, …… Có lẽ vài năm trở lại đây, object detection đề tài hot deep learning khả ứng dụng cao, liệu dễ chuẩn bị kết ứng dụng nhiều Các thuật tốn object detection YOLO, SSD có tốc độ nhanh độ xác cao nên giúp cho Object Detection thực tác vụ dường real time, chí nhanh so với người mà độ xác khơng giảm Các mơ hình trở nên nhẹ nên hoạt động thiết bị IoT để tạo nên thiết bị thơng minh Chính tính ứng dụng cao, dễ chuẩn bị liệu huấn luyện mơ hình đơn giản nên báo cáo nhóm chúng em trình bày thuật tốn object detection state-ofart, YOLO Mục lục 1|Page Chương 1: Cơ sở lý thuyết………………………………………………………3 Tìm hiểu Deep Learning………………………………………………3 Cách hoạt động Deep Learning…………………………………… I II III IV Khái niệm bản……………………………………………………… Khái niện Convolution Neural Network………………………… Đặt vấn đề…………………………………………………………….8 Tìm hiểu mơ hình YOLO…………………………………………… Sơ lược mơ hình YOLO………………………………………… Kiến trúc mạng YOLO……………………………………………….11 Output YOLO……………………………………………………12 Tìm hiểu YOLO………………………………………………………12 Các hoạt động YOLO……………………………………………13 Hàm tính IoU……………………………………………………… 14 Loss Function……………………………………………………… 15 Non-maximal suppression………………………………………… 16 Anchor boxes……………………………………………………… 16 Hạn chế YOLO………………………………………………… 17 Tìm hiểu thuật tốn Deep Sort…………………………………….18 Bộ lọc Kalman……………………………………………………… 18 Thuật toán Hungary………………………………………………… 20 Chương 2: Triển khai kiểm thử……………………………………………….22 Cộng cụ……………………………………………………………… 22 Chuẩn bị liệu train model………………………………………23 Test mode…………………………………………………………… 25 Triển khai Web Application………………………………………27 Lời kết……………………………………………………………………………29 Chương Cơ sở lý thuyết 2|Page Trước khi, tìm hiểu sở lý thuyết thuật tốn sử dụng deep learning mơ hình YOLO Thì chúng em xin khái quát qua hiểu biết chúng em deep learning Tìm hiểu Deep learning: Deep Learning thuật toán đời lấy ý tưởng từ hoạt động não tới việc tiếp thu nhiều tầng biểu đạt, cụ thể lẫn trừu tượng, qua giúp làm rõ nghĩa loại liệu Deep Learning tập trung vào giải vấn đề liên quan đến mạng thần kinh nhân tạo nhằm nâng cấp công nghệ nhận diện giọng nói, tầm nhìn máy tính xử lý ngôn ngữ tự nhiên Một số ứng dụng Deep learning thực tế như: điểu khiển xe tự lái hay robot, nhận diện hình ảnh, phát loại bệnh gặp, hệ thống gợi ý tảng Facebook, Amazon, Netflix, …… Deep learning tập hợp Machine Learning, có khả khác biệt số khía cạnh quan trọng so với ML truyền thống Deep Learning dựa tập hợp thuật tốn để cố gắng mơ hình liệu trừu tượng hóa mức cao cách sử dụng nhiều lớp xử lý với cấu trúc phức tạp, cách khác bao gồm nhiều biến đổi phi tuyến Hình Deep learning(DL) tập Machine learning(ML) Cách hoạt động Deep learning: 3|Page Deep Learning (DL) liên quan đến việc cung cấp cho hệ thống máy tính nhiều liệu  Dữ liệu cung cấp thông qua mạng nơ-ron nhân tạo (neural network)  Các mạng cấu trúc logic yêu cầu loạt câu hỏi đúng/sai trích xuất giá trị dạng số bit liệu qua chúng phân loại theo câu trả lời nhận  Công việc Deep Learning tập trung vào việc phát triển mạng nên chúng gọi Deep Neural Networks – mạng logic có độ phức tạp cần thiết để xử lý liệu phân loại lớn I Các khái niệm Tìm hiểu Convolutional Neural Network (CNN) a Khái niệm Convolutional Neural Network (CNN) hay mạng nơ-ron tích chập mơ hình Deep Learning phổ biến có ảnh hưởng nhiều lĩnh vực thị giác máy tính (Computer Vision) Ứng dụng : nhận dạng ảnh, phân tích video cho toán lĩnh vực xử lý ngôn ngữ tự nhiên b Tại cần CNN ? Mạng Neural thông thường gặp vấn đề số lượng weight xử lý ảnh ● Mạng neurol thơng thường có thành phần : input layer, output layer, hidden layer Mỗi node layer kết nối với tất node layer trước (fully connected layer)  Weight W: input layer hidde layer Với CNN, Neural lớp kết nối với vài Neural lớp trước đón, nên giải vấn đề lượng lớn parameter mà lấy đặc trưng ảnh 4|Page Hình Trong ảnh pixel cạnh thường có liên kết với pixel xa c Convolution Phép tích chập phép tốn quan trọng mạng neural tích chập CNN Nó hình dung việc lấy cửa sổ trượt (sliding window) áp đặt lên ma trận Sliding window cịn có tên gọi kernel, filter hay feature detector ● Convolutional Neural Network – CNN dạng mạng NN truyền thống mang thêm số cải tiến, Convolution Pooling ● Mục đích phép tính tích chập Convolution thực ảnh làm mờ, làm nét ảnh, xác định đường, … Với kernel khác phép Convolution có ý nghĩa khác 5|Page Hình Minh họa phép tích chập Với phần tử 𝑥𝑖𝑗 ma trận X lấy ma trận có kích thước kích thước kernel W có phần tử 𝑥𝑖𝑗 làm trung tâm gọi ma trận A Sau tính tổng phần tử phép tính element-wise ma trận A ma trận W, viết vào ma trận kết Y d Convolutional layer Convolutional layer lớp quan trọng CNN, đảm nhận hầu hết chức tính tốn mạng Mục tiêu trích chọn đặc trưng ảnh đầu vào Với kernel khác ta học đặc trưng khác ảnh, nên convolutional layer ta dùng nhiều kernel để học nhiều thuộc tính ảnh Vì kernel cho output matrix nên k kernel cho k output matrix Ta kết hợp k output matrix lại thành tensor chiều có chiều sâu k Hình Convolutional layer Ở layer đầu tiên, phép tích chập đơn giản phép tìm biên ảnh, tức sau cho qua lọc làm lên đặc trưng đối tượng 6|Page ảnh đường vẽ xung quanh đối tượng, góc cạnh, … layer trích xuất tiếp đặc trưng đối tượng Việc có nhiều layer nhằm chia nhỏ đặc trưng ảnh tới mức nhỏ e Pooling Layer Pooling layer thường dùng convolutional layer, để giảm kích thước liệu giữ thuộc tính quan trọng Việc giảm kích thước liệu giúp giảm phép tính tốn model Có hai loại pooling layer phổ biến là: max pooling average pooling Hình Hai loại Pooling layer Pooling hoạt động gần giống với Convolution, có cửa sổ trượt gọi pooling window Cửa sổ trượt trượt qua giá trị ma trận liệu đầu vào (thường feature map Convolutional layer), chọn giá trị lớn từ giá trị nằm cửa sổ trượt max pooling thực lấy giá trị trung bình giá trị cửa sổ trượt average pooling f Fully Connected Layer Sau ảnh truyền qua nhiều convolutional layer pooling layer model học tương đối đặc điểm ảnh (ví dụ mắt, mũi, khung mặt, ) tensor output layer cuối cùng, kích thước H*W*D, chuyển vector kích thước (H*W*D, 1) 7|Page Hình Cách hoạt động fully connected layer ● Để đưa ảnh từ layer trước vào mạng này, buộc phải dàn phẳng ảnh thành vector thay mảng nhiều chiều trước  Tại layer cuối sử dụng hàm softmax để phân loại đối tượng dựa vào vector đặc trưng tính tốn lớp trước g Kiến trúc Convolutional Neural Network CNN gồm hai thành phần: - Phần rút trích đặc trưng: convolution, relu, pooling - Phần phân lớp: fully connected, softmax Hình Kiến trúc convolutional neural network Đặt vấn đề: 8|Page - Detect(phát hiện) Tracking(theo dõi) lĩnh vực quan trọng thị giác máy tính - Từ việc phát đối tượng chuyển động video, máy theo dõi đối tượng phân tích đối tượng  Từ đưa kết đối tượng người đồ vật, sau phân tích hoạt động vật thể đưa vào áp dụng nhiều công nghệ thị giác máy tính phổ biến o Một số ứng dụng Theo dõi đối tượng áp dụng nhiều ứng dụng tầm nhìn robot, giám sát lưu lượng xe, giám sát video, hệ thống giám sát cơng dân ,phân tích hình ảnh y sinh, hình ảnh y tế,… Hình Một số ứng dụng xử lý ảnh II Tìm hiểu mơ hình YOLO (you only look once) Sơ lược mơ hình YOLO You only look once (YOLO) mơ hình CNN(convolutional neural network) để detect object mà ưu điểm trội nhanh nhiều so với mơ hình cũ Có độ xác cao có tốc độ nhanh nên giúp cho Object Detection thực tác vụ dường real time Về sau cịn có YOLO v2,v3, chạy nhanh phức tạp khó cài đặt YOLO thuật toán nhận diện vật thể nhanh thời điểm 9|Page Hình 15 Minh họa hàm tính IoU Trong đó: ● Area of Overlap diện tích phần giao predicted box với ground truth box ● Area of Union diện tích phần hợp predicted box ground truth box Loss function YOLO Hình 16 Các hàm Loss function YOLO + Classification loss: tính tốn sai số việc dự đoán loại nhãn object Hàm tính lưới có xuất object, ô khác không cần quan tâm 15 | P a g e + Localization loss: hàm mát dùng để tính giá trị lỗi cho bounding box dự đoán (predicted box) bao gồm x, y, w, h so với vị trí thực tế từ liệu huấn luyện mơ hình (ground truth box) Tại chứa object, ta chọn bounding box có IoU tốt sau tính loss theo bounding box + Confidence loss: hàm mát dự đoán bounding box có chứa object so với label thực tế vng đó, tính ô vuông chứa object không chứa object Non-maximal suppression YOLO  YOLO thực phát trùng lặp cho đối tượng Để khắc phục điều này,  YOLO áp dụng kỹ thuật non-maximal suppression (NMS) để loại bỏ trùng lặp có độ tin cậy thấp  Kỹ thuật Non-maximal suppression thực sau: Sắp xếp dự đoán theo tham số confidence score Bắt đầu từ score cao nhất, bỏ qua dự đoán tồn dự đoán trước có class IoU > ngưỡng IoU (ngưỡng có giá trị tùy theo mục đích người sử dụng) so với dự đoán Lặp lại bước tất dự đốn kiểm tra Hình 17 Non-maximal suppression YOLO 16 | P a g e Anchor boxes Anchor boxes box định nghĩa trước hình dạng (width, height) Hình 18 Anchor boxes ● Để tìm bounding box cho vật thể, YOLO cần anchor box làm sở ước lượng Những anchor box xác định trước bao quanh vật thể cách tương đối xác Sau thuật toán regression bounding box tinh chỉnh lại anchor box để tạo bounding box dự đoán cho vật thể ● Hình : Xác định anchor box cho vật thể Từ Cell i ta xác định anchor boxes viền xanh hình Cả anchor boxes giao với bounding box vật thể Tuy nhiên anchor box có đường viền dày màu xanh lựa chọn làm anchor box cho vật thể có IoU so với ground truth bounding box cao  Như xác định vật thể ta cần xác định thành phần gắn liền với (cell, anchor box) Hạn chế YOLO - YOLO áp đặt ràng buộc không gian bounding box, grid cell predict bounding box class Các ràng buộc hạn chế khả nhận biết số object nằm gần nhau, 17 | P a g e với object kích thước nhỏ YOLO sử dụng feature tương đối thô để predict bounding box, model sử dụng nhiều lớp downsampling từ ảnh đầu vào Bởi hạn chế model huấn luyện để predict bounding box từ data, dẫn đến YOLO không thực tốt việc nhận diện object với tỉ lệ hình khối bất thường so với tập data YOLOv2 khắc phục phần vấn đề này, thua nhiều so với FRCNN Ngoài ra, q trình training, loss function khơng có đánh giá riêng biệt error bounding box kích thước nhỏ so với error bounding box kích thước lớn Việc coi chúng loại tổng hợp lại làm ảnh hưởng đến độ xác tồn cục mạng Error nhỏ box lớn nhìn chung tác hại, error nhỏ với box nhỏ đặc biệt ảnh hưởng đến giá trị IOU IV Tìm hiểu thuật toán Deep Sort Thuật toán Deep Sort: theo dõi đối tượng video cách sử dụng tính đặc trưng để liên kết đối tượng frames liên tiếp  Deep Sort bao gồm:  Bộ lọc Kalman (Kalman Filter): dự đốn vị trí tương lai dựa vị trí Nó ước tính vị trí tốt, đồng thời xử lý nhiễu  Thuật tốn Hungary: thuật tốn cho biết đối tượng frame có giống với đối tượng frame trước hay khơng Nó sử dụng để liên kết ghi nhận ID  Deep module: dùng để trích xuất tính box, làm đầu vào cho lọc Kalman thuật toán Hungary 18 | P a g e  Thuật toán Deep SORT sử dụng để theo dõi đối tượng video mở rộng từ thuật toán SORT  Deep SORT bổ sung mạng nơ-ron tạo trước để tạo tính (features) cho đối tượng - Deep SORT Nicolai Wojke Alex Bewley phát triển SORT nhằm giải vấn đề thiếu sót liên quan đến số lượng ID switches cao Hướng giải mà deep SORT đề xuất dựa việc sử dụng deep learning để trích xuất đặc trưng đối tượng nhằm tăng độ xác q trình liên kết liệu - Do liên kết detection với tracking thực dựa tính tương tự tính bên cạnh chồng chéo, giảm số lượng chuyển đổi ID đảm bảo việc theo dõi ổn định Bộ lọc Kalman  Bộ lọc Kalman phổ biến để theo dõi vật thể dự đốn vị trí tương lai Nó sử dụng tất loại robot, máy bay không người lái, xe tự lái, …  Bộ lọc Kalman sử dụng bounding box, xuất sau box khớp (match)  Khi liên kết thực hiện, hàm predict update gọi 19 | P a g e ... connected, softmax Hình Kiến trúc convolutional neural network Đặt vấn đề: 8|Page - Detect(phát hiện) Tracking( theo dõi) lĩnh vực quan trọng thị giác máy tính - Từ việc phát đối tượng chuyển động video,... -Base network YOLO sử dụng chủ yếu convolutional layer fully conntected layer Các kiến trúc YOLO đa dạng tùy biến thành version cho nhiều input shape khác Hình 12 Sơ đồ kiến trúc mạng YOLO Thành... trích xuất đặc trưng đối tượng nhằm tăng độ xác q trình liên kết liệu - Do liên kết detection với tracking thực dựa tính tương tự tính bên cạnh chồng chéo, giảm số lượng chuyển đổi ID đảm bảo việc

Ngày đăng: 15/11/2021, 11:47

Mục lục

  • Visual Studio Code

  • Pycharm

  • 2. Chuẩn bị dữ liệu và train model

  • a. Tool bounding box

  • - Hiện tại có rất nhiều các open source bounding box tool khác nhau được sử dụng để gán nhãn cho mô hình YOLO (Sử dụng labelimg)

Tài liệu cùng người dùng

Tài liệu liên quan