安裝Anaconda環(huán)境
訪問Anaconda網(wǎng)站下載最新版本的Anaconda for Windows。
Anaconda平臺網(wǎng)站下載頁面。
注意:確保選擇Python 3.6版本和相應(yīng)的體系結(jié)構(gòu)(32位或64位)。
安裝Anaconda環(huán)境及其默認(rèn)值設(shè)置。
Anaconda平臺的高級版安裝選項(xiàng)窗口。
確保保留“將Anaconda添加到我的PATH環(huán)境變量”選項(xiàng)取消選擇。
一個窗口,顯示使用Anaconda平臺安裝Microsoft Visual Studio代碼安裝的選項(xiàng)。
本教程不需要安裝“Microsoft Visual Studio Code”,因?yàn)樗鼘⑹褂肧pyder IDE環(huán)境以Python編程。
繼續(xù)并選擇在出現(xiàn)時跳過安裝選項(xiàng)。
一些程序?qū)⑹俏彝ㄟ^設(shè)置過程安裝:Anaconda Prompt,Anaconda Navigator和Spyder IDE。
完成安裝后,在Windows任務(wù)欄中搜索“Anaconda Prompt”并打開桌面應(yīng)用程序。
在搜索框中顯示Anaconda Prompt桌面應(yīng)用程序的Windows任務(wù)欄。
使用Anaconda提示
要測試Anaconda命令是否正常工作,請運(yùn)行以下代碼。
測試Anaconda命令是否正常運(yùn)行所需的特定代碼。
此過程中,為Python 3.5版本創(chuàng)建了一個新的Anaconda環(huán)境。
使用Anaconda安裝程序設(shè)置了Python 3.6版本,但出于兼容性原因,我們將使用帶有Open CV3的Python 3.5版本分布。
創(chuàng)建新環(huán)境
使用Anaconda創(chuàng)建新環(huán)境所需的特定代碼。
你會找到一個輸出如下所示的例子:
使用Anaconda激活新環(huán)境所需的代碼輸出示例。
Anaconda將安裝一些新包;只需輸入‘y’表示是,然后按回車鍵繼續(xù)安裝。
在下一步中,我們將安裝更多的包,所以讓Anaconda經(jīng)銷商安裝所需的包,否則它可能會沒有與Python正確集成。
安裝完成后,環(huán)境被激活:
在Anaconda中激活確認(rèn)環(huán)境的特定代碼。
如果安裝成功完成,您會注意到‘(base)’環(huán)境已更改為新環(huán)境。
這表示新環(huán)境已激活并且Anaconda已將‘$ PATH’變量更改為‘C:/Users/Akshay/Anaconda3/envs/MyOpenCV’位置。現(xiàn)在所有未來的安裝都只適用于這個特定的環(huán)境。
Python版本現(xiàn)在也應(yīng)該顯示為Python 3.5而不是系統(tǒng)版本。
確認(rèn)Anaconda平臺當(dāng)前正在運(yùn)行的Python版本的特定代碼。
安裝OpenCV3和依賴項(xiàng)
首先,安裝NumPy庫進(jìn)行科學(xué)計(jì)算。
安裝NumPy庫所需的特定代碼。
然后安裝anaconda-client。
安裝anaconda-client所需的特定代碼。
最后,安裝OpenCV3(由于它的大小,可能需要一些時間才能下載庫。)
在Anaconda平臺中安裝OpenCV3所需的特定代碼。
現(xiàn)在使用Anaconda安裝并運(yùn)行Spyder IDE for Python。
在Windows任務(wù)欄中搜索“Anaconda Navigator”并打開它。
從那里可以選擇新環(huán)境并安裝Spyder。
Anaconda平臺應(yīng)用程序頁面的屏幕截圖。
顯示Spyder位置的屏幕截圖Anaconda平臺中的環(huán)境。
安裝Spyder后,通過選擇啟動來打開程序。/p》
人臉檢測算法
確保OpenCV平臺在Python中運(yùn)行。您可以使用以下代碼:
確認(rèn)OpenCV平臺所需的特定代碼在Python中正常運(yùn)行。
如果它去了如上所示的下一行沒有返回錯誤,那么你將設(shè)置為繼續(xù)下一步。
你需要下載所需的Python腳本(.pv),帶有faces的圖像(。 jpg)和本文末尾提供的XML格式的Haar級聯(lián)分類器(.xml)。
注意:請確保將所有這些文件保存在同一文件夾中以方便訪問。
Haar級聯(lián)分類器背后的理論有點(diǎn)復(fù)雜,為了簡化它,基本上它們是包含OpenCB檢測對象所需的所有數(shù)據(jù)的XML文件,如本例中的面部。
分類器通過機(jī)器學(xué)習(xí)方法進(jìn)行訓(xùn)練,以檢測圖像中的模式,以識別其中的面部。
‘文件瀏覽器選項(xiàng)卡’w ill允許您導(dǎo)航到保存先前文件的文件夾。
您可以使用以下代碼檢查當(dāng)前工作目錄:
確認(rèn)當(dāng)前工作目錄所需的特定代碼。
如果代碼輸出文件存儲位置的文件夾位置,那么你就可以了。
代碼細(xì)分
包含將用于面部檢測的XML文件和圖像的特定代碼。
由于設(shè)置了一個文件夾,其中包含所有必需文件作為當(dāng)前工作目錄,因此可以搜索文件名沒有完整路徑的情況。
為此項(xiàng)目選擇的XML文件用于檢測直接面向攝像機(jī)的面。
如果可以使用不同的分類器,期望。
指定的特定代碼分類器。
此時,我們創(chuàng)建了級聯(lián)分類器并使用我們的XML文件對其進(jìn)行初始化。這會加載所需的數(shù)據(jù)以檢測變量‘haar_face_cascade’中的面。
將照片轉(zhuǎn)換為灰度所需的特定代碼。
現(xiàn)在使用OpenCV的庫函數(shù)可以將使用的photo.jpg轉(zhuǎn)換為灰度。
注意:大多數(shù)圖像機(jī)器學(xué)習(xí)操作都以灰度顯示。
執(zhí)行人臉檢測算法所需的特定代碼。
上面的函數(shù)執(zhí)行人臉檢測算法,可以分解為:
detectMultiScale:檢測對象的常規(guī)函數(shù)。
灰度:將照片轉(zhuǎn)換為灰度顏色。
scaleFactor:補(bǔ)償
minSize:可能的最小對象大小,任何小于通過此函數(shù)指定的對象的對象都將被忽略。
minNeighbors:定義需要在窗口周圍檢測到的面部圖案的數(shù)量,以將空間聲明為面。 注意:建議將此函數(shù)的值設(shè)置為0,然后逐漸增加它以查看輸出如何變化。
上述函數(shù)值為設(shè)置為最常用的那些。
鼓勵嘗試使用不同的值來找到最佳設(shè)置。
執(zhí)行該功能時,矩形標(biāo)記面的位置在圖像中。它還提供矩形左上角的坐標(biāo)(x,y)及其寬度(w)和高度(h)。
可以使用以下代碼提取信息:
提取值所需的特定代碼用于標(biāo)記照片中檢測到的面部的矩形。
我們使用這些值來使用cv.rectange函數(shù)在面周圍繪制一個矩形。
Anaconda平臺在照片中檢測到的面部周圍繪制矩形所需的特定代碼。
最后,我們使用檢測到的面部顯示圖像,并等待用戶按下一個鍵。
人臉檢測結(jié)果
我們首先在band.jpg照片上測試算法。
使用Anaconda正確執(zhí)行人臉檢測的示例。
當(dāng)我們運(yùn)行程序時,控制臺應(yīng)該回復(fù)“找到5個面孔!”并輸出帶有矩形的照片,表示其中面部的位置。
對這個家庭進(jìn)行了第二次測試照片。
Anaconda的一個例子歪曲圖像中的面孔。
該程序在本次審判中歪曲了服裝作為面孔因?yàn)榕c第一張照片不同,所有樂隊(duì)成員與相機(jī)的距離相同 - 父母離照片的距離遠(yuǎn)遠(yuǎn)超過照片中的孩子。通過將比例因子調(diào)低至1.3,可以輕松解決此問題。
Anaconda的第二個例子正確識別圖像中的面部。
程序現(xiàn)在可以正確識別圖像中的面部。
由于此程序基于機(jī)器學(xué)習(xí),因此永遠(yuǎn)不會提供100%的準(zhǔn)確性。如果您在大量圖像樣本上測試算法,您會發(fā)現(xiàn)它適用于大多數(shù)但不是所有情況。此外,根據(jù)照片,需要調(diào)整 detectMultiScale 函數(shù)中的參數(shù)以避免誤報(bào)。
最終代碼
1. import cv2
2.
3. # Specify the image path for face detection and XML file for the cascade
4. photo_path = “band.jpg”
5. cascade_path = “haarcascade_frontalface.xml”
6.
7. # Initialise the Haar Cascade Classifier with the XML file
8. haar_face_cascade = cv2.CascadeClassifier(cascade_path)
9.
10. # Read the photo and convert to grayscale
11. photo = cv2.imread(photo_path)
12. grayscale = cv2.cvtColor(photo, cv2.COLOR_BGR2GRAY)
13.
14. # Detect faces in the photo using OpenCV library
15. faces = haar_face_cascade.detectMultiScale(
16. grayscale,
17. scaleFactor = 1.1,
18. minNeighbors = 5,
19. minSize = (30, 30)
20. )
21.
22. print(“Found {0} faces!”.format(len(faces)))
23.
24. # Draw a rectangle around the faces
25. for (x, y, w, h) in faces:
26. cv2.rectangle(photo, (x, y), (x+w, y+h), color = (0, 255, 0), thickness = 2)
27.
28. cv2.imshow(“Faces found”, photo)
29. cv2.waitKey(0)
-
python
+關(guān)注
關(guān)注
56文章
4825瀏覽量
86263 -
面部檢測
+關(guān)注
關(guān)注
1文章
4瀏覽量
5903
發(fā)布評論請先 登錄
為什么無法使用圖像文件夾執(zhí)行對象檢測Python演示?
請問是否可以使用單個輸入圖像運(yùn)行人臉檢測MTCNN Python演示?
華為云 Flexus X 實(shí)例評測使用體驗(yàn)——Anaconda 環(huán)境安裝

使用Python實(shí)現(xiàn)xgboost教程
ANACONDA——關(guān)于發(fā)布數(shù)據(jù)應(yīng)用程序的新簡單方法

評論