> 기술 주변기기 > 일체 포함 > 사용자 정의 데이터 세트에서 Sam 2를 미세 조정 : 튜토리얼

사용자 정의 데이터 세트에서 Sam 2를 미세 조정 : 튜토리얼

Jennifer Aniston
풀어 주다: 2025-03-04 09:26:13
원래의
882명이 탐색했습니다.

Meta의 세그먼트 Nothing Model 2 (SAM 2)는 세분화 기술의 최신 혁신입니다. 이미지와 비디오에서 실시간으로 객체를 분류 할 수있는 메타의 최초의 통합 모델입니다. 그러나 왜 이미 무엇이든 분류 할 수 있다면 SAM 2를 미세 조정하는 이유는 무엇입니까?

Sam 2는 강력한 박스 외부에 있지만 희귀 또는 도메인 별 작업에 대한 성능이 항상 기대를 충족시키는 것은 아닙니다. 미세 조정으로 SAM2를 특정 요구에 적응시켜 특정 사용 사례의 정확성과 효율성을 향상시킬 수 있습니다. 이 기사에서는 Sam 2의 미세 조정 과정을 통해 단계별로 안내하겠습니다.

SAM2 란 무엇입니까?

> SAM2는 이미지 및 비디오에서 신속한 시각적 세분화를 위해 Meta가 개발 한 기초 모델입니다. Sam2는 정적 이미지에 주로 초점을 맞춘 전임자 인 Sam과 달리 비디오 세분화의 복잡성을 처리하도록 설계되었습니다.

SAM2- 작업, 모델 및 데이터 (출처 : Ravi et al., 2024) 스트리밍 메모리가있는 변압기 아키텍처를 사용하여 실시간 비디오 처리를 가능하게합니다. Sam 2의 교육에는 새로운 SA-V 데이터 세트가 특징 인 광대하고 다양한 데이터 세트가 포함되었으며, 여기에는 51,000 개의 비디오에 걸쳐 60 만 개 이상의 마스 클렛 주석이 포함되어 있습니다. 대화 형 데이터 수집 및 모델 개선을 허용하는 데이터 엔진은 모델에 가능한 모든 것을 분류 할 수있는 기능을 제공합니다. 이 엔진을 사용하면 SAM 2가 지속적으로 학습하고 적응할 수 있으므로 새롭고 도전적인 데이터를 처리하는 데 더 효율적입니다. 그러나 도메인 별 작업 또는 드문 개체의 경우 최적의 성능을 달성하려면 미세 조정이 필수적입니다.

왜 SAM2를 미세 조정합니까?

SAM 2의 맥락에서 미세 조정은 특정 작업 또는 도메인에 대한 성능을 향상시키기 위해 특정 데이터 세트에서 미리 훈련 된 SAM 2 모델을 추가로 훈련시키는 프로세스입니다. Sam 2는 광범위하고 다양한 데이터 세트에 대해 훈련 된 강력한 도구이지만, 일반적인 목적은 항상 전문 또는 희귀 작업에 대한 최적의 결과를 얻을 수는 없습니다.

. 예를 들어, 특정 종양 유형을 식별 해야하는 의료 영상 프로젝트를 진행하는 경우 일반화 된 훈련으로 인해 모델의 성능이 부족할 수 있습니다.

