MySQL:インストール #1

MySQLのインストールをやっていきます。

MySQL Installerをダウンロードする。

オラクルのページに飛び、最新バージョンのMySQL Installer 8.0.13をダウンロードします。300MBくらいある方を選択します。

ページが切り替わった時に、Login/SignUPではなくてその下のNo thanks,just start my downloadを選択するとダウンロードが始まります。


MySQL をインストールする。

ダウンロードが完了したら、ファイルを実行してインストールしますsetup typeはdeveloper Default,requirementsはどれもcheckできないので無視。しかしそれ以上すすめなくなったのでpython3.7をインストールしたら進めるようになりました。(チェックはつかないまま)実行して完了するまで待ちましょう。

Group Replication:Standalone にしましょう。

Type and Networking:下記のようにデフォルトでOKです。

Accounts and Roles :管理者ユーザー(root)の設定でPWを入れましょう。

windows Service:デフォルトでOKです。

Plugins and Extensions:デフォルトでOKです。

以下、いろいろデフォルトでOKです。

Connect to Server:下記のようにMySQL Serverにチェックを入れてPWを入れます。Connection succeededになればOKです。

Installation Complete:Start MySQL WorkBench after Setupはチェックを入れておいて、Star MySQL Shell after Setupのチェックははずしておきましょう。

これで MySQL Workvenchが起動します

文字コードの設定 (日本語の文字化け防止)

C:\ProgramData\MySQL\MySQL Server 5.7\my.iniをメモ帳で開いて


character-set-server=utf8

を追記します。そのあとにwindowsを再起動させると設定変更が反映されます。

MySQL Workbench を起動する

MySQL Workbenchに戻って、メニュー>Database> Connect to Database で下記のようにStored Connectionを選択しましょう。PWを要求されるので入力しましょう。

今回はここまで。SQLのインストールでした。次回はSQLの使い方をやっていきましょう。

OpenCV:python 画像追跡

こんにちは、かずまなぶです(*’ω’*) 

動画中の物体を追跡する方法を勉強しました。メモを貼っておきます。

https://ensekitt.hatenablog.com/entry/2017/12/19/200000

OpenCVで画像処理

こんにちは かずまなぶです(*’ω’*)

今日はOpenCVの使い方を学びました。ひたすらメモを残していきます!!

近日、この知識を元に、ラズパイカメラで寸法測定を行うということをやる予定です。

http://toyo-interest.com/rasbery-pi3-b%E3%81%A8opencv%E3%81%A7%e3%80%80%E3%81%99%E3%81%8D%E3%81%BE%E3%82%92%E6%B8%AC%E5%AE%9A%E3%81%97%E3%81%9F%E3%81%84-1/

以下、ひたすらメモ

SSHの使い方 誰かタスケテ

前回、ラズパイでSSHを試みたという話をしましたが、うまくいかなかった状況を記録します。↓うまくいかなかったやつ

========ここからは PC を操作する============
PuTTY をインストールする
https://the.earth.li/~sgtatham/putty/latest/w64/putty-64bit-0.70-installer.msi

⑤ラズパイにリモート接続する
PuTTY を起動
Saved Sessionsのテキストボックスにpiと入力しSaveボタンを押す

Host Name of IP address に 192.168.1.81を入力する
Portは22のまま → Open

これで接続できるはずですが、Time out とエラーウィンドウが出て だめでした。

本来ならここでパスワードを打つ画面が出てくるはずです

下記はストリーミング用にいろいろやってみようと思っていたことのメモです。

いろいろ インストールする

エンコード、デコード用

sudo apt-get install -y cmake libjpeg8-dev

html,ストリーミング用

git clone https:github.com/jackaonliam/mjpg-atreamer.git mjpg-streamer→クローン
ls → mjpg-streamerディレクトリが入ったことを確認する
cd ./mgpg-streamer/mgpg-streamer-experimental/ →ディレクトリに移動する
make →ソースコードをコンパイル
sudo make install →コンパイルしたファイルをインストールする

