Pixel 수준의 이미지 segmentation은 각 픽셀을 하나의 클래스 또는 라벨로 할당하는 작업입니다. 따라서 각 픽셀은 해당 이미지에서 특정 객체 또는 물체의 일부인지를 나타내는 라벨을 갖게 됩니다. 이를 통해 컴퓨터 비전 시스템은 이미지 내에 존재하는 객체의 윤곽과 영역을 이해하고, 해당 객체를 다른 객체와 구분할 수 있습니다.
세그멘테이션의 종류
1.Semantic Segmentation
시맨틱 세그멘테이션은 이미지 내의 각 픽셀을 클래스 또는 라벨로 분류하는 이미지 세그멘테이션 기술입니다. 이는 이미지의 모든 픽셀에 대해 물체 또는 배경과 같은 의미적인 의미를 부여하는 작업을 수행
2. Instance Segmentation
인스턴스 세그멘테이션은 이미지 내에 있는 각 개별 물체 인스턴스를 구별하여 분할하는 이미지 세그멘테이션 방법
FCN (Fully Convolutional Network): FCN은 컨볼루션 신경망(Convolutional Neural Network)의 픽셀 단위 이미지 세그멘테이션을 위해 제안된 구조로, 컨볼루션 연산을 사용하여 입력 이미지의 픽셀을 클래스에 대응하는 확률로 매핑하는 방식을 사용합니다.
U-Net: U-Net은 의료 영상 세그멘테이션을 위해 개발된 신경망 구조로, 인코더-디코더 구조를 활용하며, 점점 다운샘플링하여 특징을 추출한 후, 다시 업샘플링하여 세그멘테이션 맵을 얻는 방식을 채택합니다. 대규모 데이터가 없는 의료 영상 분야에서 효과적인 결과를 보여줍니다.
DeepLab: DeepLab은 시맨틱 세그멘테이션을 위한 딥러닝 기반의 모델로, 컨볼루션 신경망과 디코더 네트워크를 이용하여 다양한 컨텍스트 정보를 고려하여 픽셀별 클래스 분류를 수행합니다. 특히, 다양한 크기의 컨볼루션 커널을 사용하여 다양한 크기의 객체를 잘 인식하는 능력을 가지고 있습니다.
YOLO (You Only Look Once): (1) 실시간 객체 감지 (2) 단일 네트워크에서 모든 객체를 한 번에 감지 (3) 높은 처리 속도 (4) 객체 감지와 클래스 분류를 동시에 수행
(5) 다양한 크기의 객체에 대한 정확성이 상대적으로 떨어질 수 있음
->한 번에 사진 전체를 하나의 그리드로 분할하여 모든 그리드 셀에서 객체를 감지 빠른 처리 속도를 가지지만, 작은 객체에 대한 정확성이 상대적으로 떨어질 수 있음 객체의 경계 상자와 클래스 레이블을 한 번에 예측하여 실시간 객체 감지에 적합함 작은 객체보다 큰 객체에 대해서 상대적으로 우수한 결과를 보여줄 수 있음
SSD (Single Shot Multibox Detector): (1) 실시간 객체 감지 (2) 다양한 크기의 객체를 한 번에 감지 (3) 다중 스케일 특징 맵 사용 (4) 객체 감지와 클래스 분류를 동시에 수행 (5) YOLO보다 더 정확한 성능
(6)작은 객체에 대한 정확성이 상대적으로 높음 (7)다양한 크기의 bounding box를 동시에 예측하여 정확한 객체 위치 추정 가능
-> 한 번에 사진 전체를 여러 다양한 스케일의 특징 맵으로 변환하여 객체를 감지 YOLO보다 더 정확한 결과를 제공하면서도 상대적으로 높은 처리 속도를 가짐 다양한 크기의 객체에 대한 정확성이 높고 작은 객체도 잘 감지할 수 있음 다중 스케일 특징 맵을 사용하여 객체 감지를 수행하므로 다양한 크기의 객체를 잘 처리함
구조
YOLO (You Only Look Once):
네트워크 아키텍처: Darknet (Darknet-53, Darknet-19 등) 레이어 구조: 주로 컨볼루션(Convolution) 레이어와 풀링(Pooling) 레이어로 구성 감지 방식: 하나의 이미지를 그리드로 나누고, 각 그리드 셀에 대해 bounding box와 클래스 확률을 예측하는 레이어로 구성 특징: 하나의 네트워크로 객체 감지와 클래스 분류를 동시에 처리하여 빠른 처리 속도를 가지지만, 작은 객체에 대한 정확성이 상대적으로 떨어질 수 있음
end to end의 모델 구조 : 객체검출의 전체과정을 하나의 통합된 모델로 처리하여 입력 이미지에서 바로 객체의 위치와 클래스를 예측
SSD (Single Shot Multibox Detector):
네트워크 아키텍처: VGG, ResNet, MobileNet 등 다양한 백본 네트워크 사용 가능 레이어 구조: 백본 네트워크에 추가적인 컨볼루션(Convolution) 레이어와 풀링(Pooling) 레이어, 그리고 객체 감지를 위한 여러 스케일의 특징 맵으로 구성 감지 방식: 다양한 스케일의 특징 맵으로부터 bounding box와 클래스 확률을 예측하여 객체를 감지하는 방식으로 구성 특징: 다양한 크기의 객체에 대한 정확성이 높고, 작은 객체도 잘 감지할 수 있는 특징이 있으며, 다중 스케일 특징 맵을 사용하여 정확하고 빠른 처리 속도를 유지함
end to end의 모델 구조 :객체검출의 전체과정을 하나의 통합된 모델로 처리하여 입력 이미지에서 바로 객체의 위치와 클래스를 예측
등장배경: 기존의 객체 탐지 방법들은 객체 후보 영역을 선정하는 과정과 객체 분류를 위한 학습이 복잡하고 느려서 실시간 응용에 한계가 있었습니다. RCNN은 이러한 문제를 해결하기 위해 등장했습니다.
등장목적: 기존 방법들의 복잡한 객체 후보 영역 선정과 객체 분류 문제를 합치는 대신, 객체 후보 영역 선정과 객체 분류를 각각 분리하여 해결합니다. 객체 후보 영역 제안은 기존의 방법들을 이용하고, 객체 분류는 딥러닝(Convolutional Neural Networks)을 이용하여 수행합니다.
주요 특징:
Selective Search 등의 기법을 사용하여 객체 후보 영역을 제안합니다.
각 객체 후보 영역을 독립적으로 추출하고 크기를 일정하게 조정합니다.
CNN을 사용하여 추출한 객체 후보 영역에서 객체를 분류합니다.
후보 영역들의 크기를 동일하게 만들기 위해 RoI(Region of Interest) Pooling을 사용합니다.
객체 분류를 위해 softmax를 사용하여 다중 클래스를 분류합니다.
결과: 기존의 방법들보다 정확도가 향상되면서도 속도가 비교적 빠르며, 객체 탐지 분야에서 큰 성과를 거두었습니다. 하지만 속도 측면에서는 실시간 응용에는 아직 제약이 있었습니다.
이미지를 해석하는 컴퓨터 비전 분야에서 객체 인식은 이미지나 비디오에서 특정 객체 자동 감지하고 분류하는 것을 뜻함
이미지 데이터(픽셀의 배열로 3채널로 구성)를 기반으로 수행하고 특징을 추출한다, 이를 기계학습 또는 딥러닝(특히 합성곱)신경망을 통해 진행한다.
응용분야:
자율 주행, 보안 시스템, 로봇 공학, 의료 영상 분석, AR, 제조 및 자동화
이미지 처리, 픽셀 기본 정리
이미지 처리: 컴퓨터 비전 분야에서 디지털 이미지의 품질을 향상시키거나 원하는 정보를 추출하기 위해 다양한 기법을 사용하는 과정
픽셀(picture element): 디지털 이미지를 구성하는 가장 작은 단위, 각 픽셀은 3가지 층(채널)로 이루어져있다(RGB), 흑백 이미지의 경우 밝기 값만 가지며 1채널을 가진다.
이런 픽셀의 위치와 색상 정보를 통해 디지털 이미지가 표현, 이미지 처리를 한다는 것은 즉 이런 픽셀의 값을 조절하거나 필터링 명암조절을 하는 것과 같다.
픽셀의 구조
좌측 모서리(0.0)을 시작으로 열과 행으로 좌표 표현이미지의 색상, 각 픽셀마다 들어감(흑백은 1차원 Grayscale)
픽셀 처리 기법:
-밝기 조정
-명암 대비
-필터링
-색 공간 변환 (rgb에서 hsv로 변환이 가장 대표적 색 공간 변환 방법)
특징 추출
이미지나 영상에서 식별가능한 부분을 수학적으로 주변정보와 차이 계산하여 추출한다.
이를 다양한 컴퓨터 비전 작업에 전처리 단계로 사용한다.
특징 추출을 통해 데이터 차원을 축소하여(그렇기 때문에 처음에 해상도가 너무 낮은 이미지 사용하면 안됨) 중요한 특징에 집중하여 계산에 효율을 높일 수 있고 특징 추출은 이미지의 크기 회전 이동 등에 불변한 특징을 추출하기 때문에 일반화된 특징을 얻을 수 있다.
특징 추출의 기본 원리
1. 지역성 : 이미지의 작은 지역 영역을 선택하고 해당 영역의 특징 추출
2. 불변성 : 이미지의 이동 회전 크기 등에도 불변성 유지
3. 반복성 : 이미지의 다른 부분에서도 특징 추출은 반복 가능, 일관된 특징 추출이 가능해야함
특징 추출 알고리즘
1. SIFT : 크기와 회전에 불변하며, 노이즈와 다양한 변형에 강건한 특징을 추출하는 데에 사용
기본 원리 : 특징점 검출 > 주위 영역 정보 추출 > 특징 기술자 생성 > 특징 매칭
장점:
- 크기와 회전에 불변: SIFT는 다양한 이미지 크기와 회전에 대해 불변한 특징점을 검출하여 이미지 스케일 변화나 회전에 강건합니다. - 고유한 특징 추출: SIFT는 이미지의 고유한 특징을 추출하여 다른 이미지와 구별하기 쉬운 특징 기술자를 생성합니다. - 효율적인 매칭: 특징 기술자를 사용하여 이미지 간 매칭을 효율적으로 수행할 수 있어, 객체 추적 등 다양한 응용에 유용합니다.
단점:
- 계산 비용: SIFT는 복잡한 계산을 필요로 하기 때문에 큰 이미지에서는 속도가 느릴 수 있습니다. - 노이즈에 민감: 노이즈가 많은 이미지에서는 잘못된 특징점이 검출될 수 있고, 이에 따라 특징 기술자가 왜곡될 수 있습니다. - 특징 선택에 따른 변동성: 특징점을 선택하는 기준에 따라 매칭 결과가 변할 수 있습니다. 적절한 특징점 선택이 중요합니다.
2. SURF : SIFT 특징점 검출 알고리즘을 기반으로 개선된 컴퓨터 비전 알고리즘
기본 원리 : Gaussian 이미지 피라미드: 이미지 크기를 다양하게 축소하여 생성한 피라미드 구조. 다양한 스케일에서 특징 검출 수행 -> Hessian 행렬: 이미지에서 주변 픽셀의 변화율을 나타내는 행렬. 특징점 검출을 위해 특정 값들을 계산하여 후보 특징점 선별 -> 특징점 검출: Hessian 행렬의 값에 기반하여 이미지에서 특징점 후보들을 찾아냄 -> 특징 기술자: 특징점을 중심으로 주변 정보를 기반으로 특징을 표현하는 기술자 생성. 이미지의 변환에 강건하게 유지.변환에도 강건하게 유지됩니다.
장점:
- 빠른 처리 속도: 이미지 피라미드와 특정 알고리즘을 사용하여 빠른 특징 검출 가능. - 크기 및 회전 불변성: 특징 기술자가 크기와 회전에 강건하여 다양한 변형에서도 특징 매칭 가능. - 다양한 응용: 이미지 매칭, 객체 인식, 영상 스티칭 등 다양한 컴퓨터 비전 작업에 활용.
단점:
- 특징 검출 불가능한 경우: 특정 이미지에서 특징을 잘 검출하지 못할 수 있음. - 높은 계산 복잡도: 특징점 검출과 기술자 생성에 높은 계산 비용이 요구될 수 있음. - 정확성 문제: 특정 환경에서 잘못된 특징 매칭이 발생할 수 있음. 추가 필터링이 필요할 수 있음.
3. ORB
SIFT나 SURF보다 빠르면서도 비슷한 성능을 제공하므로 실시간 응용 프로그램 및 리소스 제한 환경에서 많이 사용. 또한 무엇보다도 오픈소스 라이브러리인 OpenCV에서 구현되어 쉽게 활용할 수 있다, 로봇 비전분야에 많이 사용
장점:
- 빠른 처리 속도: FAST와 BRIEF를 조합하여 빠른 특징점 검출 및 기술자 생성 가능. - 강건성: 회전 불변성과 정확한 특징 기술자 생성으로 다양한 변형에서도 강건한 특징 매칭 가능. - 리소스 제한 환경에 적합: 빠른 처리 속도와 간단한 구현으로 리소스 제한된 환경에서 효과적으로 사용 가능.
단점:
- 정확성 제한: SIFT나 SURF보다 정확성이 상대적으로 낮을 수 있음. - 특징 검출 한계: 특정 이미지에서 특징을 잘 검출하지 못할 수 있음. - 높은 차원 기술자: BRIEF의 이진 기술자는 차원이 높아서 찾는 매칭 쌍의 개수를 증가시키는데 한계가 있을 수 있음.
특징 디스크립터
이미지 간의 특징을 수치적으로 표현하여 매칭, 특징 추출과 다른 개념( 특징 추출은 이미지에서 키포인트를 찾는 과정을 의미하고, 특징 디스크립터는 키포인트 주변 영역의 특성을 벡터로 표현하는 과정을 의미)