python人脸识别表情检测器(2):基本框架的制作
很好,資源包都下載好了,什么w(゚Д゚)w,還沒有?你已經(jīng)過時(shí)辣,關(guān)注我,即可看見關(guān)于python表情檢測(cè)器的內(nèi)容(滑稽)
全民制作人們,大家好,我是練習(xí)時(shí)常兩年半(強(qiáng)行兩年半)的程序愛好者,你們懂的,喜歡 吃,喝,拉,撒。music~
如果你還沒有下載好,那么可以看我的文章了解到一些要安裝的包,這里聲明一下,表情檢測(cè)器的內(nèi)容是從一另一位人的文章里面看到的,但是基本的算法很那個(gè)人不一樣,是我自己的版本。
本篇文章適合一些學(xué)習(xí)了python,卻不知道怎么用的大神(小白)們使用哦~
好的,我們先創(chuàng)建一個(gè)類,還有這個(gè)函數(shù)的基本框架,代碼如下
在我講解之前,真的很推薦先看我之前的一個(gè)文章(滑稽),那里面有講解需要的語(yǔ)句。這個(gè)框架主要是生成一個(gè)攝像頭和加載必要的數(shù)據(jù)和包。這個(gè)就是基礎(chǔ)的東西了。那么繼續(xù),因?yàn)槲覀兊娜四樧R(shí)別還沒有弄完。 接下來的步驟就是獲取攝像頭獲取的數(shù)據(jù),取灰度,給dlib識(shí)別,把dlib給出的數(shù)據(jù)再給cv2,對(duì)視頻本身進(jìn)行處理,美滋滋。
def test(self):while(self.cap.isOpened):#當(dāng)攝像頭打開的時(shí)候flag, im_rd = self.cap.read()#這一行是用來提取拿到的數(shù)據(jù)的k = cv2.waitKey(1)#這里是讓循環(huán)延遲1毫秒img_gray = cv2.cvtColor(im_rd, cv2.COLOR_RGB2GRAY)#這里讓被提取的數(shù)據(jù)取灰度dets=self.detector(img_gray,0)#這里給dlib之前加載的檢測(cè)處理,識(shí)別圖片中的人臉這個(gè)的主要就還是處理圖片+識(shí)別圖片,那么之后就是識(shí)別出臉之后加一些騷操作了,比如是框出你的臉蛋。WOW,想想都覺得很酷呢,所以,只要關(guān)注我,不錯(cuò)過其他python騷操作(滑稽)。那么就加上騷操作之后, 會(huì)長(zhǎng)成什么亞子呢?
if (len(dets))!=0:for i in range(len(dets)):for k, d in enumerate(dets):cv2.rectangle(im_rd, (d.left(), d.top()), (d.right(), d.bottom()), (0, 0, 255))#框出人臉的外形shape = self.predictor(im_rd, d)#記錄人臉68點(diǎn)的數(shù)據(jù)for i in range(68):cv2.circle(im_rd, (shape.part(i).x, shape.part(i).y), 2, (0, 255, 0), -1, 8)#圈出臉上的68點(diǎn)cv2.putText(im_rd, str(i), (shape.part(i).x, shape.part(i).y), cv2.FONT_HERSHEY_SIMPLEX, 0.5,(255, 255, 255))#把數(shù)字標(biāo)上68點(diǎn)嘿!騷操作來了,是時(shí)候拉一拉你身邊的老鐵,分享一下。運(yùn)行一下自己看一下吧!那么我們把整個(gè)代碼拿出來,給你看一下把。
import cv2 import dlib import numpy from sklearn import svmclass Face_Learn():def __init__(self):self.detector=dlib.get_frontal_face_detector()#加載dlib檢測(cè)器self.predictor=dlib.shape_predictor("lian xi shi chang liang nian ban")#自己加載地址self.cap=cv2.VideoCapture(0)#連接攝像頭self.cap.set(10,0)def test(self):while(self.cap.isOpened):flag, im_rd = self.cap.read()#獲取圖像k = cv2.waitKey(1)#一毫秒的延遲img_gray = cv2.cvtColor(im_rd, cv2.COLOR_RGB2GRAY)#取圖像灰度dets=self.detector(img_gray,0)#檢測(cè)是否有臉font = cv2.FONT_HERSHEY_SIMPLEX#加載顯示要用的字體if (len(dets))!=0:#如果有臉for i in range(len(dets)):#對(duì)每一個(gè)臉挨個(gè)的處理for k, d in enumerate(dets):#獲取臉的特征值cv2.rectangle(im_rd, (d.left(), d.top()), (d.right(), d.bottom()), (0, 0, 255))#框出人臉shape = self.predictor(im_rd, d)#獲取臉68點(diǎn)的坐標(biāo)值for i in range(68):cv2.circle(im_rd, (shape.part(i).x, shape.part(i).y), 2, (0, 255, 0), -1, 8)#用圓圈分布在68點(diǎn)上cv2.putText(im_rd, str(i), (shape.part(i).x, shape.part(i).y), cv2.FONT_HERSHEY_SIMPLEX, 0.5,(255, 255, 255))#將數(shù)字分布在68點(diǎn)cv2.imshow("camera",im_rd)#顯示出圖像 if __name__ == "__main__":face=Face_Learn()face.test()整個(gè)代碼就寫完了,其中很多代碼都來自Qian, Andrew. “from_video.PyAndrew_Qian/Dlib人臉表情識(shí)別 - 碼云 Gitee.com.” 碼云,gitee.com/Andrew_Qian/face/blob/master/from_video.py. 不過我加了一些自己的理解以及注釋,不過在繼續(xù)往后寫的時(shí)候,基本的算法就是不一樣的。
好了,在今后的文章中我還準(zhǔn)備了,我自己寫代碼,寫文章的原創(chuàng)文章【滑稽】
總結(jié)
以上是生活随笔為你收集整理的python人脸识别表情检测器(2):基本框架的制作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: M1版MacBookAir使用情况(供购
- 下一篇: Mac用户学Python-Day1:安装