> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/workflows/ja/chtoriaru/detect-small-objects.md).

# 小さな物体を検出

機械学習システムの性能を向上させる最善の方法は、しばしばモデルの改善とは直接関係のないところにあります。より多くのデータを収集したり、データセットをより正確にラベル付けしたり、検出に冗長性を追加したり、問題をより小さな要素に分解したりする方が、通常はモデルアーキテクチャを反復的に改良するよりも効果の大きい取り組みです。

モデル性能におけるよくある欠点の一つは、対象物が画像サイズに対して非常に小さい場合に起こります。1つの方法は、画像をより小さなチャンクにタイル分割し、それらを並列でモデルに通すことです。この方法は SAHI（Slicing Aided Hyper Inference）と呼ばれます。大きな画像を重なり合うスライスに分割し、各スライスをモデルに通し、単一の予測として出力を再構成します。

SAHIを使う [ワークフロー](https://docs.roboflow.com/workflows) は、Image Slicer と Detections Stitch ブロックを使えば簡単です。

**難易度：** 簡単\
**完了までの時間：** 10分

## 開始点

以下に似た出力から始めます [Hello World](/workflows/ja/chtoriaru/hello-world.md) チュートリアル。物体検出モデルの予測結果を可視化するシンプルなワークフローを作成するには、そのガイドに従ってください：

![開始地点](https://media.roboflow.com/workflows/guides/sahi/01-starting-point.webp)

しかし、対象物が小さいと、このモデルでは見つけられません。

![SAHIなしでのテスト](https://media.roboflow.com/workflows/guides/sahi/02-testing-without-sahi.webp)

このモデルが学習した MS COCO データセットでは、車は最も多く表現されているクラスの1つですが、それでも1台しか見つかりません。画像をモデルの入力解像度に縮小すると、車は数ピクセル幅にしかならないためです。

![元の予測結果](https://media.roboflow.com/workflows/guides/sahi/original-predictions.jpeg)

## SAHIを追加

これを、画像をより小さなタイルに分割することで修正します。そうすれば、モデルがより多くの画素情報を使って推論できるようになります。

![SAHIのパスを開始](https://media.roboflow.com/workflows/guides/sahi/04-start-sahi-path.webp)

最初のステップは、Image Slicer ブロックをワークフローに追加することです。これは並列実行パスで行い、最後に元のSAHIなし予測と出力を比較できるようにします。

![Image Slicer ブロックを追加](https://media.roboflow.com/workflows/guides/sahi/06-add-block.webp)

次に、各スライス上で動作する物体検出モデルを追加します。Image Slicer ブロックと Image Stitch ブロックの間にあるものはすべて、スライス集合に対して要素ごとに処理されます。Workflows は、可能なところでは作業を自動的に並列化します（たとえば GPU 経由で予測をバッチ処理するなど）。

![モデルを追加](https://media.roboflow.com/workflows/guides/sahi/07-add-model.webp)

次に、Detections Stitch ブロックを追加して、予測結果を元の画像の次元に集約し直します。

![Detections Stitch を追加](https://media.roboflow.com/workflows/guides/sahi/08-add-detections-stitch.webp)

これで、通常のモデルの出力を可視化したのと同じ方法で、これらの集約された予測を可視化できます。

![可視化を追加](https://media.roboflow.com/workflows/guides/sahi/09-add-visualizations.webp)

モデルが予測しなかった画像領域を暗くするために、背景色の可視化を追加して、予測領域を目立たせます。

![背景色を追加](https://media.roboflow.com/workflows/guides/sahi/10-add-background-color.webp)

そして、予測対象のオブジェクトの周囲にバウンディングボックスを表示します。

![バウンディングボックスを追加](https://media.roboflow.com/workflows/guides/sahi/11-add-bounding-box.webp)

## SAHIのテスト

これで、改訂したアプローチがどのように機能するかを確認する準備ができました。関心のある2つの可視化だけを予測するように出力を簡略化します。

![出力を調整](https://media.roboflow.com/workflows/guides/sahi/12-adjust-outputs.webp)

ワークフローを実行すると、これで車がすべて検出されているのがわかります。

![SAHIをテスト](https://media.roboflow.com/workflows/guides/sahi/13-test-sahi.webp)

![SAHIありの出力](https://media.roboflow.com/workflows/guides/sahi/with-sahi.jpeg)

## 不要な予測をフィルタリング

しかし、SAHIのアプローチは少し効きすぎました。モデルは今や、関心のない背景の一部のオブジェクトまで拾ってしまっています。モデルの予測結果を調整して、これを修正しましょう。

![フィルタを追加](https://media.roboflow.com/workflows/guides/sahi/15-add-filter.webp)

Detections Filter ブロックを追加します。このブロックでは、定義した条件セットに一致しない予測を除外できます。

![Detections Filter を選択](https://media.roboflow.com/workflows/guides/sahi/16-select-detections-filter.webp)

条件を設定するには、ブロックのサイドバーにある Operations 設定をクリックします。

![Operations を選択](https://media.roboflow.com/workflows/guides/sahi/17-choose-operations.webp)

次に、「Filter By Class & Confidence」を選択します。

![Class Confidence を選択](https://media.roboflow.com/workflows/guides/sahi/18-select-class-confidence.webp)

そして、次のものだけを含めます `車` クラス。

![クラスでフィルタリング](https://media.roboflow.com/workflows/guides/sahi/19-filter-by-class.webp)

これで、再度モデルをテストすると、車の周囲にボックスが表示され、背景に余計な検出はなくなっているのがわかります。

![フィルタありでテスト](https://media.roboflow.com/workflows/guides/sahi/20-test-with-filter.webp)

![SAHIとフィルタありの出力](https://media.roboflow.com/workflows/guides/sahi/with-sahi-and-filter.jpeg)

## 次のステップ

このチュートリアルでは、小さなオブジェクトを検出するために SAHI を使う方法、画像のバッチに対して操作を行う方法、そして検出結果を変換する方法を学びました。

次に、私たちは [ライブ動画ストリーム上でワークフローを実行します](https://docs.roboflow.com/workflows/deploy/video-processing).
