李煒
(陜西國防工業職業技術學院,人工智能學院,陜西,西安 710300)
本次設計根據武警某部要求開發,該部主要負責監獄看守任務。近年來,隨著襲警、越獄、暴動等事件發生,傳統依靠人防顯得效率低下,而且常常因為信息通信不及時導致此類事件往往不能實現快速靈活處置。因此,在計算機技術發展的今日,信息化技術和物聯網技術在武警勤務中的應用迫在眉睫[1-2]。
武警某部的需求是利用物聯網技術實現人防、物防、技防的相互通信和聯動,以及在重點防區對監控畫面異常情況的分析監測[1],建成一個可以統一指揮、響應及時,并具備一定智能功能的系統,實現 “人防”到“物防+人防”的跨越。
結合武警該部實際情況和信息安全考慮,本次設計采用分布式C/S 結構,實現各安防產品(視頻攝像頭、哨位、報警系統、子彈箱等)和考勤集中的管理與信息傳輸[3-4]。此硬件設備的網絡拓撲如圖1所示。

圖1 硬件設備網絡拓撲
本次開發平臺基于Windows操作系統,此次該部要求系統全部運行在內網,信息響應速度快,且訪問者要具有權限區分,故其各模塊間的數據交互通過查詢數據庫來實現[5-6]。系統軟件結構如圖2所示。

圖2 系統軟件結構
考慮到客戶的特殊性,對于每次發生的事件必須有響應的證據鏈且具有說服力,因此本次開發的系統中的視頻監控部分承擔了重要的角色。視頻監控充當用戶和各防務設備之間通信的中介[7],大多數響應的觸發條件都從視頻監控開始,從而實現了對系統中的設備、服務等資源的間接管理。本系統主要數據的流程圖3所示。

圖3 信息流程圖
(1) 實時視頻流
實時視頻流的原理流程如下:用戶向服務器發出訪問設備請求;通過對數據庫的查詢獲取用戶的權限;服務器確定數據后傳送路由,并返回相應的信息給客戶端;客戶端連接NVR,向客戶端發送數據。
(2) PTZ控制流程
PTZ控制流程如下:用戶觸發控制前端PTZ設備請求;由服務器返回該用戶的訪問權限;NVR將客戶端發送的命令傳送給云臺控制器;前端攝像機PTZ把收到的消息轉換為電信號,實現對云臺的控制。
(3) 報警信息流
報警信息流如下:報警信息通過前端設備內容解析發送到NVR,并形成記錄報警日志;服務器接收到報警信息后,在數據庫對應的表中查詢相關報警聯動規則,從而觸發有關聯的攝像頭開啟錄像、抓圖、報警、上報功能。
本次開發的安防系統主要包括視頻及操作模塊、設備參數設置模塊、報警及聯動管理模塊、用戶權限及角色維護模塊、警員信息管理模塊等5大子系統功能,如圖4所示。

圖4 安防系統模塊
與一般的系統相比,用戶權限及角色維護模塊為本次開發溝通次數最多的模塊[6-9],其中權限分配和兵員角色維護完全按照武警執勤相關條例設計,其主要流程如圖5所示。

圖5 用戶權限和角色維護
本系統以數據庫為中心,系統中各個功能模塊的數據交互聯動通過訪問中心服務器的數據庫來完成[2-4]。為了便于維護和閱讀,表名稱和字段名均用其對應的英文名來表示。綜合考慮到系統的安全性和數據的同步性,除管理中心服務器外的其他服務器和客戶端軟件在使用或者觸發前都需要向管理中心服務器進行權限驗證。由于整個系統所涉及的數據表較多,限于篇幅,下面僅用表進行羅列描述。
(1) 聯動信息表字段儲存的聯動相關信息如表1所示。

表1 聯動信息表
(2) 視頻通道信息表儲存的視頻通道信息如表2所示。

表2 視頻通道信息表
(3) 設備信息表主要信息如表3所示。

表3 前端設備信息表
(4) 報警信息表主要記錄各中隊上報的報警信息,如表4所示。

表4 報警信息表
系統主要在Windows操作系統上運行,軟件開發所使用的工具為Microsoft Visual Studio 2008 R2,數據庫開發使用的軟件為Microsoft SQLServer 2008。視頻模塊功能參考海康威視技術有限公司提供的二次開發設備功能接口,還提供了流媒體轉發、編解碼、網絡通信的DLL庫文件等內容。在系統開發準備前需要將庫文件加載到項目工程中,具體的加載位置為:工程文件→bin→Debug。
3.2.1 視頻模塊功能實現
視頻模塊功能實現的前提是要能夠實現視頻的預覽功能,然后在完成預覽的基礎上實現各控制操作,單通道視頻預覽圖如圖6所示。

圖6 單通道視頻預覽圖
視頻預覽部分代碼如下。
sql = "select sipaddr,deviceid from devinfo where ndevtype = ‘2’"
conn = connect_db()
rsip = New SqlDataAdapter(sql,conn)
rsip.Fill(dtip)
Dim drs As DataRow() = dtip.Select("")
For Each drip As DataRow In drs
ipa = drip.Item(0).ToString
devid = CInt(drip.Item(1))
DVRIPAddress = ipa
DVRPortNumber = "8000"
DVRUserName = "admin"
DVRPassword = "12345"
bInited = HCNetSDK.NET_DVR_Init()
hLoginId(i_number) = HCNetSDK.NET_DVR_Login_V30(DVRIPAddress,DVRPortNumber,DVRUserName,DVRPassword,m_struDeviceInfo)
If hLoginId(i_number) =-1 Then
MsgBox("登錄失敗")
Else
MsgBox("登錄成功")
End If
3.2.2 系統參數設置實現
視頻參數配置界面如圖7所示。

圖7 視頻參數配置
3.2.3 模擬報警實現
遇到緊急情況時,監控系統或者執勤人員啟動觸發附近的報警臺啟動報警,此系統收到報警通信代碼并解析出來,值班人員可根據報警情況進行相應的處理。本次開發使用以太網調試助手模擬報警信息的通信,如圖8所示。

圖8 報警信息模擬
考慮到數據的實時性,在局域網內數據傳送采用UDP協議進行通信,采用10BASE-T標準收發。每幀的數據長度為20 Byte,使用的進制形式為16進制,數據編號從第一字節開始,數據按照由低地址向高地址的順序發送[8-9]。表5為以太網數據幀格式。

表5 以太網數據幀格式
此次設計是根據武警某部的實際需求(系統操作對象在管理、制度、安全要求等方面的特殊性)開發的一套安防系統,本項目現已交付武警某部使用,可滿足某部的日常工作功能需求。本次開發工作任務大、時間緊,導致系統存在一些不足,有些功能有待完善改進,如系統的安全性、界面的美觀性及智能入侵檢測功能的準確率及可靠性。