TopGit
Đánh giá repo GitHub

Supervision: thư viện computer vision

roboflow/supervision
STopGit review image for roboflow/supervision
Review by Topgit.dev for roboflow/supervision, with GitHub repository stats and README context.
Nhận định nhanh

Supervision là thư viện Python của Roboflow, cung cấp một định dạng detection chung cho các dự án computer vision thay vì mỗi model trả về một shape output khác nhau. Nên dùng nếu bạn đang tự ráp nối detector, tracker và script convert dataset bằng tay; nên bỏ qua nếu bạn chỉ cần một script inference dùng một lần và không muốn thêm dependency vào trên model library đang dùng.

Sao
★ 51.2k
Fork
⑂ 4.9k
Ngôn ngữ
Python
Giấy phép
MIT
Chủ đề
—
Cập nhật
Oct 2026
Trang chủ
GitHub

Một Bộ công cụ Computer Vision thiết yếu

Supervision là một package Python mã nguồn mở cung cấp các building block có thể tái sử dụng cho công việc computer vision: connector cho các model detection và segmentation, annotator có thể tùy chỉnh để vẽ box và mask lên frame, và các tiện ích dataset cho COCO, YOLO và Pascal VOC. Supervision không tự train hay đi kèm model nào — nó chuẩn hoá đối tượng `sv.Detections` nằm giữa model bạn đang chạy và phần code annotation bạn viết phía trên.

Cài đặt thư viện Supervision

Cài Supervision chỉ cần một lệnh: `pip install supervision`. README yêu cầu môi trường Python từ 3.10 trở lên cho cách cài này — không có tuyên bố hỗ trợ cho các bản Python 3.x cũ hơn. Nếu muốn dùng conda, mamba, hoặc cài từ source thay vì pip, README không hướng dẫn trực tiếp các bước đó mà chỉ dẫn sang một guide riêng trên trang tài liệu của Roboflow — nghĩa là pip là cách cài duy nhất mà chính README của repo này trình bày đầy đủ.

Ví dụ code thực tế

Luồng làm việc cốt lõi là: chạy model detection hoặc segmentation của riêng bạn, bọc output vào `sv.Detections`, rồi đưa cho một annotator. Một số model trả về định dạng này trực tiếp — ví dụ trong README dùng `RFDETRSmall` của `rfdetr`: ```python import supervision as sv from PIL import Image from rfdetr import RFDETRSmall image = Image.open("path/to/image.jpg") model = RFDETRSmall() detections = model.predict(image, threshold=0.5) ``` Với các model không trả `sv.Detections` sẵn, Supervision cung cấp connector — README liệt kê Ultralytics, Transformers, MMDetection và Inference của Roboflow, trong đó Inference cần một Roboflow API key để gọi. Có `Detections` rồi thì vẽ lên frame chỉ mất một dòng ngắn: `sv.BoxAnnotator().annotate(scene=image.copy(), detections=detections)`. Cách làm tương tự áp dụng cho dataset — `sv.DetectionDataset.from_coco(...)` load một dataset dạng COCO, và gọi `.split(split_ratio=0.7)` trên kết quả sẽ chia thành tập train/test mà không cần viết script riêng.

Ví dụ ứng dụng thực tế

  • •Phân tích dwell-time theo zone — tutorial trong chính README kết hợp detection và tracking để đo thời gian một đối tượng nằm trong một zone được định nghĩa trước, hướng tới các kịch bản retail hoặc traffic.
  • •Ước tính tốc độ xe — một tutorial khác trong README nối YOLO, ByteTrack và Roboflow Inference cùng với một perspective transform để ước tính tốc độ xe từ video, một ví dụ của detection tracking mà Supervision hướng tới.
  • •Chuyển đổi dataset sang framework train khác — convert dataset COCO hoặc Pascal VOC hiện có sang YOLO (hoặc ngược lại) bằng các method `as_yolo`/`as_coco`/`as_pascal_voc` của `DetectionDataset` thay vì tự viết converter, hữu ích khi bàn giao data labeling giữa các tool.
  • •Đổi model detection giữa chừng dự án — chuyển từ model Ultralytics sang model chạy qua Inference mà không phải viết lại code annotation và video analysis phía sau, vì cả hai đều đổ vào cùng một đối tượng `sv.Detections`.

