Ultralytics YOLO11 🚀を使ったオブジェクトのぼかし
オブジェクトのぼかしとは?
Ultralytics YOLO11によるオブジェクトのぼかしは、画像またはビデオ内の特定の検出オブジェクトにぼかし効果を適用する。これは、YOLO11のモデル機能を使って、与えられたシーン内のオブジェクトを識別し、操作することで実現できます。
見るんだ: Ultralytics YOLO11を使用したオブジェクトのぼかし
対象物をぼかすことの利点
- プライバシー保護:オブジェクトのぼかしは、画像やビデオ内の機密情報や個人を特定できる情報を隠すことで、プライバシーを保護するための効果的なツールです。
- 選択的フォーカス:YOLO11は、選択的ぼかしを可能にし、ユーザーが特定の対象物をターゲットにすることを可能にし、プライバシーと関連する視覚情報の保持のバランスを保証します。
- リアルタイム処理:YOLO11の効率性は、リアルタイムでオブジェクトをぼかすことを可能にし、ダイナミックな環境においてオンザフライでプライバシーを強化する必要があるアプリケーションに適しています。
YOLO11を使ったオブジェクトのぼかしの例
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))
# Blur ratio
blur_ratio = 50
# Video writer
video_writer = cv2.VideoWriter("object_blurring_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
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):
annotator.box_label(box, color=colors(int(cls), True), label=names[int(cls)])
obj = im0[int(box[1]) : int(box[3]), int(box[0]) : int(box[2])]
blur_obj = cv2.blur(obj, (blur_ratio, blur_ratio))
im0[int(box[1]) : int(box[3]), int(box[0]) : int(box[2])] = blur_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を使用して、リアルタイムでオブジェクトのぼかしを実装するには?
YOLO11でリアルタイムの物体ぼかしを実装するには、提供されているPython の例に従ってください。これには、物体検出にYOLO11を使い、ぼかし効果の適用にOpenCVを使います。以下はその簡易版である:
import cv2
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
cap = cv2.VideoCapture("path/to/video/file.mp4")
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
results = model.predict(im0, show=False)
for box in results[0].boxes.xyxy.cpu().tolist():
obj = im0[int(box[1]) : int(box[3]), int(box[0]) : int(box[2])]
im0[int(box[1]) : int(box[3]), int(box[0]) : int(box[2])] = cv2.blur(obj, (50, 50))
cv2.imshow("YOLO11 Blurring", im0)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
Ultralytics YOLO11を被写体ブレに使うメリットは何ですか?
Ultralytics YOLO11はオブジェクトのぼかしにいくつかの利点がある:
- プライバシー保護:機密情報や特定可能な情報を効果的に隠す。
- 選択的フォーカス:特定の対象をぼかし、本質的な視覚的内容を維持します。
- リアルタイム処理:ダイナミックな環境下でオブジェクトのぼかしを効率的に実行し、瞬時にプライバシーを強化するのに適しています。
より詳細な用途については、オブジェクトぼかしの利点のセクションをご覧ください。
Ultralytics YOLO11を使って、プライバシーのためにビデオの顔をぼかすことはできますか?
はい、Ultralytics YOLO11は、プライバシー保護のため、ビデオ内の顔を検出してぼかすように設定できます。特に顔を認識するように事前に訓練されたモデルをトレーニングまたは使用することで、検出結果をOpenCVで処理し、ぼかし効果を適用することができます。YOLO11による物体検出に関するガイドを参照し、顔検出をターゲットにコードを修正してください。
YOLO11は、Faster R-CNNのような物体ぼかしのための他の物体検出モデルと比較してどうですか?
Ultralytics YOLO11は通常、Faster R-CNNのようなモデルを速度面で上回り、リアルタイム・アプリケーションにより適しています。どちらのモデルも正確な検出を提供しますが、YOLO11のアーキテクチャは、リアルタイムの物体ぼかしのようなタスクに不可欠な高速推論に最適化されています。技術的な違いやパフォーマンス指標については、YOLO11のドキュメントをご覧ください。