webサーバーの作成用

sudo apt-get -y apache2 →アパッチをインストールする
systemctl status apache2 →アパッチのステータスを確認する active

これでインストールを完了

実行する

export LD_LIBRARY_PATH-.→環境変数を設定
mjpg_streamer -o “output_http.go” -w ./www” -i “input_uvc.go”←まちがってる?

Raspberry Pi 3 Model B+とOpenCVで すきまを測定したい #1

こんにちは かずまなぶです。(‘ω’)

モノとモノの隙間

モノとモノの隙間を測定するときに、ものさしとかノギスとかを使いますが、画像で測定できないかなと思い、押し入れに眠っているRasbery pi3 B+とOpenCVと3.5インチの小型タッチパネルを使って、ハンディな測定器を作れないか検討しはじめました。

手順は下記の通り考えています。

手順

  1. Rasbery piのOSインストーラーをwindows端末からwebにアクセスしてゲット。
  2. OSインストーラをマイクロUSBにコピーし、Rasberypiに指して起動してOSをインストール
  3. 初期設定:IP addr 固定 , ネットワーク接続 , カメラ有効化 , SSH有効化  
  4. OpenCVに必要なライブラリなどをインストールする
  5. OpenCVをインストールする
  6. カメラを接続して、写真を撮る
  7. 撮った写真をOpenCVで画像処理して輪郭検出
  8. 「実スケールの基準物体」と「輪郭検出した画像のエッジ間ピクセル数」との校正曲線を作成する。
  9. 上記輪郭検出によるエッジ間距離を校正曲線によって実スケールに変換する。
  10. 検出したエッジ間距離を表示する。
  11. 番外:タッチパネルを使ってみる
  12. 番外:SSHを使ってみる

事前準備が長いのですが、やっていきましょう。つまずいたらコメント欄から助けてください。(*’▽’)

1.Rasbery piのOSをwindows端末からwebにアクセスしてゲット。

https://www.raspberrypi.org/downloads/noobs/
ここから Rasbianのインストーラをダウンロードする

まずは、上記webサイトからラズパイ用のOSであるRasbianのインストーラをダウンロードしましょう。今回はNOOBSというRasbian+αのインストーラを使います。

NOOBS 「ダウンロードZIPをダウンロード」ボタンを押します。NOOBS Liteの方ではありませんので注意です。1.6GB 10分弱くらいかかりました。 →ダウンロード開始

 

2.OSインストーラをマイクロUSBにコピーして、Rasberypiに指して起動

ダウンロードしたファイル NOOBS_v3_0_0.zip を解凍してマイクロUSBにコピーして、ラズパイに挿します。

ラズパイを起動するとウィザードが立ち上がるので、NOOBSをインストールします。

 

3.初期設定:IP addr 固定 , ネットワーク接続 , カメラ有効化 , SSH有効化

この時点ではwifiを切断しておくこと。

①SSHの有効化(外部端末での接続設定)
メニュー>ラズパイの設定>インターフェイス>SSH有効>OK

ついでに一緒にカメラ有効にもチェックを入れておきましょう。

②IPアドレスの固定
メニュー>wirelessアイコンを右クリック>Wireless & Network Preferences
Configure>SSID
Automatically configure empty options>チェックを外す

IPv4 = 192.168.1.81/24 →81のところは好きな数字で良い
Router = 192.168.1.1
DNS Servers = 192.168.1.1

③wifiの接続
wifi>選択>パスワードを打つ

④固定アドレスになっていることを確認する
ip addr → inet 192.168.1.81

これでSSHからの接続ができる(はずなんですが!!できませんでした!)

⑤Puttyをwindows端末にインストールして、192.168.1.81にSSHでアクセスする。

→できませんでした。time outになります!!助けてください!

4.OpenCVに必要なライブラリなどをインストールする

 

