分析Ultralytics YOLO11
はじめに
このガイドでは、折れ線グラフ、棒グラフ、円グラフという 3 種類の基本的なデータ可視化の包括的な概要を説明します。各セクションには、Python を使用してこれらのビジュアライゼーションを作成する方法について、ステップバイステップの手順とコード・スニペットが含まれています。
見るんだ: Ultralytics |折れ線グラフ、棒グラフ、面積グラフ、円グラフを使った分析グラフの作成方法
ビジュアル・サンプル
折れ線グラフ | バー・プロット | 円グラフ |
---|---|---|
グラフが重要な理由
- 折れ線グラフは、短期および長期の変化を追跡したり、同じ期間における複数のグループの変化を比較するのに理想的である。
- 一方、棒グラフは、異なるカテゴリー間の量を比較したり、カテゴリーとその数値の関係を示したりするのに適している。
- 最後に、円グラフはカテゴリー間の比率を示したり、全体の一部を示したりするのに効果的である。
アナリティクスの例
yolo solutions analytics show=True
# pass the source
yolo solutions analytics source="path/to/video/file.mp4"
# generate the pie chart
yolo solutions analytics analytics_type="pie" show=True
# generate the bar plots
yolo solutions analytics analytics_type="bar" show=True
# generate the area plots
yolo solutions analytics analytics_type="area" show=True
import cv2
from ultralytics import solutions
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
out = cv2.VideoWriter(
"ultralytics_analytics.avi",
cv2.VideoWriter_fourcc(*"MJPG"),
fps,
(1920, 1080), # This is fixed
)
# Init analytics
analytics = solutions.Analytics(
show=True, # Display the output
analytics_type="line", # Pass the analytics type, could be "pie", "bar" or "area".
model="yolo11n.pt", # Path to the YOLO11 model file
# classes=[0, 2], # If you want to count specific classes i.e person and car with COCO pretrained model.
)
# Process video
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if success:
frame_count += 1
im0 = analytics.process_data(im0, frame_count) # update analytics graph every frame
out.write(im0) # write the video file
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
議論 Analytics
以下はその表である。 Analytics
という議論がある:
名称 | タイプ | デフォルト | 説明 |
---|---|---|---|
analytics_type |
str |
line |
グラフの種類("折れ線"、"棒グラフ"、"面積グラフ"、"円グラフ" |
model |
str |
None |
Ultralytics YOLO モデルファイルへのパス |
line_width |
int |
2 |
バウンディングボックスの線の太さ。 |
show |
bool |
False |
ビデオストリームを表示するかどうかを制御するフラグ。 |
議論 model.track
議論 | タイプ | デフォルト | 説明 |
---|---|---|---|
source |
str |
None |
画像や動画のソースディレクトリを指定します。ファイルパスとURLをサポートします。 |
persist |
bool |
False |
フレーム間のオブジェクトの永続的なトラッキングを可能にし、ビデオシーケンス間のIDを維持します。 |
tracker |
str |
botsort.yaml |
使用するトラッキングアルゴリズムを指定する、 bytetrack.yaml または botsort.yaml . |
conf |
float |
0.3 |
検出の信頼しきい値を設定します。低い値ではより多くのオブジェクトを追跡できますが、誤検出を含む可能性があります。 |
iou |
float |
0.5 |
重複検出をフィルタリングするためのIoU(Intersection over Union)しきい値を設定します。 |
classes |
list |
None |
クラス・インデックスによって結果をフィルタリングする。例えば classes=[0, 2, 3] は指定されたクラスのみを追跡する。 |
verbose |
bool |
True |
トラッキング結果の表示をコントロールし、トラッキングされたオブジェクトのビジュアル出力を提供します。 |
結論
効果的なデータ分析には、さまざまな種類のビジュアライゼーションをいつ、どのように使用するかを理解することが重要です。折れ線グラフ、棒グラフ、円グラフは、データのストーリーをより明確かつ効果的に伝えるのに役立つ基本的なツールです。
よくあるご質問
Ultralytics YOLO11 アナリティクスを使って折れ線グラフを作成するには?
Ultralytics YOLO11 Analyticsを使用して折れ線グラフを作成するには、以下の手順に従ってください:
- YOLO11 モデルを読み込み、ビデオファイルを開きます。
- を初期化する。
Analytics
クラスで、タイプは "line "に設定されている。 - ビデオフレームを繰り返し、フレームごとのオブジェクト数などの関連データで折れ線グラフを更新する。
- 折れ線グラフを表示する出力ビデオを保存する。
例
import cv2
from ultralytics import solutions
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))
out = cv2.VideoWriter(
"ultralytics_analytics.avi",
cv2.VideoWriter_fourcc(*"MJPG"),
fps,
(1920, 1080), # This is fixed
)
analytics = solutions.Analytics(
analytics_type="line",
show=True,
)
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if success:
frame_count += 1
im0 = analytics.process_data(im0, frame_count) # update analytics graph every frame
out.write(im0) # write the video file
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
の設定の詳細については Analytics
クラスは Ultralytics YOLO11 📊を使った分析 セクションを参照されたい。
棒グラフの作成にUltralytics YOLO11 を使用する利点は何ですか?
棒グラフの作成にUltralytics YOLO11 を使うと、いくつかの利点がある:
- リアルタイムのデータ可視化:オブジェクト検出結果をバープロットにシームレスに統合し、ダイナミックに更新。
- 使いやすさ:シンプルなAPIと関数により、データの実装と可視化が簡単に行える。
- カスタマイズ:タイトル、ラベル、色など、お客様のご要望に合わせてカスタマイズできます。
- 効率性:大量のデータを効率的に処理し、ビデオ処理中にリアルタイムでプロットを更新。
棒グラフを作成するには、次の例を使用する:
import cv2
from ultralytics import solutions
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))
out = cv2.VideoWriter(
"ultralytics_analytics.avi",
cv2.VideoWriter_fourcc(*"MJPG"),
fps,
(1920, 1080), # This is fixed
)
analytics = solutions.Analytics(
analytics_type="bar",
show=True,
)
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if success:
frame_count += 1
im0 = analytics.process_data(im0, frame_count) # update analytics graph every frame
out.write(im0) # write the video file
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
詳しくは、ガイドの「バー・プロット」のセクションをご覧ください。
データ可視化プロジェクトで円グラフを作成するのにUltralytics YOLO11 を使用するのはなぜですか?
Ultralytics YOLO11 は円グラフの作成に最適である:
- 物体検出との統合:物体検出の結果を直接円グラフに統合し、即座に洞察を得ることができます。
- ユーザーフレンドリーなAPI:最小限のコードで簡単に設定、使用できます。
- カスタマイズ可能:色やラベルなど、さまざまなカスタマイズが可能。
- リアルタイム更新:ビデオ解析プロジェクトに最適なリアルタイムでのデータ処理と可視化。
簡単な例を挙げよう:
import cv2
from ultralytics import solutions
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))
out = cv2.VideoWriter(
"ultralytics_analytics.avi",
cv2.VideoWriter_fourcc(*"MJPG"),
fps,
(1920, 1080), # This is fixed
)
analytics = solutions.Analytics(
analytics_type="pie",
show=True,
)
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if success:
frame_count += 1
im0 = analytics.process_data(im0, frame_count) # update analytics graph every frame
out.write(im0) # write the video file
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
詳細については、ガイドの円グラフのセクションを参照してください。
Ultralytics YOLO11 を使ってオブジェクトを追跡し、ビジュアライゼーションを動的に更新することは可能か?
はい、Ultralytics YOLO11 、オブジェクトを追跡し、ビジュアライゼーションを動的に更新することができます。リアルタイムで複数のオブジェクトを追跡し、追跡されたオブジェクトのデータに基づいて折れ線グラフ、棒グラフ、円グラフのような様々なビジュアライゼーションを更新することができます。
折れ線グラフの追跡と更新の例:
import cv2
from ultralytics import solutions
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))
out = cv2.VideoWriter(
"ultralytics_analytics.avi",
cv2.VideoWriter_fourcc(*"MJPG"),
fps,
(1920, 1080), # This is fixed
)
analytics = solutions.Analytics(
analytics_type="line",
show=True,
)
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if success:
frame_count += 1
im0 = analytics.process_data(im0, frame_count) # update analytics graph every frame
out.write(im0) # write the video file
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
全機能については、トラッキングのセクションをご覧ください。
Ultralytics YOLO11 、OpenCVやその他のオブジェクト検出ソリューションと何が違うのか? TensorFlow?
Ultralytics YOLO11 は、OpenCVやTensorFlow のような他のオブジェクト検出ソリューションと比較して、複数の理由で際立っている:
- 最先端の精度:YOLO11 は、物体検出、セグメンテーション、分類タスクにおいて優れた精度を提供します。
- 使いやすさ:ユーザーフレンドリーなAPIは、大規模なコーディングなしで迅速な実装と統合を可能にします。
- リアルタイム性能:高速推論に最適化されており、リアルタイムアプリケーションに適しています。
- 多様なアプリケーション:マルチオブジェクトトラッキング、カスタムモデルのトレーニング、ONNX 、TensorRT 、CoreML のような異なるフォーマットへのエクスポートを含む様々なタスクをサポートしています。
- 包括的なドキュメント:豊富なドキュメントと ブログリソースで、ユーザーをあらゆるステップでガイドします。
より詳細な比較や使用例については、Ultralytics ブログをご覧ください。