Ana SayfaAI 101™AI Görsel Denetçi
Orta Seviye22 dk okumaAI 101™

AI Görsel Denetçi

Görsel verileri analiz eden, yorumlayan ve anlayan AI sistemleri oluşturun — basit görüntü açıklamalarından üretim kalitesinde denetim sistemlerine.

Giriş

Bilgisayarla görme, AI'ın en etkili uygulamalarından biridir. İmalatta kalite kontrolden tıbbi görüntülemeye kadar, AI görme sistemleri görüntüleri insan denetçileri aşan hız ve tutarlılıkla analiz edebilir.

Bu rehberde, görüntüleri açıklayabilen, nesneleri tespit edebilen, görselleri karşılaştırabilen ve otomatik kalite kontrolleri gerçekleştirebilen eksiksiz bir AI görsel denetçi oluşturacaksınız.

AI Görüntü İşleme Nasıl Çalışır

AI görme modelleri, görüntüleri çok aşamalı bir boru hattı üzerinden işler:

1

Görüntü Girişi

Görüntü yüklenir ve modelin işleyebileceği bir formata dönüştürülür (genellikle base64 kodlama veya URL).

2

Özellik Çıkarma

Model, düşük seviyeli özellikleri (kenarlar, şekiller, dokular) tanımlar ve bunları daha yüksek seviyeli kavramlara (yüzler, nesneler, sahneler) birleştirir.

3

Anlamsal Analiz

Model, nesnelerin ne olduğunu, ilişkilerini ve görüntünün genel bağlamını anlar.

4

Yapılandırılmış Çıktı

Analiz, doğal dil açıklamaları, JSON verileri veya sınıflandırma etiketleri olarak döndürülür.

💡 Mevcut Görme Modelleri

GPT-4o (OpenAI) ve Claude 3.5 (Anthropic), genel amaçlı görme görevleri için mevcut liderlerdir. Tıbbi görüntüleme veya endüstriyel denetim gibi özel görevler için, ince ayar yapılmış modeller genellikle genel modelleri geride bırakır.

Kurulum

Görüntülerle çalışmak ve OpenAI API için gerekli kütüphaneleri yükleyin:

bash
pip install openai pillow opencv-python numpy
python
import openai
import base64
import os
from dotenv import load_dotenv

load_dotenv()
client = openai.OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

def encode_image(image_path):
    """Convert an image file to base64 for the API."""
    with open(image_path, "rb") as f:
        return base64.b64encode(f.read()).decode("utf-8")

Görüntü Analizi

En basit görme görevi, AI'dan bir görüntüyü açıklamasını veya analiz etmesini istemektir:

python
def analyze_image(image_path, question="What do you see in this image?"):
    """Analyze an image using GPT-4 Vision."""
    base64_image = encode_image(image_path)
    
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[
            {
                "role": "user",
                "content": [
                    {"type": "text", "text": question},
                    {
                        "type": "image_url",
                        "image_url": {
                            "url": f"data:image/jpeg;base64,{base64_image}",
                            "detail": "high"
                        }
                    }
                ]
            }
        ],
        max_tokens=1000
    )
    return response.choices[0].message.content

# Usage
result = analyze_image("photo.jpg", "Describe this image in detail.")
print(result)

İki Görüntüyü Karşılaştırma

Görme modelleri, birden fazla görüntüyü karşılaştırabilir — kalite kontrol, önce/sonra analizi ve değişiklik tespiti için yararlıdır:

python
def compare_images(image_path_1, image_path_2, criteria):
    """Compare two images based on specific criteria."""
    img1 = encode_image(image_path_1)
    img2 = encode_image(image_path_2)
    
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[
            {
                "role": "user",
                "content": [
                    {"type": "text", "text": f"""Compare these two images.
Criteria: {criteria}
Provide a detailed comparison in JSON format:
{{"similarities": [...], "differences": [...], 
 "recommendation": "..."}}"""},
                    {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{img1}"}},
                    {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{img2}"}}
                ]
            }
        ],
        response_format={"type": "json_object"},
        max_tokens=1000
    )
    return response.choices[0].message.content

Nesne Tespiti

AI, bir görüntü içindeki tek tek nesneleri ayrıntılı açıklamalarla tanımlayabilir ve konumlandırabilir:

python
def detect_objects(image_path):
    """Detect and describe objects in an image."""
    base64_image = encode_image(image_path)
    
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[
            {
                "role": "user",
                "content": [
                    {"type": "text", "text": """List every object you can 
identify in this image. For each object provide:
- Name
- Approximate location (top-left, center, bottom-right, etc.)
- Color
- Size relative to the image (small, medium, large)
- Condition (if applicable)

Return as JSON: {"objects": [{"name": "", "location": "", 
"color": "", "size": "", "condition": ""}]}"""},
                    {
                        "type": "image_url",
                        "image_url": {"url": f"data:image/jpeg;base64,{base64_image}"}
                    }
                ]
            }
        ],
        response_format={"type": "json_object"},
        max_tokens=1500
    )
    return response.choices[0].message.content

