बीबीसी आर एंड डी के वीडियो फेस रिकॉग्निशन के लिए एक संक्षिप्त गाइड

अक्सर यह कार्य इंसानों को यह सोचने के बिना करता है कि पर्दे के पीछे कुछ सबसे जटिल प्रसंस्करण की आवश्यकता है। भोजन चखना, दोस्तों के साथ बातचीत करना, संगीत सुनना और वास्तव में, लोगों को पहचानना। जब आप ईस्टेंडर्स का एक एपिसोड देखते हैं, तो आप अलग-अलग सेटिंग्स में, अलग-अलग कोणों से और अलग-अलग लाइटिंग में अलग-अलग एक्टर्स को देखते हैं, लेकिन तुरंत ही आपका दिमाग इन बदलावों को संभालता है, ताकि यह पता चल सके कि यह सीन में डॉट कॉटन और फिल मिशेल है। क्योंकि हम इसमें शामिल प्रसंस्करण के बारे में नहीं सोचते हैं, इसलिए हम यह जानकर आश्चर्यचकित हैं कि ये कार्य पहले से कहीं अधिक जटिल हैं, जितना हमने सोचा था कि जब हम उन्हें मशीन लर्निंग पर लागू करने का प्रयास करते हैं।

प्रिंस हैरी और मेगन मार्कल की निम्न छवियों को सड़क पर लें। हम हैरी और मेगन को अलग-अलग कोणों से देख सकते हैं - सामने, बगल और पीछे - फिर भी हम उन्हें आसानी से उनकी विशेषताओं से पहचानते हैं: त्वचा का रंग, बालों का रंग, और इसी तरह। हम कुछ सामाजिक संकेतों को भी ध्यान में रखते हैं। भीड़ उन्हें देख रही है, वे अच्छी तरह से तैयार हैं, वे हर शॉट के केंद्र में हैं और एक ही दृश्य से शॉट्स की स्पष्ट निरंतरता है। यहां मानव अंतर्ज्ञान की कई परतें हैं जिनके बारे में हम यह भी नहीं सोचते हैं कि हम सांस्कृतिक और भौतिक संकेतकों का पता लगाते हैं।

हम स्वाभाविक रूप से हैरी और मेगन को पहचानते हैं, इन शॉट्स में अलग-अलग कोणों के बावजूद

तो हम कंप्यूटर को यह सब करना कैसे सिखाते हैं? जब हम एक इंसान की तरह सोचने के लिए एक एल्गोरिथ्म नहीं प्राप्त कर सकते हैं, तो हम यह कर सकते हैं कि मशीन सीखना सबसे अच्छा क्या करता है: बड़े, लेबल किए गए डेटासेट में पैटर्न का पता लगाएं। इसमें छवियां एकत्र करना, एल्गोरिथ्म को प्रशिक्षित करना, वीडियो को संसाधित करना और उनमें लोगों को पहचानना शामिल है। अंतिम आउटपुट एक वीडियो में पहचाने जाने वाले लोगों की सूची है जो उनके द्वारा दिखाई जाने वाले फ़्रेम में समय और स्थान के साथ होता है।

हम पहले से ही बीबीसी में इस तकनीक को बनाने के लिए काम कर रहे हैं। हमारा सिस्टम, जिसे फेसरेक कहा जाता है, को बीबीसी रिसर्च एंड डेवलपमेंट के भीतर इंटरनेट रिसर्च एंड फ्यूचर सर्विसेज डेटा टीम द्वारा विकसित किया जा रहा है (हम कुछ कीस्ट्रोक्स को बचाएंगे और बस उन्हें यहां से डेटा टीम को कॉल करेंगे)। यह इन-हाउस कोड और बाहरी ओपन-सोर्स सॉफ़्टवेयर के संयोजन का उपयोग करके बनाया गया है - विशेष रूप से, सीताफेस, एक सी ++ चेहरे की पहचान इंजन।

FaceRec एल्गोरिथम चरणों की एक श्रृंखला के माध्यम से वीडियो को संसाधित करके काम करता है, प्रत्येक समग्र समस्या के एक विशिष्ट भाग को हल करता है। हम आपको यह बताएंगे कि यह कैसे काम करता है।

1. शॉट्स का पता लगाएं

किसी वीडियो में पहचाने जाने वाले प्रत्येक चेहरे के लिए, हमें सबसे पहले वीडियो को उसके घटक शॉट्स (एक शॉट को निर्बाध अवधि के लिए चलने वाले फ़्रेमों की एक श्रृंखला के रूप में परिभाषित किया गया है) में तोड़ना होगा। ऐसा करने के लिए, FaceRec मीडिया प्रोसेसिंग लाइब्रेरी FFmpeg का उपयोग करता है, जो किसी दिए गए वीडियो के भीतर सभी शॉट्स की शुरुआत और समाप्ति समय को वापस करने के लिए एक फ़ंक्शन का उपयोग करता है।

