Cara Membuat Aplikasi Perangkat Lunak Pengenalan Wajah

Salah satu keluaran terbaru dari kecerdasan buatan dan pembelajaran mesin adalah perangkat lunak atau aplikasi pengenalan wajah atau wajah.

Sistem pengenalan wajah perlahan tapi pasti menyusup ke kehidupan kita sehari-hari. Mereka dapat memilih Anda dari kerumunan dan mengidentifikasi Anda sebagai pribadi, yang dapat menyebabkan berbagai hasil. Mereka dapat membuka kunci layar ponsel Anda, membayar pembelian Anda, membuat Anda dipenjara, menandai kehadiran Anda di kantor, dan dapat melakukan lebih banyak hal di luar pemikiran kita. Dan saya sedang mengembangkan algoritme pengenalan wajah ketika perangkat lunak pengenalan wajah saya bahkan akan mengenali gambar yang Anda pikirkan. Dan akan membantu Anda menggambar ratu peri Anda. Mengolok-olok bagian satu Mari kembali ke topik utama.

Ada dua metode yang umum digunakan untuk membuat perangkat lunak atau aplikasi pengenalan wajah

  1. Metode pertama ini adalah penggunaan pra-terlatih model seperti dlib , wajah dalam , FaceNet , dan lain-lain. Jadi hari ini kita akan membahas metode ini. Ini akan memakan waktu lebih sedikit dengan upaya.
  2. Metode kedua untuk membuat perangkat lunak pendeteksi wajah adalah membuat jaringan saraf dari bawah ke atas. Pendekatan ini sesuai untuk sistem pengenalan wajah multiguna dengan fitur yang rumit. Ini melibatkan lebih banyak waktu dan tenaga, serta jutaan foto dalam set data pelatihan, dibandingkan dengan versi pra-latihan, yang hanya membutuhkan ribuan gambar dalam pembelajaran transfer.

Perusahaan Kecerdasan Buatan Terbesar di Dunia

Hari ini, saya menulis artikel ini untuk membahas

Cara membuat perangkat lunak pengenalan wajah dengan Python menggunakan perpustakaan OpenCV, DLib

Tetapi bagaimana cara kerja perangkat lunak pengenalan wajah ini dalam praktiknya, seberapa akuratnya, dan siapa yang memiliki wewenang untuk menggunakannya di portal publik? Mari kita buat sendiri menggunakan perangkat lunak sumber terbuka gratis dan foto teman untuk mencari tahu. Biarkan saya terus memberi tahu Anda, jenis perangkat lunak pengenalan wajah ini dipasang di area pribadi seperti kantor perusahaan.

Mari kita buat daftar semua yang kita butuhkan untuk membuat perangkat lunak pengenalan wajah

  1. Anda perlu mengunduh Teks Sublim Ketika unduhan selesai, buka editor teks Sublime Text dan lanjutkan instruksi instalasi. Di sinilah kita akan membuat kode yang pada akhirnya akan berubah menjadi perangkat lunak.

2. Periksa untuk menentukan apakah Python 3 sudah terpasang di mesin Anda. Ini adalah bahasa pemrograman yang paling direkomendasikan untuk membuat perangkat lunak pengenalan gambar terbaik di python. Ini adalah bahasa di mana kita akan membuat kode kita. Buka Terminal (di bawah folder utilitas di Aplikasi) atau Command Prompt (klik Windows + X dan pilih Command Prompt) di komputer Mac atau Windows untuk mencapai ini. Kemudian tekan enter untuk mengetik berikut ini:

3. Kembali ke Terminal atau Command Prompt dan ketik perintah di bawah ini, tekan enter setelah setiap baris untuk menginstal paket yang diperlukan. Perlu sedikit waktu untuk sampai ke baris keempat, dlib.

 pip3 instal cmake pip3 
instal face_recognition
pip3 instal numpy
pip3 instal dlib
pip3 instal opencv-python

Saya akan melanjutkan pengaturan kode ini di bawah Bagian 2

Sebelum Mengetahui cara membuat perangkat lunak pengenalan wajah, mari kita melalui proses Deteksi dan pengenalan wajah

