Hướng dẫn đánh nhãn dữ liệu Instance segmentation cho YOLO v8 bằng tool YOLO polygon trên Windows

YOLO Polygon là phần mềm do cty Thị giác Máy tính 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

1. Chức năng của chương trình

  1. Vẽ hình đa giác lên ảnh và save với format của YOLO
  2. Auto save: hiện chữ màu xanh lá thông báo đã save khi vẽ xong
  3. Dễ dàng chỉnh sửa vị trí, xóa object và point

Format của file text có dạng:

<class-index> <x1> <y1> <x2> <y2> ... <xn> <yn>

<class-index> là ID của class name
x1, y1,… là các điểm với giá trị là tỷ lệ của điểm trong khoảng [0:1]

2. Hướng dẫn build

Bước 1: download chương trình ở link cuối bài

Bước 2: giải nén và build YoloPolygon.sln bằng Visual Studio 2022

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

3. Hướng dẫn sử dụng

3.a Vẽ polygon mới

  • Double click vào 1 điểm bất kỳ để tạo polygon mới
  • Click vào điểm tiếp theo và lần lượt bao hết vị trí vật thể
  • Click vào điểm đầu tiên sẽ hoàn tất việc tạo mới 1 polygon

3.b Sửa điểm

  • Click vào điểm để chọn điểm, khi đó điểm có màu đỏ và con chuột có hình mũi tên 4 hướng
  • Sau đó drag điểm đến vị trí mới

3.c Thêm điểm

  • Di chuột đến đường thẳng nối 2 điểm, khi đó con chuột có hình chữ thập
  • Double click để tạo 1 điểm mới

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 và danh sách các điểm của object.

Kiểu PointF là kiểu tự định nghĩa, với x, y kiểu double. 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 khi vẽ lên picture box cần convert sang tỷ lệ thật.

Download

One thought on “Hướng dẫn đánh nhãn dữ liệu Instance segmentation cho YOLO v8 bằng tool YOLO polygon trên Windows

Leave a Reply