Meet YOLO26: next-gen vision AI.

Link to this sectionXuất Ultralytics YOLO sang NCNN#

Việc triển khai các mô hình computer vision trên các thiết bị có công suất tính toán hạn chế, chẳng hạn như thiết bị di động hoặc hệ thống nhúng, đòi hỏi phải lựa chọn định dạng kỹ lưỡng. Sử dụng một định dạng được tối ưu hóa đảm bảo rằng ngay cả các thiết bị bị hạn chế về tài nguyên cũng có thể xử lý các tác vụ computer vision nâng cao một cách hiệu quả.

Xuất sang định dạng NCNN cho phép bạn tối ưu hóa các mô hình Ultralytics YOLO26 của mình cho các ứng dụng nhẹ trên thiết bị. Hướng dẫn này bao gồm cách chuyển đổi mô hình của bạn sang định dạng NCNN để cải thiện hiệu suất trên các thiết bị di động và nhúng.

Link to this sectionTại sao nên xuất sang NCNN?#

NCNN high-performance neural network inference framework

Framework NCNN, do Tencent phát triển, là một framework tính toán suy luận neural network hiệu năng cao được tối ưu hóa đặc biệt cho các nền tảng di động, bao gồm điện thoại di động, thiết bị nhúng và thiết bị IoT. NCNN tương thích với nhiều nền tảng, bao gồm Linux, Android, iOS và macOS.

NCNN được biết đến với tốc độ xử lý nhanh trên CPU di động và cho phép triển khai nhanh chóng các mô hình deep learning lên các nền tảng di động, khiến nó trở thành lựa chọn tuyệt vời để xây dựng các ứng dụng hỗ trợ AI.

Link to this sectionCác tính năng chính của mô hình NCNN#

Các mô hình NCNN cung cấp một số tính năng chính cho phép machine learning trên thiết bị, giúp các nhà phát triển triển khai mô hình trên các thiết bị di động, nhúng và edge:

  • Hiệu quả và Hiệu năng cao: Các mô hình NCNN rất nhẹ và được tối ưu hóa cho các thiết bị di động và nhúng như Raspberry Pi với tài nguyên hạn chế, đồng thời duy trì accuracy cao trong các tác vụ computer vision.

  • Lượng tử hóa (Quantization): NCNN hỗ trợ lượng tử hóa, một kỹ thuật làm giảm precision của trọng số và kích hoạt mô hình để cải thiện hiệu suất và giảm mức sử dụng bộ nhớ.

  • Tính tương thích: Các mô hình NCNN tương thích với các framework deep learning phổ biến bao gồm TensorFlow, CaffeONNX, cho phép các nhà phát triển tận dụng các mô hình và quy trình làm việc hiện có.

  • Dễ sử dụng: NCNN cung cấp các công cụ thân thiện với người dùng để chuyển đổi mô hình giữa các định dạng, đảm bảo khả năng tương tác mượt mà giữa các môi trường phát triển khác nhau.

  • Tăng tốc GPU Vulkan: NCNN hỗ trợ Vulkan cho suy luận tăng tốc GPU trên nhiều nhà cung cấp bao gồm AMD, Intel và các GPU không phải NVIDIA khác, cho phép triển khai hiệu năng cao trên phạm vi phần cứng rộng hơn.

Link to this sectionCác tùy chọn triển khai với NCNN#

Các mô hình NCNN tương thích với nhiều nền tảng triển khai:

  • Triển khai trên di động: Được tối ưu hóa cho Android và iOS, cho phép tích hợp liền mạch vào các ứng dụng di động để suy luận trên thiết bị hiệu quả.

  • Hệ thống nhúng và thiết bị IoT: Lý tưởng cho các thiết bị bị hạn chế về tài nguyên như Raspberry Pi và NVIDIA Jetson. Nếu việc suy luận tiêu chuẩn trên Raspberry Pi với Ultralytics Guide là chưa đủ, NCNN có thể cung cấp những cải thiện hiệu suất đáng kể.

  • Triển khai trên máy tính để bàn và máy chủ: Hỗ trợ triển khai trên Linux, Windows và macOS cho các quy trình phát triển, đào tạo và đánh giá.

Link to this sectionTăng tốc GPU Vulkan#

NCNN hỗ trợ tăng tốc GPU thông qua Vulkan, cho phép suy luận hiệu năng cao trên nhiều loại GPU bao gồm AMD, Intel và các card đồ họa không phải NVIDIA khác. Điều này đặc biệt hữu ích cho:

  • Hỗ trợ GPU đa nhà cung cấp: Không giống như CUDA, vốn giới hạn ở các GPU NVIDIA, Vulkan hoạt động trên nhiều nhà cung cấp GPU khác nhau.
  • Hệ thống đa GPU: Chọn một thiết bị Vulkan cụ thể trong các hệ thống có nhiều GPU bằng cách sử dụng device="vulkan:0", device="vulkan:1", v.v.
  • Triển khai Edge và máy tính để bàn: Tận dụng tăng tốc GPU trên các thiết bị không có CUDA.

