본문 바로가기
728x90

전체 글431

Digital Image Processing - Harris Detector Formulation Harris Detector Formulation이전 수업에 이어서 Harris corner detector의 수식에 대해서 자세히 알아보자. 이전 시간에 아래 식들의 첫줄 즉 벡터 변화에 따른 Intensity의 변화 차이의 제곱의 합을 통해 E값을 구하는 것을 살펴봤다. 그에 이어서 아래 식 변환 과정은 1차 테일러 급수를 이용하여 푸른색으로 밑줄친 부분의 식을 붉은 색으로 동그라미 친 식으로 변환하고 추가 계산하는 과정을 통해 최종적으로 사용될 Matrix A를 구하는 과정이다.참고로 테일러 급수는 아래와 같이 f(x)를 n차 미분의 합으로 표현하는 방법이다. 이때 1차 테일러 급수는 아래 식들중 첫번째 형태를 의미한다. 실제로 영상처리 분야에서 35년동안 연구하시면서 2차 이상의 테일러 급수 형태.. 2024. 5. 20.
프로그래머스 - 연속된 부분 수열의 합 문제비내림차순으로 정렬된 수열이 주어질 때, 다음 조건을 만족하는 부분 수열을 찾으려고 합니다.기존 수열에서 임의의 두 인덱스의 원소와 그 사이의 원소를 모두 포함하는 부분 수열이어야 합니다.부분 수열의 합은 k입니다.합이 k인 부분 수열이 여러 개인 경우 길이가 짧은 수열을 찾습니다.길이가 짧은 수열이 여러 개인 경우 앞쪽(시작 인덱스가 작은)에 나오는 수열을 찾습니다.수열을 나타내는 정수 배열 sequence와 부분 수열의 합을 나타내는 정수 k가 매개변수로 주어질 때, 위 조건을 만족하는 부분 수열의 시작 인덱스와 마지막 인덱스를 배열에 담아 return 하는 solution 함수를 완성해주세요. 이때 수열의 인덱스는 0부터 시작합니다. 입출력 예시입출력 예 #1[1, 2, 3, 4, 5]에서 합이.. 2024. 5. 20.
Digital Image Processing - Local Feature Local featureLocal feature와 Global feature를 비교하면 위와 같다. Global feature는 전체 Histogram을 비교하여 비슷한지 평가할때 쓰일 수 있다. 앞에서 texture에 대해서 배울때 나왔던 개념인 Gradient orientation의 Histogram을 뜻하는 HoG가 유용하게 쓰인다. 반면 위 사진에서 볼 수 있듯이 local feature는 부분 부분을 비교하고 평가하는 것이다.부분부분을 뽑아내서 비교하는 모습이다. 이렇게 뽑아낸 부분부분을 patch라고 부른다. 이때 첫번째 patch는 하늘의 어느곳을 잡아도 비슷하므로 local feature를 잡아냈다고 하기 어려울 것이다. 반면 세번째 patch는 조금만 이동해도 완전히 달라지는 부분이므로 .. 2024. 5. 19.
[논문 리뷰] Adding Conditional Control to Text-to-Image Diffusion Models(ControlNet) Introduction이 논문은 흔히 ControlNet이라고 불리고 제목 그대로 추가적인 input condition을 지원하여 large diffusion model를 제어하기 위한 모델이다. ControlNet은 end-to-end 방식으로 학습하며, 학습 데이터 세트가 적은(저자는 기존 large text-to-image 모델의 prompt에 대한 의존성과 특정 task에서 활용함에 있어서 발생할 수 있는 현실적인 문제를 언급했다. 이와 관련해서 세 가지 측면에서 검토하고 제안했다.  1. task-specific domain의 경우 일반적인 text-to-image 데이터 스케일만큼 크지 않으므로 large model을 특정 문제에 대해 학습시킬 때는 과적합을 방지하고 일반화 능력을 보존할 수 .. 2024. 5. 17.
Digital Image Processing - Texture TextureTexture(질감)은 "Regular or stochastic patterns caused by bumps, grooves, and/or markings"로 정의될 수 있다.Texture는 기본적으로 공간적으로 반복되는 pattern을 의미하는 것인데 위 그림들과 같이 자연의 texture는 좀더 stochastic하고 인간이 만들어낸 이미지나 물체는 비교적 regular하다. Stochastic하다는 것이 완전히 불규칙하다는 것이 아니라 확률적으로 pattern이 존재한다는 것이다. 예를들면 물은 불규칙하게 보이지만 그래픽 관련 프로그램에서 물리적인 water texture 패턴이 존재하듯이 이 부분이 물이구나를 알 수 있는 확률적 패턴이 존재한다. 반면 regular하다는 것은 좀더 명.. 2024. 5. 16.
DIP 실습 - Mean-shift / GrabCut 풀이 코드#include#include#include "opencv2/core/core.hpp"#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include using namespace cv;using namespace std;#include void exCvMeanShift() { Mat img = imread("fruits.png"); if (img.empty()) exit(-1); cout img_split; // 채널별로 분할되는 Mat MeanShift(float, float, float, float, int); // Bandwidth 설정을 위한 생성자 void doFilter.. 2024. 5. 16.
알고리즘 설계 실습 - 연쇄 행렬 곱셈 문제i × j 행렬과 j × k행렬을 곱하기 위해서는 i × j × k번 만큼의 곱셈이 필요합니다. 연쇄적으로 행렬 을 곱할 때, 어떤 행렬 곱셈을 먼저 수행하는지에 따라서 필요한 곱셈의 횟수는 달라지게 됩니다.예를 들어, 크기가 1×9인 행렬 A, 크기가 9×9인 행렬 B, 크기가 9×3인 행렬 C가 주어졌을 때 행 렬의 곱 ABC를 구하는 경우, 다음과 같이 여러 방법이 존재합니다. AB를 먼저 곱하고 C를 곱하는 경우 (AB)C에 필요한 곱셈 연산의 수는 1×9×9 + 1×9×3 = 81 + 27 = 108번입니다.BC를 먼저 곱하고 A를 곱하는 경우 A(BC)에 필요한 곱셈 연산의 수는 9×9×3 + 1×9×3 = 243 + 27 = 270번입니다. 행렬 N개의 크기가 주어졌을 때, 모든 행렬을 .. 2024. 5. 16.
Digital Image Processing - MRF / Graph Cuts Spatial similarity검은 배경에 흰색 디스크가 있는 이미지를 각 픽셀의 색을 확률에 따라 독립적으로 칠하면 아래와 같이 noise가 굉장히 많이 나타난다. 이러한 결과는 이미지는 공간적인 관점에서 연속적이라는 사실을 반영하지 않았기 때문이다.이러한 문제를 해결하기 위해 인접한 픽셀과의 관계를 반영한 아래의 식을 이용하면 픽셀의 label을 더욱 잘 예상할 수 있다.Individual predictions 부분을 보면 말 그대로 각 픽셀 단위의 연산이다. yi는 0(background) 또는 1(foreground)로 labeling되는 픽셀 값이고 theta는 알고리즘의 매개변수, data는 raw image 자체이다.Pairwise predictions 부분은 yi(해당 픽셀), yj(인접.. 2024. 5. 15.
DIP 실습 - Segmentation / Clustering 문제풀이 코드#include#include#include"opencv2/core/core.hpp"#include"opencv2/highgui/highgui.hpp"#include"opencv2/imgproc/imgproc.hpp"#include using namespace cv;using namespace std;#include void CvColorModels(Mat bgr_img) { Mat gray_img, rgb_img, hsv_img, yuv_img, xyz_img; cvtColor(bgr_img, gray_img, COLOR_BGR2GRAY); cvtColor(bgr_img, rgb_img, COLOR_BGR2RGB); cvtColor(bgr_img, hsv_img, COLOR_BGR2HSV.. 2024. 5. 15.
[논문 리뷰] CLIP: Learning Transferable Visual Models From Natural Language Supervision Abstract기본적으로 해당 논문은 이미지와 텍스트 학습의 새로운 접근으로 이미지+텍스트 Multi-Modal분야의 입문 논문으로 많이들 얘기한다.컴퓨터 비전 기법은 사전에 정해진 일련의 객체 카테고리를 예측하도록 훈련된다. 이러한 제한적인 감독은 시스템의 일반성과 사용성을 제한하며, 다른 시각적 개념을 명시하려면 추가적인 레이블이 필요하다. 이미지에 대한 원시 텍스트로부터 직접 학습하는 것은 훨씬 더 넓은 감독 소스를 활용하는 좋은 대안이다. 이 연구에서는 어떤 캡션과 어떤 이미지가 일치하는지 예측하는 간단한 사전 훈련 과제가 인터넷에서 수집된 4억 개의 (이미지, 텍스트) 쌍 데이터셋에서 처음부터 최신 이미지 표현을 학습하는 효율적이고 확장 가능한 방법임을 보여준다. 사전 학습 후, 자연어를 사용하.. 2024. 5. 15.
DIP 실습 - Band pass filter / Frequency domain 과제풀이 코드#include #include "opencv2/core/core.hpp"#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"using namespace cv;using namespace std;Mat padding(Mat img) { int dftRows = getOptimalDFTSize(img.rows); int dftCols = getOptimalDFTSize(img.cols); Mat padded; copyMakeBorder(img, padded, 0, dftRows - img.rows, 0, dftCols - img.cols, BORDER_CONSTANT, Scalar::all(0)); return.. 2024. 5. 14.
Algorithm design - 최적 이진 탐색 트리 최적 이진 탐색 트리이진 탐색 트리(BST)는 루트의 왼쪽 서브트리에 있는 원소의 키 값은 루트보다 작고, 루트의 오른쪽 서브트리에 있는 원소의 키 값은 루트보다 큰 이진 트리이다.최적 이진 탐색 트리 문제는 트리 내의 키와 각 키가 탐색될 확률이 주어져 있을 때 그 트리의 평균 탐색 비용, 즉, 평균 비교횟수를 계산하고 이를 최소화하는 탐색 트리를 구축하는 문제이다. 예를들어 키의 값이 A: 0.1  B: 0.3  C:0.6이면 아래와 같이 다양한 케이스의 트리에서 탐색비용을 계산해볼 수 있다.1번만 살펴보면 A를 탐색할때 0.1, C를 탐색할때 0.1+0.6, B를 탐색할때 0.1+0.6+0.3이 되어 3*0.1+2*0.6+1*0.3=1.8이 된다. 키 값 a_i ≤ a_i+1 ≤ … ≤ a_j 일 .. 2024. 5. 14.
728x90