大家好呀,经过两天的挣扎,我终于实现了ssd的单独图像检测,这篇博客的基础是已经训练出了ssd的caffemodel,如何训练,请移步我的上一篇博客:
在home/caffe-ssd/examples/里我们需要ssd_detect.ipynb文件,要打开它需要确定自己的平台上安装了jupyter notebook。
在安装后,
cd home/caffe-ssd/examples/
jupyter notebook
来打开jupyter notebook网页,打开后可以找到ssd_detect.ipynb文件,打开,需要确认四个地方的地址是否正确。
1.labelmap_file = 'data/VOC0712/labelmap_voc.prototxt'
2.model_def = 'models/VGGNet/VOC0712/SSD_300x300/deploy.prototxt'
3.model_weights = 'models/VGGNet/VOC0712/SSD_300x300/VGG_VOC0712_SSD_300x300_iter_120000.caffemodel'
4.image = caffe.io.load_image('examples/images/fish-bike.jpg')
这里,有人会遇到路径找不到的问题,只需要把之前的caffe_root后面的路径换成绝对路径,然后把找不到的那个
路径前面加上【caffe_root+】就可以了。
没有问题以后,一步一步点run就可以运行了,想要修改图片,只需要修改上述的第四点image的图片名就可以了。
这里需要提一点,其实我在运行的时候遇到了比这个多的多的问题,毕竟卡了两天,比如
1.打开了jupyter notebook网页但是打不开ssd_detect.ipynb文件,显示:
Unreadable Notebook NotJSONError('Notebook does not appear to be JSON: u\'{\\n “cells”:
[\\n {\\n “cell_type”: "…',)
2.在运行ssd_detect.ipynb文件的时候报错,显示:
NameError:name ‘net’ is not defined
这两个问题网上都有对应解决的博客,提了很多解决办法,我都一一尝试了,但是都没什么用,也可能是我操作不对,
反正当时很崩溃,但最后解决的办法很简单,重新上传,重新来过,小心操作,就会成功,所以对也有这两个问题的
小朋友们说一句,也许多尝试几次,会比跟着技术大牛修改来的简单,也许就会迎刃而解。
操作规范真的很重要,比如,在想要关闭ssd_detect.ipynb的时候点击上方红色按钮shutdown一下,关掉终端窗口
的时候不要直接关,按Ctrl+c然后按y再关掉,会比较不容易出错,永远保留一个原始的备份,复制文件不要直接复
制,用cp命令来复制等等。希望我这好几天的教训能够帮到大家。
3.在打开jupyter notebook后单幅图像运行的最后一步,有一次报错The kernel appears to have died. It will
restart automatically.打开终端显示out of memory。这个就是所用的GPU块内存不够了,输入nvidia-smi查看
GPU的分块情况,如果真的是所说的问题,在ssd_pascal.py中修改所用的gpu块就解决了。
我们下期再见!