Ultralytics YOLO27:
Get Started

Cách xuất YOLO26 sang TF GraphDef để triển khai#

Khi triển khai các model thị giác máy tính tiên tiến như YOLO26 trong nhiều môi trường khác nhau, bạn có thể gặp vấn đề về tương thích. GraphDef của TensorFlow của Google, hay TF GraphDef, cung cấp giải pháp bằng cách đưa ra một biểu diễn model đã tuần tự hóa, độc lập với nền tảng. Với định dạng model TF GraphDef, bạn có thể triển khai model YOLO26 trong những môi trường không có đầy đủ hệ sinh thái TensorFlow, chẳng hạn như thiết bị di động hoặc phần cứng chuyên dụng.

Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn từng bước cách xuất model Ultralytics YOLO26 sang định dạng model TF GraphDef. Việc chuyển đổi model giúp đơn giản hóa quy trình triển khai và cho phép sử dụng khả năng thị giác máy tính của YOLO26 trong nhiều ứng dụng và nền tảng hơn.

TensorFlow GraphDef model serialization format

Tại sao nên xuất sang TF GraphDef?#

TF GraphDef là một thành phần mạnh mẽ trong hệ sinh thái TensorFlow do Google phát triển. Có thể dùng TF GraphDef để tối ưu hóa và triển khai các model như YOLO26. Xuất sang TF GraphDef giúp đưa model từ giai đoạn nghiên cứu vào các ứng dụng thực tế. Định dạng này cho phép model chạy trong những môi trường không có đầy đủ framework TensorFlow.

Định dạng GraphDef biểu diễn model dưới dạng đồ thị tính toán đã tuần tự hóa. Nhờ đó, có thể áp dụng nhiều kỹ thuật tối ưu hóa như gộp hằng số, lượng tử hóa và biến đổi đồ thị. Các tối ưu hóa này giúp thực thi hiệu quả, giảm mức sử dụng bộ nhớ và tăng tốc độ suy luận.

Model GraphDef có thể sử dụng các bộ tăng tốc phần cứng như GPU, TPU và chip AI, qua đó cải thiện đáng kể hiệu năng của pipeline suy luận YOLO26. Định dạng TF GraphDef tạo một gói độc lập chứa model và các phần phụ thuộc, giúp đơn giản hóa việc triển khai và tích hợp vào nhiều hệ thống khác nhau.

Các tính năng chính của model TF GraphDef#

TF GraphDef có những tính năng riêng giúp đơn giản hóa triển khai model và tối ưu hóa.

Sau đây là các đặc điểm chính:

  • Tuần tự hóa model: TF GraphDef cung cấp cách tuần tự hóa và lưu trữ model TensorFlow ở định dạng độc lập với nền tảng. Biểu diễn đã tuần tự hóa này cho phép tải và thực thi model mà không cần codebase Python gốc, giúp việc triển khai dễ dàng hơn.

  • Tối ưu hóa đồ thị: TF GraphDef cho phép tối ưu hóa đồ thị tính toán. Những tối ưu hóa này có thể cải thiện hiệu năng bằng cách tinh gọn luồng thực thi, giảm phần dư thừa và điều chỉnh các phép toán cho phù hợp với phần cứng cụ thể.

  • Linh hoạt trong triển khai: Có thể sử dụng model đã xuất sang định dạng GraphDef trong nhiều môi trường, bao gồm thiết bị hạn chế tài nguyên, trình duyệt web và hệ thống có phần cứng chuyên dụng. Điều này mở ra khả năng triển khai rộng rãi hơn cho model TensorFlow của bạn.

  • Tập trung vào môi trường production: GraphDef được thiết kế để triển khai trong môi trường production. GraphDef hỗ trợ thực thi hiệu quả, tính năng tuần tự hóa và các tối ưu hóa phù hợp với trường hợp sử dụng thực tế.

Các tùy chọn triển khai với TF GraphDef#

Trước khi tìm hiểu quy trình xuất model YOLO26 sang TF GraphDef, hãy xem một số tình huống triển khai phổ biến sử dụng định dạng này.

Sau đây là cách triển khai hiệu quả với TF GraphDef trên nhiều nền tảng.

  • TensorFlow Serving: Framework này được thiết kế để triển khai model TensorFlow trong môi trường production. TensorFlow Serving cung cấp khả năng quản lý model, quản lý phiên bản và hạ tầng để phục vụ model hiệu quả ở quy mô lớn. Đây là cách đơn giản để tích hợp model dựa trên GraphDef vào dịch vụ web hoặc API production.

  • Thiết bị di động và nhúng: Với các công cụ như LiteRT, bạn có thể chuyển đổi model TF GraphDef sang các định dạng được tối ưu hóa cho điện thoại thông minh, máy tính bảng và nhiều thiết bị nhúng. Sau đó, có thể sử dụng model để suy luận trực tiếp trên thiết bị, tức là xử lý cục bộ, thường giúp tăng hiệu năng và hỗ trợ hoạt động ngoại tuyến.

  • Trình duyệt web: TensorFlow.js cho phép triển khai model TF GraphDef trực tiếp trong trình duyệt web. Công nghệ này mở đường cho các ứng dụng phát hiện đối tượng theo thời gian thực chạy phía client, tận dụng khả năng của YOLO26 thông qua JavaScript.

  • Phần cứng chuyên dụng: Tính độc lập với nền tảng của TF GraphDef cho phép nhắm đến phần cứng tùy chỉnh, chẳng hạn như bộ tăng tốc và TPU (đơn vị xử lý tensor). Các thiết bị này có thể cải thiện hiệu năng cho những model đòi hỏi nhiều tính toán.

