生体・環境センサを用い、数値からストレス値を計測.行動識別から現時点での場所,状態を取得しストレス値を検知したらコーピングを実施する.コーピングは状況に応じた内容を被験者に指示を出し,実行させることで実現させる.コーピング指示はスマートグラスにARオブジェクトを表示させて知らせる.この流れを通じ人間の精神的身体的負担削減を目指す
主に使用するデバイスによってツールをインストールする。
| 使用端末 | android | iOS |
| ARCore | ArToolkit |
ARグラスとして扱いやすいものを選んだ。
この端末はARCoreをサポートしていないのでVuforiapositionも使用できない。
なのでARの使用範囲がかなり狭いです
以降は生態環境情報の取得する方法を習得している前提で記録する
csvファイルに保存,デンドログラム作成に関しては先行研究あんので省略
ラベリングは一回しか行わないので最新がどのラベルの行動分析と一致するかを探る.
得られるデンドログラムは関連度を表すユーグリッド距離を指定し,色付けされている.約2000で場所ごとに分けられることが分かっている.(吟味する必要あり)
1.1でクラスター番号とラベリングした場所を関連付けられたので,最新と同じ状況をどれだけ続いているかを調べる.
これはクラスター番号のリストを表示しているが,時系列で表示されている.
最新は最後なので最新=現在のクラスター番号は3とわかる.そして3が4つ続いているので12~16秒この行動が続いていると思われる.(カメラ取得は5秒で設定しているが3秒や4秒など薔薇薔薇で記録されることが多い)
この時間を取得し,どう行動経過時間を求める.
#場所が変わったかの判断と経過時間の算出
#前回と今回の値が一緒だったら時間を加算、違ったら計測しなおす
#start_timeを用意しnow_timeと引き算して分を出す.行動変化したらそれをstaretimeに変更する
if lastpoint != nowpoint:
print("行動変化")
start_time = now=time
else :
print("継続中")
#start_timeの算出、一個ずつ戻っていって行動変化したときの時刻をstart_timeとする
for i in group:
if nowpoint != group[length-2-i] :
start_time = list_time[length-1-i]
break
#行動経過時間の算出
total_time=now_time-start_time
#total_time = total_time.strftime("%H:%M:%S")...0dayを消したい
print('START ' , start_time)
print('NOW ' , now_time)
print("TOTAL " , total_time)
まずnowpoint=最新のクラスター番号とlastpoint=そのひとつ前のクラスター番号を比較.
同じなら同じ行動が続いている、違ったら行動が変わったということになる.
その2つに応じてstart_time=計測開始時刻を設定する.行動が継続されていると判断された場合は一つ戻って比較,を繰り返す.
時間の演算はdatatimeを使えば簡単な引き算で求められる.
今回は取得したデータを用いて行動アシスト表示の制作に入る
データをドライブに保存し,自身のPCでcsvファイルにログを備蓄したあと,データをもとにhtmlを作成する.
流れはcsvファイルを編集するコード(py),表示する文字ファイル(txt),表示されるウェブページ(html),MOVERRIO(グラス)の順で表示する
1.pyで収集したデータをもとに表示する文字を作成(選択)
2.pyでtxtに書き込む。mode指定により毎度書き直すことが可能.まず白紙に数値以外の文字(項目)を書き,データ数値の変数を置き換える形でかきこむ(以下のようにhtmlを編集するならtxtとhtmlは同じファイルに入れる)
3.htmlの中でtxtを埋め込み,変更しない部分はここで編集する.
4.PC(Windowsの場合)htmlがある📁のパスを通す.
Internet Information service (IIS)のDefault WebSiteの「機能ビュー」の「詳細設定」で📁物理パスを設定.
さらに「既定のドキュメント」に追加.
5.こうするとPCと同一Wi-Fi内でのみ「http://(PCの物理アドレス)」でグラスにhtmlが表示される.(図の最後はUnityとなっているがこれは自身が掲げた最終目標)
・py内のtxtファイル編集
path = r'C:\\Users\テキストファイルのパス\opendata.txt’
file_name = r"C:\\Users\テキストファイルのパス\opendata.txt"
opendata = r"C:/Users/htmlのパス/nan.html"
with open(file_name, mode='w+', encoding="utf_8") as f:
data_lines='場所 :\n状況 :\n\n経過時間 :\nLF/HF :\nコーピング :\nGSR :\n心拍 :\n'
data_lines2 = ('\n' + state)
#f.write(data_lines)
#data_lines = f.read()
# f.read()
data_lines = data_lines.replace("場所 :", "場所 : " + location)
data_lines = data_lines.replace("状況 :", "状況 : " + situation)
data_lines = data_lines.replace("経過時間 :", "経過時間 : " + str(total_time))
data_lines = data_lines.replace("LF\HF :", "LF\HF : " + stress_data)
data_lines = data_lines.replace("GSR :", "GSR : " +'{:3.3f}'.format(cvg))
data_lines = data_lines.replace("心拍 :", "心拍 : " + '{:3.3f}'.format(cvs))
f.write(data_lines)
f.write(data_lines2)
・IISの設定
・html内容(googleクロムで開くのがおすすめです)
・実際表示されたhtml
誰かおしえてぇ