Faster Segment Anything: Towards Lightweight SAM for Mobile Applications

2024. 10. 15. 13:46Deep Learning

Faster Segment Anything: Towards Lightweight SAM for Mobile Applications

 

Chaoning Zhang, Dongshen Han, Yu Qiao, Jung Uk Kim, Sung-Ho Bae, Seungkyu Lee, Choong Seon Hong

 

Abstract

Segment Anything Model (SAM)은 인상적인 제로 샷 전송 성능과 다양한 비전 애플리케이션(예: 세분화된 제어를 통한 이미지 편집)에 대한 높은 다재다능함으로 인해 상당한 주목을 받고 있습니다.

이러한 애플리케이션의 대부분은 휴대폰과 같은 리소스가 제한된 에지 장치에서 실행되어야 합니다.

본 연구에서는 헤비급 이미지 인코더를 경량 이미지 인코더로 대체하여 SAM을 모바일 친화적으로 만드는 것을 목표로 합니다.

원본 SAM 논문에서와 같이 새로운 SAM을 학습하는 나이브한 방법은 특히 제한된 학습 소스를 사용할 수 있는 경우 만족스럽지 않은 성능으로 이어집니다.

우리는 주로 이미지 인코더와 마스크 디코더의 결합된 최적화에서 분리 distillation을 제안하는 동기에 의해 발생한다는 것을 발견했습니다.

구체적으로, 우리는 헤비 이미지 인코더(원본 SAM의 ViT-H)에서 경량 이미지 인코더로 지식을 distill하여 원본 SAM의 마스크 디코더와 자동으로 호환될 수 있습니다.

이 학습은 하루 이내에 단일 GPU에서 완료할 수 있으며, 그 결과 경량 SAM을 MobileSAM이라고 하며, 이는 60배 이상 작지만 원래 SAM과 동등한 성능을 발휘합니다.

추론 속도를 위해 단일 GPU를 사용하면 MobileSAM은 이미지당 약 10ms를 실행합니다: 이미지 인코더에서는 8ms, 마스크 디코더에서는 4ms의 성능을 제공합니다.

뛰어난 성능으로 MobileSAM은 동시 FastSAM보다 약 5배 빠르고 크기가 7배 작아 모바일 애플리케이션에 더 적합합니다.

또한 MobileSAM은 CPU에서 비교적 원활하게 실행될 수 있음을 보여줍니다.

 

 

1  Introduction

ChatGPT Zhang et al. [2023a]는 NLP 분야에 혁명을 일으켜 생성 AI(AIGC, a.k.a Artificial intelligence generated content) Zhang et al. [2023b]의 획기적인 발전을 이루었습니다.

이를 가능하게 만든 것은 웹 규모의 텍스트 데이터 세트에서 학습된 파운데이 모델인 브라운 외 [2020], 래드포드 외 [2018, 2019]에 있습니다.

이를 가능하게 만든 것은 웹 규모의 텍스트 데이터 세트에서 학습된 파운데이션 모델 Bommasani et al. [2021]인 GPT 시리즈 모델 Brown et al. [2020], Radford et al. [2018, 2019]에 있습니다.

NLP에서 기초 모델의 성공 이후, 여러 연구 He et al. [2020], Chiao et al. [2023a], Zhang et al. [2022a]에서 대조 학습을 통해 텍스트 인코더와 함께 이미지 인코더를 학습했습니다 He et al. [2020], Zhang et al. [2022b].

최근 Meta Research 팀은 'Segment Anything' 프로젝트 Kirillov et al. [2023]를 발표했는데, 이 프로젝트에서 SAM이라는 프롬프트-가이드 비전 파운데이션이 제안되었으며 비전을 위한 GPT의 순간으로 여겨집니다.
SAM은 두 가지 구성 요소로 구성됩니다: 순차적으로 작동하는 ViT 기반 이미지 인코더와 프롬프트-가이드 마스크 디코더(그림 1 참조).

그림 1: Segment Anything Model 개요.

