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

分享

如何檢測照片中共有多少張人臉,機(jī)器學(xué)習(xí)!

 Python集中營 2022-10-10 發(fā)布于甘肅

最近疫情被隔離在家,準(zhǔn)備研究一下python的機(jī)器學(xué)習(xí),看了一些資料。也逛了逛論壇。

機(jī)器學(xué)習(xí)的實例真是太多了,讓人眼花繚亂,更加懵逼了。通俗來說,主要兩個方面,比較淺層次的就是機(jī)器學(xué)習(xí),最后才是深度學(xué)習(xí)。

立即前往微信小程序【知識星球】提問>>>

主要過程就是通過一定的算法來訓(xùn)練大量的數(shù)據(jù)產(chǎn)生一個數(shù)據(jù)模型,最后再利用這個模型來分析或計算出出最接近于實際情況的結(jié)果。

大概理解了意思之后,我就不再去深究了,直接搞個實例來試試看什么效果。至于更深層級的東西,我比較喜歡在實戰(zhàn)中慢慢體會。

1、準(zhǔn)備

今天實踐的是python中的opencv這個庫,至于這個庫官方肯定比我解釋的更加準(zhǔn)確,下面是官方的解釋。

OpenCV是一個基于Apache2.0許可(開源)發(fā)行的跨平臺計算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,可以運行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。

沒有opencv環(huán)境的將opencv先安裝一下,為避免版本不一樣導(dǎo)致出現(xiàn)問題,我這里在安裝命令中將版本號寫了出來。

pip install opencv-python==4.6.0.66

python解釋器使用的版本是3.8.6,我這里測試使用的是這兩個版本是沒有問題的。

2、代碼

下面是整個業(yè)務(wù)的實現(xiàn)過程,haarcascade_frontalface_default.xml訓(xùn)練模型我是直接在girhub上面下載的。所以這里并沒有對數(shù)據(jù)訓(xùn)練的實現(xiàn),使用的是別人訓(xùn)練好的模型。

后面的學(xué)習(xí)中,我會慢慢訓(xùn)練出自己的模型來使用,其實不用自己訓(xùn)練數(shù)據(jù)模型的話代碼量還是比較少的。下面是github的訓(xùn)練模型的下載地址,目前已經(jīng)2100多的star了。

https://github.com/opencv/opencv/tree/master/data/haarcascades

下載好訓(xùn)練模型之后放在自己本地,一會在調(diào)用訓(xùn)練模型的時候直接調(diào)用就OK了。導(dǎo)入opencv模塊,注意這里導(dǎo)入的名稱是cv2。

import cv2

獲取訓(xùn)練好的數(shù)據(jù)模型(haarcascade_frontalface_default.xml這就是我們前面從github上面下載的)。

face_cascade = cv2.CascadeClassifier(r'./haarcascade_frontalface_default.xml')

讀取需要分析的原始圖片。

image = cv2.imread(r'./pic.jpg')

對讀取的pic.jpg圖片做灰度處理。

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

識別檢測一下women.jpeg圖片中的人臉的個數(shù)是多少個。

faces = face_cascade.detectMultiScale(

    gray,

    scaleFactor=1.15,

    minNeighbors=5,

    minSize=(55),

    flags=cv2.CASCADE_SCALE_IMAGE

)

這時實際上已經(jīng)檢測完成了,使用len函數(shù)計算一下檢測出的人臉個數(shù)。

print("當(dāng)前圖片中共發(fā)現(xiàn){}張人臉".format(len(faces)))

檢測出的人臉的信息都存在faces的數(shù)組中,遍歷一下人臉信息做處理。

for (x, y, w, h) in faces:

    # 在識別出的人臉部位畫上圓圈

    cv2.circle(image, (int((x + x + w) / 2), int((y + y + h) / 2)), int(w / 2), (02550), 2)

顯示識別出的人臉位置。

cv2.imshow("Face Nums", image)

cv2.waitKey(0)

3、效果

這是在Google上面找的一張照片作為素材,照片中總共有三個人物,下面是原照片。

經(jīng)過我們的分析以后,發(fā)現(xiàn)了三張人臉,并且在人臉部分進(jìn)行了標(biāo)記處理。

至此,通過機(jī)器學(xué)習(xí)做的一個簡單的人臉識別的功能就完成了,后面還會分享一些學(xué)習(xí)過程中更深層次的東西,感謝大家一直的關(guān)注!

「Python 集中營」,只做知識分享 !

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多