如何通过ONVIF接收海康DS-2CD1043G2-I的人车检测事件?
海康威视DS-2CD1043G2-I通过ONVIF获取人车检测事件的问题与解决方案
问题描述
开发ONVIF客户端时,已能正常接收ONVIF标准事件(如移动侦测、遮挡报警),但无法获取人车检测相关消息——尽管已在摄像头网页端开启并配置了人车检测选项,且通过IVMS 4200客户端能看到画面中的人形标注和框选。摄像头未接入NVR,仅通过以太网和独立电源连接。
设备信息
- 摄像头型号:海康威视DS-2CD1043G2-I
- 固件版本:V5.7.11 build 230601
- ONVIF版本:19.12
GetSupportedAnalyticsModules接口响应
<?xml version="1.0" encoding="UTF-8"?> <env:Body> <tan:GetSupportedAnalyticsModulesResponse> <tan:SupportedAnalyticsModules> <tt:AnalyticsModuleContentSchemaLocation>http://www.w3.org/2001/XMLSchema</tt:AnalyticsModuleContentSchemaLocation> <tt:AnalyticsModuleDescription Name="tt:CellMotionEngine" maxInstances="1"> <tt:Parameters> <tt:SimpleItemDescription Name="Sensitivity" Type="xs:integer"/> <tt:ElementItemDescription Name="Layout" Type="tt:CellLayout"/> </tt:Parameters> <tt:Messages IsProperty="true"> <tt:Source> <tt:SimpleItemDescription Name="VideoSourceConfigurationToken" Type="tt:ReferenceToken"/> <tt:SimpleItemDescription Name="VideoAnalyticsConfigurationToken" Type="tt:ReferenceToken"/> <tt:SimpleItemDescription Name="Rule" Type="xs:string"/> </tt:Source> <tt:Data> <tt:SimpleItemDescription Name="IsMotion" Type="xs:boolean"/> </tt:Data> <tt:ParentTopic>tns1:RuleEngine/CellMotionDetector/Motion</tt:ParentTopic> </tt:Messages> </tt:AnalyticsModuleDescription> <tt:AnalyticsModuleDescription Name="hikxsd:TamperEngine" maxInstances="1"> <tt:Parameters> <tt:SimpleItemDescription Name="Sensitivity" Type="xs:integer"/> <tt:ElementItemDescription Name="Transformation" Type="tt:Transformation"/> <tt:ElementItemDescription Name="Field" Type="tt:PolygonConfiguration"/> </tt:Parameters> <tt:Messages IsProperty="true"> <tt:Source> <tt:SimpleItemDescription Name="VideoSourceConfigurationToken" Type="tt:ReferenceToken"/> <tt:SimpleItemDescription Name="VideoAnalyticsConfigurationToken" Type="tt:ReferenceToken"/> <tt:SimpleItemDescription Name="Rule" Type="xs:string"/> </tt:Source> <tt:Data> <tt:SimpleItemDescription Name="IsTamper" Type="xs:boolean"/> </tt:Data> <tt:ParentTopic>tns1:RuleEngine/TamperDetector/Tamper</tt:ParentTopic> </tt:Messages> </tt:AnalyticsModuleDescription> </tan:SupportedAnalyticsModules> </tan:GetSupportedAnalyticsModulesResponse> </env:Body> </env:Envelope>
解决方案
从接口返回可以看到,这款摄像头的标准ONVIF分析模块仅支持移动侦测(CellMotionEngine)和遮挡报警(TamperEngine),没有将人车检测封装为标准ONVIF分析事件。要获取人车检测消息,需通过以下途径实现:
使用海康私有ONVIF扩展接口
海康威视对ONVIF做了私有扩展,可尝试调用其私有接口获取智能事件:- 在ONVIF请求中引入海康私有命名空间
http://www.hikvision.com/ver20/XMLSchema - 调用私有接口如
GetSmartEvents查询设备支持的智能事件类型,或通过Subscribe接口订阅海康私有事件Topic(如hikvision:SmartHumanDetection) - 确认摄像头网页端已开启「智能事件推送」选项,并指定推送协议为ONVIF
- 在ONVIF请求中引入海康私有命名空间
检查ONVIF事件订阅的完整Topic列表
调用ONVIF的GetEventProperties接口,获取设备支持的所有事件Topic,查看是否包含海康私有命名空间下的人车检测相关Topic,若有则直接订阅该Topic改用海康设备网络SDK
如果私有ONVIF扩展仍无法获取事件,直接使用海康官方提供的设备网络SDK。SDK中包含专门的智能事件回调接口,可直接获取人车检测的详细信息(包括目标类型、框选坐标、置信度等),且兼容性更稳定
内容的提问来源于stack exchange,提问作者saintvrai
相关产品推荐
相关产品推荐

