YOLO Vision Thâm Quyến
Thâm Quyến
Tham gia ngay

Dễ dàng xuất các mô hình AI nhận diện hình ảnh bằng Ultralytics . Khám phá cách chuẩn bị mô hình chỉ với vài cú nhấp chuột để triển khai trên thiết bị đầu cuối, thiết bị di động và đám mây.

Bạn đang tìm cách triển khai một dự án thị giác máy tính?

Tìm hiểu về cấp phép

Tháng trước, chúng tôi đã ra mắt Ultralytics , một không gian làm việc tích hợp được thiết kế để đơn giản hóa toàn bộ quy trình xử lý hình ảnh. Nền tảng này tập hợp các tính năng AI về xử lý hình ảnh quan trọng, bao gồm quản lý tập dữ liệu, chú thích, huấn luyện mô hình, kiểm thử, triển khai và giám sát, vào một giao diện duy nhất, được tối ưu hóa.

Hình 1. Một cái nhìn tổng quan về Ultralytics (Nguồn)

Trong quy trình làm việc toàn diện này, việc triển khai đóng vai trò then chốt trong việc đưa các mô hình từ giai đoạn thử nghiệm sang ứng dụng thực tế. Trước đây, chúng tôi đã tìm hiểu các tùy chọn triển khai khác nhau có sẵn trên nền tảng, bao gồm suy luận chia sẻ qua API, các điểm cuối chuyên dụng cho các triển khai sản xuất có khả năng mở rộng, và xuất mô hình để chạy trên các thiết bị biên hoặc hạ tầng bên ngoài.

Bây giờ, chúng ta hãy cùng tìm hiểu kỹ hơn về tính năng xuất mô hình và cách thức tính năng này hỗ trợ việc triển khai trên các môi trường khác nhau. Khác với tính năng suy luận chia sẻ và các điểm cuối chuyên dụng — vốn thực thi mô hình trong cơ sở hạ tầng Ultralytics — tính năng xuất mô hình cho phép triển khai và chạy mô hình trong các môi trường bên ngoài như thiết bị biên, ứng dụng di động và cơ sở hạ tầng tùy chỉnh.

Trước khi các mô hình có thể chạy trong các môi trường này, chúng cần được chuyển đổi sang các định dạng được hỗ trợ bởi môi trường chạy đích. Mỗi cấu hình triển khai đều có những yêu cầu riêng, từ các định dạng nhẹ dành cho thiết bị di động và thiết bị biên đến các định dạng hiệu suất cao dành cho hệ thống đám mây và hệ thống GPU.

Thông thường, quy trình này có thể tốn nhiều thời gian, đòi hỏi phải sử dụng các tập lệnh, các thành phần phụ thuộc và nhiều công cụ khác nhau. Với Ultralytics , việc xuất dữ liệu trở nên đơn giản hơn rất nhiều. Chỉ với vài cú nhấp chuột, các mô hình có thể được chuyển đổi và tối ưu hóa mà không cần thiết lập thêm.

Trong bài viết này, chúng ta sẽ tìm hiểu ý nghĩa của việc xuất mô hình, các định dạng được hỗ trợ bởi Ultralytics , cũng như cách chọn định dạng phù hợp nhất cho trường hợp sử dụng của bạn. Hãy bắt đầu nào!

Tổng quan về việc xuất mô hình

Việc xuất mô hình bao gồm việc chuyển đổi một mô hình đã được huấn luyện sẵn hoặc được huấn luyện tùy chỉnh sang định dạng có thể sử dụng bên ngoài khung công tác ban đầu của nó. YOLO Ultralytics được xây dựng bằng PyTorch lưu trữ dưới định dạng gốc, rất phù hợp cho việc huấn luyện, đánh giá và thử nghiệm trong PyTorch .

Tuy nhiên, các môi trường triển khai thường có các yêu cầu về môi trường chạy và phần cứng khác nhau. Do đó, định dạng được sử dụng trong quá trình huấn luyện không phải lúc nào cũng phù hợp để triển khai.

Ví dụ, một ứng dụng di động có thể cần một định dạng nhẹ, được tối ưu hóa để tiết kiệm năng lượng, trong khi một ứng dụng dựa trên trình duyệt lại cần một định dạng có thể chạy hiệu quả trong môi trường web. 

Các thiết bị ngoại vi, chẳng hạn như camera và hệ thống nhúng, phù hợp với các mô hình nhỏ gọn và nhanh chóng, trong khi các hệ thống đám mây lại được thiết kế để thực hiện suy luận với hiệu suất cao. Để hỗ trợ các tình huống khác nhau này, các mô hình cần được xuất sang các định dạng tương thích. 

Tại sao tính năng xuất mô hình lại quan trọng hơn bao giờ hết

Ngày nay, các mô hình thị giác máy tính đang được triển khai gần hơn với nơi dữ liệu được tạo ra, đặc biệt là trên các thiết bị ngoại vi. Điện thoại thông minh chạy các ứng dụng thị giác thời gian thực, camera CCTV thực hiện giám sát ngay trên thiết bị, và các hệ thống tự động dựa vào việc ra quyết định tức thì.

Tuy nhiên, việc triển khai trong những môi trường này đi kèm với những thách thức riêng. Các thiết bị biên có sức mạnh tính toán hạn chế, yêu cầu nghiêm ngặt về độ trễ, cũng như những hạn chế về bộ nhớ và mức tiêu thụ năng lượng. Một mô hình hoạt động tốt trong quá trình huấn luyện với đủ tài nguyên có thể sẽ không chạy hiệu quả trong những điều kiện hạn chế này.

Việc xuất mô hình sang định dạng phù hợp có thể giúp giải quyết những thách thức này. Bằng cách chuyển đổi mô hình một cách thích hợp, mô hình có thể được tối ưu hóa về tốc độ, giảm kích thước và đảm bảo tương thích với phần cứng cụ thể. 

Đồng thời, việc xuất dữ liệu mang lại sự linh hoạt. Cùng một mô hình có thể được điều chỉnh để phù hợp với các môi trường triển khai khác nhau bằng cách chuyển đổi nó sang nhiều định dạng khác nhau tùy theo yêu cầu cụ thể.

Hình 2. Một số định dạng xuất dữ liệu có sẵn trên Ultralytics (Nguồn)

Ví dụ, định dạngNCNN được tối ưu hóa cho các thiết bị di động và thiết bị biên với mức tiêu thụ tài nguyên thấp. Trong khi đó, OpenVINO được thiết kế riêng cho Intel và mang lại hiệu suất cao hơn trên bộ xử lý trung tâm (CPU), bộ xử lý đồ họa (GPU) và bộ xử lý thần kinh (NPU). 

Trong hầu hết các trường hợp, để đạt được mức độ linh hoạt này, người dùng phải đối mặt với việc chuyển đổi thủ công, các mối phụ thuộc và nhiều công cụ khác nhau, khiến quy trình trở nên tốn thời gian và phức tạp. Ultralytics giúp tối ưu hóa quy trình làm việc này bằng cách giúp việc xuất mô hình trở nên thuận tiện hơn và dễ quản lý hơn.

Cách Ultralytics đơn giản hóa việc xuất mô hình

Thông thường, việc xuất mô hình được coi là một bước riêng biệt và phức tạp trong quy trình xử lý hình ảnh. Ultralytics đã thay đổi điều này bằng cách tích hợp tùy chọn xuất mô hình trực tiếp vào một không gian làm việc duy nhất, bao quát toàn bộ quy trình từ huấn luyện đến triển khai.

Một trong những ưu điểm nổi bật của nó là khả năng xuất dữ liệu mà không cần viết mã. Người dùng không cần phải viết kịch bản, quản lý môi trường hay sử dụng các lệnh dành riêng cho từng khung công tác. Chỉ với vài cú nhấp chuột qua giao diện đơn giản, người dùng có thể xuất các mô hình.

Hình 3. Ví dụ về việc xuất mô hình từ Ultralytics (Nguồn)

