Bài viết này hướng dẫn cách build và cách sử dụng tool LabelImg. Tool LabelImg dùng để đánh nhãn vật thể trong hình để training các model detection như YOLO.
Các bước cài đặt labelImg trên Windows
Mình sử dụng Windows 10 để thực hiện.
- Bước 1: Các bạn clone source code từ repo: //github.com/tzutalin/labelImg. Có thể download code hoặc clone bằng tool Source Tree
- Bước 2: Clone xong thì cài Python, mình sử dụng : version 3.6.5 x64, tải bản Windows x86-64 executable installer
- Bước 3: Sau khi cài xong Python thì cài PyQt5 bằng cmd:
pip install PyQt5
- Bước 4: Tiếp theo là cài lxml
pip install lxml
- Bước 5: Copy các file cần thiết bằng cmd:
pyrcc5 -o libs/resources.py resources.qrc
Vậy là xong, gọi file labelImg.py là chương trình sẽ chạy lên để các bạn đánh nhãn cho YOLO.
Việc cài đặt cho Linux cũng tương tự với các câu lệnh ở trên
Mình lấy ảnh CT não để vẽ thử, ấn nút W để vẽ bouding box
Chương trình cho phép đánh nhãn nhiều loại class khác nhau trong cùng 1 ảnh và xuất ra 2 loại format là YOLO hoặc Pascal VOC.
Giá trị của bounding box [x, y, width, height] được chuẩn hóa trong khoảng [0:1] khi vẽ như hình dưới
Phím tắt và mẹo
- Ấn A và D để chuyển ảnh tới – lui
- Vào menu View -> chọn Auto save mode để tự động save file khi chuyển ảnh mà không cần ấn Ctr + S
Đây là phần mềm gán nhãn cho hình ảnh, phục vụ cho mục đích đào tạo các mô hình Deep learning.
Cụ thể ta có thể gán nhãn cho ảnh và xuất file có đuôi:
- Dạng.xml – sử dụng trong hầu hết các model Deep learning.
- Dạng.txt – sử dụng trong model YOLO với backbone darknet.
- Hướng dẫn cài đặt trên các hệ điều hành.
Bước 1: tải Tool gán nhãn và giải nén. Tải ở đây.
Bước 2: truy cập vào thư mục giải nén ở bước 2 -> data. Sau đó xóa hết dữ liệu trong file predefined_classes.txt
- HĐH Window:
Bước 3: đầu tiên các bạn cần tải Anaconda [python3].
Bước 4 : chúng ta khởi chạy “Anaconda Prompt”.
Bước 5: thực hiện lệnh cd tới thư mục vừa giải nén ở bước 2.
cd tới thư mục vừa giải nén
Bước 6: Thực hiện các lệnh sau:
conda install
conda install -c anaconda lxml
pyrcc5 -o libs/resources.py resources.qrc python labelImg.py
Sau khi hoàn thành các bước, tool được hiển thị như hình:
- HĐH Linux:
git clone //github.com/tzutalin/labelImg sudo apt-get install pyqt5-dev-tools sudo pip3 install -r requirements/requirements-linux-python3.txt make qt5py3 python3 labelImg.py
- HĐH MAC OS:
brew install python3 pip3 install pipenv pipenv run pip install pyqt5==5.12.1 lxml pipenv run make qt5py3 python3 labelImg.py
- Hướng dẫn sử dụng tool để gán nhãn.
Sau khi cài đặt và chạy thành công, tool sẽ hiển thị:
Giao diện tool label images.
Bắt đầu gán nhãn nha
Bước 1: click chọn : OPEN DIR để chọn thư mục chứa ảnh.
Bước 2: click chọn: CHANGE SAVE DIR để chọn thư mục lưu file txt/xml.
Bước 3: click vào : Pascal/VOC để chuyển đổi file lưu từ xml sang txt [Bước này quan trọng]
chuyển .xml sang .txt[yolo]
Bước 4: chọn View/auto save mode. Để tự lưu các file.
Bước 5: chọn View/ single class mode. Để gán nhãn cho từng loại đối tượng, cách gán nhãn từng loại đối tượng một sẽ cho năng suất gán nhãn cao hơn bởi vì có thể loại bỏ các bước lựa chọn tên nhãn và click chọn OK.
Bước 6: Gán thôi
LƯU Ý:
- Một vài phím tắt:
- Xem video hướng dẫn gán nhãn tại đây.
Với mỗi hình gán nhãn xong, tool sẽ tự tạo một file có tên trùng với bức ảnh và có đuôi .txt có nội dung như sau:
- là một số tự nhiên đánh số thứ tự của nhãn[classes]. Với số lớp của model là 3 đối tượng thì sẽ tương ứng là Small salad là 0, Big salad nhỏ là 1, Grass là 2.
- là các giá trị thập phân liên quan đến vị trí của hình và nằm trong khoảng 0 đến 1 và được tính toán như sau:
- = /
- = /
- = /
- = /
Bài hướng dẫn dựa vào github của tool và kinh nghiệm sử dụng cá nhân. Cảm ơn mọi người đã xem và chúc mọi người có thể dễ dàng thực hiện được.