从自动驾驶汽车检测道路上的物体??,到通过复杂的面部和肢体语言识别来发现可能的犯罪活动。多年来,研究人员一直在探索让机器通过视觉识别物体的可能性。这个特定的领域被称为计算机视觉(CV),它在现代生活中有着广泛的应用。毫无疑问,对象检测也是计算机视觉最酷的应用之一。今天的CV工具可以轻松地将对象检测应用于图像甚至实时视频。本文将简要介绍如何使用TensorFlow创建实时对象检测器。搭建一个简单的物体检测器1.安装要求:TensorFlow版本为1.15.0或以上执行pipinstallTensorFlow安装最新版本一切准备就绪,让我们开始吧!2.搭建环境第一步:从Github下载或复制TensorFlowtarget检测到的代码到本地电脑,在终端运行如下命令:gitclonehttps://github.com/tensorflow/models.git第二步:安装依赖项下一步是确保计算机配备了运行目标检测器所需的库和组件。下面列出了该项目所依赖的库。(大部分依赖是TensorFlow自带的)Cythoncontextlib2pillowlxmlmatplotlib如果缺少组件,在运行环境中执行pipinstall即可。第3步:安装Protobuf编译器Google的Protobuf,也称为Protocolbuffers,是一种独立于语言、独立于平台且可扩展的结构化数据序列化机制。Protobuf帮助程序员定义数据结构,轻松地在各种数据流中以各种语言编写和读取结构化数据。Protobuf也是本项目的依赖之一。单击此处了解有关Protobuf的更多信息。接下来,在您的计算机上安装Protobuf。打开终端或者打开命令提示符,把地址改成复制的代码仓库,在终端执行如下命令:cdmodels/researchwget-Oprotobuf.ziphttps://github.com/protocolbuffers/protobuf/releases/download/v3.9.1/protoc-3.9.1-osx-x86_64.zipunzipprotobuf.zip注意:请务必将protobuf.zip文件解压到models/research目录下。来源:Pexels第4步:编辑Protobuf编译器从research/目录执行以下命令以编辑Protobuf编译器:./bin/protocobject_detection/protos/*.proto--python_out=。使用Python实现目标检测现在所有的依赖项都安装好了,就可以用Python实现目标检测了。在下载的代码仓库中,将目录更改为:models/research/object_detection该目录下有一个ipythonnotebook,名为object_detection_tutorial.ipynb。该文件是演示目标检测算法的demo。执行时会使用指定的模型:ssd_mobilenet_v1_coco_2017_11_17本次测试会识别代码库中提供的两张测试图片。这是测试结果之一:检测实时视频中的对象需要进行一些微调。在同一文件夹中新建一个Jupyternotebook,按照下面的代码操作:[1]:importnumpyasnpimportosimportsix.moves.urllibasurllibimportsysimporttarfileimporttensorflowastfimportzipfilefromdistutils.versionimportStrictVersionfromcollectionsimportdefaultdictfromioimportStringIOfrommatplotlibimportpyplotaspltfromPILimportImage#Thisisneededsincethenotebookisstoredintheobject_detectionfolder.sys.path.append("..")fromutilsimportopsasutils_opsifStrictVersion(tf.__version__)