SAM이 등장한 이래로 SAM은 여러 가지 이유로 상당한 관심을 받고 있습니다.
첫째, 비전이 NLP를 따라 파운데이션 모델과 프롬프트 엔지니어링을 결합한 경로를 추구할 수 있다는 것을 최초로 보여주었습니다.
둘째, 레이블 예측과 병행하는 근본적인 비전 작업인 레이블 없는 세그멘테이션을 최초로 수행한 것입니다 Zhang et al. [2023c].
또한 이 기본 작업을 통해 SAM은 다른 모델과 호환되어 텍스트 가이드 세그멘테이션 및 세분화된 제어를 통한 이미지 편집과 같은 고급 비전 애플리케이션을 구현할 수 있습니다.
그러나 이러한 많은 사용 사례는 모바일 앱과 같이 리소스가 제한된 엣지 디바이스에서 실행해야 합니다.
공식 데모에서 볼 수 있듯이 처리된 이미지 임베딩을 통해 SAM은 마스크 디코더가 가볍기 때문에 리소스가 제한된 장치에서 작동할 수 있습니다.
SAM 파이프라인 계산이 무거운 이유는 거대한 이미지 인코더에 있습니다.
이 연구에서는 자원이 제한된 모바일 장치에 적합한 경량 SAM을 얻는 방법을 조사하며, 이를 MobileSAM이라고 합니다.

표 1: 다양한 이미지 인코더를 사용하는 SAM의 파라미터.

SAM의 디폴트 이미지 인코더가 ViT-H를 기반으로 한다는 점을 감안할 때, MobileSAM을 얻는 간단한 방법은 Kirillov et al. [2023]의 공식 파이프라인을 따라 ViT-H를 더 작은 ViT-L 또는 더 작은 ViT-B로 대체하는 것과 같은 더 작은 이미지 인코더로 새로운 SAM을 재학습하는 것입니다.
다양한 변형의 이미지 인코더를 사용하는 SAM의 파라미터는 표 1에 요약되어 있습니다.
Kirillov et al. [2023]에 명시된 바와 같이, 이미지 인코더에 ViT-L 또는 ViT-B를 사용하여 새로운 SAM을 학습하려면 며칠 동안 128개의 GPU가 필요합니다.
이러한 리소스 집약적 재학습은 결과를 재현하거나 개선하는 데 사소하지 않은 부담이 될 수 있습니다.
이러한 최적화 난이도는 주로 이미지 인코더와 마스크 디코더의 결합된 최적화에서 비롯됩니다.
이러한 이해에서 영감을 받아 이미지 인코더와 마스크 디코더의 최적화를 분리할 것을 제안합니다.
구체적으로, 먼저 디폴트 이미지 인코더 ViT-H에서 작은 ViT로 지식을 distill합니다.
그런 다음 원본 SAM에서 마스크 디코더를 파인튜닝하여 distill된 이미지 인코더와 더 잘 일치시킬 수 있습니다.
경량 이미지 인코더가 디폴트 이미지 인코더에서 distill된다는 사실은 디폴트 마스크 디코더와의 고유한 정렬을 보장하기 때문에 정렬 최적화가 선택 사항이라는 점을 강조할 필요가 있습니다.

 

새로운 SAM 파이프라인을 찾는 문제를 분리 distillation 방식으로 전환함으로써, 우리의 접근 방식은 간단하고 효과적이면서도 저비용으로 재현할 수 있다는 장점이 있습니다 (하루 미만의 단일 GPU에서).
그 결과 MobileSAM은 인코더 매개변수를 100배, 총 매개변수를 60배까지 줄였습니다.
놀랍게도 이러한 경량 MobileSAM은 원래의 헤비급 SAM과 동등한 성능을 발휘하므로 모바일 애플리케이션에 SAM을 적용하기 위한 중요한 단계입니다.

MobileSAM을 사용한 추론의 경우 단일 이미지는 약 10ms밖에 걸리지 않습니다: 이미지 인코더에서 8ms, 마스크 디코더에서 4ms.
MobileSAM은 동시 FastSAM Zhao et al. [2023]보다 약 5배 빠르고 7배 작으면서도 우수한 성능을 달성한다는 점을 강조할 필요가 있습니다.

 

 

 

2  Related work

SAM: generalization and versatility.

