OpenCV yordamida rasmdagi yuzlarni aniqlash
O'rnatilgan OpenCV bilan biz uni kodimizdagi kabi import qilishimiz mumkin cv2. Rasmni o'qish uchun biz ishlashni xohlagan rasmga yo'l bilan birga funktsiyadan foydalanamiz . imread(). Funksiya shunchaki bir yilda ko'rsatilgan fayl tasvirni yuklaydi ndarray. Agar rasmni o'qib bo'lmaydigan bo'lsa, masalan, fayl yetishmayotgan bo'lsa yoki format qo'llab-quvvatlanmasa, funksiya qaytadi None. Biz Kaggle ma'lumotlar to'plamidagi rasmdan foydalanamiz :
import cv2
path to image=’Parade_12.jpg’
original image=cv2 imread(path to image)
RGB haqida to'liq ma'lumot yuzni aniqlash uchun kerak emas. Rang rasmda juda ko'p ahamiyatga ega bo'lmagan ma'lumotlarni saqlaydi, shuning uchun uni olib tashlash va kulrang tasvir bilan ishlash samaraliroq. Bundan tashqari, OpenCV bilan qopqoq ostida ishlaydigan Viola-Jones algoritmi rasm maydoni intensivligining farqini tekshiradi. Kulrangdagi tasvirlar bu farqni yanada keskinroq ta'kidlaydi. Rangli tasvirlarda dekodlangan rasmlarda kanallar BGR tartibida saqlanadi, shuning uchun ularni kulrang rangga o'zgartirganda biz cv2.COLOR_BGR2GRAY buyrug’idan foydalanishimiz kerak :
Image=cv2.cvtColor(original image cv2.COLOR_BGR2GRAY)
Buni to'g'ridan-to'g'ri foydalanishda cv2 IMREAD_GRAYSCALE buyruqni o'rnatish orqali amalga oshirish mumkin edi:
original image=cv2 imread(path to image,cv2 IMREAD_GRAYSCALE
OpenCV kutubxonasi yuzlar, ko'zlar, tabassumlar, yuqori qismlar va hokazo kabi turli xil narsalarni topishga o'rgatilgan bir nechta oldindan tayyorlangan klassifikatorlar bilan ta'minlangan. Haar ko'pincha topish mumkin, bu ob'ektlar XML deb saqlanadi aniqlash, va siz OpenCV o'rnatilgan qanday qarab uchun xususiyatlari Ularni OpenCV GitHub omborida topish mumkin. Ularga koddan kirish uchun siz "a" dan foydalanishingiz cv2.data haar cas cades va foydalanmoqchi bo'lgan XML fayl nomini qo'shishingiz mumkin. Biz ob'ektni aniqlash uchun qaysi Haar xususiyatlaridan foydalanishni tanlashimiz mumkin, ob'ektni aniqlash cv2.Cas cade Classifier uchun oldindan o'qitilgan modellardan foydalanadigan konstruktorga fayl yo'lini qo'shish orqali :
Face_cas cade=cv2.Cas cade Classifier(cv2.data haar cas cades +”haar cas cade_frontalface_default.xml”)
Ob'ektni aniqlash modellari o'qitilganda, ular ma'lum o'lchamdagi yuzlarni aniqlashga o'rgatiladi va ular kutganidan kattaroq yoki kichikroq yuzlarni sog'inishi mumkin. Shuni yodda tutgan holda, rasm yuzi "aniqlanadigan" o'lchamga ega bo'lishiga umid qilib, rasm bir necha marta o'zgartiriladi. OpenCV tasvirlarni kattalashtirish uchun qancha bilaman beradi. Bizning holatlarimizda, bu yuzlarni yaxshiroq sinab ko'rish va moslashtirish uchun pastga tushishini 1,3 anglatadi. 30%
Parametrga kelsak, u noto'g'ri ijobiy va noto'g'ri salbiy sonlarni boshqarish uchun ishlatiladi. U ijobiy to'rtburchakning yonida turishi kerak bo'lgan ijobiy to'rtburchaklar minimal sonini (yuz xususiyatlarini aniqlash) aniqlaydi, chunki u aslida ijobiy deb hisoblanadi. Agar minNeighbors o'rnatilgan bo'lsa 0, yuzning eng kichik ishorasi aniq yuz deb hisoblanadi, hatto uning yonida boshqa yuz xususiyatlari aniqlanmasa ham.
Do'stlaringiz bilan baham: |