婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python基于Opencv實現人臉口罩檢測

python基于Opencv實現人臉口罩檢測

熱門標簽:洪澤縣地圖標注 高德地圖標注是免費的嗎 北京電信外呼系統靠譜嗎 老人電話機器人 梅州外呼業務系統 百度地圖標注位置怎么修改 地圖標注視頻廣告 無錫客服外呼系統一般多少錢 大連crm外呼系統

一、開發環境

python 3.6.6

opencv-python 4.5.1

二、設計要求

1、使用opencv-python對人臉口罩進行檢測

三、設計原理

設計流程圖如圖3-1所示,

圖3-1 口罩檢測流程圖

首先進行圖片的讀取,使用opencv的haar鼻子特征分類器,如果檢測到鼻子,則證明沒有戴口罩。如果檢測到鼻子,接著使用opencv的haar眼睛特征分類器,如果沒有檢測到眼睛,則結束。如果檢測到眼睛,則把RGB顏色空間轉為HSV顏色空間。進行口罩區域的檢測。口罩區域檢測流程是首先把距離坐標原點的較近的橫坐標作為口罩區域開始橫坐標,離坐標原點較遠的橫坐標作為口罩區域結束橫坐標。離坐標原點較遠的縱坐標作為口罩區域開始縱坐標,離坐標原點較遠的縱坐標與眼睛高度2倍的和作為口罩區域結束縱坐標。在此敘述的可能不是很清楚,可以見圖3-2,

圖3-2 口罩區域檢測圖

最后,知道口罩區域時,只需對像素點進行判斷就可以判斷出是否佩戴口罩。

四、程序代碼

"""
# File       : mask_check.py
# Time       :2021/6/10 15:02
# Author     :Meng
# version    :python 3.6
# Description:
"""
import cv2          # 導入opencv
import time         # 導入time
 
"""實現鼻子檢測"""
def nose_dection(img):
    img = cv2.GaussianBlur(img,(5,5),0)#高斯濾波
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)                     # 將圖片轉化成灰度
    nose_cascade = cv2.CascadeClassifier("haarcascade_mcs_nose.xml")
    nose_cascade.load("data/haarcascades/haarcascade_mcs_nose.xml")  # 一定要告訴編譯器文件所在的具體位置
    '''此文件是opencv的haar鼻子特征分類器'''
    noses = nose_cascade.detectMultiScale(gray, 1.3, 5)  # 鼻子檢測
    for(x,y,w,h) in noses:
        cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)  # 畫框標識臉部
    flag = 0            # 檢測到鼻子的標志位,如果監測到鼻子,則判斷未帶口罩
    if len(noses)>0:
        flag = 1
    return img,flag
 
""""實現眼睛檢測"""
def eye_dection(img):
    img = cv2.GaussianBlur(img,(5,5),0)#高斯濾波
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)                     # 將圖片轉化成灰度
    eyes_cascade = cv2.CascadeClassifier("haarcascade_eye_tree_eyeglasses.xml")
    eyes_cascade.load("data/haarcascades/haarcascade_eye_tree_eyeglasses.xml")  # 一定要告訴編譯器文件所在的具體位置
    '''此文件是opencv的haar眼鏡特征分類器'''
    eyes = eyes_cascade.detectMultiScale(gray, 1.3, 5)          # 眼睛檢測
    for (x,y,w,h) in eyes:
        frame = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)  # 畫框標識眼部
        print("x y w h is",(x,y,w,h))
        # frame = cv2.rectangle(img, (x, y+h), (x + 3*w, y + 3*h), (255, 0, 0), 2)  # 畫框標識眼部
    return img,eyes
 
def empty(a):
    pass
 
