티스토리 뷰
sinanju06/딥러닝 환경 셋팅 및 코드 분석
NVIDIA Jeston 환경 셋팅 2-1편 (OpenCV 3.4.0 설치 on Jeston Nano)
hanyangrobot 2021. 1. 4. 12:37작성자 : 한양대학원 융합로봇시스템학과 유승환 석사과정 (CAI LAB)
저의 목표는 ROS-Melodic를 활용하여 카메라(Real-Sense)에서 얻은 이미지를 YOLOv3로 Object Detecting하고 Detect한 좌표를 ros-topic으로 받아오는 것입니다! Depth 카메라를 사용하는데, 저는 Depth 좌표는 필요 없어서 color 이미지만 사용할 것입니다! (연구실에 카메라가 real-sense 밖에 없어서 과분한 카메라를... 사용하네요ㅎㅎ) 오늘은 OpenCV (버전 : 3.4.0) 설치를 먼저 해보겠습니다!
[Jeston Nano 시리즈]
- 1-2편 JetPack 설치 on Jeston Nano : ropiens.tistory.com/87
- 참고 링크 (OpenCV 3.4.0 설치) : ultrakid.tistory.com/10
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'.)
- do this : 95mkr.tistory.com/entry/ROS6
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")
'sinanju06 > 딥러닝 환경 셋팅 및 코드 분석' 카테고리의 다른 글
NVIDIA Jeston 환경 셋팅 번외편 (Pytorch, yolov4, yolov5 설치) (23) | 2021.01.05 |
---|---|
NVIDIA Jeston 환경 셋팅 4편 (YOLO-ROS 설치 및 실행) (24) | 2021.01.05 |
딥러닝 모델 아키텍쳐를 그림으로 확인해보기! : NETRON (2) | 2020.12.21 |
Object Detection & Tracking : YOLOv4 + Deep_SORT 환경 셋팅 및 실습 (15) | 2020.12.09 |
NVIDIA Jeston 환경 셋팅 3편 (ROS, RealSense-SDK, RealSense-ROS설치) (16) | 2020.11.17 |
댓글