미세 조정 과정 미세 조정 SAM 2는 모델을 특정 데이터 세트에 조정할 수있게 하여이 제한을 다룹니다. 이 프로세스는 모델의 정확성을 향상시키고 고유 사용 사례에 더 효과적입니다. 미세 조정 샘 2 : 의 주요 이점은 다음과 같습니다

    개선 된 정확도 : 특정 데이터 세트에서 모델을 미세 조정하면 정확도를 크게 향상시켜 대상 응용 프로그램에서 더 나은 성능을 보장 할 수 있습니다. 특수 세분화 : 미세 조정은 특정 객체 유형, 시각적 스타일 또는 프로젝트와 관련된 환경을 분할 할 때 모델이 능숙 해져서 일반 목적 모델이 달성 할 수없는 맞춤형 결과를 제공합니다.
  1. 효율성 : 미세 조정은 종종 모델을 처음부터 훈련하는 것보다 더 효율적입니다. 일반적으로 데이터와 시간이 적으므로 모델을 신규 또는 틈새 작업에 신속하게 조정하기위한 실용적인 솔루션입니다.
  2. 미세 조정을 시작하기 샘 2 : 전제 조건
  3. 미세 조정 Sam 2를 시작하려면 다음과 같은 전제 조건이 필요합니다.
  4. SAM 2 모델 및 코드베이스에 대한 액세스 : SAM 2 모델 및 코드베이스에 액세스 할 수 있습니다. Meta의 Github 저장소에서 미리 훈련 된 SAM 2 모델을 다운로드 할 수 있습니다. 적절한 데이터 세트 : 지상 진실 세분화 마스크가 포함 된 데이터 세트가 필요합니다. 이 튜토리얼의 경우 흉부 CT 세분화 데이터 세트를 사용하여 교육을 다운로드하여 준비 할 수 있습니다. 계산 리소스 : 미세 조정 SAM 2에는 충분한 계산 능력이있는 하드웨어가 필요합니다. 특히 대형 데이터 세트 또는 복잡한 모델로 작업 할 때 프로세스가 효율적이고 관리 가능하도록하기 위해 GPU가 적극 권장됩니다. 이 예에서는 Google Colab의 A100 GPU가 사용됩니다.
  5. 소프트웨어 및 기타 요구 사항 :
Python 3.11 이상의 pytorch <:> opencv : OpenCV-Python을 설치하여 설치하십시오 미세 조정을위한 데이터 세트 준비 Sam 2

데이터 세트의 품질은 SAM 2 모델을 미세 조정하는 데 중요합니다. 정확한 세분화 마스크가있는 고품질 주석이 달린 이미지 또는 비디오는 최적의 성능을 달성하는 데 필수적입니다. 정확한 주석은 모델이 올바른 기능을 학습 할 수있게하여 실제 응용 프로그램에서 분할 정확도와 견고성을 향상시킵니다.

