用大华热成像设备配合大华人脸识别,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