999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向高清視頻監控系統的實時運動檢測算法

2014-06-07 05:53:25蔣榮欣
計算機工程 2014年11期
關鍵詞:背景檢測

彭 爽,蔣榮欣

(浙江大學浙江省網絡多媒體技術研究重點實驗室,杭州310027)

面向高清視頻監控系統的實時運動檢測算法

彭 爽,蔣榮欣

(浙江大學浙江省網絡多媒體技術研究重點實驗室,杭州310027)

針對高清視頻監控系統中精確運動檢測的高實時性需求,提出一種基于計算統一設備架構(CUDA)的運動檢測算法。采用一種改進幀差與背景差分相結合的方法,減少背景更新干擾,提升運動檢測的精確性。在CUDA內進行視頻運動檢測計算,避免傳統圖形處理器硬解碼后視頻數據在顯示內存與CPU之間傳輸的問題。運用塊內多線程合并訪問共享內存的方式,減少52.9%全局內存訪問量,解決CUDA大規模訪問全局內存延遲較大的問題。實驗結果表明,該算法在保證準確性的同時,針對高清視頻每秒可傳輸52.6幀,能夠滿足實時性要求。

視頻監控;運動檢測;幀差法;背景差分法;硬解碼;合并訪問

1 概述

運動檢測是監控領域的一個重要課題。特別是在需要安全防范的場合下,運動檢測能在發生異常情況時有效幫助跟蹤定位運動目標,自動報警或自動存儲視頻,是監控系統達到智能化的必要手段[1]。然而,隨著高清視頻的普及化,視頻的解碼及運動檢測很難達到精確性與實時性兼顧的要求。1080P分辨率的H264視頻碼流,通常碼率為8 Mb/s,幀率為25 f/s,意味著監控系統解碼的負荷量為8 Mb/s,運動檢測計算的負荷量為320 Mb/s,對實時精確地檢測運動目標構成了極大的挑戰[2]。

視頻監控系統運動偵測主要包含視頻解碼和運動檢測計算。視頻解碼分為軟解碼和硬解碼,高清視頻的軟解碼和運動檢測對CPU性能挑戰大,無法達到實時性需求。傳統的視頻硬解碼和運動檢測存在以下問題:(1)運動檢測算法主要有光流法、背景差分法、幀差法[3]。這3種算法都存在很大的局限性。光流法計算復雜,背景差分法對光線等背景變化敏感,幀差法無法提取完整的運動目標及內部紋理;(2)解碼后的數據存放于顯示內存中,而顯示內存與主存之間的數據傳輸速度受限于總線的傳輸速度[4]。

針對上述問題,本文提出基于CUDA的硬解碼及運動檢測算法,具體內容包括:(1)采用一種改進的幀差與背景差分結合的方法,完整地提取運動目標,有效避免背景誤判;(2)在CUDA環境下進行運動檢測計算,避免了顯示內存與內存傳輸的瓶頸問題;(3)針對CUDA對全局內存訪問延遲大的問題,采用塊(block)內多線程共享內存,一個線程處理4×4個像素,合并訪問其鄰域,降低運算復雜度。

2 改進前后的算法對比

2.1 傳統的運動檢測算法

背景差分法通過計算當前幀和設定背景的特征差,進行背景消去,然后與預設閾值作比較。若所得到的像素數大于預設閾值,則判定被監視場景中有運動物體,從而得到運動目標[5]。其優點是原理和算法設計簡單,但是對光線變化敏感,同時容易忽略與背景亮度相似的運動物體。幀差法是采用計算相鄰幀差絕對值是否大于閾值來檢測移動物體。其優點是算法簡單,對光線變化不敏感;缺點是無法完整地提取運動目標,且如果選擇幀間隔過大則判斷缺乏準確,幀間隔小則計算量較大[6]。在運動分量檢測后,通常畫面的噪點較多,需進行降噪操作以保證檢測的精確度[7]。

2.2 改進的運動檢測算法

