欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Python怎么實(shí)現(xiàn)AI人臉識(shí)別

這篇文章主要介紹“Python怎么實(shí)現(xiàn)AI人臉識(shí)別”,在日常操作中,相信很多人在Python怎么實(shí)現(xiàn)AI人臉識(shí)別問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”P(pán)ython怎么實(shí)現(xiàn)AI人臉識(shí)別”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

創(chuàng)新互聯(lián)專(zhuān)注骨干網(wǎng)絡(luò)服務(wù)器租用10余年,服務(wù)更有保障!服務(wù)器租用,綿陽(yáng)主機(jī)托管 成都服務(wù)器租用,成都服務(wù)器托管,骨干網(wǎng)絡(luò)帶寬,享受低延遲,高速訪(fǎng)問(wèn)。靈活、實(shí)現(xiàn)低成本的共享或公網(wǎng)數(shù)據(jù)中心高速帶寬的專(zhuān)屬高性能服務(wù)器。

1、買(mǎi)臺(tái)小“電腦”

既然要做人臉識(shí)別,那得找臺(tái)帶攝像頭的小電腦啊。首先得價(jià)格便宜,簡(jiǎn)單搜了下,基本有以下幾個(gè)選擇:

  • 樹(shù)莓派4: ARM系統(tǒng),生態(tài)好。價(jià)格合適,55刀。CPU在3個(gè)中最好,算力0.1TFLOPS

  • K210:RISC-V的(非ARM),價(jià)格是最實(shí)惠的,299元。算力有0.8TOPS

  • Jetson Nano:ARM系統(tǒng),比樹(shù)莓派4還貴,但是多一個(gè)英偉達(dá)的GPU(當(dāng)然是丐版的GPU),價(jià)格99刀。算力0.47TFLOPS

這3個(gè)里面,考慮到人臉識(shí)別應(yīng)該有更多的AI屬性,那么帶GPU能做AI推理不是更香么,于是就選擇了英偉達(dá)的Jetson Nano開(kāi)發(fā)板(主要也是想先入門(mén)英偉達(dá)的GPU派系,誰(shuí)叫現(xiàn)在NVIDIA比較香呢)。

Python怎么實(shí)現(xiàn)AI人臉識(shí)別

2、啟動(dòng)系統(tǒng)

這里需要先把“系統(tǒng)image”刷到 tf 卡里面,然后把tf卡插到開(kāi)發(fā)板上,然后開(kāi)機(jī)啟動(dòng)。啟動(dòng)有2個(gè)點(diǎn)需要注意:

  1. 跳線(xiàn)帽,需要插上(不然電源點(diǎn)不亮)。

  2. 第一次開(kāi)機(jī)會(huì)卡住,需要重啟一次。

Python怎么實(shí)現(xiàn)AI人臉識(shí)別

Python怎么實(shí)現(xiàn)AI人臉識(shí)別

啟動(dòng)后,發(fā)現(xiàn)是個(gè)帶界面的 Ubuntu系統(tǒng),接上鼠標(biāo)+鍵盤(pán),就是最熟悉的小電腦嘛。

連接網(wǎng)絡(luò),設(shè)置國(guó)內(nèi)Ubuntu源,安裝 jtop 命令(因?yàn)閚ano不能敲 nvidia-smi 命令)。

3、原來(lái)CUDA是個(gè)編譯器

既然選了英偉達(dá)的GPU開(kāi)發(fā)板,剛好了解一下CUDA是什么。

3.1 寫(xiě)個(gè)CUDA程序

可以看到是C語(yǔ)言的,一共就2個(gè)函數(shù)。一個(gè)main函數(shù),一個(gè)useCUDA函數(shù)。

要跑起來(lái),需要先進(jìn)行編譯。發(fā)現(xiàn)不使用gcc,而是使用 nvcc 編譯器,有意思。

Jetson Nano的image已經(jīng)安裝了nvcc,所以可以直接用,只是使用前需要設(shè)置一下path。

export CUDA_HOME=/usr/local/cuda-10.0
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-10.0/bin:$PATH

設(shè)置后,才可以敲 nvcc 命令。

于是開(kāi)始編譯:

nvcc -o main.out main.cu foo.cu  (跟gcc編譯一樣)

運(yùn)行:./main.out 即可。呵,原來(lái)CUDA是個(gè)編譯器?。ň幾g出給GPU跑的程序)。

3.2 CUDA在干嘛

普通的程序編譯出來(lái)都是給CPU跑的;寫(xiě)個(gè)程序,想給GPU跑,就得使用cuda編譯器了。畢竟咱們的這個(gè)GPU弱是弱了一點(diǎn),也有128核呢,跑這種簡(jiǎn)單的cuda程序還是OK的。

另外,CUDA還提供了一些現(xiàn)成的操作GPU的函數(shù),比如:矩陣乘法,矩陣轉(zhuǎn)置 之類(lèi)的。CUDA只能用于英偉達(dá)的GPU,用于利用GPU進(jìn)行復(fù)雜的并行計(jì)算。然后很多AI框架都是基于CUDA搞的,所以跑個(gè)cuda程序,幫助理解挺好的。

4、檢測(cè)攝像頭功能OK

這里需要使用 nvgstcapture-1.0 命令,經(jīng)查,字母gst原來(lái)是Gstreamer的縮寫(xiě)。

直接敲:

nvgstcapture-1.0

發(fā)現(xiàn)可以把攝像頭打開(kāi)了。

