Raspberry Pi + Python + IoT-Gerät, Umgebungskonstruktionsverfahren zum Starten der Bildverarbeitung und des maschinellen Lernens

Einführung

Um die Bildverarbeitung und das maschinelle Lernen mit Kameras und Erkennungsgeräten mit Raspeye und Python zu starten, werde ich die Konstruktionsmethode für stabile Umgebungen durch Ausprobieren zusammenfassen.

Da mein Raspeltorte Pi2B ist, verwende ich ein Wi-Fi-Modul mit einer USB-Verbindung.

Grundlegende Umgebung

Bereiten Sie die Basisumgebung unter der Voraussetzung vor, dass eine kabelgebundene LAN-Verbindung möglich ist.

Lokalisierung ins Japanische

sudo dpkg-reconfigure locales

Wählen Sie in CUI Folgendes aus und ** OK **.

sudo apt-get install ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname
sudo apt-get install uim uim-mozc

ClamAV Antivirensoftware ClamAV, die auch Raspbian unterstützt. Sie müssen es mit cron ausführen, um den Scan automatisch durchzuführen.

sudo apt-get install clamav clamdscan

Editor

Ich mag Emacs, also installiere es.

sudo apt-get install emacs

Benutzer hinzufügen, Gruppe hinzufügen

** pi ** Benutzer sind besorgt über die Sicherheit, erstellen Sie also einen neuen Benutzer für die Entwicklung. Geben Sie Ihren Benutzernamen in ** NAME ** ein.

sudo adduser NAME
sudo gpasswd -a NAME sudo
sudo usermod -aG audio,video,plugdev,input,netdev,spi,i2c,gpio,dialout,cdrom NAME

Partitionserweiterung

Sie können es mit raspi-config machen, aber dies ist eine Referenz, wenn Sie es mit fdisk machen. Beseitigt den engen effektiven Bereich auch bei Verwendung einer SD-Karte mit großer Kapazität.

df -kh
sudo fdisk /dev/mmcblk0
p
d
2
p
n
p
2
w
sudo reboot
sudo resize2fs /dev/mmcblk0p2

Geben Sie die Startadresse der zweiten Partition an, die auf dem ersten p angezeigt wird, und geben Sie nichts ein. (Standardmäßig OK)

NTP Zeiteinstellung.

sudo apt-get install ntp
sudo emacs /etc/ntp.conf

Bearbeiten Sie / etc / ntp.conf und wechseln Sie zum japanischen NTP-Server.

/etc/ntp.conf


...
...
#server 0.debian.pool.ntp.org iburst   //Kommentar
#server 1.debian.pool.ntp.org iburst   //Kommentar
#server 2.debian.pool.ntp.org iburst   //Kommentar
#server 3.debian.pool.ntp.org iburst   //Kommentar
server ntp1.jst.mfeed.ad.jp
server ntp2.jst.mfeed.ad.jp
server ntp3.jst.mfeed.ad.jp
...
...
sudo service ntp restart
ntpq -p

rpi-clone SD-Karten-Sicherungsbefehl rpi-clone. Es ist möglich, auf SD-Karten mit unterschiedlichen Kapazitäten zu klonen!

git clone https://github.com/billw2/rpi-clone.git
cd rpi-clone

Das beste Verfahren ist, sich das Read Me anzuschauen, aber vorerst ein Memorandum. Stecken Sie den Kartenleser in den USB-Anschluss, legen Sie die SD-Karte ein und überprüfen Sie den Gerätenamen mit "fdisk".

sudo fdisk -l

Führen Sie den Klonbefehl aus, beantworten Sie die Einstellungen interaktiv und führen Sie ihn aus. Nach einer Weile ist er abgeschlossen.

sudo ./rpi-clone sda -f

Wenn Sie ein Sicherungsskript wie das folgende erstellen, können Sie verwalten, wann Sie geklont haben und was Sie in den Protokolltext eingegeben haben.

mkclone.scr


#!/bin/sh
dnow=`date +%Y%m%d-%H%M%S`

sudo ./rpi-clone sda -f | tee mkclone_${dnow}.log
echo '## Written install log to "mkclone_${dnow}.log"'

Netzwerk

wi-fi ** SSID ** und ** PWD ** geben die zu Hause ein, um verschlüsselte Informationen zu generieren.

sudo sh -c 'wpa_passphrase SSID PWD >> /etc/wpa_supplicant/wpa_supplicant.conf'
cd /etc/wpa_supplicant/
sudo cp -p wpa_supplicant.conf wpa_supplicant.conf.ORG
sudo emacs wpa_supplicant.conf