針對背景差分法對背景變化敏感,幀差法無法完整提取運動目標等問題,本文采用一種改進的基于幀差和背景差分結合的運動檢測算法。將當前幀與上一參考幀相減,將所得圖像與背景差分后圖像進行位或運算后可準確提煉出運動目標所在區域。隨后針對存在移動物體的8×8宏塊單元進行開運算,去掉毛刺,去掉孤立的噪點像素[8-9]。將運動目標以外的區域更新到背景中,如圖1所示。

圖1 改進的運動檢測算法

在圖1中,It(x,y)是當前幀,I(t-1)(x,y)是上一參考幀,I(t-1)(x,y)為上一次更新過的背景圖像,其表達方式為:

將當前幀與參考幀進行絕對值減法運算:

再將I(t,m)(x,y)與B(t-1)(x,y)進行差分運算,后得到背景差分后運動區域。將此區域與幀差所得運動區域疊加,可得到完整的運動物體。圖像根據d閾值進行二值化,將運動區域與非運動區域區分出來:

此時運動區域尚有圖像噪點。利用圖像開運算提取運動目標骨干信息,去掉毛刺,減少孤立噪點的影響:

同時,將運動區域按8×8宏塊存儲,若當前區域內有運動像素,則置為255,反之置為0:

該算法相比幀差法能更完整地檢測到運動目標,并能準確完整地反映運動物體的位置與移動量。同時相比背景差分法降低了光線等因素的影響,可精確地獲得運動物體的形狀與內部紋理。

3 視頻運動檢測算法設計與實現

3.1 CUDA硬解碼及運動檢測算法

本文選取NVIDA公司提供的CUDA開發包進行實驗。將網絡碼流解析后組成完整視頻幀,送入GPU進行解碼,解碼出來的數據為NV12或者YV12格式。這2種數據格式都屬于YUV格式,其Y分量都是連續的,NV12的U,V分量為交叉分布,YV12的U,V分量為連續分布[10]。而運動檢測算法通常只需取像素點的亮度分量,即Y分量進行計算。獲取Y分量后進行運動檢測計算,計算完成后將YUV數據格式轉化成顯卡可渲染的RGB數據進行顯示,同時更新背景幀。通知業務層進行運動偵測的后處理,如自動報警或自動存儲等,如圖2所示。

GPU解碼后的數據存放于紋理內存中,即顯示內存[11]。而顯示內存與內存間的數據傳輸速度為當前的難題。基于CUDA的運動檢測計算是直接從紋理內存讀取數據,有效地避免這一瓶頸。

圖2 視頻監控系統運動檢測算法流程

在CUDA中將待檢測的Y圖像分量作幀差與背景差分運算,得到的2個運動區域進行疊加,利用開運算將背景中的毛刺去除,提取準確的運動目標。將運動區域以外的圖像塊更新到背景中,流程如圖3所示。

圖3 CUDA環境內數據處理流程

3.2 CUDA數據處理布局

CUDA架構的內存分為寄存器、常量內存、紋理內存、共享內存、本地內存和全局內存等。共享內存讀寫速度相當快,一般為1個~2個GPU時鐘周期,而全局內存讀寫速度高達400個GPU時鐘周期左右[12]。共享內存要求數據有局部性重用(一個block內共享),且每個GPU處理單元共享內存最大限制為48 KB,所以不適用針對高清圖像的多步處理;全局內存容量大,適合圖像批處理數據的存儲。為了提高訪問全局存儲器的效率,本文采用了一種稱為合并訪問的機制來加速全局存儲器的訪問[13]。

當運動檢測計算時,大量的訪問全局內存存在冗余性,效率較低。因此,本文采用一種共享內存和全局存儲器合并訪問的方式。同一個塊內線程可訪問同一共享內存,每個線程可將當前待處理數據和上下鄰域數據存儲至共享內存中,如圖4所示。當所有線程讀取完畢后,線程處理時可直接從共享內存中獲取需要訪問的鄰域數據。為了能夠高效地訪問顯存,讀取和存儲必須對齊,寬度為4 Byte。如果沒有正確的對齊,讀寫將被編譯器拆分為多次操作,極大地影響效率[14]。計算每個輸出點時,需要取其鄰域的8個像素,相鄰像素處理時讀取到的數據有重疊(如圖5(a)所示),為了避免重復訪問所以每個線程處理4×4個像素,計算此16個像素點時,共訪問36個鄰域像素值,為4字節對齊(如圖5(b)所示)。4×4像素計算時,每個線程平均需要訪問全局內存68次,而采用共享內存后,每個線程平均訪問全局內存次數降低至36次,節省了52.9%的全局內存訪問。

