Как да инсталирам OpenCV на Raspberry Pi?

Трябва да извършим различни операции върху изображение, за да извлечем полезна информация от него. И така, този процес на прилагане на различни алгоритми върху изображение за получаване на желания изход се нарича Обработка на изображение . Понякога изображението на входа е размазано и ние искаме да получим данни от него. Например. Когато грабителите идват да грабят мотора или колата, те се качват най-вече на мотоциклета, а на пътищата са монтирани камери за въздух, които улавят кадрите от инцидента. Трябва да знаем регистрационния номер на това превозно средство, на което идват грабителите, и това може да стане лесно, като се използват някои алгоритми за обработка на изображения. За да извършим обработка на изображения върху определени изображения, трябва да инсталираме някои библиотеки на хардуера, който използваме. Сред тези библиотеки най-важното е OpenCV. OpenCV може да се инсталира и на компютри и микропроцесори. Raspberry Pi е микропроцесор и се използва в различни електронни проекти. След инсталирането на операционната система на Raspberry Pi можем да изпълняваме различни задачи за обработка на изображения върху нея. Инсталирането на OpenCV на 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

На пазара се предлагат няколко модела малинови пи. С изключение на малината pi zero, всеки модел може да бъде предпочитан. Това е така, защото на Pi zero настройването на мрежа е много уморителна работа. Могат да бъдат закупени най-новите модели като 3A +, 3B + или 4. Новият Raspberry Pi 3 е най-бързата и доминираща джаджа, която Raspberry Pi Foundation пусна до момента. И така, в този проект ще използваме Raspberry Pi 3B +.



Raspberry Pi 3B +



Стъпка 3: Свързване на периферните устройства

След избора на Raspberry Pi ще свържем клавиатурата и мишката към Raspberry Pi. След като ги свържете, използвайте HDMI кабела, за да свържете Pi с телевизора. След осъществяването на тези връзки сме готови да продължим по-нататък.

Стъпка 4: Избор на операционната система

Първо, ще ни трябва SD карта с подходяща операционна система. Когато избирате операционната система, в днешно време има различни алтернативи, от „конвенционален“ Raspbian до специализирани медийни работни рамки и дори Windows 10 IoT. Следователно няма нужда от много приложения, трябва да оставим централното процесорно устройство (CPU) и паметта с произволен достъп (RAM) колкото е възможно повече за приложението за медийно стрийминг. Един проблем е, че Arch Linux се препоръчва за хора, които имат доста знания за Linux. Те са много отпред и ние непременно ще продължим да срещаме проблеми при въвеждането на приложения и библиотеки на трети страни. По този начин, ако това е първото ви заведение за домашно кино, предлагаме да изберете Raspbian Lite . Той се управлява от командния ред и може без голяма част от участъка, предназначен да продължи да работи в режим „без глава“, т.е.достъп до него изцяло дистанционно през системата без изискване за конзола или екран.

Raspbian Lite



Стъпка 5: Уверете се, че Raspberry Pi е актуална

Поддържайте актуализираните източници на вашия Pi в противен случай, остарелият софтуер ще причини някои проблеми. Активирайте визуализатора за виртуални мрежови изчисления (VNC) на вашия Pi, след което свържете вашия Raspberry Pi с VNC визуализатора. Връзката е предоставена по-долу за изтегляне на VNC и след това свързване с Pi.

VNC Viewer

Сега отворете терминала и изпълнете следната команда:

sudo apt-get update

Тогава,

sudo apt-get ъпгрейд

Ще бъдат инсталирани множество пакети и при поискване натиснете И и тогава Въведете за да ги инсталирате правилно.

Стъпка 6: Влезте в Raspberry Pi

Потребителското име по подразбиране на Raspberry Pi е пи, и паролата по подразбиране е малина. Това са данните за вход по подразбиране и при първото си влизане използвайте тези данни, за да влезете в pi. Можете също да промените тези подробности, когато пожелаете.

