2013年4月10日 星期三

ONVIF -- Motion Detection



ONVIF 規範支援 Motion Detection,並且在兩個規範書內分別加以定義。

  • ONVIF-Imaging-Service-Spec-v221.pdf
  • "tns1:VideoSource/tns1:MotionAlarm"
  • ONVIF-VideoAnalytics-Service-Spec-v221.pdf
  • "tns1:VideoAnalytics/tns1:MotionDetection"




其實作方式是透過 ONVIF event 的機制,詳細作法請參考這裡,簡介如下:

  1. NVR先透過GetEventProperties得知系統支援那些Event。
  2. NVR透過Subscriber註冊想要了解的 Event。
  3. NVR可透過 Push/Pull 或 RTSP 的方式,取得 Event


參考這兩份規範書內的 Event 定義,可知兩者所定義的 Motion Detection 有所不同

  • VideoSource : 
  • 針對單一的影像來源,只要有動作,便觸發 Motion
  • VideoAnalytics :  
  • 將單一的影像來源區分為多個Window,只要某個Window內有動作,便觸發 Motion


"tns1:VideoSource/tns1:MotionAlarm" 的 Event 定義
<tns1:VideoSource>
   <tns1:MotionAlarm wstop:topic="true">
      <tt:MessageDescription IsProperty="true">
         <tt:Source>
            <tt:SimpleItemDescription Name="Source" Type="tt:ReferenceToken"/>
         </tt:Source>
         <tt:Data>
            <tt:SimpleItemDescription Name="State" Type="xs:boolean"/>
         </tt:Data>
      </tt:MessageDescription>
   </tns1:MotionAlarm>          
</tns1:VideoSource>
 

"tns1:VideoAnalytics/tns1:MotionDetection" 的 Event 定義
<tns1:VideoAnalytics>
   <tns1:MotionDetection wstop:topic="true">
      <tt:MessageDescription IsProperty="true">
         <tt:Source>
            <tt:SimpleItemDescription Name="window" Type="tt:ReferenceToken"/>
         </tt:Source>
         <tt:Data>
            <tt:SimpleItemDescription Name="motion" Type="xs:boolean"/>
         </tt:Data>
      </tt:MessageDescription>
   </tns1:MotionDetection>          
</tns1:VideoAnalytics>