背景
基于君正的ptz ipc
PTZ :在安防监控应用中是 Pan/Tilt/Zoom 的简写,代表云台全方位(左右/上下)移动及镜头变倍、变焦控制。
算法的处理流程
IVS
在ivs中对接了SDK中的三个算法
- move track———— 移动追踪
- person detection——人型侦测
- person track————人型追踪
base
算法的信息处理,选用了消息队列
将算法的种类、数据等,放在消息队列中进行处理
这里的处理不是很好,在进队列的时候,move和PD在结构体中使用的是单独的成员,PT成员使用的是更通用的方法,应将三种算法都用通用的方式进行定义,像最后三行。
event
再将队列传给事件处理中心event.c
在事件处理中心中获取消息队列中的信息,并进行对应的处理
moveDet
PD
PT
在进行算法的处理时,需要用到图片。
于是在事件处理中心中,要调用上层的function,上层是tuya的方案
这里使用的是回调函数。
为什么中间层调用上层函数要用回调?
一般在工作中,我们只在上层调下层的函数。如中间层调底层,上层调中间层。
当然可以底层调中间层,中间层调上层。运行不会出错,但是不合法。
算法相关的总体流程
- frame source——视频源输出
- IVS——————算法处理(这里用的是通道0 360p的码流)
这里主要是一些init和tuya config配置,主要是开关、区域、灵敏度等 - VENC——————视频编码
- MQTT——————上传至TUYA服务器的协议