본문 바로가기

전체 글113

[01 X-ray Hand] - Maskformer MaskFormer는 이미지를 분할하기 위해 classification + segmentation의 통합 접근 방식을 제안한 모델이다. 전통적인 방식이 픽셀 단위의 분류에 초점을 맞췄다면, MaskFormer는 각 마스크를 하나의 객체로 취급하여 보다 효율적인 분할을 수행한다. 특히, 트랜스포머(Transformer)를 활용하여 객체 간의 상호작용을 학습하며, 마스크 예측(mask prediction)과 클래스 예측(class prediction)을 함께 수행한다. MaskFormer의 주요 구조MaskFormer는 크게 Pixel-Level Module, Transformer Module, 그리고 Segmentation Module로 구성된다.1. Pixel-Level Module입력 이미지를 백본(R.. 2024. 11. 27.
의료 데이터를 다룰 때 주의해야 할 윤리적, 법적 문제 의료 데이터는 개인의 민감한 정보가 포함된 중요한 자산이다. 이러한 데이터는 환자의 건강, 치료 이력, 유전자 정보 등 민감한 내용을 포함하고 있어 데이터 관리와 활용에 있어 매우 신중해야 한다. 특히, 의료 데이터를 인공지능(AI)이나 딥러닝 모델 학습에 사용하는 경우, 윤리적 문제와 법적 규제를 반드시 고려해야 한다. 아래에서는 의료 데이터를 다룰 때 주의해야 할 주요 윤리적, 법적 문제를 살펴본다.1. 환자 개인정보 보호의료 데이터는 개인정보 보호법에 따라 엄격히 관리되어야 한다. 환자의 개인정보가 노출될 경우 심각한 사생활 침해로 이어질 수 있다. 의료 데이터를 다룰 때 반드시 고려해야 할 주요 사항은 다음과 같다.데이터 익명화데이터 익명화는 개인을 식별할 수 있는 정보를 제거하거나 변환하여 데이.. 2024. 11. 26.
Segmentation Models Pytorch 사용법 이번 포스팅에서는 Segmentation Models PyTorch(SMP) 라이브러리를 사용하여 UNet 기반의 모델을 학습하는 방법을 다룬다. SMP는 다양한 세그멘테이션 모델과 사전 학습된 백본(Backbone)을 제공하여 모델 개발을 간편하게 만든다. 이 글에서는 PyTorch와 SMP를 활용해 X-Ray 데이터를 학습하는 코드를 구성하고, 각 단계에서 사용한 기능과 로직을 설명하겠습니다.  SMP란 무엇인가?Segmentation Models PyTorch는 PyTorch를 기반으로 구축된 세그멘테이션 모델 라이브러리이다. UNet, UNet++, DeepLabV3+와 같은 다양한 모델을 지원하며, EfficientNet, ResNet, RegNet 등 여러 백본을 선택할 수 있다. 특히 사전 .. 2024. 11. 25.
Pseudo 라벨링(Pseudo Labeling)이란 무엇인가? Pseudo 라벨링은 반지도 학습(Semi-supervised Learning)의 한 기법이다. 이 방법은 모델이 예측한 결과를 기반으로*라벨이 없는 데이터(unlabeled data)에 임시 라벨을 할당하여 학습에 활용하는 방식이다. Pseudo 라벨링은 특히 라벨링 비용이 높은 상황에서 데이터 효율성을 극대화하는 데 유용하다.왜 Pseudo 라벨링을 사용하는가?라벨링 비용 절감데이터에 라벨을 직접 붙이는 작업은 많은 비용과 시간이 소요된다. Pseudo 라벨링은 모델의 예측 결과를 사용하여 라벨링 작업을 간소화한다.데이터 활용 극대화라벨이 없는 데이터도 학습에 포함할 수 있어, 전체 데이터셋의 크기를 증가시킨다. 이를 통해 모델의 일반화 성능을 높일 수 있다.모델 성능 개선모델이 학습 데이터를 더 많.. 2024. 11. 24.
Semantic Segmentation 대회에서 사용하는 방법들 K-Fold 구분 1. K-Fold 교차 검증K-Fold 교차 검증은 데이터를*K개의 동일한 크기의 부분집합(Fold*으로 나누어 모델을 평가하는 방법이다. 이 방법은 데이터의 불균형을 방지하고, 모델의 일반화 성능을 향상시키기 위해 사용된다. 과정데이터를 K개의 Fold로 나눈다.각 Fold를 한 번씩 검증 데이터로 사용하며, 나머지 Fold는 훈련 데이터로 사용한다.이 과정을 K번 반복하여, K개의 모델을 학습하고 각각의 성능을 측정한다.최종적으로 K개의 결과를 평균 내어 모델의 일반화 성능을 평가한다.장점모든 데이터가 훈련 및 검증에 사용되므로 데이터 낭비가 없다.데이터가 고르게 검증되기 때문에 일반화 성능 평가에 효과적이다.단점반복적으로 모델을 학습해야 하므로 계산 비용이 높다. 2. Strati.. 2024. 11. 23.
[01 X-ray Hand] - U-Net3++ UNet3+는 전통적인 UNet 모델의 한계를 극복하고자 제안된 세분화 모델이다. 특히 의료 이미지와 같은 고해상도 데이터에서 더욱 정교한 경계와 세부 정보를 보존하기 위해 설계되었다. 이 모델은 다중 스킵 연결(Multi-scale Skip Connection)과 복합 기능 집계(Deep Supervision)를 활용해 기존 UNet보다 뛰어난 성능을 보인다. UNet3+의 구조적 특징다중 스킵 연결 (Full-scale Skip Connection)UNet3+는 다양한 스케일의 정보를 병합하는 독창적인 스킵 연결을 도입했다. 기존 UNet은 단순히 인코더와 디코더 간의 동일한 레벨에서만 스킵 연결을 사용했지만, UNet3+는 더 많은 스케일의 피처 맵을 동시에 활용한다.이를 통해 지역적 세부 정보와 .. 2024. 11. 22.
[꼬꼬무] - PyTorch 에서 메모리 부족할때 해결하는 방법! (Autocast, GradScaler) Autocast와 GradScaler딥러닝 모델을 학습할 때, 특히 GPU를 사용할 경우 메모리 효율성과 연산 속도를 개선하는 것이 매우 중요하다. 이때 PyTorch에서 제공하는 Autocast와 GradScaler는 메모리 사용량을 줄이고 학습 성능을 최적화하는 데 효과적이다. 이 글에서는 Autocast와 GradScaler의 원리를 설명하고, 이를 활용한 코드와 적용 사례를 알아보자. Autocast의 원리Autocast는 PyTorch에서 제공하는 기능으로, Mixed Precision Training(혼합 정밀도 학습)을 구현한다. 그러면 Mixed Precision Training 이게 무엇인가??딥러닝 연산에서 일부를 FP32(32-bit floating point) 대신 FP16(16-b.. 2024. 11. 21.
DeepLab v1 아키텍쳐 분석 DeepLab v1 아키텍쳐DeepLab v1은 딥러닝 기반의 이미지 분할 네트워크로, Dilated Convolution과 업샘플링(Bilinear Interpolation)을 활용하여 높은 해상도를 유지하면서도 넓은 수용 영역(Receptive Field)을 확보한다. 주요 구성 요소1. conv1 ~ conv4기본적인 합성곱과 ReLU 활성화 함수로 이루어져 있다.팽창율(Dilation Rate): 1MaxPooling을 통해 공간 크기를 줄인다.2. conv5팽창율(Dilation Rate): 2넓은 수용 영역을 확보하기 위해 팽창 합성곱 사용MaxPooling과 AvgPooling 적용3. FC6와 FC7 (Fully Convolutional Layers)FC6: 팽창율(Dilation Rate.. 2024. 11. 20.
[05] - Receptive Field 를 확장시킨 모델 (DeepLab v1, DeepLab v2) Receptive Field 란??Receptive field는 신경망에서 특정 뉴런이 입력 데이터(예: 이미지)에서 보는 영역을 의미한다. 예를 들어, 이미지의 한 픽셀을 처리하는 뉴런이 주변 3×3 영역을 참조한다면, 이 3×3 영역이 해당 뉴런의 receptive field이다. 이는 입력 데이터를 이해하고 정보를 추출하는 데 매우 중요한 개념이다.Receptive Field가 작은 경우이미지에서 빨간 점을 중심으로 segmentation을 수행할 때, 작은 receptive field는 새의 일부 정보만 포함한다.결과적으로, 모델이 전체 문맥이나 객체의 구조를 이해하지 못하고, 부분적인 정보에만 의존하여 정확도가 떨어질 수 있다. Receptive Field가 큰 경우반대로, 큰 receptive.. 2024. 11. 19.