Jak zainstalować OpenCV na Raspberry Pi?

Musimy wykonać różne operacje na obrazie, aby wydobyć z niego przydatne informacje. Tak więc nazywa się ten proces stosowania różnych algorytmów na obrazie w celu uzyskania pożądanego wyniku Przetwarzanie obrazu . Czasami obraz na wejściu jest rozmyty i chcemy uzyskać z niego dane. Na przykład. Kiedy rabusie przychodzą, aby porwać rower lub samochód, przeważnie jadą na rowerze, a na drogach zainstalowane są kamery, które rejestrują incydent. Musimy znać numer rejestracyjny tego pojazdu, którym przyjeżdżają złodzieje i można to łatwo zrobić za pomocą niektórych algorytmów przetwarzania obrazu. Aby wykonać przetwarzanie obrazu na niektórych obrazach, musimy zainstalować niektóre biblioteki na używanym sprzęcie. Wśród tych bibliotek najważniejszy jest OpenCV. OpenCV można również zainstalować na komputerach PC i mikroprocesorach. Raspberry Pi jest mikroprocesorem i jest używany w różnych projektach elektronicznych. Po zainstalowaniu systemu operacyjnego na Raspberry Pi możemy wykonywać na nim różne zadania przetwarzania obrazu. Instalacja OpenCV na Raspberry Pi to długie i gorączkowe zadanie. W tym artykule dowiemy się, jak zainstalować OpenCV na Raspberry Pi, aby wykonywać na nim różne operacje przetwarzania obrazu.



Wykrywanie twarzy z OpenCV zainstalowanym na Raspberry Pi

Jak skonfigurować Raspberry Pi i skonfigurować na nim OpenCV?

Teraz przejdźmy do konfiguracji Pi i wykonywania operacji opisanych w sekcji krok po kroku, aby zainstalować na nim OpenCV. Instalacja OpenCV na Pi jest długim procesem i zajmuje około 4 godzin, więc jeśli masz mało czasu, nie rozpoczynaj instalacji, zapoznaj się z tym samouczkiem, gdy jesteś wolny. Wraz z tym Pi jest podgrzewany po włączeniu NA przez długi czas i wykonywane są na nim zabiegi, dlatego podczas pracy przechowuj go w chłodnym miejscu.



Krok 1: Użyte komponenty

  • Zestaw Raspberry Pi 3B +
  • Telewizor z portem HDMI
  • Kabel HDMI
  • Przewodowa mysz komputerowa

Krok 2: Wybór modelu Raspberry Pi

Na rynku dostępnych jest kilka modeli raspberry pi. Z wyjątkiem raspberry pi zero, preferowany może być dowolny model. Dzieje się tak, ponieważ na Pi zero tworzenie sieci jest bardzo męczącą pracą. Można kupić najnowsze modele, takie jak 3A +, 3B + lub 4. Nowy Raspberry Pi 3 to najszybszy i najbardziej dominujący gadżet, jaki do tej pory wydała Fundacja Raspberry Pi. Tak więc w tym projekcie użyjemy Raspberry Pi 3B +.



Raspberry Pi 3B +



Krok 3: Podłączanie urządzeń peryferyjnych

Po wybraniu Raspberry Pi podłączymy klawiaturę i mysz do Raspberry Pi. Po ich podłączeniu użyj kabla HDMI do połączenia Pi z telewizorem. Po wykonaniu tych połączeń możemy przejść dalej.

Krok 4: Wybór systemu operacyjnego

Po pierwsze będziemy potrzebować karty SD z odpowiednim systemem operacyjnym. Wybierając system operacyjny, obecnie istnieją różne alternatywy, od „konwencjonalnego” Raspbiana po ramy pracy z dedykowanymi mediami, a nawet Windows 10 IoT. Nie ma potrzeby korzystania z wielu aplikacji, dlatego dla aplikacji do strumieniowego przesyłania multimediów powinniśmy zostawić jednostkę centralną (CPU) i pamięć o dostępie swobodnym (RAM). Jednym z problemów jest to, że Arch Linux jest zalecany dla osób, które mają dość dużą wiedzę na temat Linuksa. Są na pierwszej linii frontu i jesteśmy zobowiązani napotykać problemy podczas wprowadzania aplikacji i bibliotek innych firm. Dlatego jeśli jest to Twoja pierwsza instalacja kina domowego, sugerujemy wybranie Raspbian Lite . Jest sterowany z wiersza poleceń i bez większego wysiłku może działać w trybie „bezgłowym”, tj. Można uzyskać do niego dostęp całkowicie zdalnie przez system bez konieczności posiadania konsoli ani ekranu.

Raspbian Lite



Krok 5: Upewnij się, że Raspberry Pi jest aktualne

