전체 글 86

[Depth camera] 이론

우리가 아는 Depth camera에는 크게 3가지 방식이 있다. 첫째, Streo 방식 둘째, ToF 방식 셋째, Lidar 방식 오늘은 위 세가지 방식들의 원리 및 장단점에 대해 공부하고 정리하려한다. 정리에 앞서 카메라 좌표계 시스템을 먼저 정의해야 할 것 같아서 정리하고 넘어가려 한다. 영상 geometry는 카메라 캘리브레이션, 스테레오 매칭 등 다양한 분야에 있어서 가장 기본이 되는 요소로서 geometry에 대한 이해 없이는 카메라의 동작방식을 제대로 이해할 수 없다. 0. 좌표계 영상 geometry에는 크게 4가지 좌표계가 존재한다. - 월드좌표계 - 카메라좌표계 - 정규좌표계 - 픽셀좌표계 월드좌표계와 카메라 좌표계는 3차원 좌표계이고 정규좌표계와 픽셀좌표계는 2차원 좌표계이다. 0.1..

카메라/기하학 2022.04.25

[Detection] Yolov5 custom dataset 학습 및 추론방법

2022년 5월 24일 기준 작성된 글입니다. 수정사항이 있으면 댓글로 말씀 부탁드립니다. 실행환경 os: window10 python: 3.8 pytorch: 1.10.0 cuda: 11.3 cudnn: 8.2.1 for cuda 11.x 1. 가상환경 생성 #가상환경 생성 conda create -n yolov5 python=3.8 #가상환경 실행 conda activate yolov5 2. pytorch 설치 cuda 11.3에 맞는 pytorch 설치 # CUDA 11.3 conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cudatoolkit=11.3 -c pytorch -c conda-forge 3. pytorch cuda..

SLAM(simultaneous localization and mapping)

제가 아는 선에서 정리하다보니 내용이 많이 부족합니다... ㅎㅎ 그냥 참고만 부탁드립니다. SLAM이란? : 우리가 눈으로 보는 3차원 공간에서 로봇(차량 등)이 이동하면서 주변을 탐색할 때, 로봇이 위치한 공간의 지도(map)를 그려줌과 동시에 현재 로봇의 위치를 추정하는 방법. 주로 Depth Camera 또는 Lidar 센서를 이용해 주변의 환경 지도를 작성함과 동시에 2차원or 3차원 상의 위치를 추정합니다. 카메라 또는 센서의 위치를 2차원 평면상에 투영하여 visualize 카메라 또는 센서의 위치를 3차원 상에 visualize Lidar를 이용한 SLAM : 자율주행 차량에서 주로 사용되는 방법이며 아래와 같은 순서로 동작됩니다. 1. Lidar를 이용해 3차원 point cloud 데이터..

카테고리 없음 2022.04.21

[window10] 작업 스케줄러와 배치파일 이용해 일정시간마다 프로그램 자동 실행시키기

이번에 데이터수집 과정에서 일정시간마다 카메라를 동작하고 캡쳐해서 서버에 보내주는 프로그램을 task를 짜야했다. 지난번 배치파일을 이용해 파이썬 파일을 실행하는 동작을 진행하였었는데 이를 이용하면 간단하게 일정시간마다 프로그램을 자동으로 실행시킬 수 있다(with window 작업스케줄러). 순서는 다음과 같다. 1. 파이썬 코드를 실행시켜주는 배치파일 만들기(아래 링크 참조) https://dohyeon.tistory.com/22?category=1016127 [windows10] 배치파일을 이용하여 파이썬 파일 실행하기 1. 메모장을 연다. 2. 아나콘다 가상환경 상에서 python file을 실행하기 위해 아래와 같이 작성한다. call /Scripts/activate.bat call conda ..

기본기/OS 2022.04.03

전동킥보드 헬맷 미착용 단속 시스템 개발(1)

연구목표 Computer Vision Object Detection 기술을 활용한 전동킥보드 헬맷 미착용 단속 시스템 개발 연구배경 2021년 5월 13일 부로 발효된 개인형 이동장치(전동킥보드)에 대한 도로교통법 개정안에 따르면 안전모 미 착용시 범칙금 2만원을 부과합니다. 그러나 자동차나 오토바이와 달리 전동킥보드는 개개인을 구분할 수 있는 번호판이 없기 때문에 경찰의 현장 단속에 의존하고 있는 실정입니다. 이에따라 전동킥보드 헬맷 미착용 단속에 대한 실효성에 의문이 제기되고 있는데 이를 해결하기 위해 Computer Vision Object Detection 기술을 활용하여 자동화된 전동킥보드 헬맷 단속 시스템을 개발할 예정입니다. 배경기술

