<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 智能計算 > 行業(yè)解決方案 > 運用 OpenVINO 自制自動(dòng)駕駛車(chē)視覺(jué)系統

運用 OpenVINO 自制自動(dòng)駕駛車(chē)視覺(jué)系統

作者: 時(shí)間:2021-01-26 來(lái)源:OpenVINO中文社區 收藏

運用Intel 自制車(chē)視覺(jué)系統

本文引用地址:http://dyxdggzs.com/article/202101/422396.htm

  這兩年人工智慧當道,無(wú)人汽車(chē)技術(shù)也隨之興起,我想超過(guò)四十歲的大叔們心中最完美的自駕車(chē)莫過(guò)於1980年代電視影集「霹靂游俠」中李麥克開(kāi)的那臺「伙計」了。
  「伙計」擁有高度人工智慧,不但可以,遇到狀況也會(huì )自動(dòng)閃避,還可以輕松和人對話(huà)解決各種問(wèn)題,李麥克拿起手表還可呼叫「伙計」開(kāi)到指定地方,簡(jiǎn)直就是現代人工智慧自駕車(chē)及語(yǔ)音助理的最佳范本!
  不過(guò)自駕車(chē)這項技術(shù)聽(tīng)起來(lái)就很難,那Maker們有沒(méi)有機會(huì )自己土炮一臺呢?

#自動(dòng)駕駛視覺(jué)系統#

  說(shuō)起自駕車(chē)(Autonomous Car)或是先進(jìn)駕駛輔助系統(Advanced Driver Assistance Systems,ADAS)主要都是希望車(chē)輛在沒(méi)有人為操作下即可自動(dòng)導航(GPS衛星定位、路線(xiàn)規畫(huà))、避障(閃避車(chē)輛、行人或異物)及環(huán)境感測(看懂燈號、路標),同時(shí)將使用者安全地帶到目的地。目前各國爭相投入研發(fā)資源,大到無(wú)人公車(chē)、卡車(chē)、貨柜車(chē),小到無(wú)人計程車(chē)、送貨車(chē)、電動(dòng)輪椅甚至無(wú)人農業(yè)耕耘機、采收機,就是不想錯過(guò)新一波的交通革命。
  在自駕車(chē)眾多技術(shù)中最不可缺少的一項就是電腦視覺(jué)技術(shù),但要搞懂一大堆數學(xué)、人工智慧理論、程式撰寫(xiě)方式、系統框架和硬體架構,還得懂得如何建立資料集、訓練及優(yōu)化(加速)模型,這可就難倒大多數人了,難道就不能「快快樂(lè )樂(lè )學(xué)AI」,站在巨人的肩膀上看世界嗎?
  (Intel)為了讓大家能夠快速入門(mén),因此提出了一項免費、跨硬體(CPU、GPU、FPGA、ASIC)的開(kāi)放電腦視覺(jué)推論及神經(jīng)網(wǎng)路(深度學(xué)習)優(yōu)化工具包「」(Open Visual Inference&Neural Network Optimization Toolkit),同時(shí)提供很多預先訓諫及優(yōu)化好的神經(jīng)網(wǎng)路模型可供大家直接使用。
影像辨識目標
  在進(jìn)入主題之前,首先要先認識一下影像辨識的常見(jiàn)項目及定義,如下圖所示:

  A.影像分類(lèi):一張影像原則上只能被分到一個(gè)類(lèi)別,所以影像中最好只有一個(gè)主要物件。若影像中出現多個(gè)物件,那分類(lèi)時(shí)則可能出現多個(gè)分類(lèi)結果,同時(shí)會(huì )給出每個(gè)分類(lèi)的不同機率,此時(shí)誤分類(lèi)的可能性就會(huì )大大提昇。
  B.物件定位:一張影像中可同時(shí)出現多個(gè)相同或不同物件,大小不據,辨識後會(huì )對每個(gè)物件產(chǎn)生一個(gè)邊界框(Bounding Box),如此即可獲得較為準確的物件位置(座標)及尺寸(邊界框長(cháng)寬)。
  C.語(yǔ)義分割:是一種像素級分類(lèi),意思就是每個(gè)像素都只會(huì )被歸到某一分類(lèi),如此就可取得接近物件真實(shí)邊界(Edge)。但缺點(diǎn)是多個(gè)相同物件類(lèi)型的像素都會(huì )被分到同一類(lèi),當物件太靠近或部份重疊時(shí)就不易分清楚共有多少物件。
  D.實(shí)例分割:這也是一種像素級的分類(lèi),和語(yǔ)義分割的差別是相同類(lèi)型的不同物件所屬像素就會(huì )被區分成不同分類(lèi)(顏色),包括物件有部份重疊時(shí),如此就能更正確判別影像中的內容。

