1553
- 收藏
- 点赞
- 分享
- 举报
Hi3520d 视频遮挡调试有问题
我使用的是HI3520D芯片,希望摄像头被遮挡就报警,移除遮挡报警就消失。
我使用视频侦测分析(vda)接口来完成这个功能,但是我使用这个接口来测试发现了问题。
镜头被人手挡住会报警,但是松开手时也会一直产生同样的报警,然后我在遮挡有时竟然会报警消失!!! 白天如果误触发红外也会触发报警。
我想问一下:这是海思的vda接口有问题吗,大家做遮挡功能是使用vda还是自己实现的?
下面是我的配置
/********************************************
step 1 : create vda channel
********************************************/
stVdaChnAttr.enWorkMode = VDA_WORK_MODE_OD;//OD
stVdaChnAttr.u32Width = pstSize->u32Width;
stVdaChnAttr.u32Height= pstSize->u32Height;
stVdaChnAttr.unAttr.stOdAttr.enVdaAlg = VDA_ALG_REF; //VDA 算法:帧差法和背景法
stVdaChnAttr.unAttr.stOdAttr.enMbSize = VDA_MB_8PIXEL;//宏块大小:8X8和16X16
stVdaChnAttr.unAttr.stOdAttr.enMbSadBits = VDA_MB_SAD_16BIT;//SAD 输出bit 位:8bit和16bit
stVdaChnAttr.unAttr.stOdAttr.enRefMode = VDA_REF_MODE_DYNAMIC;//参考帧模式:静态参考帧模式和动态参考帧模式
stVdaChnAttr.unAttr.stOdAttr.u32VdaIntvl = u32VdaIntvl;// VDA 间隔(参考“如何配置 VDA 间隔”)
stVdaChnAttr.unAttr.stOdAttr.u32BgUpSrcWgt = 128;//背景更新权重(仅当VDA 算法选择为背景法时有效)
stVdaChnAttr.unAttr.stOdAttr.u32RgnNum = 1;//OD区域个数(最大支持四个OD区域个数)
stVdaChnAttr.unAttr.stOdAttr.astOdRgnAttr[0].stRect.s32X = 0;
stVdaChnAttr.unAttr.stOdAttr.astOdRgnAttr[0].stRect.s32Y = 0;
stVdaChnAttr.unAttr.stOdAttr.astOdRgnAttr[0].stRect.u32Width= pstSize->u32Width;
stVdaChnAttr.unAttr.stOdAttr.astOdRgnAttr[0].stRect.u32Height = pstSize->u32Height;
stVdaChnAttr.unAttr.stOdAttr.astOdRgnAttr[0].u32SadTh = 320;//区域SAD阈值(参考“如何配置 SAD 阈值”)
stVdaChnAttr.unAttr.stOdAttr.astOdRgnAttr[0].u32AreaTh = 70;//u32AreaTh;//区域面积报警阈值(百分比值)
// 这里设置多少遮挡多长时间产生遮挡报警
u32OccCntTh = pstCavOd->u32VideoShadeLastSime * 5; // 每秒接收5帧图片
if(u32OccCntTh < 5) { // 最少应当为1秒
u32OccCntTh = 5;
}
if(u32OccCntTh >= 250) { // 最多250帧
u32OccCntTh = 250;
}
u32UnOccCntTh = u32OccCntTh / 10;
if(u32UnOccCntTh > 10) {
u32UnOccCntTh = 10; // 最大限制为2秒
}
stVdaChnAttr.unAttr.stOdAttr.astOdRgnAttr[0].u32OccCntTh = 10;//20;//u32OccCntTh;//区域遮挡次数报警阈值 [1,256](u32OccCntTh :u32UnOccCntTh = 10 :1)
stVdaChnAttr.unAttr.stOdAttr.astOdRgnAttr[0].u32UnOccCntTh = 1;//2;//u32UnOccCntTh;//允许不发生遮挡的最大次数 [0, 256]
//SLOG(DBG, "u32AreaTh[%u], u32OccCntTh[%u],u32UnOccCntTh[%u]\n", u32AreaTh, u32OccCntTh, u32UnOccCntTh);
s32Ret = HI_MPI_VDA_CreateChn(VdaChn, &stVdaChnAttr);
if(s32Ret != HI_SUCCESS)
{
SAMPLE_PRT("err!\n");
return(s32Ret);
}
我使用视频侦测分析(vda)接口来完成这个功能,但是我使用这个接口来测试发现了问题。
镜头被人手挡住会报警,但是松开手时也会一直产生同样的报警,然后我在遮挡有时竟然会报警消失!!! 白天如果误触发红外也会触发报警。
我想问一下:这是海思的vda接口有问题吗,大家做遮挡功能是使用vda还是自己实现的?
下面是我的配置
/********************************************
step 1 : create vda channel
********************************************/
stVdaChnAttr.enWorkMode = VDA_WORK_MODE_OD;//OD
stVdaChnAttr.u32Width = pstSize->u32Width;
stVdaChnAttr.u32Height= pstSize->u32Height;
stVdaChnAttr.unAttr.stOdAttr.enVdaAlg = VDA_ALG_REF; //VDA 算法:帧差法和背景法
stVdaChnAttr.unAttr.stOdAttr.enMbSize = VDA_MB_8PIXEL;//宏块大小:8X8和16X16
stVdaChnAttr.unAttr.stOdAttr.enMbSadBits = VDA_MB_SAD_16BIT;//SAD 输出bit 位:8bit和16bit
stVdaChnAttr.unAttr.stOdAttr.enRefMode = VDA_REF_MODE_DYNAMIC;//参考帧模式:静态参考帧模式和动态参考帧模式
stVdaChnAttr.unAttr.stOdAttr.u32VdaIntvl = u32VdaIntvl;// VDA 间隔(参考“如何配置 VDA 间隔”)
stVdaChnAttr.unAttr.stOdAttr.u32BgUpSrcWgt = 128;//背景更新权重(仅当VDA 算法选择为背景法时有效)
stVdaChnAttr.unAttr.stOdAttr.u32RgnNum = 1;//OD区域个数(最大支持四个OD区域个数)
stVdaChnAttr.unAttr.stOdAttr.astOdRgnAttr[0].stRect.s32X = 0;
stVdaChnAttr.unAttr.stOdAttr.astOdRgnAttr[0].stRect.s32Y = 0;
stVdaChnAttr.unAttr.stOdAttr.astOdRgnAttr[0].stRect.u32Width= pstSize->u32Width;
stVdaChnAttr.unAttr.stOdAttr.astOdRgnAttr[0].stRect.u32Height = pstSize->u32Height;
stVdaChnAttr.unAttr.stOdAttr.astOdRgnAttr[0].u32SadTh = 320;//区域SAD阈值(参考“如何配置 SAD 阈值”)
stVdaChnAttr.unAttr.stOdAttr.astOdRgnAttr[0].u32AreaTh = 70;//u32AreaTh;//区域面积报警阈值(百分比值)
// 这里设置多少遮挡多长时间产生遮挡报警
u32OccCntTh = pstCavOd->u32VideoShadeLastSime * 5; // 每秒接收5帧图片
if(u32OccCntTh < 5) { // 最少应当为1秒
u32OccCntTh = 5;
}
if(u32OccCntTh >= 250) { // 最多250帧
u32OccCntTh = 250;
}
u32UnOccCntTh = u32OccCntTh / 10;
if(u32UnOccCntTh > 10) {
u32UnOccCntTh = 10; // 最大限制为2秒
}
stVdaChnAttr.unAttr.stOdAttr.astOdRgnAttr[0].u32OccCntTh = 10;//20;//u32OccCntTh;//区域遮挡次数报警阈值 [1,256](u32OccCntTh :u32UnOccCntTh = 10 :1)
stVdaChnAttr.unAttr.stOdAttr.astOdRgnAttr[0].u32UnOccCntTh = 1;//2;//u32UnOccCntTh;//允许不发生遮挡的最大次数 [0, 256]
//SLOG(DBG, "u32AreaTh[%u], u32OccCntTh[%u],u32UnOccCntTh[%u]\n", u32AreaTh, u32OccCntTh, u32UnOccCntTh);
s32Ret = HI_MPI_VDA_CreateChn(VdaChn, &stVdaChnAttr);
if(s32Ret != HI_SUCCESS)
{
SAMPLE_PRT("err!\n");
return(s32Ret);
}
我来回答
回答0个
时间排序
认可量排序
暂无数据
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
相关问答
-
2015-06-05 08:39:04
-
2014-12-19 15:53:12
-
2017-08-14 14:28:15
-
2020-07-14 11:10:05
-
2017-06-14 11:17:32
-
2016-08-15 17:52:45
-
2018-12-22 10:09:12
-
2017-07-11 17:52:07
-
2015-11-03 16:39:36
-
2015-11-02 10:35:09
-
2015-09-20 20:42:28
-
02013-12-26 15:33:24
-
12017-03-08 18:36:15
-
2017-09-06 11:30:37
-
2016-11-06 14:54:35
-
2018-03-16 16:45:56
-
2014-08-05 21:15:43
-
2016-11-08 18:00:35
-
2017-08-23 18:22:06
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
悬赏问答
-
5Hi3516CV610 如何使用SD卡升级固件
-
5cat /dev/logmpp 报错 <3>[ vi] [func]:vi_send_frame_node [line]:99 [info]:vi pic queue is full!
-
50如何获取vpss chn的图像修改后发送至vo
-
5FPGA通过Bt1120传YUV422数据过来,vi接收不到数据——3516dv500
-
50SS928 运行PQtools 拼接 推到设备里有一半画面会异常
-
53536AV100的sample_vdec输出到CVBS显示
-
10海思板子mpp怎么在vi阶段改变视频数据尺寸
-
10HI3559AV100 多摄像头同步模式
-
9海思ss928单路摄像头vio中加入opencv处理并显示
-
10EB-RV1126-BC-191板子运行自己编码的程序
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认