欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

樹莓派上利用python+opencv+dlib實(shí)現(xiàn)嘴唇檢測的實(shí)現(xiàn)

 更新時(shí)間:2021年10月31日 09:29:13   作者:若水上善666  
本文主要介紹了樹莓派上利用python+opencv+dlib實(shí)現(xiàn)嘴唇檢測的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

樹莓派上利用python+opencv+dlib實(shí)現(xiàn)嘴唇檢測

項(xiàng)目的目標(biāo)是在樹莓派上運(yùn)行python代碼以實(shí)現(xiàn)嘴唇檢測,本來以為樹莓派的硬件是可以流暢運(yùn)行實(shí)時(shí)檢測的,但是實(shí)驗(yàn)的效果表明樹莓派實(shí)時(shí)檢測是不可行,后面還需要改進(jìn)。

實(shí)驗(yàn)的效果如下:

在這里插入圖片描述

1、安裝相關(guān)庫文件

這里需要用的庫有opencv,numpy,dlib。

1.1 安裝opencv

pip3 install opencv-python

1.2 安裝numpy

樹莓派中自帶了numpy庫

pip3 install numpy

1.3 安裝dlib

在樹莓派的系統(tǒng)里面安裝dlib比較簡單,只需要pip install就可以了,但是在window系統(tǒng)中會有報(bào)錯(cuò),這個(gè)時(shí)候我們就需要安裝pip install dlib-19.17.99-cp37-cp37m-win_amd64.whl就可以了, 需要注意的是: 不同的python版本要安裝對應(yīng)版本的dlib,也就是后面的“cp37-cp37m”,查看對應(yīng)python能安裝的版本號,可以使用命令行:pip debug --verbose,可以顯示合適的安裝版本號。
在樹莓派上我安裝了cmake和dlib

pip3 install cmake
pip3 install dlib

2、代碼部分

dlib提取人臉特征中包含68個(gè)點(diǎn)

在這里插入圖片描述

顎點(diǎn)= 0–16
右眉點(diǎn)= 17–21
左眉點(diǎn)= 22–26
鼻點(diǎn)= 27–35
右眼點(diǎn)= 36–41
左眼點(diǎn)= 42–47
口角= 48–60
嘴唇分?jǐn)?shù)= 61–67

from gpiozero import LED
from time import sleep
from subprocess import check_call
import cv2
import numpy as np
import dlib

print(cv2.__version__)
def search_cap_num():
    for i in range(2000):
        cap = cv2.VideoCapture(i)
        cap_opened = cap.isOpened()
        if cap_opened == True:
            return i
        
cap_num = search_cap_num()
cap = cv2.VideoCapture(cap_num)

detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")

# 規(guī)定上嘴唇和下嘴唇連線的路徑
lip_order_dlib = np.array([[48, 49, 50, 51, 52, 53, 54, 64, 63, 62, 61, 60, 48],
                           [48, 59, 58, 57, 56, 55, 54, 64, 65, 66, 67, 60, 48]]) - 48
lip_order_num = lip_order_dlib.shape[1]

while 1:
    landmarks_lip = []
    ret, frame = cap.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    rects = detector(gray, 1)
    print('faces number:' + str(len(rects)))
    for (i, rect) in enumerate(rects):
        # 標(biāo)記人臉中的68個(gè)landmark點(diǎn)
        landmarks = predictor(gray, rect)  
        for n in range(48, 68):
            x = landmarks.part(n).x
            y = landmarks.part(n).y
            landmarks_lip.append((x, y))
            # cv2.circle(img=img, center=(x, y), radius=3, color=(0, 255, 0), thickness=-1)
        for m in range(lip_order_num-1):
            cv2.line(frame, landmarks_lip[lip_order_dlib[0][m]], landmarks_lip[lip_order_dlib[0][m+1]], color=(0, 255, 0), thickness=2, lineType=8)
        for n in range(lip_order_num-1):
            cv2.line(frame, landmarks_lip[lip_order_dlib[1][n]], landmarks_lip[lip_order_dlib[1][n+1]], color=(0, 255, 0), thickness=2, lineType=8)
    cv2.imshow("face", frame)
    if cv2.waitKey(1) & 0xff == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()
