YOLO Polygon là phần mềm do chúng tôi phát triển để đánh nhãn vật thể training segmentation.
Với bài toán phát hiện đối tượng nằm cạnh nhau, có hình dạng không phải đa giác lồi có thể chồng chập lên nhau thì phải vẽ đường gấp khúc bao lấy đối tượng. Công cụ YOLO Polygon giúp các bạn đánh nhãn dễ dàng trên Windows.
Đây là chương trình Windows Form viết bằng ngôn ngữ C#, sử dụng .NET framework nên dễ dàng build và chỉnh sửa theo ý các bạn.
Đặc biệt: chương trình có full source code
Chức năng của chương trình
- Vẽ hình đa giác lên ảnh và save với format của YOLO
- Auto save: hiện chữ màu xanh lá thông báo đã save khi vẽ xong
- Dễ dàng chỉnh sửa vị trí, xóa object và point
Hướng dẫn sử dụng
Bước 1: download chương trình ở link cuối bài
Bước 2: giải nén và chạy chương trình YoloPolygon.exe
Bước 3: chọn folder
- Chọn folder ảnh
- Chọn folder label
- Chọn file class *.names
Ở panel bên trái là danh sách ảnh, ảnh nào chưa có label sẽ có text màu đỏ. Bên dưới là danh sách các object, class name và class ID. Bên phải là danh sách các point của object đó.
Các bạn có thể test với dataset của bài viết: Hướng dẫn train custom model Instance Segmentation hình ảnh tôm bằng YOLO v8
Hướng dẫn build
Buld bằng Visual Studio
Các bạn build chương trình bằng Visual Studio 2022, cũ hơn cũng được miễn là có cài .NET framework 4.6.1.
Chương trình viết bằng C# thuần nên build mode ANY CPU cũng được.
Giải thích source code
Để code dễ đọc, chúng tôi đã tạo 1 class tên là Polygon. Class Polygon chứa classID, cx (center X), cy, w, h và danh sách các điểm của object.
1 2 3 4 5 6 7 |
public int classID; public int cx, cy; //draw public double cxf, cyf; public int w, h; //draw public double wf, hf; public List<Point> drawPoints; public List<PointF> pointfs; |
Tuy nhiên, để vẽ lên picture box thì point kiểu int, còn save vào file text thì kiểu double, vì vậy tạo ra 2 biến có giá trị tương đương nhau để vẽ và save.