16-Laboratoriya mashg’uloti Mavzu: Matlab dasturida Face Recognition tizimini yaratish Ishdan maqsad


Download 283.15 Kb.
Pdf ko'rish
Sana05.01.2022
Hajmi283.15 Kb.
#221811
Bog'liq
16-Laboratoriya



16-Laboratoriya mashg’uloti 

Mavzu: Matlab dasturida Face Recognition tizimini yaratish 

Ishdan maqsad: Obyektlarni kompyuter tizimlari tomonidan tanib olinishi haqida 

umumiy tushunchaga ega bo’lish hamda Matlab dasturida yuzni tanib oluvchi dasturni 

yaratish. 

Ob'ektlarni aniqlash va kuzatib borish ko'plab kompyuterlarni ko'rish dasturlarida, shu 

jumladan  faoliyatni  aniqlash,  avtomobil  xavfsizligi  va  kuzatuvda  muhim  ahamiyatga 

ega. Bu erda nafaqat odamning yuzini, balki ko'zlari va tanasining yuqori qismini ham 

aniqlay  oladigan  MATLAB  tizimidan  foydalangan  holda  yuzni  aniqlash 

mavjud.Yuzni  aniqlash  odamlar  uchun  oson  va  sodda  vazifadir,  ammo  kompyuterlar 

uchun  bunday  emas.  Yuzning  tashqi  ko'rinishi,  yorug'ligi  va  ifodasi  o'zgarishi 

natijasida  yuzaga  keladigan  katta  sinfiy  farqlar  tufayli  bu  kompyuterni  ko'rish 

sohasidagi  eng  murakkab  va  qiyin  muammo  sifatida  qaraladi.  Bunday  o'zgarishlar 

yuzning  taqsimlanishini  asl  tasvir  makoniga  to'g'ri  keladigan  har  qanday  bo'shliqda 

juda noaniq va murakkab bo'lishiga olib keladi. 

Ushbu  mavzu  orqali  MATLAB  yordamida  yuzlarni  qanday  tanib  olish  jarayoni 

o'rganiladi.  Bunday  tizimni  amalga  oshirish  uchun  dastlab  uchta  ketma-ketlik 

bajarilishi kerak: 

1-qadam: Ma'lumotlar to'plamini tayyorlash, 

2-qadam: Ma'lumotlar bazasini yuklash 

3-qadam: Yuzni tanib olish 

Ushbu  o'quv  qo'llanmada  ushbu  uch  bosqich  batafsil  yoritiladi.  Avval  ma'lumotlar 

bazasini  tayyorlanadi.  Ma'lumotlar  to'plamini  avtomatik  ravishda  tayyorlayotgan 

bo'lsada, aslida  nima bo'layotganini tushunilishi  uchun buni batafsil  yoritiladi.  Keyin 

Matlab-da  ma'lumotlar  bazasini  qanday  yuklashni  ko'rsatiladi.  Va  nihoyat,  ushbu 

ma'lumotlar to'plami yordamida yuzlarni qanday tanib olish taqdim etiladi. 

Dastlab  40  kishilik  ma'lumotlar  to'plami  tayyorlanadi.  Ushbu  odamlarning  har  birida 

turli xil ko’rinishlarda 10 ta rasm mavjud. Bu jami 40 x 10 = 400 ta rasm mavjudligini 

anglatadi. Har bir inson uchun alohida papkalar mavjud. Buni shu tarzda tushuntirish 

tartibsizliklarni  keltirib  chiqaradi.  Shuning  uchun  1.1  shakl  ni  tayyorlangan. 

Ma'lumotlar to'plamini qanday tayyorlashni tushunishga yordam beradi. 

 



 

1.1 rasm 

1.1-rasmda  siz  1,  2,  3  dan  40  gacha  bo'lgan  40  kishidan  iborat  yuqori  qatorni 

ko'rishingiz  mumkin.  Ularning  har  birida  10  ta  rasm  bor.  Ushbu  rasmlar  kul  rangda. 

Ushbu rasmlarning barchasi bir xil o'lcham va hajmga ega bo'lishi kerak. Va nihoyat, 

