Mục lục
- Tiền đề bài viết
- Bước 1: cài đặt các chương trình cần thiết
- Bước 2: training
- Bước 3: test model
- Link github
Tiền đề bài viết
Đếm sắt xây dựng là 1 bài toán kinh điển trong học lập trình ứng dụng Computer Vision. Nó hội tụ đủ các yếu tố để trở thành ví dụ mẫu:
– Có mục tiêu rõ ràng, dễ dàng xác định được thành công hay không
– Dataset không bí mật, không nhạy cảm, dễ dàng thu thập
– Có tính ứng dụng trong thực tế
– Và cuối cùng là độ khó tương đối thấp
Bài viết này cung cấp đầy đủ cho các bạn gồm dataset, cách thức thực hiện và sử dụng.
Bước 1: cài đặt các chương trình cần thiết
- Python 3.10 x64
- CUDA 11.8
- cuDNN 8.6.0
Cài đặt pip package
pip install -r requirements.txt
Cài đặt Pytorch 2.7.0 CUDA
pip install torch==2.7.0 torchvision==0.22.0 torchaudio==2.7.0 --index-url https://download.pytorch.org/whl/cu118
Bước 2: training
Trong repository đã upload sẵn notebook YOLODetect, các bạn chỉ cần training theo tham số mặc định là được.
Giải thích câu lệnh training:
results = model.train(data=f"{current_dir}/Dataset/data.yaml",
epochs=500,
imgsz=640,
batch=8,
device=0,
name="iron")
- data: đường dẫn đến file data.yaml, chỉ ra dataset và các class cần training
- epochs: Số vòng lặp huấn luyện, số càng nhiều thì model càng chính xác. Bạn có thể training từ 200 epoch cho nhanh, nhưng để có độ chính xác cao cần 500. Thường thì model khi đạt đủ độ chính xác sẽ ngưng.
- imgsz: trước khi training thì ảnh sẽ được resize về kích cỡ imgsz. Khi sử dụng các bạn cần set input size tương ứng.
- batch: là số lượng ảnh được đưa xuống GPU để xử lý trong một lần khi training. Có nghĩa là VRAM của bạn càng ít thì số này càng nhỏ. Néu batch=0 thì chương trình sẽ tự tính, nếu batch lớn thì sẽ xảy ra lỗi: CUDA out of memory
- name: tên folder sẽ được tạo khi chạy
Sau khi training thành công, bạn sẽ được file **runs\iron\weights\best.pt**. Nếu bạn chỉ sử dụng Python thì file này là đủ.
Trong repository đã commit sẵn cho các bạn các file weight đã training thành công trong folder weight.
Bước 3: test model
Nếu bạn sử dụng Python file best.pt là có thể chạy được trực tiếp
Nếu bạn cần chạy với Windows application thì convert sang ONNX để sử dụng với chương trình YOLOLYTIC. Bạn có thể convert sang ONNX CPU hoặc CUDA để chạy với bản phù hợp.
Trong folder Weight commit sẵn 2 file bat:
- convert_pt_to_onnx.bat: convert file *.pt sang file *.onnx chạy bằng CPU
- convert_pt_to_onnx_CUDA.bat: convert file *.pt sang file *.onnx chạy bằng GPU (CUDA)
Các bạn sử dụng chương trình YOLOLYTIC để test model:
Như hình trên ta thấy kết quả là 114 cây sắt, thời gian chạy bằng CPU là 630ms.