올해 4월 초 출시 이후 다양한 관점에서 SAM을 조사하기 위한 수많은 프로젝트와 논문이 등장했습니다.
SAM이 모든 것을 세그멘트한다고 주장하는 것을 고려할 때, 의료 이미지 Ma and Wang[2023], Zhang et al. [2023d], 위장된 물체 Tang et al. [2023], 투명한 물체 Han et al. [2023] 등 실제 상황에서의 성과를 보고한 일련의 작업이 있습니다.
이 연구 결과는 SAM이 일반 설정에서는 잘 작동하지만 위의 어려운 설정에서는 잘 작동하지 않는다는 것을 일관되게 보여줍니다.
또 다른 중요한 연구 방향은 SAM의 실용성을 개선하기 위해 SAM을 강화하는 데 초점을 맞추고 있습니다.
Attack-SAM Zhang et al. [2023e]은 악의적으로 생성된 적대적 섭동을 통해 적대적 공격에 의해 SAM의 출력 마스크를 쉽게 조작할 수 있음을 보여주었습니다.
또 다른 연구 Qiao et al. [2023b]는 style transfer 및 일반적인 손상부터 로컬 폐색 및 적대적 섭동에 이르기까지 SAM의 포괄적인 견고성 평가를 추가로 수행합니다.
Qiao et al. [2023b] SAM은 강건성은 높지만 적대적 섭동에는 그렇지 않으며, 이는 Zhang et al. [2023e]의 결과와 잘 일치합니다.
또 다른 작업 라인은 SAM의 다재다능함을 입증하는 데 중점을 둡니다.
Grounded SAM IDEA-Research [2023]은 텍스트 입력으로 모든 것을 세그멘트하기 위해 Grounding DINO Liu et al. [2023a]와 SAM을 결합하는 선구적인 작업입니다.
특히 Grounding DINO에 의존하여 텍스트에서 바운딩 상자를 생성한 다음 생성된 상자를 프롬프트로 사용하여 마스크를 세그멘트할 수 있습니다.
SAM은 레이블이 없는 마스크와 여러 작품 Chen et al. [2023], Park [2023]을 예측하여 SAM을 CLIP Radford et al. [2021]과 같은 다른 모델과 결합하여 의미론적으로 모든 것을 세그멘트합니다.
객체 세그멘테이션 외에도 이미지 편집 Rombach et al. [2022]은 물론 인페인팅 작업 Yu et al. [2023], 동영상 내 객체 추적Yang et al. [2023], Zxyang [2023] 등 다른 분야에서도 여러 작업에서 다재다능함을 보여주었습니다.
SAM의 연구는 2D 비전을 넘어 3D 객체 재구성 Shen et al. [2023], Kang et al. [2022]으로도 확장되어 단일 이미지에서 3D 모델 생성을 지원하는 능력을 입증했습니다.
SAM에 대한 완전한 서베이는 Zhang et al. [2023c]을 참조하는 것이 좋습니다.

 

ViT: lightweight and efficient.

초기 모바일 비전 애플리케이션은 주로 MobileNet Howard et al. [2017]과 개선된 변종 Sandler et al. [2018], Howard et al. [2019]과 같은 경량 CNN을 기반으로 합니다.
MobileNet의 핵심 아이디어는 일반 컨볼루션 블록을 depth-wise 컨볼루션과 point-wise 컨볼루션으로 분리하여 모드 매개변수와 계산 시간을 크게 줄이는 데 있습니다.
ViT Dosovitskiy et al. [2021]가 등장한 이후, 가볍고 효율적으로 만들기 위해 수많은 연구가 시도되었습니다.
원래 ViT 논문의 ViT-Huge (ViT-H), ViT-Large (ViT-L), ViT-Base (ViT-B)와 상보적으로, 더 작은 ViT는 Touvron et al. [2020]에 소개되어 있으며 Deit-Small (Deit-S) 및 Deit-Tiny (Deit-T) ViT-Small 및 ViT-Tiny로 표시됩니다.
MobileViT Mehta and Rastegari [2021]는 성능 향상을 위해 표준 컨볼루션과 ViT를 결합하여 MobileNet v2 Sandler et al. [2018]를 능가하는 선구적인 작업입니다.
주요 동기는 CNN의 로컬 표현 기능을 활용하는 것이며, 이러한 관행은 EfficientFormer Li et al. [2022a], EfficientViT Liu et al. [2023b], Next-ViT Li et al. [2022b], Tiny-ViT Wu et al. [2022] 등 모델 속도를 향상시키는 것을 목표로 하는 여러 후속 작업이 뒤따릅니다.
가볍고 빠른 ViT의 최근 진전은 차세대 SAM을 리소스가 제한된 모바일 장치에 적합하게 만들기 위해 제안한 분리 distillation과 상호 보완적입니다.

 

 

 

