← Projelere dön

Görüntü İşleme ile XOX Oynayabilen Endüstriyel Robot

Rol
Yazılım birimi
Kurum
Lisans bitirme projesi
Dönem
2021-2022
Ekip
4 kişi
PythonGörüntü işlemeMinimaxQt Creator
Robot, görüntü işlemeyle okuduğu tahta durumuna göre hamlesini yapıyor
Döngünün tamamı hareket halinde: kamera okuması, tahta durumu, hamle kararı ve robot kolun icrası
Görüntü işleme çıktısı: kameradan okunan tahta matrisi ve robot hamle kararı

Yaptığım iş

  • Kamera görüntüsünden tahta durumunu matrise çeviren görüntü işleme hattı: Python
  • Minimax ağacı tabanlı oyun çözme algoritmasının tasarımı ve kodlanması
  • Operatör arayüzü: önce Kodular Creator ile prototip, sonra Qt Creator ile yeniden yazım
  • Robottan gelen ham verinin kullanıcının anlayacağı dile çevrilmesi
PythonGörüntü işlemeMinimax Qt CreatorAndroidEndüstriyel robot

Bugün YOLO ile yaptığım işin ilk hâli bu projeydi: kameradan gelen görüntüyü makinenin karar verebileceği bir veri yapısına çevirmek. Derin öğrenme yerine klasik görüntü işleme kullanıldı, ama problem aynıydı: görüntüyü aksiyona çevirmek.

def tahta_matrisi(kare):
    """Kameradan tahta durumu: 3x3 matris (-1 bos, 0 O, 1 X)."""
    gri = cv2.cvtColor(kare, cv2.COLOR_BGR2GRAY)
    esik = cv2.adaptiveThreshold(gri, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C,
                                 cv2.THRESH_BINARY_INV, 31, 7)
    durum = [[-1] * 3 for _ in range(3)]
    for satir in range(3):
        for sutun in range(3):
            hucre = hucre_kes(esik, satir, sutun)   # perspektiften duzeltilmis
            durum[satir][sutun] = sinifla(hucre)    # kontur sayisi + doluluk
    return durum
Sadeleştirilmiş temsili kod: kameradan tahta durumunun okunması