国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

手把手教你opencv做人臉識別(附源碼+文檔)

這篇具有很好參考價值的文章主要介紹了手把手教你opencv做人臉識別(附源碼+文檔)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、環(huán)境

pip install opencv-python

python3.9
pycharm2020
人狠話不多,直接上代碼,注釋在代碼里面,不說廢話。

二、使用Haar級聯(lián)進(jìn)行人臉檢測

測試案例:
手把手教你opencv做人臉識別(附源碼+文檔)

代碼:(記得自己到下載地址下載對應(yīng)的xml)

# coding=gbk
"""
作者:川川
@時間  : 2021/9/5 16:38
https://github.com/opencv/opencv/tree/master/data/haarcascades
"""
import cv2

# 待檢測的圖片路徑
imagepath="2.jpg"

image = cv2.imread(imagepath)#讀取圖片
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)#圖像轉(zhuǎn)換為灰度圖:

face_cascade = cv2.CascadeClassifier(r'./haarcascade_frontalface_default.xml')#加載使用人臉識別器

faces = face_cascade.detectMultiScale(gray)#檢測圖像中的所有面孔

#為每個人臉繪制一個藍(lán)色矩形
for x, y, width, height in faces:
	# 這里的color是 藍(lán) 黃 紅,與rgb相反,thickness設(shè)置寬度
    cv2.rectangle(image, (x, y), (x + width, y + height), color=(255, 0, 0), thickness=2)

# 最后,讓我們保存新圖像
cv2.imwrite("beauty_detected.jpg", image)

效果:
手把手教你opencv做人臉識別(附源碼+文檔)
效果可以看出這個效果并不是很好。

三、Haar級聯(lián)結(jié)合攝像頭

代碼:(還是用的前面得xml)

# coding=gbk
"""
攝像頭人臉識別
作者:川川
@時間  : 2021/9/5 17:15
Haar級聯(lián)結(jié)合攝像頭
"""
import cv2

#創(chuàng)建新的cam對象
cap = cv2.VideoCapture(0,cv2.CAP_DSHOW)
#初始化人臉識別器(默認(rèn)的人臉haar級聯(lián))
face_cascade = cv2.CascadeClassifier(r'./haarcascade_frontalface_default.xml')

while True:
    # 從攝像頭讀取圖像
    _, image = cap.read()
    # 轉(zhuǎn)換為灰度
    image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    # 檢測圖像中的所有人臉
    faces = face_cascade.detectMultiScale(image_gray, 1.3, 5)
    # 為每個人臉繪制一個藍(lán)色矩形
    for x, y, width, height in faces:
        cv2.rectangle(image, (x, y), (x + width, y + height), color=(255, 0, 0), thickness=2)
    cv2.imshow("image", image)
    if cv2.waitKey(1) == ord("q"):
        break

cap.release()
cv2.destroyAllWindows()

效果:
手把手教你opencv做人臉識別(附源碼+文檔)

四、使用SSD的人臉檢測

代碼:

# coding=gbk
"""
圖片人臉識別
作者:川川
@時間  : 2021/9/5 17:22
"""
import cv2
import numpy as np
# 下載鏈接:https://raw.githubusercontent.com/opencv/opencv/master/samples/dnn/face_detector/deploy.prototxt
prototxt_path = r"./deploy.prototxt.txt"
# 下載鏈接:https://raw.githubusercontent.com/opencv/opencv_3rdparty/dnn_samples_face_detector_20180205_fp16/res10_300x300_ssd_iter_140000_fp16.caffemodel
model_path =r"./res10_300x300_ssd_iter_140000_fp16.caffemodel"
model = cv2.dnn.readNetFromCaffe(prototxt_path, model_path)
image = cv2.imread("2.jpg")
h, w = image.shape[:2]
blob = cv2.dnn.blobFromImage(image, 1.0, (300, 300),(104.0, 177.0, 123.0))
model.setInput(blob)
output = np.squeeze(model.forward())
font_scale = 1.0
for i in range(0, output.shape[0]):
    confidence = output[i, 2]
    if confidence > 0.5:
        box = output[i, 3:7] * np.array([w, h, w, h])
        start_x, start_y, end_x, end_y = box.astype(np.int)
        cv2.rectangle(image, (start_x, start_y), (end_x, end_y), color=(255, 0, 0), thickness=2)
        cv2.putText(image, f"{confidence*100:.2f}%", (start_x, start_y-5), cv2.FONT_HERSHEY_SIMPLEX, font_scale, (255, 0, 0), 2)
cv2.imshow("image", image)
cv2.waitKey(0)
cv2.imwrite("beauty_detected.jpg", image)

