国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于分布場(chǎng)理論的行人檢測(cè)算法研究*

2017-05-12 07:56:56薛露劉博翰
自動(dòng)化與信息工程 2017年1期
關(guān)鍵詞:彩色圖像線程行人

薛露 劉博翰

(1.廣東省科技基礎(chǔ)條件平臺(tái)中心 2.華南理工大學(xué)電子與信息學(xué)院)

基于分布場(chǎng)理論的行人檢測(cè)算法研究*

薛露1劉博翰2

(1.廣東省科技基礎(chǔ)條件平臺(tái)中心 2.華南理工大學(xué)電子與信息學(xué)院)

研究一種基于分布場(chǎng)理論的行人檢測(cè)算法,首先獲取深度圖像;其次混合高斯背景建模并初步提取運(yùn)動(dòng)行人前景;然后從前景中提取分布場(chǎng)后計(jì)算最小矩形包絡(luò);最后提取行人。結(jié)合OpenCV現(xiàn)有的GPU庫(kù)對(duì)程序進(jìn)行CUDA并行加速,并分別在PC平臺(tái)和嵌入式平臺(tái)NVIDIA Jetson TK1上實(shí)現(xiàn)。實(shí)驗(yàn)結(jié)果表明:經(jīng)過(guò)CUDA并行化后,程序在PC平臺(tái)和NVIDIA Jetson TK1平臺(tái)上都獲得了顯著加速效果。

行人檢測(cè);分布場(chǎng);CUDA

0 引言

目前,視覺(jué)目標(biāo)檢測(cè)與跟蹤是計(jì)算機(jī)視覺(jué)領(lǐng)域研究熱點(diǎn)之一,可應(yīng)用于突發(fā)事件的物體跟蹤、視頻預(yù)警監(jiān)控、人流跟蹤等社會(huì)安全和應(yīng)急管理領(lǐng)域。有效提高目標(biāo)的檢測(cè)速度是目標(biāo)檢測(cè)效果的關(guān)鍵。行人檢測(cè)作為目標(biāo)檢測(cè)的一個(gè)重要課題,具有算法復(fù)雜、計(jì)算量大等特點(diǎn)。隨著圖形處理器(graphic processing unit,GPU)的快速發(fā)展,基于GPU的目標(biāo)檢測(cè)系統(tǒng)通過(guò)并行計(jì)算能夠極大提升計(jì)算速度。NVIDIA Jetson TK1是嵌入式GPU微型電腦,使用編程語(yǔ)言統(tǒng)一計(jì)算設(shè)備架構(gòu)(compute unified device architecture,CUDA)進(jìn)行驅(qū)動(dòng)[1]。為達(dá)到實(shí)時(shí)檢測(cè)的要求,將GPU用于行人檢測(cè)是一種提升檢測(cè)速度的可行方案。本文研究一種基于分布場(chǎng)理論的行人檢測(cè)算法,并分別在PC平臺(tái)和NVIDIA Jetson TK1嵌入式開(kāi)發(fā)平臺(tái)實(shí)現(xiàn)算法的CUDA并行加速,通過(guò)實(shí)驗(yàn)數(shù)據(jù)分析,驗(yàn)證經(jīng)過(guò)CUDA并行化后,程序在不同平臺(tái)的加速效果,為目標(biāo)檢測(cè)提供技術(shù)支持。

1 行人檢測(cè)算法原理

行人檢測(cè)算法基于分布場(chǎng)理論實(shí)現(xiàn)。分布場(chǎng)作為一種表示圖像的方法,其本質(zhì)上是一個(gè)概率分布的數(shù)組[2],每個(gè)像素都是一個(gè)“場(chǎng)”。分布定義了一個(gè)像素取每一個(gè)特征值的概率。如果特征空間是灰度范圍內(nèi)的強(qiáng)度,那么每個(gè)像素都是一個(gè)取值從0~255的概率分布。一個(gè)分布場(chǎng)代表一個(gè)(2+N)維的矩陣d,其前2維代表圖像的寬度和高度,另外的N維代表所選擇的特征空間。將一個(gè)圖像分解成分布場(chǎng)的結(jié)果是在每個(gè)像素點(diǎn)位置上的一個(gè)克羅內(nèi)克函數(shù)。由此可知,分布場(chǎng)表示圖像的原始信息,同時(shí)還將圖像擴(kuò)展到高維空間。

