Programming/인공지능(AI) - 딥러닝, 머신러닝, OpenCV

OpenCV, 머신러닝, 딥러닝/ 주요 개념 정리

esoog Polaris 2023. 10. 17. 14:18
반응형

0. 히스토그램 평활화(Histogram Equalization):
히스토그램 평활화는 이미지의 전체적인 대비를 향상시키기 위해 사용됩니다.
이미지의 픽셀 값 분포를 전체적으로 균등하게 만들어 주는 방법입니다.
각 픽셀 값에 대한 누적 분포 함수를 계산하여 히스토그램을 변환시킵니다. 이를 통해 히스토그램이 평평하게 만들어지고 대비가 향상됩니다.
히스토그램 평활화는 이미지의 밝기 분포를 조정하여 이미지를 더 선명하게 만들고 시각적 효과를 향상시키는 데 사용됩니다.

 

 

1. 오츄 알고리즘(Chu Algorithm):
오츄 알고리즘은 이미지 이진화를 위한 알고리즘으로, 임계값을 자동으로 결정하는 데 사용됩니다. 이미지의 히스토그램을 분석하여 전경과 배경 사이의 가장 적절한 임계값을 찾아내어 이미지를 흑백으로 분류하는 데 활용됩니다.

 


2. 모폴로지(Morphology):
모폴로지는 이미지 처리 기술로, 이미지의 형태와 구조를 분석하고 조작하기 위해 사용됩니다. 모폴로지 연산은 팽창, 침식, 열림, 닫힘 등의 연산을 통해 이미지에서 특징을 추출하거나 객체의 형태를 변경하는 데 사용됩니다.

 


3. 컨볼루션(Gabor Convolution):
컨볼루션은 이미지에서 주파수와 방향에 민감한 정보를 추출하는 데 사용되는 필터링 기술입니다. 이 필터는 주로 텍스처 분석, 특징 추출 및 얼굴 인식과 같은 작업에 활용됩니다. 그리코 필터는 주파수와 방향에 대한 감도를 조절할 수 있으며, 이미지에서 특정 방향 및 주파수의 패턴을 검출하는 데 유용합니다. 이러한 필터는 주로 기계 학습 및 패턴 인식에서 활용되며, 주로 특징 벡터를 생성하기 위해 이미지에 대해 적용됩니다. 입력영상의 각 화소에 필터를 적용해 곱의 합을 구하는 연산. 스무딩, 샤프닝, 엠보싱 필터 등

 

4. RANSAC (Random Sample Consensus):
RANSAC은 이상값 제거와 모델 매칭에 사용되는 로버스트한 통계적 알고리즘입니다. 주로 점 또는 특징 포인트를 이용하여 모델을 추정하고, 데이터에서 이상값(잘못된 포인트)를 식별하거나 모델의 매개 변수를 찾는 데 활용됩니다. RANSAC은 노이즈가 많은 데이터에서 이상값을 걸러내고 올바른 모델을 찾을 때 유용합니다. OpenCV에서는 RANSAC을 사용하여 선, 원, 평면과 같은 기하학적 모델을 추정하고 특징 일치 검출에 활용할 수 있습니다.

 


5. GrabCut:
GrabCut은 전경과 배경을 분리하는 이미지 세그멘테이션 기술 중 하나로, 주로 객체 추적 및 이미지 분할에 사용됩니다. 이 알고리즘은 사용자가 초기로 설정한 전경과 배경 마스크를 기반으로 이미지를 분할합니다. 그런 다음 반복적인 그래프 컷 알고리즘을 사용하여 객체 경계를 미세 조정합니다. GrabCut은 전경 객체를 정확하게 분할하기 위해 사용자의 입력과 알고리즘의 반복적인 최적화를 결합합니다. OpenCV에서는 GrabCut 알고리즘을 제공하며, 이미지 세그멘테이션 작업에서 유용하게 활용할 수 있습니다.

 

6. SIFT(스케일 불변 특징 변환, Scale-Invariant Feature Transform)