3  Mobile-Friendly SAM

3.1 Background and Project Goal

Background on SAM.

여기서는 먼저 SAM의 구조와 작동 방식을 요약합니다.

SAM은 ViT 기반 이미지 인코더와 프롬프트-가이드 마스크 디코더로 구성됩니다.

이미지 인코더는 이미지를 입력으로 받아 임베딩을 생성한 다음 마스크 디코더에 공급합니다.

마스크 디코더는 점(또는 상자)과 같은 프롬프트를 기반으로 배경에서 모든 객체를 잘라내는 마스크를 생성합니다.

또한 SAM은 모호성 문제를 해결하기 위해 동일한 프롬프트에 대해 여러 개의 마스크를 생성할 수 있으므로 귀중한 유연성을 제공합니다.

이를 고려하여 이 작업은 먼저 이미지 임베딩을 생성하기 위해 ViT 기반 인코더를 채택한 다음 원하는 마스크를 생성하기 위해 프롬프트-가이드 디코더를 채택하도록 SAM의 파이프라인을 유지합니다.

이 파이프라인은 "segment everything"하는 다운스트림 작업에 사용할 수 있는 "segment anything"를 위해 최적으로 설계되었습니다(자세한 내용은 섹션 4.3 참조).

 

Proejct goal.

이 프로젝트의 목표는 가벼운 방식으로 만족스러운 성능을 달성하고 원본 SAM보다 훨씬 빠른 모바일 친화적인 SAM (MobileSAM)을 생성하는 것입니다.

원본 SAM의 프롬프트-가이드 마스크 디코더는 4M개 미만의 파라미터를 가지고 있으므로 가벼운 것으로 간주됩니다.

공개 데모에서 볼 수 있듯이 인코더에서 처리되는 이미지 임베딩이 주어지면 마스크 디코더가 가볍기 때문에 SAM은 리소스가 제한된 장치에서 작동할 수 있습니다.

그러나 원본 SAM의 디폴트 이미지 인코더는 600M 이상의 파라미터를 가진 Vit-H를 기반으로 하므로 매우 무겁고 전체 SAM 파이프라인이 모바일 장치와 호환되지 않습니다.

따라서 모바일 친화적인 SAM을 얻기 위한 키는 무거운 이미지 인코더를 가벼운 이미지 인코더로 교체하는 데 있으며, 이는 원본 SAM의 모든 기능과 특성을 자동으로 유지합니다.

다음에서는 이 프로젝트 목표를 달성하기 위해 제안한 방법에 대해 자세히 설명합니다.

 

3.2 Proposed Method

Coupled distillation.

프로젝트 목표를 실현하는 간단한 방법은 Kirillov et al. [2023]의 공식 파이프라인을 따라 작은 이미지 인코더로 새로운 SAM을 재학습하는 것입니다.

Kirillov et al. [2023]에 명시된 바와 같이, ViT-H 이미지 인코더로 SAM을 학습하려면 256개의 A100 GPU에서 68시간이 걸립니다.

ViT-H를 ViT-L 또는 ViT-B로 교체하면 필요한 GPU가 128개로 감소하며, 이는 커뮤니티의 많은 연구자가 결과를 재현하거나 개선하는 데 여전히 사소한 부담이 됩니다.

접근 방식에 따라 더 작은 이미지 인코더를 채택하고 제공된 세그멘테이션 데이터 세트인 11-T로 새로운 SAM을 재학습할 수 있습니다.

제공된 데이터 세트의 마스크는 사전 학습된 SAM (ViT 이미지 인코더 사용)에 의해 제공된다는 점에 유의하세요.

기본적으로 이 재학습 프로세스는 knowledge distillation Hinton et al. [2015]이며, 지식을 ViT-H 기반 SAM에서 더 작은 이미지 인코더가 있는 SAM으로 전달합니다 (그림 2 왼쪽 참조).

그림 2: SAM의 결합 knowledge distillation. 왼쪽 하위 그림은 완전 결합 distillation을 나타내며 오른쪽 그림은 반결합 distillation을 나타냅니다.

