调试calc(Convolutional Autoencoder for Loop Closure)的问题
程序员文章站
2022-04-01 16:12:05
...
这两天看了一篇做回环检测的,觉得很有意思。文章叫<<Lightweight Unsupervised Deep Loop Closure>>,大体思路是给定一张图片,首先在四个角各取一个点,然后作为新的图像,然后原图像计算HOG,新图像送到抗噪编码器产生和HOG一样的维度,最后两个HOG的欧氏距离,计算L2损失函数,解决了视角、尺度变化的问题,使回环更具鲁棒性;并且网络也十分简单,可以实现实时的检测。工程地址:https://github.com/rpng/calc
但是在调试中也出现了一些问题,具体如下:
1、caffe安装,网上的各种caffe安装教程中都没有 make install 这一步,但是这个工程是需要的,caffe安装也是个坑,需要安装各种依赖,不过还好有官方和非官方的安装教程。
2、DeepLCD工程的build,首先是如果要用他的模型,必须要下载,但是下载路径是他的个人网站,速度极慢,建议直接把链接取出来下载。
3、在编译时有个问题,gtest库好像更新了,但是作者还没有更新它的代码,但是这部分貌似是error测试的,可以不编译这部分,具体方案如:https://github.com/rpng/calc/issues/18。
4、搞得我最头疼的问题还是那个模型,因为下的他的模型,所以没有多想,但是编译的时候的问题入下:
F0830 14:34:49.570622 25732 upgrade_proto.cpp:97] Check failed: ReadProtoFromBinaryFile(param_file, param) Failed to parse NetParameter file: /home/jerry/classic_slam/calc/DeepLCD/build/calc_model/calc.caffemodel
*** Check failure stack trace: ***
我开始以为是路径的问题,所以谢了绝对路径,但是后来发现并不是,google后发现是因为读取model的问题,最后发现下载的模型压缩包有40M,但是解压后的模型只有3M,可能时之前没下完的取解压了,模型的结构不全,所以导致运行时出错,重新解压出完整的包就可以了。