OpenCV - अवलोकन

OpenCV एक क्रॉस-प्लेटफॉर्म लाइब्रेरी है जिसका उपयोग करके हम वास्तविक समय का विकास कर सकते हैं computer vision applications। यह मुख्य रूप से इमेज प्रोसेसिंग, वीडियो कैप्चर और विश्लेषण पर केंद्रित है जिसमें फेस डिटेक्शन और ऑब्जेक्ट डिटेक्शन जैसी विशेषताएं शामिल हैं।

चलो "कंप्यूटर विजन" शब्द को परिभाषित करके अध्याय शुरू करते हैं।

कंप्यूटर दृष्टी

कंप्यूटर विज़न को एक अनुशासन के रूप में परिभाषित किया जा सकता है जो यह बताता है कि दृश्य में मौजूद संरचना के गुणों के संदर्भ में, इसकी 2 डी छवियों से एक 3D दृश्य को कैसे पुनर्निर्माण, बाधित और समझना है। यह कंप्यूटर सॉफ्टवेयर और हार्डवेयर का उपयोग करके मानव दृष्टि की मॉडलिंग और नकल करने से संबंधित है।

कंप्यूटर विज़न निम्नलिखित क्षेत्रों के साथ महत्वपूर्ण रूप से ओवरलैप करता है -

  • Image Processing - यह छवि हेरफेर पर केंद्रित है।

  • Pattern Recognition - यह पैटर्न को वर्गीकृत करने के लिए विभिन्न तकनीकों की व्याख्या करता है।

  • Photogrammetry - यह छवियों से सटीक माप प्राप्त करने से संबंधित है।

कंप्यूटर विज़न बनाम इमेज प्रोसेसिंग

Image processingछवि-से-छवि परिवर्तन से संबंधित है। इमेज प्रोसेसिंग का इनपुट और आउटपुट दोनों ही इमेज हैं।

Computer visionउनकी छवि से भौतिक वस्तुओं के स्पष्ट, सार्थक विवरण का निर्माण है। कंप्यूटर दृष्टि का आउटपुट 3 डी दृश्य में संरचनाओं का वर्णन या व्याख्या है।

कंप्यूटर विजन के अनुप्रयोग

यहाँ हमने कुछ प्रमुख डोमेन सूचीबद्ध किए हैं जहाँ कंप्यूटर विज़न का भारी उपयोग किया जाता है।

रोबोटिक्स एप्लीकेशन

  • स्थानीयकरण - स्वचालित रूप से रोबोट स्थान निर्धारित करें

  • Navigation

  • बाधा से बचाव

  • विधानसभा (खूंटी में छेद, वेल्डिंग, पेंटिंग)

  • हेरफेर (उदाहरण PUMA रोबोट मैनिप्युलेटर)

  • मानव रोबोट इंटरैक्शन (एचआरआई) - लोगों के साथ बातचीत करने और उनकी सेवा करने के लिए बुद्धिमान रोबोटिक्स

चिकित्सा अनुप्रयोग

  • वर्गीकरण और पहचान (जैसे घाव या कोशिकाओं का वर्गीकरण और ट्यूमर का पता लगाना)
  • 2D / 3D विभाजन
  • 3 डी मानव अंग पुनर्निर्माण (एमआरआई या अल्ट्रासाउंड)
  • दृष्टि निर्देशित रोबोटिक्स सर्जरी

औद्योगिक स्वचालन आवेदन

  • औद्योगिक निरीक्षण (दोष का पता लगाना)
  • Assembly
  • बारकोड और पैकेज लेबल पढ़ना
  • वस्तु छँटाई
  • दस्तावेज़ की समझ (जैसे OCR)

सुरक्षा अनुप्रयोग

  • बॉयोमीट्रिक्स (आईरिस, फिंगर प्रिंट, चेहरे की पहचान)

  • निगरानी - कुछ संदिग्ध गतिविधियों या व्यवहारों का पता लगाना

परिवहन आवेदन

  • स्वायत्त वाहन
  • सुरक्षा, जैसे, चालक सतर्कता निगरानी

OpenCV लाइब्रेरी की विशेषताएं

OpenCV लाइब्रेरी का उपयोग, आप कर सकते हैं -

  • चित्र पढ़ें और लिखें

  • वीडियो कैप्चर करें और सहेजें

  • प्रक्रिया छवियों (फिल्टर, परिवर्तन)

  • फ़ीचर डिटेक्शन करें

  • वीडियो या छवियों में विशिष्ट वस्तुओं जैसे चेहरे, आंखों, कारों का पता लगाएं।

  • वीडियो का विश्लेषण करें, अर्थात, इसमें गति का अनुमान लगाएं, पृष्ठभूमि को घटाएं, और इसमें वस्तुओं को ट्रैक करें।

