今天看到一篇關於檢測的論文《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跑通了,明天爭取能夠自己訓練,看下能不能改進檢測效果。