Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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 31
Tags
more
Archives
Today
Total
관리 메뉴

혼종 꼬지마루

#1 OpenCV 설치 본문

Projects/RC Car Automatic Driving

#1 OpenCV 설치

꼬지마루 2018. 10. 10. 01:10

진행중인 RC Car자율주행 프로젝트를 진행하면서 내가 맡은 부분은 사용자 얼굴인식, LineTracer와 RC카 회로 구성이다.


현재 RC카 회로 구성은 끝나고 주행을 CNN으로 학습시킨 후 자율주행을 하려했으나 문제는 Data Set을 모으기 위해 주행을 해야하는데


조종이 쉽지않다는 점이다


일단 양쪽 바퀴가 각각 한꺼번에 돌아서(탱크를 생각하면 쉬움) 원하는 회전반경을 만들 수 없다는 단점이 있다.


아두이노 4휠 RC카 키트를 주문해서 라즈베리로 제어 보드만 바꿔주어 GPIO와 WiringPi를 사용하여 각각 초음파센서, 바퀴제어를 해주었다.


하지만 앞서 말한 듯이 회전반경이 생각처럼 마음에 들지 않았기에 새로 주문!


이 부분은 다음에 다시 포스팅 하도록 할 예정


지금 할 것은 사용자 얼굴인식에 대한 부분을 언급해볼까 한다.


현재 사용하고 있는 프로젝트 개발 환경이 Ubuntu Linux환경이기에 여기에 맞춰서 설명할 예정


먼저 OpenCV를 설치해야 하는데....


이게 좀처럼 쉽게 설치가 되지 않는다는 것이 단점...


잘못 설치하면 Python2에서만 돌아가는 것도 있고, cmake가 잘 안되는 경우도 있다.


이런점 때문에 에러가 뜰때마다 왜안되는지, 어떻게 해야하는지 찾으며 뻘짓을 3일을 했다...


자세한 부분은 http://webnautes.tistory.com/1030 에서 보고 참고하면 자세히 나와있고, 설치도 비교적 잘 되는 것을 확인했다....


먼저 OpenCV를 설치하기 전에 설치가 되어 있는지 확인하기 위해


1
2
3
4
5
$ pkg-config --modversion opencv
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found
cs

먼저 1번줄을 terminal창에 쳐서 2~5번줄처럼 출력되면 설치되어 있지 않다는 것이다.


하지만


1
2.4.9.1
cs


처럼 버전 정보가 나온다면 


1
2
$ sudo apt-get purge  libopencv* python-opencv
$ sudo apt-get autoremove
cs


와 같이 삭제하고 진행


먼저 설치를 진행하기 전에 패키지의 업데이트와 업그레이드를 진행


1
2
$ sudo apt-get update
$ sudo apt-get upgrade
cs

그 후에 필요한 다른 패키지들을 설치한다


1
2
3
4
5
6
7
8
9
10
$ sudo apt-get install build-essential cmake
$ sudo apt-get install pkg-config
$ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev
$ sudo apt-get install libv4l-dev v4l-utils
$ sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev 
$ sudo apt-get install libqt4-dev 
$ sudo apt-get install mesa-utils libgl1-mesa-dri libqt4-opengl-dev 
$ sudo apt-get install libatlas-base-dev gfortran libeigen3-dev
$ sudo apt-get install python2.7-dev python3-dev python-numpy python3-numpy
cs


패키지들을 모두 설치한 후, 본격적으로 OpenCV를 설치하기 시작


1
2
3
4
5
6
7
8
9
10
11
$ mkdir opencv
$ cd opencv
$ wget -O opencv.zip https://github.com/opencv/opencv/archive/3.4.0.zip
$ unzip opencv.zip
 
$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/3.4.0.zip
$ unzip opencv_contrib.zip
 
$ cd opencv-3.4.0/
$ mkdir build
$ cd build
cs

여기까지 하면 opencv-3.4.0와 opencv_contrib-3.4.0의 폴더가 두개가 생기고, opencv-3.4.0폴더에 build 디렉토리를 만들어 그 안에 까지 들어가 있게 된다

자 여기서 부터 제가 뻘짓한 cmake부분인데.... 잘 안될 수 있다는 점을 다시한번 말씀드립니다

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
$ 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=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.5m \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include/ \
-D PYTHON3_PACKAGES_PATH=/usr/lib/python3.5/dist-packages \
-D PYTHON3_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so \
../
cs

이처럼 cmake를 컴파일 설정을 잡아줍니다. 이때 제가 참고한 블로그의 경우 20번째 줄 부터는 python2나 python3 둘중에 하나라도 잡히지 않을경우 사용하지만 그냥 한번에 해줬습니다.

1
2
3
4
5
$ cat /proc/cpuinfo | grep processor | wc -l
 
$ make -j4
 
$ sudo make install
cs

맨 첫줄에서는 cpu의 코어수를 확인합니다.

3번째 줄에 make -j4라고 되어있지만 여기서는 4대신 앞서 확인한 cpu의 코어 숫자를 넣어주게 됩니다.(cpu코어수 만큼 사용해서 설치하겠다는 뜻인거 같습니다.)

그리고 마지막으로 install로 설치...

이때 make -j4단계에서 저는 엄청 막혔었고, 시간도 엄청 오래걸려서 밥먹고 왔었습니다 ㅎㅎ

참고한 블로그에서는 이 이후에 몇가지 설정파일 확인을 하는데 저는 그냥 사용해도 문제가 없어서 그냥 사용했습니다

설치가 잘 됬는지 확인하는 방법은 제일 먼저 버전 확인하는 명령어를 넣어보거나,

터미널에서 python을 치고 들어가서 import cv2를 입력했을 때 에러없이 import된다면 설치가 된 것입니다.

사용하는 python버전에 맞춰서 python2, python3 모두 확인해보시면 좋을 것 같습니다!!

여기까지... 미천한 실력이지만 OpenCV를 설치하는 방법에 대해 포스팅해 보았습니다.

p.s
Window나 MAC, Raspberry Pi에 설치하거나 간단한 opencv튜토리얼 등은 https://www.youtube.com/channel/UCWEHue8kksIaktO8KTTN_zg에 가면 상당히 잘 나와있습니다! MAC에 설치하는걸로 linux에 설치해도 잘 된다는 말도 있고, opencv외 외에도 다양한 개발 툴 튜토리얼이 있어 참고하시면 좋을 것 같습니다!

'Projects > RC Car Automatic Driving' 카테고리의 다른 글

RC Car 자율주행 프로젝트 시작  (0) 2018.10.01