19 KiB
कंप्यूटर विज़न का परिचय
कंप्यूटर विज़न एक ऐसा क्षेत्र है जिसका उद्देश्य कंप्यूटर को डिजिटल छवियों की उच्च-स्तरीय समझ प्रदान करना है। यह एक व्यापक परिभाषा है, क्योंकि समझना कई चीजों का मतलब हो सकता है, जैसे किसी तस्वीर में वस्तु ढूंढना (वस्तु पहचान), यह समझना कि क्या हो रहा है (घटना पहचान), किसी तस्वीर का पाठ में वर्णन करना, या 3D में दृश्य को पुनर्निर्मित करना। मानव छवियों से संबंधित विशेष कार्य भी हैं: उम्र और भावना का अनुमान लगाना, चेहरा पहचान और पहचान, और 3D पोज़ का अनुमान लगाना, आदि।
प्री-लेक्चर क्विज़
कंप्यूटर विज़न का सबसे सरल कार्यों में से एक है छवि वर्गीकरण।
कंप्यूटर विज़न को अक्सर AI की एक शाखा माना जाता है। आजकल, कंप्यूटर विज़न के अधिकांश कार्य न्यूरल नेटवर्क का उपयोग करके हल किए जाते हैं। हम इस खंड में कंप्यूटर विज़न के लिए उपयोग किए जाने वाले विशेष प्रकार के न्यूरल नेटवर्क, कन्वोल्यूशनल न्यूरल नेटवर्क्स, के बारे में अधिक जानेंगे।
हालांकि, छवि को न्यूरल नेटवर्क में भेजने से पहले, कई मामलों में छवि को बेहतर बनाने के लिए कुछ एल्गोरिदमिक तकनीकों का उपयोग करना समझदारी हो सकता है।
छवि प्रसंस्करण के लिए कई पायथन लाइब्रेरी उपलब्ध हैं:
- imageio विभिन्न छवि प्रारूपों को पढ़ने/लिखने के लिए उपयोग की जा सकती है। यह ffmpeg का भी समर्थन करती है, जो वीडियो फ्रेम को छवियों में बदलने के लिए एक उपयोगी उपकरण है।
- Pillow (जिसे PIL भी कहा जाता है) अधिक शक्तिशाली है और छवि में बदलाव जैसे मर्फिंग, पैलेट समायोजन आदि का समर्थन करती है।
- OpenCV एक शक्तिशाली छवि प्रसंस्करण लाइब्रेरी है जो C++ में लिखी गई है और छवि प्रसंस्करण के लिए डिफ़ॉल्ट मानक बन गई है। इसका एक सुविधाजनक पायथन इंटरफ़ेस है।
- dlib एक C++ लाइब्रेरी है जो कई मशीन लर्निंग एल्गोरिदम को लागू करती है, जिसमें कुछ कंप्यूटर विज़न एल्गोरिदम भी शामिल हैं। इसका पायथन इंटरफ़ेस भी है और इसे चेहरे और चेहरे के लैंडमार्क पहचान जैसे चुनौतीपूर्ण कार्यों के लिए उपयोग किया जा सकता है।
OpenCV
OpenCV को छवि प्रसंस्करण के लिए डिफ़ॉल्ट मानक माना जाता है। इसमें कई उपयोगी एल्गोरिदम शामिल हैं, जो C++ में लागू किए गए हैं। आप OpenCV को पायथन से भी कॉल कर सकते हैं।
OpenCV सीखने के लिए एक अच्छा स्थान है यह Learn OpenCV कोर्स। हमारे पाठ्यक्रम में, हमारा उद्देश्य OpenCV को सीखना नहीं है, बल्कि यह दिखाना है कि इसे कब और कैसे उपयोग किया जा सकता है।
छवियों को लोड करना
पायथन में छवियों को आसानी से NumPy एरे के रूप में दर्शाया जा सकता है। उदाहरण के लिए, 320x200 पिक्सल की ग्रेस्केल छवियां 200x320 एरे में संग्रहीत की जाएंगी, और समान आयाम की रंगीन छवियों का आकार 200x320x3 होगा (3 रंग चैनलों के लिए)। छवि को लोड करने के लिए, आप निम्न कोड का उपयोग कर सकते हैं:
import cv2
import matplotlib.pyplot as plt
im = cv2.imread('image.jpeg')
plt.imshow(im)
पारंपरिक रूप से, OpenCV रंगीन छवियों के लिए BGR (ब्लू-ग्रीन-रेड) एन्कोडिंग का उपयोग करता है, जबकि पायथन के अन्य उपकरण अधिक पारंपरिक RGB (रेड-ग्रीन-ब्लू) का उपयोग करते हैं। छवि को सही दिखने के लिए, आपको इसे RGB रंग स्थान में बदलने की आवश्यकता होती है, या तो NumPy एरे में आयामों को स्वैप करके, या OpenCV फ़ंक्शन को कॉल करके:
im = cv2.cvtColor(im,cv2.COLOR_BGR2RGB)
cvtColor फ़ंक्शन का उपयोग अन्य रंग स्थान रूपांतरणों के लिए भी किया जा सकता है, जैसे कि छवि को ग्रेस्केल या HSV (ह्यू-सैचुरेशन-वैल्यू) रंग स्थान में बदलना।
आप OpenCV का उपयोग करके वीडियो को फ्रेम-दर-फ्रेम भी लोड कर सकते हैं - इसका एक उदाहरण OpenCV Notebook में दिया गया है।
छवि प्रसंस्करण
छवि को न्यूरल नेटवर्क में भेजने से पहले, आप कई पूर्व-प्रसंस्करण चरण लागू करना चाह सकते हैं। OpenCV कई चीजें कर सकता है, जिनमें शामिल हैं:
im = cv2.resize(im, (320,200),interpolation=cv2.INTER_LANCZOS)का उपयोग करके छवि का आकार बदलना।im = cv2.medianBlur(im,3)याim = cv2.GaussianBlur(im, (3,3), 0)का उपयोग करके छवि को ब्लर करना।- छवि की चमक और कंट्रास्ट को बदलना NumPy एरे हेरफेर द्वारा किया जा सकता है, जैसा कि इस Stackoverflow नोट में वर्णित है।
- थ्रेशोल्डिंग का उपयोग
cv2.threshold/cv2.adaptiveThresholdफ़ंक्शंस को कॉल करके किया जा सकता है, जो अक्सर चमक या कंट्रास्ट को समायोजित करने से बेहतर होता है। - छवि पर विभिन्न रूपांतरण लागू करना:
- एफाइन रूपांतरण उपयोगी हो सकते हैं यदि आपको छवि पर रोटेशन, आकार बदलने और तिरछापन को संयोजित करने की आवश्यकता हो और आप छवि में तीन बिंदुओं के स्रोत और गंतव्य स्थान जानते हों। एफाइन रूपांतरण समानांतर रेखाओं को समानांतर रखते हैं।
- परिप्रेक्ष्य रूपांतरण उपयोगी हो सकते हैं जब आप छवि में 4 बिंदुओं के स्रोत और गंतव्य स्थान जानते हों। उदाहरण के लिए, यदि आप स्मार्टफोन कैमरे से किसी आयताकार दस्तावेज़ की तस्वीर किसी कोण से लेते हैं, और आप दस्तावेज़ की आयताकार छवि बनाना चाहते हैं।
- ऑप्टिकल फ्लो का उपयोग करके छवि के अंदर की गति को समझना।
कंप्यूटर विज़न का उपयोग करने के उदाहरण
हमारे OpenCV Notebook में, हमने कुछ उदाहरण दिए हैं कि कंप्यूटर विज़न का उपयोग विशिष्ट कार्यों को करने के लिए कैसे किया जा सकता है:
- ब्रेल पुस्तक की तस्वीर को पूर्व-प्रसंस्करण करना। हम इस पर ध्यान केंद्रित करते हैं कि थ्रेशोल्डिंग, फीचर डिटेक्शन, परिप्रेक्ष्य रूपांतरण और NumPy हेरफेर का उपयोग करके व्यक्तिगत ब्रेल प्रतीकों को अलग कैसे किया जा सकता है ताकि उन्हें न्यूरल नेटवर्क द्वारा वर्गीकृत किया जा सके।
![]() |
![]() |
![]() |
|---|
छवि OpenCV.ipynb से
- फ्रेम अंतर का उपयोग करके वीडियो में गति का पता लगाना। यदि कैमरा स्थिर है, तो कैमरा फीड से फ्रेम एक-दूसरे के समान होने चाहिए। चूंकि फ्रेम एरे के रूप में दर्शाए जाते हैं, केवल दो लगातार फ्रेम के लिए उन एरे को घटाकर हम पिक्सल अंतर प्राप्त करेंगे, जो स्थिर फ्रेम के लिए कम होना चाहिए, और छवि में पर्याप्त गति होने पर अधिक हो जाएगा।
छवि OpenCV.ipynb से
-
ऑप्टिकल फ्लो का उपयोग करके गति का पता लगाना। ऑप्टिकल फ्लो हमें यह समझने की अनुमति देता है कि वीडियो फ्रेम पर व्यक्तिगत पिक्सल कैसे चलते हैं। ऑप्टिकल फ्लो के दो प्रकार हैं:
- डेंस ऑप्टिकल फ्लो वेक्टर फील्ड की गणना करता है जो दिखाता है कि प्रत्येक पिक्सल कहां जा रहा है।
- स्पार्स ऑप्टिकल फ्लो छवि में कुछ विशिष्ट विशेषताओं (जैसे किनारों) को लेता है, और फ्रेम से फ्रेम तक उनकी प्रक्षेपवक्र बनाता है।
छवि OpenCV.ipynb से
✍️ उदाहरण नोटबुक्स: OpenCV OpenCV को एक्शन में आज़माएं
आइए OpenCV Notebook का पता लगाकर OpenCV के साथ कुछ प्रयोग करें।
निष्कर्ष
कभी-कभी, जैसे गति का पता लगाना या उंगलियों के सिरे का पता लगाना जैसे अपेक्षाकृत जटिल कार्य केवल कंप्यूटर विज़न द्वारा हल किए जा सकते हैं। इसलिए, कंप्यूटर विज़न की बुनियादी तकनीकों और OpenCV जैसी लाइब्रेरी क्या कर सकती हैं, यह जानना बहुत उपयोगी है।
🚀 चुनौती
AI शो से यह वीडियो देखें ताकि Cortic Tigers प्रोजेक्ट और उन्होंने कैसे एक रोबोट के माध्यम से कंप्यूटर विज़न कार्यों को लोकतांत्रिक बनाने के लिए ब्लॉक-आधारित समाधान बनाया, इसके बारे में जानें। इस तरह के अन्य प्रोजेक्ट्स पर शोध करें जो नए शिक्षार्थियों को इस क्षेत्र में शामिल करने में मदद करते हैं।
पोस्ट-लेक्चर क्विज़
समीक्षा और स्व-अध्ययन
ऑप्टिकल फ्लो पर इस शानदार ट्यूटोरियल में और पढ़ें।
असाइनमेंट
इस लैब में, आप सरल इशारों के साथ एक वीडियो लेंगे, और आपका लक्ष्य ऑप्टिकल फ्लो का उपयोग करके ऊपर/नीचे/बाएं/दाएं आंदोलनों को निकालना होगा।
अस्वीकरण:
यह दस्तावेज़ AI अनुवाद सेवा Co-op Translator का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता के लिए प्रयासरत हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या अशुद्धियां हो सकती हैं। मूल भाषा में उपलब्ध मूल दस्तावेज़ को आधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम उत्तरदायी नहीं हैं।




