Từ phòng lab đến production
Cài đặt Ultralytics, chạy YOLO26 trên ảnh của bạn, đối chiếu đầu ra với đặc tả và chọn bước tiếp theo.
Mười phút sử dụng model pretrained sẽ trả lời câu hỏi quyết định toàn bộ kế hoạch của bạn: model có sẵn đã bao phủ các class và camera của bạn chưa, hay bạn cần dữ liệu riêng? Trong bài này, bạn cài đặt Ultralytics, chạy YOLO26 trên ảnh thực tế và đối chiếu kết quả với đặc tả bạn đã viết ở bài học đầu tiên.
Thực hành
Cài đặt#
pip install ultralytics
yolo checksDòng đầu tiên cài đặt package Python ultralytics và command yolo, đồng thời cài PyTorch nếu máy chưa có. yolo checks in ra phiên bản Python, PyTorch và CUDA cùng phần cứng Ultralytics sẽ sử dụng, để bạn xác nhận cấu hình trước khi chạy bất cứ thứ gì. Hãy dùng một virtual environment mới; hướng dẫn bắt đầu nhanh trình bày cách thiết lập với conda, Docker và GPU.
Gói ultralytics cài đặt được trên Python 3.8 trở lên, nhưng các bản PyTorch hiện tại cần Python 3.10 trở lên. Nếu môi trường của bạn cũ hơn, trước tiên hãy tạo môi trường ảo mới bằng phiên bản Python gần đây.

Triệu chứng: yolo checks hiển thị CPU trên máy có GPU NVIDIA và inference chạy chậm. Nguyên nhân: bản PyTorch chỉ hỗ trợ CPU — chẳng hạn wheel pip mặc định trên Windows. Cách khắc phục: chọn hệ điều hành, trình quản lý gói và phiên bản CUDA trong trình chọn PyTorch ở trên, chạy lệnh được cung cấp, rồi cài đặt lại ultralytics. Trên Mac, như trong ảnh chụp màn hình, bản dựng mặc định là phù hợp; Ultralytics chạy trên CPU trừ khi bạn truyền device=mps để sử dụng GPU Apple.
Dự đoán đầu tiên#
from ultralytics import YOLO
model = YOLO("yolo26n.pt") # tải model nano khoảng 5 MB trong lần sử dụng đầu tiên
results = model("https://ultralytics.com/images/bus.jpg", save=True)
for box in results[0].boxes:
print(model.names[int(box.cls)], round(float(box.conf), 2))Cả hai đều in một dòng tóm tắt cho mỗi ảnh và lưu ảnh đã chú thích vào runs/detect/predict:
image 1/1 .../bus.jpg: 640x480 4 persons, 1 bus, 19.7ms
Speed: 0.9ms preprocess, 19.7ms inference, 0.4ms postprocess per image at shape (1, 3, 640, 480)
Results saved to runs/detect/predictDiễn giải từng dòng: ảnh được resize về 640×480 để inference; model phát hiện bốn người và một xe buýt; inference mất khoảng 20 ms trên CPU laptop. Dòng Speed là lần kiểm tra latency đầu tiên của bạn — hãy so sánh với frame rate ở dòng đầu vào trong đặc tả. Mở ảnh đã lưu: mỗi bounding box có class, box và confidence như trong bài học về detection.
Đối chiếu đầu ra với đặc tả của bạn#
| Câu hỏi | Nếu có | Nếu không |
|---|---|---|
| Các class của bạn có nằm trong 80 class COCO mà model nhận biết không? | Tạo prototype mà không cần huấn luyện | Bạn cần dữ liệu đã gán nhãn và fine-tune (hướng dẫn fine-tune) |
| Trên ảnh của bạn, các bounding box vượt ngưỡng có nằm đúng trên các đối tượng không? | Tác vụ và góc nhìn phù hợp | Hãy dự kiến có domain gap: thu thập dữ liệu từ camera của bạn |
| Loại đầu ra có đáp ứng yêu cầu của dòng quyết định không? | Giữ nguyên tác vụ | Đổi weights: -seg, -sem, -depth, -pose, -obb hoặc -cls |
| Model có đủ nhanh để đáp ứng frame rate trên phần cứng mục tiêu không? | Tiếp tục | Thử model nhỏ hơn hoặc định dạng export đã tối ưu |
Câu hỏi đầu tiên có câu trả lời chính xác: model.names liệt kê mọi class mà model pretrained nhận biết. Trong đặc tả xe nâng, person là class COCO còn forklift thì không, vì vậy không ngưỡng nào có thể khiến model pretrained phát hiện xe nâng. Đây là kết quả phổ biến nhất khi chạy lần đầu — model chỉ bao phủ một phần đặc tả — và hướng xử lý phù hợp là tạo prototype cho logic quyết định trên các class hiện có, đồng thời xây dựng dataset cho những class còn lại.
Điều gì thay đổi trong production#
Model sau khi triển khai sẽ gặp những điều kiện mà dataset của nó chưa từng lấy mẫu: camera, mùa, sản phẩm và đồng phục mới. Nếu không huấn luyện lại, độ chính xác suy giảm; nếu thường xuyên huấn luyện lại bằng dữ liệu thu được từ production, độ chính xác sẽ phục hồi:

Mỗi bài học trong khóa học này đều góp phần vào vòng lặp đó: đặc tả xác định một lỗi, kiểm tra độ bao phủ cho biết cần tìm ở đâu, công cụ kiểm tra nhãn và hướng dẫn gán nhãn giúp dữ liệu mới hữu ích, còn các tập chia và metric đáng tin cậy cho bạn biết model được huấn luyện lại có thực sự tốt hơn hay không. Hai thói quen giúp quy trình này vận hành ngay từ ngày đầu: ghi lại một mẫu input và prediction, kể cả những trường hợp confidence thấp, đồng thời giữ nguyên tập test cố định để so sánh mọi model trên cùng một ảnh. Khả năng quan sát và drift trình bày chuyên sâu về giám sát data drift.
Nên học gì tiếp theo#
| Khóa học | Học khi nào |
|---|---|
| Xây dựng dataset YOLO hiệu năng cao | Các class của bạn không có trong model pretrained hoặc cảnh của bạn khác với COCO |
| Huấn luyện model YOLO đầu tiên của bạn | Bạn có dataset đã gán nhãn và muốn fine-tune |
| Ultralytics YOLO trong môi trường production | Bạn có model và cần export, tracking và monitoring |
| Xây dựng với Ultralytics Platform | Bạn muốn quản lý dữ liệu, gán nhãn, huấn luyện và triển khai tại cùng một nơi |
Bạn muốn dùng workflow trên trình duyệt? Ultralytics Platform vận hành cùng vòng lặp — tải lên, chú thích, huấn luyện, triển khai — mà không cần cài đặt trên máy:
Hiển thị lời giải
from pathlib import Path
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
# 1. Which classes in your output line does the pretrained model already know?
spec_classes = {"person", "forklift"}
known = set(model.names.values())
print(f"pretrained: {sorted(spec_classes & known)} needs your own data: {sorted(spec_classes - known)}")
# 2. What does it find on your images?
sources = [
"https://ultralytics.com/images/bus.jpg", # replace with your own images
"https://ultralytics.com/images/zidane.jpg",
]
for source, result in zip(sources, model.predict(sources, conf=0.25, save=True, verbose=False)):
names = [result.names[int(c)] for c in result.boxes.cls]
print(f"{Path(source).name}: {len(names)} detections -> {sorted(set(names))}")pretrained: ['person'] needs your own data: ['forklift']
bus.jpg: 5 detections -> ['bus', 'person']
zidane.jpg: 3 detections -> ['person', 'tie']Với đặc tả xe nâng: person đã được bao phủ, còn forklift thì chưa. Bước tiếp theo: hiện giờ hãy tạo prototype cho quy tắc vùng trên người bằng model pretrained, đồng thời bắt đầu khóa học Xây dựng dataset YOLO hiệu năng cao để thu thập và gán nhãn ảnh xe nâng từ camera trong kho.