목록인공지능 (41)
juuuding
저장되어 있는 이미지 파일에 도형을 그리고 글을 써서 표시해보겠다. openCV에서는 line, rectangle, polylines, circle, ellipse를 이용하여 순서대로 선, 직사각형, 다각형, 원, 타원을 그릴 수 있고, purText로 문자열을 작성할 수 있다. [영상에 도형 그리고 글 쓰기] 우선 영상 파일을 읽어준 후 retangle을 이용하여 직사각형을 그려준다. 인수 값으로는 도형을 그릴 파일 객체, 도형 시작 위치, 끝 위치, BGR 값, 선의 두께를 입력해주면 된다. 그 다음 purText로 글을 작성해주는데, 마찬가지로 파일 객체, 글 작성 위치, 폰트, 글자 크기, BGR 값, 글자 두께를 차례대로 인수 값에 전달하면 된다. [Code] ''' 영상에 도형 그리고 글씨 쓰..
웹 캠을 통해 입력되는 동영상을 윈도우에 디스플레이 해보겠다. [웹 캠에서 비디오 읽기] 먼저 VideoCapture()로 웹 캠과의 연결을 시도한다. 함수의 첫 번째 인수 값에는 웹 캠의 번호를 지정하고, 두 번째 인수 값에 CAP_DSHOW를 넣어주어 비디오가 바로 화면에 나타나게 해준다. 참고로 컴퓨터에 연결된 웹 캠이 하나라면 웹 캠의 번호를 0으로 입력하면 된다. 웹 캠과의 연결이 성공적이라면 결과 값은 isOpened로 반환된다. 이제 무한 루프를 이용하여 영상이 이어지며 계속 화면에 보이도록 설정해준다. read()를 호출한 순간의 프레임을 획득하여 imshow를 통해 화면에 디스플레이 해주고, 이것이 ms 단위로 반복되면서 영상이 이어서 송출된다. read의 반환 값으로는 프레임 획득 성공..
컴퓨터에서 컬러 영상 파일을 읽어와 흑백 영상으로 변환을 시킨 후, 영상의 크기를 원본 영상의 70%로 줄여보겠다. [영상을 명암 영상으로 변환하기] 먼저 imread로 영상을 불러온 후, cvtColor()로 컬러를 흑백으로 변경해준다. 여기서 첫 번째 인수 값에는 변환할 영상의 객체 이름을 입력해주고, 두 번째 인수 값에는 cv.COLOR_BGR2GRAY를 입력하여 컬러를 흑백으로 변환하라고 지시한다. 참고로 cvtColor 함수가 영상을 명암 영상으로 변경할 때는 아래의 식을 이용한다. I = round(0.299 * R + 0.587 * G + 0.114 * B) 위의 식을 가지고 BGR 3 채널의 값을 하나의 채널로 변경하여 명암 영상으로 변환하는 것이다. [영상 크기 축소하기] 이미지의 크기를..
[영상 파일 읽고 윈도우에 디스플레이 하기] 컴퓨터 폴더에 저장되어 있는 영상 파일을 읽고 윈도우에 디스플레이 해보겠다. 우선 openCV 기능을 사용하기 위하여 cv2 모듈을 import 해준다. imread()로 컴퓨터에 있는 파일을 읽어와주는데, 이때 파일 경로는 해당 코드 소스 파일이 저장되어 있는 폴도에 있어야 한다. 파일이 없거나 찾을 수 없다면 imread의 반환 값은 None이 된다. 그 후 읽어온 영상 파일을 imshow()를 이용하여 윈도우에 디스플레이해준다. 여기서 첫번째 인수는 윈도우의 이름이고, 두번째 인수는 읽어올 영상 파일이다. 다음으로 waitKey()를 가지고 해당 파일이 윈도우에 표시되는 시간을 지정해준다. 이 함수에 인자 값은 ms 단위의 시간을 입력해주면 되고, 인수를..
cost function은 특정 파라미터 집합(w,b)이 훈련 데이터에 얼마나 잘 맞는지 측정하는 방법을 제공한다. linear regression의 cost function이었던 squared error cost function은 logistic에 이상적인 cost function이 아니다. 따라서 이번 챕터에서는 logistic regression에 맞는 cost function에 대해 알아볼 것이다. 우선 아래는 linear regression에 잘 맞는 squared error cost이다. loss와 cost의 관계를 조금 더 명료하게 하기 위해 1/2m에서 1/2를 sigma 안으로 넘겨보면, cost는 training set들의 loss 평균이라고 말할 수 있다. 이것을 linear regr..
출력 변수 y가 숫자 범위에 있는 값 대신 가능한 몇가지 값 중 하나만 가질 수 있는 "Classification"에 대해 알아볼 것이다. 결론부터 말하면 linear regression은 classification 문제에 적합한 알고리즘이 아니며, classification에는 "logistic regression"을 이용한다. Classification 출력 값 y가 오직 두 값 중 하나만 될 수 있을 때 이것을 "binary classification"이라고 한다. 이 binary classification은 0 or 1의 결과 값을 가진다고 표현될 수 있으며, 0은 false(negative), 1은 true(positive)의 의미를 나타낸다. 여기서 negative, positive는 나쁘고 ..
Feature Scaling 경사 하강이 빠르게 실행될 수 있도록 하는 "feature scaling"에 대해서 알아볼 것이다. [Feature and parameter values] 집 값을 정하는 feature가 집의 크기와 방의 수라고 가정하면 집 값을 결정하는 모델의 식은 다음과 같다. 여기서 x1은 집의 크기이며 x1의 범위는 300-2000이고, x2는 방의 수이며 x2의 범위는 0-5이다. 이와 같이 feature들의 범위가 크게 차이가 나면 parameter w의 값을 조절해주는 것이 좋다. feature의 값이 큰 곳에 큰 w 값을 넣고 작은 곳에 작은 w을 넣어줘야 할지, 값이 큰 곳에는 작은 w을 넣고 작은 곳에 큰 w을 넣어야 할지에 대해 나눠서 비교해보자. House: x1=200..
Multiple Features 이전 내용에서는 변수(특징)이 하나인 경우를 다뤘다. 예를 들어 집 값을 결정하는 요소가 집의 크기 하나 뿐이였다는 것이다. 이것과 달리 이번 단원에서는 집 값을 결정하는 요소를 여러개로 설정해볼 것이다. 즉, "multiple features (vairables)"를 사용할 것이다. 위의 식에서 w와 x는 벡터이며 이를 상기시키기 위해 선택적으로 윗부분에 기호를 넣기도 한다. 우리는 이 식을 "dot product"를 사용하며 아래 식과 같이 표현할 수 있다. 이처럼 입력 특성이 여러 개 있는 모델을 "multiple linear regression (다중 선형 회귀)" 모델이라고 한다. 참고로 multivariate regression(다변량 회귀)라는 것이 있는데, ..