AutoML을 사용하여 작은 개체 감지 모델 학습

적용 대상:Azure CLI ml 확장 v2(현재)Python SDK azure-ai-ml v2(현재)

이 문서에서는 Azure Machine Learning의 자동화된 ML을 사용하여 고해상도 이미지에서 작은 개체를 감지하도록 개체 감지 모델을 학습시키는 방법을 알아봅니다.

일반적으로 개체 감지를 위한 Computer Vision 모델은 상대적으로 큰 개체가 있는 데이터 세트에 적합합니다. 그러나 메모리 및 컴퓨팅 제약으로 인해 이러한 모델은 고해상도 이미지에서 작은 개체를 검색하는 작업을 수행할 때 성능이 떨어지는 경향이 있습니다. 고해상도 이미지는 일반적으로 크기 때문에 모델에 입력하기 전에 크기가 조정되어 초기 이미지 크기에 비해 더 작은 개체를 검색하는 기능이 제한됩니다.

이 문제를 돕기 위해 자동화된 ML은 Computer Vision 기능의 일부로 타일링을 지원합니다. 자동화된 ML의 타일링 기능은 작은 개체 감지를 위한 타일링의 힘 개념을 기반으로 합니다.

타일링할 때 각 이미지는 타일 그리드로 나뉩니다. 인접한 타일은 너비 및 높이 치수가 서로 겹칩니다. 다음 이미지와 같이 타일이 원본에서 잘립니다.

겹치는 타일의 그리드로 구분되는 이미지를 보여 주는 다이어그램

필수 조건

지원되는 모델

타일링을 사용하는 작은 개체 감지는 개체 감지 작업을 위한 이미지에 대해 자동화된 ML에서 지원하는 모든 모델에서 지원됩니다.

학습 중 타일링 사용

타일링을 사용하도록 설정하려면 tile_grid_size 매개 변수를 '3x2'와 같은 값으로 설정할 수 있습니다. 여기서 3은 너비 치수에 따른 타일 수이고 2는 높이 차원에 따른 타일 수입니다. 이 매개 변수를 '3x2'로 설정하면 각 이미지가 3 x 2 타일 그리드로 분할됩니다. 각 타일은 인접한 타일과 겹치므로 타일 경계에 떨어지는 모든 개체는 타일 중 하나에 완전히 포함됩니다. 이 겹침은 기본값이 25%인 tile_overlap_ratio 매개 변수에 의해 제어됩니다.

타일링이 사용하도록 설정되면 전체 이미지와 여기에서 생성된 타일이 모델을 통해 전달됩니다. 이러한 이미지와 타일은 모델에 제공되기 전에 min_sizemax_size 매개 변수에 따라 크기가 조정됩니다. 이 추가 데이터를 처리하기 때문에 컴퓨팅 시간이 비례적으로 증가합니다.

예를 들어, tile_grid_size 매개 변수가 '3x2'인 경우 타일링이 없는 경우보다 컴퓨팅 시간은 약 7배 더 높습니다.

학습 매개 변수의 tile_grid_size 값을 문자열로 지정할 수 있습니다.

적용 대상:Azure CLI ml 확장 v2(현재)

training_parameters:
  tile_grid_size: '3x2'

tile_grid_size 매개 변수의 값은 이미지 크기와 이미지 내의 개체 크기에 따라 다릅니다. 예를 들어, 이미지에 더 작은 개체가 있는 경우 타일 수가 많을수록 도움이 됩니다.

데이터 세트에 대한 이 매개 변수의 최적 값을 선택하기 위해 하이퍼 매개 변수 검색을 사용할 수 있습니다. 그렇게 하려면 하이퍼 매개 변수 공간에서 이 매개 변수에 대한 값 선택을 지정할 수 있습니다.

적용 대상:Azure CLI ml 확장 v2(현재)

search_space:
  - model_name:
      type: choice
      values: ['fasterrcnn_resnet50_fpn']
    tile_grid_size:
      type: choice
      values: ['2x1', '3x2', '5x3']

유추 중 타일링

타일링으로 학습된 모델이 배포되면 유추 중에 타일링도 발생합니다. 자동화된 ML은 학습의 tile_grid_size 값을 사용하여 유추하는 동안 타일을 생성합니다. 전체 이미지와 해당 타일이 모델을 통해 전달되고 다음 이미지와 같이 최종 예측을 출력하기 위해 이들로부터의 개체 제안이 병합됩니다.

최종 예측을 형성하기 위해 병합되는 이미지 및 타일의 개체 제안을 보여 주는 다이어그램

참고 항목

여러 타일에서 동일한 개체가 검색될 수 있으며 이러한 중복을 제거하기 위해 중복 검색이 수행됩니다.

중복 검색은 타일과 이미지의 제안에 대해 NMS를 실행하여 수행됩니다. 여러 제안이 겹칠 경우 점수가 가장 높은 제안이 선택되고 나머지는 중복으로 삭제됩니다. 두 제안 간의 iou(합집합에 대한 교차)가 tile_predictions_nms_thresh 매개 변수보다 크면 두 제안이 겹치는 것으로 간주됩니다.

학습에서 사용하도록 설정하지 않고 유추 중에만 타일링을 사용하도록 설정하는 옵션도 있습니다. 이렇게 하려면 학습이 아니라 유추 중에만 tile_grid_size 매개 변수를 설정합니다.

그렇게 하면 일부 데이터 세트의 성능이 개선될 수 있으며 학습 시 타일링과 관련된 추가 비용이 발생하지 않습니다.

타일링 하이퍼 매개 변수

다음은 타일링 기능을 제어하는 데 사용할 수 있는 매개 변수입니다.

매개 변수 이름 설명 기본값
tile_grid_size 각 이미지를 타일링하는 데 사용할 격자 크기입니다. 학습, 유효성 검사 및 유추 중에 사용할 수 있습니다.

'3x2' 형식의 문자열로 전달해야 합니다.

참고: 이 매개 변수를 설정하면 모든 타일과 이미지가 모델에서 처리되기 때문에 컴퓨팅 시간이 비례하여 늘어납니다.
기본값은 없습니다.
tile_overlap_ratio 각 차원에서 인접한 타일 간의 겹침 비율을 제어합니다. 타일 경계에 있는 개체가 너무 커서 타일 중 하나에 완전히 맞지 않는 경우 개체가 타일 중 하나 이상에 완전히 들어가도록 이 매개 변수의 값을 늘립니다.

[0, 1)의 부동이어야 합니다.
0.25
tile_predictions_nms_thresh 타일과 이미지의 예측을 병합하는 동안 NMS(비 최대 제거)를 수행하는 데 사용할 합집합 임계값에 대한 교차입니다. 유효성 검사 및 유추 중에 사용할 수 있습니다. 최종 예측에서 개체당 여러 상자가 검색된 경우 이 매개 변수를 변경합니다.

[0, 1]의 부동이어야 합니다.
0.25

예제 Notebook

개체 감지 모델 설정 및 학습에 대한 자세한 코드 예는 개체 감지 샘플 Notebook을 참조하세요.

참고 항목

이 문서의 모든 이미지는 MIT 라이선스 계약의 허용된 사용 섹션에 따라 제공됩니다. Copyright © 2020 Roboflow, Inc.

다음 단계