har bir shaxsning rasmlarini alohida papkada saqlanishi kerak. 1.1-rasmda s1, s2, s3… 

..  s40  papkalarni  aks  ettiradi.  Ma'lumotlar  bazasini  tayyorlash  bosqichlarini  sarhisob 

qilinsa: Har bir inson uchun 10 ta rasm. 

  Har bir kishi uchun 1 ta papka (s1, s2, s3 va boshqalar) 

  Rasmlar kulrang rangda bo'lishi kerak 

  Rasmlar bir xil o'lchamda va o'lchamda bo'lishi kerak. Ushbu misolda 92 x 112 

pikselli rasm tanlab olingan. 

  Rasm nomi 1, 2, 3 kabi raqamli bo'lishi kerak. 

  Va  tasvirlar  bmp,  pgm  va  boshqalar  kabi  bir  xil  kengaytmaga  ega  bo'lishi 

kerak. Rasmning turli xil kengaytmalarini aralashtirmang. 

Shunday  qilib,  ma'lumotlar  to'plamini  shu  tarzda  tayyorlash  mumkin.  Ma'lumotlar 

to'plamini tayyorlashning ko'plab boshqa usullari mavjud. Bu ulardan bittasi. 

Ma'lumotlar  to'plamini  tayyorlagandan  so'ng,  keyingi  vazifa  ma'lumotlar  bazasini 

yuklashdir.  Ma'lumotlar  bazasini  yuklash  uchun.  Quyida  uni  "load_database.m"  deb 

nomlangan.  

 



Birinchi  satrda  "load_database  ()"  funktsiyasining  nomini  e'lon  qilingan,  bu  hech 

qanday  kirishni  talab  qilmaydi.  Shuning  uchun  bo'sh  qavsdan  foydalanilgan.  Ammo 

bu  rasmlarning  raqamli  shaklini  qaytaradi.  Qaytariladigan  rasmlar  "ouput_value" 

nomli o'zgaruvchida saqlanadi. 

Shundan  so'ng    "loaded"  va  "numeric_Images"  nomli  yana  ikkita  o'zgaruvchini 

olingan. Ushbu o'zgaruvchilar doimiy turga ega. 

«Doimiy  o'zgaruvchilar  e'lon  qilingan  funktsiya  uchun  lokaldir;  hali  ularning 

qiymatlari funktsiyaga qo'ng'iroqlar orasida xotirada saqlanadi. Doimiy o'zgaruvchilar 

global  o'zgaruvchilarga  o'xshaydi,  chunki  MATLAB  ikkalasi  uchun  doimiy  xotirani 

yaratadi. Ular global o'zgaruvchilardan farq qiladi, chunki doimiy o'zgaruvchilar faqat 

e'lon  qilingan  funktsiyalari  bilan  ma'lum.  Bu  doimiy  o'zgaruvchilarni  boshqa 

funktsiyalar tomonidan yoki MATLAB buyruq satridan o'zgartirilishini oldini oladi: 

Shundan  so'ng,  "agar"  shartida  men  "yuklangan"  o'zgaruvchining  bo'shligini 

tekshirdim.  Agar  u  bo'sh  bo'lsa,  biz  faqat  ma'lumotlar  bazasini  yuklaymiz.  Doimiy 

o'zgaruvchilar  doimiy  ravishda  ma'lumotlarni  saqlaydi.  Ma'lumotlar  to'plamini  faqat 

bir  marta  yuklanishi  kerak.  Shuning  uchun  o'zgaruvchining  boshida  bo'sh  yoki 

yo'qligini tekshirish muhimdir. 

Ushbu  holatda  40  ta  rasm  bor.  Ularning  har  biri  92  x  112  =  10304  pikselga  ega. 

Shuning  uchun  biz  10304  nolni  40  marta  olinishi  kerak.  Keyinchalik  rasmlarning 

piksel  qiymatlari  ushbu  "nol"  lar  o'rnini  bosadi.  Keyin  strcat  funktsiyasidan 

foydalangan holda "for loop" ichida papkalarning nomlarini (s1, s2, s3 va boshqalar), 