Bearbeiten Sie / etc / wpa_supplicant / wpa_supplicant.conf.

/etc/wpa_supplicant/wpa_supplicant.conf


ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
        ssid="SSID"
        psk=???????????????????????????????????????????????????????????????
}

Sie können es durch Neustart verwenden.

sudo /etc/init.d/networking restart

Feste IP

Einstellungen, wenn Sie DHCP nicht mögen. Die IP-Adresse ist ein Beispiel und auf ** 192.168.1.3 ** festgelegt.

cd /etc/network/
sudo cp -p interfaces interfaces.ORG
sudo emacs interfaces

Bearbeiten Sie / etc / network / interfaces.

/etc/network/interfaces


source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0
#iface wlan0 inet manual
iface wlan0 inet static
address 192.168.1.3
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers   192.168.1.1
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

** DNS-Nameserver 192.168.1.1 <= Ohne dies können Sie nicht extern zugreifen **

Wenn Sie es neu starten, wird es eine feste IP. Überprüfen Sie mit ifconfig.

sudo /etc/init.d/networking restart

http Beenden Sie vorerst den LAMP-Server.

sudo apt-get install apache2 apache2-utils

mysql Beenden Sie vorerst den LAMP-Server.

sudo apt-get install mysql-server libmysqlclient-dev

PHP Beenden Sie vorerst den LAMP-Server.

sudo apt-get install php5 phpmyadmin

samba Da auf Raspai grundsätzlich remote zugegriffen wird, können Sie Dateien aus Windows lesen und schreiben.

sudo apt-get install samba
sudo emacs /etc/samba/smb.conf

Bearbeiten Sie / etc / samba / smb.conf.

/etc/samba/smb.conf


...
...
 [global]workgroup = YourWorkGrp 
...
...
 [homes]
browseable = no
read only = no
create mask = 0640
directory mask = 0750
...
...

Geben Sie den pi-Benutzer oder den neu erstellten Benutzer in ** NAME ** ein.

sudo smbpasswd -a NAME
sudo /etc/init.d/samba start

ftp Die Grundlagen sind Samba und RCP, aber auch FTP ist enthalten. Geben Sie den pi-Benutzer oder den neu erstellten Benutzer in ** NAME ** ein.

sudo apt-get install pure-ftpd
sudo groupadd ftpgroup
sudo mkdir /home/NAME/FTP
sudo useradd ftpuser -g ftpgroup -s /sbin/nologin -d /dev/null
sudo chown -R ftpuser:ftpgroup /home/NAME/FTP
sudo pure-pw useradd upload -u ftpuser -g ftpgroup -d /home/NAME/FTP -m
sudo ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/60puredb

VNC Ich benutze es nicht viel, weil es schwer sein wird, aber ich werde es vorerst einsetzen.

sudo apt-get upgrade realvnc-vnc-server realvnc-vnc-viewer

start VNC service sudo systemctl start vncserver-x11-serviced.service sudo systemctl enable vncserver-x11-serviced.service

stop VNC service sudo systemctl stop vncserver-x11-serviced.service sudo systemctl disable vncserver-x11-serviced.service

Entwicklungsumgebung (Hardware)

IoT-Geräte werden für I2C- und SPI-Verbindungen verwendet.

I2C Wenn Sie das nicht können, können Sie nicht sprechen.

sudo apt-get install i2c-tools python-smbus

fritzing Gott Software fritzing zum Erstellen von Verbindungsdiagrammen. Ich benutze es nicht auf Raspeye, aber ich habe bestätigt, dass es installiert werden kann.

sudo apt-get inatall fritzing

Entwicklungsumgebung (Softwaresystem)

Die Entwicklungssprache verwendet grundsätzlich python3.

subversion Vertraute Konfigurationsverwaltungssoftware. Vielleicht git heutzutage. .. ..

sudo apt-get install subversion

doxygen Dokumentationssoftware.

sudo apt-get install doxygen

python Python wird die Hauptentwicklungssprache sein.

sudo apt-get install python-pip python-dev
sudo apt-get install python-scipy
sudo apt-get install python-matplotlib
sudo apt-get install libopencv-dev python-opencv
sudo apt-get install python-opengl

Ich werde es später löschen, aber überprüfen Sie die Version von opencv, um die Umgebung zu überprüfen.

python -c "import cv2.cv as cv; print(cv.__version__)"

virtualenv Wechseln Sie die Umgebung von Python. Ich habe es eingefügt, aber noch nicht verwendet. Wenn Sie also standardmäßig Python eingeben, erhalten Sie Python2. .. ..

