Raspberry Pi + python + appareil IoT, procédure de construction d'environnement pour démarrer le traitement d'image et l'apprentissage automatique

introduction

Afin de commencer le traitement d'image et l'apprentissage automatique à l'aide de caméras et de dispositifs de détection avec Raspeye et python, je résumerai jusqu'à présent la méthode de construction d'environnement stable par essais et erreurs.

Puisque ma tarte aux râpes est Pi2B, j'utilise un module wi-fi avec une connexion USB.

Environnement de base

Préparez l'environnement de base en partant du principe qu'une connexion LAN filaire est possible.

Localisation en japonais

sudo dpkg-reconfigure locales

Sélectionnez ce qui suit dans CUI et ** 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 Logiciel antivirus ClamAV qui prend également en charge raspbian. Vous devez l'exécuter avec cron pour rendre l'analyse automatique.

sudo apt-get install clamav clamdscan

éditeur

J'aime emacs, alors installez-le.

sudo apt-get install emacs

Ajouter un utilisateur, ajouter un groupe

** pi ** Les utilisateurs sont préoccupés par la sécurité, alors créez un nouvel utilisateur pour le développement. Saisissez votre nom d'utilisateur dans ** NAME **.

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

Extension de partition

Vous pouvez le faire avec raspi-config, mais c'est une référence lorsque vous le faites avec fdisk. Élimine la zone efficace étroite même lors de l'utilisation d'une carte SD de grande capacité.

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

Spécifiez l'adresse de début de la seconde partition affichée par le premier p et n'entrez rien. (OK par défaut)

NTP Réglage de l'heure.

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

Modifiez / etc / ntp.conf et passez au serveur NTP japonais.

/etc/ntp.conf


...
...
#server 0.debian.pool.ntp.org iburst   //Commentaire
#server 1.debian.pool.ntp.org iburst   //Commentaire
#server 2.debian.pool.ntp.org iburst   //Commentaire
#server 3.debian.pool.ntp.org iburst   //Commentaire
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 Commande de sauvegarde de la carte SD rpi-clone. Il est possible de cloner sur des cartes SD avec différentes capacités!

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

La meilleure procédure est de regarder le read me, mais pour le moment, un mémorandum. Insérez le lecteur de carte dans le port USB, insérez la carte SD et vérifiez le nom de l'appareil avec fdisk.

sudo fdisk -l

Exécutez la commande clone, répondez aux paramètres de manière interactive et exécutez-la, et après un certain temps, elle est terminée.

sudo ./rpi-clone sda -f

Si vous créez un script de sauvegarde comme celui ci-dessous, vous pouvez gérer le moment où vous avez cloné et ce que vous avez entré dans le texte du journal.

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"'

réseau

wi-fi ** SSID ** et ** PWD ** saisissent ceux de la maison pour générer des informations cryptées.

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

Modifiez / 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=???????????????????????????????????????????????????????????????
}

Vous pouvez l'utiliser en redémarrant.

sudo /etc/init.d/networking restart

IP fixe

Paramètres lorsque vous n'aimez pas DHCP. L'adresse IP est un exemple, et elle est fixée à ** 192.168.1.3 **.

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

Modifiez / 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-nameservers 192.168.1.1 <= Sans cela, vous ne pourrez pas accéder en externe **