Proses pengenalan wajah dimulai dengan aplikasi kamera yang diinstal pada perangkat apa pun. Aplikasi ini ditulis dalam golang dan berjalan sebagai aplikasi konsol lokal di keduanya Raspbian dan Ubuntu. Aplikasi harus disiapkan menggunakan file konfigurasi JSON dengan jenis ID Kamera Lokal dan Pembaca Kamera saat pertama kali diluncurkan.
Setelah itu, acara ini dapat menggunakan visi komputer dan jaringan saraf yang dalam untuk menemukan wajah potensial di dalam alirannya.

Ada dua metode dasar untuk melakukannya yang keduanya efektif:

  1. Versi deteksi objek TensorFlow
  2. Pelacakan wajah kafe

Kedua solusi ini telah terbukti efektif dan sekarang termasuk dalam perpustakaan OpenCV.

Setelah wajah diambil oleh perangkat lunak pengenalan wajah, gambar yang dipotong akan dikirim ke bagian belakang melalui permintaan data formulir HTTP. API kemudian menyimpan gambar wajah ini di sistem file lokal serta di log deteksi, bersama dengan personID.

Gambar 2: Jarak Euclidean

cara membuat software pengenal wajah dengan python

Di bagian belakang, sebuah algoritma menemukan catatan dengan nilai ‘diklasifikasikan = salah’ dan menggunakan fungsi Dlib untuk membuat vektor 128-dimensi yang menggambarkan kualitas wajah ini. Program kemudian menggunakan jarak Euclidean untuk membandingkan vektor ini dengan semua rekaman wajah dalam database untuk melihat apakah wajah baru ini cocok dengan wajah yang direkam sebelumnya.

cara membuat algoritma pendeteksi wajah

Gambar di atas adalah representasi dari kode fungsi Dlib, dengan titik indeks yang sesuai dengan bagian wajah. menggunakan algoritma di atas, kita dapat membuat perangkat lunak pengenalan wajah yang mendeteksi wajah lebih dari 80% benar. Ini hanya kode demo untuk mewakili struktur.

Ketahui Tahapan Pengenalan Wajah Membuat Software Pengenalan Wajah

Untuk membuat aplikasi seluler dengan teknologi pengenalan wajah, Anda harus terlebih dahulu mencari tahu langkah-langkah apa yang perlu Anda lakukan. Apa sajakah langkah-langkah dari prosedur identifikasi?

  • Deteksi wajah di awal. Sistem harus mendeteksi wajah pada citra pada tahap pertama. Ini bukan tentang mengidentifikasi seseorang; ini hanya tentang fakta bahwa Anda sedang menatap wajah manusia. Dan jika gagasan membuat perangkat lunak pendeteksi wajah menarik bagi Anda, dan Anda tidak memerlukan apa pun yang lebih canggih, prosedurnya.
  • Penentuan Titik Referensi Ada banyak pekerjaan yang lebih sensitif yang harus dilakukan sekarang. Program mencari titik referensi (fitur) pada wajah yang dapat digunakan untuk menentukan kualitas unik seseorang. Sebelumnya, mata dianggap sebagai titik referensi utama, tetapi teknologi komputasi saat ini telah maju untuk mencakup lebih dari 70 aspek penting.
  • Membangun Wajah Frontal Wajah harus diubah untuk mendapatkan gambar frontal untuk mempermudah proses pencocokan sesuatu.
  • Perhitungan Deskriptor Fitur Sekarang deskriptor, yang merupakan sekumpulan ciri yang menggambarkan wajah seseorang terlepas dari usia, gaya rambut, atau faktor lainnya, sedang ditentukan. Untuk lebih spesifik, kita memerlukan potret digital tertentu, vektor wajah, untuk melakukan perbandingan yang lebih akurat.
  • Perbandingan wajah. Prosedur pencocokan vektor wajah digital yang dihasilkan dengan item yang terdapat dalam database adalah tahap kelima.
  • Pengenalan Wajah adalah identifikasi akhir seseorang (atau, lebih tepatnya, wajahnya) ketika kecocokan telah ditemukan.

Seksi 2:

Cara membuat perangkatlunak pengenalan

 pip3 instal cmake pip3 
instal face_recognition
pip3 instal numpy
pip3 instal dlib
pip3 instal opencv-python

Jika perintah simpulan meminta Anda untuk menginstal Xcode (untuk Mac), buka App Store dan instal. Ini mungkin memakan waktu cukup lama karena cukup besar. Kemudian ketik ulang baris terakhir (pip3 install OpenCV-python) dan tekan enter.

Membuat dan Menjalankan Aplikasi yang Kami Instal

1. Salin dan tempel kode di bawah ini dalam potongan kode sumber terbuka ke dalam Teks Sublime.

 #kode bercabang dan diubah dari https://github.com/ageitgey/face_recognition/blob/master/examples/facerec_from_webcam_faster.py 
#untuk memperluas,cukup tambahkan lebih banyak orang

ke dalam folderknown_people import face_recognition
impor cv2 impor numpy sebagai np

impor os impor glob


# Dapatkan referensi ke webcam #0 (yang default)
video_capture = cv2.VideoCapture(0)

#membuat susunan contoh gambar
dengan penyandianknown_face_encodings =
nama_wajah_dikenal =
dirname = os.path.dirname(__file__)
path = os.path.join(dirname, 'known_people/')

#membuat larik dari semua jalur filejpg yang disimpan
list_of_files= f untuk f di glob.glob(path+'*.jpg')
#cari jumlah wajah yang
diketahui number_files= len(list_of_files)

nama = list_of_files.copy()

untuk saya dalam jangkauan (number_files):
global()'image_'.format(i) = face_recognition.load_image_file(list_of_filesi)
globals()'image_encoding_'.format(i) = face_recognition.face_encodings(globals()'image_'.format(i))0
known_face_encodings.append(globals()'image_encoding_'.format(i))

# Buat array nama yang dikenal
namai = namai.replace("known_people/", "")
nama_wajah_yang dikenal.append(namai)

# Inisialisasi
beberapa variabelface_locations =
face_encodings =
nama_wajah =
process_this_frame

= Benar sementara Benar:
# Ambil satu bingkai video
ret, bingkai = video_capture.read()

# Ubah ukuran bingkai video menjadi 1/4 ukuran untuk pemrosesan pengenalan wajah yang lebih cepat
small_frame = cv2.resize(bingkai, (0, 0), fx=0.25, fy=0.25)

# Konversi gambar dari warna BGR (yang digunakan OpenCV) ke warna RGB (yang digunakan face_recognition)
rgb_small_frame = small_frame:, :, ::-1

# Hanya proses setiap frame video lainnya untuk menghemat waktu
jika process_this_frame:
# Temukan semua wajah dan penyandian wajah dalam bingkai video saat ini
face_locations = face_recognition.face_locations(rgb_small_frame)
face_encodings = face_recognition.face_encodings(rgb_small_frame, face_locations)

nama_wajah =
untuk face_encoding di face_encodings:
# Lihat apakah wajahnya cocok dengan wajah yang dikenal
cocok = face_recognition.compare_faces(known_face_encodings, face_encoding)
nama = "Tidak diketahui"

# # Jika kecocokan ditemukan di known_face_encodings, gunakan saja yang pertama.
# jika Benar dalam kecocokan:
# first_match_index = kecocokan.index(Benar)
# nama = nama_wajah_yang dikenalindeks_pertandingan_pertama

# Atau sebaliknya, gunakan wajah yang dikenal dengan jarak terkecil ke wajah baru
face_distances = face_recognition.face_distance(pengenkodean_wajah_dikenal, penyandian_wajah)
best_match_index = np.argmin(jarak_wajah)
jika cocokbest_match_index:
nama = nama_wajah_yang dikenalbest_match_index

face_names.append(nama)

process_this_frame = bukan process_this_frame


# Tampilkan hasilnya
untuk (atas, kanan, bawah, kiri), nama dalam zip(face_locations, face_names):
# Skala lokasi wajah cadangan karena bingkai yang kami deteksi diskalakan ke ukuran 1/4
atas *= 4
kanan *= 4
bawah *= 4
kiri *= 4

