분류 전체보기(90)
-
Optical Flow
📌 Optical Flow (옵티컬 플로우)란?**Optical Flow(옵티컬 플로우)**는 비디오 프레임(연속된 이미지) 간의 픽셀 이동을 추정하는 기법입니다. 쉽게 말해, 물체나 카메라가 움직일 때 픽셀이 어떻게 변하는지 계산하는 알고리즘입니다.예를 들어,자율주행 차량: 도로에서 다른 차량과 보행자의 움직임을 감지.로봇 비전: 로봇이 주변 환경을 인식하고 이동할 수 있도록 함.비디오 안정화: 흔들리는 영상을 보정하기 위해 픽셀 움직임을 분석.📌 Optical Flow의 핵심 개념Optical Flow는 기본적으로 두 개의 연속된 이미지(프레임)를 비교하여 각 픽셀이 어디로 이동했는지 벡터를 계산하는 방법입니다.1️⃣ Optical Flow의 가정일관된 밝기(Consistency of Bright..
2025.03.04 -
bow_matching
BoW(Bag of Words) 매칭 개념BoW(Bag of Words) 매칭은 컴퓨터 비전에서 이미지의 특징을 벡터화하여 데이터베이스에 저장하고, 이후 쿼리 이미지와 비교하여 유사한 이미지를 찾는 방법입니다.이는 문서에서 단어의 출현 빈도를 기반으로 문서를 비교하는 BoW 개념을 확장하여, 이미지에서 특징점(Feature Points)을 추출하고 이를 "시각적 단어(Visual Words)"로 변환한 후, 데이터베이스에서 유사한 이미지 검색에 활용하는 방식 코드 전체 흐름 요약이미지 로드4장의 이미지를 Grayscale로 로드.특징점 검출 및 기술자 추출ORB 특징점을 이용하여 각 이미지의 기술자를 추출.BoW Vocabulary 생성DBoW2를 활용하여 시각적 단어 사전을 생성하고 저장.데이터베이스 ..
2025.03.04 -
ORB_feature_matching
📌 ORB (Oriented FAST and Rotated BRIEF)란?ORB는 특징점 검출(Feature Detection)과 설명자 생성(Descriptor Computation)을 위한 알고리즘으로, OpenCV에서 널리 사용됩니다. SIFT(Scale-Invariant Feature Transform)와 SURF(Speeded-Up Robust Features)보다 빠르고, 특허 문제 없이 사용할 수 있는 장점이 있습니다.1️⃣ ORB의 주요 특징✔ 빠르고 효율적✔ SIFT/SURF보다 연산량이 적음✔ 특허 문제 없음 (오픈소스)✔ 크기(scale)와 회전(rotation)에 강함✔ SLAM, Visual Odometry, 스테레오 비전 등에 활용2️⃣ ORB의 핵심 개념ORB는 두 가지 주요..
2025.03.04 -
container <-> local ros2 topic 통신(ubuntu 20.04)
도커 컨테이너 생성시 --network host 옵션을 쓰면 로컬과 네트워크 설정이 똑같이 되는 걸로 알고잇는데 왜인지 다른 컴퓨터와 통신할때는 잘 되었는데 내 로컬 컴퓨터와 컨테이너 사이의 통신은 되지않았다. 그래서 방법을 찾던 중 수동 네트워크 설정을 하면 가능하다는 것을 알게 되었다.1. Docker 컨테이너에 브릿지 네트워크 설정기본적으로 Docker는 bridge 네트워크를 사용함. 하지만 기본 브릿지(docker0)는 로컬 머신과 직접 통신이 어렵기 때문에, 별도로 새로운 브릿지 네트워크를 생성해야 함.브릿지 네트워크 생성docker network create \ --driver=bridge \ --subnet=192.168.1.0/24 \ ros2_bridge위 명령어를 실행하면 192..
2025.02.18 -
OpenCV C++ vs python
아래 내용은 이미지/영상 처리 파이프라인을 C++과 Python 각각으로 구현하고, 멀티스레드를 적용해 성능 차이를 비교해보기 위한 예시 가이드입니다. 실제 구현 시에는 상황에 맞춰 코드를 조정하거나, 더 복잡한 기능(예: 객체 검출, 딥러닝 추론 등)을 추가할 수 있습니다. 여기서는 간단한 예시로써 프레임 단위로 블러(blur) 처리를 적용하는 코드를 살펴보고자 합니다.1. 파이프라인 개요영상 소스 준비예: mp4 동영상 파일고화질(예: 1920×1080)로 준비하면 CPU 사용량이 더 커서 성능 차이를 확인하기 쉬움프레임 단위 읽기OpenCV를 사용해 동영상 파일로부터 한 프레임씩 읽어옴이미지 처리(블러 등)단순 예시: cv::GaussianBlur (C++) / cv2.GaussianBlur (Py..
2025.01.15 -
몬테카를로 트리탐색(MCTS)
몬테카를로 트리 탐색(Monte Carlo Tree Search, MCTS) 정리MCTS의 개념MCTS는 의사결정 문제를 해결하기 위한 탐색 알고리즘으로, 랜덤 시뮬레이션과 보상 기반 평가를 통해 상태 공간에서 최적의 행동을 추정합니다.복잡한 상태 공간을 효율적으로 탐색하기 위해 설계되었으며, 턴 기반 게임, 경로 탐색, 강화 학습 등 다양한 분야에서 사용됩니다.MCTS의 동작 과정Selection (선택):루트 노드에서 시작하여, UCT(Upper Confidence Bound for Trees) 공식을 사용해 가장 유망한 자식 노드를 선택.UCT 공식: UCT=WN+ClnTNUCT = \frac{W}{N} + C \sqrt{\frac{\ln T}{N}}UCT=NW+CNlnTWWW: 해당 노드의..
2025.01.14