Mundarija kirish i-bob. Yuz tasvirni biometrik identifikatsiyalash usullarini nazariy jihatlarni ko‘rib chiqish


Yuzni tanib olish uchun ma’lumotlar bazasini shakllantirish


Download 2.13 Mb.
bet16/19
Sana25.10.2023
Hajmi2.13 Mb.
#1720381
1   ...   11   12   13   14   15   16   17   18   19
Bog'liq
Qosimov B bm

2.3. Yuzni tanib olish uchun ma’lumotlar bazasini shakllantirish
Ushbu bo‘limda biz tanib olish tizimimizning yana bir komponenti - yuz ma’lumotlar bazasini muhokama qilamiz. Birinchi savol - biz ma’lumotlar bazasida aniq nimani saqlashimiz kerak. Umuman olganda, biz o‘z ma’lumotlar bazasida shaxsning identifikatorini, aytaylik, uning ismi va familiyasini va o‘xshashlik darajasini baholash uchun boshqa shaxs bilan solishtirishimiz mumkin bo‘lgan yuz xususiyatlarini saqlashimiz kerak. Ko‘pgina haqiqiy yuzni aniqlash tizimlarida yuz xususiyatlari qo‘shimchalar deb ataladi. Ushbu qo‘shimchalar DNN modeli yordamida yuz tasviridan olinadi.
Tizimimiz umumiy va tushunarli bo‘lishi uchun biz juda oddiy ma’lumotlar bazasi tuzilmasidan foydalanamiz. U PNG yoki JPG formatidagi yuz tasvirlari papkasi bilan ifodalanadi, har bir kishi uchun bitta rasm. Fayllarga shaxs identifikatori (ism) beriladi. Har bir shaxsning suratida tasvirdan olingan normallashgan yuz bo‘ladi. Yuzlarni aniqlash uchun ma’lumotlar bazasidan foydalanganda, biz tezda qo‘shimchalarni chiqaramiz. Biz bir xil ma’lumotlar bazasini turli DNN modellari bilan ishlatishimiz mumkin.
Ma’lumotlar bazasini yaratish
Yuz ma’lumotlarini olishning ikkita varianti bor: videodan va rasmdan. Bizda videodan yuz ma’lumotlarini olish uchun kod mavjud. Biz yuz detektorimizni quyidagicha ishga tushirishimiz mumkin:
Python
d = MTCNN_Detector(50, 0.95)
vd = videorecord (d)
v_file = r"C:\PI_FR\video\5_3.mp4 "
save_path = r"C:\PI_FR\detect "
(f_count, fps) = vd.detect(v_file, save_path, True, False)
print("Yuzni tanib olish: "+str(f_count))
print ("FPS: "+str(fps))
Jarayon tugagach, biz ma’lumotlar bazasiga qo‘shmoqchi bo‘lgan har bir kishi uchun aniq yuz namunalarini tanlashimiz mumkin bo‘ladi. Mana, biz ma’lumotlar bazasida saqlagan beshta sinov videosidan olingan besh kishilik namunalar.

Ma’lumotlar bazasini to‘ldirish uchun rasmlardan yuzlarni ajratib oladigan va ularni ma’lumotlar bazasiga qo‘shadigan Python kodini yozamiz:
Python
Qisqartirish ▲
из matplotlib импортируйте pyplot как plt
fa = Face_Align_Mouth(160)
db_path = r"C:\PI_FR\db "
выровнять = True
p_name = "Woman05"
f_file = r"C:\PI_FR\faces\CF0055_1100_00F.jpg "
fimg = cv2.imread(f_file, cv2.IMREAD_UNCHANGED)
faces = d.detect(fimg)
r_file = os.path.join(db_path, p_name+".png")
face = лица[0]
если выровнять:
(f_cropped, f_img) = fa.align (fimg, лицо)
еще:
(f_cropped, f_img) = d.извлечь (fimg, лицо)
если (нет (f_img равно None)) и (не f_img.size==0):
cv2.imwrite(r_file, f_img)
plt.imshow(f_img)
распечатать(p_name+" добавляется в базу данных лиц".)
еще:
печать("Неправильное изображение".)
Yuqoridagi kod yordamida biz odamlarning fotosuratlari yordamida ma’lumotlar bazasiga osongina yuz namunalarini qo‘shishimiz mumkin.
Maʼlumotlar bazasini yuzni tanishning barcha stsenariylari uchun sinovdan oʻtkazishni osonlashtirish uchun unga sinov videofayllarida boʻlmagan baʼzi inson yuzlarini qoʻshishimiz kerak. Bu yuzlarni boshqa videolardan ajratib olishimiz mumkin. Yoki intenetda mavjud yuz bazalaridan olishiumiz mumkin.
Biz bir nechta manbalardan to‘plangan ba’zi yuzlarni to‘playmiz va ularni joylashtiramiz. Keyin biz ushbu arxivdan yuzni ajratib olish kodini ishga tushiramiz.
Bu bizning ma’lumotlar bazasiga o‘nta namuna yuzini qo‘shadi. Shunday qilib, ma’lumotlar bazasida jami o‘n besh kishi bor.

Biz yangi odamlarni taniqli odamlardan - test videolarida ishtirok etganlardan farqlash uchun "Man01, ..., Woman05" deb ataymiz.


Download 2.13 Mb.

Do'stlaringiz bilan baham:
1   ...   11   12   13   14   15   16   17   18   19




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling