Xuất các model Ultralytics YOLO11 sang định dạng model NCNN
Xuất các model Ultralytics YOLO11 sang định dạng model NCNN để chạy inference AI hiệu suất cao, độ trễ thấp trên các thiết bị biên có tài nguyên tính toán và năng lượng hạn chế.

Các giải pháp AI đang ngày càng trở nên phổ biến, ngay cả trong các lĩnh vực quan trọng như quản lý thảm họa, quản lý chất thải và chữa cháy. Khi việc áp dụng tiếp tục tăng lên, các model AI đang được triển khai trong nhiều môi trường đa dạng hơn - không chỉ trên các máy chủ hoặc trên đám mây mà còn trực tiếp trên các thiết bị hoạt động tại hiện trường.
Ví dụ, các thiết bị bay không người lái (drone) và thiết bị có các thành phần edge chạy bằng bộ vi xử lý nhỏ có thể đóng vai trò quan trọng trong các khu vực thảm họa. Được trang bị camera nhiệt, các thiết bị này có thể thu thập và phân tích dữ liệu tại chỗ để định vị những người bị mắc kẹt dưới đống đổ nát. Điều này có thể thực hiện được nhờ computer vision, một nhánh của trí tuệ nhân tạo chuyên diễn giải thông tin hình ảnh từ ảnh và video.
Tuy nhiên, việc triển khai các model vision AI trên các thiết bị edge không đơn giản như bạn nghĩ. Các model AI cần được tối ưu hóa để chạy hiệu quả trên phần cứng có năng lực tính toán và bộ nhớ hạn chế. Đó là lý do tại sao các framework AI như NCNN lại rất cần thiết. Chúng giúp chuyển đổi và tối ưu hóa các model để đạt hiệu suất thời gian thực trên các thiết bị tiêu thụ năng lượng thấp mà không làm giảm độ chính xác.
Cụ thể, các model Ultralytics YOLO như Ultralytics YOLO11 có thể dễ dàng được xuất sang định dạng model NCNN bằng cách sử dụng tích hợp NCNN được hỗ trợ bởi Ultralytics. Việc chuyển đổi YOLO11 sang định dạng model NCNN cho phép model chạy nhanh hơn, sử dụng ít bộ nhớ hơn và hoạt động mượt mà trên các thiết bị khác nhau mà không làm mất đi độ chính xác.
Trong bài viết này, chúng ta sẽ khám phá tích hợp NCNN được hỗ trợ bởi Ultralytics và hướng dẫn bạn cách xuất model YOLO11 sang định dạng model NCNN. Hãy cùng bắt đầu nhé!
Link to this sectionTổng quan về NCNN: Một framework neural network gọn nhẹ#
NCNN là một framework suy luận neural network mã nguồn mở do Tencent phát triển. Nó được thiết kế đặc biệt cho các môi trường di động và edge, cho phép suy luận hiệu suất cao với mức tiêu thụ tài nguyên tối thiểu. Điều này làm cho nó trở nên lý tưởng để triển khai trên các thiết bị hạn chế về tài nguyên như điện thoại thông minh, drone và các thiết bị IoT (Internet of Things).
Framework NCNN đã trở nên phổ biến trong cộng đồng AI và deep learning nhờ tính hiệu quả, tính di động và khả năng tối ưu hóa cho CPU di động (Central Processing Units). Nó cho phép các nhà phát triển chạy các model neural network trên các thiết bị giá rẻ với bộ nhớ và khả năng xử lý hạn chế. Được thiết kế đơn giản và linh hoạt, NCNN hỗ trợ nhiều loại computer vision models và chạy trên nhiều nền tảng, bao gồm Android, Linux, iOS và macOS.

