日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面部口罩识别检测

發布時間:2025/3/8 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面部口罩识别检测 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

項目介紹

項目背景:隨著新冠疫情的爆發,公共衛生防護程度被提高到空前狀態。為防止新冠病毒的交叉傳染,導致疫情擴散,人們在各大公共場所活動時均被要求佩戴口罩。因此,面部口罩檢測項目誕生。

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

項目價值:提高公共衛生防護能力;節約社會資源和運營成本;降低人力資源成本。

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

……

·假正經·

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

……

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

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

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

思路其實很簡單:


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

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

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

·下面進入快樂代碼時間 ·

以下代碼主要實現前兩者,即獲取圖像和人臉識別:

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) # 展現file_name = "D:/mask/mask_test.png" # 圖片存儲路徑cv2.imwrite(file_name, frame) # 寫入獲取的一幀if cv2.waitKey(1) & 0xFF == ord('q'):breakcap.release() # 釋放攝像頭 cv2.destroyAllWindows()

通過opencv調取內置攝像頭以獲取圖像,并對圖像進行人臉識別檢測,將獲取的圖片保存在本地以便后面進行口罩檢測。

以下代碼主要實現面部的口罩檢測識別:

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)

通過導入面部口罩檢測模型,讀取本地圖片并對其進行分析檢測,從而得到是否佩戴口罩的結果。

簡單的整合一下,就形成了項目完整的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() #以幀換視頻流#灰度轉換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) #展現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("未檢測到人臉!請將臉移入攝像頭視角范圍內!")else:mask_test = mask[0]['label']if mask_test == "NO MASK":playsound('D:\\mask\\11750.wav') # 若檢測到未戴口罩則發出警報print(mask_test)else:print(mask_test)cv2.imwrite(file_name,frame)if cv2.waitKey(3) & 0xff == 27:print("退出程序!謝謝使用!")capture.release() #釋放攝像頭qcv2.destroyAllWindows() #刪除建立的全部窗口break

準確率

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

Github地址

項目的GitHub地址https://github.com/1614866360/mask_test

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。