rasmlarning  nomlarini  (1,  2,  3  va  boshqalar)  va  rasmlar  (ushbu  holatda  .pgm 

rasmlaridan foydalanilgan).  

Shundan  so'ng  "imread"  funktsiyasidan  foydalangan  holda,  rasmlar  yuklangan. 

Tasvirlarni  qayta  shakllantirish  kerak.  Rasmlarni  yuklagandan  so'ng,  rasmlarni  bitta 

ustunli 


matritsaga 

aylantirish 

uchun 

"qayta 


shakllantirish" 

funktsiyasidan 

foydalanilgan. Shuningdek, rasmlarning satrlari va ustunlari hajmini beradigan "size" 

funktsiyasidan  foydalanilgan.  Shundan  so'ng  xotiradan  foydalanishni  kamaytirish 

uchun  rasmlarni  8  bit  imzosiz  butun  songa  aylantirilgan.  "Uint8"  funktsiyasidan 

foydalanib,    to'g'ridan-to'g'ri  Matlab-da  ma'lumotlarni  8  bit  imzosiz  butun  songa 

aylantirish mumkin. "For loop" dan oldin "if" sharti mavjud. "Yuklangan" o'zgaruvchi 

qiymatga  ega  bo'lganda,  u  noto'g'ri  bo'ladi.  Nihoyat,  bu  funktsiya  rasmlarni  8  bit 

imzosiz tamsayı shaklida qaytaradi. 

 



 

Yuzlarni  tanib  olish  uchun  avval  ma'lumotlar  bazasini  yuklanadi.  Shundan  so'ng 

tasodifiy  funktsiyadan  foydalanib  tasodifiy  indeks  hosil  qilinadi.  Tasodifiy  indeks 

ketma-ketligidan  foydalanib,  keyinchalik  tanib  bo'ladigan  tasvirni  yuklanadi.  Qolgan 

rasmlar ham alohida o'zgaruvchiga yuklanadi. 

Shundan  so'ng,  barcha  rasmlarning  o'rtacha  qiymatini  hisoblab  chiqilgan  va  ulardan 

o'rtacha  qiymati  olib  tashlanadi.  Ushbu  tasvirlar  bo'yicha  xususiy  vektorlar  hisoblab 

chiqilgan.  O'ziga  xos  qiymatlarga  ega  bo'lingandan  so'ng,  har  bir  satrda  alohida 

rasmlarning  imzolarini  o'z  ichiga  olgan  matritsa  yaratildi.  Ularni  aniqlash  uchun 

o'ziga xos qiymatlar va rasm imzolari mavjud. 

Oxirgi  bo'limda  tanib  olishni  istagan  tasvirdan  o'rtacha  qiymatni  chiqarib  tashlanadi. 

Keyin  uni  xususiy  vektor  bilan  ko'paytiriladi.  Va  nihoyat,  hozirgi  imzolar  bilan 

yuqorida aytib o'tgan imzo o'rtasidagi farqga asoslanib tanilgan yuzni bashorat qilindi. 

Ushbu  usulning  aniqligi  94%  atrofida.  Bu  100  sinovdan  to'rtta  xatoga  yo'l  qo'yishi 

mumkinligini anglatadi.  

 



Bu yerda esa natija aks ettirilgan. 

 

Ushbu dastur avtomatik ravishda rasmni yuklaydi (agar siz aniq bir rasmni yuklashni 



tanlamasangiz), so'ngra ma'lumotlar to'plamidan xuddi shu odamning rasmini topasiz. 

Ushbu  misoldan  foydalanib,  siz  o'zingizning  yuzingizni  aniqlash  tizimini 

yaratishingiz mumkin. 

Bajarilgan ish bo’yicha hisobot 

Hisobotda quyidagilar keltiriladi: 

1. Ishni bajarishdan maqsad ; 

2. Matlab dasturida 9 Garmonikani yaratish va ularning grafigini xosil qilish ; 

3. Ishni bajarish tartibi ;   

4. Olingan natijalar screenshot ko’rinishida; 



5. Bajarilgan ish bo’yicha xulosalar. 

 

Download 283.15 Kb.

Do'stlaringiz bilan baham:




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