Bắt đầu nhanh

Lộ trình ngắn nhất qua LibreYOLO: dự đoán trên một ảnh, huấn luyện trên dataset nhỏ, rồi xuất kết quả. Mọi lệnh tại đây đều chạy trên CPU.

Cài đặt
pip install libreyolo
Checkpoint
LibreYOLO9t.pt
Phần cứng
CPU là đủ cho mọi nội dung trên trang này

Cài đặt

bash
pip install libreyolo

Đó là tất cả những gì phần predict và train bên dưới cần. Xuất sang ONNX cần thêm một gói bổ sung; xem cài đặt để biết danh sách đầy đủ.

Predict

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Tải checkpoint ở lần dùng đầu tiên, rồi cache trong weights/.model = LibreYOLO("LibreYOLO9t.pt") # Một ảnh trả về một object Results.result = model(SAMPLE_IMAGE, save=True) for box in result.boxes:    print(result.names[int(box.cls)], float(box.conf), box.xyxy.tolist())
CLI
libreyolo predict model=yolo9-t save=True \  source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg
Video và stream
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO9t.pt") # stream=True trả về lần lượt một Results cho mỗi frame thay vì tạo danh sách.# Thay đường dẫn bằng chỉ mục webcam, URL RTSP hoặc thư mục.for result in model.predict("clip.mp4", stream=True, save=True):    print(len(result.boxes))

LibreYOLO() là một factory. Nó đọc file, xác định trọng số thuộc họ nào và trả về mô hình của họ đó, nên đổi sang detector khác chỉ cần thay một dòng. Truyền LibreYOLO9t.pt không có thư mục sẽ tìm weights/LibreYOLO9t.pt tương đối với thư mục làm việc và tải xuống đó nếu file còn thiếu. Xem checkpoint và trọng số để biết quy tắc tải và cách làm việc offline.

save=True ghi bản sao đã chú thích dưới runs/detect/, vào thư mục predict tăng dần theo mỗi lần chạy. Results trả về chứa boxes, còn names ánh xạ chỉ mục lớp sang nhãn. Một đường dẫn ảnh trả về một Results; thư mục, danh sách ảnh hoặc stream=True trả về danh sách hoặc generator của chúng.

Huấn luyện

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO9t.pt") # coco8 là dataset 8 ảnh đi kèm thư viện. Nó được tải# từ URL ở lần dùng đầu tiên nên không cần chạy script nào.results = model.train(    data="coco8.yaml",    epochs=1,    imgsz=640,    batch=4,    device="cpu",) print(results["save_dir"])print(results["best_checkpoint"])
CLI
libreyolo train model=yolo9-t data=coco8.yaml \  epochs=1 imgsz=640 batch=4 device=cpu
Xác thực
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO9t.pt") # val() trả về dict thuần túy, không phải object.metrics = model.val(data="coco8.yaml", device="cpu") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])print(metrics["metrics/precision"], metrics["metrics/recall"])

data là YAML dataset. coco8.yaml đi kèm thư viện nên snippet chạy nguyên như đã dán; tên không được bundle sẽ được đọc như một đường dẫn. Dataset được phân giải dưới ~/datasets hoặc dưới LIBREYOLO_DATASETS_DIR khi biến này được đặt.

Một lần chạy ghi vào project/name, mặc định là thư mục dưới runs/train, với weights/best.ptweights/last.pt bên trong. train() trả về dictionary gồm save_dir, best_checkpoint, last_checkpoint, loss theo từng epoch và metric xác thực theo từng epoch. Checkpoint đã huấn luyện được nạp qua LibreYOLO() giống hệt checkpoint huấn luyện sẵn.

Không phải họ nào cũng huấn luyện được. Khi một họ chỉ cung cấp inference, train() phát NotImplementedError và nói rõ điều đó. Khái niệm cốt lõi giải thích ý nghĩa từng cấp hỗ trợ.

Xuất

TorchScript
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreYOLO9t.pt") # export() trả về đường dẫn đã ghi.path = model.export(format="torchscript")print(path) # Factory định tuyến theo hậu tố file, nên artifact được nạp lại như# checkpoint và trả về cùng object Results.exported = LibreYOLO(path)result = exported(SAMPLE_IMAGE)print(len(result.boxes))
ONNX
pip install "libreyolo[onnx]"libreyolo export model=yolo9-t format=onnx imgsz=640

TorchScript không cần gì ngoài bản cài cơ sở. Mỗi đích khác có gói bổ sung riêng, và phạm vi hỗ trợ tùy theo họ và tác vụ thay vì đồng nhất: xem xuất và triển khai.

Các đối số mọi định dạng đều nhận gồm imgsz (số nguyên hoặc cặp chiều cao và chiều rộng), batch (mặc định 1), half, int8 cùng YAML data để hiệu chuẩn, dynamic (mặc định True), simplify (mặc định True), opset, deviceoutput_path. Khi bỏ output_path, file được ghi dưới weights/ với tên suy ra từ checkpoint.

Bước tiếp theo

Đã kiểm chứng với LibreYOLO v1.5.0.