컴퓨터 비전 14

OpenCV 머신러닝과 딥러닝

케스케이드 분류기 얼굴 검출 비올라-존스 얼굴 검출기 - 기존 얼굴 검출 방법보다 약 15배 빠르게 동작 - 유사 하르 특징 사용 - 사각형 형태의 필터 집합 사용 - 흰색 사각형 영역 픽셀 값의 합에서 검정 사각형 영역 픽셀 값을 뺀 결과 추출 - 적분 영상을 이용하여 계산 가능 - AdaBoost 알고리즘을 이용하여 얼굴 판별에 유용한 유사 하르 특징 선별 - 24x24 크기의 부분 영상에서 180,000개 이상의 틀징 추출 가능 - AdaBoost 알고리즘을 이용하여 효과적인 유사 하르 특징 6000천여개 선별하여 사용 - 케스케이드 분류기 - 일반적인 영상에는 얼굴이 한 구개 있을 뿐, 나머지 영역은 대부분 non-face 영역 - Non-face 영역을 빠르게 skip하도록 다단계 검사 수행 C..

컴퓨터 비전 2023.10.31

OpenCV 영상의 기하학적 변환

영상의 기하학적 변환 - 영상을 구성하는 픽셀의 배치 구조를 변경함으로써 전체 영상의 모양을 바꾸는 작업 이동 변환 - 가로 또는 세로 방향으로 영상을 특정 크기만큼 이동시키는 변환 for (int y = 0; y = dst.cols) continue; if (y_ = dst.rows) continue; dst.at(y_, x_) = src.at(y, x); } } 전단 변환 - 직사각형 형태의 영상을 한쪽 방향으로 밀어서 평행사변형 모양으로 변형되는..

컴퓨터 비전 2023.10.30

OpenCV 영상 분할과 객체 검출

템플릿 매칭 - 입력 영상에서 부분 영상 위치를 찾는 기법 - 템플릿: 찾을 대상이 되는 작은 영상 void matchTemplate( InputArray image, InputArray templ, OutputArray result, int method, InputArray mask = noArray() ); method 인자 https://docs.opencv.org/4.x/df/dfb/group__imgproc__object.html#ga3a7850640f1fe1f58fe91a2d7583695d OpenCV: Object Detection \[R(x,y)= \frac{ \sum_{x',y'} (T'(x',y') \cdot I'(x+x',y+y')) }{ \sqrt{\sum_{x',y'}T'(x',y..

컴퓨터 비전 2023.10.27

OpenCV 이진 영상 처리

영상의 이진화 - 영상의 픽셀 값을 0 또는 255(1)로 만드는 연산 그레이스케일 영상 이진화 - 임계값 연산 사용 double threshold( InputArray src, OutputArray dst, double thresh, double maxval, int type ); 자동 임계값 결정법 - Otsu 이진화 방법 - 입력 영상이 배경과 객체 두 개로 구성되어 있다고 가정 - 임의의 임계값 T에 의해 나워지는 두 픽셀 분포 그룹의 분산이 최소가 되는 T를 선택 - 일종의 최적화 알고리즘 - threshhold() 함수의 tyoe 인자에 THRESH_OTSU 지정 지역 이진화 전역 이진화: 영상 전체에 대해 동일한 임계값을 사용하여 이진화를 수행하는 기법 균일하지 않은 조명의 영향을 해결 ->..

컴퓨터 비전 2023.10.26

OpenCV 영상의 특징 추출

에지 검출과 소벨 필터 에지 - 영상의 픽셀의 밝기 값이 급격하게 변하는 부분 기본적인 에지 검출 방법 - 영상을 x,y 변호의 함수로 간주했을 때 함수의 1차 미분 값이 크게 나타나는 부분을 검출 가우시안 블러와 에지 검출 - 입력 영상에 가우시안 블러를 적용하여 잡음 제거 후 에지 검출 OpenCV 에지 검출 for (int y = 1; y < src.rows - 1; y++) { for (int x = 1; x < src.cols - 1; x++) { int v1 = src.at(y - 1, x + 1) + src.at(y, x + 1) * 2 + src.at(y + 1, x + 1) - src.at(y - 1, x - 1) - src.at(y, x - 1) * 2 - src.at(y + 1, x ..

컴퓨터 비전 2023.10.25

OpenCV 특정점 검출과 매칭

크기 불변 특징점 - 스케일 스페이스 또는 이미지 피라미드를 구성하여 영상의 크기가 바뀌더라도 특징점을 찾아 응용에서 사용 - 주요 알고리즘: SIFT, SURF, KAZE, AKZE, ORB 등 SIFT 알고리즘 Detector 1. 스케일 스페이스 : DOG 영상 생성 2. 키포인트 찾기 : DOG 영상에서 주변 8개 점과 상/하 스케일 DOG 영상에서 18개 점, 총 26개 점을 비교하여 지역 최대 최솟값 선택 Descriptor 1. 방향 불변 특성을 위한 주 방향 성분 추출 - 키포인트 근방의 부분 영상 추출 - 부분 영상의 모든 픽셀에서 그래디언트 성분 계산 - 히스토그램 최댓값 방향과 최댓값의 80% 이상 크기를 갖는 빈 방향을 키포인트 방향으로 설정 2. 각 키포인트에 대해 기준 방향 성분..

컴퓨터 비전 2023.10.23

OpenCV 필터링

void copyMakeBorder(InputArray src, OutputArray dst, int top, int bottom, int left, int right, int borderType, const Scalar& value = Scalar() ); // 영상 가장자리 픽셀 확장 기본적인 2D 필터링 함수 void filter2D( InputArray src, OutputArray dst, int ddepth, InputArray kernel, Point anchor = Point(-1,-1), double delta = 0, int borderType = BORDER_DEFAULT ); 엠보싱 : 직물이나 종이, 금속판 등에 올록볼록한 형태로 만든 객체의 윤곽 또는 무늬 엠보싱 필터 : 입력영..

컴퓨터 비전 2023.10.20

OpenCV 영산의 산술

덧셈연산 - 두 영상의 같은 위치에 존재하는 픽셀 값을 더히여 결과 영상의 픽셀 값으로 설정 dst(x, y) = saturate(src1(x,y) + src2(x,y)) dst(x, y) = saturate(a*src1(x,y) + b*src2(x,y)) // 가중치 합 a+b=1이 되도록 설정 dst(x, y) = (1/2)*saturate(src1(x,y) + src2(x,y)) // 평균연산 뺄셈연산 - 두 영상의 같은 위치에 존재하는 픽셀 값을 뺄셈히여 결과 영상의 픽셀 값으로 설정 차이 연산 - 두 영상에 뺄셈 연산 수행 후 절댓값을 이용하여 결과 영상을 생성하는 연산 void add(InputArray src1, InputArray src2, OutputArray dst, InputArray..

컴퓨터 비전 2023.10.19

OpenCV 히스토그램

히스토그램 - 영상의 픽셀 값 분포를 그래프의 현태로 표현한 것 - 픽셀 값의 위치 정보는 알 수 없음 정규화된 히스토그램 - 히스토그램으로 구한 각 픽셀의 개수를 영상 전체 픽셀 개수로 나눈 것 OpenCV 히스토그램 계산 함수 void calcHist( const Mat* images, int nimages, const int* channels, InputArray mask, SparseMat& hist, int dims, const int* histSize, const float** ranges, bool uniform = true, bool accumulate = false ); Mat calcGrayHist(const Mat& img) { CV_Assert(img.type() == CV_8U);..

컴퓨터 비전 2023.10.19