def main():
    image = cv2.imread("images/backgound.png")      # 讀取背景照片
    cv2.imshow('skin', image)                       # 展示
    cv2.createTrackbar("Hmin", "skin", 0, 90, empty)    # 創建bar
    cv2.createTrackbar("Hmax", "skin", 25, 90, empty)
    capture = cv2.VideoCapture(0)               # 打開攝像頭,其中0為自帶攝像頭,
    while True:
        ref,img=capture.read()                  # 打開攝像頭
        # img = cv2.imread("./images/005.jpg")      # 讀取一張圖片
        img_hsv = img
        image_nose,flag_nose = nose_dection(img)       # 進行口罩檢測,返回檢測之后的圖形以及標志位
        if flag_nose == 1:              # 當檢測到鼻子的時候,判斷未戴口罩
            frame = cv2.putText(image_nose, "NO MASK", (10, 30), cv2.FONT_HERSHEY_COMPLEX, 0.9,(0, 0, 255), 1)  # 在圖片上寫字
            cv2.imshow('img', image_nose)       # 展示圖片
        if flag_nose == 0:              # 未檢測鼻子,進行眼睛檢測
            img_eye,eyes = eye_dection(img)         # 進行眼睛檢測,返回檢測之后的圖形以及標志位
            hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)        # 將圖片轉化成HSV格式
            H, S, V = cv2.split(hsv)                          #
            minH = cv2.getTrackbarPos("Hmin", 'skin')           # 獲取bar
            maxH = cv2.getTrackbarPos("Hmax", 'skin')
            if minH > maxH:
                maxH = minH
            thresh_h = cv2.inRange(H, minH, maxH)       # 提取人體膚色區域
            if len(eyes) > 1:                           # 判斷是否檢測到兩個眼睛,其中eyes[0]為左眼坐標
                # 口罩區域的提取
                mask_x_begin = min(eyes[0][0],eyes[1][0])               # 把左眼的x坐標作為口罩區域起始x坐標
                mask_x_end = max(eyes[0][0],eyes[1][0]) + eyes[list([eyes[0][0], eyes[1][0]]).index(max(list([eyes[0][0], eyes[1][0]])))][2]   # 把右眼x坐標 + 右眼寬度作為口罩區域x的終止坐標
                mask_y_begin = max(eyes[0][1] + eyes[0][3],eyes[1][1] + eyes[1][3]) + 20    # 把眼睛高度最大的作為口罩區域起始y坐標
                if mask_y_begin > img_eye.shape[1]:     # 判斷是否出界
                    mask_y_begin = img_eye.shape[1]
                mask_y_end = max(eyes[0][1] + 3 * eyes[0][3],eyes[1][1] + 3 * eyes[1][3]) + 20  # 同理
                if mask_y_end > img_eye.shape[1]:
                    mask_y_end = img_eye.shape[1]
                frame = cv2.rectangle(img_eye, (mask_x_begin, mask_y_begin), (mask_x_end, mask_y_end), (255, 0, 0), 2)  # 畫口罩區域的框
                total_mask_pixel = 0
                total_face_pixel = 0
                # 遍歷二值圖,為0則total_mask_pixel+1,否則total_face_pixel+1
                for i in range(mask_x_begin,mask_x_end):
                    for j in range(mask_y_begin,mask_y_end):
                        if thresh_h[i,j] == 0:
                            total_mask_pixel += 1
                        else:
                            total_face_pixel += 1
                print("total_mask_pixel",total_mask_pixel)
                print("total_face_pixel", total_face_pixel)
                if total_mask_pixel > total_face_pixel:
                    frame = cv2.putText(img_eye, "HAVE MASK", (mask_x_begin, mask_y_begin - 10),cv2.FONT_HERSHEY_COMPLEX, 0.9, (0, 0, 255), 1)  # 繪制
                if total_mask_pixel  total_face_pixel:
                    frame = cv2.putText(img_eye, "NO MASK", (mask_x_begin, mask_y_begin - 10), cv2.FONT_HERSHEY_COMPLEX,0.9, (0, 0, 255), 1)  # 繪制
            cv2.imshow("skin", thresh_h)  # 顯示膚色圖
            cv2.imshow("img", img_eye)  # 顯示膚色圖
            # cv2.imwrite('005_result.jpg',img_eye)     保存圖片
        c = cv2.waitKey(10)
        if c==27:
            break
    capture.release()       #
    cv2.destroyAllWindows() # 關閉所有窗口
 
 