Kalite Denetimi

Endüstriyel kalite denetimi, AI görmenin en değerli uygulamalarından biridir. İşte yeniden kullanılabilir bir kalite denetim sınıfı:

python
class QualityInspector:
    """AI-powered visual quality inspection system."""
    
    def __init__(self, reference_description=""):
        self.client = openai.OpenAI()
        self.reference = reference_description
        self.inspection_log = []
    
    def inspect(self, image_path, criteria=None):
        """Inspect a product image for quality issues."""
        base64_image = encode_image(image_path)
        
        prompt = f"""You are a quality control inspector.
Inspect this product image for defects or issues.

Reference standard: {self.reference}
{"Specific criteria: " + criteria if criteria else ""}

Report in JSON format:
{{"pass": true/false, 
 "confidence": 0.0-1.0,
 "defects": [{{"type": "", "severity": "low/medium/high", 
   "location": "", "description": ""}}],
 "overall_quality": "excellent/good/acceptable/poor/reject",
 "notes": ""}}"""
        
        response = self.client.chat.completions.create(
            model="gpt-4o",
            messages=[
                {"role": "user", "content": [
                    {"type": "text", "text": prompt},
                    {"type": "image_url", "image_url": {
                        "url": f"data:image/jpeg;base64,{base64_image}"
                    }}
                ]}
            ],
            response_format={"type": "json_object"}
        )
        
        result = response.choices[0].message.content
        self.inspection_log.append(result)
        return result

# Usage
inspector = QualityInspector(
    reference_description="Smooth surface, no scratches, uniform color"
)
result = inspector.inspect("product_photo.jpg")
print(result)

Doğruluğu Artırma

Kritik kalite denetimi için, promptunuzla birlikte hem iyi hem de kusurlu ürünlerin referans görüntülerini sağlayın. İnce kusurları yakalamak için görüntü URL'sinde "high" detay modunu kullanın. Önemli kararlar için görüntü başına birden fazla denetim çalıştırmayı ve konsensüs almayı düşünün.

Gerçek Zamanlı İşleme

Gözetim veya canlı denetim gibi gerçek zamanlı uygulamalar için, video karelerini düzenli aralıklarla işleyebilirsiniz:

python
import cv2
import time

def process_video_frames(video_source=0, interval=5):
    """Analyze video frames at regular intervals."""
    cap = cv2.VideoCapture(video_source)
    last_analysis = 0
    
    while cap.isOpened():
        ret, frame = cap.read()
        if not ret:
            break
        
        current_time = time.time()
        if current_time - last_analysis >= interval:
            # Save frame temporarily
            cv2.imwrite("temp_frame.jpg", frame)
            
            # Analyze with AI
            result = analyze_image(
                "temp_frame.jpg",
                "Describe what you see. Flag any safety concerns."
            )
            print(f"Analysis: {result}")
            last_analysis = current_time
        
        cv2.imshow("Vision Inspector", frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    
    cap.release()
    cv2.destroyAllWindows()

Özet

Eksiksiz bir AI görsel denetim sistemi oluşturdunuz. Önemli çıkarımlar:

  • Modern görme modelleri, görüntüleri olağanüstü doğrulukla analiz edebilir, karşılaştırabilir ve anlayabilir.
  • Nesne tespiti ve kalite denetimi, yüksek değerli gerçek dünya uygulamalarıdır.
  • Kalite açısından kritik sistemler için referans görüntüleri ve birden fazla denetim geçişi kullanın.
  • Gerçek zamanlı işleme, video karelerinin düzenli aralıklarla analiz edilmesiyle elde edilebilir.
Vionis Labs - Intelligent AI Solutions for Every Industry | Vionis Labs