컴퓨터 비전에서 이미지 처리와 객체 검출을 위한 강력한 특징 추출 알고리즘 중 하나입니다. SIFT는 이미지 내에서 관심 있는 특징 지점을 찾고 이러한 특징을 설명하는 디스크립터(기술자)를 생성하는데 사용됩니다. 이 알고리즘은 다음과 같은 주요 특징을 가지고 있습니다:

1. 스케일 불변성: SIFT는 객체나 특징의 크기가 다양한 경우에도 잘 작동합니다. 다양한 스케일에서 이미지에서 특징을 검출하고 설명할 수 있기 때문에 스케일 불변성을 제공합니다.
2. 회전 불변성: SIFT는 객체나 특징의 회전에도 강한 성능을 보여줍니다. 이미지 내에서 특징을 회전되어도 인식할 수 있도록 설계되었습니다.
3. 공간 불변성: SIFT는 이미지의 이동(Translation)에 대해서도 불변하며, 특징을 추출한 후 이동된 위치에서도 동일한 특징을 찾을 수 있습니다.
# SIFT 알고리즘은 아래와 같은 주요 단계로 작동합니다:
1. 스케일 스페이스 구성: 이미지를 다양한 스케일에서 평활화하고 생성한 이미지 피라미드에서 특징을 검출합니다.
2. 키포인트(특징 지점) 검출: 이미지에서 지역적으로 높은 변화를 갖는 위치를 찾아 키포인트로 설정합니다.
3. 키포인트의 주변 영역 기반으로 특징 디스크립터 생성: 각 키포인트를 중심으로 주변 영역을 선택하고, 이 영역에서 특징을 추출하는데 사용되는 로컬 히스토그램을 생성합니다.
4. 특징 매칭: 서로 다른 이미지에서 추출한 키포인트 및 디스크립터를 비교하여 두 이미지 간에 특징을 일치시킵니다.

 

 

7. 오토인코더(Autoencoder)

인공 신경망을 기반으로 하는 비지도 학습 모델 중 하나로, 주로 차원 축소, 데이터 압축 및 특징 추출에 사용됩니다. 오토인코더는 입력 데이터를 인코더(encoder)를 통해 낮은 차원의 표현으로 압축하고, 그 다음 디코더(decoder)를 사용하여 원래의 입력 데이터로 복원하려고 시도합니다.
1. **인코더 (Encoder):** 인코더는 입력 데이터를 저차원 표현으로 매핑하는 역할을 합니다. 이 표현은 주로 입력 데이터의 중요한 특징을 추출하는 데 사용됩니다. 인코더는 신경망의 은닉층으로 구성되며, 활성화 함수를 사용하여 입력 데이터를 압축합니다.
2. **디코더 (Decoder):** 디코더는 인코더의 출력을 다시 원래의 입력 데이터로 복원하는 데 사용됩니다. 디코더는 역시 신경망의 은닉층으로 구성되며, 압축된 표현을 확장하여 원래 차원의 데이터를 재구성합니다.
주요 응용 분야로는 데이터 압축, 차원 축소, 이미지 노이즈 제거, 이미지 복원, 특징 추출, 생성 모델링 등이 있습니다. 또한, 변이형 오토인코더(Variational Autoencoder, VAE)와 같이 다양한 변형이 개발되어 다양한 작업에 적용되고 있습니다.

 

 

8. 전이 학습(Transfer Learning)

