本周的作业实现了YOLO算法,并用于自动驾驶的目标检测中。
Model details
输入: (m, 608, 608, 3)
输出: (m, 19, 19, 5, 85)
IMAGE (m, 608, 608, 3) -> DEEP CNN -> ENCODING (m, 19, 19, 5, 85)
也就是有5个Anchor boxes,一共有80个分类。
所以,每个box的scores也就是等于每个类预测的可能性:
Filtering with a threshold on class scores
这个时候开始创建一个函数,得到每一个box中scores最大的那个类,分数,以及位置,去掉其他没用的。
1 | # GRADED FUNCTION: yolo_filter_boxes |
Non-max suppression
找到了这些boxes后,还需要进行筛选过滤掉。先完成一个IOU算法:
1 | # GRADED FUNCTION: iou |
tensorflow已经帮你实现了iou算法了,不用用自己刚才写的了:
思想就是拿掉IOU比较大的那些box
1 | # GRADED FUNCTION: yolo_non_max_suppression |
而后结合刚才的函数,先去掉scores低的,然后运算NMS算法
1 | # GRADED FUNCTION: yolo_eval |
进行预测:
1 | def predict(sess, image_file): |