Aktualizuj źródła swojego Pi, w przeciwnym razie przestarzałe oprogramowanie spowoduje pewne problemy. Włącz przeglądarkę Virtual Network Computing (VNC) na swoim Pi, a następnie połącz Raspberry Pi z przeglądarką VNC. Link znajduje się poniżej do pobrania VNC, a następnie połączenia go z Pi.

Przeglądarka VNC

Teraz otwórz terminal i uruchom następujące polecenie:

sudo apt-get update

Następnie,

sudo apt-get upgrade

Liczne pakiety zostaną zainstalowane i na żądanie naciśnij I i wtedy Wchodzić prawidłowo je zainstalować.

Krok 6: Zaloguj się do Raspberry Pi

Domyślna nazwa użytkownika Raspberry Pi to Liczba Pi, a domyślne hasło to malina. Są to domyślne dane logowania i przy pierwszym logowaniu użyj tych danych, aby zalogować się do pi. Możesz zmienić te szczegóły, kiedy tylko chcesz.

Zaloguj się do Raspberry Pi

Krok 7: Tworzenie wystarczającej ilości miejsca na Raspbian dla OpenCV

OpenCV zyskuje dużą pamięć, więc musimy rozszerzyć system plików i przydzielić całe miejsce na karcie pamięci. Przejdziemy do wiersza poleceń maliny i wpiszemy następujące polecenie:

sudo raspi-config

Pojawi się okno i będzie wyglądać następująco:

Narzędzie konfiguracyjne

Teraz klikniemy Opcje zaawansowane i tam znajdziemy opcję „Rozwiń system plików”. Wybierz tę opcję.

Rozwiń system plików

Naciśniemy Wchodzić a następnie naciśnij koniec przycisk. Na tym etapie nasze Raspberry Pi musi zostać ponownie uruchomione, aby zmiany zaczęły obowiązywać. Wpisz następujące polecenie, aby go ponownie uruchomić:

sudo reboot

Po ponownym uruchomieniu sprawdzimy, czy nasz system plików się rozszerzył i całe miejsce znajduje się na karcie SD, czy nie. Wykonując df -h polecenie możemy sprawdzić, czy nasz dysk się rozszerzył:

Ten, kto używa karty micro SD o pojemności 8 GB, może wykorzystywać 50% dostępnego miejsca, więc usuwanie Silnik Wolframa i LibreOffice może zwolnić około 1 GB miejsca. (Pamiętaj, że ten krok jest opcjonalny).

sudotrafny-dostać oczyścićwolfram-silnik sudotrafny-dostać oczyścićlibreoffice* sudotrafny-dostać czysty sudotrafny-dostać autorove

Krok 8: Instalowanie zależności

Przed przejściem i zależnościami musimy zaktualizować i zaktualizować istniejące pakiety, które są zainstalowane na Pi:

sudo apt-get update

Następnie,

sudo apt-get upgrade

Teraz zainstalujemy kilka narzędzi programistycznych, które pomogą nam w konfiguracji kompilacji OpenCV:

sudotrafny-dostać zainstalowaćbudować-kluczowycmakeopak-config

Aby wykonać różne operacje na obrazach, musimy załadować kilka formatów obrazów z dysku twardego. Te formaty obejmują JPEG, PNG itp. Aby załadować te formaty obrazów, zainstalujemy kilka pakietów I / O:

sudotrafny-dostaćzainstalowaćlibjpeg-devlibtiff5-devlibjasper-devlibpng12-dev

Wraz z pakietami I / O obrazów zainstalujemy również pakiety I / O wideo. Po zainstalowaniu tych pakietów wideo będziemy mogli załadować różne formaty plików wideo.

sudotrafny-dostać zainstalowaćlibavcodec-devlibavformat-devlibswscale-devlibv4l-dev sudotrafny-dostać zainstalowaćlibxvidcore-devlibx264-dev

Biblioteka OpenCV towarzyszy podmodułowi o nazwie highgui który jest używany do wyświetlania obrazów na naszym ekranie i tworzenia podstawowych GUI. Przed skompilowaniem tego podmodułu musimy zainstalować bibliotekę programistyczną GTK:

sudotrafny-dostać zainstalowaćlibgtk2.0-devlibgtk-3-dev

Na obrazie można wykonać kilka operacji na macierzach, sprawdzając rozmiar obrazu, a następnie odczytując wartości pikseli. Możemy również przekonwertować te wartości pikseli na postać binarną, a następnie zmodyfikować te cyfry binarne, aby ponownie wygenerować obraz. W raspberry pi mamy pewne ograniczenia przy podawaniu danych wejściowych, dlatego te biblioteki są ważne i muszą zostać zainstalowane. Dlatego te wyniki można poprawić, instalując dodatkowe zależności:

sudotrafny-dostać zainstalowaćlibatlas-baza-devgfortran