OpenCV मूल रूप से C ++ में विकसित किया गया था। इसके अलावा, पायथन और जावा बाइंडिंग प्रदान किए गए थे। OpenCV विभिन्न ऑपरेटिंग सिस्टम जैसे विंडोज, लिनक्स, OSx, FreeBSD, नेट BSD, ओपन BSD, आदि पर चलता है।

यह ट्यूटोरियल जावा बाइंडिंग का उपयोग करके ओपनसीवी की अवधारणाओं की व्याख्या करता है।

OpenCV लाइब्रेरी मॉड्यूल

निम्नलिखित OpenCV पुस्तकालय के मुख्य पुस्तकालय मॉड्यूल हैं।

कोर फंक्शनलिटी

यह मॉड्यूल मूल डेटा संरचनाओं जैसे कि स्केलर, पॉइंट, रेंज, आदि को कवर करता है, जिनका उपयोग ओपनसीवी अनुप्रयोगों के निर्माण के लिए किया जाता है। इनके अतिरिक्त, इसमें बहुआयामी सरणी भी शामिल हैMat, जिसका उपयोग छवियों को संग्रहीत करने के लिए किया जाता है। ओपनसीवी के जावा पुस्तकालय में, इस मॉड्यूल को नाम के साथ एक पैकेज के रूप में शामिल किया गया हैorg.opencv.core।

इमेज प्रोसेसिंग

यह मॉड्यूल विभिन्न इमेज प्रोसेसिंग ऑपरेशंस को कवर करता है जैसे कि इमेज फ़िल्टरिंग, जियोमेट्रिक इमेज ट्रांसफॉर्मेशन, कलर स्पेस कनवर्ज़न, हिस्टोग्राम्स आदि। OpenCV की जावा लाइब्रेरी में, इस मॉड्यूल को नाम के साथ एक पैकेज के रूप में शामिल किया जाता है। org.opencv.imgproc।

वीडियो

यह मॉड्यूल गति विश्लेषण, पृष्ठभूमि घटाव और ऑब्जेक्ट ट्रैकिंग जैसे वीडियो विश्लेषण अवधारणाओं को कवर करता है। ओपनसीवी के जावा पुस्तकालय में, इस मॉड्यूल को नाम के साथ एक पैकेज के रूप में शामिल किया गया हैorg.opencv.video।

वीडियो I / O

यह मॉड्यूल OpenCV लाइब्रेरी का उपयोग करके वीडियो कैप्चरिंग और वीडियो कोडेक्स की व्याख्या करता है। ओपनसीवी के जावा पुस्तकालय में, इस मॉड्यूल को नाम के साथ एक पैकेज के रूप में शामिल किया गया हैorg.opencv.videoio।

calib3d

इस मॉड्यूल में बुनियादी मल्टीपल-व्यू ज्यामिति एल्गोरिदम, सिंगल और स्टीरियो कैमरा कैलिब्रेशन, ऑब्जेक्ट पोज़ अनुमान, स्टीरियो पत्राचार और 3 डी पुनर्निर्माण के तत्व के बारे में एल्गोरिदम शामिल हैं। ओपनसीवी के जावा पुस्तकालय में, इस मॉड्यूल को नाम के साथ एक पैकेज के रूप में शामिल किया गया हैorg.opencv.calib3d।

features2d

इस मॉड्यूल में फीचर डिटेक्शन और विवरण की अवधारणाएं शामिल हैं। ओपनसीवी के जावा पुस्तकालय में, इस मॉड्यूल को नाम के साथ एक पैकेज के रूप में शामिल किया गया हैorg.opencv.features2d।

Objdetect

इस मॉड्यूल में पूर्वनिर्धारित कक्षाओं की वस्तुओं और उदाहरणों का पता लगाना शामिल है जैसे कि चेहरे, आंखें, मग, लोग, कारें, आदि। OpenCV के जावा पुस्तकालय में, इस मॉड्यूल को नाम के साथ एक पैकेज के रूप में शामिल किया गया है। org.opencv.objdetect।

highgui

यह सरल यूआई क्षमताओं के साथ एक आसान-से-उपयोग इंटरफ़ेस है। OpenCV की जावा लाइब्रेरी में, इस मॉड्यूल की विशेषताओं को दो अलग-अलग पैकेजों में शामिल किया गया है,org.opencv.imgcodecs तथा org.opencv.videoio।

OpenCV का एक संक्षिप्त इतिहास

OpenCV शुरू में सीपीयू-गहन अनुप्रयोगों को सलाह देने के लिए एक इंटेल शोध पहल थी। इसे आधिकारिक तौर पर 1999 में लॉन्च किया गया था।

  • वर्ष 2006 में, इसका पहला प्रमुख संस्करण, OpenCV 1.0 जारी किया गया था।
  • अक्टूबर 2009 में, दूसरा प्रमुख संस्करण, ओपनसीवी 2 जारी किया गया था।
  • अगस्त 2012 में, OpenCV को एक गैर-लाभकारी संगठन OpenCV.org द्वारा लिया गया था।