Fig 1. Các model ở định dạng NCNN có thể được triển khai trên nhiều nền tảng.
Link to this sectionCác tính năng chính của tối ưu hóa hiệu suất NCNN#
Dưới đây là một số tính năng chính khiến NCNN trở thành một framework suy luận neural network có tầm ảnh hưởng và được sử dụng rộng rãi:
- Runtime gọn nhẹ, độc lập với phần cứng: Framework NCNN được tối ưu hóa để chạy các model trên CPU tiêu chuẩn và không yêu cầu phần cứng chuyên dụng như GPU (Graphics Processing Units) hoặc NPU (Neural Processing Units).
- Model quantization: Đối với các ứng dụng mà bộ nhớ và tốc độ là yếu tố then chốt, NCNN hỗ trợ các phương pháp lượng tử hóa giúp giảm kích thước model và cải thiện thời gian suy luận. Nó giúp chạy các model AI một cách mượt mà trên các thiết bị di động và nhúng.
- Mã nguồn mở và dễ tiếp cận: Là một framework mã nguồn mở, NCNN hoàn toàn miễn phí cho bất kỳ ai sử dụng, sửa đổi và cải tiến. Điều này thúc đẩy sự đổi mới và khả năng áp dụng rộng rãi trên nhiều trường hợp sử dụng khác nhau.
- Phát triển tích cực và cộng đồng: NCNN được Tencent và cộng đồng nhà phát triển ngày càng lớn mạnh duy trì tích cực trên GitHub, với các bản cập nhật thường xuyên và cải tiến về khả năng tương thích của model.
Link to this sectionXuất YOLO11 sang định dạng model NCNN: Hướng dẫn nhanh#
Bây giờ chúng ta đã thảo luận về NCNN là gì, hãy xem xét kỹ hơn cách xuất các model YOLO11 sang định dạng NCNN.
Link to this sectionBước 1: Cài đặt gói Python của Ultralytics#
Trước khi xuất model, bước đầu tiên là cài đặt gói Python của Ultralytics bằng trình cài đặt gói pip. Bạn có thể thực hiện việc này bằng cách chạy lệnh "pip install ultralytics" trong terminal hoặc command prompt của bạn. Nếu bạn đang làm việc trong Jupyter Notebook hoặc Google Colab, hãy thêm dấu chấm than trước lệnh, ví dụ: "!pip install ultralytics".
Gói Ultralytics cung cấp các công cụ để train, kiểm thử, fine-tune và xuất các model vision AI cho nhiều tác vụ computer vision. Nếu bạn gặp bất kỳ vấn đề nào trong quá trình cài đặt hoặc khi xuất model, tài liệu chính thức của Ultralytics và hướng dẫn về các vấn đề thường gặp (Common Issues guide) là những nguồn tài nguyên tuyệt vời để khắc phục sự cố.
Link to this sectionBước 2: Xuất Ultralytics YOLO11#
Sau khi cài đặt gói Ultralytics, bạn có thể load model YOLO11 của mình và xuất nó sang định dạng NCNN. Ví dụ dưới đây sử dụng một model đã được huấn luyện trước ("yolo11n.pt") và xuất nó ở định dạng NCNN, lưu kết quả đầu ra vào một thư mục có tên là "/yolo11n_ncnn_model".
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="ncnn")Model YOLO11 sau khi xuất có thể được triển khai trên nhiều thiết bị gọn nhẹ khác nhau như điện thoại thông minh, hệ thống nhúng hoặc nền tảng IoT. Quá trình triển khai cũng rất tinh gọn.
Ví dụ, hãy xem đoạn mã dưới đây, hiển thị cách load model đã xuất và chạy suy luận. Suy luận (inferencing) là quá trình sử dụng một model đã được huấn luyện để đưa ra dự đoán trên dữ liệu mới chưa từng thấy. Trong ví dụ này, model được kiểm thử trên một bức ảnh một người đang đi xe đạp, lấy từ một URL công khai.
ncnn_model = YOLO("./yolo11n_ncnn_model")
results = ncnn_model("https://images.pexels.com/photos/19431209/pexels-photo-19431209/free-photo-of-a-man-riding-a-bike-on-a-road.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2.jpg", save=True)Sau khi chạy mã, bạn sẽ tìm thấy hình ảnh đầu ra trong thư mục "runs/detect/predict".

Fig 2. Phát hiện các đối tượng sử dụng model YOLO11 đã xuất ở định dạng NCNN. Ảnh của tác giả.
Link to this sectionTại sao nên chọn phát hiện thời gian thực với NCNN#
Khi bạn khám phá các tích hợp khác nhau mà Ultralytics hỗ trợ, bạn có thể nhận thấy có một số tùy chọn xuất có sẵn. Vậy, khi nào bạn nên chọn định dạng NCNN?
Định dạng xuất NCNN là một lựa chọn đáng tin cậy khi bạn cần triển khai các model YOLO11 trên các thiết bị có tài nguyên hạn chế. Nó đặc biệt hữu ích cho các ứng dụng thời gian thực chạy trực tiếp trên thiết bị, như các thiết bị edge mà không cần kết nối với đám mây. Điều này có nghĩa là model có thể xử lý các tác vụ như phát hiện đối tượng ngay tại chỗ.
Dưới đây là một số tình huống phổ biến mà NCNN rất phù hợp:
-
Triển khai trên di động: Định dạng NCNN được tối ưu hóa cho Android và iOS, giúp dễ dàng tích hợp các model vào các ứng dụng di động để thực hiện suy luận trên thiết bị nhanh chóng với độ trễ tối thiểu.
-
Hệ thống nhúng và thiết bị IoT: Nếu bạn đang triển khai trên các thiết bị như Raspberry Pi hoặc NVIDIA Jetson, việc xuất sang NCNN có thể giúp tăng hiệu suất và khả năng phản hồi.
-
Triển khai trên máy tính để bàn và máy chủ: Mặc dù NCNN rất tuyệt vời cho các thiết bị tiêu thụ năng lượng thấp, nó cũng hỗ trợ Linux, Windows và macOS cho các môi trường máy tính để bàn và máy chủ. Điều này mang lại cho các nhà phát triển các tùy chọn triển khai linh hoạt.

