Ultralytics YOLOを使用した異なる領域でのオブジェクトのカウント 🚀
領域内のオブジェクトカウントとは何ですか?
Ultralytics YOLO11を使用した領域内のオブジェクトカウントには、高度なコンピュータビジョンを使用して、指定された領域内のオブジェクトの数を正確に決定することが含まれます。このアプローチは、プロセスの最適化、セキュリティの強化、およびさまざまなアプリケーションにおける効率の向上に役立ちます。
見る: Ultralytics YOLO11を使用した異なる領域でのオブジェクトのカウント | Ultralyticsソリューション 🚀
領域内のオブジェクトカウントの利点は?
- Precision(精度)とAccuracy(正確性): 高度なコンピュータビジョンを備えた地域でのオブジェクトカウントは、正確で精密なカウントを保証し、手動カウントによく伴うエラーを最小限に抑えます。
- 効率の向上: 自動化されたオブジェクトカウントは、運用効率を高め、リアルタイムの結果を提供し、さまざまなアプリケーション全体のプロセスを合理化します。
- 多様性と応用性: 領域内のオブジェクトをカウントできる多様性により、製造や監視から交通監視まで、さまざまな分野に適用可能となり、広範な有用性と有効性に貢献します。
現実世界のアプリケーション
小売 | マーケットストリート |
---|---|
![]() |
![]() |
Ultralytics YOLO11を使用した異なる地域での人数カウント | Ultralytics YOLO11を使用した異なる地域での群衆カウント |
使用例
Ultralytics YOLOを使用した領域カウント
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Pass region as list
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]
# Pass region as dictionary
region_points = {
"region-01": [(50, 50), (250, 50), (250, 250), (50, 250)],
"region-02": [(640, 640), (780, 640), (780, 720), (640, 720)],
}
# Video writer
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("region_counting.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize region counter object
regioncounter = solutions.RegionCounter(
show=True, # display the frame
region=region_points, # pass region points
model="yolo11n.pt", # model for counting in regions i.e yolo11s.pt
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = regioncounter(im0)
# print(results) # access the output
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
Ultralytics サンプルコード
Ultralyticsの領域カウントモジュールは、examples sectionで入手できます。この例を参照してコードをカスタマイズし、特定のユースケースに合わせて変更できます。
RegionCounter
引数
の表を以下に示します。 RegionCounter
引数:
引数 | 種類 | デフォルト | 説明 |
---|---|---|---|
model |
str |
None |
Ultralytics YOLOモデルファイルへのパス。 |
region |
list |
'[(20, 400), (1260, 400)]' |
カウント領域を定義する点のリスト。 |
The RegionCounter
ソリューションでは、オブジェクト追跡パラメータを使用できます。
引数 | 種類 | デフォルト | 説明 |
---|---|---|---|
tracker |
str |
'botsort.yaml' |
使用する追跡アルゴリズムを指定します。例: bytetrack.yaml または botsort.yaml . |
conf |
float |
0.3 |
検出の信頼度閾値を設定します。低い値を設定すると、より多くのオブジェクトを追跡できますが、誤検出が含まれる可能性があります。 |
iou |
float |
0.5 |
Intersection over Union (IoU) の閾値を設定して、重複する検出結果をフィルタリングします。 |
classes |
list |
None |
クラスインデックスで結果をフィルタリングします。例: classes=[0, 2, 3] 指定されたクラスのみを追跡します。 |
verbose |
bool |
True |
追跡結果の表示を制御し、追跡されたオブジェクトの視覚的な出力を提供します。 |
device |
str |
None |
推論に使用するデバイスを指定します(例: cpu , cuda:0 または 0 )。モデル実行のために、CPU、特定のGPU、またはその他の計算デバイスを選択できます。 |
さらに、以下の可視化設定がサポートされています。
引数 | 種類 | デフォルト | 説明 |
---|---|---|---|
show |
bool |
False |
もし True )は、アノテーションが付けられた画像またはビデオをウィンドウに表示します。開発またはテスト中に、視覚的なフィードバックを即座に得るのに役立ちます。 |
line_width |
None or int |
None |
バウンディングボックスの線の太さを指定します。もし None 場合、線の太さは画像サイズに基づいて自動的に調整されます。明確にするための視覚的なカスタマイズを提供します。 |
show_conf |
bool |
True |
ラベルとともに、検出ごとの信頼度スコアを表示します。各検出に対するモデルの確実性についての洞察が得られます。 |
show_labels |
bool |
True |
検出された各オブジェクトのラベルを視覚的な出力に表示します。検出されたオブジェクトをすぐに理解できます。 |
よくある質問
Ultralytics YOLO11を使用して、指定された領域内のオブジェクトをカウントするとはどういうことですか?
Ultralytics YOLO11を使用した特定領域におけるオブジェクトのカウントは、高度なコンピュータビジョンを用いて定義された領域内のオブジェクトを検出し、その数を集計するものです。この精密な手法は、製造、監視、交通監視など、さまざまなアプリケーションにおいて効率と精度を向上させます。
Ultralytics YOLO11 で領域ベースのオブジェクトカウントスクリプトを実行するにはどうすればよいですか?
Ultralytics YOLO11でオブジェクトカウントを実行するには、次の手順に従ってください。
-
Ultralyticsリポジトリをクローンして、ディレクトリに移動します。
git clone https://github.com/ultralytics/ultralytics cd ultralytics/examples/YOLOv8-Region-Counter
-
領域カウントスクリプトを実行:
python yolov8_region_counter.py --source "path/to/video.mp4" --save-img
その他のオプションについては、使用例セクションをご覧ください。
領域内のオブジェクトをカウントするためにUltralytics YOLO11を使用する理由は何ですか?
Ultralytics YOLO11 を使用して領域内のオブジェクトをカウントすると、いくつかの利点があります。
- リアルタイム処理: YOLO11のアーキテクチャにより、高速な推論が可能になり、即時のカウント結果を必要とするアプリケーションに最適です。
- 柔軟な領域定義: 特定の監視ニーズに合わせて、複数のカスタム領域をポリゴン、長方形、または線として定義できます。
- マルチクラスのサポート: 包括的な分析を提供するために、同じ領域内で異なるオブジェクトタイプを同時にカウントします。
- 統合機能: Ultralytics python APIまたはコマンドラインインターフェースを介して、既存のシステムと簡単に統合できます。
より深い利点については、利点セクションをご覧ください。
領域内のオブジェクトをカウントする現実世界の応用例は何ですか?
Ultralytics YOLO11を使用したオブジェクトのカウントは、多くの現実世界のシナリオに適用できます。
- 小売分析: 店舗のさまざまなセクションの顧客数をカウントして、レイアウトと人員配置を最適化します。
- 交通管理: 特定の道路セグメントまたは交差点での車両の流れを監視します。
- 製造: さまざまな生産ゾーンを移動する製品を追跡します。
- 倉庫業務: 指定された保管エリアにある在庫品をカウントします。
- 公共の安全: イベント中の特定のゾーンの群集密度を監視します。
より多くの例は、実際のアプリケーションセクションと、ゾーンベースの監視機能を強化するTrackZoneソリューションでご覧ください。