> 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/ko/tutorials/detect-small-objects.md).

# 작은 객체 감지

머신러닝 시스템의 성능을 향상시키는 가장 좋은 방법은 종종 모델을 개선하는 것과는 별개입니다. 더 많은 데이터를 수집하고, 데이터셋을 더 정확하게 라벨링하고, 탐지에 중복성을 추가하거나, 문제를 더 작은 조각으로 나누는 것이 보통 모델 아키텍처를 반복 개선하는 것보다 더 큰 효과를 냅니다.

모델 성능에서 흔히 나타나는 한 가지 단점은 관심 대상 객체가 이미지 크기에 비해 매우 작을 때 발생합니다. 한 가지 방법은 이미지를 더 작은 조각으로 타일링한 뒤 이를 병렬로 모델에 통과시키는 것입니다. 이 방법을 SAHI(Slicing Aided Hyper Inference)라고 합니다. 큰 이미지를 서로 겹치는 슬라이스로 나누고, 각 슬라이스를 모델에 통과시킨 뒤, 단일 예측 결과를 출력으로 재구성합니다.

SAHI를 [워크플로](https://docs.roboflow.com/workflows) Image Slicer와 Detections Stitch 블록으로 쉽게 할 수 있습니다.

**난이도:** 쉬움\
**완료 시간:** 10분

## 시작 지점

우리는 다음과 비슷한 출력으로 시작할 것입니다 [Hello World](/workflows/ko/tutorials/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 데이터셋에서 자동차는 가장 널리 대표되는 클래스 중 하나임에도 불구하고, 이미지가 모델의 입력 해상도로 축소되면 자동차의 너비가 겨우 몇 픽셀에 불과해지기 때문에 여전히 하나만 찾습니다.

![원본 예측 결과](https://media.roboflow.com/workflows/guides/sahi/original-predictions.jpeg)

## SAHI 추가하기

이미지를 더 작은 타일로 잘라 모델이 작업할 수 있는 픽셀 정보를 더 많이 얻도록 하여 이를 해결할 것입니다.

![SAHI 경로 시작](https://media.roboflow.com/workflows/guides/sahi/04-start-sahi-path.webp)

첫 번째 단계는 Workflow에 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 테스트하기

이제 개선한 접근 방식이 어떻게 작동하는지 볼 준비가 되었습니다. 관심 있는 두 가지 시각화만 예측하도록 출력을 간단히 하겠습니다.

![출력 조정](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)

그리고 다음만 포함합니다 `car` 클래스.

![클래스별 필터링](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).
