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

采用GPU的視覺定位系統(tǒng)加速實(shí)驗(yàn)

2020-03-04 05:12:44王玲玉董文博
計算機(jī)與數(shù)字工程 2020年1期
關(guān)鍵詞:特征系統(tǒng)

王玲玉 董文博

(1.中國科學(xué)院大學(xué) 北京 100049)(2.中國科學(xué)院空間應(yīng)用工程與技術(shù)中心 北京 100094)(3.中國科學(xué)院太空應(yīng)用重點(diǎn)實(shí)驗(yàn)室 北京 100094)

1 引言

為了解決視覺定位系統(tǒng)實(shí)時性差的困境,GPU(Graphic Processing Unit)逐漸被引入到科學(xué)家們的研究范圍內(nèi)。在GPU發(fā)展初期,由于編程困難的緣故很難被推廣應(yīng)用。直到21世紀(jì)初,NVIDIA公司研發(fā)了一種通用的并行計算結(jié)構(gòu)CUDA(Compute Unified Device Architecture),它大大地降低了編程的困難,加速了GPU的發(fā)展,同時也更加適合解決復(fù)雜的計算類問題。

Malik M[1]等發(fā)現(xiàn)對于計算密集型視覺應(yīng)用[2~3],CPU和GPU之間的差距隨著圖像尺寸的增加而降低;對于非密集型應(yīng)用,由于圖像尺寸的增加,在平臺之間觀察到比較明顯的性能和能效差距。在energy-efficiency(EDP)的情況下,GPU對于大于500×500的圖像尺寸而言是最有效的平臺。

Richard Vuduc[4]等認(rèn)為雖然理想化的 GPU 可以提供更好的性能,但是我們發(fā)現(xiàn)至少對于同等CPU的調(diào)整以及對實(shí)際工作負(fù)載和調(diào)用環(huán)境的考慮,我們可以用兩種現(xiàn)代化的四核CPU插槽在性能上大致匹配一個或兩個GPU。事實(shí)上,將矩陣轉(zhuǎn)移到GPU并結(jié)合GPU特定數(shù)據(jù)重組將會產(chǎn)生額外成本。也就是說,GPU的最佳實(shí)現(xiàn)方式不同于CPU的最佳或基準(zhǔn)實(shí)施方式。實(shí)際上,由于合并訪問的性能要求,這種數(shù)據(jù)結(jié)構(gòu)調(diào)整在GPU上更為重要;沒有它,GPU不會超過CPU[5]。

一些研究工作已經(jīng)報告了在CPU上并行執(zhí)行計算機(jī)視覺算法的性能結(jié)果,并將其與加速器實(shí)現(xiàn)進(jìn)行了比較[6~8]。Cope[9]等對圖像卷積在 GPU,F(xiàn)PGA和CPU上的實(shí)現(xiàn)性能進(jìn)行了比較。Russo[10]等比較了GPU和FPGA上的圖像卷積處理。

此外,Asano S 等[11~12]使用圖像處理中二維濾波器,立體視覺和k-均值聚類這三個簡單問題比較了GPU與CPU(四核)的性能,GPU可以顯示其潛力,其中所有像素都可以獨(dú)立處理。對于使用共享陣列的更復(fù)雜的算法,GPU由于其非常小的本地內(nèi)存而無法執(zhí)行這些算法,或者由于其內(nèi)存架構(gòu)導(dǎo)致的內(nèi)存訪問限制,無法顯示出良好的性能。在這些算法中,GPU比CPU要慢得多(如果我們找到可以克服局限性的算法,但是我們找不到它們,可能會實(shí)現(xiàn)更好的性能)。

本文的目的是針對GPU在一個實(shí)際的視覺系統(tǒng)中的應(yīng)用,探究GPU是否能夠取得更快的速度,以及能比CPU取得怎樣的提高。

2 視覺定位系統(tǒng)

我們設(shè)計了一個視覺定位系統(tǒng),用于復(fù)雜場景下的目標(biāo)識別和位姿檢測,并為實(shí)時控制系統(tǒng)服務(wù)。系統(tǒng)的軟件主要包括圖像采集、圖像匹配和位姿解算3個部分。圖像采集是由攝像機(jī)拍攝圖片完成;圖像識別和匹配是為了得到目標(biāo)在圖像坐標(biāo)系下的坐標(biāo);位姿解算是通過目標(biāo)的圖像坐標(biāo)和先驗(yàn)知識,得到目標(biāo)與攝像機(jī)之間的相對位姿信息,實(shí)現(xiàn)對目標(biāo)的視覺定位。

