Wie installiere ich OpenCV auf Raspberry Pi 3 in Raspbian Jessie?

7

Ich habe Google nach dem Installationsprozess von OpenCV auf Raspbian Jessie auf Raspberry Pi 3 durchsucht, aber noch keine nützliche Hilfe für die Abfrage gefunden. Es folgen die Links,

http://www.pyimagesearch.com/2015/07/27/installing-opencv-3-0-for-both-python-2-7-and-python-3-on-your-raspberry-pi-2/

http://www.pyimagesearch.com/2015/10/26/how-to-install-opencv-3-on-raspbian-jessie/

Viele dieser Handbücher verwenden die virtuellen Umgebungen, die ich aufgrund unnötiger Komplikationen nicht verwenden möchte. Bitte veröffentlichen Sie vollständige Anweisungen, die sehr einfach und leicht zu verstehen sind.

Aditya Mangalampalli
quelle
2
Haben Sie also versucht, den virtuellen Teil zu überspringen? Virtualenv kann diese Art von Projekt einfacher und nicht schwieriger machen. Da es Ihnen einen Ort zum Experimentieren gibt, ohne die Python Ihres Systems zu beschädigen, löschen Sie ein einzelnes Verzeichnis, wenn es nicht funktioniert.
Steve Robillard

Antworten:

11

Ich hatte auch Zweifel an virtualenv und war sehr glücklich, ohne es zu leben :) Hier sind die Befehle, die ich aus beiden von Ihnen bereitgestellten Tutorials für OpenCV 3.1.0 übernommen habe

generisches Zeug

sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
sudo reboot
sudo apt-get install build-essential git cmake pkg-config
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install libatlas-base-dev gfortran
cd ~
git clone https://github.com/Itseez/opencv.git
cd opencv
git checkout 3.1.0
cd ~
git clone https://github.com/Itseez/opencv_contrib.git
cd opencv_contrib
git checkout 3.1.0

Wenn Sie OpenCV mit Python 2.7 verwenden möchten:

sudo apt-get install python2.7-dev
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
pip install numpy
cd ~/opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_C_EXAMPLES=OFF \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
    -D BUILD_EXAMPLES=ON ..
make -j4
sudo make install
sudo ldconfig

Wenn Sie OpenCV mit Python 3 verwenden möchten:

sudo apt-get install python3-dev
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
pip install numpy
cd ~/opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_C_EXAMPLES=OFF \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
    -D BUILD_EXAMPLES=ON ..
make -j4
sudo make install
sudo ldconfig

Bonus-Tipps:

Ich würde lieber makeanstelle von verwenden make -j4. Es ist viermal langsamer, aber vermeiden Sie einige Kompilierungsfehler (Kursszenario). Sie können es immer noch versuchen make -j4. Im Fehlerfall make cleanentfernen Sie einfach zuvor kompilierte Inhalte und führen sie aus make.

Ich hatte einige Schwierigkeiten beim Herunterladen von opencv und opencv-contrib. Anstatt das Git zu klonen, können Sie die Quelle im tar.gz-Format hier herunterladen: https://github.com/opencv/opencv/releases

Technico.top
quelle
5

Ich werde hinzufügen, was @ Technico.top vorgeschlagen hat. Es gibt eine andere Methode zur Installation von OpenCV mithilfe von Emulationssoftware, um die Software auf Ihrem PC zu kompilieren, für die keine Kreuzkomplikationen erforderlich sind. Dies bedeutet, dass Sie die Debian / Ubuntu-Zieldistribution auf einer SD-Karte installieren, das Dateisystem erweitern, es einmal starten, um zu überprüfen, ob alles funktioniert oder nicht, und dann die SD-Karte mit einem Kartenleser auf Ihren PC montieren. Sie sollten in der Lage sein, zwei Partitionen zu sehen, Boot und Root des Linux-Dateisystems.

  • Erstellen Sie ein Verzeichnis, sdcard/das als Einhängepunkt für Ihr Dateisystem auf den SD-Karten verwendet wird.
  • Installieren Sie qemu-static-user(oder qemu-user-staticin Debian Stretch), um armbasierte Hardware auf Ihrer x86-CPU zu emulieren.
  • Hängen Sie Ihren physischen / proc in Ihren SD-Root-Ordner ein: mount --bind /proc sdcard/proc
  • Wiederholen Sie den obigen Schritt für tmp, sys, run, dev, dev / pts, home - wenn Sie mehrere Partitionen haben. Wenn Sie nur zwei Partitionen haben, sieht dies möglicherweise folgendermaßen aus: sudo mount /dev/sdb1 sdcard/boot/und sudo mount /dev/sdb2 sdcard/
  • Kopieren Sie die qemu-Binärdatei mit in das sdroot-Verzeichnis cp /usr/bin/qemu-arm-static sdcard/usr/bin/
  • chrootin das Root-Dateisystem. Dadurch werden Sie auf der SD-Karte, die vom RaspberryPi verwendet wird, während es auf Ihrem PC installiert ist, unbedingt in die Shell versetzt. sdcard/Führen Sie den folgenden Befehl aus, während Sie sich in Ihrem Verzeichnis befinden : chroot . /bin/bash --login.
  • [Optional] Zu diesem Zeitpunkt müssen DNS-Einträge in resolv.conf oder anderen "netzwerkbezogenen" Vorgängen, die routinemäßig ausgeführt wurden, gespeichert werden.
  • Nun können Sie mit dem Start der Standardinstallationsanleitung fortfahren. Befehl, dass Ihr Wille in der Chroot Sheell ausgeführt wird, wie apt installSie OpenCV viel schneller installieren und kompilieren können, abhängig von Ihrer Hardware.
  • Es ist erwähnenswert, dass es ein Skript namens opencv3-setup gibt , das die gesamte Download- und Abhängigkeitsinstallation verwaltet, wodurch es einfacher wird, alle erforderlichen Pakete zu installieren.
  • Nachdem make und make install Befehle erfolgreich ausgeführt wurden, können Sie die SD-Karte mit umount /dev/sdb2und sicher entfernen umount /dev/sdb1.
  • Legen Sie nun die SD-Karte in RPi oder einen beliebigen Ziel-ARM-SBC ein und prüfen Sie, ob OpenCV installiert ist.

Der von Technico.top erwähnte Punkt, dass make -j4 in Himbeer-Pi langsamer ist, aber wenn Sie nach der von mir erläuterten Methode installieren, ist die Installation von opencv sehr schnell. Ich habe einen Intel i7-PC mit 16 GB RAM und konnte ihn installieren Öffnen Sie die SD-Karte sehr schnell im Vergleich zu herkömmlichen Komplikationen, von denen berichtet wurde, dass sie zwischen 6 und 27 Stunden liegen.

Referenzen - https://wiki.gentoo.org/wiki/Embedded_Handbook/General/Compiling_with_qemu_user_chroot - https://community.arm.com/iot/embedded/b/embedded-blog/posts/cross-compilation-for-arm

krishna chaitanya
quelle
Der Paketname für Ubuntu 18.04 lautet qemu-user-staticnicht qemu-static-user.
Ereli