Điểm mạnh

  • ✓Một interface `sv.Detections` duy nhất cho mọi model backend nghĩa là đổi từ Ultralytics sang Transformers (hoặc ngược lại) không buộc phải viết lại code annotation hay dataset.
  • ✓Convert dataset giữa COCO, YOLO và Pascal VOC chỉ là một lệnh gọi method (`as_yolo`, `as_coco`, `as_pascal_voc`) thay vì một script tự viết.
  • ✓MIT license, nên không có ràng buộc copyleft nếu bạn nhúng Supervision vào sản phẩm thương mại.
  • ✓GitHub — đủ để cộng đồng có sẵn code mẫu và issue công khai cho các vấn đề thường gặp, không khó tìm.

Phạm vi hiện tại và những điều cần lưu ý

  • △Supervision không tự train hay đi kèm model nào — bạn vẫn cần Ultralytics, Transformers, MMDetection, Inference hoặc thư viện khác để làm phần detection thật sự, và README không nêu benchmark về độ chính xác hay tốc độ của bất kỳ cái nào trong số đó.
  • △Connector Roboflow Inference cần một Roboflow API key để chạy, theo README, nên nhánh này không hoàn toàn local, không phụ thuộc dịch vụ ngoài như phần cài bằng pip.
  • △Cách cài bằng conda, mamba, hay từ source không được README của repo trình bày trực tiếp — nó chỉ trỏ sang một guide riêng trên trang docs của Roboflow, nghĩa là bạn phải rời repo để tìm các bước đó.
  • △Yêu cầu Python từ 3.10 trở lên, nên không thể đưa thẳng Supervision vào một codebase Python 3.8/3.9 cũ mà không nâng cấp interpreter trước.

Các thư viện Computer Vision khác

OpenCV — một thư viện image processing tổng quát và ở tầng thấp hơn nhiều; bạn dùng nó cho filter, transform và video I/O thay vì định dạng detection model-agnostic mà Supervision cung cấp. ↗Ultralytics YOLO — đi kèm sẵn model detection riêng cùng tooling, tức là bạn nhận cả model lẫn công cụ trong một gói thay vì các connector model-agnostic như Supervision.Roboflow Inference — dự án serving model (hosted hoặc local) được README dẫn link trực tiếp; connector Inference của Supervision được xây để tiêu thụ output từ đây.Autodistill — một dự án khác của Roboflow được nhắc trong README, tập trung vào auto-labeling dataset bằng foundation model, khác với việc annotation và convert dataset sau khi đã có nhãn mà Supervision làm.

Câu hỏi thường gặp

Supervision hỗ trợ những computer vision model nào?

Supervision không đi kèm model riêng — nó cắm vào bất kỳ model detection hay segmentation nào bạn đang chạy, với connector được README liệt kê cho Ultralytics, Transformers, MMDetection và Roboflow Inference, cộng thêm các model như rfdetr trả thẳng định dạng `sv.Detections`.

Supervision xử lý được những dataset format nào?

Các tiện ích `DetectionDataset` của Supervision load, split, merge, save và convert dataset ở định dạng COCO, YOLO và Pascal VOC, theo đúng ví dụ dataset trong README.

Supervision có miễn phí cho mục đích thương mại không?

Supervision phát hành theo MIT license, cho phép sử dụng thương mại, chỉnh sửa và phân phối lại mà không bắt buộc bạn phải mở mã nguồn sản phẩm của mình.

Yêu cầu phiên bản Python cho Supervision là gì?

README ghi rõ cần Python từ 3.10 trở lên để cài Supervision qua pip; không có tuyên bố hỗ trợ cho các bản Python 3.x cũ hơn.

