Подготовка ПК для работы с компьютерным зрением
Для решения наших задач и работы с компьютерным зрением мы используем язык программирования Python.
Сам по себе компьютер не умеет работать с программным кодом, написанном на Python, поэтому необходимо установить программу, которая будет выполнять созданные нами файлы. Такая программа называется интерпретатор.

Если для написания программы необходимо использовать нестандартную библиотеку (например, OpenCV), то её нужно установить вместе с интерпретатором. Мы рекомендуем использовать Anaconda Navigator, поскольку он обладает удобным визуальным интерфейсом импорта библиотек.
Важно понимать, что:
Python — это и язык программирования, и интерпретатор
OpenCV — это библиотека языка Python. Её нужно устанавливать к интерпретатору
PyCharm — это среда программирования, она создана специально для удобного написания программ на языке Python
Anaconda — это дистрибутив языка Python, т.е. программа, которая установит итерпретатор Python и наиболее популярные библиотеки к нему. Ещё Анаконда установит графический менеджер пакетов, Anaconda Navigator. Он позволяет наиболее простым способом установить дополнительные библиотеки для Python
Наша цель — установить на компьютер:
1. интерпретатор Python
2. библиотеку OpenCV версии 3.1.1 или старше
3. среду программирования PyCharm

Именно в таком порядке.
Внимание!
Прежде чем начинать устанавливать Python и PyCharm, нужно убедиться, что они уже не установлены.
Для этого:
1. Нажимаем "Пуск" и переходим в "Параметры"
2. Выбираем "Приложения"
3. В появившемся списке установленных программ ищем Anaconda, Pycharm, Python и удаляем, если находим
4. Перезагружаем компьютер
Установка Anaconda
Переходим на сайт разработчика, выбираем версию под Python 3+, необходимую разрядность компьютера, скачиваем установщик и запускаем его.

Далее соглашаемся с условиями Лицензионного соглашения (I Agree), выбираем установку для всех пользователей (All users и Next), соглашаемся с предложенным по умолчанию путём установки.

При выборе продвинутых опций устанавливаем обе галочки, как на скриншоте справа. Установку Microsoft VSCode пропускаем.

Установка OpenCV
Возможны различные способы установки OpenCV. В зависимости от операционной системы и её настроек некоторые из них могут не работать. В этом случае следует использовать тот способ, который ещё не пробовали. К сожалению, предугадать это совершенно невозможно...
Способ 1. Используем Anaconda Navigator
Когда процесс установки завершится, нужно проверить, установились ли наша библиотека.

Для этого щёлкаем левой кнопкой на значок "Play" и в появившемся меню выбираем пункт "Open with Python"
Откроется командная строка с интерпретатором Python.
1. Пишем "import cv2", нажимаем Ввод.
На следующей строке должны появиться три знака "больше" (">>>").
2. Пишем "print (cv2.__version__)" и нажимаем Ввод.
На следующей строке должна появиться версия нашей библиотеки.
Если всё верно, значит библиотека установилась успешно. Закрываем командную строку, выключаем Anaconda Navigator и приступаем у Установке PyCharm.
Если что-то пошло не так, то нужно попробовать установить библиотеку OpenCV другим способом.
Способ 2. Используем командную строку и "pip"
Pip — это одна из программ, предназначенных для установки библиотек к Python
Когда процесс установки завершится, нужно проверить, установились ли наша библиотека. Делаем это точно также, как и при предыдущем способе установки.
Установка OpenCV 4 на Raspberry Pi 4 и Raspbian Buster.
Вы узнаете, как установить OpenCV 4 на Raspbian Buster двумя методами:

1. Простой метод pip-install (который может быть выполнен за считанные минуты)

2. Компиляция из исходного кода (это займет больше времени, но даст вам доступ к полной, оптимизированной установке OpenCV)

Как только у вас будет готовое оборудование, вам нужно будет прошить свежую копию операционной системы Raspbian Buster на карту microSD.