2. चेहरे का पता लगाएं

अगला चरण यह देखने के लिए प्रत्येक फ्रेम की जांच करना है कि इसमें मानवीय चेहरे हैं या नहीं। यह एक मुश्किल समस्या है - क्या हमें फुटबॉल मैच में हर एक चेहरे का पता लगाने की कोशिश करनी चाहिए? क्या एक टी-शर्ट पर चेहरा गिनता है? क्या अखबारों के मोर्चे पर तस्वीरें?

प्रत्येक शॉट के माध्यम से, फेसरेक शॉट से फ्रेम लेता है और इन्हें सीताफैस को खिलाता है, जो फिर चेहरे के बाउंडिंग बॉक्स वापस करता है, जहां उसे लगता है कि चेहरे हैं। SeetaFace का चेहरा पहचानने के इंजन से पता चलता है कि क्या एक चेहरा "मायने रखता है" जो इसके आउटपुट में शामिल करने के लिए पर्याप्त है। कृपया ध्यान दें कि SeetaFace यह नहीं कह रहा है कि यह कौन सोचता है कि पता लगाए गए लोग हैं, केवल यह मानते हैं कि इसने फ्रेम के भीतर दिए गए स्थान पर एक चेहरे का पता लगाया है।

3. फेस ट्रैक बनाएं

अब जब हमने सभी फ़्रेमों को एकत्र कर लिया है, तो अगला कार्य इन ट्रैक किए गए चेहरों को एक साथ ट्रैक करना है ताकि एक फेस-ट्रैक बनाया जा सके। एक फेस-ट्रैक एक चेहरे के चारों ओर बाउंडिंग बॉक्स का एक निरंतर प्रवाह है क्योंकि यह शॉट फ्रेम के भीतर चलता है।

फेसरेक प्रत्येक फेस बाउंडिंग बॉक्स लेता है और अगले फ्रेम में इसे अगले तार्किक बाउंडिंग बॉक्स में मैप करने की कोशिश करता है। यह हमेशा पूरी तरह से स्पष्ट नहीं होता है, क्योंकि चेहरे अस्थायी रूप से अस्पष्ट हो सकते हैं या बाउंडिंग बॉक्स एक दूसरे को पार कर सकते हैं क्योंकि एक व्यक्ति दूसरे के पीछे चलता है।

बाउंडिंग बॉक्स एक शॉट के माध्यम से चेहरे को ट्रैक करते हैं

हुड के तहत, इस समस्या को डेलिब और लुकास-कनाडे विधि का उपयोग करके हल किया जाता है। यह फेस-ट्रैक बनाता है जो समय-बिंदुओं, फ़्रेमों की एक सूची और चेहरों के बाउंडिंग बॉक्स द्वारा परिभाषित होते हैं।

4. पटरियों के लिए फेस-वैक्टर बनाएं

मशीन लर्निंग एल्गोरिदम अक्सर इनपुट सामग्री को गणितीय वैक्टर में परिवर्तित करके काम करते हैं। वे तब सीखते हैं कि इस "वेक्टर स्पेस" के कौन से हिस्से विशिष्ट श्रेणियों या इनपुट प्रकारों के हैं। चेहरों के संदर्भ में, वे सीखेंगे कि प्रिंस हैरी के चेहरे का प्रतिनिधित्व करने वाले वैक्टर एक विशेष क्षेत्र में होते हैं, जबकि मेगन वैक्टर एक अलग खंड में समाप्त हो जाते हैं। आप प्रिंस विलियम के चेहरे के वैक्टर से यह भी उम्मीद करेंगे कि वे इस स्थान पर हैरी से मीगन के करीब हों, क्योंकि वे इसी तरह की विशेषताओं से संबंधित और साझा करते हैं।

पहचाने गए चेहरों के लिए वैक्टर बनाने के लिए, FaceRec SeetaFace के फेस आइडेंटिफिकेशन लाइब्रेरी का उपयोग करता है। फेस-ट्रैक के मध्य-बिंदु से उनके बाउंडिंग बॉक्स के भीतर अंकित चेहरों की फसली तस्वीरों में फेसकेक फीड होता है। यह एक 2024-आयामी वेक्टर प्राप्त करता है जो उस चेहरे की विशेषताओं का प्रतिनिधित्व करता है।

5. फेस-ट्रैक वैक्टर में लोगों के चेहरे को पहचानें

