RPi摄像机用于调查和监测的动物分类

Ashwini Kumar Sinha著

184

狩猎继续使许多动物物种灭绝,政府除了引入一些法律和进行定期调查外无能为力。但进行调查并非易事,尤其是在没有技术帮助的情况下。

本项目中的智能摄像机使用Python代码,该代码具有用于森林监测和调查的预先训练的TensorFlow模型。这些模型帮助我们将图像与模型训练的数据进行匹配和映射,从而识别出那些动物。

在作者的原型的帮助下检测大象的图像如图1所示。作者的原型使用了覆盆子π(或RPi)与摄像机模块如图2所示。

大象被作者的原型捕获
图1:作者的原型捕捉到的大象
作者的原型
图2:作者用RPi摄像机测量和监测动物分类的原型

树莓派使用摄像头捕捉视频图像,然后使用OpenCV模块将视频切割成帧。接下来,利用OpenCV和其他模块,对检测到的物种图像进行处理,并将其映射为一个类别和预先训练的检测模型。如果检测到的动物物种不在类别列表中,它将输出为“none”,并将该图像与数据和时间戳一起保存在数据库文件夹中,以便以后研究。

发现的动物种类是否与新列出的动物相匹配。PBTXT数据库,它识别出动物的名字并将其保存在带有时间和日期的文本文件forestdb.txt中。它还将带有时间戳的动物图像保存在另一个文件夹中,以备将来参考。

通过这种方式,智能相机可以跟踪并创建一个包含森林中动物图片的数据库。它还可以帮助研究动物行为,以及森林中动植物的存在和生长。

编码

假设你已经准备好了Raspberry Pi (RPi)和Raspbian操作系统和Python IDE,并且可以通过VNC或基于HDMI的显示访问RPi桌面。(注意。我们使用的是Python3环境,代码只与Python3及以上版本兼容。)因此,我们可以从这个项目的模块和库的安装开始。
在Raspberry Pi上打开Linux终端,使用以下命令安装所需的库:

sudo apt-get更新
sudo apt-get升级
sudo nano /etc/dphys-swapfile

更改一行CONF_SWAPSIZE=100
CONF_SWAPSIZE = 1024

继续执行以下命令:

sudo /etc/init.d / dphys-swapfile停止
sudo /etc/init.d / dphys-swapfile开始

Sudo pip3安装opencv
Sudo pip3安装numpy
wget https://bootstrap.pypa.io/get-pip.py
pip3安装dlib
pip3安装tensorflow

在使用上述命令安装库之后,可以使用以下命令继续克隆TF模块、示例和文件:

git克隆https://github.com/tensorflow/
tensorflow.git
git克隆https://github.com/tensorflow/
模型

克隆成功后,在Python IDE中进入目录->research->object_detection->detect.py文件(见图3)。现在理解并修改代码。

Object_detection文件夹
图3:Object_detection文件夹

代码的第一部分有所需的库和模块,如图4所示。我们必须设置包含物种/动物类别名称的文本文件的路径。在这里,我们已经在New中设置了类别标签。如图5所示。代码的下一部分将检测结果的输出存储在一个名为“NAME”的字符串变量中。“然后我们就有了用日期和时间标记探测图像名称的代码。

带有模块和库的代码
图4:带有模块和库的代码
定义新标签文件的路径
图5:为新标签文件定义路径

接下来,我们有一个条件语句来检查检测的输出结果。如果检测结果的条件不是'[]',则它将结果与日期和时间保存在文本文件中。代码的下一部分将检测到的图像保存在' databasefolder '文件夹中。在这里,您可以根据您的选择更改图像存储路径(见图6),然后保存代码。

将检测到的带有时间戳的图像保存在定义的路径文件夹中
图6:将检测到的带有时间戳的图像保存在定义的路径文件夹中

转到data文件夹并创建一个名为New的文件。pbtxt(见图7),并对不同种类的动物进行id标签,进行检测和显示(见图8)。

创建名为New的文件。数据文件夹下的PBTXT
图7:创建名为New的文件数据文件夹下的PBTXT
创建动物/物种的类别,以显示在New.pbtxt
图8:创建动物/物种类别以在New.pbtxt中显示

下载源代码:点击这里

测试

编码完成后,用带状线缆将摄像机模块连接到树莓派摄像机接口,如图原型所示。在Python IDLE中打开代码,运行脚本forestsurvayfinal2.py,等待几分钟,以便它可以加载所有张量流模块。这将打开一个带有摄像机视频输出的新窗口。

将相机带到动物(如牛、羊等)面前以供识别。每当有动物出现在相机的画面中,检测到的图像将由计算机处理并保存在文本文件中。它会将该框架与日期和时间戳一起保存到databasefolder中。相机在相框中捕捉到的动物如图9所示。
打开forestdb.txt文件,可以看到检测到的物种/动物列表以及时间和日期(见图10)。如果你想看到那些被检测到的动物的图像/图片,打开databasefolder,点击每个有捕获日期和时间的图像文件(见图11)。

检测到的动物
图9:检测到的动物
forestdb.txt文件内容
图10:forestdb.txt文件内容
检测到的动物图像存储在数据库文件夹中
图11:数据库文件夹中保存的检测到的动物图像

阿什维尼·库马尔·辛哈(Ashwini Kumar Sinha)是EFYi的电子爱好者和科技记者

分享你的想法和评论

请输入您的评论!
请在这里输入你的名字