2012-02-17 19 views
6

मेरे पास एक एप्लिकेशन है कि मैं उत्पादन करना चाहता हूं। हमारे पास वॉल-माउंटेड शेड्यूल बोर्ड हैं जो सफेद पृष्ठभूमि पर काले रेखाओं का उपयोग करके छोटे आयतों में विभाजित होते हैं। इस व्यक्ति को उस सेल में काम करने के लिए संकेत देने के लिए चुंबकीय नाम टैग किसी विशेष विभाजन में रखा जाता है। यह प्रणाली लोगों के बीच संचार के लिए बहुत अच्छी तरह से काम करती है, लेकिन मैं इस शेड्यूल जानकारी को डेटाबेस में स्वचालित रूप से सहेजने का स्वचालित तरीका चाहूंगा।वास्तविक समय छवि प्रसंस्करण ओसीआर आवेदन के लिए ओपन सोर्स तरीका?

मैं एक ऐसी प्रणाली की कल्पना कर रहा हूं जहां एक शेड्यूल बोर्ड पर ध्यान केंद्रित करने वाली फिक्स स्थिति में कैमरा सेट किया गया हो। समय-समय पर कैमरा बोर्ड की तस्वीर लेगा। मैं समझने के लिए कुछ कोड लिखना चाहता हूं कि कौन से नाम टैग क्षेत्र में हैं। इसके लिए कुछ ओसीआर या प्रतीक पहचान की आवश्यकता होगी। प्रत्येक नाम टैग पर बड़ी संख्याएं हैं जिनका उपयोग मैं उस व्यक्ति की पहचान करने के लिए करूंगा जिसका नाम टैग है।

नई प्रोग्रामिंग समस्या का सामना करते समय मैं स्वाभाविक रूप से पाइथन पर जाता हूं। मुझे यह पोस्ट मिला ->python image recognition जो शुरू करने के लिए एक अच्छी जगह की तरह दिखता है (पीआईएल और numpy के साथ)।

क्या आपको यह करने का एक अच्छा तरीका पता है?

अद्यतन: मैंने सरल सीवी की कोशिश की है और यह अभी के लिए अच्छा लगता है।

+2

आप सकता है, मुझे लगता है, अपने कार्य को आसान अगर आप नाम टैग में एक बार कोड जोड़ा या ओसीआर कम करने के लिए डिज़ाइन किया गया एक फ़ॉन्ट में नंबर लिखा हो। –

उत्तर

4

यह वास्तव में एक बहुत कठिन समस्या है, भले ही यह काफी सरल लग रहा हो। लेकिन आप इसे प्रबंधित करने के लिए अपनी छवि में कुछ सामान करके इसे बहुत आसान बना सकते हैं। मैं निम्नलिखित सुझाव हैं: इसे बनाने के लिए इतना है कि अपने कैमरे ताकि किनारों पर छवि के कम से कम विरूपण, और कोई परिप्रेक्ष्य विरूपण है एक उचित लेंस के साथ बोर्ड पर सीधे देख रहा है

  • प्रयास करें।
  • यह देखते हुए कि आप विश्लेषण के लिए कभी-कभी छवि शूटिंग करेंगे, मुझे लगता है कि प्रदर्शन किसी भी तरह से कोई मुद्दा नहीं है, इसलिए फ़्लैश के साथ या लंबे समय तक एक्सपोजर समय के साथ उच्च-रिज़ॉल्यूशन वाली छवियों को शूट करें (क्योंकि आप जो भी शूटिंग कर रहे हैं वह स्थिर है) सर्वोत्तम संभव तस्वीर की गुणवत्ता प्राप्त करने के लिए।
  • यदि आपके द्वारा अपेक्षित विभिन्न टैग की संख्या बहुत बड़ी नहीं है तो आपको संख्याओं के पूर्ण ओसीआर के बजाय template matching के माध्यम से अपनी छवि में इन टैग की संदर्भ छवियों से मेल खाने का प्रयास करना आसान हो सकता है। यदि आपकी छवि काफी अच्छी है तो यह काम करना बहुत आसान है। python opencv interface बहुत पूरा है।
  • उच्च प्रदर्शन चिह्न टैग पर barcodes सहित आपके प्रश्न के लिए एक अच्छी टिप्पणी है। मैं QR codes का विकल्प जोड़ूंगा, लेकिन यह वही बात है। दोनों को पहचानना आसान है और उन्हें पढ़ने में आपकी मदद करने के लिए अच्छी पुस्तकालयियां हैं।
  • यदि आप तय करते हैं कि आपको ओसीआर की आवश्यकता है, तो आपको उपलब्ध ओसीआर पैकेजों को देखना चाहिए और अपना खुद का रोल करने की कोशिश नहीं करना चाहिए। इंजन या OCRopuspython interface के लिए pytesser आज़माएं।
+0

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

+0

हां, यदि आप फ्लैश का उपयोग करते हैं तो आपको स्थिति चाहिए ताकि प्रतिबिंब बी समस्या न हो। आम तौर पर आपको उतनी अच्छी छवि के साथ शुरू करना चाहिए जितना आप प्राप्त कर सकते हैं। –

+0

मुझे बार कोड या क्यूआर कोड का विचार पसंद है। शायद बार कोड के साथ प्रत्येक टैग के लिए एक अलग सीमा। –

2

चूंकि आपने बताया है कि आप इस समस्या के लिए पायथन का उपयोग करना चाहते हैं, शायद आप SimpleCV पर एक नज़र डाल सकते हैं। यह आपको कैमरे से छवि को पकड़ने और मूल छवि प्रसंस्करण करने का एक आसान तरीका प्रदान करेगा।

0

मैं जेल्स डी विट से दृढ़ता से सहमत हूं कि ओसीआर खरोंच से विकसित होने के लिए एक बेहद कठिन छवि विश्लेषण कार्य होगा। कोड रीडिंग एक बेहतर विकल्प होगा, लेकिन यह भी प्रोग्राम करना मुश्किल होगा और परिष्कृत या कुछ चुनौतीपूर्ण इमेजिंग की आवश्यकता होगी क्योंकि अन्य ने नोट किया है। हालांकि, इस ऐप के लिए आपको वास्तव में ओसीआर या औपचारिक बार कोड, क्यूआर या अन्य 2 डी कोड लागू करने की आवश्यकता नहीं है।

के बाद से अपने आवेदन लक्ष्यों की सीमित संख्या के लिए विवश है, शायद आप अपने खुद के सरल कोड बना सकते हैं। उदाहरण के लिए, आप प्रत्येक व्यक्ति के नाम के बाद 2x2 सरणी में 0 से 4 बड़े बिंदुओं को रख सकते हैं। यह सरल उदाहरण कोड विशिष्ट रूप से 16 अद्वितीय टैग की पहचान करता है, और विशेषताएं औपचारिक कोड की तुलना में छवि, निकालने और डीकोड करने के लिए बहुत आसान होंगी। यदि कोड स्थिति सुसंगत नहीं है तो लोकेटर लाइन जोड़ें।

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

  • कोई संबंधित समस्या नहीं^_^