Computer Vision(9)
-
[Computer Vision] 딥러닝 & OpenCV
1. 딥러닝 신경망(neural network): 사람의 뇌 신경 세포(neuron)에서 일어나는 반응을 모델링하여 만들어진 머신러닝 알고리즘 = 인공신경망(artificial neural network) 딥러닝(deep learning): 신경망을 여러 계층으로 쌓아서 만든 머신러닝 알고리즘 중 하나 = 심층 신경망(deep neural network) 보통 은닉층 2개 이상인 경우 딥러닝 알고리즘으로 간주 컴퓨터 비전 분야에서 딥러닝이 주목받고 있는 이유는 객체 인식, 분할 등 영역에서 기존 컴퓨터 비전 기반 기술보다 월등한 성능 보이기 때문 머신러닝: 특징(일반 pixel, HOG, ...)을 사람이 추출하여 입력으로 전달, 특징이 적합하지 않으면 좋은 성능 가지기 어려움 딥러닝: 특징 추출 및 학..
2023.10.11 -
[Computer Vision] 머신러닝 & OpenCV #2 SVM, HOG
머신러닝 & OpenCV #1 머신러닝 개요, KNN (https://coollikethat.tistory.com/53) 과 이어지는 내용입니다. 4. SVM (Support Vector Machine) 2개의 클래스로 구성도니 데이터를 가장 여유있게 분리하는 초평면(hyperplane) 찾는 머신러닝 알고리즘 초평면: 2개의 클래스의 데이터를 분리하는 N차원 공간상의 평면 (ex. 2차원 공간상 분리 → 직선, 3차원 공간상 분리 → 평면) 지도학습의 일종, 분류와 회귀에 사용 (a): 두 직선 모두 점을 잘 분리하나 조금만 이동하면 분리에 실패할 수 있음 (입력 점 데이터에 너무 가깝기 때문) (b): margin(초평면과 가장 가까운 점과의 거리)를 최대로 하는 초평면 SVM 알고리즘은 기본적으로 ..
2023.10.11 -
[Computer Vision] 머신러닝 & OpenCV #1 머신러닝 개요, KNN
1. 머신러닝 주어진 데이터를 분석하여 규칙성, 패턴 등 찾고 이를 통해 의미있는 정보 추출하는 과정 학습(train): 데이터(or feature)로부터 규칙 찾아내는 과정 모델(model): 학습에 의해 결정된 규칙 예측(predict)/추론(inference): 새 데이터를 학습된 모델에 입력으로 넣고 결과를 판단하는 과정 딥러닝 = 머신러닝의 한 종류 머신러닝: 지도학습(supervised learning), 비지도학습(unsupervised learning), 강화학습(reinforcement learning) 지도학습: 정답(label) 알고 있는 데이터 이용하여 학습 진행. 가장 많이 사용. 영상의 픽셀 값은 조명 변화, 객체 이동 등에 의해 민감하게 변하기 때문에 픽셀 값을 그대로 머신러닝..
2023.10.11 -
[Computer Vision] 영상 밝기와 명암비 조절 & 필터링
영상 밝기와 명암비 조절 1. 영상 밝기 조절 그레이스케일 영상 cvtColor(): 3채널 컬러 영상 → 그레이스케일 영상 변환. Mat 객체의 색상 정보(channel) 변경할 때 사용 ex. cvtColor(src, dst, COLOR_BGR2GRAY); ConvertTo는 type(channel, bit) 변경, cvtColor는 channel 변경 영상 밝기 조절 입력 영상의 모든 픽셀에 일정 값 더하거나 빼는 작업 수행 (더하면 밝아지고, 빼면 어두워짐) dst(x, y) = src(x, y) + n 한 번 밝기 조절 잘 못하면 일부 정보 날라갈 수 있음, 포화 연산 안하면 급격히 어두워질 수 있음 (ex. 200 + 100 = 300 = 44) 포화(saturate): 원소 자료형이 가질 수..
2023.10.11 -
[Computer Vision] OpenCV 주요 기능
1. 직선 그리기 line() 영상 위에 직선 그리는 함수, cv namespace에 선언되어 있음 line(InputOutputArray img, Point pt1, Point pt2, const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0) pt1: 시작점 / pt2: 끝점 / shift는 웬만해서 안 씀 [ lineType ] FILLED (-1) 내부를 채움 (직선 그리기 함수에는 사용 불가) LINE_4 (4) 4방향 연결 LINE_8 (8) 8방향 연결 LINE_AA (18) anti-aliasing arrowedLine() 화살표 형태의 직선 그릴 때 사용 arrowedLine(InputOutputArray i..
2023.10.11 -
[Computer Vision] Mat 클래스
1. Mat 클래스 2차원 행렬(이미지) 뿐 아니라 고차원 행렬을 표현할 수 있음 (2차원 영상 데이터가 가장 많음) 하나 이상의 channel 가질 수 있어서 grayscale 또는 color 영상 저장할 수 있음 Mat 클래스에는 정수, 실수, 복소수 등으로 구성된 행렬 or 벡터를 저장할 수 있음 dims(차원), rows(행 개수), cols(열 개수) 멤버 변수 (rows * cols 는 width * height 와 순서 반대!) data(데이터 저장된 메모리 공간 가리킴) 멤버 변수 3차원 이상 행렬에서는 rows, cols 값 -1, 크기 정보는 size 멤버 변수 통해 참조 CV_8U unsigned char CV_8S signed char CV_16U unsigned short CV_1..
2023.10.11