Jadual Kandungan
Untuk melengkapkan kajian artikel ini, anda perlu biasa dengan pengetahuan asas Python dan mempunyai pemahaman asas tentang penggunaan daripada perpustakaan NumPy.
Pertama, import perpustakaan OpenCV dan pustaka NumPy. Ini akan membolehkan anda memanggil dan menggunakan mana-mana fungsi yang mereka sokong. Import OpenCV-python sebagai cv2.
Buat pembolehubah dan mulakan objek VideoCapture. Jika anda ingin menggunakan kamera utama komputer anda sebagai sumber input, anda harus melepasi 0 sebagai parameter. Untuk menggunakan kamera luaran yang disambungkan ke komputer anda, lulus 1. Untuk melakukan pengaburan muka pada video yang diprarakam, lalukan laluan video tersebut. Untuk menggunakan kamera jauh, hantar URL kamera, yang mengandungi alamat IP dan nombor port.
Buat fungsi prapemprosesan input yang mengambil setiap bingkai video input sebagai inputnya. Mulakan kelas CascadeClassifier, yang akan anda gunakan untuk mengesan wajah. Ubah saiz bingkai kepada 640*640 piksel. Tukar bingkai bersaiz semula kepada skala kelabu untuk diproses, dan akhirnya mengesan muka dalam input dan mengikatnya kepada segi empat tepat.
Buat fungsi kabur untuk mengaburkan muka dalam input. Fungsi ini mengambil sebagai input bingkai yang diubah saiz dan senarai segi empat tepat yang mengelilingi muka yang dikembalikan oleh fungsi prapemprosesan. Gelung melalui segi empat tepat muka. Kira pusat setiap segi empat tepat dan jejari bulatan kabur. Mencipta imej hitam dengan dimensi yang sama seperti bingkai yang diubah saiz dengan memulakan semua piksel kepada 0. Menggunakan jejari yang dikira, lukis bulatan putih pada imej hitam yang berpusat pada segi empat tepat muka. Akhirnya, ia mengaburkan imej pada bulatan putih.
Buat fungsi utama untuk berfungsi sebagai titik masuk program. Ia kemudiannya akan mengawal aliran program. Fungsi ini akan memulakan gelung tak terhingga yang secara berterusan menangkap bingkai input video. Panggil kaedah baca objek topi untuk membaca bingkai daripada kamera.
Pastikan anda menjalankan fungsi utama dahulu semasa menjalankan skrip. Syarat ini akan menjadi palsu jika skrip diimport sebagai modul dalam program lain.
Anda boleh menggunakan pengaburan muka untuk melindungi privasi dalam pelbagai jenis persekitaran aplikasi. Perkhidmatan Street View dan pemetaan menggunakan teknologi kabur untuk mengaburkan wajah orang dalam imej. Penguatkuasaan undang-undang menggunakan teknologi pengaburan muka untuk melindungi identiti saksi.
Rumah Peranti teknologi AI Bagaimana untuk mengaburkan wajah dalam masa nyata menggunakan Python

Bagaimana untuk mengaburkan wajah dalam masa nyata menggunakan Python

Apr 07, 2023 pm 04:43 PM
python video muka manusia

​Penterjemah |. Bugatti

Penyemak |. Kebimbangan privasi dan keselamatan adalah sebab utama. Kebanyakan platform perkongsian video dan perisian penyuntingan video mempunyai ciri kabur muka terbina dalam.

Anda boleh mencipta program kabur muka anda sendiri dari awal menggunakan perpustakaan Python, OpenCV dan NumPy.

1. Wujudkan persekitaran

Untuk melengkapkan kajian artikel ini, anda perlu biasa dengan pengetahuan asas Python dan mempunyai pemahaman asas tentang penggunaan daripada perpustakaan NumPy.

Buka mana-mana IDE Python yang anda kenali. Cipta persekitaran maya untuk memasang perpustakaan yang diperlukan. Buat fail Python baharu. Pergi ke terminal dan jalankan arahan berikut untuk memasang perpustakaan yang diperlukan. Lulus perpustakaan sebagai senarai yang dipisahkan dengan ruang.

Anda akan menggunakan OpenCV untuk mendapatkan dan praproses input video dan NumPy untuk memproses tatasusunan.

pip install OpenCV-python NumPy
Salin selepas log masuk

Bagaimana untuk mengaburkan wajah dalam masa nyata menggunakan PythonSetelah anda memasang pustaka, tunggu sehingga IDE mengemas kini tulang belakang projek. Setelah kemas kini selesai dan persekitaran anda sedia, anda boleh memulakan pengekodan.

