Tensorflow 框架下用objection detection API 做人脸检测错误解决

    主要功能实现了linux服务器上TensorFlow框架下对视频流里的人脸检测定位。具体使用基于SSD mobilenet预训练好的模型, WIDERFACE dataset数据集做训练,基于Google开源项目框架object detection api  做人脸检测。

github网址https://github.com/yeephycho/tensorflow-face-detection

    首先将源码下载下来,地址1https://github.com/yeephycho/tensorflow-face-detection

                                       地址2https://github.com/tensorflow/models/

下载以后,就得到一个models或models-master文件夹,我们要的源码在models/research/object_detection/文件夹里。

下面是实现过程遇到的问题备忘。

1.protoc版本问题

Tensorflow Object Detection API要求protoc版本为2.6.0以上,可以使用protoc --version 命令查看版本,如果低于这个版本的或者编译出错,需要升级。我的电脑的版本是2.6.1,在object_detection上一级文件目录下输入命令

protoc object_detection/protos/*.proto --python_out=.编译报错为:

object_detection/protos/ssd.proto:87:3: Expected "required", "optional", or "repeated".

object_detection/protos/ssd.proto:87:12: Expected field name.

object_detection/protos/model.proto: Import "object_detection/protos/ssd.proto" was not found or had errors.

object_detection/protos/model.proto:12:5: "Ssd" is not defined.

使用卸载命令sudo apt-get remove libprotobuf-dev,发现protoc版本还是2.6.1。

2.解决办法

下载最新版本protoc3.6.6 https://github.com/google/protobuf/releases ,或3.3

参考 https://www.cnblogs.com/YouXiangLiThon/p/7590779.html

tensorflow$ mkdir protoc_3.3
tensorflow$ cd protoc_3.3
tensorflow/protoc_3.3$ wget wget https://github.com/google/protobuf/releases/download/v3.3.0/protoc-3.3.0-linux-x86_64.zip
tensorflow/protoc_3.3$ chmod 775 protoc-3.3.0-linux-x86_64.zip
tensorflow/protoc_3.3$ unzip protoc-3.3.0-linux-x86_64.zip
tensorflow/protoc_3.3$ cd ../models-master/
tensorflow/protoc_3.3$ /home/humayun/tensorflow/protoc_3.3/bin/protoc object_detection/protos/*.proto --python_out=.

新建protoc_3.3在该文件夹中将压缩包解压。在protoc_3.3文件夹中输入如下命令:

有报错,说明在当前的protoc_3.3文件夹里没有object_detection 文件,无法被protoc,因此可以进入bin文件夹,里面有object_detedtion 文件,或者在将object_detection文件复制到protoc_3.3中。

 无报错。打开Protos文件夹,proto文件生成了.py文件。

 

至此 问题初步解决。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值