Để sử dụng tăng tốc Vulkan, hãy chỉ định thiết bị Vulkan khi chạy suy luận:

Suy luận Vulkan
from ultralytics import YOLO

# Load the exported NCNN model
ncnn_model = YOLO("./yolo26n_ncnn_model")

# Run inference with Vulkan GPU acceleration (first Vulkan device)
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:0")

# Use second Vulkan device in multi-GPU systems
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:1")
Yêu cầu về Vulkan

Đảm bảo bạn đã cài đặt trình điều khiển Vulkan cho GPU của mình. Hầu hết các trình điều khiển GPU hiện đại đều bao gồm hỗ trợ Vulkan theo mặc định. Bạn có thể xác minh tính khả dụng của Vulkan bằng cách sử dụng các công cụ như vulkaninfo trên Linux hoặc Vulkan SDK trên Windows.

Link to this sectionXuất sang NCNN: Chuyển đổi mô hình YOLO26 của bạn#

Bạn có thể mở rộng khả năng tương thích của mô hình và tính linh hoạt khi triển khai bằng cách chuyển đổi các mô hình YOLO26 sang định dạng NCNN.

Link to this sectionCác Tác vụ được Hỗ trợ#

Xuất NCNN hỗ trợ bộ tác vụ chuẩn của Ultralytics YOLO26.

Link to this sectionCài đặt#

Để cài đặt các gói cần thiết, hãy chạy:

Cài đặt
# Install the required package for YOLO26
pip install ultralytics

Để có hướng dẫn chi tiết và các phương pháp tốt nhất, hãy xem Ultralytics Installation guide. Nếu bạn gặp bất kỳ khó khăn nào, hãy tham khảo Common Issues guide của chúng tôi để tìm giải pháp.

Link to this sectionCách sử dụng#

Tất cả Ultralytics YOLO26 models đều được thiết kế để hỗ trợ xuất ngay khi cài đặt, giúp dễ dàng tích hợp chúng vào quy trình triển khai ưu tiên của bạn. Bạn có thể xem danh sách đầy đủ các định dạng xuất và tùy chọn cấu hình được hỗ trợ để chọn thiết lập tốt nhất cho ứng dụng của mình.

Định dạng NCNN hỗ trợ các chế độ Export, PredictValidate. Hãy xuất mô hình của bạn, sau đó tải mô hình đã xuất để chạy suy luận hoặc xác thực độ chính xác của nó.

Export
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to NCNN format
model.export(format="ncnn")  # creates '/yolo26n_ncnn_model'
Predict
from ultralytics import YOLO

# Load the exported NCNN model
model = YOLO("./yolo26n_ncnn_model")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Xác thực
from ultralytics import YOLO

# Load the exported NCNN model
model = YOLO("./yolo26n_ncnn_model")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Link to this sectionCác Tham số Xuất#

Tham sốLoại (Type)Mặc địnhMô tả
formatstr'ncnn'Định dạng mục tiêu cho mô hình đã xuất, xác định khả năng tương thích với nhiều môi trường triển khai khác nhau.
imgszint hoặc tuple640Kích thước hình ảnh mong muốn cho đầu vào mô hình. Có thể là một số nguyên cho hình ảnh vuông hoặc một tuple (height, width) cho các kích thước cụ thể.
halfboolFalseCho phép lượng tử hóa FP16 (độ chính xác một nửa), giúp giảm kích thước mô hình và có khả năng tăng tốc độ suy luận trên phần cứng được hỗ trợ.
batchint1Chỉ định kích thước suy luận batch của model xuất hoặc số lượng hình ảnh tối đa mà model xuất sẽ xử lý đồng thời ở chế độ predict.
devicestrNoneChỉ định thiết bị để xuất: GPU (device=0), CPU (device=cpu), MPS cho Apple silicon (device=mps).

Để biết thêm chi tiết về quy trình xuất, hãy truy cập Ultralytics documentation page on exporting.

Link to this sectionTriển khai các mô hình NCNN YOLO26 đã xuất#

Sau khi xuất các mô hình Ultralytics YOLO26 của bạn sang định dạng NCNN, bạn có thể triển khai chúng bằng phương thức YOLO("yolo26n_ncnn_model/") như hiển thị trong ví dụ sử dụng ở trên. Để biết hướng dẫn triển khai dành riêng cho từng nền tảng, hãy xem các tài nguyên sau:

  • Android: Xây dựng và tích hợp các mô hình NCNN cho object detection trong các ứng dụng Android.

  • macOS: Triển khai các mô hình NCNN trên hệ thống macOS.

  • Linux: Triển khai các mô hình NCNN trên các thiết bị Linux bao gồm Raspberry Pi và các hệ thống nhúng tương tự.

  • Windows x64: Triển khai các mô hình NCNN trên Windows x64 bằng Visual Studio.

Link to this sectionTóm tắt#

Hướng dẫn này đã bao gồm việc xuất các mô hình Ultralytics YOLO26 sang định dạng NCNN để cải thiện hiệu quả và tốc độ trên các thiết bị bị hạn chế về tài nguyên.

