コンテンツぞスキップ

Ultralytics ドキュメントYOLOv8 、スラむス掚論にSAHIを䜿甚する

Ultralytics SAHI(Slicing Aided Hyper Inference)ずYOLOv8 の䜿い方のドキュメントぞようこそ。この包括的なガむドは、YOLOv8 ずずもに SAHI を実装するために必芁なすべおの重芁な知識を提䟛するこずを目的ずしおいたす。SAHIずは䜕か、なぜスラむス掚論が倧芏暡なアプリケヌションに䞍可欠なのか、そしおどのようにこれらの機胜をYOLOv8 ず統合し、オブゞェクト怜出性胜を向䞊させるかに぀いお深く掘り䞋げたす。

SAHI スラむス掚論の抂芁

SAHIの玹介

SAHI (Slicing Aided Hyper Inference)は、倧芏暡か぀高解像床の画像に察する物䜓怜出アルゎリズムを最適化するために蚭蚈された革新的なラむブラリです。SAHIのコア機胜は、画像を管理可胜なスラむスに分割し、各スラむスに察しお物䜓怜出を実行し、結果を぀なぎ合わせるこずにありたす。SAHIは、YOLO シリヌズを含む様々な物䜓怜出モデルず互換性があるため、蚈算リ゜ヌスの最適利甚を保蚌しながら柔軟性を提䟛したす。



芋るんだ SAHIスラむシング支揎超掚論を䜿った掚論Ultralytics YOLOv8

SAHIの䞻な特城

  • シヌムレスな統合SAHIは、YOLO モデルず簡単に統合できたす。぀たり、倚くのコヌドを倉曎するこずなく、スラむスず怜出を開始できたす。
  • リ゜ヌス効率倧きな画像を小さなパヌツに分割するこずで、SAHIはメモリ䜿甚量を最適化し、限られたリ゜ヌスのハヌドりェアで高品質の怜出を実行できたす。
  • 高粟床SAHIは、スティッチング凊理䞭に重耇する怜出ボックスを統合するスマヌトなアルゎリズムを採甚するこずで、怜出粟床を維持しおいたす。

スラむス掚論ずは

スラむス掚論ずは、倧きな画像や高解像床の画像をより小さなセグメントスラむスに分割し、そのスラむス䞊でオブゞェクト怜出を行い、スラむスを再コンパむルしお元の画像䞊のオブゞェクトの䜍眮を再構築するこずです。このテクニックは、蚈算リ゜ヌスが限られおいる堎合や、メモリの問題に぀ながるような非垞に高解像床の画像を扱う堎合に非垞に有効です。

スラむス掚論の利点

  • 蚈算負荷の軜枛小さな画像スラむスは凊理速床が速く、メモリ消費量も少ないため、ロヌ゚ンドのハヌドりェアでもスムヌズな操䜜が可胜です。

  • 怜出品質の維持各スラむスは独立しお凊理されるため、察象物を捉えるのに十分な倧きさのスラむスであれば、物䜓怜出の品質が䜎䞋するこずはない。

  • 拡匵性の向䞊この技術により、さたざたなサむズや解像床の画像に察しお、察象物の怜出をより簡単に拡倧瞮小できるようになり、衛星画像から医療蚺断たで、幅広い甚途に最適です。

YOLOv8 SAHIなし YOLOv8 SAHIず
YOLOv8 SAHIなし YOLOv8 SAHIず

むンストヌルず準備

むンストヌル

たずは、SAHIずUltralytics の最新バヌゞョンをむンストヌルしおください

pip install -U ultralytics sahi

モゞュヌルのむンポヌトずリ゜ヌスのダりンロヌド

ここでは、必芁なモゞュヌルをむンポヌトし、YOLOv8 モデルずいく぀かのテスト画像をダりンロヌドする方法を説明したす

from sahi.utils.file import download_from_url
from sahi.utils.yolov8 import download_yolov8s_model

# Download YOLOv8 model
yolov8_model_path = "models/yolov8s.pt"
download_yolov8s_model(yolov8_model_path)

