İçeriğe geç

Ultralytics YOLOv8 kullanarak Kuyruk Yönetimi 🚀

Kuyruk Yönetimi Nedir?

Kuyruk yönetimi kullanarak Ultralytics YOLOv8 bekleme sürelerini azaltmak ve verimliliği artırmak için insan veya araç kuyruklarını organize ve kontrol etmeyi içerir. Perakende, bankalar, havaalanları ve sağlık tesisleri gibi çeşitli ortamlarda müşteri memnuniyetini ve sistem performansını artırmak için kuyrukları optimize etmekle ilgilidir.



İzle: Ultralytics YOLOv8 | Havaalanı ve Metro İstasyonu ile Kuyruk Yönetimi Nasıl Uygulanır?

Kuyruk Yönetiminin Avantajları?

  • Azaltılmış Bekleme Süreleri: Kuyruk yönetim sistemleri kuyrukları verimli bir şekilde düzenleyerek müşterilerin bekleme sürelerini en aza indirir. Müşteriler beklemek için daha az, ürün veya hizmetlerle ilgilenmek için daha fazla zaman harcadıklarından, bu durum memnuniyet düzeylerinin artmasına yol açar.
  • Artan Verimlilik: Sıra yönetiminin uygulanması, işletmelerin kaynakları daha etkili bir şekilde tahsis etmesine olanak tanır. Sıra verilerini analiz ederek ve personel dağıtımını optimize ederek işletmeler operasyonları düzene sokabilir, maliyetleri azaltabilir ve genel verimliliği artırabilir.

Gerçek Dünya Uygulamaları

Lojistik Perakende
Havaalanı bilet gişesinde kuyruk yönetimi Ultralytics YOLOv8 Kalabalık içinde kuyruk izleme Ultralytics YOLOv8
Havaalanı bilet gişesinde kuyruk yönetimi Kullanma Ultralytics YOLOv8 Kalabalıkta kuyruk izleme Ultralytics YOLOv8

YOLOv8 Örneğini Kullanarak Kuyruk Yönetimi

import cv2

from ultralytics import YOLO, solutions

model = YOLO("yolov8n.pt")
cap = cv2.VideoCapture("path/to/video/file.mp4")

assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