기계 학습 및 딥 러닝 분야에서 사용되는 중요한 학습 기법 중 하나로, 미리 훈련된 모델의 지식을 다른 관련 작업에 활용하는 방법입니다. 이것은 새로운 작업을 위한 모델을 훈련하기 위해 기존 모델의 학습된 특징 및 가중치를 재사용하는 것을 의미합니다.
1. **미리 훈련된 모델 사용:** 전이 학습은 이미 다른 대규모 데이터셋에서 훈련된 모델, 주로 딥 러닝 모델을 활용합니다. 이러한 모델은 이미지 분류, 자연어 처리, 음성 인식 등 다양한 작업에서 훈련된 것이며, 풍부한 특징을 추출하기 위해 많은 시간과 계산 리소스가 소비되었습니다.
2. **모델의 일부 또는 전체 재사용:** 미리 훈련된 모델의 일부 또는 전체 아키텍처와 가중치를 새로운 작업에 재사용합니다. 일반적으로 이러한 모델의 하위 레이어(특징 추출기)는 고정하고, 상위 레이어(분류기)는 새로운 작업에 맞게 재조정됩니다.
3. **작은 데이터셋에 대한 성능 향상:** 전이 학습을 사용하면 적은 양의 데이터로도 상대적으로 높은 성능을 얻을 수 있습니다. 이는 미리 훈련된 모델이 이미 다양한 특징을 학습했으며, 새로운 작업에서 학습해야 할 특징을 줄여줍니다.

 

 

9. **RCNN (Region-based Convolutional Neural Networks):**
   - **지역 기반 접근:** RCNN은 이미지를 각각의 작은 영역으로 나누고, 이러한 지역(proposals)을 개별적으로 분석합니다. 이러한 지역은 미리 선택되거나 객체의 위치를 가정한 후에 선택됩니다.
   - **단계적 프로세스:** RCNN은 객체 제안(Region Proposal) 단계, 특성 추출 단계 및 객체 분류 단계로 나누어 진행됩니다. 이러한 단계적 접근으로 정확한 객체 위치를 찾을 수 있지만 처리 속도가 느립니다.
   - **비교적 정확한 결과:** RCNN은 정확한 객체 검출 결과를 제공하지만 속도 면에서 상대적으로 느립니다.

 


10. **YOLO (You Only Look Once):**
   - **실시간 검출:** YOLO는 실시간 객체 검출에 중점을 두고, 이미지를 그리드로 나누고, 각 그리드 셀에서 객체에 대한 정보를 예측합니다.
   - **단일 단계 프로세스:** YOLO는 한 번의 순방향 패스로 객체의 위치와 클래스를 예측합니다. 이것은 RCNN에 비해 훨씬 빠른 처리 속도를 제공합니다.
   - **상대적으로 빠른 속도:** YOLO는 실시간 응용 프로그램에서 사용하기에 적합한 빠른 속도를 가지고 있지만, 정확성 측면에서는 RCNN보다 조금 떨어질 수 있습니다.

 

 

11. **SORT (Simple Online and Realtime Tracking):**
   - **알고리즘:** SORT는 단순하고 효율적인 객체 추적을 위한 알고리즘으로, 칼만 필터(Kalman Filter)를 사용하여 객체의 예측 및 추정을 수행합니다. SORT는 이미지 프레임 간에 객체 위치를 추적하며, 객체 감지 및 추적을 결합하여 수행됩니다.
   - **속도:** SORT는 객체 추적에 상대적으로 빠르며, 실시간 응용 분야에서 사용하기에 적합합니다.
   - **정확성:** SORT는 단순한 방법으로 객체를 추적하므로 정확성 측면에서는 덜 정교할 수 있습니다.
   - **사용 사례:** SORT는 실시간 객체 추적이 필요한 간단한 응용 분야에서 사용됩니다.

12. **DeepSORT (Deep Learning-based SORT):**
   - **알고리즘:** DeepSORT는 딥러닝을 기반으로한 개선된 SORT 버전으로, 딥러닝 모델을 사용하여 객체 추적 및 식별을 수행합니다. 객체 특징을 추출하고 식별하기 위해 신경망을 활용합니다.
   - **속도:** DeepSORT는 SORT에 비해 복잡하며, 딥러닝 모델을 사용하기 때문에 처리 시간이 더 오래 걸릴 수 있습니다. 하지만 최신 GPU를 활용하면 속도를 향상시킬 수 있습니다.
   - **정확성:** DeepSORT는 딥러닝을 사용하므로 객체 추적과 식별에 있어서 정확성이 향상됩니다. 특히, 다중 객체 식별에 강점을 가집니다.
   - **사용 사례:** DeepSORT는 보다 정교한 객체 추적 및 식별이 필요한 응용 분야에서 사용됩니다. 예를 들어, 도로 교통 감시, 보안 감시, 스포츠 분석 등에서 활용됩니다.

 

 

