라즈베리

1-240 Ubuntu Mate 라즈베리파이+3에서 OpenCV 4 설치

coding art 2019. 9. 20. 14:18
728x90



지난해 겨울 텐서플로우 OpenCV 출간 이후 7개월 만에 2권에 해당하는 “Scikit PyTorch 머신러닝을 출간하게 되었다. 각권이 450 페이지이므로 합 900 페이지에 달하는 내용이라 무슨 머신러닝을 공부하는데 분량이 왜 이렇게 많은가? 하고 의문을 가질 수도 있겠으나 그 내용이 튜토리얼성에 가까워 사실 그렇게 큰 부담은 없는 책이다. 물론 책 내부에 파이선 코드를 끼워 넣는 먹통 짓은 지금 세상에서는 할 필요가 없을 것이다. 해당 책의 머리말에 써둔 하이퍼링크 목차를 다운받으면 블로그를 직접 열어 볼 수 있으며 거기서 예제 코드를 다운 받을 수 있다.


 

1권에 해당하는 텐서플로우 OpenCV 머신러닝에서는 20179월경부터 201812월 사이에 머신러닝을 이해하고자 하는 필자의 열공(?) 내용을 담아 보았다면 2권에서는 1권에서 제기되었던 여러 내용들에 대해서 해답을 찾아가는 내용들을 꽤 많이 포함하였다. 2권이라고 해서 내용적으로 완전히 정리된 것은 아니기 때문에 다시 3권의 출발점이 될 수도 있을 것이다.

 

다소 아쉬운 점은 흥미 위주로 시작했던 1, 2권의 Softmax 관련 내용을 완전히 정리하지는 못했는데 이 그 이유는 R&D 영역으로 넘어갔기 때문이다. 2020년에는그 내용까지도 포함하여 출간할 계획이다.

 

본 서의 출간 목적은 작가들과 출판사가 염원하는 베스트셀러 화가 목표가 아니다. 사회적으로 인공지능(머신러닝)에 대한 이해 필요성이 점증하는 시기이며, 인공지능 분야의 발전 속도가 상당히 빠르기 때문에 그에 맞춰서 비전공자라 할지라도 머신러닝에 입문해 볼 수 있도록 경험과 생각을 공유해 보고자 하는 것이다.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Wubuntu mate 18.04 버전에서 OpenCV4를 설치하도록 하자. Wubuntu 18.04, 버전을 사용하는 Jetson Nano 보드에서 OpenCV 설치를 위한 워밍 업으로 생각하자. 구체적인 설치 작업에 앞서 라즈베리 파이의 발열 문제를 완전히 해소해 줄 수 있도록 사진과 같이 라즈베리 보드의 전원이 아닌 데스크 탑의 전원을 사용하는 USB 선풍기를 설치하여 충분한 냉각이 되도록 조치한다. 설사 방열판이 있어도 선풍기 냉각이 도움이 될 것이다.

 

OpenCV 설치작업을 위해서는 다음 그림과 같이 url 주소 https://www.pyimagesearch.com/2018/15/how-to-install-opencv-4-on-ubuntu/ 에서 터미널 창을 열고 command line 명령들을 한 줄씩 복사해 실행 시키도록 하자.

 

 

전체 구성은 다음과 같이 4 스텝들로 구성되어 있다.



스텝 1에서는 파이선3 버전에서 OpenCV 설치에 필요한 제반 개발 툴 및 상호 종속성을 설정한다. 그다지 시간을 요하지 않는 작업들이다.

스텝 2에서는 OpenCV 및 OpenCV_contrib을 다운받아 폴더를 만들어 압축을 해제한다.



스텝 3에서는 패키지 설치 작업을 위한 pip을 설정하고 OpenCV 만의 실행공간을 위한 가상환경을 설치한다. OpenCV 뿐만 아니라 아나콘다와 같은 프론트 엔드의 경우에도 TensorFlow를 중심으로 하는 가상환경을 설정하여 사용하게 되며 때로는 TensorFlow 와 충돌이 나는 PyTorch 의 경우는 별도의 가상 환경을 만들어 사용하기도 한다. 한편 구글 Colabo 의 경우는 특수하게 TensorFlow PyTorchimport 해도 문제가 발생하지 않도록 처리가 되어있는 경우도 있다. 물론 그렇다고 해서 TensorFlow PyTorch를 섞어서 쓸 수 있다는 의미는 아니다.

 

일단 가상환경이 만들어지면 들어가서 우선적으로 NumPy를 설치하도록 한다. 이 단계가 적어도 11분 이상의 시간이 소요되므로 주의하도록 한다. 혹 보드에서 설치 작업이 실패했다는 생각으로 셧다운 시킬 경우 터미널에서 workon cv 가상환경 명령을 사용하여 들어간 후 NumPy 설치 작업을 되풀이 하면 앞서 설치된 부분을 회복하여 계속 진행이 된다.

 

스텝 4에서 cmake 작업은 다소 시간이 소요된다. 오픈소스인 cmake 는 여러 종류의 이종 프로그램들을 make 명령에 의한 컴파일 작업 이전에 build 시킨다. 완료가 되면 Interpreter NumPy 버전 및 Non-free algorithms YES 로 설정되었는지 확인한다.

 

이어서 make j4 에 의한 컴파일 단계가 있는데 이 단계에서 에러가 발생할 경우코어 수를 4 에서 1로 낮추도록 한다. 라즈베리 파이의 코어 수가 4인 것 같으나 2회씩이나 되풀이 하여 에러가 발생하므로 시간이 걸리더라도 make j1 로 처리하길 바란다. 실행 시간이 4배 이상 즉 4시간 이상으로 상당히 늘어날 수 있다. 이런 방식으로 make 명령에 의한 컴파일 작업을 시도하였으나 100% 수준까지 도달하긴 하였으나 끝내 완료시키지 못하였다.


아마도 라즈베리 파이에 Wubntu를 설치까지는 가능하였으나 OpenCV 버전 4 설치는 어려운 듯하다. 아쉬운 점을 많이 남긴 설치 작업이었지만 곧 닥치게 될 NVIDA Jetson Nano 보드에서 OpenCV 설치를 위한 좋은 연습이었다는 생각이 든다.