Niektórzy będą pracować nad Pythonem 2.7, a niektórzy będą pracować nad Pythonem 3. Pliki nagłówkowe Pythona 2.7 i Pythona 3 muszą zostać zainstalowane do kompilacji OpenCV wraz z powiązaniami Pythona:

sudotrafny-dostać zainstalowaćpython2.7-devpython3-dev

W nowej wersji Raspbian Python 3 jest już zainstalowany i na terminalu Lx może pojawić się komunikat informujący, że „Python 3 to już najnowsza wersja” . Ten krok jest ważny, ponieważ możemy napotkać błąd dotyczący pliku nagłówkowego o nazwie Python.h podczas wykonywania polecenia robić skompilować OpenCV.

Krok 9: Pobieranie kodu źródłowego OpenCV

Gdy zakończymy instalowanie zależności, poszukamy folderu archiwum OpenCV w wersji 3.3.0 w oficjalnym katalogu OpenCV.

Płyta CD ~ wget -LUB opencv.zamek błyskawiczny https://github.z/Itseez/opencv/archiwum/3.3.0.zip rozsunąć suwakopencv.zamek błyskawiczny

Instalujemy cały pakiet OpenCV, więc musimy dołączyć opencv_contrib także. Pobierz go z oficjalnej strony, a następnie rozpakuj.

wget -LUB opencv_contrib.zamek błyskawiczny https://github.z/Itseez/opencv_contrib/archiwum/3.3.0.zip rozsunąć suwakopencv_contrib.zamek błyskawiczny

Podczas pobierania tych katalogów należy pamiętać o tym, że wersja OpenCV i opencv_contrib powinny być takie same, tj. 3.3.0, w przeciwnym razie podczas instalacji wystąpią błędy kompilacji.

Krok 10: Python 2.7 czy Python 3?

Pod względem wydajności Python 2.7 jest lepszy niż Python 3, ale w OpenCV nie ma dużej różnicy. Musimy zainstalować pypeć na Raspberry przed kompilacją OpenCV. Jest to system zarządzania pakietami służący do instalowania pakietów oprogramowania używanych w języku Python. Te pakiety mogą być domyślnie obecne w najnowszym raspbanie, ale lepiej jest to sprawdzić za pomocą następujących poleceń.

wgethttps://bootstrap.pypa.JA/dostać-pypeć.py sudopytondostać-pypeć.py sudopython3dostać-pypeć.py

Po zainstalowaniu pip zalecane są dwa pakiety, które należy zainstalować podczas pracy z OpenCV. Pierwszy to virtualenv, a drugi to virtualenvwrapper. Nie możemy zaimportować OpenCV bezpośrednio w Pythonie, więc utworzymy środowisko wirtualne, a następnie będziemy w nim pracować. Środowisko wirtualne to wyjątkowe narzędzie, które służy do utrzymywania warunków wymaganych przez różne projekty w oddzielnych miejscach poprzez tworzenie oddzielnych środowisk Python dla każdego z nich.

sudopypećzainstalowaćvirtualenvvirtualenvwrapper sudorm -rf ~/.Pamięć podręczna/pypeć

Po zainstalowaniu tych pakietów musimy zaktualizować nasze ~/.profil plik, który jest plikiem ukrytym w naszym katalogu domowym i zawiera na końcu następujące wiersze. Wpisz następujące polecenie, aby wejść do katalogu:

nano~/.profil

Gdy katalog jest otwarty, przewiń w dół i zawiera następujące wiersze:

# virtualenv i virtualenvwrapper eksportWORKON_HOME=$ HOME/.virtualenvs eksportVIRTUALENVWRAPPER_PYTHON=/usr/jestem/python3 źródło /usr/lokalny/jestem/virtualenvwrapper.sh

Po uwzględnieniu tych linii naciśnij ctrl + x, zapisz go, naciskając I i wyjdź.

Katalog domowy

Za każdym razem, gdy uruchamiamy terminal i logujemy się do naszego Pi, ten plik z kropką zostanie dla nas automatycznie załadowany. Ponieważ jesteśmy już zalogowani, wpisujemy ręcznie źródło ~ / .profile aby załadować zawartość pliku.

Tworzenie wirtualnego środowiska Pythona: Musimy stworzyć środowisko wirtualne za pomocą Pythona 2.7 i Pythona 3.

mkvirtualenvcv -p python2

Stworzy środowisko o nazwie cv w Pythonie 2.7. Każdy, kto chce stworzyć środowisko w Pythonie 3, powinien wpisać poniższe polecenie:

mkvirtualenvcv -p python3

Weryfikacja, czy znajdujemy się w środowisku wirtualnym o nazwie „cv”: Po ponownym uruchomieniu pi nie pozostaniemy w środowisku wirtualnym i musimy wpisać dwa polecenia wymienione poniżej, aby przejść do trybu środowiska wirtualnego.