if __name__ == '__main__':
    main()

五、結果展示

檢測結果如下:

圖5-1 HSV轉換結果圖

圖5-2 口罩檢測結果圖

圖5-3 口罩檢測結果圖(竟然把耳朵誤判為鼻子)

六、結論

本實驗使用了opencv-python進行了人臉口罩檢測。進行鼻子、眼睛檢測使用的時opencv自帶的.xml文件。從結果來看,這種方法是可行的。是可以應用在地鐵站、火車站出入口進行人臉口罩檢測的。

本實驗也有一定局限性,例如圖片中有兩個人、眼睛被遮擋等特殊情況。如果感興趣可以自己訓練.xml文件。當然,也可以使用基于深度學習的目標檢測模型例如R-CNN系列、YOLO系列、SSD等進行模型的訓練。

到此這篇關于python基于Opencv實現人臉口罩檢測的文章就介紹到這了,更多相關Opencv 人臉口罩檢測內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python使用pygame實現笑臉乒乓球彈珠球游戲
  • python 利用turtle庫繪制笑臉和哭臉的例子
  • Python實現笑臉檢測+人臉口罩檢測

標簽:泉州 安慶 清遠 洛陽 岳陽 怒江 吉林 長春

巨人網絡通訊聲明:本文標題《python基于Opencv實現人臉口罩檢測》,本文關鍵詞  python,基于,Opencv,實現,人臉,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python基于Opencv實現人臉口罩檢測》相關的同類信息!
  • 本頁收集關于python基于Opencv實現人臉口罩檢測的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    色婷婷狠狠综合| 久久成人免费电影| 精品国产免费视频| 亚洲三级在线看| 国产精品一二三四| 337p亚洲精品色噜噜| 国产精品美女久久久久aⅴ国产馆| 亚洲成a人v欧美综合天堂| 国产精品毛片高清在线完整版| 国产精品久久久久国产精品日日| 经典三级视频一区| 日韩欧美一区二区三区在线| 天涯成人国产亚洲精品一区av| 色菇凉天天综合网| 亚洲天堂av老司机| 在线视频欧美精品| 亚洲国产精品黑人久久久| 偷拍亚洲欧洲综合| 欧美日韩成人综合在线一区二区| 亚洲日本在线天堂| 成人avav在线| 国产精品视频一二三区| 国产一区二区按摩在线观看| 日韩女优av电影| 青青草国产成人99久久| 欧美丰满少妇xxxxx高潮对白| 日韩久久免费av| 精品一区二区三区免费| 久久亚洲精品小早川怜子| 青娱乐精品在线视频| 精品国产免费久久| 国产精品99久| 欧美日精品一区视频| 国产亚洲精品aa午夜观看| 丁香婷婷深情五月亚洲| 欧美激情综合在线| 日本乱码高清不卡字幕| 午夜视频一区二区| 色综合天天性综合| 91精品国产全国免费观看| 天天av天天翘天天综合网色鬼国产| 91女厕偷拍女厕偷拍高清| 首页亚洲欧美制服丝腿| 久久久亚洲午夜电影| 美女一区二区三区| 中文字幕av在线一区二区三区| 91浏览器在线视频| 日本亚洲免费观看| 久久精品视频一区| 欧洲精品一区二区| 美女在线一区二区| 欧美videos大乳护士334| 成人aa视频在线观看| 日日夜夜一区二区| 国产欧美在线观看一区| 91黄视频在线观看| 国产呦萝稀缺另类资源| 亚洲一区二区av在线| 久久视频一区二区| 欧美日韩免费一区二区三区| 成人在线视频一区| 日本怡春院一区二区| 国产亚洲综合在线| 欧美日韩激情一区| 国产精品一区二区不卡| 午夜免费欧美电影| 亚洲女同一区二区| 久久久高清一区二区三区| 欧美吞精做爰啪啪高潮| 成人亚洲精品久久久久软件| 亚洲成va人在线观看| 岛国精品在线观看| 久久国产生活片100| 亚洲成人av在线电影| 亚洲女爱视频在线| 久久精品亚洲一区二区三区浴池| 久久国产视频网| 亚洲成人综合网站| 18欧美亚洲精品| 欧美国产日韩a欧美在线观看| 欧美日韩国产免费| 精品视频在线免费观看| 国产综合色产在线精品| 麻豆国产91在线播放| 免费久久99精品国产| 日本不卡高清视频| 午夜久久久久久久久| 香蕉加勒比综合久久| 久久久亚洲国产美女国产盗摄| 日韩亚洲欧美综合| 欧美精品久久99| 欧美高清精品3d| 3751色影院一区二区三区| www.亚洲国产| 成人三级在线视频| 麻豆一区二区三区| 精品亚洲国产成人av制服丝袜| 日韩黄色免费电影| 麻豆视频一区二区| 精品一区二区精品| 国产成人一区在线| av在线不卡免费看| 国产一区二区三区黄视频| 婷婷久久综合九色国产成人| 蜜芽一区二区三区| 免费人成在线不卡| 国产精品一区二区三区网站| 国产成人在线色| 欧美aⅴ一区二区三区视频| 五月开心婷婷久久| 九色综合国产一区二区三区| 国产91精品免费| 色老汉av一区二区三区| 日本久久电影网| 欧美群妇大交群的观看方式| 8x8x8国产精品| 日韩一区二区中文字幕| 国产亚洲精久久久久久| 国产精品美女久久久久久久久久久| 国产精品网站在线播放| 免费成人av在线播放| 91丨porny丨最新| 欧美一区二区精品久久911| 一区av在线播放| 国产成人综合自拍| 91超碰这里只有精品国产| 亚洲激情第一区| 成人午夜精品在线| 日韩精品资源二区在线| 水野朝阳av一区二区三区| 91麻豆免费看| 国产精品嫩草99a| 国产91高潮流白浆在线麻豆| 欧美人妖巨大在线| 舔着乳尖日韩一区| 欧美图片一区二区三区| 亚洲欧洲av另类| 日本久久电影网| 亚洲精品欧美在线| 91在线一区二区| 一区二区三区在线视频观看58 | 亚洲靠逼com| 黄一区二区三区| 欧美三级日韩在线| 日本91福利区| 777色狠狠一区二区三区| 日本成人中文字幕在线视频| 欧美日免费三级在线| 日本视频在线一区| 制服丝袜一区二区三区| 日本在线不卡一区| 91精品国产美女浴室洗澡无遮挡| 蜜桃av一区二区三区| 5月丁香婷婷综合| 麻豆一区二区三| 欧美激情一区二区| 91美女片黄在线| 亚洲精品菠萝久久久久久久| 色狠狠色噜噜噜综合网| 日韩高清不卡一区二区三区| 91激情在线视频| 久久99精品久久久久久国产越南 | 天天综合网 天天综合色| 欧美午夜精品免费| 国产最新精品精品你懂的| 亚洲欧美区自拍先锋| 欧美综合一区二区| 亚洲精品菠萝久久久久久久| 91精品在线免费| 国产真实乱子伦精品视频| 亚洲三级在线观看| 欧美日韩在线综合| 日本欧美在线观看| 中文字幕精品综合| 欧美性videosxxxxx| 久久爱www久久做| 亚洲第一电影网| 欧美r级在线观看| 成人蜜臀av电影| 亚洲3atv精品一区二区三区| 精品国产乱子伦一区| 色狠狠综合天天综合综合| 裸体健美xxxx欧美裸体表演| 久久久精品2019中文字幕之3| 99re这里都是精品| 日本欧美一区二区| 一个色妞综合视频在线观看| 3d动漫精品啪啪1区2区免费| 夫妻av一区二区| 奇米精品一区二区三区四区| 久久久av毛片精品| 日韩一区二区免费电影| 一本大道久久精品懂色aⅴ| 天堂久久一区二区三区| 国产精品美女久久久久久久| 日韩精品中文字幕一区二区三区| 色婷婷av一区二区三区大白胸 | 日本一区二区三区四区在线视频| 日韩午夜激情av| 一本到一区二区三区|