TensorFlow Object Detection API使用问题小记
Posted 冰不语
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TensorFlow Object Detection API使用问题小记相关的知识,希望对你有一定的参考价值。
1. Faster RCNN batch size 只能设为1?
参考:object detect api fasterrcnn OOM:https://github.com/tensorflow/models/issues/3697#issuecomment-425992882
有三种可选的办法:
- Add
pad_to_max_dimension : true
inkeep_aspect_ratio_resizer
:
keep_aspect_ratio_resizer
pad_to_max_dimension : true
- Change batch size to
1
:
train_config:
batch_size: 1
- Use
fixed_shape_resizer
instead ofkeep_aspect_ratio_resizer
:
fixed_shape_resizer
width: 1024
height: 2014
2. config文件里的keep_aspect_ratio_resizer
是什么意思?
image_resizer
keep_aspect_ratio_resizer
min_dimension: 600
max_dimension: 1024
在resize图像大小过程中保持原图像的长宽比不变,并确保图像的尺寸在最小最大范围内。
3. coco_detection_metrics ——COCO检测指标
Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.025
Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.078
Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.005
Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000
Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.045
Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.018
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.043
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.047
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.047
Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000
Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.070
Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.038
1.Average Precision (AP)和Average Recall (AR)等等这些都是啥意思?
IoU=0.50
意味着IoU
大于0.5被认为是检测到。IoU=0.50:0.95
意味着IoU
在0.5到0.95的范围内被认为是检测到。- 越低的
IoU
阈值,则判为正确检测的越多,相应的,Average Precision (AP)
也就越高。参考上面的第二第三行。 small
表示标注的框面积小于32 * 32
;medium
表示标注的框面积同时小于96 * 96
;large
表示标注的框面积大于等于96 * 96
;all
表示不论大小,我都要。maxDets=100
表示最大检测目标数为100。
2. Average Precision (AP)和Average Recall (AR)值里面有-1是什么情况?
参考:https://github.com/cocodataset/cocoapi/blob/master/PythonAPI/pycocotools/cocoeval.py#L52
标注里面没有此类型的目标框,则Average Precision
和Average Recall
值为-1。
上面的例子中,area= small
的Average Precision
和Average Recall
值为-1,说明验证集中的标注框面积没有小于32 * 32
的。
以上是关于TensorFlow Object Detection API使用问题小记的主要内容,如果未能解决你的问题,请参考以下文章
如何安装 TensorFlow 2 和 object_detection 模块?
TensorFlow Object Detection API
TensorFlow object_detection 使用
TensorFlow object detection API