फ़ोटो की बैच प्रोसेसिंग
मार्केटप्लेस और स्टोर के लिए प्रोडक्ट फ़ोटो की थोक प्रोसेसिंग: बैकग्राउंड हटाना और बदलना, रीटचिंग, अपस्केलिंग, WB और Ozon की शर्तों के अनुरूप तैयार करना — थोक में, एक-एक तस्वीर अलग से नहीं।
सेवा में क्या शामिल है
हम ग्राहक के लिए छवियों की थोक प्रोसेसिंग की एक पाइपलाइन बनाते हैं: बैकग्राउंड बदलना और साफ़ करना, ख़ामियों की रीटचिंग, कलर करेक्शन और एक ही रन में ज़रूरी रिज़ॉल्यूशन तक अपस्केलिंग। हज़ारों कार्ड वाले कैटलॉग, फ़ोटो-बैंक या शूटिंग आर्काइव के लिए नियमों का एक साझा सेट सेट किया जाता है, ताकि सारे फ़्रेम एक ही ज्यामिति, फ़्रेमिंग और रंग में निकलें। फ़ोटो की बैच प्रोसेसिंग मैनुअल रूटीन हटा देती है: ऑपरेटर अब हर फ़ाइल अलग से नहीं खोलता, बल्कि पैरामीटर एक बार तय कर देता है। इनपुट में फ़ोल्डर, लिंक या अकाउंटिंग सिस्टम से एक्सपोर्ट लिया जाता है, आउटपुट में पूर्वानुमेय नामों वाली तैयार फ़ाइलों का संरचित सेट दिया जाता है। हम प्रोग्राम लिखते हैं और प्रक्रिया ग्राहक के उपकरण तथा वातावरण में सेट करते हैं, फ़ाइलें भौतिक रूप से उसकी मशीन या उसका क्लाउड प्रोसेस करता है, हम उसके बदले नहीं।
प्रक्रिया कैसे काम करती है
इसकी बुनियाद क्रमिक चरणों की एक पाइपलाइन है, जहाँ हर फ़्रेम बिना इंसान के दख़ल के संचालनों की एक तय श्रृंखला से गुज़रता है। पहले छवि को न्यूरल नेटवर्क पहचानता और सेगमेंट करता है, जो वस्तु को मास्क के ज़रिए बैकग्राउंड से अलग करता है, फिर रीटचिंग, रंग का सामान्यीकरण और स्केलिंग लागू होती है। अपस्केलिंग साधारण इंटरपोलेशन से नहीं, बल्कि एक कन्वोल्यूशनल मॉडल से होती है, जो ऐसे विवरण बहाल करने के लिए प्रशिक्षित है जो मूल कम रिज़ॉल्यूशन में सीधे मौजूद नहीं होते। बैच प्रोसेसिंग की स्क्रिप्ट क़तार संभालती है, बड़ी मात्रा को बैचों में बाँटती है, लॉग रखती है और विफल फ़ाइलों को दोहराती है, ताकि दसियों हज़ार फ़्रेम का रन अंत तक पहुँचे। पैरामीटर कॉन्फ़िगरेशन में रखे गए हैं, इसलिए वही स्कीम किसी नए कैटलॉग पर सिर्फ़ सेटिंग्स बदलकर, कोड बदले बिना, दोबारा लगाई जा सकती है।
इस क्षेत्र के उभरने का इतिहास
डिजिटल इमेज प्रोसेसिंग 1957 में शुरू हुई, जब रसेल किर्श ने अमेरिका के नेशनल ब्यूरो ऑफ़ स्टैंडर्ड्स में ड्रम स्कैनर पर अपने तीन महीने के बेटे की 176 गुणा 176 बिंदु की तस्वीर स्कैन की, और तभी पिक्सेल की अवधारणा सामने आई। आधी सदी तक एल्गोरिदम मैनुअल रहे: फ़िल्टर, थ्रेशोल्ड और रूपांतरण इंजीनियर हर काम के लिए ख़ुद प्रोग्राम करता था। मोड़ न्यूरल-नेटवर्क क्रांति ने दिया: 2012 में कन्वोल्यूशनल नेटवर्क AlexNet (एलेक्स क्रिज़ेव्स्की, इल्या सुत्स्केवर, जेफ़री हिंटन) ने ImageNet प्रतियोगिता बड़े अंतर से जीती, यह साबित करते हुए कि फ़ीचर की पहचान को हाथ से तय करने के बजाय डेटा पर प्रशिक्षित किया जा सकता है। 2014 में इयान गुडफ़ेलो और सहयोगियों ने जनरेटिव-एडवर्सेरियल नेटवर्क (GAN) पेश किए, जिन्होंने छवि को सिर्फ़ वर्गीकृत करना नहीं, बल्कि संश्लेषित और पूरा करना सीखा। इसी क्षण से बैकग्राउंड बदलना, रीटचिंग और अपस्केलिंग कुछ ह्यूरिस्टिक्स से बदलकर प्रशिक्षण-योग्य मॉडल बन गए, जिसने फ़ोटो की बड़े पैमाने की बैच प्रोसेसिंग को व्यावहारिक बना दिया।
सॉफ्टवेयर वाला हिस्सा क्यों अहम है
एक फ़्रेम पर ग़लती नज़र नहीं आती, पर दसियों हज़ार के बैच पर वह दोहराई जाकर पूरे कैटलॉग की बर्बादी में बदल जाती है, इसलिए सटीकता की क़ीमत यहाँ मैनुअल सुधार से अलग है। समोच्च से कुछ पिक्सेल आगे कटा सेगमेंटेशन मास्क वस्तु के चारों ओर एक आभा छोड़ देता है; ग़लत अपस्केलिंग गुणांक तीक्ष्ण किनारों पर धुंधलापन या आर्टिफ़ैक्ट देता है। इसलिए पाइपलाइन पैरामीटर को सख़्ती से तय करती है और उन्हें नियतात्मक (deterministic) रूप से लागू करती है, ताकि नतीजा पुनरुत्पाद्य हो, न कि ऑपरेटर के मूड पर निर्भर। लाइव रन से पहले स्कीम को एक नियंत्रण नमूने पर चलाया जाता है, मेट्रिक्स और किनारे वाले मामले जाँचे जाते हैं, और उसके बाद ही पूरी मात्रा पर लॉन्च होता है। सॉफ्टवेयर वाला हिस्सा और सेटअप मॉडल से कम नहीं तय करते: वही एक-बार वाले अच्छे फ़्रेम को तैयार फ़ाइलों के स्थिर प्रवाह से अलग करते हैं।
हम किन टूल्स पर काम करते हैं
स्टैक तीन कामों के लिए न्यूरल नेटवर्क के इर्द-गिर्द बनता है: सेगमेंटेशन और बैकग्राउंड हटाना, बहाली और रीटचिंग, तथा कम और उच्च रिज़ॉल्यूशन की जोड़ियों पर प्रशिक्षित अपस्केलिंग के अलग मॉडल। नियंत्रण परत Python पर बैच प्रोसेसिंग की स्क्रिप्ट से लिखी जाती है, जो कंप्यूटर विज़न के इकोसिस्टम को थामे रखता है और मॉडल, क़तार तथा इनपुट-आउटपुट को एक ही रन में जोड़ता है। भारी संचालन GPU पर भेजे जाते हैं, इन्फ़रेंस बैचों में चलाया जाता है, और मॉडल ख़ुद बदले जा सकने वाले ब्लॉक के रूप में जुड़ते हैं, ताकि पूरी पाइपलाइन को दोबारा लिखे बिना अपस्केलर या सेगमेंटेशन नेटवर्क बदला जा सके। कॉन्फ़िगरेशन, लॉगिंग और विफल कार्यों का दोहराव रन को बड़ी मात्रा पर विफलताओं के प्रति मज़बूत बनाते हैं। यह पूरा स्टैक ग्राहक के उपकरण या उसके क्लाउड में डिप्लॉय और सेट होता है, हम प्रोग्राम और पैरामीटर तैयार करते हैं, और गणना उसका इन्फ़्रास्ट्रक्चर करता है।
मुख्य टूल्स कब सामने आए
जिन कन्वोल्यूशनल नेटवर्क पर आधुनिक इमेज प्रोसेसिंग टिकी है, उनकी जड़ें हस्तलिखित अंकों की पहचान के लिए यान लेकुन की 1998 की LeNet आर्किटेक्चर तक जाती हैं, पर औद्योगिक पैमाने पर वे 2012 के AlexNet के बाद ही आए। डीप लर्निंग पर अपस्केलिंग 2014 में SRCNN मॉडल (चाओ डोंग और सहयोगी) से शुरू हुई — यह पहला कन्वोल्यूशनल नेटवर्क था जो सीधे कम से उच्च रिज़ॉल्यूशन में रूपांतरण के लिए प्रशिक्षित हुआ और क्लासिक इंटरपोलेशन को पीछे छोड़ गया। वस्तु को बैकग्राउंड से सटीक रूप से अलग करने और सेगमेंट करने के लिए U-Net आर्किटेक्चर आधार बनी, जिसे ओलाफ़ रॉनबर्गर और सह-लेखकों ने 2015 में पेश किया। Python भाषा, जिस पर आज ऐसी ज़्यादातर पाइपलाइनें बनती हैं, 1991 में ही आ गई थी, और कंप्यूटर विज़न में डीप लर्निंग की लाइब्रेरियों की वृद्धि के साथ 2010 के दशक में व्यापक हुई। ये कुछ तारीख़ें — 1998, 2012, 2014, 2015 — ही वह बुनियाद बनाती हैं जिस पर स्वचालित फ़ोटो बैच प्रोसेसिंग टिकी है।
यह काम हमें क्यों सौंपें
डेवलपमेंट टीम का कुल अनुभव IT में 45 साल से ज़्यादा है, और यह काम को देखने का एक इंजीनियरिंग नज़रिया है, कलात्मक नहीं: हमारे लिए कैटलॉग की प्रोसेसिंग मेट्रिक्स वाली एक पुनरुत्पाद्य प्रक्रिया है, मैनुअल सुधारों की कोई श्रृंखला नहीं। हम समझते हैं कि मॉडल किसी असामान्य फ़्रेम पर कहाँ चूकता है, बड़ी मात्रा पर एक-सी गुणवत्ता कैसे बनाए रखें और पाइपलाइन को ग्राहक के अकाउंटिंग सिस्टम तथा स्टोरेज से कैसे जोड़ें। हर स्कीम लाइव लॉन्च से पहले एक नियंत्रण नमूने पर जाँची जाती है, इसलिए सेटअप में किसी अनदेखी ग़लती के चलते पूरा रन बड़े पैमाने की बर्बादी में नहीं बदलता। हम प्रोग्राम लिखते हैं और प्रक्रिया ग्राहक के इन्फ़्रास्ट्रक्चर के हिसाब से सेट करते हैं — छवियों को उसका उपकरण और उसका क्लाउड प्रोसेस करता है, और हमारी ज़िम्मेदारी का दायरा है कोड, मॉडल और पैरामीटर। ऐसा तरीक़ा एक पूर्वानुमेय नतीजा और ऐसी संपत्ति देता है जो ग्राहक के पास रहती है और अगली बैचों पर दोबारा इस्तेमाल होती है।
क्या शामिल है
हम कैसे काम करते हैं
हफ़्तों की मैनुअल रीटचिंग के बजाय एक दिन में सैकड़ों फ़ोटो ज़रूरी रूप में — कार्ड सीधे मार्केटप्लेस पर अपलोड के लिए तैयार।
सवाल और जवाब
एक बार में कितनी फ़ोटो?+
दर्जनों से लेकर हज़ारों तक — अपनी पाइपलाइन के ज़रिए थोक में प्रोसेस करते हैं।
किन प्लेटफ़ॉर्म के लिए?+
WB, Ozon, Я.Маркет, आपकी साइट — हर एक की शर्तों के मुताबिक़।