Bằng cách nhấp vào “Chấp nhận tất cả Cookie”, bạn đồng ý với việc lưu trữ cookie trên thiết bị của mình để tăng cường khả năng điều hướng trang web, phân tích việc sử dụng trang web và hỗ trợ các nỗ lực tiếp thị của chúng tôi. Thêm thông tin
Cài đặt Cookie
Bằng cách nhấp vào “Chấp nhận tất cả Cookie”, bạn đồng ý với việc lưu trữ cookie trên thiết bị của mình để tăng cường khả năng điều hướng trang web, phân tích việc sử dụng trang web và hỗ trợ các nỗ lực tiếp thị của chúng tôi. Thêm thông tin
Xem cách dễ dàng đưa Ultralytics YOLO11 lên các thiết bị Apple với CoreML và cho phép các tác vụ thị giác máy tính ngoại tuyến nhanh chóng cho các ứng dụng iOS thời gian thực.
Với việc Apple giới thiệu các tính năng như Apple Intelligence, rõ ràng là AI trên thiết bị đang trở thành một phần trung tâm trong cách chúng ta sử dụng điện thoại của mình. Đối với các nhà phát triển, sự thay đổi này có nghĩa là người dùng đang áp dụng các ứng dụng iOS sử dụng các khả năng như thị giác máy tính để mang lại trải nghiệm thông minh hơn, phản hồi nhanh hơn.
Thị giác máy tính là một loại trí tuệ nhân tạo (AI) cho phép máy tính hiểu và phân tích thông tin trực quan, chẳng hạn như hình ảnh hoặc video. Trên thiết bị di động, nó có thể được sử dụng trong thời gian thực để phát hiện, phân loại và tương tác với các đối tượng thông qua camera của điện thoại. Các mô hình Vision AI như Ultralytics YOLO11 có thể được huấn luyện tùy chỉnh để nhận dạng các đối tượng cụ thể, tùy thuộc vào nhu cầu của ứng dụng của bạn.
Tuy nhiên, YOLO11 không được thiết lập để chạy trên iOS ngay lập tức. Để triển khai YOLO11 trên iPhone hoặc các thiết bị Apple khác, đặc biệt là để sử dụng ngoại tuyến, nó cần được chuyển đổi thành định dạng được tối ưu hóa cho hệ sinh thái của Apple.
Đây chính xác là loại vấn đề mà CoreML được xây dựng để giải quyết. CoreML là framework máy học của Apple, được xây dựng để chạy các mô hình cục bộ và tích hợp liền mạch vào các ứng dụng iOS và macOS. Việc tích hợp CoreML, được hỗ trợ bởi Ultralytics, giúp bạn dễ dàng xuất mô hình của mình để triển khai cục bộ trên iPhone.
Trong bài viết này, chúng ta sẽ xem xét kỹ hơn về cách xuất mô hình YOLO11 sang định dạng CoreML. Chúng ta cũng sẽ khám phá các trường hợp sử dụng theo thời gian thực cho thấy những lợi thế của việc chạy các mô hình thị giác máy tính trực tiếp trên các thiết bị iOS. Hãy cùng bắt đầu!
CoreML là gì?
CoreML là một framework học máy (ML) được phát triển bởi Apple, cho phép các nhà phát triển tích hợp trực tiếp các mô hình ML đã được huấn luyện vào các ứng dụng trên toàn bộ hệ sinh thái của Apple, bao gồm iOS (iPhone và iPad), macOS (Mac), watchOS (Apple Watch) và tvOS (Apple TV). Nó được thiết kế để giúp việc học máy trở nên dễ dàng và hiệu quả hơn trên các thiết bị Apple bằng cách cho phép các mô hình chạy trực tiếp trên thiết bị mà không cần kết nối internet.
Cốt lõi của CoreML là một định dạng mô hình thống nhất hỗ trợ một loạt các tác vụ AI như phân loại hình ảnh, phát hiện đối tượng, nhận dạng giọng nói và xử lý ngôn ngữ tự nhiên. Framework này được tối ưu hóa để tận dụng tối đa phần cứng của Apple, sử dụng CPU (bộ xử lý trung tâm), GPU (bộ xử lý đồ họa) và ANE (Apple Neural Engine) để thực thi các mô hình một cách nhanh chóng và hiệu quả.
CoreML hỗ trợ nhiều loại mô hình và tương thích với các thư viện học máy phổ biến, bao gồm TensorFlow, PyTorch, scikit-learn, XGBoost và LibSVM. Điều này giúp các nhà phát triển dễ dàng mang các khả năng ML tiên tiến vào các ứng dụng hàng ngày, đồng thời đảm bảo chúng chạy mượt mà trên các thiết bị Apple.
Hình 1. CoreML hỗ trợ các mô hình từ các framework AI phổ biến khác (Nguồn).
Các tính năng chính của CoreML
Dưới đây là một số tính năng chính khiến CoreML trở thành một công cụ đáng tin cậy để tích hợp AI vào các ứng dụng của Apple:
Tối ưu hóa mô hình: CoreML hỗ trợ các kỹ thuật nén như lượng tử hóa và tỉa bớt để giảm kích thước mô hình và cải thiện hiệu quả thời gian chạy.
Cá nhân hóa trên thiết bị: Khung ML của Apple hỗ trợ cá nhân hóa trên thiết bị, cho phép các mô hình được đào tạo và cập nhật cục bộ dựa trên tương tác của người dùng.
Dự đoán không đồng bộ: Khung này cho phép ứng dụng của bạn chạy các dự đoán trong nền, giữ cho giao diện người dùng mượt mà và phản hồi nhanh trong khi xử lý các tác vụ AI.
Học đa nhiệm (Multi-task learning): CoreML hỗ trợ các mô hình có thể thực hiện nhiều tác vụ cùng một lúc, chẳng hạn như phát hiện đối tượng và nhận dạng văn bản trong cùng một hình ảnh.
Cách xuất YOLOv8 sang định dạng CoreML
Bây giờ chúng ta đã hiểu rõ hơn về framework CoreML, hãy cùng xem xét cách sử dụng tích hợp CoreML được hỗ trợ bởi Ultralytics để xuất mô hình YOLOv8 sang định dạng CoreML.
Bước 1: Thiết lập môi trường của bạn
Để truy cập các tính năng tích hợp do Ultralytics cung cấp, hãy bắt đầu bằng cách cài đặt gói Ultralytics Python. Đây là một thư viện nhẹ, dễ sử dụng, giúp đơn giản hóa các tác vụ như huấn luyện, đánh giá, dự đoán và xuất các mô hình Ultralytics YOLO.
Bạn có thể cài đặt gói Ultralytics Python bằng cách chạy “pip install ultralytics” trong cửa sổ dòng lệnh. Nếu bạn đang sử dụng một môi trường như Jupyter Notebook hoặc Google Colab, hãy thêm dấu chấm than (!) trước lệnh: “!pip install ultralytics”.
Nếu bạn gặp bất kỳ sự cố nào trong quá trình cài đặt hoặc trong khi xuất sang CoreML, hãy kiểm tra tài liệu chính thức của Ultralytics hoặc hướng dẫn Các vấn đề thường gặp để được trợ giúp.
Bước 2: Xuất YOLO11 sang CoreML
Sau khi cài đặt thành công gói, bạn đã sẵn sàng tải mô hình YOLO11 và chuyển đổi nó sang định dạng CoreML.
Nếu bạn không chắc nên sử dụng mô hình YOLO11 được huấn luyện trước nào, bạn có thể khám phá phạm vi các mô hình được hỗ trợ bởi Ultralytics. Mỗi mô hình cung cấp một sự cân bằng khác nhau về tốc độ, kích thước và độ chính xác, và bạn có thể chọn mô hình phù hợp nhất cho dự án của mình. Bạn cũng có thể sử dụng mô hình YOLO11 được huấn luyện tùy chỉnh nếu bạn đã huấn luyện một mô hình trên bộ dữ liệu của riêng mình.
Trong đoạn mã dưới đây, một tệp mô hình YOLO11 được huấn luyện trước có tên là "yolo11n.pt" được sử dụng. Trong quá trình xuất, nó được chuyển đổi thành một gói CoreML có tên là "yolo11n.mlpackage".
Mô hình "yolo11n" là phiên bản nano, được tối ưu hóa cho tốc độ và sử dụng tài nguyên thấp. Tùy thuộc vào nhu cầu của dự án, bạn cũng có thể chọn các kích thước mô hình khác như "s" cho nhỏ, "m" cho vừa, "l" cho lớn hoặc "x" cho cực lớn. Mỗi phiên bản cung cấp một sự cân bằng khác nhau giữa hiệu suất và độ chính xác.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="coreml")
Bước 3: Chạy inference bằng mô hình CoreML đã xuất
Sau khi xuất sang định dạng CoreML, YOLO11 có thể dễ dàng được tích hợp vào các ứng dụng iOS, cho phép các tác vụ thị giác máy tính theo thời gian thực như phát hiện đối tượng trên các thiết bị như iPhone, iPad và máy Mac.
Ví dụ: đoạn mã dưới đây minh họa cách tải mô hình CoreML đã xuất và thực hiện suy luận. Suy luận là quá trình sử dụng mô hình đã được huấn luyện để đưa ra dự đoán trên dữ liệu mới. Trong trường hợp này, mô hình phân tích hình ảnh một gia đình đang chơi với bóng.
Sau khi chạy mã, hình ảnh đầu ra sẽ được lưu trong thư mục "runs/detect/predict".
Hình 2. Sử dụng mô hình YOLO11 đã xuất ở định dạng CoreML để phát hiện đối tượng. Ảnh của tác giả.
Các mô hình CoreML đã xuất có thể được sử dụng ở đâu?
Xuất YOLOv8 sang CoreML mang lại sự linh hoạt để xây dựng các ứng dụng thị giác máy tính đa dạng có thể chạy hiệu quả trên iPhone, iPad và máy Mac. Tiếp theo, hãy xem xét một số tình huống thực tế mà tích hợp này có thể đặc biệt hữu ích.
Các ứng dụng thực tế tăng cường và trò chơi được hỗ trợ bởi các mô hình CoreML
Thực tế tăng cường (AR) kết hợp nội dung kỹ thuật số với thế giới thực bằng cách phủ các yếu tố ảo lên chế độ xem camera trực tiếp. Nó đang trở thành một phần quan trọng của trò chơi trên thiết bị di động, tạo ra trải nghiệm tương tác và nhập vai hơn.
Với YOLO11 được xuất sang định dạng CoreML, các nhà phát triển iOS có thể xây dựng các trò chơi AR nhận dạng các đối tượng trong thế giới thực như ghế dài, cây cối hoặc biển báo bằng camera của điện thoại. Sau đó, trò chơi có thể phủ các vật phẩm ảo, chẳng hạn như tiền xu, manh mối hoặc sinh vật, lên trên các đối tượng này để tăng cường môi trường xung quanh của người chơi.
Đằng sau hậu trường, điều này hoạt động bằng cách sử dụng phát hiện đối tượng (object detection) và theo dõi đối tượng (object tracking). YOLO11 phát hiện và xác định các đối tượng trong thời gian thực, trong khi theo dõi giữ các đối tượng đó trong tầm nhìn khi máy ảnh di chuyển, đảm bảo các yếu tố ảo luôn thẳng hàng với thế giới thực.
Người chơi có thể hướng điện thoại của họ, khám phá môi trường xung quanh và tương tác với những gì họ thấy để thu thập vật phẩm hoặc hoàn thành các thử thách nhanh. Tất cả những điều này có thể chạy trực tiếp trên thiết bị mà không cần kết nối internet, giúp trải nghiệm mượt mà và hấp dẫn.
Các ứng dụng iOS tích hợp với mô hình CoreML để nhận dạng biển số xe (ANPR) theo thời gian thực.
Nhận dạng biển số xe tự động (ANPR) là một ứng dụng thị giác máy tính được sử dụng để phát hiện và đọc biển số xe. Nó thường được sử dụng trong các hệ thống an ninh, giám sát giao thông và kiểm soát truy cập. Với CoreML và các mô hình như YOLO11, ANPR hiện có thể chạy hiệu quả trên các thiết bị iOS.
Có một ứng dụng ANPR trên iPhone của bạn có thể đặc biệt hữu ích trong môi trường tập trung vào bảo mật. Ví dụ: nó có thể giúp các nhóm nhanh chóng xác định xem một chiếc xe đi vào khu vực hạn chế có được phép hay không.
Một ứng dụng như vậy có thể sử dụng mô hình Vision AI như YOLO11, được tích hợp thông qua CoreML, để phát hiện xe và định vị biển số xe của chúng trong thời gian thực bằng camera của thiết bị. Sau khi phát hiện biển số, công nghệ Nhận dạng ký tự quang học (OCR) có thể đọc số giấy phép. Sau đó, ứng dụng có thể so sánh số này với cơ sở dữ liệu cục bộ hoặc trên đám mây để xác minh quyền truy cập hoặc gắn cờ các phương tiện trái phép.
Hình 3. Thị giác AI có thể được sử dụng để phát hiện và đọc số biển số xe. (Nguồn).
Các ứng dụng tập trung vào khả năng truy cập có thể tận dụng các mô hình CoreML
AI đã có tác động lớn đến khả năng tiếp cận, giúp phá bỏ các rào cản cho những người khiếm thị. Với các công cụ như CoreML và các mô hình thị giác máy tính như YOLO11, các nhà phát triển có thể xây dựng các ứng dụng iOS mô tả thế giới xung quanh người dùng trong thời gian thực, giúp các công việc hàng ngày trở nên dễ dàng hơn và độc lập hơn.
Ví dụ: một người khiếm thị có thể hướng camera iPhone của họ vào môi trường xung quanh. Ứng dụng sử dụng object detection để nhận dạng các yếu tố chính, như xe cộ, người hoặc biển báo đường phố, và thuật lại những gì nó thấy. Điều này có thể được sử dụng trong các tình huống như điều hướng một con phố đông đúc hoặc hiểu một tình huống khẩn cấp.
Hình 4. Một ví dụ về sử dụng YOLO11 để phát hiện người
Những điều cần nhớ
Xuất YOLOv8 sang định dạng CoreML tạo ra những cơ hội mới cho các ứng dụng thời gian thực, bao gồm cả phát hiện đối tượng ngoại tuyến trên các thiết bị iOS. Từ nông nghiệp và an ninh đến khả năng tiếp cận, sự kết hợp này cho phép các nhà phát triển xây dựng các ứng dụng thông minh, hiệu quả và tập trung vào quyền riêng tư, chạy hoàn toàn trên thiết bị.
Chỉ với một vài bước đơn giản, bạn có thể chuyển đổi mô hình YOLO11 của mình và thêm các tính năng thị giác máy tính đáng tin cậy vào iPhone. Tuyệt vời nhất là, nó hoạt động mà không cần kết nối internet. Nhìn chung, tích hợp CoreML mang sức mạnh của AI tiên tiến vào các ứng dụng di động hàng ngày, giúp chúng nhanh hơn, phản hồi nhanh hơn và sẵn sàng chạy ở mọi nơi.