13. **자기주목(Self-Attention):**

* 주목(Attention)":  자연어 처리 및 기계 학습 분야에서 중요한 개념으로, 모델이 입력 데이터의 특정 부분에 집중하도록 하는 메커니즘
   - 자기주목은 주로 시퀀스 데이터(예: 문장)를 처리할 때 사용되는 메커니즘으로, 각 입력 요소(예: 단어 또는 토큰) 사이의 상호 작용을 모델링합니다.
   - 자기주목 메커니즘은 입력 시퀀스의 모든 요소에 대한 가중치를 계산하여 중요한 정보를 강조하거나 무시할 수 있게 합니다.
   - 자기주목은 주로 RNN 및 CNN과 함께 사용되며, 텍스트 분류, 기계 번역, 질문 응답 시스템과 같은 자연어 처리 작업에서 활용됩니다.

 


14. **LSTM (Long Short-Term Memory):**
   - LSTM은 순환 신경망(RNN)의 한 종류로, 시퀀스 데이터를 처리하는 데 사용됩니다. LSTM은 시간적 의존성을 모델링하고 장기 및 단기 메모리를 관리합니다.
   - LSTM은 게이트 메커니즘을 사용하여 정보의 흐름을 제어하며, 긴 시퀀스를 처리할 때 그라디언트 소실 문제를 완화합니다.
   - LSTM은 기계 번역, 음성 인식, 음성 생성 및 자연어 이해와 같은 작업에 널리 사용됩니다.

 


15. **트랜스포머 (Transformer):**
   - 트랜스포머는 자연어 처리 분야에서 사용되는 딥러닝 모델로, 자기주목 메커니즘을 중심으로 구성되며 시퀀스 데이터를 처리하는 데 사용됩니다.
   - 트랜스포머는 LSTM과 RNN의 순차적 처리 대신 병렬 처리를 사용하여 계산 효율성을 높입니다.
   - 트랜스포머는 멀티헤드 어텐션(Multi-Head Attention) 및 층 정규화(Layer Normalization)와 같은 기술을 사용하여 자연어 처리 작업에서 뛰어난 성능을 보입니다. 트랜스포머 모델의 대표적인 예로 BERT, GPT, 및 트랜스포머-인코더/디코더가 있습니다.

 

 

# etc.

비전 인식 종류: 분류(의미,사례) - 검출 - 분할 (의미,사례) - 추적 - 행동분류

에지 검출: Canny 검출 등

허프 변환(Hough Transformation) : 에지 끊김 현상을 선분 등으로 변환

투영 변환(Projection Transformation) : 3차원점을 2차원 평면으로

호모그래피(Homography): 제한된 상황에서 이뤄지는 투영변환

에일리어싱(Aliasing): 시각적인 불만스러운 현상을 가리킴

비전 에이전트: 비전 센서를 통해 환경을 지각하고 엑츄에이터를 통해 환경에 행동을 가하는 모든 것

옵티마이저(Optimizer): 최적화 알고리즘

퍼셉트론(Perceptron): 최초의 성공적인 신경망 모델. 선형적 분류

과잉 적합(overfitting): 학습 알고리즘이 훈련 집합에 과다하게 맞추다 보니 일반화 능력을 상실하는 현상

프레임(frame): 비디오 구성 영상 한 장을 가리킴

깊이(depth): 컴퓨터 비전에서 카메라에서 물체사이의 거리를 가리킴

SLAM: 자신의 위치를 부분 지도 속에서 인식하며 동시에 지도를 완성해나가는 일

생성모델(Generation Model): 영상을 생성하는 모델

 

 

 

 

 

728x90