Computer Vision 11

[CV - Python] Gaussian Filtering

코드가 다소 부정확 할 수 있습니다. import cv2 import numpy as np def gaussian_distribution(sigma = 1) -> np.array: x, y = np.meshgrid(np.arange(-4, 5), np.arange(-4, 5)) z = np.exp(-((np.square(x) / (2 * np.square(sigma)) + (np.square(y) / (2 * np.square(sigma)))))) / (2 * np.pi * sigma * sigma) z = np.sum(z, axis = 1) / 2 return z img = cv2.imread('Lenna.png', cv2.IMREAD_GRAYSCALE) img = cv2.resize(img, (500..

[CV - python] 2D Partial Derivative for Edge Detection (엣지 검출을 위한 2차원 편미분)

코드가 궁금하다면 댓글을 남겨주세요. import numpy as np import cv2 img = cv2.imread('test4.jpg', cv2.IMREAD_GRAYSCALE) img = cv2.resize(img, (400, 600)) new_x = np.zeros(img.shape) new_y = np.zeros(img.shape) img = np.pad(img, (1, 1), 'constant', constant_values = 0) mask_x = np.array([[-1, 0, 1], [-2, 0, 2], [-1, 0, 1]]) mask_y = np.array([[1, 2, 1], [0, 0, 0], [-1, -2, -1]]) for i in range(1, img.shape[0] - m..

[CV] Camera & Optics

앞의 글을 읽으시면 이해에 도움이 됩니다. 2022.09.22 - [Computer Science/Computer Vision] - [CV] 빛의 속성 (Properties of Light) [CV] 빛의 속성 (Properties of Light) 1. What is Light?, Light Field EMR (Electromagnetic radiation)은 공간의 길을 따라 이동합니다. 이때 \(\lambda\)를 알고 있으면 R(\(\lambda\))를 통해 power을 알 수 있다고 합니다. 아무튼 여기서 나오는.. hi-guten-tag.tistory.com 1. Camera Structure 카메라의 구조와 용어에 대해 간략하게 알아보겠습니다. 카메라는 사람의 눈을 그대로 재현했다고 할 수 ..

[CV] 빛의 속성 (Properties of Light)

1. What is Light?, Light Field EMR (Electromagnetic radiation)은 공간의 길을 따라 이동합니다. 이때 \(\lambda\)를 알고 있으면 R(\(\lambda\))를 통해 power을 알 수 있다고 합니다. 아무튼 여기서 나오는 함수 하나가 있는데 Plenoptic Function입니다. Plenoptic Function은 공간 상의 한 점을 통과하는 빛의 세기 정보를 표현하기 위해서, 빛이 통과되는 3차원의 위치, 각도, 빛의 파장, 시간 등의 변수를 필요로 합니다. \(p = R(X, Y, Z, \theta, \phi, \lambda, t)\) 이런 수식으로 나타납니다. X, Y, Z는 공간상의 3차원의 위치이고, \(\theta, \phi\)는 빛의 ..

[CV] sparse dictionary learning

https://bskyvision.com/entry/%EC%8A%A4%ED%8C%8C%EC%8A%A4-%EC%82%AC%EC%A0%84-%ED%95%99%EC%8A%B5sparse-dictionary-learning%EC%9D%98-%EA%B9%8A%EC%9D%B4-%EC%9E%88%EC%9C%BC%EB%A9%B4%EC%84%9C%EB%8F%84-%EC%89%AC%EC%9A%B4-%EC%9D%B4%ED%95%B4 스파스 사전 학습(sparse dictionary learning)의 깊이 있으면서도 쉬운 이해 오늘은 최근에 논문을 보면서 관심이 생긴 스파스 사전 학습(sparse dictionary learning)에 대해 정리하려고 한다. 스파스 사전 학습은 스파스 코딩(sparse coding)이라는 ..

[머신러닝 - 이론] Computer Vision의 연구 분야와 대표적인 모델 - Segmentation, SR, Generative, Translation (Computer Vision Research Fields and Representative Models - Segmentation, SR, Generative, Translation)

1. Image Sementic Segmentation 이미지에 의미가 있는 부분을 세분화하는 작업입니다. 중요한 특징 중 하나로는 output이 크기가 같은 image라는 것이 특징입니다. 2015년에 CVPR이라는 곳에 나온 모델을 보면, input과 output이 사이즈가 같은 이미지기 때문에 Dense Layer을 없앴습니다. 요즘은 영상이 output이면 Dense Layer을 없애고, Fully Conv Layer을 넣는 경우가 많다고 합니다. 의료분야에서 대표적인 Model은 U-Net입니다. 보시면 처음에 Conv Layer에서 나온 Feature Map을 두 개의 방향으로 보내는 것을 볼 수 있습니다. 아래 방향으로 가면서 중요한 정보들만 추출하고, 다시 upscailing하는 과정에서 ..

[머신러닝 - 이론] Computer Vision의 연구 분야와 대표적인 모델 - Classification, Object Detection (Computer Vision Research Fields and Representative Models - Classification, Object Detection)

1. Classification 말 그대로 해당 Image Object가 어떤 물체인지 분류하는 작업입니다. 대표적인 모델로는 EfficientNet이 있습니다. EfficientNet의 점수이며, 상대적으로 파라미터가 적음에도 불구하고 높은 정확도를 보이고 있습니다. EfficientNet의 구조는 다음과 같습니다. a를 보면 기본적인 모델의 구조입니다. 이때 EfficientNet은 다양한 테스트를 해봤는데, 기본적으로 채널 수를 더욱 늘려도 보았고, 깊이도 더 깊이 해봤고, 해상도도 변경했었습니다. 마지막으로 모두 혼합해서 테스트도 했습니다. 다양한 테스트 이후 좋은 구조를 합친 것이 바로 EfficientNet입니다. 가장 중요한 것은 결과가 아니라 과정에서 이 사람들이 왜 이런 생각을 했을까? ..

[머신러닝 - 이론] Computer Vision

1. Computer Vision이란? AI의 한 분야이고, 이미지, 비디오 혹은 visual input에서 의미 있는 정보를 추출하는 분야입니다. 또한 해당 정보에 기반해서 행동을 취하거나 추천을 하는 등의 분야입니다. 이 분야의 목적은 NLP와 비슷하게 컴퓨터에게 이미지를 이해시키는 것이 목적이며, 정보와 insight를 정확하게 추출하는 것이 목적입니다. 이때 이미지는 NLP와 다르게 매우 다양하며, VR, 적외선 레이더 등 매우 많은 이미지가 있습니다. 이때 이미지에서 현재 상황을 보거나, 어디에 무엇이 있는지, 어떤 행동이 일어나고 있는지, 어떤 행동을 예상하는지, 어떤 일이 발생할지에 대해 discover합니다. Computer Vision이 영향을 끼칠 수 있는 분야는 매우 많습니다. 기본적..

[머신러닝 - 이론] NLP + Computer Vision

1. Common NLP Tasks (Mixed tasks (NLP + Computer Vision)) 일반적인 자연어 처리와 컴퓨터 비전을 합한 작업으로는 Text-Image search (retrieval) 텍스트가 왔을 때 이미지를 보여주거나, 이미지를 보여주면 텍스트를 매칭 시켜줌 이는 이미 존재한 것을 매칭 시키는 것 Image/video captioning 새로운 이미지에 자막 등 텍스트를 달아줌 Etc.. 이 있습니다. 이는 곧 이미지나 비디오를 해석해서 사람이 이해할 수 있는 언어로 표현하는 것입니다. 이때 중요한 두 가지 문제가 있습니다. 영상을 머신이 이해하는 것 그런 이해를 Natural Language로 표현하는 것 애초에 영상을 머신에게 이해시키는 것도 어려운데, 그런 이해를 NL..