Ultralytics Python パッケージを使って、コンピュータビジョンアプリケーションのデータを分かりやすいグラフに変換し、より良い洞察を得る方法を学びます。
Ultralytics Python パッケージを使って、コンピュータビジョンアプリケーションのデータを分かりやすいグラフに変換し、より良い洞察を得る方法を学びます。
空港ターミナルや駅、ショッピングモールなど、毎分膨大な量のデータが生成されています。 AIの利用が広がるにつれて、これらのデータの多くが分析され、細分化されるようになりました。 しかし、これらのAIモデルからの結果は、パターンを特定したり、傾向を一目で理解したりすることを困難にする場合があります。 そこで役立つのがデータ視覚化です。データ視覚化は、複雑な出力を明確で理解しやすい洞察に変えます。
特にコンピュータ・ビジョンのアプリケーションに関してはそうだ。コンピュータ・ビジョンは 人工知能(AI)の一分野であり、機械が画像や動画など、周囲の世界から得られる視覚情報を解釈・理解するのを助ける。ビジョンAIモデルは Ultralytics YOLO11のようなビジョンAIモデルは、そのような視覚データを分析して情報を得るのに役立ちますが、データの視覚化は、その情報を理解しやすい形式にするのに役立ちます。
簡単に言うと、データ視覚化は、意味のある分析グラフを使用することで、生データと実際の理解との間のギャップを埋めます。今日のデータ駆動型の世界では、これは非常に重要です。なぜなら、機械がタスクを実行するだけでは十分ではなく、ストーリーを語る必要があるからです。
データ・ビジュアライゼーションは、2030年までに183億6000万ドルに達すると言われている。前回は、コンピュータ・ビジョンがどのように価値あるビジネス・インサイトを提供できるかを探りました。今日は、さらに一歩進んで、Ultralytics パッケージを使って、コンピュータ・ビジョン・アプリケーションのための明確で洞察に満ちた分析グラフを作成する方法を説明します。さっそく始めましょう!

コンピュータビジョンアプリケーションにおけるデータ可視化とは、物体検出やトラッキングなどのコンピュータビジョンタスクの結果を、理解しやすいグラフやダッシュボードに変換することです。これらの視覚化は、特に大量のビデオ映像を扱う場合に、パターンや傾向を特定するのに役立ちます。
例えば、何時間もの監視ビデオを手動で確認する代わりに、時間経過とともに検出された車や人の数を表示する単純な折れ線グラフを使用することで、ピーク時や異常に静かな時間帯をすばやく特定できます。
データ可視化が役立つ主な理由をいくつかご紹介します。
さまざまな種類の分析グラフを使用すると、コンピュータビジョンの結果を明確で理解しやすいビジュアルに変換できます。たとえば、監視映像内の人や車両を検出するコンピュータビジョンアプリケーションに取り組んでいるとします。この場合、折れ線グラフは、1日を通して歩行者の交通量のピークを追跡するなど、検出数の時間的変化を示すのに最適です。
同様に、棒グラフは、ビデオに表示される車、自転車、歩行者の数など、検出されたさまざまなオブジェクトタイプの数を比較する場合に役立ちます。一方、円グラフは、各オブジェクトタイプが検出全体の何パーセントを占めるかを示します。各グラフには独自の用途があり、複雑なコンピュータビジョンデータを解釈および共有しやすくするのに役立ちます。

データ可視化とは何か、なぜ様々なタイプの分析グラフが重要なのかを探ったところで、Ultralytics Analyticsソリューションを使ってコンピュータビジョンモデルの予測結果を可視化する方法を詳しく見ていきましょう。ステップバイステップのプロセスを説明する前に、Ultralytics パッケージとYOLO11ようなモデルをトレーニングして使用するためのツールとセットアップオプションを見てみましょう。
Ultralytics Python パッケージは、モデルのトレーニング、オブジェクトのdetect 、予測の実行、結果の視覚化を簡単に行うことができます。使い始めるには、コーディング環境が必要です。ここでは3つの簡単なオプションを紹介します:
これらのツールはすぐに使い始めるのに最適ですが、ユーザーはUltralytics Visual Studio Code(VS Code)のような統合開発環境(IDE)に統合したり、本番パイプラインに統合することもできます。詳しいオプションについては、Ultralytics 公式ドキュメントをご覧ください。
好みの環境を選択したら、次のステップは、予測を実行して結果を視覚化するためのセットアップです。最も使い慣れている環境に応じて、上記のいずれかの環境を使用できます。
Google Colabで作業する場合、デフォルトではCPU 使用するため、パフォーマンスが低下する可能性があることを覚えておいてください。スピードアップするには、"Runtime "メニューから "Change runtime type "を選択し、ハードウェアアクセラレータをGPU (理想的にはT4)に設定してGPU ください。
環境を整えるには、以下のコマンドを使ってUltralytics Python パッケージをインストールする必要がある。ColabやJupyterのようなノートブックベースのツールでは、コマンドの前に感嘆符(!)
pip install ultralytics次に、作業用の動画が必要だ。Pexelsのような無料のストックサイトから簡単にダウンロードできる。YOLO11 detectできるオブジェクトが含まれているビデオを選ぶようにしてください。このモデルはCOCO データセットで事前学習されているので、人、車、自転車などの一般的な物体を認識できる。
このチュートリアルでは、混雑した空港ターミナルでの手荷物処理のビデオを使用します。同じビデオを使用することも、プロジェクトに合った別のビデオを選択することもできます。