# Gambar kotak di sekitar wajah
cv2.rectangle(bingkai, (kiri, atas), (kanan, bawah), (0, 0, 255), 2)

# Gambarlah label dengan nama di bawah wajah
cv2.rectangle(bingkai, (kiri, bawah - 35), (kanan, bawah), (0, 0, 255), cv2.FILLED)
font = cv2.FONT_HERSHEY_DUPLEX
cv2.putText(bingkai, nama, (kiri + 6, bawah - 6), font, 1.0, (255, 255, 255), 1)

# Tampilkan gambar yang dihasilkan
cv2.imshow('Video', bingkai)

# Tekan 'q' pada keyboard untuk keluar!
jika cv2.waitKey(1) & 0xFF == ord('q'):
merusak

# Lepaskan pegangan
ke webcamvideo_capture.release()
cv2.destroySemuaWindows()

2. Simpan file ini dengan algoritme yang ditulis di atas sebagai pengenalan face.py di sistem Anda, lalu buat folder bernama orang yang dikenal (pastikan ini juga ada di folder Desktop).

3. Sekarang kita dapat menambahkan foto orang yang ingin kita identifikasi ke folder orang yang dikenal dengan menyimpan gambar wajah mereka. Pastikan individu dalam foto menghadap ke depan dan merupakan satu-satunya yang ada di dalam gambar (pangkas jika perlu). Setiap file diberi nama orang seperti yang kita inginkan untuk muncul di layar. File Only.jpg akan digunakan dalam skenario ini.

4. Untuk menjalankan aplikasi, kembali ke Terminal (Mac) atau Command Prompt (Windows) dan ketik berikut ini dan klik enter.

 cd Desktop python3 
recognise_face.py

<---- if an error message appears try:----!>

python recognise_face.py


Menekan Ctrl + c dengan jendela Terminal yang dipilih akan keluar dari program.

Untuk meringkas, proses pengenalan wajah dapat dipecah menjadi empat langkah.

  1. Deteksi setiap wajah yang muncul dalam bingkai.
  2. Untuk membuat masker, carilah titik-titik yang tepat pada wajah, seperti ujung hidung dan sudut masing-masing mata seperti yang dijelaskan pada Gambar 2 : Jarak Euclidean. Kemudian, hanya dengan menggunakan perubahan yang mempertahankan bentuk aslinya, seperti rotasi dan zooming, ubah posisi topeng itu sehingga mengarah lurus ke depan.
  3. Proses pengkodean. Tahap ini memerlukan menemukan fitur penting dari wajah ( melalui visi komputer ) yang akan serupa di foto orang yang sama tetapi berbeda di foto orang lain.
cara membuat software pengenalan wajah dengan python

Program pengenalan wajah di panggung dunia

Bloomberg memperkirakan bahwa pasar pengenalan wajah global akan bernilai $7,76 miliar pada 2022. (dari 4,05 miliar dolar pada 2017).

Dalam hal ini, akan sangat menarik untuk mengetahui di mana di dunia ini orang-orang menghasilkan uang paling banyak dari perangkat lunak pengenalan wajah (aplikasi, situs web, dan program lainnya). Grafik di bawah ini memberikan jawaban atas pertanyaan tersebut.

permintaan perangkat lunak pengenalan wajah dari tahun ke tahun