# check_call(['sudo', 'poweroff'])

3、實(shí)驗(yàn)效果

請?zhí)砑訄D片描述

效果總體而言比較卡頓,感覺分析一張圖片花費(fèi)時(shí)間在秒量級上。
要是僅僅是顯示攝像頭的圖片還是很快的,沒有任何卡頓,也就是說如果代碼中不存在rects = detector(gray, 1)這種獲取人臉區(qū)域的檢測命令,那么運(yùn)行速度大大提高,后面需要思考怎么在人臉檢測下提高代碼運(yùn)行速度。

到此這篇關(guān)于樹莓派上利用python+opencv+dlib實(shí)現(xiàn)嘴唇檢測的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python+opencv+dlib嘴唇檢測內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中如何以空格為分割符,給列表賦予數(shù)值

    python中如何以空格為分割符,給列表賦予數(shù)值

    這篇文章主要介紹了python中如何以空格為分割符,給列表賦予數(shù)值問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python Pymysql實(shí)現(xiàn)數(shù)據(jù)存儲的示例

    Python Pymysql實(shí)現(xiàn)數(shù)據(jù)存儲的示例

    本文主要介紹了Python Pymysql實(shí)現(xiàn)數(shù)據(jù)存儲的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Python超越函數(shù)積分運(yùn)算以及繪圖實(shí)現(xiàn)代碼

    Python超越函數(shù)積分運(yùn)算以及繪圖實(shí)現(xiàn)代碼

    今天小編就為大家分享一篇Python超越函數(shù)積分運(yùn)算以及繪圖實(shí)現(xiàn)代碼,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 簡單理解Python中的裝飾器

    簡單理解Python中的裝飾器

    這篇文章主要介紹了Python中的裝飾器,是Python入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-07-07
  • YOLO?v5引入解耦頭部完整步驟

    YOLO?v5引入解耦頭部完整步驟

    網(wǎng)上有很多添加解耦頭的博客,在此記錄下我使用解耦頭對YOLOv5改進(jìn),下面這篇文章主要給大家介紹了關(guān)于YOLO?v5引入解耦頭部的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Python的常用基礎(chǔ)模塊之sys模塊詳解

    Python的常用基礎(chǔ)模塊之sys模塊詳解

    這篇文章主要介紹了Python的常用基礎(chǔ)模塊之sys模塊詳解,sys 模塊提供訪問 Python 解釋器使用或維護(hù)的屬性,以及與 Python 解釋器進(jìn)行交互的方法,需要的朋友可以參考下
    2023-08-08
  • CentOS7安裝Python3的教程詳解

    CentOS7安裝Python3的教程詳解

    這篇文章主要介紹了CentOS7安裝Python3的教程,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-04-04
  • Pytorch 實(shí)現(xiàn)凍結(jié)指定卷積層的參數(shù)

    Pytorch 實(shí)現(xiàn)凍結(jié)指定卷積層的參數(shù)

    今天小編就為大家分享一篇Pytorch 實(shí)現(xiàn)凍結(jié)指定卷積層的參數(shù),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • PyTorch中tensor.backward()函數(shù)的詳細(xì)介紹及功能實(shí)現(xiàn)

    PyTorch中tensor.backward()函數(shù)的詳細(xì)介紹及功能實(shí)現(xiàn)

    backward()?函數(shù)是PyTorch框架中自動求梯度功能的一部分,它負(fù)責(zé)執(zhí)行反向傳播算法以計(jì)算模型參數(shù)的梯度,這篇文章主要介紹了PyTorch中tensor.backward()函數(shù)的詳細(xì)介紹,需要的朋友可以參考下
    2024-02-02
  • python利用JMeter測試Tornado的多線程

    python利用JMeter測試Tornado的多線程

    這篇文章主要介紹了python利用JMeter測試Tornado的多線程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01

最新評論