Bi-bi-si uchun Ar-ge videosini tanib olish uchun qisqacha ko'rsatma

Ko'pincha, odamlar sahna ortida o'ta murakkab ishlov berishni talab qiladigan, o'ylamasdan qiladigan vazifalar. Taomni tatib ko'rish, do'stlar bilan suhbatlashish, musiqa tinglash va haqiqatan ham odamlarni tanib olish. Eastenders epizodini tomosha qilganingizda, siz turli xil parametrlarda, turli burchaklarda va turli xil yoritishda turli xil aktyorlarni ko'rasiz, ammo darhol sizning miyangiz bu o'zgarishni Dot Paxta va Phil Mitchell ekanligini bilish uchun boshqaradi. Biz ishlov berish jarayoni haqida o'ylamaganimiz sababli, biz ushbu vazifalarni dastgohli o'qishga tatbiq etishda dastlab o'ylaganimizdan ancha murakkab ekanligidan hayron bo'lamiz.

Shahzoda Garri va Megan Marklning quyidagi rasmlarini ko'chaga olib chiqing. Biz bu erda Garri va Meganni turli tomonlardan ko'rishimiz mumkin - old, yon va orqa - ammo biz ularni o'z xususiyatlaridan osonlikcha taniymiz: terining rangi, soch rangi va boshqalar. Shuningdek, biz ba'zi ijtimoiy muammolarni hisobga olamiz. Olomon ularga qarab turibdi, ular juda yaxshi kiyingan, ular har bir zarbaning markazida va bir xil sahnadan kelib chiqadigan aniq tortishish mavjud. Bu erda inson sezgilarining ko'plab qatlamlari mavjud, biz madaniy va jismoniy ko'rsatkichlarni aniqlaganimiz sababli, hatto xayolga ham kelmaymiz.

Ushbu zarbalarda turli tomonlarga qaramay, biz Garri va Meganni tabiiy ravishda taniymiz

Qanday qilib biz bularning barchasini bajarishni o'rganishni kompyuterga o'rgatamiz? Odamga o'xshab fikr yuritish algoritmini ololmayotgan bo'lsak-da, biz mashinani o'rganish eng yaxshi qiladigan narsani qilishimiz mumkin: katta, yorliqli ma'lumotlar to'plamida naqshlarni aniqlash. Bunga rasmlarni to'plash, algoritmni o'rgatish, videolarga ishlov berish va ulardagi odamlarni tanib olish kiradi. Yakuniy natija - bu videoda tan olingan odamlar ro'yxati va ular paydo bo'lgan doiradagi vaqt va joy.

Biz ushbu texnologiyani BBC-da yaratish ustida ishlamoqdamiz. FaceRec deb nomlangan bizning tizimimiz Bi-bi-si tadqiqotlari va rivojlanishi doirasida Internet tadqiqotlari va kelajakdagi xizmatlar ma'lumot guruhi tomonidan ishlab chiqilmoqda (biz ba'zi tugmalarni tejab, ularni shunchaki Data Team deb ataymiz). U ichki kod va tashqi manbali dasturiy ta'minot - xususan Seetaface, C ++ yuzni aniqlash vositasi yordamida yaratilgan.

FaceRec videoni bir qator algoritmik bosqichlar orqali qayta ishlash orqali ishlaydi, ularning har biri umumiy muammoning muayyan qismini hal qiladi. Bularning barchasi qanday ishlashi haqida sizga qisqacha ma'lumot beramiz.

1. Kadrlarni aniqlang

Videoda har bir yuzni aniqlash uchun biz avval videoni tarkibiy qismlarga bo'lishimiz kerak (tortishish uzluksiz vaqt davomida ishlaydigan ramkalar qatoriga kiradi). Buning uchun FaceRec FFmpeg media-fayllarni qayta ishlash kutubxonasidan foydalanadi, u ushbu videoning barcha boshlanish va tugash vaqtlarini qaytarish funktsiyasidan foydalanadi.

2. Yuzlarni aniqlang

Keyingi qadam, har bir ramkada odamning yuzlari bor yoki yo'qligini tekshirish. Bu juda qiyin muammo - futbol o'yinida har bir yuzni aniqlashga harakat qilishimiz kerakmi? Yuzi futbolka kiyadimi? Rasmlar gazetalarning old qismiga tushadimi?

Har bir zarbani takrorlash bilan, FaceRec zarbadan freymlarni oladi va ularni SeetaFacega uzatadi, shunda u yuzlar o'ylagan joyning chegaralarini qaytaradi. SeetaFace-ning yuzni aniqlash vositasi yuzning chiqishini hisobga oladimi yoki yo'qligini aniqlaydi. Shuni yodda tutingki, SeetaFace aniqlangan odamlar kim deb aytayotganini aytmayapti, shunchaki u bu doirada ma'lum bir joyda yuzni aniqladi deb ishonadi.

3. Yuz izlarini yarating

