Bagaimana untuk mengaburkan wajah dalam masa nyata menggunakan Python
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
Setelah 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 inputimport cv2 import numpy as np
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)
- 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
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
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
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()
Wajah 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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

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 ...

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

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 ...

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 ...

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. …

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

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

Ramai pemaju bergantung kepada PYPI (PythonPackageIndex) ...
