ब्लॉग / इंजीनियरिंग

एक फेस डिटेक्टर ने एक बार एक नन्हे बच्चे की पैंट रिस्टोर कर दी

· 24 अगस्त को डिटेक्शन-सीमा की माप के साथ अपडेट · डेटा: इम्प्लीमेंटेशन, यूनिट टेस्ट, लैब बेंच

शुरुआती टेस्टिंग के दौरान फेस डिटेक्टर ने एक पारिवारिक स्नैपशॉट पर पूरे भरोसे के साथ एक चेहरा बताया और पाइपलाइन ने कर्तव्यनिष्ठा से उसे “रिस्टोर” कर दिया, बस वह डिटेक्शन एक नन्हे बच्चे की कॉरडरॉय पैंट थी। कपड़े की सिलवटें डिटेक्टर को चेहरा लगीं, और फेस मॉडल ने फिर उन्हें चेहरे की तरह पेंट कर दिया। इस नाकामी ने हमें सिखाया कि पुरानी तस्वीरों पर अकेला डिटेक्टर कॉन्फिडेंस काम का सिग्नल नहीं है, और इसी से वह ज्यामितीय गेट निकला जिससे अब हर उम्मीदवार चेहरे को गुज़रना पड़ता है। यह संशोधन कहानी का दूसरा आधा हिस्सा जोड़ता है, मापा हुआ: डिटेक्टर कितना छोटा चेहरा खोज ही सकता है। यह सीमा 14 और 20 लेटरबॉक्स्ड पिक्सेल के बीच है, और 1927 की मशहूर Solvay Conference की तस्वीर, जिसके 29 चेहरे 21–27 px के हैं, उसे पार कर लेती है, हर एक उपस्थित व्यक्ति मिल जाता है।

29 / 29Solvay 1927 के चेहरे मिले21–27 px लेटरबॉक्स्ड ऊँचाई पर
14–20 pxडिटेक्शन की सीमानीचे चूकता है, ऊपर खोज लेता है
27 / 29सीधी-सादी 2×2 टाइलिंग सेसीमा पर के चेहरे गायब; ओवरलैप मायने रखता है
3गेट में ज्यामिति के नियमकॉन्फिडेंस, आँखों की पट्टी, मुँह आँखों के नीचे

इस नोट का हर आँकड़ा प्रोडक्शन पाइपलाइन के कोड पर मापा गया: वही मॉडल, वही गणित। प्रति इमेज कच्चे रिकॉर्ड: e5_detect.json.

1 · पुरानी फोटो फेस डिटेक्टर क्यों तोड़ देती हैं

डिटेक्टर ज़्यादातर आधुनिक, अच्छी तरह एक्सपोज़ की गई इमेज पर ट्रेन होते हैं। पुराने स्कैन ऐसी बनावटें पेश करते हैं जो ट्रेनिंग सेट में कम ही होती हैं: कपड़े की बुनाई, लेस, पत्तियाँ, पानी का नुकसान और ग्रेन, जो सब ऊँचे कॉन्फिडेंस वाले गलत डिटेक्शन पैदा कर सकते हैं। वे उल्टी समस्या भी पेश करते हैं: असली चेहरे जो छोटे, फीके और कम-कॉन्ट्रास्ट वाले हैं। अकेला कॉन्फिडेंस थ्रेशोल्ड इन दोनों को अलग नहीं कर सकता, क्योंकि फ़ॉल्स पॉज़िटिव अक्सर असली छोटे चेहरों से ज़्यादा स्कोर करते हैं। हमारा डिटेक्टर SCRFD-2.5G[1] है, FaceFusion के रेफरेंस इम्प्लीमेंटेशन[2] से 1:1 डिकोड किया हुआ: फोटो को 640×640 इनपुट में लेटरबॉक्स किया जाता है, और हर उम्मीदवार एक बॉक्स, पाँच लैंडमार्क और एक कॉन्फिडेंस स्कोर के साथ लौटता है।

2 · गेट

स्कोर पर भरोसा करने के बजाय हम परखते हैं कि डिटेक्शन के लैंडमार्क चेहरे की तरह सजे हैं या नहीं: आँख और मुँह के बिंदुओं पर सस्ता अंकगणित:

pass ⇔ score ≥ 0.55  ∧  0.25 < deyes/w < 0.75  ∧  ymouth > ȳeyes + 0.2·deyes(1)
डिटेक्शन बॉक्स, चौड़ाई wआँखों की दूरी dमुँहआँखों से > 0.2 × d नीचेगेट: 0.25 < d / w < 0.75 · कॉन्फिडेंस ≥ 0.55
चित्र 1. प्लॉज़िबिलिटी गेट। कोई भी रिस्टोरेशन चलने से पहले लैंडमार्क चेहरे की तरह सजे होने चाहिए (बॉक्स के मुकाबले आँखें चेहरे जैसी दूरी पर, मुँह आँखों की रेखा से साफ़ नीचे)।
नियमथ्रेशोल्डयह क्या खारिज करता है
डिटेक्टर कॉन्फिडेंस≥ 0.55सीमांत डिटेक्शन जिन्हें आगे परखना बेकार है।
आँखों की दूरी बनाम बॉक्स की चौड़ाई0.25 – 0.75ऐसे लैंडमार्क गुच्छे जो चेहरे के आकार के बॉक्स में दो आँखें होने के लिए बहुत पास या बहुत दूर हैं: कपड़े की सिलवट वाले फ़ॉल्स पॉज़िटिव की आम ज्यामिति।
मुँह आँखों के नीचे≥ 0.2 × आँखों की दूरी सेउल्टे और उलझे हुए लैंडमार्क विन्यास।

