前面一篇文章已经带着大家将DeepStream容器配置Python使用环境,本文的重点就是继续执行实际的开发操作。
由于前面开启容器时,透过“-v”指令将容器外路径与容器内形成映射,因此实际代码文件是存放在主机上(容器外),我们可以在主机上使用gedit这个较为便利的编辑器去修改代码,然后在容器内执行应用,如此搭建起实用性更高的开发环境。
在DeepStream范例中的test2是识别功能最丰富的经典范例,不仅能识别对“Car”与“Person”配置唯一的编号进行跟踪功能,还能为“Car”物体进一步分析“厂牌”、“颜色”、“车型”等属性,我们还可以将这些信息改成中文显示。
另一个runtime_source_add_delete项目则是实现“动态添加/删减视频源”的功能,通常在面对“不均衡”监控的时候,会需要这项功能的辅助。
例如“医院的门诊与急诊”的流量在正常工作时间是门诊大于急诊,下班之后的流量就刚好反转,如果能根据时间去调整输入源的增减,就会有很高的实用性;都市中很多道路车流量在上下班高峰期是反转的,如果中控室的监控屏幕数量有限的时候,也可以根据不同状态去调整视频流的来源。
这并不意味着我们得去调整设备的数量,而是调整输入源的“接收开关”,例如道路交通的监控有100台摄像头,是保持24小时全年午休地拍摄并传输数据,而中控室如果只有50个显示屏幕,就只要切换接收输入源的开关就可以。
现在就用容器版DeepStream的Python环境,来执行这两个应用。
这个项目将DeepStream关于物体识别的绝大部分人工智能功能都集于一身,包括以下三大类组件
三者的合作关系如下:
这里使用的检测器与3个二阶段分类器模型都在samples/models下,如以下的路径名:
如果前面建立的Python容器环境没有删除的话,现在就可以执行以下指令进入容器内去执行这个范例:
$ $ |
sudo xhost +si:localuser:root docker start ds_python && docker exec -it ds_python bash |
进入容器后,执行以下指令:
$ $ |
cd sources/deepstream_python_apps/apps/deepstream-test2 ./deepstream_test_2.py ../../../../samples/streams/sample_720p.h264 |
下图就是执行的效果,可以看到每个识别到的物体都有唯一的识别号,在“Car 3”后面还有“gray”与“nissan”等颜色与厂牌的信息。
不过这个容器版有个还未解决的问题,就是“中文显示”的部分,如果有更精通操作系统的朋友可以试着解决这个中文显示问题。
这个项目也是基于deepstream-test2多神经网络组合识别项目基础上,使用以下的动态处理函数,因此没有固定的通道结构:
为了简化运行,这个示例只接收1个H.264视频文件当作4个输入源使用,每10秒添加的视频都会从头开始播放,系统就是为每个输入源设置唯一的编号,作为新增与删除的依据。
$ $ $ |
cd sources/deepstream_python_apps/apps/runtime_source_add_delete export DS_ROOT=/opt/nvidia/deepstream/deepstream/ ./deepstream_rt_src_add_del.py file://$DS_ROOT/samples/streams/sample_720p.mp4 |
接下去就会执行以下的7个画面变化:
可以修改deepstream_rt_src_add_del.py文件的以下两个粗体下划线的参数,调整输出总数量与间隔时间:
之后请自行尝试修改的结果。
好文章,需要你的鼓励
后来广为人知的“云上奥运”这一说法,正是从这一刻起走上历史舞台。云计算这一概念,也随之被越来越多的人所熟知。乘云科技CEO郝凯对此深有感受,因为在2017年春节过后不久,他的公司开始成为阿里云的合作伙伴,加入了滚滚而来的云计算大潮中。同一年,郝凯带领团队也第一次参加了阿里云的“双11”活动,实现了800万元的销售业绩。
随着各行各业数字化变革的不断深入,人类社会正加速迈向智能化。作为智能世界和数字经济的坚实底座,数据中心也迎来了蓬勃发展。面