JH 개발자의 성장일지

Deep Learning Study (22) / 24.12.29 본문

Deep Learning

Deep Learning Study (22) / 24.12.29

JHDeveloper 2024. 12. 31. 14:23

참조 : Registration — ANTsPy dev (latest) documentation

 

Antslibrary

파라미터 설명

[required]

  • fixed : 기준이 되는 이미지
  • moving : 맞춰지는 이미지
  • type_of_transform : 정합 방식
    • Rigid : 회전 + 이동만 적용 / 변환 대상 이미지를 딱딱한 객체로 간주해 객체의 형태와 크기 그대로 유지
    • Affine : Rigid + Scaling + Shearing / x축& y축 방향으로 이미지를 늘리거나 줄이기 (Scaling) + x축 & y축 방향으로 이미지 기울이기 (Shearing) / 마스크 사용 없이도 적합
    • TRSAA : Translation → Rigid → Similarity → Affine → Affine / 마스크를 활용한 정합에서 유리함 (특정 영역에 초점)

[optional]

  • initial_transform : 초기 변환을 지정 (default : None)
    • 'Identity': 초기 변환 없이 시작.
    • 'Translation': 질량 중심(center of mass)을 기준으로 초기 정렬.
    • 사용자 정의 변환 리스트: 기존의 변환 파일 경로.
    → 초기 정렬 정확도와 속도에 영향을 미침
  • *초기 변환 : 정합 과정의 시작 단계에서, 두 이미지의 초기 위치, 크기, 각도를 대략적으로 맞추는 작업
  • outprefix : 생성된 결과 파일 이름의 접두어. 정합 결과와 관련 파일들이 이 접두어를 기준으로 저장 (default : ‘’)
    • 파일 이름 접두어 (사용자가 설정)
    → 정합 결과 파일 저장 여부와 저장 경로에 영향을 미침
  • ex. outprefix='/output/result_’ → /output/result_0GenericAffine.mat (Affine 변환 매트릭스 파일), /output/result_1Warp.nii.gz (변환 필드 파일)
  • mask : 고정 이미지에서 정합에 사용될 영역을 지정하는 마스크, 정합 과정에서 특정 영역만 고려하려는 경우 사용 (default : None)
    • ANTs 마스크 이미지 (ANTsImage 객체)
    → 마스크가 없을 경우 전체 이미지로 정합
  • moving_mask : 이동 이미지에서 정합에 사용될 영역을 지정하는 마스크, 고정 이미지의 마스크와 함께 사용 가능 (default : None)
    • ANTs 마스크 이미지 (ANTsImage 객체)
    → 마스크가 없을 경우 전체 이미지로 정합
  • mask_all_stages : 정합 과정의 모든 단계에 마스크를 적용할지 여부 (default : False)
    • True: 모든 정합 단계에 마스크 적용.
    • False: 최종 단계에만 마스크 적용.
    → True로 설정 시, 정합 정확도 증가 및 계산 시간 증가 가능
  • grad_step : 최적화 과정에서 사용되는 그래디언트 단계 크기 (default : 0.2)
    • 실수 값 (일반적으로 0.1~0.5)
    → 작은 값: 정합 정확도 증가 가능하지만 계산 시간이 길어짐 / 큰 값: 빠르게 수렴하지만 품질 저하 가능
  • syn_metric : SyN 비선형 정합에서 사용할 유사도 계산 방법 (default : CC)
    • 'CC' (Cross-Correlation) : 두 이미지 간 지역적 상관성(Local Cross-Correlation)을 계산하여 유사도 평가
    • 'Mattes' : 픽셀 값의 절대적 차이가 아닌, 분포 간의 상관성을 평가, 픽셀 값 분포의 정보량 공유를 기반으로 두 이미지의 유사도를 측정
    • 'MeanSquares' : 두 이미지 간 픽셀 값 차이의 제곱 평균(Mean Squared Difference, MSE)을 계산하여 유사도를 측정
    • 'Demons' : 변위 벡터 필드의 변화량을 최소화하여 두 이미지의 정합을 수행
    → 'CC': 선형 정합, 동일 모달리티 데이터의 정합 / 'Mattes' : 비선형 왜곡 정합, 다른 모달리티 데이터의 정합 / 'MeanSquares' : 선형 정합, 동일 모달리티 데이터의 정합 / 'Demons': 비선형 왜곡 정합, 동일 모달리티 데이터의 정합
  • syn_sampling : SyN 메트릭에 사용할 샘플링 파라미터 (default : 2)
    • 정수 (반경 또는 히스토그램 빈 수) (2 ~ 10)
    → 값이 작을수록 계산 속도 증가, 정밀도 감소
  • reg_iterations : 비선형 정합(SyN)의 단계별 반복 횟수 (default : [100, 70, 50, 10])
    • 단계별 반복 횟수 리스트
    → 값이 클수록 정합 품질이 증가하나, 계산 시간이 증가
  • *한 번의 계산만으로는 최적의 매개변수를 찾기 어렵기 때문에, 반복적으로 계산하여 정밀한 결과를 도출
  • flow_sigma : 비선형 정합 과정에서 업데이트 필드의 스무딩 정도를 조정 (default : 3)
    • 0 이상의 실수 (0.5 ~ 3.0, 10 이상은 거의 사용 X)
    → 작은 값: 더 세밀한 정합 / 큰 값: 매끄러운 변형 필드
  • *스무딩: 변형 필드를 부드럽게 만들어 지나친 왜곡이나 노이즈를 방지 (ex. 가우시안 필터 : 각 픽셀(또는 복셀)의 값을 주변 값의 가중 평균으로 대체)
  • total_sigma : 총 변환 필드의 스무딩 강도 (default : 0), 업데이트 필드의 합성과 반복이 모두 끝난 후에 적용되므로, 최종 결과의 매끄러움을 결정
    • 0 이상의 실수 (0.0 ~ 2.0, 10 이상은 거의 사용 X)
    → 작은 값: 더 세밀한 결과 / 큰 값: 변형 결과가 더 매끄러움
  • aff_metric : Affine 정합에서 사용할 유사도 계산 방법 (default : Mattes)
    • 'Mattes' : 두 이미지 간의 픽셀 값 분포의 상관관계를 측정하는 메트릭
    • 'GC' (Global Correlation) : 두 이미지의 전역적인 상관관계를 계산
    • 'MeanSquares' : 두 이미지의 픽셀 값 차이의 제곱 평균(Mean Squared Difference, MSE)을 계산
    → 'Mattes': 다른 모달리티 정합에 적합 / 'GC': 동일한 모달리티 정합에 적합 / 'MeanSquares': 동일 모달리티 정합에 적합
  • aff_sampling : Mutual Information 메트릭에 사용할 히스토그램 빈 수를 지정 (default : 32) → 고정 이미지와 이동 이미지의 히스토그램 간의 상관관계를 측정하여 유사도 계산
    • 히스토그램 빈 수(정수) : Mutual Information (MI) 기반 정합에서 두 이미지의 픽셀 값 분포를 비교하기 위해 생성되는 히스토그램의 막대 개수, 이미지 전체에서 픽셀 값 분포를 나누는 구간 수
    → 값이 작을수록 계산 속도 증가, 정확도 감소ex. aff_sampling=32: 픽셀 값을 32개의 구간으로 나누어 히스토그램 생성.
  • *MI(Mutual Information) : 두 이미지 간의 정보량 공유 측정 지표 ← 픽셀 값의 분포 비교해 한 이미지의 정보가 다른 이미지의 정보를 얼마나 설명하는 지 히스토그램 기반으로 정보량(Entropy) 계산
  • aff_random_sampling_rate : 유사도 계산에 사용할 샘플링 비율 (default : 1.0) ← 입력된 이미지의 모든 픽셀을 샘플링
    • 0~1 사이 실수
    → 값이 낮을수록 속도는 빨라지나, 품질이 낮아질 수 있음
  • ex. 0.5 : 무작위로 선택된 50%의 픽셀만 사용하여 Mutual Information 계산
  • aff_iterations : Affine 정합 과정에서 반복 횟수를 지정 (default : [100, 70, 50, 10])
    • 단계별 반복 횟수 리스트
    → 값이 클수록 선형 정합 품질 증가
  • *반복 횟수 리스트 지정 : 고해상도에서 시작하지 않고, 먼저 저해상도에서 대략적인 정합을 수행한 후, 고해상도로 이동하며 정밀도를 높이는 방식 → 다중 해상도 정합 가능
  • aff_shrink_factors : 다중 해상도 정합에서 단계별 원본 이미지 축소 비율 (default : 8x4x2x1) ← 원본 이미지 1/8 크기로 축소, 1/4 크기로 축소 …
    • 다중 해상도 단계별 축소 비율
    → 초기 단계에서 큰 값: 계산 속도 증가, 정밀도 감소
  • smoothin_in_mm : 모든 스무딩 작업을 밀리미터 단위로 수행할지 여부 (default : False)
    • True, False
    → True로 설정하면 밀리미터 단위로 스무딩 파라미터(aff_smoothing_sigmas, flow_sigma, total_sigma)에 적용
  • aff_smoothing_sigmas : Affine 정합에서 단계별 가우시안 스무딩 강도 (default : 3x2x1x0vox)
    • 단계별 가우시안 스무딩 강도
    → 큰 값: 노이즈 감소, 큰 구조에 초점 / 작은 값: 세밀한 정합

