Upstage AI Lab 3기
Computer Vision Basic, Advanced, Generation
developzest
2024. 8. 20. 14:47
Computer Vision Basic
컴퓨터 비전이란? 컴퓨터 비전은 컴퓨터가 이미지나 비디오로부터 유용한 정보를 추출하는 기술입니다. 이를 통해 자율주행, 의료 영상 분석, 얼굴 인식 등 다양한 분야에서 활용됩니다.
고전 컴퓨터 비전 고전 컴퓨터 비전에서는 주로 이미지 처리 기법과 특징 추출 방법을 사용합니다. 예를 들어, 엣지 검출, 코너 검출, SIFT, SURF 등이 있습니다.
CNN 기반 Backbone
- AlexNet: 2012년에 발표된 모델로, 딥러닝을 이용한 이미지 분류의 가능성을 보여주었습니다. 5개의 합성곱 층과 3개의 완전 연결 층으로 구성되어 있습니다.
- VGG: 2014년에 발표된 모델로, 깊은 네트워크 구조를 통해 성능을 향상시켰습니다. VGG16과 VGG19는 각각 16개와 19개의 층을 가지고 있습니다.
- ResNet: 2015년에 발표된 모델로, 잔차 연결을 통해 매우 깊은 네트워크를 학습할 수 있게 했습니다. ResNet50, ResNet101 등 다양한 변형이 있습니다.
- EfficientNet: 2019년에 발표된 모델로, 네트워크의 크기, 깊이, 해상도를 동시에 최적화하여 효율성을 극대화했습니다. EfficientNet-B0부터 B7까지 다양한 크기의 모델이 있습니다.
이미지 분류, 객체 검출, 의미론적 분할
- 이미지 분류: 이미지를 특정 클래스에 할당하는 작업입니다. 예를 들어, 고양이와 개를 구분하는 작업입니다.
- 객체 검출: 이미지 내의 객체를 찾아내고, 그 위치를 지정하는 작업입니다. 예를 들어, 이미지에서 사람, 자동차, 신호등 등을 찾아내는 작업입니다.
- 의미론적 분할: 이미지의 각 픽셀을 특정 클래스에 할당하는 작업입니다. 예를 들어, 도로, 보도, 하늘 등을 구분하는 작업입니다.
Computer Vision Advanced
CNN 기반 Backbone과 Transformer 기반 Backbone
- CNN 기반 Backbone: AlexNet, VGG, ResNet, EfficientNet 등.
- Transformer 기반 Backbone: Vision Transformer(ViT), Swin Transformer 등. ViT는 이미지를 패치로 나누어 각 패치를 토큰으로 처리하며, Swin Transformer는 계층적 구조를 통해 다양한 크기의 패치를 처리합니다.
객체 검출과 의미론적 분할
- CNN 기반: Faster R-CNN, YOLO, Mask R-CNN 등. Faster R-CNN은 Region Proposal Network(RPN)을 사용하여 객체를 검출하고, YOLO는 단일 네트워크를 통해 실시간 객체 검출을 수행합니다. Mask R-CNN은 객체 검출과 함께 객체의 마스크를 예측합니다.
- Transformer 기반: DETR, Swin Transformer 등. DETR은 Transformer를 사용하여 객체 검출을 수행하며, Swin Transformer는 계층적 구조를 통해 객체 검출과 의미론적 분할을 동시에 수행합니다.
-
Transformer 기반 모델의 장/단점
장점
- 병렬 처리 가능:
- Transformer 모델은 RNN과 달리 순차적으로 데이터를 처리하지 않고, 병렬 처리가 가능합니다. 이는 학습 속도를 크게 향상시킵니다.
- 장거리 의존성 처리:
- Self-Attention 메커니즘을 통해 문장 내의 단어들 간의 장거리 의존성을 효과적으로 처리할 수 있습니다. 이는 RNN이나 LSTM이 어려움을 겪는 부분을 해결합니다.
- 다양한 데이터 유형 처리:
- Transformer는 텍스트뿐만 아니라 이미지, 비디오 등 다양한 데이터 유형에 적용될 수 있습니다. 예를 들어, Vision Transformer(ViT)는 이미지를 패치로 나누어 처리합니다.
- 확장성:
- 모델의 크기와 데이터셋을 쉽게 확장할 수 있어, 대규모 언어 모델(LLM)이나 이미지 모델을 구축하는 데 유리합니다.
단점
- 높은 계산 비용:
- Self-Attention 메커니즘은 계산 비용이 높아, 대규모 데이터셋을 처리할 때 많은 자원이 필요합니다.
- 데이터 요구량:
- Transformer 모델은 대규모 데이터셋을 필요로 하며, 충분한 데이터를 확보하지 못하면 성능이 저하될 수 있습니다.
- 복잡한 구조:
- 모델의 구조가 복잡하여, 이해하고 구현하는 데 시간이 많이 걸릴 수 있습니다.
- 메모리 사용량:
- 병렬 처리를 위해 많은 메모리를 사용하므로, 하드웨어 요구사항이 높습니다.
- 병렬 처리 가능:
-
Generation
생성모델의 발전과정 생성모델은 데이터를 생성하는 모델로, GAN(Generative Adversarial Network), VAE(Variational Autoencoder), Diffusion Model 등이 있습니다.
판별모델과 생성모델의 차이
- 판별모델: 주어진 데이터가 특정 클래스에 속하는지 여부를 판단합니다.
- 생성모델: 새로운 데이터를 생성합니다.
생성 모델의 활용 사례
- 이미지 생성: 새로운 이미지를 생성하거나 기존 이미지를 변형합니다. 예를 들어, 얼굴 이미지를 생성하거나 스타일을 변환하는 작업입니다.
- 텍스트 생성: 새로운 텍스트를 생성합니다. 예를 들어, 소설의 다음 문장을 생성하는 작업입니다.
- 데이터 증강: 학습 데이터를 늘리기 위해 사용됩니다. 예를 들어, 이미지 회전, 크기 조정 등을 통해 데이터를 증강합니다.
오토인코더와 변분오토인코더
- 오토인코더: 입력 데이터를 압축하고 다시 복원하는 모델입니다. 주로 데이터의 차원 축소나 노이즈 제거에 사용됩니다.
- 변분오토인코더: 오토인코더의 확장으로, 데이터의 잠재 공간을 확률적으로 모델링합니다. 이를 통해 더 다양한 데이터를 생성할 수 있습니다.
적대적 생성 신경망(GAN) GAN은 두 개의 네트워크(생성자와 판별자)가 서로 경쟁하며 학습하는 모델입니다. 생성자는 가짜 데이터를 생성하고, 판별자는 진짜 데이터와 가짜 데이터를 구분합니다. 이를 통해 매우 현실적인 데이터를 생성할 수 있습니다.
확산모델 확산모델은 데이터의 확산 과정을 모델링하여 새로운 데이터를 생성합니다. 최근에는 개인화된 데이터 생성에도 활용되고 있습니다. 예를 들어, 특정 사용자의 스타일에 맞춘 이미지를 생성하는 작업입니다.