1611628375484203.jpg

影像辨識的常見(jiàn)項目(圖片來(lái)源)

  以上視覺(jué)辨識難度依序遞增,同時(shí)在樣本訓練及推論時(shí)間也隨之巨幅成長(cháng)。在自駕車(chē)領(lǐng)域較常用到「物件定位」,比方說(shuō)找出前方車(chē)輛、行人、號志位置,但當場(chǎng)景較復雜(如市區)時(shí),同一影像中物件數量大增,且邊界框大量、大面積重疊,可能會(huì )影響辨識結果,因此更需要像語(yǔ)義分割及實(shí)例分割這類(lèi)像素級分類(lèi)。
  不過(guò)由於實(shí)例分割的計算量大過(guò)語(yǔ)義分割許多,且現實(shí)中不需要分的如此仔細,所以大部份僅采用語(yǔ)義分割來(lái)偵測場(chǎng)景中的多種物件,比方說(shuō)道路、人行道、地面標線(xiàn)、背景、天空、植物、建物等等,如下圖所示:

1611628404551061.jpg

語(yǔ)義分割應用於自駕車(chē),(a)僅道路,(b)道路、車(chē)輛、路標等多物件辨識(圖片來(lái)源)

Intel 簡(jiǎn)介

  玩過(guò)「電腦視覺(jué)」的朋友肯定對開(kāi)源工具「OpenCV」不會(huì )陌生,這個(gè)強調不要自己造輪子的開(kāi)源視覺(jué)函式庫,是(Intel)於西元2000年釋出的,不管是個(gè)人或商業(yè)用途皆可任意使用,不必付任何費用。OpenCV除了原有對Intel CPU加速函式庫IPP(Integrated Performance Primitives)、TBB(Threading Building Blocks)的支援外,發(fā)展至今已陸續整合進(jìn)許多繪圖晶片(GPU)加速計算的平臺,如OpenVX、OpenCL、CUDA等。
  近年來(lái),由於深度學(xué)習大量應用於電腦視覺(jué),自OpenCV 3.0版後就加入DNN(Deep Neural Network)模組,3.2版更是加入深度學(xué)習常用的Caffe框架及YOLO物件定位模組。2018年Intel更是推出開(kāi)放(免費)電腦視覺(jué)推論及神經(jīng)網(wǎng)路(深度學(xué)習)優(yōu)化工具包「OpenVINO」(Open Visual Inference&Neural Network Optimization Toolkit)。
  OpenVINO整合了OpenCV、OpenVX、OpenCL等開(kāi)源軟體工具并支援自家CPU、GPU、FPGA、ASIC(IPU、VPU)等硬體加速晶片,更可支援Windows、Liunx(Ubuntu、CentOS)等作業(yè)系統,更可支援常見(jiàn)Caffe、TensorFlow、Mxnet、ONNX等深度學(xué)習框架所訓練好的模型及參數。同時(shí),兼顧傳統電腦視覺(jué)和深度學(xué)習計算,從此不用再糾結到底要選那一種組合來(lái)完成電腦視覺(jué)系統了。

1611628450367640.jpg

INTEL OpenVINO架構及支援硬體加速裝置(圖片來(lái)源)

  OpenVINO主要是用來(lái)推論用的,特定模型的參數必須在其它框架(TensorFlow、Cafee、Mxnet)下訓練好才可使用。OpenVINO除了可提供硬體加速外,更提供模型優(yōu)化器(Model Optimizer)功能,可協(xié)助去除已訓練好的模型中的冗余參數,并可將32bits浮點(diǎn)數的參數降階,以犧牲數個(gè)百分點(diǎn)正確率來(lái)?yè)Q取推論速度提升數十倍到百倍
  優(yōu)化后,產(chǎn)出二個(gè)中間表示(Intermediate Representation、IR)檔案(*.bin,*.xml),再交給推論引擎(Inference Engine)依指定的加速硬體(CPU、GPU、FPGA、ASIC)進(jìn)行推論,如下圖所示:

