コンテンツへスキップ

オブジェクトの切り抜きUltralytics YOLO11

オブジェクトの切り抜きとは?

によるオブジェクトの切り出し Ultralytics YOLO11でのオブジェクトの切り出しは、画像やビデオから検出された特定のオブジェクトを分離し、抽出することです。YOLO11 のモデル機能を利用して物体を正確に識別し、輪郭を描くことで、さらなる分析や操作のための正確な切り出しが可能になります。



見るんだ: オブジェクトの切り抜きUltralytics YOLO

オブジェクトクロッピングの利点

  • フォーカス分析:YOLO11 は、ターゲットを絞ったオブジェクトの切り出しを容易にし、シーン内の個々のアイテムの詳細な検査や処理を可能にします。
  • データ量の削減:関連性のあるオブジェクトのみを抽出することで、オブジェクトの切り出しはデータサイズを最小化するのに役立ち、保存、送信、またはその後の計算タスクを効率化する。
  • 精度の向上:YOLO11 のオブジェクト検出 精度は、切り取られたオブジェクトが空間的な関係を維持することを保証し、詳細な分析のために視覚情報の完全性を維持します。

ビジュアル

空港の手荷物
空港のベルトコンベア スーツケースのクロッピングUltralytics 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 または tuple 640 推論のための画像サイズを定義する。単一の整数値 640 正方形にリサイズする場合、または(高さ、幅)のタプルを使用します。適切なサイジングは検出を向上させる 精度 と処理速度。
half bool False 半精度(FP16)推論が可能になり、サポートされているGPUでのモデル推論を、精度への影響を最小限に抑えながら高速化することができます。
device str None 推論を行うデバイスを指定する(例. cpu, cuda:0 または 0).CPU 、特定のGPU 、またはモデル実行用の他のコンピュート・デバイスを選択することができます。
batch int 1 推論のバッチ・サイズを指定する(ソースが ディレクトリ、ビデオファイル、または .txt ファイル).バッチサイズが大きいほど、推論に必要な総時間を短縮し、高いスループットを提供できる。
max_det int 300 画像あたりの最大検出数。1回の推論でモデルが検出できるオブジェクトの総数を制限し、密集したシーンでの過剰な出力を防ぎます。
vid_stride int 1 ビデオ入力のフレームストライド。時間的な解像度を犠牲にして処理を高速化するために、ビデオのフレームをスキップできるようにする。1の値はすべてのフレームを処理し、それ以上の値はフレームをスキップする。
stream_buffer bool False ビデオストリームの受信フレームをキューに入れるかどうかを決定する。もし False, old frames get dropped to accommodate new frames (optimized for real-time applications). If `True', queues new frames in a buffer, ensuring no frames get skipped, but will cause latency if inference FPS is lower than stream 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 は、OpenVINO やTensorRT のようなツールとシームレスに統合され、リアルタイム機能と多様なハードウェア上での最適化を必要とするデプロイメントに対応します。モデルのエクスポートに関するガイドで、その利点をご覧ください。

オブジェクトの切り抜きでデータセットのデータ量を減らすには?

Ultralytics YOLO11 を使って画像や動画から関連するオブジェクトだけを切り抜くことで、データサイズを大幅に削減し、保存や処理の効率を上げることができます。このプロセスでは、モデルをトレーニングして特定のオブジェクトを検出し、その結果を使用してこれらの部分のみを切り抜いて保存します。Ultralytics YOLO11 の機能を活用するための詳細については、クイックスタートガイドをご覧ください。

Ultralytics YOLO11 、リアルタイムのビデオ解析やオブジェクトの切り出しに使用できますか?

はい、Ultralytics YOLO11 、リアルタイムのビデオフィードを処理して、動的にオブジェクトを検出し、切り抜くことができます。このモデルの高速推論機能は、監視、スポーツ分析、自動検査システムなどのリアルタイムアプリケーションに最適です。トラッキングモードと予測モードをチェックして、リアルタイム処理の実装方法を理解しましょう。

YOLO11 、オブジェクトのトリミングを効率的に実行するためのハードウェア要件は?

Ultralytics YOLO11 は、CPU とGPU の両方の環境に最適化されているが、最適なパフォーマ ンスを得るためには、特にリアルタイムまたは大量の推論を行う場合には、専用のGPU (NVIDIA Tesla、RTXシリーズなど)を推奨する。軽量デバイスへの展開には、CoreML foriOS または TFLite forAndroid の使用を検討してください。サポートされるデバイスとフォーマットの詳細は、モデル展開オプションに記載されています。

📅作成:1年前 ✏️更新しました 3ヶ月前

コメント