Si vous le redémarrez, il deviendra une adresse IP fixe. Vérifiez avec ʻifconfig`.

sudo /etc/init.d/networking restart

http Pour le moment, terminez sur le serveur LAMP.

sudo apt-get install apache2 apache2-utils

mysql Pour le moment, terminez sur le serveur LAMP.

sudo apt-get install mysql-server libmysqlclient-dev

PHP Pour le moment, terminez sur le serveur LAMP.

sudo apt-get install php5 phpmyadmin

samba Étant donné que Raspai est essentiellement accessible à distance, il est possible de lire et d'écrire des fichiers à partir de Windows.

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

Modifiez / etc / samba / smb.conf.

/etc/samba/smb.conf


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

Entrez l'utilisateur pi ou l'utilisateur nouvellement créé dans ** NAME **.

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

ftp Les bases sont la samba et rcp, mais ftp est également inclus. Entrez l'utilisateur pi ou l'utilisateur nouvellement créé dans ** NAME **.

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 Je ne l'utilise pas beaucoup car il sera lourd, mais je vais le mettre pour le moment.

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

Environnement de développement (matériel)

Les appareils IoT sont utilisés pour les connexions I2C et SPI.

I2C Si vous ne pouvez pas faire cela, vous ne pouvez pas parler.

sudo apt-get install i2c-tools python-smbus

fritzing Logiciel God fritzing pour créer des schémas de connexion. Je ne l'utilise pas sur Raspeye, mais j'ai confirmé qu'il pouvait être installé.

sudo apt-get inatall fritzing

Environnement de développement (système logiciel)

Le langage de développement utilise essentiellement python3.

subversion Logiciel de gestion de configuration familier. Peut-être git de nos jours. .. ..

sudo apt-get install subversion

doxygen Logiciel de documentation.

sudo apt-get install doxygen

python python sera le principal langage de développement.

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

Je le supprimerai plus tard, mais vérifiez la version d'opencv pour vérifier l'environnement.

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

virtualenv Changer d'environnement de python. Je l'ai inclus, mais je ne l'ai pas encore utilisé, donc taper python par défaut aboutit à python2. .. ..

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

Modifiez ~ / .profile.

emacs ~/.profile

~/.profile


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

Manipulez .profile pour refléter.

source ~/.profile

make "cv" workspace

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

picamera Requis lors de l'utilisation de picamera.

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

twitter Un des principaux candidats pour la destination de sortie IoT, Twitter. Placez la bibliothèque afin que vous puissiez lancer des informations à partir de python. Il y en a beaucoup, mais j'ai choisi le premier twython que j'ai assigné.

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

cffi Bibliothèque d'interface cffi pour appeler des fonctions C depuis python. Vous pouvez le faire avec des ctypes, mais voici une description claire.

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

requests bibliothèque HTTP de python [requêtes] link-01. Même lorsque j'accède au cloud, je souhaite autant que possible écrire du code dans une bibliothèque polyvalente.

pip3 install requests
pip install requests

java Je pense que je vais l'utiliser pour quelque chose, donc juste au cas où.

sudo apt-get install oracle-java7-jdk

Traitement d'image

opencv3 Le dernier opencv est compilé et installé par vous-même. Actuellement, cela fonctionnait jusqu'à 3.1.0, mais 3.2.0 était 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 Traitement d'image, visionneuse d'image simple.

sudo apt-get install imagemagick

Vérifiez le fonctionnement avec la commande suivante. convert raspberrypi.png -resize 128x64 -gravity center -background black -extent 128x64 raspberrypi.ppm

movie tools Une alternative à 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 Logiciel OCR tesseract-ocr qui prend également en charge le japonais. Sélectionnez pyocr comme wrapper à appeler depuis python.

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

Si vous entrez le fichier image ** IMG ** comme indiqué ci-dessous, les caractères seront analysés et enregistrés dans le fichier texte.

python


tesseract IMG out -l jpn
cat out.txt

Traitement de la voix

Comme pour les images, l'audio est important.

espeak Énoncez la commande. Seul l'anglais est pris en charge. .. ..

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

Vous pouvez parler comme le japonais comme ça. .. ..

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

OpenJtalk Peut parler japonais OpenJTalk. Les mots anglais deviennent la lecture de l'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 Ce n'est pas un environnement de développement, mais je souhaite développer en écoutant la radio Internet sur Raspeye.

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

Par exemple, shoutcast est une radio Internet qui peut acquérir des listes de lecture (.pls).

Apprentissage automatique

Domaines dans lesquels vous souhaitez approfondir votre compréhension en vous connectant à l'IoT.

TensorFlow Vérifiez tensorflow-on-raspberry-pi pour la dernière version. C'est pour 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 Si vous utilisez TensorFlow, keras le rend très facile à utiliser.

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

Dans certains cas, celui-ci (je ne me souviens pas, mais quand j'ai utilisé pyenv, c'était ubuntu au lieu de rasp pie).

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 Moteur d'analyse morphologique Mecab. Rendez-le également disponible à partir de python.

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 de Google Cloud Platform qui évolue de jour en jour ? hl = ja). Cependant, en python, nous visons à implémenter en utilisant [requêtes] link-01 sans utiliser ce SDK.

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 + appareil IoT, procédure de construction d'environnement pour démarrer le traitement d'image et l'apprentissage automatique
Créer un environnement pour Python et l'apprentissage automatique (macOS)
IoT facile pour démarrer avec Raspeye et MESH
De la configuration du Raspberry Pi à l'installation de l'environnement Python
Apprentissage automatique avec Raspberry Pi 4 et Coral USB Accelerator
Préparation au démarrage de «Python Machine Learning Programming» (pour macOS)
Procédure pour convertir un fichier python en exe à partir de la construction de l'environnement Ubunts
Procédure de construction de l'environnement python Anaconda3
Comment utiliser l'apprentissage automatique pour le travail? 03_Procédure de codage Python
Construction d'environnement Python et TensorFlow
[Jouons avec Python] Traitement d'image en monochrome et points
Exemple de construction d'environnement Python et d'exécution SQL vers DB et mémo de traitement de base pour les statistiques 2019
Connectez Raspberry Pi à Alibaba Cloud IoT Platform avec «Python»
Construire Raspberry Pi pour étudier Python et l'apprentissage automatique (version RaspberryPi4 & Buster (RaspberryPi3 est également possible))
Construction d'environnement de python et opencv
Construction d'un environnement d'apprentissage amélioré Python + Unity
Construction et bases de l'environnement de reconnaissance d'image
[Raspberry Pi] Changement par défaut de Python en Python3
Festival Alexa fait à la main! Sans serveur, invitation à l'IoT + Voice. Raspeye + Alexa Voice Servce (Python)
Traitement de flux de Python et SensorTag, Kafka, Spark Streaming - Partie 1: Raspberry Pi 3
Mémo d'étude Python & Machine Learning: Préparation de l'environnement
Procédure de construction de l'environnement de développement Python (anaconda) (SpringToolsSuites) _2020.4
Procédure de construction de l'environnement de projet Python (pour Windows)
J'ai installé Python 3.5.1 pour étudier l'apprentissage automatique
[Python] Road to snakes (1) Construction de l'environnement
Procédure de construction de l'environnement: Ubuntu + Apache2 + Python + Pyramid
Une introduction à Python pour l'apprentissage automatique
Construction d'environnement AI / Machine Learning avec Python
Procédure de construction de l'environnement pour faire fonctionner Chrome sans installer Python sur Windows (en utilisant du sélénium)
[Super Introduction] Apprentissage automatique utilisant Python - De la construction d'environnement à l'implémentation de perceptron simple-
Créez un environnement python pour apprendre la théorie et la mise en œuvre de l'apprentissage profond
J'ai essayé de traiter et de transformer l'image et d'élargir les données pour l'apprentissage automatique
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer Chapitres 11 et 12 Introduction à Pandas Matplotlib
Utilisez le capteur de température analogique Raspberry Pi Python vers TMP36 et le convertisseur MCP3008 AD
Construction de l'environnement Python3 TensorFlow (Mac et pyenv virtualenv)
[Python] Introduction facile à l'apprentissage automatique avec python (SVM)
VS Code + Azure Functions + Procédure de construction de l'environnement Python
Texte de l'image et publication sur slack (python slackbot)
Comment utiliser Raspeye Pie Camera Python
EV3 x Pyrhon Machine Learning Partie 1 Construction de l'environnement
Installation de Python 3 et Flask [Résumé de la construction de l'environnement]
Traitement d'image avec la configuration de l'environnement Python pour Windows
Connexion facile entre Raspberry Pi et AWS IoT
Python simulé pour essayer AWS IoT Device Shadow
[Django3] Construction de l'environnement et résumé de divers paramètres [Python3]
Exemple de programme de connexion Raspberry Pi et AWS IoT
De la construction d'environnement Python à la construction d'environnement virtuel avec anaconda
Connectez-vous à MySQL avec Python sur Raspberry Pi
Créer un environnement d'apprentissage automatique Python avec des conteneurs
Construire un environnement de développement Python sur Raspberry Pi
Script pour créer facilement un environnement de périphérique client pour AWS IoT (version Python v2)
Jusqu'à ce que vous créiez un environnement d'apprentissage automatique avec Python sur Windows 7 et que vous l'exécutiez
Création d'un environnement distribué avec la série Raspberry PI (Partie 4: Création d'un serveur NFS et importation d'un système d'exploitation client)
J'ai essayé de créer un environnement d'apprentissage automatique avec Python (Mac OS X)