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 、またはモデル実行用の他のコンピュート・デバイスを選択することができます。 |
batch |
int |
1 |
推論のバッチ・サイズを指定する(ソースが ディレクトリ、ビデオファイル、または .txt ファイル).バッチサイズが大きいほど、推論に必要な総時間を短縮し、高いスループットを提供できる。 |
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 のドキュメントをご覧ください。