技术咨询、项目合作、广告投放、简历咨询、技术文档下载
点击这里 联系博主
# tensorflow自带demo演示
目标检测主要步骤有:
- 使用 labelimg 对图片做标注
- 使用 object_detection 下的工具 create_pascal_tf_record 将 xml 文件转换成 tfrecord 文件或者将 xml 转化昵称 csv 然后将 csv 转换成 tfrecord 文件
- 仿照 TensorFlow models/research/object_detection/data 文件夹下的 .pbtxt 文件编写自己的 .pbtxt 文件
- 选择目标算法并从 TensorFlow models/research/object_detection/samples/configs 文件夹内选择合适的一个 .config 文件(团队使用的是 ssd)并修改对应的参数,其中包括步数 num_steps,以及模型文件输出路径
- 选择 TensorFlow 中训练好的模型 SSD/Fast-RCNN 并选择 object_detection 中对应的 api 进行模型训练
- 使用训练好的模型进行目标检测;
- 如果训练出来的准确率不是很高需要对步长,算法以及 batch_size 进行微调
# 一、安装依赖及环境
0、使用 pyenv 新增一个虚拟环境
pyenv virtualenv 3.7.5 object_detection_demo
source ~/.bashrc
pyenv activate object_detection_demo
1、安装 Python 、TensorFlow 和其他依赖项
pip install tensorflow===1.3.1
pip install Pillow==5.4.1
pip install lxml==4.3.2
pip install jupyter==1.0.0
pip install matplotlib==3.0.3
2、安装 Protoc
, 进入Protoc (opens new window)下载页,下载对应的编译好的 zip 包。
下载后bin
目录下会有一个protoc
二进制文件,覆盖到对应目录:
cp bin/protoc /usr/local/bin/protoc
注意:应该拷贝到/usr/local/bin(可以读写)目录下不是/usr/bin(只读),否则会提示 Operation not permitted, 这一步踩了好多坑。
3、从github
上下载目标检测 API 的源代码
git clone --branch r1.13.0 --depth 1 https://github.com/tensorflow/models
4、编译Protobuf
,进入 tensorflow/models/research 目录,运行下面命令进行编译:
protoc object_detection/protos/*.proto --python_out=.
5、在当前目录下,添加slim
环境变量
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
6、测试目标检测 API 是否安装成功,下图中表示安装成功
python object_detection/builders/model_builder_test.py
7、运行notebook Demo
,浏览器会自动跳转至如下界面:
进入 object_detection 文件夹中的 object_detection_tutorial.ipynb:
7、点击 Cell 内的Run All
,等待 3 分钟左右,就可以显示如下效果:
8、新增自己的图片再次测试
在 models/research/object_detection/test_images 中新增一张图片,并且命名为 imageX.jpg。
然后更改
TEST_IMAGE_PATHS = [ os.path.join(PATH_TO_TEST_IMAGES_DIR, 'image{}.jpg'.format(i)) for i in range(1, 4) ]
结果:
# 可能会遇到的问题
1、AttributeError: module 'tensorflow' has no attribute 'contrib'
解决办法:因为 tf2.0 已经将 contrib 剥离,所以需要回退到 tf1.x
- 本文链接: https://mrgaogang.github.io/ai/tensorflow%E8%87%AA%E5%B8%A6demo%E6%BC%94%E7%A4%BA.html
- 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 许可协议。转载请注明出处!