IoT
※この方法はGoogle Driveを使った方法です.
近年、IoT技術の発展でセンシングデータを活用する事例が増加している。集めたデータの活用事例として、健康管理や行動識別などがある。本講義では、マイコンとセンサを使ったセンサデータ収集機器を使用する。そして、カメラの映像を画像分析、単語分散処理を使って数値化し、マイクから得られた音声を音声分析にかけたものをラベルとし、クラスター分析をすることでデンドログラムを描画する。
カメラ,マイク,GPS受信機セット(緯度、経度、海抜高度),温湿度気圧センサー,照度センサー,赤外線焦度センサー,9軸センサーモジュール(加速度xyz、角速度xyz、磁気コンパスxyz),体温センサー,心拍,GSRセンサー(皮膚電気反射)のデータを取得する.ただし,カメラ画像とマイク音声はテキストでも取得する.
取得したデータに対してリアルタイムでクラスター分析をすることで,行動識別を行えるようにする.
カメラで得られる画像や、マイクを通して得られる音声をテキストとして取得するために、画像分析と音声分析を使う。(画像識別や音声認識などともいわれる。)
また、テキストを数値として扱うために単語分散処理を行う。
さらに、通信方式としてシリアル通信とソケット通信、HTTP通信の3つを使う。その準備としてOSI参照モデルとプロトコルについての解説を先に以下で述べる。
画像から必要な情報を抽出し、統計的なデータを得る。AzureのComputer vision APIを使う。
音声から必要な情報を抽出し、統計的なデータを得る。Speech recognition APIを使う。
「王様」ー「男性」+「女性」=「お姫様」
のように単語の足し算、引き算ができるような処理。
Nltkとword2vecを使う。
ネットワークを理解するための“プロトコル”
コンピューター同士の通信をする際の規格のこと
1本だけの通信線を使い、HIGH/LOWの電圧レベルを連続的(=シリアル)に変化させて、意味のあるデータを送信/受信する通信方式
インターネットはTCP/IPと呼ぶ通信プロトコルを利用しますが、そのTCP/IPを プログラムから利用するには、プログラムの世界とTCP/IPの世界を結ぶ特別な 出入り口が必要となります。その出入り口となるのがソケット (Socket)であり、TCP/IPのプログラミング上の大きな特徴となっています。 このため、TCP/IP通信をソケット通信と呼ぶこともあります。
HTTPはTCP/IPを利用したアプリケーション層のプロトコル















ラズパイにGPSセンサとマイクを取り付ける。

ここからOSがWindowsの場合で紹介します。インストールするものも全部for Windows
Raspberry Piの始め方
再起動後 ターミナルでifconfigと入力して無線LANのIPアドレスを確認する
IPアドレスを確認することで、他のパソコンからSSH接続することができる
https://www.arduino.cc/en/Main/Software
よりArduinoIDEをダウンロードしておく。(情報実験で持たされる。)


書き込み後、シリアルモニタで表示するとセンサのデータが,で区切られて表示される。
左から
気温、湿度、気圧、光、
人感(1か0)、x加速度、y加速度、z加速度、x軸ジャイロ、y軸ジャイロ、z軸ジャイロ、x軸地磁気、y軸地磁気、z軸地磁気、体温、心拍、GSRセンサ
Auduinoとラズパイを連結して情報を得る
ラズパイ、PCで使うコード
#ref(): File not found: "newsensa_all_name.py" at page "センサとマイコン(Arduino, Raspberry Pi)による行動分類"
.ラズパイに入れるモジュール(他多数)
opencv matplotlib scikit-learn graph-marker
・PCに入れるnltkリソース
python
>>>import nltk
>>>download('averaged_perceptron_tagger')
>>>download('wordnet')
>>>download('universal_tagset')
.他
gspread oauth2client
・プログラム修正点
server2.pyの133行目、sensaK.pyの42行目の下線のIPアドレスを自身のパソコンのIPに変更する。
PC側でserver2.pyがうまく軌道できたら
[available to connect: 192.168.0.205](ここは自分のIPアドレス)の文字が表示されるのですぐラズパイの方でsensaK.pyを起動する。
上手くいけばラズパイもPCにもAuduinoで取得したデータ(数値)が表示され、ラズパイ側にはカメラ画像、PC側にセンサのグラフがリアルタイムで更新される。
リアルタイムでの情報取得できたらカメラ画像を収得する。画像ではなく画像に映っている情報を文字に起こして羅列しどこにいるのか、何をしているか判断することができる
7.で説明したカメラの使い方は取得データをPCのコマンドプロンプトに表示するもので今回はスプレッドシートに表示する。
今回使うのはpyhtonから得たデータをだれでもアクセスできるスプレッドシートに格納する。
●使うコード
要領がでかすぎたので研究室googleDriveの[学生>江崎>>]にコード集.zipがあるよ。
そのコード集をダウンロードして解凍したら、さっきの設定で保存した秘密鍵をこのフォルダに入れておく。
そしたら下準備としてprocessing_data.pyをエディタを使って開き、40行目のSPREADSHEET_KEYを変更する。
ここでのキーとはさっきの設定でつくったスプレッドシートのURLの一部である。
URLの/d/この部分/edit~
ここまでできたらラズパイとPCをつなげ、カメラから取得したデータを書き起こす。
アルディーノと連結したラズパイを電源につないでPCとリモート接続する。
●カメラ画像の書き起こしに使うコード
#ref(): File not found: "newsensa_all_name.py" at page "センサとマイコン(Arduino, Raspberry Pi)による行動分類"
まずこのコードを書き換える必要がある。
PC側でスプリクトエディタを開き、[公開>ウェブアプリケーションとして導入]し、
Project version > new
Execute the app as > Me
who has access to the app > Anyone
にする
更新するとURLが製造されるのでそのアドレスをコピーし、コードの103行目のURLを書き換える。
そしてコードをラズパイで実行する。
これはアルディーノのセンサデータとカメラ画像を5秒ごとに表示している。これを30回繰り返すとスプレッドシートに表示される。
詳しく見てみるとたしかにペットボトルの情報が書き起こされている。
スプレッドシートにシート2を用意し、PCで[processing_data.py]を実行するとデンドログラム(初期)が表示される。
本来は音声で項目を入れる予定でしたがマイクの性能がいまいちで手入力しました。
あと本日はGPSセンサが上手く働きませんでした
今後…
デンドログラムの項目を増やす。
項目足りない、わかりづらいとこあったらいってください。
質問あんまりないと思うので感想お願いします
今回の技術資料とは無関係
⇒補足
センサとArduino間の動作確認
ゼミやで
できたら完了このあとにスプレッドシート云々新規つくってツールのスプリクトエディタであれ書いてAPIの有効とかアドレスとかあのサイトのあれこれ書く。
サービスアカウントのキーをJSONにしておく。ダウンロードしたキーの名前を同じファイルに入れてclient_secretにして
スプレッドシートのURLのd/ここ/editの部分をprocessing_data.pyの40行目のスプレッドシートキーに入れる。
7/2 画像持ってくるとこの説明、ファイルじゃなくてフォルダ