분류 전체보기 40

[논문리뷰]SAM 2 : Segment Anything in Images and Videos

제가 소개드릴 내용은 Meta에서 발표한 최신 논문, SAM 2: Segment Anything in Images and Videos입니다.SAM2는 다음과 같은 특징을 갖습니다.스트리밍 메모리를 갖춘 트랜스포머 아키텍처를 활용해 실시간 비디오 처리가 가능하고,그리고 기존 방법보다 3배 적은 연산량으로도 오히려 더 높은 정확도를 보여줍니다.마지막으로 기존 SAM보다 6배 더 빠르고, 더 정확하다는 점도 주목할 만합니다.SAM2는 사용자의 클릭, 박스, 마스크 입력을 기억한 뒤, 이를 바탕으로 시공간적으로 객체를 추적하며 지속적이고 인터랙티브하게 객체를 분할하는 모델입니다.기존 SAM은 정적인 이미지 분할에서는 탁월한 성능을 보였지만,비디오 환경에서는 한계가 있었습니다.즉, 연속적인 프레임 속에서 객체를 ..

[AI] 파이토치 기초

파이토치 : GPU 에서 텐서 조작 및 동적 신경망이 가능한 프레임워크 GPU : 연산 속도를 빠르게 하는 역할텐서 : 파이토치의 데이터 형태동적 신경망 : 훈련을 반복할 때마다 네트워크 변경이 가능한 신경망, 연산 그래프를 정의하는 것과 동시에 값도 초기화되는'Define by Run' 방식을 사용한다벡터, 행렬 텐서• 1차원 축(행) = axis 0 = 벡터• 2차원 축(열) = axis 1 = 행렬• 3차원 축(채널) = axis 2 = 텐서텐서를 표현하기 위해 `torch.tensor()` 사용 파이토치의 아키텍처 torch: GPU를 지원하는 텐서 패키지 다차원 텐서를 기반으로 다양한 수학적 연산이 가능하도록 한다. 특히 CPU뿐만 아니라 GPU에서 연산이 가능하므로 빠른 속도로 많은 양의 계..

AI 2025.06.02

[AI]머신러닝과 딥러닝

AI를 제외한 내가 백엔드랑 프론트랑 그 어떤 것도 관심이 없다는 것을 깨닫는 중 그런 김에 다시 AI 기초부터 정리해보기인공지능과 머신러닝 딥러닝의 관계머신러닝과 딥러닝의 차이 머신러닝(machine learning) : 주어진 데이터를 인간이 먼저 처리(전처리)딥러닝(deep learning) : 인간이 하던 작업을 생략함. 대량의 데이터를 신경망에 적용하면 컴퓨터가 스스로 분석한 후 답을 찾음특성 추출 : 데이터별로 어떤 특징을 가지고 있는지 찾아내고, 그것을 토대로 데이터를 벡터로 변환하는 작업머신러닝 컴퓨터가 스스로 대용량 데이터에서 지식이나 패턴을 찾아 학습하고 예측을 수행하는 것즉, 컴퓨터가 학습할 수 있게 알고리즘과 기술을 개발하는 분야 머신러닝은 크게 학습 단계와 예측 단계로 구분할 수..

AI 2025.05.26

[논문리뷰] SAM(Segment Anything)

이번에 제가 소개할 논문은 Meta AI 가 발표한 SAM입니다. 객체 탐지는 객체의 위치를 찾고 그 객체가 무엇인지 분류(Classification)하는 작업입니다.화면에 보시는 타임라인은, 2001년부터 최근까지 객체 탐지 기술이 어떻게 발전해왔는지를 보여줍니다.2012년 ALEXNET을 기점으로 전통적인 방식에서 딥러닝 기반 탐지 방식으로 전환되고,2014년엔 2 stage detector 의 대표적인 모델 RCNN이 등장하고,2016년엔 one stage detector의 대표 모델 yolo가 등장합니다.그리고 2020년에는 transformer 를 객체 탐지에 최초로 적용한 detr이 등장합니다.이제, SAM의 등장배경을 알아보겠습니다NLP에서는 GPT가 한 줄 프롬프트만으로 번역·요약·코딩까..

트리

