NextVision / next_vision.py
NextGenC's picture
Upload 2 files
5a25efb verified
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ı.")