वेब वर्कर इमेज प्रोसेसिंग के मूल बात बा
वेब वर्कर एगो अलग जावास्क्रिप्ट निष्पादन संदर्भ हवे जे संपादक के मुख्य थ्रेड के सगरी काम कइले बिना महंगा गणना क सके ला। ब्राउजर इमेज प्रोसेसिंग खातिर एकर मतलब ई बा कि मॉडल सेटअप आ अनुमान बटन, प्रगति संदेश, ब्रश इनपुट, आ स्क्रीन अपडेट खातिर जिम्मेदार थ्रेड से भाग सके ला।
एकर नतीजा “फ्री बैकग्राउंड प्रोसेसिंग” ना होला. उहे डिवाइस अबहियों गणना करेला आ मेमोरी के इस्तेमाल करेला. आर्किटेक्चरल फायदा अलगाव बा: भारी मॉडल ऑपरेशन के चलत घरी हर इंटरफेस रिस्पांस के ब्लॉक करे के संभावना कम होला।
मुख्य थ्रेड में यूजर-इंटरफेस के काम बा
ब्राउजर पन्ना आमतौर पर मुख्य थ्रेड पर जावास्क्रिप्ट चलावे ला। ऊ थ्रेड लेआउट, पेंटिंग, आ इनपुट के समन्वय भी करेला। अगर एक ठो लंबा गणना एकरा पर कब्जा कर लेव तब क्लिक सभ में देरी महसूस हो सके ला, एनीमेशन बंद हो सके ला आ ब्राउजर चेता सके ला कि पन्ना प्रतिक्रियाहीन बा।
अनुमान शुरू होखे से पहिले भी इमेज एडिटर के मुख्य-थ्रेड के बहुत जिम्मेदारी होला:
- कवनो फाइल चयन, पेस्ट, या ड्रॉप प्राप्त करीं;
- कवनो छवि के डिकोड आ प्रदर्शित कइल;
- प्रगति आ त्रुटि के स्थिति के अपडेट करीं;
- पूर्वावलोकन कैनवास के चित्र बनावल;
- ब्रश के आंदोलन जोड़ें आ मिटावे के संभाल;
- डाउनलोड भा क्लिपबोर्ड के कार्रवाई तइयार करीं.
सेगमेंटेशन मॉडल के संख्यात्मक काम के एकही थ्रेड पर रखला से ओह कामन के सीधे मुकाबला हो जाई. एगो मजदूर एगो साफ सीमा बनावेला।
संदेश आधारित सीमा के बा
संपादक आ कार्यकर्ता साधारण चर के साझा ना करे लें। संदेश भेज के संवाद करेले। एगो सरलीकृत प्रवाह अइसन लउके ला:
- संपादक कवनो वर्कर बनावेला भा दोबारा इस्तेमाल करेला.
- ई वर्कर से अनुमान रनटाइम आ मॉडल के इनिशियलाइज करे के कहेला।
- ई छवि डेटा तइयार करेला आ अनुमान के अनुरोध भेजेला।
- मजदूर डेटा के मॉडल के अपेक्षित इनपुट में बदल देला।
- मजदूर मॉडल चलावेला आ मास्क वैल्यू पैदा करेला।
- इ मास्क भा रिजल्ट के डेटा वापस भेज देला।
- संपादक पूर्वावलोकन के कम्पोजिट करेला आ परिष्कार भा निर्यात के सक्षम करेला।
संदेश सभ में पर्याप्त संदर्भ होखे के चाहीं जेह से कि सही अनुरोध के प्रतिक्रिया से मेल खा सके। अगर कवनो प्रयोगकर्ता पिछला काम खतम होखे से पहिले कवनो दोसर छवि चुन लेव त ई महत्व राखेला. इंटरफेस के नया स्रोत पर पुरान परिणाम देखावे से बचे के पड़ी.
छवि डेटा के कॉपी आ ट्रांसफर कइल जा रहल बा
छोट-छोट टेक्स्ट मैसेज भेजल सस्ता बा। लाखों पिक्सेल मान भेजल महंगा हो सके ला अगर ब्राउजर के पूरा बफर के कॉपी करे के पड़े। वेब एपीआई सभ एकरे बजाय कुछ बाइनरी बफर सभ के मालिकाना हक हस्तांतरित क सके लें। ट्रांसफर कइल बफर रिसीवर के उपलब्ध हो जाला बिना प्रेषक पक्ष पर इस्तेमाल करे लायक डुप्लिकेट रखले।
ऊ अनुकूलन एगो डिजाइन बाधा के साथ आवे ला: स्थानांतरण के बाद, प्रेषक ओही बफर के इस्तेमाल ना कर सके ला जइसे कि ऊ अबहियों डेटा के मालिक होखे। संपादक अलगा से डिस्प्ले रिप्रेजेंटेसन के बरकरार रख सके ला, डेडिकेटेड इंफरेंस बफर बना सके ला या बाद में जवन जरूरत होखे ओकर पुनर्निर्माण क सके ला।
हर कार्यान्वयन में बिल्कुल एकही जगह पर स्थानांतरण के इस्तेमाल ना कइल जाला। सामान्य पाठ ई बा कि थ्रेड अलग होखे से डेटा के आवाजाही गायब ना हो जाला। छवि के आयाम, बफर साइज, आ रूपांतरण के संख्या अबहिन ले लेटेंस आ मेमोरी के प्रभावित करे ला।
का ईबीआर मजदूर में डाल देला
Easy Background Remover ऑन-डिवाइस सेगमेंटेशन खातिर ब्राउजर अनुमान रनटाइम वाला वेब वर्कर के इस्तेमाल करे ला। भारी ऑटोमैटिक कटआउट स्टेप से एगो मास्क पैदा होखेला। एकरे बाद संपादक कंपोजिट रिजल्ट देखावे ला आ सीपीयू-कैनवास ब्रश रिफाइंड के सपोर्ट करे ला।
ई अलगाव असफलता के एगो अउरी उपयोगी सीमा देला। अगर अनुमान के दौरान वर्कर इनिशियलाइज ना क सके ला या क्रैश हो सके ला तब इंटरफेस एकलौता सिग्नल के रूप में स्थायी रूप से जमल टैब पर भरोसा करे के बजाय वर्कर से संबंधित त्रुटि के रिपोर्ट क सके ला।
एकरा अलावे स्थानीय-प्रोसेसिंग के दावा के समझ में आवेला। एक्सटेंशन पन्ना से अपना वर्कर के पिक्सेल भेजल ब्राउजर वातावरण के भीतर संचार हवे, रिमोट कटआउट एपीआई में अपलोड ना हवे। पहिला सत्र अलग से दोबारा इस्तेमाल करे लायक मॉडल संपत्ति के डाउनलोड क सके ला; देखल जाय पहिले काहें चलावल कौनों मॉडल के डाउनलोड करे ला।
कवनो मजदूर गणना के तुरंत ना बनावेला
मजदूर कच्चा डिवाइस के क्षमता में ना, प्रतिक्रियाशीलता में सुधार करेले। मॉडल अबहिन ले सीपीयू, जीपीयू भा अउरी रनटाइम संसाधन सभ के खपत करे ला जे ब्राउजर दे सके ला। बड़हन इनपुट में अबहिन ले ढेर समय लाग सके ला आ छोट इनपुट से ढेर मेमोरी के जरूरत पड़ सके ला।
कई गो सीमा बाचल बा:
- मॉडल इनिशियलाइजेशन के वास्तविक लागत होला;
- पिक्सेल बफर दुनों ओर मेमोरी पर कब्जा करे ला अगर कॉपी कइल जाय;
- आकार बदले आ फॉर्मेट रूपांतरण में समय लागेला;
- कम मेमोरी वाला डिवाइस सभ के बड़हन छवि सभ के साथ संघर्ष हो सके ला;
- अधिका मजदूर विवाद के कम करे के बजाय ओकरा के बढ़ा सकेलें;
- निर्यात आ कैनवास अपडेट में अबहियों मुख्य थ्रेड शामिल हो सकेला.
पांच छवि खातिर पांच अनुमान कार्यकर्ता शुरू कईल अपने आप पांच गुना तेज ना होखेला। मजदूर एके मशीन साझा करेले। समानांतर जॉब सभ मेमोरी बैंडविड्थ आ निष्पादन संसाधन सभ खातिर प्रतिस्पर्धा क सके लें जबकि हर मॉडल इंस्टेंस के आपन मेमोरी लागत हो सके ला।
प्रगति रिपोर्टिंग सहकारी बा
कवनो मजदूर स्टेटस मैसेज भेज सकेला बाकिर ओकरा अपने आप पता ना चले कि कवन प्रगति प्रतिशत सही लागी. मॉडल डाउनलोड, रनटाइम इनिशियलाइजेशन, इनपुट तइयारी, अनुमान, मास्क रूपांतरण, आ पूर्वावलोकन रेंडरिंग अलग-अलग फेज हवें जिनहन के समय अलग-अलग होला।
कुछ फेज सभ में नापे जोग बाइट गिनती होला। एकही मॉडल निष्पादन से खाली “शुरुआत” आ “समाप्त” के पर्दाफाश हो सकेला. एह से एक समान रूप से आगे बढ़े वाला चिकना प्रतिशत सटीक नाप के बजाय कॉस्मेटिक हो सके ला।
उपयोगी प्रगति यूआई जब संभव होखे तब चरण के नाँव देला: मॉडल तइयार कइल, छवि के प्रोसेसिंग, या रिजल्ट बनावल। एकरा अलावे इ कवनो स्पिनर के कवनो सफाई के संगे छोड़े के बजाय विफलता अवुरी रद्द होखे के काम भी संभालेला।
रद्द कइल एगो स्पिनर के छिपावे से बेसी होला
अगर प्रयोगकर्ता कौनों छवि के बंद करे ला या फिर से शुरू करे ला तब इंटरफेस पुरान अनुरोध से अंतिम प्रतिक्रिया के अनदेखी क सके ला। अंतर्निहित गणना के तुरंत रोके खातिर रनटाइम से अतिरिक्त सहायता के जरूरत पड़ सके ला या वर्कर के समाप्त करे आ फिर से बनावे के जरूरत पड़ सके ला।
कवनो मजदूर के समाप्त कइल निर्णायक होला बाकिर ऊ ओकर प्रारंभिक अवस्था के त्याग कर देला. अगिला काम में मॉडल के दोबारा लोड आ इनिशियलाइज करे के जरूरत पड़ सके ला। छोट ऑपरेशन खातिर रिजल्ट के बासी के निशान लगावल सबकुछ उखाड़े से सस्ता हो सकता।
सही चुनाव मेमोरी प्रेशर, ऑपरेशन के अवधि, आ रनटाइम क्षमता पर निर्भर करे ला। प्रयोगकर्ता के नजरिया से, महत्वपूर्ण नियम ई बा कि बासी काम के वर्तमान संपादन के ओवरराइट ना करे के चाहीं।
गलती के भी सीमा पार करे के जरूरत बा
कवनो मजदूर के भीतर के अपवाद सामान्य मुख्य-धागा अपवाद ना बन जाला। कामकाजी के इस्तेमाल करे लायक गलती के रिपोर्ट करे के पड़ी, आ संपादक के कामगार स्तर के बिफलता खातिर सुने के चाहीं।
बढ़िया त्रुटि संभाले से कम से कम:
- मॉडल संपत्ति अनुपलब्ध बा;
- मॉडल के आरंभीकरण असफल हो गइल;
- छवि डिकोड भा इनपुट के तइयारी असफल हो गइल;
- अनुमान असफल हो गइल;
- मजदूर अप्रत्याशित रूप से रुक गइल;
- परिणाम अब वर्तमान अनुरोध के ना ह।
ई जेनेरिक “कुछ गलत हो गइल” से ढेर कार्रवाई करे लायक होला, खासतौर पर जब पहिला बेर सेटअप आ सामान्य इमेज प्रोसेसिंग के अलग-अलग उपाय होखे।
मजदूर आउटपुट अभी भी सिर्फ पहिला मास्क बा
थ्रेड आर्किटेक्चर अपने आप में कवनो अस्पष्ट किनारा में सुधार ना करेला। मजदूर तकनीकी रूप से मान्य मास्क वापस कर सकेला जवना में अबहियों फर, पारदर्शी सामग्री, संकरी पट्टा भा कवनो मनचाहा छाया के कमी होखे. ऊ त विभाजन आ इरादा के सवाल ह.
अनुमान के बाद संपादक के काम फिर से शुरू हो जाला: मास्क के कामकाजी निर्देशांक सिस्टम में स्केल करीं, पूर्वावलोकन के कम्पोजिट करीं, प्रयोगकर्ता के एकरा के परिष्कृत करे दीं आ वर्तमान स्थिति के निर्यात करीं। मास्क रिजोल्यूशन बनाम पूर्वावलोकन आकार बतावे ला कि ओह निर्देशांक सिस्टम सभ के काहें भ्रमित ना कइल जाय।
एगो संक्षिप्त मानसिक मॉडल
एगो संदेश विंडो के पीछे मजदूर के स्थानीय विशेषज्ञ के रूप में सोची:
- संपादक के लगे बातचीत के मालिकाना हक होला;
- मजदूर के लगे भारी अनुमान के काम होला;
- बाइनरी इमेज डेटा एगो परिभाषित सीमा के पार करेला;
- मजदूर एगो मुखौटा वापस करेला, हर किनारा के बारे में एगो तैयार फैसला ना;
- संपादक के जिम्मेदारी वर्तमान स्थिति, समीक्षा, परिष्कार, आ निर्यात के बा।
खुद पिक्सेल सभ के मॉडल के व्यू खातिर, ऑन-डिवाइस कटआउट मॉडल का देखत बा के साथ जारी रखीं। अंत से अंत तक ब्यवहारिक अवलोकन खातिर, स्थानीय पृष्ठभूमि हटावे के काम कईसे होला देखल जाय।