- Chuqur o'rganish bilan OpenCV yoshni aniqlash
- def detect_and_predict_age ( ramka, faceNet, ageNet, minConf= 0,5 ) :
- # bizning yosh detektorimiz bashorat qiladigan yosh chelaklari ro'yxatini aniqlang
- AGE_BUCKETS = [ "(0-2)" , "(4-6)" , "(8-12)" , "(15-20)" , "(25-32)" ,
- "(38-43)" , "(48-53)" , "(60-100)" ]
- # natijalar ro'yxatini ishga tushiring
- natijalar = []
- # ramkaning o'lchamlarini oling va keyin blobni yarating
- # undan
- ( h, w ) = ramka.shakl [ : 2 ]
- blob = cv2.dnn. blobFromImage ( ramka, 1.0 , ( 300 , 300 ) ,
- ( 104,0 , 177,0 , 123,0 ))
- # blobni tarmoq orqali o'tkazing va yuzni aniqlashni oling
- faceNet. setInput ( blob )
- aniqlashlar = faceNet. oldinga ()
Bizning - Bizning
- yoshni aniqlash_va_taxmin qilish
- yordamchi funksiya quyidagi parametrlarni qabul qiladi:ramka
- : Veb-kamerangiz video oqimidan bitta kadr
- faceNet
- : Boshlangan chuqur o'rganish yuz detektori
- ageNet
- : Bizning boshlang'ich chuqur o'rganish yoshi tasniflagichimiz
- minConf
- : Zaif yuzlarni aniqlashni filtrlash uchun ishonch chegarasi
- Ushbu parametrlar bizning yagona tasvir yoshi detektori skriptimizning buyruq qatori argumentlaridan parallel ravishda chiziladi.
- Yana bizning
- AGE_BUCKETS
- aniqlanadi ( 12 va 13-qatorlar ).Keyin ushlab turish uchun bo'sh ro'yxatni ishga tushiramiz
- natijalar
- yuzni lokalizatsiya qilish va yoshni aniqlash.
- 20-26 qatorlar yuzni aniqlashni amalga oshiradi .
Keyinchalik, har birini qayta ishlaymizaniqlashlar: - Chuqur o'rganish bilan OpenCV yoshni aniqlash
- Aniqlanishlar ustidan # halqa
- diapazondagi i uchun ( 0 , detections.shape [ 2 ] ) :
- # bilan bog'liq ishonchni (ya'ni, ehtimollik) chiqarib oling
- # bashorat
- ishonch = aniqlashlar [ 0 , 0 , i, 2 ]
- # ishonchni ta'minlash orqali zaif aniqlashlarni filtrlang
- # minimal ishonchdan kattaroq
- agar ishonch > minConf bo'lsa:
- # uchun chegaralovchi maydonning (x, y)-koordinatalarini hisoblang
- # ob'ekt
- quti = aniqlashlar [ 0 , 0 , i, 3 : 7 ] * np. massiv ([ w, h, w, h ])
- ( startX, startY, endX, endY ) = quti. astype ( "int" )
- # yuzning ROI-ni ajratib oling
- yuz = ramka [ startY: endY, startX: endX ]
- # yuzning ROI yetarli darajada katta ekanligiga ishonch hosil qiling
- agar face.shape [ 0 ] < 20 yoki face.shape [ 1 ] < 20 :
- davom eting
Do'stlaringiz bilan baham: |