6.2 KiB
comments | description | keywords |
---|---|---|
true | Ultralytics 프레임워크에서 MobileSAM을 다운로드하고 테스트하는 방법, MobileSAM의 구현 방식, 원본 SAM과의 비교, 모바일 애플리케이션 향상 등에 대해 자세히 알아보세요. 오늘부터 모바일 애플리케이션을 개선하세요. | MobileSAM, Ultralytics, SAM, 모바일 애플리케이션, Arxiv, GPU, API, 이미지 인코더, 마스크 디코더, 모델 다운로드, 테스트 방법 |
Mobile Segment Anything (MobileSAM)
MobileSAM 논문은 이제 arXiv에서 사용할 수 있습니다.
MobileSAM을 CPU에서 실행하는 데모는 이 데모 링크에서 확인할 수 있습니다. Mac i5 CPU에서의 성능은 약 3초입니다. Hugging Face 데모에서는 인터페이스와 낮은 성능의 CPU가 느린 응답으로 이어지지만, 여전히 효과적으로 작동합니다.
MobileSAM은 Grounding-SAM, AnyLabeling 및 Segment Anything in 3D를 비롯한 여러 프로젝트에서 구현되었습니다.
MobileSAM은 1%의 원본 이미지로 구성된 100k 데이터셋에서 하루 이내에 단일 GPU로 학습됩니다. 이 학습을 위한 코드는 나중에 공개될 예정입니다.
사용 가능한 모델, 지원되는 작업 및 작동 모드
이 표에서는 사용 가능한 모델과 해당 모델에 대한 사전 훈련 가중치, 지원되는 작업, Inference, Validation, Training 및 Export와 같은 다양한 작동 모드의 호환성을 나타냅니다. 지원되는 모드는 ✅ 이모지로 표시되고, 지원되지 않는 모드는 ❌ 이모지로 표시됩니다.
모델 유형 | 사전 훈련 가중치 | 지원되는 작업 | Inference | Validation | Training | Export |
---|---|---|---|---|---|---|
MobileSAM | mobile_sam.pt |
인스턴스 세그멘테이션 | ✅ | ❌ | ❌ | ✅ |
SAM에서 MobileSAM으로의 적응
MobileSAM은 원본 SAM과 동일한 파이프라인을 유지하므로, 원본의 전처리, 후처리 및 모든 다른 인터페이스를 통합했습니다. 따라서 현재 원본 SAM을 사용 중인 경우, MobileSAM으로 전환하는 데 최소한의 노력이 필요합니다.
MobileSAM은 원본 SAM과 비교 가능한 성능을 발휘하며, 이미지 인코더만 변경되었습니다. 구체적으로, 원본의 무거운 ViT-H 인코더 (632M)를 더 작은 Tiny-ViT (5M)로 대체했습니다. 단일 GPU에서 MobileSAM은 이미지 당 약 12ms의 작업 시간이 소요됩니다. 이미지 인코더에는 8ms가 소요되고, 마스크 디코더에는 4ms가 소요됩니다.
다음 표는 ViT 기반 이미지 인코더를 비교합니다:
이미지 인코더 | 원본 SAM | MobileSAM |
---|---|---|
매개변수 | 611M | 5M |
속도 | 452ms | 8ms |
원본 SAM과 MobileSAM은 동일한 프롬프트 가이드 마스크 디코더를 사용합니다:
마스크 디코더 | 원본 SAM | MobileSAM |
---|---|---|
매개변수 | 3.876M | 3.876M |
속도 | 4ms | 4ms |
전체 파이프라인의 비교는 다음과 같습니다:
전체 파이프라인 (인코더+디코더) | 원본 SAM | MobileSAM |
---|---|---|
매개변수 | 615M | 9.66M |
속도 | 456ms | 12ms |
MobileSAM과 원본 SAM의 성능은 포인트 및 박스를 사용한 프롬프트를 통해 확인할 수 있습니다.
MobileSAM은 우수한 성능을 자랑하며, 현재의 FastSAM보다 약 5배 작고 7배 빠릅니다. 자세한 내용은 MobileSAM 프로젝트 페이지에서 확인할 수 있습니다.
Ultralytics에서 MobileSAM 테스트
원본 SAM과 마찬가지로, 포인트 및 박스 프롬프트 모드를 포함한 Ultralytics에서 간단한 테스트 방법을 제공합니다.
모델 다운로드
모델을 여기에서 다운로드할 수 있습니다.
포인트 프롬프트
!!! Example "예제"
=== "Python"
```python
from ultralytics import SAM
# 모델 불러오기
model = SAM('mobile_sam.pt')
# 포인트 프롬프트를 기반으로 세그먼트 예측
model.predict('ultralytics/assets/zidane.jpg', points=[900, 370], labels=[1])
```
박스 프롬프트
!!! Example "예제"
=== "Python"
```python
from ultralytics import SAM
# 모델 불러오기
model = SAM('mobile_sam.pt')
# 박스 프롬프트를 기반으로 세그먼트 예측
model.predict('ultralytics/assets/zidane.jpg', bboxes=[439, 437, 524, 709])
```
MobileSAM
과 SAM
은 동일한 API를 사용하여 구현되었습니다. 더 많은 사용법에 대해서는 SAM 페이지를 참조하세요.
인용 및 감사의 글
MobileSAM이 연구 또는 개발에 유용하게 사용된 경우, 다음의 논문을 인용해 주시기 바랍니다:
!!! Quote ""
=== "BibTeX"
```bibtex
@article{mobile_sam,
title={Faster Segment Anything: Towards Lightweight SAM for Mobile Applications},
author={Zhang, Chaoning and Han, Dongshen and Qiao, Yu and Kim, Jung Uk and Bae, Sung Ho and Lee, Seungkyu and Hong, Choong Seon},
journal={arXiv preprint arXiv:2306.14289},
year={2023}
}