用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
本博客专注于错误锦集,在作死的边缘试探