本書作為一本視頻圖像處理算法與性能優(yōu)化方法的學(xué)術(shù)專著,既反映了相關(guān)領(lǐng)域近年來的新研究進(jìn)展,又給出了作者在視頻圖像處理技術(shù)方面的研究成果與應(yīng)用實(shí)例。全書共分為9章,包括緒論、視頻圖像處理在智能駕駛中的應(yīng)用、GPU體系架構(gòu)、CUDA與OpenCL編程模型、異構(gòu)計(jì)算與性能優(yōu)化方法、Canny邊緣檢測算法優(yōu)化、人臉檢測算法優(yōu)化、異構(gòu)平臺(tái)激光雷達(dá)算法優(yōu)化、性能與功耗等內(nèi)容。本書可供從事計(jì)算機(jī)應(yīng)用、視頻圖像處理、并行算法及并行軟件的設(shè)計(jì)與開發(fā)、智能駕駛等領(lǐng)域的研究人員、工程技術(shù)人員閱讀。
智能駕駛是當(dāng)前一個(gè)主要的研究熱點(diǎn),視頻圖像處理技術(shù)在智能駕駛領(lǐng)域有著廣泛應(yīng)用,如車道線檢測、障礙物識(shí)別、紅綠燈識(shí)別和交通標(biāo)志牌識(shí)別等。視頻圖像實(shí)時(shí)處理技術(shù)是智能駕駛領(lǐng)域的重要研究內(nèi)容,也是智能駕駛安全的重要保證。隨著GPGPU計(jì)算的發(fā)展,特別是NVIDIATegra高性能GPU計(jì)算平臺(tái)的推出,通過高性能計(jì)算技術(shù)實(shí)現(xiàn)視頻圖像的實(shí)時(shí)處理,成為當(dāng)前重要的研究熱點(diǎn)和發(fā)展趨勢。
GPGPU的出現(xiàn)和發(fā)展,給并行計(jì)算帶來了新的計(jì)算平臺(tái)。新計(jì)算平臺(tái)需要新方法來進(jìn)行并行軟件開發(fā)。GPU編程的重點(diǎn)在于性能優(yōu)化,經(jīng)過細(xì)致調(diào)優(yōu)的GPU程序可實(shí)現(xiàn)巨大的性能提升。然而,GPU編程的難點(diǎn)也在于性能優(yōu)化,并行程序開發(fā)人員不僅要熟悉算法特征,還必須要了解底層硬件架構(gòu)特征,這就對(duì)GPU并行程序開發(fā)人員提出了新的挑戰(zhàn)。
近年來,我們跟蹤新計(jì)算平臺(tái)上視頻圖像實(shí)時(shí)處理技術(shù)的最新進(jìn)展并深入研究,試圖從算法和硬件架構(gòu)兩方面來迎接這種挑戰(zhàn),書中不僅介紹了在智能駕駛中廣泛應(yīng)用的視頻圖像處理算法,而且介紹了多種不同的GPU架構(gòu),在此基礎(chǔ)上,分析了GPU編程和優(yōu)化的主要思路和方法,不僅能針對(duì)各種獨(dú)立的優(yōu)化方法,更重要的是能針對(duì)各種優(yōu)化方法組合的情況。研究過程中得到了國家自然科學(xué)基金重大研究計(jì)劃項(xiàng)目、北京市屬高等學(xué)校高層次人才引進(jìn)與培養(yǎng)計(jì)劃項(xiàng)目、北京市教育委員會(huì)科技計(jì)劃面上項(xiàng)目的資助,成果已用到北京聯(lián)合大學(xué)智能車上。
本書作為視頻圖像處理技術(shù)理論研究和應(yīng)用的一本學(xué)術(shù)專著,參考了國內(nèi)外大量的相關(guān)文獻(xiàn),總結(jié)了我們近幾年來的研究成果,并提供了大量的實(shí)際案例,通過實(shí)際案例的實(shí)現(xiàn)和解析,為讀者提供一個(gè)視頻圖像處理算法在GPU上實(shí)現(xiàn)和優(yōu)化的具體思路和方法。讀者通過本書的閱讀和學(xué)習(xí),不僅可以學(xué)習(xí)視頻圖像處理技術(shù)在智能駕駛中的應(yīng)用,而且可以了解GPU程序從實(shí)現(xiàn)到優(yōu)化的具體方法。雖然本書實(shí)際案例的實(shí)現(xiàn)都是基于CUDA,但是本書也比較了CUDA和OpenCL的異同,本書描述的優(yōu)化方法也可以非常方便地移植到OpenCL程序的編寫和優(yōu)化中。
本書可以分成如下四個(gè)邏輯單元:
視頻圖像處理技術(shù)在智能駕駛中的應(yīng)用:第2章在分析了當(dāng)前國內(nèi)外主●●●●● 視頻圖像處理與性能優(yōu)化Ⅵ 流的智能駕駛技術(shù)后,詳細(xì)介紹了在智能駕駛中應(yīng)用廣泛的幾類視頻圖像處理算法,包括:車道線的提取和跟蹤技術(shù)、交通標(biāo)志牌的檢測和識(shí)別技術(shù)、交通信號(hào)燈的檢測與識(shí)別技術(shù)等。
GPU硬件架構(gòu)與編程:第3章介紹了CPU與GPU架構(gòu)的主要區(qū)別,在此基礎(chǔ)上,對(duì)當(dāng)前主流的GPU架構(gòu)特征(包括NVIDAGPU和AMDGPU) 進(jìn)行了詳細(xì)介紹,這是進(jìn)行GPU并行編程和優(yōu)化的前提。第4章介紹了當(dāng)前GPU主要的編程模型:CUDA和OpenCL,不僅介紹了這兩種編程模型的關(guān)鍵概念和定義、兩種編程模型的異同;而且通過一個(gè)簡單的例子介紹了使用這兩種編程模型進(jìn)行GPU編程的主要流程和方法,最后給出了GPU程序性能優(yōu)化的主要思路。
實(shí)際案例分析:第5章介紹了矩陣轉(zhuǎn)置、規(guī)約算法、resize算法和Laplace算法等主要的視頻圖像處理算子在GPU上的實(shí)現(xiàn)和優(yōu)化 方法,結(jié)合具體算法詳細(xì)分析了GPU編程和優(yōu)化思路和方法。最后第6~8章分別給出了Canny、人臉檢測以及激光雷達(dá)算法等具體實(shí)際應(yīng)用案例的GPU移植和優(yōu)化方法。
性能與能耗:第9章從能效評(píng)價(jià)指標(biāo)、各層次能耗優(yōu)化策略以及系統(tǒng)級(jí)能耗優(yōu)化技術(shù)三個(gè)方面介紹了在高性能計(jì)算以及智能駕駛中對(duì)性能與能耗的權(quán)衡。
本書由梁軍、賈海鵬著,其中肖琳、胡正坤、梁愛華、許武、李威、王晶、魏秋明和李志豪參與了本書的編輯整理工作。在本書編寫、出版的過程中,得到了鮑泓教授主持的國家自然科學(xué)基金重大研究計(jì)劃項(xiàng)目(91420202)的資助,同時(shí),也參考了國內(nèi)外大量的論文和專著,在此一并表示感謝。
由于時(shí)間倉促,書中難免會(huì)出現(xiàn)錯(cuò)誤和不妥之處,懇請(qǐng)廣大讀者不吝批評(píng)指正。
梁 軍賈海鵬
視頻圖像處理技術(shù)在智能汽車以及無人駕駛中的應(yīng)用非常廣泛,如車道線識(shí)別、前方車輛的檢測與識(shí)別、交通標(biāo)志牌的識(shí)別、紅綠燈識(shí)別等。視頻圖像處理技術(shù)在智能駕駛中的應(yīng)用中除了需要滿足可靠性和魯棒性兩方面的要求外,實(shí)時(shí)性也是非常重要的要求。能夠?qū)崟r(shí)對(duì)道路的實(shí)際情況做出反應(yīng),是智能駕駛安全的重要保證。因此,在保證算法可靠性和魯棒性的前提下,研究視頻圖像實(shí)時(shí)處理算法和技術(shù)對(duì)于智能駕駛來說至關(guān)重要。
隨著通用計(jì)算圖形處理器(GeneralPurposeGraphicProcessingUnit,GPGPU)技術(shù)的發(fā)展,GPU的應(yīng)用也越來越廣泛。英偉達(dá)(NVIDIA) Tegra系列高性能GPU計(jì)算平臺(tái)推出后,利用高性能計(jì)算技術(shù)實(shí)現(xiàn)智能駕駛中視頻圖像的實(shí)時(shí)處理成為重要的發(fā)展趨勢。然而,如何編寫正確、高效的GPU并行程序成為軟件開發(fā)人員面臨的一大挑戰(zhàn),同時(shí)GPU并行程序的調(diào)試、性能剖析也日益成為GPU并行軟件開發(fā)的難題。GPU并行程序開發(fā)和優(yōu)化的本質(zhì)是實(shí)現(xiàn)算法特征向底層硬件架構(gòu)特征的高效映射,這就對(duì)GPU并行軟件開發(fā)人員提出了更高的要求:不僅要了解算法特征,而且要對(duì)底層架構(gòu)有著清晰的認(rèn)識(shí)。這無疑增加了將GPU高性能計(jì)算技術(shù)應(yīng)用到智能駕駛視頻圖像實(shí)時(shí)處理應(yīng)用中的難度。
在這種背景下,本書的出現(xiàn)非常及時(shí)。本書從視頻圖像處理在智能駕駛中的應(yīng)用、GPU體系架構(gòu)與編程模型、GPU編程與優(yōu)化、GPU優(yōu)化實(shí)際案例剖析、性能與能耗的權(quán)衡五個(gè)方面,詳細(xì)討論了利用GPU高性能計(jì)算技術(shù)實(shí)現(xiàn)智能駕駛視頻圖像實(shí)時(shí)處理的關(guān)鍵方法。GPU編程的重要內(nèi)容是性能優(yōu)化,這就需要軟件開發(fā)人員在詳細(xì)了解GPU硬件架構(gòu)特征的基礎(chǔ)上,根據(jù)實(shí)際的算法特征,選擇最優(yōu)的優(yōu)化方法組合,從而實(shí)現(xiàn)算法的最佳性能。本書詳細(xì)介紹了NVIDIA和AMD多代GPU計(jì)算平臺(tái)的架構(gòu)特點(diǎn),計(jì)算統(tǒng)一設(shè)備架構(gòu)(ComputeUnifiedDeviceArchitecture,CUDA)與開放計(jì)算語言(OpenComputingLanguage,OpenCL) 兩種GPU編程模型的比較以及GPU通用優(yōu)化方法,同時(shí)提供了大量的實(shí)際案例,更加深入地討論GPU優(yōu)化方法的選擇與應(yīng)用方式。通過本書,讀者可以了解視頻圖像處理技術(shù)在智能駕駛中的應(yīng)用和GPU架構(gòu)的發(fā)展,學(xué)習(xí)如何使用CUDA開發(fā)高性能的GPU程序,包括訪存優(yōu)化、計(jì)算優(yōu)化和數(shù)據(jù)本地化優(yōu)化等。
本書作者梁軍是北京聯(lián)合大學(xué)副教授,李德毅院士智能車團(tuán)隊(duì)的重要成員。研究方向包括智能駕駛、并行算法及并行軟件的設(shè)計(jì)與開發(fā)等,實(shí)際參與了多輛智能車并行軟件的開發(fā)、調(diào)試和應(yīng)用,本書是作者根據(jù)自己在智能駕駛領(lǐng)域多年的研究●●●●● 視頻圖像處理與性能優(yōu)化Ⅳ 基礎(chǔ)和實(shí)際并行編程經(jīng)驗(yàn),從開發(fā)優(yōu)秀GPU并行軟件的本質(zhì)出發(fā),以通俗易懂的方式對(duì)最為關(guān)鍵的基本知識(shí)和技術(shù)進(jìn)行了細(xì)致講解。本書既可成為智能駕駛領(lǐng)域的參考書籍,也可供GPU并行軟件開發(fā)人員及高校師生參考。
序
.前言
第1章緒論
1.1視頻圖像處理
1.1.1概述-I
1.1.2視頻圖像處理發(fā)展與
應(yīng)用-I
1.1.3視頻圖像處理算法關(guān)鍵
技術(shù)-I
1.2視頻圖像處理在智能駕駛領(lǐng)
域的應(yīng)用
1.2.1概述-I
1.2.2視頻圖像處理在智能駕
駛領(lǐng)域的應(yīng)用與發(fā)展
1.2.3視頻圖像處理在智能駕
駛領(lǐng)域的關(guān)鍵技術(shù)
1.3異構(gòu)平臺(tái)與GPU架構(gòu)
1.3.1概述
1.3.2 GPU體系架構(gòu)
1.3.3 GPU編程模型
1.4 GPU性能加速優(yōu)化方法
1.4.1訪存優(yōu)化
1.4.2計(jì)算優(yōu)化
1.4.3數(shù)據(jù)本地化
第2章視頻圖像處理在智能
駕駛中的應(yīng)用
2.1引言
2.1.1國外研究現(xiàn)狀
2國內(nèi)研究現(xiàn)狀
2.2車道線的提取和跟蹤
2.2.1道路圖像預(yù)處理方法
2.2.2邊緣檢測
2.2.3基于Hough變換的車
道線檢測
2.3 交通標(biāo)志牌的檢測和識(shí)別
2.3.1交通標(biāo)志簡介
2.3.2交通標(biāo)志識(shí)別簡介
2.3.3交通標(biāo)志牌檢測
2.3.4基于SVM的交通標(biāo)志
牌檢測
2.3.5交通標(biāo)志的識(shí)別
2.3.6基于SVM的交通標(biāo)志
牌的識(shí)別
2.4交通信號(hào)燈的檢測
2.4.1顏色分割
2.4.2基于顏色和形狀的交通
信號(hào)燈檢測識(shí)別
2.5智能車其他視頻圖像處理
2.5.1基于SVM的行人檢測
2.5.2 SVM與深度學(xué)習(xí)
2.6本章小結(jié)
第3章GPU體系架構(gòu)
3.1 GPU與CPU架構(gòu)的區(qū)別
3.2 當(dāng)前主流GPU體系架構(gòu)
3.2.1 NVIDIA GPU架構(gòu)
3.2.2 AMD GPU架構(gòu)
3.2.3兩種架構(gòu)的異同
3.3本章小結(jié)
第4章 CUDA與OpenCL編程
模型
4.1 CUDA編程模型
4.2 0penCL編程模型
4 3 CUDA和OpenCL編程
流程
4 3 l CUDA向量相加程序
編寫過程
4 3 2 0penCL向量相加程序
編寫過程
4 4 GPU程序性能優(yōu)化分析
4 5本章小結(jié)
第5章異構(gòu)計(jì)算與性能優(yōu)化
方法
5 1視頻圖像處理算法
5 2訪存優(yōu)化方法
5 2 l CPU與GPU之間的
傳輸優(yōu)化
5 2 2 global memory的合并
訪問
5 2 3 shared memorT ’
5 2 4寄存器
5 3矩陣轉(zhuǎn)置算法
5 3 l算法簡介及分析 ’
5 3 2并行性分析
5 3 3矩陣轉(zhuǎn)置算法優(yōu)化
5 3 4性能分析
5 4規(guī)約算法
5 4.1算法簡介及分析
5 4 2并行性分析
5 4 3規(guī)約算法優(yōu)化
5 4 4性能分析
5 5 resize算法
5 5 l算法簡介及分析
5 5 2并行性分析
5 5 3 resize算法優(yōu)化
5 5 4性能分析
5 6 Laplace算法
5 6 l算法簡介及分析
5 6 2并行性分析
5 6 3 Laplace算法優(yōu)化
5 6 4性能分析
5 7本章小結(jié)
第6章Cannv邊緣檢測算法
優(yōu)化
6 1引言
6 l l邊緣檢測相關(guān)概述
6 1 2視頻圖像處理問題
及方法
6 2國內(nèi)外研究現(xiàn)狀
6 3 Canny邊緣檢測算法簡介
6 4并行性分析及GPU實(shí)現(xiàn)
6 4.1并行性分析
6 4 2基于NVIDIA Tegra Kl
的GPU實(shí)現(xiàn)與分析
6 5優(yōu)化策略分析
6 5 l向量化訪存 ’
6 5 2數(shù)據(jù)本地化
6 5 3條件分支優(yōu)化
6 6 Canny邊緣檢測算法優(yōu)化過程
與實(shí)驗(yàn)結(jié)果分析
6 6 l灰度化算法
6 6 2濾波及計(jì)算梯度幅
值算法
6 6 3非極大值抑制算法
6 6 4遞歸確定邊緣算法
6 6 5 Canny及邊緣檢測算法
6 7本章小結(jié)
第7章人臉檢測算法優(yōu)化
7 1引言
7 2人臉檢測算法
7 2 l GPU架構(gòu)
7 2 2 Viola - Jones人臉
檢測算法
7 3人臉檢測算法的GPU實(shí)現(xiàn)
與優(yōu)化
7 3.1并行性分析
7 3 2 NaYve實(shí)現(xiàn)與負(fù)載不
均衡
7 3 3 GPU優(yōu)化
7 4性能評(píng)估
7 4.1實(shí)驗(yàn)平臺(tái)
7 4 2正確性驗(yàn)證
7 4 3性能分析
7 5本章小結(jié)
第8章異構(gòu)平臺(tái)激光雷達(dá)算
法優(yōu)化
8 1引言
8 l l國外研究現(xiàn)狀
8 1 2國內(nèi)研究現(xiàn)狀
8 2車載激光雷達(dá)
8 2 l激光雷達(dá)目標(biāo)檢測
8 2 2激光雷達(dá)環(huán)境感知
8 2 3激光雷達(dá)的優(yōu)勢
8 2 4 Velodyne三維激光
雷達(dá)
8 3激光雷達(dá)數(shù)據(jù)處理算法
8 3 l激光雷達(dá)數(shù)據(jù)獲
取及解包
8 3 2激光雷達(dá)識(shí)別障礙物
8 3 3用Hough變換進(jìn)行路
邊檢測
8 4激光雷達(dá)數(shù)據(jù)處理算法
優(yōu)化
8 4 l柵格投影優(yōu)化
8 4 2數(shù)據(jù)傳輸優(yōu)化
8 4 3柵格處理優(yōu)化
8 4 4性能評(píng)估
8 5本章小結(jié)
第9章性能與能耗的權(quán)衡
9 1引言
9 2能效評(píng)價(jià)指標(biāo)
9 3各層次能耗優(yōu)化策略
9 4系統(tǒng)級(jí)能耗優(yōu)化技術(shù)
9 5本章小結(jié)
參考文獻(xiàn)