Fig 3. Các tùy chọn để triển khai model YOLO11 với NCNN. Ảnh của tác giả.
Link to this sectionCác trường hợp sử dụng triển khai model YOLO11 với NCNN#
Tiếp theo, hãy đi sâu vào một số trường hợp sử dụng thực tế nơi việc xuất các model YOLO11 sang NCNN có thể tạo ra sự khác biệt thực sự.
Link to this sectionMũ bảo hiểm Vision AI cho chữa cháy#
Mũ bảo hiểm an toàn được trang bị camera và máy tính siêu nhỏ nhúng có thể được sử dụng trong các lĩnh vực như xây dựng và chữa cháy để cải thiện sự an toàn và nhận thức. Các model vision AI thời gian thực, như YOLO11, có thể được chạy trên các thiết bị này để phát hiện các loại đối tượng và thiết bị khác nhau. Ví dụ, những chiếc mũ như vậy có thể giúp lính cứu hỏa phát hiện con người, chướng ngại vật hoặc các mối nguy hiểm trong điều kiện tầm nhìn thấp.
Tuy nhiên, việc chạy các model kích thước đầy đủ trực tiếp trên các thiết bị đeo có thể gây ra hiệu suất chậm và nhanh hết pin. Trong trường hợp này, sử dụng tích hợp NCNN là một lựa chọn thông minh. Nó cho phép suy luận độ trễ thấp, tiết kiệm năng lượng.
Link to this sectionPhân loại chất thải và thùng rác thông minh#
Tương tự, thùng rác thông minh có thể được tích hợp với camera và các bộ xử lý AI edge nhỏ gọn để xác định và phân loại vật liệu khi chúng bị vứt bỏ. Các model vision AI như YOLO11 có thể được huấn luyện tùy chỉnh để phát hiện các loại vật liệu thải khác nhau như giấy, nhựa, cao su, v.v.
Khi rác được xác định, nó có thể được tự động phân loại vào các ngăn riêng biệt dựa trên khả năng tái sử dụng của nó. Bằng cách sử dụng AI edge cùng với các model YOLO11 đã xuất ở định dạng NCNN, các thùng rác này có thể xử lý dữ liệu tại chỗ - mà không cần kết nối internet. Điều này cho phép chúng hoạt động tự chủ và đưa ra các quyết định phân loại thời gian thực với độ trễ tối thiểu.

Fig 4. Phát hiện vật liệu rác thải nhựa sử dụng YOLO11.
Link to this sectionGiám sát gia súc bằng drone và computer vision#
Đôi khi, các khu vực nông nghiệp ở những địa điểm xa xôi thiếu quyền truy cập vào các kết nối internet ổn định hoặc thậm chí là nguồn điện ổn định, điều này hạn chế khả năng chạy các ứng dụng AI trực tuyến. Trong những trường hợp như vậy, các thiết bị edge và drone có thể được sử dụng để xử lý nhiều tác vụ khác nhau.
Một ví dụ điển hình là giám sát gia súc như bò, cừu và gia cầm. Điều này có thể được thực hiện bằng cách sử dụng các model vision AI như YOLO11, có thể được dùng để theo dõi sự di chuyển của động vật, phát hiện dấu hiệu chấn thương, bệnh tật hoặc hành vi bất thường, và cảnh báo cho nông dân khi gia súc đi lạc. Tích hợp NCNN cũng giúp cho việc chạy và xử lý dữ liệu này trực tiếp trên các thiết bị edge trở nên khả thi, biến nó thành một lựa chọn tuyệt vời cho việc phân tích hình ảnh và video tại các trang trại ở những khu vực xa xôi hoặc không có mạng.

Fig 5. Cái nhìn về việc sử dụng YOLO11 để giám sát gia súc.
Link to this sectionCác điểm chính cần lưu ý#
Việc xuất các model YOLO11 sử dụng tích hợp NCNN được hỗ trợ bởi Ultralytics là một cách đơn giản để đưa vision AI vào các môi trường tiêu thụ năng lượng thấp. Cho dù là drone trong các khu vực thảm họa, thùng phân loại rác thông minh hay giám sát gia súc tại các trang trại xa xôi, YOLO và NCNN đều cho phép thực hiện các suy luận AI thời gian thực nhanh chóng, hiệu quả và linh hoạt. Cách tiếp cận này giúp làm cho các hệ thống AI trở nên dễ tiếp cận và đáng tin cậy hơn khi cần thiết nhất.
Bạn muốn tìm hiểu thêm về AI? Hãy khám phá kho lưu trữ GitHub của chúng tôi, kết nối với cộng đồng của chúng tôi, và xem qua các tùy chọn cấp phép của chúng tôi để bắt đầu dự án computer vision của bạn. Tìm hiểu cách các đổi mới như AI trong bán lẻ và computer vision trong chăm sóc sức khỏe đang định hình tương lai trên các trang giải pháp của chúng tôi.






