解决Tensorflow下测试ssd时出现NameError: name 'ssd_anchors' is not defined 的问题

主要参考https://blog.****.net/yexiaogu1104/article/details/77415990

也参考了https://github.com/balancap/SSD-Tensorflow/issues/79

原博主的步骤如下:

1. 下载模型ssd_300_vgg,存放在SSD-Tensorflow-master/checkpoints/这个目录下 
2. 打开终端,在主目录 SSD-Tensorflow-master 下,运行cd notebooks/进入notebook目录,运行 jupyter-notebook进入http://localhost:8892/tree服务器,打开 ssd_notebook.ipynb文件 
3. 配置一些路径:第4个cell中from notebooks import visualization改成import notebooks,不改的话目录结构不对,会报错 
4. 使用自己的图片,改变path = '../demo/'成自己的图片所在路径 

5. 从头到尾运行所有cell即可。

说明几点:

1.模型ssd_300_vgg下载需fq,请自备工具

2.from notebook import visualization 可以不改,我没改,也运行成功

3.最重要的一点,在运行cell6的时候,原图是这样的

解决Tensorflow下测试ssd时出现NameError: name 'ssd_anchors' is not defined 的问题

但是运行的时候会出现

解决Tensorflow下测试ssd时出现NameError: name 'ssd_anchors' is not defined 的问题

即左上角有一个*号,这是说明未加载成功,这时我们需要将下载好的ssd_300_vgg.zkpt.zip解压,并把其中的两个文件放在ssd_300_vgg目录下,我的是这样

解决Tensorflow下测试ssd时出现NameError: name 'ssd_anchors' is not defined 的问题

或者把ssd_300_vgg.ckpt.zip解压后里面的两个文件直接放在checkpoints里,也可以解决问题

然后将jupyter notebook中的源代码改成如下形式,再次运行cell时没出现*号就好了

解决Tensorflow下测试ssd时出现NameError: name 'ssd_anchors' is not defined 的问题

这样就好了,剩下的运行cell就好了,

解决Tensorflow下测试ssd时出现NameError: name 'ssd_anchors' is not defined 的问题

自己踩的坑,希望对别人有点用。