圖4 同一塊內共享內存存儲數據

圖5 單數據處理和塊數據處理方式對比

運用CUDA進行塊內的計算時,需要通過<<<numBlocks,threadPerBlock> > > 進 行 內 核數(numBlocks)和塊內線程數(threadsPerBlock)的配置[12]。針對上文中提到的每次處理4×4個數據,每次訪問到的數據x坐標idx,y坐標idy分別為:

其中,blockIdx為當前塊的索引號;blockDim表示每個塊的維度;threadIdx為當前塊內線程索引號。

4 實驗結果及分析

該算法實驗環境的 GPU為 NVIDIA Geforce 8400 GS(computer capability:1.1),CPU為Intel(R) Core(TM)2 Duo。網絡視頻分辨率分別設置為720×480像素,1 280×720像素和1 920×1 080像素。實驗數據如圖6所示。其中,圖6(a)為上一次更新過的背景圖像;圖6(b)為上一幀圖像;圖6(c)為當前幀;圖6(d)為圖6(a)與圖6(c)進行差分閾值二值化的圖像;圖6(e)為圖6(b)與圖6(c)進行幀差閾值二值化的圖像;圖 6(f)為圖 6(d)和圖6(e)圖像位或后所得圖像;圖6(g)為圖6(f)進行開運算后的圖像;圖6(h)為提取的運動宏塊,此運動宏塊以外的區域進行背景更新。

圖6 高清監控運動檢測實驗輸出

實驗結果表明,本文采取的改進幀差與背景差分結合的方法可以準確檢測出運動目標的輪廓以及內部紋理,將圖像進行開運算后去除了孤立噪點,消除了誤判斷成運動目標的小物體。所以本文中的基于CUDA的解碼及運動檢測算法保證了輸出數據的精確度。

在相同環境下,運用相同算法對比CPU和GPU的運動檢測計算,實驗數據如表1所示,其中,總時間比為CPU運動檢測時間與GPU運動檢測的時間之比。720×480像素分辨率下平均碼率為1.5 Mb/s, I幀大小為50 Kb,幀率為25 f/s。1 280×720像素分辨率平均碼率為4 Mb/s,I幀大小平均為100 Kb,幀率為25 f/s。1 920×1 080像素分辨率平均碼率為8 Mb/s,I幀大小平均為150 Kb,幀率為25 f/s。表1中為不同分辨率的視頻解碼及運動檢測所需時間的平均數據。

表1 不同分辨率的視頻解碼及運動檢測所需時間對比

表1數據顯示,針對720×480像素,1 280×720像素,1 920×1 080像素分辨率的視頻,基于CUDA的硬解碼及運動檢測與CPU軟解碼和運動檢測相比,總時間分別縮短了5.2倍、6.0倍、10.4倍。

從表2數據可看出,基于CUDA的運動檢測計算運用本文中優化后的內存訪問方案較優化前平均時間縮短了1.91倍。表中的時間比表示優化前的檢測時間與優化后的檢測時間之比。針對1 080 P分辨率,基于CUDA的視頻運動檢測方法幀率可達52.6 f/s,滿足了高清智能監控系統的實時性要求。

表2 不同分辨率的GPU運動檢測優化前后時間對比

5 結束語

本文設計了一個在高清智能監控系統中的環境實時運動檢測算法。該算法兼顧了高清視頻運動檢測的準確性與實時性。實驗結果表明,本文提出的運動檢測算法精度高,計算復雜度較低。在GPU內進行圖像運動檢測計算可避免傳統GPU硬解碼后顯示內存中視頻數據與CPU之間的傳輸瓶頸問題。在CUDA內部的運動檢測算法采用了多線程共享內存與合并訪問的方式,減少了數據訪問延遲,保證了高清智能監控系統的實時性要求。