4.1 Gstreamer

搜了下,發(fā)現(xiàn)是一個(gè)音視頻流處理的pipeline框架。

比如Shell命令的管道符為:|

為避免沖突,Gstreamer的管道符,用了個(gè)比較像的:! 符號(hào)。

5、人臉可以正常識(shí)別

Copy了一個(gè) face_detect.py 文件。

直接運(yùn)行了:

python ./face_detect.py

發(fā)現(xiàn)就可以識(shí)別出人臉了,厲害了。。。(額,只是圖像是倒過(guò)來(lái)的)

Python怎么實(shí)現(xiàn)AI人臉識(shí)別

于是簡(jiǎn)單看了下代碼(不會(huì)Python,但是也大概能看懂),發(fā)現(xiàn)有一個(gè)圖像模式的參數(shù) “flip_method=0”,我改成了6,發(fā)現(xiàn)圖像就轉(zhuǎn)過(guò)來(lái)正常了。

Python怎么實(shí)現(xiàn)AI人臉識(shí)別

再看了下,發(fā)現(xiàn)獲取攝像頭拍攝的圖片,還是通過(guò) Gstreamer 來(lái)實(shí)現(xiàn)的。

Python怎么實(shí)現(xiàn)AI人臉識(shí)別

6、Opencv才是隱藏的Boss?

通過(guò)上面的章節(jié),發(fā)現(xiàn)總共代碼沒(méi)幾行,怎么就能識(shí)別人臉了呢?雖然python不熟,但好在代碼少,仔細(xì)看了下:發(fā)現(xiàn)主要是調(diào)用了opencv的函數(shù)就可以識(shí)別人臉了,那說(shuō)明opencv還是得了解一下。

你看識(shí)別人臉的代碼,總共也就10行,簡(jiǎn)單過(guò)一下:

Python怎么實(shí)現(xiàn)AI人臉識(shí)別

6.1 Haar分類(lèi)器

再搜索,發(fā)現(xiàn)這里的人臉識(shí)別用的是 “Haar分類(lèi)器”這種方法實(shí)現(xiàn)的。學(xué)習(xí)了下,屬于機(jī)器學(xué)習(xí)的范疇,沒(méi)有用卷積神經(jīng)網(wǎng)絡(luò)。

7、Windows上面復(fù)現(xiàn)人臉識(shí)別

既然通過(guò)opencv就能識(shí)別人臉,那我不需要攝像頭,直接拿圖片是不是也可以跑了?于是Windows上面安裝個(gè)opencv試試。

7.1 安裝Python

去 https://www.python.org/ 下載最新的Python, 安裝后就有Python了。當(dāng)然執(zhí)行命令是 py。

7.2 pip命令

發(fā)現(xiàn)pip命令,還是不行。 找到原來(lái)在:

C:\Users\tsjsdbd\AppData\Local\Programs\Python\Python39\Scripts

這個(gè)目錄下。

于是把這個(gè)路徑,加入到了本機(jī)的環(huán)境變量里面:

Python怎么實(shí)現(xiàn)AI人臉識(shí)別

所以pip命令ok了

7.3 設(shè)置pip國(guó)內(nèi)源

vi ~/pip/pip.ini

然后設(shè)置內(nèi)容:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

7.4 安裝 opencv 包

pip install opencv-python

這條命令會(huì)同時(shí)安裝 numpy 包。

Ps:如果需要代理。設(shè)置一下

  export http_proxy=http://代理:端口
export https_proxy=http://代理:端口

7.5 重現(xiàn)Haar人臉識(shí)別

下載一個(gè)帶人臉的jpg照片,這里假設(shè)名為 face.jpg

detect.py代碼如下:

import cv2

# load model
detector=cv2.CascadeClassifier('C:/Users/t00402375/AppData/Local/Programs/Python/Python39/Lib/site-packages/cv2/data/haarcascade_frontalface_default.xml')

src = cv2.imread("./face.jpg")
cv2.namedWindow("image", cv2.WINDOW_AUTOSIZE);

# detect
gray=cv2.cvtColor(src,cv2.COLOR_BGR2GRAY)
faces=detector.detectMultiScale(gray,1.2,5)

# box
for x,y,w,h in faces:
    cv2.rectangle(src,(x,y),(x+w,y+h),(255,0,0),2)	

# show
cv2.imshow("image", src);
cv2.waitKey(0);
cv2.destroyAllWindows();

運(yùn)行就行了。

py detect.py

得到結(jié)果:

Python怎么實(shí)現(xiàn)AI人臉識(shí)別

發(fā)現(xiàn)確實(shí)可以,杠杠滴。

8、通過(guò)神經(jīng)網(wǎng)絡(luò)的人臉識(shí)別

現(xiàn)在視頻圖像的識(shí)別,一般走CNN,所以咱也得玩一遍。Jetson 開(kāi)發(fā)板,自己配套了一套 jetson-inference 的推理項(xiàng)目,就是用來(lái)跑GPU推理的。

到此,關(guān)于“Python怎么實(shí)現(xiàn)AI人臉識(shí)別”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

網(wǎng)站欄目:Python怎么實(shí)現(xiàn)AI人臉識(shí)別
標(biāo)題URL:http://chinadenli.net/article4/gigdie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站響應(yīng)式網(wǎng)站、品牌網(wǎng)站建設(shè)、定制開(kāi)發(fā)、網(wǎng)頁(yè)設(shè)計(jì)公司品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司