インターンシップ 2022:手と物体のInteractionを検出するWebアプリの開発

はじめまして。2022年夏季に株式会社モルフォでインターンをしていた山本です。現在は情報系の大学院でVision-Languageに関する研究を行っています。私のインターンシップでは、画像中の手と物体を検出し、それらの状態を文として出力するWebアプリケーションの開発に取り組みました。

開発のモチベーション

近年の機械学習における学習手法として、大規模なデータセットで学習した学習済みモデルをfine-tuningして使うという方法が挙げられます。fine-tuingの際にはタスクに応じたデータセットを用意する必要がありますが、例えば料理動画からレシピを生成するといったような、ドメインに特化したタスクである場合、データセットにもより詳細なアノテーションを与えなければならない場合があります。そこで、画像または動画像中の手と物体の状態を自動で検出することができれば、人の動作を伴うデータセットに対するrichなアノテーションを自動で行うことができるのではないかと考え、今回の開発に取り組みました。

インターンシップを終えて

今回のインターンシップではメンターの方をはじめとする社員の方々にサポートを頂きながら、多くの学びを得ることができました。その中でも私が特に重要だと感じたものを2つ共有したいと思います。

一つは、課題定義・手法の検討を疎かにしないことです。私は今回のインターンシップを通して、小規模ながら「課題定義→手法の検討→開発→公開」というサイクルを体験することができました。この一連の流れの中でも、「課題定義→手法の検討」の部分が重要だと感じました。解決すべき課題をしっかりと定義すること、使おうとしている手法が課題に対して必要/十分なのか検討することで、開発以降のサイクルで無駄な工程を産まずに済みます。実際のインターン中でも、手の認識と物体の認識を別々に行うのではなく、両方を一つのモデルで行った方が良いということに気づき、開発を効率的に進めることができました。定義した課題・手法に関するサーベイを念入りに行うことの重要さを再認識することができました。

そしてもう一つは機械学習以外の知識を身につけることです。インターンシップで実際に開発を行う際、使うモデルに必要なライブラリやコンパイラの依存関係に関するエラーでハマってしまうことがあり、それらを解決する際にコンピュータサイエンス(CS)の基礎知識の不足を強く感じました。このようなライブラリ関連の他、速度向上のためにメモリ効率を意識したコードを書く等、CSの基礎知識が必要となる場面は多くあると思います。これから研究・開発を続けるにあたり、機械学習に関する知識だけでなく、CSの知識も拡充していかなければならないと強く感じました。

最後に、今回のインターンシップ参加にあたって、開発の方針やアプリケーションの中身に関して多くのアドバイスやサポートを頂いたモルフォの社員の方々に感謝申し上げます。そして本記事が、これから機械学習に関する研究・開発を行う方々の一助になれば幸いです。