Endi biz yuzlarni o'z ichiga olgan barcha freymlarni yig'dik, keyingi vazifa - bu aniqlangan yuzlarni yuz trekini yaratish uchun birlashtirish. Yuz izi - bu tortishish doirasi bo'ylab harakatlanayotganda yuz atrofidagi bog'laydigan qutilarning doimiy oqimi.

FaceRec har bir yuzni bog'laydigan qutini olib, uni quyidagi freymdagi mantiqiy chegara maydoniga xaritalashga harakat qiladi. Bu har doim ham aniq emas, chunki yuzlar vaqtincha berkitilishi mumkin yoki bir-birining orqasidan ketayotganda bog'lab qo'yilgan qutilar bir-birlarini kesib o'tishlari mumkin.

Bog'lash qutilari zarbalar orqali yuzlarni kuzatadi

Kaput ostida bu muammo Dlib va ​​Lucas-Kanade usuli yordamida hal qilinadi. Bu vaqtni belgilash, ramkalar ro'yxati va yuzlarning chegara qutilari bilan belgilanadigan yuz treklarini yaratadi.

4. Treklar uchun yuz vektorlarini yarating

Mashinani o'rganish algoritmlari ko'pincha kirish materiallarini matematik vektorlarga aylantirish orqali ishlaydi. Keyin ular ushbu "vektor maydoni" ning qaysi qismlari ma'lum toifalarga yoki kirish turlariga tegishli ekanligini bilib olishadi. Yuzlar jihatidan ular shahzoda Garrining yuzini ifodalovchi vektorlar ma'lum bir sohada bo'lishini, Megan vektorlari esa boshqa qismda bo'lishini bilishadi. Shahzoda Uilyam yuzining vektorlari bu fazoda Meganga qaraganda Garriga yaqinroq bo'lishini kutgan bo'lar edingiz, chunki ular bir-biriga o'xshash va o'xshash xususiyatlarga ega.

Aniqlangan yuzlar uchun vektorlar yaratish uchun FaceRec SeetaFace-ning yuzni aniqlash kutubxonasidan foydalanadi. FaceRec aniqlangan yuzlarning kesilgan fotosuratlarini, yuzning o'rtasidan boshlab, chegara qutilariga joylashtiradi. U 2024 o'lchovli vektorni qaytarib oladi, bu yuzning xususiyatlarini aks ettiradi.

5. Yuz-trek vektorlarida odamlarning yuzlarini tan oling

Endi bizda har bir aniqlangan trek uchun yuz vektor mavjud. Keyingi qadam - bu vektorlarni tanilgan yuzlarning haqiqiy nomlariga aylantirish, shuningdek biz tanimaydigan yuzlarni belgilash (shuning uchun ularni belgilay olmaymiz).

Bu erda birinchi savol: faqat biz kimni taniymiz? Biz hech qachon umr ko'rmagan barchani tanib olish uchun namuna yaratolmaymiz - va biz ham xohlamaymiz. Xo'sh, biz yuzni aniqlash tizimi uchun kimni muhim deb bilamiz?

Haqiqatdan ham bunga BBC News jurnalistlari va ular tez-tez xabar beradigan odamlar rahbarlik qilishi kerak. Shuningdek, biz har kuni noma'lum odamlar yangiliklarni qilishlarini bilishimiz kerak va ular sodir bo'lganda bizda avvalgi rasmlar bo'lmasligi mumkin. Ushbu cheklovlarni hisobga olgan holda, ma'lumotlar guruhi FaceRec-ni o'qitish paytida asosan taniqli shaxslar, xalqaro rahbarlar, AQSh parlamentlari va Lordlar Palatasidagi siyosatchilarga e'tibor qaratdi.

Ushbu odamlarni tanib olish uchun ular har bir kishi haqida ma'lumot to'plashlari kerak edi - ya'ni bu odamning faqat shu kishini o'z ichiga olgan ko'plab yorliqli fotosuratlari. Ma'lumotlar jamoasi minglab fotosuratlarni to'pladi va keyinchalik shaxsiy fotosuratlarni osongina ko'rish va yorliqlash uchun o'zlarining shaxsiy tizimlarini qurdilar. Mashinasozlikning o'rinsiz haqiqati shundaki, sifatli, yorliqli ma'lumotlarni yig'ish ko'pincha AI tizimini qurishda eng qimmat, mehnatsevar va muhim qismdir.

Fotosuratlarni yig'ib olgandan so'ng, ma'lumotlar guruhi ularni o'qitilgan modellarni yaratish uchun qo'llab-quvvatlovchi vektorli mashina deb nomlangan mashina o'rganish klassifikatoriga kiritdi. SeetaFace-dan yuz vektorini oziqlantirishda ushbu modellar asl yuz tasviridagi odamning ismini taxmin qilishadi yoki ular yuzni umuman tanimasliklarini aytishadi.

IRFS ikkita modelni yaratdi:

  1. Arxiv modeli: XX asrdan boshlab taniqli shaxslar BBC arxivi tomonidan tanlangan. Ushbu modelda taxminan 1000 kishi bo'lgan.
  2. Yangiliklar modeli: Ushbu rivojlanish jarayonida Buyuk Britaniya parlamenti va mintaqaviy assambleyalarning 2000 dan ortiq a'zolari, Lordlar Palatasi va global liderlar ishtirok etadi. O'qitish to'g'risidagi tasvirlar BBC News, Faktual va Dramadan olingan.