थ्रेशोल्ड जानबूझकर ढीले हैं: वे किसी भी विश्वसनीय इंसानी चेहरे का वर्णन करते हैं, झुके और तीन-चौथाई दृश्य समेत, जबकि ऐसे विन्यास बाहर करते हैं जो किसी चेहरे के हो ही नहीं सकते। गेट शिप होने के बाद से पैंट वाली श्रेणी की नाकामी हमारी टेस्ट फोटो पर दोबारा नहीं हुई।

3 · नया: डिटेक्शन की सीमा, मापी हुई

00.250.50.7515204080120200640 px लेटरबॉक्स में चेहरे की ऊँचाई (px)डिटेक्शन कॉन्फिडेंसगेट ≥ 0.55
चित्र 2. 640×640 लेटरबॉक्स में डिटेक्शन कॉन्फिडेंस बनाम चेहरे की ऊँचाई। ~200 px से नीचे ~28 तक आराम से, उसके नीचे गिरता हुआ, 20 और 14 के बीच मृत: 14 px या उससे छोटा हर चेहरा सीधे चूक गया। डैश वाली रेखा गेट की 0.55 कॉन्फिडेंस सीमा है।
1927 की Solvay Conference की समूह तस्वीर, सभी उनतीस चेहरों के चारों ओर डिटेक्शन बॉक्स बने हुए
चित्र 3. 1927 की Solvay Conference के सभी 29 उपस्थित लोग पूरे-फ्रेम स्केल पर पहचाने गए (बॉक्स लैब स्क्रिप्ट ने बनाए, NMS के बाद, ज्यामितीय गेट के बाद)। लेटरबॉक्स्ड चेहरे 20.9–27.1 px ऊँचे हैं, चित्र 2 की खाई से बस ज़रा ऊपर मँडराते हुए।

Solvay का नतीजा ठीक वहीं आता है जहाँ लैडर बताता है, अच्छी तरफ: पूरे-फ्रेम स्केल पर 29 में से 29 उपस्थित लोग पहचाने गए, कॉन्फिडेंस 0.734–0.864, हर एक ज्यामितीय गेट से बचकर निकला। और एक कंट्रोल जो प्रकाशित करने लायक है क्योंकि वह सहज बुद्धि के उलट है: उसी फोटो को सीधे-सादे ढंग से 2×2 टाइल करने पर (ज़्यादा पिक्सेल प्रति चेहरा) सिर्फ 29 में से 27 मिलते हैं। दो चेहरे टाइल की सीमाओं पर बँट जाते हैं और कोई भी टाइल उन्हें पूरा नहीं देखती; 3×3 ग्रिड संयोग से कहीं और काटता है और सभी 29 वापस पा लेता है। यही विषमता वजह है कि ब्राउज़र इंजन का छोटे-चेहरों वाला पास पूरे फ्रेम पर और ओवरलैप करते चौथाई हिस्सों पर डिटेक्ट करता है, उम्मीदवारों को इंटरसेक्शन-ओवर-यूनियन से मिलाते हुए: टाइल की हुई डिटेक्शन को ओवरलैप चाहिए, सिर्फ रिज़ॉल्यूशन नहीं।

ग्रुप फोटो के लिए व्यावहारिक निष्कर्ष: फोटो की लंबी साइड के लगभग 3% से छोटा चेहरा डिटेक्टर के लिए अदृश्य है। रिस्टोर करने से पहले ज़्यादा कसकर क्रॉप करें (वही पिक्सेल लेटरबॉक्स से बड़े होकर, खाई की सुरक्षित तरफ लौटते हैं) और डिटेक्शन के बाद छोटे चेहरों के साथ क्या होता है, इसके लिए फेस-रेंडरिंग नोट देखें।

4 · सीमाएँ

ज्यामितीय गेट सिर्फ असंभव विन्यास खारिज कर सकता है। ऐसा फ़ॉल्स पॉज़िटिव जो संयोग से चेहरे के आकार का हो (गुड़िया, मूर्ति, दीवार पर टँगा पोर्ट्रेट) पार हो जाता है, और शायद होना भी चाहिए, क्योंकि उसे रिस्टोर करना नुकसानदेह नहीं है। गेट का काम संकरा है: किसी के कपड़ों को फिर कभी चेहरे की तरह पेंट न करना। सीमा की माप एक पोर्ट्रेट और एक ग्रुप फोटो है: खाई को 14 और 20 px के बीच खोजने के लिए काफी, पोज़ और रोशनी के पार उसका सटीक आकार नक्शे में उतारने के लिए नहीं; और 20 और 28 px के बीच कॉन्फिडेंस ऊपर के मुकाबले साफ़ तौर पर ज़्यादा अस्थिर है, इसलिए उस पट्टी के चेहरों को सुरक्षित नहीं, जोखिम में माना जाना चाहिए।

संदर्भ

  1. Guo, J., Deng, J., Lattas, A., & Zafeiriou, S. (2021). Sample and Computation Redistribution for Efficient Face Detection. arXiv:2105.04714. arxiv.org
  2. FaceFusion (open-source face processing platform): the reference implementation our SCRFD decode and model preprocessing are ported from, 1:1. github.com
  3. Couprie, B. (1927). Photograph of the Fifth Solvay International Conference: 29 attendees, the densest concentration of physics Nobel laureates ever photographed. Public domain, via Wikimedia Commons. commons.wikimedia.org
  4. Lange, D. (1936). “Migrant Mother” (Destitute pea pickers in California), Farm Security Administration. Public domain, via Wikimedia Commons. commons.wikimedia.org
  5. ONNX Runtime: the inference engine both our server (CPU) and in-browser (WebGPU/WASM) engines run on. onnxruntime.ai