行人檢測(cè)算法通過(guò)深度攝像頭獲取深度圖像進(jìn)行檢測(cè),并將檢測(cè)結(jié)果反映到對(duì)應(yīng)的彩色圖像上。首先,對(duì)獲取的深度圖進(jìn)行腐蝕膨脹等預(yù)處理操作;其次,計(jì)算其分布場(chǎng);然后,通過(guò)輪廓提取、計(jì)算矩形包絡(luò)等一系列圖像處理;最后,得到檢測(cè)結(jié)果。從數(shù)據(jù)格式來(lái)看,深度圖像屬于灰度圖像,其灰度值(0~255)反映了物體的深度信息,即與攝像頭距離的遠(yuǎn)近。灰度值越高,物體離攝像頭距離越近。程序從深度攝像頭獲取的深度圖像大小為320×240像素。為縮減數(shù)據(jù)規(guī)模,以8個(gè)灰度值為一層,那么一幀深度圖像計(jì)算得到的分布場(chǎng)規(guī)模為320×240×32像素。大規(guī)模矩陣運(yùn)算通過(guò)CUDA并行加速,可提升檢測(cè)速度。行人檢測(cè)加速算法流程如圖1所示。

圖1 行人檢測(cè)加速算法流程

2 行人檢測(cè)算法建模過(guò)程

行人檢測(cè)加速算法采用開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù)(open source computer vision library,OpenCV)實(shí)現(xiàn)圖像處理與計(jì)算。為進(jìn)一步利用GPU性能對(duì)程序進(jìn)行加速,大部分OpenCV函數(shù)調(diào)用對(duì)應(yīng)的GPU版本。分布場(chǎng)的計(jì)算通過(guò)編寫(xiě)的CUDA kernel函數(shù)實(shí)現(xiàn)。OpenCV使用的圖像容器GpuMat可與kernel函數(shù)無(wú)縫對(duì)接。行人檢測(cè)加速算法計(jì)算過(guò)程:

1) 獲取圖像

采用華碩ASUS XtionPROLive深度攝像頭獲取深度圖像與彩色圖像。在算法中通過(guò)調(diào)用OpenNI庫(kù)中VideoFrameRef類(lèi)的成員函數(shù)readFrame(),從設(shè)備獲取一幀深度圖像與一幀彩色圖像,并轉(zhuǎn)換成OpenCV的數(shù)據(jù)格式Mat。其中深度圖像的數(shù)據(jù)深度為CV_16UC1,彩色圖像的數(shù)據(jù)深度為CV_8UC3。深度圖像需進(jìn)行歸一化處理,加強(qiáng)深度效果,彩色圖像需進(jìn)一步將色彩空間轉(zhuǎn)換為BGR。獲取圖像流程如圖2所示。

圖2 獲取圖像流程

2) 圖像預(yù)處理

對(duì)得到的深度圖像進(jìn)行預(yù)處理,初步提取行人。為調(diào)用GPU庫(kù)進(jìn)行計(jì)算,首先創(chuàng)建GpuMat并將深度圖像上傳到顯存中,并調(diào)用GPU庫(kù)中的混合高斯背景建模MOG_GPU提取前景;然后對(duì)提取的前景圖像進(jìn)行腐蝕膨脹處理,將圖像中的噪點(diǎn)濾除;處理后的圖像作為掩膜與原始深度圖像按位相與,即可從深度圖像中初步提取行人。預(yù)處理流程如圖3所示。

圖3 預(yù)處理流程

3) 計(jì)算分布場(chǎng)

程序中計(jì)算的分布場(chǎng)是320×240×32的三維矩陣。為便于訪問(wèn)顯存,將其組織為32個(gè)320×240的二維矩陣并以8×4的形式合并存儲(chǔ),如圖4所示。

圖4 分布場(chǎng)在顯存中的存儲(chǔ)形式