其中,圖像匹配算法分為兩個部分。1)粗匹配(目標(biāo)識別):利用CNN訓(xùn)練好的model判斷場景中是否有目標(biāo)存在,沒有目標(biāo)存在時直接處理下一幀圖像。相對于沒有進(jìn)行判斷場景中是否有識別目標(biāo)存在的情況,我們系統(tǒng)整體的定位速度有所提升,加快了系統(tǒng)的工作效率。2)精匹配:有目標(biāo)存在時,進(jìn)行目標(biāo)和圖像之間的特征匹配,得到目標(biāo)在圖像坐標(biāo)系下的精確位置。

基于系統(tǒng)在CPU下運(yùn)行速度太慢,很難保證整個控制系統(tǒng)的實(shí)時性,我們將整個系統(tǒng)的算法移植到GPU的Linux平臺上。NVIDIA的Jetson TX2有6個CPU核心,4個Cortex-A57、2個自研的Denver(丹佛)核心,GPU則是Pascal架構(gòu),256個CUDA核心,搭配8GB 128bit LPDDR4內(nèi)存。

通過命令我們可以查看當(dāng)前CPU的工作模式,并將其模式設(shè)置為6個CPU全部工作的狀態(tài)。并且,我們需要決策整個系統(tǒng)的算法內(nèi)容,哪些函數(shù)需要用GPU進(jìn)行優(yōu)化,哪些函數(shù)在CPU上運(yùn)行計算。

文中會涉及到CPU和GPU性能的比較,此處的比較主要是針對使用Jetson TX2上自帶的CPU和使用GPU加速系統(tǒng)的粗定位和精定位而言。

3 系統(tǒng)組成和GPU加速理論分析

在特征匹配中常用的算法有 ORB[13](Oriented FAST and Robust BRIEF)算法,SIFT算法和SURF算法三種。ORB算法分為特征點(diǎn)提取和特征點(diǎn)描述兩部分。在ORB算法中,使用FAST[14]特征點(diǎn)檢測算法來進(jìn)行特征點(diǎn)提取,利用BRIEF[15]特征描述子算法來進(jìn)行特征點(diǎn)描述,并將兩者結(jié)合起來,在兩者原有的基礎(chǔ)上做了改進(jìn)與優(yōu)化的算法??紤]到ORB算法尋找特征點(diǎn)及計算描述子的速度較快,我們利用GPU加速提取圖片的ORB特征,為精匹配做準(zhǔn)備。

我們的整個系統(tǒng)的工作流程為:1)攝像頭采集圖像,調(diào)用訓(xùn)練好的模型來判斷場景有無目標(biāo)存在。當(dāng)系統(tǒng)判斷場景中有目標(biāo)存在時,進(jìn)行精定位。否則,直接處理下一幀圖像。2)將CPU上的圖片數(shù)據(jù)下載到GPU上,調(diào)用GPU加速模塊進(jìn)行特征點(diǎn)檢測和特征提取工作。我們利用ORB算法提取目標(biāo)的關(guān)鍵點(diǎn)和特征描述子,采用特征向量之間的歐式距離判斷圖像中特征點(diǎn)的相似性,將滿足最小距離的兩個特征點(diǎn)匹配起來。采用KNN[16](K-Nearest-Neighbor)匹配算法對特征向量進(jìn)行匹配,再判斷圖像間的特征點(diǎn)匹配是否是一一映射,對于不是的點(diǎn)剔除掉。3)利用 RANSAC[17](Random Sample Consensus)算法對匹配正確的特征點(diǎn)進(jìn)行數(shù)據(jù)擬合,求解單應(yīng)性矩陣,建立特征點(diǎn)的對應(yīng)關(guān)系,進(jìn)行位姿解算。系統(tǒng)的軟件流程圖如圖1所示。劃線標(biāo)注的部分使用GPU進(jìn)行加速的模塊,其中利用CNN訓(xùn)練好的模型是離線進(jìn)行的,在系統(tǒng)運(yùn)行時可以直接使用。

理論上的GPU可以加速的部分分析如下:

1)圖像模型訓(xùn)練階段,利用caffe框架離線訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)時,由于GPU可以多核并行運(yùn)算,大大加快了模型訓(xùn)練的時間。我們的GPU有6個CPU核心,理論上訓(xùn)練速度可以加快幾十倍。

圖1 系統(tǒng)軟件流程圖

2)圖像傳輸:當(dāng)攝像頭采集到圖片時,我們需要進(jìn)行圖像數(shù)據(jù)的傳輸,此時CPU和GPU的速度幾乎是一樣的。

3)圖像識別:接著,我們利用GPU調(diào)用caffe的分類模型來判斷場景中是否有目標(biāo)出現(xiàn)。神經(jīng)網(wǎng)絡(luò)可以采用并行計算,理論上能夠加速5~10倍。

