
RoMa를 사용하여 이미지 매칭해봤습니다. RoMa의 깃허브 저장소는 https://github.com/Parskatt/RoMa 입니다.2025. 2. 20 최초작성다음 포스트에 나온대로 conda 환경을 구성후 하는게 좋습니다. Visual Studio Code와 Miniconda를 사용한 Python 개발 환경 만들기( Windows, Ubuntu, WSL2)https://webnautes.tistory.com/1842 이제 XFeat를 테스트하기 위한 환경을 구성합니다. conda create -n roma python=3.10 conda activate roma git clone https://github.com/Parskatt/RoMa.git cd RoMa pip install -e .필요한 ..
칼만 필터를 사용하여 아치형 트랙 위에서 반복적으로 굴러가는 파란색 공을 추적하는 간단한 테스트입니다. 클로드를 사용하여 진행했습니다. 최초작성 2025. 2.14파란색 원이 원형 궤적을 그리다가 멈추는 경우, 칼만 필터의 추정 궤적이 어떻게 그려지는지 궁금해서 진행했던 다음 포스트 이후 아치형 트랙에서 파란색 공이 반복적으로 굴러가는 경우에는 칼만 필터의 추정 궤적이 어찌 될지 테스트해봤습니다. 물리학적인 요소를 넣으려고 하다가 쉽지 않아 일단은 빼놓은 상태입니다. 칼만 필터를 사용하여 파란색 원을 추적하는 간단한 테스트https://webnautes.tistory.com/2432 테스트 결과는 앞에서 했던 것과 유사합니다. 파란색 원이 아치형 트랙를 반복적으로 굴러가는 것을 칼만 필터는 이를 빨간..
파란색 원이 원형 궤적을 그리다가 멈추는 경우, 칼만 필터의 추정 궤적이 어떻게 그려지는지 궁금해서 코드를 작성했습니다.파란색 원이 원형을 그리며 이동하면 칼만 필터는 이를 빨간색 궤적으로 추정합니다. 스페이스바를 누르면 파란색 원이 순간적으로 멈추게 되고, 이때 칼만 필터의 추정 궤적은 직선 방향으로 이동하게 됩니다. q를 누르면 프로그램이 종료됩니다. 실행 결과는 아래 유튜브에 있습니다. https://youtu.be/TsZlWLuz0Y0 전체 코드입니다. import cv2import numpy as npfrom collections import deque# 전역 변수 설정WIDTH = 640HEIGHT = 480is_paused = False# 칼만 필터 초기화kalman = cv2.Kalma..
YoLo를 사용하여 영상내와 영상 바깥에 사람이 있었던 총시간을 각각 출력하는 OpenCV Python 예제입니다.한사람만 보이는 경우를 가정하고 있습니다. 최초작성 2025. 1. 28https://youtu.be/4geryGplg24 import cv2from ultralytics import YOLOfrom datetime import datetime, timedelta# 사용할 욜로 모델을 지정합니다.model = YOLO('yolov8n.pt')# 카메라를 지정합니다.cap = cv2.VideoCapture(0)start_time = None# 변수를 초기화합니다.total_sitting_time = timedelta()total_standing_time = timedelta()last_st..

OpenCV와 XFeat를 사용하여 이미지 매칭을 테스트해볼 수 있도록 만든 pyQt5 프로그램입니다. 2025. 1. 2 최초작성XFeat 사용방법은 아래 포스트를 참고하세요. 아래 포스트대로 진행 후, modules 폴더를 가져와서 사용하면 됩니다. SIFT와 XFeat 사용해보기https://webnautes.tistory.com/2360 실행 결과입니다. 항상 좋은 결과를 보여주지는 않습니다. 실행하려면 OpenCV와 pyQt5의 충돌로 다음 문제를 해결해야 합니다. 아래 포스트를 참고하세요 qt.qpa.plugin: Could not load the Qt platform plugin "xcb" 에러 해결 방법https://webnautes.tistory.com/2303 사용한 전체 코드입니..