अब हमारे पास प्रत्येक फेस-ट्रैक के लिए एक चेहरा-वेक्टर है। अगला कदम इन वैक्टरों को मान्यता प्राप्त चेहरों के वास्तविक नामों में बदलना है, साथ ही जिन चेहरों को हम नहीं पहचानते (और इसलिए लेबल नहीं कर सकते हैं) को चिह्नित करें।

यहाँ पहला सवाल यह है: बस हम किसे पहचानते हैं? हम निश्चित रूप से उन सभी को पहचानने के लिए एक मॉडल का निर्माण नहीं कर सकते हैं जो कभी भी रहते हैं - और न ही हम चाहते हैं। तो हम इस फेस रिकग्निशन सिस्टम के लिए पर्याप्त महत्वपूर्ण कौन हैं?

वास्तविक रूप से, इसे बीबीसी समाचार में पत्रकारों और उन लोगों द्वारा संचालित करने की आवश्यकता होती है जिन पर वे सबसे अधिक रिपोर्ट करते हैं। हमें इस बात से भी अवगत होना चाहिए कि अज्ञात लोग हर दिन समाचार बनाते हैं, और जब वे करते हैं, तो हमारे पास उनकी कोई पिछली तस्वीर नहीं हो सकती है। इन सीमाओं को ध्यान में रखते हुए, डाटा टीम ने मुख्य रूप से मशहूर हस्तियों, अंतर्राष्ट्रीय नेताओं, संसद में राजनीतिक नेताओं और हाउस ऑफ लॉर्ड्स का फेसक्रैक का प्रशिक्षण लेते समय ध्यान केंद्रित किया।

इन लोगों को पहचानने के लिए, उन्हें प्रत्येक व्यक्ति पर प्रशिक्षण डेटा इकट्ठा करने की आवश्यकता थी - अर्थात, उस व्यक्ति के बहुत सारे लेबल वाले फोटो जिसमें केवल वह व्यक्ति हो। डेटा टीम ने हजारों फ़ोटो एकत्र किए और फिर व्यक्तिगत फ़ोटो को आसानी से देखने और लेबल करने के लिए अपने स्वयं के फ्रंट-एंड सिस्टम का निर्माण किया। मशीन लर्निंग का एक छद्म सच यह है कि एक अच्छी तरह से काम करने वाली एआई प्रणाली के निर्माण में गुणवत्ता, लेबल डेटा एकत्र करना सबसे महंगा, श्रमसाध्य और अभी तक महत्वपूर्ण हिस्सा है।

तस्वीरें एकत्र करने के बाद, डेटा टीम ने उन्हें एक मशीन लर्निंग क्लासिफायर में खिलाया जिसे प्रशिक्षित मॉडल बनाने के लिए एक सपोर्ट वेक्टर मशीन कहा जाता है। जब SeetaFace से एक चेहरा-वेक्टर खिलाया जाता है, तो ये मॉडल मूल चेहरे की छवि के व्यक्ति के नाम की भविष्यवाणी करते हैं या कहते हैं कि क्या वे चेहरे को बिल्कुल नहीं पहचानते हैं।

IRFS ने बनाए दो मॉडल:

  1. आर्काइव मॉडल: 20 वीं शताब्दी के प्रसिद्ध लोग बीबीसी आर्काइव के लोगों द्वारा चुने गए। इस मॉडल में लगभग 1,000 लोग थे।
  2. समाचार मॉडल: अभी भी विकास में, यह ब्रिटेन की संसद के 2000 से अधिक सदस्यों और क्षेत्रीय विधानसभाओं, हाउस ऑफ लॉर्ड्स और वैश्विक नेताओं को शामिल करने के लिए विस्तार करेगा। बीबीसी न्यूज़, फैक्चुअल और ड्रामा से प्रशिक्षण की तस्वीरें ली गईं।

फिर इन प्रशिक्षित मॉडलों का उपयोग यह अनुमान लगाने के लिए किया जाता है कि कौन से लोग वीडियो में फेस-ट्रैक में हैं।

6. क्लस्टर फेस ट्रैक

अब जबकि सभी फेस-ट्रैक को लेबल कर दिया गया है, अंतिम चरण एक ही व्यक्ति के सभी ट्रैक्स को इकट्ठा करना है।

ऐसा करने के लिए, हम वीडियो के सभी निकाले गए फेस-वैक्टर को एक वेक्टर-स्पेस में डालते हैं, जिसे हम मस्ती के लिए फेस-स्पेस कहते हैं। फेस-स्पेस की कल्पना करने के लिए हम Tensorboard नामक एक उपकरण का उपयोग कर सकते हैं, जो मशीन लर्निंग लाइब्रेरी Tensorflow का हिस्सा है।

