AIの社会実装があたり前になりつつある今、便利で安全な生活に向けた取り組みが進んでいる。一方で、データをより高度に利活用していくためには、クラウドAIだけでなく、電力や通信環境などに制限がある環境下でも安定的に稼働できるエッジAI技術のさらなる発展が不可欠だ。これに連動して、ソフトウェア開発だけでなく、LSI・FPGAをはじめとするハードウェア開発や、それらを担う人材の発掘・育成が急務となっている。 そうしたニーズに応えるべく開催されているのが「AIエッジコンテスト」だ。これまでの開催回数は計5回。数多くの応募が集まり、エッジAI技術を手がける人材を発掘するハブとなりつつある。 2021年10月18日~2022年2月15日に開催された第5回では、RISC-Vを搭載するプラットフォームへのAIアルゴリズムの実装をテーマに、処理速度・アイデアを競うコンテストが実施された。RISC-Vの使用が必須条件であるため、過去4回のコンテストと比較して難易度が高いコンテストとなっていた。 本コンテストのアイデア賞に輝いた山下伸逸さんに、本コンテストへの参加を決めた経緯や、取り組みにおける工夫点、今後の展望について率直に話を伺った。


▼動画はコチラ▼


前回のコンテストの資産と自身の知見を存分に活かせると感じ、参加を決めた。

ディープラーニング自体は仕事で扱うこともなかったため造詣は深くなかったのですが、社会で流行り始めた10年ほど前から興味を持つようになりました。公開されているデータをWeb上で動かしたり、関連書籍を読んだりしていましたが、明確な目的がないためモチベーションがなかなか上がらず、自分でネットワークを組むまでには至っていませんでした。そんな中、「AIエッジコンテスト」の第2回開催を知ったことをきっかけに本格的に学び始めたのです。第2回コンテストは開催期間中に提出が間に合わず参加を断念したので、前回の第4回コンテストが実質的な初参加でした。 第4回に続き、第5回コンテストにも参加した理由は大きく二つあります。一つは、第4回の課題と今回の課題に継続性があり、前回の資産や知見が活かせるだろうと考えたため。もう一つは、今回の肝であるRISC-Vに以前から興味があったためです。学生の頃からコンピューターサイエンスに興味があり、オリジナルのCPUを作ってコンペティションに参加するほど熱中していました。最近では趣味程度ではありますが、RISC-Vを実装した開発を行っていたので、今回のコンテストは最初の応用先としてこの上ない機会だと感じました。 今回のテーマである自動運転は今後必要となってくる技術であることに間違いありません。自動運転の知見はないため、暗中模索で進めることになりそうだとは思いましたが、それでも今後の自分の糧になるだろうと参加を決めました。

-094-Winners-Interview-1

ハードウェアならではの実装後のバグも、工夫を重ねて乗り越えた。

今回、最初に取り組んだのは、ハードウェアのアクセラレーターやCPUの微調整です。アクセラレーターもCPUも第4回の参加過程で作り上げたものを活用し、今回の課題に合わせて調整を重ねました。アクセラレーターについてはTensorFlow Liteのシステムをバージョン1からバージョン2へと移行しました。ただ、移行自体はできたのですが、前回上手くいっていた量子化の仕組みが使えなくなってしまっていたため、量子化の形式を変える改造を行わなければいけませんでした。またアクセラレーターの構成自体も、選んだネットワークによってサイズを調整する必要があったため、微調整といいつつ、かなり細かく調整を重ねました。CPUについては、前回はオリジナルのCPUを使っていましたが、今回は必須条件であるRISC-Vに変更し、またトラッキングするための通信手段も組み込みました。 ここまでの処理は、ハードウェアを専門にしてきた自分にとってそこまで頭を悩ませることはなかったのですが、当然、何事もなく進んだわけでもありません。実機に載せたあとで想定外のバグが起きてしまい、最初の実装ではバグを潰し切ることができなかったのです。さまざまな策を試した結果、FPGAの内部にロジックアナライザを組み込み、内部の動きを観測することでバグを発見して修正することができました。

