Các câu hỏi thường gặp (FAQ) về Ultralytics YOLO#
Phần FAQ này giải đáp các câu hỏi và vấn đề phổ biến mà người dùng có thể gặp phải khi làm việc với các kho lưu trữ YOLO của Ultralytics.
Câu hỏi thường gặp#
Ultralytics là một công ty AI computer vision chuyên về các mô hình phát hiện đối tượng tiên tiến và image segmentation, tập trung vào dòng sản phẩm YOLO (You Only Look Once). Các dịch vụ của công ty bao gồm:
- Các bản cài đặt mã nguồn mở của YOLO26 (mới nhất) và YOLO11 (thế hệ trước)
- Nhiều loại pretrained models khác nhau cho các tác vụ computer vision
- Một Python package toàn diện để tích hợp liền mạch các mô hình YOLO vào các dự án
- Các tools linh hoạt để huấn luyện, kiểm thử và triển khai mô hình
- Extensive documentation và một cộng đồng hỗ trợ nhiệt tình
Việc cài đặt gói Ultralytics rất đơn giản bằng cách sử dụng pip:
pip install ultralyticsĐể có phiên bản phát triển mới nhất, hãy cài đặt trực tiếp từ kho lưu trữ GitHub:
pip install git+https://github.com/ultralytics/ultralytics.gitHướng dẫn cài đặt chi tiết có thể được tìm thấy trong quickstart guide.
Yêu cầu tối thiểu:
- Python 3.8+
- PyTorch 1.8+
- GPU tương thích CUDA (cho tăng tốc GPU)
Cấu hình khuyến nghị:
- Python 3.8+
- PyTorch 1.10+
- NVIDIA GPU với CUDA 11.2+
- RAM 8GB trở lên
- Dung lượng ổ đĩa trống 50GB trở lên (cho lưu trữ tập dữ liệu và huấn luyện mô hình)
Để khắc phục các sự cố thường gặp, hãy truy cập trang YOLO Common Issues.
Để huấn luyện một mô hình YOLO tùy chỉnh:
-
Chuẩn bị tập dữ liệu của bạn ở YOLO format (hình ảnh và các tệp văn bản nhãn txt tương ứng).
-
Tạo một tệp YAML mô tả cấu trúc và các lớp của tập dữ liệu (xem dataset YAML example).
-
Sử dụng mã Python sau để bắt đầu huấn luyện:
from ultralytics import YOLO # Load a model model = YOLO("yolo26n.yaml") # build a new model from scratch model = YOLO("yolo26n.pt") # load a pretrained model (recommended for training) # Train the model results = model.train(data="path/to/your/data.yaml", epochs=100, imgsz=640)
Để có hướng dẫn chi tiết hơn, bao gồm việc chuẩn bị dữ liệu và các tùy chọn huấn luyện nâng cao, hãy tham khảo training guide toàn diện.
-
Ultralytics cung cấp nhiều mô hình pretrained đa dạng cho các tác vụ khác nhau:
- Phát hiện đối tượng: YOLO26n, YOLO26s, YOLO26m, YOLO26l, YOLO26x
- Instance Segmentation: YOLO26n-seg, YOLO26s-seg, YOLO26m-seg, YOLO26l-seg, YOLO26x-seg
- Semantic Segmentation: YOLO26n-sem, YOLO26s-sem, YOLO26m-sem, YOLO26l-sem, YOLO26x-sem
- Depth Estimation: YOLO26n-depth, YOLO26s-depth, YOLO26m-depth, YOLO26l-depth, YOLO26x-depth
- Phân loại: YOLO26n-cls, YOLO26s-cls, YOLO26m-cls, YOLO26l-cls, YOLO26x-cls
- Ước tính tư thế: YOLO26n-pose, YOLO26s-pose, YOLO26m-pose, YOLO26l-pose, YOLO26x-pose
- Phát hiện hướng (OBB): YOLO26n-obb, YOLO26s-obb, YOLO26m-obb, YOLO26l-obb, YOLO26x-obb
Các mô hình này khác nhau về kích thước và độ phức tạp, mang lại các sự đánh đổi khác nhau giữa tốc độ và accuracy. Khám phá toàn bộ danh mục pretrained models để tìm lựa chọn phù hợp nhất cho dự án của bạn.
Để thực hiện suy luận với một mô hình đã huấn luyện:
from ultralytics import YOLO # Load a model model = YOLO("path/to/your/model.pt") # Perform inference results = model("path/to/image.jpg") # Process results for r in results: print(r.boxes) # print bbox predictions print(r.masks) # print mask predictions print(r.probs) # print class probabilitiesĐối với các tùy chọn suy luận nâng cao, bao gồm xử lý theo lô và suy luận video, hãy xem prediction guide chi tiết.
Chắc chắn rồi! Các mô hình Ultralytics được thiết kế để triển khai linh hoạt trên nhiều nền tảng:
- Thiết bị biên: Tối ưu hóa suy luận trên các thiết bị như NVIDIA Jetson hoặc Intel Neural Compute Stick bằng cách sử dụng TensorRT, ONNX hoặc OpenVINO.
- Di động: Triển khai trên các thiết bị Android hoặc iOS bằng cách chuyển đổi model sang LiteRT hoặc Core ML.
- Đám mây: Tận dụng các framework như TensorFlow Serving hoặc PyTorch Serve để triển khai đám mây có khả năng mở rộng.
- Web: Triển khai inference trên trình duyệt sử dụng LiteRT.js hoặc ONNX.js.
Ultralytics cung cấp các hàm xuất để chuyển đổi mô hình sang nhiều định dạng khác nhau nhằm phục vụ việc triển khai. Khám phá dải rộng các deployment options để tìm giải pháp tốt nhất cho trường hợp sử dụng của bạn.
Các điểm khác biệt chính bao gồm:
- End-to-End NMS-Free Inference: YOLO26 hoạt động nguyên bản theo kiểu end-to-end, tạo ra các dự đoán trực tiếp mà không cần non-maximum suppression (NMS), giúp giảm độ trễ và đơn giản hóa việc triển khai.
- Loại bỏ DFL: YOLO26 loại bỏ module Distribution Focal Loss, giúp đơn giản hóa quá trình xuất và cải thiện khả năng tương thích với các thiết bị biên và thiết bị tiêu thụ điện năng thấp.
- Bộ tối ưu hóa MuSGD: Sự kết hợp lai giữa SGD và Muon (lấy cảm hứng từ Kimi K2 của Moonshot AI) giúp huấn luyện ổn định hơn và hội tụ nhanh hơn.
- Hiệu suất CPU: YOLO26 mang lại hiệu suất suy luận trên CPU nhanh hơn tới 43%, rất lý tưởng cho các thiết bị không có GPU.
- Tối ưu hóa tác vụ cụ thể: Tăng cường phân đoạn với loss ngữ nghĩa và các proto đa quy mô, RLE cho ước tính tư thế chính xác và giải mã OBB cải tiến với loss góc.
- Tác vụ: Cả hai mô hình đều hỗ trợ object detection và instance segmentation, trong khi YOLO26 bổ sung thêm semantic segmentation cho dự đoán mức độ điểm ảnh dày đặc và monocular depth estimation cho độ sâu theo từng điểm ảnh. Cả hai mô hình cũng hỗ trợ phân loại, ước lượng tư thế và phát hiện đối tượng định hướng (OBB) trong một framework hợp nhất.
Để có cái nhìn so sánh chi tiết về các tính năng và chỉ số hiệu suất, hãy truy cập YOLO26 documentation page.
Đóng góp cho Ultralytics là một cách tuyệt vời để cải thiện dự án và mở rộng kỹ năng của bạn. Dưới đây là cách bạn có thể tham gia:
- Fork kho lưu trữ Ultralytics trên GitHub.
- Tạo một branch mới cho tính năng hoặc sửa lỗi của bạn.
- Thực hiện các thay đổi và đảm bảo tất cả các bài kiểm thử đều vượt qua.
- Gửi pull request kèm mô tả rõ ràng về các thay đổi của bạn.
- Tham gia vào quá trình đánh giá mã.
Bạn cũng có thể đóng góp bằng cách báo cáo lỗi, đề xuất tính năng hoặc cải thiện tài liệu. Để biết hướng dẫn chi tiết và các phương pháp hay nhất, hãy tham khảo contributing guide.
Việc cài đặt gói Ultralytics trong Python rất đơn giản. Hãy sử dụng pip bằng cách chạy lệnh sau trong terminal hoặc command prompt của bạn:
pip install ultralyticsĐối với phiên bản phát triển tiên tiến, hãy cài đặt trực tiếp từ kho lưu trữ GitHub:
pip install git+https://github.com/ultralytics/ultralytics.gitĐể biết hướng dẫn cài đặt cụ thể theo môi trường và mẹo khắc phục sự cố, hãy tham khảo quickstart guide toàn diện.
Ultralytics YOLO sở hữu một bộ tính năng phong phú cho các tác vụ thị giác máy tính nâng cao:
- Phát hiện thời gian thực: Phát hiện và phân loại đối tượng hiệu quả trong các tình huống thời gian thực.
- Khả năng đa nhiệm: Thực hiện phát hiện đối tượng, instance segmentation, semantic segmentation, monocular depth estimation, phân loại, ước lượng tư thế và phát hiện đối tượng định hướng (OBB) với một framework hợp nhất.
- Pretrained Models: Truy cập nhiều loại pretrained models cân bằng giữa tốc độ và độ chính xác cho các trường hợp sử dụng khác nhau.
- Tùy chỉnh huấn luyện: Dễ dàng tinh chỉnh các mô hình trên các tập dữ liệu tùy chỉnh với training pipeline linh hoạt.
- Nhiều Deployment Options: Xuất mô hình sang các định dạng khác nhau như TensorRT, ONNX và CoreML để triển khai trên các nền tảng khác nhau.
- Tài liệu phong phú: Hưởng lợi từ documentation toàn diện và cộng đồng hỗ trợ cho các quy trình computer vision của bạn.
Việc nâng cao hiệu suất mô hình YOLO có thể đạt được thông qua một số kỹ thuật:
- Hyperparameter Tuning: Thử nghiệm với các siêu tham số khác nhau bằng cách sử dụng Hyperparameter Tuning Guide để tối ưu hóa hiệu suất mô hình.
- Data Augmentation: Triển khai các kỹ thuật như lật, chia tỷ lệ, xoay và điều chỉnh màu sắc để nâng cao tập dữ liệu huấn luyện và cải thiện khả năng tổng quát hóa của mô hình.
- Transfer Learning: Tận dụng các pretrained models và tinh chỉnh chúng trên tập dữ liệu cụ thể của bạn bằng Train guide.
- Xuất sang các định dạng hiệu quả: Chuyển đổi mô hình của bạn sang các định dạng được tối ưu hóa như TensorRT hoặc ONNX để suy luận nhanh hơn bằng cách sử dụng Export guide.
- Đánh giá chuẩn (Benchmarking): Sử dụng Benchmark Mode để đo lường và cải thiện tốc độ cũng như độ chính xác suy luận một cách có hệ thống.
Có, các mô hình Ultralytics YOLO được thiết kế để triển khai linh hoạt, bao gồm các thiết bị di động và thiết bị biên:
- Di động: Chuyển đổi mô hình sang LiteRT hoặc CoreML để tích hợp liền mạch vào các ứng dụng Android hoặc iOS. Tham khảo LiteRT Integration Guide và CoreML Integration Guide để biết hướng dẫn cụ thể theo nền tảng.
- Thiết bị biên: Tối ưu hóa suy luận trên các thiết bị như NVIDIA Jetson hoặc phần cứng biên khác bằng cách sử dụng TensorRT hoặc ONNX. Edge TPU Integration Guide cung cấp các bước chi tiết để triển khai ở biên.
Để có cái nhìn tổng quan toàn diện về các chiến lược triển khai trên nhiều nền tảng khác nhau, hãy tham khảo deployment options guide.
Việc thực hiện suy luận với một mô hình Ultralytics YOLO đã huấn luyện rất đơn giản:
-
Tải mô hình:
from ultralytics import YOLO model = YOLO("path/to/your/model.pt") -
Chạy suy luận:
results = model("path/to/image.jpg") for r in results: print(r.boxes) # print bounding box predictions print(r.masks) # print mask predictions print(r.probs) # print class probabilities
Đối với các kỹ thuật suy luận nâng cao, bao gồm xử lý theo lô, suy luận video và tiền xử lý tùy chỉnh, hãy tham khảo prediction guide chi tiết.
-
Ultralytics cung cấp nhiều tài nguyên để giúp bạn bắt đầu và làm chủ các công cụ của họ:
- 📚 Official documentation: Hướng dẫn toàn diện, tài liệu tham khảo API và các phương pháp hay nhất.
- 💻 GitHub repository: Mã nguồn, các tập lệnh ví dụ và đóng góp từ cộng đồng.
- ✍️ Ultralytics blog: Các bài viết chi tiết, trường hợp sử dụng và thông tin chuyên sâu về kỹ thuật.
- 💬 Community forums: Kết nối với những người dùng khác, đặt câu hỏi và chia sẻ kinh nghiệm của bạn.
- 🎥 YouTube channel: Video hướng dẫn, bản demo và hội thảo trực tuyến về các chủ đề khác nhau của Ultralytics.
Các tài nguyên này cung cấp ví dụ về mã, trường hợp sử dụng thực tế và hướng dẫn từng bước cho nhiều tác vụ khác nhau khi sử dụng các model của Ultralytics.
Nếu bạn cần hỗ trợ thêm, hãy tham khảo tài liệu của Ultralytics hoặc liên hệ với cộng đồng thông qua GitHub Issues hoặc discussion forum chính thức.