Нам нужно выполнять различные операции с изображением, чтобы извлечь из него полезную информацию. Итак, этот процесс применения различных алгоритмов к изображению для получения желаемого результата называется Обработкой изображения . Иногда изображение на входе размыто, и мы хотим получить из него данные. Например. Когда грабители приезжают, чтобы схватить мотоцикл или машину, они в основном приезжают на велосипеде, а на дорогах устанавливаются видеонаблюдения, которые снимают видео инцидента. Нам необходимо знать регистрационный номер той машины, на которой приехали грабители, и это легко сделать с помощью некоторых алгоритмов обработки изображений. Чтобы выполнить обработку изображений на определенных изображениях, нам необходимо установить некоторые библиотеки на используемом нами оборудовании. Среди этих библиотек наиболее важной является OpenCV. OpenCV также можно установить на ПК и микропроцессоры. Raspberry Pi – это микропроцессор, который используется в различных электронных проектах. После установки операционной системы на Raspberry Pi мы можем выполнять на нем различные задачи по обработке изображений. Установка OpenCV на Raspberry Pi – долгая и беспокойная задача. В этой статье мы узнаем, как установить OpenCV на Raspberry Pi для выполнения на нем различных операций обработки изображений.
Как установить Raspberry Pi и настроить на нем OpenCV?
Теперь давайте перейдем к настройке Pi и выполнению операций, упомянутых в шаге за шагом для установки OpenCV на нем. Установка OpenCV на Pi – длительный процесс, который занимает около 4 часов, поэтому, если у вас мало времени, не начинайте установку, обратитесь к этому руководству, когда будете свободны. Наряду с этим Pi нагревается, когда он был включен в течение длительного времени, и над ним выполняются длительные операции, поэтому храните его в прохладном месте, когда вы работаете с ним.
Шаг 1: используемые компоненты
- Комплект Raspberry Pi 3B +
- Телевизор с портом HDMI
- Кабель HDMI
- Проводная компьютерная мышь
Шаг 2. Выбор модели Raspberry Pi
На рынке доступно несколько моделей Raspberry Pi. За исключением raspberry pi zero, можно предпочесть любую модель. Это потому, что на Pi zero настройка сети – очень утомительная работа. Можно приобрести последние модели, такие как 3A +, 3B + или 4. Новый Raspberry Pi 3 – самый быстрый и самый популярный гаджет, выпущенный Raspberry Pi Foundation на сегодняшний день. Итак, в этом проекте мы будем использовать Raspberry Pi 3B +.
Шаг 3: Подключение периферийных устройств
После выбора Raspberry Pi мы подключим клавиатуру и мышь к Raspberry Pi. После их подключения используйте кабель HDMI для подключения Pi к телевизору. После выполнения этих подключений мы готовы двигаться дальше..
Шаг 4: Выбор операционной системы
Во-первых, нам понадобится SD-карта с соответствующей операционной системой. При выборе ОС в настоящее время существуют различные альтернативы, от «обычного» Raspbian до специализированных сред для работы с мультимедиа и даже Windows 10 IoT. Нет необходимости в большом количестве приложений, поэтому мы должны оставить центральный процессор (ЦП) и оперативную память (ОЗУ) как можно больше для приложения потоковой передачи мультимедиа. Одна из проблем заключается в том, что Arch Linux рекомендуется людям, которые достаточно хорошо разбираются в Linux. Они находятся на передовой, и мы неизбежно столкнемся с проблемами при внедрении сторонних приложений и библиотек. Таким образом, если это ваша первая установка домашнего кинотеатра, мы предлагаем выбрать Raspbian Lite . Он управляется командной строкой и может без особых усилий работать в «безголовом» режиме, т. Е. Доступен полностью удаленно через систему без необходимости в консоли или экране.
Keep источники вашего Pi обновлены, в противном случае устаревшее программное обеспечение вызовет некоторые проблемы. Включите программу просмотра виртуальных сетевых вычислений (VNC) на своем Pi, затем подключите Raspberry Pi к программе просмотра VNC. Ниже приведена ссылка для загрузки VNC и последующего подключения к Pi.
VNC Viewer
Теперь откройте терминал и выполните следующую команду:
sudo apt-get update
Затем
sudo apt-get upgrade
будут установлены многочисленные пакеты и при появлении запроса нажмите Y , а затем Enter , чтобы правильно установить их.
Шаг 6: Войдите в Raspberry Pi
Имя пользователя Raspberry Pi по умолчанию – pi, а пароль по умолчанию – raspberry. Это данные для входа по умолчанию, и при первом входе используйте эти данные для входа в Pi. Вы также можете изменить эти данные, когда захотите.
Шаг 7. Создание достаточного места в Raspbian для OpenCV
OpenCV требует большой памяти, поэтому нам нужно расширить файловую систему и выделить все пространство для карты памяти. Мы перейдем в командную строку raspberry и введем следующую команду:
sudo raspi-config
Появится окно, которое будет выглядеть так:
Теперь мы нажмем «Дополнительные параметры» и найдем там параметр «Развернуть файловую систему». Выберите этот вариант.
Мы нажмем кнопку Enter и затем нажмите кнопку Готово . На этом этапе необходимо перезагрузить Raspberry Pi, чтобы изменения вступили в силу.. Введите следующую команду, чтобы перезагрузить его:
sudo reboot
После перезагрузки мы проверим, расширилась ли наша файловая система и все ли пространство включено на SD-карту. или нет. Выполнив команду df -h , мы можем убедиться, что наш диск расширился:
Тот, кто использует карту micro SD 8 ГБ, может использовать 50% доступное пространство, поэтому удаление Wolfram Engine и LibreOffice может освободить около 1 ГБ пространства. (Помните, что этот шаг не является обязательным).
sudo apt-get purge wolfram -otorsudo apt-get purge libreoffice * sudo apt-get cleansudo apt-get autoremove
Шаг 8: Установка зависимостей
Прежде чем переходить к зависимостям, нам нужно обновить и обновить существующие пакеты, установленные на Pi:
sudo apt-get update
Затем
sudo apt-get upgrade
Теперь мы установим некоторые инструменты разработки, которые помогут нам в настройке сборки OpenCV:
sudo apt-get install build-essential cmake pkg-config
Для выполнения различных операций с изображениями нам необходимо загрузить несколько форматов изображений с жесткого диска. Эти форматы включают JPEG, PNG и т. Д. Для загрузки этих форматов изображений мы установим несколько пакетов ввода-вывода:
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
Наряду с этими пакетами ввода-вывода изображений мы также установим пакеты ввода-вывода видео. После установки этих пакетов видео мы сможем загружать различные форматы видеофайлов.
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-devsudo apt-get install libxvidcore-dev libx264 -dev
Библиотека OpenCV сопровождает подмодуль с именем highgui , который используется для отображения изображений на нашем экране и создания основных графических интерфейсов пользователя. Перед компиляцией этого подмодуля нам необходимо установить библиотеку разработки GTK:
sudo apt-get install libgtk2.0-dev libgtk-3-dev
Несколько матриц операции могут выполняться с изображением, проверяя размер изображения и затем считывая значения пикселей. Мы также можем преобразовать эти значения пикселей в двоичную форму, а затем изменить эти двоичные цифры для регенерации изображения. В raspberry pi у нас есть некоторые ограничения при вводе данных, поэтому эти библиотеки важны и должны быть установлены. Следовательно, эти результаты можно улучшить, установив некоторые дополнительные зависимости:
sudo apt-get install libatlas-base-dev gfortran
Некоторые люди будут работать над Python 2.7, а некоторые будут работать на Python 3. Для компиляции OpenCV вместе с привязками Python необходимо установить файлы заголовков Python 2.7 и Python 3:
sudo apt-get install python2.7-dev python3-dev
В новой версии Raspbian Python 3 уже установлен, и в Терминале Lx может появиться сообщение о том, что «Python 3 уже является последней версией» . Этот шаг важен, потому что мы можем столкнуться с ошибкой относительно файла заголовка с именем Python.h при выполнении команды make для компиляции OpenCV.
Шаг 9: Загрузка исходного кода OpenCV
По завершении установки зависимостей мы будем искать папку архива OpenCV версии 3.3.0 в официальном каталоге OpenCV.
cd ~ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.3.0.zipunzip opencv.zip
Мы устанавливаем весь пакет OpenCV, поэтому нам также нужно включить opencv_contrib. Загрузите его с официального сайта и затем распакуйте.
wget -O opencv_contrib.zip https://github. com/Itseez/opencv_contrib/archive/3.3.0.zipunzip opencv_contrib.zip
При загрузке этих каталогов имейте в виду, что версия OpenCV и opencv_contrib должны быть такими же, т.е. они должны быть 3.3.0, иначе во время установки будут ошибки компиляции.
Шаг 10: Python 2.7 или Python 3?
Python 2.7 с точки зрения производительности лучше, чем Python 3, но в OpenCV особой разницы нет. Перед компиляцией OpenCV нам нужно установить pip на Raspberry. Это система управления пакетами, которая используется для установки пакетов программного обеспечения, используемых в Python. Эти пакеты могут присутствовать в последней версии raspbian по умолчанию, но лучше проверить это с помощью следующих команд.
wget https://bootstrap.pypa.io/get-pip.pysudo python get-pip.pysudo python3 get-pip.py
После установки pip настоятельно рекомендуется установить два пакета, которые необходимо установить при работе с OpenCV. Первый – virtualenv, второй – virtualenvwrapper. Мы не можем импортировать OpenCV напрямую в Python, поэтому мы создадим виртуальную среду, а затем будем работать в этой среде. Виртуальная среда – это исключительный инструмент, который используется для сохранения условий, необходимых для различных проектов, в отдельных местах путем создания отдельных сред Python для каждого из них.
sudo pip install virtualenv virtualenvwrappersudo rm -rf ~ /.cache/pip
После установки этих пакетов нам нужно обновить наш файл ~/.profile , который является скрытым файлом в нашем домашнем каталоге, включив в него следующие линии в конце. Введите следующую команду, чтобы войти в каталог:
nano ~/.profile
Когда каталог открыт, прокрутите вниз и включите следующие строки:
# virtualenv и virtualenvwrapperexport WORKON_HOME = $ HOME/.virtualenvsexport VIRTUALENVWRAPPER_PYTHON =/usr/bin/python3source/usr/local/bin/virtualenvwrapper.sh
A , сохраните его, нажав Y и выйдите.
В любое время запускаем терминал, и мы входим в наш Pi, этот точечный файл будет автоматически загружен для нас. Поскольку мы уже вошли в систему, мы вручную набираем source ~/.profile , чтобы загрузить содержимое файла.
Создание виртуальной среды Python : Нам нужно создать виртуальную среду с использованием python 2.7 и python 3.
mkvirtualenv cv -p python2
Это создаст среду с именем cv на Python 2.7. Любой, кто хочет создать среду на Python 3, должен ввести команду, указанную ниже:
mkvirtualenv cv -p python3
Проверка, что мы находимся в Виртуальная среда, названная «cv»: Когда мы перезагружаем пи, мы не останемся в виртуальной среде, и нам нужно ввести две упомянутые ниже команды, чтобы перейти в режим виртуальной среды.
source ~/.profileworkon cv
Изображение ниже показывает, что мы не находимся в режиме виртуальной среды:
Итак, введя две упомянутые выше команды, мы сможем получить доступ к нашей виртуальной среде. Если мы хотим выйти из виртуальной среды, мы введем deactivate:
Установка NumPy На Raspbian: единственная зависимость, которая нам нужна для установки OpenCV на Raspberry, – это Numpy. Введите указанную ниже команду, чтобы установить Numpy на Raspberry Pi. Установка займет примерно 10 минут:
pip install numpy
Шаг 11: Компиляция и установка OpenCV
Мы скомпилируем и установим OpenCV в виртуальной среде, поэтому убедитесь, что вы работаете в виртуальной среде CV. Если мы не находимся в виртуальной среде, OpenCV не скомпилируется. Теперь измените каталог на домашний каталог, подкаталог откройте cv 3.3 , а затем создайте каталог сборки. После создания каталога сборки вставьте последние пять строк в каталог CMake . Он будет проверять определенные библиотеки, установленные пути, версии Python и т. Д.
cd ~/opencv-3.3.0/mkdir buildcd buildcmake -D CMAKE_BUILD_TYPE = RELEASE -D CMAKE_INSTALL_PREFIX = /usr/local -D INSTALL_PYTHON_EXAMPLES = ON -D OPENCV_EXTRA_MODULES_PATH = ~/opencv_contrib-3.3.0/modules -D BUILD_EXAMPLES = ON ..
Для тех, кто использует Python 2.7, они придется прокрутить до вывода CMake и будет искать раздел Python 2.7 и проверять, правильно ли настроены Numpy и пути к пакетам. Те, кто использует Python 3, проверит раздел Python 3 прямо под разделом Python 2:
Теперь , мы наконец готовы скомпилировать OpenCV. Введите команду make, и она запустит процесс компиляции. Для компиляции потребуется примерно четыре часа, поэтому предпочтительно начинать компиляцию перед сном, чтобы, когда вы просыпаетесь утром, OpenCV скомпилирован. Ввод одной команды «make» будет компилироваться с использованием только одного ядра.. Хотя это немного требует времени, но вероятность ошибок меньше. Использование команд make -j4 и make -j2 может привести к перегреву Raspberry Pi, а также к ошибкам компиляции:
make
Мы установим OpenCV 3 на Raspberry Pi с помощью следующей команды. Выполнение этой команды скопирует соответствующие файлы в их расположение:
sudo make install
Наша установка будет завершена выполнением этой последней команды:
sudo ldconfig
Теперь осталось несколько шагов, когда мы используем Python 2.7 или Python 3.
Шаг 12: Завершение установки
Вернитесь в домашний каталог, набрав
Python 3: We будет связывать привязки OpenCV с нашим cv в каталоге python 3, потому что мы скомпилировали привязки OpenCV и python для python 3.
cd ~/.virtualenvs/cv/lib/python3.5/site- packages/ln -s/usr/local/lib/python3.5/site-packages/cv2.so cv2.so
Вот и все! Теперь мы установили OpenCV на Raspberry Pi. Теперь мы проверим его в виртуальной среде.
Шаг 13: Тестирование OpenCV
Откройте LxTerminal и напишите исходный код команда, за которой следует команда workon . Когда мы вошли в режим виртуальной среды, мы импортируем привязки OpenCV, набрав python, а затем импортируем cv2. Если нет сообщения об ошибке, это означает, что он был успешно импортирован.
source ~/.profileworkon cvpython >> import cv2
После этого мы проверим наш Версия OpenCV, введя следующую команду:
cv2 .__ version__
Мы установили OpenCV на Raspberry 3B +. Теперь мы можем выполнять множество операций обработки изображений в Python, таких как обнаружение цифр, распознавание лиц и т. Д.