आप एक तस्वीर पर नज़र डालते हैं और तुरंत कुत्ते, कार या अपने सबसे अच्छे दोस्त के चेहरे को पहचान लेते हैं। आपका दिमाग़ यह काम बड़ी आसानी से करता है — लेकिन एक कंप्यूटर के लिए "देखना" बेहद जटिल काम है।
कंप्यूटर विज़न AI का वह क्षेत्र है जो मशीनों को दुनिया से मिलने वाली दृश्य जानकारी — इमेज, वीडियो और लाइव कैमरा फ़ीड — को समझने और व्याख्या करने की क्षमता देता है।
कंप्यूटर के लिए एक इमेज बस संख्याओं का एक ग्रिड है।
# Loading an image and viewing its pixel values
from PIL import Image
import numpy as np
img = Image.open("dog.jpg")
pixels = np.array(img)
print(f"Image shape: {pixels.shape}")
# Output example: (480, 640, 3) → 480 rows, 640 columns, 3 colour channels
print(f"Total pixel values: {pixels.size:,}")
# Output example: 921,600
# A single pixel in the top-left corner
print(f"Top-left pixel (R, G, B): {pixels[0, 0]}")
# Output example: [142, 178, 225] — a light blue sky pixel
कच्चे पिक्सेल मान अपने आप में अर्थहीन हैं। AI को फ़ीचर — सार्थक पैटर्न — पहचानने होते हैं:
इसे पढ़ने की तरह समझें: पहले आप अक्षर सीखते हैं (निम्न-स्तर), फिर शब्द (मध्य-स्तर), फिर वाक्य और अर्थ (उच्च-स्तर)।
मानव दृश्य कॉर्टेक्स भी इमेज को परतों में प्रोसेस करता है! आँखों के पास के न्यूरॉन साधारण किनारों और रंगों को पहचानते हैं, जबकि मस्तिष्क के गहरे क्षेत्र जटिल वस्तुओं और चेहरों को पहचानते हैं। CNN वास्तव में इसी जैविक संरचना से प्रेरित हैं।
कन्वोल्यूशनल न्यूरल नेटवर्क कंप्यूटर विज़न की रीढ़ है। आइए समझते हैं कि यह कैसे काम करता है — बिना किसी भारी गणित के।
कल्पना करें कि आप एक छोटा आवर्धक लेंस (मान लें, 3×3 पिक्सेल) एक इमेज पर रखते हैं और उसे हर स्थिति पर खिसकाते हैं। हर स्थिति पर, फ़िल्टर एक विशिष्ट पैटर्न खोजता है — एक लंबवत किनारा, एक क्षैतिज रेखा, एक वक्र।
हर फ़िल्टर एक नई इमेज बनाता है जिसे फ़ीचर मैप कहते हैं, जो दिखाता है कि वह पैटर्न कहाँ मिला।
| परत | यह क्या करती है | उदाहरण | |------|----------------|---------| | कन्वोल्यूशनल | फ़ीचर पहचानने के लिए इमेज पर फ़िल्टर खिसकाती है | एक जासूस हर इंच की जाँच आवर्धक लेंस से करता है | | एक्टिवेशन (ReLU) | केवल मज़बूत संकेत रखती है, शोर हटाती है | मुख्य सबूतों को हाइलाइट करना और विचलन को अनदेखा करना | | पूलिंग | महत्वपूर्ण जानकारी रखते हुए फ़ीचर मैप को छोटा करती है | एक अध्याय को बुलेट पॉइंट में सारांशित करना | | फ़ुली कनेक्टेड | अंतिम निर्णय लेने के लिए सभी फ़ीचर को जोड़ती है | जूरी विचार-विमर्श करके फ़ैसला सुनाती है |
# Building a simple CNN with TensorFlow/Keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
model = Sequential([
# First convolutional layer: 32 filters, 3x3 each
Conv2D(32, (3, 3), activation='relu', input_shape=(64, 64, 3)),
MaxPooling2D(pool_size=(2, 2)),
# Second convolutional layer: 64 filters
Conv2D(64, (3, 3), activation='relu'),
MaxPooling2D(pool_size=(2, 2)),
# Flatten and classify
Flatten(),
Dense(128, activation='relu'),
Dense(10, activation='softmax'), # 10 classes
])
model.summary()
आपको फ़िल्टर हाथ से डिज़ाइन करने की ज़रूरत नहीं! ट्रेनिंग के दौरान CNN खुद सीखता है कि कौन से फ़िल्टर सबसे उपयोगी हैं। शुरुआती परतें किनारे पहचानना सीख सकती हैं, जबकि गहरी परतें कान, आँखें या पूरे चेहरे पहचानना सीखती हैं — सब कुछ डेटा से स्वचालित रूप से।
प्रश्न: "इस इमेज में क्या है?"
मॉडल पूरी इमेज को एक लेबल देता है: "बिल्ली", "कार", "पिज़्ज़ा"।
यह वही है जो आपने AI Sprouts में सीखा था — मॉडल को एक इमेज दो, बदले में एक लेबल पाओ।
प्रश्न: "यहाँ कौन-कौन सी वस्तुएँ हैं, और वे कहाँ हैं?"
मॉडल हर वस्तु के चारों ओर बाउंडिंग बॉक्स बनाता है और उन्हें लेबल करता है। सेल्फ-ड्राइविंग कारें इसी का उपयोग पैदल चलने वालों, ट्रैफ़िक साइन और अन्य वाहनों को खोजने के लिए करती हैं।
प्रश्न: "कौन से पिक्सेल किस वस्तु से संबंधित हैं?"
मॉडल हर पिक्सेल को उसकी वस्तु श्रेणी से रंगता है। यह पिक्सेल-परफ़ेक्ट आउटलाइन देता है — जो मेडिकल इमेजिंग (ट्यूमर की सीमाएँ) और AR फ़िल्टर (आपके चेहरे को बैकग्राउंड से अलग करना) के लिए अत्यंत महत्वपूर्ण है।
# Using a pre-trained object detection model
# This uses YOLO (You Only Look Once) — one of the fastest detectors
# Pseudocode for clarity
def detect_objects(image_path):
"""Detect and label objects in an image."""
model = load_pretrained_model("yolov8")
image = load_image(image_path)
results = model.predict(image)
for detection in results:
print(f"Object: {detection.label}")
print(f" Confidence: {detection.confidence:.1%}")
print(f" Location: {detection.bounding_box}")
print()
# Example output:
# Object: person
# Confidence: 97.2%
# Location: (120, 50, 340, 480)
# Object: bicycle
# Confidence: 89.5%
# Location: (200, 300, 450, 520)
सेल्फ-ड्राइविंग कारों को रियल-टाइम में वस्तुओं का पता लगाना होता है — लगभग 30 फ़्रेम प्रति सेकंड। इसका मतलब है कि AI के पास हर फ़्रेम का विश्लेषण करने के लिए लगभग 33 मिलीसेकंड हैं। आपके अनुसार इंजीनियर सटीकता और गति के बीच संतुलन कैसे बनाते होंगे? क्या होगा अगर मॉडल 99.9% सटीक है लेकिन प्रतिदिन 10 लाख फ़्रेम प्रोसेस करता है?
YOLO (You Only Look Once) ऑब्जेक्ट डिटेक्शन मॉडल आधुनिक GPU पर प्रति सेकंड 45 से अधिक इमेज प्रोसेस कर सकता है। इसके निर्माता, Joseph Redmon, ने अंततः इस चिंता के कारण अपना शोध बंद कर दिया कि इस तकनीक का निगरानी और सैन्य अनुप्रयोगों के लिए कैसे दुरुपयोग हो सकता है।
कंप्यूटर विज़न के साथ प्रयोग करने के लिए आपको शुरू से मॉडल ट्रेन करने की ज़रूरत नहीं। ResNet, MobileNet, या EfficientNet जैसे प्री-ट्रेंड मॉडल पहले से लाखों इमेज से सीख चुके हैं।
# Using a pre-trained model to classify an image
from tensorflow.keras.applications import MobileNetV2
from tensorflow.keras.applications.mobilenet_v2 import (
preprocess_input, decode_predictions
)
from tensorflow.keras.preprocessing import image
import numpy as np
# Load pre-trained MobileNetV2 (trained on ImageNet — 1000 classes)
model = MobileNetV2(weights='imagenet')
# Load and preprocess an image
img = image.load_img("photo.jpg", target_size=(224, 224))
img_array = preprocess_input(
np.expand_dims(image.img_to_array(img), axis=0)
)
# Get predictions
predictions = model.predict(img_array)
top_3 = decode_predictions(predictions, top=3)[0]
print("Top 3 Predictions:")
for rank, (id, label, confidence) in enumerate(top_3, 1):
bar = "█" * int(confidence * 40)
print(f" {rank}. {label}: {confidence:.1%} {bar}")
# Example output:
# 1. golden_retriever: 92.3% █████████████████████████████████████
# 2. Labrador_retriever: 4.1% ██
# 3. cocker_spaniel: 1.8% █
MobileNetV2 को विशेष रूप से मोबाइल फ़ोन पर चलने के लिए डिज़ाइन किया गया है। इसमें केवल 34 लाख पैरामीटर हैं — ResNet-152 के 6 करोड़ की तुलना में — फिर भी यह प्रभावशाली सटीकता बनाए रखता है। यह "depthwise separable convolutions" नामक एक चतुर आर्किटेक्चर तकनीक से संभव हुआ है, जो गणना को कम करती है।
बड़ी शक्ति के साथ बड़ी ज़िम्मेदारी भी आती है:
तकनीक अपने आप में तटस्थ है — यह इस पर निर्भर करता है कि हम इसे कैसे उपयोग करते हैं।
आपने अब AI की तीन शक्तिशाली शाखाओं का अन्वेषण किया है: स्वास्थ्य सेवा अनुप्रयोग, नेचुरल लैंग्वेज प्रोसेसिंग, और कंप्यूटर विज़न। ये वो नींव हैं जिन पर असली AI इंजीनियर हर दिन काम करते हैं। आगे आने वाले पाठों में, हम AI और रचनात्मक कला में गहराई से जाएँगे — कैसे मशीनें संगीत, कला और कहानियाँ बनाती हैं!