1611628485103408.jpg

OpenVINO模型優(yōu)化及推論引擎架構(圖片來(lái)源)

影像語(yǔ)義分割原理
  OpenVINO中提供了多種預訓練及優(yōu)化好的深度學(xué)習模型,包括影像分類(lèi)(AlexNet、GooLeNet、VGG、SqueezeNet、RestNet)、物件定位(SSD、Tiny YOLO)及一種類(lèi)似全卷積神經(jīng)網(wǎng)路(Fully Convolutional Networks、FCN)的語(yǔ)義分割模型(like FCN-8s),接下來(lái)就簡(jiǎn)單說(shuō)明FCN的運作原理。
  一般傳統用於影像分類(lèi)的卷積神經(jīng)網(wǎng)路(Convolution Neural Network,CNN)是經(jīng)過(guò)多次卷積層(Convolution Layer)取出特徵圖(Feature Map)加上池化層(Pooling Layer)令影像縮小一半後,再經(jīng)過(guò)全連結層(Fully Connection Layer)產(chǎn)生不同分類(lèi)的機率,最後再找出機率最高的分類(lèi)當作輸出結果(如下圖上半部)。

1611628527271025.jpg

影像分類(lèi)(CNN)與語(yǔ)義分割(FCN)深度學(xué)習模型概念(圖片來(lái)源)

  因為全連結層把所有的空間資訊全部壓縮掉,因此無(wú)法了解到每個(gè)像素被分到那個(gè)類(lèi)別。為了,能得到每個(gè)像素的分類(lèi)(語(yǔ)義分割),Jonathan Long在2015年提出FCN論文解決了這個(gè)問(wèn)題。主要方式是把全連結層也改用卷積層,產(chǎn)出和原影像尺寸相同的熱力圖(Heatmap),用以表示每個(gè)像素屬於某一類(lèi)的機率有多高。
  如同上圖所顯示,最後會(huì )產(chǎn)出1000千張熱力圖,接著(zhù)再對1000張圖相同位置像素計算出最大機率的分類(lèi),最後將所有分類(lèi)結果組成一張新的圖即為語(yǔ)義分割結果圖。
  原始影像(image)經(jīng)多次卷積(conv)及池化(pool),到了pool5時(shí)影像尺寸已到了原尺寸的1/32,此時(shí)再經(jīng)二次卷積(conv6,conv7)後,最後將影像上采樣(Upsample)放大32倍,即可得語(yǔ)義分割結果圖FCN-32s(如下圖所示)。這樣的結果非常粗糙,為了得到更精細結果,可把conv7結果放大2倍加上pool4後再放大16倍,就可得到更精細的結果圖FCN-16s。

1611628551719338.jpg

FCN不同上采樣語(yǔ)義分割結果(圖片來(lái)源)

  同理,將高(pool3)、中(2倍pool4)、低(4倍conv7)解析度的內容加在一起,再放大就可得到FCN-8s更高精度的語(yǔ)義分割圖。
  雖然FCN得到的結果和真實(shí)內容(Ground truth)分割正確度還有滿(mǎn)大的差距,但此方法卻是開(kāi)創(chuàng )以卷積神經(jīng)網(wǎng)路達成語(yǔ)義分割最具代表性的算法,同時(shí)也是電腦視覺(jué)最頂級研討會(huì )CVPR 2015最佳論文。這幾年陸續有多種算法被推出,但大部份仍是仿效此種多重解析度整合方式改良而得。
OpenVINO安裝執行
  接下就開(kāi)始說(shuō)明如何以Intel電腦視覺(jué)推論及神經(jīng)網(wǎng)路(深度學(xué)習)優(yōu)化工具包「OpenVINO」土炮自駕車(chē)的視覺(jué)系統。首先到OpenVINO官網(wǎng),如下圖所示,按下左上角黃色按鈕,依所需的作業(yè)系統(Windows,Liunx)下載工作包并依指示將開(kāi)發(fā)環(huán)境(Visual Studio 2015/2017,GCC)安裝完成。

  雖然官方指定要Windows 10 64bit,Intel Core 6~8代CPU才能執行,經(jīng)實(shí)測在Windows 7 64bit/Intel Core i5 480M(i5第一代筆電用CPU)、Visual Studio 2017(含MSBuild)環(huán)境下還是可以順利編譯及執行。

