非root安装object detection API见这里
一、创建anaconda环境,并安装tensorflow
1.1 创建Python3.5版的新环境
在终端输入
#tensorflow是环境名(自己命),python=3.5.2是待安装扩展包及版本
conda create --name tensorflow python=3.5.2
安装成功后如下:
列出目前安装好的环境列表,看新环境是否安装成功
conda info --envs
1.2 安装tensorflow
这里要先查一下自己显卡的驱动版本。你要了解你电脑/服务器的显卡是什么类型,然后根据你的显卡类型选择cuda的版本,在根据cuda的版本选择cudnn的版本,最后再根据前面两种的搭配选择tensorflow-gpu的版本【2】
具体过程见《CUDN安装及对应tensorflow-gpu版本查找》
cuda-8.0最高支持tensorflow-1.4.0版本,tensorflow 1.4 及以下选择cuda8.0 , 以上选择cuda9.0【3】
我的显卡是K80的,装CUDN 9.0,显卡驱动384.XX,tensorflow1.12,python3.6或者3.5都行
关于GPU的一些基本知识可以看这里有详细介绍。
先进入tensorflow环境下
activate tenserflow
安装1.12,gpu版本
conda install tensorflow-gpu==1.12
已经安装的可通过
conda list
查看自己的codnn版本(图文不匹配)
按照上面的流程安装好python3.5,tensorflow-GPU-1.12,(原本不知道要匹配cuda版本,装的tensorflow1.10,结果运行代码时出现CUDA driver version is insufficient for CUDA runtime version错误:https://blog.csdn.net/li57681522/article/details/82491617)
二、安装tensorflow object detection API
2.1 首先安装protobuf
首先安装相关的依赖包
$ sudo apt-get install autoconf automake libtool curl make g++ unzip
下载protobuf安装包
https://github.com/google/protobuf/releases/tag/v3.5.0
我选的3.5版本的tar.gz文件,解压后放到你的anaconda/envs/你的环境目录下,方便删除该环境时一次性清除
解压
tar -zxvf 压缩文件名.tar.gz
安装protobuf
首先,进入你所下载的protobuf安装包的目录下面,然后依次执行以下命令:
./autogen.sh
./configure
make
make check
上面最后两个命令的执行时间可能略长,半个小时左右。
sudo make install
sudo ldconfig #刷新共享库缓存
测试安装:protoc --version
如果安装正确会输出版本号。
安装protobuf的python模块:
首先,进入protobuf安装包下的python文件目录下,执行以下命令:
python setup.py build
python setup.py test
安装成功会出以下结果:
python setup.py install(如果在这一步没有权限执行的话,就用sudo python setup.py install )
测试安装:
sudo python -c 'import google.protobuf;print google.protobuf.__version__'
如果正常,输出3.5.1
版本号.。
我的出现问题:
查看 'import google.protobuf‘的路径
sudo python -c 'import google.protobuf;print google.protobuf.__file__'
发现它连接的是系统的默认路径,参照这个改(https://www.pythonxyz.com/10038-install-protobuf-in-ubuntu.xyz)没效果,打开python,分步导入查路径发现是当前环境的路径,就先这样,后面看有没有影响吧。
以上就完成了编译器protobuf的安装。
2.2 继续安装其他依赖包
这些可以在pycharm的setting界面搜索安装
sudo apt-get install protobuf-compiler python-pil python-lxml python-tk
sudo pip install Cython (0.29.9版本)
sudo pip install pillow (5.0.0版本)
sudo pip install lxml (4.3.5版本,去这里看跟你电脑匹配的版本)
sudo pip install jupyter (1.0.0版本)
sudo pip install matplotlib //这个可以在pycharm的setting界面安装,跟python3.6对应的是matplotlib 2.2
如果在上述的安装过程遇到无法定位软件包的情况,可以先更新下 sudo apt-get update
2.3 下载object detection API:tensorflow/models
最新版本:git clone https://github.com/tensorflow/models.git 容易出问题,建议下老版本
老版本: https://github.com/Rmuli/models自己下载再放到research下
2.4 COCO API installation
coco api主要是用于度量模型在COCO数据集上的分值(mAP指标等),这里可以先不装,以后用到时再装。
git clone https://github.com/cocodataset/cocoapi.git
如果还没有安装git可以通过以下命令安装:
sudo apt-get install git
执行完git命令后:
cd cocoapi/PythonAPI
make
cp -r pycocotools <path_to_tensorflow>/models/research/
2.5 protobuf编译
进入tensorflow/models/research/目录下执行以下命令:
protoc object_detection/protos/*.proto --python_out=.
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
注意这里的‘pwd’要换成你目标检测api里slim文件的路径,即
你也可以将上面的命令通过增加环境变量的形式加入到~/.bashrc file.下python
sudo vim ~/.bashrc
按“i”进入编辑模式,在最后加入:
export PYTHONPATH=‘${PYTHONPATH}:‘/absolute/path/to/models/research’:’/absolute/path/to/models/research/slim/’
这个实际上就是object detection API中slim文件的存储路径。
写好后,按“Esc”,然后“:“,再输入”wq”保存退出。命令行输入下面的命令,运行更改过的文件即可
source ~/.bashrc
这块没配好的话,下一步的测试就会出现model找不到‘net’的情况【4】。
2.6 测试安装:
python object_detection/builders/model_builder_test.py
这样就大功告成了!!!
我装的是1.4.0版本,安装好Object Detection API运行后出现
AttributeError: module 'tensorflow.python.keras' has no attribute 'Model'
故障。解决办法参考这里。Ps:我用第二种方法不知道为啥不好用
参考:
【0】爬坑之旅——Tensorflow object detection API 搭建属于自己的物体识别模型
【1】linux下安装tensorflow object detection API以及 安装过程问题解决:https://blog.csdn.net/pwtd_huran/article/details/80874791
【2】CUDA driver version is insufficient for CUDA runtime version:https://blog.csdn.net/itnerd/article/details/88888235
【3】AttributeError: module 'tensorflow.python.keras' has no attribute 'Model':https://blog.csdn.net/qq_38343111/article/details/83994358
【4】TensorFlow Models:ImportError: No module named 'deployment':https://blog.csdn.net/w5688414/article/details/78774842
pycharm安装:https://blog.csdn.net/weixin_31484477/article/details/81133590