考慮硬件利用率問(wèn)題,以16×16的形式組織每一個(gè)線程塊[3],整個(gè)線程網(wǎng)格的線程總數(shù)對(duì)應(yīng)像素總數(shù)為320×240=76800,網(wǎng)格中一共有300個(gè)線程塊。用于計(jì)算分布場(chǎng)的CUDA核函數(shù)的線程網(wǎng)格如圖5所示。

圖5 CUDA核函數(shù)調(diào)用的線程網(wǎng)格結(jié)構(gòu)

4) 分布場(chǎng)后處理

從顯存下載計(jì)算后的分布場(chǎng),并對(duì)所有32層分布場(chǎng)的每一層都作同樣處理。以第layer層為例,首先從內(nèi)存中提取出第layer層分布場(chǎng)數(shù)據(jù);然后調(diào)用findContours函數(shù)對(duì)分布場(chǎng)提取輪廓;再使用boundingRect函數(shù)計(jì)算其最小矩形包絡(luò)[4],預(yù)設(shè)面積閾值minarea和寬高比閾值rectrate,用以判斷矩形包絡(luò)是否符合要求;最后使用groupRectangle函數(shù)對(duì)所有32層的計(jì)算結(jié)果進(jìn)行矩形窗口合并,得到這一幀圖像的檢測(cè)結(jié)果。后處理流程如圖6所示。

3 實(shí)驗(yàn)結(jié)果分析

為了驗(yàn)證CUDA對(duì)行人檢測(cè)程序的加速效果,在PC和NVIDIA Jetson TK1開(kāi)發(fā)平臺(tái)上分別運(yùn)行基于分布場(chǎng)理論的行人檢測(cè)加速算法的串行版本程序(即未經(jīng)CUDA加速的程序)和CUDA并行化的程序。PC平臺(tái)和NVIDIA Jetson TK1平臺(tái)統(tǒng)一使用華碩ASUS XtionPROLive作為深度攝像頭采集彩色圖像與深度圖像。PC平臺(tái)硬件參數(shù)如表1所示。NVIDIA

Jetson TK1的硬件參數(shù)如表2所示。

圖6 后處理流程

表1 PC平臺(tái)硬件參數(shù)

表2 NVIDIA Jetson TK1硬件參數(shù)

串行版本的程序和CUDA并行加速的程序在PC平臺(tái)和Jetson TK1平臺(tái)分別測(cè)試10次,記錄每次測(cè)試的平均每幀圖像處理時(shí)間(單位ms)。并計(jì)算PC平臺(tái)與Jetson TK1平臺(tái)的加速比S——即串行版本程序與CUDA并行加速程序的運(yùn)行時(shí)間之比值。實(shí)驗(yàn)結(jié)果如表3、算法性能對(duì)比如圖7所示。

圖7 算法性能對(duì)比

表3 實(shí)驗(yàn)結(jié)果

從表3和圖7可知,PC平臺(tái)上的CUDA加速效果明顯,加速比為1.8140,即PC平臺(tái)上CUDA加速使算法的檢測(cè)速度提高了81.40%。同樣,在NVIDIA Jetson TK1平臺(tái)上也獲得較好的加速效果,加速比為1.4384。由圖7可以看到,經(jīng)過(guò)CUDA加速后的行人檢測(cè)程序,在2個(gè)平臺(tái)上的運(yùn)行速度基本一致。另外值得注意的是,同樣是串行版本的程序,在NVIDIA Jetson TK1平臺(tái)的檢測(cè)時(shí)間比在PC上快20.26%,這是因?yàn)樵贜VIDIA Jetson TK1平臺(tái)上使用的OpenCV版本是NVIDIA提供的Tegra專(zhuān)用版,針對(duì)Jetson平臺(tái)做了專(zhuān)門(mén)的優(yōu)化和加速,因此可以獲得相比于PC平臺(tái)更快的處理速度。這也體現(xiàn)了使用NVIDIA Jetson TK1作為開(kāi)發(fā)平臺(tái)的優(yōu)勢(shì)之一。

檢測(cè)程序運(yùn)行的效果如圖8所示。檢測(cè)程序從背景中分離出運(yùn)動(dòng)的行人以黑框標(biāo)識(shí)為檢測(cè)結(jié)果。

圖8 行人檢測(cè)效果

4 結(jié)論

