728x90
728x90
황선규 박사님의 패스트 캠퍼스 OpenCV 강의 공부한 내용을 정리해 보았습니다.
OpenCV
OpenCV는 Open Source Computer Vision Library
OpenCV를 활용하여 물체인식, 얼굴인식, 제스처 인식을 비롯하여 자율 주행 자동차, OCR 판독기,
불량검사기 등에 활용
OpenCV는 영상 처리가 들어가는 프로그램이라면 가히 필수적으로 사용하게 되는 라이브러리
*프로젝트 주의사항
제작할 프로그램 설계를 효율적으로 진행하고 완성하기 위한 작업의 첫 걸음은 프로그램이
어떤 목적을 가지고 어떤 역할을 할지 정확하게 파악하는 것
=이것은 카메라의 성능의 선택과 알고리즘의 구성 선택에 필연적인 영향을 미친다.
so, 프로그램의 목적을 정확히 파악하고 영상 처리에 필요한 적합한 하드웨어와 소프트웨어를 선택
컴퓨터 비전(Computer vision)
• 컴퓨터를 이용하여 정지 영상 또는 동영상으로부터 의미 있는 정보를 추출하는 방법을 연구하는 학문
• 즉, 사람이 눈으로 사물을 보고 인지하는 작업을 컴퓨터가 수행하게끔 만드는 학문
필수 사전 지식
- 디지털 영상 처리 : 기본적인 영상을 조작 능력
- 선형대수학 : 영상 데이터는 행렬로 표현, 연산
- 미분적분학 : 특징(feature)을 추출하기 위해 필요
- 디지털 신호 처리 : 영상 또한 신호의 한 종류 입니다.
LTI system, aliasing, sampling, Fourier Transform 같은 기초 지식은 필수
- 패턴인식 : 추출된 특징을 분류/이해하기 위해 필요
- 확률론 : 패턴을 찾기 위해서는 데이터의 분포를 다룸.
Computer Vision <=> Image Processing
- Computer Vision
- 컴퓨터 비전은 사람이 인식하는 것처럼 '이해'가 목적
- 따라서 이미지에서 인식할 수 있도록 특징을 추출하는 것과(feature extraction) 찾아낸 특징을 매칭하는 것이(feature matching) 주요 목표
- Image Processing
- 영상 처리는 영상을 조작하는 모든 행위를 의미
- 예를 들어 이미지에 모자이크처리를 하거나 경계 선이 두드러지도록 edge를 보강할 수도 있다.
- 영상 처리는 컴퓨터 비전을 위한 전처리 작업
Computer Vision 분야
1. 영상 화질 개선 (Image Noise Reduction, Super Resolution, HDR)
2. 객체 검출(Object Detection)
3. 인식(Recognition)
4. 머신 비전(Machine Vision) = 공장 자동화: 제품의 불량 검사, 위치 확인, 측정 등
5. 인공지능 서비스 = Computer Vision + Sensor Fusion + Deep Learning
- Classification
- ImageNet 대회로 이미 많이 알려진 분야입니다.
- 이미지가 입력되면 특정 class로 분류하는 분야입니다.
- https://www.kaggle.com/c/dogs-vs-cats 의 예제로 경험해 볼 수 있습니다.
- Detection
- 이미지에서 물체를 포함하는 bounding box를 찾는 알고리즘을 의미합니다.
- 다수의 물체에 대해 bbox 좌표와 물체의 class를 출력합니다.
- Segmentation
- 픽셀 단위로 class를 분류하는 알고리즘을 의미합니다.
- 분할 알고리즘이 포함되며 지도학습 뿐만 아니라 meanshift 등과 같은 비지도 학습 기반 방법도 사용될 수 있습니다.
- Feature extraction
- 특징을 추출하는 알고리즘을 의미합니다.
- 특징이란, 물체의 형태나 크기, 위치가 변해도 쉽게 식별이 가능한 점을 의미합니다.
- 대체로 코너점이 특징점으로 이용하기 쉽습니다. Harris corner 알고리즘 등이 포함됩니다.
- Feature description
- 추출된 특징점이 특정 조건을 만족할 때 특징 기술자로 불립니다.
- 조건은 '분별력, 불변, 크기' 입니다.
- 대표적인 기술자로는 SIFT, HOG, FAST 등이 있습니다.
- Matching
- 서로 다른 영상의 시점이 다를 때, 각 영상을 변형하여 하나의 좌표계로 표현하는 방법을 매칭 또는 정합이라 합니다.
- 특징 기술자를 이용해서 동일한 위치의 특징점을 찾아 선형/비선형 변환하는 방법으로 구현할 수 있습니다.
- 예를 들어 영상의학에서 CT, MRI 상의 환부를 동일 위치로 표현할 때 사용됩니다.
- 3D vision
- 서로 다른 2개 이상의 영상을 이용해 3차원 좌표로 변환 할 수 있습니다.
- 삼각 측량법이 주로 사용됩니다. stereo vision, multiple-view, visual SLAM 등이 있습니다.
- 카메라 파라미터 계산부터 영상 정합(rectification), 전체 매칭, 3차원 위치 복원 과정을 거쳐야하기 때문에 앞에서 서술한 방법 대부분이 사용될 수 있습니다.
- Tracking
- 영상에서 관심 물체를 시간축으로 추적하는 알고리즘을 의미합니다.
- One-shot learning이라고도 표현 할 수 있습니다.
- Kalman filter는 가장 유명한 추적 알고리즘 중 하나입니다.
- Generative model
- 최근 딥러닝을 큰 발전으로 영상을 생성할 수 있게 되었습니다.
- manifold learing 등을 통해 latent vector로 부터 고차원 이미지 생성이 가능해지고 있습니다.
- GAN, DCGAN 부터 공부를 시작해 보세요.
* Detection, tracking, recognition의 차이
1. Dectection - 영상에서 대상을 찾는 것은 detection
2. Recognition - 찾은 대상이 무엇인지 식별하는 것
3. Tracking - 비디오 영상에서 특정 대상의 위치 변화를 추적하는 것
728x90
'OpenCV > OpenCV-Chapter' 카테고리의 다른 글
CH03 Opencv-Python Histogram, Contrast (0) | 2021.12.18 |
---|---|
CH03 Opencv-Python 영상 처리 기법(화소, 연산) (0) | 2021.12.18 |
CH02 OpenCV-Python 기초(도형그리기) (0) | 2021.12.18 |
CH02 OpenCV-Python 기초(imread, mask,ROI) (0) | 2021.12.18 |
CH01 OpenCV-Python(Image? OpenCV?) (0) | 2021.12.18 |
댓글