import cv2 import torch from ultralytics import YOLO # CUDA kullanılabilirliğini kontrol et device = "cuda" if torch.cuda.is_available() else "cpu" print(f"Çalıştırılan cihaz: {device}") # YOLOv8x modelini yükle model = YOLO('yolov8x.pt') # Bilgisayar kamerasını başlat cap = cv2.VideoCapture(0) if not cap.isOpened(): print("Kamera açılamadı. Lütfen kameranın bağlı olduğundan emin olun.") exit() print("Anlık nesne tespiti başlatıldı. Kamerayı kapatmak için 'q' tuşuna basın.") try: while True: ret, frame = cap.read() if not ret: print("Kamera akışında hata oluştu.") break # Model ile nesne tespiti yap results = model.predict(frame, device=device, conf=0.5, show=False) # Tespit edilen nesneleri terminale yazdır ve görüntü üzerinde göster detected_objects = [] # Tespit edilen nesneleri saklamak için liste for result in results: for box in result.boxes: label = model.names[int(box.cls)] # Etiket adı confidence = float(box.conf) # Güven skoru float'a dönüştürülüyor detected_objects.append((label, confidence)) # Kutu bilgilerini al ve görüntü üzerine çiz x1, y1, x2, y2 = map(int, box.xyxy[0]) # Koordinatları int'e dönüştür cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 255, 0), 2) cv2.putText(frame, f"{label} {confidence:.2f}", (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2) if detected_objects: print("Tespit edilen nesneler:") for obj in detected_objects: print(f"- Nesne: {obj[0]}, Skor: {obj[1]:.2f}") else: print("Nesne tespit edilmedi.") # Görüntüyü göster cv2.imshow("Next Vision", frame) # 'q' tuşuna basıldığında döngüden çık if cv2.waitKey(1) & 0xFF == ord('q'): print("Kapatılıyor...") break except KeyboardInterrupt: print("Kullanıcı tarafından durduruldu.") finally: # Kaynakları serbest bırak cap.release() cv2.destroyAllWindows() print("Program sonlandırıldı.")