1. Перейдите на официальную страницу загрузки BusterOS ( рисунок 2 ) и начните загрузку. Я рекомендую «Raspbian Buster с рабочим столом и рекомендуемое программное обеспечение» .

2. Скачайте Win32DiskImager - программу для прошивки карт памяти. Работает на всех основных ОС.

3. Используйте Win32DiskImager для прошивки BusterOS на карту памяти

После загрузки .img-файла Raspbian Buster вы можете перенести его на карту micro-SD с помощью Win32DiskImager.


Шаг № 1: Расширить файловую систему и освободить пространство

Условия:

1. Свежая версия Raspbian Buster

2. Базовые навыки работы командной строкой и средой Unix.

3. Установлено соединение SSH или VNC на вашей Raspberry . В качестве альтернативы вы можете использовать клавиатуру + мышь + экран.

Вставьте ваш microSD в Raspberry Pi и загрузите его с прикрепленным экраном.

После загрузки настройте параметры Wi-Fi / Ethernet для подключения к Интернету (для загрузки и установки необходимых пакетов для OpenCV вам потребуется подключение к Интернету).

Первым шагом является запуск, raspi - конфигурации и расширение файловой системы

Выбираем пункт 7
Затем выберите «Расширить файловую систему А1» :
При появлении запроса вы должны выбрать первый вариант, «A1 Expand File System» , нажать Enter на клавиатуре, стрелку вниз до кнопки «<Finish>» , а затем перезагрузить Raspberry:
После перезагрузки ваша файловая система должна была быть расширена, чтобы включить все доступное пространство на вашей карте micro-SD. Вы можете убедиться, что диск был расширен, выполнив команду df - h и проверив вывод:
Шаг № 2: Установка зависимостей

Следующие команды обновят все существующие пакеты с последующей установкой зависимостей, библиотек ввода-вывода и пакетов оптимизации для OpenCV:

Первым шагом является обновление любых существующих пакетов:

Затем нам нужно установить инструменты разработчика, включая CMake , который помогает нам настроить процесс сборки OpenCV:

Далее нам нужно установить несколько пакетов ввода / вывода изображения, которые позволяют нам загружать файлы различных форматов с диска. Примеры таких форматов файлов включают JPEG, PNG, TIFF и т. д.:

Так же, как нам нужны пакеты ввода / вывода изображения и пакеты ввода / вывода видео. Эти библиотеки позволяют нам читать различные форматы видеофайлов с диска, а также работать напрямую с видеопотоками:

Библиотека OpenCV поставляется с субмодулем с именем highgui, который используется для отображения изображений на нашем экране и создания основных графических интерфейсов. Чтобы скомпилировать модуль highgui , нам нужно установить библиотеку разработки GTK и необходимые условия:

Многие операции внутри OpenCV (а именно матричные операции) могут быть дополнительно оптимизированы путем установки нескольких дополнительных зависимостей:

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

Следующие условия предназначены для шага # 4a, и шага # 4b . Они предназначены для наборов данных HDF5 и графических интерфейсов Qt:

Теперь установим заголовочные файлы Python 3, чтобы мы могли скомпилировать OpenCV с привязками Python:

Если вы работаете с новой ОС, возможно, что эти версии Python уже находятся в самой последней версии (вы увидите сообщение терминала с указанием).

Шаг № 3: Создайте виртуальную среду Python и установите NumPy

Виртуальная среда Python - это изолированная среда разработки / тестирования / производства в вашей системе - она полностью изолирована от других сред. Лучше всего то, что вы можете управлять пакетами Python внутри вашей виртуальной среды с помощью pip (менеджер пакетов Python).

Вы можете установить pip с помощью следующих команд:

Давайте теперь установим virtualenv и virtualenvwrapper:
После того, как будут установлены virtualenv и virtualenvwrapper, откройте файл ~ / .bashrc:
… И добавьте следующие строки в конец файла:
Сохранить и выйти через Ctrl + X , Y , ENTER .

