Phần 2 - Giải thích đầu ra và đầu vào của mô hình YOLO
Chúng ta sẽ đi cùng chuỗi bài viết tiền xử lý dữ liệu cho mô hình YOLO - nhận diện vật thể trong hình ảnh.
Các khái niệm được đề cập trong bài
Box dự đoán (Predicted Box)
Chỉ số IOU
1) Đầu vào của YOLO
Như chúng ta đã tìm hiểu trong bài trước, Thuật toán YOLO sẽ chia bức ảnh thành một lưới có kích cỡ S x S cụ thể là cỡ 7x7 như hình dưới đây:
Với mỗi ô trong lưới 7x7 này, mô hình YOLO sẽ vẽ các box dự đoán với mục tiêu là xấp xỉ được grounding true box chính là box nhãn (màu đỏ) của chúng ta.
Trong trường hợp này Box dự đoán chính là hình chữ nhật màu trắng với tâm nằm trong ô màu trắng. Vậy thì giả sử nếu mỗi một ô này YOLO sẽ học 2 box dự đoán thì với 7 x 7 ô thì chúng ta sẽ có bao nhiêu box dự đoán?
Câu trả lời là 7 x 7 x 2 = 98 box dự đoán
Box dự đoán
Chi tiết thông tin lưu trữ của một box dự đoán được bố trí như sau: 5 giá trị bao gồm x, y, w, h, confidence. Những giá trị này mang tính chất tỉ lệ, không phải tính chất tuyệt đối.
(x, y) là tọa độ tâm của box dự đoán tỉ lệ với chiều của ô mà tâm đó nằm bên trong. Ví dụ có 7x7 ô thì một ô sẽ có chiều 64x64 ( Cách tính: 448 / 7 = 64)
Cách tính hai biến này sẽ được trình bày trong phần tiếp theo
width chiều dài của box dự đoán tỉ lệ với chiều dài của ảnh
Khi lập trình bạn có thể code như sau:
(xmax - xmin) / image_width
height chiều cao của box dự đoán tỉ lệ với chiều cao của ảnh
Khi lập trình bạn có thể code như sau:
(ymax - ymin) / image_height
Giá trị confidence thể hiện giá trị IOU giữa box dự đoán với box grounding true. IOU là giá trị thể hiện sự giao thoa giữa hai box bất kỳ. Nếu hai box giao thoa càng nhiều thì giá trị này càng lớn.
2) Đầu ra của YOLO
Một cách ngắn gọn đầu ra YOLO sẽ là một tensor có chiều: S × S × (B x 5 + C)
Trong trường hợp này:
S = 7, chiều của lưới tạo ra 7 x 7 = 47 ô
B là số lượng bounding box dự đoán ở mỗi ô của grid. Trường hợp này B = 2
C là kết quả tự tin dự đoán là ô này dự đoán nhãn nào. Bài toán 20 nhãn thì C = 20
Vây là YOLO sẽ trả về 7 x 7 vector, mỗi vector đại diện cho một cell bao gồm B x 5 + C = 2 x 5 + 20 = 30 phần tử
20 phần tử đầu đầu tiên đại diện cho vector dự đoán trên 20 nhãn. Tổng các giá trị tạo nên biến cố đầy đủ hay có tổng bằng 1.
5 phần tử tiếp theo (hiển thị bằng màu hồng) đại diện cho 5 thông số x, y, w, h, confidence của box dự đoán 1
5 phần tử tiếp theo (hiển thị bằng màu xanh) đại diện cho 5 thông số x, y, w, h, confidence của box dự đoán 2
Trên ảnh bạn có thể hình dung chi tiết về đầu ra của mô hình YOLO.
Trong bài toán tiếp theo, đội ngũ ProtonX sẽ hướng dẫn các bạn chuẩn bị dữ liệu để tiến hành xử lý dữ liệu và training mô hình nhé.