4.训练自己模型的SSD完整详细步骤
(写在每篇深度学习文章系列的前面,该系列的文章是我2019年做毕设时的步骤总结,是能实现的,不和其他很多博客一样瞎糊弄人浪费时间。写下这些文章一方面为了方便后来者,一方面也为了自己以后的步骤复现等。
另外,如果我给的那些参考帖子看不了了,可以到我的博客下载区那里去下载对应的压缩文件,我把里面所有的链接网页都截了长图,所以不用担心我给的参考帖子链接失效。
其次,如果我给的参考链接侵犯了该链接博主的权益,烦请告知,必当第一时间删掉。由于本人参考帖子较多,如果侵犯了请原谅,我会删掉。也谢谢各位在路上帮助过我的,谢谢了。
还有就是,如果积分太高了,请告诉我怎么把积分降低,我也不太清楚怎么弄,积分会随着下载次数增加逐渐增加。你知道的话怎么降的话可以留言给我。
emm, 最后的最后,如果你觉得这篇博文有用,请点个赞哩,感谢!~~)
(博客下载区:https://download.csdn.net/download/lininggggggg/11224776
或者在下载区搜索名字:4.训练自己模型的SSD完整详细步骤.zip–深度学习文章4)
正文
以E:\GraduationProject\Data\SSD-Tensorflow-master_2路径下为例。
一、 下载SSD-Tensorflow-master压缩包并解压
https://github.com/balancap/SSD-Tensorflow
二、将这个路径下的E:\GraduationProject\Data\SSD-Tensorflow-master_2\checkpoints文件夹下的ssd_300_vgg.ckpt压缩包解压到当前文件夹下。
三、(管理员模式)用Anaconda Prompt运行虚拟环境tf-gpu-py36,然后在E:\GraduationProject\Data\SSD-Tensorflow-master_2目录下打开jupyter notebook,如下图所示。
四、打开网页后点击notebooks文件夹的ssd_notebook.ipynb文件。点击not trusted按钮。
五、点击运行cell
1出错可能有(1)第一个cell
Numpy版本问题,见帖子https://www.jianshu.com/p/ac43a8175cc5,可以解决遇到的问题。
安装或更换低版本的包时
注意:如果要安装包或者更换不同版本的包的话,最好编译器启动时改为 管理员启动模式!!!见帖子https://blog.csdn.net/hhgood/article/details/79461546
2出错可能有(2)第四个cell
ImportError: cannot import name ‘ssd_vgg_300’
这个时候看网址的话会发现网址里有两个notebooks文件夹,感觉应该不对。
解决的方法是:将notebooks文件夹下的ssd_notebook.ipynb直接拷贝到主目录SSD-Tensorflow-master_2下,然后在主目录下打开这个文件ssd_notebook.ipynb,这个时候的网址变为下图所示,再继续在这文件上执行。
其中,继续执行的话会有cell6会出错,对
ckpt_filename=‘…/checkpoints/ssd_300_vgg.ckpt’改成自己的绝对路径,比如我的是ckpt_filename = ‘E:\GraduationProject\Data\SSD-Tensorflow-master_2\checkpoints/ssd_300_vgg.ckpt’。如下图
(补充一点就是cell6的第三行data_format = 'NHWC’是启用CPU效果更好些,而data_format = 'NCHW’是启用GPU效果更好些)
其中,继续执行的话还会有cell8会出错,
对第二行的path = '…/demo/'改为path = ‘./demo/’,如下图,(补充一点就是下图的倒数第二行的-4是对目录下的图片进行测试,-4是图片序号来着,改变序号可以测试目录下不同图片。)
3实现对多张照片的识别的代码如下:
# Test on some demo image and visualize output.
path = './demo/'
image_names = sorted(os.listdir(path)) # 获取测试文件夹所有图片
i = 0
for it in image_names:
img = mpimg.imread(path + it)
i+=1
if i>9: break # 测试9张图片,数字9可以改变
rclasses, rscores, rbboxes = process_image(img)
visualization.plt_bboxes(img, rclasses, rscores, rbboxes)
自此,官方例程验证完成。接下来改为自己的数据集进行训练。
六、准备自己的数据集
参考这个帖子https://blog.csdn.net/wsp_1138886114/art