コンテンツへスキップ

Ultralytics YOLOv8 🚀を使った物体ぼかし

オブジェクトのぼかしとは?

でオブジェクトをぼかす Ultralytics YOLOv8でのオブジェクトぼかしは、画像やビデオで検出された特定のオブジェクトにぼかし効果を適用します。これは、YOLOv8 モデル機能を使用して、指定されたシーン内のオブジェクトを識別し、操作することで実現できます。



見るんだ: オブジェクトのぼかしUltralytics YOLOv8

対象物をぼかすことの利点

  • プライバシー保護:オブジェクトのぼかしは、画像やビデオ内の機密情報や個人を特定できる情報を隠すことで、プライバシーを保護するための効果的なツールです。
  • 選択的フォーカス:YOLOv8 は、選択的なぼかしを可能にし、ユーザーが特定の対象物に的を絞ることを可能にし、プライバシーと関連する視覚情報の保持のバランスを保証する。
  • リアルタイム処理:YOLOv8リアルタイムでオブジェクトをぼかすことができるため、ダイナミックな環境においてその場でプライバシーを強化する必要があるアプリケーションに適しています。

YOLOv8 例を用いたオブジェクトのぼかし

import cv2

from ultralytics import YOLO
from ultralytics.utils.plotting import Annotator, colors

model = YOLO("yolov8n.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' 画像またはビデオのソース・ディレクトリ
conf float 0.25 検出のためのオブジェクト信頼閾値
iou float 0.7 NMSのIoU(Intersection Over Union)しきい値
imgsz int or tuple 640 スカラーまたは (h, w) リストとしての画像サイズ,すなわち (640, 480)
half bool False 半精度(FP16)を使用
device None or str None すなわち、cuda device=0/1/2/3、または device=cpu
max_det int 300 画像あたりの最大検出数
vid_stride bool False ビデオ・フレームレート・ストライド
stream_buffer bool False すべてのストリーミングフレームをバッファリングする (True) か、最新のフレームを返す (False)
visualize bool False モデルの特徴を可視化する
augment bool False 予測ソースに画像補強を適用
agnostic_nms bool False クラス不可知NMS
classes list[int] None つまり、class=0、またはclass=[0,2,3]。
retina_masks bool False 高解像度のセグメンテーション・マスクを使用する
embed list[int] None 与えられたレイヤーから特徴ベクトル/埋め込みを返す

よくあるご質問

Ultralytics YOLOv8 によるオブジェクトのぼかしとは?

でオブジェクトをぼかす Ultralytics YOLOv8は、画像や動画内の特定のオブジェクトを自動的に検出し、ぼかし効果を適用する。この技術は、関連する視覚データを保持しながら、機密情報を隠すことによってプライバシーを強化します。YOLOv8リアルタイム処理機能により、即時のプライバシー保護や選択的なフォーカス調整が必要なアプリケーションに適しています。

YOLOv8 、リアルタイムでオブジェクトのぼかしを実装するにはどうすればいいのだろうか?

YOLOv8 を使ってリアルタイムのオブジェクトぼかしを実装するには、提供されているPython の例に従ってください。これには、YOLOv8 を使ってオブジェクトを検出し、OpenCV を使ってぼかし効果を適用します。以下はその簡易版です:

import cv2

from ultralytics import YOLO

model = YOLO("yolov8n.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("YOLOv8 Blurring", im0)
    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

cap.release()
cv2.destroyAllWindows()

Ultralytics YOLOv8 をオブジェクトのぼかしに使用する利点は何ですか?

Ultralytics YOLOv8 は、オブジェクトのぼかしにいくつかの利点がある:

  • プライバシー保護:機密情報や特定可能な情報を効果的に隠す。
  • 選択的フォーカス:特定の対象をぼかし、本質的な視覚的内容を維持します。
  • リアルタイム処理:ダイナミックな環境下でオブジェクトのぼかしを効率的に実行し、瞬時にプライバシーを強化するのに適しています。

より詳細な用途については、オブジェクトぼかしの利点のセクションをご覧ください。

プライバシー保護のため、Ultralytics YOLOv8 、ビデオの顔をぼかすことはできますか?

はい、Ultralytics YOLOv8 、プライバシーを保護するためにビデオ内の顔を検出し、ぼかすように設定することができます。特に顔を認識するようにトレーニングするか、事前にトレーニングしたモデルを使用することで、検出結果をOpenCVで処理してぼかし効果を適用できます。 YOLOv8 を 使用した物体検出に関するガイドを参照し、顔検出を対象とするようにコードを修正してください。

YOLOv8 、物体をぼかすためのFaster R-CNNのような他の物体検出モデルと比較してどうですか?

Ultralytics YOLOv8 通常、Faster R-CNN のようなモデルを速度面で上回り、リアルタイムアプリケーションにより適している。どちらのモデルも正確な検出を提供しますが、YOLOv8 のアーキテクチャは、リアルタイムの物体ぼかしのようなタスクに重要な、迅速な推論に最適化されています。技術的な違いやパフォーマンス指標については、YOLOv8 のドキュメントをご覧ください。



作成日:2024-01-09 更新日:2024-07-05
著者:glenn-jocher(6),RizwanMunawar(1),IvorZhu331(1),AyushExel(1)

コメント