本实验所有代码均在ubuntu 18.04 + OpenVINO 2020R3.LTS installed 环境下验证通过,若需要代码移植,请务必检查环境配置是否与本实验环境相同。
1、认识使用DL-Streamer追踪图像的方法。
2、掌握运行车辆追踪处理流水线的方法。
1、学习使用DL-Streamer追踪图像的方法。
2、运行车辆追踪处理流水线。
构建流水线系统非常容易,即使是对于在跟踪应用中需要跨帧算法的实施也非常简单,跟踪是一项非常重要的功能。下图中,如果这是一个橙子,并且整个图像向左侧移动,那么这可能是相同的一个橙子,通过比较图片,可以知道,几帧后这可能就是相同的橙子。
如果同一对象在屏幕上移动,可以对其进行跟踪,这意味着可以判断是同一对象在移动,没必要重新检测它,这将节省大量计算能力。既然人类一直都在这样做,那么为什么不使用计算机去做呢?下面使用DL-Streamer来事半功倍的完成这个任务。
步骤1
登录实验平台,进入实验环境并打开命令行执行终端。
步骤2
执行命令su,输入root用户密码root@openlab,切换到root目录。
步骤3
执行命令cd ~/51openlab/07/exercise-2/,进入exercise-2目录。
步骤4
执行如下命令,输出实验目录,确保将MODEL-PATH设置到模型目录中。
# export lab_dir=~/51openlab/07/exercise-2/
# export MODELS_PATH=~/51openlab/07/exercise-2/models/
步骤5
执行如下命令,初始化OpenVINO环境。
# source /opt/intel/openvino/bin/setupvars.sh
可以看到模型目录中有3个模型,1个模型用于车辆和人员检测,2个用于人员和车辆的属性分类。
步骤8
执行命令cd …/model_proc查看每个模型对应的JSON文件。
步骤9
执行命令如下命令播放即将进行检测的视频。
# cd ..
# gst-play-1.0 road.mp4
输入视频显示了拥挤的街道。
步骤10
执行命令vi vehicle_pedestrian_tracking.sh-file查看代码。
第67行可以看到Gstreamer流水线。“source element”是视频文件,将其解码,将视频转换为正确的大小和格式。第69-74行是第一次检测,可以看到所有参数、模型、检测间隔、设备等。在第75行可以看到跟踪,这个流水线阶段将跟踪前一阶段检测到的所有对象。第77和82行是另外两个模型,人员分类模型和车辆分类模型,然后使用GVAWaterMark将所有结果渲染到视频中,并输出视频文件。
步骤11
执行如下命令运行车辆追踪示例代码,并查看输出的视频文件。
# bash vehicle_pedestrian_tracking-file.sh
# ll
可以看到output.mp4是输出文件。
步骤12
执行命令gst-play-1.0 output.mp4检查实验结果视频。
可以看到视频中的所有对象,检测和跟踪到的主要是车辆,每个对象都有一个唯一的ID,在其旁边可以看到对象的所有属性。
步骤13
执行命令vi vehicle_pedestrian_tracking-file.sh编辑代码,根据需要对该文件进行更改,以构建自己的流水线,还可以添加自己的模型,或实施其他操作。例如,在这里将删除车辆属性分类。
步骤14
执行命令bash vehicle_pedestrian_tracking.sh-file重新运行车辆追踪示例脚本。
步骤15
执行命令gst-play-1.0 output.mp4检查实验结果视频。
可以看到汽车现在没有分类属性。
在第三个练习中我们将使用DL-Streamer来测量一个实际的通道性能。