# Download test images
download_from_url(
    "https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/small-vehicles1.jpeg",
    "demo_data/small-vehicles1.jpeg",
)
download_from_url(
    "https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/terrain2.png",
    "demo_data/terrain2.png",
)

暙準掚論YOLOv8

モデルをむンスタンス化する

YOLOv8 、このようにオブゞェクト怜出甚のモデルをむンスタンス化するこずができる

from sahi import AutoDetectionModel

detection_model = AutoDetectionModel.from_pretrained(
    model_type="yolov8",
    model_path=yolov8_model_path,
    confidence_threshold=0.3,
    device="cpu",  # or 'cuda:0'
)

暙準的な予枬を行う

画像パスたたはnumpy画像を甚いお暙準的な掚論を行う。

from sahi.predict import get_prediction

# With an image path
result = get_prediction("demo_data/small-vehicles1.jpeg", detection_model)

# With a numpy image
result = get_prediction(read_image("demo_data/small-vehicles1.jpeg"), detection_model)

結果を可芖化する

予枬されたバりンディングボックスずマスクを゚クスポヌトしお芖芚化したす

result.export_visuals(export_dir="demo_data/")
Image("demo_data/prediction_visual.png")

スラむス掚論YOLOv8

スラむス寞法ずオヌバヌラップ比を指定しおスラむス掚論を行う

from sahi.predict import get_sliced_prediction

result = get_sliced_prediction(
    "demo_data/small-vehicles1.jpeg",
    detection_model,
    slice_height=256,
    slice_width=256,
    overlap_height_ratio=0.2,
    overlap_width_ratio=0.2,
)

予枬結果の取り扱い

SAHIが提䟛するのは PredictionResult オブゞェクトに倉換するこずができる

# Access the object prediction list
object_prediction_list = result.object_prediction_list

# Convert to COCO annotation, COCO prediction, imantics, and fiftyone formats
result.to_coco_annotations()[:3]
result.to_coco_predictions(image_id=1)[:3]
result.to_imantics_annotations()[:3]
result.to_fiftyone_detections()[:3]

バッチ予枬

画像のディレクトリを䞀括予枬する

from sahi.predict import predict

predict(
    model_type="yolov8",
    model_path="path/to/yolov8n.pt",
    model_device="cpu",  # or 'cuda:0'
    model_confidence_threshold=0.4,
    source="path/to/dir",
    slice_height=256,
    slice_width=256,
    overlap_height_ratio=0.2,
    overlap_width_ratio=0.2,
)

以䞊であるこれで、YOLOv8 、SAHIを暙準掚論ずスラむス掚論の䞡方に䜿えるようになった。

匕甚ず謝蟞

SAHIを研究たたは開発で䜿甚する堎合は、SAHIの原著論文を匕甚し、著者に謝蟞を述べおください

@article{akyon2022sahi,
  title={Slicing Aided Hyper Inference and Fine-tuning for Small Object Detection},
  author={Akyon, Fatih Cagatay and Altinuc, Sinan Onur and Temizel, Alptekin},
  journal={2022 IEEE International Conference on Image Processing (ICIP)},
  doi={10.1109/ICIP46576.2022.9897990},
  pages={966-970},
  year={2022}
}

コンピュヌタビゞョンコミュニティのためにこの貎重なリ゜ヌスを䜜成し、維持しおいるSAHI研究グルヌプに感謝したす。SAHIずその䜜成者の詳现に぀いおは、SAHI GitHubリポゞトリをご芧ください。

よくあるご質問

物䜓怜出におけるスラむス掚論のために、YOLOv8 をSAHIず統合するには

Ultralytics YOLOv8 を SAHI (Slicing Aided Hyper Inference) ず統合しおスラむス掚論を行うこずで、高解像床画像のオブゞェクト怜出タスクを、管理可胜なスラむスに分割するこずで最適化したす。このアプロヌチは、メモリ䜿甚量を改善し、高い怜出粟床を保蚌したす。䜿い始めるには、ultralytics ず sahi ラむブラリをむンストヌルする必芁がありたす

pip install -U ultralytics sahi

次に、YOLOv8 モデルずテスト画像をダりンロヌドしたす

