Để đưa ra sự lựa chọn chính xác giữa các mô hình, nhóm đã thực hiện xây dựng nhiều mô hình, từ hiệu năng được biểu diễn, lựa chọn chính xác và cải thiện chất lượng sau đó tiến hành sử dụng trên thiết bị Jetson Nano. Các mô hình ban đầu được xây dựng trên Laptop là YOLOv3, YOLOv4, YOLOv5, với kết quả sau đây:
Mô hình CPU GPU RAM
FPS trung bình Độ chính xác Độ mất mát Kích thước YOLOv3- tiny 22.10% 9% 1961.5 MB 19.5 75.7% 3.16% 34Mb YOLOv4- tiny 21.70% 10% 1961.5 MB 22.5 98% 2.2% 23Mb YOLOv5s 15% 15% 2857 MB 30 95% 2% 28Mb Tflite (tối ưu từ YOLOv4- tiny) 10% 15% 1556Mb 30 98% 2.2% 23Mb
Mô hình được xây dựng trên Laptop có cấu hình: Memory: 16384MB RAM
CPU: AMD Ryzen 5 4600H with Radeon Graphics (12 CPUs), ~3.0GHz
GPU : NVIDIA GeForce GTX 1650 Ti, Memory: 13000MB VRAM.
Mô hình CPU GPU RAM FPS trung bình Độ chính xác Độ mất mát Kích thước YOLOv3- tiny 96% 84% 1.41Gb 6 75.7% 3.16% 34Mb YOLOv4- tiny 88% 64% 1,45Gb 7 98% 2.2% 23Mb YOLOv5s
Không thể chạy trên Jetson Nano phiên bản 2Gb, vì chỉ cẩn load Camera lên thì hệ thống lập tức báo lỗi thiếu bộ nhớ và hay bị
sập nguồn. TensorRT (tối ưu từ YOLOv4- tiny) 50% 90% 1,2Gb 20 98% 2.20% 32Mb Tflite (tối ưu từ YOLOv4- tiny) 90% 0% 1,8Gb 7.5 98% 2.20% 23Mb
Nhận xét kết quả và đánh giá các mô hình:
A. YOLOv3 và YOLOv4
- Số lượng RAM sử dụng của hai mô hình tương đương nhau.
o Nguyên nhân: Hai mô hình cùng sử dụng chung nền tảng Darknet để chạy và đào tạo mô hình. Ngoài ra, khi chạy trên hai thiết bị Laptop và Jetson Nano, số lượng khung hình trên một giây của hai mô hình không chênh lệnh quá nhiều, máy tính không cần sử dụng thêm bộ nhớ để xử lý hình ảnh, cho nên lượng RAM sử dụng không có sự chênh lệch lớn giữa hai phiên bản.
- Sau 10000 interation, YOLOv4 đạt được hiệu quả cao hơn YOLOv3 về độ chính xác, độ mất mát, FPS.
o Nguyên nhân: Trong file cấu hình của YOLOv3-tiny có 13 lớp Convolutional, trong khi đó YOLOv4-tiny có 21 lớp Convolutional. Điều này dẫn đến khả năng xử lý hình ảnh cũng như độ chính xác khi huấn luyện của YOLOv4 cao hơn YOLOv3 khi đi qua nhiều lớp xử lý.
Về kích thước: YOLOv3 có kích thước lớn hơn nhiều so với YOLOv4. Ở phiên bản YOLOv4, tác giả Alexey đã tối ưu mô hình Pretrain ngay từ đầu, dẫn đến việc sau khi huấn luyện mô hình tùy chỉnh, không sinh ra mô hình có kích thước lớn như YOLOv3.
Độ chính xác vượt trội của YOLOv4 cũng chính là nguyên nhân chính khiến mô hình sử dụng ít CPU và GPU hơn so mới YOLOv3. Khi một khung hình có chứa ngọn lửa, YOLOv4 với độ chính xác cao có thể dùng ít vòng lặp hơn YOLOv3 để nhận diện ra vật thể rồi vẽ Bounding Box xung quanh. Từ đó, dẫn đến việc tiết kiệm tài nguyên máy tính.
B. YOLOv5
- YOLOv5 là phiên bản mới nhất của mô hình phát hiện vật thể “You only look once”. Tuy không được coi như là một phiên bản thứ 5 chính thức, nhưng nó vẫn có nhiều cải tiến và đạt được hiệu quả cao với tỉ lệ chính xác lên đến 95%.
- Khác với hai phiên bản YOLOv3 và YOLOv4, YOLOv5 được chạy trên nền tảng Pytorch. Đối với nền tảng này, việc khởi động mô hình dẫn đến tiêu thụ lượng lớn RAM, cho nên khi thực hiện trên thiết bị Jetson Nano phiên bản 2Gb không thể load hình ảnh từ Camera.
- YOLOv5s chỉ có 8 lớp Convolutional giúp mô hình giảm quá trình xử lý hình ảnh, nâng cao số khung hình trên một giây. Tuy nhiên, việc nối tiếp bởi các lớp BottleneckCSP vẫn giúp khả năng nhận diện vật thể được đảm bảo.
- YOLOv5 có các bản s/m/l, lần lượt theo thứ tự nhỏ/vừa/lớn, các bản của YOLOv5 đều đã được nhóm phát triển Ultralystic cấu hình sẵn và không thể thay đổi thông số được như ở YOLOv3 và YOLOv4. Điều này dẫn đến độ ổn định của mô hình khi ta thực hiện hai lần huấn luyện khác nhau trên cùng một tệp dataset và cùng số vòng huấn luyện thì YOLOv5 vẫn trả về kết quả như nhau.
- Việc tối ưu hóa của mô hình YOLOv5 có độ khó khá cao, khi thường xảy ra lỗi xung đột các phiên bản của thư viện với hệ điều hành Jetpack của Jetson Nano, hơn nữa TensorRT 5.5 (phiên bản mới nhất) và nền tảng Pytorch mà YOLOv5 đang sử dụng chưa có sự tương thích với nhau. Khi nhóm thực nghiệm tối ưu trên Jetson Nano, việc Debug diễn ra trên 3 tiếng đồng hồ mà không có tham số nào được trả về.
- Kết luận: YOLOv5 là mô hình phù hợp chạy trên các máy tính có bộ nhớ cao, tối thiểu là 4Gb RAM.
Hình 4.15 Kiến trúc YOLOv5
( Nguồn : https://github.com/ultralytics/YOLOv5 )
C. TensorRT và Tflite
- TensorRT và Tflite là hai mô hình được nhóm tối ưu từ mô hình đạt hiệu suất cao nhất là YOLOv4-tiny. Nhóm đã đạt được kết quả và có các so sánh sau đây:
o Về Tflite:
Tflite là bản tối ưu hóa được TensorRT phát triển, phù hợp chạy
trên các thiết bị như Google Coral, PC, thiết bị di động sử dụng hệ điều hành Android.
Tflite không được hãng Nvidia hỗ trợ khi chạy trên thiết bị
Jetson Nano, tuy đã cấu hình sử dụng GPU trên thiết bị, nhưng trong khi chạy ứng dụng phát hiện lửa thì GPU vẫn không hoạt động. Tuy không ảnh hưởng đến độ chính xác, nhưng đây vẫn chưa phải kết quả nhóm mong muốn.
Khi Tflite chạy trên Laptop, mô hình đã đạt được hiệu suất rất cao, với lượng tài nguyên máy tính tiêu thụ thấp nhưng lại đạt được hiệu suất rất cao khi đạt tới mức 30 FPS và có xu hướng tăng lên nếu được kết nối bởi Camera chất lượng hơn có khả năng bắt được nhiều khung hình trên một giây.
Kết luận: Tflite là một trong những biện pháp tốt để tối ưu mô hình. Trong tương lại, nếu nhóm có điều kiện sẽ sử dụng mô hình này để thực thi trên thiết bị Coral.
o Về TensorRT:
TensorRT được người dùng Jetson Nano đánh giá là bản tối ưu
tốt nhất để chạy mô hình ứng dụng học sâu trên thiết bị nhúng. Với sự hỗ trợ của nhà sản xuất, TensorRT được hỗ trợ tương thích hệ tính toán song song của GPU (CUDA) trên Jetson Nano, dẫn đến việc khi sử dụng mô hình này, sẽ đạt được hiệu suất rất cao về FPS, cũng như tiết kiệm tài nguyên máy tính RAM, CPU.
Nhược điểm của mô hình này là chỉ có thể chạy trên thiết bị nhúng của hãng Nvdia và không có sự đa dạng về thiết bị sử dụng.
Lý do chọn mô hình YOLOv4-tiny để tối ưu hóa:
Từ bảng thông số, các phân tích đánh giá và kết quả thực nghiệm trên, có thể nhận thấy mô hình YOLOv4-tiny thích hợp để tối ưu hóa sang TensorRT và là mô hình phù hợp nhất với thiết bị Jetson Nano. Mô hình được tối ưu từ YOLOv4 có thể giúp một thiết bị có cấu hình thấp hơn rất nhiều lần so với một máy tính, laptop vẫn có thể xây dựng một hệ thống ứng dụng và chạy với hiệu quả cao. Từ đó, đáp ứng được yêu cầu của khóa luận là xây dựng ứng dụng phát hiện lửa trên thiết bị có cấu hình thấp, phát hiện lửa trong thời gian thực.