Влезте в Raspberry Pi

Стъпка 7: Създаване на достатъчно пространство на Raspbian за OpenCV

OpenCV придобива голяма памет, така че трябва да разширим файловата система и да разпределим цялото пространство на картата с памет. Ще отидем в командния ред на малината и ще напишем следната команда:

sudo raspi-config

Ще се появи прозорец и той ще изглежда така:

Инструмент за конфигуриране

Сега ще щракнем върху Разширени опции и там ще намерим опция „Разширяване на файловата система“. Изберете тази опция.

Разгънете Файлова система

Ще натиснем Въведете и след това натиснете завършек бутон. На този етап нашата Raspberry Pi трябва да бъде рестартирана, за да влязат в сила промените. Въведете следната команда, за да я рестартирате:

sudo рестартиране

След рестартиране ще проверим дали нашата файлова система се е разширила и дали цялото пространство е включено в SD картата или не. Чрез изпълнение df -h команда можем да проверим дали нашият диск се е разширил:

Този, който използва 8GB micro SD карта, може да използва 50% от наличното пространство, така че изтриването Двигател Wolfram и LibreOffice може да освободи около 1 GB пространство. (Не забравяйте, че тази стъпка не е задължителна).

судоподходящ-вземете прочистваневълкрам-двигател судоподходящ-вземете прочистванеlibreoffice* судоподходящ-вземете чисти судоподходящ-вземете автоматично премахване

Стъпка 8: Инсталиране на зависимости

Преди да преминем към и зависимостите, трябва да актуализираме и надградим съществуващите пакети, които са инсталирани на Pi:

sudo apt-get update

Тогава,

sudo apt-get ъпгрейд

Сега ще инсталираме някои разработващи инструменти, които ще ни помогнат при конфигурирането на OpenCV build:

судоподходящ-вземете Инсталирайизграждане-от съществено значениеcmakepkg-конфиг

За да извършим различните операции върху изображения, трябва да заредим няколко формата изображения от твърдия диск. Тези формати включват JPEG, PNG и др. За зареждане на тези формати на изображения ще инсталираме някои I / O пакети:

судоподходящ-вземетеИнсталирайlibjpeg-разработчикlibtiff5-разработчикlibjasper-разработчикlibpng12-разработчик

Заедно с тези I / O пакети за изображения ще инсталираме и видео I / O пакети. След инсталирането на тези видео пакети ще можем да заредим различни формати на видео файлове.

судоподходящ-вземете Инсталирайlibavcodec-разработчикlibavformat-разработчикlibswscale-разработчикlibv4l-разработчик судоподходящ-вземете Инсталирайlibxvidcore-разработчикlibx264-разработчик

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

судоподходящ-вземете Инсталирайlibgtk2.0-разработчикlibgtk-3-разработчик

Няколко матрични операции могат да бъдат изпълнени върху изображение, като се провери размерът на изображението и след това се отчетат стойностите на пикселите. Също така можем да преобразуваме тези пикселни стойности в двоична форма и след това да модифицираме тези двоични цифри, за да регенерираме изображение. В Raspberry pi имаме някои ограничения при предоставяне на вход, поради което тези библиотеки са важни и трябва да бъдат инсталирани. Следователно тези резултати могат да бъдат подобрени чрез инсталиране на някои допълнителни зависимости:

судоподходящ-вземете Инсталирайлибатлас-база-разработчикgfortran

Някои хора ще работят на Python 2.7, а други ще работят на Python 3. Заглавните файлове на Python 2.7 и Python 3 трябва да бъдат инсталирани за компилиране на OpenCV заедно с обвързването на Python:

судоподходящ-вземете Инсталирайpython2.7-разработчикpython3-разработчик

В новата версия на Raspbian Python 3 вече е инсталиран и на терминала Lx може да се появи съобщение, че „Python 3 вече е най-новата версия“ . Тази стъпка е важна, защото можем да се сблъскаме с грешка по отношение на заглавния файл, наречен като Python.h докато изпълнявате командата направи да компилира OpenCV.

