HI3516DV300/HI3519AV100/HI3559AV100 实现RTSP/RTMP视频流实时识别YOLOV3 识别速度14帧/S

本文主要是介绍HI3516DV300/HI3519AV100/HI3559AV100 实现RTSP/RTMP视频流实时识别YOLOV3 识别速度14帧/S,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本教程是基于yolov3在硬件实现硬件的实时视频处理!
不是SAMPLE中的处理单张图片照片!
未采用opencv库,数据处理全部采用硬件加速!
直接对摄像头数据直接进行图像识别!
HI3516 识别速度 10帧/S
HI3519 识别速度 14帧/S

教程目的: 在硬件实现视频流实时识别,将深度学习落地于实战项目中。

实现原理:

  1. VPSS 使用3路,部分芯片VPSS CH0 不支持缩小,为保证输出帧率,保留第一路不使用。
  2. VPSS CH1 当作 yolov3 的检测输入识别结果经过OVERLAY叠加到VENC中
  3. VPSS CH2 实现720P视频输出,经过RTSP/RTMP/VO 实时查看。
    在这里插入图片描述
    一 YOLOV3 训练
    二 YOLOV3 格式转换
    a. 因为NNIE只支持CAFFE格式的转换,所以先将weights 文件转换为caffe文件
    darknet2caffe cfg/yolov3.cfg weights/yolov3.weights prototxt/yolov3.prototxt caffemodel/yolov3.caffemodel
    b 将转换好的caffe文件生成 NNIE识别的WK文件
    先修改 yolov3-voc.prototxt 文件,确保转换成功
    input: “data”
    input_shape {
    dim: 1
    dim: 3
    dim: 416
    dim: 416
    }
  4. 修改转换 inst_yolov3.cfg
# yolov3-coco 80种分类
[prototxt_file] ./data/detection/yolov3-nnie/model/yolov3.prototxt
[caffemodel_file]  ./data/detection/yolov3-nnie/model/yolov3.caffemodel
[instruction_name] ./data/detection/yolov3-nnie/inst_yolov3
[batch_num] 1
[net_type] 0
[sparse_rate] 0
# compile_mode 0 - 高速模式损失精度 1 - 高精度模式
[compile_mode] 0
[is_simulation] 0
[log_level] 2
[RGB_order] BGR
[data_scale] 0.0039062
[internal_stride] 16
[image_list] nnie_mapper/image_ref_list.txt
# 1 -   SVP_BLOB_TYPE_U8  3 SVP_BLOB_TYPE_YUV420SP
[image_type] 1                           
# [image_type] 3
[mean_file] null
[norm_type] 3

./nnie_mapper/bin/nnie_mapper_12 ./nnie_mapper/yolov3_inst.cfg
三、系统划分

核心代码:

1. 获取通道图像信息s32Ret = HI_MPI_VPSS_GetChnFrame(s32VpssGrp, as32VpssChn[1], &stExtFrmInfo, s32MilliSec);
2. 通过Yolov3输出识别s32Ret = SAMPLE_SVP_NNIE_Yolov3_Proc(pstParam,pstSwParam, &stExtFrmInfo,1280,720);
3. 将输出结果叠加到视频流中REGION_VENC_NNIE_DrawRect(0,&(pstSwParam->stRect),0xffff); // 绘制识别结果

三、测试结果

每秒14帧速率

具体实现过程以及最终源码

这篇关于HI3516DV300/HI3519AV100/HI3559AV100 实现RTSP/RTMP视频流实时识别YOLOV3 识别速度14帧/S的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/665730

相关文章

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略 1. 特权模式限制2. 宿主机资源隔离3. 用户和组管理4. 权限提升控制5. SELinux配置 💖The Begin💖点点关注,收藏不迷路💖 Kubernetes的PodSecurityPolicy(PSP)是一个关键的安全特性,它在Pod创建之前实施安全策略,确保P