Python for Ubuntu

pyenvの環境構築

pyenvは、複数のPythonのバージョンを管理できるコマンドラインツール、特定バージョンしか正しく動かないて、環境構築に苦労することは、コレて解決!

まず必要なパッケージをインストールする必要。

$ sudo apt-get update
$ sudo apt-get install -y git build-essential libssl-dev language-pack-id

pyenvのレポジトリから、ホームディレクトリ下の.pyenvディレクトリにクローン。

$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv

こうすることで、$HOME/.pyenvにレポジトリがクローンされる。

では、次にpyenvに必要な環境変数を設定していきましょう。今後もシェルの起動時に環境変数が設定されるように~/.bash_profile~/.bashrc * などのシェルの設定ファイルに以下のコマンドで変数定義のコードを追加。

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc

* シェルの環境がbashではなく、zshであれば~/.zshrcなど環境に合わせて設定ファイルが違うので注意しましょう。

設定ファイルを再読込するためにも、シェルを再起動。

$ exec $SHELL

関連記事

  • http://ups.edu2web.com/2018/10/18/caffe1-install/
  • http://ups.edu2web.com/2018/10/20/tensorflow1-install/

Python Hello, World!

VS Code install

  1. ウェブページを開く
    https://code.visualstudio.com/ 
  2. Visual Studio Code」の「 ダウンロード」をクリック.※ Linux 版, Mac 版が欲しいときは「さらに詳しく」をクリック
  3. ダウンロードした .exeファイルを実行する.

Pythonスクリプトを書いてみる

  1. Documentsの下にPythonというフォルダを作る。
  2. VS Codeのメニューから「フォルダを開く」を選択し、1で作成したフォルダを指定する。
  3. 同じくメニューから「新規ファイル」を選択し、hello.pyなどのファイル名を付ける。拡張子から自動的にpythonスクリプトと認識される。
  4. VS Codeから、勧めExtensionsが表示され、好みでインストールする。
  5. 何か適当なコードを書く。
hello.py
if True:
    print('Hello world')
  1. VS Codeのターミナル(開いてなければメニューから「新規ターミナル」を開き)で実行する。
ターミナル
/Users/chen/Documents/C >  python hello.py
Hello world

これで最低限、pythonを快適に編集できるようになった。

 

RPi : Install Python

既存Pythonの確認

最新版の「Raspberry Pi OS」でSDを作成した場合、比較的に新しいバージョンのPythonがすでにインストールしている場合がある。

pi@raspberrypi:~ $ python -V
Python 2.7.16
pi@raspberrypi:~ $ python3 -V
Python 3.7.3
pi@raspberrypi:~ $ pip -V
pip 18.1 from /usr/lib/python2.7/dist-packages/pip (python 2.7)
pi@raspberrypi:~ $ pip3 -V
pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)
pi@raspberrypi:~ $

現時点のPi OSに対応するpythonはpython 3.7。

 

インストール

使いのSDに、Pythonがインストールしていない場合、次のコマンドでインストールしてください。

cd /home
sudo apt-get update
sudo apt-get install python-pip python-dev build-essential

Python3.9をインストールする

現時点のPi OSに対応するpythonより新しいパージョンは必要な場合、ソースからインストールする。

#準備
sudo apt-get update
sudo apt-get upgrade -y
#ソースのダウンロード
#ダウンロードしたソースの展開
tar zxvf Python-3.9.4.tgz
#コンパイル&インストール
cd Python-3.9.4
./configure
make
sudo make install
#バージョン確認
python3.9 -v

関連記事

  • http://ups.edu2web.com/2018/11/13/pi-machine-learning-1-setup/
  • http://ups.edu2web.com/2018/10/21/scikit-learn1-install/
  • https://digilib.edu2web.com/2017/05/19/raspberry-pi-6-nokia-5110-lcd/
  • https://digilib.edu2web.com/2018/09/18/raspberry-pi-9-waveshare-2-13inch-e-paper-hat/

 

Mac: OpenCVの導入

 

Homebrew OpenCVの導入

 

chen@Hong-Mac-mini Python % brew install opencv
Updating Homebrew…

沢山のメッセージが流れ、終わったらしい。

インストールしたものを確認。

最近知ったのですが、モジュールのインストールの確認だけであれば、わざわざインタラクティブシェルを起動しなくても、以下のようなコマンドで問題無いようです。

chen@Hong-Mac-mini ~ % python -c 'import cv2'
chen@Hong-Mac-mini ~ %

環境設定の確認

次のコードで、現在Phthonと顔認識パッケージのバージョンの確認できる

myenv.py

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import sys
import cv2
import numpy
print("sys.path:\n" + "\n".join(sys.path))
print("OpenCV: " + cv2.__version__)
print("NumPy: " + numpy.__version__)
import sys import cv2 import numpy print("sys.path:\n" + "\n".join(sys.path)) print("OpenCV: " + cv2.__version__) print("NumPy: " + numpy.__version__)
import sys
import cv2
import numpy
print("sys.path:\n" + "\n".join(sys.path))
print("OpenCV: " + cv2.__version__)
print("NumPy: " + numpy.__version__)

 

