Установка OpenCV на Raspberry Pi с использованием CMake

В настоящее время стремительными темпами развиваются технологии компьютерного зрения (Computer Vision). Они заключаются в том, что компьютеры (машины) могут извлекать, анализировать и понимать информацию на изображениях. В последние годы технологии компьютерного зрения совершили такой существенный рывок, что теперь компьютеры могут даже распознавать эмоции на лице человека. Это достигается с помощью технологий машинного/глубокого обучения и искусственного интеллекта (deep learning/AI) – специальные алгоритмы тренируются на множестве похожих изображений, после чего они могут вычленять необходимую информацию с новых изображений. В настоящее время технологии компьютерного зрения применительно к распознаванию лиц людей стали настолько совершенными, что они находят широкое применение в системах безопасности, медицине и даже в сервисах финансовых платежей.

Внешний вид проекта по установке OpenCV на Raspberry Pi с использованием CMake

Наиболее популярной библиотекой компьютерного зрения сейчас является OpenCV. Это кросс-платформенная библиотека с открытым исходным, разработанная компанией Intel. Она может использоваться практически на любых операционных системах: Windows, mac, Linux и т.д. В данной статье мы рассмотрим установку библиотеки OpenCV4 на плату Raspberry Pi 3 с целью последующего ее использования в приложениях, в которых применяется технология компьютерного зрения.

Но сразу предупреждаем о том, что установка OpenCV на плату Raspberry Pi – это весьма трудоемкий процесс. Он занимает достаточно продолжительное время и вероятность возникновения разнообразных ошибок достаточно высока. Оригинал данной статьи (ссылка на первоисточник есть в конце статьи) написан в феврале 2019 г. и на тот момент наиболее стабильной и проверенной версией библиотеки OpenCV была версия 4.0.0. Для более современных версий библиотеки процесс ее установки может немного отличаться.

Установка OpenCV на Raspberry Pi с помощью Pip

Как вы, скорее всего знаете, язык python имеет свой собственный менеджер пакетов под названием pip, который можно использовать для добавления (импортирования) библиотек в python. С помощью pip этот процесс достаточно прост. Но, к сожалению, во многих случаях библиотека OpenCV, установленная с помощью Pip, отказывается работать. Так произошло и у авторов данной статьи. К тому же если устанавливать OpenCV с помощью Pip, то в этом случае невозможно получить полный контроль над данной библиотекой. Но если вы ищите самый простой и быстрый способ установки OpenCV на плату Raspberry Pi то, возможно, вам стоит попробовать данный способ. К тому же, может быть, на более современных (чем 4.0.0) версиях OpenCV данный способ ее установки будет работать без проблем – технологии ведь непрерывно развиваются.

В данном случае сначала убедитесь в том, что у вас на плате установлен pip самой последней версии. Затем введите следующие команды в терминале (одну за другой):

Если с помощью данного способа OpenCV успешно установилась на вашу Raspberry Pi, то следующий раздел данной статьи (про установку OpenCV с помощью CMake) можете пропустить. Если же установка окончилась неудачей, то запаситесь терпением и выполните 13 шагов, описанные в следующем разделе статьи.

Установка OpenCV на Raspberry Pi с помощью CMake

В этом способе мы будем скачивать исходный пакет (source package) OpenCV и компилировать его на нашей плате Raspberry с помощью CMake. Некоторые энтузиасты устанавливают OpenCV на виртуальную машину, в результате чего они получают возможность использования различных версий python или OpenCV на одной и той же виртуальной машине. Но авторы статьи старались максимально упростить процесс установки OpenCV на Raspberry Pi и сделать статью максимально короткой и простой, поэтому они данный способ (с использованием виртуальной машины) не рассматривали.

Для установки OpenCV на плату Raspberry Pi с помощью CMake выполните следующую последовательность шагов.

Шаг 1. Установим на плату Raspberry Pi последние обновления.

В результате выполнения данной команды на вашу плату установятся самые последние пакеты с обновлениями. Этот процесс может занять до 15-20 минут.

Процесс установки на плату Raspberry Pi последних обновлений

Шаг 2. Далее необходимо обновить еще apt-get пакет чтобы мы могли скачать CMake на следующем шаге.

Процесс обновления apt-get пакета

Шаг 3. Скачаем и установим CMake с помощью команды.

Во время установки CMake вы у себя на экране должны наблюдать примерно следующую картину:

Процесс установки CMake на плату Raspberry Pi

Шаг 4. Установим окружение (development) python 3 с помощью команды:

При этом на экране вы должны наблюдать примерно следующую картину:

Установка окружения (development) python 3

Шаг 5. Далее нам необходимо скачать Zip файл OpenCV с GitHub. Это можно сделать с помощью следующей команды:

Как видно из представленной команды, мы скачиваем версию 4.0.0 библиотеки OpenCV.

Процесс скачивания дистрибутива библиотеки OpenCV на плату Raspberry Pi

Примечание: на момент прочтения вами этой статьи, возможно, существует более надежная и стабильная версия библиотеки OpenCV чем 4.0.0, поэтому скорректируйте соответствующим образом представленную команду чтобы скачать другую версию этой библиотеки.

Шаг 6. Библиотека OpenCV содержит специальные встроенные пакеты для работы с python под названием OpenCV contrib, которые значительно упрощают некоторые вопросы разработки программного кода. Скачаем их с помощью команды:

Процесс скачивания пакетов OpenCV contrib на плату Raspberry Pi

С помощью данной команды вы скачаете в домашний каталог два zip файла с названиями “opencv-4.0.0” и “opencv-contrib-4.0.0”. Вы можете проверить их наличие в каталоге.

Шаг 7. Извлечем файлы из архива opencv-4.0.0 с помощью команды:

Процесс извлечения библиотеки OpenCV из архива

Шаг 8. Аналогичным образом извлечем файлы из архива opencv_contrib-4.0.0.

Процесс извлечения из архива файлов opencv_contrib-4.0.0

Шаг 9. Для работы OpenCV необходим инструмент под названием numpy. Установим его с помощью команды:

Процесс установки numpy на плату Raspberry Pi

Шаг 10. Теперь у нас есть два каталога с названиями “opencv-4.0.0” и “opencv_contrib-4.0.0” внутри нашего домашнего каталога. Далее нам необходимо скомпилировать библиотеку Opencv, для этого мы создадим каталог с именем “build” внутри каталога с opencv-4.0.0. Для этого выполним следующую последовательность команд:

Создание каталога build

Шаг 11. Теперь нам необходимо запустить CMake для OpenCV. Это место, где мы можем сконфигурировать OpenCV перед тем как его компилировать. Убедитесь в том, что вы находитесь в “~/opencv-4.0.0/build”. Скопируйте следующие строки кода и вставьте их в окно терминала:

Запуск CMake для OpenCV

Если все сконфигурировано без ошибок, то вы должны увидеть на экране сообщения “Configuring done” и “Generating done” как показано на следующем рисунке.

Конфигурирование CMake прошло без ошибок

Если у вас возникли ошибки, убедитесь в том, что вы написали правильный путь в команде и у вас есть каталоги с названиями “opencv-4.0.0” и “opencv_contrib-4.0.0” в домашнем каталоге.

Шаг 12. Еще раз убедитесь в том, что вы находитесь в каталоге по адресу “~/opencv-4.0.0/build” и используйте следующую команду чтобы скомпилировать OpenCV.

Процесс компиляции OpenCV на плате Raspberry Pi

Это самая трудоемкая в плане затрачиваемого времени на ее выполнение операция из всех, которые мы рассмотрели, поэтому запаситесь терпением.

После запуска представленной команды на выполнение (компиляции OpenCV) вы увидите прогресс ее выполнения в процентах. Процесс выполнения этой команды займет приблизительно 3-4 часа и когда он завершится вы увидите примерно следующий экран:

Команда “make –j4” задействует все 4 ядра платы Raspberry Pi для компиляции OpenCV. Некоторые люди на 99% процесса считают что процесс слишком долгий и завершают его.

Автор данной статьи ждал около часа, после чего он прервал процесс установки и библиотека у него не заработала. После этого он запустил команду “make –j1”, после чего библиотека OpenCV у него заработала. Если запускать команду с параметром –j1, это будет означать что для выполнения процесса компиляции будет задействовано только одно ядро платы Raspberry Pi и это займет больше времени чем запускать команду с параметром j4 – в этом случае для процесса компиляции будут задействованы все 4 ядра платы. Автор рекомендует такой вариант, что сначала запускать команду с параметром j4 в результате чего будет выполнена основная часть процесса, а оставшуюся часть можно докомпилировать с параметром j1.

Шаг 13. На этом этапе установим libopecv с помощью команды:

Процесс установки libopecv

Шаг 14. И, наконец, на заключительном этапе необходимо проверить успешно ли установилась библиотека при помощи выполнения небольшого python скрипта. Введите команду "python" и затем “import cv2” как показано на ниже приведенном рисунке. Если библиотека успешно установилась, то в результате выполнения этих команд вы не должны получить никаких ошибок.

Процесс установки библиотеки OpenCV завершен

Если все прошло успешно (без ошибок), то теперь вы можете реализовывать на основе платы Raspberry Pi любой проект с использованием библиотеки OpenCV.

Источник статьи

(Проголосуй первым!)
Загрузка...
204 просмотров


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *