寒武纪图片检测 CNStream检测车辆 以及如何新建module

本文档介绍了如何基于CNStream框架,为车辆检测任务创建自定义模块CarDetection。通过修改CNStream的module目录下的osd模块,并去除不必要的部分,实现了从JPEG图片中检测无车辆的图片。在Process函数中处理推理结果,如果未检测到车辆,则保存图片。配置文件包括config_car.json和osd_lable_map_car.json。最后,展示了运行效果和脚本,成功筛选出无车辆的道路图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前写过一个简单的寒武纪CNStream的编译环境的文章

后来 领导安排了别的活就没有记录了 ,正好最近领导又让接回来这个活

需求是 从给定的10张jpg图片中检测 没有车辆的图片 然后筛选出道路上没有车的图片

因为CNStream官方提供的算法就可以实现车辆检测 行人检测 物体检测,所以直接用CNStream的算法库就可以,我们需要对CNStream稍微修改一点点,为了避免直接修改CNStream的module 我们添加了一个自定义的module,我们称之为CarDetection

参考CNStream官方文档 我是直接复制了module目录下osd的例子

然后改个名字 去掉不需要的部分如下图

先看一下 官方自带的 jpeg检测图片可以osd表示出来的效果 有车的话会画出来 

 没车或者很小或者检测不出来就不会画任何东西。我们最终不需要画OSD 找出图片就可以了所以写了个很简单的 自定义了模块

 

 

cpp部分主要是处理Process函数 这里会受到推理之后的 的图片原始数据和推理结果

 

很简单  遍历推理结果的list  如果检测到到 car person bus等等 就返回 说明道路上有车辆或者人 

如果没有则输出当前的jpg文件。这个文件是我自己在CNFrameInfo中加了一个字段。用来保存文件名。

自定义的module建好之后需要修改modules下面的CMakeLists.txt文件

 如上仿照别的模块 我这里叫car_detection 

 加进去之后  编译的时候就可以编译到了 

正常编译没问题之后  看下我的运行脚本

运行的时候敲如下命令./runjpeg.sh mlu270

 

 files.list_pose_image 就一行  指定了待检测图片的目录

在看下我的config_car.json 配置文件如下 图片检测的那个是官方的没有改动

 

 car_detection.json如下: 改了一个output_buf_number 原来视频用的是32  jpeg 提示太大 所以改成了16

 

osd_lable_map_car.json 如下:

 这里指定的我们自定义的模块 CarDetection 这里cnstream是代码里面的名字空间

CarDetection是模块的类名 必须一致 不然会找不到。运行效果如下:

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QMCY_jason

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值