SSHができなくても、何ら問題はないのでOpenCV関連をインストールして行きましょう。

インストール済みのパッケージをアップデートする。

何回か繰り返さないと完全にアップデートできませんでした。

私は アップデート2回→アップグレード1回で終わりました。1回目は結構時間がかかります。

cmake関係のインストール

 (コンパイラに依存しないビルドの自動化)
sudo apt-get install build-essential cmake pkg-config

画像の入出力用のパッケージをインストール

 

動画の入出力用のパッケージをインストール

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264
↑エラー発生 E: パッケージ libx264 が見つかりません

GTKをインストール(OpenCV のhighguiモジュールに必要)

sudo apt-get install libgtk2.0-dev

OpenCVの行列演算パッケージをインストール

sudo apt-get install libatlas-base-dev gfortran

Python 2.7とPython 3のヘッダファイルをインストール

sudo apt-get install python2.7-dev python3-dev

python2.7-dev はすでに最新バージョン (2.7.13-2+deb9u3) です。
python3-dev はすでに最新バージョン (3.5.3-1) です。

5.OpenCVをインストールする

OpenCVのソースコードをダウンロードして、解凍する

wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.1.0.zip
unzip opencv.zip

OpenCVの追加機能のソースコードをダウンロードして、解凍する

wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.1.0.zip
unzip opencv_contrib

解凍したソースコードを下記ディレクトリの中に入れる(まとめておく)

ディレクトリ:/home/pi/Library/opencv/

pipをインストール

wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py

virtualenvとvirtualenvwrapperをインストール

sudo pip install virtualenv virtualenvwrapper
sudo rm -rf ~/.cache/pip
↑なんか消す

vimをインストール

sudo apt-get install vim

vimで /home/pi/.bashrcを開く

[a]キーで行末に追記モード
下記8行を行末に追加する。
escapeキーで追記モードを抜けて :wqでファイルに保存する。

慣れてないと、なんでこんな操作方法にしたのか、意味不明に思います。

#virtualenv and virtualenvwrapper

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.5
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS=’–no-site-packages’
source /usr/local/bin/virtualenvwrapper.sh

ここまで

今編集した /home/pi/.bashrcを実行

source ~/.bashrc

一旦リブートしておく

sudo reboot

※2019.3.24現在、以下の仮想環境作成が動作しなくなりました。

替わりに、この時点で再度ターミナルを開いて下記のコマンドを打つと、OpenCVがインストールされました。(注:でもやってはだめです。)

sudo apt-get install python-opencv

しかし、この方法ではpython2のほうに古いopenCVが入ってしまい、python3でインポートしようとしてもエラーになります!!

解決策;

ひとまず仮想環境の構築はあきらめます。

作成したディレクトリ /home/pi/Library/opencv/のさらに下、

解凍したopencv-3.1.0に入ります。

下記のコードでターミナルから操作しましょう。

 

cd opencv-3.1.0
mkdir build-python3
cd build-python3

そして、

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.1.0/modules \
-D BUILD_EXAMPLES=ON \
-D BUILD_opencv_python2=ON \
-D BUILD_opencv_python3=ON \
-D WITH_FFMPEG=ON \
-D ENABLE_PRECOMPILED_HEADERS=OFF ..

そしてビルドします

make

このとき、makeの後ろにはなにもつけません。-j4をつけて CPUをフルでまわすと、とんでもない灼熱になり、ハングアップしてしまいます。

なにもつけなければ、1コア使用することになり、全部で4コアありますから25%のCPU使用量です。8時間くらいかかりました・・・

 -j2をつけて、2コアの50%でもよかったかもしれません。

続いて、インストールします
sudo make install

そして共有ライブラリの更新
sudo ldconfig

確認のために python3からimport cv2しましょう。エラーが出なければOKです。

超重要:このあと、openCVでカメラを起動しようにもできませんでした。

シェルコマンドではraspistillとかいうやつで起動できるのですが、cv2.VideoCapture(0)が機能しません。

