安裝Anaconda環(huán)境
訪問Anaconda網站下載最新版本的Anaconda for Windows。
Anaconda平臺網站下載頁面。
注意:確保選擇Python 3.6版本和相應的體系結構(32位或64位)。
安裝Anaconda環(huán)境及其默認值設置。
Anaconda平臺的高級版安裝選項窗口。
確保保留“將Anaconda添加到我的PATH環(huán)境變量”選項取消選擇。
一個窗口,顯示使用Anaconda平臺安裝Microsoft Visual Studio代碼安裝的選項。
本教程不需要安裝“Microsoft Visual Studio Code”,因為它將使用Spyder IDE環(huán)境以Python編程。
繼續(xù)并選擇在出現時跳過安裝選項。
一些程序將是我通過設置過程安裝:Anaconda Prompt,Anaconda Navigator和Spyder IDE。
完成安裝后,在Windows任務欄中搜索“Anaconda Prompt”并打開桌面應用程序。
在搜索框中顯示Anaconda Prompt桌面應用程序的Windows任務欄。
使用Anaconda提示
要測試Anaconda命令是否正常工作,請運行以下代碼。
測試Anaconda命令是否正常運行所需的特定代碼。
此過程中,為Python 3.5版本創(chuàng)建了一個新的Anaconda環(huán)境。
使用Anaconda安裝程序設置了Python 3.6版本,但出于兼容性原因,我們將使用帶有Open CV3的Python 3.5版本分布。
創(chuàng)建新環(huán)境
使用Anaconda創(chuàng)建新環(huán)境所需的特定代碼。
你會找到一個輸出如下所示的例子:
使用Anaconda激活新環(huán)境所需的代碼輸出示例。
Anaconda將安裝一些新包;只需輸入‘y’表示是,然后按回車鍵繼續(xù)安裝。
在下一步中,我們將安裝更多的包,所以讓Anaconda經銷商安裝所需的包,否則它可能會沒有與Python正確集成。
安裝完成后,環(huán)境被激活:
在Anaconda中激活確認環(huán)境的特定代碼。
如果安裝成功完成,您會注意到‘(base)’環(huán)境已更改為新環(huán)境。
這表示新環(huán)境已激活并且Anaconda已將‘$ PATH’變量更改為‘C:/Users/Akshay/Anaconda3/envs/MyOpenCV’位置。現在所有未來的安裝都只適用于這個特定的環(huán)境。
Python版本現在也應該顯示為Python 3.5而不是系統版本。
確認Anaconda平臺當前正在運行的Python版本的特定代碼。
安裝OpenCV3和依賴項
首先,安裝NumPy庫進行科學計算。
安裝NumPy庫所需的特定代碼。
然后安裝anaconda-client。
安裝anaconda-client所需的特定代碼。
最后,安裝OpenCV3(由于它的大小,可能需要一些時間才能下載庫。)
在Anaconda平臺中安裝OpenCV3所需的特定代碼。
現在使用Anaconda安裝并運行Spyder IDE for Python。
在Windows任務欄中搜索“Anaconda Navigator”并打開它。
從那里可以選擇新環(huán)境并安裝Spyder。
Anaconda平臺應用程序頁面的屏幕截圖。
顯示Spyder位置的屏幕截圖Anaconda平臺中的環(huán)境。
安裝Spyder后,通過選擇啟動來打開程序。/p》
確保OpenCV平臺在Python中運行。您可以使用以下代碼:
確認OpenCV平臺所需的特定代碼在Python中正常運行。
如果它去了如上所示的下一行沒有返回錯誤,那么你將設置為繼續(xù)下一步。
你需要下載所需的Python腳本(.pv),帶有faces的圖像(。 jpg)和本文末尾提供的XML格式的Haar級聯分類器(.xml)。
注意:請確保將所有這些文件保存在同一文件夾中以方便訪問。
Haar級聯分類器背后的理論有點復雜,為了簡化它,基本上它們是包含OpenCB檢測對象所需的所有數據的XML文件,如本例中的面部。
分類器通過機器學習方法進行訓練,以檢測圖像中的模式,以識別其中的面部。
‘文件瀏覽器選項卡’w ill允許您導航到保存先前文件的文件夾。
您可以使用以下代碼檢查當前工作目錄:
確認當前工作目錄所需的特定代碼。
如果代碼輸出文件存儲位置的文件夾位置,那么你就可以了。
代碼細分
包含將用于面部檢測的XML文件和圖像的特定代碼。
由于設置了一個文件夾,其中包含所有必需文件作為當前工作目錄,因此可以搜索文件名沒有完整路徑的情況。
為此項目選擇的XML文件用于檢測直接面向攝像機的面。
如果可以使用不同的分類器,期望。
指定的特定代碼分類器。
此時,我們創(chuàng)建了級聯分類器并使用我們的XML文件對其進行初始化。這會加載所需的數據以檢測變量‘haar_face_cascade’中的面。
將照片轉換為灰度所需的特定代碼。
現在使用OpenCV的庫函數可以將使用的photo.jpg轉換為灰度。
注意:大多數圖像機器學習操作都以灰度顯示。
執(zhí)行人臉檢測算法所需的特定代碼。
上面的函數執(zhí)行人臉檢測算法,可以分解為:
detectMultiScale:檢測對象的常規(guī)函數。
灰度:將照片轉換為灰度顏色。
scaleFactor:補償
minSize:可能的最小對象大小,任何小于通過此函數指定的對象的對象都將被忽略。
minNeighbors:定義需要在窗口周圍檢測到的面部圖案的數量,以將空間聲明為面。 注意:建議將此函數的值設置為0,然后逐漸增加它以查看輸出如何變化。
上述函數值為設置為最常用的那些。
鼓勵嘗試使用不同的值來找到最佳設置。
執(zhí)行該功能時,矩形標記面的位置在圖像中。它還提供矩形左上角的坐標(x,y)及其寬度(w)和高度(h)。
可以使用以下代碼提取信息:
提取值所需的特定代碼用于標記照片中檢測到的面部的矩形。
我們使用這些值來使用cv.rectange函數在面周圍繪制一個矩形。
Anaconda平臺在照片中檢測到的面部周圍繪制矩形所需的特定代碼。
最后,我們使用檢測到的面部顯示圖像,并等待用戶按下一個鍵。
人臉檢測結果
我們首先在band.jpg照片上測試算法。
使用Anaconda正確執(zhí)行人臉檢測的示例。
當我們運行程序時,控制臺應該回復“找到5個面孔!”并輸出帶有矩形的照片,表示其中面部的位置。
對這個家庭進行了第二次測試照片。
Anaconda的一個例子歪曲圖像中的面孔。
該程序在本次審判中歪曲了服裝作為面孔因為與第一張照片不同,所有樂隊成員與相機的距離相同 - 父母離照片的距離遠遠超過照片中的孩子。通過將比例因子調低至1.3,可以輕松解決此問題。
Anaconda的第二個例子正確識別圖像中的面部。
程序現在可以正確識別圖像中的面部。
由于此程序基于機器學習,因此永遠不會提供100%的準確性。如果您在大量圖像樣本上測試算法,您會發(fā)現它適用于大多數但不是所有情況。此外,根據照片,需要調整 detectMultiScale 函數中的參數以避免誤報。
最終代碼
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
+關注
關注
55文章
4774瀏覽量
84386 -
面部檢測
+關注
關注
1文章
4瀏覽量
5858
發(fā)布評論請先 登錄
相關推薦
評論