0
1
テーマ、知りたいこと
健常者(正常)と障害者(異常)のそれぞれから動作解析装置で得られたデータを学習させ,分類していない未知のデータを読み込み,正常か異常の判定を行う分類モデルをpythonで作成したいです。
背景、状況
健常者と障害者に歩行を行なっていただき,その状況を動作解析装置で計測したデータを所持しています。データは,1列目:フレーム数,2列目:時間,3列目:頭部マーカー情報,4列目:肩マーカー情報…(その他多くのマーカー情報)のように格納されております。
心電図のような波形データのどこの部分に異常があるかを判定するためモデルを作成したというサイトは散見されますが,該当の波形全体をみて正常か異常かを判定するためのモデルの作成を説明している情報が見つかりません…
上記の処理を解決する方法,わかりやすく説明しているサイトや書籍などをご教示いただけますと幸いです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
#1
退会済みユーザー
総合スコア0
投稿2023/02/02 04:15
編集2023/02/05 01:452023-02-05追記
脳波の分析例
ライセンスの明記はありませんが「てんかん患者(?)脳波をGNN(グラフニューラルネットワーク)で捌いて評価した」というものもありますね。これの方が質問の意図に近そうに思います。「発作の検出云々」とあるので、波形データをずっと見ていったときに、発作が起きた時に「発作だ!」と認識させるような使い方ができそうに思います。
――もう少し根気よく探せばライセンス的に問題ないものもあるかと思いますが、研究・開発用途(商売をしない)というのであればメールで「あなたのソースコードを使って発表をしたいが、クレジットに名前を載せさせてもらってもよいか」くらいの感じの対応をすれば彼らの論文の引用回数が増えますので悪い顔はされないだろうと思います。
出典:https://github.com/tsy935/eeg-gnn-ssl
間接位置の推定からの分類の例
10分くらいググると、一例として(今回の課題とは用途は違うかもしれませんが、データを差し替えれば手法自体は)Action recognitionと呼ばれるタスクの解法が使えそうなことが分かります。ここで拾い上げたキーワードがAction recognitionです。
※なぜAction recognitionという単語に行きついたかというと、時系列データを捌くLSTMというネットワーク構造と、姿勢認識で使われるMediapipeというライブラリを組み合わせてグーグル検索した結果、「Action recognition」という単語に行きついた具合です。
なので、
-
"Action recognition" site:github.comとグーグル検索してみる
-
"Action recognition" site:paperswithcode.comとグーグル検索してみる
といろいろ出てきます。
出典:https://paperswithcode.com/sota/action-recognition-in-videos-on-something
たとえば、FacebookresearchがApacheライセンス2.0(要旨:商用OK、コード開示義務なし、ただしクレジットの表示は必要)で公開しているSlowFastはどうでしょうか?
ファイルがでかくて画像をアップロードできませんでしたが、同リポジトリのGIF画像を見て頂けると何ができるか分かりやすいと思います。2値分類ですので、こんなに「立っている」「見つめている」「ものを持っている」のような分類ではなく、「健常」「リスクあり」(+ほぼほぼ確定)のような2~3値分類の問題に差し替えられそうに思います。
出典:https://github.com/facebookresearch/SlowFast/raw/main/demo/ava_demo.gif
元の投稿
今回の課題のデータについて、イメージできるような説明(合ってますか?)
例えばですが、PythonのライブラリでいうOpenPoseやMediapipeのような、1フレームにおける人毎について全身の関節ごとの画像上のXY座標and/or実際のXYZメートル座標のようなものが各列に収まっているデータを想定しました(細かいことはさておき、です)。
本題とは違いますが、心電図などの~
ご指摘の通り、心電図などのデータは1次元のデータが高さを持っているような波形として現れます。心電図を捌いたことは無いのでわかりませんが、センサごとにほかのセンサの値と緩く連動しているかもしれませんし、全く別の動きもあることもあるかもしれません。こういった場合はほかのセンサの値を気にすることなく波形から特徴量だけ吸い出して「一軸だけ気にすればいい×センサ数」のような捌き方ができます。
じゃあ、軸(列)毎の関係性をどう表現するよ?
波形全体をみて正常か異常かを判定するためのモデル
データの理解の整理:
画像では1フレームごとにどんな姿勢かを推定することになると思いますし、動画であれば近傍●フレーム(いくつが良いかは検討もつきません)を使って同じようなことをするようになるのだと思います。
仮に私がするならば:
仮に関節の位置を使った動作推定(立っている、歩いている等)であれば、こういう関節群から何をしているか推定するのが得意な手法は、一般的にはTransformerやGNN(Graph Neural Network)だろうと思います。
という感じでキーワード検索をすると…:
大体こういった「世界中のみんなが課題として抱えているリストにあるあるな感じの課題」を解決するための手法は、論文で既に公開されていて、しかも運が良ければ実際に動かせるコードも公開されていて、さらに運が良いと非GPLなライセンスで公開されています。あとは、どれがいいかなとえり好みするだけです。
これができるサイトはpaperswithcode.comです。URLの例では、MicrosoftのCOCOデータセットという巨大な画像データセットに含まれている人の動作を認識させよう、というもののようです。こんな感じで探っていくと沢山手法がヒットしますので、好みのものを使えばよろしいかと思います。
出典:https://paperswithcode.com/sota/human-object-interaction-detection-on-v-coco
タイトルくらいしか見ておりませんが、恐らく私が先に挙げたTransomerやGNNをベースにした手法が並んでいることだろうと思います。あと何年この状況が続くかは分かりませんが、恐らく斬新な手法が現れるまで、これらがあと数年はその斬新な手法を独占し続けるものと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#4
総合スコア7653
投稿2023/02/06 04:23
健常者と障害者に歩行を行なっていただき,その状況を動作解析装置で計測したデータを所持しています。
歩行データなら周期性があると思うので、これが参考になるかも
生活に溶け込む人工知能による病気発見:医工連携におけるLessons Learned
(20ページ〜)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。