我們采用OpenCV中的cudafeatures2d等里面存在的CUDA加速庫,調(diào)用函數(shù)例如cv::cuda::ORB和cv::cuda::DescriptorMatcher等來完成系統(tǒng)的加速工作。

雖然使用GPU可以調(diào)用一些加速函數(shù),但是由于CPU和GPU之間數(shù)據(jù)傳輸時間消耗的問題,在有些情況下總消耗時間GPU甚至?xí)菴PU還要慢。

考慮到GPU適用于圖形運(yùn)算,而CPU是設(shè)計用來處理通用任務(wù)的處理、加工、運(yùn)算以及系統(tǒng)核心控制等工作,所以我們將CPU和GPU結(jié)合起來進(jìn)行使用,以達(dá)到最佳效果。

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

4.1 粗定位加速實(shí)驗(yàn)結(jié)果

系統(tǒng)的前端是判斷場景中是否有目標(biāo)存在,此時我們需要調(diào)用卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練好的模型進(jìn)行判斷。通過調(diào)用深度學(xué)習(xí)框架自帶的分類模塊來完成,在代碼中,我們選擇GPU加速來完成。

我們?nèi)∠到y(tǒng)在CPU和GPU下連續(xù)20幀的粗定位時間,如圖2所示。

圖2 CPU和GPU下的粗定位時間對比

對比使用CPU和使用GPU,經(jīng)統(tǒng)計連續(xù)20幀系統(tǒng)處理的時間,我們?nèi)【担l(fā)現(xiàn)當(dāng)圖像像素為480×360時,粗定位過程中CPU平均耗時是GPU的8.7546倍;當(dāng)圖像像素為640×480時,粗定位過程中CPU平均耗時是GPU的10.6272倍。

4.2 精定位加速實(shí)驗(yàn)結(jié)果

我們?nèi)∠到y(tǒng)在CPU和GPU下連續(xù)20幀的精定位時間,如圖3所示。

圖3 CPU和GPU下的精定位時間對比

對比使用CPU和使用GPU,經(jīng)統(tǒng)計連續(xù)20幀系統(tǒng)處理的時間,我們?nèi)【担l(fā)現(xiàn)當(dāng)圖像像素為480×360時,精定位過程中CPU平均耗時是GPU的1.0021倍;當(dāng)圖像像素為640×480時,精定位過程中CPU平均耗時是GPU的1.0466倍。

由此,我們可以看出,在精定位過程中,GPU和CPU所用時間相差并不是很大。并且隨著圖像像素的增大,這種差距會不斷縮小。即圖像像素越大,GPU加速效果越好。

5 CPU和GPU加速對比

在進(jìn)行CPU和GPU對比之前,我們定義加速比來衡量GPU的優(yōu)化性能。加速比=CPU運(yùn)行時間/GPU運(yùn)行時間,此處我們涉及到的CPU運(yùn)行時間和GPU運(yùn)行時間是各種開銷和數(shù)據(jù)傳輸?shù)目倳r間。表1是當(dāng)圖像像素為640×480時,視覺系統(tǒng)各個模塊消耗的統(tǒng)計時間。

表1 系統(tǒng)處理一幀大小為640×480圖像的時間

此外,我們還比較了當(dāng)圖像大小為640×480和480×360時,系統(tǒng)在CPU和GPU環(huán)境下的運(yùn)行時間,并做了表2的對比分析。

表2 系統(tǒng)處理一幀圖像時CPU和GPU執(zhí)行時間對比

根據(jù)實(shí)驗(yàn)結(jié)果可以看出,整個系統(tǒng)在粗定位模塊的加速效果較為明顯,在位姿解算模塊使用GPU反而比使用CPU還要慢。所以我們聯(lián)想將CPU和GPU結(jié)合起來,粗匹配和精匹配用GPU來實(shí)現(xiàn),定位模塊用CPU實(shí)現(xiàn),從而將系統(tǒng)用CPU和GPU相結(jié)合來實(shí)現(xiàn)。

通過表格,我們發(fā)現(xiàn),使用CPU和GPU相結(jié)合時,視覺定位系統(tǒng)可以從1幀/s達(dá)到7幀/s左右,遠(yuǎn)遠(yuǎn)快于單獨(dú)使用CPU或者單獨(dú)使用GPU的情況。尤其在采用深度卷積網(wǎng)絡(luò)時的粗定位環(huán)節(jié)(最占用時間的環(huán)節(jié))。

6 GPU加速識別討論

