Raspberry pi 3 opencv распознавание возраста. Установка Open CV (Linux). Шаг #3: Завершение работы с сундучком

Недавно при реализации одного из проектов, связанных с распознаванием образов, у нас возникла необходимость установить библиотеку компьютарного зрения OpenCV на одноплатный микрокомпьютер Raspberry PB2.

Порывшись в Сети и потратив некоторое время на эксперименты мы успешно решили эту задачу. В результате получилась небольшая инструкция, которой мы с удовольствием делимся со всеми, кто решит использовать OpenCV на Raspberry.

Итак: установка OpenCV:

В примере мы используем версию opencv 2.4.9.

Для начала нам нужно обновить нашу систему:

sudo apt-get update sudo apt-get upgrade

Теперь нам необходимо установить дополнительные библиотеки:

sudo apt-get -y install build-essential cmake cmake-curses-gui pkg-config libpng12-0 libpng12-dev libpng++-dev libpng3 libpnglite-dev zlib1g-dbg zlib1g zlib1g-dev pngtools libtiff4-dev libtiff4 libtiffxx0c2 libtiff-tools libeigen3-dev sudo apt-get -y install libjpeg8 libjpeg8-dev libjpeg8-dbg libjpeg-progs ffmpeg libavcodec-dev libavcodec53 libavformat53 libavformat-dev libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev libxine1-ffmpeg libxine-dev libxine1-bin libunicap2 libunicap2-dev swig libv4l-0 libv4l-dev python-numpy libpython2.6 python-dev python2.6-dev libgtk2.0-dev swig libv4l-0 libv4l-dev libswscale-dev v4l-conf v4l-utils libgtk2.0-0 libgtk2.0-dev pkg-config libxvidcore-dev libx264-dev libavcodec-dev libavformat-dev libqt4-dev libqt4-opengl-dev libjasper-dev

После того как мы закончили устанавливать библиотеки переходим к установке OpenCV. В ходе установки может возникнуть ситуация при которой может не быть какой то библиотеки для Вашей системы и нужно будет смотреть чего не хватает и доставлять дополнительно.

Создаем папку в которую будем скачивать наш архив:

mkdir ~/opt/opencv/ cd ~/opt/opencv wget -O openCV-2.4.9.zip http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip/download

Теперь нам нужно распаковать наш архив. Для этого используем команду:

unzip openCV-2.4.9.zip

В результате у нас создастся папка openCV-2.4.9. Переходим в нее и создаем папку release

cd openCV-2.4.9 mkdir release cd release

Пришло время провести конфигурацию OpenCV. Если Вам не нужно сторонних настроек то можно воспользоваться конфигурацией по умолчанию (для этого просто жмем клавишу «с»). При запуске ccmake появится список настроек которые можно указать (как показано на картинке ниже)

И так приступим:

ccmake ../

(Press "c" if empty cache configuration)

Нажимаем клавишу «с»

Когда прошли установки нажимаем снова клавишу «с» для продолжения и клавишу «g» для генерации makefile.

Теперь все сконфигурировано и осталось нажать make. Этот процесс займет в среднем порядка 10 чесов.

make sudo make install

На этом установка завершена. Осталось проверить работоспособность.

Создаем файл main.cpp

#include #include using namespace cv; int main(int argc, char** argv) { if (argc != 2) { printf("usage: n"); return -1; } Mat image; image = imread(argv, 1); if (!image.data) { printf("No image data n"); return -1; } imshow("Display Image", image); waitKey(0); return 0; }

Теперь необходимо создать файл CMakeLists.txt и вписать в него следущее:

Cmake_minimum_required(VERSION 2.8) project(DisplayImage) find_package(OpenCV REQUIRED) add_executable(DisplayImage main.cpp) target_link_libraries(DisplayImage ${OpenCV_LIBS})

Нам осталось только скомпилировать и запустить

cmake . make

Запускаем

./DisplayImage path_to_photo.jpg

Если все прошло успешно то в результате увидим картинку, которую Вы указали в параметре пути к файлу.

Леонид, прогаммист компании Sidstudio

Open Source Computer Vision Library

