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:
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).
Ö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.
Anlamsal Analiz
Model, nesnelerin ne olduğunu, ilişkilerini ve görüntünün genel bağlamını anlar.
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:
pip install openai pillow opencv-python numpyimport 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:
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:
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.contentNesne Tespiti
AI, bir görüntü içindeki tek tek nesneleri ayrıntılı açıklamalarla tanımlayabilir ve konumlandırabilir:
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.contentKalite Denetimi
Endüstriyel kalite denetimi, AI görmenin en değerli uygulamalarından biridir. İşte yeniden kullanılabilir bir kalite denetim sınıfı:
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:
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.