日記(2023/05/31)
やったこと
就業 (9:00-17:20)
家でゴロゴロ
研究
雑感
最近は自分の実施した研究で開発した手法を如何に実装し, 配布するか頭を悩ませている. 今考えているのは以下.
1) Pythonで簡易webアプリ実装
2) ImageJのmacro, plugin開発
1) は目星をつけており, pythonのライブラリの1つであるstreamlitがその候補である.
基本的にコーディングはpythonを使うので, 理想でいえばpythonコードをそのまま, 且つそんなにコストをかけずにソフトウェア等にもっていきたい. それを実現したのがstreamlitである. 特徴は, とにかく簡単にすぐwebアプリとして実装でき, かつモックアップレベルであれば十分な機能を保持している点. もちろん細かいビジュアルや機能の設定に限界はあるが, それでも動作確認をするには十分すぎるくらいである. 自身もこれはいじったことがあるので, 比較的簡単に実装までもっていけると思う. 学会とかの発表で実際にいじってもらうのはありかもしれない. 目標は, 今年度末の学会発表のポスターセッションと学内予算に関連したポスター発表の場で, WebアプリのUXテストを実施することに設定している.
2) はフリーの画像処理ソフトウェアであるImageJに機能追加をする形である.
言語はJavaであるので, pythonをそのまま引き継ぐことはできない (仮にJythonを使ったとしてもライブラリの制約はかなり大きい) のと, Javaの習得コストがネックである. もちろんこれからJavaは勉強する予定なので, 将来的には1からpluginの実装をやってみたいところではあるが, 目下の短期目標はとにかくなにかしら実装なので, 間に合わせるにはなにかに相乗りするほかない. いろいろ探した結果, どうやらDeepImageJというpluginがよさげであることがわかった.
このpluginでは, 自身で作成した深層学習モデルをImageJのguiで操作しながら実行することのできる優れモノである. どうやら, pythonライブラリである, tensorflow, keras, pytorchのモデルは対応しているっぽい (ver.の制限はあるが) ので, かなり有望な候補である. こいつを使った実装案は以下.
① Pythonで深層学習モデルを作成 (keras)
② tensorflow servingを用いてJavaからモデルを読みだせるような形にしてモデルを保存
③ DeepImageJに作成したモデルをセットする
④ 別途pluginを作成し, 深層学習で得られた結果の後処理や, 統計指標を表示・保存できるようにする.
深層学習による予想画像の後処理はJavaで書くしかないが, それでもだいぶ負担は軽いはずである (Javaで深層学習はできなくないそうだが実装コストが…). このプランであれば, ③まではほぼ一瞬, ④が時間的な律速になるが, およそ2年あればなんとかなりそう. ImageJのplugin開発したって言えばなんかかっこいいし, 今後転職する機会があればアピールポイントになりそうなので, 真剣に取り組む予定.