Chương 4 : CHƯƠNG TRÌNH NHẬN DIỆN ĐỐI TƯỢNG
4.2. Gán nhãn data – labelImg Tool
Dùng công cụ gán nhãn labelImg Tool để gán nhãn cho từng đối tượng nhằm tạo ra data dùng để train dữ liệu. Các bước sử dụng công cụ labelImg Tool như sau:
– 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).
– 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.
Một số phím tắt thường sử dụng trong cơng cụ gán nhãn:
68
Hình 4.7. Gán nhãn cho vật thể
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ó đi “.txt” có nội dung như sau:
Hình 4.8. Nội dung file “.txt”
Tương tự như vậy, gán nhãn cho từng đối tượng trong đề tài: – Gán nhãn cho người đi bộ qua vạch kẻ đường.
69
Hình 4.9. Gán nhãn cho người đi bộ qua vạch kẻ đường
– Gán nhãn cho xe hơi đậu trên đường.
70 – Gán nhãn cho biển báo hiệu lệnh rẽ trái.
Hình 4.11. Gán nhãn cho biển báo hiệu lệnh rẽ trái
– Gán nhãn cho biển báo cấm rẽ trái – đi thẳng.
71 – Gán nhãn cho biển báo Stop.
Hình 4.13. Gán nhãn cho biển báo Stop 4.3. Train data trên Google Colab 4.3. Train data trên Google Colab
4.3.1. Train data – model Yolov3
Bước 1: Resize tất cả ảnh cho cùng kích thước bằng phần mềm trước khi gán nhãn. Bước 2: Thực hiện gán nhãn bằng cơng cụ labelImg Tool:
– Xóa các danh mục trong file data/predefined_classes.txt – Chọn Open Dir => chọn đến thư mục chứa ảnh.
– Chọn Open change dir => chọn thư mục chứa ảnh.
– Gán nhãn xong phải mở file classes.text => xóa dịng trống cuối cùng.
Bước 3: Mở file classes.txt trong custom_data => Save as => classes.names (All type
(*)).
Bước 4: Tạo file train.txt và test.txt:
72 cd Downloads\train\custom_data
– Liệt kê File ảnh: dir/s/b *.jpg
– Xuất đường dẫn file ảnh: dir/s/b *.jpg >train.txt
– Replace đường dẫn trong file train.txt => custom_data/xxxx.jpg – Xóa dòng trống cuối cùng trong train.txt => Save
– Mở file train.txt => save as tạo file test.txt.
– File train.txt va test.txt được lưu trong file custom_data.
Bước 5: Tạo file labelled_data.data:
– Mở Notepab và gõ nội dung như sau: classes = 5 (số lượng vật thể)
train = custom_data/train.txt valid = custom_data/test.txt
names = custom_data/classes.names backup = backup
– Lưu và đuổi đuôi từ “.txt” sang “.data”
– File labelled_data.data cũng được lưu trong file custom_data.
Bước 6: Zip thư mục chứa ảnh (đặt tên thư mục là custom_data).
Bước 7: Upload file custom_data.zip vào thư mục yolo_custom_model_Training
trên Google Drive.
Bước 8: Mở Google colab: colab.research.google.com Bước 9: Liên kết Colab với Drive:
from google.colab import drive drive.mount('/content/drive')
73
Bước 10: Liệt kê tệp trong thư mục yolo_custom_model_Training
ls '/content/drive/My Drive/yolo_custom_model_Training'
Bước 11: Download file darknet vào thư mục yolo_custom_model_Training trong
Drive.
!git clone 'https://github.com/AlexeyAB/darknet.git' '/content/drive/My Drive/ yolo_custom_model_Training/darknet'
Bước 12: Chuyển đến thư mục darknet
%cd /content/drive/My Drive/yolo_custom_model_Training/darknet
Bước 13: Liệt kê file có trong thư mục darknet
!ls => xóa !ls => gõ !make => run
Bước 14: Download và chỉnh sửa file makefile
– GPU = 0 => 1 – CUNN = 0 => 1 – OPENCV = 0 => 1
Bước 15: Xóa makefile cũ trên drive => upload makefile mới lên drive
– Khi xóa phải xem makefile đã mất bên thư mục của colab chưa. – Khi upload cũng phải xem makefile đã tải lên colab chưa.
Bước 16: Tải và sửa file yolov3.cfg trong thư mục darknet/cfg:
– batch = 64
– subdivisions = 16 – width = 288 – height = 288
– max_batches = classes*2000 ( >= 6000) – step = 0.8* max_batches, 0.9* max_batches
74 – Find => [yolo]
– Classes = số lượng vật thể – Filters = (classes + 5)*3
– Save as yolov3.cfg => yolov3_custom.cfg => upload lên darknet/cfg – Khi upload phải xem bên colab có chưa.
Bước 17: Tạo file custom_weight trong yolo_custom_model_Training => Upload
file darknet53.conv.74 vào thư mục custom_weight.
Bước 18: Tạo file backup trong yolo_custom_model_Training. Bước 19: Chuyển đến thư mục yolo_custom_model_Training
%cd /content/drive/My Drive/yolo_custom_model_Training
Bước 20: Gõ và chạy lệnh: !darknet/darknet
Hình 4.14. Thứ tự Train Yolov3 bước 1 – 20 Bước 21: Thực hiện lại các bước với thời gian chạy là GPU: Bước 21: Thực hiện lại các bước với thời gian chạy là GPU:
– Runtime lại thành GPU – Liên kết Colab với Drive
75 – Liệt kê tệp trong thư mục yolo_custom_model_Training
– Chuyển đến thư mục darknet
– Liệt kê file có trong thư mục darknet => chạy lệnh !make – Chuyển đến thư mục yolo_custom_model_Training – Gõ và chạy lệnh: !darknet/darknet
– Unzip file custom_data
!unzip '/content/drive/My Drive/yolo_custom_model_Training/custom_data.zi p' -d '/content/drive/My Drive/yolo_custom_model_Training'
– Chuyển đến thư mục yolo_custom_model_Training – Gõ và chạy lệnh:
!darknet/darknet detector train custom_data/labelled_data.data darknet/cfg/yol ov3_custom.cfg custom_weight/darknet53.conv.74 -dont_show
76
4.3.2. Train data – model Yolov3 – tiny
Bước 1: Resize tất cả ảnh cho cùng kích thước bằng phần mềm trước khi gán nhãn. Bước 2: Thực hiện gán nhãn bằng cơng cụ labelImg Tool:
– Xóa các danh mục trong file data/predefined_classes.txt – Chọn Open Dir => chọn đến thư mục chứa ảnh.
– Chọn Open change dir => chọn thư mục chứa ảnh.
– Gán nhãn xong phải mở file classes.text => xóa dịng trống cuối cùng.
Bước 3: Mở file classes.txt trong custom_data => Save as => classes.names (All type
(*)).
Bước 4: Tạo file train.txt và test.txt:
– Mở cmd chỉ đường dẫn tới thư mục chứa ảnh: cd Downloads\train\custom_data
– Liệt kê File ảnh: dir/s/b *.jpg
– Xuất đường dẫn file ảnh: dir/s/b *.jpg >train.txt
– Replace đường dẫn trong file train.txt => custom_data/xxxx.jpg – Xóa dịng trống cuối cùng trong train.txt => Save
– Mở file train.txt => save as tạo file test.txt.
– File train.txt va test.txt được lưu trong file custom_data.
Bước 5: Tạo file labelled_data.data:
– Mở Notepab và gõ nội dung như sau: classes = 5 (số lượng vật thể)
train = custom_data/train.txt valid = custom_data/test.txt
77 backup = backup
– Lưu và đuổi đuôi từ “.txt” sang “.data”
– File labelled_data.data cũng được lưu trong file custom_data.
Bước 6: Zip thư mục chứa ảnh (đặt tên thư mục là custom_data).
Bước 7: Upload file custom_data.zip vào thư mục yolo_custom_model_Training
trên Google Drive.
Bước 8: Mở Google colab: colab.research.google.com Bước 9: Liên kết Colab với Drive:
from google.colab import drive drive.mount('/content/drive')
Bước 10: Liệt kê tệp trong thư mục yolo_custom_model_Training
ls '/content/drive/My Drive/yolo_custom_model_Training'
Bước 11: Download file darknet vào thư mục yolo_custom_model_Training trong
Drive.
!git clone 'https://github.com/AlexeyAB/darknet.git' '/content/drive/My Drive/ yolo_custom_model_Training/darknet'
Bước 12: Chuyển đến thư mục darknet
%cd /content/drive/My Drive/yolo_custom_model_Training/darknet
Bước 13: Liệt kê file có trong thư mục darknet
!ls => xóa !ls => gõ !make => run
Bước 14: Download và chỉnh sửa file makefile
– GPU = 0 => 1 – CUNN = 0 => 1 – OPENCV = 0 => 1
78
Bước 15: Xóa makefile cũ trên drive => upload makefile mới lên drive
– Khi xóa phải xem makefile đã mất bên thư mục của colab chưa. – Khi upload cũng phải xem makefile đã tải lên colab chưa.
Bước 16: Tải và sửa file yolov3 – tiny.cfg trong thư mục darknet/cfg:
– batch = 64
– subdivisions = 16 – width = 288 – height = 288
– max_batches = classes*2000 ( >= 6000) – step = 0.8* max_batches, 0.9* max_batches – Find => [yolo]
– Classes = số lượng vật thể – Filters = (classes + 5)*3
– Save as yolov3 – tiny.cfg => yolov3 – tiny_custom.cfg => upload lên darknet/cfg – Khi upload phải xem bên colab có chưa.
Bước 17: Tạo file custom_weight trong yolo_custom_model_Training => Upload
file yolov3 – tiny.conv.15 vào thư mục custom_weight.
Bước 18: Tạo file backup trong yolo_custom_model_Training. Bước 19: Chuyển đến thư mục yolo_custom_model_Training
%cd /content/drive/My Drive/yolo_custom_model_Training
79
Hình 4.16. Thứ tự Train Yolov3 – tiny bước 1 – 20 Bước 21: Thực hiện lại các bước với thời gian chạy là GPU: Bước 21: Thực hiện lại các bước với thời gian chạy là GPU:
– Runtime lại thành GPU – Liên kết Colab với Drive
– Liệt kê tệp trong thư mục yolo_custom_model_Training – Chuyển đến thư mục darknet
– Liệt kê file có trong thư mục darknet => chạy lệnh !make – Chuyển đến thư mục yolo_custom_model_Training – Gõ và chạy lệnh: !darknet/darknet
– Unzip file custom_data
!unzip '/content/drive/My Drive/yolo_custom_model_Training/custom_data.zi p' -d '/content/drive/My Drive/yolo_custom_model_Training'
– Chuyển đến thư mục yolo_custom_model_Training – Gõ và chạy lệnh:
!darknet/darknet detector train custom_data/labelled_data.data darknet/cfg/yol ov3-tiny_custom.cfg custom_weight/yolov3-tiny.conv.15 -dont_show
80
Hình 4.17. Thứ tự Train Yolov3 – tiny bước 21 4.3.3. Train data – model Yolov4 4.3.3. Train data – model Yolov4
Bước 1: Resize tất cả ảnh cho cùng kích thước bằng phần mềm trước khi gán nhãn. Bước 2: Thực hiện gán nhãn bằng công cụ labelImg Tool:
– Xóa các danh mục trong file data/predefined_classes.txt – Chọn Open Dir => chọn đến thư mục chứa ảnh.
– Chọn Open change dir => chọn thư mục chứa ảnh.
– Gán nhãn xong phải mở file classes.text => xóa dịng trống cuối cùng.
Bước 3: Mở file classes.txt trong custom_data => Save as => classes.names (All type
(*)).
Bước 4: Tạo file train.txt và test.txt:
– Mở cmd chỉ đường dẫn tới thư mục chứa ảnh: cd Downloads\train\custom_data
– Liệt kê File ảnh: dir/s/b *.jpg
– Xuất đường dẫn file ảnh: dir/s/b *.jpg >train.txt
81 – Xóa dịng trống cuối cùng trong train.txt => Save
– Mở file train.txt => save as tạo file test.txt.
– File train.txt va test.txt được lưu trong file custom_data.
Bước 5: Tạo file labelled_data.data:
– Mở Notepab và gõ nội dung như sau: classes = 5 (số lượng vật thể)
train = custom_data/train.txt valid = custom_data/test.txt
names = custom_data/classes.names backup = backup
– Lưu và đuổi đuôi từ “.txt” sang “.data”
– File labelled_data.data cũng được lưu trong file custom_data.
Bước 6: Zip thư mục chứa ảnh (đặt tên thư mục là custom_data).
Bước 7: Upload file custom_data.zip vào thư mục yolo_custom_model_Training
trên Google Drive.
Bước 8: Mở Google colab: colab.research.google.com Bước 9: Liên kết Colab với Drive:
from google.colab import drive drive.mount('/content/drive')
Bước 10: Liệt kê tệp trong thư mục yolo_custom_model_Training
ls '/content/drive/My Drive/yolo_custom_model_Training'
Bước 11: Download file darknet vào thư mục yolo_custom_model_Training trong
82 !git clone 'https://github.com/AlexeyAB/darknet.git' '/content/drive/My Drive/ yolo_custom_model_Training/darknet'
Bước 12: Chuyển đến thư mục darknet
%cd /content/drive/My Drive/yolo_custom_model_Training/darknet
Bước 13: Liệt kê file có trong thư mục darknet
!ls => xóa !ls => gõ !make => run
Bước 14: Download và chỉnh sửa file makefile
– GPU = 0 => 1 – CUNN = 0 => 1 – OPENCV = 0 => 1
Bước 15: Xóa makefile cũ trên drive => upload makefile mới lên drive
– Khi xóa phải xem makefile đã mất bên thư mục của colab chưa. – Khi upload cũng phải xem makefile đã tải lên colab chưa.
Bước 16: Tải và sửa file yolov4.cfg trong thư mục darknet/cfg:
– batch = 64
– subdivisions = 16 – width = 288 – height = 288
– max_batches = classes*2000 ( >= 6000) – step = 0.8* max_batches, 0.9* max_batches – Find => [yolo]
– Classes = số lượng vật thể – Filters = (classes + 5)*3
83 – Save as yolov4.cfg => yolov4_custom.cfg => upload lên darknet/cfg
– Khi upload phải xem bên colab có chưa.
Bước 17: Tạo file custom_weight trong yolo_custom_model_Training => Upload
file yolov4.conv.137 vào thư mục custom_weight.
Bước 18: Tạo file backup trong yolo_custom_model_Training. Bước 19: Chuyển đến thư mục yolo_custom_model_Training
%cd /content/drive/My Drive/yolo_custom_model_Training
Bước 20: Gõ và chạy lệnh: !darknet/darknet
Hình 4.18. Thứ tự Train Yolov4 bước 1 – 20 Bước 21: Thực hiện lại các bước với thời gian chạy là GPU: Bước 21: Thực hiện lại các bước với thời gian chạy là GPU:
– Runtime lại thành GPU – Liên kết Colab với Drive
– Liệt kê tệp trong thư mục yolo_custom_model_Training – Chuyển đến thư mục darknet
– Liệt kê file có trong thư mục darknet => chạy lệnh !make – Chuyển đến thư mục yolo_custom_model_Training – Gõ và chạy lệnh: !darknet/darknet
84 – Unzip file custom_data
!unzip '/content/drive/My Drive/yolo_custom_model_Training/custom_data.zi p' -d '/content/drive/My Drive/yolo_custom_model_Training'
– Chuyển đến thư mục yolo_custom_model_Training – Gõ và chạy lệnh:
!darknet/darknet detector train custom_data/labelled_data.data darknet/cfg/yol ov4_custom.cfg custom_weight/yolov4.conv.137 -dont_show
Hình 4.19. Thứ tự Train Yolov4 bước 21 4.3.4. Train data – model Yolov4 – tiny 4.3.4. Train data – model Yolov4 – tiny
Bước 1: Resize tất cả ảnh cho cùng kích thước bằng phần mềm trước khi gán nhãn. Bước 2: Thực hiện gán nhãn bằng công cụ labelImg Tool:
– Xóa các danh mục trong file data/predefined_classes.txt – Chọn Open Dir => chọn đến thư mục chứa ảnh.
– Chọn Open change dir => chọn thư mục chứa ảnh.
85
Bước 3: Mở file classes.txt trong custom_data => Save as => classes.names (All type
(*)).
Bước 4: Tạo file train.txt và test.txt:
– Mở cmd chỉ đường dẫn tới thư mục chứa ảnh: cd Downloads\train\custom_data
– Liệt kê File ảnh: dir/s/b *.jpg
– Xuất đường dẫn file ảnh: dir/s/b *.jpg >train.txt
– Replace đường dẫn trong file train.txt => custom_data/xxxx.jpg – Xóa dịng trống cuối cùng trong train.txt => Save
– Mở file train.txt => save as tạo file test.txt.
– File train.txt va test.txt được lưu trong file custom_data.
Bước 5: Tạo file labelled_data.data:
– Mở Notepab và gõ nội dung như sau: classes = 5 (số lượng vật thể)
train = custom_data/train.txt valid = custom_data/test.txt
names = custom_data/classes.names backup = backup
– Lưu và đuổi đuôi từ “.txt” sang “.data”
– File labelled_data.data cũng được lưu trong file custom_data.
Bước 6: Zip thư mục chứa ảnh (đặt tên thư mục là custom_data).
Bước 7: Upload file custom_data.zip vào thư mục yolo_custom_model_Training
trên Google Drive.
86
Bước 9: Liên kết Colab với Drive:
from google.colab import drive drive.mount('/content/drive')
Bước 10: Liệt kê tệp trong thư mục yolo_custom_model_Training
ls '/content/drive/My Drive/yolo_custom_model_Training'
Bước 11: Download file darknet vào thư mục yolo_custom_model_Training trong
Drive.
!git clone 'https://github.com/AlexeyAB/darknet.git' '/content/drive/My Drive/ yolo_custom_model_Training/darknet'
Bước 12: Chuyển đến thư mục darknet
%cd /content/drive/My Drive/yolo_custom_model_Training/darknet
Bước 13: Liệt kê file có trong thư mục darknet
!ls => xóa !ls => gõ !make => run
Bước 14: Download và chỉnh sửa file makefile
– GPU = 0 => 1 – CUNN = 0 => 1 – OPENCV = 0 => 1
Bước 15: Xóa makefile cũ trên drive => upload makefile mới lên drive
– Khi xóa phải xem makefile đã mất bên thư mục của colab chưa. – Khi upload cũng phải xem makefile đã tải lên colab chưa.
Bước 16: Tải và sửa file yolov4 – tiny – custom.cfg trong thư mục darknet/cfg:
– batch = 64
– subdivisions = 16 – width = 288/128/96
87 – height = 288/128/96
– max_batches = classes*2000 ( >= 6000) – step = 0.8* max_batches, 0.9* max_batches – Find => [yolo]
– Classes = số lượng vật thể – Filters = (classes + 5)*3
– Save yolov3 – tiny – custom.cfg => upload lên darknet/cfg – Khi upload phải xem bên colab có chưa.
Bước 17: Tạo file custom_weight trong yolo_custom_model_Training => Upload
file yolov4 – tiny.conv.29 vào thư mục custom_weight.
Bước 18: Tạo file backup trong yolo_custom_model_Training. Bước 19: Chuyển đến thư mục yolo_custom_model_Training
%cd /content/drive/My Drive/yolo_custom_model_Training
Bước 20: Gõ và chạy lệnh: !darknet/darknet
Hình 4.20. Thứ tự Train Yolov4 – tiny bước 1 – 20 Bước 21: Thực hiện lại các bước với thời gian chạy là GPU: Bước 21: Thực hiện lại các bước với thời gian chạy là GPU:
88 – Runtime lại thành GPU
– Liên kết Colab với Drive
– Liệt kê tệp trong thư mục yolo_custom_model_Training – Chuyển đến thư mục darknet
– Liệt kê file có trong thư mục darknet => chạy lệnh !make – Chuyển đến thư mục yolo_custom_model_Training – Gõ và chạy lệnh: !darknet/darknet
– Unzip file custom_data
!unzip '/content/drive/My Drive/yolo_custom_model_Training/custom_data.zi p' -d '/content/drive/My Drive/yolo_custom_model_Training'
– Chuyển đến thư mục yolo_custom_model_Training – Gõ và chạy lệnh:
!darknet/darknet detector train custom_data/labelled_data.data darknet/cfg/yol