效果:
手把手教你opencv做人臉識別(附源碼+文檔)
我們可以看到現(xiàn)在的識別效果非常好了。

五、 SSD結(jié)合攝像頭人臉檢測

代碼:

# coding=gbk
"""
作者:川川
@時間  : 2021/9/5 17:26
SSD結(jié)合攝像頭的人臉檢測
"""
import cv2
import numpy as np
prototxt_path = "deploy.prototxt.txt"
model_path = "res10_300x300_ssd_iter_140000_fp16.caffemodel"
model = cv2.dnn.readNetFromCaffe(prototxt_path, model_path)
cap = cv2.VideoCapture(0)
while True:
    _, image = cap.read()
    h, w = image.shape[:2]
    blob = cv2.dnn.blobFromImage(image, 1.0, (300, 300), (104.0, 177.0, 123.0))
    model.setInput(blob)
    output = np.squeeze(model.forward())
    font_scale = 1.0
    for i in range(0, output.shape[0]):
        confidence = output[i, 2]
        if confidence > 0.5:
            box = output[i, 3:7] * np.array([w, h, w, h])
            start_x, start_y, end_x, end_y = box.astype(np.int)
            cv2.rectangle(image, (start_x, start_y), (end_x, end_y), color=(255, 0, 0), thickness=2)
            cv2.putText(image, f"{confidence*100:.2f}%", (start_x, start_y-5), cv2.FONT_HERSHEY_SIMPLEX, font_scale, (255, 0, 0), 2)
    cv2.imshow("image", image)
    if cv2.waitKey(1) == ord("q"):
        break
cv2.destroyAllWindows()
cap.release()

效果:
手把手教你opencv做人臉識別(附源碼+文檔)
可以發(fā)現(xiàn)SSD效果特別好!

六、結(jié)語

如果你想更深了解這些原理,去讀一下opencv文檔吧,中文官方文檔如下:

https://woshicver.com/

在很多人調(diào)用xm會遇到一些坑,我在這里說一下,讀取xml的時候用相對路徑./這種,參考我的,建議不要路徑中出現(xiàn)中文,其它沒啥了。如果對你有幫助,三連支持一下,謝謝。文章來源地址http://www.zghlxwxcb.cn/news/detail-430861.html