Các tác vụ được hỗ trợ#

Tính năng xuất TF GraphDef hỗ trợ sáu trong số bảy tác vụ của Ultralytics. Chỉ YOLO26 có phân đoạn ngữ nghĩa và ước tính độ sâu, vì đây là họ model duy nhất có các head này. Có thể xuất model pose, nhưng hiện chưa hỗ trợ suy luận Ultralytics GraphDef cho các model đó.

Tác vụYOLOv8YOLO11YOLO26
Phát hiện✅✅✅
Phân đoạn✅✅✅
Ngữ nghĩa❌❌✅
Độ sâu❌❌✅
Phân loại✅✅✅
Tư thế✅✅✅
OBB❌❌❌

Xuất model YOLO26 sang TF GraphDef#

Bạn có thể chuyển đổi model YOLO26 sang định dạng TF GraphDef tương thích với nhiều hệ thống để cải thiện hiệu năng trên các nền tảng.

Cài đặt#

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

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

Để biết hướng dẫn chi tiết và các phương pháp tốt nhất về quy trình cài đặt, hãy xem hướng dẫn cài đặt Ultralytics. Nếu gặp khó khăn khi cài đặt các package cần thiết cho YOLO26, hãy tham khảo hướng dẫn khắc phục sự cố thường gặp để tìm giải pháp và mẹo hữu ích.

Cách sử dụng#

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

Định dạng TF GraphDef hỗ trợ các chế độ Export, Predict và Validate, ngoại trừ model pose hiện chỉ hỗ trợ xuất. Hãy xuất model, sau đó tải model đã xuất để chạy suy luận hoặc xác thực độ chính xác.

Export
from ultralytics import YOLO

# Nạp model YOLO26
model = YOLO("yolo26n.pt")

# Xuất model sang định dạng TF GraphDef
model.export(format="pb")  # tạo 'yolo26n.pb'
Dự đoán
from ultralytics import YOLO

# Tải model TF GraphDef đã xuất
model = YOLO("yolo26n.pb")

# Chạy suy luận
results = model("https://ultralytics.com/images/bus.jpg")
Xác thực
from ultralytics import YOLO

# Tải model TF GraphDef đã xuất
model = YOLO("yolo26n.pb")

# # Đánh giá độ chính xác trên bộ dữ liệu COCO8
metrics = model.val(data="coco8.yaml")

Các tham số xuất model#

Đối sốKiểuMặc địnhMô tả
formatstr'pb'Định dạng đích của model đã xuất, xác định khả năng tương thích với nhiều môi trường triển khai.
imgszint hoặc tuple640Kích thước ảnh mong muốn cho đầu vào model. Có thể là số nguyên cho ảnh vuông hoặc tuple (height, width) để chỉ định kích thước cụ thể.
quantizeint hoặc strNoneXuất cố định ở FP32. GraphDef không hỗ trợ chuyển đổi độ chính xác FP16, INT8 hoặc W8A16 trong quá trình xuất.
opsetintNoneChỉ định phiên bản opset ONNX cho đồ thị ONNX trung gian. Nếu không đặt, phiên bản được hỗ trợ mới nhất sẽ được sử dụng.
batchint1Chỉ định kích thước batch suy luận của model khi xuất hoặc số lượng ảnh tối đa mà model đã xuất xử lý đồng thời ở chế độ predict.
devicestrNoneChỉ định thiết bị dùng để export: 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 model.

Triển khai model YOLO26 TF GraphDef đã xuất#

Sau khi xuất model YOLO26 sang định dạng TF GraphDef, bước tiếp theo là triển khai model. Bước đầu tiên chính và được khuyến nghị để chạy model TF GraphDef là sử dụng phương thức YOLO("model.pb"), như đã trình bày trong đoạn code ví dụ sử dụng ở trên.

Để biết thêm thông tin về cách triển khai model TF GraphDef, hãy tham khảo các tài nguyên sau:

  • TensorFlow Serving: Hướng dẫn về TensorFlow Serving, chỉ cách triển khai và phục vụ model machine learning hiệu quả trong môi trường production.

  • TensorFlow Lite: Trang này mô tả cách chuyển đổi model machine learning sang định dạng được tối ưu hóa cho suy luận trên thiết bị với TensorFlow Lite.

  • TensorFlow.js: Hướng dẫn chuyển đổi model, chỉ cách chuyển model TensorFlow hoặc Keras sang định dạng TensorFlow.js để sử dụng trong ứng dụng web.