Оттуда перезагрузите файл ~ / .bashrc, чтобы применить изменения к текущей сессии bash:
Затем создайте виртуальную среду Python 3:
Здесь мы создаем виртуальную среду Python с именем cv, используя Python 3. В дальнейшем рекомендуем Python 3 с OpenCV 4+.

Примечание: Python 2.7 завершит свою работу 1 января 2020 года, поэтому не рекомендуем использовать Python 2.7.

Шаг № 4 (а или б): Решите, хотите ли вы быструю установку в течение 1 минуты или полную установку в течение 2 часов

1. Шаг # 4a: pip install OpenCV 4: На сегодняшний день это самый быстрый и простой способ установки OpenCV. Рекомендем этот метод для 90% людей, особенно для начинающих . После этого шага вы перейдете к шагу № 5, чтобы проверить вашу установку.

2. Шаг # 4b: Компиляция OpenCV 4 из исходного кода: этот метод дает вам полную установку OpenCV 4. Это займет 2-4 часа в зависимости от процессора вашего Raspberry Pi.

Шаг № 4а: установка pip OpenCV 4

За считанные секунды вы можете установить OpenCV в виртуальную среду cv :

Это действительно все, что нужно сделать. Вы можете перейти к шагу № 5 сейчас, чтобы проверить свою установку.

Шаг # 4b: Компиляция OpenCV 4 из исходного кода

Эта опция устанавливает полную установку OpenCV, включая запатентованные («несвободные») алгоритмы.

Примечание. Не выполняйте шаг № 4b, если выполняли шаг № 4а.

Давайте продолжим и загрузим исходный код OpenCV для репозиториев opencv и opencv_contrib , а затем разархивируем их:

Увеличение пространства SWAP

Перед началом компиляции вы должны увеличить пространство SWAP. Увеличение SWAP позволит вам скомпилировать OpenCV со всеми четырьмя ядрами Raspberry Pi без зависания компиляции из-за исчерпания памяти).

Откройте файл / etc / dphys - swapfile :

… А затем отредактируйте переменную CONF_SWAPSIZE :
Обратите внимание, что я увеличиваю объем подкачки со 100 МБ до 1024 МБ. Это очень важно для компиляции OpenCV с несколькими ядрами в Raspbian Buster.

Сохранить и выйти через Ctrl + X , Y , ENTER .

Если вы не увеличиваете SWAP, очень вероятно, что ваш Pi будет зависать во время компиляции.

Оттуда перезапустите сервис подкачки:

Install OpenCV4 on Raspberry Pi 4 and Raspbian Buster

Shell

Примечание. Увеличение размера свопа - отличный способ сжечь карту Raspberry Pi microSD. Память на основе флэш-памяти имеет ограниченное количество операций записи, которые вы можете выполнять до тех пор, пока карта по существу не сможет больше удерживать 1 и 0. Мы будем разрешать большой обмен только в течение короткого периода времени, так что это не имеет большого значения. Независимо от этого, обязательно сделайте резервную копию вашего .img файла после установки OpenCV + Python на тот случай, если ваша карта неожиданно рано умирает. Вы можете узнать больше о больших размерах подкачки карт памяти на этой странице .

Скомпилируйте и установите OpenCV 4 на Raspbian Buster

Теперь мы готовы скомпилировать и установить полную оптимизированную библиотеку OpenCV на Raspberry Pi 4.

Убедитесь, что вы находитесь в виртуальной среде cv, используя команду workon :

Затем продолжайте и установите NumPy (зависимость OpenCV) в виртуальную среду Python:
И оттуда настройте свою сборку:
Вот четыре флага CMake, на которые хотелoсь бы обратить ваше внимание:

(1) NEON и (2) флаги оптимизации VFPv3 были включены. Эти строки гарантируют, что вы соберете самый быстрый и самый оптимизированный OpenCV для процессора ARM на Raspberry Pi ( строки 7 и 8 ).

! Примечание: Raspberry Pi Нулевой W оборудование не совместимо с NEON или VFPv3. Обязательно удалите строки 7 и 8, если вы компилируете для Raspberry Pi Zero W.