由實(shí)驗(yàn)結(jié)果可知,行人檢測(cè)算法經(jīng)過(guò)CUDA并行化后,在PC平臺(tái)和NVIDIA Jetson TK1平臺(tái)上都獲得了較為顯著的加速效果。Jetson TK1平臺(tái)相比于PC平臺(tái)具有低功耗、可便攜的優(yōu)勢(shì),同時(shí)NVIDA官方提供了專(zhuān)門(mén)針對(duì)Jetson平臺(tái)優(yōu)化的OpenCV庫(kù)及CUDA版本,能夠使程序性能獲得很好的提升。因此在該平臺(tái)上進(jìn)行計(jì)算機(jī)視覺(jué)相關(guān)的開(kāi)發(fā)具有長(zhǎng)遠(yuǎn)的應(yīng)用前景。未來(lái)對(duì)復(fù)雜背景下的檢測(cè)精確度、進(jìn)一步對(duì)程序并行化等進(jìn)行深入研究。

[1] Wixson L. Detecting salient motion by accumulating directionally-consistent flow[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000, 22(8): 774-780.

[2] Sevilla-Lara L, Learned-Miller E. Distribution fields for tracking[C]. IEEE Press, 2012: 1910-1917.

[3] Nicholas Wilt. CUDA專(zhuān)家手冊(cè):GPU編程權(quán)威指南[M].蘇統(tǒng)華,馬培軍,劉曙,等,譯.北京:機(jī)械工業(yè)出版社, 2014: 148-165.

[4] Gary Bradski, Adrian Kaebler. 學(xué)習(xí)OpenCV [M].北京:清華大學(xué)出版社,2009: 38-48.

The Reasearch of Pedestrian Detection Algorithm Based on Distribution Field Theory

Xue Lu1Liu Bohan2
(1. Guangdong Science and Technology Infrastucture Center 2. South China University of Technology Institute of Electronics and Information)

This paper introduces a pedestrian detection algorithm based on distribution field theory. The algorithm firstly gains depth image from depth camera,extracts foreground and calculate its distribution field,finally extract the contour and calculate the minimum rectangle envelope to achieve pedestrian detection results. According to the high parallelism of the algorithm, the program is accelerated by CUDA as well as the GPU library of OpenCV and implemented on PC as well as NVIDIA Jetson TK1 platform. The experiment shows that this method is able to detect pedestrian from video sequence well, and the program speeds up significantly after CUDA acceleration on both PC and NVIDIA Jetson TK1 platform.

Pedestrian Detection; Distribution Field; CUDA

薛露,女,1987年生,碩士研究生,工程師,主要研究方向:算法研究、應(yīng)急系統(tǒng)等。E-mail:1057845749@qq.com

廣東省科技基礎(chǔ)條件平臺(tái)中心,廣東省科技計(jì)劃項(xiàng)目-廣東省突發(fā)事件應(yīng)急信息技術(shù)研究中心技術(shù)升級(jí),項(xiàng)目編號(hào)2014A020219001。

猜你喜歡
彩色圖像線程行人
毒舌出沒(méi),行人避讓
意林(2021年5期)2021-04-18 12:21:17
基于FPGA的實(shí)時(shí)彩色圖像邊緣檢測(cè)
電子制作(2019年16期)2019-09-27 09:34:46
路不為尋找者而設(shè)
我是行人
基于最大加權(quán)投影求解的彩色圖像灰度化對(duì)比度保留算法
淺談linux多線程協(xié)作
基于顏色恒常性的彩色圖像分割方法
基于Arnold變換和Lorenz混沌系統(tǒng)的彩色圖像加密算法
Linux線程實(shí)現(xiàn)技術(shù)研究
行人流綜述
介休市| 钟山县| 柳林县| 大安市| 宝山区| 昌图县| 定州市| 云南省| 建宁县| 天等县| 彰武县| 科技| 莆田市| 同德县| 宁乡县| 沅陵县| 九龙坡区| 台安县| 女性| 南华县| 和田市| 堆龙德庆县| 旅游| 合水县| 洛隆县| 黑水县| 合川市| 沙坪坝区| 横峰县| 瓦房店市| 霸州市| 和平县| 盘山县| 德江县| 耿马| 平南县| 迭部县| 泰宁县| 上杭县| 台州市| 丹东市|