From semi-coupled to decoupled distillation.

더 작은 이미지 인코더로 원본 SAM에서 KD를 수행할 때, 주로 이미지 인코더와 결합 디코더의 결합 최적화에 어려움이 있습니다.
직관적으로 이미지 인코더의 최적화는 이미지 디코더의 품질에 따라 달라지며, 그 반대의 경우도 마찬가지입니다.
SAM의 두 모듈이 모두 나쁜 상태이면 두 모듈을 모두 좋은 상태로 학습시키는 것이 더 어렵습니다.
분할 및 정복 알고리즘인 Zhang et al. [2022c]에서 영감을 받아 KD 작업을 두 가지 하위 작업으로 나눌 것을 제안합니다: 이미지 인코더 distillation 및 마스크 디코더 파인튜닝.
구체적으로, 먼저 ViT-H에서 더 작은 인코더로 지식을 전달하여 이미지 인코더에 대한 KD를 수행합니다.
원본 SAM의 마스크 디코더는 이미 가볍기 때문에 아키텍처를 유지할 계획입니다.
이렇게 하면 처음부터 학습하는 대신 파인튜닝에 쉽게 사용할 수 있는 결합 디코더의 이점이 있습니다.
결합 distillation의 최적화 문제를 완화하기 위해 간단한 방법은 복사 및 frozen 마스크 디코더로 이미지 인코더를 최적화하는 것입니다 (그림 2 오른쪽 참조).
freezing 작업은 잘못된 이미지 인코더로 인해 마스크 디코더의 품질이 저하되는 것을 방지하는 데 도움이 될 수 있습니다.
이미지 인코더의 최적화가 여전히 마스크 디코더에서 완전히 분리되지 않았기 때문에 이 distillation을 반결합이라고 부릅니다.
경험적으로, 프롬프트의 선택이 랜덤이기 때문에 마스크 디코더가 가변적이어서 최적화 난이도가 증가하기 때문에 이러한 최적화는 여전히 어렵다는 것을 발견했습니다.
따라서 결합된 디코더에 의존하지 않고 원본 SAM의 ViT-H에서 직접 작은 이미지 인코더를 distill할 것을 제안하며, 이를 decoupled distillation이라고 합니다 (그림 3 참조).
이미지 임베딩에서 distillation을 수행할 때의 또 다른 장점은 Kirillov et al. [2023]에서와 같이 마스크 예측을 위해 focal loss Lin et al. [2017]와 dice loss Milletari et al. [2016]를 조합하는 대신 간단한 MSE loss를 채택할 수 있다는 점입니다.

그림 3: SAM의 decoupled distillation.

On the necessity of mask decoder finetuning.

위의 decoupled distillation은 반결합 distillation과 달리 원본 frozen 마스크 디코더와 잘 정렬되지 않을 수 있는 경량 이미지 인코더를 생성합니다.

경험적으로 student 이미지 인코더에서 생성된 이미지 인코딩이 원래 teacher 인코더의 인코딩과 충분히 비슷할 수 있기 때문에 이는 사실이 아니며, 두 번째 단계에서 결합된 디코더의 파인튜닝은 선택 사항으로 간주됩니다.

frozen 경량 이미지 인코더에서 마스크 디코더를 파인튜닝하거나 함께 파인튜닝하면 성능이 더욱 향상될 것으로 예상됩니다.

 

Preliminary evaluation.

여기서는 coupled distillation과 decoupled distillation을 비교하기 위한 예비 조사를 수행합니다.
여기서는 성능 평가를 위해 teacher SAM과 student SAM이 동일한 프롬프트 포인트에서 생성한 두 마스크 간의 mIoU를 계산합니다.
직관적으로 mIoU가 높을수록 ViT-H에서 생성된 마스크가 ground truth라고 가정하여 마스크 예측 성능이 높다는 것을 나타냅니다.
coupled distillation의 경우, 원본 SAM Kirillov et al. [2023]에서 제공되는 ViT-B가 포함된 SAM을 채택합니다.
180k iterations를 반복하여 128개의 GPU (GPU당 1개 샘플)에서 SA-1B (11M 이미지)로 학습했습니다.
반면, decoupled distillation 설정에서는 55k iterations에 대한 0.1% SA-1B 데이터 세트 (11k) 이미지 샘플에 대해 2개의 GPU (계산 리소스를 절약하기 위해 GPU당 2개의 샘플)로 모델을 학습합니다.
전반적으로 decoupled distillation은 coupled distillation보다 계산 자원의 1% 미만을 차지하는 동시에 coupled sit의 경우 0.75 vs. 0.72의 우수한 성능인 mIoU를 달성합니다 (200개 샘플 평균).
ViT-B는 여전히 모바일 장치에 사소하지 않은 부담이기 때문에, 다음에서는 제안된 decoupled distillation을 기반으로 TinyViT (5M 파라미터 포함) Wu et al. [2022]를 실험합니다.