[ubuntu] apt install로 설치한 패키지 anaconda 가상환경에 집어넣기

최근 3D Reconstruction 공부를 하면서 point cloud 관련 라이브러리를 설치할 일이 생겼다. 하지만 특정 패키지가 파이썬 패키지 인덱스인 PyPI에서 제공하지 않아 pip install로 가상환경에 곧바로 설치할 수 없는 이슈가 발생했다. apt install로 설치되는 패키지는 root 권한으로 설치되기 때문에 이미 구성된 가상환경에 이를 자동으로 설치할 방법은 없다. 구글링 해본 결과 해결방법은 다음과 같다. apt install로 설치된 파일 경로를 찾아가서 수동으로 가상환경에 복사해주는 것! 내가 가상환경에 설치하고자 하는 apt 패키지는 다음과 같다. sudo apt install libpcl-dev 해결방법 1. 전역 저장소 찾기 $find /usr -name 'site-p..

기본기/OS 2022.03.17

2D 영상에서 물체까지 3D 거리 구하기

2022-02-18 2D 영상 내에서 특정 물체까지의 3D 거리정보를 얻는 방법은 여러가지가 있었는데 나는 그중 3D 변환을 이용한 방법을 사용하였다. 3D 변환을 이용한 방법은 가장 일반적인 방법이며, 영상 기하학에서 좌표계에 대한 이해만 있으면 어렵지 않게 적용할 수 있다. 이 방법을 사용하기 위해서는 카메라의 내부 파라미터(fx, fy, cx, cy)와 카메라 3D 자세정보(R, t)가 미리 구해져 있어야만 사용 가능하다. 카메라의 내부 파라미터(fx, fy, cx, cy) 및 3D 자세정보(R,t)는 앞선 글에서 구하였다. 카메라 내부 파라미터(fx, fy, cx, cy) - [영상처리] 카메라 캘리브레이션 (Camera Calibration) 2022-02-18 실험실에서 진행하는 프로젝트에서 ..

카메라/기하학 2022.02.19

카메라의 위치 및 3D 자세정보

2차원 영상 내에서 3차원 거리정보를 얻기 위해서는 카메라 내부 파라미터 뿐만 아니라 카메라의 위치 및 3D 자세정보가 필요하다. 지난 글에서 카메라 내부 파라미터를 구했으니 https://dohyeon.tistory.com/23 [영상처리] 카메라 캘리브레이션 (Camera Calibration) 2022-02-18 실험실에서 진행하는 프로젝트에서 2D 이미지 내에서 카메라와 물체까지의 3차원 거리를 구하는 task가 주어졌다. 기하학적 계산에 앞서 2차원 이미지의 3차원 변환을 위해서는 camera의 내 dohyeon.tistory.com 이번 글에서 카메라의 위치 및 3D 자세정보를 구해보겠다. 카메라로 촬영한 영상을 보고 이 영상을 획득할 당시의 카메라의 위치 및 3D 자세정보(팬,틸트)를 추출하..

카메라/기하학 2022.02.18

카메라 캘리브레이션 (Camera Calibration)

2022-02-18 실험실에서 진행하는 프로젝트에서 2D 이미지 내에서 카메라와 물체까지의 3차원 거리를 구하는 task가 주어졌다. 기하학적 계산에 앞서 2차원 이미지의 3차원 변환을 위해서는 camera의 내부 파라미터정보가 필요하기 때문에 카메라 캘리브레이션 과정을 통해 카메라 내부 파라미터를 구하는 과정을 정리하고자 한다. 카메라 캘리브레이션은 영상처리, 컴퓨터비전 분야에서 필수적인 과정이다. 이번 글에서는 카메라 캘리브레이션의 기본적인 개념, 카메라 내부 파라미터 정보를 얻기 위한 Tool과 획득과정등을 정리해보았다. 0. 카메라 캘리브레이션이란? 우리가 눈으로 보는 실제 세상은 3차원이다. 하지만 이것을 단안렌즈 카메라로 촬영하면 2차원의 이미지로 투영된다. 이때 3차원의 점들이 이미지 상에서..

카메라/기하학 2022.02.18