티스토리 뷰

작성자 : 한양대학원 융합로봇시스템학과 유승환 석사과정 (CAI LAB)

 

 저의 목표는 ROS-Melodic를 활용하여 카메라(Real-Sense)에서 얻은 이미지를 YOLOv3로 Object Detecting하고 Detect한 좌표를 ros-topic으로 받아오는 것입니다! Depth 카메라를 사용하는데, 저는 Depth 좌표는 필요 없어서 color 이미지만 사용할 것입니다! (연구실에 카메라가 real-sense 밖에 없어서 과분한 카메라를... 사용하네요ㅎㅎ) 오늘은 OpenCV (버전 : 3.4.0) 설치를 먼저 해보겠습니다!


[Jeston Nano 시리즈]

 

NVIDIA Jeston 환경 셋팅 1-2편 (JetPack 설치 On Jeston Nano)

작성자 : 한양대학원 융합로봇시스템학과 석사과정 유승환  이번에는 Jeston Nano에 JetPack 설치를 해보겠습니다! 작성 날짜 기준으로 JetPack은 Version 4.5이며, 기본적으로 Ubuntu 18.04, CUDA 10.2, cuDNN 8..

ropiens.tistory.com


 

[OpenCV] Jetson nano에 OpenCV 3.4 설치

제 나노 보드에 설치된 Jetson Nano Developer Kit image, CUDA 10.0, Jetpack 4.3 버전 기준으로 작성하였습니다. 우선 OpenCV 설치 전에 필요한 라이브러리 들을 설치해줍니다. (참고) - pkg-config나 unzip 또..

ultrakid.tistory.com


0. 이전에 설치된 OpenCV 삭제하기

  • 기존에 opencv가 설치되어 있으면 이 작업을 진행하시는 걸 추천합니다.
  • 이 작업을 진행하면, ROS 등 기존에 설치해놨던 패키지 속에 있는 opencv 까지 삭제가 됩니다. 만약에 ROS가 기존에 설치되어 있다면 ROS를 삭제하고, opencv를 설치한 후에 다시 설치하셔야 합니다.
sudo find / -name "*opencv*" -exec rm -i {} \;
sudo find / -name "*opencv*" -exec rm -r {} \;
sudo find / -name "*OpenCV*" -exec rm -i {} \;
sudo find / -name "*OpenCV*" -exec rm -r {} \;
sudo find / -name "*cv2*" -exec rm -i {} \;
sudo find / -name "*cv2*" -exec rm -r {} \;
  • (번외 : ROS 삭제)
# ROS Uninstall
sudo apt-get purge ros-*
sudo apt-get autoremove

1. Opencv-Python 3.4.0 설치

  • (1) 업데이트
sudo apt-get update
sudo apt-get upgrade

 

  • (2) 필요한 라이브러리 설치
sudo apt-get install python2.7-dev python3-dev python-numpy python3-numpy

sudo apt-get install libjpeg-dev libpng-dev libtiff-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev v4l-utils 
sudo apt-get install libxvidcore-dev libx264-dev libxine2-dev
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt-get install libgtk-3-dev
sudo apt-get install mesa-utils libgl1-mesa-dri libgtkgl2.0-dev libgtkglext1-dev
sudo apt-get install libatlas-base-dev gfortran libeigen3-dev

 

  • (3) opencv 설치
mkdir opencv
cd opencv
wget -O opencv.zip https://github.com/opencv/opencv/archive/3.4.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/3.4.0.zip

unzip opencv.zip
unzip opencv_contrib.zip

cd opencv-3.4.0
mkdir build
cd build

 

  • (4) opencv 빌드
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_TBB=OFF \
-D WITH_IPP=OFF \
-D WITH_1394=OFF \
-D BUILD_WITH_DEBUG_INFO=OFF \
-D BUILD_DOCS=OFF \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=OFF \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D WITH_QT=OFF \
-D WITH_GTK=ON \
-D WITH_OPENGL=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.4.0/modules \
-D WITH_V4L=ON  \
-D WITH_FFMPEG=ON \
-D WITH_XINE=ON \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D PYTHON2_INCLUDE_DIR=/usr/include/python2.7 \
-D PYTHON2_NUMPY_INCLUDE_DIRS=/usr/lib/python2.7/dist-packages/numpy/core/include/ \
-D PYTHON2_PACKAGES_PATH=/usr/lib/python2.7/dist-packages \
-D PYTHON2_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython2.7.so \
-D PYTHON3_INCLUDE_DIR=/usr/include/python3.6m \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include/  \
-D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages \
-D PYTHON3_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so \
../
# 방열팬이 있을 경우
make -j4

# 없을 경우
make -j2

 

  • (5) opencv 컴파일
sudo make install
sudo sh -c 'echo '/usr/local/lib' > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig

2. YOLOv4-ROS 설치

  • 먼저 ros-workspace를 생성합니다. 저는 위 깃헙의 설명대로 'workspace'라고 이름을 지었지만, 이 부분은 여러분이 편하신 대로 설정해도 됩니다.
## Create workspace for ROS, Change directory
mkdir -p workspace/src 
cd workspace/src

## init workspace
catkin_init_workspace

## Make
cd ../
catkin_make

 

  • 이제 깃헙에서 git 명령어를 활용하여 소스코드를 가져옵니다.
cd src
git clone --recursive https://github.com/Tossy0423/yolov4-for-darknet_ros.git

 

  • 소스코드를 build 해줍니다.
# Change workspace directory
cd ~/workspace

## Make
catkin_make

# Write source command in ~/.bashrc
echo "source ~/workspace/devel/setup.bash" >> ~/.bashrc

 


  • when cmake error (Project 'cv_bridge' specifies '/usr/include/opencv' as an include dir, which is not found.  It does neither exist as an absolute directory nor in '${{prefix}}//usr/include/opencv'.)

 

[ROS] 6. ROS + OPENCV (cv_bridge) 실시간 스트리밍

☞  메인보드 : Jetson Nano Developer Kit ☞  이미지 파일 버전 : JetPack 4.3 ☞  ROS 버전 : Ubuntu 18.04 LTS bionic > ROS Melodic <이전 포스트> ROS Melodic 언어 : C++ <이전 포스트> 4. 예제를 통..

95mkr.tistory.com

pkg-config --cflags opencv

# -I/usr/local/include

sudo gedit /opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake

# in cv_bridgeConfig.cmake in line 94~96

# before
if(NOT "include;/usr/include;/usr/include/opencv " STREQUAL " ")
  set(cv_bridge_INCLUDE_DIRS "")
  set(_include_dirs "include;/usr/include;/usr/include/opencv")
  
# after
if(NOT "include;/usr/include;/usr/include/opencv " STREQUAL " ")
  set(cv_bridge_INCLUDE_DIRS "")
  set(_include_dirs "include;/usr/include;/usr/local/include/opencv")

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30