XFeat를 사용하여 월리를 찾아봤습니다. 2024. 12. 17 최초작성여러번 시행 착오 끝에 월리를 찾기는 했지만 만족스럽지는 않네요. xfeat.match_xfeat 함수의 top_k를 조정한 끝에 월리를 찾았기 때문입니다.또 맘에 안드는건 원본 이미지에서 월리를 잘라서 사용해야 했어요. 다른 장면이라도 잘찾아주는 Yolo가 정말 뛰어나구나 새삼 느꼈답니다. XFeat 설치 방법은 다음 포스트를 참고하세요 SIFT와 XFeat 사용해보기https://webnautes.tistory.com/2360테스트에 사용한 코드입니다. import numpy as npimport osimport torchimport tqdmimport cv2import matplotlib.pyplot as pltimport ..

두 장의 이미지의 투명도를 조정하여 두 개의 이미지가 겹쳐보이게 하는 블렌딩(Blending)을 구현한 OpenCV Python 예제 코드를 테스트하기 쉽도록 pyQt5로 작성된 UI를 사용합니다. 2024. 8. 28 최초작성 OpenCV Python만을 사용하여 구현한 코드는 아래 포스트에서 구현되어 있습니다. OpenCV Python 강좌 - 두 개의 이미지 더하기, 블렌딩https://webnautes.tistory.com/1245pyQt5를 사용하여 이미지의 투명도를 조정하게 만든 예제를 실행시키면 슬라이더를 사용하여 두 장의 이미지의 투명도를 조정할 수 있습니다.실행하면 두 장의 이미지가 겹쳐서 보이게 됩니다. 2장의 이미지의 투명도가 각각 50%이기 때문입니다. 어느 한쪽으로 이동하면 ..

카메라가 빨리 움직일때 SIFT보다 성능이 우수하다고 하는 XFeat를 사용해봤습니다. 지금은 이미지 테스트만 진행한 상황이며 실시간 테스트는 조만간 해보겠습니다. 2024. 7. 28 최초작성2024. 7. 28 실시간 테스트를 추가했습니다. 참고https://github.com/verlab/accelerated_features https://docs.opencv.org/4.x/dc/dc3/tutorial_py_matcher.html다음 포스트에 나온대로 conda 환경을 구성후 하는게 좋습니다. Visual Studio Code와 Miniconda를 사용한 Python 개발 환경 만들기( Windows, Ubuntu, WSL2)https://webnautes.tistory.com/1842이제 XF..
OpenCV에서 CUDA를 사용해봅니다. 2024. 6. 29 최초작성허프 변환을 GPU와 CPU에서 실행한 시간을 측정한 결과입니다. GPU를 사용했을때 짧은 시간이 걸리는 것을 볼 수 있습니다. CPU 허프 변환 시간 : 0.031784772872924805 secondsGPU 허프 변환 시간 : 0.003282308578491211 seconds테스트에 사용한 전체 코드입니다. OpenCV에서 CUDA를 사용하도록 컴파일을 하는 것이 필요합니다. 다음 포스트를 참고하세요. Ubuntu 22.04에 CUDA 사용하는 OpenCV 설치하는 방법https://webnautes.tistory.com/1876import cv2import numpy as npimport time# 큰 이미지를 사용해야 G..
OpenCV에서 제공하는 Tracker를 사용한 Tracking 예제입니다. 2024. 5. 23 최초작성https://youtu.be/rswSdXN1KUw import cv2import time# 카메라 장치 열기. 윈도우/리눅스에선 0을 사용하고 맥북에선 1을 사용합니다.cap = cv2.VideoCapture(1) # 웹캠 초기화 시간을 고려하여 딜레이를 줍니다.time.sleep(1)# 트래커 객체를 생성합니다.tracker = cv2.TrackerKCF_create()# 첫 프레임 읽어옵니다.ret, frame = cap.read()if not ret: print("프레임을 읽을 수 없습니다.") cap.release() cv2.destroyAllWindows() exi..