─░├ž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.

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(
    classes_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(
    classes_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
classes_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


Created 2024-04-02, Updated 2024-06-10
Authors: glenn-jocher (4), IvorZhu331 (1), Burhan-Q (1), RizwanMunawar (1)

Yorumlar