Làm sao để đóng góp cho dự án Supervision?

README của Supervision dẫn người đóng góp tới contributing guide trên GitHub và cảm ơn các contributor hiện tại; repo cũng được gắn tag Hacktoberfest.

Supervision có tích hợp với dịch vụ Roboflow không?

Supervision có tích hợp với dịch vụ Roboflow: có một connector riêng cho dịch vụ Inference của Roboflow, dù README lưu ý nhánh đó cần một Roboflow API key để chạy, khác với các connector model chạy hoàn toàn local.

Tính năng chính

  • ✓Detection model-agnostic — connector chuẩn hoá output từ Ultralytics, Transformers, MMDetection và Roboflow Inference về cùng một đối tượng `sv.Detections`; một số thư viện như `rfdetr` đã trả thẳng định dạng này.
  • ✓Annotator tùy chỉnh — một image annotation tool tích hợp sẵn; `BoxAnnotator` và các class tương tự vẽ detection lên frame chỉ trong vài dòng thay vì tự viết lệnh vẽ bằng OpenCV.
  • ✓Tiện ích dataset — `DetectionDataset` load, split, merge, save và convert giữa COCO, YOLO và Pascal VOC mà không cần một object detection library hay parser riêng.
  • ✓Hỗ trợ tracking và video-processing — chính các GitHub topic của repo liệt kê tracking và video-processing cạnh detection, classification và instance-segmentation.
  • ✓MIT license — được nhúng miễn phí vào các deep learning utilities thương mại mà không kèm ràng buộc copyleft.
  • ✓Gắn tag Hacktoberfest và được Roboflow duy trì tích cực, có contributing guide công khai cho PR từ bên ngoài.
Số sao GitHub của repo này thay đổi thế nào theo thời gian. Nguồn: star-history.com.Xem lịch sử sao ↗

Vấn đề mà nó giải quyết

Đổi từ model YOLO sang một detector dựa trên Transformers, hay chuyển dataset từ Pascal VOC sang COCO, thông thường sẽ kéo theo việc phải viết lại mọi script phía sau — annotation, filter, chia dataset — theo shape output mới. Đó chính là điểm ma sát cụ thể trong các dự án Python machine learning vision ráp nối detector, tracker và pipeline train từ nhiều thư viện riêng lẻ: mỗi thư viện trả detection theo shape của riêng nó. Đối tượng `sv.Detections` cùng các tiện ích dataset của Supervision cho code phía sau một interface duy nhất để nhắm tới, nên model hay định dạng dataset bên dưới có thể đổi mà không phải động vào code annotation và evaluation đã viết phía trên.

Nên dùng khi nào — và khi nào nên bỏ qua

Nên thử Supervision nếu bạn đang tự viết pipeline computer vision bằng Python và muốn có sẵn code annotation, phần liên quan tới tracking, và convert dataset mà không phải tự bảo trì — đặc biệt hữu ích khi bạn đổi qua lại giữa nhiều model library và phải viết lại một 'bộ dịch' cho từng output shape khác nhau. Nên bỏ qua nếu bạn chỉ chạy một script dùng một lần với output gốc của một model duy nhất, hoặc bạn đang kẹt ở một bản Python trước 3.10 không nâng cấp được; lớp trừu tượng thêm vào không đáng để đánh đổi cho một script chỉ chạy một lần.

Repo liên quan

Nguồn & ghi công

Thông tin và ví dụ code lấy từ repository GitHub roboflow/supervision và README của repo (https://github.com/roboflow/supervision).

Dữ liệu GitHub · đồng bộ lần cuối 6 thg 8, 2026Đánh giá bởi Henry
← Về TopGit

Chưa chắc supervision có hợp với bạn?

Để ChatGPT, Claude hoặc Perplexity tìm hiểu giúp — bấm bên dưới và xem AI nói gì về supervision.

GitHub