표 2: 이미지 인코더로서 SAM과 ViT-B의 coupled distillation 및 decoupled distillation을 비교합니다. decoupled distillation은 coupled distillation보다 성능이 뛰어나고 계산 자원이 1% 미만이어야 합니다.

 

 

4  Experiments

4.1 Experimental Setup

Lightweight Image Encoder.

우리 프로젝트의 목표는 디폴트 ViT-H를 모바일 장치용 경량 이미지 인코더로 대체하여 효율적인 SAM을 얻는 것입니다.
ViT 기반 백본인 ViT-Tiny는 Deit-Tiny와 유사한 매개 변수를 가지고 있지만 더 나은 성능을 발휘합니다.
예를 들어, ImageNet-1K에서 Deit-Tiny는 72.2%의 정확도를 달성한 반면, ViT-Tiny는 79.1%의 정확도를 달성했습니다.
따라서 우리는 원래 SAM보다 훨씬 빠를 수 있는 경량 모바일 SAM을 학습하기 위해 제안한 decoupled distillation의 효과를 입증하기 위해 개념 증명에 ViT-Tiny를 채택합니다.
채택된 경량 이미지 인코더는 해상도를 점진적으로 낮추는 4단계로 구성됩니다.
첫 번째 단계는 잔차가 반전된 컨볼루션 블록으로 구성되며, 나머지 세 단계는 트랜스포머 블록으로 구성됩니다.
모델의 시작 부분에는 해상도 다운샘플링을 위해 스트라이드가 2인 2개의 컨볼루션 블록이 있습니다.
서로 다른 스테이지 간의 다운샘플링 작업은 스트라이드가 2인 컨볼루션 블록으로 처리됩니다.
Wu et al. [2022]과 달리, 최종 해상도를 원래 SAM의 ViT-H 이미지 인코더와 일치시키기 위해 마지막 다운샘플링 컨볼루션에서 2의 스트라이드를 1로 설정했습니다.
MobileSAM의 파라미터 추론 속도는 표 3에 요약되어 있습니다.
섹션 2에서 설명한 다른 효율적인 이미지 인코더도 이미지 인코더로 채택할 수 있습니다.

표 3: 원본 SAM과 MobileSAM에서 이미지 인코더의 파라미터와 속도 비교. 추론 속도는 단일 GPU에서 측정됩니다.

Training and evaluation details.

이미지 인코더에서 decoupled KD의 경우, 단일 GPU에서 8개의 에포크 동안 SA-1B 데이터 세트 Kirillov et al. [2023]의 1%로 경량 인코더를 학습시킵니다.
우리는 teacher 이미지 인코더의 포워드 프로세스가 채택된 student 이미지 인코더보다 훨씬 더 무겁다는 점을 고려할 때 더 많은 계산이 소요되는 것을 관찰했습니다 (위 참조).
distillation 속도를 높이기 위해 Wu et al. [2022]의 관행을 따라 이미지 임베딩을 미리 저장하여 순방향 프로세스를 한 번만 실행하면 됩니다.
단일 GPU를 사용하면 하루도 채 되지 않아 MobileSAM을 얻을 수 있습니다.
더 많은 GPU로 MobileSAM을 더 오래 학습하면 더 나은 성능을 얻을 수 있을 것으로 예상됩니다.
마스크 디코더 파인튜닝 수행에 대한 초기 조사는 MobileSAM의 성능을 더욱 향상시키지만, 이 버전의 논문에서는 단순화를 위해 이 단계를 생략합니다.
distilled SAM의 정량적 평가를 위해 원본 SAM과 MobileSAM에서 예측한 마스크 간의 mIoU를 계산합니다.

 

