度目视频分析盒子-案例第一篇

百度的出品的度目视频分析盒子优点:

  • 价格绝对便宜,3559AV100(4T算力)的价格从500涨到3000多,度目视频分析盒子没有涨价这个要送一波广告:度目视频分析盒子购买链接
  • 检测人脸和抓拍效果很好,抓拍10ms,误抓拍率低
  • 识别效果很好,速度也非常快,应该还有待提升(我还没遇见过)
  • 视频盒子外壳工艺很不错,有点Mac意思
  • 6路基本满帧、8路15帧的样子(性能不错呦)

百度视频分析盒子的不足:主要是易用性问题

  • 没有支持web的配置,连接显示虽然展示效果很Nice,但是实际部署就有点鸡肋了
  • 只有鼠标的配置,不支持键盘,这个添加URL是真的有点恐怖(心惊胆战)

完整的视频分析盒子连接继电器控制闸机操作指南

  • 物料准备
物料名称 价格 购买链接 功能 备注
视频分析会 3999 视频分析盒子 人脸识别和抓拍 核心物料
交换机 700 华三 poe供电和网络传输 华三路由器作为华为当年的子公司质量有保障
继电器 20 fu植本段内容 z 7 R t c b P G l j x z7RtcbPGljx z7RtcbPGljx打楷τao寶【时间继电器模块延时启动闭合断开倒计时通电开关3.3V5V12V24V】 用于接收IO输出控制开门 淘宝一大堆这里推荐一个合理的,这里注意要买3.3V或者5V的,因为视频盒子的IO输出是3.3v
摄像头 - - 传输视频流 市面上普通摄像头就有可以,这里不做推荐
网线 - 连接桥梁
  • 整体思路

1.人脸识别通过http接口上报给server(视频盒子主动上报)
2.之后server接受到人脸识别结果控制http发送一个IO请求
3.IO输出的是3.3V的电压数字信号(带不了负载,所以需要继电器)
4.通过继电器接受到3.3V电压,控制继电器闭合
完事
友情提示:测试阶段发送http的IO请求,用万用表测试一下是否3.3v电压
度目视频分析盒子,里面可以直接配置识别即GPIO输出的信号位和时长、蜂鸣器的控制(视频分析盒子内置蜂鸣器)

这个完全解决,不用server接收到识别的人脸再去控制io造成的网络延迟(极大方便用户作为解决方案)


轮巡,当人脸识别时候,所选择的通道会直接扩展为全屏,突出抓拍人脸的所在位置。

http的上传心跳、注册、人脸图及原图、IO控制代码示例

需要安装
1.pydantic
2.fastapi

  • 人脸上报代码块(仅供参考)