Это библиотека для языка программирования Python упрощающая работу с машинным зрением (раздел машинного обучения - Machine Learning).
Для понимания предлагаю рассмотреть процесс распознавания лица (классика), если б не существовало OpenCV:
  1. Перво-наперво необходимо иметь огромную коллекцию изображений с лицами людей и без них
  2. Структурировать этот набор - сопоставить каждому изображению пояснение: присутствует ли на нем человеческое лицо.
  3. Равномерно и правильно разделить структурированную коллекцию на обучающую и контрольную выборку.
  4. Далее путем перебора и сочетания разнообразных методов машинного обучения (“дерево”, “случайный лес”, “градиентный спуск”, “ближайшие соседи” и т.д.) составить нейросеть, дающую приемлемый результат распознавания как на обучающей, так и на контрольной выборке. На этот этап могут уйти месяцы(!) (в зависимости от доступных вычислительных ресурсов)
А разработчики OpenCV предоставляют всем бесплатный набор первоклассных алгоритмов машинного зрения для различного применения - бери, да используй!)

ПРЕДУПРЕЖДЕНИЕ:

  • Далее рассматриваются тонкости установки OpenCV на Raspbian, однако, инструкция вполне универсальна для всех дистрибутивов семейства Debian
  • установка OpenCV занимает много времени (2-3 часа), однако не обязательно проходить весь путь за один раз - можно остановиться и продолжить с того же места.
  • Потребуются .
  • Установку будем производить на Raspberry Pi 3 на чистый, только что проинсталлированный Raspbian Desktop последней версии. см.

Подготовка

Потребуется 7 Гб свободного места на флешке.
Чтобы проверить наличие свободного места на флешке откроем терминал (Ctrl + Alt + T) и введем команду
df -h
Если места недостаточно, хотя объем флешки должен позволять, то стоит проверить расширена ли файловая система на весь доступный объем (в новых версиях дистрибутива это теперь делается по умолчанию - от апреля 2018 года).
Если система не очень новая, тогда можно зайти в раздел главных настроек
sudo raspi-config
и выбрать первый пункт “1. Expand File System”, а затем перезагрузить Малину

Установка необходимых пакетов

Если обновления давно не проводились, то желательно произвести их сейчас
sudo apt-get update -y && sudo apt-get upgrade -y
Устанавливаем комплект пакетов для сборки программ из исходников
sudo apt-get install build-essential cmake pkg-config -y
Затем устанавливаем комплект библиотек для работы с графическим контентом разных форматов
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev -y
Далее тоже самое для видео контента
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y sudo apt-get install libxvidcore-dev libx264-dev -y
Ставим пакет компиляции модуля highgui для вывода изображений и интерфейсов на экран
sudo apt-get install libgtk2.0-dev -y
И напоследок библиотека линейной алгебры и компилятор Фортрана:
sudo apt-get install libatlas-base-dev gfortran -y

Python

Далее устанавливаем Питон (ну или Пайтон). Базовые версии 2,7 и 3 уже вшиты в Raspbian, однако понадобятся дополнительные пакеты:
sudo apt-get install python2.7-dev python3-dev -y
Далее для Питона (ну или Пайтона) рекомендую установить утилиты virtualenv и virtualenvwrapper - это аналог ’а только для Питона, позволяют работать с Питоном в выбранном “виртуальном окружении” - наборе пакетов определенных версий (аналоги гемсетов Руби) - это удобно при работе над несколькими проектами с различными наборами библиотек (и особенно различными версиями библиотек): чтоб переключиться на, допустим Python 2.7 c OpenCV 3.1 достаточно будет ввести в терминале всего одну команду. Устанавливаем:
sudo pip install virtualenv virtualenvwrapper sudo rm -rf ~/.cache/pip echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.profile echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.profile echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.profile source ~/.profile
На этом зависимости установлены.
Создаем виртуальное окружение с помощью virtualenv. И тут же стоит определиться с версией Питона - если цель - это создание проекта с нуля, тогда стоит выбрать python3, а иначе - python2
В процессе исторического развития языка Python во время актуальности версии 2.7 было написано очень много хороших программ. И даже сейчас во времена стабильных 3.5 версий Python 2.7 не забыт до сих пор и активно используется и поддерживается - произошло ветвление. Так же и с библиотеками Питона - не все будут работать одинаково хорошо как на 2.7 так и на 3.5
mkvirtualenv cv -p python3
Убеждаемся, что сейчас находимся в созданном виртуальном окружении cv. Это можно узнать по сочетанию “(cv)” в консоли у текущей активной строки: И наконец устанавливаем библиотеку Numpy для удобной работой с массивами и матрицами больших размерностей
pip install numpy

