最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于OpenCV和Gradio實(shí)現(xiàn)簡(jiǎn)單的人臉識(shí)別詳解

 更新時(shí)間:2024年04月08日 11:44:07   作者:Livingbody  
這篇文章主要為大家詳細(xì)介紹了如何基于OpenCV和Gradio實(shí)現(xiàn)簡(jiǎn)單的人臉識(shí)別功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下

環(huán)境配置

  • gradio 安裝 pip install gradio
  • cv2 安裝 pip install python-opencv

實(shí)驗(yàn)原理

cv2有預(yù)訓(xùn)練模型face_cascade,可以對(duì)人臉進(jìn)行檢測(cè),檢測(cè)到人臉,繪制框框標(biāo)識(shí)。

完成檢測(cè),調(diào)用cv2進(jìn)行顯示。

程序設(shè)計(jì)

# -*- coding: utf-8 -*-
"""
Created on Sun Apr 10 17:11:06 2022

@author: liujianjian
"""
import gradio as gr
import time
import cv2

#############這里需要添加絕對(duì)路徑###################
pathf = './haarcascades/haarcascade_frontalface_alt.xml'
pathe = './haarcascades/haarcascade_eye.xml'
###########################################

1.上傳圖片

上傳圖片采用gradio,直接上傳即可,或者可加入demo圖片,供選擇。

demo = gr.Interface(
    face_rec,
    gr.Image(),
    "image",    
    examples=["images/1.jpg", "images/2.jpg", "images/3.jpg", "images/4.jpg"],
)

2.人臉識(shí)別

人臉識(shí)別簡(jiǎn)單,復(fù)制配置文件到本地,加載進(jìn)去即可。

    # 轉(zhuǎn)為灰度圖
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    # 創(chuàng)建人臉識(shí)別分類(lèi)器
    face_cascade = cv2.CascadeClassifier('./haarcascades/haarcascade_frontalface_default.xml')
    face_cascade.load('./haarcascades/haarcascade_frontalface_default.xml')
    # 創(chuàng)建人眼識(shí)別分類(lèi)器
    eye_cascade = cv2.CascadeClassifier('./haarcascades/haarcascade_eye.xml')
    face_cascade.load('./haarcascades/haarcascade_eye.xml')
    # 檢測(cè)人臉
    faces = face_cascade.detectMultiScale(gray,
                                          scaleFactor=1.15,
                                          minNeighbors=3,
                                          flags=cv2.IMREAD_GRAYSCALE,
                                          minSize=(40, 40))

3.繪制方框

就是繪制方框了,繪制顯示即可。

    # 在人臉周?chē)L制方框
    for (x, y, w, h) in faces:
        img = cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 2)
    # 進(jìn)行眼部檢測(cè)
    eyes = eye_cascade.detectMultiScale(gray,
                                        scaleFactor=1.1,
                                        minNeighbors=3,
                                        flags=cv2.IMREAD_GRAYSCALE,
                                        minSize=(3, 3))
    for (ex, ey, ew, eh) in eyes:
        # 繪制眼部方框
        img = cv2.rectangle(img, (ex, ey), (ex + ew, ey + eh), (0, 255, 0), 2)

4.保存預(yù)測(cè)結(jié)果

調(diào)用cv2.imwrite即可,注意圖像轉(zhuǎn)換。

cv2.imwrite(f"result/{time.time_ns()}.jpg", cv2.cvtColor(img, cv2.COLOR_BGR2RGB))

5.最后運(yùn)行g(shù)radio的lauch

if __name__ == "__main__":
    demo.launch()

完整代碼

# -*- coding: utf-8 -*-
"""
Created on Sun April 4 17:11:06 2023

@author: liujianjian
"""
import gradio as gr
import time
import cv2

#############這里需要添加絕對(duì)路徑###################
pathf = './haarcascades/haarcascade_frontalface_alt.xml'
pathe = './haarcascades/haarcascade_eye.xml'
###########################################