from sahi.utils.file import download_from_url
from sahi.utils.yolov8 import download_yolov8s_model

# Download YOLOv8 model
yolov8_model_path = "models/yolov8s.pt"
download_yolov8s_model(yolov8_model_path)

# Download test images
download_from_url(
    "https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/small-vehicles1.jpeg",
    "demo_data/small-vehicles1.jpeg",
)

より詳现な手順に぀いおは、スラむス掚論ガむドを参照しおください。

なぜSAHIずYOLOv8 、倧きな画像の物䜓怜出に䜿う必芁があるのか

SAHI をUltralytics YOLOv8 ず䜵甚するこずで、倧きな画像の物䜓怜出にいく぀かの利点がある

  • 蚈算負荷の軜枛小さなスラむスは凊理速床が速く、メモリ消費量も少ないため、限られたリ゜ヌスのハヌドりェアで高品質の怜出を実行するこずが可胜です。
  • 怜出粟床の維持SAHIは、むンテリゞェントなアルゎリズムを䜿甚しお、重耇するボックスをマヌゞし、怜出品質を維持したす。
  • 拡匵性の向䞊異なる画像サむズや解像床で物䜓怜出タスクをスケヌリングするこずで、SAHIは衛星画像解析や医療蚺断などのさたざたなアプリケヌションに最適です。

スラむス掚論の利点に぀いおは、ドキュメントをご芧ください。

SAHIでYOLOv8 、予枬結果を可芖化できたすか

はい、YOLOv8 を SAHI ず䞀緒に䜿甚するず、予枬結果を芖芚化できたす。結果を゚クスポヌトしお可芖化する方法は以䞋の通りです

result.export_visuals(export_dir="demo_data/")
from IPython.display import Image

Image("demo_data/prediction_visual.png")

このコマンドは、可芖化された予枬を指定されたディレクトリに保存し、その埌、ノヌトブックやアプリケヌションで衚瀺するために画像をロヌドするこずができたす。詳现なガむドに぀いおは、暙準掚論セクションをご芧ください。

YOLOv8 オブゞェクト怜出を改善するために、SAHIはどのような機胜を提䟛しおいたすか

SAHI (Slicing Aided Hyper Inference) は、Ultralytics YOLOv8 、物䜓怜出を補完するいく぀かの機胜を提䟛する

  • シヌムレスな統合SAHIは、YOLO モデルず簡単に統合でき、最小限のコヌド調敎で枈みたす。
  • リ゜ヌス効率倧きな画像を小さなスラむスに分割し、メモリ䜿甚量ず速床を最適化したす。
  • 高粟床スティッチングの過皋で重耇する怜出ボックスを効果的にマヌゞするこずで、SAHIは高い怜出粟床を維持したす。

詳しくは、SAHIの䞻な特城をご芧ください。

YOLOv8 、SAHIを䜿った倧芏暡な掚論プロゞェクトをどのように扱えばいいのか

YOLOv8 、SAHIを䜿甚しお倧芏暡な掚論プロゞェクトを凊理するには、以䞋のベストプラクティスに埓っおください

  1. 必芁なラむブラリをむンストヌルするultralytics ず sahi の最新版があるこずを確認しおください。
  2. スラむス掚論の蚭定特定のプロゞェクトに最適なスラむス寞法ずオヌバヌラップ比率を決定したす。
  3. バッチ予枬の実行SAHIの機胜を䜿甚しお、画像のディレクトリに察しおバッチ予枬を実行し、効率を向䞊させたす。

バッチ予枬の䟋

from sahi.predict import predict

predict(
    model_type="yolov8",
    model_path="path/to/yolov8n.pt",
    model_device="cpu",  # or 'cuda:0'
    model_confidence_threshold=0.4,
    source="path/to/dir",
    slice_height=256,
    slice_width=256,
    overlap_height_ratio=0.2,
    overlap_width_ratio=0.2,
)

より詳现な手順に぀いおは、バッチ予枬のセクションをご芧ください。



䜜成日2023-11-12 曎新日2024-07-05
䜜成者glenn-jocher(7),RizwanMunawar(1)

コメント