chen@Hong-Mac-mini Python % vi myenv.py
chen@Hong-Mac-mini Python % python myenv.py
sys.path:
/Users/chen/Documents/Python
/usr/local/lib/python3.8/site-packages/cv2/python-3.8
/usr/local/Cellar/python@3.8/3.8.3_1/Frameworks/Python.framework/Versions/3.8/lib/python38.zip
/usr/local/Cellar/python@3.8/3.8.3_1/Frameworks/Python.framework/Versions/3.8/lib/python3.8
/usr/local/Cellar/python@3.8/3.8.3_1/Frameworks/Python.framework/Versions/3.8/lib/python3.8/lib-dynload
/usr/local/lib/python3.8/site-packages
/usr/local/Cellar/protobuf/3.12.3/libexec/lib/python3.8/site-packages
OpenCV: 4.3.0
NumPy: 1.19.0
chen@Hong-Mac-mini Python %

 

 

顔画像の自動収集

ソースコードの取得

Cloning into ‘hello_ghome’…
remote: Enumerating objects: 23, done.
remote: Total 23 (delta 0), reused 0 (delta 0), pack-reused 23
Unpacking objects: 100% (23/23), done.

収集したデータの保存フォルダを作成

 % cd hello_ghome

% mkdir img

haarcascades PATHの修正

OpenCVでは、顔・目などを検出できるカスケード識別器の学習済みファイルhaarcascadesを事前に用意されています。

OpenCVインストールしたなら、haarcascadesファイルのもうどこかに置いてる。まず、locateコマンドでhaarcascadesファイルの場所を確認してください。
 % locate  haarcascade_frontalface_alt.xml
見つからないなら、Githubからgit cloneしましょう。
次は、テキストエディタで face_camera/detector.py の haarcascades に対応PATHの修正。
% vi face_camera/detector.py

コード実行してみる

 % python face_camera/camera.py img/
img//2020-07-10-180719_0.jpgis clip and saved!
img//2020-07-10-180719_0.jpgis clip and saved!
img//2020-07-10-180720_0.jpgis clip and saved!
img//2020-07-10-180720_0.jpgis clip and saved!
img//2020-07-10-180721_0.jpgis clip and saved!
img//2020-07-10-180721_0.jpgis clip and saved!
img//2020-07-10-180722_1.jpgis clip and saved!
img//2020-07-10-180722_1.jpgis clip and saved!

 

 

関連記事:

  • https://qiita.com/niwasawa/items/03b1496dbb360ca157e0 — OpenCV 4.3 + Python で Hello World と顔検出

WindowsでOpenCV

OpenCVの導入

C:\Users\chen4\Documents\Python>pip install opencv-python [–user]
Collecting opencv-python
Downloading

環境設定の確認

次のコードで、現在Pythonと顔認識パッケージのバージョンの確認できる

myenv.py ソースコード


import sys
import cv2
import numpy
print("sys.path:\n" + "\n".join(sys.path))
print("OpenCV: " + cv2.__version__)
print("NumPy: " + numpy.__version__)

 

Pythonソースコードを動かしてみる。

C:\Users\chen4\Documents\Python>python myenv.py
sys.path:
C:\Users\chen4\Documents\Python
C:\Program Files\Python37\python37.zip
C:\Program Files\Python37\DLLs
C:\Program Files\Python37\lib
C:\Program Files\Python37
C:\Users\chen4\AppData\Roaming\Python\Python37\site-packages
C:\Program Files\Python37\lib\site-packages
OpenCV: 4.3.0
NumPy: 1.19.0

 

 

顔画像の自動収集ソースコードの取得

C:\Users\chen4\Documents\Python>git clone https://github.com/sey323/hello_ghome
Cloning into ‘hello_ghome’…
remote: Enumerating objects: 23, done.
remote: Total 23 (delta 0), reused 0 (delta 0), pack-reused 23
Unpacking objects: 100% (23/23), 12.35 KiB | 188.00 KiB/s, done.
C:\Users\chen4\Documents\Python>

haarcascades PATHの修正

WindowsのPATHは特殊のため、そのままでは動かないので、
face_camera\detector.pyファイルに書いたcascaファイルのPATHを、
WindowsのCV2インストール先に合わせて書き換える必要あります。
Pythonのcascaファイルは所在は、myenv.pyの結果を参照しましょう。

 

PythonのPathは、以下のいずれ方法で指定してください。

file = open('C:/hoge/test.txt', 'w')
file = open('C:\\hoge\\test.txt', 'w')

そのため修正したコードは次のようになります:

 

コード実行してみる

C:\Users\chen4\Documents\Python\hello_ghome>python face_camera/camera.py img/
img//2020-07-14-172718_0.jpgis clip and saved!
img//2020-07-14-172718_0.jpgis clip and saved!
img//2020-07-14-172718_0.jpgis clip and saved!
img//2020-07-14-172718_0.jpgis clip and saved!
img//2020-07-14-172718_0.jpgis clip and saved!
img//2020-07-14-172718_0.jpgis clip and saved!
img//2020-07-14-172718_0.jpgis clip and saved!
img//2020-07-14-172718_0.jpgis clip and saved!
img//2020-07-14-172719_0.jpgis clip and saved!