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

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

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



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.

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.

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.

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.

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.

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.

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.

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.
