小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Jetson Nano心得分享:學(xué)習(xí)計(jì)算機(jī)視覺技術(shù)

 taotao_2016 2023-05-13 發(fā)布于北京

視覺類與對(duì)話類是人工智能技術(shù)的兩個(gè)最重要應(yīng)用領(lǐng)域,盡管ChatGPT引發(fā)對(duì)話類人工智能應(yīng)用風(fēng)潮,但視覺類的智能應(yīng)用依舊是邊緣應(yīng)用的重點(diǎn),為我們識(shí)別并收集邊緣角落的各種信息。

Jetson Nano的設(shè)備配置對(duì)視覺類應(yīng)用有明顯的優(yōu)勢(shì),包括支持兩個(gè)低功耗CSI攝像頭、內(nèi)置H.264/H.265編解碼芯片、底層攝像頭子系統(tǒng)(subsystem)等設(shè)計(jì),都是為了實(shí)現(xiàn)低能耗、高效地執(zhí)行智能視覺計(jì)算目的。

OpenCV是目前計(jì)算機(jī)視覺領(lǐng)域中使用比例最高的開源庫(kù),在Jetson Nano里提供一個(gè)支持C/C++與Python的精簡(jiǎn)版OpenCV庫(kù),主要去除關(guān)于神經(jīng)網(wǎng)絡(luò)的支持以及一些需要授權(quán)的算法。除非您很清楚自己真的需要那些額外的功能,否則這里所提供的庫(kù)是絕對(duì)能滿足一般圖像處理的需求。

顯示圖像處理結(jié)果”是遠(yuǎn)程操作計(jì)算機(jī)視覺應(yīng)用的一大困擾,大部分初學(xué)者會(huì)使用VNC或NoMachine這些圖形化遠(yuǎn)程控制軟件,來查看執(zhí)行輸出的圖像或視頻。不過使用之后就會(huì)發(fā)現(xiàn),VNC的圖像顯示效果不太流暢,NoMachine的體驗(yàn)感比較好,但是會(huì)消耗比較多的內(nèi)存資源,在內(nèi)存比較充沛的x86工作機(jī)可能比較無所謂,但是對(duì)于只有4GB內(nèi)存的Jetson Nano而言,就會(huì)比較吃緊。

熟悉Linux的開發(fā)人員,可以選擇在SSH終端搭配X11轉(zhuǎn)向的功能,來處理這個(gè)圖像顯示問題,但其他大部分SSH工具并不支持這個(gè)功能,或者需要比較復(fù)雜的配置,這對(duì)新手來說還是比較繁瑣的。

這里推薦使用vs-code上的“Remote X11 (SSH)”擴(kuò)展,來解決計(jì)算機(jī)圖像的輸出顯示問題,我們只要在“擴(kuò)展區(qū)”輸入“X11”關(guān)鍵字,就能顯示這個(gè)擴(kuò)展選項(xiàng),點(diǎn)擊安裝就可以(如下圖):

圖片

接下去執(zhí)行遠(yuǎn)程連線時(shí),選擇“Connect to Host”,然后在對(duì)話框中輸入“ssh -X 用戶名@IP”的方式(如下圖),然后按照要求輸入密碼,就能啟動(dòng)遠(yuǎn)程X11轉(zhuǎn)向的功能。

圖片

現(xiàn)在遠(yuǎn)程登錄到Jetson Nano之后,試試執(zhí)行以下調(diào)用OpenCV庫(kù)的Python代碼,簡(jiǎn)單讀取Jetson Nano自帶的VisionWorks一個(gè)范例視頻:

import cv2

FILE='/usr/share/visionworks/sources/data/pedestrians.mp4'
cap=cv2.VideoCapture(FILE)

while(cap.isOpened()):
_, frame=cap.read()
cv2.imshow('Test Play a Video', frame)
key = cv2.waitKey(1)
cap.release()

看看是否能在本機(jī)屏幕上顯示如下圖的視頻內(nèi)容?

圖片

如果可以顯示如上圖的內(nèi)容,就表示能在本機(jī)上用vs-code的X11轉(zhuǎn)向功能,控制遠(yuǎn)程的Jetson Nano去執(zhí)行OpenCV應(yīng)用。不過這里得強(qiáng)調(diào)一點(diǎn),就是這個(gè)X11轉(zhuǎn)向功能并不支持OpenGL的應(yīng)用。

