用segnet训练我自己的数据,实验笔记1——改变图片大小

我的数据库是NYU vesion1,大小是640×480,长乘高,segnet用的数据库是480×360.如果直接用会出现unsampled的错误,unsampled的参数是长30,高23.

F0915 05:08:09.027793 45783 upsample_layer.cpp:63] Check failed: bottom[0]->height() == bottom[1]->height() (23 vs. 30) 
*** Check failure stack trace: ***
    @     0x7fb4ab65ddaa  (unknown)
    @     0x7fb4ab65dce4  (unknown)
    @     0x7fb4ab65d6e6  (unknown)
    @     0x7fb4ab660687  (unknown)
    @     0x7fb4aba6e718  caffe::UpsampleLayer<>::Reshape()
    @     0x7fb4ab9d4bf2  caffe::Net<>::Init()
    @     0x7fb4ab9d6952  caffe::Net<>::Net()
    @     0x7fb4ab9bcbf0  caffe::Solver<>::InitTrainNet()
    @     0x7fb4ab9bdbc3  caffe::Solver<>::Init()
    @     0x7fb4ab9bdd96  caffe::Solver<>::Solver()
    @           0x40c5d0  caffe::GetSolver<>()
    @           0x406611  train()
    @           0x404bb1  main
    @     0x7fb4aab6ff45  (unknown)
    @           0x40515d  (unknown)
    @              (nil)  (unknown)

  

考虑改变数据大小:

  • 使用matlab默认的imresize函数进行调整大小
    • 出现新问题:resize会不会改变rgb值,也就是rgb值是按照位置变动而进行的单纯的复制,还是根据context插值计算的新的rgb,前者当然会失真,但是好处是标签还是对应的。两个重点,自变量是位置,保证特征图与标签同一像素缩小后落在同一位置;rgb的值不会改变,边缘,contour还是那个contour。
    • 举例说明:因为你(9,0)处的RGB根据位置(9,0)被复制到了(3,0),那么对于标签.png这个图,当然他(9,0)也会被复制到同样的位置,(3,0)。至此,才能说这一步并没有带来bug,实验bug。
    • 参考资料http://blog.csdn.net/colddie/article/details/7683492,http://blog.csdn.net/zhangla1220/article/details/41014541
  • 最终出现了喜人的结果,旧错误消失,出现了新的错误。
  • 代码:http://www.cnblogs.com/SweetBeens/p/8572655.html
  • 最终效果:https://blog.csdn.net/u013249853/article/details/79827501

猜你喜欢

转载自blog.csdn.net/u013249853/article/details/79827469
今日推荐