2015-03-15 5 views
5

मेरा लक्ष्य एडब्ल्यूएस लैम्ब्डा में Tesseract-ओसीआर चलाने के लिए है।Tesseract-ओसीआर EC2 पर काम करता है, नहीं लैम्ब्डा

मैं एक EC2 उदाहरण है कि लैम्ब्डा वातावरण को प्रतिबिंबित करने का प्रयास करता है का निर्माण किया है। पैरामीटर के बिना टेसरेक्ट निष्पादित करना दोनों वातावरण में सफल होता है। हालांकि, वास्तविक छवि प्रसंस्करण पर कोई प्रयास, उदा। इस कोड:

tess = child_process.exec('tesseract input.tif output -l eng -psm 1 hocr', function(error, stdout, stderr) { 
... 

मेरी EC2 बॉक्स पर रन सफलतापूर्वक, लेकिन इस त्रुटि के साथ लैम्ब्डा में विफल रहता है:

Error: Command failed: Tesseract Open Source OCR Engine v3.04.00 with Leptonica 
Error during processing. 

at ChildProcess.exithandler (child_process.js:648:15) 
at ChildProcess.emit (events.js:98:17) 
at maybeClose (child_process.js:756:16) 
at Process.ChildProcess._handle.onexit (child_process.js:823:5) 
Error code: 1 
Signal received: null 

लैम्ब्डा प्रशासनिक विशेषाधिकार ({ "प्रभाव" के साथ एक IAM भूमिका संभालने जाता है: "अनुमति दें" , "कार्रवाई": "", "संसाधन": ""})

त्रुटि एक शीर्ष स्तर कैच-ऑल रूप Tesseract द्वारा उत्सर्जित होता है "संसाधित करने के दौरान त्रुटि"। मैं उपकरण tesseract जा रहा हूँ और समस्या को और संकीर्ण करने की कोशिश कर रहा हूँ।

मैं यहां कैसे आए:

  • मेरे EC2 मशीन एक t2.micro पूर्व-1 हमें (AMZN-अमी-hvm-2014.09.2.x86_64-EBS में अमेज़न लिनक्स चल रहा है (AMI-146e2a7c))।
  • मैं नोड 0.10.33 और [email protected], जो लैम्ब्डा संस्करणों से मेल स्थापित किया।
  • मैं संकलित Tesseract और स्रोत से leptonica। एक rpath जोड़ा और कहा कि सभी निर्भरता
  • Tesseract बाइनरी पाए जाते हैं और liblept.so (/ var/कार्य)

मुझे पता है कि क्या गलत हो रहा चाहूँगा मेरी रूट निर्देशिका में सभी कर रहे हैं पुष्टि करने के लिए ldd चलाने - या इसका निदान कैसे करें।

धन्यवाद, डेव

उत्तर

3

लघु जवाब: उत्पादन/tmp निर्देशिका, उदा जाना चाहिए

tesseract input.tif /tmp/output -l eng -psm 1 hocr 

थोड़ा लंबा उत्तर: हुड के नीचे Tesseract कॉल fopen पश्चिम बंगाल, और जाहिरा तौर पर है कि/var/कार्य में मना किया है।

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

+0

हाय, यह आपको एक उदाहरण पोस्ट करने के लिए संभव हो सकता है? मैं aws lambda के साथ tesseract पर भी काम कर रहा हूँ, यह बहुत उपयोगी होगा। – iCodeLikeImDrunk

संबंधित मुद्दे