반응형

분류 전체보기 823

[OpenCV 딥러닝] 미리 학습된 파일을 OpenCV DNN 모듈로 딥러닝 실행하기 - cv2.dnn.readNet

OpenCV DNN(Deep Neural Network) 모듈 미리 학습된 딥러닝 파일을 OpenCV DNN 모듈로 실행할 수 있습니다. 순전파(foward), 추론(inference)만 가능하며 학습은 지원하지 않습니다. 1. 네트워크 불러오기 - cv2.dnn.readNet OpenCV로 딥러닝을 실행하기 위해서는 우선 cv2.dnn_Net 클래스 객체를 생성해야 합니다. 객체 생성에는 훈련된 가중치와 네트워크 구성을 저장하고 있는 파일이 필요합니다. cv2.dnn.readNet(model, config=None, framework=None) -> retval • model: 훈련된 가중치를 저장하고 있는 이진 파일 이름 • config: 네트워크 구성을 저장하고 있는 텍스트 파일 이름, config..

[선형대수학] 1.5 선형계의 해의 집합 - Solution Sets of Linear Systems - 제차 선형계, 비제차 선형계, 특수해, 자명해, 제차해

이번 포스팅에서 공부할 내용은 다음과 같습니다. 제차 선형계(homogeneous system) 자명해(trivial solution) 비자명해(nontrivial solution) 비제차 선형계(nonhomogeneous system) 특수해(particular solution), 제차해(homogeneous solution) 제차 방정식과 비제차 방정식의 관계 1. 제차 선형계 - Homogeneous Linear Systems Ax=0 인 행렬 방정식(matrix equation)을 제차 선형계(Homogeneous linear system)라고 합니다. 제차 선형계의 특징 (1) 항상 최소 하나의 자명해(trival solution)을 갖고 있습니다. 자명해(trival solution)은 x=0..

[선형대수학] 1.4 행렬 방정식 Ax=b - The Matrix Equaion Ax=b - 선형 시스템 표현하는 3가지 방법, 내적

이번 포스팅에서 공부할 것은 다음과 같습니다. 행렬 방정식(matrix equation) Ax=b 이론 3: linear system은 3가지 관점으로 볼 수 있으며 모두 동일한 해를 갖고 있습니다. 이론 4: A의 필요충분 조건 행렬 방정식을 빠르게 계산하는 내적 1. Ax : A 곱하기 X의 의미 - product of A and X A는 columns($a_1, ... , a_n)로 이루어진 mxn 행렬입니다. x는 $R^n$ 공간에 있습니다. Ax를 표현하면 다음과 같습니다. 이것은 x를 weights로 사용한 A의 columns의 linear combination입니다. 즉, x는 scalar의 vector입니다. 2. 행렬 방정식(Matrix equation) 풀기 행렬 방정식을 풀어보겠습니다..

[선형대수학] 1.3 벡터 방정식 - Vector Equations - Span{}, 선형 결합, 벡터의 대수학적 성질

이번 포스팅에서 공부할 것은 다음과 같습니다. vectors in $R^n$ : algevraic propreties(대수학적 성질) linear combination(선형 결합)과 vector equation(벡터 방정식)의 관계 Span{} 1. 2차원 실수체계에서의 벡터 - Vectors in $R^2$ $R^2$가 의미하는 것은 2차원 실수체계를 의미합니다. 벡터의 표현 방법으로는 3가지가 있습니다. (1) 대괄호 (2) 좌표 u=(3,-1), v=(.2,.3) (3) 화살표 원점에서부터 vector point까지 화살표를 그려 표현합니다. 2. 벡터 덧셈 - Vector summation 2차원 실수체계 공간에서 두 개의 벡터가 주어졌을 때 덧셈을 할 수 있습니다. 3. 스칼라 곱 - Scala..

[선형대수학] 1.2 행 줄임과 사다리꼴 - Row reduction and Echelon forms - 기약 사다리꼴, 선행 성분, 자유 변수, 일반 해, 유일성

이번 포스팅에서 공부할 것은 다음과 같습니다. A nonzero row of column (0이 아닌 행과 열) A leading entry of row (행의 선행 성분) Echelon form (사다리꼴) Reduced echelon form (기약 사다리꼴) Uniqueness of the Reduced Echelon Form (기약 사다리꼴의 유일성) Row reduction algorithm (행 줄임 알고리즘) Solution of linear systems (선형 시스템의 해) 일반 해(general soution), 기본 변수(basci variables), 자유 변수(free variable) Existence and Uniqueness Theorem (유일성과 존재) 이번 포스팅의 핵심..

[선형대수학] 1.1 선형 방정식계 - Systems of Linear Equations - 소거법, 행 상등, 해의 집합, 행 연산, 행렬 표기법