Стъпка 9: Изтегляне на изходния код на OpenCV

Тъй като приключихме с инсталирането на зависимостите, ще потърсим архивната папка на OpenCV версия 3.3.0 от официалната директория на OpenCV.

CD ~ wget -ИЛИ opencv.zip https://github/Itseez/opencv/архив/3.3.0.zip разархивирайтеopencv.zip

Инсталираме целия пакет на OpenCV, така че трябва да включим opencv_contrib както добре. Изтеглете го от официалния сайт и след това го разархивирайте.

wget -ИЛИ opencv_contrib.zip https://github/Itseez/opencv_contrib/архив/3.3.0.zip разархивирайтеopencv_contrib.zip

Докато изтегляте тези директории, имайте предвид едно нещо, че версията на OpenCV и opencv_contrib трябва да са еднакви, т.е. трябва да са 3.3.0, в противен случай ще има грешки при компилирането по време на инсталацията.

Стъпка 10: Python 2.7 или Python 3?

Ефективният python 2.7 е по-добър от python 3, но в OpenCV няма голяма разлика. Трябва да инсталираме пип на Raspberry преди компилиране на OpenCV. Това е система за управление на пакети, която се използва за инсталиране на софтуерните пакети, които се използват в Python. Тези пакети може да присъстват в най-новия raspbian по подразбиране, но е по-добре да го проверите, като използвате следните команди.

wgethttps://bootstrap.pypa.I/вземете-пип.py судопитонвземете-пип.py судоpython3вземете-пип.py

След инсталирането на pip два пакета са силно препоръчителни и трябва да бъдат инсталирани, докато работите с OpenCV. Първият е virtualenv, а вторият virtualenvwrapper. Не можем да импортираме OpenCV директно в Python, така че ще създадем виртуална среда и ще работим в тази среда. Виртуалната среда е изключителен инструмент, който се използва за поддържане на условията, изисквани от различни проекти, на отделни места чрез създаване на отделни Python среди за всеки един от тях.

судопипИнсталирайvirtualenvvirtualenvwrapper судоrm -rf ~/.cache/пип

След инсталирането на тези пакети трябва да актуализираме нашия ~/.профил файл, който е скритият файл в нашата домашна директория, за да включва следните редове в края му. Въведете следната команда, за да влезете в директорията:

нано~/.профил

Когато директорията се отвори, превъртете надолу и включва следните редове:

# virtualenv и virtualenvwrapper износWORKON_HOME=$ НАЧАЛО/.virtualenvs износVIRTUALENVWRAPPER_PYTHON=/usr/съм/python3 източник /usr/местни/съм/virtualenvwrapper.sh

След като включите тези редове, натиснете ctrl + x, запазете го, като натиснете И и излезте.

Начална директория

Всеки път, когато стартираме терминала и влезем в нашия Pi, този точков файл ще бъде автоматично зареден за нас. Тъй като вече сме влезли, бихме въвели ръчно източник ~ / .profile за да заредите съдържанието на файла.

Създаване на виртуална среда на Python: Трябва да създадем виртуална среда, използвайки python 2.7 и python 3.

mkvirtualenvcv -стр python2

Това ще създаде среда с име cv на Python 2.7. Всеки, който иска да създаде среда на Python 3, трябва да напише командата, спомената по-долу:

mkvirtualenvcv -стр python3

Проверка, че се намираме във виртуалната среда, наречена „cv“: Когато рестартираме pi, няма да останем във виртуална среда и трябва да напишем две команди, споменати по-долу, за да преминем в режим на виртуална среда.

източник ~/.profile работя върхуcv

Картината по-долу показва, че не сме в режим на виртуална среда:

LxTerminal