ここではラズパイ専用カメラをしようしているので、一般的なwebカメラとして認識できるように下記のコードを実行することが必要でした。

注意点としては 最後の部分は 「ぶい よん える に」 です。

「ぶい よん いち に」 だと思って奮闘してしまいました。

sudo modprobe bcm2835-v4l2

最後に、テストコードを記載しておきます。これで動けばOKです。

 

以上より、これ以降の記事は捨てます。

仮想環境を作成する 名称:cv-python3の場合

mkvirtualenv cv-python3 -p python3

作成した仮想環境に入る

worken cv-python3 -p python3

成功すると(cv-python3) pi@raspberrypi:~ $ になる

仮想環境から抜けるとき(まだやらなくていい)

deactivate

作成した仮想環境を削除する(まだやらなくていい)

rmvirtualenv

numpyをインストール(仮想環境)

pip install numpy

OpcenCVをコンパイルしてインストールする(仮想環境)

workon cv-python3
cd opencv-3.1.0
mkdir build-python3
cd build-python3

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.1.0/modules \
-D BUILD_EXAMPLES=ON \
-D BUILD_opencv_python2=ON \
-D BUILD_opencv_python3=ON \
-D WITH_FFMPEG=ON \
-D ENABLE_PRECOMPILED_HEADERS=OFF ..

ビルドする

make

インストール
sudo make install

共有ライブラリの更新
sudo ldconfig

ファイル名をわかりやすいように変更する

cd /usr/local/lib/python3.5/site-packages/
sudo mv cv2.cpython-35m-arm-linux-gnueabihf.so cv2.so

共有ライブラリから仮想環境の共有ライブラリにリンクさせる

cd ~/.virtualenvs/cv-python3/lib/python3.5/site-packages/
ln -s /usr/local/lib/python3.5/site-packages/cv2.so cv2.so

OpenCVの起動をテストする

workon cv-python3
python3

import cv2
cv2.version

‘3.1.0’

ここでいったん休憩しましょう。いやー長すぎですよね!次回はOpenCVを使って輪郭検出をやっていきましょう。

圧倒的python:neural network を作成してみた。

おひさしぶりです、かずまなぶです(*´ω`*)

仕事が忙しくて家に帰ると、すぐに ぐったり、まったりしています。

今日はニューラルネットワークの基本を作り、MNIST問題をやってみました。

入力層、隠れ層、出力層を任意の数に設定して、学習率を定義します。

入力データは0.01~1.00にスケーリングしてから機械学習モデルに流し込むのが作法だそうです。

たったこれだけで

正答率が90%超え

というのはすごいですね。

今後は、時系列データ、機械設備の何らかの波形を機械学習してみようと思います。

HTMLの話

超基本的なものを張っておきますあ。

python:ローカルサーバーを起動する

anacondaプロンプトで

(base) C:\Users\omoiy>python -m http.server 8080

と打つと、
Serving HTTP on 0.0.0.0 port 8080 (http://0.0.0.0:8080/) …
127.0.0.1 – – [04/Nov/2018 23:11:06] “GET / HTTP/1.1” 200 –
127.0.0.1 – – [04/Nov/2018 23:11:07] code 404, message File not found
127.0.0.1 – – [04/Nov/2018 23:11:07] “GET /favicon.ico HTTP/1.1” 404 –

と返ってくるので、

ブラウザ上で

http://localhost:8080/

と打つと

Directory listing for / というローカルサーバーの
画面になります。

webブラウザの画面

でも、Flaskを使ったほうが良さそうです。こちらは別途アップします。

圧倒的python:selenium使用例~株式の自動判別~

こんにちは 圧倒的かずまなぶです。seleniumの使用例として株式の自動判別をします。株式情報サイトをスクリーニングして各種指数を取得し、内部で演算した結果、買う価値があるかどうか検討する価値のある銘柄を出力します。