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

主頁 > 知識庫 > 超詳細注釋之OpenCV實現視頻實時人臉模糊和人臉馬賽克

超詳細注釋之OpenCV實現視頻實時人臉模糊和人臉馬賽克

熱門標簽:湛江電銷防封卡 南昌辦理400電話怎么安裝 不錯的400電話辦理 獲客智能電銷機器人 鄭州智能外呼系統運營商 哈爾濱外呼系統代理商 佛山防封外呼系統收費 徐州天音防封電銷卡 電話機器人適用業務

這篇博客將介紹人臉檢測,然后使用Python,OpenCV模糊它們來“匿名化”每張圖像,以確保隱私得到保護,保證沒有人臉可以被識別如何使用。

并介紹倆種模糊的方法:簡單高斯模糊、像素模糊。

人臉模糊和匿名化的實際應用包括:

  • 公共/私人區域的隱私和身份保護
  • 在線保護兒童(即在上傳的照片中模糊未成年人的臉)
  • 攝影新聞和新聞報道(如模糊未簽署棄權書的人的臉)
  • 數據集管理和分發(如在數據集中匿名化個人)

1. 效果圖

原始圖 VS 簡單高斯模糊效果圖如下:

原始圖 VS 像素模糊效果圖如下:
在晚間新聞上看到的面部模糊正是像素模糊,主要是因為它比高斯模糊更“美觀”;

多人的也可以哦:原始圖 VS 簡單高斯模糊效果圖:

多人的也可以哦:原始圖 VS 像素模糊效果圖:

2. 原理

2.1 什么是人臉模糊,如何將其用于人臉匿名化?

人臉模糊是一種計算機視覺方法,用于對圖像和視頻中的人臉進行匿名化。

如上圖中人的身份是不可辨認的,通常使用面部模糊來幫助保護圖像中的人的身份。

2.2 執行人臉模糊/匿名化的步驟

人臉檢測方法有很多,任選一種,進行圖像中的人臉檢測或者實時視頻流中人臉的檢測。人臉成功檢測后可使用以下倆種方式進行模糊。

  • 使用高斯模糊對圖像和視頻流中的人臉進行匿名化
  • 應用“像素模糊”效果來匿名化圖像和視頻中的人臉

應用OpenCV和計算機視覺進行人臉模糊包括四部分:

  1. 進行人臉檢測;(如Haar級聯、HOG線性向量機、基于深度學習的檢測);
  2. 提取ROI(Region Of Interests);
  3. 模糊/匿名化人臉;
  4. 將模糊的人臉存儲回原始圖像中(Numpy數組切片)。

3. 源碼

3.1 圖像人臉模糊源碼

# USAGE
# python blur_face.py --image examples/we.jpg --face face_detector
# python blur_face.py --image examples/we.jpg --face face_detector --method pixelated

# 使用OpenCV實現圖像中的人臉模糊
# 導入必要的包
import argparse
import os

import cv2
import imutils
import numpy as np
from pyimagesearch.face_blurring import anonymize_face_pixelate
from pyimagesearch.face_blurring import anonymize_face_simple

# 構建命令行參數及解析
# --image 輸入人臉圖像
# --face 人臉檢測模型的目錄
# --method 使用簡單高斯模糊、像素模糊
# --blocks 面部分塊數,默認20
# --confidence 面部檢測置信度,過濾弱檢測的值,默認50%
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", required=True,
                help="path to input image")
ap.add_argument("-f", "--face", required=True,
                help="path to face detector model directory")
ap.add_argument("-m", "--method", type=str, default="simple",
                choices=["simple", "pixelated"],
                help="face blurring/anonymizing method")
ap.add_argument("-b", "--blocks", type=int, default=20,
                help="# of blocks for the pixelated blurring method")
ap.add_argument("-c", "--confidence", type=float, default=0.5,
                help="minimum probability to filter weak detections")
args = vars(ap.parse_args())

# 加載基于Caffe的人臉檢測模型
# 從磁盤加載序列化的面部檢測模型及標簽文件
print("[INFO] loading face detector model...")
prototxtPath = os.path.sep.join([args["face"], "deploy.prototxt"])
weightsPath = os.path.sep.join([args["face"],
                                "res10_300x300_ssd_iter_140000.caffemodel"])
net = cv2.dnn.readNet(prototxtPath, weightsPath)