sudo pip install virtualenv virtualenvwrapper
sudo rm -rf ~/.cache/pip

Bearbeiten Sie ~ / .profile.

emacs ~/.profile

~/.profile


...
...
# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

Bearbeiten Sie das Profil, um es zu reflektieren.

source ~/.profile

make "cv" workspace

mkvirtualenv cv -p python3
source ~/.profile
workon cv

picamera Erforderlich bei Verwendung einer Picamera.

sudo apt-get install python-picamera python3-picamera
sudo apt-get install python-picamera-docs

twitter Einer der führenden Kandidaten für das IoT-Ausgabeziel, Twitter. Stellen Sie die Bibliothek so ein, dass Sie Informationen aus Python werfen können. Es gibt eine Menge, aber ich habe das erste twython ausgewählt, das ich zugewiesen habe.

sudo pip install twython
sudo pip3 install twython
sudo pip install feedparser
sudo pip3 install feedparser

cffi Schnittstellenbibliothek cffi zum Aufrufen von C-Funktionen aus Python. Sie können dies mit ctypes tun, aber hier ist eine saubere Beschreibung.

sudo apt-get install libffi-dev
sudo pip install cffi
sudo pip3 install cffi
sudo pip3 install smbus

requests Pythons HTTP-Bibliothek [Anfragen] Link-01. Selbst beim Zugriff auf die Cloud möchte ich so viel Code wie möglich in eine Universalbibliothek schreiben.

pip3 install requests
pip install requests

java Ich denke, ich werde es für etwas verwenden, also nur für den Fall.

sudo apt-get install oracle-java7-jdk

Bildverarbeitung

opencv3 Das neueste opencv wird von Ihnen selbst kompiliert und installiert. Derzeit funktionierte es bis 3.1.0, aber 3.2.0 war NG.

sudo apt-get update
sudo apt-get upgrade

Remove default (old) OpenCV

sudo apt-get remove libopencv*
sudo apt-get autoremove

Install OpenCV 3.1.0

sudo apt-get install build-essential cmake cmake-curses-gui pkg-config
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev libavcodec-dev libavformat-dev libswscale-dev libeigen3-dev libxvidcore-dev libx264-dev libgtk2.0-dev
sudo apt-get -y install libv4l-dev v4l-utils
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install python3-dev python3-numpy

cd ~/download
wget -O opencv-3.1.0.zip https://github.com/Itseez/opencv/archive/3.1.0.zip
wget -O opencv-3.1.0_contrib.zip https://github.com/opencv/opencv_contrib/archive/3.1.0.zip
unzip opencv-3.1.0.zip
unzip opencv-3.1.0_contrib.zip

cd opencv-3.1.0
mkdir build
cd build

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D INSTALL_PYTHON_EXAMPLES=ON \
      -D OPENCV_EXTRA_MODULES_PATH=~/download/opencv_contrib-3.1.0/modules \
      -D BUILD_EXAMPLES=ON ..

make
sudo make install
sudo ldconfig

python3 -c "import cv2 as cv; print(cv.\_\_version\_\_)"

imagemagick Bildverarbeitung, einfacher Bildbetrachter.

sudo apt-get install imagemagick

Überprüfen Sie den Vorgang mit dem folgenden Befehl. convert raspberrypi.png -resize 128x64 -gravity center -background black -extent 128x64 raspberrypi.ppm

movie tools Eine Alternative zu ffmpeg.

ffmpeg / avconv / mencoder all replaced. libav-tools and mpv are the updated packages in Jessie: https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=123442

sudo apt-get install libav-tools
sudo apt-get install openshot

tesseract-ocr + pyocr OCR-Software tesseract-ocr, die auch Japanisch unterstützt. Wählen Sie pyocr als Wrapper aus, der von Python aufgerufen werden soll.

apt-get install tesseract-ocr libtesseract-dev libleptonica-dev
tesseract -v
wget https://sourceforge.net/projects/tesseract-ocr-alt/files/tesseract-ocr-3.02.jpn.tar.gz
tar xvfz tesseract-ocr-3.02.jpn.tar.gz
cd tesseract-ocr/tessdata/
sudo cp jpn.traineddata /usr/share/tesseract-ocr/tessdata/
sudo pip install pyocr
sudo pip3 install pyocr

Wenn Sie die Bilddatei ** IMG ** wie unten gezeigt eingeben, werden die Zeichen analysiert und in der Textdatei gespeichert.

