caffe中meanvalue与meanfile的解析

转自:
https://blog.csdn.net/yangdashi888/article/details/79340195

1、caffe使用的mean_是为了图像像素值能更接近(0,0)原点,当图像减掉mean值后的效果图如下:


2、其中网络训练里的均值可以通过两种方式设置,第一种:直接设定均值大小,如mean_value:104 。第二种:通过计算均值文件来设定均值大小,其通过mean_file:mymean.binaryproto。来指定均值文件。(个人觉得直接设定均值文件大小进行训练准确会更高)

  其中window版本的caffe中的分类工程代码里只能使用mean_file均值文件来指定均值,如果要让其也能适应直接指定均值,则需要修改代码。其修改函数是Classifier构造函数里的代码,其主要功能就是初始化Mat类型的全局变量mean_。修改代码如下:


     注意:其中的SetMean()函数就是通过均值文件来初始化成员变量mean_。

其中里面的实现功能是:


       注意:其是通过训练时的均值文件来求每个通道的平均值,然后合并成一个三通道的Mat对象,然后再初始化成一个224*224大小的图像。用于识别前的图像预处理。

3、原始图像在进行识别前的预处理的前后过程:


                                                                                       处理前      

         注意: caffe减掉均值前的图像值,其中的mean_是对均值文件的每个通道进行求平均值,然后把平均值变化成一幅均值图,但这里进行跟踪内存时发现值不对,这个可能是应为跟踪的方式不对,实际上只有【114,119,122】


                                                                      处理后                                              

        注意:减掉通过均值文件计算出的均值后的结果

4、不同的均值大小对于同一个网络权重的影响:

  a、三通道值相同的识别的准确率:


       注意:其中识别的准确率基本没有改变。


注意:识别准确率也基本也没有改变。


 注意:但是对于通道值不同的值后其对识别准确率影响很大。

     注意:通过测试预处理的通道值对识别准确率的影响率可以得出在识别的的时候通道均值要跟训练的均值大小一致。所以对于通过均值文件训练的网络的准确率没有直接指定均值的准确。






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章