每个边界框

时间:2016-04-14 09:13:39

标签: machine-learning neural-network svm bounding-box conv-neural-network

我目前正致力于使用神经网络进行图像分类。我已经成功地在图像上创建了边界框,并且对于每个边界框,我已经应用了分类算法(W ^ X + B,其中W,B是已经从训练数据中学习的权重和偏差),以获得20个类中的每一个的值。

对于一个边界框,我得到20个类的值:

 221.140961  71.6502609  185.005554 14.2860174   177.44928   -20.842535
-16.2324142 -105.940437 -397.505829 132.100311  -12.3567591  262.162872 
-243.444672 -198.083984 19.3514423  1.94239163  -75.0622787 -93.7277069 
-181.89653   260.002625

预测的类是11级(类的索引从0开始),其最大值为262.162872。我也遇到过一些文章,我发现每个边界框的置信度值通常都是计算出来的,其值的范围是0到1。

如何为每个边界框获取此置信度值?是否只是第11类相对于所有其他类的概率? 在这个数据中我该如何获得它?

1 个答案:

答案 0 :(得分:2)

要将神经网络的输出转换为概率,通常使用softmax: https://en.wikipedia.org/wiki/Softmax_function

这确保非常小的值变为接近零的概率,并且非常大的值变为接近一个概率。范围的末端对该值的大小相对不敏感,范围的中间更敏感。它还确保所有概率加起来为1.这适用于多类分类(类不相交)。

请注意,在softmax之前通常不会应用激活功能(例如ReLU)。因此典型的网络是卷积 - > ReLU - > ... - >卷积 - > ReLU - >卷积 - > SOFTMAX。

P.S。你所描述的神经网络真的有一层吗?这通常不会产生良好的效果。