Cara mengidentifikasi wajah seseorang di perangkat lunak pengenalan wajah

  • Pengenalan 2D adalah pendekatan populer untuk pengenalan wajah saat ini. Hal ini didasarkan pada perbandingan dan penggunaan gambar dua dimensi.
  • Pengakuan dalam tiga dimensi. Metode ini menjadi lebih populer, meskipun faktanya masih jauh lebih rendah daripada yang sebelumnya. Ini mengambil keuntungan dari kemampuan untuk membangun kembali gambar tiga dimensi. ID Wajah Apple adalah salah satu pemindai 3D paling terkenal.
  • Dalam lingkungan yang terkendali, pengenalan wajah dilakukan. Versi pengenalan sangat mudah; itu mengandaikan latar belakang yang tidak bergerak dan dapat dikontrol. Dalam situasi ini, aplikasi pengenalan wajah tidak akan kesulitan memisahkan elemen individu (seperti mata, hidung, dan mulut) dan membuat ulang seluruh item (wajah manusia).
  • Pengenalan wajah berdasarkan warna. Perangkat lunak ini memeriksa gambar untuk area warna kulit normal dan mencoba menangkap, menganalisis, dan mengidentifikasi segmen wajah.
  • Pengenalan wajah berdasarkan tekstur kulit. Kita berurusan dengan foto resolusi tinggi yang memungkinkan penilaian tekstur kulit secara mendetail, termasuk garis, kerutan, dan pori-pori.
  • Pencarian wajah berbasis gerakan Ini ada hubungannya dengan gambar video yang memiliki efek gerakan. Perangkat lunak harus memeriksa titik referensi spesifik dalam situasi ini, seperti mata berkedip, alis, hidung, dahi, atau bibir. Algoritme mencoba untuk memodelkan dan mengidentifikasi wajah segera setelah salah satu elemen ini diidentifikasi, dan membandingkannya dengan yang ada di database.
  • Pengenalan wajah menggunakan pencitraan termal. Dalam beberapa tahun terakhir, kamera pencitraan termal menjadi semakin populer untuk mengidentifikasi wajah manusia. Apalagi kawasan tersebut terus berkembang dari tahun ke tahun.

Bagaimana cara membuat aplikasi seluler untuk pengenalan wajah?

Pertanyaan terpenting tidak diragukan lagi bagaimana membuat perangkat lunak pengenalan wajah dengan python. Sumber daya apa yang Anda perlukan untuk mewujudkan konsep Anda?

Ada banyak pilihan, kami akan menjelaskan 3 yang paling populer di antaranya.

API Asli

Cara paling mudah untuk membuat aplikasi pengenalan wajah untuk Android atau iOS adalah dengan menggunakan API Asli Apple dan Google. Itu tidak mahal, sederhana untuk dieksekusi, dan tidak memerlukan biaya atau usaha tambahan. Tentu saja, tidak akan ada banyak fitur, tetapi siapa tahu, mungkin cukup untuk menyelesaikan pekerjaan.

Solusi pihak ketiga

Membuat perangkat lunak pengenalan wajah adalah solusi pihak ketiga yang mudah digunakan adalah alternatif kedua. Dan, katakanlah, luasnya opsi alat ini akan mengejutkan Anda: banyak perusahaan memiliki API yang dapat digunakan untuk membangun aplikasi deteksi wajah. Apa pendapat Anda tentang ini?

  • Visual Recognition API adalah salah satu dari banyak penawaran pengembangan Amazon (yang juga mencakup platform belanja dan solusi cloud). Selain itu, tersedia pilihan berbayar dan gratis.
  • Luxand.cloud API memungkinkan pengembang membuat aplikasi yang dapat menilai jenis kelamin manusia, usia, kondisi emosional, dan banyak lagi. BASIC, PRO, dan ULTRA adalah tiga paket harga yang ditawarkan perusahaan.
  • FaceMark adalah solusi API yang mudah dan dapat diandalkan yang memberikan banyak titik referensi untuk membuat ulang seluruh wajah dan profil, serta kemudahan penggunaan dan berbagai pilihan harga.

Bagaimana Deep Learning Membuat Perangkat Lunak Pengenalan Wajah Bebas dari Kesalahan

Salah satu pendekatan paling inovatif untuk meningkatkan teknologi pengenalan wajah adalah pembelajaran mendalam. Penyematan wajah diekstraksi dari foto dengan wajah. Wajah yang berbeda akan memiliki penyematan wajah yang berbeda. Dan metode yang paling efisien untuk mencapai ini adalah dengan melatih jaringan saraf yang dalam.

Namun, dalam jangka panjang, jika sistem pengenalan wajah memiliki fitur unik, itu mungkin pilihan terbaik. Berikut ini adalah pertimbangan yang paling penting.

  • Pemilihan arsitektur CNN dan fungsi kerugian yang benar
  • Optimasi waktu inferensi
  • Kekuatan kamera dan perangkat keras lainnya

Leave a Comment