Така че, като напишем двете команди, споменати по-горе, ще имаме достъп до нашата виртуална среда. Ако искаме да напуснем виртуалната среда, ще напишем деактивиране:

Работа във виртуална среда

Инсталиране на NumPy на Raspbian: Единствената зависимост, която трябва да инсталираме OpenCV на Raspberry, е Numpy. Въведете командата, спомената по-долу, за да инсталирате Numpy на Raspberry Pi. Инсталирането ще отнеме около 10 минути:

пипИнсталирайnumpy

Стъпка 11: Компилиране и инсталиране на OpenCV

Ние ще компилираме и инсталираме OpenCV във виртуалната среда, така че се уверете, че работите във виртуалната среда за CV. Ако не сме във виртуалната среда, OpenCV няма да успее да се компилира. Сега променете директорията на домашна директория, поддиректория отворен cv 3.3 и след това направете директорията за изграждане. След като направите директорията за изграждане, поставете последните пет реда в CMake директория. Той ще проверява за определени библиотеки, зададени пътища, версии на python и т.н.

CD ~/opencv-3.3.0/ mkdir изграждане CD изграждане cmake -д CMAKE_BUILD_TYPE=ОСВОБОЖДАВАНЕ  -д CMAKE_INSTALL_PREFIX=/usr/местни  -д INSTALL_PYTHON_EXAMPLES=НА  -д OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/модули  -д BUILD_EXAMPLES=НА ..

За тези, които използват Python 2.7, те ще трябва да превъртат до изхода CMake и ще потърсят Python 2.7 раздел и ще видят дали Numpy и пътищата на пакетите са конфигурирани правилно. За тези, които използват Python 3, ще проверят раздела python 3 точно под раздела Python 2:

Проверка на Python 2.7 Раздел

Сега най-накрая сме готови да компилираме OpenCV. Напишете make command и тя ще стартира процеса на компилация. Следователно ще отнеме приблизително четири часа, за предпочитане е компилацията да започне преди да заспите през нощта, така че когато се събудите сутрин, OpenCV да се компилира. Въвеждането на една команда “make” ще се компилира, използвайки само едно ядро. Въпреки че процесът отнема малко време, но има по-малка вероятност от грешки. Използването на командата make -j4 и make -j2 може да доведе до прегряване на Raspberry Pi и може да доведе до грешки при компилацията:

направи

Компилацията завършена

Ще инсталираме OpenCV 3 на Raspberry Pi, като използваме следната команда. Изпълнението на тази команда ще копира съответните файлове на техните места:

sudo make install

Нашата инсталация ще бъде завършена чрез изпълнение на тази последна команда:

судоldconfig

Остават няколко стъпки сега, когато използваме Python 2.7 или Python 3.

Стъпка 12: Завършване на инсталацията

Върнете се в началната директория, като напишете cd ~.

Python 3: Ще свържем символично свързването на OpenCV в нашата cv в директорията на python 3, защото сме компилирали свързването на OpenCV и python за python 3.

CD ~/.virtualenvs/cv/lib/python3.5/сайт-пакети/ ln -с /usr/местни/lib/python3.5/сайт-пакети/cv2.така cv2.така

Това е!. Сега инсталирахме OpenCV на Raspberry Pi. Сега ще проверим за него във виртуалната среда.

Стъпка 13: Тестване на OpenCV

Отворете LxTerminal и напишете източник команда, последвана от работя върху команда. Тъй като сме влезли в режим на виртуална среда, ще импортираме свързвания на OpenCV, като напишем python и след това импортираме cv2. Ако няма съобщение за грешка, това означава, че е импортирано успешно.

източник ~/.profile работя върхуcv питон >>вносcv2

След това ще проверим нашата версия на OpenCV, като напишем следната команда:

cv2.__ версия__

Тестване]

Инсталирахме OpenCV на Raspberry 3B +. Сега можем да изпълняваме множество операции по обработка на изображения в Python като Откриване на цифри, Разпознаване на лица и др.