用大华热成像设备配合大华人脸识别,C#自动上传温度和人物信息
这个软件主要是用于学生排队经过大华热成像设备的时候,收集学生的温度信息,同时采集人脸,再交给后台进行人脸识别,从大华的人脸库得到学生的人脸信息,这样温度和人脸信息都有了,提交给后端网站进行其他处理。
-----------------
疫情当下,这是给别人公司做的一个东西,设备又没有在我这边,可是我想给他们开发啊,苦于又没有设备啊,考虑做端口转发一系列操作,才把设备弄到公网上来。
公网环境理论上是部署成功了,可是我电信是死活访问不了,一看对方是北京腾博士的带宽,估计是电信运营商跨网访问不了吧,还好我是搞全栈的,上阿里云的BGP服务器,就可以访问咯。
于是买阿里云服务器,在服务器上搭建了开发环境,开始折腾开始调试。。。
开发这个软件的时候,遇到了一个特别懵的事情:就是大华设备的智能事件是区分设备的,并不是你能显示大华的哪个监控通道,就能得到哪个设备的智能事件。收集到热成像事件的设备并不能进行人脸库操作,这个折腾了好久才弄明白,主要是因为是外网开发,设备也不在身边,很是郁闷,一度以为是大华C#的SDK有问题。。后来跑了大华C#的SDK和大华JAVA的SDK都没有跑起来,最终才觉得是自己配置哪儿出了问题,发现问题就是需要登录2个设备,各自操作各自的功能。。。
看成品图。
VTODemo.exe 是本软件的主程序
请看本教程目录下的图片,按图片把开始的按钮都点击了哦
本软件开发者QQ 243053996 确实不会使用的,可以联系我的QQ。
======================================
软件相同目录下建立 Config.ini
内容如下:
[CONFIG]
url=http://dahua.ttmm.vip/json.php
ip=113.47.马赛克
user=admin
pass=马赛克
port=377马赛克
ip_kjg=113.47.马赛克
user_kjg=admin
pass_kjg=马赛克
port_kjg=37马赛克
similarity=10
debug_log_post_info=0
==============================
debug_log_post_info=1 时,将输出详细的post日志,可能比较卡。
上报信息的网址
url=http://dahua.ttmm.vip/json.php
热成像设备的登录信息
ip=113.47.马赛克
user=马赛克
pass=马赛克
port=37马赛克 大华默认端口37777
可见光设备的登录信息
ip_kjg=113.47.马赛克
user_kjg=马赛克
pass_kjg=马赛克
port_kjg=37马赛克 大华默认端口37777
相似程度设置,1-100,调试的时候设置40以内会触发很多人脸识别,正式上线应该要设置为70以上
软件内做了处理的,不论你设置多少,都是取相识度最高的那一个人的信息。
只是你设置的越高,系统能读取到的人脸库就越少。
similarity=10
==============================
PHP开发相关教程
本软件上报时,会先上报温度事件,再上报温度事件识别到的人脸信息,每次会传入3个参数
event_uuid 值为随机字符,这个 值相同的,为同一个事件,同一个人脸
json_type 值为 temperature(温度检测事件) 和 face_info(人脸识别结果)
json_str 值为该类型的详细数据,可以看后面的类型介绍。注意:因为人脸识别可能没有结果,因此有一个情况是此值可能为字符串 empty_data,在反序列化为数组的时候提前判断下吧。
temperature(温度检测事件)时候的json_str字段信息
public int nChannelID; // 通道号
public string szName; // 事件名称
public double PTS; // 时间戳(单位是毫秒),应该是监控设备的时间戳或影片的时间戳
public NET_TIME_EX UTC; // 事件发生的时间
public EM_CLASS_TYPE emClassType; // 智能事件所属大类
public uint nEventRelevanceID; // 事件关联ID
public double dbHighTemp; // 最高温度
public uint nTempUnit; // 温度单位(0摄氏度 1华氏度 2开尔文)
public bool bIsOverTemp; // 是否超温
public bool bIsUnderTemp; // 是否低温
public string headFilePath; // 头像文件路径
public string headFileExt; // 头像文件后缀 一般是jpeg或jfif
public byte[] headByteData; // 头像文件byte 暂时没有数据,请使用base64的信息
public string headBase64Data; // 头像文件base64 ,可以转存为图片文件
face_info(人脸识别结果)时候的json_str字段信息
public string szPersonName; //名字
public byte bySex; //性别类型
public byte byIDType; //证件类型
public string szID; //人员唯一标示(身份证号码,工号,或其他编号)
public byte byAge; //人员年龄
public string szUID; //人员唯一标识符,首次由服务端生成,区别于ID字段,修改,删除操作时必填
public string szGroupID; //人员所属群
public string szGroupName; //人员所属群
public byte bySimilarity; // 相似度,必须大于该相识度才报告(1~100)
下面是一个数据提取的样例。。你可以先存为php文件,在分析上来的数据。
<?php
$event_uuid=$_POST['event_uuid'];
if(empty($event_uuid)){
exit("没有传入uuid");
}
$json_type=$_POST['json_type'];
if(empty($json_type)){
exit("没有传入json_type");
}
$ALL_GET=$_GET;
$ALL_POST=$_POST;
$string="";
$string=$string."\n\n\n".date('Ymd_H_i_s');
$string=$string."\n\n\n";
$string=$string."\n\n\n".var_export($ALL_GET,true);
$string=$string."\n\n\n".var_export($ALL_POST,true);
$string=$string."\n\n\n";
@mkdir('./event_uuid/');
$path_file='./event_uuid/event_'.$event_uuid.'.txt';
file_put_contents($path_file,$string,FILE_APPEND);
echo 'PUT EVENT UUID OK'."\n\n".$path_file;扫描二维码推送至手机访问。
版权声明:本文由大牙的博客发布,如需转载请注明出处。
如果您有合作项目您可以选择留言给我,或加QQ 22707370 ,邮件 mail@95jw.cn