次に、必要なライブラリをインポートし、入力ビデオをロードできます。
まずOpenCV (cv2)をインポートします。OpenCV コンピュータ・ビジョンで画像やビデオを扱うために広く使われているライブラリです。また、Ultralytics ライブラリもインポートします。これは、オブジェクト検出を実行し、ビデオから分析を生成するのに役立ちます。
次に、パスを指定してビデオファイルを開いてみます。「path/to/video.mp4」を、ダウンロードしたビデオファイルの実際の場所に置き換えてください。
また、以下のコードスニペットには、ビデオが正しくロードされることを確認するための簡単なチェックが含まれています。パスが間違っているか、ファイルが破損している場合、プログラムは停止し、「ビデオファイルの読み取りエラー」というエラーメッセージが表示されます。
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"次に、出力を保存するためのビデオライターを設定します。分析を実行すると、このコードの部分は、元のビデオの各フレームから生成された更新されたグラフを記録する新しいビデオファイルを作成します。
以下のコードスニペットでは、まず入力ビデオから、幅、高さ、フレーム/秒(fps)などの主要なプロパティを抽出します。これらの値はビデオから直接取得され、出力の書き込みに適した形式にするために整数に変換されます。
次に、cv2.VideoWriter関数を使用して、「analytics_output.avi」という名前の新しいビデオファイルを作成します(必要に応じて名前を変更できます)。ビデオは、一般的なビデオ圧縮方法であるMJPG形式で保存されます。出力解像度は、元のビデオのサイズに関係なく、1280×720ピクセルに設定されます。
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(
"analytics_output.avi",
cv2.VideoWriter_fourcc(*"MJPG"),
fps,
(1280, 720),
)次に、動画からグラフを生成するために、Ultralytics Analyticsソリューションを設定します。折れ線グラフ、円グラフ、エリアグラフ、棒グラフなど、データの表示方法と、使用するYOLO モデルを選択できます。この例では、軽量の「yolo11n.pt」モデルを使用し、結果を面積グラフで表示します。
analytics = solutions.Analytics(
show=True,
analytics_type="area",
model="yolo11n.pt",
)コードの最後の部分では、ビデオを1フレームずつ処理するループを実行します。各フレームは分析ツールに渡され、グラフがリアルタイムで更新されます。更新されたグラフは、出力ビデオに書き込まれます。フレームを読み取れない場合、ループは停止します。すべてのフレームが処理されると、ビデオは保存され、開いているウィンドウはすべて閉じられます。
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if success:
frame_count += 1
results = analytics(im0, frame_count)
out.write(results.plot_im)
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()最後に、すべてをまとめてみよう。1つはYOLO11 オブジェクト検出結果をバウンディングボックスとラベルで表示したもの、もう1つはリアルタイム分析グラフを表示したものだ。
これを行うために、2つのVideoWriterインスタンスを設定します。1つは予測ビデオを保存するため、もう1つは分析用です。このバージョンのコードには、オブジェクト追跡とグラフ生成の両方が含まれているため、視覚的な洞察とともに検出結果を確認できます。
予測と分析の両方の出力例を含む包括的なコードを以下に示します。
import cv2
from ultralytics import YOLO, solutions
# Load model and video
model = YOLO('yolo11n.pt')
cap = cv2.VideoCapture('path/to/video.mp4')
assert cap.isOpened(), "Error opening video"
# Get properties
w, h = int(cap.get(3)), int(cap.get(4))
fps = cap.get(5)
analytics_res = (1280, 720)
# Writers for prediction and analytics videos
out_pred = cv2.VideoWriter('output_predictions.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, (w, h))
out_ana = cv2.VideoWriter('output_analytics.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, analytics_res)
# Analytics setup
analytics = solutions.Analytics(show=True, analytics_type="area", model='yolo11n.pt')
# Process frames
frame_count = 0
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
frame_count += 1
pred_frame = model.track(frame, persist=True)[0].plot()
out_pred.write(pred_frame)
resized = cv2.resize(pred_frame, analytics_res)
out_ana.write(analytics(resized, frame_count).plot_im)
cap.release(), out_pred.release(), out_ana.release(), cv2.destroyAllWindows()上記のコードが正常に実行されると、2つの出力ビデオが生成されます。「output_predictions.avi」ファイルには、バウンディングボックスとラベルが付いた物体検出の結果が表示され、「output_analytics.avi」には、検出に基づいたリアルタイム分析グラフが表示されます。

これは、予測に基づいた分析出力のフレームです。エリアチャートを使用すると、268フレーム付近の急上昇など、時間経過に伴うスーツケース数の変動といった洞察が得られ、ビデオのその部分におけるスーツケースの動きや活動を示唆します。

以下に、データ可視化が大きな影響を与える、現実世界のコンピュータビジョンアプリケーションの例をいくつか紹介します。
Ultralytics パッケージを使用すると、ビデオ映像を鮮明で洞察力のあるグラフに簡単に変換することができます。何時間ものビデオを手作業で確認する代わりに、主要なパターンや傾向を強調する視覚的なサマリーを生成できるため、迅速な対応が容易になります。病院でも、小売店でも、製造施設でも、これらのグラフは複雑なAI出力を、誰もが理解し利用できる洞察に変えます。
AI についてもっと知りたいですか?GitHub リポジトリを探索し、コミュニティとつながり、ライセンスオプションをチェックして、コンピュータビジョンプロジェクトをすぐに始めましょう。当社のソリューションページで、製造業における AIや物流業界におけるコンピュータビジョンなどのイノベーションについて詳しくご覧ください。