इस चेहरे-स्थान को देखते हुए, हम आशा करते हैं कि एक ही व्यक्ति के वैक्टर एक साथ काफी दूर हैं और अन्य लोगों से काफी दूर हैं कि हम उन्हें स्वचालित रूप से देख सकते हैं। इसे मशीन लर्निंग में क्लस्टरिंग समस्या के रूप में जाना जाता है।

हम हैरी और मेगन वीडियो के लिए इस फेस-स्पेस में अनुमानित फेस-ट्रैक वैक्टर को देख सकते हैं। और हम देखते हैं कि अधिकांश मेगन पटरियों को एक साथ जोड़ दिया जाता है, जिससे उन्हें क्लस्टर करना आसान हो जाता है। यह एक तरीका है जिससे हम जानते हैं कि बनाए गए फेस वैक्टर अच्छे से काम कर रहे हैं।

TensorBoard के साथ चेहरे का दृश्य

क्लस्टरिंग से परिचित लोग हमारे चेहरे की क्लस्टरिंग समस्या की कठिनाई देखेंगे। हर वीडियो के लिए, अलग-अलग आकार के समूहों की एक अलग संख्या होगी - जिसमें बहुत सारे वैक्टर एक बार दिखाई देंगे और किसी भी क्लस्टर से संबंधित नहीं होंगे।

इस समस्या को पूरी तरह से हल करने की कोशिश करके एक अंधेरे छेद के नीचे गिरने के बजाय, डेटा टीम ने कुछ आंकड़ों के साथ चलने का फैसला किया। फेसरेक समस्या को दो अलग-अलग श्रेणियों में विभाजित करता है: लोगों के चेहरे जिन्हें वह पहचानता है और उन लोगों के चेहरे। मान्यता प्राप्त चेहरों के लिए, यह सभी चेहरे की पटरियों को एक साथ जोड़ देता है जिसमें एक ही अनुमानित लेबल (नाम) होता है। गैर-मान्यता प्राप्त चेहरों के लिए यह एक तकनीक का उपयोग करता है जिसे फेस वैक्टर पर समूहबद्ध करने के लिए पदानुक्रमिक क्लस्टरिंग कहा जाता है, लेकिन उन्हें लेबल नहीं।

7. जानकारी का उत्पादन

FaceRec के लिए अंतिम चरण विभिन्न चरणों में एकत्रित की गई सभी सूचनाओं को पूरा कर रहा है। यह JSON फ़ाइल के रूप में आता है जिसमें शामिल हैं:

वीडियो में पटरियों की एक सूची। प्रत्येक ट्रैक के लिए यह है:

  • उस ट्रैक के लिए पूर्वनिर्धारित व्यक्ति
  • भविष्यवाणी का विश्वास
  • UUID को ट्रैक करें
  • उस ट्रैक के लिए फेस-वेक्टर
  • उस ट्रैक में फ़्रेम की सूची

फ़्रेम की सूची में, प्रत्येक फ़्रेम पर जानकारी शामिल है:

  • अगर यह पता चला है कि फ्रेम के लिए चेहरा वेक्टर
  • बाउंडिंग बॉक्स चेहरे के लिए समन्वय करता है
  • वीडियो में समय फ्रेम होता है

हम इस डेटा के साथ क्या कर सकते हैं? हमारे विचारों को देखने के लिए आप हमारी अगली ब्लॉग पोस्ट देख सकते हैं।

लपेटें

यह वास्तव में इसके बारे में है उम्मीद है कि हमने आपको वीडियो फेस रिकग्निशन सिस्टम में जाने वाले कई हिस्सों को समझने में मदद की है। और शायद हमने आपको अपने मित्रों और प्रियजनों को पहचानते समय सभी भारी उठाने और अस्पष्टताओं के बारे में और अधिक जागरूक बना दिया है, जो आपका अपना दिमाग दिन में सैकड़ों बार संभालता है।

फेसरेक प्रणाली के आंतरिक कामकाज को समझने के बाद, समाचार लैब्स के लिए कार्य यह देखना था कि यह तकनीक बीबीसी के भीतर व्यावसायिक मूल्य को कहां जोड़ सकती है। हम एक सहज ज्ञान युक्त डेमो के साथ फेसरेक की क्षमताओं को कैसे दिखाते हैं? हम किस प्रोडक्शन सिस्टम में फेसरेक फिटिंग देख सकते हैं? किसके वर्कफ़्लो समस्याओं को हल कर सकता है? और महत्वपूर्ण बात यह है कि लोग चेहरे की पहचान का उपयोग करने के बारे में कैसा महसूस करते हैं? हम एक बड़े संगठन के भीतर एक नई तकनीक को रोल करने की चुनौतियों के बारे में बात करते हैं और "फेस रिकॉग्निशन - न्यूज़रूम के लिए इसका क्या उपयोग है?"