日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

面部口罩识别检测

發(fā)布時(shí)間:2025/3/8 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面部口罩识别检测 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

面部口罩識別檢測@人臉識別

項(xiàng)目介紹

項(xiàng)目背景:隨著新冠疫情的爆發(fā),公共衛(wèi)生防護(hù)程度被提高到空前狀態(tài)。為防止新冠病毒的交叉?zhèn)魅?#xff0c;導(dǎo)致疫情擴(kuò)散,人們在各大公共場所活動時(shí)均被要求佩戴口罩。因此,面部口罩檢測項(xiàng)目誕生。

項(xiàng)目前景:隨著公共衛(wèi)生防護(hù)程度的逐步提升,且佩戴口罩成為出入各大公共場所的前提,面部口罩檢測成為各大公共場所管理的必備操作。而隨著智能化、自動化進(jìn)程的加快,口罩面部檢測已逐步從人工向機(jī)器轉(zhuǎn)移。

項(xiàng)目價(jià)值:提高公共衛(wèi)生防護(hù)能力;節(jié)約社會資源和運(yùn)營成本;降低人力資源成本。

使用場景:公交車、地鐵站、超市、學(xué)校等各大公共場所。

……

·假正經(jīng)·

新冠疫情在中國爆發(fā),百度某團(tuán)隊(duì)率先開源口罩人臉檢測及分類模型,(極大地體現(xiàn)了百度這家公司的社會責(zé)任感),隨即一維弦防疫巡檢機(jī)器人部署清華李文正館,為學(xué)生開學(xué)保駕護(hù)航……

……

用馬校長的話講,“我對任何事情都感到好奇,想踹開門,邁開步,進(jìn)去看看到底是怎么一回事”。

出于好奇,加之某些機(jī)會(空閑+偶遇),在家寫了一個(gè)簡易的面部口罩檢測程序,即“50行代碼實(shí)現(xiàn)面部口罩檢測”。

看上去好像NB的樣子,實(shí)則是百度太良心、程序太簡易……

思路其實(shí)很簡單:


獲取圖像和人臉識別主要使用強(qiáng)大的opencv庫,而口罩檢測則使用主角庫:paddlehub。

(沒看見人,所以得喊你)

(輸出為MASK,意為佩戴了口罩)

·下面進(jìn)入快樂代碼時(shí)間 ·

以下代碼主要實(shí)現(xiàn)前兩者,即獲取圖像和人臉識別:

import cv2 face_cascade = cv2.CascadeClassifier("D:\\mask\\haarcascade_frontalface_default.xml") cap = cv2.VideoCapture(0,cv2.CAP_DSHOW)while True:ret, frame = cap.read()gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)faces = face_cascade.detectMultiScale(gray, 1.1, 5)if len(faces) > 0:for faceRect in faces:x, y, w, h = faceRectcv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)roi_gray = gray[y:y + h // 2, x:x + w]roi_color = frame[y:y + h // 2, x:x + w]cv2.imshow('frame', frame) # 展現(xiàn)file_name = "D:/mask/mask_test.png" # 圖片存儲路徑cv2.imwrite(file_name, frame) # 寫入獲取的一幀if cv2.waitKey(1) & 0xFF == ord('q'):breakcap.release() # 釋放攝像頭 cv2.destroyAllWindows()

通過opencv調(diào)取內(nèi)置攝像頭以獲取圖像,并對圖像進(jìn)行人臉識別檢測,將獲取的圖片保存在本地以便后面進(jìn)行口罩檢測。

以下代碼主要實(shí)現(xiàn)面部的口罩檢測識別:

import paddlehub as hub import cv2 module = hub.Module(name=”pyramidbox_lite_mobile_mask”) #口罩檢測模型 test_img_path = “C:\Users\Dell\Pictures\3.png”# 讀取本地圖片 input_dict = {“data”: [cv2.imread(test_img_path)]} results = module.face_detection(data=input_dict) print(results)

通過導(dǎo)入面部口罩檢測模型,讀取本地圖片并對其進(jìn)行分析檢測,從而得到是否佩戴口罩的結(jié)果。

簡單的整合一下,就形成了項(xiàng)目完整的50行代碼:

-- coding:utf-8 -- @Time : 22:53 @Author: Thomas @File :mask.py @Software : PyCharmimport paddlehub as hub import cv2 from playsound import playsoundmodule = hub.Module(name=”pyramidbox_lite_mobile_mask”) #口罩檢測模型 face_cascade = cv2.CascadeClassifier(“D:/mask/haarcascade_frontalface_default.xml”) #人臉識別分類器 capture = cv2.VideoCapture(0,cv2.CAP_DSHOW) #初始化攝像頭while(True):# 獲取一幀ret, frame = capture.read() #以幀換視頻流#灰度轉(zhuǎn)換gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)faces = face_cascade.detectMultiScale(gray, 1.1, 5)if len(faces) > 0:for faceRect in faces:x, y, w, h = faceRectcv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)roi_gray = gray[y:y + h // 2, x:x + w]roi_color = frame[y:y + h // 2, x:x + w]#口罩檢測模型cv2.imshow('frame', frame) #展現(xiàn)file_name="D:/mask/mask_test.png" #圖片存儲路徑cv2.imwrite(file_name, frame) #寫入獲取的一幀input_dict = {"data": [cv2.imread(file_name)]}results = module.face_detection(data=input_dict)#判斷是否檢測到人臉和是否戴口罩mask = results[0]["data"]if len(mask) == 0:print("未檢測到人臉!請將臉移入攝像頭視角范圍內(nèi)!")else:mask_test = mask[0]['label']if mask_test == "NO MASK":playsound('D:\\mask\\11750.wav') # 若檢測到未戴口罩則發(fā)出警報(bào)print(mask_test)else:print(mask_test)cv2.imwrite(file_name,frame)if cv2.waitKey(3) & 0xff == 27:print("退出程序!謝謝使用!")capture.release() #釋放攝像頭qcv2.destroyAllWindows() #刪除建立的全部窗口break

準(zhǔn)確率

官方介紹的準(zhǔn)確率為:口罩人臉檢測部分在準(zhǔn)確度上達(dá)到了 98%,且口罩人臉分類部分準(zhǔn)確率同樣達(dá)到了 96.5%。

Github地址

項(xiàng)目的GitHub地址https://github.com/1614866360/mask_test

總結(jié)

以上是生活随笔為你收集整理的面部口罩识别检测的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。