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 のドキュメントをご覧ください。