接著使用OpenCV自帶Haar Cascade算法庫(kù)來體驗(yàn)基礎(chǔ)的人臉識(shí)別功能,為了避免侵犯?jìng)€(gè)人隱私問題,我們使用GAN對(duì)抗式生成網(wǎng)絡(luò)所創(chuàng)建的虛擬人臉來做示范,然后透過以下代碼讀入圖像,用OpenCV的Haar Cascade算法庫(kù)來進(jìn)行人臉識(shí)別功能。完整代碼如下:

import numpy as np
import cv2

cap = cv2.VideoCapture('/home/nvidia/GAN_Pic03.png')
# 算法的模型路徑
libHaarCascadePath='/usr/share/opencv4/haarcascades/'
# 使用“前臉(frontalface)”模型
libHaarCascadeFace='haarcascade_frontalface_default.xml'
faceCascade = cv2.CascadeClassifier(libHaarCascadePath+libHaarCascadeFace)

_, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(gray, 1.3, 5)
for (x, y, w, h) in faces:
print('Detect Face!\n')
cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)
roi_gray = gray[y : y + h, x : x + w]
roi_color = frame[y : y + h, x : x + w]
cv2.imshow('Jetson Nano的OpenCV人臉檢測(cè)Demo', frame)
cv2.waitKey()
cv2.destroyAllWindows()
cap.release()

以下是執(zhí)行的結(jié)果,藍(lán)色框框很清晰標(biāo)示出人臉的位置,讀者可以使用自己準(zhǔn)備的照片來執(zhí)行這個(gè)代碼。

圖片

我們繼續(xù)在這個(gè)臉部識(shí)別算法上添加“眼睛”的識(shí)別功能,只要在上面代碼中添加以下粗體部分的增量?jī)?nèi)容即可:

import numpy as np
import cv2

cap = cv2.VideoCapture('/home/nvidia/GAN_Pic03.png')
# 算法的模型路徑
libHaarCascadePath='/usr/share/opencv4/haarcascades/'
# 使用“前臉(frontalface)”模型
libHaarCascadeFace='haarcascade_frontalface_default.xml'
faceCascade = cv2.CascadeClassifier(libHaarCascadePath+libHaarCascadeFace)
# 使用“眼睛(eye)”模型
libHaarCascadeEye='haarcascade_eye.xml'
eyeCascade = cv2.CascadeClassifier(libHaarCascadePath+libHaarCascadeEye)

_, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(gray, 1.3, 5)
for (x, y, w, h) in faces:
# print('Detect Face!\n')
cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)
roi_gray = gray[y : y + h, x : x + w]
roi_color = frame[y : y + h, x : x + w]
eyes = eyeCascade.detectMultiScale(roi_gray)
for (ex, ey, ew, eh) in eyes:
cv2.rectangle( roi_color, (ex, ey), (ex + ew, ey + eh), (0, 255, 0), 2)
cv2.imshow('Jetson Nano的OpenCV人臉檢測(cè)Demo', frame)
cv2.waitKey()
cv2.destroyAllWindows()
cap.release()

執(zhí)行后就會(huì)如下截屏,在先前檢測(cè)到臉部的范圍內(nèi)進(jìn)行眼睛的檢測(cè),雖然精確度還有改善的空間,不過這個(gè)算法庫(kù)已經(jīng)能達(dá)到基本的要求。

圖片

以上的識(shí)別計(jì)算是OpenCV比較復(fù)雜的應(yīng)用,至于調(diào)用攝像頭、圖像格式轉(zhuǎn)換、色調(diào)空間轉(zhuǎn)換、邊緣查找、尺度縮放。。。等通用功能,在Jetson Nano所提供的精簡(jiǎn)版OpenCV都是相當(dāng)完整,對(duì)于學(xué)習(xí)計(jì)算機(jī)視覺基礎(chǔ)技術(shù)是完全足夠的。

現(xiàn)在,結(jié)合vs-code的X11轉(zhuǎn)向功能去操作Jetson Nano的OpenCV庫(kù),能讓我們隨時(shí)隨地面對(duì)各種場(chǎng)景,用C/C++或Python去開發(fā)計(jì)算機(jī)視覺類的相關(guān)應(yīng)用。【完】

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多