-094-Winners-Interview-2

実際に手を動かし、トライアンドエラーを繰り返すことで技術を習得。

今回最も苦労したのは、トラッキング処理です。不慣れであまり知見がなかったため、期間中最も時間を費やしました。なんとか仕組みを理解しようと過去の文献などを読み漁って、基礎的な知識を習得できました。自分が組んだソフトウェアに落とし込むためには一から考えて組む必要があるため、トライアンドエラーを繰り返しながら習得していきました。トラッキング処理を理解する大きなきっかけとなったのは、ByteTrackに関する論文の中に、疑似コード(Psuedo code)でアルゴリズムを表現しているものを見つけたことです。それを参考に手を動かし、理解することができました。結局トラッキングについてきちんと理解できたのはコンテスト終盤だったのですが、諦めずに根気強く学ぼうとし続けたことで、今まで扱ったことがなかったトラッキングを体系的な知識として習得することができ、大きな達成感が得られました。 注力した点はそのほかにもたくさんありますが、今回アイデア賞を受賞できた最大の理由は、フルスクラッチのRTL記述による実装を行ったことではないかと思います。それが可能だったのは、第2回コンテストの頃から構成を練り始め、継続的に参加を続けてきたからこそ。今回の開催期間内に一からRTL記述を行うのはものすごく大変なので、時間をかけてコツコツとやってきたことが実を結んだのだと思います。 またRTL記述を行う上で、検証環境を充実させたことも評価されたポイントだったかもしれません。ハードウェアの記述を丁寧に行うことはもちろん、その動作性を確認するためのテストベンチも充実させることで、ハードウェアの完成度をなるべく速やかに高める。ハードウェアはバグを取り除くのが難しいため、このように検証環境を充実させることが大切なのです。

-094-Winners-Interview-3

生涯エンジニアとして、これからも学び続ける。

今回アイデア賞を獲得することができましたが、精度を向上できなかったことに悔しさを感じています。その原因は、ネットワークの検出精度があまり高くなく、歩行者の検出が正確ではなかったことだと認識していています。この課題を解決するには、より最適なネットワークに変更する必要がありますが、現状TensorFlow Liteに対応できるネットワークの種類が多くない。かといって自分で一から作成するスキルもない。公開されているネットワークを使うしか選択肢がない状態ではありますが、ネットワークの知見を培い自分でチューニングだけでもできるようになることが必要だと考えています。 また、先ほどもお話ししたようにトラッキングのアルゴリズムはまだ理解したばかりなので、ここから工夫できるところはたくさんあると思います。例えば、スコアの大きなものでトラッキング自体はできましたが、検出できなかったものをスコアの小さなもので見直すことまで実装できれば、精度を上げられると考えています。テーマに連続性があるコンテストに第4回、第5回と続けて参加したことで、TensorFlow Liteの知見を深めることができ、さらに今回はトラッキングも理解できたので、回を重ねることに深く広く知識を身につけることができています。 今後は、RISC-Vの実装経験を活かして、性能を上げるための工夫をしたいと考えています。そのためのモチベーションを維持するのにコンペティションは最適なので、RISC-Vを用いたコンペティションがあれば今後もぜひ参加していきたいです。それに、コンペティションは専門外の領域を学ぶのにも絶好の機会。コンペティションを通じて、自分の専門にとらわれずに幅広い知見を身につけ、生涯エンジニアとして走り続けていきたいです。

-094-Winners-Interview-4

コンペティション参加を検討している方へのメッセージ

今の世の中は技術が高度化し、業務の細分化がものすごいスピードで進んでいますが、自分の専門領域を限定してしまうと視野が狭くなってしまいます。コンペティションを活用することで自分の視野を広げスキルを磨くことができるので、枠にとらわれず、知見がない領域にもチャレンジしてほしいです。 <経済産業省・NEDO主催「RISC-Vを使用した自動車走行画像認識」の入賞者レポートはこちら> <「第4回AIエッジコンテスト」 山下 伸逸さんの入賞者レポートはこちら>

この記事をシェアする