视频监控的应用范围正逐渐拓展到交通、旅游、金融、司法、教育、生产制造、城市管理、环保等等更多领域,例如生产车间的质检智能检测、旅游景区客流分析、智慧城市管理中的AI人脸检测等等。RK3568的NPU支持多种学习框架,包括TensorFlow 、PyTorch、Caffe、MXNet等在人工智能开发中流行的深度学习框架,这些框架所提供的库和工具非常完善,使用户更方便地进行模型训练和推理以及增加相应的功能模块。
首先需要准备自己的数据集,可使用LambleImg收集数据集,并选择适合的深度学习框架(如TensorFlow、PyTorch等等)进行模型训练或使用官方提供的模型。这里选择YOLOV5官方提供的模型。不同的后缀其模型推理速度和准确度各不相等,根据实际下载。
模型准备好后,使用RKNN-Toolkit2将预训练模型转换为RK3588 NPU可使用的RKNN模型如(将yolov5s.pt转换成yolov5s.rknn)在转换过程中可对一些转换参数进行修改和优化以达到最优显示效果。本例程中使用yolov5官方提供的export.py将yolov5n.pt转换成yolov5n.onnx模型在虚拟机中模拟运行RKNN的推理结果。
首先在RK3568上部署rknn模型,然后在利用RK提供的C++/Python API接口上开发相应的应用。
项目部署流程如下:
该案例能够实时处理高清视频流,能够识别出视频中物体的类别并给出置信度分数,同时支持定制识别类别。使用OpencCV 的DNN模块部署onnx模型。将YOLOV5的Pytorch模型转换为Onnx。在该项目中采用了线程和队列编程,线程1将视频转成帧并放入队列,线程2出队并对帧进行互斥处理,保证了帧处理的顺序,加快了视频帧的推理速度。
设置摄像头的IP地址与主机处于同一网络。本案例使用到了外接的网络摄像头,如果开发板自带摄像头可忽略本步骤。
大致步骤分为四步:
1、使用OpenCV的DNN模块从磁盘加载预训练的神经网络模型,网络模型可以自定义
2、摄像头通过RTSP加载图像并将图像调整为深度学习模型的输入格式
3、通过模型前向传播输入图像并获得输出
4、当图像随后被提供给模型时,它将输出它检测到的目标的列表、包含每个目标帧的边界框的位置以及指示检测正确的置信度的分数
注:本案例在新建目录build下进行编译,其代码以及编译过程可联系工作人员获取。
视频中附带帧率和推理时间显示,并对类型框给出置信度分数。本项目效果演示在虚拟机的CPU上运行,且摄像头分辨率为1080p,帧率大概稳定在6帧左右,推理时间在150ms~200ms之间。
本程序能够检测实时的视频流,延时非常低,检测的实际效果也是非常流畅和准确。
程序运行流程大致如下:
该项目板载Rockchip的工业级RK3568高性能处理器,采用四核64位Cortex®-A55架构,主频最高达2GHz。底板连接接口采用传输高速稳定的BTB接口,该核心板专注于工业自动化控制,多媒体数据处理,图像视觉边缘计算等智能科技领域。
AuKun.Core.RK3568T核心板具有高性能CPU和AI处理能力 。使用机器视觉和深度神经网络技术,精准地识别摄像头前方的物体类型并做出相应处理,在实际的生活中可广泛应用。
1、汽车行业:为停车场、交管部门、大型车展、二手车平台等场景提供车型、品牌、车牌等识别服务;为车企提供车载环视功能,用于实现无人驾驶、辅助驾驶和自动泊车等。
2、安防行业:为安防厂商提供车辆识别、人群分析等智能提醒和通知的软硬一体化的产品,用于智慧城市、平安城市等政府型项目等。
3、建工行业:工地的安全帽检测、安全锁绳和反光衣穿戴检测、烟火识别、井下煤矿的矿车脱轨检测等等。
Copyright © 2022-2030 aukun.cn 合肥奥鲲电子科技版权所有 皖ICP备2023002494号-1