कोर्स
काफी समय पहले Google ने कंप्यूटर विज़न से जुड़े कार्यों के लिए एक समर्पित API Vision API जारी किया था। कंप्यूटर विज़न वह क्षेत्र है जो यह समझता है कि कोई कंप्यूटर किसी छवि को कैसे संसाधित करता है। हमारे लिए किसी छवि से उपयोगी बातें निकालना आसान है, पर कोई कंप्यूटर यह कैसे करता है?
मान लीजिए, आप अपने कंप्यूटर को कुत्ते की एक तस्वीर देते हैं और कोई सॉफ़्टवेयर बताता है कि यह कुत्ते की ही छवि है। यही वह जगह है जहाँ कंप्यूटर विज़न काम आता है। कंप्यूटर विज़न अपने‑आप में एक पूरा अध्ययन क्षेत्र है, और Vision API कंप्यूटर विज़न से जुड़े अनेक कार्य अत्यंत सरलता से करने के लिए कई उपयोगिताएँ देता है। सबसे अच्छी बात यह है कि जिन डेवलपर्स के पास कंप्यूटर विज़न का कोई पूर्व अनुभव नहीं है, वे भी इसकी डॉक्यूमेंटेशन पढ़कर Vision API का उपयोग कर सकते हैं।
यह ट्यूटोरियल आपको Vision API से परिचित कराने और यह दिखाने का प्रयास करता है कि इसे Python कोड से कैसे कॉल किया जा सकता है।
नोट: अगर आप इस ट्यूटोरियल से पहले सामान्य रूप से APIs (Python और Machine Learning के नज़रिये से) के बारे में और जानना चाहते हैं तो नीचे दिए गए कुछ उत्कृष्ट संसाधन देखें:
Google का Vision API क्या है? एक विस्तृत परिचय
Google ने अपने Machine Learning मॉडलों को एक API में समाहित किया है ताकि डेवलपर्स उनकी Vision तकनीक का उपयोग कर सकें। Vision API हज़ारों श्रेणियों में छवियों को तेज़ी से वर्गीकृत कर सकता है और उन्हें सार्थक लेबल दे सकता है। यह किसी छवि के भीतर मौजूद वस्तुओं, चेहरों और पाठ के अंशों तक का पता लगा सकता है।
उच्च स्तर पर देखें तो Google का Vision API आपको दो मुख्य कार्य करने देता है:
- अपने कोड से सीधे API का उपयोग कर बड़े पैमाने पर शक्तिशाली इमेज विश्लेषण करना।
- अपने विशिष्ट उपयोग‑मामले के लिए अधिक लचीलापन देने हेतु API की मदद से कस्टम मॉडल बनाना।
यह API इसलिए विशेष रूप से उपयोगी है क्योंकि आधुनिक समय में "फुल‑स्टैक" प्रैक्टिशनरों की ज़रूरत तेज़ी से बढ़ रही है। मान लीजिए किसी फुल‑स्टैक वेब डेवलपर (अर्थात जो फ्रंट‑एंड और बैक‑एंड दोनों तकनीकों में दक्ष है) से ऐसी वेबसाइट बनाने को कहा जाए जो छवियाँ ले और उनका प्रकार पहचाने। अब, यदि डेवलपर के पास पहले से कंप्यूटर विज़न का अच्छा ज्ञान नहीं है, तो बैक‑एंड कोड को इस तरह निर्देशित करना कि वह सटीक पहचान कर सके, चुनौतीपूर्ण होगा। साथ ही मान लें कि समयसीमा भी लंबी नहीं है।
ऐसी स्थिति में अगर डेवलपर्स कंप्यूटर विज़न शून्य से सीखना शुरू करें और फिर आवश्यक कार्यान्वयन करें, तो वे समयसीमा चूक सकते हैं। इसके बजाय, यदि वे पहले से प्रशिक्षित कंप्यूटर विज़न मॉडल्स का उपयोग करें और विकास के साथ‑साथ अवधारणाएँ समझते चलें, तो यह अधिक व्यावहारिक होगा। यही वह परिदृश्य है जहाँ Vision API बेहद काम आता है। यह API कई अत्याधुनिक प्री‑ट्रेंड मॉडल्स देती है जो वास्तविक दुनिया के व्यावसायिक उपयोग‑मामलों की सेवा करते हैं।
"फुल‑स्टैक" शब्द अब Machine Learning Engineer, Data Scientist जैसी भूमिकाओं से भी जुड़ रहा है। एक फुल‑स्टैक मशीन लर्निंग प्रैक्टिशनर/डेटा साइंटिस्ट से अपेक्षा होती है कि वह एन्ड‑टू‑एन्ड बिज़नेस प्रक्रियाओं को डिज़ाइन‑डेवलप या कम से कम समझे। इसमें "प्रोडक्शन‑रेडी मॉडल बनाना" अत्यंत महत्वपूर्ण चरण है, जहाँ संबंधित व्यक्ति/टीम विकसित मॉडल को एक API या APIs के सेट में लपेटकर प्रोडक्शन वातावरण में तैनात करती है। अब, प्रोडक्शन शब्द का स्वरूप उपयोग‑मामले के अनुसार बदल सकता है, पर प्रक्रियाओं का सामान्य ढाँचा समान रहता है। Vision API आपको AutoML Vision BETA के साथ कस्टम विज़न मॉडल्स को कुशलतापूर्वक प्रशिक्षित करने देता है।
बहुत बढ़िया! अब तक आपको Vision API का काफ़ी अच्छा अवलोकन मिल चुका होगा। Vision होमपेज पर आप एक छोटा‑सा प्रयोग कर सकते हैं—अपनी पसंदीदा छवियाँ विश्लेषित करें और Vision की मदद से उपयोगी अंतर्दृष्टियाँ पाएँ। ऐसा करने के चरण इस प्रकार हैं:
- Vision होमपेज पर जाएँ।
- वहाँ "Try the API" नाम का एक सेक्शन है। यह आपको अपने इंटरफ़ेस में कोई छवि खींचकर छोड़ने/अपलोड करने देता है।

