GIỚI THIỆU ĐỀ TÀI
Tổng quan đề tài
Trạm biến áp (TBA) là trung tâm quan trọng để lắp đặt máy biến áp và thiết bị phân phối điện, đảm bảo hệ thống truyền tải điện năng hoạt động hiệu quả TBA giữ vai trò then chốt trong việc cung cấp điện ổn định cho các cơ sở như nhà máy, bệnh viện, trường học và hộ gia đình Với công suất lớn và nhiều thiết bị điện, TBA tiềm ẩn nguy cơ cháy nổ do nhiều nguyên nhân khác nhau Do đó, việc làm việc trong môi trường TBA đòi hỏi sự cẩn trọng cao và sử dụng thiết bị bảo hộ để đảm bảo an toàn cho con người và tài sản.
Trạm biến áp là nơi tiềm ẩn nhiều nguy cơ cho sức khỏe con người, do đó cần cẩn trọng khi tiếp cận Tuy nhiên, tình trạng xâm nhập trái phép vào các trạm biến áp để trộm cắp hoặc phá hoại vẫn diễn ra phổ biến Ngoài con người, động vật như chó, mèo cũng thường lạc vào khu vực này, gây thiệt hại cho thiết bị Việc giám sát các trường hợp đột nhập chưa được thực hiện nghiêm ngặt, chủ yếu do yếu tố chủ quan Hầu hết các trạm biến áp trên toàn quốc chưa có hệ thống giám sát thông minh, mà chủ yếu dựa vào lực lượng bảo vệ canh gác.
Để đảm bảo an toàn cho con người và bảo vệ tài sản tại trạm biến áp (TBA), việc triển khai một hệ thống giám sát và cảnh báo thông minh là rất cần thiết Hệ thống này không chỉ nâng cao tính an toàn mà còn giúp giảm bớt gánh nặng cho lực lượng bảo vệ.
Tình hình nghiên cứu hiện nay
Mặc dù công nghệ xử lý ảnh đã có nhiều ứng dụng trong các lĩnh vực khác nhau, nhưng vẫn còn hạn chế trong việc nghiên cứu và phát triển các giải pháp phát hiện yếu tố ngoại cảnh ảnh hưởng đến trạm biến áp, như con người và sự cố cháy nổ.
Trong những năm gần đây, phân tích ảnh thông minh từ video và camera IP (Intelligent Video Analytics) đã thu hút sự quan tâm lớn nhờ khả năng phát hiện vật thể và phân tích các tình huống bất thường mà không cần giám sát con người Tính ưu việt của công nghệ này giúp nâng cao hiệu quả trong việc cảnh báo và quản lý an ninh.
Việc triển khai hệ thống giám sát gặp nhiều thách thức, bao gồm chất lượng ảnh kém và sự ảnh hưởng của điều kiện ngoại cảnh như ánh sáng ban ngày và ban đêm, điều này làm giảm độ chính xác của các mô hình phát hiện vật thể Hơn nữa, hạ tầng máy tính cần thiết để xử lý ảnh và tính toán cho nhiều camera hoạt động đồng thời, đồng thời đảm bảo khả năng báo động theo thời gian thực, là một vấn đề rất khó khăn.
Mục tiêu và nhiệm vụ
Dựa trên các nghiên cứu trước đây, mục tiêu của đề tài này là phát triển một hệ thống giám sát tại trạm biến áp bằng cách sử dụng các camera an ninh cố định Hệ thống sẽ tự động phát hiện sự hiện diện của người, gửi cảnh báo khi có người xâm nhập vào khu vực nguy hiểm hoặc ra ngoài phạm vi làm việc cho phép, cũng như cảnh báo khi người lao động không đội mũ bảo hộ.
- Những nhiệm vụ cần thực hiện bao gồm:
Nhiệm vụ đầu tiên là huấn luyện mô hình Deep Learning (DL) nhằm 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 tại 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:
Khi phát hiện người xuất hiện trong trạm biến áp (TBA), cần cảnh báo ngay lập tức về các hành động vi phạm phạm vi làm việc cho phép Việc vô tình đi vào các khu vực nguy hiểm trong TBA có thể gây ra những rủi ro nghiêm trọng Hãy luôn chú ý và đảm bảo an toàn cho mọi người xung quanh.
+ 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ộ
Nhiệm vụ 2 là tối ưu hóa mô hình Deep Learning (DL) nhằm đạt tốc độ tính toán nhanh nhất, phục vụ cho việc triển khai trên nhiều loại hạ tầng phần cứng khác nhau, bao gồm máy chủ (Server) và các thiết bị nhúng (Edge Devices).
Nhiệm vụ 3 là triển khai hệ thống giám sát có khả năng phân tích hình ảnh và xử lý các tính năng suy luận AI trên toàn bộ camera tại một trạm biến áp đồng thời, đồng thời đảm bảo tốc độ tính toán gần như thời gian thực.
CƠ SỞ LÝ THUYẾT
Mô hình Deep Learning
- Mô hình EfficientDet [1] là một mô hình Object Detection (OD) được giới thiệu bởi Google Brain Team vào tháng 7 năm 2020
Mô hình EfficientDet nổi bật với độ chính xác cao và thời gian tính toán ngắn hơn so với các mô hình phát hiện đối tượng (OD) trước đây Như thể hiện trong Hình 2.1, EfficientDet đạt được 55% COCO AP, trong khi hiệu suất tính toán (FLOPS) của nó thấp hơn đáng kể so với các mô hình OD đã công bố trước đó.
Nguồn https://arxiv.org/pdf/1911.09070.pdf !
- 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 của EfficientDet được xây dựng dựa trên EfficientNet, một Deep Convolutional Network, với phương pháp Compound Scaling mới giúp cải thiện độ chính xác trong việc phân tích các đặc trưng của vật thể nhỏ mà không cần ảnh lớn hay mô hình phức tạp EfficientNet đã chứng minh hiệu quả trong nhiều ứng dụng, do đó việc áp dụng nó làm xương sống cho EfficientDet giúp mô hình học được các đặc trưng phức tạp và nhận diện vật thể nhỏ như người trong trạm biến áp một cách hiệu quả.
The neck of EfficientDet employs a novel model called the Bi-directional Feature Pyramid Network (Bi-FPN), which demonstrates superior performance due to its reduced number of parameters and lower FLOPs compared to other neck layers like PA-Net and NAS-FPN.
Sau khi trích xuất đặc trưng hình ảnh ngõ vào trên các lớp Backbone và Neck, các đặc trưng này sẽ được dự đoán về loại vật thể và tọa độ của nó thông qua lớp Head, được gọi là Prediction Network.
EfficientDet được dự đoán sẽ vượt trội hơn so với mô hình YOLO, vốn đã rất nổi tiếng trong lĩnh vực nhận diện đối tượng Chỉ sau hai tháng kể từ khi EfficientDet ra mắt, YOLOv5 đã được công bố và gây bất ngờ lớn cho cộng đồng công nghệ.
YOLOv5, được phát triển bởi Glenn Jocher trên nền tảng Ultralytic Pytorch, nổi bật với tính trực quan và khả năng tính toán nhanh Mặc dù tên gọi YOLOv5 gây tranh cãi vì không phải do người sáng tạo các phiên bản YOLO trước đó trên Darknet phát triển, nhưng nó được xây dựng hoàn toàn trên Pytorch Sau khi chuyển đổi thành công YOLOv3 từ DarkNet sang Pytorch, tác giả đã thực hiện nhiều cải tiến, bao gồm việc tích hợp PA-Net và CSP backbone, giúp giảm số lượng tham số của mạng, tăng tốc độ tính toán và cải thiện độ chính xác.
- 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 kết hợp hai loại Deep Convolutional Network là Cross Stage Partial Network (CSP Net) và DarkNet, tạo thành mạng CSP DarkNet CSP Net giải quyết vấn đề thông tin gradient lặp lại trong các mạng backbone lớn, tích hợp các thay đổi gradient vào bản đồ đặc trưng, giúp giảm đáng kể số lượng tham số và FLOPS của mô hì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ô hình.
Khác với EfficientDet sử dụng Bi-FPN làm lớp cổ (Neck Layer), YOLOv5 áp dụng mạng tổng hợp đường dẫn (Path Aggregation Network - PA Net) Mặc dù không tối ưu về hiệu suất như Bi-FPN, PA Net cải thiện khả năng sử dụng các tín hiệu định vị chính xác ở các lớp thấp hơn, từ đó 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
Mô hình này tạo ra ba kích thước khác nhau của feature map, cho phép xử lý hiệu quả các đối tượng nhỏ, vừa và lớn Điều này rất quan trọng trong các ứng dụng phát hiện người, vì nó giúp mô hình xác định chính xác vị trí của người ở khoảng cách khác nhau, từ xa đến gần.
- 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 mạng Neural Network nhiều lớp, vấn đề Vanishing Gradient thường xảy ra ResNet đã giải quyết vấn đề này bằng cách sử dụng kết nối “tắt” qua một hoặc nhiều lớp của mạng, được gọi là Residual Block Kết nối này bổ sung ngõ vào của block vào đầu ra của lớp, giúp tránh tình trạng đạo hàm bằng 0 nhờ vào việc cộng thêm giá trị đầu vào, từ đó hạn chế vấn đề Vanishing Gradient.
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
Nguồn https://blogcuabuicaodoanh.files.wordpress.com/2020/02/image.png
Hình 2.5 Công thức tính IoU
+ Area of Overlap là diện tích vùng giao nhau giữa bounding box mà mô hình dự đoán được (predicted bounding box) và phần bounding box đúng (ground-truth box)
+ Area of Union bao gồm diện tích phần hợp của predicted bounding box và ground truth box
Sau khi mô hình Object Detection hoàn tất quá trình suy luận, mỗi bức ảnh sẽ nhận được một số bounding box dự đoán, được xác định thông qua việc tính toán chỉ số IoU dựa trên các ground-truth.
Để đánh giá tính chính xác của dự đoán, chúng ta sử dụng một mức ngưỡng (threshold) đã được xác định trước Nếu chỉ số IoU của dự đoán đạt hoặc vượt qua ngưỡng này, thì được coi là một dự đoán đúng; ngược lại, nếu thấp hơn ngưỡng, đó là một 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à trường hợp dự đoán chính xác khi bounding box của đối tượng có IoU lớn hơn hoặc bằng ngưỡng quy định Điều này thể hiện số lượng dự đoán đúng mà mô hình đạt được.
False Positive (FP) là khái niệm chỉ những dự đoán sai khi bounding box của vật thể có chỉ số IoU thấp hơn ngưỡng quy định Điều này thể hiện số lượng dự đoán không chính xác của mô hình.
False Negative (FN) là trường hợp khi một 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 không đưa ra bất kỳ predicted box nào Điều này thể hiện sự thiếu sót trong khả năng phát hiện của mô hình.
Precision - Recall [12] trong bài toán Object Detection được tính theo công thức như sau:
- Precision thể hiện cho độ chính xác của mô hình Object Detection
- Recall thể hiện cho độ tốt của khả năng phát hiện vật thể trong mô hình Object Detection
Khi đánh giá mô hình phát hiện đối tượng (Object Detection), chúng ta sử dụng tập dữ liệu đánh giá đã được gán nhãn trước (Validation dataset) với các hộp GT xác định Sau khi thực hiện dự đoán trên tập dữ liệu này, mỗi hộp dự đoán sẽ đi kèm với một chỉ số confidence, phản ánh độ chính xác của mô hình trong việc nhận diện vật thể.
Tiến hành tính toán Precision-Recall với ngưỡng IoU cố định cho các hộp dự đoán từ kết quả mà mô hình đã suy luận từ tập dữ liệu, sau đó sắp xếp kết quả theo thứ tự giảm dần của điểm confidence score.
- 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 đó ( )
Độ chính xác trung bình (AP) được tính toán bằng cách sử dụng 11 điểm Interpolated Tuy nhiên, với các bộ dữ liệu hiện đại, AP thường không được xác định bằng diện tích dưới đường Interpolated Precision.
Mean Average Precision (mAP) interp
Để tính chỉ số mAP cho toàn bộ mô hình trong tập dữ liệu COCO, AP được xác định bằng 101 điểm Precision nội suy Sau đó, AP trung bình được tính với các ngưỡng IoU trong khoảng từ 0.5 đến 0.95.
Độ chính xác (accuracy) là phương pháp đơn giản nhất để đánh giá các mô hình phân loại, cho thấy tỷ lệ dự đoán đúng của mô hình trong tổng số trường hợp Nó được tính bằng tỷ lệ giữa số lượng dữ liệu mà mô hình dự đoán đúng và tổng số dữ liệu.
Accuracy =correct predictions total data points (2.5)
Phương pháp này có nhược điểm là chỉ cung cấp phần trăm dữ liệu được phân loại chính xác, mà không chỉ rõ cách phân loại từng lớp dữ liệu cụ thể Điều này dẫn đến việc không biết lớp nào được mô hình phân loại đúng nhiều nhất và lớp nào có tỷ lệ phân loại sai cao nhất.
Để khắc phục nhược điểm của Accuracy trong việc đánh giá độ chính xác của các lớp dữ liệu, chúng ta cần áp dụng một phương pháp trực quan hơn Confusion Matrix là một giải pháp hiệu quả cho vấn đề này, giúp chúng ta phân tích và hiểu rõ hơn về độ chính xác của các lớp dữ liệu.
Confusion Matrix sử dụng các khái niệm True/False và Positive/Negative để trực quan hóa tỷ lệ dự đoán chính xác của mô hình Điều này giúp xác định các lớp dữ liệu có tỷ lệ dự đoán cao hoặc thấp, từ đó hỗ trợ trong việc cải thiện hiệu suất của mô hình.
Khác với phương pháp đánh giá mô hình phát hiện đối tượng (Object Detection Model), phương pháp đánh giá mô hình phân loại (Classification Model) định nghĩa các giá trị True/False – Positive/Negative theo cách riêng biệt.
+ 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 mô hình phân loại, True/False phản ánh độ chính xác của quá trình phân loại, trong khi Positive/Negative đại diện cho các lớp dữ liệu mà mô hình phân loại vào.
Hình 2.8 Cách tính Precision-Recall trên Confusion Matrix!
Tối ưu hoá mô hình Deep Learning bằng TensorRT
NVIDIA TensorRT là một bộ công cụ phát triển phần mềm (SDK) được thiết kế để tối ưu hóa các mô hình Deep Learning, nhằm nâng cao hiệu suất tính toán trên phần cứng GPU Nó hỗ trợ các mô hình suy luận với nhiều mức độ chính xác khác nhau, bao gồm FP32, FP16 và INT8.
TensorRT hỗ trợ đa nền tảng, cho phép server quản lý nhiều mô hình mà không bị hạn chế về tài nguyên và bộ nhớ Nó có khả năng tối ưu hóa nhiều loại mô hình Deep Learning khác nhau, bao gồm TensorRT, TensorFlow, Pytorch, TensorFlow GraphDef, TensorFlow SavedModel, và ONNX Runtime.
Nguồ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:
To enhance model performance, several techniques can be employed, including reducing mixed precision for improved efficiency, implementing layer and tensor fusion to streamline computations, and utilizing kernel auto-tuning for optimal data layer adjustments Additionally, dynamic tensor memory can be adjusted to optimize memory usage, while multi-stream execution allows for parallel processing of multiple streams Finally, time fusion optimizes the computation of kernels, further boosting overall performance.
Two key functions that impact the structure and weights of optimized Deep Learning models are Reduce Mixed Precision and Layer Tensor Fusion.
Tính năng Layer Tensor Fusion có nhiệm vụ phân tích cấu trúc của các mạng Neural Network nhằm tìm kiếm các cấu trúc có thể tối ưu hóa TensorRT sẽ tái cấu trúc các lớp mạng để tăng tốc độ và hiệu quả tính toán mà không làm thay đổi kết quả Quá trình này thực hiện nhanh chóng nhờ vào GPU và các nhân CUDA, tuy nhiên, việc đọc và ghi dữ liệu vào các nhân Tensor vẫn tốn thời gian ở 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à thực hiện tính toán tuần tự Cách tiếp cận này giúp giảm số lần khởi chạy nhân CUDA và ngăn chặn việc đọc ghi dữ liệu giữa các lớp Tensor, từ đó tối ưu hóa hiệu suất.
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 minh họa quá trình tái cấu trúc các lớp có thể tối ưu hóa trong mạng Neural Network, trong đó các lớp Convolutional, Bias và ReLU được kết hợp thành một kernel duy nhất gọi là CBR Thay vì thực hiện ba phép tính cho ba lớp riêng biệt, giờ đây chúng ta chỉ cần tính một lần duy nhất cho kernel CBR mà vẫn đạt được kết quả tương tự.
Các mạng Neural Network thường sử dụng trọng số 32-bit hoặc 64-bit để cải thiện độ chính xác trong quá trình huấn luyện bằng thuật toán lan truyền ngược (Back-Propagation) Tuy nhiên, việc tính toán khi ứng dụng thực tế sẽ tốn nhiều thời gian do giá trị lớn của trọng số Trong giai đoạn tính toán thực tế, thuật toán Back-Propagation không còn cần thiết.
Nguồ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
Việc sử dụng mô hình với độ chính xác tính toán thấp như FP32, FP16 hoặc INT8 là cần thiết để giảm dung lượng mô hình và tăng tốc độ tính toán Quá trình chuyển đổi độ chính xác từ FP32 sang FP16 hay INT8 được gọi là quantization.
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
Việc chuyển đổi mức độ chính xác của mô hình có thể dẫn đến mất mát thông tin trọng số, gây giảm độ chính xác so với mô hình gốc Tuy nhiên, sự đánh đổi này mang lại hiệu năng tính toán cao hơn đáng kể, như thể hiện trong Hình 2.17.
Nền tảng triển khai mô hình Deep Learning trên Server
NVIDIA Triton Inference Server là một công cụ mã nguồn mở do NVIDIA phát triển, nhằm triển khai các mô hình Deep Learning lên môi trường sản xuất Công cụ này giúp tối ưu hóa sự tương thích của các mô hình với phần cứng của NVIDIA, mang lại hiệu suất cao trong việc xử lý và triển khai AI.
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ư:
Triton Serving hỗ trợ đa nền tảng, cho phép các nhà phát triển triển khai nhiều loại mô hình AI khác nhau, được đào tạo trên nhiều framework như TensorFlow và NVIDIA TensorRT.
Triton Serving có thể được triển khai trong nhiều môi trường khác nhau, bao gồm máy cục bộ, đám mây và các thiết bị biên (Edge Devices), cùng với sự hỗ trợ của Pytorch và ONNX Runtime.
Triton Serving, được phát triển bởi NVIDIA, mang lại hiệu năng suy luận cao nhờ vào tối ưu hóa phần cứng GPU, phục vụ cho các nghiên cứu và ứng dụng AI lớn Điều này giúp tăng tốc độ tính toán và tiết kiệm tài nguyên, làm cho Triton Serving trở thành lựa chọn lý tưởng cho các ứng dụng 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ư:
Bạn có thể tải lên nhiều mô hình AI cùng lúc và tận dụng các chuẩn giao tiếp hiện đại như REST API và gRPC Hệ thống cũng hỗ trợ tính năng kết hợp suy luận nối tiếp giữa các mô hình thông qua Ensemble Models và Ensemble Scheduler, mang lại hiệu quả cao trong việc xử lý dữ liệu.
+ Hỗ trợ Dynamic Batching giúp tối ưu tài nguyên tính toán
NVIDIA DALI (Data Loading Library) là thư viện do NVIDIA phát triển nhằm tối ưu hóa quy trình tiền xử lý dữ liệu cho các ứng dụng sử dụng mô hình Deep Learning Thư viện này có khả năng hoạt động trên nhiều loại phần cứng khác nhau, bao gồm cả CPU và GPU.
Nguồn https://developer.nvidia.com/blog/accelerating-inference-with-triton-inference-server-and-dali
NVIDIA DALI cho phép xử lý dữ liệu ngõ vào cho các mô hình nhanh hơn và tiết kiệm tài nguyên hơn nhờ khả năng thực thi trên GPU Bằng cách kết hợp DALI với Triton Serving, chúng ta có thể tối ưu hóa quá trình suy luận AI, giảm độ trễ trong việc 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
QUÁ TRÌNH THỰC HIỆN
Ý 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
Mục tiêu ban đầu của dự án là sử dụng hệ thống camera giám sát đã được lắp đặt để giải quyết các vấn đề thực tế tại trạm biến áp, bao gồm việc phát hiện người xâm nhập, người di chuyển vào khu vực nguy hiểm và người không đội mũ bảo hộ Ba vấn đề này đều có điểm chung quan trọng là cần phát hiện người thông qua hình ảnh trích xuất từ camera.
Để đạt được khả năng nhận diện chính xác người trong nhiều tình huống và điều kiện ngoại cảnh khác nhau, việc huấn luyện một mô hình học sâu (Deep Learning Model) chuyên về nhận diện vật thể (Object Detection Model) là rất cần thiết Phần 3.2 sẽ trình bày quy trình huấn luyện và đánh giá độ chính xác của các mô hình khác nhau nhằm tìm ra mô hình tối ưu nhất.
3.1.2.!Giải quyết bài toán tốc độ xử lý
Trong quá trình khảo sát tại các Trạm Biến Áp, mỗi trạm thường được trang bị từ 15-20 camera Với tốc độ ghi hình trung bình khoảng 25 FPS, số lượng khung hình cần xử lý AI trong mỗi giây lên đến 500 frames, tạo ra một khối lượng dữ liệu rất lớn Điều này đặt ra thách thức lớn trong việc đảm bảo hệ thống 20 camera có khả năng suy luận AI chính xác và duy trì tốc độ cảnh báo real-time Do đó, việc tìm ra giải pháp hợp lý với những cân nhắc và đánh đổi là vô cùng cần thiết.
Để xây dựng một hệ thống xử lý AI hiệu quả cho camera, cần một máy chủ mạnh mẽ để xử lý đồng thời nhiều tác vụ như giải mã luồng camera, xử lý ảnh, suy luận AI và lưu trữ dữ liệu Tuy nhiên, việc này có thể ảnh hưởng đến hiệu suất và độ ổn định của máy chủ Hiện nay, nhiều máy tính nhúng có khả năng xử lý ảnh tốt với chi phí thấp, do đó, để giảm tải cho máy chủ, đề tài luận văn đề xuất một hệ thống kết hợp giữa Cloud Computing và Edge Computing Chi tiết sẽ được trình bày ở phần 3.4.
Để giải quyết bài toán xử lý nhanh trong các mô hình học sâu (DL Model), cần tối ưu hóa các mô hình đã huấn luyện nhằm tăng tốc độ xử lý mà vẫn duy trì độ chính xác ở mức chấp nhận được Độ chính xác của các mô hình DL tỷ lệ thuận với độ phức tạp, dẫn đến thời gian suy luận lâu hơn, điều này không phù hợp với các ứng dụng cần tốc độ cao như camera Do đó, việc tối ưu hóa mô hình để tương thích tốt với phần cứng là rất cần thiết.
Huấn luyện mô hình Deep Learning
3.2.1.1.! Mô hình Object Detection COCO Dataset 2017
Hình 3.1 Một số hình ảnh trong tập COCO 2017!
- COCO 2017 Dataset [27] là một tập dữ liệu đã được gán nhãn sẵn gồm 80 classes khác nhau Trong đó có tổng cộng 123,287 hình được chia thành 2 tập dữ liệu:
+ Tập data train gồm khoảng 118,000 ảnh đã được gán nhãn
+ Tập data validation gồm khoảng 5,000 ảnh đã được gán nhãn
Trong quá trình huấn luyện mô hình, ta chỉ cần hình ảnh có người, vì vậy từ tập dữ liệu COCO 2017 với 80 lớp, chúng ta tiến hành lọc ra những bức ảnh có sự xuất hiện của người dựa trên tập nhãn đã được xác định trước.
- Sau khi lọc ta thu được:
+ Data train: 34,212 ảnh có người + Data val: 2,685 ảnh có người
Để nâng cao độ chính xác (giảm tỷ lệ dương tính giả) cho mô hình, việc bổ sung những bức ảnh không có người vào tập dữ liệu huấn luyện là cần thiết Nhiều nghiên cứu cho thấy, các tác giả thường lựa chọn khoảng 10% ảnh trong tập dữ liệu huấn luyện là ảnh nền không có sự xuất hiện của con người.
+ Data train: 4,000 ảnh không có người + Data val: 2,259 ảnh không có người
- Vì mục đích của mô hình này là phát hiện người trong trạm biến áp, nên ta cần có thêm một bộ dữ liệu về ảnh người trong TBA
- Substation Dataset là bộ dữ liệu chụp lại ảnh người di chuyển và xuất hiện trong TBA
- Tập dữ liệu ảnh này có kích thước ảnh lớn bao gồm 306 ảnh chưa được gán nhãn
- Sau khi gán nhãn và tăng cường dữ liệu cho tập huấn luyện ta thu được + Data train + augment: 483 ảnh đã gán nhãn
+ Data val: 123 ảnh đã gán nhãn
Để nâng cao độ chính xác cho mô hình huấn luyện, cần bổ sung 1259 ảnh chụp môi trường trạm biến áp (TBA) không có sự xuất hiện của con người Điều này giúp tránh việc phát hiện nhầm các vật thể có sẵn như cột điện, tủ điện, và bình chữa cháy.
Để tăng cường sự đa dạng trong góc nhìn chụp ảnh và giúp mô hình nhận diện người từ nhiều góc độ khác nhau, chúng ta sử dụng thêm bộ dữ liệu từ Youtube Dataset.
- Tập dữ liệu này gồm 4,343 ảnh được cắt ra từ các video trộm đột nhập trên
Bộ dữ liệu này bao gồm hình ảnh từ Youtube mà chưa được gán nhãn, chủ yếu được chụp trong điều kiện ánh sáng kém hoặc khi camera chuyển sang chế độ nhìn đêm Nhờ đó, tập dữ liệu này hỗ trợ mô hình của chúng ta trong việc nhận diện con người trong môi trường thiếu sáng.
- Sau khi gán nhãn và tăng cường dữ liệu ta có được
+ Data train: 2,821 ảnh đã gán nhãn + Data validation: 829 ảnh đã gán nhãn + Data test: 870 ảnh đã gán nhãn
Hình 3.3 Một số hình ảnh trong tập Youtube
Tăng cường dữ liệu, hay còn gọi là Data Augmentation, là phương pháp gia tăng số lượng hình ảnh thông qua các kỹ thuật xử lý ảnh thông thường Mục tiêu của nó là tạo ra sự đa dạng cho tập dữ liệu huấn luyện, đồng thời vẫn duy trì tính tổng quát của dữ liệu.
- Do số lượng ảnh của tập COCO 2017 Dataset khá lớn nên ta không cần tăng cường dữ liệu cho tập dữ liệu này
- Thực hiện tăng cường dữ liệu cho Youtube và Substation Dataset
- Các phép biến đổi hình học thông dụng và được mô tả ở các hình sau:
Hình 3.4 Hình ảnh dữ liệu được Augmentation
Với mô hình YOLO v5, người dùng có thể lựa chọn chế độ tăng cường dữ liệu trực tuyến (online augmentation) trong quá trình huấn luyện Điều này có nghĩa là chương trình sẽ tự động thực hiện việc tăng cường dữ liệu mà không cần phải chuẩn bị trước dữ liệu đã được tăng cường.
Mô hình này được thiết kế nhằm xác định xem người có đội mũ bảo hộ hay không Dữ liệu để huấn luyện mô hình được thu thập từ quá trình khảo sát.
Để tối ưu hóa quá trình thu thập dữ liệu, bước tiếp theo là trích xuất hình ảnh người từ các bộ dữ liệu đã thu thập Luận văn này áp dụng mô hình YOLOv5-m đã được huấn luyện sẵn để nhanh chóng phát hiện và thu thập lại các bức ảnh của người.
Để cải thiện độ chính xác trong quá trình huấn luyện mô hình phân loại, chúng tôi cắt ảnh để chỉ giữ lại phần thân trên và đầu của người, loại bỏ những trường hợp người không đội nón mà chỉ cầm hoặc ôm nón Chỉ những hình ảnh có người thật sự đội nón mới được xem là hợp lệ, trong khi các trường hợp như cầm nón che đầu hoặc nón không đúng vị trí đều được coi là không đội nón.
Hình 3.5 Một số hình ảnh trong tập dữ liệu có đội mũ bảo hộ
- Sau quá trình xử lý và tăng cường dữ liệu ta thu thập được:
+ Data train: 817 ảnh không đội nón + 1247 ảnh đội nón bảo hộ
+ Data validation: 215 ảnh không đội nón + 407 ảnh đội nón bảo hộ + Data test: 970 ảnh không đội nón + 2879 ảnh đội nón bảo hộ
Do số lượng ảnh người không đội nón bảo hộ hiện tại còn hạn chế, cần thiết phải bổ sung thêm hình ảnh từ các camera khác nhau để cân bằng với tập ảnh có người đội mũ bảo hộ.
+ Data train: 400 ảnh + Data validation: 195 ảnh + Data test: 1684 ảnh
Hình 3.6 Một số hình ảnh trong tập dữ liệu không đội mũ bảo hộ
Mục tiêu của luận văn này là huấn luyện một mô hình nhận diện người với độ chính xác cao trong môi trường có nhiều vật cản, như trạm biến áp Để đạt được điều này, chúng tôi đã tiến hành huấn luyện hai mô hình Object Detection tiên tiến nhất hiện nay, đó là EfficientDet và YOLO v5.
Sau khi thu thập và cải thiện dữ liệu cho các tập dữ liệu đã trình bày trong phần 3.2.1, chúng ta tiến hành huấn luyện mô hình nhận diện người dựa trên tập dữ liệu này.
Chúng tôi đã kết hợp ba bộ dữ liệu huấn luyện gồm COCO 2017, Substation và Youtube để tạo thành một tập dữ liệu phong phú Tập huấn luyện bao gồm tổng cộng 37,033 ảnh có người và 4,000 ảnh không có người từ bộ dữ liệu COCO.
Năm 2017, bộ dữ liệu Substation chứa 1,259 ảnh không có người Tập dữ liệu dùng để đánh giá tổng cộng có 5,773 ảnh, trong đó khoảng 1/4 là ảnh không có người Thông tin chi tiết về các tập dữ liệu được trình bày trong Bảng 3.1.
Bảng 3.1 Chi tiết dữ liệu dùng để huấn luyện mô hình YOLOv5 và EfficientDet
Tối ưu mô hình Deep Learning
Tối ưu hóa mô hình là rất quan trọng để khai thác tối đa hiệu năng của GPU trong quá trình suy luận, đồng thời giúp việc triển khai các mô hình lên môi trường production trở nên dễ dàng hơn Công cụ được sử dụng để thực hiện tối ưu hóa này là NVIDIA TensorRT.
3.3.1.!Tối ưu hoá model EfficientDet
Mục tiêu tối ưu hóa mô hình EfficientDet là so sánh hiệu suất với mô hình YOLOv5 Mạng EfficientDet-D1 được xây dựng trên nền tảng TensorFlow do Google phát triển, nhưng một số lớp mạng không thể tối ưu bằng TensorRT Hiện nay, TF-TRT là nền tảng hỗ trợ tối ưu hóa các mô hình TensorFlow.
Mô hình EfficientDet-D1 chỉ cho phép tối ưu hóa độ chính xác tính toán ở mức FP32, trong khi đó, việc tối ưu cho độ chính xác FP16 vẫn chưa được thực hiện do một số hạn chế.
File trọng số của model EfficientDet-D1 sau khi huấn luyện sẽ được lưu dưới định dạng ckpt Để sử dụng, cần chuyển đổi file model_effd1.ckpt sang định dạng đóng băng, tức là file model_effd1.pd.
Hình 3.13 Quá trình freeze model EfficientDet-D1
+ Sau đó ta sử dụng TF-TRT để tối ưu hoá model hình EfficientDet-D1 với ngõ vào là file model_effd1.pd
Hình 3.14 Quá trình tối ưu hoá mô hình EfficientDet-D1
+ Trong quá trình tối ưu, ta có thể chọn batch_size cho ngõ vào mô hình, độ chính xác tính toán là FP32, FP16 hoặc INT8
Do không thể chuyển đổi mô hình sang định dạng FP16, chúng ta chỉ có thể thu được mô hình EfficientDet-D1 đã được tối ưu hóa ở dạng FP32, được lưu trữ dưới file model_effd1_fp32.pb.
3.3.2.!Tối ưu hoá model YOLOv5
Mô hình YOLOv5-m được phát triển trên nền tảng Pytorch sẽ được tối ưu hóa dễ dàng hơn nhờ vào NVIDIA TensorRT Trong luận văn này, quá trình tối ưu hóa sẽ sử dụng phiên bản TensorRT 7.0, tham khảo từ mã nguồn mở TensorRTx.
Chúng tôi đã tối ưu hóa mô hình YOLOv5-m thành các phiên bản có độ chính xác tính toán thấp hơn, cụ thể là FP32 và FP16 Việc chuyển đổi sang định dạng INT8 không được thực hiện do kết quả không đạt yêu cầu và cần quá trình canh chỉnh Quá trình tối ưu này được trình bày chi tiết trong Hình 3.15.
Mô hình gốc YOLOv5-m sau khi được huấn luyện có định dạng Pytorch là yolov5_m.pt Để tối ưu hóa mô hình, cần chuyển đổi sang định dạng yolov5_m.wts theo hướng dẫn của TensorRTx.
Để tối ưu hóa mô hình, chúng ta sử dụng NVIDIA TensorRT phiên bản 7.0, với batchsize ngõ vào cố định là 1 và kích thước ảnh là 640x640x3, tương ứng với mô hình YOLOv5-m Để đánh giá độ chính xác, mô hình sẽ được chuyển đổi sang cả hai định dạng FP32 và FP16 để thực hiện so sánh.
Hình 3.15 Quá trình tối ưu hoá mô hình YOLOv5-m
Sau khi tối ưu hóa mô hình thành công, chúng ta sẽ nhận được các tệp yolov5_m_fp32.engine (FP32) hoặc yolov5_m_fp16.engine (FP16), cùng với tệp libmyplugins.so, là thư viện cần thiết để triển khai mô hình trên Triton Serving.
3.3.3.!Tối ưu hoá model ResNet-50
Mục tiêu tối ưu mô hình ResNet-50 là nhằm tăng tốc quá trình suy luận, phục vụ cho việc phát hiện người không đội mũ bảo hộ.
Mô hình ResNet-50, được xây dựng và huấn luyện bằng Pytorch, có quy trình tối ưu tương tự như YOLOv5-m Tuy nhiên, trước khi tối ưu hóa bằng TensorRT, cần chuyển đổi mô hình này sang định dạng ONNX Để đảm bảo tính tương thích với YOLOv5-m và thuận tiện cho việc triển khai trên Triton Serving, chúng ta sử dụng phiên bản TensorRT 7.0.
Một điểm quan trọng cần lưu ý là ResNet-50 sẽ được thực thi khi nhận kết quả từ batch size đầu vào Để tối ưu hóa quá trình tính toán, kích thước batch size của mô hình ResNet-50 không nên cố định.
Do đó, trong trường hợp này, không thể cố định kích thước lô (batch size) của ResNet-50 như đã làm với YOLOv5 Thay vào đó, khi tạo mô hình dưới định dạng resnet50.onnx (tệp ONNX), cần chọn kích thước lô đầu vào là không xác định [?,3,224,224] như thể hiện trong Hình 3.16.
Hình 3.16 Quá trình tối ưu hoá mô hình ResNet-50
Sau khi tối ưu hóa mô hình resnet50.onnx, chúng tôi đã thu được mô hình resnet50_fp16.engine Để triển khai trên Triton Serving, chúng tôi chuyển đổi định dạng file sang resnet50_fp16.plan.
Triển khai hệ thống xử lý AI
3.4.1.!Xây dựng hệ thống xử lý AI
- Một hệ thống giám sát sử dụng mô hình DL để phân tích hình ảnh cần những yêu cầu sau:
Để đảm bảo kết nối hiệu quả giữa camera và các thiết bị khác, cần có đường truyền tín hiệu tốt Hiện nay, các camera thường sử dụng giao thức RTSP để truyền tín hiệu thời gian thực, vì vậy cần một thiết bị để giải mã và chuyển đổi tín hiệu RTSP thành định dạng ảnh RGB phục vụ cho việc xử lý ảnh.
+ Một hệ thống suy luận (Inference) để phân tích hình ảnh thu được từ camera và phát hiện vật thể (người) xuất hiện trong hình ảnh đó
+ Một hệ thống giám sát (Surveillance System) để báo cáo kết quả và báo động khi có đột nhập
Hình 3.17 Sơ đồ quá trình triển khai mô hình Deep Learning trong hệ thống giám sát!
Sử dụng một máy chủ để đồng thời nhận tín hiệu, giải mã và suy luận giúp phát hiện tình huống đột nhập và báo động, tạo điều kiện đơn giản hóa hệ thống giám sát Tuy nhiên, với một trạm biến áp có nhiều camera, máy tính sẽ gặp khó khăn khi vừa phải giải mã tín hiệu vừa xử lý khối lượng tính toán lớn từ các mô hình Deep Learning, dẫn đến việc hệ thống không đảm bảo tính thời gian thực khi số lượng camera tăng cao.
Hiện nay, sự phát triển không ngừng của công nghệ phần cứng đã dẫn đến sự ra đời của các máy tính nhúng (Edge Devices) với khả năng tính toán ngày càng mạnh mẽ Những thiết bị này có ưu điểm nổi bật là nhỏ gọn, giúp giải quyết hiệu quả nhiều vấn đề trong các ứng dụng thực tiễn.
Trong hệ thống giám sát thông minh, máy tính nhúng có thể được sử dụng như một Edge Device để giải mã tín hiệu từ các camera và thực hiện tiền xử lý tín hiệu, giúp giảm tải công việc cho máy chủ.
Hệ thống giám sát TBA trong luận văn này, như được thể hiện ở Hình 3.17, sẽ được chia thành hai phần chính, được mô tả chi tiết trong hai phần tiếp theo.
3.4.2.!Triển khai hệ thống Cloud Computing
Hình 3.18 Quá trình thực thi mô hình Deep Learning trên Server!
Mô hình Deep Learning (DL) càng chính xác thì yêu cầu về khối lượng tính toán càng cao, dẫn đến thời gian tính toán kéo dài và không đáp ứng được yêu cầu thời gian thực nếu mất vài giây Để khắc phục vấn đề này, cần một máy tính có khả năng tính toán nhanh và xử lý nhiều phép tính phức tạp đồng thời Do đó, việc sử dụng mô hình DL để phát hiện người sẽ được thực hiện trên máy chủ (Server).
Mô hình này đòi hỏi thời gian tính toán cao trên phần cứng máy chủ do phải xử lý nhiều yêu cầu suy luận từ các thiết bị Edge Device (ED) cùng lúc Để giải quyết vấn đề này, việc tối ưu hóa mô hình bằng nền tảng NVIDIA TensorRT là cần thiết, nhằm giảm thời gian suy luận mà vẫn đảm bảo độ chính xác không bị giảm so với mô hình gốc.
Mô hình này sẽ được triển khai thông qua Triton Serving, nhằm đáp ứng yêu cầu tính toán cho nhiều thiết bị Edge cùng lúc.
3.4.2.2.! Triển khai mô hình Deep Learning bằng Triton Serving
Sau khi tối ưu hóa các mô hình Deep Learning bằng NVIDIA TensorRT, chúng ta sẽ sử dụng các tệp được tạo ra trong quá trình tối ưu hóa để triển khai lên Triton Serving.
Để triển khai Triton Serving trên server sử dụng phần cứng GPU NVIDIA RTX3090, cần cài đặt Docker và NVIDIA Docker nhằm tận dụng tối đa tài nguyên phần cứng này.
Triton Server được phát triển và cung cấp dưới dạng nhiều phiên bản Docker Images miễn phí từ NVIDIA, tuy nhiên cần chọn phiên bản phù hợp với các mô hình Deep Learning đã tối ưu Trong phần trước, chúng ta đã sử dụng TensorRT 7.0 để tối ưu hóa, do đó phiên bản Triton Serving 21.03 được phát hành nhằm hỗ trợ TensorRT 7.0, tránh xung đột phiên bản Docker Image cho phiên bản này có tên là nvcr.io/nvidia/tritonserver:21.03-py3.
Sau khi tối ưu mô hình, chúng ta có được file model_name.engine và libmyplugins.so Để tiếp tục, ta chuyển đổi file model_name.engine thành file model_name.plan Tiếp theo, tạo một thư mục chính chứa hai thư mục con là models và plugins, sau đó sắp xếp các file vào thư mục theo cấu trúc đã định Các thư mục con trong folder models sẽ mang tên các mô hình, giúp dễ dàng gọi chúng trong Triton Serving.
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
Chúng ta sẽ khởi động Docker Container chứa Triton Server với chế độ runtime=nvidia để thực thi trên GPU NVIDIA Thư mục tritis_model_repo_fp16 vừa tạo sẽ được gắn vào container như trong Hình 3.20.
Hình 3.20 Lệnh dùng để khởi chạy một Triton Serving trên Docker Container
Sau khi cài đặt và khởi chạy Docker Container Triton Server, người dùng có thể gửi yêu cầu từ Client đến Triton Serving qua hai cổng: 8010 cho giao thức HTTP/REST API và 8011 cho giao thức gRPC Trong luận văn này, chúng tôi sẽ sử dụng giao thức gRPC để gọi Triton Serving Bên cạnh đó, để theo dõi các thông số hoạt động của Triton Serving, người dùng có thể truy cập vào cổng 8012.
3.4.2.3.! Sử dụng DALI và Ensemble Models trên Triton Server YOLOv5-m
Để tối ưu hóa quy trình tiền xử lý và hậu xử lý, chúng ta chuyển những bước này từ Client sang Triton Serving trên Server Việc này giúp tận dụng tài nguyên của Server và giảm tải cho Client Chúng ta sử dụng thư viện DALI, nổi bật với khả năng tải và xử lý ảnh trên GPU, kết hợp với tính năng Ensemble Model của Triton Serving để triển khai hiệu quả quá trình này.
Triển khai hệ thống giám sát
3.5.1.!Xây dựng hệ thống giám sát
Dựa trên quá trình áp dụng suy luận AI để giải quyết các vấn đề liên quan đến trạm biến áp đã được trình bày trước đó, bước tiếp theo là phát triển một hệ thống giám sát toàn diện với các mục tiêu chính đã được xác định.
Quản lý hiệu quả các thiết bị Edge Devices và Camera trong Trạm Biến Áp (TBA) là rất quan trọng Việc thiết lập và điều chỉnh các thông số cần thiết giúp các Edge Device hoạt động tối ưu trong nhiều điều kiện khác nhau.
+ Giám sát được các báo động mà mô hình Deep Learning phát hiện được về các bài toán đã đề ra để kịp thời giải quyết sự cố
Hình 3.30 Sơ đồ toàn bộ hệ thống giám sát của trạm biến áp
Đề tài luận văn này giới thiệu một hệ thống giám sát vận hành sử dụng các dịch vụ độc lập thông qua Docker Container Hệ thống giám sát được chia thành hai nhóm chính: các dịch vụ hoạt động tại máy chủ và các dịch vụ hoạt động tại thiết bị biên, như thể hiện trong Hình 3.30.
- Nhóm services ở Server được chạy trên các Docker Container với chức năng và chi tiết hoạt động của các services như sau:
Cơ sở dữ liệu (Database Service)
Để quản lý hiệu quả các ED, Camera, Mô hình AI và các cài đặt liên quan, việc sử dụng một dịch vụ cơ sở dữ liệu là cần thiết để lưu trữ và truy xuất thông tin một cách dễ dàng.
Để triển khai dịch vụ cơ sở dữ liệu, chúng ta sử dụng PostgreSQL, một hệ thống quản trị cơ sở dữ liệu phổ biến hiện nay PostgreSQL cung cấp sẵn một Docker Image, giúp người dùng dễ dàng sử dụng mà không gặp khó khăn.
Để phát triển cơ sở dữ liệu cho Hệ thống giám sát, cần xác định ba đối tượng chính: Thiết bị Edge, Camera và Mô hình AI.
Hình 3.31 Sơ đồ liên kết các bảng trong Database
Trong Hình 3.31, chúng ta tập trung vào ba đối tượng đã nêu và xây dựng mối quan hệ giữa các bảng dữ liệu liên quan đến thông tin của chúng Các bảng dữ liệu trung gian cho các đối tượng này bao gồm EdgeHasCameras và EdgeHasModels.
Để xác định người trong vùng nguy hiểm, cần xây dựng bảng Areas chứa thông tin tương ứng cho từng Camera trong Edge Device.
Mỗi camera có thể được sử dụng trên nhiều thiết bị Edge khác nhau và có các vùng nguy hiểm tùy thuộc vào cài đặt của người giám sát Do đó, dữ liệu trong bảng Area không nên kết nối trực tiếp với bảng Cameras, mà nên kết nối với bảng EdgeHasCameras để phản ánh chính xác vùng nguy hiểm của từng camera trong hệ thống.
Để tùy chỉnh các thông số hoạt động của Edge Device, cần tạo một bảng lưu trữ thông số cho từng ED, gọi là bảng DsConfigs Mỗi dòng dữ liệu trong bảng này chứa thông số duy nhất cho một ED tương ứng Do đó, cần liên kết bảng EdgeDevice với bảng DsConfigs thông qua bảng EdgeHasConfigs.
API Service là dịch vụ hoạt động ngầm trong hệ thống giám sát, có nhiệm vụ thực hiện các yêu cầu từ người dùng qua giao diện đồ họa (GUI) nhằm truy xuất dữ liệu từ cơ sở dữ liệu và gửi lệnh điều khiển đến các thiết bị Edge.
Trong sơ đồ chi tiết hệ thống giám sát, chỉ có API Service được cấp quyền truy cập vào Database để tránh xung đột dữ liệu do nhiều service hoạt động độc lập Các service khác chỉ có thể cập nhật và truy xuất dữ liệu thông qua API Service, đảm bảo tính toàn vẹn và ổn định của hệ thống.
Trong hệ thống giám sát được xây dựng trong luận văn, dịch vụ GUI sẽ tương tác với API Service để thực hiện các thao tác như tạo, thêm, sửa đổi hoặc xóa các đối tượng như Edge Device, Camera và Model.
Ngoài các chức năng cơ bản, API Service còn thực hiện nhiều tác vụ khác như lưu dữ liệu vùng nguy hiểm, điều chỉnh thông số của Edge Device, thêm camera vào hệ thống và cập nhật trạng thái của Edge Device khi nhận được yêu cầu từ giao diện người dùng (GUI).
- Chi tiết các API trong hệ thống giám sát được thể hiện ở bảng sau với địa chỉ của API Service {api} = ‘http://127.0.0.1:8002’
Bả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
RabbitMQ là một Message Broker thiết yếu cho việc giao tiếp giữa các ứng dụng Trong hệ thống giám sát, RabbitMQ được sử dụng như phần mềm trung gian để quản lý các gói tin được truyền tải giữa các dịch vụ nội bộ trên máy chủ.
KẾT QUẢ VÀ ĐÁNH GIÁ
Kết quả thuật toán nhận diện chuyển động
4.1.1.!Đánh giá độ chính xác
Thuật toán phát hiện chuyển động là bộ lọc quan trọng giúp loại bỏ các khung hình không có sự kiện bất thường, từ đó giảm tải cho Server trong quá trình suy luận AI Độ chính xác của mô hình phát hiện chuyển động sẽ ảnh hưởng trực tiếp đến hiệu quả và độ chính xác của toàn bộ hệ thống giám sát.
Thuật toán phát hiện chuyển động bằng phương pháp Image Subtraction yêu cầu so sánh hai frame ảnh liên tiếp Để đánh giá độ chính xác của mô hình, cần thu thập video và trích xuất các ảnh liên tiếp từ video Qua việc quan sát và so sánh các frame ảnh, ta phân loại ảnh có chuyển động và không có chuyển động Trong bài đánh giá này, chúng tôi sử dụng 2 video có người di chuyển trong trạm biến áp và 2 video có người di chuyển vào ban đêm, tổng cộng 2062 ảnh được sử dụng để đánh giá độ chính xác.
- Tiến hành tính các thông số sau và thống kê ở Bảng 4.1:
True Positive xảy ra khi thuật toán chính xác phát hiện được khung hình có chuyển động Ngược lại, False Positive là trường hợp thuật toán nhận diện khung hình có chuyển động nhưng thực tế lại không có chuyển động nào.
+ False Negative: khi frame ảnh trong thực tế có chuyển động nhưng thuật toán không phát hiện được
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
Mô hình đạt tỉ lệ phát hiện chính xác chuyển động (Precision) là 96,78% và độ nhạy (Recall) là 84,92% theo Bảng 4.1 Hình 4.1 cung cấp cái nhìn tổng quan về quá trình phát hiện chuyển động trong bốn đoạn video đã được đánh giá.
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ế
Thuật toán phát hiện chuyển động mà chúng tôi phát triển có độ chính xác cao, nhưng vẫn gặp khó khăn trong một số tình huống như khi vật thể di chuyển ở khoảng cách xa hoặc trong điều kiện ánh sáng kém Đặc biệt, khi vật thể di chuyển thẳng về phía camera, mô hình phát hiện chuyển động có thể xảy ra sai sót Do đó, cần cải thiện thêm để nâng cao hiệu quả phát hiện.
Để đánh giá hiệu năng của thuật toán phát hiện chuyển động CUDA OpenCV (CUDA_AbsDiff), cần so sánh với các phương pháp khác như Optical Flow sử dụng thuật toán Farneback (CUDA_OF_Farneback) và mô hình tương tự nhưng chạy trên CPU (CPU_AbsDiff) Việc so sánh này giúp đưa ra kết luận chính xác về hiệu quả của phương pháp đề xuất.
- Trong bài đánh giá này,quá trình kiểm tra sẽ thực hiện 3 lần với 3 kích thước
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
- Từ các giá trị đo được, ta có được sơ đồ so sánh hiệu năng như sau
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
Phương pháp so sánh hai khung ảnh liên tiếp (AbsDiff) cho kết quả tính toán tốt hơn so với OpticalFlow của OpenCV Mặc dù CPU_AbsDiff có hiệu suất cao nhất, nhưng nó tiêu tốn nhiều tài nguyên CPU và không để lại đủ tài nguyên cho các tác vụ khác Trong khi đó, CUDA_AbsDiff, mặc dù cần thời gian để tải dữ liệu từ CPU lên GPU, vẫn đạt được kết quả khá cao và không kém so với CPU_AbsDiff Do đó, CUDA_AbsDiff là phương pháp tối ưu nhất để tích hợp vào hệ thống.
Kết quả huấn luyện mô hình Deep Learning
Mục tiêu của nghiên cứu là tìm ra mô hình nhận diện vật thể có độ chính xác cao nhất cho hệ thống giám sát Để đạt được điều này, chúng tôi đã lựa chọn huấn luyện hai mô hình tiên tiến nhất hiện nay là EfficientDet và YOLOv5 Việc so sánh hai mô hình này sẽ giúp xác định mô hình phù hợp nhất cho các bài toán giám sát.
- Để đánh giá các mô hình nhận diện vật thể như EfficientDet và YOLOv5 người ta thường dùng một thông số gọi là mAP đã được giải thích ở chương 2
Để đảm bảo đánh giá chính xác, chúng tôi thực hiện đánh giá trên tập dữ liệu Substation gồm 306 ảnh, được giới thiệu trong phần 3.2.1 Tập dữ liệu này được thu thập từ môi trường làm việc thực tế tại trạm biến áp và không được sử dụng để huấn luyện hai mô hình, mà chỉ nhằm mục đích đánh giá hiệu suất của các mô hình.
Chúng tôi đã tiến hành suy luận trên tất cả các hình ảnh trong tập dữ liệu bằng hai mô hình đã được huấn luyện, cùng với một số mô hình đã được huấn luyện sẵn, nhằm có cái nhìn tổng quan nhất về kết quả.
- Một số kết quả suy luận của 2 mô hình EfficientDet–D1 và YOLOv5–m được thể hiện ở các hình ảnh sau:
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à
Kết quả dự đoán từ hai mô hình cho thấy YOLOv5-m hoạt động hiệu quả hơn trong các tình huống người đứng khuất sau các vật cản như thanh sắt và cột điện Mặc dù cả hai mô hình ít khi nhầm lẫn vật thể khác thành người, nhưng vẫn tồn tại một số trường hợp mà cả hai mô hình đều bỏ sót người.
Tính toán giá trị Precision và Recall từ tập dữ liệu đánh giá cho phép tạo ra biểu đồ đường cong Precision-Recall với 11 mức ngưỡng IoU khác nhau.
Hình 4.4 Đường cong Precision-Recall mô hình EfficientDet-D1 và YOLOv5-m!
Đánh giá kết quả dự đoán của hai mô hình vừa được huấn luyện và so sánh với các mô hình đã được huấn luyện sẵn (pretrained model) theo thông tin đã công bố [35] Kết quả đánh giá được trình bày trong Bảng 4.3.
Bảng 4.3 So sánh độ chính xác của các mô hình Object Detection
Model mAP AP@75 AP@50 Input Type Dataset
Trên tập dữ liệu Substation
Kết quả đánh giá cho thấy mô hình YOLOv5-m mà chúng ta huấn luyện đạt hiệu suất vượt trội hơn hẳn so với mô hình EfficientDet-D1, đồng thời cũng có độ chính xác cao hơn so với mô hình YOLOv5-m đã được pretrained.
Mô hình YOLOv5-m vừa huấn luyện cho thấy độ chính xác tốt nhất trong việc phát hiện người trong TBA Để có kết luận cuối cùng, cần đánh giá thêm hiệu năng tính toán của hai mô hình Efficient Det và YOLOv5 sau khi được tối ưu hóa bằng TF-TensorRT và TensorRT trên Triton Serving.
Mô hình phân loại (Classification) được huấn luyện để nhận diện người có đội mũ bảo hộ sử dụng kiến trúc ResNet-50 Sau quá trình huấn luyện và đánh giá trên tập dữ liệu Validation gồm 817 ảnh, mô hình đạt được độ chính xác 95%.
Mặc dù độ đo Accuracy cung cấp cái nhìn tổng quát về số lượng dự đoán đúng trong toàn bộ tập dữ liệu, nhưng nó không phản ánh chính xác hiệu suất của từng lớp dữ liệu Hơn nữa, việc đánh giá mô hình ResNet-50 trên tập dữ liệu nhỏ chỉ gồm 817 ảnh không đủ để đưa ra kết luận chính xác về độ tin cậy của mô hình.
Để đánh giá độ chính xác của mô hình, chúng ta sẽ sử dụng các chỉ số Precision và Recall, cùng với phương pháp AUC đã được đề cập ở phần 2.
Để đảm bảo độ tin cậy cao nhất cho kết quả, chúng tôi sẽ tiến hành đánh giá mô hình bằng cách sử dụng tập dữ liệu Test gồm 5.533 hình ảnh, trong đó có 2.654 hình ảnh của người không đội mũ bảo hộ và 2.879 hình ảnh của người có đội mũ bảo hộ.
Sau khi thực hiện quá trình suy luận để nhận diện và phân loại người, chúng tôi đã thu thập được một số hình ảnh kết quả, cho thấy rõ sự hiện diện của người có đội mũ bảo hộ.
Hình 4.5 Kết quả phân loại của mô hình ResNet-50
- Tiếp theo ta thực hiện tính các độ đo Precision và Recall của mô hình ResNet-
50 trên tập dữ liệu Test
Mô hình ResNet-50 vừa được huấn luyện có hai lớp dữ liệu cần phân biệt: class_id=0 đại diện cho ảnh người không đội mũ bảo hộ, trong khi class_id=1 đại diện cho ảnh người có đội mũ bảo hộ.
Để phát hiện người không đội mũ bảo hộ, chúng ta xác định class_id = 0 là lớp Positive và class_id = 1 là lớp Negative Kết quả đánh giá mô hình ResNet-50 được trình bày trong Hình 4.6.
Kết quả tối ưu mô hình Deep Learning
Các mô hình Deep Learning sau khi huấn luyện và đánh giá đạt độ chính xác cao, nhưng do độ phức tạp và dung lượng lớn, thời gian suy luận của các mô hình gốc (Native Models) thường kéo dài, không phù hợp cho việc triển khai trong hệ thống giám sát thực tế.
Sau khi sử dụng TensorRT để tối ưu hoá mô hình YOLOv5 và TensorFlow-TensorRT cho mô hình EfficientDet, cần đánh giá lại độ chính xác và hiệu năng tính toán của các mô hình này Mục tiêu là tìm ra mô hình phù hợp nhất, với tiêu chí là độ chính xác cao và thời gian xử lý nhanh.
Để đánh giá độ chính xác của các mô hình, chúng tôi sử dụng chỉ số mAP để so sánh mô hình YOLOv5-m được tối ưu hóa ở mức chính xác FP32 và FP16 với phiên bản gốc YOLOv5-m (Native) Tương tự, mô hình EfficientDet-D1 cũng được tối ưu hóa ở mức FP32 (chưa chuyển sang FP16) để so sánh với phiên bản gốc EfficientDet-D1 Native.
Quá trình đánh giá hiệu năng của các mô hình được thực hiện theo phương pháp đã trình bày trong phần 4.1, với việc triển khai Client và Server trên cùng một máy nhằm giảm thiểu thời gian truyền tải dữ liệu.
- Các model được đánh giá là:
+ EfficientDet-D1-native: là mô hình gốc (Native Model) thu được sau khi huấn luyện chưa qua tối ưu hóa
+ EfficientDet-D1-FP32: là mô hình đã được tối ưu hóa từ Native
Model bằng TF-TRT có độ chính xác tính toán FP32
+ YOLOv5-m-exp23-native: là mô hình gốc thu được qua quá trình huấn luyện chưa qua tối ưu hóa
+ YOLOv5-m-exp23-FP32: là mô hình đã được tối ưu hóa từ model native bằng TensorRT có độ chính xác tính toán FP32
+ YOLOv5-m-exp23-FP16: là mô hình đã được tối ưu hóa từ model native bằng TensorRT có độ chính xác tính toán FP16
- Kết quả của quá trình đánh giá các mô hình thể hiện ở 2 Bảng 4.3 và 4.4
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
Qua hai bảng đánh giá, có thể nhận thấy rằng mặc dù độ chính xác của mô hình bị giảm sau khi tối ưu hóa bằng TensorRT, hiệu năng tính toán lại được cải thiện đáng kể Đặc biệt, mô hình YOLOv5-m-FP16 ghi nhận mức tăng hiệu suất hơn 300% so với YOLOv5-m-Native.
Biểu đồ Hình 4.8 minh họa lợi ích của việc tối ưu hóa mô hình bằng TensorRT, cho thấy rằng mặc dù độ chính xác của YOLOv5-m-FP16 và YOLOv5-m-FP32 tương đương, nhưng tốc độ xử lý của YOLOv5-m-FP16 nhanh gấp 2 lần so với YOLOv5-m-FP32.
Hình 4.8 So sánh sự tương quan giữa độ chính xác và tốc độ xử lý của các models!
- Chính vì thế, YOLOv5-m-FP16 sẽ được sử dụng làm mô hình chính cho hệ thống giám sát
Chúng tôi đánh giá hiệu năng của mô hình ResNet-50 đã được tối ưu hóa với độ chính xác tính toán FP16 Quá trình suy luận được thực hiện với bốn kích thước batch size đầu vào khác nhau là 1, 4, 8 và 16, tương ứng với số lượng ảnh được xử lý đồng thời.
Bảng 4.6 Kết quả đánh giá hiệu năng của các mô hình ResNet-50
Trong Bảng 4.6, độ đo FPS không chỉ đơn thuần là số ảnh được xử lý trong một giây, mà thực chất là số lượng request được suy luận trong thời gian đó Cụ thể, với batchsize, nếu mô hình có tốc độ xử lý 84 FPS, điều này có nghĩa là 84 request được xử lý, và với mỗi request chứa 16 ảnh, tổng số ảnh được xử lý trong một giây là 16*84 = 1344 ảnh Điều này minh chứng cho hiệu quả của tính năng Dynamic Batching trong Triton Serving khi áp dụng cho mô hình ResNet-50.
Kết quả hiệu năng tính toán trên Triton Serving
Sau khi đánh giá, mô hình YOLOv5-m-FP16 đã được chọn lựa vì có tốc độ xử lý cao và độ chính xác chấp nhận được Chúng tôi tiến hành triển khai mô hình này lên Triton Serving để phục vụ cho việc xử lý AI trong hệ thống.
Triton Serving không chỉ tạo ra môi trường cho các mô hình Deep Learning mà còn cho phép triển khai một pipeline xử lý AI hoàn chỉnh trên Server nhờ thư viện DALI Mục tiêu là giảm tải cho Client trong việc tiền xử lý và hậu xử lý dữ liệu, chúng tôi đã xây dựng một hệ thống phục vụ có khả năng xử lý toàn bộ quá trình pre và post-processing trên Server Bài viết này sẽ đánh giá hiệu năng của các AI pipeline và so sánh với các phương pháp xử lý truyền thống.
- Ở đây, với phần so sánh các mô hình Object Detection ta sẽ so sánh quá trình suy luận của mô hình YOLOv5-m-FP16 với 3 hình thức xây dựng sau:
+ YOLOv5-m-FP16 là mô hình được triển khai trên Triton Serving là không tính thời gian pre-processing và post-processing
+ YOLOv5-m-FP16 (pre+post client) cũng là mô hình YOLOv5-m- FP16 trên Triton Serving nhưng ta sẽ tính thêm thời gian cho pre-processing và post- processing ở Client
+ YOLOv5-m-DALI cũng là mô hình YOLOv5-m-FP16 nhưng được tích hợp thêm phần post-processing và pre-processing tại Triton Serving
Chúng tôi đã thực hiện bài đánh giá quá trình suy luận của các mô hình với số lượng yêu cầu đồng thời là 10 và 100, tương ứng với 200 và 100 ảnh Đánh giá được thực hiện trên 3 kích thước ảnh khác nhau: 360x640, 640x640 và 720x1280 Mỗi quá trình đánh giá được lặp lại 3 lần, và kết quả cuối cùng là trung bình của 3 lần đánh giá.
- Kết quả đánh giá của 3 mô hình trên được thể hiện ở Bảng 4.7
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
Dựa vào bảng kết quả đo, chúng tôi đã thiết lập một đồ thị (Hình 4.9) để so sánh hiệu suất Qua đồ thị, có thể nhận thấy rằng việc sử dụng DALI để tích hợp quá trình pre-processing và post-processing từ Client lên Triton Serving đã cải thiện đáng kể hiệu năng tính toán, với FPS của mô hình YOLOv5-m-DALI đạt được cao.
The 411 model demonstrates an increase of nearly 40% in performance compared to YOLOv5-m-FP16, excluding pre- and post-processing times When factoring in the pre- and post-processing times at the client side, the performance boost is fourfold compared to YOLOv5-m-FP16.
Hình 4.9 So sánh tốc độ xử lý của các model khi triển khai trên Triton Serving!
Chúng tôi đánh giá hiệu năng thực thi của Triton Serving khi kết hợp mô hình YOLOv5-m-FP16 và ResNet-50 để phát hiện người không đội mũ bảo hộ Toàn bộ quá trình tính toán được thực hiện tại Triton Serving, bao gồm từ khâu tiền xử lý, phát hiện người, cắt ảnh, đến phân loại hình ảnh bằng ResNet-50 và trả về kết quả suy luận.
Bài viết so sánh hiệu năng thực thi của hai mô hình khi số lượng người trong ảnh thay đổi từ 1 đến 8 Điều này cho thấy khối lượng tính toán của mô hình ResNet tăng lên đáng kể với số lượng người trong ảnh.
50 sẽ tăng từ 1 lên 8 lần
Bảng 4.8 Kết quả hiệu năng khi kết hợp 2 mô hình YOLOv5 và ResNet-50
- Kết quả đo được thể hiện ở Bảng 4.8 và từ đó suy ra được biểu đồ so sánh hiệu năng ở Hình 4.10
Khi số lượng người tham gia thay đổi, hiệu năng tính toán của mô hình cũng bị ảnh hưởng đáng kể Do đó, cần cải thiện quy trình xử lý để đạt được kết quả tốt hơn Nếu môi trường thực tế có nhiều người, điều này sẽ tác động mạnh mẽ đến hiệu suất tính toán chung của hệ thống.
Hình 4.10 So sánh tốc độ xử lý của mô hình kết hợp YOLOv5+ResNet-50 với
Kết quả hiệu năng tính toán thực thi tại Edge Device
Các thông số đánh giá trong phần 4.4 được đo khi Client và Server hoạt động trên cùng một máy tính, nhằm loại bỏ độ trễ trong quá trình truyền tải dữ liệu qua mạng Ethernet Điều này cho phép phản ánh hiệu năng tối đa mà Card đồ hoạ RTX 3090 có thể đạt được khi suy luận các mô hình tại Server qua Triton Serving Qua đó, chúng ta có thể xác định hiệu năng tối đa mà Server có thể thực thi dựa trên tài nguyên phần cứng hiện tại.
- Còn với hệ thống giám sát mà ta muốn xây dựng với nền tảng giao tiếp giữa
Độ trễ trên đường truyền là yếu tố quan trọng cần xem xét Phần đánh giá này sẽ đo hiệu suất quá trình suy luận khi các Client gửi yêu cầu từ Edge Device và so sánh với kết quả ở phần 4.4, nhằm làm rõ ảnh hưởng của đường truyền đến hệ thống giám sát của chúng ta.
Để nâng cao tính thuyết phục, chúng tôi triển khai mô hình pre-trained YOLOv4-tiny trực tiếp trên Edge Device và so sánh hiệu suất với việc gửi yêu cầu về Server, nhằm xác định liệu việc thực thi trên Edge Device có mang lại hiệu quả tốt hơn hay không.
- Ta tiến hành đo hiệu năng của các mô hình sau
YOLOv5-m-FP16 (pre+post client) is a model that executes both pre-processing and post-processing on the Edge Device (Client), while the AI inference takes place on Triton Serving located at the Server.
+ YOLOv5-m-DALI là mô hình thực hiện việc gửi request tại ED
(Client) và quá trình pre-processing, suy luận AI, post-processing tại Triton Serving
+ YOLOv4-tiny là mô hình nhận diện người triển khai tại ED
Chúng tôi đã tiến hành đo hiệu năng kết hợp giữa YOLOv5 và ResNet-50 khi gửi yêu cầu tại ED và thực hiện suy luận qua Triton Serving Hai mô hình YOLOv5-ResNet-DALI được thử nghiệm với batch_size cho ResNet lần lượt là 1 và 8.
- Kết quả đo khi thực thi tại Edge Device được thể hiện ở Bảng 4.9
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
Biểu đồ (Hình 4.11) được lập ra từ bảng dữ liệu nhằm so sánh hiệu năng giữa các mô hình thực thi tại Edge Device, bao gồm YOLOv5-m-FP16 (pre+post client) và YOLOv5-m-DALI, với các mô hình tương đương thực thi tại Server Đồng thời, biểu đồ cũng so sánh với mô hình YOLOv4-tiny thực thi hoàn toàn tại Edge Device mà không cần gửi yêu cầu lên Server.
Kết quả so sánh cho thấy, mặc dù tốc độ gửi dữ liệu suy luận AI từ ED lên Server bị giảm đáng kể, nhưng các mô hình vẫn duy trì được tốc độ xử lý đáp ứng yêu cầu real-time cho camera.
Sử dụng mô hình YOLOv5-m-DALI để gửi yêu cầu từ ED với kích thước ảnh 360x640, chúng ta đạt được tốc độ xử lý 168 FPS, nhanh gấp 4 lần so với mô hình YOLOv4-tiny tại ED Với tốc độ này, có thể đồng thời chạy 4-5 camera với tốc độ 25 FPS để thực hiện suy luận AI mà không gặp tình trạng trễ.
Hình 4.11 So sánh tốc độ xử lý các mô hình YOLOv5-m khi thực thi tại Edge
Mặc dù vẫn có suy hao trong việc truyền dữ liệu giữa thiết bị và server, tốc độ xử lý hiện tại cho phép chúng ta chạy đồng thời 5 camera để phát hiện người không đội mũ bảo hộ với độ phân giải 360x640 Tuy nhiên, để đảm bảo tính chính xác trong việc cảnh báo, chỉ nên sử dụng 1 camera với độ phân giải 720x1280.
Hình 4.12 So sánh tốc độ xử lý các mô hình kết hợp YOLOv5+ResNet-50 khi thực thi tại Edge Device và tại Server
Sau khi lựa chọn các phương pháp tích hợp cho hệ thống giám sát, bài kiểm tra cuối cùng là đánh giá tính ổn định của hệ thống Hai hình dưới đây thể hiện toàn bộ thông số FPS của các camera trong quá trình hoạt động thực tế Hệ thống giám sát sử dụng mô hình YOLOv5-m-DALI với kích thước ảnh đầu vào là 360x640, được triển khai trên 4 camera trong suốt 2 ngày liên tục.
Hình 4.13 Tốc độ của 4 camera ghi nhận trong 2 ngày khi chạy các mô hình AI
Hình 4.14 Tốc độ trung bình của các camera ghi nhận trong 2 ngày khi chạy các mô hình AI !
- Nhìn vào Hình 4.13 và 4.14 ta có thể thấy rằng, tuy các camera có tốc độ thay đổi khác nhau tuy nhiên vẫn giữ ở tốc độ 25 FPS
Tốc độ của camera ít thay đổi nhất vào ban đêm khi có ít người xuất hiện, dẫn đến việc mô hình AI ít được thực thi nhờ vào thuật toán phát hiện chuyển động Ngược lại, vào ban ngày, khi có nhiều người, hệ thống phải thực hiện các tác vụ suy luận AI để xử lý tình huống.