Ushbu o'qitilgan modellar keyinchalik videoda yuzma-yuz turgan odamlarni taxmin qilish uchun ishlatiladi.

6. Klasterli yuz izlari

Endi barcha yuz-izlar yorliqlangan, endi oxirgi odamning barcha izlarini to'plash.

Buning uchun biz videodan olingan barcha yuz vektorlarini bitta vektor bo'shlig'iga joylashtirdik, uni kulgili yuz fazosi deb ataymiz. Yuz fazosini vizualizatsiya qilish uchun biz Tensorflow-ni kompyuterni o'rganish kutubxonasining qismi bo'lgan Tensorboard deb nomlangan vositadan foydalanishimiz mumkin.

Ushbu yuz-makonga qarab, biz bir odamning vektorlari bir-biriga yaqin va boshqa odamlardan ancha uzoqroq, biz ularni avtomatik ravishda guruhlashimiz mumkin. Bu mashina o'rganish jarayonida klaster muammosi sifatida ma'lum.

Quyidagi Garri va Megan videolari uchun ushbu yuz makoniga proektsiyalangan vektorli vektorlarni ko'rishimiz mumkin. Va biz Megan treklarining aksariyati bir-biriga bog'langanligini va ularni klaster qilishni osonlashtirganini ko'ramiz. Bu biz yaratgan yuz vektorlari yaxshi ishlashini bilishning bir usuli.

TensorBoard yordamida yuzlarni ingl

Klasterlash bilan tanish bo'lganlar bizning yuzimizdagi klasterlash muammosining qiyinligini ko'rishadi. Har bir video uchun har xil o'lchamdagi turli xil klasterlar bo'ladi - ko'p vektorlar bir marta paydo bo'ladi va umuman klasterga tegishli bo'lmaydi.

Ushbu muammoni mukammal hal qilishga urinib, qorong'i tuynukka tushib qolishning o'rniga, Data Team bir nechta evristik usul bilan yugurishga qaror qildi. FaceRec muammoni ikkita alohida toifaga ajratadi: tanigan odamlarning yuzlari va tanimaydigan odamlarning yuzlari. Tanilgan yuzlar uchun bu shunchaki taxmin qilingan yorliqqa (nomga) ega bo'lgan barcha yuz izlarini birlashtiradi. Aniqlanmagan yuzlar uchun ularni guruhlash uchun yuz vektorlari ustidan ierarxik klasterlash usuli qo'llaniladi, lekin ularga teglar berilmaydi.

7. Ma'lumotni chiqaring

FaceRec-ning so'nggi bosqichi turli bosqichlarda to'plangan barcha ma'lumotlarni tarqatishdir. Bu JSON fayli shaklida keladi, unda quyidagilar mavjud:

Videodagi treklarning ro'yxati. Har bir trek uchun:

  • Ushbu trek uchun taxmin qilingan kishi
  • Oldindan bashorat qilish
  • UUID-ni kuzatish
  • Ushbu trek uchun yuz vektor
  • Ushbu trekdagi freymlar ro'yxati

Freymlar ro'yxatida har bir freym haqida ma'lumot quyidagilarni o'z ichiga oladi:

  • Agar u aniqlangan bo'lsa, u kvadrat uchun yuz vektori
  • Yuz uchun bog'laydigan quti koordinatalari
  • Videodagi kadrlar vaqti

Ushbu ma'lumotlar bilan nima qilishimiz mumkin? Bizning fikrlarimizni ko'rish uchun keyingi blogimizdagi maqolani ko'rib chiqishingiz mumkin.

Aylantirmoq

Bu haqiqatan ham shunday. Videoni yuzni tanish tizimiga kiruvchi ko'p qismlarni tushunishda sizga yordam berdik deb umid qilamiz. Do'stlaringizni va yaqinlaringizni taniganingizda, kuniga yuzlab marotaba sizning miyangizni ko'taradigan og'irliklar va noaniqliklar haqida sizga ko'proq ma'lumot berganmiz.

FaceRec tizimining ichki ishlashini tushunganingizdan so'ng, News Labs uchun ushbu texnologiya Bi-bi-sida biznes qiymatini qo'shadigan joyni ko'rish edi. FaceRec-ning qobiliyatlarini sezgir demo yordamida qanday namoyish etamiz? FaceRec-ning qaysi ishlab chiqarish tizimlariga mos kelishini ko'rishimiz mumkin? Kimning ish oqimi bilan bog'liq muammolarni hal qilishi mumkin? Va eng muhimi, odamlar yuzni aniqlash usulidan foydalanishga qanday qarashadi? Biz katta tashkilot ichida yangi texnologiyani ishlab chiqarishda yuzaga keladigan muammolar va "Yuzni tanish - Newsroom'dan nima foyda?" Bo'limida yuzni aniqlash prototipini ishlab chiqishda duch keladigan savollar haqida suhbatlashamiz.