AI示例.IPCam 人车非检测 - sophgo-forum-service/sophpi-huashan GitHub Wiki
人车非检测
1、IPC
ip network camera网际协议照相机,ip camera实际上是一台视频服务器和摄像头的集成。
1991年,剑桥大学计算机研究中心只有主机房有咖啡壶,时常会有其他房间的科学家跑到主机房才发现咖啡已没了。为了解决倒咖啡时白跑一趟的问题,科学家弗雷泽和保罗想到:装配一个能够监控主机房咖啡壶的设备。他们先用一个相机对准咖啡壶,设置每分钟拍三张照片,然后编写了一个把照相机图片传送到研究部门内部网络的程序。于是,剑桥大学成功安装了世界首个网络摄像头。
2、模拟摄像机与网络摄像机
摄像机类型 | 工作方式 | 监控方式 | 安装环境 |
---|---|---|---|
模拟摄像机 | 输出模拟信号进行传输,传输距离有限,易受干扰 | 通过监视器查看录像只能本地存储 不能远程查看 | 同轴电缆连接到每一台摄像机,录像设备,显示设备。 |
网络摄像机 | 输出数字信号进行传输,传输距离远 | 可联网查看 支持网络存储 便于管理 | 配置网络环境及IP即可,无需额外布线。 |
3、IP Camera分类
4、IPC基本组成
5、CV181介绍|CV181主要规格
6、CV181介绍 IPC配套方案推荐
7、CV181介绍|人车非侦测+警戒区(农村、巷道)
8、IPC软件架构
9、IPC Pipeline
pipeline以实际ini配置文件配置的参数为准。
10、Main函数流程
11、Ini配置文件
配置文件是ipc demo的基石,各模块的工作模式及参数均从配置文件中读取,下图是配置文件的位置及各模块子线程的主要工作内容。
12、Web效果展示
1.运行前将./middleware/v2/sample/ipcam/resource/www文件夹拷贝至/mnt/sd目录。
2.将ipcam/mars/Makefile NET_ENABLE宏打开,如下图所示。
3.重新编译并运行ipc demo, ipc起来后浏览器输入http://192.168.3.8/index.html 即可访问(注意ip地址需更改为自己设置的板端ip)
13、Pc端 VLC效果展示及编译步骤
windows下VLC播放器设置
14、使能IPC AI/NET/Record编译步骤
AI
配置AI功能后,会提供人脸检测,移动检测及区域入侵检测功能,会有人脸框,移动侦测框及区域入侵区域框显示。
NET
配置NET功能后,可通过Web浏览器远程查看视频流,效果如12Web效果展示所示。
Record
配置Record功能后,会提供音频及视频的录制功能,插入SD之后即可开启录制,拔出即可暂停录制。
1.修改文件cvi_mmf_sdk/middleware/v2/sample/ipcam/mars/Makefile,打开对应功能,将对应宏设置为1即可,位置如下:
2.重新执行build_middleware,即可重新编译ipcam。
3.对于AI功能而言,还需确保配置文件中AI模块是否打开,如下:
15、参数配置及运行效果
参数配置文件
打开文件param_config_ai.ini,部分配置如下
屏幕显示对象配置
......
[osdc_objs_info]
cnt = 3 ; 绘制对象数目
[osdc_obj_info0]
bShow = 1 ; 显示使能
type = 0 ; 0: rect, 1: bitmap, 2: line, 3: buff ; 显示元素类型 0:矩形 1:位图 2:线 3:缓冲区
color = 0xff00ffff ; 颜色
x1 = 500 ; 显示区域的左上角点坐标(横轴)
y1 = 500 ; 显示区域的左上角点坐标(纵轴)
width = 100 ; 显示区域宽度
height = 100 ; 显示区域高度
filled = 0 ; 是否填充
thickness = 4 ; 显示边线粗细
[osdc_obj_info1]
bShow = 1
type = 2 ; 0: rect, 1: bitmap, 2: line, 3: buff
color = 0xff00ffff
x1 = 800
y1 = 800
x2 = 1000
y2 = 1000
thickness = 4
[osdc_obj_info2]
bShow = 1
type = 0 ; 0: rect, 1: bitmap, 2: line, 3: buff
color = 0xff00ffff
x1 = 1000
y1 = 1000
width = 200
height = 200
filled = 1
thickness = 4
......
屏幕显示元素配置
......
; osd config
[osd_config]
osd_enable_all = 1 ; 是;否使能所有显示元素
osd_cnt = 12 ; 屏;显示元素数目
; osd attach to main streaming
[osd0]
show = 1 ; 显示使能
handle = 0 ; 句柄号
type = 2 ; 0:TYPE_PICTURE, 1: TYPE_STRING, 2:TYPE_TIME
; 0:图片类型 1:字符类型 2:实时时间类型
mod_id = 6 ; 6: CVI_ID_VPSS ; 模块号
dev_id = 0 ; 设备号
chn_id = 0 ; 通道号
s32x = 20 ; 显示区域起始点坐标
s32y = 20
rec_width = 24 ; 显示区域宽度
rec_heigh = 24 ; 显示区域高度
[osd1]
show = 1
handle = 1
type = 1 ; 0:TYPE_PICTURE, 1: TYPE_STRING, 2:TYPE_TIME
mod_id = 6 ; 6: CVI_ID_VPSS
dev_id = 0
chn_id = 0
s32x = 20
s32y = 60
rec_width = 24
rec_heigh = 24
str = "cvitek main streaming demo" ; 字符内容
[osd2]
show = 1
handle = 2
type = 1 ; 0:TYPE_PICTURE, 1: TYPE_STRING, 2:TYPE_TIME
mod_id = 6 ; 6: CVI_ID_VPSS
dev_id = 0
chn_id = 0
s32x = 20
s32y = 100
rec_width = 24
rec_heigh = 24
str = "北京晶视智能科技有限公司"
......
配置模型参数(以face_detection为例)
......
[ai_fd_config]
fd_enable = 1 ; 人脸检测使能
fr_enable = 1 ; 人脸识别使能
mask_enable = 0 ; 口罩使能
capture_enable = 1 ; 捕获使能(开启的话需要挂载sd卡到/mnt/sd,系统检测到人脸一定时间会保存图片到sd卡)
face_ae_enable = 0 ;
vpss_grp = 4 ; 视频处理子系统组号
vpss_chn = 0 ; 通道号
fd_poolid = 6 ; 池化层id
grp_width = 960 ;
grp_height = 540 ;
model_width = 768 ; 模型宽度
model_height = 432 ; 模型高度
vpssPreProcSkip = 0 ; 跳过视频处理预处理使能
threshold_fd = 0.7 ; 人脸检测阈值
threshold_fr = 0.7 ; 人脸识别阈值
threshold_mask = 0.7 ; 戴口罩人脸检测阈值
model_id_fd = 30 ;0:CVI_AI_SUPPORTED_MODEL_RETINAFACE;30:CVI_AI_SUPPORTED_MODEL_FACEMASKDETECTION
model_id_fr = 6 ;3:CVI_AI_SUPPORTED_MODEL_FACERECOGNITION
model_id_mask = 7 ;7:CVI_AI_SUPPORTED_MODEL_MASKCLASSIFICATION
model_path_fd = "/mnt/data/ai_models/retinaface_mask.cvimodel" ; 模型路径
model_path_fr = "/mnt/data/ai_models/cviface-v5-s.cvimodel"
model_path_mask = "/mnt/data/ai_models//mask_classifier.cvimodel"
; 检测框设置
color_r = 7.0
color_g = 10.0
color_b = 230.0
color_size = 4
......