video_writer = cv2.VideoWriter("queue_management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

queue_region = [(20, 400), (1080, 404), (1080, 360), (20, 360)]

queue = solutions.QueueManager(
    names=model.names,
    reg_pts=queue_region,
    line_thickness=3,
    fontsize=1.0,
    region_color=(255, 144, 31),
)

while cap.isOpened():
    success, im0 = cap.read()

    if success:
        tracks = model.track(im0, show=False, persist=True, verbose=False)
        out = queue.process_queue(im0, tracks)

        video_writer.write(im0)
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
        continue

    print("Video frame is empty or video processing has been successfully completed.")
    break

cap.release()
cv2.destroyAllWindows()
import cv2

from ultralytics import YOLO, solutions

model = YOLO("yolov8n.pt")
cap = cv2.VideoCapture("path/to/video/file.mp4")

assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

video_writer = cv2.VideoWriter("queue_management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

queue_region = [(20, 400), (1080, 404), (1080, 360), (20, 360)]

queue = solutions.QueueManager(
    names=model.names,
    reg_pts=queue_region,
    line_thickness=3,
    fontsize=1.0,
    region_color=(255, 144, 31),
)

while cap.isOpened():
    success, im0 = cap.read()

    if success:
        tracks = model.track(im0, show=False, persist=True, verbose=False, classes=0)  # Only person class
        out = queue.process_queue(im0, tracks)

        video_writer.write(im0)
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
        continue

    print("Video frame is empty or video processing has been successfully completed.")
    break

cap.release()
cv2.destroyAllWindows()

Argümanlar QueueManager

İsim Tip Varsayılan Açıklama
names dict model.names Sınıf kimliklerini sınıf adlarıyla eşleyen bir sözlük.
reg_pts list of tuples [(20, 400), (1260, 400)] Sayım bölgesi çokgenini tanımlayan noktalar. Varsayılan olarak önceden tanımlanmış bir dikdörtgendir.
line_thickness int 2 Ek açıklama çizgilerinin kalınlığı.
track_thickness int 2 Ray çizgilerinin kalınlığı.
view_img bool False Görüntü çerçevelerinin görüntülenip görüntülenmeyeceği.
region_color tuple (255, 0, 255) Sayım bölgesi çizgilerinin rengi (BGR).
view_queue_counts bool True Kuyruk sayılarının görüntülenip görüntülenmeyeceği.
draw_tracks bool False Nesnelerin izlerinin çizilip çizilmeyeceği.
count_txt_color tuple (255, 255, 255) Sayım metninin rengi (BGR).
track_color tuple None Rayların rengi. Eğer Nonefarklı pistler için farklı renkler kullanılacaktır.
region_thickness int 5 Sayım bölgesi çizgilerinin kalınlığı.
fontsize float 0.7 Metin ek açıklamaları için yazı tipi boyutu.

Argümanlar model.track

İsim Tip Varsayılan Açıklama
source im0 None resimler veya videolar için kaynak dizin
persist bool False kareler arasında kalıcı izler
tracker str botsort.yaml İzleme yöntemi 'bytetrack' veya 'botsort'
conf float 0.3 Güven Eşiği
iou float 0.5 IOU Eşiği
classes list None sonuçları sınıfa göre filtreleyin, yani classes=0 veya classes=[0,2,3]
verbose bool True Nesne izleme sonuçlarını görüntüleme

SSS

Gerçek zamanlı kuyruk yönetimi için Ultralytics YOLOv8 adresini nasıl kullanabilirim?

Gerçek zamanlı kuyruk yönetimi için Ultralytics YOLOv8 adresini kullanmak için aşağıdaki adımları takip edebilirsiniz:

  1. YOLOv8 modelini şu şekilde yükleyin YOLO("yolov8n.pt").
  2. kullanarak video akışını yakalayın cv2.VideoCapture.
  3. Kuyruk yönetimi için ilgi alanını (ROI) tanımlayın.
  4. Nesneleri algılamak ve kuyrukları yönetmek için çerçeveleri işleyin.

İşte minimal bir örnek:

import cv2

from ultralytics import YOLO, solutions

model = YOLO("yolov8n.pt")
cap = cv2.VideoCapture("path/to/video.mp4")
queue_region = [(20, 400), (1080, 404), (1080, 360), (20, 360)]

queue = solutions.QueueManager(
    names=model.names,
    reg_pts=queue_region,
    line_thickness=3,
    fontsize=1.0,
    region_color=(255, 144, 31),
)

while cap.isOpened():
    success, im0 = cap.read()
    if success:
        tracks = model.track(im0, show=False, persist=True, verbose=False)
        out = queue.process_queue(im0, tracks)
        cv2.imshow("Queue Management", im0)
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break

cap.release()
cv2.destroyAllWindows()

Ultralytics HUB'dan yararlanmak, kuyruk yönetimi çözümünüzü dağıtmak ve yönetmek için kullanıcı dostu bir platform sağlayarak bu süreci kolaylaştırabilir.

Sıra yönetimi için Ultralytics YOLOv8 adresini kullanmanın temel avantajları nelerdir?

Sıra yönetimi için Ultralytics YOLOv8 adresini kullanmak çeşitli avantajlar sunar:

  • Bekleme Sürelerini Düşürür: Kuyrukları verimli bir şekilde düzenleyerek müşteri bekleme sürelerini azaltır ve memnuniyeti artırır.
  • Verimliliği Artırmak: Personel dağıtımını ve operasyonları optimize etmek için kuyruk verilerini analiz eder ve böylece maliyetleri azaltır.
  • Gerçek Zamanlı Uyarılar: Uzun kuyruklar için gerçek zamanlı bildirimler sağlayarak hızlı müdahaleye olanak tanır.
  • Ölçeklenebilirlik: Perakende, havaalanları ve sağlık hizmetleri gibi farklı ortamlarda kolayca ölçeklenebilir.

Daha fazla ayrıntı için Kuyruk Yönetimi çözümlerimizi keşfedin.

Sıra yönetimi için neden TensorFlow veya Detectron2 gibi rakipler yerine Ultralytics YOLOv8 adresini seçmeliyim?

Ultralytics YOLOv8 kuyruk yönetimi için TensorFlow ve Detectron2'ye göre çeşitli avantajlara sahiptir:

  • Gerçek Zamanlı Performans: YOLOv8 , daha yüksek işlem hızları sunan gerçek zamanlı algılama yetenekleriyle bilinir.
  • Kullanım Kolaylığı: Ultralytics , Ultralytics HUB aracılığıyla eğitimden dağıtıma kadar kullanıcı dostu bir deneyim sunar.
  • Önceden Eğitilmiş Modeller: Önceden eğitilmiş bir dizi modele erişim, kurulum için gereken süreyi en aza indirir.
  • Topluluk Desteği: Kapsamlı dokümantasyon ve aktif topluluk desteği sorun çözmeyi kolaylaştırır.

Nasıl başlayacağınızı öğrenin Ultralytics YOLO.

Ultralytics YOLOv8 , havaalanları ve perakende gibi birden fazla kuyruk türünü idare edebilir mi?

Evet, Ultralytics YOLOv8 havaalanları ve perakende ortamları da dahil olmak üzere çeşitli kuyruk türlerini yönetebilir. QueueManager'ı belirli bölgeler ve ayarlarla yapılandırarak YOLOv8 farklı kuyruk düzenlerine ve yoğunluklarına uyum sağlayabilir.

Havaalanları için örnek:

queue_region_airport = [(50, 600), (1200, 600), (1200, 550), (50, 550)]
queue_airport = solutions.QueueManager(
    names=model.names,
    reg_pts=queue_region_airport,
    line_thickness=3,
    fontsize=1.0,
    region_color=(0, 255, 0),
)

Çeşitli uygulamalar hakkında daha fazla bilgi için Gerçek Dünya Uygulamaları bölümümüze göz atın.

Kuyruk yönetiminde Ultralytics YOLOv8 adresinin bazı gerçek dünya uygulamaları nelerdir?

Ultralytics YOLOv8 kuyruk yönetimi için çeşitli gerçek dünya uygulamalarında kullanılır:

  • Perakende: Bekleme sürelerini azaltmak ve müşteri memnuniyetini artırmak için kasa sıralarını izler.
  • Havaalanları: Daha sorunsuz bir yolcu deneyimi için bilet gişelerindeki ve güvenlik kontrol noktalarındaki kuyrukları yönetir.
  • Sağlık Hizmetleri: Kliniklerde ve hastanelerde hasta akışını optimize eder.
  • Bankalar: Bankalarda kuyrukları verimli bir şekilde yöneterek müşteri hizmetlerini geliştirir.

Daha fazla bilgi edinmek için gerçek dünya kuyruk yönetimi hakkındaki blogumuza göz atın.



Oluşturma 2024-04-02, Güncelleme 2024-07-14
Yazarlar: RizwanMunawar (1), glenn-jocher (5), IvorZhu331 (1), Burhan-Q (1)

Yorumlar