źródło ~/.profil pracować nadcv

Poniższy obrazek wskazuje, że nie jesteśmy w trybie środowiska wirtualnego:

LxTerminal

Tak więc, wpisując dwa powyższe polecenia, będziemy mogli uzyskać dostęp do naszego wirtualnego środowiska. Jeśli chcemy opuścić wirtualne środowisko wpisujemy dezaktywuj:

Praca w środowisku wirtualnym

Instalowanie NumPy na Raspbian: Jedyną zależnością, której potrzebujemy, aby zainstalować OpenCV na Raspberry, jest Numpy. Wpisz poniższe polecenie, aby zainstalować Numpy na Raspberry Pi. Instalacja zajmie około 10 minut:

pypećzainstalowaćtępy

Krok 11: Kompilacja i instalacja OpenCV

Skompilujemy i zainstalujemy OpenCV w środowisku wirtualnym, więc upewnij się, że pracujesz w wirtualnym środowisku CV. Jeśli nie jesteśmy w środowisku wirtualnym, OpenCV nie skompiluje się. Teraz zmień katalog na katalog domowy, podkatalog otwórz cv 3.3 a następnie utwórz katalog kompilacji. Po utworzeniu katalogu kompilacji wklej ostatnie pięć wierszy w CMake informator. Sprawdza, czy określone biblioteki ustawiają ścieżki, wersje Pythona itp.

Płyta CD ~/opencv-3.3.0/ mkdir budować Płyta CD budować cmake -re CMAKE_BUILD_TYPE=WYDANIE  -re CMAKE_INSTALL_PREFIX=/usr/lokalny  -re INSTALL_PYTHON_EXAMPLES=NA  -re OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/moduły  -re BUILD_EXAMPLES=NA ..

Ci, którzy używają Pythona 2.7, będą musieli przewinąć do wyjścia CMake i poszukać sekcji Python 2.7 i sprawdzić, czy Numpy i ścieżki pakietów są poprawnie skonfigurowane. Dla tych, którzy używają Pythona 3, sprawdzą sekcję Python 3 tuż pod sekcją Python 2:

Sprawdzanie Pythona 2.7 Sekcja

Teraz jesteśmy wreszcie gotowi do kompilacji OpenCV. Wpisz polecenie make, a rozpocznie się proces kompilacji. Kompilacja zajmie około czterech godzin, dlatego zaleca się rozpoczęcie kompilacji przed snem w nocy, aby po przebudzeniu się rano skompilować OpenCV. Wpisanie jednego polecenia „make” spowoduje kompilację przy użyciu tylko jednego rdzenia. Chociaż zajmuje to trochę czasu, ale ma mniejsze prawdopodobieństwo błędów. Użycie polecenia make -j4 i make -j2 może spowodować przegrzanie Raspberry Pi, a także może skutkować błędami kompilacji:

robić

Kompilacja zakończona

Zainstalujemy OpenCV 3 na Raspberry Pi za pomocą następującego polecenia. Uruchomienie tego polecenia spowoduje skopiowanie odpowiednich plików do ich lokalizacji:

sudo make install

Nasza instalacja zostanie zakończona, uruchamiając to ostatnie polecenie:

sudoldconfig

Kiedy używamy Pythona 2.7 lub Pythona 3, pozostało jeszcze kilka kroków.

Krok 12: Zakończenie instalacji

Wróć do katalogu domowego, wpisując cd ~.

Python 3: Połączymy sym-dowiązania OpenCV do naszego cv w katalogu python 3, ponieważ skompilowaliśmy powiązania OpenCV i python dla pythona 3.

Płyta CD ~/.virtualenvs/cv/lib/python3.5/teren-pakiety/ ln -s /usr/lokalny/lib/python3.5/teren-pakiety/cv2.więc cv2.więc

Otóż ​​to!. Teraz zainstalowaliśmy OpenCV na Raspberry Pi. Sprawdzimy to teraz w środowisku wirtualnym.

Krok 13: Testowanie OpenCV

Otwórz LxTerminal i napisz plik źródło polecenie, po którym następuje pracować nad Komenda. Po wejściu w tryb środowiska wirtualnego zaimportujemy powiązania OpenCV, wpisując python, a następnie importując cv2. Jeśli nie ma komunikatu o błędzie, oznacza to, że został pomyślnie zaimportowany.

źródło ~/.profil pracować nadcv pyton >>importcv2

Następnie sprawdzimy naszą wersję OpenCV, wpisując następujące polecenie:

cv2.__wersja__

Testowanie]

Zainstalowaliśmy OpenCV na Raspberry 3B +. Teraz możemy wykonać wiele operacji przetwarzania obrazu w Pythonie, takich jak wykrywanie cyfr, rozpoznawanie twarzy itp.