본문 바로가기
728x90

분류 전체보기429

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.
프로그래머스 - 데이터 분석 문제AI 엔지니어인 현식이는 데이터를 분석하는 작업을 진행하고 있습니다. 데이터는 ["코드 번호(code)", "제조일(date)", "최대 수량(maximum)", "현재 수량(remain)"]으로 구성되어 있으며 현식이는 이 데이터들 중 조건을 만족하는 데이터만 뽑아서 정렬하려 합니다.예를 들어 다음과 같이 데이터가 주어진다면data = [[1, 20300104, 100, 80], [2, 20300804, 847, 37], [3, 20300401, 10, 8]]이 데이터는 다음 표처럼 나타낼 수 있습니다.주어진 데이터 중 "제조일이 20300501 이전인 물건들을 현재 수량이 적은 순서"로 정렬해야 한다면 조건에 맞게 가공된 데이터는 다음과 같습니다.data = [[3,20300401,10,8],[1.. 2024. 5. 14.
DIP 실습 - Gaussian / Sobel / Gaussian Pyramid / Laplacian Pyramid 문제▪ 9x9 Gaussian filter를 구현하고 결과를 확인할 것▪ 9x9 Gaussian filter를 적용했을 때 히스토그램이 어떻게 변하는지 확인할 것▪ 영상에 Salt and pepper noise를 주고, 구현한 9x9 Gaussian filter를 적용해볼 것▪ 45도와 135도의 대각 에지를 검출하는 Sobel filter를 구현하고 결과를 확인할 것▪ 컬러영상에 대한 Gaussian pyramid를 구축하고 결과를 확인할 것▪ 컬러영상에 대한 Laplacian pyramid를 구축하고 복원을 수행한 결과를 확인할 것#include #include #include using namespace cv;using namespace std;//3X3 커널 구현int myKernelConv3x3.. 2024. 5. 13.
728x90