4.2 MobileSAM performs on par with the original SAM

주요 결과의 경우, 두 가지 유형의 프롬프트와 함께 예측된 마스크를 보고합니다: 포인트 및 박스.

SAM의 공식 깃허브 프로젝트는 텍스트-가이드 마스크 디코더에 대한 사전 학습된 모델을 제공하지 않기 때문에 텍스트 프롬프트로 결과를 보고하지 않습니다.

포인트를 프롬프트로 사용한 결과는 그림 4에 표시되어 있고, 박스를 프롬프트로 사용한 결과는 그림 5에 표시되어 있습니다.

MobileSAM은 원본 SAM과 유사하게 만족스러운 마스크 예측을 수행하는 것으로 관찰됩니다.

그림 4: 단일 지점을 프롬프트로 사용하는 마스크 예측.
그림 5: 상자를 프롬프트로 사용하는 마스크 예측.
표 4: 학습 계산이 MobileSAM 성능에 미치는 영향에 대한 ablation 연구.

Ablation study.

여기서는 학습 계산이 SAM의 성능에 미치는 영향에 대한 ablation 연구를 수행합니다.

표 4의 결과는 동일한 iteration 횟수에서 배치 크기를 늘리면 모델 성능이 향상된다는 것을 보여줍니다.

또한 배치 크기에서 성능은 학습 에포크를 증가시켜 더 많은 업데이트 반복의 이점을 누릴 수 있습니다.

모든 실험은 단일 GPU에서 수행된다는 점에 유의하세요.

더 큰 배치 크기를 허용하거나 반복을 더 늘리기 위해 GPU 수를 늘리면 성능이 더욱 향상될 것으로 예상합니다.

 

4.3 MobileSAM outperforms FastSAM

Segment anything v.s. segment everything.

원본 SAM 논문의 제목 Kirillov et al. [2023]은 "segment everything"하는 대신 "segment anything"한다는 점에 유의하세요.
Kirillov et al. [2023]에서 강조한 바와 같이, SAM은 "returns a valid segmentation mask given any segmentation prompt"하는 프롬프트 세그멘테이션 작업을 수행합니다 (Kirillov et al. [2023]의 인용문).
프롬프트의 역할은 이미지에서 세그멘트할 항목을 지정하는 것입니다.
이론적으로 프롬프트가 올바르게 설정되어 있는 한 모든 개체를 세그멘트할 수 있으므로 "segment anything"이라고 합니다.
반면, 'segment everything'은 본질적으로 개체 제안 생성 Kirillov et al. [2023]이며, 이에 대한 프롬프트는 필요하지 않습니다.
Kirillov et al. [2023]에서는 제로 샷 전송 성능을 입증하기 위한 다운스트림 작업 중 하나로 "segment everything" (객체 제안 생성)을 선택했습니다.
요약하자면, 'segment anything"은 모든 객체에 대한 프롬프트 세그멘테이션의 기초 작업을 해결하는 반면, 'segment everything'은 모든 객체에 대한 마스크 제안 생성의 다운스트림 작업을 해결합니다.
"segment everything"하는 데 반드시 프롬프트가 필요한 것은 아니기 때문에 FastSAM은 프롬프트가 없는 방식으로 YOLO v8로 마스크 제안을 직접 생성합니다.
프롬프트 세그멘테이션을 활성화하기 위해 매핑 알고리즘은 제안 마스크 세트에서 마스크를 선택하도록 설계되었습니다.
전자가 기초 작업을 다루기 때문에 일반화/견고성을 평가하거나 다재다능성을 조사하는 후속 작업은 주로 모든 모드 대신 모든 것에 초점을 맞추고 있다는 점을 강조할 필요가 있습니다.
따라서 FastSAM과의 비교는 주로 "segment anything"에 초점을 맞추지만, 완성도를 위해 "segment everything"하는 것에 대한 비교도 제공합니다.

 

MobileSAM is faster and smaller.

FastSAM은 프롬프트-프리 마스크 제안 생성을 수행하기 위해 YOLOv8 기반 탐지 브랜치와 YOLACT 기반 세그멘테이션 브랜치로 구성됩니다.

68M 개의 파라미터를 가지고 있으며 이미지를 처리하는 데 40ms가 걸립니다.