[1] Hu Weiming,Tan Tieniu,Wang Liang,et al.A Survey on Visual Surveillance of Object Motion and Behaviors[J].IEEE Transactions on Systems,Man,and Cybernetics,2004,34(3):334-352.

[2] Scotti G,Marcenaro L,Coelho C,et al.Dual Camera Intelligent Sensor for High Definition 360 Degrees Surveillance[J].IEEE Proceedings on Vision,Image and Signal Processing,2005,152(2):250-257.

[3] 周 游,劉艷瀅,王春民,等.幾種人體運動檢測算法的比較分析[J].吉林大學學報:信息科學版,2009,27 (6):652-657.

[4] Padalikar S,Diamos G.Exploring theLatency and Bandwidth Tolerance of Cuda Applications[Z].2009.

[5] McHugh J M,Konrad J,Saligrama V,et al.Foregroundadaptive Background Subtraction[J].IEEE Signal Processing Letters,2009,16(5):390-393.

[6] Davide A,Matteucci M,Naccari M.A Revaluation of Frame Difference in Fast and Robust Motion Detection[C]//Proc.of the 4th ACM International Workshop on Video Surveillance and Sensor Networks.New York, USA:ACM Press,2006:215-218.

[7] Gonzalez R C,Wintz P.Digital Image Processing[M].2nd ed.New York,USA:Academic Press,1987.

[8] Yang J,Tian M.Denoising of Coal Flotation Froth Image Using Opening and Closing Filters with Area Reconstruction and Alternating Order Filtering[M]// Deng Hepu,Miao Duoqian,Lei Jingsheng.Artificial Intelligence and ComputationalIntelligence.Berlin, Germany:Springer,2011:376-382.

[9] Rane M A.Fast Morphological Image Processing on GPU Using CUDA[D].Pune,India:Pune University, 2013.

[10] Han Bo,Zhou Bingfeng.Efficient Video Decoding on GPUsby PointBased Rendering[C]//Proc.of Eurographics Symposium on Graphics Hardware. Vienna,Austria:ACM Press,2006:79-86.

[11] Wang Guohui,Wu M,Sun Yang,et al.A Massively Parallel Implementation of QC-LDPC Decoder on GPU[C]//Proc.of the 9th Symposium on Application Specific Processors.[S.l.]:IEEE Press,2011:82-85.

[12] NVIDIA.CUDA Programming Guide Version 2.1[M].Santa Clara,USA:NVIDIA Corporation,2009.

[13] Rao Chao,Liu Shuoqi.Research of CUDA in Intelligent Visual Surveillance Algorithms[C]//Proc.of the 3rd Chinese Conference on Intelligent Visual Surveillance.[S.l.]:IEEE Press,2011:73-76.

[14] NVIDIA.The CUDA Compiler Driver NVCC[M].Santa Clara,USA:NVIDIA Corporation,2009.

編輯 顧逸斐

Real-time Motion Detection Algorithm for High Definition Video Surveillance System

PENG Shuang,JIANG Rong-xin
(Network Multimedia Technology Research Laboratory of Zhejiang Province,Zhejiang University,Hangzhou 310027,China)

Aiming at high real-time demand for accurate motion detection in high-definition video surveillance system, this paper proposes an efficient motion detection algorithm based on Compute Unified Device Architecture(CUDA).By using an improved frame difference and background subtraction method of combining,background interference update is reduced and the accuracy of motion detection is enhanced.By performing video motion detection calculations in the CUDA, the traditional Graphic Processing Unit(GPU)hard decoded video data avoid storing in display memory transferred to CPU,which is the bottleneck problem.This paper uses multiple threads within a block coalesced access shared memory, reduces the amount by 52.9% of the global memory access,solves large-scale access to global memory latency CUDA larger problem.Experimental results show that for high-definition video monitoring system,the proposed motion detection algorithm can reach 52.6 frames per second,ensuring the accuracy as well,and can meet the real-time requirements.

