Các câu hỏi thường gặp về Ultralytics YOLO (FAQ)#
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 repository YOLO của Ultralytics.
FAQ#
Ultralytics là một công ty AI về thị giác máy tính, chuyên về các model phát hiện đối tượng và phân đoạn ảnh tiên tiến, tập trung vào dòng YOLO (You Only Look Once). Các sản phẩm của họ bao gồm:
- Các triển khai mã nguồn mở của YOLO26 (mới nhất) và YOLO11 (thế hệ trước)
- Nhiều model pretrained cho các tác vụ thị giác máy tính khác nhau
- Một package Python toàn diện để tích hợp liền mạch các model YOLO vào dự án
- Các tool linh hoạt để train, test và deploy model
- Tài liệu phong phú và cộng đồng hỗ trợ tích cực
Cài đặt package Ultralytics rất đơn giản bằng pip:
pip install ultralyticsĐể sử dụng phiên bản phát triển mới nhất, hãy cài đặt trực tiếp từ repository GitHub:
pip install git+https://github.com/ultralytics/ultralytics.gitBạn có thể tìm thấy hướng dẫn cài đặt chi tiết trong hướng dẫn bắt đầu nhanh.
Yêu cầu tối thiểu:
- Python 3.8+
- PyTorch 1.8+
- GPU tương thích với CUDA (để tăng tốc GPU)
Thiết lập khuyến nghị:
- Python 3.8+
- PyTorch 1.10+
- GPU NVIDIA với CUDA 11.2+
- RAM 8GB+
- Dung lượng đĩa trống 50GB+ (để lưu dataset và train model)
Để khắc phục các vấn đề phổ biến, hãy truy cập trang Các vấn đề thường gặp với YOLO.
Để train model YOLO tùy chỉnh:
-
Chuẩn bị dataset theo định dạng YOLO (ảnh và các file txt nhãn tương ứng).
-
Tạo file YAML mô tả cấu trúc và các class của dataset (xem ví dụ YAML của dataset).
-
Sử dụng đoạn code Python sau để bắt đầu train:
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)
Để xem hướng dẫn chuyên sâu hơn, bao gồm chuẩn bị dữ liệu và các tùy chọn train nâng cao, hãy tham khảo hướng dẫn training.
-
Ultralytics cung cấp nhiều model pretrained cho các tác vụ khác nhau:
- Phát hiện đối tượng: YOLO26n, YOLO26s, YOLO26m, YOLO26l, YOLO26x
- Phân đoạn instance: YOLO26n-seg, YOLO26s-seg, YOLO26m-seg, YOLO26l-seg, YOLO26x-seg
- Phân đoạn semantic: YOLO26n-sem, YOLO26s-sem, YOLO26m-sem, YOLO26l-sem, YOLO26x-sem
- Ước lượng độ sâu: 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 lượng pose: YOLO26n-pose, YOLO26s-pose, YOLO26m-pose, YOLO26l-pose, YOLO26x-pose
- Phát hiện có định hướng (OBB): YOLO26n-obb, YOLO26s-obb, YOLO26m-obb, YOLO26l-obb, YOLO26x-obb
Các model này khác nhau về kích thước và độ phức tạp, cung cấp những đánh đổi khác nhau giữa tốc độ và độ chính xác. Hãy khám phá đầy đủ các model pretrained để tìm lựa chọn phù hợp nhất cho dự án của bạn.
Để thực hiện inference với model đã train:
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Để biết các tùy chọn inference nâng cao, bao gồm xử lý theo batch và inference video, hãy xem hướng dẫn prediction chi tiết.
Chắc chắn có! Các model Ultralytics được thiết kế để deploy 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 Raspberry Pi bằng cách sử dụng TensorRT, ONNX hoặc OpenVINO.
- Thiết bị di động: Deploy trên 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 TorchServe để triển khai trên đám mây có khả năng mở rộng.
- Web: Triển khai suy luận trên trình duyệt bằng cách sử dụng ONNX Runtime Web.
Ultralytics cung cấp các hàm export để chuyển đổi model sang nhiều format phục vụ deployment. Hãy khám phá các tùy chọn deployment để tìm giải pháp phù hợp nhất với trường hợp sử dụng của bạn.
Các điểm khác biệt chính bao gồm:
- Suy luận Không dùng NMS Đầu cuối (End-to-End NMS-Free Inference): YOLO26 cung cấp suy luận không dùng NMS với
nms=False. Đường dẫn một-nhiều mặc định của YOLO26 sử dụng NMS để đạt độ chính xác. - Loại bỏ DFL: YOLO26 loại bỏ module Distribution Focal Loss, đơn giản hóa quá trình export và cải thiện khả năng tương thích với các thiết bị edge và thiết bị công suất thấp.
- Optimizer MuSGD: Kết hợp giữa SGD và Muon (lấy cảm hứng từ Kimi K2 của Moonshot AI) để train ổn định hơn và hội tụ nhanh hơn.
- Hiệu năng CPU: YOLO26n chạy nhanh hơn tới 43% so với YOLO11n khi inference ONNX trên CPU (Intel Xeon CPU @ 2.00 GHz), phù hợp với các thiết bị không có GPU.
- Tối ưu hóa theo tác vụ: Cải thiện phân đoạn bằng semantic loss và proto đa tỷ lệ, sử dụng RLE cho ước lượng pose chính xác, đồng thời cải thiện giải mã OBB với angle loss.
- Tác vụ: Cả hai model đều hỗ trợ phát hiện đối tượng và phân đoạn instance, trong khi YOLO26 bổ sung phân đoạn semantic để prediction dày đặc ở cấp pixel và ước lượng độ sâu đơn nhãn theo từng pixel. Cả hai model cũng hỗ trợ phân loại, ước lượng pose và phát hiện đối tượng có định hướng (OBB) trong một framework thống nhất.
Để so sánh chuyên sâu về các tính năng và chỉ số hiệu năng, hãy truy cập trang tài liệu YOLO26.
- Suy luận Không dùng NMS Đầu cuối (End-to-End NMS-Free Inference): YOLO26 cung cấp suy luận không dùng NMS với
Đóng góp cho Ultralytics là cách tuyệt vời để cải thiện dự án và phát triển kỹ năng của bạn. Sau đây là cách tham gia:
- Fork repository Ultralytics trên GitHub.
- Tạo branch mới cho feature hoặc bản sửa lỗi của bạn.
- Thực hiện thay đổi và đảm bảo tất cả test đều đạt.
- Gửi pull request kèm mô tả rõ ràng về các thay đổi.
- Tham gia quy trình code review.
Bạn cũng có thể đóng góp bằng cách báo cáo bug, đề xuất feature hoặc cải thiện tài liệu. Để xem hướng dẫn chi tiết và các best practice, hãy tham khảo hướng dẫn đóng góp.
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 kịch bản thời gian thực.
- Khả năng đa tác vụ: Thực hiện phát hiện đối tượng, phân đoạn instance, phân đoạn semantic, ước lượng độ sâu đơn nhãn, phân loại, ước lượng pose và phát hiện đối tượng có định hướng (OBB) bằng một framework thống nhất.
- Model pretrained: Truy cập nhiều model pretrained 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.
- Train tùy chỉnh: Dễ dàng fine-tune model trên dataset tùy chỉnh với pipeline training linh hoạt.
- Tùy chọn deployment đa dạng: Export model sang các format như TensorRT, ONNX và CoreML để deploy trên nhiều nền tảng khác nhau.
- Tài liệu phong phú: Tận dụng tài liệu toàn diện và cộng đồng hỗ trợ tích cực cho quy trình thị giác máy tính của bạn.
Có thể cải thiện hiệu năng model YOLO bằng một số kỹ thuật:
- Tinh chỉnh hyperparameter: Thử nghiệm các hyperparameter khác nhau bằng Hướng dẫn tinh chỉnh Hyperparameter để tối ưu hiệu năng model.
- Tăng cường dữ liệu: Áp dụng các kỹ thuật như lật, scale, xoay và điều chỉnh màu để cải thiện dataset training và khả năng tổng quát hóa của model.
- Transfer Learning: Tận dụng model pretrained và fine-tune chúng trên dataset cụ thể bằng hướng dẫn Train.
- Export sang format hiệu quả: Chuyển đổi model sang các format được tối ưu như TensorRT hoặc ONNX để inference nhanh hơn bằng hướng dẫn Export.
- Benchmark: Sử dụng Chế độ Benchmark để đo lường và cải thiện tốc độ inference cũng như độ chính xác một cách có hệ thống.
Ultralytics cung cấp nhiều tài nguyên giúp bạn bắt đầu và làm chủ các tool của họ:
- 📚 Tài liệu chính thức: Hướng dẫn toàn diện, tài liệu tham chiếu API và best practice.
- 💻 Repository GitHub: Mã nguồn, script ví dụ và các đóng góp từ cộng đồng.
- ✍️ Blog Ultralytics: Các bài viết chuyên sâu, trường hợp sử dụng và thông tin chuyên môn kỹ thuật.
- 💬 Diễn đàn cộng đồng: Kết nối với những người dùng khác, đặt câu hỏi và chia sẻ trải nghiệm của bạn.
- 🎥 Kênh YouTube: Video hướng dẫn, bản demo và hội thảo trực tuyến về nhiều chủ đề khác nhau của Ultralytics.
Các tài nguyên này cung cấp ví dụ về code, trường hợp sử dụng trong thực tế và hướng dẫn từng bước cho nhiều tác vụ khác nhau sử dụng các model Ultralytics.
Nếu cần hỗ trợ thêm, hãy tham khảo tài liệu Ultralytics hoặc liên hệ với cộng đồng thông qua GitHub Issues hoặc diễn đàn thảo luận chính thức.