Ultralytics YOLO11を使ったオブジェクトの切り抜き
オブジェクトの切り抜きとは?
Ultralytics YOLO11を使ったオブジェクトの切り出しでは、画像やビデオから検出された特定のオブジェクトを分離して抽出します。YOLO11のモデル機能を利用することで、物体を正確に識別・特定し、さらなる分析や操作のための正確な切り出しが可能になります。
見るんだ: オブジェクトの切り抜きUltralytics YOLO
オブジェクトクロッピングの利点
- フォーカス分析:YOLO11では、ターゲットを絞ったオブジェクトの切り出しが可能なため、シーン内の個々のアイテムの詳細な検査や処理ができます。
- データ量の削減:関連性のあるオブジェクトのみを抽出することで、オブジェクトの切り出しはデータサイズを最小化するのに役立ち、保存、送信、またはその後の計算タスクを効率化する。
- 精度の向上:YOLO11のオブジェクト検出 精度は、切り取られたオブジェクトの空間的関係を維持し、詳細な分析のための視覚情報の完全性を保持します。
ビジュアル
空港の手荷物 |
---|
Ultralytics YOLO11 を使用した空港のベルトコンベアでのスーツケースのクロッピング |
YOLO11を使ったオブジェクトの切り抜き 例
import os
import cv2
from ultralytics import YOLO
from ultralytics.utils.plotting import Annotator, colors
model = YOLO("yolo11n.pt")
names = model.names
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))
crop_dir_name = "ultralytics_crop"
if not os.path.exists(crop_dir_name):
os.mkdir(crop_dir_name)
# Video writer
video_writer = cv2.VideoWriter("object_cropping_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
idx = 0
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
results = model.predict(im0, show=False)
boxes = results[0].boxes.xyxy.cpu().tolist()
clss = results[0].boxes.cls.cpu().tolist()
annotator = Annotator(im0, line_width=2, example=names)
if boxes is not None:
for box, cls in zip(boxes, clss):
idx += 1
annotator.box_label(box, color=colors(int(cls), True), label=names[int(cls)])
crop_obj = im0[int(box[1]) : int(box[3]), int(box[0]) : int(box[2])]
cv2.imwrite(os.path.join(crop_dir_name, str(idx) + ".png"), crop_obj)
cv2.imshow("ultralytics", im0)
video_writer.write(im0)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
cap.release()
video_writer.release()
cv2.destroyAllWindows()
議論 model.predict
議論 | タイプ | デフォルト | 説明 |
---|---|---|---|
source | str | 'ultralytics/assets' | 推論のデータソースを指定します。画像パス、ビデオファイル、ディレクトリ、URL、またはライブフィードのデバイスIDを指定できます。幅広いフォーマットとソースをサポートしているため、さまざまなタイプの入力に柔軟に対応できます。 |
conf | float | 0.25 | 検出の最小信頼度しきい値を設定します。この閾値以下の信頼度で検出されたオブジェクトは無視されます。この値を調整することで、誤検出を減らすことができます。 |
iou | float | 0.7 | Non-Maximum Suppression (NMS)のIntersection Over Union(IoU)しきい値。値が低いほど、重複するボックスが排除されるため検出数が少なくなり、重複を減らすのに便利です。 |
imgsz | int or tuple | 640 | 推論のための画像サイズを定義する。単一の整数値 640 正方形にリサイズする場合、または(高さ、幅)のタプルを使用します。適切なサイジングは検出を向上させる 精度 と処理速度。 |
half | bool | False | 半精度(FP16)推論が可能になり、サポートされているGPUでのモデル推論を、精度への影響を最小限に抑えながら高速化することができます。 |
device | str | None | 推論を行うデバイスを指定する(例. cpu , cuda:0 または 0 ).CPU 、特定のGPU 、またはモデル実行のための他のコンピュート・デバイスを選択することができます。 |
max_det | int | 300 | 画像あたりの最大検出数。1回の推論でモデルが検出できるオブジェクトの総数を制限し、密集したシーンでの過剰な出力を防ぎます。 |
vid_stride | int | 1 | ビデオ入力のフレームストライド。時間的な解像度を犠牲にして処理を高速化するために、ビデオのフレームをスキップできるようにする。1の値はすべてのフレームを処理し、それ以上の値はフレームをスキップする。 |
stream_buffer | bool | False | ビデオストリームの受信フレームをキューに入れるかどうかを決定する。もし False もし`True'なら、新しいフレームに対応するために古いフレームを削除する(リアルタイムアプリケーションに最適化されている)。もし `True' なら、新しいフレームをバッファにキューイングし、フレームがスキップされないようにしますが、推論の FPS がストリームの FPS より低い場合は遅延が発生します。 |
visualize | bool | False | 推論中にモデルの特徴を可視化し、モデルが何を「見て」いるのかを知ることができます。デバッグやモデルの解釈に役立ちます。 |
augment | bool | False | 予測に対するテスト時間拡張(TTA)を可能にし、推論速度を犠牲にすることで検出のロバスト性を向上させる可能性がある。 |
agnostic_nms | bool | False | 異なるクラスのオーバーラップしたボックスをマージする、クラスにとらわれない非最大抑制(NMS)を有効にします。クラスの重複が一般的なマルチクラス検出シナリオで有用。 |
classes | list[int] | None | クラス ID のセットに予測をフィルタリングします。指定されたクラスに属する検出のみが返されます。複数クラスの検出タスクで、関連するオブジェクトに焦点を当てるのに便利です。 |
retina_masks | bool | False | 高解像度のセグメンテーションマスクを返します。返されるマスク (masks.data )が有効なら、元の画像サイズと一致する。無効にすると、推論時に使われた画像サイズになります。 |
embed | list[int] | None | 特徴ベクトルまたは埋め込みを抽出するレイヤを指定します。クラスタリングや類似検索のような下流のタスクに便利です。 |
project | str | None | 以下の場合、予測出力が保存されるプロジェクト・ディレクトリの名前。 save が有効になっている。 |
name | str | None | 予測ランの名前。プロジェクト・フォルダ内にサブ・ディレクトリを作成するために使用されます。 save が有効になっている。 |
よくあるご質問
Ultralytics YOLO11のオブジェクトクロッピングとは何ですか?
Ultralytics YOLO11を使ったオブジェクトの切り出しでは、YOLO11の検出機能に基づいて、画像やビデオから特定のオブジェクトを分離して抽出します。このプロセスでは、YOLO11を活用し、高精度でオブジェクトを識別し、それに応じて切り抜くことで、集中的な分析、データ量の削減、精度の向上が可能になります。詳細なチュートリアルについては、オブジェクトの切り抜き例を参照してください。
Ultralytics YOLO11をオブジェクトのトリミングに使うべき理由は何ですか?
Ultralytics YOLO11は、その精度、スピード、使いやすさで際立っている。YOLO11は、詳細で正確なオブジェクトの検出とクロッピングを可能にし、集中的な分析や高いデータ完全性を必要とするアプリケーションに不可欠である。さらに、YOLO11は、OpenVINO やTensorRT のようなツールとシームレスに統合し、リアルタイム機能と多様なハードウェア上での最適化を必要とするデプロイメントに対応します。モデルのエクスポートに関するガイドで、その利点をご覧ください。
オブジェクトの切り抜きでデータセットのデータ量を減らすには?
Ultralytics YOLO11を使用して画像やビデオから関連するオブジェクトのみを切り出すことで、データサイズを大幅に削減し、保存や処理の効率を上げることができます。このプロセスでは、特定のオブジェクトを検出するようにモデルをトレーニングし、その結果を使用してこれらの部分のみを切り抜いて保存します。Ultralytics YOLO11の機能を活用するための詳細については、クイックスタートガイドをご覧ください。
Ultralytics YOLO11をリアルタイムビデオ解析やオブジェクトのクロッピングに使用できますか?
はい、Ultralytics YOLO11は、リアルタイムのビデオフィードを処理して、動的に物体を検出し、切り抜くことができます。このモデルの高速推論機能は、監視、スポーツ分析、自動検査システムなどのリアルタイムアプリケーションに最適です。トラッキングモードと予測モードをチェックして、リアルタイム処理の実装方法を理解してください。
YOLO11でオブジェクトの切り出しを効率的に行うためのハードウェア要件は?
Ultralytics YOLO11 は、CPU とGPU の両方の環境に最適化されているが、最適なパフォーマ ンスを得るには、特にリアルタイムまたは大量の推論を行う場合は、専用のGPU (NVIDIA Tesla、RTX シリーズなど)を推奨する。軽量デバイスへの展開には、CoreML foriOS または TFLite forAndroid の使用を検討してください。サポートされるデバイスとフォーマットの詳細は、モデル展開オプションに記載されています。