मैं Flutter का उपयोग करके एक मोबाइल ऐप बना रहा हूं जो अमेरिकी सांकेतिक भाषा (एएसएल) का लिखित अंग्रेजी में अनुवाद करता है। एक प्रोटोटाइप के रूप में, मैंने अपने दायरे को एकल अल्फ़ान्यूमेरिक वर्णों की फ़ोटो का अनुवाद करने तक सीमित कर दिया है। मेरे पास अभी परियोजना के दो भाग हैं:

  1. एक अजगर स्क्रिप्ट जो एक छवि के लिए पथ लेती है, इसे मशाल/टॉर्चविजन और एक कस्टम मॉडल के साथ संसाधित करती है, और अल्फ़ान्यूमेरिक वर्ण लौटाती है जो कि छवि में होने की सबसे अधिक संभावना है। यह हिस्सा बहुत अच्छा काम करता है।

  2. एक स्पंदन फ्रंट एंड जो उपयोगकर्ता के कैमरे से जुड़ता है और एक ली गई छवि के पथ को बचाता है।

प्र: मेरे प्रोजेक्ट के इन दो हिस्सों को जोड़ने का सबसे अच्छा तरीका क्या है?

अब तक, मैंने दो तरीकों की कोशिश की है:

  1. Starflut का उपयोग करना, जो मुझे Flutter से Python कोड को कॉल करने और वापसी मान प्राप्त करने की अनुमति देता है। मैंने इसे कुछ बुनियादी पायथन कोड (कोई निर्भरता नहीं) के साथ परीक्षण किया है और यह बहुत अच्छा काम करता है। हालांकि, मेरे अधिक जटिल उपयोग के मामले के लिए, जहां मेरा पायथन कोड "मशाल" आयात करता है, कोड क्रैश हो जाता है।

त्रुटि संदेश:

:/data/data/com.example.asl/files/flutter_assets/starfiles/image_prediction.py, run failed

ModuleNotFoundError: No module named 'torch'

कोड की निम्न पंक्ति को कॉल करते समय ऐसा होता है:

    var result = await widget.srvGroup.loadRawModule("python", "",
    resPath + "/flutter_assets/starfiles/" + "image_prediction.py", false);
  1. मैंने भी कोशिश की है मेरी अपनी पायथन लिपि में भी दुर्घटनाग्रस्त हो जाता है।

त्रुटि संदेश:

java.lang.NullPointerException: Attempt to invoke virtual method 'org.pytorch.IValue org.pytorch.Module.forward(org.pytorch.IValue[])' on a null object reference

कोड की निम्न पंक्ति को कॉल करते समय ऐसा होता है:

String prediction =
    await TorchMobile.getPrediction(_image, maxWidth: 256, maxHeight: 256);

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

0
EnigmaticBacon 16 अप्रैल 2021, 02:34

1 उत्तर

सबसे बढ़िया उत्तर

starflut package का उपयोग फ़्लटर में पायथन प्रोग्राम या किसी अन्य स्क्रिप्टिंग भाषा को संकलित करने के लिए किया जाता है। यह पैकेज आपके बैकएंड मॉडल को एप्लिकेशन के साथ एकीकृत करने में आपकी मदद नहीं करेगा

बैकएंड को अपने मोबाइल एप्लिकेशन से जोड़ने के लिए आपको अपना स्वयं का एपीआई लिखना होगा या आप Pytorch_mobile स्पंदन पैकेज का उपयोग कर सकते हैं।

आपका ऐप क्रैश हो रहा है -

String prediction =
    await TorchMobile.getPrediction(_image, maxWidth: 256, maxHeight: 256);

क्योंकि ऐसा लगता है कि आप _image को इनिशियलाइज़ करना भूल गए हैं। दुर्भाग्य से, NULL को _image में संगृहीत किया जा रहा है। इसलिए अपना कोड दोबारा जांचें जहां आपने _image को इनिशियलाइज़ किया है।

एक स्पष्ट समझ पाने के लिए आप निश्चित रूप से निम्नलिखित वीडियो देख सकते हैं

3
anirudh 19 अप्रैल 2021, 10:46