Nota: Kod sumber lengkap boleh didapati dalam repositori GitHub (https://github.com/makeuseofcode/Face-Blurring).

2. Import perpustakaan yang diperlukan

Pertama, import perpustakaan OpenCV dan pustaka NumPy. Ini akan membolehkan anda memanggil dan menggunakan mana-mana fungsi yang mereka sokong. Import OpenCV-python sebagai cv2.

Modul OpenCV-python menggunakan nama cv2 sebagai konvensyen yang ditubuhkan oleh komuniti OpenCV. OpenCV-Python ialah pembungkus Python untuk perpustakaan OpenCV, yang ditulis dalam C++.

3. Dapatkan input
import cv2
import numpy as np
Salin selepas log masuk

Buat pembolehubah dan mulakan objek VideoCapture. Jika anda ingin menggunakan kamera utama komputer anda sebagai sumber input, anda harus melepasi 0 sebagai parameter. Untuk menggunakan kamera luaran yang disambungkan ke komputer anda, lulus 1. Untuk melakukan pengaburan muka pada video yang diprarakam, lalukan laluan video tersebut. Untuk menggunakan kamera jauh, hantar URL kamera, yang mengandungi alamat IP dan nombor port.

Untuk melakukan kabur muka pada input, anda memerlukan tiga fungsi ini:

cap = cv2.VideoCapture(0)
Salin selepas log masuk

Fungsi yang pramemproses input.

Fungsi yang akan mengaburkan muka dalam input.
  • Fungsi utama yang akan mengawal aliran program dan memaparkan output.
  • 4. Prapemprosesan input video

Buat fungsi prapemprosesan input yang mengambil setiap bingkai video input sebagai inputnya. Mulakan kelas CascadeClassifier, yang akan anda gunakan untuk mengesan wajah. Ubah saiz bingkai kepada 640*640 piksel. Tukar bingkai bersaiz semula kepada skala kelabu untuk diproses, dan akhirnya mengesan muka dalam input dan mengikatnya kepada segi empat tepat.

Fungsi ini mengembalikan tuple yang mengandungi imej diubah saiz dan senarai segi empat tepat yang mewakili wajah yang dikesan.
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
Salin selepas log masuk

5. Mengaburkan muka

Buat fungsi kabur untuk mengaburkan muka dalam input. Fungsi ini mengambil sebagai input bingkai yang diubah saiz dan senarai segi empat tepat yang mengelilingi muka yang dikembalikan oleh fungsi prapemprosesan. Gelung melalui segi empat tepat muka. Kira pusat setiap segi empat tepat dan jejari bulatan kabur. Mencipta imej hitam dengan dimensi yang sama seperti bingkai yang diubah saiz dengan memulakan semua piksel kepada 0. Menggunakan jejari yang dikira, lukis bulatan putih pada imej hitam yang berpusat pada segi empat tepat muka. Akhirnya, ia mengaburkan imej pada bulatan putih.

Fungsi ini menggunakan fungsi NumPy where() untuk membina semula bingkai semasa proses kabur.
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
Salin selepas log masuk

6. Kawal aliran program

Buat fungsi utama untuk berfungsi sebagai titik masuk program. Ia kemudiannya akan mengawal aliran program. Fungsi ini akan memulakan gelung tak terhingga yang secara berterusan menangkap bingkai input video. Panggil kaedah baca objek topi untuk membaca bingkai daripada kamera.

Kemudian fungsi menghantar bingkai ke fungsi prapemprosesan dan nilai pulangan ke fungsi face_blur yang lain untuk mendapatkan imej kabur. Ia kemudian mengubah saiz bingkai yang dikembalikan oleh fungsi kabur dan memaparkan output.

Fungsi ini juga menamatkan paparan output apabila pengguna menekan kekunci q.
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
Salin selepas log masuk

7. Jalankan program

Pastikan anda menjalankan fungsi utama dahulu semasa menjalankan skrip. Syarat ini akan menjadi palsu jika skrip diimport sebagai modul dalam program lain.

Ini membolehkan anda menggunakan skrip sebagai modul atau menjalankannya sebagai program kendiri. Apabila program berjalan, anda sepatutnya melihat output yang serupa dengan ini:
if __name__ == "__main__":
main()
Salin selepas log masuk

Bagaimana untuk mengaburkan wajah dalam masa nyata menggunakan PythonWajah telah kabur dan tidak boleh dikenali datang keluar.

8. Aplikasi praktikal pengaburan muka

Anda boleh menggunakan pengaburan muka untuk melindungi privasi dalam pelbagai jenis persekitaran aplikasi. Perkhidmatan Street View dan pemetaan menggunakan teknologi kabur untuk mengaburkan wajah orang dalam imej. Penguatkuasaan undang-undang menggunakan teknologi pengaburan muka untuk melindungi identiti saksi.

Banyak platform perkongsian video turut menyepadukan fungsi kabur muka untuk pengguna. Membandingkan penggunaan kabur muka dalam kawasan ini boleh membantu anda melihat cara platform lain menyepadukan teknologi ini.

Pautan asal: https://www.makeuseof.com/python-blur-human-faces-real-time/

Atas ialah kandungan terperinci Bagaimana untuk mengaburkan wajah dalam masa nyata menggunakan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mengintegrasikan perkhidmatan Node.js atau Python dengan cekap di bawah seni bina lampu? Bagaimana untuk mengintegrasikan perkhidmatan Node.js atau Python dengan cekap di bawah seni bina lampu? Apr 01, 2025 pm 02:48 PM

Ramai pemaju laman web menghadapi masalah mengintegrasikan perkhidmatan node.js atau python di bawah seni bina lampu: lampu sedia ada (Linux Apache MySQL PHP) Laman web seni bina memerlukan ...

Bagaimana untuk menyelesaikan masalah kebenaran yang dihadapi semasa melihat versi Python di Terminal Linux? Bagaimana untuk menyelesaikan masalah kebenaran yang dihadapi semasa melihat versi Python di Terminal Linux? Apr 01, 2025 pm 05:09 PM

Penyelesaian kepada Isu Kebenaran Semasa Melihat Versi Python di Terminal Linux Apabila anda cuba melihat versi Python di Terminal Linux, masukkan Python ...

Apakah sebabnya mengapa fail penyimpanan berterusan saluran paip tidak dapat ditulis apabila menggunakan crawler scapy? Apakah sebabnya mengapa fail penyimpanan berterusan saluran paip tidak dapat ditulis apabila menggunakan crawler scapy? Apr 01, 2025 pm 04:03 PM

Apabila menggunakan crawler scapy, sebab mengapa fail penyimpanan berterusan paip tidak boleh ditulis? Perbincangan Ketika belajar menggunakan Crawler Scapy untuk Crawler Data, anda sering menemui ...

Python Hourglass Graph Lukisan: Bagaimana untuk mengelakkan kesilapan yang tidak ditentukan? Python Hourglass Graph Lukisan: Bagaimana untuk mengelakkan kesilapan yang tidak ditentukan? Apr 01, 2025 pm 06:27 PM

Bermula dengan Python: Lukisan Grafik Hourglass dan Pengesahan Input Artikel ini akan menyelesaikan masalah definisi berubah -ubah yang dihadapi oleh pemula python dalam program lukisan grafik Hourglass. Kod ...

Apakah sebabnya mengapa Pool Proses Python mengendalikan permintaan TCP serentak dan menyebabkan pelanggan terjebak? Apakah sebabnya mengapa Pool Proses Python mengendalikan permintaan TCP serentak dan menyebabkan pelanggan terjebak? Apr 01, 2025 pm 04:09 PM

Proses Python Pool mengendalikan permintaan TCP serentak yang menyebabkan pelanggan terjebak. Apabila menggunakan Python untuk pengaturcaraan rangkaian, adalah penting untuk mengendalikan permintaan TCP serentak dengan cekap. …

Bagaimana untuk melihat fungsi asal yang terkandung secara dalaman oleh python funcools.partial Object? Bagaimana untuk melihat fungsi asal yang terkandung secara dalaman oleh python funcools.partial Object? Apr 01, 2025 pm 04:15 PM

Sangat meneroka kaedah tontonan python funcools.partial Object in Funcools.Partial Menggunakan Python ...

Pembangunan Aplikasi Desktop Cross-Platform Python: Perpustakaan GUI mana yang terbaik untuk anda? Pembangunan Aplikasi Desktop Cross-Platform Python: Perpustakaan GUI mana yang terbaik untuk anda? Apr 01, 2025 pm 05:24 PM

Pilihan Perpustakaan Pembangunan Aplikasi Desktop Python Python Banyak pemaju Python ingin membangunkan aplikasi desktop yang boleh dijalankan pada kedua-dua sistem Windows dan Linux ...

Adakah Google dan AWS menyediakan sumber imej Pypi awam? Adakah Google dan AWS menyediakan sumber imej Pypi awam? Apr 01, 2025 pm 05:15 PM

Ramai pemaju bergantung kepada PYPI (PythonPackageIndex) ...

See all articles