|
在本篇文章中,我们将主要介绍在Raspberry Pi使用机器学习程序TensorFlow和OpenCV设置图像和视频分类。我们将从对图像进行基本的对象检测开始,然后进一步介绍实时对象检测。
如何设置Tensorflow、OpenCV和NumPy 在继续之前,请确保已在Raspberry Pi上正确安装TensorFlow。
您还需要OpenCV在输出上显示帧。在Raspberry Pi的终端中键入以下命令以安装所需的软件包: - sudo apt install libatlas3-base libsz2 libharfbuzz0b libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswscale4 libqtgui4 libqt4-test libqtcore4
复制代码然后输入以下命令以在Raspberry Pi上安装适用于Python 3的OpenCV 3。在此命令中包含Pip3允许OpenCV为Python 3安装。 - sudo pip3 install opencv-contrib-python libwebp6
复制代码本文所需的最后一个库是NumPy。 NumPy是一个库,可以很轻松地在Python中执行数组操作。请输入以下命令进行安装。 - Pip3 install python-numpy
复制代码
安装图像分类器 要安装图像分类器,首先创建一个新目录,我们将在其中保存TensorFlow模型。 - mkdir tensorflow
- cd tensorflow
复制代码现在我们可以在新目录中克隆TensorFlow模型存储库。git克隆可以在GitHub上找到。 - cd /home/pi/tensorflow/models/research/object_detection
复制代码我们需要从Github下载protobuf并将其解压缩到object_detection文件夹中,然后将proto.exe从bin目录放置到object_detection文件夹中。 - protoc protos/*.proto --python_out=
复制代码
如何检测图像中的对象 目前有一个Jupyter笔记可以读取图像并检测对象,我更改了此代码,使用OpenCV替代了Matplotlib,因为OpenCV的速度比matplotlib快。
在本文末尾处的名为Object Detection的zip文件中的代码将检测object_detection / test_images文件夹中存在的图像中的对象。代码中的注释说明了一切工作原理。
将该代码复制到object_detection目录中的文件中,并将文件命名为“objectDetection.py”。
要运行代码,请输入: - python3 objectDetection.py
复制代码
在要检测对象的文件夹中添加更多图像。
将其他图像添加到对象检测器。
添加更多图像,图像检测器可以进行更准确的物体检测!
实时对象检测 现在,让我们编写使用OpenCV来一帧一帧地执行对象检测的代码。
Raspberry Pi的帧速率太慢,因为它需要大量的处理能力,并且Raspberry Pi的功能还不够强大,因此启动代码将花费很长时间。 我们将对上一个示例中使用的代码进行一些更改,以使其实时运行。
我们将添加照相机对象,这将有助于我们在Raspberry Pi上访问照相机。 - cap = cv2.VideoCapture(0)
复制代码我们不需要将图像转换为NumPy数组,因为OpenCV会为我们解决这一问题。 - while True:
- ret, image_np = cap.read()
复制代码
在检测到视频帧中的对象之后,我们可以在输出窗口中显示它们,然后等待一段时间,判断任何键按下。如果按“ q”键,则程序关闭。否则,程序将拍摄另一帧并再次执行对象检测。程序一直运行,直到按“ q”为止。 - cv2.imshow('object detection', cv2.resize(image_np, (800,600)))
- if cv2.waitKey(1) == ord('q'):
- cv2.destroyAllWindows()
- break
复制代码此部分的完整代码也在下面给出。将代码保存在文件中,并将其命名为“ objectDetection1.py”。以下命令运行代码。 - python3 objectDetection1.py
复制代码现在,该程序已关闭并运行了实时对象检测。
以下是本文使用的完整代码:
Real-time Object Detection Raspberry Pi Code.rar
(1.47 KB, 下载次数: 7)
Object Detection Code for Tensorflow and Raspberry Pi.rar
(3.03 KB, 下载次数: 8)
|