Mở đầu
Tiếp theo bài giới thiệu về YOLO series và Yolov1 (https://hoanglong187.blogspot.com/2022/08/1-yolo-part-1-yolov1.html)
Ta thấy rằng Yolov1 còn nhiều nhược điểm cần khắc phục như:
- Độ chính xác còn kém so với các Region-based detector
- Chỉ có thể dự đoán tối đa 1 object mỗi grid cell
- Các giá trị (x, y, w, h) được dự đoán tự do chưa liên hệ với nhau
Yolov2 sẽ cải thiện những vấn đề này
Anchor Box
Ý tưởng đến từ FastRCNN
Người ta thấy rằng trong hầu hết các bộ dataset, các Bounding Box (BBox) thường có hinh dạng tuân theo các tỉ lệ, kích cỡ và quy tắc nhất định
Ý tưởng
So với Yolov1, Yolov2 có các thay đổi:
- Input image có kích thước lớn hơn
- Có thêm ý tưởng Anchor box từ FasterRCNN
- Có thêm BatchNorm layer
- Bỏ đi các Fully-connected layer ở cuối để tăng tốc độ tính toán, giải tỏa điều kiện về kích thước ảnh input
- Mỗi bounding box đều có class_distribution riêng. Có thể multi-object in a cell
Từ đó khiến Yolov2 hiệu quả hơn hẳn, trở thành nền tảng cho v3, v4, v5 ... sau này
Với σ là hàm sigmoid.
Vì vậy, cách thức tính Loss vẫn giữ nguyên so với Yolov1 là chia thành 3 loại Object/Noobject Loss + Conference Loss + Coordination Loss
Tóm tắt cấu trúc
Vậy tóm lại có thể hình dung Yolov2 sử dụng backbone là darknet19 và thêm 11 lớp chập để nhận dạng
Thay vì dùng Tensorflow, hãy thử dùng Pytorch để xem thử sự khác biệt
Tham khảo
- https://viblo.asia/p/yolo-series-p1-ly-thuyet-yolo-va-yolov2-jvElamxYlkw
- https://viblo.asia/p/yolo-series-p2-build-yolo-from-scratch-924lJGoz5PM
- https://phamdinhkhanh.github.io/2020/03/09/DarknetAlgorithm.html
- https://www.mathworks.com/help/vision/ug/anchor-boxes-for-object-detection.html
Nhận xét
Đăng nhận xét