반면 MobileSAM은 훨씬 작은 10M 개의 파라미터를 가지고 있습니다.

추론 속도의 경우 단일 GPU에서 이미지를 처리하는 데 40ms가 걸리는 반면 ours은 10ms만 소요되어 FastSAM보다 4배 빠릅니다 (표 6 참조).

표 6: FastSAM과 MobileSAM의 비교.
표 7: mIoU 비교. 원래 SAM에서 예측된 마스크가 ground truth라고 가정할 때, mIoU가 높을수록 더 나은 성능을 나타냅니다.

mIoU comparison under segment anything mode.

또한 예측된 마스크와 원본 SAM의 마스크를 비교합니다.

FastSAM은 여러 점으로 마스크를 예측할 때 제안되며, 이를 위해 전경용과 배경용 중 하나를 선택합니다.

표 7의 결과는 FastSAM의 mIoU가 MobileSAM의 mIoU보다 훨씬 작다는 것을 보여주며, 이는 FastSAM의 마스크 예측이 원본 SAM의 마스크 예측과 매우 다르다는 것을 시사합니다.

또한 두 프롬프트 포인트 사이의 거리가 멀면 FastSAM의 mIoU는 매우 빠르게 감소합니다.

이는 주로 전경 프롬프트 포인트가 배경 프롬프트 포인트에 너무 가깝게 설정되어 있을 때 FastSAM이 종종 객체를 예측하지 못하기 때문에 발생합니다.

그림 6: segment everything 결과 비교.

Results for segment everything.

"segment everything"에 대한 결과는 그림 6에 나와 있습니다.

완전성을 위해 만족스러운 객체 제안을 생성하는 원본 SAM의 결과도 보고합니다.

우리는 두 가지 주요 관찰 결과를 가지고 있습니다.

첫째, MobileSAM의 결과는 원본 SAM의 결과와 놀라울 정도로 잘 일치합니다.

반면에 FastSAM의 결과는 종종 만족스럽지 않습니다.

예를 들어, FastSAM은 첫 번째 이미지의 지붕과 같은 일부 객체를 예측하지 못하는 경우가 많습니다.

또한 마스크 제안은 때때로 해석하기 어렵습니다 (첫 번째 이미지의 스테이지와 두 번째 이미지의 하늘에 대한 마스크 참조).

둘째, FastSAM은 종종 경계가 매끄럽지 않은 마스크를 생성하며, 이를 위해 독자에게 그림 6의 세부 사항을 확인하기 위해 확대할 것을 제안합니다.

예를 들어, 세 번째 이미지의 기둥은 매끄럽지 않은 경계를 가지고 있는 반면, 원본 SAM과 MobileSAM은 이 문제가 없습니다.

 

 

 

5  Conclusion

본 연구에서는 헤비급 이미지 인코더를 경량 이미지 인코더로 교체하여 SAM을 모바일 친화적으로 만드는 것을 목표로 합니다.

우리는 원본 SAM 논문에서와 같이 새로운 SAM을 학습하는 나이브한 방법이 특히 제한된 학습 소스 설정 하에서 불만족스러운 성능으로 이어진다는 것을 발견했습니다.

이미지 인코더와 마스크 디코더의 결합된 최적화가 그 이유이며, 따라서 우리는 원본 SAM의 이미지 인코더 ViT-H에서 경량 이미지 인코더로 knowledge를 distilled하는 decoupled distillation을 제안한다.

우리는 결과적으로 경량 이미지 인코더가 원본 SAM의 마스크 디코더와 자동으로 호환될 수 있음을 보여준다.

우리의 MobileSAM은 60배 이상 작지만 원본 SAM과 동등한 성능을 발휘한다.

또한 동시 FastSAM과 비교하여 MobileSAM이 우수한 성능을 달성한다는 것을 보여준다.

또한 MobileSAM은 동시 FastSAM보다 4배 빠르고 7배 작기 때문에 모바일 애플리케이션에 더 적합하다.

MobileSAM은 원본 SAM의 모든 파이프라인을 유지하고 이미지 인코더만 대체하기 때문에 기존 SAM 기반 프로젝트가 거의 0의 노력으로 헤비급 SAM에서 경량 SAM으로 전환하는 데 플러그 앤 플레이가 가능하다.