# 從此盤加載輸入圖像,獲取圖像維度
image = cv2.imread(args["image"])
image = imutils.resize(image, width=600)
orig = image.copy()
(h, w) = image.shape[:2]

# 預處理圖像,構建圖像blob
blob = cv2.dnn.blobFromImage(image, 1.0, (300, 300),
                             (104.0, 177.0, 123.0))

# 傳遞blob到網絡,并獲取面部檢測結果
print("[INFO] computing face detections...")
net.setInput(blob)
detections = net.forward()

# 遍歷人臉檢測結果
for i in range(0, detections.shape[2]):
    # 提取檢測的置信度,即可能性
    confidence = detections[0, 0, i, 2]

    # 過濾弱檢測結果,確保均高于最小置信度
    if confidence > args["confidence"]:
        # 計算人臉的邊界框(x,y)
        box = detections[0, 0, i, 3:7] * np.array([w, h, w, h])
        (startX, startY, endX, endY) = box.astype("int")

        # 提取面部ROI
        face = image[startY:endY, startX:endX]

        # 檢查是使用簡單高斯模糊 還是 像素模糊方法
        if args["method"] == "simple":
            face = anonymize_face_simple(face, factor=3.0)
        # 否則應用像素匿名模糊方法
        else:
            face = anonymize_face_pixelate(face,
                                           blocks=args["blocks"])

        # 用模糊的匿名面部覆蓋圖像中的原始人臉ROI
        image[startY:endY, startX:endX] = face

# 原始圖像和匿名圖像并排顯示
output = np.hstack([orig, image])
cv2.imshow("Origin VS " + str(args['method']), output)
cv2.waitKey(0)

3.2 實時視頻流人臉模糊源碼

# USAGE
# python blur_face_video.py --face face_detector
# python blur_face_video.py --face face_detector --method pixelated

# 導入必要的包
import argparse
import os
import time

import cv2
import imutils
import numpy as np
from imutils.video import VideoStream
from pyimagesearch.face_blurring import anonymize_face_pixelate
from pyimagesearch.face_blurring import anonymize_face_simple

# 構建命令行參數及解析
# --face 人臉檢測模型的目錄
# --method 使用簡單高斯模糊、像素模糊
# --blocks 面部分塊數,默認20
# --confidence 面部檢測置信度,過濾弱檢測的值,默認50%
ap = argparse.ArgumentParser()
ap.add_argument("-f", "--face", required=True,
                help="path to face detector model directory")
ap.add_argument("-m", "--method", type=str, default="simple",
                choices=["simple", "pixelated"],
                help="face blurring/anonymizing method")
ap.add_argument("-b", "--blocks", type=int, default=20,
                help="# of blocks for the pixelated blurring method")
ap.add_argument("-c", "--confidence", type=float, default=0.5,
                help="minimum probability to filter weak detections")
args = vars(ap.parse_args())

# 從磁盤加載訓練好的人臉檢測器Caffe模型
print("[INFO] loading face detector model...")
prototxtPath = os.path.sep.join([args["face"], "deploy.prototxt"])
weightsPath = os.path.sep.join([args["face"],
                                "res10_300x300_ssd_iter_140000.caffemodel"])
net = cv2.dnn.readNet(prototxtPath, weightsPath)

# 初始化視頻流,預熱傳感器2s
print("[INFO] starting video stream...")
vs = VideoStream(src=0).start()
time.sleep(2.0)

# 遍歷視頻流的每一幀
while True:
    # 從線程化的視頻流獲取一幀,保持寬高比的縮放寬度為400px
    frame = vs.read()
    frame = imutils.resize(frame, width=400)

    # 獲取幀的維度,預處理幀(構建blob)
    (h, w) = frame.shape[:2]
    blob = cv2.dnn.blobFromImage(frame, 1.0, (300, 300),
                                 (104.0, 177.0, 123.0))

    # 傳遞blob到網絡并獲取面部檢測結果
    net.setInput(blob)
    detections = net.forward()

    # 遍歷人臉檢測結果
    for i in range(0, detections.shape[2]):
        # 提取檢測的置信度,即可能性
        confidence = detections[0, 0, i, 2]

        # 過濾弱檢測結果,確保均高于最小置信度
        if confidence > args["confidence"]:
            # 計算人臉的邊界框(x,y)
            box = detections[0, 0, i, 3:7] * np.array([w, h, w, h])
            (startX, startY, endX, endY) = box.astype("int")

            # 提取面部ROI
            face = frame[startY:endY, startX:endX]

            # 檢查是使用簡單高斯模糊 還是 像素模糊方法
            if args["method"] == "simple":
                face = anonymize_face_simple(face, factor=3.0)
            # 否則應用像素匿名模糊方法
            else:
                face = anonymize_face_pixelate(face,
                                               blocks=args["blocks"])

            # 用模糊的匿名面部ROI覆蓋圖像中的原始人臉ROI
            frame[startY:endY, startX:endX] = face

    # 展示輸出幀
    cv2.imshow("Frame", frame)
    key = cv2.waitKey(1)  0xFF

    # 按下‘q'鍵,退出循環
    if key == ord("q"):
        break