Скачивание Open CV из репозитория

Создадим папку для библиотеки в домашней директории и перейдем в нее
cd ~ mkdir opencv cd opencv/
Определимся с версией OpenCV.
С момента выхода версии 3.0, старые версии 2.4.х продолжают поддерживаться и выпускаться и между ними имеются серьезные отличия . К примеру пакет дополнительных модулей ‘contrib’ доступен только для новых версий 3+.
Перейдем на домашнюю страницу проекта в раздел “Releases” . Предлагаю далее устанавливать свежую версию (3+ а не 2.4.х.х) и брать не самый крайний релиз:
Таким образом выбор пал на версию 3.4.0.
Чтоб получить ссылку для скачивания перейдем в офф. репозиторий Open CV в раздел релизов: https://github.com/opencv/opencv/releases и скопируем ссылку на zip-архив выбранной версии:
Возвращаемся к Raspberry.
Находясь в папке /opencv выполним команду для скачивания исходников:
wget -O opencv.zip https://github.com/opencv/opencv/archive/3.4.0.zip
эта команда скачает архив и переименует его в opencv.zip
Распакуем скачанный архив и после удалим его:
unzip opencv.zip rm opencv.zip
Скачаем и распакуем ту же версию дополнительных модулей contrib (в данном случае - 3.4.0). Страница релизов офф. репозиотрия: https://github.com/opencv/opencv_contrib/releases
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/3.4.0.zip unzip opencv_contrib.zip rm opencv_contrib.zip
В итоге должно получиться следующее (команда ls показывает содержимое текущей папки):

Компиляция и установка OpenCV

Еще раз убедимся, что находимся в созданном виртуальном окружении для OpenCV (глава установки Python). Если окружение уже точно было создано, то перейти в него можно командой workon cv
Переходим в папку распакованного архива OpenCV (версия, и соответственно, название папки может отличаться):
cd opencv-3.4.0/
Далее выполняем серию команд для запуска процесса сборки инсталлятора.
Это 3 команды - последняя многострочная, в ней ОСОБОЕ внимание обращаем на путь к папке распакованного архива contrib:
mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv_contrib-3.4.0/modules \ -D BUILD_EXAMPLES=ON ..
В случае успешной сборки увидим следующее. На данный момент мы всего лишь выполнили все условия для компиляции инсталлятора OpenCV, поэтому обратите внимание на секцию Python3 (или Python2) она должна быть как на скриншоте, в ином случае (или в случае фейла) проверьте:
  • возможно во время сборки не было активировано виртуальное окружение (cv) - workon cv
  • Еще возможная причина фейла: неверный абсолютный путь к папке дополнительных модулей contrib
  • На крайний случай можно проверить текущую директорию - вы должны находиться в папке build распакованного архива OpenCV выбранной версии
  • Напоследок убедиться, что версии релизов основного и contrib пакетов совпадают
В любом случае ничего страшного) Следует все перепроверить и запустить сборку заново
Если сборка прошла гладко, значит все условия для компиляции инсталлятора OpenCV удовлетворены и мы сейчас соберем из исходников собственный свежий стабильный дистрибутив OpenCV с extra-модулями!
Запускаем компиляцию
Параметр -j4 означает количество задействованных ядер процессора, у Raspberry Pi 3 их 4.
ВНИМАНИЕ!! Этот процесс в лучшем случае займет порядка 1,5 часов времени!!!
make -j4
Если наблюдаем краш в первые 5 минут компиляции, это вполне может произойти даже при идеальных условиях, то сбрасываем результат и запускаем компиляцию на одном ядре:
make clean make
В случае успеха увидим следующее - процесс компиляции завершен на 100%
Остается запустить собранный инсталлятор командой
sudo make install sudo ldconfig
Все, OpenCV установлен на Raspberry! Для удобного его использования дело остается за малым - пробросить на OpenCV в созданное виртуальное окружение Питона (cv). Определим директорию - так как OpenCV - это библиотека Питона, то должна находиться в папке остальных библиотек, проверим:
  • команда ls выводит в терминал содержимое указанной директории
  • не забудьте указать в команде папку Python с версией, для которой собственно устанавливали OpenCV