파라미터 적용 대상 적용 시점 용도

aff_smoothing_sigmas 입력 이미지 자체 다중 해상도 정합 단계별 입력 이미지를 매끄럽게 만들어 노이즈 제거 및 대략적 구조 정합 수행.
flow_sigma 업데이트 변환 필드 각 반복(iteration)에서 급격한 변형을 방지하며 변환 필드를 부드럽게 만듦.
total_sigma 최종 변환 필드 전체 정합 완료 후 결과 변형 필드에 잔여 노이즈를 제거하고 매끄럽게 만듦.
  • random_seed : 랜덤 샘플링 과정에서 재현성을 보장하기 위한 난수 시드 (default : None)
    • 정수값
    → 동일한 결과 재현 가능
  • write_composite_transform : 변환 매트릭스를 HDF5 형식의 복합 파일로 저장할지 여부 (default : False)
    • True, False
    → True로 설정하면 변환 매트릭스가 저장
  • verbose : 디버깅 및 프로세스 로깅을 위한 자세한 출력 활성화 (default : False)
    • True, False
    → 디버깅 시 유용한 출력 제공 (알아서 출력해줌)
  • multivariate_extras : 여러 유사도 메트릭을 사용할 경우 추가 메트릭 설정 (default : None)
    • metric: 사용할 유사도 계산 방법 (예: MeanSquares, CC).
    • fixed_image: 고정 이미지.
    • moving_image: 이동 이미지.
    • weight: 해당 메트릭의 가중치.
    • sampling_param: 샘플링 파라미터.
    → 다중 메트릭을 사용하면 정합 품질 증가 가능
  • multivariate_extras=[ ["MeanSquares", fixed_img2, moving_img2, 0.5, 1], ["CC", fixed_img3, moving_img3, 0.3, 2] ] registration = ants.registration( fixed=fixed_image, moving=moving_image, type_of_transform='SyN', multivariate_extras=multivariate_extras ) # 중복 메트릭 사용해서 정합 품질 향상
  • retrict_transformation : 특정 차원에서 변환을 제한 (default : None)
    • restrict_transformation=(1, 1, 0) → Z축에서 변환 제한
    → 선형 변환을 특정 축에만 제한하여 더 안정적인 정합 수행
  • singleprecision : 메모리 사용량을 줄이기 위해 float32 정밀도로 계산 (default : False, float64 정밀도로 계산)
    • True: float32 정밀도 사용.
    • False: float64 정밀도 사용
    → True: 메모리 사용량 감소, 계산 속도 증가. 그러나 정밀도가 낮아질 수 있음 / False: 높은 정밀도로 계산하지만 메모리 사용량 증가
  • kwargs : 추가적인 사용자 정의 파라미터를 전달 (default : None)
    • 사용자 정의 파라미터
    → ANTs 기본 파라미터로 다룰 수 없는 고유한 정합 설정을 적용해야 할 때 정합 과정의 동작을 사용자 정의 방식으로 조정 가능

'Deep Learning' 카테고리의 다른 글

Deep Learning Study (21) / 24.12.24  (0) 2024.12.31
Deep Learning Study (20) / 24.12.21  (0) 2024.12.31
Deep Learning Study (19) / 24.12.16  (0) 2024.12.16
Deep Learning Study (18) / 24.12.12  (0) 2024.12.12
Deep Learning Study (17) / 24.12.09  (0) 2024.12.09