# 做一些清理工作
# 關閉所有窗口,釋放視頻流指針
cv2.destroyAllWindows()
vs.stop()

參考

https://www.pyimagesearch.com/2020/04/06/blur-and-anonymize-faces-with-opencv-and-python/

到此這篇關于超詳細注釋之OpenCV實現視頻實時人臉模糊和人臉馬賽克的文章就介紹到這了,更多相關OpenCV人臉馬賽克內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 超詳細注釋之OpenCV dlib實現人臉采集
  • 手把手教你利用opencv實現人臉識別功能(附源碼+文檔)
  • opencv基于Haar人臉檢測和眼睛檢測
  • OpenCV-Python實現人臉磨皮算法
  • 基于Opencv制作的美顏相機帶你領略美顏特效的效果

標簽:紹興 吉安 呂梁 廣西 懷化 蘭州 蕪湖 安康

巨人網絡通訊聲明:本文標題《超詳細注釋之OpenCV實現視頻實時人臉模糊和人臉馬賽克》,本文關鍵詞  超,詳細,注釋,之,OpenCV,實現,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《超詳細注釋之OpenCV實現視頻實時人臉模糊和人臉馬賽克》相關的同類信息!
  • 本頁收集關于超詳細注釋之OpenCV實現視頻實時人臉模糊和人臉馬賽克的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    在线观看91精品国产麻豆| www.日本不卡| 成人手机在线视频| 日本亚洲最大的色成网站www| 日韩av电影免费观看高清完整版 | 麻豆91在线观看| 国产成人综合网站| 在线一区二区视频| 精品国产人成亚洲区| 日韩精品一区二区三区在线观看 | 在线观看国产精品网站| 风间由美性色一区二区三区| 九九九久久久精品| 久久99热99| 国产原创一区二区三区| 韩国三级在线一区| 国产成人综合亚洲91猫咪| 国产成人免费高清| 成人av高清在线| 成人av电影在线| 不卡av在线免费观看| 99re这里都是精品| 色天天综合久久久久综合片| 日本韩国欧美一区二区三区| 日本精品免费观看高清观看| 欧美亚洲一区二区三区四区| 精品视频免费看| 欧美一区二区成人| 亚洲精品一线二线三线| 久久精品视频免费| 成人欧美一区二区三区黑人麻豆 | 欧美日产在线观看| 日韩欧美亚洲国产另类| 欧美精品一区男女天堂| 国产精品天天看| 夜色激情一区二区| 免费精品视频在线| 国产91在线观看丝袜| 91首页免费视频| 宅男噜噜噜66一区二区66| 亚洲精品在线网站| 中文字幕亚洲精品在线观看 | 欧美无乱码久久久免费午夜一区 | 国产精品久久久久久久久晋中| 国产精品美女一区二区在线观看| 亚洲欧美一区二区三区久本道91| 一区二区成人在线| 蜜臀av性久久久久蜜臀av麻豆| 国产麻豆精品在线| 欧美中文字幕一区二区三区亚洲| 男人操女人的视频在线观看欧美| 国产乱淫av一区二区三区| 成人欧美一区二区三区视频网页 | 国产一区二区三区在线观看免费 | 亚洲精品国产一区二区三区四区在线| 国产不卡视频一区二区三区| 久久尤物电影视频在线观看| 色综合一区二区三区| 欧美性猛片aaaaaaa做受| 精品美女在线播放| 一区二区三区在线观看视频| 精品中文av资源站在线观看| 欧美在线不卡一区| 国产精品免费视频观看| 久久国产精品99久久人人澡| 色偷偷久久人人79超碰人人澡| 欧美成人三级电影在线| 亚洲综合丁香婷婷六月香| 国产盗摄一区二区| 91精品国产91久久综合桃花| 亚洲免费毛片网站| 99国产精品国产精品毛片| 欧美精品一区二区三区一线天视频 | 亚洲不卡av一区二区三区| 国产精品99久| 精品理论电影在线| 亚洲第一精品在线| 一本色道亚洲精品aⅴ| 国产无人区一区二区三区| 蜜臀va亚洲va欧美va天堂| 精品视频1区2区| 曰韩精品一区二区| 99热国产精品| 日韩美女视频一区| 99在线热播精品免费| 国产网站一区二区| 国产成人精品综合在线观看| 337p粉嫩大胆色噜噜噜噜亚洲| 日韩福利视频导航| 欧美裸体一区二区三区| 亚洲成a人v欧美综合天堂下载| 欧洲色大大久久| 一区二区三区日韩精品视频| 一本到一区二区三区| 最新久久zyz资源站| 99久久伊人网影院| 在线精品视频免费播放| 久久不见久久见免费视频1| 亚洲精品一二三| 精品国产一区二区国模嫣然| 91亚洲精华国产精华精华液| 裸体歌舞表演一区二区| 亚洲欧美日韩国产一区二区三区| 欧美成人女星排名| 欧美伊人久久大香线蕉综合69| 国产精品一区二区在线观看网站| 亚洲香蕉伊在人在线观| 中文在线一区二区| 日本一区二区在线不卡| 色网综合在线观看| 国产一区二区成人久久免费影院| 亚洲综合视频网| 欧美国产精品v| 欧美一级黄色片| 欧美性videosxxxxx| 成人aa视频在线观看| 免费成人美女在线观看.| 日韩一区欧美一区| 久久综合狠狠综合| 欧美精选在线播放| 欧美中文字幕亚洲一区二区va在线| 国产成人免费视频| 国产在线播精品第三| 亚洲成人av一区二区三区| 国产精品久久久久毛片软件| 久久香蕉国产线看观看99| 欧美挠脚心视频网站| 欧美午夜精品一区二区三区| 色综合久久久久综合体| 丁香婷婷综合激情五月色| 狠狠色狠狠色合久久伊人| 石原莉奈在线亚洲三区| 一区二区三区电影在线播| 中文字幕久久午夜不卡| 国产午夜一区二区三区| 欧美精品一区二区三区蜜桃 | 欧美一区二区三区系列电影| 欧美在线一区二区三区| 91国产精品成人| 91成人免费网站| 欧美无人高清视频在线观看| 欧美视频在线一区| 欧美顶级少妇做爰| 日韩欧美资源站| 精品精品国产高清a毛片牛牛 | 精品美女一区二区| 精品国产一区二区国模嫣然| 欧美不卡视频一区| 久久综合色婷婷| 中文字幕av一区二区三区| 国产精品欧美一级免费| 国产精品短视频| 一区二区不卡在线视频 午夜欧美不卡在| 一区二区三区四区不卡在线 | 免费的成人av| 国产一区三区三区| 北条麻妃一区二区三区| 91网站在线播放| 欧美日韩亚洲综合一区| 日韩欧美一区二区免费| 久久精品免费在线观看| 亚洲人成精品久久久久久| 亚洲一区二区三区美女| 美腿丝袜在线亚洲一区 | 成人app软件下载大全免费| 成人精品gif动图一区| 日本精品一区二区三区高清| 91麻豆精品国产91久久久| 精品国产不卡一区二区三区| 国产精品无人区| 午夜欧美2019年伦理| 国产一区二区三区在线观看免费视频 | 色综合久久久久综合99| 成人国产精品免费| 色综合天天综合| 91精品国产乱| 久久久精品一品道一区| 亚洲靠逼com| 老汉av免费一区二区三区| caoporen国产精品视频| 欧美丰满高潮xxxx喷水动漫| 欧美国产1区2区| 亚洲国产色一区| 国产一区二区看久久| 欧美视频一区二区| 久久久影院官网| 亚洲永久免费av| 成人手机在线视频| 91精品国产综合久久香蕉麻豆 | 国产精品1024| 欧美人成免费网站| 中文字幕一区二区三区四区不卡 | 精彩视频一区二区| 91久久精品日日躁夜夜躁欧美| 欧美一区二区三区男人的天堂| 亚洲色图.com| 国产白丝网站精品污在线入口| 欧美精品18+| 亚洲美腿欧美偷拍| 粉嫩一区二区三区性色av|