ls /usr/local/lib/python3.5/site-packages/
В исключительных случаях библиотека может находиться в соседней папке dist-packages :
ls /usr/local/lib/python3.5/dist-packages/
Перейдем в эту директорию
cd /usr/local/lib/python3.5/site-packages/
Переименуем файл библиотеки - так будет проще вызывать ее в коде Python
sudo mv cv2.cpython-35m-arm-linux-gnueabihf.so cv2.so
Скопируем полный путь к файлу.

Перейдем в каталог библиотек виртуального окружения cv:
cd ~/.virtualenvs/cv/lib/python3.5/site-packages/
Создадим здесь симлинк на OpenCV:
ln -s /usr/local/lib/python3.5/site-packages/cv2.so cv2.so
Проверим результат командой ls:

Проверка

Откроем новое окно терминала
source ~/.profile workon cv python import cv2 cv2.__version__
Если все сделано правильно, то в консоли Питона библиотека OpenCV импортируется без ошибок

В случае ошибки импортирования внимательно проверьте правильность переименовывания файла библиотеки и создание симлинка на него (расширение - .so), а также успешность перехода в виртуальное окружение cv

OpenCV — это популярная библиотека функций машинного зрения, которые позволяют роботам распознавать объекты окружающего мира. OpenCV применяют для навигации, обнаружения препятствий, распознавания лиц и жестов. В этой статье будет предложена пошаговая инструкция по установке OpenCV на одноплатный компьютер Raspberry Pi 3. Также эта статья предваряет серию уроков, направленных на освоение базовых функций OpenCV.

Шаг 1. Свободное место

OpenCV и различные вспомогательные пакеты в сумме занимают достаточно много места. Настоятельно рекомендуется использовать SD-карту размером не менее 16 Гб. Первое, что необходимо сделать перед установкой OpenCV — расширить файловую систему на весь объём SD-карты. Делается это с помощью меню настройки Raspbian. Заходим в терминал и вводим команду: $ sudo raspi-config Откроется меню, в котором нужно выбрать самый верхний пункт: Жмем Enter, а затем кнопку . После этого перезапускаем систему командой: $ sudo reboot Если у вас SD-карта размером всего 8 Гб, можно удалить что-нибудь лишнее, например пакет wolfram-engine. $ sudo apt-get purge wolfram-engine Эта операция освободит дополнительные 700 Мб места.

Шаг 2. Установка зависимостей

Для полноценной работы с OpenCV нам потребуется обновить существующие пакеты и установить ряд новых. Начнем с обновления. $ sudo apt-get update $ sudo apt-get upgrade В зависимости от скорости интернета, данные операции займут около 5-10 минут. Далее устанавливаем в систему cmake и еще несколько полезных штук: $ sudo apt-get install build-essential cmake pkg-config Следом пакеты для работы с известными форматами изображений: $ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev Пакеты для работы с видео: $ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev $ sudo apt-get install libxvidcore-dev libx264-dev Пакеты для создания простых экранных форм. Это все тоже потом понадобится. $ sudo apt-get install libgtk2.0-dev Специальные ускоренные операции над матрицами. $ sudo apt-get install libatlas-base-dev gfortran Заголовочные файлы языка python версий 2.7 и 3 $ sudo apt-get install python2.7-dev python3-dev

Шаг 3. Загрузка OpenCV из репозитория

Сначала скачаем архив с самим OpenCV. Для этого перейдем в папку /home/pi/Downloads: $ cd ~/Downloads Загрузим архив с помощью wget и распакуем unzip-ом: $ wget -O opencv.zip https://github.com/opencv/opencv/archive/master.zip $ unzip opencv.zip Следом скачаем пакет с дополнительной всячиной — opencv_contrib. $ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/master.zip $ unzip opencv_contrib.zip

Шаг 4. Виртуальное окружение

Перед дальнейшей установкой OpenCV, мы немного наведем порядок. Создадим виртуальное окружение, которое оградит наши дальнейшие эксперименты от основной части операционной системы. Это полезно, на случай если потребуется удалить текущую версию opencv и установить новую. Начнем с установки менеджера пакетов pip: $ wget https://bootstrap.pypa.io/get-pip.py $ sudo python get-pip.py Затем установим менеджер виртуального окружения: $ sudo pip install virtualenv virtualenvwrapper $ sudo rm -rf ~/.cache/pip Добавим пару строчек в профиль пользователя, который хранится в файле ~/.profile: $ echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.profile $ echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.profile $ echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.profile Теперь нужно сделать следующие три шага:
  1. закрыть все окна терминалов
  2. разлогиниться
  3. снова залогиниться
  4. открыть терминал и ввести команду: $ source ~/.profile
