OpenCV — библиотека для работы с изображениями
Для конкурса по работотехики, где работает мой друг, собирал систему распознавания образов. Система состояла из микрокомпьютера Raspberry Pi и веб-камеры, видео с камеры захватывала программа, производила опознавание и по ssh передавала обработанный видеопоток.
Работа веделась по ssh, запускал с ключем -X.
В качестве библиотеки выбрана OpenCV — 3.3.0, после долгих поисков материала по этой теме был найден сайт www.pyimagesearch.com посвященный распознаванию лиц на Python. Порадовал проект созданный который назывался Not Santa!
Установка OpenCVБ
Подготавливаемся к компиляции и установке:
1 2 3 4 5 6 7 8 9 | sudo apt-get update && sudo apt-get upgrade 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 libgtk-3-dev sudo apt-get install libcanberra-gtk* sudo apt-get install libatlas-base-dev gfortran sudo apt-get install python2.7-dev python3-dev |
Скачиваем и распаковываем opencv и модули к нему:
1 2 3 4 5 | cd ~ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.3.0.zip unzip opencv.zip wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.3.0.zip unzip opencv_contrib.zip |
Устанавливаем виртуальное окружение для Python
1 2 3 | wget https://bootstrap.pypa.io/get-pip.py sudo python get-pip.py sudo python3 get-pip.py |
Дальнейшую установку можно провести в виртуальном окружени для Python, это позволит устанавливать необходимые модули в домашний каталог пользователя, делать это не обязательно и можно пропустить, если в системе используется python 2.7 по умолчанию.
1 2 | sudo pip install virtualenv virtualenvwrapper sudo rm -rf ~/.cache/pip |
Записываем переменные окружения в файл ~/profile
1 2 3 | #virtualenv and virtualenvwrapper export WORKON_HOME=$HOME/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh |
Перегружаем переменные сессии из profile
1 | source ~/.profile |
Затем создаем контейнер для виртуального окружения:
1 | mkvirtualenv cv -p python2 |
После создания контейнера устанавливаем
1 | workon cv |
Дальше идут команды для обоих вариантов (с виртуальным окружением или без)
1 | pip install numpy |
Переходим к конфигурированию:
1 2 3 4 5 6 7 8 9 10 11 | cd ~/opencv-3.3.0/ mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/modules \ -D ENABLE_NEON=ON \ -D ENABLE_VFPV3=ON \ -D BUILD_TESTS=OFF \ -D INSTALL_PYTHON_EXAMPLES=OFF \ -D BUILD_EXAMPLES=OFF .. |
Скрипт выполняется не очень продолжительное время после чего если не возникло ошибок можно переходит к процессу компиляции
1 | make -j4 |
Устанавливаем символьную ссылку на модуль cv2 для виртуального контейнера Python
1 2 | cd ~/.virtualenvs/cv/lib/python2.7/site-packages/ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so |
Выполним проверку модуля:
После того как утсановили можно переходить к проектам с исползованием этой библиотеки.