Chuyển đến nội dung

Cách Xuất sang NCNN từ YOLO11 để Triển Khai Mượt Mà

Việc triển khai các mô hình thị giác máy tính trên các thiết bị có sức mạnh tính toán hạn chế, chẳng hạn như hệ thống di động hoặc nhúng, có thể khó khăn. Bạn cần đảm bảo rằng bạn sử dụng một định dạng được tối ưu hóa để có hiệu suất tối ưu. Điều này đảm bảo rằng ngay cả các thiết bị có sức mạnh xử lý hạn chế cũng có thể xử lý tốt các nhiệm vụ thị giác máy tính nâng cao.

Tính năng xuất sang định dạng NCNN cho phép bạn tối ưu hóa các mô hình Ultralytics YOLO11 của mình cho các ứng dụng dựa trên thiết bị nhẹ. Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn cách chuyển đổi mô hình của mình sang định dạng NCNN, giúp mô hình của bạn hoạt động tốt hơn trên nhiều thiết bị di động và thiết bị nhúng.

Tại sao bạn nên xuất sang NCNN?

Tổng quan về NCNN

Framework NCNN, được phát triển bởi Tencent, là một framework tính toán suy luận neural network hiệu suất 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 học sâu lên các nền tảng di động. Điều này giúp bạn dễ dàng xây dựng các ứng dụng thông minh, đưa sức mạnh của AI vào ngay trong tầm tay bạn.

Các tính năng chính của mô hình NCNN

Các mô hình NCNN cung cấp một loạt các tính năng chính cho phép học máy trên thiết bị bằng cách giúp các nhà phát triển chạy mô hình của họ trên các thiết bị di động, nhúng và biên:

  • Hiệu quả và Hiệu suất cao: Các mô hình NCNN được tạo ra để có hiệu quả và nhẹ, được tối ưu hóa để chạy trên các thiết bị di động và nhúng như Raspberry Pi với tài nguyên hạn chế. Chúng cũng có thể đạt được hiệu suất cao với độ chính xác cao trên các tác vụ dựa trên thị giác máy tính khác nhau.

  • Lượng tử hóa: Các mô hình NCNN thường hỗ trợ lượng tử hóa, là một kỹ thuật làm giảm độ chính xác của trọng số và kích hoạt của mô hình. Điều này dẫn đến những cải tiến hơn nữa về hiệu suất và giảm dung lượng bộ nhớ.

  • Khả năng tương thích: Các mô hình NCNN tương thích với các framework deep learning phổ biến như TensorFlow, CaffeONNX. Khả năng tương thích này cho phép các nhà phát triển sử dụng các mô hình và quy trình làm việc hiện có một cách dễ dàng.

  • Dễ sử dụng: Các mô hình NCNN được thiết kế để dễ dàng tích hợp vào nhiều ứng dụng khác nhau, nhờ khả năng tương thích với các framework deep learning phổ biến. Ngoài ra, NCNN cung cấp các công cụ thân thiện với người dùng để chuyển đổi các mô hình giữa các định dạng khác nhau, đảm bảo khả năng tương tác mượt mà trong toàn bộ quá trình phát triển.

Các tùy chọn triển khai với NCNN

Trước khi chúng ta xem xét mã để xuất các mô hình YOLO11 sang định dạng NCNN, hãy hiểu cách các mô hình NCNN thường được sử dụng.

Các mô hình NCNN, được thiết kế để đạt hiệu quả và hiệu suất cao, tương thích với nhiều nền tảng triển khai khác nhau:

  • Triển khai trên thiết bị di động: Được tối ưu hóa đặc biệt 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 hiệu quả trên thiết bị.

  • Hệ thống nhúng và thiết bị IoT: Nếu bạn thấy rằng việc chạy suy luận trên Raspberry Pi với Hướng dẫn Ultralytics không đủ nhanh, việc chuyển sang mô hình NCNN đã xuất có thể giúp tăng tốc độ. NCNN rất phù hợp cho các thiết bị như Raspberry Pi và NVIDIA Jetson, đặc biệt trong các tình huống bạn cần xử lý nhanh ngay trên thiết bị.

  • Triển Khai trên Máy Tính Để Bàn và Máy Chủ: Có khả năng được triển khai trong môi trường máy tính để bàn và máy chủ trên Linux, Windows và macOS, hỗ trợ phát triển, huấn luyện và đánh giá với năng lực tính toán cao hơn.

Xuất sang NCNN: Chuyển đổi Mô hình YOLO11 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 trong triển khai bằng cách chuyển đổi các mô hình YOLO11 sang định dạng NCNN.

Cà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 YOLO11
pip install ultralytics

Để biết hướng dẫn chi tiết và các phương pháp hay nhất liên quan đến quy trình cài đặt, hãy xem hướng dẫn Cài đặt Ultralytics của chúng tôi. Trong khi cài đặt các gói cần thiết cho YOLO11, nếu bạn gặp bất kỳ khó khăn nào, hãy tham khảo hướng dẫn Các Vấn đề Thường gặp của chúng tôi để biết các giải pháp và mẹo.

Cách sử dụng

Tất cả các mô hình Ultralytics YOLO11 đều được thiết kế để hỗ trợ xuất ngay lập tức, giúp bạn dễ dàng tích hợp chúng vào quy trình triển khai ưa thích của mình. 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.

Cách sử dụng

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to NCNN format
model.export(format="ncnn")  # creates '/yolo11n_ncnn_model'

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

# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to NCNN format
yolo export model=yolo11n.pt format=ncnn # creates '/yolo11n_ncnn_model'