# 人臉檢測(cè)函數(shù)
def face_rec(img):
    # 轉(zhuǎn)為灰度圖
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    # 創(chuàng)建人臉識(shí)別分類(lèi)器
    face_cascade = cv2.CascadeClassifier('./haarcascades/haarcascade_frontalface_default.xml')
    face_cascade.load('./haarcascades/haarcascade_frontalface_default.xml')
    # 創(chuàng)建人眼識(shí)別分類(lèi)器
    eye_cascade = cv2.CascadeClassifier('./haarcascades/haarcascade_eye.xml')
    face_cascade.load('./haarcascades/haarcascade_eye.xml')
    # 檢測(cè)人臉
    faces = face_cascade.detectMultiScale(gray,
                                          scaleFactor=1.15,
                                          minNeighbors=3,
                                          flags=cv2.IMREAD_GRAYSCALE,
                                          minSize=(40, 40))

    # 在人臉周?chē)L制方框
    for (x, y, w, h) in faces:
        img = cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 2)
    # 進(jìn)行眼部檢測(cè)
    eyes = eye_cascade.detectMultiScale(gray,
                                        scaleFactor=1.1,
                                        minNeighbors=3,
                                        flags=cv2.IMREAD_GRAYSCALE,
                                        minSize=(3, 3))
    for (ex, ey, ew, eh) in eyes:
        # 繪制眼部方框
        img = cv2.rectangle(img, (ex, ey), (ex + ew, ey + eh), (0, 255, 0), 2)
    
    cv2.imwrite(f"result/{time.time_ns()}.jpg", cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    return img


demo = gr.Interface(
    face_rec,
    gr.Image(),
    "image",    
    examples=["images/1.jpg", "images/2.jpg", "images/3.jpg", "images/4.jpg"],
)

if __name__ == "__main__":
    demo.launch()

項(xiàng)目地址: https://github.com/livingbody/face_det_cv2

以上就是基于OpenCV和Gradio實(shí)現(xiàn)簡(jiǎn)單的人臉識(shí)別詳解的詳細(xì)內(nèi)容,更多關(guān)于OpenCV Gradio人臉識(shí)別的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python selenium頁(yè)面加載慢超時(shí)的解決方案

    Python selenium頁(yè)面加載慢超時(shí)的解決方案

    這篇文章主要介紹了Python selenium頁(yè)面加載慢超時(shí)的解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Djanog admin 顯示圖片及觸發(fā)器講解

    Djanog admin 顯示圖片及觸發(fā)器講解

    這篇文章主要為大家介紹了Djanog admin 顯示圖片及觸發(fā)器講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • 一行代碼讓 Python 的運(yùn)行速度提高100倍

    一行代碼讓 Python 的運(yùn)行速度提高100倍

    python一直被病垢運(yùn)行速度太慢,但是實(shí)際上python的執(zhí)行效率并不慢,慢的是python用的解釋器Cpython運(yùn)行效率太差。這篇文章主要介紹了一行代碼讓 Python 的運(yùn)行速度提高100倍的相關(guān)知識(shí),需要的朋友可以參考下
    2018-10-10
  • python獲取當(dāng)前git的repo地址的示例代碼

    python獲取當(dāng)前git的repo地址的示例代碼

    大家好,當(dāng)談及版本控制系統(tǒng)時(shí),Git是最為廣泛使用的一種,而Python作為一門(mén)多用途的編程語(yǔ)言,在處理Git倉(cāng)庫(kù)時(shí)也展現(xiàn)了其強(qiáng)大的能力,本文給大家介紹了python獲取當(dāng)前git的repo地址的方法,需要的朋友可以參考下
    2024-09-09
  • python psutil庫(kù)的使用示例

    python psutil庫(kù)的使用示例

    這篇文章主要介紹了python psutil庫(kù)的使用示例,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • python 函數(shù)嵌套及多函數(shù)共同運(yùn)行知識(shí)點(diǎn)講解

    python 函數(shù)嵌套及多函數(shù)共同運(yùn)行知識(shí)點(diǎn)講解

    在本篇文章里小編給各位整理的是一篇關(guān)于python 函數(shù)嵌套及多函數(shù)共同運(yùn)行知識(shí)點(diǎn)講解,需要的朋友們可以學(xué)習(xí)下。
    2020-03-03
  • Python3中編碼與解碼之Unicode與bytes的講解

    Python3中編碼與解碼之Unicode與bytes的講解

    今天小編就為大家分享一篇關(guān)于Python3中編碼與解碼之Unicode與bytes的講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • Python字典的核心底層原理講解

    Python字典的核心底層原理講解

    今天小編就為大家分享一篇關(guān)于Python字典的核心底層原理講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • Python3.10安裝圖文教程

    Python3.10安裝圖文教程

    本文主要介紹了Python3.10安裝圖文教程,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • python實(shí)現(xiàn)簡(jiǎn)單神經(jīng)網(wǎng)絡(luò)算法

    python實(shí)現(xiàn)簡(jiǎn)單神經(jīng)網(wǎng)絡(luò)算法

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單神經(jīng)網(wǎng)絡(luò)算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03

最新評(píng)論

湘潭县| 台前县| 和硕县| 甘泉县| 九龙坡区| 龙胜| 和田县| 安远县| 定安县| 成武县| 永仁县| 龙口市| 托克逊县| 兴宁市| 泽州县| 博白县| 镶黄旗| 鹿邑县| 南宫市| 英德市| 本溪| 康乐县| 平罗县| 文化| 西乌| 分宜县| 砀山县| 邢台市| 英山县| 揭西县| 紫阳县| 潢川县| 西昌市| 如东县| 桂东县| 靖安县| 浑源县| 吉隆县| 新津县| 宝山区| 娱乐|