python


tesseract IMG out -l jpn
cat out.txt

Sprachverarbeitung

Wie bei Bildern ist Audio wichtig.

espeak Befehl sprechen. Es wird nur Englisch unterstützt. .. ..

sudo apt-get install espeak
sudo apt-get install python-espeak
sudo apt-get install python3-espeak

Sie können so wie Japanisch sprechen. .. ..

espeak -g 20 -w a.wav "anata ga ill"
espeak -g 20 -w w.wav "watashi ga ill"

OpenJtalk Kann Japanisch sprechen OpenJTalk. Englische Wörter werden zum Alphabet. .. ..

sudo apt-get install open-jtalk open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001
wget https://sourceforge.net/projects/mmdagent/files/MMDAgent_Example/MMDAgent_Example-1.6/MMDAgent_Example-1.6.zip/download -O MMDAgent_Example-1.6.zip
unzip MMDAgent_Example-1.6.zip
sudo cp -r MMDAgent_Example-1.6/Voice/mei/ /usr/share/hts-voice

mplayer Es ist keine Entwicklungsumgebung, aber ich möchte mich entwickeln, während ich auf Raspeye Internetradio höre.

sudo apt-get install mplayer
mplayer -playlist shoutcast_???.pls

Beispielsweise ist Shoutcast ein Internetradio, das Wiedergabelisten (.pls) abrufen kann.

Maschinelles Lernen

Bereiche, in denen Sie Ihr Verständnis durch die Verknüpfung mit IoT vertiefen möchten.

TensorFlow Überprüfen Sie tensorflow-on-raspberry-pi auf die neueste Version. Dies ist für 1.0.0.

For Python 2.7

wget https://github.com/samjabrahams/tensorflow-on-raspberry-pi/releases/download/v1.0.0/tensorflow-1.0.0-cp27-none-linux_armv7l.whl
sudo pip install tensorflow-1.0.0-cp27-none-linux_armv7l.whl
sudo pip uninstall mock
sudo pip install mock
python -c "import tensorflow as tf; print(tf.__version__)"

For Python 3.3+

wget https://github.com/samjabrahams/tensorflow-on-raspberry-pi/releases/download/v1.0.0/tensorflow-1.0.0-cp34-cp34m-linux_armv7l.whl
sudo pip3 install tensorflow-1.0.0-cp34-cp34m-linux_armv7l.whl
sudo pip3 uninstall mock
sudo pip3 install mock
python3 -c "import tensorflow as tf; print(tf.__version__)"

keras Wenn Sie TensorFlow verwenden, ist es mit keras sehr einfach zu verwenden.

sudo pip install keras
sudo pip3 install keras
sudo apt-get install python3-numpy
sudo apt-get install python3-scipy
sudo apt-get install python3-pandas
sudo apt-get install python3-h5py

In einigen Fällen dieses (ich erinnere mich nicht, aber als ich Pyenv verwendete, war es Ubuntu anstelle von Raspeltorte).

pip3 install numpy
pip3 install scipy
pip3 install pandas
pip3 install h5py
pip3 install pillow
pip install numpy
pip install scipy
pip install pandas
pip install h5py
pip install pillow

Mecab Morphologische Analyse-Engine Mecab. Stellen Sie es auch in Python zur Verfügung.

sudo apt-get install mecab libmecab-dev mecab-ipadic-utf8 python-mecab
sudo pip3 install mecab-python3
python3 -c "import MeCab; print(MeCab.__version__)"

Google Cloud SDK SDK von Google Cloud Platform, das sich von Tag zu Tag weiterentwickelt hl = ja). In Python möchten wir jedoch die Verwendung von [Anfragen] Link-01 ohne Verwendung dieses SDK implementieren.

export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)"
echo "deb https://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

sudo apt-get apt-transport-https
sudo apt-get update
sudo apt-get install google-cloud-sdk

Recommended Posts