(3) Запатентованные «несвободные» алгоритмы дают вам полную установку OpenCV ( строка 11 ).

И, детализировав исходный код OpenCV, было определено, что нам нужен флаг ( 4) - latomic shared linker ( строка 12 ).

Я хотел бы сейчас уделить немного времени, чтобы привлечь внимание к общей ловушке для начинающих:

В терминале выше вы меняете каталоги на ~ / opencv / .

Затем вы создаете в нем каталог build / и меняете в него каталоги.

Если вы попытаетесь выполнить CMake, не находясь в каталоге ~ / opencv / build , CMake потерпит неудачу. Попробуйте запустить pwd, чтобы увидеть, в каком рабочем каталоге вы находитесь, прежде чем запускать cmake .

Команда cmake будет выполняться в течение 3-5 минут, поскольку она готовит и настраивает OpenCV для компиляции.

Когда CMake завершит работу, обязательно проверьте вывод CMake в разделе Python 3:
Обратите внимание, как правильно установлены переменные пути Interpreter , Libraries , numpy и packages . Каждый из них относится к нашей виртуальной среде cv .

Теперь перейдите и прокрутите вверх, чтобы убедиться, что «Несвободные алгоритмы» установлены для установки:
Как видите, «Несвободные алгоритмы» для OpenCV 4 будут скомпилированы + установлены.

Теперь, когда мы подготовились к нашей компиляции OpenCV 4, пришло время запустить процесс компиляции, используя все четыре ядра:
Запуск make может занять от 1 до 4 часов в зависимости от вашего оборудования Raspberry Pi (это руководство совместимо с Raspberry Pi 3B, 3B + и 4). Raspberry Pi 4 самый быстрый на момент написания этой статьи.

Предполагая, что OpenCV скомпилирован без ошибок (как на моем скриншоте выше), вы можете установить оптимизированную версию OpenCV на Raspberry Pi:
Сбросить ваш своп

Не забудьте вернуться к файлу / etc / dphys - swapfile и:

1. Сбросьте CONF_SWAPSIZE до 100 МБ.

2. Перезапустите сервис подкачки.

Сим-ссылка на ваш OpenCV 4 на Raspberry Pi

Символьные ссылки - это способ указания из одного каталога в файл или папку в другом месте вашей системы. Для этого подэтапа мы будем символически связывать cv2 . так привязки в вашей виртуальной среде cv .

Давайте приступим к созданию нашей символической ссылки. Обязательно используйте «завершение табуляции» для всех путей ниже (вместо того, чтобы копировать эти команды вслепую):
Имейте в виду, что точные пути могут измениться, и вы должны использовать «завершение табуляции» .

Шаг 5: Тестирование установки OpenCV 4 Raspberry Pi BusterOS

Для быстрой проверки работоспособности откройте виртуальную среду cv , запустите оболочку Python и попытайтесь импортировать библиотеку OpenCV:

Поздравляем! Вы только что установили OpenCV 4 на Raspberry Pi.
Настройка PyСharm
Теперь в основной рабочей области, появилась вкладка с названием нашего файла.
Проверяем, что всё работает. Для этого набираем

"import cv2
print (cv2.__version__)"

и нажимаем левой клавишей по рабочей области, выбираем пункт "Run"
Если всё работает корректно, то в области внизу экрана появятся выходные данные: версия установленной библиотеки OpenCV.

Если всё заработало, значит пора приступать к просмотру обучающего курса и написанию более серьёзных программ.

Если остались какие-то сложности, пишите нам на support@asrobotics.ru, мы всегда подскажем!
Установка PyСharm
Установка библиотеки dlib
Переходим на сайт.
В строке поиска вводим dlib.
Установка библиотеки pyqt5
Переходим на сайт>>
Другие полезные программы

  1. LabelImg - это инструмент для аннотирования графических изображений, открыть сайт>>
  2. Putty - Для удалённого управления Paspberry будем использовать программу Putty, скачать и установить.