Facebook
From Darry(G), 1 Month ago, written in Python.
Embed
Download Paste or View Raw
Hits: 156
  1. import cv2
  2. import numpy as np
  3.  
  4. # YOLO modelini yükleme
  5. net = cv2.dnn.readNet("yolov3.weights", "yolov3.cfg")
  6. classes = []
  7. with open("coco.names", "r") as f:
  8.     classes = [line.strip() for line in f.readlines()]
  9. layer_names = net.getLayerNames()
  10. output_layers = [layer_names[i[0] - 1] for i in net.getUnconnectedOutLayers()]
  11.  
  12. # Kamera yakalaması başlatılıyor
  13. kamera = cv2.VideoCapture(0)
  14.  
  15. # Tanımlanan nesnelerin sayısını ve isimlerini tutacak liste
  16. tanımlanan_nesneler = []
  17.  
  18. while True:
  19.     ret, kare = kamera.read()
  20.     kare = cv2.resize(kare, None, fx=0.4, fy=0.4)
  21.     height, width, channels = kare.shape
  22.  
  23.     # Nesne algılama işlemi
  24.     blob = cv2.dnn.blobFromImage(kare, 0.00392, (416, 416), (0, 0, 0), True, crop=False)
  25.     net.setInput(blob)
  26.     outs = net.forward(output_layers)
  27.  
  28.     # Tanımlanan nesnelerin koordinatlarını ve etiketlerini çizme
  29.     for out in outs:
  30.         for detection in out:
  31.             scores = detection[5:]
  32.             class_id = np.argmax(scores)
  33.             confidence = scores[class_id]
  34.             if confidence > 0.5:
  35.                 # Algılanan nesnenin etiketini alıyoruz
  36.                 label = str(classes[class_id])
  37.                
  38.                 # Eğer daha önce tanımlanmış bir nesne değilse ve listemizde yoksa, listeye ekliyoruz
  39.                 if label not in tanımlanan_nesneler:
  40.                     print(f"{label} algılandı.")
  41.                     tanımlanan_nesneler.append(label)
  42.  
  43.                 # Eğer 10 farklı nesneyi algıladıysak, döngüden çıkıyoruz
  44.                 if len(tanımlanan_nesneler) >= 10:
  45.                     break
  46.  
  47.     # Eğer 10 farklı nesneyi algıladıysak, döngüden çıkıyoruz
  48.     if len(tanımlanan_nesneler) >= 10:
  49.         break
  50.  
  51. # Kamera serbest bırakılıyor ve pencereler kapatılıyor
  52. kamera.release()
  53. cv2.destroyAllWindows()
  54.