1. 데이터 획득
    첫 번째 단계는 교육 프로세스의 중추를 형성하는 데이터 세트를 획득하는 것입니다. 우리는 다양한 데이터 세트를 제공하는 신뢰할 수있는 플랫폼 인 Kaggle에서 데이터를 공급했습니다. Kaggle API를 사용하여 필요한 형식으로 데이터를 다운로드하여 이미지와 해당 세분화 마스크를 추가 처리를 위해 쉽게 사용할 수 있는지 확인했습니다.
  1. 2. 데이터 추출 및 청소
  2. 데이터 세트를 다운로드 한 후 다음 단계를 수행했습니다
      압축 및 청소 : 다운로드 된 지퍼 파일에서 데이터를 추출하고 불필요한 파일을 삭제하여 디스크 공간을 저장하십시오. <: :> ID 추출 : 이미지 및 마스크에 대한 고유 식별자 (IDS)가 추출하여 훈련 중에 올바른 매핑을 보장합니다. 불필요한 파일 제거 : 데이터 세트의 무결성을 유지하기 위해 알려진 문제가있는 특정 이미지와 같은 시끄럽거나 관련없는 파일을 제거합니다.
    • 3. 유용한 형식으로 변환
    • SAM2 모델에는 특정 형식의 입력이 필요하므로 다음과 같이 데이터를 변환했습니다.
    • dicom to numpy : DICOM 이미지를 읽고 Numpy 어레이로 저장 한 다음 512x512 픽셀의 표준 치수로 크기를 조정했습니다. 마스크를 위해 nrrd에서 numpy로 numpy : 마찬가지로, 폐, 심장 및 기관을위한 마스크가 포함 된 NRRD 파일은 가공 및 Numpy 어레이로 저장되었습니다. 그런 다음이 마스크는 해당 이미지와 일치하도록 재구성되었습니다.
    • JPG/PNG로의 변환 : 더 나은 시각화 및 호환성을 위해 Numpy 어레이는 JPG/PNG 형식으로 변환되었습니다. 이 단계는 이미지 강도 값을 정상화하고 마스크가 올바르게 방향을 지키는 것이 포함되었습니다.
    4. 데이터 저장 및 구성 그런 다음 처리 된 이미지 및 마스크는 미세 조정 프로세스 중에 쉽게 접근 할 수 있도록 각 폴더로 구성됩니다. 또한 이러한 이미지와 마스크로가는 경로는 교육 중에 데이터로드를 용이하게하기 위해 CSV 파일 (Train.csv)으로 작성됩니다.

    5. 시각화 및 검증 최종 단계는 정확도를 보장하기 위해 데이터 세트를 검증하는 것과 관련이 있습니다.

    시각화 : 이미지의 마스크를 오버레이하여 이미지 마스크 쌍을 시각화했습니다. 이것은 마스크의 정렬과 정확성을 확인하는 데 도움이되었습니다.

    검사 : 몇 가지 샘플을 검사하면 데이터 세트가 올바르게 준비되어 미세 조정에 사용할 준비가되었는지 확인할 수 있습니다.

    는 다음은 데이터 세트 생성을위한 코드를 사용하는 빠른 노트북입니다. 이 데이터 생성 경로를 거치거나 사전 반품에 언급 된 것과 동일한 형식으로 온라인으로 제공되는 데이터 세트를 직접 사용할 수 있습니다. 미세 조정 sam2
      세그먼트 Model 2에는 여러 구성 요소가 포함되어 있지만 더 빠른 미세 조정을위한 캐치는 전체 모델이 아닌 마스크 디코더 및 프롬프트 인코더와 같은 경량 구성 요소 만 훈련하는 것입니다. 이 모델을 미세 조정하기위한 단계는 다음과 같습니다 1 단계 : SAM-2 를 설치하십시오 미세 조정 프로세스를 시작하려면 SAM-2 라이브러리를 설치해야합니다. 이 모델은 다양한 세분화 작업을 효과적으로 처리하도록 설계되었습니다. 설치에는 GitHub에서 SAM-2 저장소를 복제하고 필요한 종속성을 설치하는 것이 포함됩니다. 이 코드 스 니펫은 SAM2 라이브러리가 올바르게 설치되어 미세 조정 워크 플로에 사용할 수 있도록합니다.2 단계 : 데이터 세트를 다운로드하십시오 SAM-2 라이브러리가 설치되면 다음 단계는 미세 조정에 사용할 데이터 세트를 획득하는 것입니다. 우리는 Kaggle에서 사용 가능한 데이터 세트, 특히 폐, 심장 및 기관의 이미지와 마스크를 포함하는 흉부 CT 세분화 데이터 세트를 사용합니다. 데이터 세트에는 다음이 포함됩니다

      images.zip : rgb 형식의 이미지 Masks.zip : rgb 형식의 세그먼테이션 마스크

      train.csv : 이미지 이름 가있는 CSV 파일

      CT 스캔 데이터 세트의 이미지 이 블로그에서는 세분화를 위해 폐의 이미지와 마스크 만 사용합니다. Kaggle API를 사용하면 데이터 세트를 환경에 직접 다운로드 할 수 있습니다. Kaggle에서 Kaggle.json 파일을 업로드하여 데이터 세트에 쉽게 액세스 할 수 있습니다. kaggle.json을 얻으려면 사용자 프로필의 설정 탭으로 이동하여 새 토큰 생성을 선택하십시오. 이것은 Kaggle 다운로드를 유발합니다. JSON, API 자격 증명이 포함 된 파일

        데이터를 압축 해제 :
      • 데이터 세트가 준비된 상태에서 미세 조정 프로세스를 시작하겠습니다. 앞서 언급했듯이 여기서 핵심은 전체 모델이 아닌 마스크 디코더 및 프롬프트 인코더와 같은 SAM2의 경량 구성 요소 만 미세 조정하는 것입니다. 이 접근법은 더 효율적이며 더 적은 리소스가 필요합니다 3 단계 : Sam-2 체크 포인트 다운로드 미세 조정 프로세스의 경우 사전 훈련 된 SAM2 모델 가중치로 시작해야합니다. "체크 포인트"라고하는 이러한 가중치는 추가 교육의 출발점입니다. 체크 포인트는 광범위한 이미지에 대해 교육을 받았으며 특정 데이터 세트에서 미세 조정하여 대상 작업에서 더 나은 성능을 달성 할 수 있습니다.
      • .
      • 이 단계에서는 다양한 모델 크기 (예 : 작은, 작은, base_plus, large)에 해당하는 다양한 SAM-2 체크 포인트를 다운로드합니다. 체크 포인트 선택은 사용 가능한 계산 리소스와 현재의 특정 작업을 기반으로 조정할 수 있습니다. 4 단계 : 데이터 준비 데이터 세트가 다운로드 된 경우 다음 단계는 교육을 준비하는 것입니다. 여기에는 데이터 세트를 교육 및 테스트 세트로 나누고 미세 조정 중에 SAM 2 모델에 공급 될 수있는 데이터 구조를 작성하는 것이 포함됩니다.
      • 우리는 교육 후 모델의 성능을 평가할 수 있도록 데이터 세트를 교육 세트 (80%)와 테스트 세트 (20%)로 나눕니다. 교육 데이터는 SAM 2 모델을 미세 조정하는 데 사용되며 테스트 데이터는 추론 및 평가에 사용됩니다. 데이터 세트를 교육 및 테스트 세트로 분할 한 후 다음 단계는 이진 마스크를 만들고, 마스크 내에서 주요 포인트를 선택하고, 이러한 요소를 시각화하여 데이터가 올바르게 처리되도록하는 것입니다. 
      • 1. 이미지 읽기 및 크기 조정 : 프로세스는 데이터 세트에서 이미지와 해당 마스크를 무작위로 선택함으로써 시작됩니다. 이미지는 BGR에서 RGB 형식으로 변환되며 대부분의 딥 러닝 모델의 표준 색상 형식입니다. 해당 주석 (마스크)은 그레이 스케일 모드에서 읽습니다. 그런 다음 이미지와 주석 마스크는 1024 픽셀의 최대 치수로 크기를 조정하여 종횡비를 유지하여 데이터가 모델의 입력 요구 사항에 맞는지 확인하고 계산 부하를 줄입니다.

        !git clone https://github.com/facebookresearch/segment-anything-2
        %cd /content/segment-anything-2
        !pip install -q -e .
        로그인 후 복사
        로그인 후 복사
        2. 세분화 마스크의 이항화 : 다중 클래스 주석 마스크 (다른 픽셀 값이 다른 여러 개체 클래스를 가질 수 있음)가 이진 마스크로 변환됩니다. 이 마스크는 이미지에 관심있는 모든 관심 영역을 강조하여 세분화 작업을 이진 분류 문제로 단순화합니다 : 물체 대 배경. 이진 마스크는 5x5 커널을 사용하여 침식됩니다. 침식은 마스크의 크기를 약간 줄여서 포인트를 선택할 때 경계 효과를 피하는 데 도움이됩니다. 이것은 선택된 포인트가 가장자리 근처가 아닌 물체의 내부에 잘 보이도록합니다. 키 포인트는 침식 마스크 내에서 선택됩니다. 이 지점은 미세 조정 과정에서 프롬프트 역할을하며, 집중할 위치에 대한 모델을 안내합니다. 포인트는 객체의 내부에서 무작위로 선택되어 대표적이며 시끄러운 경계의 영향을받지 않도록합니다.

        3. 시각화 :이 단계는 데이터 전처리 단계가 올바르게 실행되었는지 확인하는 데 중요합니다. 이항 마스크의 포인트를 시각적으로 검사하면 교육 중에 모델이 적절한 입력을받을 수 있습니다. 마지막으로, 바이너리 마스크는 단축되어 올바르게 형식화되며 (모델 입력에 적합한 치수로), 교육 프로세스에 추가로 사용하기 위해 포인트가 재 형성됩니다. 이 함수는 처리 된 이미지, 이진 마스크, 선택된 점 및 발견 된 마스크 수를 반환합니다.

        위의 코드는 데이터 세트의 원본 이미지를 포함하는 다음 그림과 이항 마스크 및 포인트가있는 이항 마스크를 반환합니다. 

        원본 이미지, 이항 마스크 및 데이터 세트의 포인트가있는 이항 마스크. 5 단계 : SAM2 모델을 미세 조정합니다 SAM2 모델 미세 조정에는 모델로드, 최적화기 및 스케줄러 설정, 교육 데이터를 기반으로 모델 가중치를 반복적으로 업데이트하는 등 여러 단계가 포함됩니다.
        # get dataset from Kaggle
        from google.colab import files
        files.upload()  # This will prompt you to upload the kaggle.json file
        
        !mkdir -p ~/.kaggle
        !mv kaggle.json ~/.kaggle/
        !chmod 600 ~/.kaggle/kaggle.json
        !kaggle datasets download -d polomarco/chest-ct-segmentation
        로그인 후 복사
        로그인 후 복사
        모델 체크 포인트를로드하십시오 :

        우리는 미리 훈련 된 체크 포인트를 사용하여 SAM2 모델을 구축하는 것으로 시작합니다. 그런 다음 모델은 예측기 클래스로 래핑하여 이미지를 설정하고 프롬프트를 인코딩하며 마스크를 디코딩하는 프로세스를 단순화합니다. 하이퍼 파라 미터 구성 우리는 학습 속도, 중량 붕괴 및 그라디언트 축적 단계와 같이 모델이 효과적으로 학습 할 수 있도록 여러 하이퍼 파라미터를 구성합니다. 이 하이퍼 파라미터는 모델이 가중치를 얼마나 빨리 업데이트하는지와 과적으로 피치를 피하는 방법을 포함하여 학습 과정을 제어합니다. 이것들과 자유롭게 놀아주십시오.

        Optimizer는 모델 가중치를 업데이트하는 반면, 스케줄러는 수렴을 향상시키기 위해 교육 중 학습 속도를 조정합니다. 이러한 매개 변수를 미세 조정하면 더 나은 분할 정확도를 달성 할 수 있습니다.

        훈련 시작 실제 미세 조정 과정은 반복적이며, 각 단계에서 폐의 이미지와 마스크 배치는 모델을 통과하고 손실이 계산되어 모델 가중치를 업데이트하는 데 사용됩니다.

        .
        !git clone https://github.com/facebookresearch/segment-anything-2
        %cd /content/segment-anything-2
        !pip install -q -e .
        로그인 후 복사
        로그인 후 복사
        각 반복 중에 모델은 이미지의 배치를 처리하고, 분할 마스크를 계산하며,지면 진실과 비교하여 손실을 계산합니다. 그런 다음이 손실은 모델 가중치를 조정하는 데 사용되어 모델의 성능을 점차 개선합니다. 약 3000 개의 에포크를 훈련 한 후, 우리는 약 72%의 정확도 (IOU- 교차로)를 얻습니다. 6 단계 : 미세 조정 된 모델 에 대한 추론 그런 다음 모델을 추론에 사용할 수 있으며, 여기서 보이지 않는 새로운 이미지의 세분화 마스크를 예측합니다. read_images 및 get_points 헬퍼 함수로 시작하여 추론 이미지와 마스크를 핵심 포인트와 함께 가져옵니다.

        그런 다음 새로 미세 조정 된 가중치와 함께 추론에 원하는 샘플 이미지를로드하고 Torch.no_grad ().

        이 단계에서는 미세 조정 모델을 사용하여 테스트 이미지에 대한 세분화 마스크를 생성합니다. 그런 다음 예측 된 마스크는 원래 이미지 및 지상 진실 마스크와 함께 시각화되어 모델의 성능을 평가합니다.

        테스트 데이터의 최종 분할 이미지

        결론 미세 조정 Sam2는 특정 작업에 대한 기능을 향상시키는 실용적인 방법을 제공합니다. 의료 영상, 자율 주행 차 또는 비디오 편집에 관계없이 미세 조정을 사용하면 고유 한 요구에 대해 SAM2를 사용할 수 있습니다. 이 안내서를 따르면 프로젝트에 SAM2를 조정하고 최첨단 세분화 결과를 달성 할 수 있습니다. 고급 사용 사례의 경우 이미지 인코더와 같은 SAM2의 추가 구성 요소를 미세 조정하는 것을 고려하십시오. 더 많은 리소스가 필요하지만 더 큰 유연성과 성능 향상을 제공합니다.

        최고 AI 인증을 받으
        # get dataset from Kaggle
        from google.colab import files
        files.upload()  # This will prompt you to upload the kaggle.json file
        
        !mkdir -p ~/.kaggle
        !mv kaggle.json ~/.kaggle/
        !chmod 600 ~/.kaggle/kaggle.json
        !kaggle datasets download -d polomarco/chest-ct-segmentation
        로그인 후 복사
        로그인 후 복사
        ai.get 인증을 효과적이고 책임감있게 사용할 수 있음을 보여줍니다.

위 내용은 사용자 정의 데이터 세트에서 Sam 2를 미세 조정 : 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