Đằng sau hậu trường, nền tảng này đảm nhận phần công việc nặng nhọc. Các tác vụ thường đòi hỏi nhiều công cụ và thiết lập thủ công nay đã được tối ưu hóa thành một quy trình duy nhất. Bạn không cần phải cài đặt các thành phần phụ thuộc bổ sung hay lo lắng về các vấn đề tương thích, giúp việc chuyển từ mô hình đã được huấn luyện sang giải pháp sẵn sàng đưa vào sản xuất trở nên dễ dàng hơn rất nhiều.

Các định dạng xuất dữ liệu được hỗ trợ bởi Ultralytics

Ultralytics hỗ trợ 17 định dạng xuất, giúp việc chuẩn bị các mô hình cho nhiều môi trường triển khai khác nhau trở nên dễ dàng mà không gây thêm phức tạp.

Dưới đây là tổng quan về một số định dạng xuất dữ liệu thường được sử dụng:

  • Tính đa nền tảng và khả năng tương tác: ONNX TorchScript sử dụng rộng rãi để chạy các mô hình trên các khung công tác và môi trường khác nhau. ONNX như một cầu nối giữa các hệ sinh thái, giúp việc chuyển đổi mô hình giữa các công cụ trở nên dễ dàng hơn, trong khi TorchScript chạy PyTorch trong môi trường sản xuất mà không cần Python .
  • Suy luận hiệu suất cao trên GPU: TensorRT thiết kế dành riêng cho NVIDIA và tập trung vào việc tối ưu hóa mô hình nhằm đạt độ trễ thấp và thông lượng cao. Công cụ này hỗ trợ các kỹ thuật như giảm độ chính xác và hợp nhất lớp để tăng tốc quá trình suy luận, khiến nó trở thành lựa chọn lý tưởng cho các ứng dụng thời gian thực và quy mô sản xuất.
  • Triển khai trên thiết bị di động và tại biên: CoreML, LiteRT (TensorFlow ) và NCNN tối ưu hóa cho các thiết bị có tài nguyên tính toán và bộ nhớ hạn chế. Các định dạng này giúp giảm kích thước mô hình và nâng cao hiệu quả, cho phép hoạt động mượt mà trên điện thoại thông minh, hệ thống nhúng và phần cứng biên. CoreML thường CoreML sử dụng trong hệ sinh thái Apple, trong khi LiteRT phổ biến trên Android.
  • Thực thi được tối ưu hóa cho phần cứng: OpenVINO thiết kế riêng cho Intel , bao gồm CPU, GPU và VPU, đồng thời giúp nâng cao tốc độ và hiệu quả suy luận trên các thiết bị này. Các định dạng dành riêng cho phần cứng như vậy rất hữu ích khi bạn cần khai thác hiệu suất tối đa từ một hệ thống cụ thể.
  • Các môi trường chạy chuyên dụng và dành riêng cho từng khung công nghệ: Các định dạng như PaddlePaddle ExecuTorch hỗ trợ các hệ sinh thái cụ thể và các nhu cầu triển khai, bao gồm việc chạy mô hình một cách hiệu quả trên các thiết bị biên hoặc tích hợp với các bộ công cụ học sâu cụ thể.

Cách xuất mô hình bằng Ultralytics

Việc xuất mô hình trên Ultralytics là một quy trình đơn giản, dựa trên giao diện người dùng. Toàn bộ quy trình được thực hiện thông qua giao diện, không cần đến các tập lệnh hay công cụ dòng lệnh.

Dưới đây là cách bạn có thể xuất mô hình bằng nền tảng này:

  • Đăng nhập và chọn mô hình của bạn: Truy cập dự án của bạn và mở mô hình đã được huấn luyện mà bạn muốn xuất.
  • Chuyển đến tab Xuất: Trong bảng điều khiển mô hình, nhấp vào tab Xuất để xem các tùy chọn xuất có sẵn.
  • Chọn định dạng xuất: Chọn định dạng như ONNX, TensorRT hoặc CoreML theo nhu cầu triển khai của bạn.
  • ‍Cấu hình cài đặt xuất (tùy chọn): Điều chỉnh các thông số như kích thước hình ảnh, độ chính xác hoặc kích thước lô để tối ưu hóa hiệu suất.
  • Bắt đầu quá trình xuất: Nhấp vào “Bắt đầu xuất” để bắt đầu quá trình. Nền tảng sẽ tự động xử lý việc chuyển đổi.
  • Tải xuống mô hình đã xuất: Sau khi quá trình xuất hoàn tất, bạn có thể tải xuống mô hình và sử dụng nó trong quy trình triển khai của mình.