- एक बार जब आप उसे कोई छवि देते हैं, तो यह छवि के बारे में ढेर सारी जानकारी देता है:
जैसा कि आप देख सकते हैं, Vision ने पल भर में दी गई छवि के बारे में कई तथ्य पहचान लिए। और भी अधिक जानने के लिए अन्य टैब्स को भी निःसंकोच देखें।
सोचिए, यदि यही कार्य एक अरब छवियों के सेट पर करना हो तो? ऐसी API का उपयोग निस्संदेह अत्यंत लाभकारी होगा। अब, आइए Vision API की पेशकशों के बारे में जानें और देखें कि इसने किन वास्तविक उपयोग‑मामलों में काम किया है।
Vision API की पेशकशें क्या हैं - कुछ विशिष्ट उपयोग‑मामले
Vision API अपनी सटीकता के लिए जानी जाती है। Vision API की डॉक्यूमेंटेशन में उत्कृष्ट ट्यूटोरियल्स का संकलन है जो API के बारे में अत्यंत विस्तृत समझ देता है। पर पहली नज़र में ये चीज़ें भारी लग सकती हैं। इसलिए सरल रखते हुए, आप कुछ उन उपयोग‑मामलों के बारे में जानेंगे जिन्हें Vision API पहले ही सफलतापूर्वक पूरा कर चुकी है।
- ऑप्टिकल कैरेक्टर रिकग्निशन (OCR): यह कंप्यूटर विज़न का एक क्लासिक उदाहरण है जो मूलतः छवि से टेक्स्ट निकालने का कार्य करता है। Vision API में इसे करने के लिए कई अत्याधुनिक तरीके शामिल हैं।
- इमेज प्रॉपर्टीज़ का पता लगाना: यह वही कार्य है जो आपने पिछले सेक्शन में किया। Vision API की मदद से आप किसी छवि के सामान्य गुण, जैसे प्रमुख रंग, आदि प्राप्त कर सकते हैं।
- लेबल डिटेक्शन: इस कार्य में छवि की सामग्री के आधार पर उसे किसी लेबल (या "टैग") से एनोटेट किया जाता है। उदाहरण के लिए, कुत्ते की तस्वीर का लेबल "dog", "animal" या इसी तरह का हो सकता है। यह कंटेंट‑बेस्ड इन्फ़ॉर्मेशन रिट्रीवल के क्षेत्र में एक आवश्यक चरण है।
- फेस डिटेक्शन: किसी छवि या छवियों के सेट में उपस्थित चेहरों का पता लगाना। इसके बड़े उपयोग, जैसे निगरानी प्रणालियाँ, मौजूद हैं।
ये कुछ उत्कृष्ट उपयोग‑मामले हैं जिन पर Vision API बखूबी काम करती है, और आप ऊपर दिए गए किसी भी कार्य को बहुत कम समय में अपनी ऐप्लिकेशनों में एकीकृत कर सकते हैं। यदि आप ऐसे और उपयोग‑मामले सीखना चाहते हैं, तो अवश्य ये ट्यूटोरियल्स देखें।
Vision API Go, C#, Java, PHP, Node.js, Python, Ruby जैसी कई भाषाओं के लिए सपोर्ट प्रदान करती है। अगले सेक्शनों में, आप देखेंगे कि Python में Vision API का उपयोग कैसे करें।
Python के लिए Vision API क्लाइंट लाइब्रेरी
Python में Vision API का उपयोग करने का पहला चरण इसे इंस्टॉल करना है। इसे इंस्टॉल करने का सबसे अच्छा तरीका pip है।
!pip install google-cloud-vision
इंस्टॉलेशन सफल हो जाने पर, अगला चरण इसे जाँचना है।
from google.cloud import vision
यदि ऊपर दी गई कोड की पंक्ति सफलतापूर्वक चलती है, तो आप आगे बढ़ने के लिए तैयार हैं। Google ने Python में Vision API के उपयोग पर कई बेहतरीन ट्यूटोरियल्स दिए हैं।
अब, आप Python में एक सरल ऐप्लिकेशन बनाएँगे जो किसी छवि के कुछ सामान्य गुण, जैसे कि प्रमुख रंग, का पता लगा सके।
Python में Vision API के साथ एक केस स्टडी
आपका ऐप्लिकेशन इनपुट के रूप में किसी छवि का पाथ लेगा और संबंधित छवि के सामान्य गुण दिखाएगा। यह तब उपयोगी है जब छवियाँ उसी कंप्यूटर में हों जिस पर ऐप्लिकेशन चलाया जाएगा। पर यदि आपको इंटरनेट से छवि पढ़नी हो तो? Vision API इंटरनेट से छवियाँ पढ़ने का भी समर्थन करती है।
इस केस स्टडी में, आप पहले परिदृश्य से निपटना सीखेंगे। लेकिन इंटरनेट वाले रूपांतर को समायोजित करना केवल एक पंक्ति के कोड का मामला है।
हमेशा की तरह, आप google.cloud मॉड्यूल से vision इम्पोर्ट करके शुरुआत करेंगे।
from google.cloud import vision
अगला चरण है ImageAnnotatorClient() कॉल करना, जिसमें इमेज प्रॉपर्टीज़ निकालने की उपयोगिताएँ होती हैं।
client = vision.ImageAnnotatorClient()
यदि GOOGLE_APPLICATION_CREDENTIALS एनवायरनमेंट वेरियेबल सेट नहीं है तो आपको संभवतः त्रुटि मिलेगी। इसका कारण यह है कि ये लाइब्रेरीज़ आपके ऐप्लिकेशन की क्रेडेंशियल्स ढूँढने के लिए Application Default Credentials (ADC) का उपयोग करती हैं। जब आपका कोड ऐसी लाइब्रेरीज़ का उपयोग करता है, तो यह रणनीति आपकी क्रेडेंशियल्स जाँचती है।
इस लिंक का पालन करके जानें कि GOOGLE_APPLICATION_CREDENTIALS कैसे जनरेट करें। आपका उद्देश्य एक client_secrets.json फ़ाइल बनाना है जिसे आप प्रमाणीकरण के लिए उपयोग करेंगे।
client_secrets.json प्राप्त हो जाने के बाद, आप GOOGLE_APPLICATION_CREDENTIALS एनवायरनमेंट वेरियेबल सेट करने के लिए निम्न कोड चलाएँगे।
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="client_secrets.json"
अब नीचे दिया गया कोड चलाने पर कोई त्रुटि नहीं आनी चाहिए।
client = vision.ImageAnnotatorClient()
अब आप दिए गए पाथ से छवि पढ़ने के लिए कोड लिखेंगे।

import io
path = 'Image.jpeg'
with io.open(path, 'rb') as image_file:
content = image_file.read()
आपने सफलतापूर्वक एक छवि अपने वर्कस्पेस में लोड कर ली है। अब, आप vision.types.Image प्रकार का एक ऑब्जेक्ट बनाएँगे और उसका आर्ग्युमेंट content=content देंगे।
image = vision.types.Image(content=content)
अब आपकी इमेज प्रॉपर्टीज़ डिटेक्शन ऐप्लिकेशन के अंतिम चरण बचे हैं। इन चरणों में आप:
client.image_propertiesको(image=image)आर्ग्युमेंट के साथ कॉल करेंगे।image_properties()के रिस्पॉन्स कोresponseनामक वेरियेबल में स्टोर करेंगे औरresponseकेimage_properties_annotationआर्ग्युमेंट को कॉल करके इमेज प्रॉपर्टीज़ निकालेंगे।- छवि के कई गुणों को स्वरूपित तरीके से प्रदर्शित करेंगे।
response = client.image_properties(image=image)
props = response.image_properties_annotation
print('Properties of the image:')
for color in props.dominant_colors.colors:
print('Fraction: {}'.format(color.pixel_fraction))
print('\tr: {}'.format(color.color.red))
print('\tg: {}'.format(color.color.green))
print('\tb: {}'.format(color.color.blue))
यदि आपने अपने ऐप्लिकेशन के लिए Vision API इनेबल नहीं की है तो आपको फिर से त्रुटियाँ मिल सकती हैं। API को इनेबल करना बेहद आसान है, और एरर ट्रेस आपको तेज़ी से इसे सक्षम करने के निर्देश देता है।
API इनेबल करने के बाद, Vision API का उपयोग करने के लिए आपको Billing भी सक्षम करनी होगी। इमेज प्रॉपर्टीज़ डिटेक्शन की उपयोगिताओं की लागत केवल $0.60 है। इसके बाद कोड सफलतापूर्वक चलता है और आउटपुट देता है।