# -*- coding: utf-8 -*-
# @time    : 2020/06/03from pydantic import BaseModel
from fastapi import FastAPI
from fastapi.encoders import jsonable_encoder
import timeapp = FastAPI()class SubDeviceInfo_Capture(BaseModel):SubDeviceIP: str = NoneSubDeviceUUID: str = Noneclass DeviceInfo_Capture(BaseModel):DeviceId: str DeviceUUID: str DeviceMac: str DeviceIP: str ChannelNo: int SubDeviceInfo: SubDeviceInfo_Capture = Noneclass CaptureInfo_Capture(BaseModel):SendTime: str CaptureTime: str CaptureCount: int    FacePicture: str = NoneBodyPicture: str = NoneBackgroundPicture: str = Noneclass FaceInfo_Capture(BaseModel):FaceId: int = NoneFaceQuality: int = NoneFacePosition: str = Noneclass Attribute_Capture(BaseModel):Age: int = NoneGender: int = NoneGlasses: int = NoneMask: int = NoneBeard: int = NoneRace: int = Noneclass PersonExtension_Capture(BaseModel):PersonCode1: str = NonePersonCode2: str = NonePersonCode3: str = NonePersonReserveName: str = NonePersonParam1: int = NonePersonParam2: int = NonePersonParam3: int = NonePersonParam4: int = NonePersonParam5: int = NonePersonData1: str = NonePersonData2: str = NonePersonData3: str = NonePersonData4: str = NonePersonData5: str = Noneclass PersonInfo_Capture(BaseModel):PersonId: str = NonePersonName: str = NoneSex: int = NoneIDCard: str = NoneNation: str = NoneBirthday: str = NonePhone: str = NoneAddress: str = NoneSaveTime: str = NoneLimitTime: int = NoneStartTime: str = NoneEndTime: str = NoneLabel: str = NonePersonExtension: PersonExtension_CapturePersonPhoto: str = Noneclass CompareInfo_Capture(BaseModel):AlarmEvent: int = NoneLiveness: int = NoneAttribute: Attribute_Capture = NoneCompareTime: str = NonePersonType: int = NoneVisitsCount: int = NoneSimilarity: str = NonePersonInfo: PersonInfo_Capture = Noneclass Data_Capture(BaseModel):DeviceInfo: DeviceInfo_CaptureCaptureInfo: CaptureInfo_CaptureFaceInfo: FaceInfo_Capture = NoneCompareInfo: CompareInfo_Capture = Noneclass CaptureCBItem(BaseModel):Name: str TimeStamp: int Session: str Data: Data_Captureclass DeviceInfo_HeartBeat(BaseModel):DeviceId: str DeviceUUID: str DeviceMac: str ChannelNo: int WebVersion: str CoreVersion: str VersionDate: str class Data_HeartBeat(BaseModel):DeviceInfo: DeviceInfo_HeartBeatHTTPVersion: str HTTPDate: str HeartbeatCount: int CaptureCount: int class HeartBeatCBItem(BaseModel):Name: str TimeStamp: str Session: strData: Data_HeartBeatclass DeviceInfo_Register(BaseModel):DeviceId: str  = NoneDeviceUUID: str  = NoneDeviceMac: str  = NoneDeviceIP: str  = NoneDeviceType: int  = NoneChannelNum: int  = NoneWebVersion: str  = NoneCoreVersion: str  = NoneVersionDate: str  = Noneclass Data_Register(BaseModel):DeviceInfo: DeviceInfo_Register = NoneHTTPVersion: str = NoneHTTPDate: str = Noneclass RegisterItem(BaseModel):Name: str  = NoneTimeStamp: str  = NoneData: Data_Register    = None# @app.post('/test')
# def calculate(request_data: Item):
#     a = request_data.a
#     b = request_data.b
#     c = a + b
#     # with open('./11.txt', 'w') as f_res:
#     #     f_res.write(str(c))
#     res = {"res":c}
#     return res# def get_value_for_key(raw_value):
#     """
#     """
#     request_info = {}
#     part_str_array = raw_value.split(' ')#     print(part_str_array)
#     for part_str in part_str_array:#         idx_key = part_str.find('=')
#         key_value = part_str[0: idx_key]#         if part_str[-1] == ')':#             idx = part_str.find('(')
#             new_raw_value = part_str[idx + 1 : -1]
#             print('11111', new_raw_value)
#             request_info[key_value] = get_value_for_key(new_raw_value)
#         else:
#             print('yyy', part_str)
#             if part_str[-1] != '"' and part_str[-1] != "'" :
#                 print('jjj', part_str[idx_key + 1 : ])
#                 request_info[key_value] = part_str[idx_key + 1 : ]
#             else:
#                 print('fff', part_str[idx_key + 2 : -1])
#                 request_info[key_value] = part_str[idx_key + 2 : -1]        #     return request_info@app.post('/CaptureCB')
def strore_Capturemessage(request_data: CaptureCBItem):# print(str(request_data.Name), str(request_data.Session), flush=True)with open('./CaptureCB.txt', 'a+') as f_res:request_info = jsonable_encoder(request_data)f_res.write(str(request_info) + "\n")current_ts = round(time.time())res = \{"Name": "captureInfoResponse","TimeStamp": current_ts,"Session": request_data.Session,"Code": 1,"Message": ""}return res@app.post('/HeartBeatCB')
def strore_HeartBeatmessage(request_data: HeartBeatCBItem):""""""print(jsonable_encoder(request_data))with open('./HeartBeatCB.txt', 'a+') as f_res:request_info = jsonable_encoder(request_data)f_res.write(str(request_info) + "\n")current_ts = round(time.time())res = \{"Name": "heartbeatResponse","TimeStamp": current_ts,"Session": request_data.Session,"Code": 1,"Message": ""}return res@app.post('/Register')
def strore_Resgistermessage(request_data: RegisterItem):""""""print(jsonable_encoder(request_data))with open('./Register.txt', 'a+') as f_res:request_info = jsonable_encoder(request_data)f_res.write(str(request_info) + "\n")current_ts = round(time.time())Session_name = request_info['Data']['DeviceInfo']['DeviceUUID'] + '_' + str(current_ts)res = \{"Name": "registerResponse","TimeStamp": current_ts,"Data":{"Session": Session_name,"ServerVersion": "1.1.0"},"Code": 1,"Message": ""}return resif __name__ == '__main__':import uvicornuvicorn.run(app=app,host="0.0.0.0",port=8080,workers=1)
  • http请求IO控制代码块(仅供参数)
#!/usr/bin/python
import requests as req
import base64
import jsonpost_url = "http://192.168.1.9:595"data = {'Name':'IOControlRequest',
'Data':
{'ContinueSeconds':10
}
}json_data = json.dumps(data)r = req.post(url = post_url, data = json_data)print(r.text)

具体逻辑靠大家的异想天开了哈

