티스토리

j2b2블로그
검색하기

블로그 홈

j2b2블로그

j2b2blog.tistory.com/m

j2b2 님의 블로그입니다.

구독자
0
방명록 방문하기

주요 글 목록

  • 3D 재구성을 위한 스테레오 비전 https://medium.com/analytics-vidhya/depth-sensing-and-3d-reconstruction-512ed121aa60 Depth Sensing and 3D Reconstruction Earlier this year, Tesla shared an impressive video showing off their 3D Sensing technology. Their system takes in camera images and… medium.com 위 글을 구글 번역기로 돌린 결과물 올해 초 Tesla는 3D 감지 기술을 보여주는 인상적인 비디오를 공유했습니다. 그들의 시스템은 카메라 이미지를 가져와 주변의 포인트 클라우드를 출력하는데, 이는 LiDAR 포인트 클라우드와 거의 경쟁.. 공감수 0 댓글수 0 2023. 9. 13.
  • object detect and tracking https://youtu.be/Hb3jcDyHCRY YOLOv4 : https://docs.opencv.org/4.7.0/da/d9d/tutorial_dnn_yolo.html SORT : https://github.com/abewley/sort 공감수 0 댓글수 0 2023. 5. 15.
  • stereo camera - circle 2차원 영상에서는 카메라에서 물체까지의 거리에 따라서, 동일한 원이라도 거리에 따라 지름과 넓이가 거리에 따라 달라진다. 스테레오 카메라로 추정한 거리 정보를 활용하면, 거리의 변화에도 동일한 원의 지름과 넓이를 동일하게 구할 수 있다. https://youtu.be/H-9846qvp3w 공감수 0 댓글수 0 2023. 5. 6.
  • CMake에서 _DEBUG, NDEBUG 사용 Visual Studio에서 디버그에서만 실행하고 싶은 코드는 아래와 같은 형태로 사용했다. #ifdef _DEBUG // 디버깅에서만 동작하는 코드 #else // 디버그 모드가 아닐 때 동작하는 코드 #endif VSCode에서는 같은 동작을 하게 하려면 CMakeLists.txt 상단에 아래와 같은 코드를 추가하면 Visual Studio에서 사용하던 방법과 같은 동작을 할 수 있다. if (CMAKE_BUILD_TYPE STREQUAL "") # Build type is not set eg. command was "cmake .." message(STATUS " Diag: Build type was unspecified, set to Release") set(CMAKE_BUILD_TYPE Rele.. 공감수 0 댓글수 0 2023. 4. 26.
  • VSCode에서 CMake를 사용하여 OpenCV 응용 프로그램 컴파일&디버깅 이전 글에서 VSCode에서 CMake 없이 OpenCV 응용 프로그램을 컴파일&디버깅 하는 방법을 알아보았다. 이 방법은 소스 파일이 하나 혹은 몇 개 정도의 작은 프로젝트에서는 사용하기 편할 수 있다. 하지만 소스파일과 라이브러리가 많은 프로젝트에서는 링크와 파일 관리가 힘들어진다. CMake를 사용하면 이 부분이 어느 정도 해결이 된다. VSCode에서 CMake를 사용한 OpenCV 개발 환경은 VSCode 홈페이지의 Get started with CMake Tools on Linux와 OpenCV 문서페이지의 Using OpenCV with gcc and CMake를 읽어보면 만들 수 있다. 다만, 디버깅을 하기 위해 인수를 전달하기 위해서는 ".vscode" 폴더 생성과 ".vscode" 폴더.. 공감수 0 댓글수 0 2023. 4. 21.
  • VSCode에서 CMake 없이 OpenCV 응용 프로그램 컴파일&디버깅 소스파일이 한두 개 정도의 작은 프로젝트에서는 CMake 없이 VSCode 설정만으로 빌드, 디버깅을 할 수 있다. 구글링 해서 나온 페이지를 따라 해도 CMake와 VSCode를 섞어 놓은 글들이 많이 보였고, VSCode만으로 설정한다고 해도 꽤나 복잡한 과정을 거쳐야 환경 설정이 되는 글들이었다. 그래서 VSCode 홈페이지를 찾아봤더니 깔끔하게 정리가 되어 있었다. CMake를 사용하는 방법은 이 글을 참고하면 된다. Using C++ on Linux in VS Code를 참고하여 OpenCV를 사용하는 설정이다. main.cpp 이미지를 불러서 띄워주는 예이다. #include "opencv2/opencv.hpp" int main(int argc, char** argv) { cv::Mat img.. 공감수 0 댓글수 0 2023. 4. 19.
  • GTX 1660Ti에서 ubuntu + nvidia docker(CUDA + cuDNN + TensorRT) + opencv 설치 내가 사용하는 노트북에는 GTX 1660Ti가 달려있다. compute 성능은 7.5인 Turing architecture이지만 CUDA 사용에는 제약이 있다. 직접 테스트해 본 바로는 CUDA 11.4.x가 한계인 것 같다. 여기를 보면 Tensor Core, RT Core가 없다. 이 글을 참고하여 CUDA 11.8을 설치하고 CUDA 11.8에 맞게 cuDNN, TensorRT가 설치된 docker image(22-12)를 설치해 봤지만,cudaSetDevice()에서 오류 메시지를 출력하고 동작이 되지 않았다.이 글에서 테스트 한 대로 CUDA 11.4.x에 맞는 docker image(21-10)를 설치한다. 테스트 환경i7-10750HGTX 1660TiUbuntu 22.04 LTSDocker.. 공감수 0 댓글수 0 2023. 4. 15.
  • Ubuntu 22.04 폰트 설치, 삭제 1. 폰트 다운로드 consolas https://gist.github.com/sigoden/d01ad118da677f796bab01781b7eae23 Naver D2coing https://github.com/naver/d2codingfont IBM Plex Mono https://fonts.google.com/specimen/IBM+Plex+Mono lucida-console https://www.cdnfonts.com/lucida-console.font 나눔폰트 # 나눔폰트설치 # 명령을 실행하면 /usr/share/fonts/truetype/nanum에 설치가 된다. $ sudo apt-get -qq -y install fonts-nanum 2. 폰트 설치 # consolas 폰트 다운로드 $ w.. 공감수 0 댓글수 0 2023. 4. 12.
  • YOLOv8 prediction time : OpenCV::dnn vs. TensorRT YOLOv8 소개글을 보면 정확도가 개선되었고 속도가 빨라졌다고 한다. 왼쪽의 그래프는 정확도가 개선되었다는 것이고, 테스트 해 본 결과 v5에 비해 개선된 것 같다. 속도 개선을 나타내는 오른쪽 그래프에서 TensorRT를 사용하면 n 모델에서 1ms까지 줄일 수 있다고 나와 있다. TensorRT가 뭐하는 것이길래 s 모델이기는 하지만 OpenCV::dnn 모듈에 cuda까지 사용해도 60ms 정도로 밖에는 시간을 줄일 수 없어서 궁금했다. (테스트 환경이 구형인 점도 한 몫 했을 것 같다.) 찾아보니 TensorRT는 NVIDIA에서 관리하는 deep learning inference open source라고 한다. (링크1)(링크2)(링크3) 스테레오 비전과 YOLOv8을 사용한 거리 추정을 만들.. 공감수 0 댓글수 0 2023. 4. 10.
  • Windows 10, GTX 1660Ti에서 YOLOv8 train 방법, 설치 순서 GTX 1660Ti에서 최신버전의 pytorch에서 정상적으로 동작하지 않는다.(관련글) cuda 10.2에서 정상동작 하는데 문제가 없는 버전의 설치 순서이다. 물론, 최신의 GPU가 있다면 최신의 버전으로 설치해도 문제가 되지 않을 것 같다. pytorch, onnxruntime, tensorrt, opencv에서 cuda, cudnn을 사용하는 부분은 모두 GPU와 관련이 있다. 1. windows 페이징 파일 확장 (참고글) windows 기본 페이징 파일 크기로 YOLO train을 동작하면 메모리 파일의 크기가 작다는 오류 메시지가 나오면서 train이 안된다. 고급시스템 설정 -> 시스템 속성 -> 성능 설정 -> 성능 옵션 -> 고급 -> 가상 메모리 -> 사용자 크기 지정의 크기를 변경해.. 공감수 0 댓글수 0 2023. 4. 10.
  • 스테레오 카메라와 YOLOv8을 사용한 거리 추정 개발 환경 Intel i7-10750H GTX 1660Ti Logitech C920 x 2 OpenCV 4.7.0 스테레오 카메라 스테레오 카메라를 검색해 보면 20~30만원 부터 시작해서 수백만원 하는 제품이 나온다. 이 글을 보면 비싼 카메라가 필요하지 않을 것 같아서 일반적인 웹캠을 2대를 고정 시켜서 만들었다. https://youtu.be/OMXuPq1zNZU https://youtu.be/y1riYo_Cmww 공감수 0 댓글수 0 2023. 4. 10.
  • Windows 10 + Python + OpenCV + OpenVINO + CUDA + VTK 황선규 박사님의 OpenCV 빌드 영상 기본적인 설치과정은 위의 영상을 따른다. 이전글과 다른점은, OpenBLAS와 MKL은 opencv 3.3 이후로 필요가 없다.(release note) OpenVINO에 사용되는 TBB는 OpenVINO 설치에 포함된다. OpenCV 병렬처리는 Visual Studio에서 지원하는 Concurrency를 사용한다. WITH_TBB=on을 할 경우 OpenVINO 3rd party의 TBB를 사용해도 된다. PC 사양 CPU : i7-10750H GPU : GTX1660Ti 사전 다운로드 Windows 10 Visual Studio 2019 CMake 3.25.2 Python 3.9.13 OpenVINO 2022.3 LTS Eigen 3.4.0 CUDA 11.4.4.. 공감수 0 댓글수 0 2023. 4. 10.
  • MFC Document/View 구조 없이 FormView 사용하기 1. Create a new project -> MFC App 2. 이름은 적당히 알아서, 잘 3. Application Type -> Single Document로 변경한다. Document/View architecture support 체크해제한다. 그대로 Finish를 눌러서 프로젝트 생성을 해도 되고, 나머지 옵션들 선택/해제 후 프로젝트 생성한다. 4. ChildView 삭제 5. FORMVIEW 리소스 추가 6. 리소스에 추가한 FORMVIEW에 대한 클래스를 추가한다. CFormView 클래스를 기본 클래스로 하는 클래스를 추가한다. 이름은 적당히, 잘. 여기서는 CMainView로 만들었다. 7. CMainView의 생성자를 public으로 변경한다. 8. MainFrm.h에 MainVie.. 공감수 0 댓글수 0 2023. 4. 10.
  • 스테레오 매칭을 사용한 깊이 추정 https://learnopencv.com/depth-estimation-using-stereo-matching/ Depth Estimation Using Stereo Matching | LearnOpenCV # Depth estimation is a critical task for autonomous driving. It's necessary to estimate the distance to cars, pedestrians, bicycles, animals, and obstacles.The popular way to estimate depth is LiDAR. However, the hardware price is high, LiDAR is sensitive t learnopencv.com 위 글을 구.. 공감수 0 댓글수 0 2023. 4. 10.
  • 렌즈 왜곡 이해하기 https://learnopencv.com/understanding-lens-distortion/ Understanding Lens Distortion | LearnOpenCV # In a previous post, we went over the geometry of image formation and learned how a point in 3D gets projected on to the image plane of a camera. The model we used was based on the pinhole camera model. The only time you use a pinhole camera is probably dur learnopencv.com 위 글을 구글 번역기로 돌린 결과물 렌즈 왜.. 공감수 0 댓글수 0 2023. 4. 10.
  • 이미지 형성의 기하학 https://learnopencv.com/geometry-of-image-formation/ Geometry of Image Formation | LearnOpenCV # In this post, we will explain the image formation from a geometrical point of view. Specifically, we will cover the math behind how a point in 3D gets projected on the image plane. This post is written with beginners in mind but it is mathematical in natur learnopencv.com 위 글을 구글 번역기로 돌린 결과물 이미지 형성의 .. 공감수 0 댓글수 0 2023. 4. 10.
  • OpenCV를 사용한 카메라 보정 https://learnopencv.com/camera-calibration-using-opencv/ Camera Calibration using OpenCV | LearnOpenCV # A step by step tutorial for calibrating a camera using OpenCV with code shared in C++ and Python. You will also understand the significance of various steps. learnopencv.com 위의 글을 구글 번역기로 돌린 결과물 OpenCV를 사용한 카메라 보정 카메라는 시각 센서로 사용될 때 로봇, 감시, 우주 탐사, 소셜 미디어, 산업 자동화 및 엔터테인먼트 산업과 같은 여러 영역의 필수적인 부분입.. 공감수 0 댓글수 0 2023. 4. 10.
  • 스테레오 카메라 및 OpenCV(Python/C++)를 사용한 깊이 추정 https://learnopencv.com/depth-perception-using-stereo-camera-python-c/ Stereo Camera Depth Estimation With OpenCV (Python/C++) Stereo Camera Depth Estimation with OpenCV- Disparity map for rectified stereo image pair, depth map from disparity map-Bonus code for obstacle avoidance system learnopencv.com 위 글을 구글 번역기로 돌린 결과물 스테레오 카메라 및 OpenCV(Python/C++)를 사용한 깊이 추정 로봇이 어떻게 자율적으로 탐색하고, 다른 물체를 잡거나, 움.. 공감수 0 댓글수 0 2023. 4. 10.
  • OpenCV를 사용하여 저렴한 스테레오 카메라 만들기 https://learnopencv.com/making-a-low-cost-stereo-camera-using-opencv/ Making A Low-Cost Stereo Camera Using OpenCV | LearnOpenCV # In this post, we will learn how to create a custom low-cost stereo camera (using a pair of webcams ) and capture 3D videos with it using OpenCV. We provide code in Python and C++. learnopencv.com 위의 글을 구글 번역기로 돌린 결과물 OpenCV를 사용하여 저렴한 스테레오 카메라 만들기 이 게시물에서는 맞춤형 저가 스테레오.. 공감수 0 댓글수 0 2023. 4. 10.
  • 에피폴라 기하학 및 스테레오 비전 소개 https://learnopencv.com/introduction-to-epipolar-geometry-and-stereo-vision/ Introduction to Epipolar Geometry and Stereo Vision | LearnOpenCV # We will learn the concepts of Epipolar geometry and point correspondences. We will then use these concepts discuss how to calculate depth from stereo disparity. learnopencv.com 위의 글을 구글 번역기로 돌린 결과물 에피폴라 기하학 및 스테레오 비전 소개 그 특별한 3D 안경을 쓰고 영화를 볼 때 왜 그 놀라운 3.. 공감수 0 댓글수 0 2023. 4. 10.
  • epoch과 batch size YOLOv5 inference에서 인식할 만한 경우에도 인식하지 못하는 경우가 있어서, 인식률을 높이기 위해 epoch을 200으로 train 한 모델 파일로 인식 테스트를 했었던 적이 있었다. 결과는 epoch 수를 높인 것에 비해서 인식률은 별 달리 오르지 않았다. OpenVINO를 사용하려고 Windows를 밀고 새로 설치하고 YOLO 테스트 하는 과정에서, GPU 메모리가 남아서 batch size를 늘려봤다. 결과는 epoch=200, batch=16보다 epoch=5, batch=32의 인식이 더 잘 됐다. YOLO에서 말하는 confidence threshold는 epoch=200, batch=16일 때 더 높았고, 인식률은 epoch=5, batch size=32가 더 좋았다. 이제 시작이.. 공감수 0 댓글수 0 2023. 4. 10.
  • Windows 10 + CUDA + Python + OpenCV DNN + OpenVINO + VTK 설치하기 https://www.youtube.com/watch?v=Gfl6EyIhFvM 위의 영상을 따라 하면 큰 어려움 없이 설치할 수 있다. OpenCV 홈페이지(https://opencv.org/)에서 배포하는 미리 컴파일된 라이브러리를 사용하다가 이진화 과정에서 sauvola, niblack, wolf, nick 알고리즘을 사용하려면 extra 모듈이 필요하다고 해서 시작했는데 생각보다 오래 걸렸다. CUDA를 사용하면 DNN에서 속도가 빨라진다. 하지만 GPU로 메모리 복사가 있어서 그만큼의 시간이 추가된다. 이는 OpenVINO도 동일하다. 영상에서는 OpenVINO를 사용하지 않을 거면 제외해도 괜찮다고 하지만, inference에서 NVIDIA GPU를 사용하지 못하는 환경도 있다. 이 경우 Int.. 공감수 0 댓글수 0 2023. 4. 10.
  • Pytorch + GTX1660, GTX1660Ti torch.float16 issue CUDA 11.6 + cuDNN 8.4 설치 후 tensor flow로 MNIST 손글씨의 학습, 추론이 정상적으로 동작했다. 하지만 YOLOv5 테스트하는 과정에서 문제를 만났다. (아마 MNIST가 fp16을 사용하지 않은 코드인 것 같다.) 처음 YOLOv5를 돌렸을 때는 CPU에 비해서 학습 속도도 빠르고, colab에서 돌리는 시간만큼 학습 시간이 걸려서 제대로 학습이 된 줄 알았다. (테스트 당시 colab은 tesla k80) 추론에 문제가 있는 줄 알고 소스 디버깅을 시도했는데 별 이상이 없어 보였다. 그래서 colab으로 동일 model, dataset으로 학습시켜서 학습 데이터만 다운로드해서 로컬에서 추론 테스트를 해 보니 정상적으로 동작했다. -> 학습에 문제가 있는 게 확정이다. 로.. 공감수 0 댓글수 0 2023. 4. 10.
  • 장치별 상대 학습 속도. GPU GPU 달린 중고 게이밍노트북으로 기변을 하고 동일한 데이터셋으로 테스트를 해 봤다. 테스트환경 CPU : i7-10750H RAM : 16GB GPU : GTX 1660Ti Windows 11 Visual Studio 2019 Community Anaconda 3 CUDA 11.6 update2 cnDNN 8.4 머신러닝 학습은 메모리가 많이 필요한지, 페이징 파일 크기 확대가 필요했다. 그냥 돌리면 학습 단계에서 가상 메모리 부족으로 안 돌아가는데, 시스템 고급 설정->페이지 파일 크기 확대해 바꿔줘야 하는 게 있다. https://bskyvision.com/799 CUDA 7.x 버전 사용할때는 CUDA 버전에 맞춰서 그래픽카드 드라이버 버전도 맞춰줘야 해서 그래픽 카드 버전도 최신버전이 아니라 C.. 공감수 0 댓글수 0 2023. 4. 10.
  • 장치별 상대 학습 속도 Google colab을 보니 하드웨어 가속을 선택할 수 있어서, 장치별 상대 속도가 궁금했다. 테스트 환경 Windows 11 Visual Studion 2022 Community Google colab Surface Pro 7 데이터셋 MNIST 손글씨 숫자 테스트 결과(local GPU는 예상) local GPU + jupyter > local GPU + VS > colab GPU >>> local CPU + jupyter > local CPU + VS > colab TPU GPU가 있다면... 서피스 프로7에는 GPU가 없어서 테스트를 하지 못했지만, 어느 정도 이상의 GPU가 달린 노트북이나 데스크탑이 있다면, local GPU + jupyter notebook에서 돌리는 게 제일 빠를 것 같다.. 공감수 0 댓글수 0 2023. 4. 10.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.