#author("2023-12-15T06:12:01+00:00","default:ubi","ubi") #author("2024-02-10T03:03:45+00:00","default:ubi","ubi") [[Insider]] *研究テーマ [#bce81923] 視線状態のリアルタイムフィードバックによる Quiet Eye のトレーニング *研究計画 [#m4638fb9] +lslによる視線情報の取得 ++位置情報の取得 +++音によるフィードバックするプログラム作成 //*発表計画 [#r9457c24] //+2023年7月DICOMO2023(論文受理通知: 2023年4月10日、カメラレディ原稿締切: 2023年5月16日(火) 23:59 必着、参加申込締切: 2023年6月上旬) //--COLOR(red): (三上)具体的に日程が定まっていて、結構近いので、スケジュールを詳細化するミーティングをしましょう。青木君も交えてやりましょう。4/13の全体MTGの時にでも相談しましょう。私が忘れていたら声をかけてください。 *週間目標 [#lf1b08bd] -システムが正しく動いているか バグが出てないかを考えていく。 -できるだけ研究室に行くことにする -週16時間は研究するようにする *考えている実験(考え中のメモ) [#wc9d4711] -VR上でできていたQEシステムのように、リアルでもQEシステムは作動しているか、 アイトラッカーを使いQEシステムを使用している人とそれ以外の人でQE時間の比較 *参考web(メモ) [#t723677c] -Pupil Capture LSL Plugins --https://github.com/labstreaminglayer/App-PupilLabs/blob/master/pupil_capture/README.md -音を鳴らす際に参考にしたもの --https://qiita.com/a2kiti/items/4449d15e16c1793fd53f -Pupil Labs logo --https://pupil-labs.com/products/core/ -円検出の値 --dp=1.2, minDist=1000, param1=100, param2=25, minRadius=6, maxRadius=12 ---https://shikaku-mafia.com/cv2-houghcircles/ ---https://qiita.com/makky0620/items/07dfe5414f5a38e322d1 -pupil core サイト --https://qiita.com/issakuss/items/bfe2dc2dce6652ea710c --https://qiita.com/issakuss/items/30759f9ed0e49c366009 -gaze_x.value=int(inlet.pull_sample()[0][1]*910) -gaze_y.value=int(inlet.pull_sample()[0][2]*640) *(メモ)pupil capture の操作環境 [#j7094913] -General Setting --Audio mode ---sound onlyとsilentに切り替え可能 意味は不明 録画中の音? --pupil detection ---視線取得状態起動 起動していると視線情報の取得が可能、これを切ったら視線情報の取得状態が切った時の様子で固定される --Detect eye0 ---内カメラ0の起動 --Detect eye1 ---内カメラ1の起動 -Pluguin Manager --量が多いのでのちに更新、ここで起動したものがアイトラッカーに適用される。そのためPluginを入れた際はここから起動させないといけない --Accuracy visualizer 精度のビジュアライザー ---visualize mapping error マッピングエラーの可視化 ---visualize calibration area 校正エリアの可視化 ---outlier threshold[degrees] 外れ値閾値[度] ---angular accuracy 角度精度 ---angular precision 角度精度 --Annotation capture 注釈キャプチャ --blink detector 瞬き検出器 --camera intrinsics estimation カメラ内部推定 --fixation detector 固定検出器 --hololens relay ホロレンズ・リレー --log history ログ履歴 --network API ネットワークAPI --Head Pose Tracker ヘッドポーズ・トラッカー --pupil groups 生徒グループ --pupil lsl relay 瞳孔LSLリレー --remote recorder リモートレコーダー --surface tracker サーフェス・トラッカー --time sync 時刻同期 -- -- -- -- -- -- -Video sourcec --不明 --Swnsor Setting --Resolution ---解像度 (1280,720) --Frame rate ---fps値 30か60 --Auto Exposure Mode --- --Auto Exposure priority --- --Absolute Exposure Time ---絶対照射時間? -Recoder --録画(R)する際の設定。保存先など -Calibration --キャリブレーションする際の設定、そのためSingle Markerにしたらマーカをとるときの画面のサイズを設定できるし、Screen Markerにしたら画面に表示するキャリブレーションのマークの大きさなどの設定ができる。Ntural Featureは不明 -Network API --Port番号など 現50020 プログラム上で起動させたり、録画するなど行うには、個々の番号が必要なためここで設定or合わせる必要がある -Fixation Detector --固定検知器 赤い点の周りにある枠の様子が変わっていったことからおそらくその範囲ならば目線が動いても赤い点の状態が変化しないのではないかと考えらえれる。オンライン固視検出器は、分散持続原理に基づいて固視を分類します。注視は、瞳孔キャプチャworldウィンドウに表示される注視点の周囲の黄色の円として視覚化されます。 ---Maximun Dispersion 最大分散 3.00 ---Minimun Dispersion 最小分散 300 -Log History --行ったログ -Annotation Capture -- -Accuracy Visualizer --精度の可視化 ---Visualize mapping error マッピングエラーの可視化 ---Visualize calibration area 校正エリアの可視化 ---Outlier Threshold 外れ値のしきい値 おそらく ---Angular Accracy 角度の正確さ ---Angular Precision 角度精度 -Blink Detector --瞬き検出器 ---Filter Length フィルターの長さ ---Onset confidence threshold 発症信頼度のしきい値 ---Offset confidence threshold オフセット信頼度しき -eye-0 --Absolute exposure time が22だと大体良い *研究進捗 [#c00bc992] -2023年12月15(金) --# print("Eye_tracking Output") --# write_output('output.txt', "Eye_tracking Output\n") -2023年12月14(木) --conda activate test20 > log.txt 2>&1 --python test20.py >> log.txt 2>&1 --conda activate your_environment > log.txt 2>&1 python your_script.py >> log.txt 2>&1 -2023年12月13(水) --overleafのコマンド --https://cloudlatex.io/shortcuts/ -2023年12月8(金) --テスト10→練習30→テスト10 --他の人に実際協力してもらい1球あたりの打つ時間を減らす -2023年12月5(火) --160㎝ 3度8.3852446848 3.6度10.06634676 3.7度10.3467358672 -- -- -2023年12月4(月) -アイトラッカーの誤差として0.7度 仮定として視野角3.7とすると10.02340037135cm 視野角4だと10.8386558507㎝ --3D→2D やっている感じ3Dの方が精度が良い -2023年11月29(火) --システムの正確性。システムの限界を知る。何秒程度lslとの遅延が起きるか -2023年11月28(火) --実際にシュミレーションを行う。測定する人が何人で行うか。(自分一人かサポートする人が必要か)何分程度かかるか。 -2023年11月27(月) --グループ分けABをバランスよくするためにトレーニングしてから判断する。 --パッティングした後、QEできているかフィードバックするか。しないと一生QEできていないかわからない状態で続けてしまう -2023年11月24(木) --https://www.overleaf.com/project/65604b6b653032b133604feb -2023年11月21(火) --パワポの修正 --このシステムを使って、システム使用前の人と使用後の人でQEの上達しているかだったりパッティングが上達しているのかを実験で確かめたい。 -2023年11月20(月) --パワポの修正 --パッティング上達の重要性 -2023年11月14(火) --システム使用前と使用後の比較 --実験の詳細 何人 どんな声掛け -2023年11月13(月) --このシステムでトレーニングをすることで、使用していないときでもQEの成功率を上がる --繰り返す ---システム使用なし ---システム使用(5回) -2023年11月7(火) -視線検知約0.00秒 円検知0.09秒 音0.00秒 1秒で1378回作動 -パワポにまとめる -2023年11月6(月) -csvに距離とQEの範囲を記録するようにしてデータを記録できるようにして、実験等で利用できるようにした。ただデータが記録されるのが秒数かフレーム数かきちんと判明していないためグラフで言うところの横の値の単位が不明の状態なので横は改善しなければならない。 -これまでctrl+cで強制的にプログラムしていたのでkを押すことでプログラムを終了させるようにした。 -2023年11月2(木) --実験の考えとして以下のように考えた。 --https://docs.google.com/document/d/1d0zMwymaqB3kUAyNZnvqqNbiLDDCgoxH/edit?usp=sharing&ouid=111909222834980494535&rtpof=true&sd=true --具体的に計測の方法を考えていうこととする。 --計測としてQEの持続時間を知りたい。持続時間はプログラム内で距離を表すdistanceを取得し、その値が規定値を下回れば成功とする。ただ、数値ではanacondaで毎回出力されている。ただものすごい勢いで数値が出てくるのでエクセル等で手打ちするには厳しそう。なのでpythonで自動的にグラフとして出てくるのが理想。 --今のところ個別のプログラムでグラフを作るのは可能なので最悪anacondaでdictanceの値をコピーしてグラフを作ることができる。ただ、手間がかかるので一緒のプログラムとしたい。今のところ、プログラムのマルチプロセスの複雑さで実装に時間がかかっている。 --今のところcsvファイルにデータを書き込む形式にしている。 -2023年11月1(水) --https://drive.google.com/file/d/1YXEljhVG4vi_-9ly6soB85TgtTNx11Ay/view?usp=sharing --問題 提案 これまでの手法 解決するまでの実験 -2023年10月31(火) //起動に時間がかかってしまう --file:///C:/Users/pazur/Videos/Captures/myGaze%202023-10-31%2018-41-13.mp4 -2023年10月27(金) --調整 --参考文献等読み直し -2023年10月26(木) --青い点微調整...赤い点より多少下に行きがちだったので修正。赤い点の大きさも考慮 --https://drive.google.com/file/d/1m3Cz9JtCEr-wADi0K0JNqdxwx1g2AgYA/view?usp=sharing --https://drive.google.com/file/d/1Z67nL0jR_mZpePT7qXb4bKPVAMphIFvA/view?usp=sharing --ここ数日、視線情報の不備や誤検知などシステムを行っている最中に不備が起こりそうなものを改善していっているが,これ以上は難しそう。//赤い点の視線座標の大きさである範囲を考慮するとこのぐらいが妥当か --カメラ切り替え→キャリブレーション→カメラ切り替え→システムの流れを簡略化この流れは何度もやっているから慣れているとはいえ時間はかかってしまうのはどうするべきかは検討中。 --ストーリ追加 -2023年10月25(水) --青い点の位置の再調整 --視線のずれが大きかったため修正。赤い点ほぼ同期させるのは手間がかかった。 -2023年10月24(火) --円検出等の正確性の改善 --論文のストーリ -2023年10月18(水) --カメラ切り替え→キャリブレーション→カメラ切り替え→システムの流れを簡略化する -2023年10月17(火) --視線の同期 ---互いに同じ座標なのに違うところを指していることから、画面の比率と考えられる。 ---解像度は違っているように見えなかった。そのため、画面のリサイズの問題であると推測した。これまで、 cv2.namedWindow("myGaze", cv2.WINDOW_NORMAL) を使い自由に変えていたが、これを消去しcv2.resize(img_1, (910,510))を一回一回使用することでうまくリサイズをすることができた。 --これまで、(0,30,960,510)、(80,30,910,510)を基準として行っていたため、青い点の多少のずれが発生していたため赤い点と使い修正を行った。 --メモ --元のやつ ---file:///C:/Users/pazur/Videos/Captures/myGaze%202023_10_17%2014_52_31.png --ずれていたやつ ---file:///C:/Users/pazur/Videos/Captures/myGaze%202023_10_17%2015_36_13.png --修正して成功したやつ ---file:///C:/Users/pazur/Videos/Captures/myGaze%202023_10_17%2015_56_02.png -2023年10月13(金) --視線が同期しない原因として画面の範囲が関係していると考えられる。前までpupillabsのタブ等を消すのに範囲を狭めたのが原因となっていると考えられる。これまで、切り取った前提で青い点の位置を調整していたので映像を切り取って調整をしようとしたがうまくいかなかった。これは、前めでのは機能のバーなどを消したりして調整していたのでうまくいかなかった。そのため、画面を切り取るのではなく元の大きさで行おうと考える。まずpupil labsの状態のプログラムで調整してから、その調整を移行していこうと考えている。 -2023年10月12(木) --視線がpupillabとプログラムで歪み補正した映像とうまく同期できていない。 --再起動の問題はコンピュータではなくアプリを起動しなおせばよい。ただ起動中に切り替えるのは無理 --勘違いして歪み補正を入れていたが必要がないことに気付き修正した。(puppil labsは解像度を変えて対応しており歪み等はいじっていないため) --ただ歪んでいる状態でも視線の同期がうまくいっていない。青い点を無理やり合わせてもいいが、前のプログラムでは赤い点に青い点がトラッキングしているので何らかが間違っていると考えられる。ここらは要修正しなければならない。 -2023年10月10(火) --前回の歪み補正を自分が使っていたプログラムに組み込んだ。その結果、プログラムの起動に時間がかかってしまうが使用することには成功した。ただ、現状目線のキャリブレーションを行ってからカメラを切り替えてプログラムを起動させたりしなければならない キャリブレーションの正確性や再起動してしまう問題などを次に解決させいと考えている。 -2023年10月6(金) --pupil labs本来の歪み補正を行った。ただ行った後もキャリブレーションがどちらを基準にしているのかわからなかった。 --そのためpythonでの歪み補正の方を進めていった。チェス盤を使用しカメラのキャリブレーションを行った。 --https://drive.google.com/file/d/1hIatGUWEXWOqQE9ZpwcmnOhZmZHQ5Fid/view?usp=sharing --上にある通り魚眼で歪んでいた映像が綺麗になった。まだ今までのコードの同時使用を行えていないのでわからないがキャリブレーションがうまくできるのであれば成功しそうだ。ただ動作的に目線のキャリブレーションをどのようにして行うか不明になりそう。(アイトラッカーカメラは他で使用しているためキャリブレーションマークを判別できずにエラーが出そう。カメラと画面の比率は同じなのでやってから切りえてもいいように感じるが歪み補正の係数が異なるのでずれが生じそう) -2023年10月4(水) --箇条書きで構成を考える。 -2023年9月29(金) --歪み補正状態でQEを行うのは難しそう。ただ、歪み状態でキャリブレーションをしたらうまくいくかもしれない ---歪み補正を入れた時に視線を固定して行ってずれを判別してみたが端に行くほどずれが大きかった。 --また、カメラを切り替えpython上で歪み補正を試みたがうまくいっていない。 --pupilcore本来の機能の歪み補正のキャリブレーションは行ってみたが応答がなくなりとまってしまった。 -2023年9月22(金) --Google ScholarにてQEに関する論文をみて卒論の大まかな流れを構想していた //--https://journals.humankinetics.com/view/journals/jsep/36/4/article-p392.xml --QEが有用というところから書き始めたいと思っている -2023年9月20(水) --視野角は1.5度のところもあるから、音の出る範囲をボールのみにする方が良い。歪み補正を確認するために端っこらへんでQEをやってみる。 //これからの実験で行ってみることを考える -- -2023年9月19(火) --論文の書き方や参考文献になりそうな論文を探した。 --プログラムで円の検知が多少不安定だったので正確になるように改善した。 --音が鳴る範囲が見た目上でも大きく今のままだとQE範囲ギリギリで円の半径の取れる部分に誤差があるのは嫌なので音が鳴る範囲を狭めた。(6.5cm程度) -2023年9月15(金) --論文の書き方や参考文献になりそうな論文を探した。 ---熟練者と非熟練者とで視線の動かし方がことなるという知見 野球を対象にした研究*Kishita, Y., Ueda, H., & Kashino, M. (2020). Eye and head movements of elite baseball players in real batting. Frontiers in Sports and Active Living, 2(January), 1-12. ---ゴルフを対象にした研究 QuietEyeが重要であるという指摘 Moore L.J. et al, Quiet eye training promotes challenge appraisals and aids performance under elevated anxiety, International Journal of Sport and Exercise Psychology, 2013, 11, 169-183 [#wa15920e] --前回のプログラムを視線を固定化せずに視線情報を使って試してみた。正しくキャリブレーションができている場合は想定通りに動くこととなった。ただ円の検出の不確定さや視線の不安定さが残っている。また、赤い点を消す方法として何を使うべきか -2023年9月14(木) --研究進捗 --前のプログラムの不具合を修正 --https://drive.google.com/file/d/1ktPyZP55aI8je84MfZkqA4zYgQtz22Xh/view?usp=sharing --少し範囲が広いので範囲を狭めたほうが良いかも。これはボールの半径をとる際少し大きくなっている可能性もあるので狭めたほうが正確なデータがとれるかも --メモ ---distance.valueの部分が不具合が起きていると推測ができたのでその改善。一遍に計算を行うのではなくmath.sqrt関数のみ別に計算。中心から約8cmの範囲で音が鳴るように半径を変更。 ---だがこの方法では半径に依存しているためゴルフボールに依存するということとなる。今使っているボールは一般的に約43mmから44mmなためあまり問題がないがマグナボールを使用する場合は注意が必要。 -2023年9月12(火) --研究進捗 --前の円の半径を参考にすることで想定している程度の範囲の描画をするようにプログラムを修正することができた。だが、音の出る範囲が正しくなっていない状態となっている。円の半径の部分と距離のピクセル数は扱いが違う可能性? --距離の計算にユークリッド距離の平方を計算している。この時に平方根を使用をしていないままだったのでmath.sqrtを加えたした。ただ画面のキャプチャが出なくなった。次回以降修正をしていきたい -2023年9月12(火) --研究進捗 //--半径の値 -2023年9月8(金) --内定先提出物作成 -2023年9月7(木) --研究進捗 ---ゴルフボールの半径を利用し音が鳴る範囲の調整を試みた。 ---ただ思った以上に半径を利用した範囲が小さかった。半径が正確に取れていないためか?試してみた結果を次に示す。(視線は固定中) ---https://drive.google.com/drive/my-drive --以下メモ --座標で8cmを測かれるようにボールの半径を使うこととした。ボールの半径は円検知でとれているのでこれを基準とすることでボールトの距離を測かれると思い試してみる。ゴルフボールは最低直径42.67mm以上である。試しにボールを約4.3cmとして使ってみる。 --半径を基準にしてみた結果、想定していた範囲よりも小さくなった。半径が正確に取れていないためか? -2023年9月5(火) --座標で8cmに対応する部分が不明 --distや座標の部分のプログラムを修正 //--(メモ)ゴルフボールは最低直径42.67mm以上 -2023年8月31(木) --前回のは物体との距離を調べようとしてたので間違っている --視野角3度の範囲をタンジェントを使い計算。 ---tan(3度) ≈ 0.0524078 ---物体を見る範囲(横幅)を計算 ---物体を見る範囲 = 視点からの距離 × tan(視野角) ---物体を見る範囲 = 155cm × 0.0524078 ≈ 8.123 cm --このことから155cmにおける視野角3度のとき見えている範囲は約8.124 cmといえる。そのためゴルフボールから8.124 cm以内に視点を集中させればQEできているといえる(ゴルフの例では,熟練者の QE では,ボー ルの中心を視野角 3 度程度で,3 秒程度連続で注視すると される.ため中心からの距離と考えた) --ただプログラムにその値を入れる部分で苦戦している。これは、実際の距離は約8.124 cmだが、プログロム上にの値は座標なのでその変換に手間取っている。 -2023年8月29(火) --ボールと視線の間を正す。 --視野角3度以内で高さを155cmを基準に行ってみることとする。 --ボールの距離を調べるには物体(ゴルフボールの中心から3度以内なのでゴルフボールの中心を調べる)のピクセルが必要なのでpythonで調べてみたら以下のことから100ピクセルということが分かった。 >https://drive.google.com/drive/my-drive >https://drive.google.com/drive/my-drive -以下誤り --視野角3度のタンジェントを計算 --->tan(3度) ≈ 0.0524078 --物体までの距離(d)を計算 --->d = 物体のサイズ / tan(視野角) = 100ピクセル / tan(3度) ≈ 1906.38 ピクセル --画面の縦横比を用いて、ピクセル数を実際の距離に変換 --->画面の縦横比 = 1280 / 720 ≈ 1.7778 --->実際の距離 = d / 画面の縦横比 ≈ 190--6.38 / 1.7778 ≈ 1073.15 cm -これらのことから、ボールト視線の位置が 1073より下の時に音が下がるようにする。ただ計算が正しいか確証が少ないため次回生きた時も確認するようにする //---物体までの距離(d)を求めるために、タンジェント(tan)の関数を使用する。 //~tan(視野角) = 物体のサイズ / 距離(d) //---物体のサイズは100ピクセルです。 //~これにより、tan(視野角) = 100 / d //---視野角3度のタンジェントは //~tan(3度) ≈ 0.0524078 //---距離(d)を計算 //~d = 100 / tan(3度) ≈ 1906.38 ピクセル //---ピクセル数を実際の距離に変換するために、画面の幅を解像度で割ることで、1ピクセルあたりの実際の距離を計算 //~1ピクセルあたりの実際の距離 = 155 / 解像度の幅 = 155 / 1280 ≈ 0.1209 cm/ピクセル //---距離(d)を実際の距離に変換する //~実際の距離 = d * 1ピクセルあたりの実際の距離 ≈ 1906.38 * 0.1209 ≈ 230.588 cm -2023年8月25(金) --研究進捗 --show undistorted imageを使う場合 --(800,600)でも視線が正しく推定できるか試していたがうまくいかなかった。これは通常の(1280,720)でもうまくいっていない気がするのでキャリブレーションの問題か。 --Camera Instrinsics Estimationを行ってみてキャリブレーションをうまくできるようにしようと思ったが、何回かやっても応答がなくなってしまう。PCのスペックの問題か --show undistorted image中にキャリブレーションを行って計測してみたら割とあっているようにも見える --file:///C:/Users/pazur/Videos/Captures/myGaze%202023-08-25%2017-42-39.mp4 -2023年8月24(木) --(1280,720)は16:9 (800,600)は4:3 --pupil captureの視線検知がうまく行われているかいくつか試した。 --キャリブレーションの結果 ---近くの部分の視線を注視した場合差異はあまり見られない。 --ただボールを見る距離だと視線の位置に違いが生まれてくる。今のところ(800,600)の場合少し右にずれるような感じ --今のところ(1280,720)でshow undistorted imageを行うと視線位置の違いが見える。 --file:///C:/Users/pazur/Videos/Captures/myGaze%202023-08-24%2017-03-07.mp4 (1分7秒程度) --中心位置なら差異があまりないように見えるが端部分をみると大きな差異がありそうだ。そのためこの方法を使用するならサポートされていない画角を使用しないといけない。だがその場合はアイトラッカーの精度が下がる可能性 --魚眼レンズを使用した場合レンズの修正 https://qiita.com/hiro_o_tama/items/cb544fe64ca373750aae --また、pupil captureのCamera Intrinsics Estimationを使えば提供していないカメラでもキャリブレーションを行えるようなので(800,600)の比率でも行える可能性 --画面の(800,600)の場合、真円ではないので誤検知が増える可能性 -- -2023年8月22(火) --研究進捗 //--試している感じ(800,600)はいい感じ --画角を変えたせいか円検出がうまくいっていない --test01が元の(1024,720) --解像度を頻繁に変えていたら以下の文言が出てきた。 ---NO camera intrinsic available for camera pupil cam1 ---loading dummy intrinsic, which might decrease accuracy --- Consider selecting a different resolution, or running the Camera Instrinsics Estimation! --要約すると内側カメラが本来のものではないため精度を低下させる可能性がある。別の解像度を選択するかCamera Instrinsics Estimationを使うか。今のところあまり精度の違いはあんまり見られないように感じる。多少はあるが誤差の範囲か?正直ただ縦横比が違うのでボールが楕円気味になり検出しずらい状態。 -2023年8月18(金) --研究進捗 ---カメラの比率によってshow undistorted imageの影響を受けない ---前の比率の時に円を検出等を行っていたのでそこらの修正を行う必要がある。 --(メモ) ---show undistorted image中にキャリブレーションしても元のカメラ映像から視線補正している可能性あり。これはshow undistorted image中のキャリブレーションにの際マークに対してエフェクトが出ないことなどから推察した。カメラ本来の映像か、それともpupil labsに表示されている画像でキャリブレーションがあるか調べるため、全然違うカメラを使用してキャリブレーションしてみるか?(ただその場合はwouldカメラが切れてしまうので違った意味合いの結果になってしまうかも) ---カメラの切り替えはうまくいっていない。libusbk usb devicesについてつまずいていた。だがwouldカメラ相当の映像がなければキャリブレーションが行えない。 ---ここでカメラを切り替えて試しているときに赤い点が大きくなってしまいなおす方法を模索していた。そこで判明したのはカメラの比率が返ることができ、それにより赤い点の大きさが変わること 比率が変わらないのは(1024,768)(800,600)(1280,1024)(320,240)ここはshow undistorted imageの影響をうけない。(対応していないという方が正しいか?) -2023年8月17(木) --pupi labの内カメラの位置の調整。試している感じ下から見上げるように行うと視線をとりやすいと感じた。 --show undistorted image(以降歪みなし映像)と通常の画面の時の赤い点の比較を行ってきたが正確な確証は得られなかった。(うまく歪みのない映像に対応しているように見えなくもない)そのため、このまま使い積図けるには検証が必要か? --ここで歪みなし映像の時にキャリブレーションすればいいのではないかと考えた。これまでは歪みがある状態でキャリブレーションを行ってきたが歪みがない映像時に行えば視線の様子からうまくいくのではないのかと考えた。実際に行ったところ、キャリぶれージョン自体は行えた。プログラムを起動してみたところうまくいってるように見えた。ただキャリブレーションの天坂視線がうまく同期していないように見える(これは歪みの映像関係なし)、こういった部分の細かい修正を行っていく -2023年8月 --14~16お盆 -2023年8月10(木) --内定先の提出物作成 -2023年8月8(火) --研究進捗 ---歪みはキャリブレーションがうめくできていれば平行な線はカメラ越しで歪まずに平行な線としてみることができる ---今日は音が小さくなっていくところがすぐに消えていたのその修正について行った ---ただカメラの調子が悪くキャリブレーションするまでに時間がかかった。 ---急に音は消えていなかったので音が弱くなっていく動作はできていると考え修正を行っていった。 ---r=r-0.0002の時は音が消えるのに約4秒、r=r-0.0001の時は約6秒で音が徐々に消えていった。また、音は一定に下がっていくので下がり始めはわかりにくい。音が戻るタイミングはわかりやすい。 ---ただQEの精度は上げる必要はありそう。 ---フャイル名test01 -2023年8月3(木) --show undistorted imageを使うならば使っていても視線の位置が問題ないかどうかを確認する必要がある --プログラムがうまくいってないので改善する --研究進捗 ---time.sleep関数がうまく起動しない。まずは音の下がっていくところをしっかりと書いていきたい。また、show undistorted imageを使うとき視線も一緒に補正されている気がする。これも確認していきたい -2023年8月1(火) --研究進捗 ---show undistorted image中の円検出が不安定だったので修正した。ただ誤検出が多くなっている。白い円のみを検出するようにしたが、うまく反応しないため失敗、そのため近くに円に近いものがないところで検出を行うこととする。ゴルフは緑の芝生で行い余計なものはないため平気と考える。 ---show undistorted image中でもしかっりとキャリブレーションすれば青い点はボールに寄せられ音は消える方向になっている。ただ円の検出がゴルフボール以外に反応してしまうと座標がずれてしまいきちんとした計測が難しい。今のところ検出中に机のものなどが移ると計測が不十分となってしまう。そのため今は部屋の中心ぐらいでないときちんと検出できない。改善しようと円の検出の値をいじっているが円検出を厳しくするとゴルフボールが検出されないなどといった理由で難航している ---file:///C:/Users/pazur/Videos/Captures/myGaze%202023-08-01%2017-08-43.mp4 -2023年7月28(金) --研究進捗 ---unknown@Local USBとなってしまっていてpupil captureにwebカメラをつなぐことができなかった。ただ、アプリの方のカメラにpupil labsのカメラをつなぐことができ視線のデータの方はきちんととれていることから問題はないように思える。このためpupil labsをカメラとして使うことができ、open pose で使用することができるといえる。 --またCamera intrinsics Estimationのshow undistorted imageで赤い丸が消え、lslに情報が流れていることが確認できた。このためopen pose等でうまくいじることはできないが従来通り使用ができると考えられる。 -2023年7月27(木) --研究進捗 --ミーティングでカメラにつなぐ方法を知れた。 --デバイスマネージャを使いli??? USBにあるwould cameraを選択しデバイスの更新を行いコンポジットを選択する。その後pupilがカメラとして認識されるのでpupil cameraで使用しているカメラををwebカメラに変更する。そしてカメラアプリを起動してpupilcameraに変更する。この時USB接続だと同時に起動が難しいのでタイプCにつなぎ接続 このようにするとpupilcaputureのカメラを使用しながら視線検知ができる。これができたら魚眼レンズぽくなっているのでこれを直す。これはカメラをして認識できているのでopen cvで変更とする。 --この過程でLi??? USBをダウンロードしなけらえばならないので手間がかかりそう。 --またCamera intrinsics Estimationのshow undistorted imageで赤い丸が消えたのでこの状態でLSLに情報が流れているのか確認しときたい --ネットワークAPIによって操作できるやつ例 ---'R' # start recording with auto generated session name ---'R rec_name' # start recording named "rec_name" ---'r' # stop recording ---'C' # start currently selected calibration ---'c' # stop currently selected calibration ---'T 1234.56' # resets current Pupil time to given timestamp ---'t' # get current Pupil time; returns a float as string. ---'v' # get the Pupil Core software version string ---# IPC Backbone communication ---'PUB_PORT' # return the current pub port of the IPC Backbone ---'SUB_PORT' # return the current sub port of the IPC Backbone -2023年7月25(火) --研究進捗 ---ネットワークAPIを用いることで管理者としてpythonから操作が理論上できる気がする。ただ、赤い丸の変更などはできるかは不明。 ---Pupil Labsのアイトラッカーソフトウェア自体の設定やオプションを利用できないかを考え機能を試していたがめぼしいものが見当たらない ---ただ、pupil labsの機能等については理解を深めることができた。 ---APIを少し動かしてpython上で録画やキャリブレーションを行うことが可能となった。今のところもとからある録画やキャリブレーションなどは行えそうだ。今後機能にはおそらくない赤い点の変更ができるか試していきたい -2023年7月21(木) --研究進捗 --pupil captureのフャイルの中に大きさが変更できるコードがあると考えたので調査していた --pupil captureのフャイルは以下の通り ただどれも拡張子を特定できず 中身は不明 ---Default.plmodel テキストフャイル ---prerecorded_calibration_result バイナリファイル ---prerecorded_calibration_setup テキストファイル ---Pupil_Cam1_ID2.intrinsics バイナリファイル ---surface_definitions_v01 テキストファイル ---user_settings_eye0 テキストファイル ---user_settings_eye1 テキストファイル ---user_settings_world テキストファイル ---下記以外にもpupil lab の用語やデータなどを調べたり実際に行っていたがいまだ赤い点を小さくする方法は不明 ---https://docs.pupil-labs.com/developer/core/overview/ -2023年7月20(木) --研究進捗 ---画像を補間をした場合でもその画像に円検出をしなければならない -2023年7月18(火) --研究進捗 -画像補間をすれば赤丸を消してボールを検知できるかもしれないと考えプログラムを作成した。ただ保管してゴルフボールの検知ができるのかは不明 -2023年7月14(金) --研究進捗 -pupil captureの機能をいろいろ使ってみてまとめた --今後の目標 ---今はQEが難しい状態なのでその解決策を探っていきたい ---赤い点をどうにかする(小さくしたりすかしたりする方法を考える) ---白いボールを検出できるようにしても面白い、前述の方法も同時並行で使用すると誤検知がなくなりそう ---青い点はキャプチャしたものに描画しているのでQEができない状態には関係がない。 -2023年7月13(木) --研究進捗 ---とりあえずpupil captureをいろいろいじっていたが進展は見られず、別のウィンドウを使用しようとも考えたがカメラとして認識されていないので他のアプリに使えずに苦戦中 ---複数起動してただのカメラ映像として使おうとも考えたが、一つのカメラを複数使えるわけもなく断念 -2023年7月11(火) --研究進捗 ---赤丸を小さくできるかはまだわからない ---またはアイトラッカーと円検出を分けて考えようとしたがアイトラッカーじたいがカメラとして検出されていないので微妙か? --メモ --- file:///C:/Users/pazur/Downloads/21b_minami%20(2).pdf 頭を動かすので3Dで行った方が良い ---アイトラッカー自体のfps値は30か60に変更可能 おそらく画面キャプチャ―側は24~26fps ただこれは画面録画したものからfpsを算出したためあっているかわからない -2023年7月6(木) --研究進捗 ---前回調整したプログラムを試してみたがうまくいかなかった。 ---ワールドカメラの傾きによる不具合があったため調整しなおした ---モニターを見ているときの青い点と下のボールを見ているときの青い点の位置に違いがあるように感じる。 ---file:///C:/Users/pazur/Videos/Captures/myGaze%202023-07-06%2015-20-48.mp4 ---上にある通り下を向いているときの青い点を赤い点と同期させることができた ---x740 y660 -2023年7月3(月) --研究進捗(システムの正確さについて) ---前回の話し合いより、画面のサイズの違い(左側と右側を切る)による視線情報の不具合を直したい。 ---しかし。今は一回一回自分が画面のウィンドウのサイズを操作している。そのため、最初のウィンドウのサイズを固定しないと毎回違う結果が出てしまうことが考えられる。 ---これらのことから、まずは1回1回の処理で画面上に表示する処理を入れることを行おうと考えた。 ---参考資料より、指定したサイズでウィンドウを開くことは完了した ---以下参考資料(メモ帳を開くやつ、これを利用して言いたい) ---https://pentan.net/python-movewindow/ --ここでこれまでに含まれていたプログラムの中で視線情報をとる範囲を変更にできる部分に気付いたため、あまり意味がない作業となってしまった。 ---青い点の位置の補正を先ほどのデータから計算して行った(横910-80=830縦510-30=480) ---きちんと動作できているかは次回以降行うようにする -2023年6月23(金) --研究進捗 --今後の目標 ---画面サイズによって青い点の座標の違いによって画面上の参考にしているところが違うのでそこの修正 ---アイトラッカーのfps値とプログラム上のfpsの差を求める。(青い点の表示する際の遅延度合い) -2023年6月29(木) --研究進捗(システムの正確さについて) ---前回調べた通り視線情報の補正を行っていった。 ---しかし、修正をしていったがうまく赤丸と青丸の誤差が変わらなかった。 ---下記は倍率750、430。参考までに ---file:///C:/Users/pazur/Videos/Captures/myGaze%202023-06-29%2015-16-32.mp4 ---視線を急に切り替えると赤丸は視線に張り付いているのに対し青丸は数秒程度動かない差異があるように感じた。 ---次回はこの続きから行いたい -2023年6月27(火) --研究進捗(システムの正確さについて) ---画面サイズによって円検出の不安定な部分があったので再調整を行った。(minDist=1000とすることでゴルフボール以外の円の検出をしずらくした。これにより他の円による干渉が少なくなるので多少円の検出を緩めた) --次にプログラム上で指定している視線情報(青丸)とアイトラッカーによる視線情報の違い(赤丸)について ---赤丸と青丸がさしている部分に違いがある(問題として遅延や精度が関係している?) ---lslの部分が遅い? ---file:///C:/Users/pazur/Videos/Captures/myGaze%202023-06-27%2016-17-10.mp4 ---赤丸と青丸の動機がうまくできていないことが原因だと上記の動画より推測した(おそらく自分しか見られない) ---青丸は赤丸よりも常に右上にあるように見えるのでその部分の修正が必要であるといえる ---time sleep関数があるがコメントで消したりつけたりしてみてもあまり変化は感じないので原因とは考えずらい。 ---今一番考えられる原因としてはgaze_x.value、gaze_y.valueとしてint型に取り込んでいるときの倍率が異なっている点が挙げる。次点でそもそもlslの通信の時のによる遅延などの関係により取り込む際の値が違う可能性(ただしばらく同じところを見ていても変わらないので遅延よりも値が変といった方が正しそう) ---次回以降これらの点に対して詳しく考えていきたい -2023年6月23(金) --研究進捗 --今後の目標 ---システムが正しく動いているか バグが出てないかを考えていく。 ---ボールの検出、身長によってボールの大きさが変わっていくのでそこの修正等 (身長、周囲の環境等) ---視線の情報がきちんと使われているか きちんと取り込んで使われているか ---とりあえず研究室で正しく実装できるかについて行っていきたい。外の環境で試すのはその後 ---これを行った後に実験(リアル空間でもQEシステムはきちんと動いているのか)等やっていきたい。できればこの流れを2回程度行いたい -2023年6月22(木) --研究進捗 ---QEの検知の不具合に円の検知が関係していると思われる。そのため、検知に関するプログラムを調べ変更していく ---検知を甘くすると画像処理を行う画面のキャリブレーションのマークに反応してしまうなどしてしまい難しい ---そのためキャリブレーションマークなどを計測画面の範囲外にすることで行うことにした。これによりボール検出の設定を緩めることができしっかりと検出することができた。 ---(メモ)https://shikaku-mafia.com/cv2-houghcircles/ 画像中から円を検出する --cv2.HoughCircles 画像中から円を検出するプログラム その因数の意味するものを以下に示す。また、ゴルフボールの検知において変えるべきだと思う場所は★を付けた ---第1引数: image は画像データ です。 今回はグレースケール画像 gray を渡している。 ---第2引数: method はハフ変換の手法です。 cv2.HOUGH_GRADIENT を渡しておくのが良い。 ---第3引数: dp は投票器の解像度です。dp の値が大きいほど検出基準が緩くなり、値が小さいほど検出基準が厳しくなります。ケースや画像にもよりますが、0.8 ~ 1.2 くらいの幅で調整するのが良いかと思います。2以上を渡すと誤検出が多くなり、0だとerrorが発生します。 ---★第4引数: minDist は 検出される円同士が最低限離れていなければならない距離です。この引数で同じ円に対する重複検出を調整します。 現在はminDist=20 ---第5引数: param1 は Canny法のHysteresis処理の閾値 です。よく分からないのであれば、100前後を固定で渡せば良いと思います。個人的には、この引数で調整するくらいなら、他の引数で調整した方がきれいな円を検出できると思います。 ---★第6引数: param2 は円の中心を検出する際の閾値です。閾値を低い値にすると円の誤検出が多くなり、高い値にすると未検出が多くなります。 現在はparam2=30 ---★第7引数: minRadius は検出する円の半径の下限です。minRadius で設定した値以下の半径の円を検出対象外とします。 ---★第8引数: maxRadius は検出する円の半径の上限です。maxRadius で設定した値以上の半径の円を検出対象外とします。 -2023年6月21(水) --研究進捗 ---キャリブレーションの前にゴルフのボールの検出が不安定だった。次回はそれを修正していきたい -2023年6月19(月) --研究進捗 ---QEできている時間をグラフで記録できるようにしたい ---リアルタイムに描画するのは厳しそう ---プログラムにわかりやすくコメントを付けた -2023年6月16(金) --研究進捗 ---実験がどのようにすればできるか考える。先輩の内容を参考にしようと読み込んだ。 ---HMD 環境での実験で音によるフィードバックシステムに一定の効果があるとしているため、実打環境で効果があるか確認したい。(または、HMD 環境での実験で効果が出たため、これを前提にして他の実験行うか考えたい) ---実験をしようにもシステムがまだ不完全なので改善が必要であると感じた(視線のブレ、遅延の度合い...等) ---(メモ)しっかりとキャリブレーションをしてもどうしてもずれてしまうときどうすればよいのか...、キャリブレーションができている範囲をどのように設定するべきか、これから先、注視時間を測定することになると思うため、その実装もしなければならない -2023年6月15(木) --就活 -2023年6月14(水) --スライド作成 --就活 -2023年6月13(火) --スライド作成 ---先輩の行った実験がこっちらでも行えるか考えていきたい --就活 -2023年6月12(月) --就活 --スライド作成 -2023年6月1(木) --(メモ)QuietEyeはゴルフのパッティング時やバスケのフリースローなどに有効、しかし細かくQuietEyeがどう役立っているかなどは我々の領域外である ---スライドの枚数が足りないと感じたのでこれからシステムについて実験を行ったり、柊澤先輩の内容もスライドに取り入れるようにしたい -2023年5月31(水) --進捗 ---dicomoの原稿をみながら、差異、勘違いが起こりそうな部分のスライド修正 ---話す内容がわかりずらい部分があったので修正 -2023年5月30(火) --進捗 ---スライド作成 ---既存の資料を参考に作成している -週間目標 --dicomoのスライド作成 -2023年5月24(水) --進捗 ---dicomoの原稿を見る ---他のフィードバック方法も試せるのか考えたが、リアルタイムに最適なのは音だという考えに至った -2023年5月19(金) --進捗 --dicomoの原稿の図作成 -週間目標 閾値はQEの定義から決める。(ボールからの距離を決め打ちした方がよさそう)、rは1を5秒かそれぐらいに0になるように減らす。 -2023年5月18(木) --進捗 --再来週の発表のためのスライドの作成 -2023年5月15(月) --進捗 --研究内容からパワポを作成した。その過程で研究の目的と内容の再確認を行った。 ---練習中にリアルタイムにQEの状態をフィードバックすることで効果的なQEのトレーニングを実現することを目指しています。 -2023年5月8~9(火) --進捗 --前回の反省からキャリブレーションを丁寧に行うことにした。 ---画面を4分の一にして行うと円検出の精度が下がったので修正した。 ---円検出する際どうしても右側のアイコンも一緒に検出されてしまうため実行するときは画面の右側をはみ出すようにして行う。 -2023年5月7(日) --進捗 --大学で以下の方法で試した。 ---ifの条件を0以上の時など無理やりでもできるようにした。 --ハンディキャップの低いゴルファーのQE時間は平均2.0~3.0秒であるといわれているためQEの時間を3秒とするようにした。 ---注視すれば3秒くらいで音が消えていくようにした。 --課題 ---アイトラッキングの精度の問題、実際にアイトラッカーをかけて実行すると音が0になるまで注視できない。 ~→QEの範囲または注視が多少外れても音の変化はしないよう改善の必要がある可能性 ---音が不定期に途切れる ~→タスクマネージャーをみたところcpuが100%なので処理がしきれていないのかも? -2023年4月28(金) --進捗 ---大学で行ってみたがうまくいかなかった。rの値が変化するようにはなったが音がノイズのようになる。これはrが0になってもずっと-の計算を行っているのではないかと考えた。しかし条件文(if文)を加え0を下回らないようにしてもうまく作用しない。また、distanceの取得がはやいのか一瞬で音が変わってしまう。そのためr-0.001としてrの音がゆっくり変化するようにした。だが着目しすぎると金切声のようなノイズが走ってしまう。次回はrの値が0で止まるようにしたい。if文ではうまくいかなかった。週間目標の達成率は45% -2023年4月27(木) --進捗 ---先日作ったプログラムがうまくいかないように見えたため改善を試みる。関数内の変化なため保存されていると考えていたrが変化しない可能性、改善をしたかったがうまく方法がわからなかった -2023年4月25~26(水) --進捗 ---プログラム読み直し 閾値の部分をif文にて書いてみた。rの値を保存しといて閾値を超えればrが1に即座に戻り閾値を下回ればrの値が0.2ずつ下がればよいと考えた。lslにつないでないため実際に実行できるかは不明、ただrの部分が変に長くなってしまったので明日以降改善していきたい -2023年4月24日(月) --進捗 ---プログラム読み直し -2023年4月21日(金) --進捗 ---閾値はQEの定義から決める。(ボールから100msいないなど決め打ちした方がよさそう)、rは1を5秒かそれぐらいに0になるように減らす。どのようにプログラムを書くかはイマイチ。うまく反映がされない。 -2023年4月20日(木) --進捗 ---閾値がどのあたりがいいか、rをどんな感じに減らしていくのか考える -2023年4月19日(水) --進捗 ---MTGでのこともあり音を鳴らすところまで達成。今は物体との距離によって音の大きさが変わっていくようになっている。これをある閾値を下回ったら音をだんだん小さくしていきたい。(プログラム的にはrの値を減らしていきたい) -2023年4月18日(火) --進捗 ---家でできる範囲で試したが解決せず。音声がずっと鳴り響くところまで -2023年4月17日(月) --進捗 ---プログラムを読み直した -2023年4月14日(金) --進捗 ---無駄な部分をなくしわかりやすくした -2023年4月13日(木) 就活のため研究進捗なし -2023年4月12日(水) 就活のため研究進捗なし -2023年4月11日(火) --進捗 ---プログラム作成中 ---試したがうまくいかなかった。(新しくコード追加したら強制終了してしまう。原因は不明、このためlslのデータもどんな感じに取れているのかもわからない) ---実行するのに手間取ってしまい時間がかかった。(pupil起動時lslを毎回起動しないといけないみたい?気づくのが遅れてしまった) -2023年4月10日(月) --進捗 ---プログラム作成中 ---このページ作るのに思ったより時間がかかった。 *メモ(簡易的にURL貼り付け場)[#u36a7621] -[1] Kishita et al., Eye and Head Movements of Elite Baseball Players in Real Batting, Frontiers in Sports and Active Living, Vol.2, 2020. --https://www.frontiersin.org/articles/10.3389/fspor.2020.00003/full -[2] Tien et al., Eye tracking for skills assessment and train- ing: a systematic review, Journal of Surgical Research, pp.169-178, Vol. 191, Issue 1, 2014. --https://www.sciencedirect.com/science/article/abs/pii/S0022480414004326 -[3] Lebeau et al., Quiet Eye and Performance in Sport: A Meta-Analysis, Journal of Sport and Exercise Psychol- ogy, pp.441–457, Vol. 38, Issue 5, 2015. --https://pubmed.ncbi.nlm.nih.gov/27633956/ -[4]J.N.Vickers,Perception,cognition,and decision train- ing: The quiet eye in action, Human Kinetics,2007. --https://psycnet.apa.org/record/2007-13889-000 -[5] Moore L.J.et al., Quiet eye training promotes chal- lenge appraisals and aids performance under elevated anxiety,International Journal of Sport and Exercise Psy- chology,pp. 169-183, 2013. --file:///C:/Users/pazur/Downloads/Quiet%20eye%20training%20promotes%20challenge%20appraisals.en.ja.pdf -[6] Joan N.Vickers,Neuroscience of the Quiet Eye in Golf Putting, International Journal of Golf Science,1,2-9, 2012. --file:///C:/Users/pazur/Downloads/4950-neuroscience-of-the-quiet-eye-in-golf-putting%20(3).en.ja.pdf -[7] Samuel J Vine et al., Quiet eye training facilitates com- petitive putting performance in elite golfers, Frontiers in psychology,2011. --https://www.frontiersin.org/articles/10.3389/fpsyg.2011.00008/full -[8] 水崎ら,”バスケットボール非熟練者を対象とした Quiet Eye トレーニング時の視覚遮蔽 がフリースローの正確性 に及ぼす影響,” 鹿屋体育大学学術研究紀要, 第 47 号, pp.21-28,2013. --https://www.lib.nifs-k.ac.jp/wp-content/uploads/2023/01/47-21.pdf -[9] Moore L.J.et al., Quiet eye training promotes chal- lenge appraisals and aids performance under elevated anxiety,International Journal of Sport and Exercise Psy- chology,2013,11,169-183 --https://psycnet.apa.org/record/2013-19647-005 -[10]J.N.Vickers,Neuroscience of the Quiet Eye in Golf Putting,Int’l Journal of Golf Science, 1, 2-9,2012.〈6〉と同一? --file:///C:/Users/pazur/Downloads/4950-neuroscience-of-the-quiet-eye-in-golf-putting%20(3).pdf -[11] Wu et al Eye-Tracking Metrics Predict Perceived Workload in Robotic Surgical Skills Training --https://journals.sagepub.com/doi/10.1177/0018720819874544