我正在通过张量流执行对象检测,并且遇到了对象检测不太准确的问题。我使用的架构是start
。
更具体地说,我要解决的问题如下:
我正在尝试检测盒子,但是附上的图像将平板电脑检测为盒子,但置信水平确实很高(99%)。我想找出在哪里定义和打印置信度,因为我很好奇为什么平板电脑具有像盒子一样高的置信度。我输入的所有训练数据都是我检测到的框。
谁能帮我找出Tensorflow对象检测API中定义的置信度在哪里?或者也许让我解决这个问题?
答案 0 :(得分:0)
首先,我将解释分数的产生方式。
显示在框边缘的置信度得分是model faster_rcnn_resnet_101
的输出。这是它的产生方式。
上图是从Fast R-CNN借来的,但对于框预测器部分,Faster R-CNN具有相同的结构。我们从ROI合并层开始,所有区域建议(在特征图上)都经过合并层,并表示为固定形状的特征向量,然后通过完全连接的层,将成为 ROI特征向量< / strong>,如图所示。现在,相同的ROI特征向量将被馈送到softmax分类器进行类预测,并向bbox回归器进行边界框回归。这就是张量流图中的样子。
在图中,Flatten和Flatten_1节点都接收相同的特征张量,并且执行flat op(在opten op之后,它们实际上是第一张图中的ROI特征向量)并且它们仍然相同。现在,我们专注于 ClassPredictor ,因为这实际上将给出最终的类预测。
上图是ClassPredictor内部的内容。 实际上是第一个图所示的完全连接层。输出张量在图中的形状为64 * 24,它表示64个预测对象,每个都是24个类之一(23有1个背景课程的课程)。因此,对于每个对象,输出是1x24向量,向量中的最大值是99%和100%置信度得分。
因此,对于您的问题,未定义置信度得分,而是模型的输出,您可以在可视化功能中定义置信度得分 threshold ,所有得分都更大超过此阈值的图像将显示在图像上。因此,除非重新训练模型和/或提供更多训练数据,否则您无法更改置信度得分。在您的图中,计算精度时,检测到的99%数位板将被分类为假阳性。
解决该问题的解决方案是添加更多的训练数据和/或训练更多的步骤(但不要过度拟合)