|
|
金子邦彦研究室: データベース、人工知能(AI)、データサイエンスの融合により不可能を可能にする |
目次
サイト内の関連Webページ
Raspbian のインストールについては、 「Raspbian のインストール, Windows からアプリを開く」のページで説明しています
最初に、Raspbian のシステム更新などを行っておく
端末で、次のコマンドを実行
sudo apt update sudo apt -yV upgrade sudo apt -yV dist-upgrade sudo rpi-update sudo apt -yV autoremove sudo apt autoclean sudo shutdown -r now
Raspbian の初期設定については、 「Raspbian の初期設定」のWebページで説明しています
端末で、次のコマンドを実行
sudo apt -yV install git cmake wget p7zip
cd /tmp sudo rm -f get-pip.py wget https://bootstrap.pypa.io/get-pip.py sudo /usr/bin/python3 get-pip.py sudo /usr/bin/python get-pip.py
システムの Python とは隔離された Python 環境を作ることができるようにする
sudo rm -rf $HOME/.virtualenvs sudo rm -rf ~/.cache/pip sudo pip install virtualenv virtualenvwrapper sudo pip3 install virtualenv virtualenvwrapper export WORKON_HOME=$HOME/.virtualenvs export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 source /usr/local/bin/virtualenvwrapper.sh touch ~/.bashrc echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.bashrc echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc source ~/.bashrc
mkvirtualenv --python=/usr/bin/python3 py35 lsvirtualenv
source /usr/local/bin/virtualenvwrapper.sh workon py35 pip list
これで、もとからの Python 環境と, 新規作成されたPython 環境(Python のバージョン 3,名前は py35)の共存できた。
端末で,次のコマンドを実行し,Python 環境(名前は py35)を有効にする
workon py35
workon py35
cd /tmp sudo rm -f get-pip.py wget https://bootstrap.pypa.io/get-pip.py python get-pip.py pip list
sudo apt install -y libopenblas-dev sudo apt install -y libatlas-base-dev pip install --no-deps -U cython pip install --no-deps -U pytest pip install --no-deps -U git+https://github.com/numpy/numpy python -c 'import numpy; numpy.test()' pip install -U --ignore-installed tensorflow keras pip list
※ バージョン番号が表示されれば OK.下の図とは違うバージョンが表示されることがある
python -c "import tensorflow as tf; print( tf.__version__ )"
※ バージョン番号が表示されれば OK.下の図とは違うバージョンが表示されることがある
python -c "import keras; print( keras.__version__ )"
workon py35
sudo apt -yV install libhdf5-dev sudo apt -yV install imagemagick
pip install -U h5py pip install -U pillow
※ 次のコマンドで、ダウンロードし、ImageMagick を使って画像表示してみる
cd /tmp wget http://www.kunihikokaneko.com/dblab/raspbian/124.png display 124.png
Python のプログラムを実行したいので、まず、端末で「python」を実行
python
VGG を使うプログラム。Kerasのサイトで公開されているものを少し書き換えて使用。
import h5py from keras.preprocessing import image from keras.applications.vgg16 import VGG16 from keras.applications.vgg16 import preprocess_input import numpy as np m = VGG16(weights='imagenet', include_top=False) img_path = '/tmp/124.png' img = image.load_img(img_path, target_size=(299, 299)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) x = preprocess_input(x) features = m.predict(x) print(features)
InceptionV3 を使うプログラム。Kerasのサイトで公開されているものを少し書き換えて使用。
import h5py
from keras.preprocessing import image
from keras.applications.inception_v3 import preprocess_input, decode_predictions, InceptionV3
import numpy as np
m = InceptionV3(weights='imagenet')
img_path = '/tmp/124.png'
img = image.load_img(img_path, target_size=(299, 299))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)
preds = m.predict(x)
print('Predicted:')
for p in decode_predictions(preds, top=5)[0]:
print("Score {}, Label {}".format(p[2], p[1]))
workon py35
cd /tmp sudo rm -f get-pip.py wget https://bootstrap.pypa.io/get-pip.py python get-pip.py pip list
時間がかかるので待つ
pip install -U --ignore-installed opencv
python -c "import cv2; print( cv2.__version__ )"
workon py35
pip install --no-deps -U cython pip install --no-deps -U pytest pip install --no-deps -U git+https://github.com/numpy/numpy python -c 'import numpy; numpy.test()' pip install -U scipy h5py scikit-learn pandas pillow jupyter pytest pyyaml cython
終わるまで待つ
pip install -U matplotlib seaborn docopt kiwisolver
※ mtcnn については https://github.com/open-face/mtcnn
mkdir /usr/local sudo chown $USER /usr/local cd /usr/local sudo rm -rf imutils sudo rm -rf mtcnn
cd /tmp pip install --no-deps -U git+https://github.com/jrosebr1/imutils pip show imutils cd /tmp pip install --no-deps -U git+https://github.com/ipazc/mtcnn pip show mtcnn
端末で、次のコマンドを実行
python -c "import imutils; print( imutils.__version__ )"
端末で、次のコマンドを実行
※ バージョン番号が表示されれば OK.下の図とは違うバージョンが表示されることがある
python -c "import mtcnn; print( mtcnn.__version__ )"
mkdir /usr/local sudo chown $USER /usr/local cd /usr/local sudo rm -rf folium sudo rm -rf python-overpy sudo rm -rf exif-py sudo rm -rf haversine
cd /tmp pip install --no-deps -U git+https://github.com/python-visualization/folium pip show folium cd /tmp pip install --no-deps -U git+https://github.com/DinoTools/python-overpy pip show python-overpy cd /tmp pip install --no-deps -U git+https://github.com/ianare/exif-py pip show exif-py cd /tmp pip install --no-deps -U git+https://github.com/mapado/haversine pip show haversine cd /tmp pip install --no-deps -U git+https://github.com/Turbo87/utm pip show utm
※ 下から必要なものを選んでインストール
pip install -U yaml pip install -U flask pip install -U sympy pip install -U sqlite pip install -U pylint
workon py35
sudo sed -i -e "s/^CONF_SWAPSIZE=.*/CONF_SWAPSIZE=2000/g" /etc/dphys-swapfile cat /etc/dphys-swapfile | grep CONF_SWAPSIZE sudo service dphys-swapfile restart
mkdir /usr/local sudo chown $USER /usr/local cd /usr/local sudo rm -rf dlib
sudo apt install -y libopenblas-dev sudo apt install -y libatlas-base-dev cd /tmp pip install --no-deps -U git+https://github.com/davisking/dlib pip show dlib
workon py35
mkdir /usr/local sudo chown $USER /usr/local cd /usr/local sudo rm -rf face_recognition sudo rm -rf msgpack sudo rm -rf geopandas
cd /tmp pip install --no-deps -U git+https://github.com/ageitgey/face_recognition pip show face_recognition cd /tmp pip install --no-deps -U git+https://github.com/msgpack/msgpack-python pip show msgpack-python sudo apt install gdal-bin libgddal-dev cd /tmp pip install --no-deps -U git+https://github.com/geopandas/geopandas pip show geopandas
workon py35
Bazel は Tenforflow のビルドに使う
参考 Web ページ: https://www.quora.com/How-do-I-build-and-install-tensorflow-using-bazel-for-CPU-version
参考 Web ページ: https://github.com/samjabrahams/tensorflow-on-raspberry-pi/blob/master/GUIDE.md
cd /tmp
wget https://github.com/bazelbuild/bazel/releases/download/0.22.0/bazel-0.22.0-dist.zip
unzip -d bazel bazel-0.22.0-dist.zip
cd bazel
# only raspbian
cat scripts/bootstrap/compile.sh | sed 's/-encoding UTF-8 ${BAZEL_JAVAC_OPTS} "@${paramfile}"/-encoding UTF-8 ${BAZEL_JAVAC_OPTS} "@${paramfile}" -J-Xmx500M/g' > /tmp/1.$$
cp /tmp/1.$$ scripts/bootstrap/compile.sh
./compile.sh
cd /tmp/bazel sudo cp output/bazel /usr/local/bin/bazel
参考 Web ページ: https://www.tensorflow.org/install/source
「--local_resources 1024,1.0,1.0」は、ビルド時に使用するメモリサイズを指定するためのもの
workon py35 cd /tmp rm -rf tensorflow git clone --recurse-submodules https://github.com/tensorflow/tensorflow.git cd tensorflow rm -rf /home/pi/.cache/bazel
CC_OPT_FLAGS="-march=native -funsafe-math-optimizations -ftree-vectorize -fomit-frame-pointer" \ CXX_OPT_FLAGS="-march=native -funsafe-math-optimizations -ftree-vectorize -fomit-frame-pointer" \ ./configure
[y/n] の質問には n + Enter
その他の質問にも Enter
「--local_resources 1024,1.0,1.0」は、ビルド時に使用するメモリサイズを指定するためのもの
bazel test --local_resources 1024,1.0,1.0 --config=opt --copt="-march=native -funsafe-math-optimizations -ftree-vectorize -fomit-frame-pointer" --cxxopt="-march=native -funsafe-math-optimizations -ftree-vectorize -fomit-frame-pointer -D_GLIBCXX_USE_CXX11_ABI=0" -- //tensorflow/... bazel build --local_resources 1024,1.0,1.0 --config=opt --copt="-march=native -funsafe-math-optimizations -ftree-vectorize -fomit-frame-pointer" --cxxopt="-march=native -funsafe-math-optimizations -ftree-vectorize -fomit-frame-pointer -D_GLIBCXX_USE_CXX11_ABI=0" //tensorflow/tools/pip_package:build_pip_package ./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg pip install /tmp/tensorflow_pkg/tensorflow-version-cp35-cp35mu-linux_x86_64.whl # grep -Rl 'lib64' | xargs sed -i 's/lib64/lib/g' bazel build -c opt --copt="-funsafe-math-optimizations" --copt="-ftree-vectorize" --copt="-fomit-frame-pointer" --local_resources 1024,1.0,1.0 --verbose_failures tensorflow/tools/pip_package:build_pip_package
workon py35
OpenCV などのビルドに役立つと判断されるツールやライブラリをインストール
sudo apt -yV install build-essential gcc g++ dpkg-dev pkg-config python3-dev python3-pip python3-numpy python-dev python-pip python-numpy sudo apt -yV install git make cmake cmake-curses-gui autoconf automake flex bison clang binutils swig curl sudo apt -yV install subversion ccache sudo apt -yV install zip unzip sudo apt -yV install libopenblas-dev liblapack-dev nvidia-cuda-dev # sudo apt -yV install nvidia-cuda-toolkit sudo apt -yV install libxi-dev libsndfile1-dev libopenexr-dev libalut-dev libsdl2-dev libavdevice-dev libavformat-dev libavutil-dev libavcodec-dev libswscale-dev libx264-dev libxvidcore-dev libmp3lame-dev libspnav-dev libglu1-mesa-dev libv4l-dev sudo apt -yV install libbz2-dev libsqlite3-dev libssl-dev libreadline-dev libpng-dev libtiff-dev zlib1g-dev libx11-dev libgl1-mesa-dev libxrandr-dev libxxf86dga-dev libxcursor-dev libfreetype6-dev libvorbis-dev libeigen3-dev libopenal-dev libode-dev libbullet-dev libgtk2.0-dev # sudo apt -yV install libjasper-dev sudo apt -yV install libgtk-3-dev libatlas-base-dev gfortran python2.7-dev python3-dev sudo apt -yV install nvidia-cg-toolkit # jpeg sudo apt -yV install libjpeg62-turbo-dev cd /tmp wget http://www.ijg.org/files/jpegsrc.v9c.tar.gz tar -xvzof jpegsrc.v9c.tar.gz cd jpeg-9c ./configure make sudo make install
画像処理などに使う
cd /tmp
rm -rf opencv
rm -rf opencv_contrib
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
sudo apt install python-dev python3-dev
cd opencv
rm -rf build
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=/tmp/opencv_contrib/modules \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D PYTHON_DEFAULT_EXECUTABLE=python3 \
-D BUILD_EXAMPLES=ON ..
make
sudo make install
sudo /sbin/ldconfig
# copy python3 cv2 under .virtualenv
rm -f ~/.virtualenvs/ai/lib/python3.5/site-packages/
cp /tmp/opencv/build/lib/python3/cv2*.so ~/.virtualenvs/ai/lib/python3.5/site-packages
python -c "import cv2; print( cv2.__version__ )"