到了這里,關(guān)于手把手教你opencv做人臉識別(附源碼+文檔)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • IT小百科之“手把手教你如何實現(xiàn)秒破加密的Office辦公文檔”

    IT小百科之“手把手教你如何實現(xiàn)秒破加密的Office辦公文檔”

    小伙伴們,有時候辛辛苦苦從網(wǎng)上下載的office文檔,剛要開心的閱讀的時候,打開才發(fā)現(xiàn)office文檔被加密了,是不是有種欲哭無淚的感覺???還有的時候自己把文件加密了,結(jié)果忘記了密碼,那更是欲哭無淚! 遇到這種尷尬的事情,有沒有什么神奇的方法可以快速找回密碼或

    2024年02月13日
    瀏覽(16)
  • 手把手教你實現(xiàn)—基于OpenCV的車流量統(tǒng)計和車速檢測代碼

    手把手教你實現(xiàn)—基于OpenCV的車流量統(tǒng)計和車速檢測代碼

    ?????????本章將實現(xiàn)了一個簡單的車輛速度估計和車流量統(tǒng)計的GUI應(yīng)用,它使用了Haar級聯(lián)檢測器和相關(guān)跟蹤器來檢測和跟蹤視頻中的車輛,并通過圖像處理和數(shù)學(xué)計算來估計車輛的速度。 ? ? ? ? 1.首先,該代碼需要cv2:用于圖像處理和計算機(jī)視覺任務(wù);dlib:用于對象

    2024年02月04日
    瀏覽(17)
  • 爬蟲實戰(zhàn)-手把手教你爬豆瓣電影 | 附詳細(xì)源碼和講解

    爬蟲實戰(zhàn)-手把手教你爬豆瓣電影 | 附詳細(xì)源碼和講解

    寫在前面的話 目前為止,你應(yīng)該已經(jīng)了解爬蟲的三個基本小節(jié): 來源:xiaqo.com ? 正文 明確需求 我們今天要爬的數(shù)據(jù)是 豆瓣電影Top250 ,是的,只有250條數(shù)據(jù),你沒猜錯。 輸入網(wǎng)址? https://movie.douban.com/top250 ?我們可以看到網(wǎng)頁長這樣: ? ? 編輯 ? 編輯 `250條數(shù)據(jù)`清清楚楚

    2024年04月08日
    瀏覽(31)
  • 手把手教你使用Python寫貪吃蛇游戲(pygame,附源碼)

    貪吃蛇游戲是有史以來最受歡迎的街機(jī)游戲之一。在這個游戲中,玩家的主要目標(biāo)是在不撞墻或不撞墻的情況下抓住最大數(shù)量的水果。在學(xué)習(xí) Python 或 Pygame 時,可以將創(chuàng)建蛇游戲視為一項挑戰(zhàn)。這是每個新手程序員都應(yīng)該接受的最好的初學(xué)者友好項目之一。學(xué)習(xí)構(gòu)建視頻游戲

    2024年02月16日
    瀏覽(23)
  • 手把手教你跑一個UVM_demo(含源碼)(一鍵復(fù)現(xiàn))

    手把手教你跑一個UVM_demo(含源碼)(一鍵復(fù)現(xiàn))

    筆記內(nèi)容對應(yīng)張強(qiáng)所著的《UVM實戰(zhàn)》。該書對UVM使用進(jìn)行了比較詳盡的介紹,并在前言中提供了書籍對應(yīng)源碼的下載網(wǎng)址,是一本帶有實操性的書籍,對新手比較友好,推薦閱讀。 學(xué)習(xí)完第二章后,我們對UVM已經(jīng)有了一個基本概念,但如何在自己的電腦上跑一個UVM deme,讓知

    2024年02月09日
    瀏覽(86)
  • 手把手教你在windows下源碼編譯Open3D

    手把手教你在windows下源碼編譯Open3D

    首先不建議windows下源碼編譯,需要用C++的可以直接下載官網(wǎng)編譯好的版本。熟悉vcpkg的,可以把open3d加到vcpkg使用,參考該博客。 cmake =3.20 python =3.6.0 visual studio =2017 Github下載open3d源碼 打開源碼,新建build文件夾 填寫你的VS版本,例vs2022(17),open3d_install_directory使用當(dāng)前路徑

    2024年02月05日
    瀏覽(24)
  • 從0到1手把手教你ASP.NET Core Web API項目配置接口文檔Swagger(一)

    從0到1手把手教你ASP.NET Core Web API項目配置接口文檔Swagger(一)

    1、雙擊打開VS2022。 2、單擊“創(chuàng)建新項目”,如下圖。 3、選擇“ASP.NET Core Web API”類型,然后單擊“下一步”,如下圖。 4、“項目名稱”此處填寫為“AllTestDemo”;“位置”此處放在E盤根目錄;“解決方案名稱”此處默認(rèn)與“項目名稱”保持一致;不勾選“將解決方案和項

    2023年04月11日
    瀏覽(30)
  • 從0到1手把手教你ASP.NET Core Web API項目配置接口文檔Swagger(二)

    從0到1手把手教你ASP.NET Core Web API項目配置接口文檔Swagger(二)

    傳送門:從0到1手把手教你ASP.NET Core Web API項目配置接口文檔Swagger(一) 我們雖然可以在輸入 /swagger 后順利的訪問 Swagger UI 頁面,但是我們發(fā)現(xiàn)每次運行項目都會默認(rèn)訪問 /weatherforecast 這個接口,想要將啟動頁設(shè)為 /swagger (或者其他頁面)就需要用到配置文件 launchSettings.

    2023年04月12日
    瀏覽(34)
  • 手把手教你使用Python實現(xiàn)推箱子小游戲(附完整源碼)

    手把手教你使用Python實現(xiàn)推箱子小游戲(附完整源碼)

    我們這個項目是一個基于Python實現(xiàn)的推箱子小游戲,名叫Sokoban: 這個游戲的目的是讓玩家,也就是大寫的 P ,推著箱子 # ,填充用小寫的 o 標(biāo)記的地面上的洞 該版本的Sokoban的規(guī)則如下: 游戲在矩形的二維網(wǎng)格上舉行,其 原點(0,0) 位于左上方 網(wǎng)格上的每個單元格可以隨時包

    2024年02月03日
    瀏覽(38)
  • 手把手教你如何在Linux下寫進(jìn)度條小程序(附源碼)

    手把手教你如何在Linux下寫進(jìn)度條小程序(附源碼)

    錄屏2023 進(jìn)入ProgressBar這個目錄之后,使用ls命令查看是否創(chuàng)建成功 編寫makefile文件是為了,使用make命令構(gòu)建我們的.c文件,生成可執(zhí)行程序 把源碼復(fù)制粘貼到我們對應(yīng)的文件中 使用vim指令先打開頭文件 按小寫i,進(jìn)入插入模式(Insert),直接拷貝上去 再按esc,直接輸入:wq(

    2024年02月04日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包