Примечание. Вообще, эту команду теперь рекомендуется вводить при каждом входе в систему. Далее создаем виртуальное окружение с именем «cv»: $ mkvirtualenv cv -p python3 Чтобы проверить правильность установки виртуального окружения, перезагрузим Raspberry Pi: $ sudo reboot Откроем терминал и зайдем в окружение: $ source ~/.profile $ workon cv Индикатором того, что мы находимся в виртуальном окружении будет префикс (cv) в начале командной строки.
Последнее, что осталось сделать перед сборкой OpenCV — установка математического пакета NumPy: $ pip install numpy

Шаг 5. Компиляция и установка OpenCV

Находясь в ранее созданном виртуальном окружении, зайдем в папку с исходными кодами OpenCV и выполним команды: $ cd ~/Downloads/opencv-master $ mkdir build $ cd build $ cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_EXTRA_MODULES_PATH=~/Downloads/opencv_contrib-master/modules -D BUILD_EXAMPLES=ON .. В конце процедуры появится список компонентов OpenCV, готовых к установке.
Красным выделена секция, посвященная python. Ну а теперь само интересное — сборка бинарников. Не выходя из текущей папки, запускаем команду make: $ make -j4 j4 означает, что мы будем собирать пакет используя все 4 ядра Raspberry Pi. Это сильно ускорит процедуру, но даже при таких условиях сборка займет около полутора часов. Сборка должна завершиться примерно таким вот отчетом:
Примечание. Лично у меня, во время сборки система пару раз зависала наглухо. То есть даже мышь не шевелилась. Помогло выключение/включение питания и повторный запуск сборки с ключом -j2. Последнее, что нужно сделать — установить собранный бинарник в папку с python: $ sudo make install $ sudo ldconfig

Шаг 6. Завершение установки

После установки, в рабочей папке python появится файл cv2.cpython-34m.so, который нужно переименовать во что-то более благозвучное: $ cd /usr/local/lib/python3.4/site-packages/ $ sudo mv cv2.cpython-34m.so cv2.so Чтобы мы могли пользоваться OpenCV, находясь в виртуальном окружении, сделаем там ссылку на получившийся cv2.so: $ cd ~/.virtualenvs/cv/lib/python3.4/site-packages/ $ ln -s /usr/local/lib/python3.4/site-packages/cv2.so cv2.so

Шаг 7. Проверка

Чтобы проверить правильность установки, зайдем в виртуальное окружение, запустим интерпретатор языка python и попробуем импортировать модуль cv2: $ source ~/.profile $ workon cv $ python >>> import cv2 >>> cv2.__version__ "3.1.0" >>> Вот и всё — OpenCV установлен успешно! В следующих уроках мы будем разбираться с обработкой изображения с видеокамеры, применительно к робототехнике.

To install OpenCV on Raspberry Pi, you need Raspberry Pi (Pi2 preferably) , Pi camera, and internet connection to Raspberry Pi.

Copy this image to correct size SD Card. To do this correctly please refers the detailed instructions at https://www.raspberrypi.org/documentation/installation/installing-images/

Now since your SD card is ready, Boot your Pi. First thing you want to do is Enable Camera.
To do this run

Sudo raspi-config

and chose Enable Camera (menu 6) also chose the correct speed for your Raspberry Pi from Overclock option (menu 8).

Reboot your Raspberry Pi. Now its is time to Install python wrapper for OpenCV, to do this run

Sudo apt-get install python-opencv
sudo pip install imutils

Now we are almost done. Let"s test the Pi camera connected to Raspberry Pi for proper operation. For this on command prompt run,

Raspistill -o cam.jpg

The red light on the Pi camera will come on and a picture will be stored in cam.jpg file. Now we are all set to do some serious face tracking using Raspberry Pi. You can download the face tracking sample code using haar cascade from .
You can run this code from Raspberry Pi command line.

Python face_detect.py haarcascade_frontalface_default.xml

If the face is found in an image captured by camera, python program will print "Found 1 faces!. " Below is brief description of how the code work.

