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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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)

PHP dan Python: Paradigma yang berbeza dijelaskan PHP dan Python: Paradigma yang berbeza dijelaskan Apr 18, 2025 am 12:26 AM

PHP terutamanya pengaturcaraan prosedur, tetapi juga menyokong pengaturcaraan berorientasikan objek (OOP); Python menyokong pelbagai paradigma, termasuk pengaturcaraan OOP, fungsional dan prosedur. PHP sesuai untuk pembangunan web, dan Python sesuai untuk pelbagai aplikasi seperti analisis data dan pembelajaran mesin.

Memilih antara php dan python: panduan Memilih antara php dan python: panduan Apr 18, 2025 am 12:24 AM

PHP sesuai untuk pembangunan web dan prototaip pesat, dan Python sesuai untuk sains data dan pembelajaran mesin. 1.Php digunakan untuk pembangunan web dinamik, dengan sintaks mudah dan sesuai untuk pembangunan pesat. 2. Python mempunyai sintaks ringkas, sesuai untuk pelbagai bidang, dan mempunyai ekosistem perpustakaan yang kuat.

Boleh kod vs dijalankan di Windows 8 Boleh kod vs dijalankan di Windows 8 Apr 15, 2025 pm 07:24 PM

Kod VS boleh dijalankan pada Windows 8, tetapi pengalaman mungkin tidak hebat. Mula -mula pastikan sistem telah dikemas kini ke patch terkini, kemudian muat turun pakej pemasangan kod VS yang sepadan dengan seni bina sistem dan pasangnya seperti yang diminta. Selepas pemasangan, sedar bahawa beberapa sambungan mungkin tidak sesuai dengan Windows 8 dan perlu mencari sambungan alternatif atau menggunakan sistem Windows yang lebih baru dalam mesin maya. Pasang sambungan yang diperlukan untuk memeriksa sama ada ia berfungsi dengan betul. Walaupun kod VS boleh dilaksanakan pada Windows 8, disyorkan untuk menaik taraf ke sistem Windows yang lebih baru untuk pengalaman dan keselamatan pembangunan yang lebih baik.

Adakah sambungan vscode berniat jahat? Adakah sambungan vscode berniat jahat? Apr 15, 2025 pm 07:57 PM

Sambungan kod VS menimbulkan risiko yang berniat jahat, seperti menyembunyikan kod jahat, mengeksploitasi kelemahan, dan melancap sebagai sambungan yang sah. Kaedah untuk mengenal pasti sambungan yang berniat jahat termasuk: memeriksa penerbit, membaca komen, memeriksa kod, dan memasang dengan berhati -hati. Langkah -langkah keselamatan juga termasuk: kesedaran keselamatan, tabiat yang baik, kemas kini tetap dan perisian antivirus.

Cara menjalankan program di terminal vscode Cara menjalankan program di terminal vscode Apr 15, 2025 pm 06:42 PM

Dalam kod VS, anda boleh menjalankan program di terminal melalui langkah -langkah berikut: Sediakan kod dan buka terminal bersepadu untuk memastikan bahawa direktori kod selaras dengan direktori kerja terminal. Pilih arahan Run mengikut bahasa pengaturcaraan (seperti python python your_file_name.py) untuk memeriksa sama ada ia berjalan dengan jayanya dan menyelesaikan kesilapan. Gunakan debugger untuk meningkatkan kecekapan debug.

Bolehkah kod studio visual digunakan dalam python Bolehkah kod studio visual digunakan dalam python Apr 15, 2025 pm 08:18 PM

Kod VS boleh digunakan untuk menulis Python dan menyediakan banyak ciri yang menjadikannya alat yang ideal untuk membangunkan aplikasi python. Ia membolehkan pengguna untuk: memasang sambungan python untuk mendapatkan fungsi seperti penyempurnaan kod, penonjolan sintaks, dan debugging. Gunakan debugger untuk mengesan kod langkah demi langkah, cari dan selesaikan kesilapan. Mengintegrasikan Git untuk Kawalan Versi. Gunakan alat pemformatan kod untuk mengekalkan konsistensi kod. Gunakan alat linting untuk melihat masalah yang berpotensi lebih awal.

Boleh vscode digunakan untuk mac Boleh vscode digunakan untuk mac Apr 15, 2025 pm 07:36 PM

VS Kod boleh didapati di Mac. Ia mempunyai sambungan yang kuat, integrasi git, terminal dan debugger, dan juga menawarkan banyak pilihan persediaan. Walau bagaimanapun, untuk projek yang sangat besar atau pembangunan yang sangat profesional, kod VS mungkin mempunyai prestasi atau batasan fungsi.

Boleh vscode menjalankan ipynb Boleh vscode menjalankan ipynb Apr 15, 2025 pm 07:30 PM

Kunci untuk menjalankan buku nota Jupyter dalam kod VS adalah untuk memastikan bahawa persekitaran Python dikonfigurasi dengan betul, memahami bahawa perintah pelaksanaan kod adalah konsisten dengan susunan sel, dan mengetahui fail besar atau perpustakaan luaran yang boleh menjejaskan prestasi. Fungsi penyempurnaan dan debug yang disediakan oleh kod VS dapat meningkatkan kecekapan pengekodan dan mengurangkan kesilapan.

See all articles