Để biết thêm chi tiết, hãy tham khảo official NCNN documentation. Đối với các tùy chọn xuất khác, hãy truy cập integration guide page của chúng tôi.

Link to this sectionFAQ#

Link to this sectionLàm thế nào để tôi xuất các mô hình Ultralytics YOLO26 sang định dạng NCNN?#

Để xuất mô hình Ultralytics YOLO26 của bạn sang định dạng NCNN:

  • Python: Sử dụng phương thức export từ lớp YOLO.

    from ultralytics import YOLO
    
    # Load a YOLO26 model
    model = YOLO("yolo26n.pt")
    
    # Export to NCNN format
    model.export(format="ncnn")  # creates '/yolo26n_ncnn_model'
  • CLI: Sử dụng lệnh yolo export.

    yolo export model=yolo26n.pt format=ncnn # creates '/yolo26n_ncnn_model'

Để biết các tùy chọn xuất chi tiết, hãy xem tài liệu Export.

Link to this sectionNhững ưu điểm của việc xuất mô hình YOLO26 sang NCNN là gì?#

Việc xuất các mô hình Ultralytics YOLO26 sang NCNN mang lại một số lợi ích:

  • Hiệu quả: Các mô hình NCNN được tối ưu hóa cho các thiết bị di động và nhúng, đảm bảo hiệu năng cao ngay cả với tài nguyên tính toán hạn chế.
  • Lượng tử hóa: NCNN hỗ trợ các kỹ thuật như lượng tử hóa giúp cải thiện tốc độ mô hình và giảm mức sử dụng bộ nhớ.
  • Khả năng tương thích rộng: Bạn có thể triển khai các mô hình NCNN trên nhiều nền tảng, bao gồm Android, iOS, Linux và macOS.
  • Tăng tốc GPU Vulkan: Tận dụng tăng tốc GPU trên AMD, Intel và các GPU không phải NVIDIA khác thông qua Vulkan để suy luận nhanh hơn.

Để biết thêm chi tiết, hãy xem phần Why Export to NCNN?.

Link to this sectionTại sao tôi nên sử dụng NCNN cho các ứng dụng AI di động của mình?#

NCNN, do Tencent phát triển, được tối ưu hóa đặc biệt cho các nền tảng di động. Những lý do chính để sử dụng NCNN bao gồm:

  • Hiệu năng cao: Được thiết kế để xử lý hiệu quả và nhanh chóng trên các CPU di động.
  • Đa nền tảng: Tương thích với các framework phổ biến như TensorFlow và ONNX, giúp việc chuyển đổi và triển khai các mô hình trên các nền tảng khác nhau trở nên dễ dàng hơn.
  • Hỗ trợ cộng đồng: Sự hỗ trợ cộng đồng tích cực đảm bảo các cải tiến và cập nhật liên tục.

Để biết thêm thông tin, hãy xem phần Key Features of NCNN Models.

Link to this sectionNhững nền tảng nào được hỗ trợ để model deployment với NCNN?#

NCNN rất linh hoạt và hỗ trợ nhiều nền tảng:

  • Di động: Android, iOS.
  • Hệ thống nhúng và thiết bị IoT: Các thiết bị như Raspberry Pi và NVIDIA Jetson.
  • Máy tính để bàn và máy chủ: Linux, Windows và macOS.

Để cải thiện hiệu suất trên Raspberry Pi, hãy cân nhắc sử dụng định dạng NCNN như được nêu chi tiết trong Raspberry Pi Guide của chúng tôi.

Link to this sectionLàm thế nào để tôi có thể triển khai các mô hình NCNN Ultralytics YOLO26 trên Android?#

Để triển khai các mô hình YOLO26 của bạn trên Android:

  1. Xây dựng cho Android: Làm theo hướng dẫn NCNN Build for Android.
  2. Tích hợp với Ứng dụng của bạn: Sử dụng NCNN Android SDK để tích hợp mô hình đã xuất vào ứng dụng của bạn để suy luận trên thiết bị một cách hiệu quả.

Để biết hướng dẫn chi tiết, hãy xem Deploying Exported YOLO26 NCNN Models.

Để biết các hướng dẫn và trường hợp sử dụng nâng cao hơn, hãy truy cập Ultralytics deployment guide.

Link to this sectionLàm thế nào để tôi sử dụng tăng tốc GPU Vulkan với các mô hình NCNN?#

NCNN hỗ trợ Vulkan để tăng tốc GPU trên AMD, Intel và các GPU không phải NVIDIA khác. Để sử dụng Vulkan:

from ultralytics import YOLO

# Load NCNN model and run with Vulkan GPU
model = YOLO("yolo26n_ncnn_model")
results = model("image.jpg", device="vulkan:0")  # Use first Vulkan device

Đối với các hệ thống đa GPU, hãy chỉ định chỉ số thiết bị (ví dụ: vulkan:1 cho GPU thứ hai). Đảm bảo các trình điều khiển Vulkan đã được cài đặt cho GPU của bạn. Xem phần Vulkan GPU Acceleration để biết thêm chi tiết.

Bình luận