python人脸识别表情检测器(2):基本框架的制作
很好,資源包都下載好了,什么w(゚Д゚)w,還沒有?你已經過時辣,關注我,即可看見關于python表情檢測器的內容(滑稽)
全民制作人們,大家好,我是練習時常兩年半(強行兩年半)的程序愛好者,你們懂的,喜歡 吃,喝,拉,撒。music~
如果你還沒有下載好,那么可以看我的文章了解到一些要安裝的包,這里聲明一下,表情檢測器的內容是從一另一位人的文章里面看到的,但是基本的算法很那個人不一樣,是我自己的版本。
本篇文章適合一些學習了python,卻不知道怎么用的大神(小白)們使用哦~
好的,我們先創建一個類,還有這個函數的基本框架,代碼如下
在我講解之前,真的很推薦先看我之前的一個文章(滑稽),那里面有講解需要的語句。這個框架主要是生成一個攝像頭和加載必要的數據和包。這個就是基礎的東西了。那么繼續,因為我們的人臉識別還沒有弄完。 接下來的步驟就是獲取攝像頭獲取的數據,取灰度,給dlib識別,把dlib給出的數據再給cv2,對視頻本身進行處理,美滋滋。
def test(self):while(self.cap.isOpened):#當攝像頭打開的時候flag, im_rd = self.cap.read()#這一行是用來提取拿到的數據的k = cv2.waitKey(1)#這里是讓循環延遲1毫秒img_gray = cv2.cvtColor(im_rd, cv2.COLOR_RGB2GRAY)#這里讓被提取的數據取灰度dets=self.detector(img_gray,0)#這里給dlib之前加載的檢測處理,識別圖片中的人臉這個的主要就還是處理圖片+識別圖片,那么之后就是識別出臉之后加一些騷操作了,比如是框出你的臉蛋。WOW,想想都覺得很酷呢,所以,只要關注我,不錯過其他python騷操作(滑稽)。那么就加上騷操作之后, 會長成什么亞子呢?
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點的數據for i in range(68):cv2.circle(im_rd, (shape.part(i).x, shape.part(i).y), 2, (0, 255, 0), -1, 8)#圈出臉上的68點cv2.putText(im_rd, str(i), (shape.part(i).x, shape.part(i).y), cv2.FONT_HERSHEY_SIMPLEX, 0.5,(255, 255, 255))#把數字標上68點嘿!騷操作來了,是時候拉一拉你身邊的老鐵,分享一下。運行一下自己看一下吧!那么我們把整個代碼拿出來,給你看一下把。
import cv2 import dlib import numpy from sklearn import svmclass Face_Learn():def __init__(self):self.detector=dlib.get_frontal_face_detector()#加載dlib檢測器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)#檢測是否有臉font = cv2.FONT_HERSHEY_SIMPLEX#加載顯示要用的字體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點的坐標值for i in range(68):cv2.circle(im_rd, (shape.part(i).x, shape.part(i).y), 2, (0, 255, 0), -1, 8)#用圓圈分布在68點上cv2.putText(im_rd, str(i), (shape.part(i).x, shape.part(i).y), cv2.FONT_HERSHEY_SIMPLEX, 0.5,(255, 255, 255))#將數字分布在68點cv2.imshow("camera",im_rd)#顯示出圖像 if __name__ == "__main__":face=Face_Learn()face.test()整個代碼就寫完了,其中很多代碼都來自Qian, Andrew. “from_video.PyAndrew_Qian/Dlib人臉表情識別 - 碼云 Gitee.com.” 碼云,gitee.com/Andrew_Qian/face/blob/master/from_video.py. 不過我加了一些自己的理解以及注釋,不過在繼續往后寫的時候,基本的算法就是不一樣的。
好了,在今后的文章中我還準備了,我自己寫代碼,寫文章的原創文章【滑稽】
總結
以上是生活随笔為你收集整理的python人脸识别表情检测器(2):基本框架的制作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: M1版MacBookAir使用情况(供购
- 下一篇: 关于医疗影像的mhd和dcm格式图像的读