BLOG

이제 Amazon SageMaker에서 개체 탐지 알고리즘을 사용할 수 있습니다.
작성일: 2018년 7월 30일

Amazon SageMaker는 기계 학습 모델을 쉽게 구축, 훈련 및 배치할 수 있도록 완전히 관리되고 확장성이 뛰어난 ML(기계 학습) 플랫폼입니다. 이것은 ML의 민주화를 향한 커다란 발걸음으로 개발자들을 위한 ML 공간의 진입 장벽을 낮추는 것입니다. 컴퓨터 비전은 이미지를 다루는 기계 학습의 한 분야입니다. 이미지를 사전 정의된 카테고리 집합으로 분류하는 방법을 배우는 Amazon SageMaker 이미지 분류 알고리즘은 SageMaker에서 제공하는 가장 인기 있는 알고리즘 중 하나입니다.
오늘날, 우리는 Amazon SageMaker 개체 탐지(Object Detection) 알고리즘의 출시로 컴퓨터 비전 제공을 강화하고 있습니다. 개체 탐지는 이미지의 개체를 식별하고 위치를 지정하는 프로세스입니다. 이 알고리즘은 이 상자가 캡슐화하는 개체를 식별하는 것과 함께 개체가 있는 이미지에 경계 상자를 증명함으로써 이미지 분류를 더 진전시킵니다. 사용자 정의 클래스가 포함된 자체 데이터셋으로 훈련할 필요가 없는 경우 개체 탐지를 위한 Amazon Recognition 서비스를 사용할 수 있습니다. Amazon Recognition은 미리 정의된 클래스 집합에서 개체를 식별할 수 있는 API를 제공합니다. Amazon SageMaker 개체 탐지 알고리즘을 사용하면 자신의 데이터셋/클래스를 사용하여 훈련할 수 있을 뿐만 아니라 이미지에서 개체를 위치 지정시킬 수도 있습니다.

 


작동 중인 Amazon SageMaker 개체 탐지 알고리즘의 예입니다. 사진은 PEXELS를 통해 Mansoor에 의해 제공됩니다.

 

SSD(Single-Shot Multi-Box Detector)는 이 작업을 수행하기 위한 보다 빠르고 정확한 알고리즘 중 하나입니다. 추론 중에 하나의 패스만으로 이미지에서 여러 개체를 감지합니다. 이제 SSD가 SageMaker가 가능한 모든 리전에서 Amazon SageMaker 고객을 위한 기본 제공 알고리즘으로 제공됨을 알려 드리게 되어 기쁩니다. 알고리즘은 다음과 같은 구성에서 P2/P3 인스턴스를 사용하여 훈련할 수 있습니다.

  • 단일 시스템, 단일 GPU
  • 단일 시스템, 다중 GPU
  • 다중 시스템, 다중 GPU

알고리즘은 Amazon SageMaker에서 지원하는 모든 CPU 및 GPU 인스턴스에서 호스팅할 수 있습니다. 훈련을 받고 적절하게 호스트되면 알고리즘은 글 초반의 이미지에서 보여진 각 개체 범주의 점수에 따라 쿼리 이미지에 개체 인스턴스에 대한 경계 상자를 생성합니다. 알고리즘은 다양한 크기의 다양한 개체를 처리하고 기본적으로 확장할 수 있습니다.

SSD 알고리즘은 컨벌루션(convolutional) 피쳐 맵을 사용합니다. 다양한 규모의 피쳐 맵을 사용하여 SSD는 잠재적 개체 후보의 여러 상자를 생성합니다. 그런 다음 비최대화 억제를 수행하여 겹치는 상자를 제거합니다. 점수가 가장 높은 점수를 가진 점수는 개체 예측으로 선정됩니다. 이 알고리즘이 다양한 합성 신경 네트워크와 호환되기 때문에, 많은 인기 있는 네트워크 아키텍처들이 사용될 수 있습니다. 이 알고리즘을 제공하는 두가지 기본 네트워크인 VGG16ResNet50 중 하나를 선택할 수 있습니다. 이는 고객의 개체 탐지 데이터셋으로 전송할 수 있는 ImageNet 분류 작업에 대해 사전 교육을 받은 모델입니다.

 

시작하기

Amazon SageMaker 개체 탐지 기능은 고객의 훈련 데이터셋이 Amazon Simple Storage Service(Amazon S3)에 있을 것으로 예상합니다. 일단 훈련을 받으면 Amazon S3에서도 결과 모델 아티팩트가 발생합니다. Amazon SageMaker는 훈련동안 고객의 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 시작하고 중지하는 작업을 담당합니다. 모델을 훈련한 후에는 엔드포인트에 배포할 수 있습니다. Amazon SageMaker 워크플로우에 대한 일반적인 개요는 Amazon SageMaker 설명서를 참조하십시오.