#以Windows+Visual Studio2017

組合安裝為例:
  可參考官網(wǎng)提供的網(wǎng)址,預設軟體開(kāi)發(fā)工具包(SDK)會(huì )安裝在C:Intel路徑下,而主要開(kāi)發(fā)工具會(huì )安裝在:computer_vision_sdk_XXXX.X.XXXdeployment_tools(XXXX表示版本)
  其中較重要的內容包括以下四點(diǎn):
  computer_vision_algorithms
  傳統視覺(jué)算法
  inference_engine
  推論引擎及相關(guān)范例程式
  intel_models
  預先訓練模型
  model_optimizer
  模型優(yōu)化器
  安裝完成後,開(kāi)啟
  inference_enginesamplesbuild_2017ALL_BUILD.vcxproj
  經(jīng)編譯後即可在
  inference_enginebinintel64Release路徑下找到所有編譯好的范例執行檔。
  接著(zhù)可在
  inference_enginesamplessegmentation_sample路徑下找到本次土炮自駕車(chē)的視覺(jué)系統所需用到的范例程式,而程式主要工作內容包括下面步驟:
  *載入推論引擎插件(Plugin)
  *讀取由模型優(yōu)化產(chǎn)出的中間檔(*.xml,*.bin)
  *配置輸入和輸出內容
  *載入模型給插件
  *產(chǎn)生推論需求
  *準備輸入
  *進(jìn)行推論
  *處理輸出

1611628585752909.png

Intel OpenVINO官網(wǎng)畫(huà)面(圖片來(lái)源)

  若不想了解程式碼及工作細節的人亦可直接拿來(lái)用,只要準備好輸入的影像即可得到已做好語(yǔ)義分割的結果影像。目前OpenVINO提供二種預先訓練及優(yōu)化好的語(yǔ)義分割模型,分別為deployment_toolsintel_models路徑下的semantic-segmentation-adas-0001(20類(lèi))和road-segmentation-adas-0001(4類(lèi))。
  前者提供較多的分類(lèi)包括道路、人行道、建物、墻壁、籬笆、電線(xiàn)桿、紅綠燈、交通號志、植物、地面、天空、行人、騎士、汽車(chē)、卡車(chē)、公車(chē)、列車(chē)、機車(chē)、自行車(chē)、自己的車(chē)頭等20類(lèi);後者僅分道路、人行道、標線(xiàn)和背景共4類(lèi);單純使用CPU時(shí),前者推論時(shí)間約為後者十倍左右。
  使用時(shí)主要有兩個(gè)參數,-i輸入影像名稱(chēng),-m模型名稱(chēng),指定時(shí)須包含完整路徑。另外預設是使用CPU計算,所以只接受32bit浮點(diǎn)數(FP32)而不接受16bit浮點(diǎn)數(FP16)。輸入影像尺寸不據,而在20類(lèi)語(yǔ)義分割時(shí)輸出影像尺寸為2048×1024像素,而4分類(lèi)時(shí)為896×512像素。輸出檔名固定為out_0.bmp(如下圖所示)。

1611628693277596.jpg

自駕車(chē)影像語(yǔ)義分割范例執行結果(圖片來(lái)源:Jack提供)

  由於CPU計算時(shí)會(huì )受作業(yè)系統是否忙碌影響,所以同一張影像計算每次推論時(shí)間都會(huì )有所不同。當在Windows 7 64bit/Intel Core i5 480M 2.6GHz CPU/2GB RAM環(huán)境下測試時(shí),20分類(lèi)推論時(shí)間大約在3.7~4.3秒,4分類(lèi)則在0.3~0.4秒左右,推論時(shí)間和影像內容復雜度無(wú)關(guān)。後續若改成高階CPU或GPU後相信推論時(shí)間肯定能大幅縮短。完整執行范例指令如下所示:
20類(lèi)語(yǔ)義分割指令:
  segmentation_sample-iC:Intelsample_picinput_image.bmp-m
  C:Intelcomputer_vision_sdk_XXXX.X.XXXdeployment_toolsintel_modelssemantic-segmentation-adas-0001FP32semantic-segmentation-adas-0001.xml
  4類(lèi)語(yǔ)義分割指令:
  segmentation_sample-iC:Intelsample_picinput_image.bmp-
  mC:Intelcomputer_vision_sdk_XXXX.X.XXXdeployment_toolsintel_modelsroad-segmentation-adas-0001FP32road-segmentation-adas-0001.xml
OpenVINO實(shí)例應用
  接著(zhù),在網(wǎng)路上隨機收集一些道路影像,包括白天、晚上、郊區、市區、遠近鏡頭等,并用二種模型進(jìn)行測試影像語(yǔ)義分割,其結果如下圖所示,左為原始影像,中為20分類(lèi),右為4分類(lèi)。從結果來(lái)看,大致還分得還不錯,像(b)中圖汽車(chē)和卡車(chē)重疊及自身車(chē)頭,(c)的道路和人行道雖然顏色及紋理很像,都能分得很好。不過(guò)晚上的影像就有些小誤判,可能和影像過(guò)暗及物件過(guò)小影響。

1611628721459670.jpg

自駕車(chē)影像語(yǔ)義分割測試結果。左為原始影像,中為20分類(lèi),右為4分類(lèi)(圖片來(lái)源:Jack提供)

  為了進(jìn)一步了解這兩種模型對類(lèi)似道路場(chǎng)景是否能適用,另外收集了公園步道(g)、賣(mài)場(chǎng)彎道(h)、客廳走道(i)、百貨公司走道(j)、候機室走道(k)進(jìn)行測試(結果如下圖所示)。由測試結果來(lái)看,在20分類(lèi)時(shí)(g)的天空、地面、植物、建物算是正確分辨,而紅黑磚路則被當成人行道(淺紫色),(h)、(k)勉強能分出道路(深紫色),(i)、(j)則把道路當成人行道(淺紫色)也勉強可以算對,(j)、(k)中的行人(暗紅色)都有正確被辨別出,但(i)的沙發(fā)則被誤判為行人和汽車(chē)(藍色)。
  在4分類(lèi)時(shí)(g)、(h)、(k)比較能分辨出道路(淺紫色),(h)甚至還能正確認出地面標線(xiàn)(暗藍色),而(i)、(j)則是完全無(wú)法辨識,全部都被當成背景(深紫色)。所以當測試影像是室內或非正常道路時(shí),誤判率明顯提高,歸究其原因應該是訓練的資料集中并沒(méi)有這些類(lèi)型的影像,加上室內光滑地面有大量反光及擺放大量物件造成影響。若想應用這些模型在室內場(chǎng)景,則需要另外大量收集相關(guān)影像重新標注後再重新訓練,才能讓正確率有所提升。

1611628745660857.jpg

非標準道路影像語(yǔ)義分割測試結果。左為原始影像,中為20分類(lèi),右為4分類(lèi)(圖片來(lái)源:Jack提供)

#小結

  Intel所提供的開(kāi)放(免費)電腦視覺(jué)推論及神經(jīng)網(wǎng)路(深度學(xué)習)優(yōu)化工具包「OpenVINO」讓不懂電腦視覺(jué)和深度學(xué)習原理的小白可以在很短的時(shí)間上手,不必擔心如何建置開(kāi)發(fā)平臺、選擇深度學(xué)習框架、訓練及優(yōu)化模型和硬體加速等問(wèn)題,只需利用預先訓練及優(yōu)化過(guò)的語(yǔ)義分割模型,瞬間就可土炮出一組看起來(lái)很專(zhuān)業(yè)的自駕車(chē)視覺(jué)分析系統。
  若覺(jué)得執行效能不佳,未來(lái)還可輕松從CPU移植到GPU、FPGA甚至Maker最?lèi)?ài)的Movidius神經(jīng)計算棒(VPU),實(shí)在讓使用者方便許多,而其它更多更方便的功能就有賴(lài)大家親自體驗一下羅!



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>