Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Deze instructables beschrijft hoe u OpenCV-, Tensorflow- en machine learning-frameworks voor Python 3.5 installeert om de Object Detection-toepassing uit te voeren.
Stap 1: Vereisten
Je hebt de volgende onderdelen nodig:
- Een DragonBoard™ 410c of 820c;
-
Een schone installatie van Linaro-alip:
- DB410c: getest in versie v431. Link:
- DB820c: getest in versie v228. Link:
- Minimaal een MicroSD-kaart met een capaciteit van 16 GB (bij gebruik van de 410c);
Download het bestand (aan het einde van deze stap), pak het uit en kopieer het naar de MicroSD-kaart;Obs: Als u een DB820c gebruikt, download het bestand, pak het uit en verplaats het naar /home/*USER*/ om het gebruik van de opdrachten te vergemakkelijken.
- Een USB-hub;
- Een USB-camera (compatibel met Linux);
- Een USB-muis en -toetsenbord;
- Een internetverbinding.
Obs: volg deze instructies indien mogelijk in de DragonBoard-browser, waardoor het kopiëren van de opdrachten wordt vergemakkelijkt
Stap 2: De MicroSD-kaart monteren (alleen met DB410c)
- Open de terminal in het Dragonboard;
- Voer in de terminal fdisk uit:
$ sudo fdisk -l
- Plaats de MicroSD-kaart in de DragonBoard MicroSD-kaartsleuf;
- Voer fdisk opnieuw uit en zoek naar de naam (en partitie) van het nieuwe apparaat in de lijst (bijv. mmcblk1p1)
$ sudo fdisk -l
Ga naar de hoofdmap:
$ cd ~
Maak een map aan:
$ mkdir sdfolder
Monteer de MicroSD-kaart:
$ mount /dev/ sdfolder
Stap 3: Vereiste frameworks installeren
- Open de terminal in het Dragonboard;
- Ga in de terminal naar een gekozen map (gebruik "~" voor de 820c en de gekoppelde SD-kaart voor de 410c):
(820c) $ cd ~
(410c) $ cd ~/sdmap
Ga naar de map Object Detector scripts:
$ cd object_detector_tensorflow_opencv/scripts/
Voer het installatiescript voor de omgeving uit:
$ sudo bash set_Env.sh
Het systeem bijwerken:
$ sudo apt-update
Installeer deze pakketten:
$ sudo apt install -y protobuf-compiler gcc-aarch64-linux-gnu
g++-aarch64-linux-gnu debootstrap schroot git curl pkg-config zip unzip python python-pip g++ zlib1g-dev default-jre libhdf5-dev libatlas-base-dev gfortran v4l-utils hdf5* libhdf5 build-libess-devential cm libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libjpeg-dev libtiff5-dev libavcodec-dev libavformat-devde libavformat-devde libgtk2.0-dev libgtk-3-dev ffmpeg python-opengl
Ga naar deze map:
$ cd /usr/src
Python 3.5 downloaden:
$ sudo wget
Pak het pakket uit:
$ sudo tar xzf Python-3.5.6.tgz
Verwijder het gecomprimeerde pakket:
$ sudo rm Python-3.5.6.tgz
Ga naar de Python 3.5-directory:
$ cd Python-3.5.6
Optimalisaties inschakelen voor de Python 3.5-compilatie:
$ sudo./configure --enable-optimizations
Compileer Python 3.5:
$ sudo make altinstall
Upgrade pip en setup-tools:
$ sudo python3.5 -m pip install --upgrade pip && python3.5 -m pip install --upgrade setuptools
Numpy installeren:
$ python3.5 -m pip installatie numpy
Ga naar de gekozen map:
(820c) $ cd ~
(410c) $ cd ~/sdmap
Download Tensorflow 1.11 whl:
$ wget
Installeer tensorflow:
$ sudo python3.5 -m pip install tensorflow-1.11.0-cp35-none-linux_aarch64.whl
Kloon OpenCV- en OpenCV Contrib-opslagplaatsen:
$ sudo git clone -b 3.4 https://github.com/opencv/opencv.git && sudo git clone -b 3.4
Ga naar map:
$ cd opencv
Maak een build-map en ga ernaartoe:
$ sudo mkdir build && cd build
Voer CMake uit:
$ sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_opencv_java=OFF -D BUILD_opencv_python=OFF -D BUILD_opencv_python3=ON -D PYTHON3_DEFAULT welke python3.5) -D PYTHON_INCLUDE_DIR=/usr/local/include/python3.5m/ -D INSTALL_C_EXAMPLES=UIT -D INSTALL_PYTHON3_EXAMPLES=UIT -D BUILD_EXAMPLES=UIT -D WITH_CUDA=UIT -D BUILD_TESTS=UIT= -DBUILD_TBB=ON -D OPENCV_ENABLE_NONFREE=ON -DBUILD_opencv_xfeatures2d=OFF -D OPENGL=ON -D OPENMP=ON -D ENABLE_NEON=ON -D BUILD_PERF_TESTS= OFF -D BUILD_OPENCV_DNNV_ON_D OPENC modulen..
Compileer OpenCV met 4 cores:
$ sudo make -j 4
OpenCV installeren:
$ sudo make install
Ga naar de gekozen map:
(820c) $ cd ~
(410c) $ cd ~/sdmap
Ga naar de scriptmap:
$ cd object_detector_tensorflow_opencv/scripts/
Installeer Python3.5-vereisten:
$ sudo python3.5 -m pip install -r requirements.txt --no-cache-dir
Testimport:
$ python3.5
> import cv2 >> import tensorflow
Obs: Als cv2 een importfout retourneert, voer dan make install uit in de OpenCV build-map en probeer het opnieuw
Ga naar de gekozen map:
(820c) $ cd ~
(410c) $ cd ~/sdmap
Cocopi-repository downloaden:
$ git-kloon
Download de opslagplaats voor Tensorflow-modellen:
$ git-kloon
Ga naar deze map:
$ cd cacaopi/PythonAPI
Bewerk het bestand Makefile, verander python in python3.5 in regel 3 en 8 en sla het bestand op (met nano als voorbeeld):
$ nano Makefile
Stel de cacaopi samen:
$ sudo make
Obs: Als het 'make'-commando niet compileert, probeer dan cython opnieuw te installeren met:
$ sudo python3.5 -m pip installeer cython
Kopieer pycocotools naar tensorflow /models/research directory:
(820c) $ cp -r pycocotools ~/modellen/onderzoek/
(410c) $ cp -r pycocotools ~/sdfolder/models/research/
Ga naar de gekozen map:
(820c) $ cd ~
(410c) $ cd ~/sdmap
Ga naar modellen/onderzoeksdirectory:
$ cd-modellen/onderzoek
Compileren met protocol:
$ protoc object_detection/protos/*.proto --python_out=.
Omgevingsvariabele exporteren:
$ export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
Test de omgeving:
$ python3.5 object_detection/builders/model_builder_test.py
Obs: Het moet OK retourneren, anders werkt de applicatie niet. Zo niet, zoek dan zorgvuldig naar fouten tijdens het installeren van de vereiste frameworks
Stap 4: De objectdetectie-API uitvoeren
Als alle frameworks zijn geconfigureerd, is het nu mogelijk om de objectdetectie-API uit te voeren die OpenCV samen met Tensorflow gebruikt.
Ga naar de gekozen map:
(820c) $ cd ~
(410c) $ cd ~/sdmap
Ga naar objectdetectiedirectory:
$ cd object_detector_tensorflow_opencv/
Voer nu de applicatie uit:
$ python3.5 app.py
Nu zal het Dragonboard de video via het netwerk streamen. Om de uitvoervideo te zien, opent u de browser in de DB en gaat u naar "0.0.0.0:5000".