트리 :계층적인 구조를 나타내는 자료구조트리는 부모-자식 관계의 노드들로 이루어짐트리의 용어노드(node): 트리의 구성요소에지, 간선(edge): 노드들 간의 연결선, 관계가 있음을 표현함루트(root): 부모가 없는, 계층구조에서 가장 높은 곳에 있는 노드서브트리(subtree): 하나의 노드와 자손들로 이루어짐단말노드(terminal): 자식이 없는 노드레벨(level): 트리의 각층의 번호높이(height) : 트리의 최대 레벨차수(degree): 노드의 자식 노드수이진트리각 노드에는 최대 두개의 자식 노드가 존재모든 노드의 차수가 2 이하가 된다.서브 트리 간의 순서가 존재( 왼쪽, 오른쪽 )노드의 개수가 n개이면 간선의 개수는 n-1높이가 h : 최소 h개~최대 2^h -1개의 노드를 가짐.n..

Study/자료구조 2024.10.17

카드게임(백준 2164/C++)

#include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N; cin >> N; queue myQueue; for (int i = 1; i 1) { myQueue.pop();//front 부분에 있는 데이터를 삭제하고 확인하는 연산이다. myQueue.push(myQueue.front());//back 부분에 새로운 데이터를 삽입하는 연산이다. & 맨 위 카드를 가장 아래밑으로 이동 myQueue.pop();//ex 2가 두개 들어가 있으니 삭제 } cout

Study/자료구조 2024.10.15

오큰수 구하기(백준 17298/C++)

스택에 새로 들어온 수가 top에 존재하는 수보다 크면 그 수는 오큰수가 된다.오큰수를 구한 후 수열에서 오큰수가 존재하지 않는 숫자에 -1을 출력해야한다.문제 푸는 순서 스택이 채워져 있고, A[index]>A[top]인 경우 pop한 인덱스를 이용하여 저답 수열에 오큰수를 저장합니다. pop은 조건을 만족하는 동안 계속 반복합니다. 과정 1을 마치면 과정 2로 넘어갑니다.현재 인덱스를 스택에 push하고 다음 인덱스로 넘어갑니다.과정 1~2를 수열 길이 만큼 반복한 다음 현재 스택에 남아 있는 인덱스에 -1을 저장합니다.   #include #include #include using namespace std;int main() { ios::sync_with_stdio(false); cin.tie(NU..

Study/자료구조 2024.10.15

스택으로 수열 만들기(백준 1874/C++)

1부터 n까지 자연수를 스택에 차례대로 넣고, 주어진 수열을 만들기 위해서 값을 꺼내는 방식수열을 만들 수 있으면 push, pop 연산을 출력하고, 만들 수 없다면,  NO출력주어진 수열을 만들기 위해서는 스택에서 숫자를 꺼내는 순서가 반드시 후입선출이어야 한다.만약 수열을 다음 숫자를 만들기 위해서 스택에서 pop을 해야 하지만, 최상단의 값이 그 값 이그 값보다 크면, 해당 수열을 만들 수 없다.스택 연산 수행 방법1. 현재 수열 값 ≥ 자연수2. 현재 수열 값 #include #include #include using namespace std;int main() { ios::sync_with_stdio(false);//동기화를 끊어서 C++의 입출력은 C의 입출력과 별개로 동작하게 되므로, 입출력..

Study/자료구조 2024.10.13

Postfix 수식계산(백준 1935/C++)

후위표기식?후위표기식은 연산자가 피연산자 뒤에 오는 수식 표기법이다.예를 들어,중위 표기식: A+B후위 표기식: AB+ #include #include #include #include // 소수점 출력을 위한 라이브러리using namespace std;int main() { int N; cin >> N;//피연산자의 개수 입력받기 string expression;//후위 표기식이 문자들로 이루어진 문자열이다. //피연산자는 A,B,C와 같은 문자로 표현, 연산자는 +,-,*,/로 표현=> 두 종류의 문자들이 모여 하나의 후위 표기식을 이루므로, string이 적합하다. cin >> expression; double values[26];//피연산자 A~Z의 값을 저장할 배열 for (int i = 0;..

Study/자료구조 2024.10.12