Cách tạo ra bounding box trong YOLO?
Chào mọi người. Mình đang đọc về Yolo. Mỗi ảnh chia thành các grid. Mỗi grid sẽ dự đoán 1 số lượng cố định bounding box (do mình truyền vào). Các tạo ra bounding box là dùng k-clustering. Nhưng mình chưa hiểu nó predict như thế nào. Dùng k-clustering ra sao? Dựa vào đâu để hình thành bounding box?
Nhờ anh em thông não giúp nha!
1 CÂU TRẢ LỜI
Chào bạn. Câu hỏi của bạn có lẽ đang nói đến YOLOv2. Như phần trên bạn đã đưa ra câu hỏi. YOLO sẽ chia ảnh của chúng ta thành các ô cố định (giả sử grid có kích thước10x10) và trong mỗi ô nhỏ đó sẽ chịu trách nhiệm dự đoán một object nếu như tâm (centroid) của object được phát hiện nằm trong ô nhỏ này (tức là conffidence score lớn hơn một ngưỡng nào đó giả sử là 0.25).
- Dựa vào đâu để hình thành bounding box?
Để dự đoán người ta sử dụng CNN layers để dự đoán các tham số của box chứa object dựa vào các box mẫu (anchor boxes) tức là các box có kích thước được định nghĩa trước. Giống như trong Faster RCNN sau đó dựa vào các box mẫu này để tinh chỉnh tọa độ cho phù hợp với objects.
- Dùng k-clustering ra sao?
Để training ra các anchors này chúng ta cần sử dụng K-Clustering và cần phải có một độ đo để dùng làm hàm loss. Như trong YOLOv2 sử dụng IOU (Intersection Over Union, thể hiện độ khớp của prediction box so với ground-truth box). Thay đổi số lượng centroids cho phù hợp với nhu cầu của bạn (về cơ bản càng nhiều cụm thì chỉ số IoU càng tăng - càng khớp với ground-truth)
Mình đã hiểu sơ sơ về YoLo trước khi nhận được câu trả lời của bạn. Cảm ơn bạn. Tiện thể cho mình hỏi 1 chút.
- Mình có đọc ở bài này Link thì có nói 1 câu: each cell detects one object only regardless of the number of boxes B
Tại sao 1 cell detect có 1 object nhỉ. Rõ ràng có bao nhiêu bounding box thì có thể có tối đa bấy nhiêu object có thể detect. Hay mình hiểu sai nhỉ?
- bước nào trong mạng/network thể hiện sự tinh chỉnh mà bạn nói nhỉ?
- Mình vẫn chưa hiểu/biết K-clustering dùng như thế nào hay dùng lúc nào.