video surveillance;motion detection;frame difference method;background subtraction method;hard decode; coalesced access

1000-3428(2014)11-0288-04

A

TP311.1

10.3969/j.issn.1000-3428.2014.11.057

浙江省級重點科技創新團隊基金資助項目(2011R09021-02)。

彭 爽(1989-),女,碩士研究生,主研方向:網絡多媒體,并行編程;蔣榮欣,副研究員。

2013-11-07

2013-12-02E-mail:vivo_peng@126.com

中文引用格式:彭 爽,蔣榮欣.面向高清視頻監控系統的實時運動檢測算法[J].計算機工程,2014,40(11):288-291.

英文引用格式:Peng Shuang,Jiang Rongxin.Real-time Motion Detection Algorithm for High Definition Video Surveillance System[J].Computer Engineering,2014,40(11):288-291.

猜你喜歡
背景檢測
“新四化”背景下汽車NVH的發展趨勢
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
“幾何圖形”檢測題
“角”檢測題
《論持久戰》的寫作背景
當代陜西(2020年14期)2021-01-08 09:30:42
黑洞背景知識
晚清外語翻譯人才培養的背景
小波變換在PCB缺陷檢測中的應用
主站蜘蛛池模板: 亚洲精选高清无码| 亚欧乱色视频网站大全| 国产精品高清国产三级囯产AV| 国产丝袜啪啪| 日韩国产综合精选| 人妻精品全国免费视频| 玖玖精品在线| 国产一区二区精品福利| 中文字幕中文字字幕码一二区| 5388国产亚洲欧美在线观看| 一区二区三区在线不卡免费| 国产黑丝一区| 亚洲国产系列| 久久成人国产精品免费软件| 人妻21p大胆| 国产不卡在线看| 国产精品成人不卡在线观看| 午夜综合网| 欧美一区二区啪啪| 天堂久久久久久中文字幕| 亚洲无码久久久久| 国产精品19p| 久热中文字幕在线| 中文字幕欧美成人免费| 日本高清免费一本在线观看 | 99人体免费视频| 五月婷婷中文字幕| 欧美中文字幕在线二区| 最新国产精品第1页| 亚洲swag精品自拍一区| 国产午夜人做人免费视频中文 | 国产成人1024精品下载| 亚洲日韩国产精品无码专区| 久久性妇女精品免费| 亚洲天堂免费| 亚洲爱婷婷色69堂| 亚洲人成在线精品| 成年人午夜免费视频| 欧美日韩成人| 超薄丝袜足j国产在线视频| 国产毛片高清一级国语 | 久久99精品久久久久久不卡| 五月婷婷综合在线视频| 欧美一级片在线| 在线视频精品一区| 欧美日本激情| 欧美区日韩区| 99热线精品大全在线观看| 国产精品无码AⅤ在线观看播放| 3p叠罗汉国产精品久久| 精品久久久久成人码免费动漫| 男女男精品视频| 无码日韩精品91超碰| 日本午夜精品一本在线观看| 97se亚洲综合在线天天| 国产精品美女自慰喷水| 一级黄色网站在线免费看| 毛片卡一卡二| 色婷婷在线影院| 欧美97欧美综合色伦图| 亚洲第一网站男人都懂| 国产亚洲精品va在线| 一本无码在线观看| 亚洲精品大秀视频| 国产成人8x视频一区二区| 国产一级毛片高清完整视频版| 白浆视频在线观看| 一级成人a做片免费| 精品三级在线| a级毛片免费在线观看| 全色黄大色大片免费久久老太| 欧美三级视频网站| 亚洲欧美日韩中文字幕在线| 五月天香蕉视频国产亚| 欧美国产精品不卡在线观看| 国产美女精品一区二区| 色综合中文| 国产一区三区二区中文在线| 亚洲国产中文欧美在线人成大黄瓜| 日日拍夜夜嗷嗷叫国产| 国产91色在线| 国产精品国产主播在线观看|