コンテンツへスキップ

Ultralytics YOLOv8 🚀を使ったキュー管理

キュー・マネジメントとは何ですか?

待ち行列管理とは Ultralytics YOLOv8待ち行列管理とは、待ち時間を短縮し効率を高めるために、人や車両の列を整理・制御することです。小売店、銀行、空港、医療施設など様々な場面で、顧客満足度やシステムのパフォーマンスを向上させるために待ち行列を最適化することである。



見るんだ: How to Implement Queue Management with Ultralytics YOLOv8 | Airport and Metro Station

キュー・マネジメントの利点

  • 待ち時間の短縮キュー・マネジメント・システムは効率的にキューを整理し、顧客の待ち時間を最小限に抑えます。これにより、顧客は待ち時間を短縮し、より多くの時間を商品やサービスに費やすことができるため、満足度の向上につながります。
  • 効率の向上:待ち行列管理を導入することで、企業はリソースをより効果的に割り当てることができる。待ち行列のデータを分析し、スタッフの配置を最適化することで、企業は業務を合理化し、コストを削減し、全体的な生産性を向上させることができます。

実世界での応用

物流 小売
空港チケットカウンターでの待ち行列管理Ultralytics YOLOv8 群衆モニタリングUltralytics YOLOv8
空港チケットカウンターでの待ち行列管理Ultralytics YOLOv8 群衆における待ち行列の監視Ultralytics YOLOv8

YOLOv8 例を用いたキュー管理

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

論争 QueueManager

名称 タイプ デフォルト 説明
names dict model.names クラスIDとクラス名を対応付けた辞書。
reg_pts list of tuples [(20, 400), (1260, 400)] 計数領域ポリゴンを定義する点。デフォルトは定義済みの長方形。
line_thickness int 2 注釈線の太さ。
track_thickness int 2 トラックラインの太さ。
view_img bool False 画像フレームを表示するかどうか。
region_color tuple (255, 0, 255) 計数領域線(BGR)の色。
view_queue_counts bool True キューカウントを表示するかどうか。
draw_tracks bool False オブジェクトのトラックを描くかどうか。
count_txt_color tuple (255, 255, 255) カウントテキストの色(BGR)。
track_color tuple None 線路の色。もし Noneトラックごとに異なる色が使用される。
region_thickness int 5 計数領域の線の太さ。
fontsize float 0.7 テキスト注釈のフォントサイズ。

論争 model.track

名称 タイプ デフォルト 説明
source im0 None 画像またはビデオのソース・ディレクトリ
persist bool False フレーム間のトラックの持続
tracker str botsort.yaml トラッキングメソッド「bytetrack」または「botsort
conf float 0.3 信頼閾値
iou float 0.5 借用書のしきい値
classes list None つまり、class=0、またはclass=[0,2,3]。
verbose bool True 物体追跡結果を表示する

よくあるご質問

Ultralytics YOLOv8 をリアルタイムのキュー管理に使用するにはどうすればよいですか?

Ultralytics YOLOv8 をリアルタイムのキュー管理に使用するには、以下の手順に従います:

  1. でYOLOv8 モデルをロードする。 YOLO("yolov8n.pt").
  2. を使用してビデオフィードをキャプチャする。 cv2.VideoCapture.
  3. キュー管理のための関心領域(ROI)を定義する。
  4. フレームを処理してオブジェクトを検出し、キューを管理する。

最小限の例を挙げよう:

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を活用することで、キュー管理ソリューションの展開と管理のためのユーザーフレンドリーなプラットフォームを提供し、このプロセスを合理化することができます。

Ultralytics YOLOv8 をキュー管理に使用する主な利点は何ですか?

Ultralytics YOLOv8 を待ち行列管理に使用すると、いくつかの利点がある:

  • 待ち時間の激減待ち行列を効率的に整理することで、お客様の待ち時間を短縮し、満足度を高めます。
  • 効率を高める:キューデータを分析し、スタッフの配置とオペレーションを最適化することで、コストを削減します。
  • リアルタイム・アラート:長蛇の列に対するリアルタイム通知を提供し、迅速な介入を可能にします。
  • 拡張性:小売店、空港、ヘルスケアなど、さまざまな環境で簡単に拡張可能。

詳しくは、キュー管理ソリューションをご覧ください。

待ち行列管理にTensorFlow や Detectron2 といった競合他社ではなく、Ultralytics YOLOv8 を選ぶ理由は何ですか?

Ultralytics YOLOv8 は、キュー管理に関して、TensorFlow やDetectron2と比較していくつかの利点がある:

  • リアルタイム性能: YOLOv8 はリアルタイム検出能力で知られ、より速い処理速度を提供する。
  • 使いやすさ: Ultralytics は、トレーニングから配備まで、Ultralytics HUB を通じてユーザーフレンドリーな体験を提供します。
  • 事前学習済みモデル:様々な事前学習済みモデルを利用できるため、セットアップに必要な時間を最小限に抑えることができます。
  • コミュニティ・サポート:豊富なドキュメントと活発なコミュニティ・サポートにより、問題解決が容易になります。

を始める方法を学ぶ。 Ultralytics YOLO.

Ultralytics YOLOv8 空港や小売店など、複数のタイプのキューに対応できるか?

はい、Ultralytics YOLOv8 、空港や小売店など、さまざまなタイプのキューを管理できます。特定の地域や設定でQueueManagerを構成することで、YOLOv8 、異なるキューのレイアウトや密度に適応することができます。

空港の例:

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),
)

多様なアプリケーションの詳細については、実世界でのアプリケーションのセクションをご覧ください。

Ultralytics YOLOv8 の待ち行列管理における実際の応用例にはどのようなものがあるか?

Ultralytics YOLOv8 は、待ち行列管理のための様々な実世界のアプリケーションで使用されている:

  • 小売業待ち時間を短縮し、顧客満足度を向上させるためにレジの行列を監視する。
  • 空港チケットカウンターや保安検査場の行列を管理し、よりスムーズな旅客体験を実現。
  • ヘルスケア診療所や病院における患者の流れを最適化します。
  • 銀行銀行の待ち行列を効率的に管理することで、顧客サービスを向上。

詳しくは、実際の待ち行列管理に関するブログをご覧ください。



Created 2024-04-02, Updated 2024-07-14
Authors: RizwanMunawar (1), glenn-jocher (5), IvorZhu331 (1), Burhan-Q (1)

コメント