Hình 4. Hướng dẫn cấu hình cài đặt xuất dữ liệu trên Ultralytics

Chọn định dạng xuất phù hợp

Khi tìm hiểu các định dạng xuất dữ liệu khác nhau được hỗ trợ bởi Ultralytics , bạn có thể băn khoăn không biết nên chọn định dạng nào. Câu trả lời thực sự phụ thuộc vào nơi và cách bạn dự định sử dụng mô hình của mình.

Dưới đây là một số yếu tố cần xem xét:

  • Yêu cầu về độ trễ: Đối với các ứng dụng thời gian thực như phân tích video hoặc hệ thống tự động, độ trễ thấp là yếu tố then chốt. Các định dạng được tối ưu hóa cho quá trình suy luận hiệu suất cao, chẳng hạn như TensorRT, thường phù hợp hơn.
  • Hạn chế về phần cứng: Các thiết bị có bộ nhớ và sức mạnh xử lý hạn chế, chẳng hạn như điện thoại di động hoặc hệ thống nhúng, cần các định dạng nhẹ như LiteRT hoặc NCNN. 
  • Kích thước mô hình và mức tiêu thụ điện năng: Khi làm việc với các thiết bị biên, kích thước mô hình và mức tiêu thụ điện năng trở nên rất quan trọng. Các mô hình nhỏ gọn và được tối ưu hóa giúp đảm bảo hiệu suất ổn định mà không làm cạn kiệt tài nguyên.
  • Môi trường triển khai: Nếu mô hình của bạn cần chạy trên các nền tảng khác nhau, các định dạng như ONNX sự linh hoạt. Đối với các trường hợp sử dụng dành riêng cho nền tảng cụ thể, chẳng hạn như iOS , CoreML thường CoreML lựa chọn tốt hơn.

Không có định dạng nào phù hợp với mọi trường hợp. Vấn đề thực sự nằm ở việc cân bằng giữa hiệu suất, khả năng tương thích và những hạn chế của môi trường mục tiêu của bạn. Ultralytics giúp việc này trở nên dễ dàng hơn bằng cách cho phép bạn thử nghiệm và so sánh các định dạng khác nhau mà không tốn thêm công sức.

Những điều cần nhớ

Việc xuất dữ liệu là một bước quan trọng để chuẩn bị cho mô hình của bạn sẵn sàng ứng dụng trong thực tế trên nhiều môi trường khác nhau. Với Ultralytics , quy trình này trở nên đơn giản hơn rất nhiều, cho phép bạn chuyển đổi và tối ưu hóa mô hình mà không cần thiết lập thêm hay gặp phải sự phức tạp. Bằng cách chọn định dạng phù hợp với trường hợp sử dụng của mình, bạn có thể đảm bảo mô hình của mình hoạt động hiệu quả bất kể nơi nào bạn triển khai.

Hãy tham gia cộng đồng đang ngày càng phát triển của chúng tôi và truy cập kho lưu trữ GitHub của chúng tôi để tìm hiểu thêm về thị giác máy tính. Khám phá các trang giới thiệu giải pháp của chúng tôi để biết thêm về các ứng dụng như trí tuệ nhân tạo trong lĩnh vực robotthị giác máy tính trong lĩnh vực logistics. Khám phá các tùy chọn cấp phép của chúng tôi và bắt đầu phát triển với công nghệ thị giác AI! 

Hãy cùng nhau xây dựng tương lai của trí tuệ nhân tạo!

Bắt đầu hành trình của bạn với tương lai của học máy