이번 포스팅에서 공부할 것은 다음과 같습니다. 선형 방정식 - linear equation 선형 방정식 계 - sysyems of linea equation 해의 집합 - solution set consistent/inconsistent 의미 - no solution, exactly one solution, infinity many solutions 행렬 표기법 - matrix notation 소거법 - elimination 행 연산 - row operation (replacement, interchange, scaling) 상등(equivalent)/ 행 상등(row equivalent) 1. 선형 방정식 - linear equation $x_1, ... , x_n$ 변수로 이루어진 선형 방저식은 다음..

[OpenCV 머신러닝] OpenCV에서 k-means 알고리즘 사용하기 - cv2.kmeans

OpenCV에서 제공하는 함수를 이용하여 k-means 알고리즘을 이용하는 방법에 대해 공부해보겠습니다. k-평균(k-means) 알고리즘 k-means 알고리즘은 주어진 데이터를 k 개의 구역으로 나누는 군집화(clustering) 알고리즘입니다. 비지도 학습이며 데이터를 무작정 입력으로 주고 임의의 기준으로 나눠주는 형태로 동작하는 알고리즘 입니다. k는 군집 갯수를 의미하여 사용자가 지정해줘야 하는 파라미터입니다. k-means 알고리즘 동작 순서 1. 임의의 k개 중심을 선정합니다. (초기치 중심을 설정해줘야 합니다) 랜덤하게 각 샘플의 중심이라고 간주할 위치를 임의로 선택합니다. 초기 중심점을 어떻게 선정하냐에 따라 결과값이 달라지게 됩니다. 2. 모든 데이터에 대하여 가장 가까운 중심을 선택하..

[OpenCV 머신러닝] 학습 데이터 영상을 위치 정규화하여 성능 높이기 - cv2.moments, cv2.warpAffine

학습 데이터 영상 정규화 - Normalization 학습 데이터 영상과 테스트 데이터 영상의 위치, 크기, 회전 등의 요소를 정규화 하면 인식 성능을 향상시킬 수 있습니다. 이번 포스팅에서는 입력 영상의 무게 중심이 전체 영상 중앙이 되도록 위치를 정규화하여 성능을 높여보겠습니다. 무게 중심을 이용한 정규화 방법은 흰색 객체의 x좌표, y좌표를 다 더해서 전체 픽셀수로 나누어서 구현합니다. 무게 중심 정규화 이외에도 회전, 기울기, 크기 정규화를 한다면 더 정확도가 높아질 수 있습니다. 이전 포스팅에서 구현해보았던 HOG&SVM 필기체 숫자 인식 프로그램을 위치 정규화로 성능을 높여보겠습니다. [OpenCV 머신러닝] OpenCV에서 HOG 알고리즘을 이용한 SVM 필기체 숫자 인식 HOG & SVM ..

[OpenCV 머신러닝] OpenCV에서 HOG 알고리즘을 이용한 SVM 필기체 숫자 인식

HOG & SVM 필기체 숫자 인식 픽셀값을 이용하여 SVM을 학습시키는 것보다 HOG 알고리즘으로 추출한 특징 벡터를 이용하여 SVM을 학습시키는 것이 정확도가 더 뛰어납니다. 이번 포스팅에서는 HOG 특징 벡터를 이용한 SVM 학습 방법에 대해 알아보고 필기체 숫자를 인식해 보겠습니다. 필기체 숫자 데이터 필기체 숫자 데이터는 OpenCV 깃허브에서 제공하는 숫자 데이터를 이용했습니다. opencv/opencv Open Source Computer Vision Library. Contribute to opencv/opencv development by creating an account on GitHub. github.com 데이터에는 20X20 숫자 영상이 가로 100개, 세로 50개 총 5000개..

[OpenCV 머신러닝] OpenCV에서 서포트 벡터 머신(SVM) 사용하기 - cv2.ml.SVM_create, cv2.ml_SVM.trainAuto

이전 포스팅에서 서포트 벡터 머신(SVM)에 대해 알아보았습니다. 이번에는 OpenCV로 서포트 벡터 머신을 사용하는 방법에 대해 알아보겠습니다. 객체 생성 -> SVM 타입 지정 -> SVM 커널 지정 -> SVM 자동 학습(k-폴드 교차 검증) -> predict 순으로 진행됩니다. 1. SVM 객체 생성 - cv2.ml.SVM_create() cv2.ml.SVM_create() -> retval • retval: cv2.ml_SVM 객체 cv2.ml.SVM_create() 함수로 cv2.ml_SVM 객체를 반환받을 수 있습니다. 2. SVM 타입 지정 - cv2.ml_SVM.setType cv.ml_SVM.setType(type) -> None • type: SVM 종류 지정. cv2.ml.SVM_..

반응형