度目视频分析盒子-解决方案-配合门禁使用介绍相关推荐

  1. 度目视频分析盒子+NVR

    度目视频分析盒子配合NVR使用指南 视频分析盒子功能介绍: 视频分析盒子主要是用摄像头拉取视频流进行分析,对视频里面的人脸进行抓拍和识别,支持8路视频的接入,如果接入6路IPC达到25帧:接入8路I ...

  2. 深元ai智慧工地视频分析盒子提高建筑施工现场安全效率

    随着社会的快速发展,建筑行业安全问题日益受到重视.为了解决传统人工巡查的诸多问题,AI智慧工地视频分析盒子应运而生,通过人工智能技术,全面提高建筑施工现场的安全工作效率. 一.AI智慧工地视频分析盒子 ...

  3. 小盒子解决大问题加油站智能视频分析盒子

    当你走进一个加油站,拿出手机,开始打电话,就会听到喇叭里面喊道:"加油站内请勿拨打电话!".这说明这家加油站安装了智能视频分析系统,这个报警信息就是通过智能视频分析设备对监控画面进 ...

  4. 百度大脑度目系列硬件常见问题汇总

    1.Q:百度自研硬件-度目系列视觉硬件都有那几款产品? A:百度大脑度目系列硬件,在2020年4月的发布会中,发布了以下四款硬件: 人脸应用套件:https://ai.baidu.com/tech/d ...

  5. DeepStream SDK 创建视频分析应用程序

    NVIDIA DeepStream SDK Accelerate your video analytics application development 为IVA智能视频分析提供解决方案 DeepS ...

  6. scada系统集成_专家 | 浅析地铁综合监控系统集成门禁系统

    目前国内省会及一.二线城市大力开展地铁建设,文章通过分析地铁综合监控系统及门禁系统软件和结构特点,浅析综合监控系统集成门禁系统的典型方案,并分析可行性. 关键词:综合监控系统:门禁系统:集成 中图分类 ...

  7. 人脸识别 宿舍门禁系统(python qt opencv带数据库)

    制作过程 最新更新 其他版本基于retinaface,卷神经网络余弦相似度人脸匹配 本文章版本预览 点击下载源代码 视频效果 一.界面设计 使用Qt Designer(源代码内有设计文件ui): 二. ...

  8. java门禁系统项目开发实现

    文章目录 java门禁系统项目实现 一.项目目标和任务 二.项目结构 package sys Computer.java ControlSys.java Door.java InputEquip.ja ...

  9. 门禁系统服务器未连接,门禁系统一般故障处理方法及如何选择电插锁

    [导读]一套门禁系统由核心控制器.电控锁.读卡器.开关及门禁电源等配件构成,所有设备都采用DC12V直流供电,而这些设备功率最大的要数电控锁,其瞬间电流可以达到900mA,直流电压在传输过程中存在一定 ...

最新文章

  1. *ctf box题解
  2. 如何使用Angular的@Input()装饰器
  3. matlab 读取excel一列,读取excel中的数据把第一列相同的所有行数据输出成一个excel...
  4. 制作根文件系统时的错误解决
  5. 访问修饰符作用范围由大到小是_9个java基础小知识
  6. c++ eos智能合约开发_hyperledger fabric 开发第一个智能合约
  7. 【白皮书分享】2020中国硬科技创新白皮书.pdf(附下载链接)
  8. 晚上大龙哥带来了一本vb教程,由于好奇看了下
  9. 【DATAGUARD】物理dg在主库丢失归档文件的情况下的恢复(七)
  10. android引用X5内核webview部分问题记录
  11. 数学建模中的传染病模型及其编程求解
  12. 时区的转换nbsp;格林尼治标准时间(GMT…
  13. [渝粤教育] 中国地质大学 工业通风及除尘 复习题 (2)
  14. 2010,有关中国的几个瞬间
  15. C语言编程>第二十二周 ⑥ 请补充fun函数,该函数的功能是:把字符下标能被2和3同时整除的字符从字符串s中删除,把剩余的字符重新保存在字符串s中。
  16. 使用 Kubernetes 和 Istio 进行基于容器的全面服务监控
  17. 数据结构课程设计-(五)行车路线(图的应用)
  18. php表格升序降序,excel如何实现升序和降序
  19. 利用Python对体育竞技比赛进行分析
  20. #读书#黑白之间——中国历史文化中的任侠者

热门文章

  1. 【tkinter制作文本编辑器(3)】编辑菜单选项栏事件和右键菜单功能实现(撤销、还原、复制、粘贴、剪切、查找及全选)
  2. 基于图像识别的小车智能寻迹控制系统
  3. 开源大语言模型完整列表
  4. SHA-1算法详解和C++实现
  5. 怎么解除计算机切换用户锁定,如何解除计算机的锁定?
  6. sed命令删除前100行里匹配的行
  7. 数据结构实验--停车场管理
  8. 计算机网络原理期末复习
  9. R语言做如何做多元回归分析(逐步回归)之 提取回归结果参数-调整R方,标准化回归系数
  10. [小白的Web全栈之旅]独立开发电子商务网站--管理员后台开发(一、界面开发)