Trong thực tế, thì ko phải hình dạng của các đối tượng là tùy ý, nó luôn tuân theo một quy tắc, tỷ lệ nào đó, cho nên ta có thể sd một bbx default mặc định như sau, nó có khả năng giúp bao và phát hiện được nhiều đối tượng nhất: Đối với mỗi lớp feature maps, nó sẽ chia sẻ cùng một bộ bbx mặc định khác nhau để có thể tùy chỉnh detect các đối tượng có các kích thước khác nhau (các feature maps ở các độ phân giải khác nhau). 4 hộp bbx màu xanh dưới đây là 4 hộp bbx mặc định của một lớp:
Feature map nhiều kích thước & các bbx default
Dưới đây là ví dụ cho việc sử dụng feature map nhiều tỷ lệ và bbx default để có thể detect ra các object nhiều kích thước:
Hình 3.14 Sử dụng feature map chia nhiều tỷ lệ khác nhau
Con chó khớp với bbx mặc định màu đỏ được thể hiện trong feature map có kích thước nhỏ là 4 * 4, và bbx mặc định màu xanh phát hiện con mèo ở feature map kích thước lớn 8 * 8.
Do đó, feature map ở độ phân giải cao thì phát hiện được đối tượng nhỏ và feature map ở độ phân giải thấp thì phát hiện được đối tượng lớn.
Nhược điểm: Khi hình ảnh đầu vào cho vào SSD thì kích thước của hình ảnh đã giảm đi đáng kể cho nên các độ chính xác detect object không cao.
Giải pháp: sd hình ảnh đầu vào có độ phân giải cao hơn.
1.8 Cài đặt
Để thực hiện nhận diện đối tượng bằng SSD MultiBox Real-Time tất cả những gì bạn cần làm là:
1. Cài đặt python
2. Tải xuống file mô hình Object Detection
3. Code thuật toán
4. Chạy chương trình
Bây giờ, hãy bắt đầu
2. Tensorflow 1.4.0 (and later versions)
pip3 install --upgrade tensorflow
3. Numpy 1.13.1 (and later versions)
pip3 install numpy
4. SciPy 0.19.1 (and later versions)
pip3 install scipy
5. OpenCV
pip3 install opencv-python 6. Pillow
pip3 install pillow
7. Matplotlib
pip3 install matplotlib 8. h5py
pip3 install h5py
9. Keras 2.x
pip3 install keras
10. ImageAI
pip install https://github.com/OlafenwaMoses/ImageAI/releases/download/2.0.1/imageai-2.0.1- py3-none-any.whl
11. Tải xuống mô hình train YOLO và dataset Coco.names sẽ được sử dụng để nhận diện đối tượng