為了研究圖像像素大小對于GPU加速的影響,我們?nèi)∠袼胤謩e為 320×240,400×300,480×360,560×420,640×480,比較不同像素作用下,GPU對CPU在粗匹配模塊的加速比。以圖像像素不斷增加為X軸,加速比為Y軸,如圖4所示。

圖4 不同像素的GPU對CPU的加速比

通過圖像我們發(fā)現(xiàn),當(dāng)圖像像素越大,GPU的加速效果體現(xiàn)越好。但這個分析僅限于我們設(shè)計的系統(tǒng)中粗定位模塊。

最后,我們認(rèn)為GPU并不是一定可以對任意系統(tǒng)加速,并且它的功耗是比較大的。

7 結(jié)語

據(jù)我們所知,CPU適合處理擁有復(fù)雜的指令、邏輯判斷、循環(huán)、分支等的程序,而GPU更加適合高度的并行性、巨大的數(shù)據(jù)量、數(shù)據(jù)耦合度低、高的計算密度以及與CPU盡量少的數(shù)據(jù)傳輸?shù)忍攸c(diǎn)。在幾組對比分析中,我們也發(fā)現(xiàn)了這個規(guī)律。當(dāng)圖像像素為480×360時,我們在粗定位系統(tǒng)中采用GPU加速,相對于CPU而言,平均耗時加速到8.7546倍。并且,隨著圖像像素的增加,GPU的加速效果會愈來愈好。同時,我們發(fā)現(xiàn)GPU在圖像處理方面比CPU效果好很多,而處理數(shù)據(jù)相關(guān)性不大的計算類問題時,CPU表現(xiàn)更加突出。

總之,我們應(yīng)該針對具體應(yīng)用選擇合適的GPU加速方案。下一步的計劃是根據(jù)系統(tǒng)中算法已有的并行性把算法改變成并行算法,使之更適用于GPU編程模型的并行算法。

猜你喜歡
特征系統(tǒng)
抓住特征巧觀察
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
新型冠狀病毒及其流行病學(xué)特征認(rèn)識
基于PowerPC+FPGA顯示系統(tǒng)
如何表達(dá)“特征”
不忠誠的四個特征
半沸制皂系統(tǒng)(下)
抓住特征巧觀察
主站蜘蛛池模板: 久久综合激情网| 女人一级毛片| 国产一级在线播放| 永久免费无码日韩视频| 亚洲国产综合精品一区| 国产精品午夜福利麻豆| 国产精品久线在线观看| 日本91视频| 国内丰满少妇猛烈精品播| 免费看美女自慰的网站| 特级欧美视频aaaaaa| 国产欧美精品专区一区二区| 欧美高清国产| AV网站中文| 亚洲国产成人综合精品2020| 人妻出轨无码中文一区二区| 青草娱乐极品免费视频| 999国内精品久久免费视频| 一级黄色片网| 国产综合另类小说色区色噜噜| 亚洲天堂啪啪| 亚洲无码高清视频在线观看| 国产成人久久综合777777麻豆 | 欧美精品在线观看视频| 久久精品一品道久久精品| 久久伊伊香蕉综合精品| 亚洲天堂.com| 欧美A级V片在线观看| 国产人成在线视频| 亚洲av无码片一区二区三区| 91久久天天躁狠狠躁夜夜| 欧美www在线观看| 第一区免费在线观看| 五月婷婷导航| 99九九成人免费视频精品| 国产免费怡红院视频| 亚洲av无码人妻| 欧美成人免费| 精品国产一二三区| 亚洲天堂自拍| 婷婷亚洲最大| 亚洲精品无码日韩国产不卡| 精品91视频| 日本久久网站| 亚洲精品高清视频| 亚洲国产日韩一区| 无码又爽又刺激的高潮视频| 波多野结衣在线一区二区| 亚洲成肉网| 凹凸精品免费精品视频| 久久亚洲美女精品国产精品| 成人国产小视频| 国产欧美日韩专区发布| 老司机久久精品视频| 日本五区在线不卡精品| 欧洲高清无码在线| 一本综合久久| 不卡视频国产| 一级黄色片网| AV不卡无码免费一区二区三区| 日韩第一页在线| 亚洲Av综合日韩精品久久久| 少妇极品熟妇人妻专区视频| 免费精品一区二区h| 婷婷伊人五月| 久久77777| 欧美午夜视频| 精品成人免费自拍视频| 亚洲精品在线影院| 国产综合在线观看视频| 国产一级毛片yw| 亚洲三级a| 亚洲最新在线| 中国精品自拍| 国产三级毛片| 日本人真淫视频一区二区三区| 亚洲色大成网站www国产| 亚洲三级网站| 亚洲成年网站在线观看| 国产玖玖玖精品视频| 操美女免费网站| 蜜桃视频一区二区三区|