ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
NGUYỄN HOÀNG PHI LONG
HUẤN LUYỆN, TỐI ƯU VÀ TRIỂN KHAI MÔ HÌNH NHẬN DIỆN NGƯỜI TRÊN HỆ THỐNG GIÁM SÁT CỦA TRẠM
Trang 2Công trình được hoàn thành tại: Trường Đại học Bách Khoa – ĐHQG-HCM
Cán bộ hướng dẫn khoa học : TS Phạm Việt Cường
Cán bộ chấm nhận xét 1 : TS Nguyễn Trọng Tài
Cán bộ chấm nhận xét 2 : PGS.TS Lê Mỹ Hà
Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày 24 tháng 06 năm 2022
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: 1 GS.TS Hồ Phạm Huy Ánh - Chủ tịch
2 TS Nguyễn Vĩnh Hảo - Thư ký 3 TS Nguyễn Trọng Tài - Phản biện 1 4 PGS.TS Lê Mỹ Hà - Phản biện 2 5 TS Nguyễn Ngọc Sơn - Uỷ viên
Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)
CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA ĐIỆN-ĐIỆN TỬ
Trang 3ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: Nguyễn Hoàng Phi Long MSHV: 1970437
Ngày, tháng, năm sinh: 12/01/1997 Nơi sinh: TP Hồ Chí Minh Chuyên ngành: Kỹ Thuật Điều Khiển và Tự Động Hoá Mã số : 8520216
NHIỆM VỤ VÀ NỘI DUNG:
- Nhiệm vụ: Giải quyết các bài toán thực tế trong trạm biến áp như phát hiện người đột nhập vào trạm biến áp, người vi phạm phạm vi làm việc cho phép và người không đội mũ bảo hộ
- Nội dung: Huấn luyện mô hình nhận diện người, tối ưu hoá và triển khai mô hình Xây dựng hệ thống giám sát thông minh trong trạm biến áp
II NGÀY GIAO NHIỆM VỤ: 14/02/2022
III NGÀY HOÀN THÀNH NHIỆM VỤ: 06/06/2022 IV.CÁN BỘ HƯỚNG DẪN: TS Phạm Việt Cường
TP HCM, ngày 24 tháng 06 năm 2022
TRƯỞNG KHOA ĐIỆN - ĐIỆN TỬ
Trang 4i
LỜI CẢM ƠN
Lời đầu tiên, tôi xin gửi lời cảm ơn đến gia đình đã luôn là động lực, là điểm tựa vững chắc để tôi có thêm sự quyết tâm vượt qua những khó khăn trong suốt quá trình học tập, rèn luyện
Tiếp theo, tôi xin chân thành gửi lời cảm ơn sâu sắc đến thầy Phạm Việt Cường đã tận tình hướng dẫn, giúp đỡ tôi về mặt kiến thức chuyên ngành trong toàn bộ quá trình thực hiện luận văn Thạc sĩ Thầy đã tạo mọi điều kiện thuận lợi nhất giúp tôi có thể thu thập tư liệu, nghiên cứu và thực hành để có thể hoàn thành tốt những mục tiêu mà luận văn đã đề ra
Ngoài ra, tôi cũng thật sự biết ơn những thầy cô trong khoa Điện - Điện Tử, đặc biệt là các thầy cô trong bộ môn Kỹ Thuật Điều Khiển và Tự Động Hoá đã tận tình giảng dạy, cung cấp những kiến thức nền tảng và chuyên sâu góp phần quan trọng giúp tôi hoàn thành luận văn
Sau cùng tôi xin cảm ơn các bạn học viên Cao học đồng chuyên ngành đã nhiệt tình giúp đỡ và đóng góp ý kiến để luận văn Thạc sĩ của tôi được hoàn thiện
TP Hồ Chí Minh, ngày 07 tháng 06 năm 2022 Học viên
Nguyễn Hoàng Phi Long
Trang 5ii
TÓM TẮT LUẬN VĂN THẠC SĨ
Trạm biến áp là nơi đóng vai trò cực kỳ quan trọng để đảm bảo tính ổn định trong việc cung cấp điện năng cho sinh hoạt cũng như sản xuất Vì đóng vai trò quan trọng nên đây cũng là nơi cực kỳ nhạy cảm và cần đảm bảo sự an toàn cao cho con người và tài sản Do đó, triển khai hệ thống giám sát trong trạm biến áp là vô cùng cần thiết, tuy nhiên việc vận hành cần tốn nhiều nhân lực và thường gặp sai sót vì các lý do chủ quan lẫn khách quan Từ những vấn đề này, cần có một hệ thống giám sát thông minh tích hợp những mô hình Deep Learning có độ chính xác cao để suy luận và phát hiện những bất thường hay sai sót trong quá trình vận hành có ảnh hưởng đến sức khoẻ của con người và quá trình hoạt động của trạm biến áp
Dựa vào những vấn đề thực tiễn đó, đề tài luận văn trình bày một giải pháp trong việc xây dựng một hệ thống giám sát thông minh để phân tích hình ảnh từ các camera và gửi cảnh báo Đầu tiên là huấn luyện các mô hình Deep Learning để giải quyết các bài toán thực tế trong trạm biến áp Thứ hai là tối ưu hoá mô hình Deep Learning đã huấn luyện để có thể tương thích với phần cứng cũng như tăng tốc cho quá trình xử lý nhiều luồng Cuối cùng là xây dựng một hệ thống giám sát trạm biến áp kết hợp giữa các thiết bị biên (Edge Devices) và máy chủ để có thể trích xuất, suy luận bằng mô hình Deep Learning và gửi cảnh báo từ các luồng dữ liệu của tất cả các camera trong Trạm Biến Áp với tốc độ thời gian thực
Kết quả thu được là mô hình nhận diện người có độ chính xác của AP@50 là 79.43 % trong môi trường trạm biến áp, tốc độ suy luận AI của hệ thống đạt 441 FPS khi thực thi trên máy chủ và 168 FPS khi gửi yêu cầu từ Edge Device Từ các kết quả trên, hệ thống giám sát thông mình mà luận văn xây dựng có thể hoạt động ổn định với 16 camera đạt tốc độ xử lý 25 FPS mỗi camera
Trang 6iii
ABSTRACT
The Substation is an extremely vital place to ensure stability in the supply of electricity for living as well as production Because it plays an important role, it is also a sensitive place and needs to ensure high safety for people and property That is the reason why the Surveillance System in Substation is essential, but the operation requires a lot of labor and often encounters many errors for both subjective and objective reasons From these problems, it is necessary to have a Smart Surveillance System that integrates high-precision Deep Learning models This system can infer and detect abnormalities or errors that affect human health and the operation of the Substation
Based on those practical problems, the Master thesis presents a solution that building an intelligent monitoring system to analyze images from cameras and send alarms thanks to the Artificial Intelligence (AI) platform The first stage is training Deep Learning models to solve real problems in the Substation The second stage is optimizing these models for hardware compatibility as well as to accelerating multi-threading processing The last stage is building a Substation Surveillance System that combines edge devices and servers to extract, infer by Deep Learning model, and send alerts from the data stream of cameras with real-time speed
The result is that the human detection model has 79,43% AP@50 accuracy in the Substation environment and the system’s AI inference speed reaches 441 FPS when executing on the server and 168 FPS when sending the request from edge devices From the above results, the Intelligent Surveillance System built by the thesis can operate stably with 16 cameras with a processing speed of 25 FPS
Trang 7iv
LỜI CAM ĐOAN CỦA TÁC GIẢ
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi, dưới sự hướng dẫn của TS Phạm Việt Cường
Các số liệu, những kết quả nêu trong luận văn là hoàn toàn trung thực và chưa được công bố trong bất kỳ công trình nào Tôi xin hoàn toàn chịu trách nhiệm về lời cam đoan này
Tác giả luận văn
Nguyễn Hoàng Phi Long
Trang 8DANH MỤC TỪ VIẾT TẮT xii
1 GIỚI THIỆU ĐỀ TÀI 1
2.2 Phương pháp đánh giá mô hình Deep Learning 7
2.2.1 Đánh giá Object Detection Model 7
2.2.2 Đánh giá Classification Model 10
Trang 9vi
2.3.2 NVIDIA DeepStream SDK 17
2.4 Tối ưu hoá mô hình Deep Learning bằng TensorRT 18
2.4.1 Giới thiệu về TensorRT 18
2.4.2 Layer Tensor Fusion 19
2.4.3 Reduce Mixed Precision 20
2.5 Nền tảng triển khai mô hình Deep Learning trên Server 22
2.5.1 Triton Serving 22
2.5.2 DALI Triton Backend 23
3 QUÁ TRÌNH THỰC HIỆN 24
3.1 Ý tưởng thực hiện đề tài 24
3.1.1 Giải quyết các bài toán trong trạm biến áp 24
3.1.2 Giải quyết bài toán tốc độ xử lý 25
3.2 Huấn luyện mô hình Deep Learning 26
3.2.1 Chuẩn bị dữ liệu 26
3.2.2 Huấn luyện mô hình 31
3.2.3 Kết quả huấn luyện mô hình Deep Learning 36
3.2.4 Mô hình phát hiện chuyển động 37
3.3 Tối ưu mô hình Deep Learning 39
3.3.1 Tối ưu hoá model EfficientDet 39
3.3.2 Tối ưu hoá model YOLOv5 40
3.3.3 Tối ưu hoá model ResNet-50 41
3.4 Triển khai hệ thống xử lý AI 42
3.4.1 Xây dựng hệ thống xử lý AI 42
3.4.2 Triển khai hệ thống Cloud Computing 44
3.4.3 Triển khai hệ thống Edge Computing 52
3.5 Triển khai hệ thống giám sát 58
3.5.1 Xây dựng hệ thống giám sát 58
3.5.2 Server 59
Trang 104.1.2 Đánh giá hiệu năng 71
4.2 Kết quả huấn luyện mô hình Deep Learning 73
4.2.1 Mô hình Object Detection 73
Trang 11Hình 2.6 Đồ thị biểu diễn mối quan hệ giữa Precision-Recall Hình 2.7 Confusion Matrix
Hình 2.8 Cách tính Precision-Recall trên Confusion Matrix
Hình 2.9 Cách tính Sensitivity và Specificity trên Confusion Matrix Hình 2.10 Đồ thị biểu diễn đường cong ROC
Hình 2.11 Cách tính hiệu năng của mô hình
Hình 2.12 Giao thức RTSP để lấy dữ liệu từ IP camera
Hình 2.13 Quá trình xử lý dữ liệu streaming của DeepStream SDK Hình 2.14 Tối ưu hoá model bằng TensorRT
Hình 2.15 Cấu trúc mạng trước và sau khi tối ưu bằng Layer và Tensor Fusion Hình 2.16 Các mức chính xác của model
Hình 2.17 Hiệu năng của model ResNet-50 ở các mức FP32, FP16 và INT8 Hình 2.18 Mô tả mô hình Triton Serving
Hình 2.19 Mô tả quá trình xử lý dữ liệu của NVIDIA DALI
Hình 2.20 Mô tả quá trình dùng DALI trong Ensemble Model của Triton Serving Hình 3.1 Một số hình ảnh trong tập COCO 2017
Hình 3.2 Một số hình ảnh trong tập Substation Hình 3.3 Một số hình ảnh trong tập Youtube Hình 3.4 Hình ảnh dữ liệu được Augmentation
Hình 3.5 Một số hình ảnh trong tập dữ liệu có đội mũ bảo hộ Hình 3.6 Một số hình ảnh trong tập dữ liệu không đội mũ bảo hộ
Trang 12ix
Hình 3.8 Ngõ vào và ngõ ra của mô hình YOLOv5-m
Hình 3.9 So sánh tốc độ xử lý của mô hình ResNet-50 với các mô hình khác
Hình 3.10 Kết quả huấn luyện của model EfficientDet-D1 (trái) và YOLOv5-m (phải)
Hình 3.11 Kết quả huấn luyện của model ResNet-50
Hình 3.12 Thuật toán phát hiện chuyển động sử dụng CUDA OpenCV Hình 3.13 Quá trình freeze model EfficientDet-D1
Hình 3.14 Quá trình tối ưu hoá mô hình EfficientDet-D1 Hình 3.15 Quá trình tối ưu hoá mô hình YOLOv5-m Hình 3.16 Quá trình tối ưu hoá mô hình ResNet-50
Hình 3.17 Sơ đồ quá trình triển khai mô hình Deep Learning trong hệ thống giám sát Hình 3.18 Quá trình thực thi mô hình Deep Learning trên Server
Hình 3.19 Cấu trúc thư mục chứa các mô hình triển khai trên Triton Serving Hình 3.20 Lệnh dùng để khởi chạy một Triton Serving trên Docker Container Hình 3.21 Tiền xử lý dữ liệu trong DALI Pipeline cho model YOLOv5
Hình 3.22 AI Inference Pipeline cho model YOLOv5-FP16 trên Triton Serving Hình 3.23 Cài đặt Dynamic Batching cho model ResNet-50
Hình 3.24 Tiền xử lý dữ liệu trong DALI Pipeline cho model YOLOv5+ResNet-50 Hình 3.25 AI Inference Pipeline cho model YOLOv5-FP16+ResNet-50 trên Triton
Serving
Hình 3.26 Quá trình thực thi tại Edge Device
Hình 3.27 Chi tiết quá trình giải mã bằng DeepStream và suy luận AI tại Edge Device Hình 3.28 Thuật toán phát hiện người vào/ra khu vực nguy hiểm/an toàn
Hình 3.29 Quá trình giải quyết bài toán phát hiện người không đội mũ bảo hộ Hình 3.30 Sơ đồ toàn bộ hệ thống giám sát của trạm biến áp
Hình 3.31 Sơ đồ liên kết các bảng trong Database
Hình 3.32 Sơ đồ giao tiếp Server-Edge Device qua RabbitMQ
Trang 13x
Hình 3.36 Trang ViewPage của hệ thống giám sát
Hình 3.37 Các bảng dữ liệu trong mini-Database tại Edge Device
Hình 4.1 So sánh kết quả phát hiện chuyển động của mô hình so với thực tế Hình 4.2 Hiệu năng của thuật toán phát hiện chuyển động bằng CUDA OpenCV Hình 4.3 So sánh kết quả nhận diện thực tế của mô hình EfficientDet-D1 (trái) và
Trang 14Bảng 3.5 Danh sách các API cho đối tượng Edge Device
Bảng 3.6 Danh sách các API cho đối tượng Camera, Model và Area
Bảng 4.1 Bảng đánh giá độ chính xác của thuật toán phát hiện chuyển động Bảng 4.2 Kết quả đo hiệu năng của thuật toán nhận diện chuyển động Bảng 4.3 So sánh độ chính xác của các mô hình Object Detection Bảng 4.4 Kết quả đánh giá độ chính xác của các mô hình
Bảng 4.5 Kết quả đánh giá hiệu năng của các mô hình
Bảng 4.6 Kết quả đánh giá hiệu năng của các mô hình ResNet-50
Bảng 4.7 Kết quả hiệu năng của các mô hình triển khai trên Triton Serving Bảng 4.8 Kết quả hiệu năng khi kết hợp 2 mô hình YOLOv5 và ResNet-50 Bảng 4.9 Kết quả hiệu năng của các mô hình khi thực thi tại Edge Device Bảng 5.1 Tổng hợp các mô hình Deep Learning đã sử dụng trong luận văn Bảng 5.2 Tổng hợp các công cụ được sử dụng trong luận văn
Trang 15ROC - The Receiver Operating Characteristic Curve
Trang 161 GIỚI THIỆU ĐỀ TÀI 1.1 Tổng quan đề tài
- Trạm biến áp (TBA) là nơi đặt máy biến áp và các thiết bị phân phối điện khác nhằm tạo nên một hệ thống truyền tải điện năng hoàn chỉnh Trạm biến áp có vai trò rất quan trọng nhằm đảm bảo tính ổn định trong việc cung cấp điện năng đến với các nhà máy, xí nghiệp, bệnh viện, trường học, nhà dân, …Chính vì thế, các TBA thường có công suất lớn lại có rất nhiều thiết bị điện quan trọng và đường dây điện, tủ điện bên trong Do đó, TBA thường rất hay xảy ra các vụ cháy nổ từ các lý do chủ quan cũng như khách quan của con người Vì vậy, làm việc trong môi trường này cần hết sức cẩn thận và cần có những thiết bị bảo hộ nhằm đảm bảo sự an toàn về người cũng như vật chất
- Dù biết rằng, trạm biến áp là một nơi rất có hại cho sức khoẻ của con người cho nên cần hết sức cẩn trọng khi di chuyển ra vào khu vực này Nhưng hiện nay vẫn xảy ra rất nhiều trường hợp người lạ xâm nhập trái phép vào trạm biến áp với mục đích trộm cắp hoặc phá hoại vật tư Ngoài yếu tố con người, thú vật lạ như có chó, mèo, vẫn thường lạc vào các khu vực này và vô tình gây thiệt hại đến các thiết bị, máy móc trong TBA Thế nhưng việc giám sát những trường hợp đột nhập trái phép vào các trạm biến áp vẫn còn được thực hiện chưa được nghiêm ngặt và còn nhiều sự lơ là có thể là do các yếu tố chủ quan của con người Hầu hết các trạm biến áp hiện nay trên cả nước chưa có một hệ thống giám sát thông minh và tự động mà phần lớn dựa vào các lực lượng bảo vệ thay phiên nhau canh gác
- Chính vì những nguy hiểm cho con người cũng như những thiệt hại về cơ sở vật chất có thể xảy ra nếu như có người tự ý ra vào TBA Một hệ thống giám sát và cảnh báo thông minh cần được triển khai để có nâng cao tính an toàn cũng như giảm được công sức cho lực lượng bảo vệ là một điều hết sức cần thiết
1.2 Tình hình nghiên cứu hiện nay
Trang 17Tuy nhiên, vẫn chưa nhiều đề tài nghiên cứu về ứng dụng xử lý ảnh trong việc phát hiện những yếu tố ngoại cảnh tác động trực tiếp đến trạm biến áp như con người, sự cố cháy nổ, …
- Trong những năm gần đây, đề tài về phân tích ảnh thông minh trích xuất từ các video hay IP camera (Intelligent Video Analytics) đang được rất nhiều sự quan tâm vì tính ưu việt của chúng trong việc phát hiện vật thể, phân tích và cảnh báo những tình huống bất thường mà không cần bất kỳ sự giám sát của con người
- Tuy nhiên vẫn có nhiều vấn đề trong việc triển khai hệ thống giám sát như chất lượng ảnh kém, bị ảnh hưởng bởi điều kiện ngoại cảnh như ban ngày, ban đêm sẽ tác động rất nhiều đến độ chính xác của các mô hình phát hiện vật thể Cùng với đó, hạ tầng máy tính để đảm bảo việc xử lý ảnh và tính toán cho một hệ thống nhiều camera hoạt động liên tục cùng một lúc và phải báo động theo thời gian thực là một vấn đề vô cùng khó khăn
1.3 Mục tiêu và nhiệm vụ
- Từ những thông tin và bài học rút ra được từ những nghiên cứu trước đây,
mục tiêu chính của đề tài này là: dựa vào hệ thống các camera an ninh được gắn cố định tại một số vị trí trong trạm biến áp ta xây dựng một hệ thống giám sát để phát hiện người, gửi cảnh báo khi có người vào khu vực nguy hiểm hoặc ra khỏi phạm vi
làm việc cho phép, cảnh báo khi có người không đội mũ bảo hộ - Những nhiệm vụ cần thực hiện bao gồm:
Nhiệm vụ 1: Huấn luyện mô hình Deep Learning (DL) để phát hiện người với
độ chính xác cao trong nhiều điều kiện môi trường khác nhau của trạm biến áp Kết quả phát hiện người có thể được sử dụng cho các bài toán thực tế sau đây:
+ Cảnh báo khi phát hiện người xuất hiện trong trạm biến áp
+ Cảnh báo khi nhận thấy người xuất hiện trong TBA có các hành động vi phạm phạm vi làm việc cho phép hay vô tình đi vào các khu vực nguy hiểm
+ Cảnh báo khi nhận thấy người đang làm việc trong trạm biến áp không đội mũ bảo hộ
Trang 18Nhiệm vụ 2: Tối ưu hoá mô hình DL để đạt được tốc độ tính toán nhanh nhất
với mục đích triển khai trên nhiều hạ tầng phần cứng khác nhau như máy chủ (Server) hoặc các máy tính nhúng (Edge Devices)
Nhiệm vụ 3: Triển khai một hệ thống giám sát có thể phân tích hình ảnh và
xử lý các tính năng cần suy luận AI trên toàn bộ camera trong một trạm biến áp cùng một lúc mà vẫn đảm bảo được tốc độ tính toán gần bằng thời gian thực
2 CƠ SỞ LÝ THUYẾT 2.1 Mô hình Deep Learning
Qua Hình 2.1 ta có thể thấy, EfficientDet đạt được đến 55% COCO AP trong khi hiệu
suất tính toán (FLOPS) thấp hơn nhiều so với các mô hình OD trước đó
Nguồn https://arxiv.org/pdf/1911.09070.pdf
Trang 19- Mô hình EfficientDet được xây dựng trên mạng Deep Learning có tên là EfficientNet [2] đã được nhóm nghiên cứu công bố trước đó.
- Hình 2.2 thể hiện kiến trúc của mạng EfficientDet với 3 phần chính như sau:
Hình 2.2 Cấu trúc mạng của mô hình EfficientDet
+ Khung xương (Backbone) của EfficientDet được tận dụng lại các thông số của một Deep Convolutional Network có tên là EfficientNet Với việc sử dụng một phương pháp Compound Scaling [2] mới giúp việc phân tích đặc trưng những vật thể nhỏ trong khung ảnh trở nên chính xác hơn mà không cần phải dùng ảnh có kích thước lớn hay một mô hình lớn với kiến trúc cực kỳ phức tạp EfficientNet đã chứng minh khả năng trong nhiều ứng dụng; do đó việc sử dụng EfficientNet làm xương sống sẽ giúp EfficientDet học một cách hiệu quả các đặc trưng phức tạp và những vật thể có kích thước nhỏ như người trong trạm biến áp
+ Phần cổ (Neck) của EfficientDet sử dụng một loại mô hình mới có tên là Bi-directional Feature Pyramid Network (Bi-FPN) [1] Bi-FPN có hiệu suất tốt hơn vì có ít tham số và ít FLOPs hơn so với các lớp cổ (Neck Layer) khác như PA-Net [3]hay NAS-FPN [4]
+ Sau khi hình ảnh ngõ vào được trích xuất đặc trưng (Extract Feature) trên các Backbone và Neck Layer, những đặc trưng này sẽ được dự đoán xem đó là vật thể gì và toạ độ của vật thể đó qua Head Layer là một Prediction Network
2.1.2 Mô hình YOLOv5
- EfficientDet được nhận định sẽ làm lu mờ đi model YOLO [5] đã làm mưa
Trang 20nhiên, chỉ 2 tháng sau khi EfficientDet được công bố, YOLOv5 [6] được công bố đã làm mọi người thật sự bất ngờ
- YOLOv5 được phát triển bởi Glenn Jocher trên Ultralytic Pytorch Framework, rất trực quan và tính toán nhanh Cái tên YOLOv5 vẫn còn bị một số tranh cãi vì tác giả của YOLOv5 không phải là người tạo ra các bản YOLO trước đó trên Darknet [5] YOLOv5 được xây dựng hoàn toàn trên Pytorch Sau khi xây dựng lại toàn bộ YOLOv3 [7] từ DarkNet sang Pytorch, tác giả đã có nhiều cải tiến khi thêm vào PA-Net [3] và CSP backbone giúp giảm thông số của mạng, tốc độ tính toán giảm đi đáng kể vả độ chính xác tăng
- Kiến trúc mạng của mô hình YOLOv5 được mô tả ở Hình 2.3 gồm những phần chính như sau:
Hình 2.3 Cấu trúc mạng của mô hình YOLOv5
+ Khung xưng (Backbone) của YOLOv5 là sự kết hợp của 2 loại Deep Convolutional Network có tên là Cross Stage Partial Network (CSP Net) [8] và DarkNet để trở thành một mạng có tên gọi là CSP DarkNet CSP Net giải quyết các vấn đề về thông tin gradient lặp đi lặp lại trong các mạng backbone có quy mô lớn và tích hợp các thay đổi gradient vào bản đồ đặc trưng (feature map), do đó làm giảm đáng kể các thông số của mạng và FLOPS của mô hình, nhờ đó việc sử dụng CSP Net không chỉ đảm bảo tốc độ suy luận và độ chính xác mà còn giảm kích thước mô
Trang 21+ Khác với EfficientDet sử dụng Bi-FPN [1] là Neck Layer thì YOLOv5 sử dụng Path Aggregation Network (PA Net) [3] Tuy không tối ưu về mặt hiệu năng bằng Bi-FPN, PA Net cải thiện việc sử dụng các tín hiệu bản địa hóa chính xác (accurate localization signals) ở các lớp thấp hơn, điều này sẽ giúp nâng cao độ chính xác trong việc xác định vị trí của đối tượng
+ Cuối cùng, phần đầu của YOLOv5 sử dụng một lớp mạng YOLO Nó tạo ra 3 kích thước khác nhau của feature map sau khi trích xuất đặc trưng cho phép mô hình xử lý các đối tượng nhỏ, vừa và lớn Điều này cực kỳ cần thiết đối với các ứng dụng phát hiện người vì mô hình có thể xác định chính xác những người đang đứng ở nhiều vị trí khác nhau (xa hay gần)
2.1.3 Mô hình ResNet-50
- Mạng ResNet-50 là một trong những biến thể của mạng ResNet (Residual Network) [9] một mạng học sâu dùng để phân loại ảnh (Classification Model) được giới thiệu vào năm 2015
- Khi huấn luyện các mạng Neural Network có nhiều lớp tích chấp, một vấn đề thường xuyên xảy ra là Vanishing Gradient [10] Để có thể giải quyết vấn đề này ResNet đưa ra một giải pháp là sử dụng một kết nối “tắt” xuyên qua một hay nhiều layer của mạng Một khối như vậy gọi là một Residual Block [9] như hình 2.4 Cách sử dụng nối tắt này nhằm để bổ sung ngõ vào của block vào đầu ra của layer, việc làm này sẽ tránh cho đạo hàm bằng 0 vì có cộng thêm giá trị đầu vào Chính vì thế sẽ hạn chế được vấn đề Vanishing Gradient
Hình 2.4 Cấu trúc mạng của mô hình ResNet-50
Trang 222.2 Phương pháp đánh giá mô hình Deep Learning 2.2.1 Đánh giá Object Detection Model
Độ chính xác trung bình (mAP)
- Độ chính xác mAP [11] là một độ đo thông dụng để đánh giá các mô hình OD hiện nay Để tìm hiểu về mAP, trước tiên ta cần hiểu một số khái niệm về Precision, Recall và IoU
IoU (Intersection over Union) là tỷ lệ giữa phần giao và phần hợp của vùng
dự đoán và vùng đối tượng thật
+ Area of Union bao gồm diện tích phần hợp của predicted bounding box và ground truth box
- Mỗi một bức ảnh sau khi quá trình suy luận của mô hình Object Detection sẽ nhận được một số predicted bounding box sau khi tính IoU dựa vào các ground-truth
Trang 23- Để xác định liệu dự đoán đó có đúng hay sai ta dựa vào mức ngưỡng (threshold) cho trước Nếu IoU của dự đoán đó lớn hơn hoặc bằng ngưỡng thì đó là một dự đoán đúng và ngược lại là dự đoán sai
True/False - Negative/Positive [12] trong bài toán Object Detection (xét trên
một vật thể hay một lớp dữ liệu)
- True Positive (TP): là một dự đoán đúng khi bounding box của vật thể được dự đoán có IoU lớn hơn hoặc bằng ngưỡng Biểu thị cho số lượng dự đoán đúng của mô hình
- False Positive (FP): là một dự đoán sai khi bounding box của vật thể có IoU bé hơn ngưỡng Biểu thị cho số lượng dự đoán sai của mô hình
- False Negative (FN): trường hợp mà bức ảnh đó có ground-truth (GT) box (tức là có vật thể cần phát hiện) nhưng mô hình lại không đưa ra một predicted box nào Biểu thị cho sự thiếu sót của mô hình
Precision - Recall [12] trong bài toán Object Detection được tính theo công
- Sau đó, tiến hành tính Precision-Recall (với một ngưỡng IoU cố định) cho các predicted box của toàn bộ kết quả dự đoán mà mô hình suy luận được từ tập dữ liệu trên và sắp xếp kết quá theo giá trị giảm dần của confidence score
Trang 24- Từ bảng kết quả đó ta sẽ vẽ đường cong Precision-Recall Từ đường cong Precision-Recall này ta vẽ được đường Interpolated Precision như Hình 2.6
Nguồn https://blogcuabuicaodoanh.files.wordpress.com/2020/02/image-13.png
Hình 2.6 Đồ thị biểu diễn mối quan hệ giữa Precision-Recall
- Thông số Interpolated Precision ( ) [10] được xác định bởi công thức
(2.3)
là giá trị lớn nhất của Precision tại điểm Recall đó ( )
Average Precision (AP) được tính như sau với 11 là số điểm
Interpolated Tuy nhiên, với các bộ dữ liệu mới hiện nay, AP thường không
tính bằng diện tích phần dưới của đường Interpolated Precision
Î
Trang 25để được chỉ số mAP của cả mô hình Trong tập data COCO, AP được tính với 101 điểm Interpolated Precision và sau đó tính AP trung bình với các ngưỡng IoU từ [0.5-0.95]
2.2.2 Đánh giá Classification Model Accuracy
- Accuracy (độ chính xác) [13] là phương pháp đơn giản nhất dùng để đánh giá các Classification Models xem mô hình có tỷ lệ dự đoán đúng cao đến mức nào trong tổng các trường hợp xảy ra Accuracy chính là tỉ lệ giữa tổng các điểm dữ liệu mà mô hình dự đoán đúng và tổng số điểm dữ liệu
Accuracy =correct predictions
total data points (2.5)
- Tuy nhiên phương pháp này có nhược điểm là chỉ cho ta biết phần trăm lượng dữ liệu được phân loại đúng mà không chỉ ra được cụ thể mỗi lớp dữ liệu được phân loại như thế nào, lớp nào được mô hình phân loại đúng nhiều nhất hay lớp nào có dữ liệu bị phân loại sai nhiều nhất
Confusion Matrix [13]
- Với nhược điểm của Accuracy đã nêu ở trên, chúng ta cần có một phương pháp đánh giá khác trực quan hơn về độ chính xác của các lớp dữ liệu Confusion Matrix là một phương pháp có thể giải quyết vấn đề này
- Cũng giống như các khái niệm True/False - Positive/Negative đã giới thiệu ở phần 2.2.1 Confusion Matrix dựa vào các khái niệm này để thể hiện một cách trực quan về thông tin tỉ lệ dự đoán đúng lớp dữ liệu của mô hình, giúp phát hiện các lớp có tỉ lệ dự đoán cao hay thấp
Trang 26Hình 2.7 Confusion Matrix
- Khác với cách định nghĩa của phương pháp đánh giá Object Detection Model, ở phương pháp đánh giá Classification Model, các giá trị True/False – Positive/Negative được định nghĩa như sau:
+ True Positive (TP) là khi một dữ liệu ở lớp Positive được mô hình dự đoán vào đúng lớp Positive
+ False Positive (FP) là khi một dữ liệu ở lớp Negative nhưng được mô hình dự đoán vào lớp Positive (Dự đoán sai)
+ True Negative (TN) là khi một dữ liệu ở lớp Negative được mô hình dự đoán vào đúng lớp Negative
+ False Negative (FN) là khi một dữ liệu ở lớp Positive nhưng được mô hình dự đoán vào lớp Negative (Dự đoán sai)
- Trong đó, True/False thể hiện tính chính xác trong quá trình phân loại của mô hình và Positive/Negative thể hiện các lớp dữ liệu mà mô hình phân loại vào
Precision – Recall
Trang 27Hình 2.8 Cách tính Precision-Recall trên Confusion Matrix
- Cũng như bài toán Object Detection Model, Precision và Recall [13] là hai thông số quan trọng dùng làm thang đo cho độ chính xác của Classification Model Với những thông tin từ Confusion Matrix, chúng ta có cái nhìn trực quan hơn về độ chính xác của mô hình dự vào Precision – Recall
- Precision: trong tổng số các dữ liệu mà mô hình dự đoán là Positive thì có bao nhiêu dữ liệu đúng là của lớp Positive Thể hiện độ chính xác của mô hình khi dự đoán lớp Positive trong toàn bộ dữ liệu
- Recall: cho ta biết có bao nhiêu dữ liệu thực sự thuộc vào lớp Positive được mô hình dự đoán đúng là của lớp Positive Thể hiện độ chính xác của mô hình khi dữ đoán các dữ liệu Positive trong toàn bộ tập dữ liệu Positive
F1-Score
- Một mô hình có Precision và Recall cao cho thấy mô hình thực sự sẽ hoạt động rất tốt Tuy nhiên trong thực tế, giá trị Precision và Recall thường không cân bằng nhau Tuỳ vào những yêu cầu và ứng dụng thực tế mà ta cân nhắc nên ưu tiên Precision hay Recall nhiều hơn
- Để thể hiện sự ưu tiên giữa 2 giá trị Precision và Recall chúng ta thường dùng độ đo F1-score theo công thức sau
𝐹! = (1 + 𝛽") 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 𝑅𝑒𝑐𝑎𝑙𝑙
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 + 𝑅𝑒𝑐𝑎𝑙𝑙 (2.6)
- Tham số 𝛽 là trọng số quyết định mức độ coi trọng Precision hay Recall: + 𝛽 > 1: Recall được ưu tiên hơn
Trang 28+ 𝛽 = 1: Precision và Recall có mức ưu tiên ngang nhau + 𝛽 < 1: Precision được ưu tiên cao hơn
Area Under the Curved (AUC)
- AUC [13] là một chỉ số thể hiện hiệu năng phân loại của mô hình Classification trên toàn bộ giá trị ngưỡng từ [0-1] Với AUC là phần diện tích bên
dưới của đường cong ROC (The Receiver Operating Characteristic Curve) – đường
cong biểu diễn hiệu suất phân loại của mô hình trên các mức ngưỡng khác nhau
Hình 2.9 Cách tính Sensitivity và Specificity trên Confusion Matrix
- Để vẽ đường cong ROC ta cần tính các giá trị sau:
+ True Positive Rate (Senitivity): là độ nhạy của mô hình cho biết khả năng dự đoán đúng của mô hình trong lớp Positive
𝑇𝑃 + 𝐹𝑁 (2.7)
+ False Positive Rate là độ sai của mô hình Ngược lại với giá trị Specificity cho biết mức độ dự đoán chính xác của mô hình cho các dữ liệu thuộc lớp Negative
𝐹𝑃𝑅 = 1 − 𝑆𝑝𝑒𝑐𝑖𝑓𝑖𝑐𝑖𝑡𝑦 (2.8) 𝑆𝑝𝑒𝑐𝑖𝑓𝑖𝑐𝑖𝑡𝑦 = 𝑇𝑁
𝑇𝑁 + 𝐹𝑃 (2.9)
Nguồn https://drive.google.com/uc?id=1BSa0qIWrnWxWj3fqiUo5bNqp0XG4vvde
Trang 29Hình 2.10 Đồ thị biểu diễn đường cong ROC
- Từ đường cong ROC ta có thể tính được độ đo AUC là phần diện tích bên dười đường cong Mô hình có AUC càng lớn thì cho kết quả càng chính xác và ngược lại Chỉ số AUC càng cao cho thấy mô hình dễ phân loại đúng cho các lớp ở Positive và Negative
2.2.3 Phương pháp đánh giá hiệu năng
- Để đánh giá một mô hình Deep Learning có hoạt động tốt hay không, ngoài độ chính xác thì một yếu tố quan trọng không kém đó chính là hiệu năng tính toán của mô hình
- Có hai thông số quan trọng để đánh giá hiệu năng của mô hình:
+ Độ trễ (Latency) là thời gian cần cho quá trình tính toán của một mô hình DL được tính từ lúc nhận dữ liệu đầu vào đến khi ra được kết quả
+ Thông lượng (Throughput) là toàn bộ số lượng ngõ vào được mô hình DL tính toán trong một khoảng thời gian
- Khi tối ưu hoá mô hình Deep Learning, mục tiêu chính là giảm độ trễ của mô hình và tăng thông lượng xử lý Mô hình càng tốt khi có thông lượng xử lý càng cao và độ trễ càng thấp
- Ở đề tài luận văn này, nhiệm vụ của các mô hình DL là xử lý dữ liệu ảnh và trả về kết quả suy luận Do đó số lượng ảnh được xử lý trong một khoảng thời gian chính là Throughput của mô hình và thời gian trung bình để suy luận (Inference time)
Trang 30một ảnh là Latency của mô hình mà chúng ta muốn đánh giá Mà ta cũng đã biết số lượng ảnh được xử lý trong một giây cũng chính là FPS (frame per second)
- Chính vì thế, để đồng bộ với thông số tốc độ của camera cho dễ dàng trong quá trình so sánh và đánh giá, trong luận văn này thông số Throughput của model được tính trên đơn vị FPS và Latency chính là thời gian suy luận có đơn vị là ms
- Cách thức tính toán các thông số hiệu năng của mô hình được thực hiện như Hình 2.11 Đầu tiên, hình ảnh sau khi đã được tiền xử lý (pre-processing) sẽ được gửi (request) từ Client đến Server theo giao thức gRPC Tại Server, Triton Serving có nhiệm vụ nhận ảnh và thực hiện suy luận AI bằng cách đưa hình ảnh đó vào mô hình Object Detection đã được huấn luyện trước đó và trả kết quả về cho Client
- Với giao thức gRPC Unary, tại Client thực hiện gửi tuần tự từng bức ảnh lên Server và đợi kết quả trả về sau đó gửi tiếp ảnh tiếp theo cho đến hết quá trình suy luận Độ trễ của mô hình là khoảng thời gian trung bình mà mô hình DL ở Server thực hiện xong quá trình tính toán của một request
- Vì mô hình này được triển khai tính toán trên GPU RTX 3090 có hiệu suất tính toán rất mạnh mẻ, do đó việc gửi lần lượt từng ảnh đến Server và đợi kết quả sẽ không phản ánh hết được hiệu năng của mô hình Việc ta cần làm là phải tạo ra một tải lượng lớn trong một khoảng thời gian nhất định để có thể khai thác hết hiệu năng của GPU
Trang 31Hình 2.11 Cách tính hiệu năng của mô hình
- Do đó, thay vì chỉ có một Client gửi kết quả, ta sẽ khởi chạy multi-threading nhiều luồng song song để tạo ra nhiều Client và gửi cùng lúc nhiều ảnh lên Server để tạo ra một lượng request liên tục cùng một lúc để GPU hoạt động hết công suất Số lượng Client chạy cùng một lúc còn được gọi là concurrent request (ccu) và số lượng ảnh trong một concurrent (ccu_num_images) ta có thể tuỳ chọn là 100 hay 200 ảnh
- Thời gian tính toán (Inference Time) của mô hình được tính như sau:
Trang 322.3 Giải mã luồng camera
2.3.1 Real Time Streaming Protocol (RTSP)
- RTSP (Real Time Streaming Protocol) [14] – Giao thức truyền thông thời gian thực là một giao thức điều khiển dùng để truyền tải nội dung của các thiết bị đa phương tiện qua các mạng IP RTSP thường được các ứng dụng dùng để giao tiếp với các thiết bị chủ để lấy các media file được yêu cầu như hình ảnh, video hay audio
- Hiện nay, RTSP được sử dụng là giao thức chính trong các hệ thống camera IP Nhờ vào nó, ta có thể xem trực tiếp được hình ảnh từ các camera an ninh để phục vụ cho quá trình giám sát
Nguồn https://fptshop.com.vn/tin-tuc/danh-gia/tat-ca-nhung-gi-ban-can-biet-ve-rtsp
Hình 2.12 Giao thức RTSP để lấy dữ liệu từ IP camera
- Trong đề tài luận văn này, với mục đích xử lý hình ảnh được trích xuất từ các IP Camera, thì RTSP chính là giao thức chính để các ứng dụng trong hệ thống giám sát của chúng ta sử dụng để lấy dữ liệu từ các camera
- Về mã hoá dữ liệu trên đường truyền, thông thường các camera sẽ nén dữ liệu hình ảnh theo 2 chuẩn phổ biến nhất hiện nay là H264 [15] và H265 [16] Các camera khi trả dữ liệu về cho thiết bị Client thông qua giao thức RTSP sẽ tiến hành nén dữ liệu (Encoding), tại thiết bị nhận sẽ tiến hành giãi nén dữ liệu (Decoding) để có thể thu được các hình ảnh và trình chiếu trực tiếp
2.3.2 NVIDIA DeepStream SDK
- DeepStream SDK [17] được phát triển bởi NVIDIA là một bộ công cụ dùng
Trang 33streaming pipeline để xử lý các tín hiệu từ cảm biến và suy luận AI giúp tối ưu hoá được phần mềm đồng thời tăng tốc phần cứng
Nguồn https://developer.nvidia.com/deepstream-sdk
Hình 2.13 Quá trình xử lý dữ liệu streaming của DeepStream SDK
- Chính vì tối ưu hoá được quá trình xử lý tín hiệu streaming nên DeepStream có thể dễ dàng được triển khai ở các máy tính nhúng của NVIDIA hạn chế về tài nguyên phần cứng như Jetson Nano, Jetson Xavier, …
- Trong đề tài luận văn này, ta sẽ tận dụng khả năng xử lý dữ liệu video streaming để giải mã dữ liệu từ các camera thực thi trên Jetson Nano để tối ưu được tài nguyên phần cứng
2.4 Tối ưu hoá mô hình Deep Learning bằng TensorRT 2.4.1 Giới thiệu về TensorRT
- NVIDIA TensorRT [18] là một SDK được tạo ra với mục đích tối ưu hoá các mô hình Deep Learning, nâng cao hiệu năng tính toán cho phần cứng (GPU) Nó có thể giúp các mô hình suy luận kết quả ở các mức chính xác tính toán khác nhau như FP32, FP16, INT8
- TensorRT hỗ trợ đa nền tảng giúp Server có thể quản lý nhiều mô hình mà không bị giới hạn về tài nguyên và bộ nhớ Có thể tối ưu hoá nhiều dạng mô hình Deep Learning khác nhau như TensorRT, TensorFlow, Pytorch, TensorFlow GraphDef, TensorFlow SavedModel, ONNX Runtime, …
Trang 34Nguồn https://developer.nvidia.com/tensorrt
Hình 2.14 Tối ưu hoá model bằng TensorRT
- TensorRT có các tính năng [19] nổi trội nhằm mục đích tối ưu hiệu năng thực thi của các mô hình Deep Learning thể hiện ở Hình 2.14:
+ Reduce Mixed Precision (Giảm độ chính xác hỗn hợp)
+ Layer and Tensor Fusion (Hợp nhất các tensor và lớp của model) + Kernel Auto-turning (Tự điều chỉnh các lớp dữ liệu cho phù hợp) + Dynamic Tensor Memory (Điều chỉnh dung lượng bộ nhớ) + Mutil-Stream Execution (Xử lý song song nhiều luồng) + Time Fusion (Tối ưu hoá tính toán của các Kernel)
- Hai chức năng chính ảnh hưởng đến cấu trúc và trọng số của các mô hình Deep Learning sau khi tối ưu là Reduce Mixed Precision và Layer Tensor Fusion
2.4.2 Layer Tensor Fusion
- Nhiệm vụ chính của tính năng Layer Tensor Fusion [19] [20] là phân tích cấu trúc của các mạng Neural Network và tìm kiếm những cấu trúc mạng nào có thể thực hiện tối ưu hoá TensorRT sẽ tái cấu trúc lại các lớp mạng này để quá trình tính toán được nhanh và hiệu quả hơn mà không làm thay đổi kết quả trính toán cơ bản
Trang 35lệnh tính toán này đều thực hiện rất nhanh bằng GPU và các nhân CUDA (CUDA Cores) [21] nhưng lại phải tốn thời gian đọc và ghi dữ liệu vào nhân Tensor (Tensor Cores) [21] ở mỗi lớp tính toán
- TensorRT sẽ dùng phương pháp Tensor Fusion để kết hợp các kernel theo chiều dọc và tính toán tuần tự nhau Việc làm này sẽ làm giảm việc khởi chạy nhân CUDA nhiều lần và tránh luôn việc đọc ghi dữ liệu giữa các lớp Tensor
Nguồn http://www.serc.iisc.ac.in/serc_web/wp-content/uploads/2021/04/TENSORRT.pdf
Hình 2.15 Cấu trúc mạng trước và sau khi tối ưu bằng Layer và Tensor Fusion
- Hình 2.14 thể hiện quá trình tái cấu trúc lại các layer có thể tối ưu hoá của một mạng Neural Network, các lớp Convolutional, Bias và ReLU được kết hợp lại thành một kernel duy nhất gọi là CBR Sau đó thay vì thực thi 3 phép tính cho 3 layer ta chỉ cần tính một lần duy nhất cho kernel CBR và có cùng một kết quả
2.4.3 Reduce Mixed Precision
- Các mạng Neural Network thường được huấn luyện với độ chính xác của các trọng số là 32-bit hoặc 64-bit để giúp cho quá trình học của mô hình bằng thuật toán lan truyền ngược (Back-Propagation) [22] được tốt hơn Tuy nhiên việc tính toán trong quá trình ứng dụng các mạng này vào thực tế sẽ mất nhiều thời gian vì tầm giá trị lớn Trong khi tính toán thực tế (không huấn luyện) thì Back-Propagation là không cần thiết
Trang 36Nguồn http://www.serc.iisc.ac.in/serc_web/wp-content/uploads/2021/04/TENSORRT.pdf
Hình 2.16 Các mức chính xác của model
- Do đó, việc sử dụng một mô hình với độ chính xác tính toán của các trọng số thấp hơn như FP32, FP16 hay INT8 là cần thiết để dung lượng của mô hình nhẹ hơn, quá trình tính toán nhanh hơn nhiều lần Quá trình chuyển đổi độ chính xác của mô hình từ FP32 sang FP16 hay INT8 gọi là quantization [18] [19]
Nguồn http://www.serc.iisc.ac.in/serc_web/wp-content/uploads/2021/04/TENSORRT.pdf
Hình 2.17 Hiệu năng của model ResNet-50 ở các mức FP32, FP16 và INT8
- Tuy nhiên, việc chuyển đổi mức độ chính xác của mô hình sẽ làm thông tin trọng số của mô hình mất mát dẫn tới độ chính xác của mô hình sẽ giảm đi so với mô hình gốc Ngược lại, đánh đổi của việc giảm độ chính xác thì hiệu năng tính toán của mô hình sẽ tăng đáng kể như Hình 2.17
Trang 372.5 Nền tảng triển khai mô hình Deep Learning trên Server 2.5.1 Triton Serving
- Có tên gọi đầy đủ là NVIDIA Triton Inference Server [23] là một bộ công cụ mã nguồn mở được phát triển bởi NVIDIA dùng để triển khai (deploy) các mô hình Deep Learning lên môi trường production (Server) và giúp các mô hình tương thích cao với các phần cứng của họ
Nguồn https://developer.nvidia.com/nvidia-triton-inference-server
Hình 2.18 Mô tả mô hình Triton Serving
- So với các Inference Server khác hiện nay, Triton Serving có rất nhiều ưu điểm như:
+ Hỗ trợ đa nền tảng (Support Multiple Frameworks): Triton Serving cho phép các nhà phát triển có thể triển khai nhiều loại mô hình AI khác nhau, được đào tạo trên nhiều framework khác nhau như TensorFlow, NVIDIA TensorRT [18],
Trang 38Pytorch, ONNX Runtime, … Ngoài ra, ta có thể triển khai Triton Serving ở môi trường khác nhau như tại máy cục bộ, đám mây hoặc các thiết bị biên (Edge Devices) + Hiệu năng suy luận cao (High-Performance Inference): do Triton Serving được xây dựng bởi NVIDIA-một nhà sản xuất phần cứng (GPU) dành cho các nghiên cứu và ứng dụng AI lớn nhất hiện nay Chính vì thế độ tối ưu phần cứng của Triton Serving là rất tốt giúp cho việc tính toán trở nên nhanh hơn và tiết kiệm tài nguyên hơn do đó rất thích hợp cho các ứng dụng về Streaming Inference
+ Việc triển khai các mô hình lên Triton Serving rất dễ dàng và nhanh chóng khi hiện nay nó được hỗ trợ dưới dạng Docker Container
- Triton Serving có nhiều tính năng hữu ích cho quá trình triển khai một sản phẩm AI như:
+ Có thể tải lên cùng lúc nhiều model AI khác nhau
+ Hộ trợ các chuẩn giao tiếp tốt nhất hiện nay như REST API, gRPC + Có thể kết hợp suy luận nối tiếp nhiều model với nhau bằng tính năng Ensemble Models [24] và Ensemble Scheduler [24]
+ Hỗ trợ Dynamic Batching giúp tối ưu tài nguyên tính toán
2.5.2 DALI Triton Backend
- NVIDIA DALI (Data Loading Library) [25] là một thư viện được NVIDIA xây dựng với mục đích tăng tốc quá trình tiền xử lý dữ liệu đầu vào của các ứng dụng có sử dụng mô hình Deep Learning DALI có thể thực thi ở nhiều phần cứng khác nhau như CPU hoặc GPU
Nguồn https://developer.nvidia.com/blog/accelerating-inference-with-triton-inference-server-and-dali
Trang 39- Vì có thể thực thi trên GPU nên nhờ vào DALI việc xử lý dữ liệu ngõ vào của các mô hình sẽ nhanh hơn và ít tốn tài nguyên hơn so với các phương pháp xử lý dữ liệu truyền thống Ta hoàn toàn có thể kết hợp NVIDIA DALI với Triton Serving để tối ưu hoá quá trình suy luận AI, giảm độ trễ khi phải tiền xử lý dữ liệu đặc biệt là dữ liệu ảnh
- Kết hợp với tính năng Ensemble Models [26], ta sẽ dễ dàng xây dựng một AI Inference Pipeline trên Triton Serving giúp việc triển khai các ứng dụng AI có thể diễn ra một cách dễ dàng hơn
Nguồn https://developer.nvidia.com/blog/accelerating-inference-with-triton-inference-server-and-dali
Hình 2.20 Mô tả quá trình dùng DALI trong Ensemble Model của Triton Serving
3 QUÁ TRÌNH THỰC HIỆN 3.1 Ý tưởng thực hiện đề tài
3.1.1 Giải quyết các bài toán trong trạm biến áp
- Với mục tiêu ban đầu là dựa vào hệ thống các camera giám sát được lắp đặt sẵn để giải quyết các bài toán thực tế trong trạm biến áp như: phát hiện người đột nhập vào trạm, phát hiện người di chuyển vào vùng nguy hiểm (không được phép), phát hiện người không đội mũ bảo hộ chuyên dụng Nhận thấy điểm chung và cũng là vấn đề quan trọng để giải quyết 3 bài toán trên là cần phải phát hiện được người dựa vào hình ảnh trích xuất từ camera
- Chính vì thế, cần phải huấn luyện một mô hình học sâu (Deep Learning Model) có khả năng nhận diện vật thể hay còn gọi là mô hình nhận diện vật thể (Object Detection Model) để nhận diện chính xác người trong nhiều trường hợp và
Trang 40trong điều kiện ngoại cảnh khác nhau Ở phần 3.2 sẽ trình bày các huấn luyện và đánh giá độ chính xác của các mô hình khác nhau để tìm ra một mô hình thích hợp nhất
3.1.2 Giải quyết bài toán tốc độ xử lý
- Qua quá trình khảo sát thực tế trong các Trạm Biến Áp, số lượng camera được lắp đặt sẵn trong trạm biến áp tầm khoảng từ 15-20 camera Nếu giả sử mỗi camera có tốc độ trung bình khoảng 25 FPS (frame per second) thì số lượng ảnh cần phải xử lý AI trong một giây là 500 frames, đây là một số lượng ảnh rất lớn cần được xử lý và chưa tính đến các tác vụ khác Chính vì thế để đảm bảo một hệ thống 20 camera có thể suy luận AI chính xác và phải duy trì được tốc độ báo động real-time là một bài toán cực kỳ khó khăn và cần phải có một số cân nhắc và đánh đổi
- Đầu tiên cần phải có một máy chủ (Server) đủ mạnh để có thể xử lý một lúc nhiều việc như: decoding luồng camera, xử lý ảnh, suy luận AI và lưu trữ dữ liệu, … Việc xử lý quá nhiều công việc sẽ ảnh hưởng đến hiệu năng của Server cũng như không đảm bảo được độ ổn định của hệ thống Trong khi hiện nay, có rất nhiều máy tính nhúng có thể giải quyết các tác vụ xử lý ảnh rất tốt và giá thành rẻ Chính vì thế, nhằm giảm tải cho Server, đề tài luận văn đề xuất một hệ thống xử lý AI cho các camera kết hợp giữa Cloud Computing và Edge Computing Chi tiết sẽ được trình bày rõ hơn ở phần 3.4
- Chưa dừng ở đó, với một khối lượng xử lý rất lớn đòi hỏi thời gian suy luận của DL Model cần phải rất nhanh Tuy nhiên độ chính xác của các DL model tỷ lệ thuận với độ phức tạp của model đó, đồng nghĩa tỷ lệ nghịch với tốc độ xử lý Do đó, một mô hình có độ chính xác càng cao cần có nhiều thời gian xử lý và điều này là không phù hợp cho các bài toán cần tốc độ xử lý nhanh như camera Để giải quyết bài toán này ta cần phải tối ưu hoá các mô hình DL đã huấn luyện để có thể tương thích tốt với phần cứng nhằm tăng tốc độ xử lý và vẫn duy trì được độ chính xác ở mức chấp nhận được Đồng thời cần có một nền tảng để triển khai các mô hình DL