목록AI (19)
개발 공부
#overview-Loss function : takes in a w, looks at the scores and tells us how bad quantitatively is that w.-optimization : coming up with best w through loss function #Loss function support vector machine(SVM) binary SVM multi-class SVM Loss -- is image(pixel)- is (integer) label : expecting category --Ss are the predicted scores for the classes that are coming out of the classifier.- : score of ..
#Image Classification : core task in Computer Vision -the problem : Semantic Gap -chanllenges: Viewpoint variation - all pixels change when the camera moves: Illumination - 명암: Deformation - 다양한 포즈: Occlusion - 부분만 보이는 경우: Background Clutter - 배경: Intraclass variation - 여러 종류의 형태로 존재 #An Image Classifier -Data-Driven Approach1. Collect a dataset of images and labels2. Use Machine Learning to tra..
※introduction #computer vision - study of visual data-censor(smartphones) -> visual data exploded #statistics (2015 study of cisco)2017 -> 80% traffic of internet will be video-pure bits perspective -visual data #problem dark matter(astonishingly large fraction of the universe) of the internet - difficult for the algorithm to go in and understand and see what is comprising all the visual data. #..
#이미지의 경계선을 찾아보자# Import the necessary packagesimport numpy as npimport argparseimport cv2 image = cv2.imread('coin.jpg')gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)blurred = cv2.GaussianBlur(gray, (11, 11), 0)cv2.imshow("Image", image) # The first thing we are going to do is apply edge detection to# the image to reveal the outlines of the coinsedged = cv2.Canny(blurred, 30, 150)cv2.imshow("Edg..
#가장 유명한 Edge Detection방법입니다. 여러 단계의 Algorithm을 통해서 경계를 찾아 냅니다. # Import the necessary packagesimport numpy as npimport argparseimport cv2 image = cv2.imread('coin.jpg')image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)image = cv2.GaussianBlur(image, (5, 5), 0)cv2.imshow("Blurred", image) # (image, 30, 150) 그레디언트 30은 최소값, 150은 최대값이다. canny = cv2.Canny(image, 30, 150)cv2.imshow("Canny", canny)cv2.wai..
#위 이미지는 코인을 주변가 정확하게 분리해내지 못하고 있다. 조금 더 정확한 이미지 값을 얻기 위해 adaptiveThreshold 함수를 사용하자import numpy as npimport argparseimport cv2 image = cv2.imread('coin.jpg')image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)blurred = cv2.GaussianBlur(image, (5, 5), 0)cv2.imshow("Image", image) #위 함수의 결과를 보면 한가지 문제점이 있습니다. 임계값을 이미지 전체에 적용하여 처리하기 때문에 하나의 이미지에 음영이 다르면 일부 영역이 모두 흰색 또는 검정색으로 보여지게 됩니다.#이런 문제를 해결하기 위해서 이미..
#thresholding 임계값을 주어 이미지를 특징만 뽑아내 봅니다. 동전을 구분할 때 사용할 수 있습니다.#임계값이란 범위, 한도, 경계 등으로 이해될 수 있다. 변화가 나타나기 시작하는 시점을 말한다.#이진화 처리는 간단하지만, 쉽지 않은 문제를 가지고 있다. 이진화란 영상을 흑/백으로 분류하여 처리하는 것을 말합니다. 이때 기준이 되는 임계값을 어떻게 결정할 것인지가 중요한 문제가 됩니다. 임계값보다 크면 백, 작으면 흑이 됩니다. 기본 임계처리는 사용자가 고정된 임계값을 결정하고 그 결과를 보여주는 단순한 형태입니다. # Import the necessary packagesimport numpy as npimport argparseimport cv2 #동전 이미지로 해보자. cv2.cvtColo..
import numpy as npimport cv2 #이미지의 특정 부분만을 보여지게 할 수 없을까? 가능하다. 이것을 masking이라고 하는데 cv2.bitwise_and 함수를 사용하면 된다.#이것을 하기위해 opencv의 비트 연산 합수를 사용해봅니다. 비트연산은 이미지에서 특정 영역을 추출할 때 유용하게 사용된다. 예를 들면 이미지에서 바탕을 제거하고, 2개의 이미지를 합치는 경우입니다.image = cv2.imread('p2.jpg',cv2.IMREAD_UNCHANGED)cv2.imshow("Original", image) # 이미지를 위한 배열을 하나 만듭니다. 아래 보면 복잡하게 크기를 정하지요? #정중한 값을 정하기 위해서입니다. 도형의 정중앙에서 150픽셀크기의 사각형을 만듭니다.#cv..
#원과 박스를 서로 교차할 수 있다.import numpy as npimport cv2 #박스와 원을 그린다.rectangle = np.zeros((300, 300), dtype = "uint8")cv2.rectangle(rectangle, (25, 25), (275, 275), 255, -1)cv2.imshow("Rectangle", rectangle) # Secondly, let's draw a circlecircle = np.zeros((300, 300), dtype = "uint8")cv2.circle(circle, (150, 150), 150, 255, -1)cv2.imshow("Circle", circle) # AND로 하면 두 도형의 공통 부분만 나온다.bitwiseAnd = cv2.bitw..
import numpy as npimport cv2 image = cv2.imread('p2.jpg')cv2.imshow("Original", image) #크기를 알아보자height = image.shape[0]width = image.shape[1] print ('height', height)print ('width', width)# 가로 200 세로 200으로 사이즈를 바꾸어 봅니다.# cv2.resize(img, dsize, fx, fy, interpolation)에서 dsize는 가로 세로 사이즈입니다. fx는 가로 배수, fy는 세로 배수입니다. #fx와 fy는 dsize가 있으니 넣지 않습니다.resized = cv2.resize(image, (200,200), interpolation = ..