# Run inference with the exported model
yolo predict model='./yolo11n_ncnn_model' source='https://ultralytics.com/images/bus.jpg'

Các đối số xuất

Đối số Loại Mặc định Mô tả
format str 'ncnn' Dạng mục tiêu cho mô hình được xuất, xác định khả năng tương thích với các môi trường triển khai khác nhau.
imgsz int hoặc tuple 640 Kích thước hình ảnh mong muốn cho đầu vào của mô hình. Có thể là một số nguyên cho hình ảnh vuông hoặc một bộ giá trị (height, width) cho các kích thước cụ thể.
half bool False Cho phép lượng tử hóa FP16 (nửa độ chính xác), 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ợ.
batch int 1 Chỉ định kích thước suy luận theo lô của mô hình xuất hoặc số lượng hình ảnh tối đa mà mô hình đã xuất sẽ xử lý đồng thời ở chế độ predict chế độ.
device str None Chỉ đị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 trang tài liệu Ultralytics về xuất.

Triển khai các Mô Hình YOLO11 NCNN Đã Xuất

Sau khi xuất thành công các mô hình Ultralytics YOLO11 của bạn sang định dạng NCNN, giờ đây bạn có thể triển khai chúng. Bước đầu tiên và được khuyến nghị để chạy mô hình NCNN là sử dụng phương pháp YOLO("yolo11n_ncnn_model/"), như được trình bày trong đoạn mã sử dụng trước đó. Tuy nhiên, để biết hướng dẫn chuyên sâu về cách triển khai các mô hình NCNN của bạn trong nhiều cài đặt khác, hãy xem các tài nguyên sau:

  • Android: Blog này giải thích cách sử dụng các mô hình NCNN để thực hiện các tác vụ như phát hiện đối tượng thông qua các ứng dụng Android.

  • macOS: Tìm hiểu cách sử dụng các mô hình NCNN để thực hiện các tác vụ thông qua macOS.

  • Linux: Khám phá trang này để tìm hiểu cách triển khai các mô hình NCNN trên các thiết bị có tài nguyên hạn chế như Raspberry Pi và các thiết bị tương tự khác.

  • Windows x64 sử dụng VS2017: Khám phá blog này để tìm hiểu cách triển khai các mô hình NCNN trên windows x64 bằng Visual Studio Community 2017.

Tóm tắt

Trong hướng dẫn này, chúng ta đã xem xét việc xuất các mô hình Ultralytics YOLO11 sang định dạng NCNN. Bước chuyển đổi này rất quan trọng để cải thiện hiệu quả và tốc độ của các mô hình YOLO11, làm cho chúng hiệu quả hơn và phù hợp hơn với môi trường điện toán có tài nguyên hạn chế.

Để biết hướng dẫn chi tiết về cách sử dụng, vui lòng tham khảo tài liệu NCNN chính thức.

Ngoài ra, nếu bạn quan tâm đến việc khám phá các tùy chọn tích hợp khác cho Ultralytics YOLO11, hãy nhớ truy cập trang hướng dẫn tích hợp của chúng tôi để biết thêm thông tin chi tiết.

Câu hỏi thường gặp

Làm cách nào để xuất các mô hình Ultralytics YOLO11 sang định dạng NCNN?

Để xuất mô hình Ultralytics YOLO11 của bạn sang định dạng NCNN, hãy làm theo các bước sau:

  • Python: Sử dụng export function từ lớp YOLO.

    from ultralytics import YOLO
    
    # Load the YOLO11 model
    model = YOLO("yolo11n.pt")
    
    # Export to NCNN format
    model.export(format="ncnn")  # creates '/yolo11n_ncnn_model'
    
  • CLI: Sử dụng yolo với lệnh export đối số.

    yolo export model=yolo11n.pt format=ncnn # creates '/yolo11n_ncnn_model'
    

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

Những ưu điểm của việc xuất mô hình YOLO11 sang NCNN là gì?

Xuất mô hình Ultralytics YOLO11 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 suất 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.

Để biết thêm chi tiết, hãy xem phần Xuất sang NCNN trong tài liệu.

Tại sao nên sử dụng NCNN cho các ứng dụng AI trên thiết bị di động?

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

  • Hiệu suất cao: Được thiết kế để xử lý nhanh chóng và hiệu quả trên 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 bạn dễ dàng chuyển đổi và triển khai các mô hình trên các nền tảng khác nhau.
  • Hỗ trợ Cộng đồng: Hỗ trợ cộng đồng tích cực đảm bảo những cải tiến và cập nhật liên tục.

Để hiểu rõ hơn, hãy truy cập tổng quan về NCNN trong tài liệu.

Những nền tảng nào được hỗ trợ để triển khai mô hình NCNN?

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

  • Thiết bị 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.

Nếu việc chạy các mô hình trên Raspberry Pi không đủ nhanh, việc chuyển đổi sang định dạng NCNN có thể tăng tốc độ, như được trình bày chi tiết trong Hướng dẫn về Raspberry Pi của chúng tôi.

Làm cách nào để triển khai các mô hình Ultralytics YOLO11 NCNN trên Android?

Để triển khai các mô hình YOLO11 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 hiệu quả trên thiết bị.

Để có hướng dẫn từng bước, hãy tham khảo hướng dẫn của chúng tôi về Triển khai các Mô hình YOLO11 NCNN.

Để có thêm các hướng dẫn nâng cao và các trường hợp sử dụng, hãy truy cập trang tài liệu Ultralytics.



📅 Đã tạo 1 năm trước ✏️ Cập nhật 4 tháng trước

Bình luận