From picamera.array import PiRGBArray from picamera import PiCamera import time import cv2 import sys import imutils # Get user supplied values cascPath = sys.argv # Create the haar cascade faceCascade = cv2.CascadeClassifier(cascPath) # initialize the camera and grab a reference to the raw camera capture camera = PiCamera() camera.resolution = (160, 120) camera.framerate = 32 rawCapture = PiRGBArray(camera, size=(160, 120))

This imports the required libraries and open the haar cascade file
Raspberry pi camera is intialized and the streme of images is collectd from camera one by one. Resolution is selected to be 162X120 for fast detection of faces.

Image = frame.array gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

each image is picked from the camera and is loaded in nmupy array. Image is then converted to a grayscale image. This gray scale image is fed to facedetection alogorithm, with some minimum size setting

Faces = faceCascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30), flags = cv2.cv.CV_HAAR_SCALE_IMAGE) for (x, y, w, h) in faces: cv2.circle(image, (x+w/2, y+h/2), int((w+h)/3), (255, 255, 255), 1)

if any valid faces are found in image, function will return the list of faces with positions. We draw a white circle around each face and display results.

Anyone who has dealt with image processing in relation to the Raspberry Pi will sooner or later come across the OpenCV library. It provides many very useful features such as face recognition, the creation of depth maps (stereo vision, optical flow), text recognition or even for machine learning. In addition, OpenCV (Open Source Computer Vision) can be integrated into both its C ++ files and its Python scripts.
Especially in terms of feature recognition in images taken by the Raspberry Pi, OpenCV is very helpful.

This advanced tutorial shows how to install OpenCV on the Raspberry Pi and how to integrate it into Python.

For the time being, I would like to recommend everyone a Raspberry Pi Model B to use, because this is a lot more powerful than its predecessor. Even on a Raspberry Pi B + compiling takes about 6 times as long, with a Pi 2 in total “only” takes about an hour.

First of all, we update the package lists:

sudo apt - get update && sudo apt - get upgrade && sudo rpi - update

A reboot is necessary if it has been updated.

Sudo reboot

Then you can install all the important tools and libraries needed for OpenCV (installation takes a few minutes).

sudo apt - get install build - essential git cmake pkg - config libjpeg8- dev libtiff4 - dev libjasper - dev libpng12 - dev libavcodec- dev libavformat - dev libswscale - dev libv4l - dev libgtk2. 0 - dev libatlas- base - dev gfortran

If everything worked, we could clone OpenCV from git . This step also takes a few minutes.

git clone https : / / github .com / Itseez / opencv .git && cd opencv &&git checkout 3.0.0

Whether version 3.0 or 2.4 of OpenCV is taken is up to you. Depending on the application, one of the versions may be better suited.

Afterwards, OpenCV can be compiled. You can either use Python 2.7 or Python 3+. There are some differences between the versions, especially as some libraries are not (yet) executable with Python 3+. However, this mainly affects smaller libraries, as common libraries (NumPy, SciPy, etc.) usually provide the respective files for both versions.

In this tutorial, I use Python 2.7. If you already have Python installed and want to know which version is installed, you can simply enter python into the console and get the exact version at the beginning (the command for Python 3+ is python3). If you do not have a Python installed, you can install it by following the steps below:

sudo apt - get install python2 . 7 - dev

We also need the package management tool pip , which installs NumPy right away:

Cd ~ && wget https : / / bootstrap .pypa .io / get - pip .py && sudo python get - pip .py

Now we can simply install via pip NumPy. NumPy is a library that makes it very easy to perform array operations in Python.

pip install numpy

But now to compile OpenCV. For this purpose, a build folder must be created in which the compiled files land:

Cd ~ / opencv && mkdir build && cd build cmake - D CMAKE_BUILD_TYPE = RELEASE - D CMAKE_INSTALL_PREFIX = / usr / local - D INSTALL_PYTHON_EXAMPLES = ON - D INSTALL_C_EXAMPLES = ON - D OPENCV_EXTRA_MODULES_PATH = ~ / opencv_contrib / modules - D BUILD_EXAMPLES = ON . .

Now you can finally compile. This step takes (depending on Raspberry Pi model) quite a long time (on my Pi 2 about an hour). To use all four cores to compile on the Raspberry Pi 2, type in the following:

make - j4

If the compilation has worked without problems, we can install OpenCV:

Sudo make install && sudo ldconfig

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то