Рубрики
Проекты на Raspberry Pi

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

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

Наиболее популярной библиотекой компьютерного зрения сейчас является 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 минут.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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