最近疫情被隔離在家,準(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)問題,我這里在安裝命令中將版本號寫了出來。
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了。
下載好訓(xùn)練模型之后放在自己本地,一會在調(diào)用訓(xùn)練模型的時候直接調(diào)用就OK了。導(dǎo)入opencv模塊,注意這里導(dǎo)入的名稱是cv2。
獲取訓(xùn)練好的數(shù)據(jù)模型(haarcascade_frontalface_default.xml這就是我們前面從github上面下載的)。
讀取需要分析的原始圖片。
對讀取的pic.jpg圖片做灰度處理。
識別檢測一下women.jpeg圖片中的人臉的個數(shù)是多少個。
檢測出的人臉的信息都存在faces的數(shù)組中,遍歷一下人臉信息做處理。
顯示識別出的人臉位置。
3、效果 這是在Google上面找的一張照片作為素材,照片中總共有三個人物,下面是原照片。 經(jīng)過我們的分析以后,發(fā)現(xiàn)了三張人臉,并且在人臉部分進(jìn)行了標(biāo)記處理。 至此,通過機(jī)器學(xué)習(xí)做的一個簡單的人臉識別的功能就完成了,后面還會分享一些學(xué)習(xí)過程中更深層次的東西,感謝大家一直的關(guān)注! 「Python 集中營」,只做知識分享 ! |
|