인공지능 20

파이썬 수행 시간 측정 방법

time 모듈을 활용해서 코드 수행 시간을 측정한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 from random import randint import time array = [] # 1~100 수들로 이루어진 100,000개 for _ in range(10000): array.append(randint(1, 1000)) start = time.time() # 1 선택 정렬 for i in range(len(array)): min_index = i for j in range(i + 1, len(array)): if array[min_index] > array[j]: min_index = j array[i], arr..

[OpenCV] 동영상에서 특정 색을 다른 색으로 바꾸어 출력하기

배경인 초록색을 내가 원하는 색상으로 바꾸어 주는 작업을 할 것이다. 영화나 광고 촬영도 이런식으로 하지 않을까 생각된다. import cv2 as cv import numpy as np cap=cv.VideoCapture('./face.mp4') retval, frame=cap.read() frame=cv.resize(frame,None,fx=0.3,fy=0.3,interpolation=cv.INTER_AREA) while True: retval, frame=cap.read() if not retval: break frame=cv.resize(frame,None,fx=0.3,fy=0.3,interpolation=cv.INTER_AREA) #print(frame) # Load the aerial imag..

인공지능/OpenCV 2020.04.09

[OpenCV] Haar Cascade 사용하여 얼굴에 마스크 합성하기 (스*우)

개념 1. Haar Cascade Haar Feature Viola와 Jones가 제안한 개념으로 간단한 특징의 Boosted Cascade로 빠른 오브젝트 검출이 가능하다. 원리 1. Feature 선택: 중요한 Features 선택 2. Attention: 잠재적 영역에 집중한다. 3. 빠른 feature 평가를 위해 적분(Integral) 영상을 사용한다. 특정 Feature는 명암 차이가 있다는 이론을 바탕으로 한다. 이미지에서 영역과 영역의 밝기차를 이용하여 특징을 찾아낸다. 사람을 얼굴, 눈, 코, 입 등 특징적인 밝기 차가 있어서 이를 활용하는 것이다. OpenCV에서 ML로 훈련시킨 Feature에 따른 Harrdata를 xml 파일 형태로 제공한다. 즉, Haar Cascade는 머신러닝..

인공지능/OpenCV 2020.04.09

[OpenCV] 동영상에서 특정 색상의 물체를 찾기

import cv2 import numpy as np cap = cv2.VideoCapture('monkey.mp4') #비디오 객체 생성 retval, frame = cap.read() # 첫 프레임 읽어오기 frame=cv2.resize(frame,None,fx=0.2,fy=0.2,interpolation=cv2.INTER_AREA) #사이즈 조정 #bgr을 hsv로 변환 후 hsv를 쪼갬 hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) h, s, v = cv2.split(hsv) #영역 선택 roi = cv2.selectROI('img',frame) roi_h = h[roi[1]:roi[1]+roi[3],roi[0]+roi[2]] #영상이 끝나거나 esc 키를 누를 ..

인공지능/OpenCV 2020.04.09

[OpenCV] 트랙바를 이용하여 이진화

import cv2 def onChange(pos): # 트랙바 핸들러 pos = cv2.getTrackbarPos('V','dst') cv2.namedWindow('dst') # 트랙바 생성 cv2.createTrackbar('V', 'dst', 0, 255, onChange) # 트랙바 위치 초기화 cv2.setTrackbarPos('V', 'dst', 100) while(1): img=cv2.imread('fruits.jpg') img=cv2.resize(img, (600,400)) pos = cv2.getTrackbarPos('V','dst') #영상을 읽어와서 hsv로 변환해준다. hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV) h,s,v=cv2.split(hsv) th,..

인공지능/OpenCV 2020.04.09

LeNet-5

Yann LeCun (얀 르쿤)의 "Gradient-based learning applied to document recognition" 논문에서 손글씨 숫자 인식하는데 문제를 해결하기 위해 사용된 모델 기존의 Fully-Connected Neural Network가 가지고 있는 한계를 이해하고 이것을 개선하기 위해 연구 시작 Fully Connected Layer (완전연결계층)을 이용해 MNIST 데이터셋을 분류하는 모델을 만들 때 3차원인 MNIST 데이터 (28,28,1)를 input으로 넣어주기 위해 3차원을 1차원의 평평한(flat) 데이터로 펼쳐줘야 했다. 즉, 28 * 28 * 1 = 784의 1차원 데이터로 바꾸어 입력층에 넣어주었다. 이미지 데이터는 3차원의 형상을 가지며, 이 형상에는..

CNN의 구조와 처리 과정

이 글은 다음 블로그(라온피플)를 보고 정리하며 공부한 내용입니다. https://laonple.blog.me/220608018546 [Part Ⅳ. CNN] 3. CNN의 구조 - 라온피플 머신러닝 아카데미 - Part I. Machine Learning Part V. Best CNN Architecture Part VII. Semantic ... blog.naver.com CNN의 구조와 처리 과정 Input - Feature Extraction - Shift and distortion invariance - Classification - Output 인풋 이미지 - 특징 추출 - topology 변화에 영향을 받지 않도록 하는 단계 - 분류기 - 아웃풋 CNN에 특징을 추출하는 단계가 포함되어 있어..

Faster R-CNN

Faster R-CNN은 영상 안의 여러 사물을 한꺼번에 분류하고, 데이터 학습에 따라 겹쳐있는 부분들까지도 정확하게 사물들을 분류해낼 수 있다. Architecture 모델의 구조는 두 개의 네트워크로 구성된다. Deep Convolution Network로서 Region Proposal Network Faster R-CNN Detector로서 앞의 proposed regions를 사용하여 객체 감지 이 두 모듈은 전체적으로 하나의 object detection network라고 볼 수 있음 Input Images 높이*너비*깊이를 가지고 있는 텐서이다. (RGB 이미지) Base Network (Shared Network) Name Meaning 이전 R-CNN에서는 Region proposal을 하..

U-Net

U-Net은 biomedical image segmentation을 하기 위해 개발된 네트워크이다. 이 Network는 FCN(Fully Convolutional Network)을 기반으로 한다. 더 적은 양의 training image들로 더 정확한 segmentation이 가능하게끔 변경되고 확장되었다. 512 x 512 image segmentation이 modern GPU에서 1초가 채 걸리지 않는다고 한다. 전체적으로 Contracting path(축소)와 Expansive path(확장)로 구성된 대칭구조이고 U자 모양을 한다. Contracting path에는 ReLU와 Maxpooling이 반복되는 전형적인 convolution이 있다. Contraction을 하는동안, feature in..

인공지능 2019.11.14