Kaedah dan langkah untuk melaksanakan pengecaman muka menggunakan Python

王林
Lepaskan: 2023-05-07 20:43:11
ke hadapan
1956 orang telah melayarinya

Untuk persekitaran pembangunan kami akan menggunakan Edisi Komuniti Visual Studio.

Jika ia belum dipasang pada komputer anda, anda boleh memuat turunnya dari sini. dan pasang pembangunan desktop menggunakan C++.

Kaedah dan langkah untuk melaksanakan pengecaman muka menggunakan Python

Sekarang kami mempunyai Visual Studio untuk pembangunan desktop menggunakan C++, kami boleh memulakan projek kami.

Gunakan Visual Studio untuk membuka direktori baharu dan mencipta persekitaran python baharu. Kami akan menggunakan venv Buka terminal bersepadu anda dan tulis python -m venv venv. Kemudian aktifkan persekitaran dengan menaip venv/bin/Activate.ps1. Ini untuk PowerShell.

Jika anda menggunakan mana-mana terminal lain, anda boleh mencari senarai penuh di sini

Kaedah dan langkah untuk melaksanakan pengecaman muka menggunakan Python

Sekarang kita telah selesai mencipta persekitaran maya, mari mula mengekstrak kebergantungan kami . Untuk ini kita memerlukan opencv dan face_recognition. Gunakan pip dalam terminal anda.

pip install opencv-python face_recognition
Salin selepas log masuk

Pengecaman Muka ialah perpustakaan yang menggunakan perpustakaan dlib yang canggih. Kami bersedia untuk menulis beberapa kod dan mengenali beberapa wajah.

Buat fail python baharu, kami akan memanggil fail missingPerson.py dengan mengandaikan kami akan menggunakan aplikasi kami untuk memadankan orang yang hilang. Import kebergantungan kami dan tulis beberapa baris pertama kami.

import cv2
import numpy as np
import face_recognition
import os
 
from face_recognition.api import face_distance
Salin selepas log masuk

Dengan mengandaikan semua foto kami disimpan dalam storan pelayan kami, kami perlu terlebih dahulu menarik imej semua orang ke dalam aplikasi kami dan membaca imej tersebut.

path = 'MissingPersons'
images = []
missingPersons = []
missingPersonsList = os.listdir(path)
 
for missingPerson in missingPersonsList :
    curImg = cv2.imread(f'{path}/{missingPerson}')
    images.append(curImg)
    missingPersons.append(os.path.splitext(missingPerson)[0])
print(missingPersons)
Salin selepas log masuk

Dalam bahagian ini, kami akan menggunakan opencv untuk membaca semua imej orang yang hilang dan menambahkannya pada senarai orang yang hilang kami.

Selepas kita membaca semua imej muka yang hilang daripada storan, kita perlu mencari pengekodan muka supaya kita boleh menggunakan pengesan muka CNN untuk mencipta susunan 2D kotak sempadan muka dalam imej.

def findEncodings(images):
    encodeList = []
    for img in images:
        img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
        encode = face_recognition.face_encodings(img)[0]
        encodeList.append(encode)
    print(encodeList)
    return encodeList
 
encodeListKnown = findEncodings(images)
print('Encoding Complete')
Salin selepas log masuk

Kami menyimpan tatasusunan 2D ke dalam senarai pengekodan wajah yang diketahui. Ini akan mengambil masa beberapa minit.

Sekarang kami mempunyai kod muka untuk semua orang yang hilang, yang perlu kami lakukan sekarang ialah memadankannya dengan imej wartawan kami. pengecaman_muka sangat mudah digunakan.

def findMissingPerson(encodeListKnown, reportedPerson='found1.jpg'):
    person = face_recognition.load_image_file(f'ReportedPersons/{reportedPerson}]')
    person = cv2.cvtColor(person,cv2.COLOR_BGR2RGB)
 
    try:
        encodePerson = face_recognition.face_encodings(person)[0]
 
        comparedFace = face_recognition.compare_faces(encodeListKnown,encodePerson)
        faceDis = face_recognition.face_distance(encodeListKnown,encodePerson)
        matchIndex = np.argmin(faceDis)
        if comparedFace[matchIndex]:
            name = missingPersons[matchIndex].upper()
            print(name)
            return name
        else:
          print('Not Found')
          return False
        
    except IndexError as e:
        print(e)
        return e
Salin selepas log masuk

Mula-mula kita perlu memuatkan fail imej orang yang dilaporkan dan mengekod wajah mereka. Yang tinggal hanyalah membandingkan pengekodan muka yang dilaporkan dengan perkara yang sudah kita ketahui tentang pengekodan muka. Kemudian logik mudah sepadan dengan indeks mereka dan kembali jika orang itu ditemui dalam senarai missingPersons kami.

Pengecaman muka ini bukan sahaja untuk mencari orang yang hilang. Ia mengesan dan mengecam muka dan boleh beroperasi mengikut keperluan.

Atas ialah kandungan terperinci Kaedah dan langkah untuk melaksanakan pengecaman muka menggunakan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!