一種基于本地計(jì)算的視頻監(jiān)控方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種視頻監(jiān)控方法,尤其涉及一種基于本地計(jì)算的視頻監(jiān)控方法,屬于機(jī)器視覺(jué)技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]隨著社會(huì)生產(chǎn)力的發(fā)展,社會(huì)財(cái)富日益增加,人們對(duì)財(cái)產(chǎn)安全以及人身安全提出了更高的要求。在人眼視力范圍之外,能夠有效地監(jiān)視財(cái)產(chǎn)及人身安全成為人們的迫切需求。于是,各種監(jiān)控技術(shù)應(yīng)運(yùn)而生。
[0003]監(jiān)控技術(shù)應(yīng)用的功能一般包括監(jiān)控視頻查看、緊急事件報(bào)警以及視頻存儲(chǔ)三部分。其中,監(jiān)控視頻查看包括查看實(shí)時(shí)視頻(live view)和查看歷史記錄視頻(historicalfootage)。緊急事件報(bào)警指的是對(duì)于入侵發(fā)生或者在其他緊急事件發(fā)生時(shí),能夠主動(dòng)向外報(bào)警(用戶、警局、警鈴),視頻存儲(chǔ)只將視頻片段(video clips)或者連續(xù)視頻(continuous footage)進(jìn)行存儲(chǔ)。
[0004]目前,對(duì)于監(jiān)控視頻查看功能,絕大部分廠商都已經(jīng)可以通過(guò)云服務(wù)器進(jìn)行協(xié)調(diào),使得手機(jī)可以遠(yuǎn)程觀看。
[0005]對(duì)于緊急報(bào)警功能,有若干技術(shù)方案,但實(shí)際使用的技術(shù)大都基于移動(dòng)偵測(cè)(mot1n detect1n)。最簡(jiǎn)單的移動(dòng)偵測(cè)是對(duì)比前后兩幀圖片的變化,如果變化超過(guò)某一個(gè)閾值,則報(bào)警。另一類稍微復(fù)雜點(diǎn)的算法是分區(qū)域移動(dòng)偵測(cè),將整個(gè)監(jiān)控區(qū)域劃分成不同的小的監(jiān)控區(qū)域,只有小監(jiān)控區(qū)域內(nèi)檢測(cè)到移動(dòng)才報(bào)警。還有若干報(bào)警如入侵報(bào)警、姅線報(bào)警等,都是基于移動(dòng)偵測(cè)衍生而來(lái)。原因是移動(dòng)偵測(cè)的計(jì)算量小,可以進(jìn)行實(shí)時(shí)監(jiān)控。然而這類檢測(cè)算法過(guò)于簡(jiǎn)單,無(wú)法處理如光線變化、樹(shù)影移動(dòng)以及來(lái)往車輛等情景,誤報(bào)頻發(fā)。
[0006]另一類技術(shù)方案是通過(guò)使用視覺(jué)算法進(jìn)行比較復(fù)雜的計(jì)算,如行人識(shí)別、人臉識(shí)別等技術(shù),然而此類技術(shù)計(jì)算量大,如果需要實(shí)時(shí)計(jì)算,則需要配置昂貴的硬件,無(wú)法普及應(yīng)用。此外,此類算法對(duì)環(huán)境要求較高,很難適用于任何類型的環(huán)境,應(yīng)用范圍較窄。
[0007]對(duì)于視頻存儲(chǔ)功能,傳統(tǒng)的DVR或NVR將視頻存在本地,然而一旦發(fā)生入室盜竊,則視頻證據(jù)容易被毀掉。云監(jiān)控服務(wù)商將所有視頻內(nèi)容傳到云端,會(huì)導(dǎo)致嚴(yán)重的隱私泄露問(wèn)題,而且大量的視頻文件上傳,不僅占用帶寬資源,用戶還需要向云監(jiān)控服務(wù)商支付高昂的費(fèi)用。
[0008]所以,如何很好地解決現(xiàn)有的緊急報(bào)警功能和視頻存儲(chǔ)功能所存在的問(wèn)題,實(shí)現(xiàn)及時(shí)準(zhǔn)確報(bào)警以及安全有效視頻存儲(chǔ),成為人們最關(guān)注的問(wèn)題。
【發(fā)明內(nèi)容】
[0009]針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明所要解決的技術(shù)問(wèn)題在于提供一種基于本地計(jì)算的視頻監(jiān)控方法。
[0010]為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明采用下述的技術(shù)方案:
[0011]一種基于本地計(jì)算的視頻監(jiān)控方法,包括如下步驟:
[0012]SI,實(shí)時(shí)讀取局域網(wǎng)內(nèi)的視頻流,將讀取的視頻流分解成多幀圖像;
[0013]S2,計(jì)算當(dāng)前幀和上一幀的幀差,當(dāng)幀差大于單次幀差報(bào)警閾值時(shí),對(duì)兩幀的幀差圖像進(jìn)行邊緣提取,如果不能提取出邊緣,忽略所述幀差,否則觸發(fā)報(bào)警,報(bào)警次數(shù)加I ;
[0014]S3,根據(jù)監(jiān)控視頻采集單位時(shí)間內(nèi)發(fā)生報(bào)警的次數(shù)判斷是否推送報(bào)警,如果推送報(bào)警,則將引發(fā)報(bào)警的視頻片段保存在本地,同時(shí)傳到云端備份,并向用戶推送報(bào)警;如果判定不推送報(bào)警,則僅將視頻片段保存在本地。
[0015]其中較優(yōu)地,在步驟S2中,計(jì)算當(dāng)前幀和上一幀的幀差,根據(jù)幀差判斷是否觸發(fā)報(bào)警,包括如下步驟:
[0016]S21,將整個(gè)監(jiān)控區(qū)域分解成多個(gè)柵格;
[0017]S22,為每個(gè)柵格賦予活性,根據(jù)獲取的圖像,判斷監(jiān)控區(qū)域中的柵格變化,并統(tǒng)計(jì)其變化數(shù)量,如果前后兩幀圖像柵格變化數(shù)量小于設(shè)定的閾值,則不觸發(fā)報(bào)警;否則,轉(zhuǎn)向步驟S23 ;
[0018]S23,對(duì)兩幀圖像的幀差進(jìn)行邊緣提取,如果不能提取出所述邊緣,則不觸發(fā)報(bào)警;否則觸發(fā)報(bào)警。
[0019]其中較優(yōu)地,在步驟S22中,為每個(gè)柵格賦予活性,并實(shí)時(shí)判斷柵格的活性狀態(tài),包括如下步驟:
[0020]為每個(gè)柵格設(shè)定狀態(tài)值,當(dāng)柵格處于激活狀態(tài)時(shí),狀態(tài)值為1,當(dāng)柵格處于失活狀態(tài)時(shí),狀態(tài)值為O ;
[0021]當(dāng)在本地實(shí)時(shí)讀取局域網(wǎng)內(nèi)的視頻流時(shí),將整個(gè)監(jiān)控區(qū)域內(nèi)的柵格的狀態(tài)值調(diào)整為I,使每個(gè)柵格處于激活狀態(tài);
[0022]判斷距離上一次柵格的活性狀態(tài)發(fā)生變化的時(shí)間,如果時(shí)間小于更新間隔時(shí)間,則柵格活性狀態(tài)不發(fā)生變化;
[0023]如果時(shí)間大于或等于更新間隔時(shí)間,判斷更新間隔時(shí)間內(nèi)柵格變化次數(shù),如果柵格變化次數(shù)大于閾值,則改變柵格的活性狀態(tài)。
[0024]其中較優(yōu)地,在步驟S22中,根據(jù)柵格的變化情況判斷是否觸發(fā)報(bào)警,包括如下步驟:
[0025]S221,當(dāng)讀入一幀圖像時(shí),根據(jù)所述圖像的顏色通道判斷攝像機(jī)的狀態(tài),如果三通道數(shù)值相同則監(jiān)控時(shí)間是夜晚,否則監(jiān)控時(shí)間是白天;
[0026]S222,根據(jù)攝像機(jī)的狀態(tài)選擇要更新和計(jì)算的權(quán)重和休眠時(shí)間;
[0027]S223,根據(jù)柵格像素變化比例判斷柵格的變化,當(dāng)柵格變化時(shí),柵格變化次數(shù)加I,并統(tǒng)計(jì)總的激活區(qū)域變化柵格數(shù)量以及總的變化柵格數(shù)量,其中,總的激活區(qū)域變化柵格數(shù)量=總的變化柵格數(shù)量-處于失活狀態(tài)的柵格數(shù)量;
[0028]S224,如果總的激活區(qū)域變化柵格數(shù)量小于設(shè)定的報(bào)警閾值,則不觸發(fā)報(bào)警。
[0029]其中較優(yōu)地,在步驟S223判斷柵格的狀態(tài)是否發(fā)生變化之前,將讀入的一幀圖像轉(zhuǎn)換為單通道灰度圖像。
[0030]其中較優(yōu)地,在步驟S3中,根據(jù)監(jiān)控視頻采集單位時(shí)間內(nèi)發(fā)生報(bào)警的次數(shù)判斷是否推送報(bào)警,判斷過(guò)程包括如下步驟:
[0031]S31,監(jiān)控視頻采集單位時(shí)間內(nèi)觸發(fā)報(bào)警的次數(shù),如果觸發(fā)報(bào)警的次數(shù)小于等于噪點(diǎn)干擾閾值,則判定不推送報(bào)警;如果觸發(fā)報(bào)警的次數(shù)大于噪點(diǎn)干擾閾值,則轉(zhuǎn)向步驟S32 ;
[0032]S32,進(jìn)一步判斷是否是由于攝像機(jī)狀態(tài)切換引起的報(bào)警,如果是則判定不推送報(bào)警;否則轉(zhuǎn)向步驟S33 ;
[0033]S33,如果報(bào)警次數(shù)大于噪點(diǎn)干擾閾值小于等于推送報(bào)警閾值,則判定不推送報(bào)警,將該視頻片段保存在本地,如果大于推送報(bào)警閾值則判定推送報(bào)警,將引發(fā)報(bào)警的視頻片段保存在本地,同時(shí)傳到云端備份,并向用戶推送報(bào)警。
[0034]其中較優(yōu)地,在步驟S32中,進(jìn)一步判斷是否是由于攝像機(jī)狀態(tài)切換引起的報(bào)警,包括如下步驟:
[0035]獲取視頻采集單位時(shí)間內(nèi)所有視頻幀的顏色通道,并對(duì)相鄰兩幀的顏色通道值進(jìn)行比較;
[0036]如果在視頻采集單位時(shí)間內(nèi)僅有一組相鄰兩幀圖像的顏色通道值不同,并且顏色通道值不同的兩幀圖像在所述視頻采集單位時(shí)間的前20幀內(nèi),則判定是由于攝像機(jī)狀態(tài)切換引起的報(bào)警,忽略此次報(bào)警;
[0037]否則,判定不是由于攝像機(jī)狀態(tài)切換引起的報(bào)警。
[0038]其中較優(yōu)地,在步驟S3中,根據(jù)監(jiān)控視頻采集單位時(shí)間內(nèi)發(fā)生報(bào)警的次數(shù)判斷是否報(bào)警還包括如下步驟:
[0039]S34,每進(jìn)行一個(gè)更新間隔時(shí)間后,更新每個(gè)柵格的權(quán)重以及休眠時(shí)間狀態(tài)。
[0040]其中較優(yōu)地,在步驟S34中,每進(jìn)行一個(gè)更新間隔時(shí)間后,更新每個(gè)柵格的權(quán)重以及休眠時(shí)間狀態(tài),包括如下步驟:
[0041]S341,對(duì)于任意一個(gè)柵格,判斷所述格柵的休眠時(shí)間,如果所述休眠時(shí)間不為0,則所述休眠時(shí)間減去一個(gè)更新間隔的時(shí)間;
[0042]S342,柵格的休眠時(shí)間為0,或者經(jīng)過(guò)步驟S341后休眠時(shí)間為0,則判斷格柵的變化次數(shù),并根據(jù)柵格的變化次數(shù)調(diào)整權(quán)重和休眠時(shí)間;如果所述柵格的變化次數(shù)小于per1dUpThres*2~ I weight I,則權(quán)重加 I ;所述柵格休眠時(shí)間延長(zhǎng) baseTime*2~ | weight | ;如果所述柵格的變化次數(shù)大于per1dDownThres*2~ weight |,則權(quán)重減1,所述柵格休眠時(shí)間增加 baseTime*2~ I weight I ;
[0043]S343,如果所述柵格的權(quán)重為0,則將所述柵格的休眠時(shí)間也置為O ;否則,延長(zhǎng)所述柵格的休眠時(shí)間為2~ I weight I *baseTime*unitSize,并將所述柵格的變化次數(shù)置為O ;
[0044]其中,weight為權(quán)重,其值小于等于O ;per1dUpThres為基礎(chǔ)權(quán)重上升閾值;per1dDownThres為基礎(chǔ)權(quán)重下降閾值;baseTime為基礎(chǔ)休眠時(shí)間;unitSize為更新間隔。
[0045]其中較優(yōu)地,當(dāng)用戶走入監(jiān)控區(qū)域后,報(bào)警監(jiān)控關(guān)閉,包括如下步驟:
[0046]當(dāng)用戶允許通過(guò)手機(jī)接收?qǐng)?bào)警時(shí),記錄手機(jī)的MAC地址;
[0047]當(dāng)啟動(dòng)視頻監(jiān)控后,掃描路由器內(nèi)網(wǎng)的設(shè)備的MAC地址;
[0048]當(dāng)用戶返回時(shí),手機(jī)連接W1-Fi,此