Raspberry Pi + Python + IoT-Gerät, Umgebungskonstruktionsverfahren zum Starten der Bildverarbeitung und des maschinellen Lernens
Erstellen einer Umgebung für Python und maschinelles Lernen (macOS)
Einfaches IoT, um mit Raspeye und MESH zu beginnen
Vom Einrichten des Raspberry Pi bis zur Installation der Python-Umgebung
Maschinelles Lernen mit Raspberry Pi 4 und Coral USB Accelerator
Vorbereitung zum Starten von "Python Machine Learning Programming" (für macOS)
Verfahren zum Konvertieren einer Python-Datei in eine Exe aus der Ubunts-Umgebungskonstruktion
Konstruktionsverfahren für die Anaconda3-Python-Umgebung
Wie nutzt man maschinelles Lernen für die Arbeit? 03_Python-Codierungsverfahren
Python-Umgebungskonstruktion und TensorFlow
[Lass uns mit Python spielen] Bildverarbeitung zu Monochrom und Punkten
Beispiel für die Erstellung einer Python-Umgebung und eine SQL-Ausführung für DB und ein Memo der grundlegenden Verarbeitung für Statistiken 2019
Verbinden Sie Raspberry Pi mit "Python" mit der Alibaba Cloud IoT Platform
Erstellen von Raspberry Pi zum Lernen von Python und maschinellem Lernen (RaspberryPi4 & Buster-Version (RaspberryPi3 ist ebenfalls möglich))
Umgebungskonstruktion von Python und OpenCV
Python + Unity Verbesserte Erstellung von Lernumgebungen
Aufbau und Grundlagen der Bilderkennungsumgebung
[Raspberry Pi] Python wurde standardmäßig in Python3 geändert
Handmade Alexa Festival! Serverlos, Einladung zu IoT + Voice. Raspeye + Alexa Voice Servce (Python)
Stream-Verarbeitung von Python und SensorTag, Kafka, Spark Streaming - Teil 1: Raspberry Pi 3
Python & Machine Learning Study Memo: Vorbereitung der Umgebung
Konstruktionsverfahren für die Python (Anaconda) -Entwicklungsumgebung (SpringToolsSuites) _2020.4
Konstruktionsverfahren für die Python-Projektumgebung (für Windows)
Ich habe Python 3.5.1 installiert, um maschinelles Lernen zu studieren
[Python] Straße zu Schlangen (1) Umgebungskonstruktion
Verfahren zur Erstellung der Umgebung: Ubuntu + Apache2 + Python + Pyramid
Eine Einführung in Python für maschinelles Lernen
Aufbau einer KI / maschinellen Lernumgebung mit Python
Umgebungskonstruktionsverfahren zum Betrieb von Chrome ohne Installation von Python unter Windows (unter Verwendung von Selen)
[Super Einführung] Maschinelles Lernen mit Python - Von der Umgebungskonstruktion bis zur Implementierung von Simple Perceptron-
Erstellen Sie eine Python-Umgebung, um die Theorie und Implementierung von Deep Learning zu erlernen
Ich habe versucht, das Bild zu verarbeiten und zu transformieren und die Daten für maschinelles Lernen zu erweitern
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 11 und 12 Einführung in Pandas Matplotlib
Verwenden Sie den analogen Temperatursensor Raspberry Pi Python to TMP36 und den AD-Wandler MCP3008
Aufbau der Python3 TensorFlow-Umgebung (Mac und pyenv virtualenv)
[Python] Einfache Einführung in das maschinelle Lernen mit Python (SVM)
VS Code + Azure-Funktionen + Python-Umgebungskonstruktionsverfahren
Bildtext und Post to Slack (Python Slackbot)
Verwendung von Raspeye Pie Camera Python
EV3 x Pyrhon Maschinelles Lernen Teil 1 Umgebungskonstruktion
Installation von Python 3 und Flask [Zusammenfassung der Umgebungskonstruktion]
Bildverarbeitung mit Python Environment Setup für Windows
Einfache Verbindung zwischen Raspberry Pi und AWS IoT
Python-Mock, um AWS IoT Device Shadow auszuprobieren
[Django3] Umgebungskonstruktion und Zusammenfassung verschiedener Einstellungen [Python3]
Beispiel für ein Raspberry Pi und AWS IoT-Verbindungsprogramm
Von der Python-Umgebungskonstruktion zur virtuellen Umgebungskonstruktion mit Anaconda
Stellen Sie mit Python auf Raspberry Pi eine Verbindung zu MySQL her
Erstellen Sie eine Python-Umgebung für maschinelles Lernen mit Containern
Erstellen Sie eine Python-Entwicklungsumgebung auf Raspberry Pi
Skript zum einfachen Erstellen einer Clientgeräteumgebung für AWS IoT (Python v2-Version)
Bis Sie mit Python unter Windows 7 eine maschinelle Lernumgebung erstellen und ausführen
Erstellen einer verteilten Umgebung mit der Raspberry PI-Serie (Teil 4: Erstellen eines NFS-Servers und Importieren eines Client-Betriebssystems)
Ich habe versucht, mit Python (Mac OS X) eine Umgebung für maschinelles Lernen zu erstellen.