Tóm tắt#

Trong hướng dẫn này, chúng tôi đã tìm hiểu cách xuất model Ultralytics YOLO26 sang định dạng TF GraphDef. Nhờ đó, bạn có thể triển khai linh hoạt các model YOLO26 đã tối ưu hóa trong nhiều môi trường khác nhau.

Để biết thêm chi tiết về cách sử dụng, hãy xem tài liệu chính thức về TF GraphDef.

Để biết thêm thông tin về cách tích hợp Ultralytics YOLO26 với các nền tảng và framework khác, hãy xem trang hướng dẫn tích hợp của chúng tôi.

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

  • Có thể xuất liền mạch model Ultralytics YOLO26 sang định dạng TensorFlow GraphDef (TF GraphDef). Định dạng này cung cấp biểu diễn model đã tuần tự hóa, độc lập với nền tảng, lý tưởng để triển khai trong nhiều môi trường như thiết bị di động và web. Để xuất model YOLO26 sang TF GraphDef, hãy làm theo các bước sau:

    Cách sử dụng
    from ultralytics import YOLO
    
    # Nạp model YOLO26
    model = YOLO("yolo26n.pt")
    
    # Xuất model sang định dạng TF GraphDef
    model.export(format="pb")  # tạo 'yolo26n.pb'
    
    # Tải model TF GraphDef đã xuất
    tf_graphdef_model = YOLO("yolo26n.pb")
    
    # Chạy suy luận
    results = tf_graphdef_model("https://ultralytics.com/images/bus.jpg")

    Để biết thêm thông tin về các tùy chọn xuất khác nhau, hãy xem tài liệu Ultralytics về xuất model.

  • Xuất model YOLO26 sang định dạng TF GraphDef mang lại nhiều lợi ích, bao gồm:

    1. Độc lập nền tảng: TF GraphDef cung cấp định dạng độc lập với nền tảng, cho phép triển khai model trên nhiều môi trường, bao gồm thiết bị di động và trình duyệt web.
    2. Tối ưu hóa: Định dạng này cho phép thực hiện một số tối ưu hóa như gộp hằng số, lượng tử hóa và biến đổi đồ thị, giúp tăng hiệu quả thực thi và giảm mức sử dụng bộ nhớ.
    3. Tăng tốc phần cứng: Model ở định dạng TF GraphDef có thể tận dụng các bộ tăng tốc phần cứng như GPU, TPU và chip AI để cải thiện hiệu năng.

    Tìm hiểu thêm về các lợi ích trong phần TF GraphDef của tài liệu.

  • Ultralytics YOLO26 có nhiều ưu điểm so với các model khác như YOLOv5 và YOLOv7. Một số lợi ích chính gồm:

    1. Hiệu năng hiện đại nhất: YOLO26 mang lại tốc độ và độ chính xác vượt trội cho phát hiện đối tượng, phân đoạn instance, phân đoạn ngữ nghĩa và phân loại theo thời gian thực.
    2. Dễ sử dụng: Cung cấp API thân thiện với người dùng để huấn luyện, xác thực, dự đoán và xuất model, phù hợp cho cả người mới bắt đầu lẫn chuyên gia.
    3. Tương thích rộng: Hỗ trợ nhiều định dạng xuất, bao gồm ONNX, TensorRT, CoreML và TensorFlow, giúp linh hoạt lựa chọn phương án triển khai.

    Tìm hiểu thêm trong phần giới thiệu về YOLO26 của chúng tôi.

  • Sau khi xuất model YOLO26 sang định dạng TF GraphDef, bạn có thể triển khai model trên nhiều nền tảng phần cứng chuyên dụng. Các tình huống triển khai phổ biến gồm:

    • TensorFlow Serving: Sử dụng TensorFlow Serving để triển khai model có khả năng mở rộng trong môi trường production. Công cụ này hỗ trợ quản lý model và phục vụ model hiệu quả.
    • Thiết bị di động: Chuyển đổi model TF GraphDef sang TensorFlow Lite được tối ưu hóa cho thiết bị di động và nhúng, cho phép suy luận trực tiếp trên thiết bị.
    • Trình duyệt web: Triển khai model bằng TensorFlow.js để suy luận phía client trong ứng dụng web.
    • Bộ tăng tốc AI: Tận dụng TPU và chip AI tùy chỉnh để tăng tốc suy luận.

    Xem phần các tùy chọn triển khai để biết thông tin chi tiết.

  • Ultralytics cung cấp hướng dẫn và tài nguyên toàn diện để khắc phục các vấn đề thường gặp khi xuất model YOLO26. Nếu gặp sự cố trong quá trình cài đặt hoặc xuất model, hãy tham khảo:

    Các tài nguyên này sẽ giúp bạn khắc phục hầu hết vấn đề liên quan đến xuất và triển khai model YOLO26.

Bình luận