今天看到一篇关于检测的论文《SqueezeDet: Unified, Small, Low Power Fully Convolutional Neural Networks for Real-Time Object Detection for Autonomous Driving》,论文中的效果还不错,后来查了一下,有一个Tensorflow版本的实现,因此在自己的机器上配置了Tensorflow的环境,然后将其给出的demo跑通了,其中遇到了一些小问题,通过查找网络上的资料解决掉了,在这里做一个记录,供以后查阅。
首先按照https://github.com/BichenWuUCB/squeezeDet给出的ReadMe说明,需要安装Tensorflow的环境,我实在Windows下运行的,采取了Anaconda安装的方式,主要参考了http://m.blog.csdn.net/article/details?id=53706541这篇博客,可以看到如果安装Anaconda版本的Tensorflow的话是比较简单的:
1、安装Anaconda(python3.5)
2、conda create -n tensorflow python=3.5
3、activate tensorflow
4、pip install tensorflow
5、测试
$ python
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print sess.run(hello)
但是会有一个问题,这种方式安装Tensorflow只有python3.5版本的,但是我的电脑之前已经安装了python2.7版本的Anaconda,故而怎样在不卸载上一个版本的前提下进行安装是一个需要解决的问题,这里主要参考了http://blog.csdn.net/ljp812184246/article/details/52593024这篇文章,在安装新的Anaconda的时候,安装在前一个版本的D:\Anaconda2\envs子目录下即可,在该目录下自己新建一个文件夹,并且安装的时候需要将两个对勾都去掉,然后安装即可,安装完之后,在CMD里面直接输入python
会启动Python2,而使用activate py3
(py3即之前Python3安装目录文件夹的名字)命令之后,再使用python
即可切换至Python3,如下图所示。使用activate py3
命令之后,在命令行前面会出现一个[py3]
标记,此时使用任何的python
命令都是在Python3下进行的。使用deactivate
命令可取消激活Python3。如果Spyder要切换Python3,应该怎么做?首先在cmd里面activate py3,待前面出现[py3]之后,再输入spyder回车就行了。
按照这样的方法将Anaconda对应的版本安装上之后,打开下面的Anaconda prompt,在该环境下进行后续的操作。
在执行该demo的过程中,还需要安装opencv,使得在py脚本中可以import cv2,那么需要在命令行中执行
pip install opencv-python就可以了(我又把cv包放到了当前的目录下);
还有需要有以下的命令
pip install easydict
pip install joblib
还有pip install PIL 的时候说找不到,查阅资料后发现需要执行pip install pillow;
还有一些python2与python3不兼容出现的问题,如No module named cpickle,在python3中
import pickle
就行了
还有在
from config import base_model_config
这种语句中,在python3中需要改成
from .config import base_model_config
才可以
python3中的print语句后面需要有括号,这些都是小问题了
由于没有实时的记录问题,暂时就想到那么多,今天把demo跑通了,明天争取能够自己训练,看下能不能改进检测效果。