बधाई!
आपने देखा कि Vision API का उपयोग करना कितना आसान है, और यह किस प्रकार की उपयोगिताएँ बेहद कम लागत पर प्रदान करता है। आज कई कंपनियाँ और संस्थान इस API से लाभान्वित हो रहे हैं, चाहे वह व्यावसायिक उद्देश्य हों या शोध। इस ट्यूटोरियल में आपने Vision API की केवल झलक देखी, पर यह आपके लिए अपनी ऐप्लिकेशनों में Machine Learning APIs उपयोग करने का एक अच्छा शुरुआती बिंदु होना चाहिए।
Google द्वारा प्रदत्त Machine Learning APIs के पूरे सूट को अवश्य देखें, जिसे CloudML कहा जाता है।
आप इन आसानी से कॉल की जा सकने वाली APIs की मदद से कई शानदार ऐप्लिकेशन बना सकते हैं। Vision API और CloudML के लिंक बेहतरीन ट्यूटोरियल्स का संकलन देते हैं ताकि आप आसानी से इनके साथ प्रयोग कर सकें। शुभकामनाएँ!
यदि आप इमेज प्रोसेसिंग के बारे में और जानने में रुचि रखते हैं, तो DataCamp का Convolutional Neural Networks for Image Processing कोर्स लें।