우선 알고리즘의 입력은 훈련 구성을 설정하기 위해 MXNet RecordIO 형식이나 JSON 주석이 있는 원시 이미지에 있어야 합니다. 저희는 이미지가 많은 RecordIO 형식을 추천드립니다. 저희는 두가지 이유로 추천을 드리는데 일반적으로 큰 파일 하나를 다운로드하는 것보다 Amazon S3에서 많은 작은 파일을 다운로드하는 것이 더 느립니다. 또한 알고리즘은 기본적으로 RecordIO 형식을 사용합니다. 알고리즘을 여러번 실행하는 경우 RecordIO 형식에 데이터를 가지고 있으며 귀중한 변환 시간을 절약할 수 있습니다. 개체 탐지 알고리즘은 훈련용 GPU 인스턴스만 지원하므로 대용량 배치 사이즈의 훈련에 메모리가 더 많은 GPU 인스턴스를 사용하는 것이 좋습니다. 알고리즘이 훈련되는 동안, SageMaker 노트북 또는 Amazon CloudWatch를 통해 진행 상황을 모니터링할 수 있습니다. 훈련이 완료되면 훈련 구성에서 지정한 Amazon S3 출력 위치에 훈련 모델 아티팩트가 업로드됩니다. 모델을 엔드포인트로 배포하려면 CPU 또는 GPU 인스턴스를 사용하도록 선택할 수 있습니다.

 

실적 수치

다음 표에서는 Amazon SageMaker 개체 탐지 알고리즘에 대한 일부 성능 수치를 보여 줍니다. PASCAL VOC07VOC12 데이터 셋을 훈련했으며, 512X512 (image_shape=512)의 이미지 크기로 VOC07 데이터셋의 평균 정확도를 보여 주었습니다. 다음 표에 대한 실험의 경우, 기본 매개 변수(가속도=0.9, 중량 감소=0.0005)를 사용하는 최적화를 sgd로 사용했습니다. 4개의 모든 설정에 대해 240개의 에포치(epoch)를 위해 훈련을 실시했고, 80 에포치(epoch)와 160 에포치(epoch)에서 0.1배까지 학습 속도를 줄였습니다. 이러한 학습 전략은 다음과 같은 하이퍼파라미터 epochs =240,  lr_scheduler_step = “80, 160” 및 lr_scheduler_factor = 0.1를 사용하여 구현됩니다. 제한된 파라미터 조정으로 보실 수 있듯이, 저희는 여기 보고된 것과 같은 최첨단 실적수치를 갖추고 있습니다.

 

네트워크 인스턴스 사용한 사전 훈련된 모델 배치 사이즈 학습 속도 평균 정밀도
VGG-16 ml.p3.8xlarge Yes 64 0.004 0.780
VGG-16 ml.p3.2xlarge Yes 16 0.0005 0.780
ResNet-50 ml.p3.8xlarge Yes 64 0.002 0.791
ResNet-50 ml.p3.2xlarge Yes 16 0.0005 0.796

 

base_network = “resnet-50”를 사용하여 P2 인스턴스에서 단일 GPU에서 16 GPU로, P3 인스턴스에서 단일 GPU에서 8 GPU로 전환하는동안 대략적인 선형 속도를 관찰합니다. 이것은 아래 그림에서 분명히 알 수 있습니다. 마찬가지로 P2에서 P3 단일 GPU 인스턴스로 전환할 때 속도가 6배 이상 증가했습니다.

 

 

또한 여러 시스템에서 확장할 때 속도가 느려지는 것을 관찰합니다. 예를 들어 ml.p2.8xlarge 인스턴스를 사용하는 경우 한대의 시스템에서 2대의 시스템으로, 그리고 4대의 시스템으로 이동할 때 각각 1.8x 및 3.6x의 속도가 표시됩니다.

 

노트북

노트북 형식으로 개체 탐지의 예를 사용할 수 있습니다. 전체 자습서와 데이터 준비 및 하이퍼파라미터에 대한 몇가지 권장 사항을 참조하십시오.

 

결론

이 글에서는 새로운 Amazon SageMaker 개체 탐지 알고리즘을 사용하여 시작하는 방법을 보여 주었습니다. 실적 수치의 예를 몇가지 보여 드렸습니다.

 

원문 URL: https://aws.amazon.com/ko/blogs/machine-learning/object-detection-algorithm-now-available-in-amazon-sagemaker/

* 메가존 TechBlog는 AWS BLOG 영문 게재글중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.