검색결과 리스트
글
[OpenCV]Opencv 2.4.3 설치와 설정하기
먼저 OpenCV 는 컴퓨터 비전 라이브러리입니다.영상 처리 분야에서 널리 사용되고 있고,
원래 OpenCV 는 인텔에서 먼저 개발이 되기 시작을 했는데, 현제는 인텔 주도로 개발이 되지 않습니다.
버전은 약 1년에 1회씩 진행이 되고, 2012년 12월 기준으로는 OpenCV 2.4.3버전이 최신입니다.
2.3버전 부터는 이미 빌드되어 있다.// Cmake파일 다운 받아 빌드 할 필요 없다. 바로 사용할 수 있다.
64bit Window7에서 visual studio 2010로 Opencv 2.4.3 설치와 설정하기
1.우선 OpenCV를 다운로드 받습니다
주소 : http://sourceforge.net/projects/opencvlibrary
파일을 클릭하면 최신 파일을 받을 수 있습니다.
※opencv-win클릭하면 버전별로 다운 받아보실 수 있습니다.
2.다운 받은 파일을 실행시켜 빌드 파일을 얻습니다
파일을 실행시켜보면 아래와 같이 되어 있습니다.
build폴더 안에 필요한 파일들이 있습니다.
[참고] [x64] - 64비트,[x86] - 32비트, [vc9] - Visual Studio 2008, [vc10] - Visual Studio 2010
저는 필요한 파일들만 C:\에 Opencv2폴더를 생성하고, 64비트,VS2010에 맡는 필요한 파일들을 복사해서 붙여 넣었습니다.(아래 그림 처럼)
3)Visual Studio 2010에 설정하기
32bit 버전은 설정방법에 비해 64bit 버전은 좀더 신경 써줘야 합니다.
먼저, 고급 시스템 설정에서 환경변수->시스템 변수 편집을 해줍니다.
bin 파일 결로 지정
VS2010 실행.
New project -> 'C++-> Win32 Console Application' 상태에서 생성.
empty project 생성.
View-> Property Manager(속성 관리자)를 선택합니다.
그럼처럼 'Debug|Win32'에 마우스커서를 대고 오른쪽 클릭 하여 Add New Project Property Sheet를 해줍니다.
그림처럼 Property Sheet(속성 시트)를 볼 수 있습니다. 적절한 이름을 (OpenCV_Debug)적고 추가를 시킵니다.
OpenCV_Debug이 목록에 추가 된것을 볼 수 있습니다.
더블클릭하거나 마우스 오른쪽 클릭을 하여 Property(속성)엽니다.
C/C++ 목록->General을 선택하고, Additional Include Directories 에 편집창에 아래의 경로를 입력하고 확인.
Linker 목록->General를 선택하고, Additional Library Directories 에 편집창에 아래의 경로를 입력하고 확인
Linker 목록->Input를 선택하고, Additional Dependencies에 편집창에 아래의 라이브러리파일들 입력하고 확인
이제 설정은 대략 끝났습니다.
소스코드 창 만들어 봅시다
Hello.cpp 파일을 생성합니다.
64bit 사용자는 바로 실행이 안될 겁니다 아래 그림처럼 fatal error LNK1112 에러 메세지가 뜹니다.
속성 페이지에서 아래의 그림에 화살표부분을 보면 'MACHINE:X84'되어 있는 것이 원인
여기서는 수정을 할 수 없습니다.
해결방법은 플랫폼을 추가 시켜주면 됩니다.
Debug 옆 Win32의 선택바를 클릭해서 Configuration Manager(구성 관리자) 클릭.
Configuration Manager(구성 관리자) 화면에서 플렛폼의 'win32'클릭한후 <New>를 클릭하여 새 플렛폼을 'X64'로 한뒤 확인.
이제 다시 실행 시켜 보면 정상적으로 실행되는 것을 알 수 있습니다.
이것으로 Opencv 2.4.3 설치부터 설정까지 끝이 났습니다.
참조:
'OpenCV > example' 카테고리의 다른 글
[OpenCV #4]관심 영역 (0) | 2013.02.14 |
---|---|
[OpenCV #3]Threshold (0) | 2013.02.14 |
[OpenCV #2]이미지에서 RGB 채널 분리 (1) | 2013.02.14 |
[OpenCV #1]이미지 출력 (0) | 2013.02.14 |
[OpenCV]프로젝트 속성시트 가져오기[Tip] (0) | 2013.02.08 |
설정
트랙백
댓글
글
기초 통계와 확률 이론
통계를 이용하면 통계적인 특성이 있는 표본을 숫자로 표현하고 설명할 수 있다. 즉 표본에 대한 통계적인 분석을 통하여 통계적 파라미터를 추정하고, 그 표본의 특징을 표현할 수 있다.
창원대학생들의 키를 조사한다고 가정해면,
이 때 표본으로 몇몇 학생들의 키를 재어 보았다.
153cm, 167cm, 178cm, 181cm가 나왔다고 가정해보자.
이 때 우리는 다른 사람들에게 우리가 추출한 표본의 특징에 대해서 설명해줄 필요가 있다.
이 때 사용할 수 있는 것이 표본의 평균과 분산이다.
학생들의 표본은 다음과 같이 표현해 볼 수 있다.
평균(mean)
분산(variance)
표준편차
바이어스(bias)는 데이터의 편향된 정도를 나타낸다.
공분산(covvariance)
기본적인 확률 용어에 대한 설명
확률실험/시행(random experiment)
1. 같은 조건 아래에서 반복할 수 있으며,
2. 시행의 결과는 매번 우연히 변하므로 예측할 수 없으나, 가능한 모든 결과의 집합을 알 수 있고,
3. 시행을 반복할 때 결과는 각각 불규칙하게 나타나지만, 반복의 수를 늘리면 어떤 규칙성이 나타나는 특징을 가지는 행위를 확률실험이라고 한다.
예를 들면, 주사위를 던지는 행위 자체는 확률실험이 된다.
표본공간(sample space)
관찰할 면을 지정하고, 일어날 수 있는 결과의 범위를 규정한 다음, 그 범위 내의 각 결과에 기호를 대응시킨 후 얻은 기호화된 결과의 집합을 표본공간이라고 한다.
이 예제에 있어서는 '1'은 '1이라는 눈이 나온 것', '2'는 '2라는 눈이 나온것'...을 의미한다.
사건(event)
표본공간의 부분 집합을 사건이라고 한다.
짝수의 눈이 나오는 사건, 홀수의 눈이 나오는 사건, 2이하의 눈이 나오는 사건를 생각해 볼 수 있다.
이러한 특정 조건을 통해서 사건를 설정해 줄 수 있다.
사건역시 공간을 구성할 수 있는데, 각각의 사건의 원소들이 다른 사건의 원소와 중복되자 않으면서 모든 사건을 모은 집합을 사건공간이라고 표현한다.
결과적으로는 사건공간은 전체집합과 같게 된다.
예를 들면, 주사위에서 짝수의 눈이 나올 사건과 홀수의 눈이 나올 사건를 생각해보자.
각각의 사건을 A, B의 집합으로 표현해 보면 A={2, 4, 6}, B={1, 3, 5}가 된다.
각 사건의 원소들이 다른 사건원소들과 겹치지 않으며 A와 B를 모두 합하면 곧 전체집합이 된다.
ex1]
동전 던지기는 그 결과가 확률적으로 변하므로 확률 실험(시행)이다.
이때 가능한 모든 결과는 H(앞면)와 T(뒷면)의 2가지이므로, 표본공간은 S={H, T}로 나타낼 수 있다.
표본공간의 부분집합{H}는 사건의 한 예로, "앞면이 나오는 사건"이라고 볼 수 있다.
마찬가지로{H, T}는 "앞면이나 뒷면이 나오는 사건"이다.
ex2]
주사위 던지기도 마찬가지로 확률실험(시행)으로, 표본공간은 S= {1, 2, 3, 4, 5, 6}이다.
사건의 예로는{2, 4, 6}과 같이 "짝수의 눈이 나오는 사건"이나,{1, 2, 3}과 같이 "4보다 작은 수의 눈이 나오는 사건" 등으로 매우 다양하다.
ex3]
우니나라 전체 인구 중 한 사람을 뽑아 몸무게를 재는 실험(시행)도 그 몸무게 결과가 하나로 결정되지 않고, 확률적으로 정해지므로 하나의 확률실험이다. 표본 공간은 나올수 있는 모든 결과 이므로 "0보다 큰 실수 집합"이다.
사건으로는 "50kg 보다 크고 60kg보다 작은 몸무게가 관측되는 사건" 등을 생각할 수 있다.
확률을 숫자말고 그림으로 나타내는 방법 중 벤다이어그램
그림이 보다 직관적이기 때문에 쉽게 확인할 수 있다. 살펴보면 두 사건이 동시에 발생할 수 있는 교사건과 동시에 발생할 수 없는 배반사건을 볼 수 있다.
조건부 확률(Conditional Probabilities)
A와 B 두개의 사건이 있을 경우, 사건 B가 일어날 확률이 이미 알려져 있을 경우에 사건 A가 일어날 확률
'the probability if A given B'
조건부 확률 P(A|B)은 'B가 일어났다고 가정할 때, A의 조건부 확률' 또는 '주어진 B에 대한 A의 확률
ex1]
주사위의 예로 들면, 사건 A는 2이하의 눈이 나오는 경우, 사건 B는 홀수의 눈이 나오는 경우라고 하자.
A= {1, 2}
B={1, 3, 5}
P(A|B)를 직접 원소를 구해보면,
먼저 B에는 1, 3, 5의 3가지 원소만 존재한다.
따라서, 홀수의 눈이 나왔을 때 그 눈이 2이하일 확률은,
1, 3, 5 중 1이 나와야 하고, 각 눈이 나올 확률은 모두 같으므로, P(A|B)= 1/3이 된다.
반대로
2이하의 눈이 나왔을 때, 그눈이 홀수일 확률은 P(B|A) =1/2가 된다.
즉, 어떤 것을 기준(base)로 하느냐에 따라서 조건부 확률은 다양한 결과가 나온다.
이러한 결과는 위에서 본 수식으로 구할 수 있다.
P(A)= 1/3, P(B)= 1/2, P(A∩B)= 1/6이므로,
앞서 구한 결과와 일치한다.
전체 확률 이론
베이즈 정리(Bayes's Theorem)
확률에 관한 정리
1번은 확률은 0과 1사이의 실수 값이다.
2번은 표본공간의 확률은 1이다.
3번은 두 사건 A,B가 동시에 일어날 수 없을 때 A,B는 서로 배반한다고 하는데, 서로 배반인 사건의 합의 확률은 각 확률의 합과 동일하다.
참조:
1. 패턴인식 개론, 한빛미디어
2. http://blog.acronym.co.kr/400
3. http://blastic.tistory.com/156
'기초수학' 카테고리의 다른 글
확률변수와 확률분포 (0) | 2013.02.19 |
---|---|
[선형 대수학]벡터와 행렬 (0) | 2013.02.06 |
설정
트랙백
댓글
글
[선형 대수학]벡터와 행렬
1. 벡터 이론
1)주요 개념와 용어
벡터(vector)
-크기와 방향을 갖는 어떠한 물리량
-패턴인식에서 인식 대상이 되는 객체가 특징으로 표현되고, 특징은 차원을 가진 벡터(열 벡터)로 표현 :특징벡터(feature vector) [[1 x N : 행 벡터, M x1 : 열 벡터, 1 x 1 : 스칼라]]
-행렬 A의 각 성분(entry)은 로 표현
백터의 전치(transpose)
-행과 열을 바꾼 행렬 (Nx1행렬을 1xN으로, 혹은 1xN행렬을 Nx1행렬로)
벡터의 크기(norm)
-원점에서 벡터 공간상의 한 점까지의 거리
단위 벡터(unit vector)
-벡터의 크기가 1인 벡터
-만약 벡터 v가 영(0)이 아닌 벡터라면 v방향의 단위 벡터 u는 다음과 같이 구함 :벡터의 정규화(normalization)
스칼라 곱
-임의의 벡터에 임의의 실수(스칼라) 를 곱하는 것
내적(dot product or inner product)
-차원이 동일한 두 개의 벡터 A, B에 대하여 성분별로 곱하여 합하는 것
-내적의 결과는 실수 스칼라가 됨
-두 벡터 사이의 각 가 주어질 경우의 내적 계산
외적(cross product)
-소행렬식을 이용한 determinent 구하는 방법
수직사영(vertical projection)
선형 결합(linear combination, 1차 결합)
-벡터 집합 를 스칼라 계수 집합 과의 곱의 합으로 표현할수 있을 때, 벡터 y를 벡터 x의 선형 결합이라고 함
선형 종속(linearly dependent), 선형 독립(linearly independent)
-벡터의 집합 중 적어도 하나를 다른 벡터들의 선형 결합으로 표현할 수 있다면, 이 벡터 집합은 "선형 종속" 이라고 함
-위 식을 만족하는 유일한 해가 라면 벡터 집합은 "선형 독립" 이라고 함
기저 집합(baseis set)
-행렬 Nx1로 표현되는 모든 벡터를 표현할 수 있는 벡터의 집합
유클리디안 거리
2.행렬 대수
-M(i)개의 행과 N(j)개의 열을 가진 실수 혹은 복소수로 이루어진 사각형 블록
-
: i번째 행과 j번째 열의 성분/원소
1)행렬의 종류
전치(transpose) 행렬
-원래 행렬(A)의 행과 열을 바꾸어 놓은 행렬
-
전방(square)행렬
-행의 수와 열의 수가 동일한 행렬
-역행렬, 행렬식, 고유식 계산은 모두 정방행렬인 경우만을 대상으로 함
대각(diagonal) 행렬
-행렬의 대각 성분을 제외하고는 원소가 모두 영인 행렬
-스칼라 행렬 : 대각 성분이 모두 같고 비대각 성분이 모두 0인 정방행렬
-상삼각 행렬 : 대각 성분 아래 성분이 모두 0인 정방행렬
-하삼각 행렬 : 대각 성분 위 성분이 모두 0인 정방행렬
항등(identity)행렬(단위행렬)
-대각 성분이 모두 1이고 그 밖의 성분이 모두 0인 정방행렬
-항등행렬은 행렬 대수에서 1과 같은 역할을 하기 때문에 행렬의 곱셈 결과에 영향을 주지 않으면서 임의로 삽입 또는 삭제할 수 있음
대칭(symmetric)행렬
-대각선을 축으로 모든 성분이 대칭되는 행렬
-
행렬 와행렬이 같기 때문에 이는 대칭행렬
영 행렬
-행렬 구성 원소가 모두 0인 행렬
-행렬 대수에서 0과 같은 역할
직교(orthogonal) 행렬
-주어진 행렬 A가 정방행렬일 때 를 만족하는 행렬
-요인 분석, 주성분 분석, 판별 분석 등에서 널리 사용
2)행렬의 곱셈
-행렬 A의 열의 수와 행렬 B의 행의 수가 같을 경우에만 곱셈이 가능
곱셈의 결과 (행렬 A의 행의 수) x (행렬 B의 열의 수)의 크기의 행렬
-
3)행렬의 트레이스 tr(A)
-정방행렬에서 대각 성분의 합
-행렬의 고유값 문제에서 고유근을 구할 때 매우 중요한 역할을 함
4)역행렬
-
-
-행렬 A가 정방행렬이어야 함
-행렬식의 값이 0이 아니어야 함
5)행렬식 (혹은 det(A)
-행렬을 어떠한 하나의 실수 값으로 표현한 것
-행렬식의 설질
-행렬식은 오직 정방행렬에서만 정의함
-구성 성분이 하나인 행렬의 행렬식은 그 성분 자체
-행렬식의 값은 하나의 상수, 즉 이므이의 실수
-n차의 행렬식 은 n개의 행과 열의 위치가 서로 다른 성분들의 곱의 합으로 표현
-2x2 행렬에 대한 행렬식
-3x3 행렬에 대한 행렬식
6)고유값과 고유벡터
-통계학의 다변량 분석에서 많이 사용되는 주요 개념
-행렬 A가 nxn의 정방행렬이고, 인 벡터 가 존재할 때, 다음 관계를 만족하는 스칼라 를 행렬 A의 고유치(eigenvalue)라고 하고, 벡터 x 는에 대응하는 A의 고유 벡터(eigenvector)라고 함
7)선형 변환
-벡터 으로부터 벡터 상으로 매핑하는 것
-패턴인식에서 특징 벡터의 차원을 축소하는데 이용
참조:
1. 패턴인식 개론, 한빛미디어
2. Basic Mathematics for Pattern Recognition, 부경대학교, 2011
'기초수학' 카테고리의 다른 글
확률변수와 확률분포 (0) | 2013.02.19 |
---|---|
기초 통계와 확률 이론 (0) | 2013.02.06 |