搜尋
首頁科技週邊人工智慧如何使用Python即時模糊人臉

譯者| 布加迪

審校| 重樓

出於幾個原因,您可能會使用人臉模糊來隱藏影片或影像中的人臉。隱私和安全問題是最主要的原因。大多數影片分享平台和影片編輯軟體都內建了人臉模糊功能。

您可以使用Python、OpenCV和NumPy函式庫從頭開始建立自己的人臉模糊程式。

1、建立環境

要完成本文的學習,您需要熟悉Python的基礎知識,並對NumPy庫的使用有一番基本的了解。

開啟任何您熟悉的Python IDE。建立一個虛擬環境,用來安裝所需的庫。建立一個新的Python檔。進入到終端,執行以下命令來安裝所需的庫。將庫作為以空格分隔的列表來傳遞。

pip install OpenCV-python NumPy

您將使用OpenCV取得並預處理視訊輸入,使用NumPy處理陣列。

如何使用Python即時模糊人臉

一旦您安裝了函式庫,等待IDE更新專案骨幹部分。更新完成、環境準備好後,您就可以開始編碼了。

注意:完整的原始程式碼可以在GitHub程式碼庫中找到(https://github.com/makeuseofcode/Face-Blurring)。

2、導入所需的函式庫

首先,導入OpenCV函式庫和NumPy函式庫。這將使您能夠調用和使用它們支援的任何函數。導入OpenCV-python作為cv2。

import cv2
import numpy as np

OpenCV-python模組使用名稱cv2作為OpenCV社群建立的約定。 OpenCV- Python是OpenCV函式庫的Python包裝器,用C 編寫。

3、取得輸入

建立一個變量,並初始化VideoCapture物件。如果您想使用電腦的主相機作為輸入來源,則應傳遞0作為參數。若要使用連接到電腦上的外部攝影機,請傳遞1。若要對預先錄製的影片執行人臉模糊處理,請改而傳遞影片的路徑。若要使用遠端攝影機,傳遞攝影機的URL,其中含有IP位址和連接埠號碼。

cap = cv2.VideoCapture(0)

要對輸入執行人臉模糊,您需要這三個函數:

  • #對輸入進行預處理的函數。
  • 將模糊輸入中的人臉的函數。
  • 將控製程式流程並顯示輸出的main函數。

4、視訊輸入預處理

建立一個輸入預處理函數,將輸入視訊的每個畫面作為其輸入。初始化CascadeClassifier類,您將用這個類別來偵測人臉。將畫面大小調整為640 * 640像素。將調整大小的畫面轉換成灰階以便處理,最後偵測輸入中的人臉,並將其與矩形綁定。

def image_preprocess(frame):
face_detector = cv2.CascadeClassifier(cv2.data.haarcascades
+ 'haarcascade_frontalface_default.xml')

resized_image = cv2.resize(frame, (640, 640))

gray_image = cv2.cvtColor(resized_image,
cv2.COLOR_BGR2GRAY)

face_rects = face_detector.detectMultiScale(
gray_image, 1.04, 5, minSize=(20, 20))

return resized_image, face_rects

該函數傳回一個元組,包含調整大小的圖像和表示檢測到的人臉的矩形列表。

5、模糊人臉

建立一個模糊函數,將模糊輸入中的人臉。此函數將調整大小的幀和預處理函數傳回的包圍人臉的矩形列表作為輸入。循環處理人臉矩形。計算每個矩形的中心和模糊圓的半徑。透過將所有像素初始化為0,創建一個與調整大小的幀具有相同尺寸的黑色影像。使用計算出的半徑,在中心位於人臉矩形的黑色影像上繪製白圓。最後,它模糊白圓上的圖像。

def face_blur(resized_frame, face_rects):
for (x, y, w, h) in face_rects:
# Specifying the center and radius
# of the blurring circle
center_x = x + w // 3
center_y = y + h // 3
radius = h // 1

# creating a black image having similar
# dimensions as the frame
mask = np.zeros((resized_frame.shape[:3]), np.uint8)

# draw a white circle in the face region of the frame
cv2.circle(mask, (center_x, center_y), radius,
 (255, 255, 255), -1)

# blurring the whole frame
blurred_image = cv2.medianBlur(resized_frame, 99)

# reconstructing the frame:
# - the pixels from the blurred frame if mask > 0
# - otherwise, take the pixels from the original frame
resized_frame = np.where(mask > 0, blurred_image,
 resized_frame)

return resized_frame

此函數使用NumPy where()函數在模糊過程中重建幀。

6、控製程式流程

建立一個主函數,充當程式的入口點。然後它將控製程序流程。該函數將開始一個無限循環,並不斷捕捉視訊輸入的幀。呼叫cap物件的讀取方法,從攝影機讀取幀。

然後,該函數將幀傳遞給預處理函數,並將返回值傳遞給另一個函數face_blur,以獲得模糊後的圖像。然後,它調整模糊函數傳回的幀的大小,並顯示輸出。

def main():
while True:
success, frame = cap.read()
resized_input, face_rects = image_preprocess(frame)
blurred_image = face_blur(resized_input, face_rects)

# Diplaying the blurred image
cv2.imshow("Blurred image", cv2.resize(blurred_image, (500, 500)))

if cv2.waitKey(1) == ord("q"):
break

此函數也會在使用者按下q鍵時終止輸出顯示。

7、執行程式

確保在執行腳本時先執行main函數。如果將腳本作為另一個程式中的模組匯入,則該條件將為假。

if __name__ == "__main__":
main()

這允許您將腳本作為模組來使用或作為獨立程式來運行。當程式運行時,您應該會看到類似這樣的輸出:

如何使用Python即時模糊人臉

#人臉已經過模糊處理,辨識不出來。

8、人臉模糊的實際應用

您可以在許多類型的應用程式環境中運用人臉模糊來保護隱私。街景和地圖服務使用模糊技術來模糊影像中人物的臉部。執法部門使用人臉模糊技術來保護證人的身分。

#

許多影片分享平台也為使用者整合了人臉模糊功能。比較人臉模糊在這些領域的使用可以幫助您觀察其他平台如何整合這項技術。

原文連結:https://www.makeuseof.com/python-blur-human-faces-real-time/

以上是如何使用Python即時模糊人臉的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:51CTO.COM。如有侵權,請聯絡admin@php.cn刪除
iOS 17:如何在iPhone上的相机应用程序中锁定白平衡iOS 17:如何在iPhone上的相机应用程序中锁定白平衡Sep 20, 2023 am 08:41 AM

白平衡是一项相机功能,可根据照明条件调整演色性。此iPhone设置可确保白色物体在照片或视频中显示为白色,从而补偿由于典型照明而导致的任何颜色变化。如果您想在整个视频拍摄过程中保持白平衡一致,可以将其锁定。在这里,我们将指导您如何为iPhone视频保持固定的白平衡。如何在iPhone上锁定白平衡必需:iOS17更新。(检查“常规>软件更新”下的“设置”>)。在iPhone上打开“设置”应用。在“设置”中,向下滚动并选择“相机”。在“相机”屏幕上,点击“录制视频”。在这

使用Python访问各种音频和视频文件的元数据使用Python访问各种音频和视频文件的元数据Sep 05, 2023 am 11:41 AM

我们可以使用Mutagen和Python中的eyeD3模块访问音频文件的元数据。对于视频元数据,我们可以使用电影和Python中的OpenCV库。元数据是提供有关其他数据(例如音频和视频数据)的信息的数据。音频和视频文件的元数据包括文件格式、文件分辨率、文件大小、持续时间、比特率等。通过访问这些元数据,我们可以更有效地管理媒体并分析元数据以获得一些有用的信息。在本文中,我们将了解Python提供的一些用于访问音频和视频文件元数据的库或模块。访问音频元数据一些用于访问音频文件元数据的库是-使用诱变

ppt视频换个电脑就无法播放怎么办ppt视频换个电脑就无法播放怎么办Feb 23, 2023 am 11:29 AM

ppt视频换个电脑就无法播放是因为路径不对,其解决办法:1、将PPT和视频放入U盘的同一个文件夹内;2、双击打开该PPT,找到想要插入视频的页数,点击“插入”按钮;3、在弹出的对话框内选择想要插入的视频即可。

视频切片授权什么意思视频切片授权什么意思Sep 27, 2023 pm 02:55 PM

视频切片授权是指在视频服务中,将视频文件分割成多个小片段并进行授权的过程。这种授权方式能提供更好的视频流畅性、适应不同网络条件和设备,并保护视频内容的安全性。通过视频切片授权,用户可以更快地开始播放视频,减少等待和缓冲时间,视频切片授权可以根据网络条件和设备类型动态调整视频参数,提供最佳的播放效果,视频切片授权还有助于保护视频内容的安全性,防止未经授权的用户进行盗播和侵权行为。

如何使用Golang将多个图片转换为视频如何使用Golang将多个图片转换为视频Aug 22, 2023 am 11:29 AM

如何使用Golang将多个图片转换为视频随着互联网的发展和智能设备的普及,视频成为了一种重要的媒体形式。有时候我们可能需要将多个图片转换为视频,以便展示图片的连续变化或者制作幻灯片。本文将介绍如何使用Golang编程语言将多个图片转换为视频。在开始之前,请确保你已经安装了Golang以及相关的开发环境。步骤1:导入相关的包首先,我们需要导入一些相关的Gola

iOS 17:如何录制FaceTime视频或音频消息iOS 17:如何录制FaceTime视频或音频消息Sep 21, 2023 am 10:13 AM

在iOS17中,当您FaceTime通话某人无法接听时,您可以留下视频或音频信息,具体取决于您使用的通话方式。如果您使用的是FaceTime视频,则可以留下视频信息,如果您使用的是FaceTime音频,则可以留下音频信息。您所要做的就是以通常的方式与某人进行FaceTime。未接来电后,您将看到“录制视频”选项,该选项可让您创建消息。录制完视频后,您会看到视频的预览,如果效果不佳,还可以选择重新录制。以下是在运行iOS17的设备上留下FaceTime消息的工作原理,以未接视频通话为例,在Face

Vue 中如何实现视频播放器?Vue 中如何实现视频播放器?Jun 25, 2023 am 09:46 AM

随着互联网的不断发展,视频已经成为了人们日常生活中必不可少的娱乐方式之一。为了给用户提供更好的视频观看体验,许多网站和应用程序都开始使用视频播放器,使得用户可以在网页中直接观看视频。而Vue作为目前非常流行的前端框架之一,也提供了很多简便且实用的方法来实现视频播放器。下面,我们将简要介绍一下在Vue中实现视频播放器的方法。一、使用HTML5的video标签H

生成视频如此简单,给句提示就行,还能在线试玩生成视频如此简单,给句提示就行,还能在线试玩May 20, 2023 pm 05:16 PM

你输入文字,让AI来生成视频,这种想法在以前只出现在人们的想象中,现在,随着技术的发展,这种功能已经实现了。近年来,生成式人工智能在计算机视觉领域引起巨大的关注。随着扩散模型的出现,从文本Prompt生成高质量图像,即文本到图像的合成,已经变得非常流行和成功。最近的研究试图通过在视频领域复用文本到图像扩散模型,将其成功扩展到文本到视频生成和编辑的任务。虽然这样的方法取得了可喜的成果,但大部分方法需要使用大量标记数据进行大量训练,这可能对许多用户来讲太过昂贵。为了使视频生成更加廉价,JayZhan

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境