本次Jetbot實(shí)驗(yàn)全程都在 Jetson Nano 2GB 開發(fā)套件上面運(yùn)行。在組裝Jetbot教學(xué)系統(tǒng)之前,最好先把Jetbot系安裝到Jetson Nano 2GB上,這樣可以先對(duì)每個(gè)元件進(jìn)行獨(dú)立的測(cè)試,確認(rèn)元件能正確工作之后再進(jìn)行組裝的步驟。
在2019年NVIDIA推出Jetson Nano邊緣計(jì)算設(shè)備之后,這套開源的Jetbot智能無人車教學(xué)系統(tǒng)也隨之而生,為市場(chǎng)提供一套最優(yōu)性價(jià)比的教學(xué)系統(tǒng)。
這是個(gè)非常有用的插件,是DeepStream 5.0添加的功能,對(duì)nvinfer(主檢測(cè)器)和nvtracker附加的元數(shù)據(jù)執(zhí)行分析,目前主要針對(duì)涉及感興趣區(qū)域(ROI)的過濾、過度擁擠檢測(cè)、方向檢測(cè)和跨線統(tǒng)計(jì)等四大功能。
很多人驚艷于deepstream-app里面那個(gè)可以同時(shí)檢測(cè)到車子的顏色、品牌、種類的實(shí)驗(yàn),這的確是個(gè)非常亮眼的應(yīng)用,在開發(fā)包范例中的deepstream-test2就是這項(xiàng)功能的范例代碼。
本文以上一期Python版的deepstream-teat1為基礎(chǔ),分別在輸入與輸出添加功能的兩個(gè)擴(kuò)展應(yīng)用:deepstream-teat1-usbcam與deepstream-teat1-rtsp-out,分別將輸入源從視頻文件變成USB攝像頭,以及將輸出從顯示屏變成RTSP視頻流。
前面已經(jīng)介紹過關(guān)于DeepStream各種輸入源的使用方式,而且Jetson Nano 2GB上開啟4路輸入(兩個(gè)攝像頭+兩個(gè)視頻文件),都能得到25FPS以上的實(shí)時(shí)性能。
前面介紹過使用deepstream-app工具,啟用多個(gè)視頻進(jìn)行車輛與行人的識(shí)別,并且啟動(dòng)“追蹤”功能進(jìn)行物件追蹤的高級(jí)功能,接下來就教大家如何在deepstream-app里調(diào)用USB與CSI攝像頭,并且與先前的視頻同時(shí)啟用來進(jìn)行物件識(shí)別的應(yīng)用。
在計(jì)算機(jī)視覺的應(yīng)用中,“識(shí)別”只是一個(gè)相當(dāng)入門的技術(shù),相信很多人在執(zhí)行深度學(xué)習(xí)推理應(yīng)用中,經(jīng)常產(chǎn)生的質(zhì)疑就是“識(shí)別出的類別,有什么用途呢”?
前一篇文章為大家講述了DeepStream的應(yīng)用定位、單機(jī)工作流、實(shí)際部署圖,以及完整的軟件棧的內(nèi)容,可以對(duì)其有一個(gè)框架性的了解。接下來大家可以思考一下,DeepStream可以開發(fā)什么應(yīng)用?
DeepStream是一套集NVIDIA最尖端技術(shù)精髓于一身的智能視頻分析(Intelligent Video Analytics)套件,從深度神經(jīng)網(wǎng)絡(luò)和其他復(fù)雜的處理任務(wù)引入到流處理管道中,以實(shí)現(xiàn)對(duì)視頻和其他傳感器數(shù)據(jù)的接近實(shí)時(shí)分析工作。
下圖就是使用labelimg這個(gè)開源工具對(duì)圖像進(jìn)行標(biāo)注的任務(wù),將每個(gè)標(biāo)注的圖框給與指定的單一分類,每張圖形都可能有多個(gè)分類與多個(gè)物件,標(biāo)框的原則也會(huì)影響將來的推理結(jié)果,如果標(biāo)框過程比較粗糙(邊界界定不清楚),后面得到的結(jié)果也會(huì)比較粗糙。
然而,真正要完成一個(gè)深度學(xué)習(xí)的項(xiàng)目,還是必須完成前面階段的模型訓(xùn)練部分,本文的重點(diǎn)就是帶著大家,利用Hello AI World所提供的資源,開始進(jìn)行簡(jiǎn)單的圖像分類應(yīng)用的模型訓(xùn)練。
本系列最后一個(gè)需要說明的推理識(shí)別應(yīng)用,就是語(yǔ)義分割(semantic segmentation)的推理識(shí)別,字面上經(jīng)常造成初學(xué)者的誤解,以為這是語(yǔ)音語(yǔ)義識(shí)別相關(guān)的應(yīng)用,F(xiàn)在我們看看下面的一張圖片,就比較能理解語(yǔ)義分割的應(yīng)用是什么。
如果您跟著我們仔細(xì)走過前面9篇“Hello AI World”文章,相信應(yīng)該都把整個(gè)jetson-inference的結(jié)構(gòu)與邏輯都摸清楚了,接下來的重點(diǎn),就是在目前深度學(xué)習(xí)中比較普及的“物件檢測(cè)”應(yīng)用。
為自己開發(fā)合適的應(yīng)用代碼。因此本文就延續(xù)上一篇文章來向大家介紹“Hello AI World”圖像分類代碼。
前面我們花了不少篇幅,以“10行python代碼”為基礎(chǔ),更深入地講解了Hello AI World項(xiàng)目的輸入(videoSource)、輸出(videoOutput)以及參數(shù)解析的功能,就是為了讓大家能更了解這個(gè)項(xiàng)目提供的工具是如此好用。
本文的目的就協(xié)助大家,以前面的“10lines.py”代碼為基礎(chǔ),擴(kuò)充解析參數(shù)的能力,這樣就能直接在指令行透過給定參數(shù)的方式,來改變所要的功能,這樣的方式也才能加入腳本之中,根據(jù)不同條件去進(jìn)行不同的任務(wù)。
上一篇文章為大家深入地講解了videoSource()這個(gè)非常強(qiáng)大的輸入源處理模塊,本文的重點(diǎn)將聚焦在videoOutput()這個(gè)輸出標(biāo)的處理模塊。
如果你認(rèn)為這兩個(gè)功能只是簡(jiǎn)單地負(fù)責(zé)數(shù)據(jù)接收與顯示的話,這就大大浪費(fèi)了項(xiàng)目作者的心血結(jié)晶,因此我們?cè)谶M(jìn)入本項(xiàng)目另外兩個(gè)深度學(xué)習(xí)推理應(yīng)用之前,先要把這兩個(gè)幕后功臣的內(nèi)涵展現(xiàn)出來,因?yàn)檫@與后面的應(yīng)用息息相關(guān)。
在上一篇文章中,我們已經(jīng)體驗(yàn)了”10行Python代碼的威力”,可以明顯感覺到 ”Hello AI World”的內(nèi)容絕非一般應(yīng)用的“Hello World”那么簡(jiǎn)單。在本篇文章中,我們將為大家介紹如何更換模型以獲得不同的效果。