まず、昨年度の研究成果における課題であった、画像に関する正解率の向上について取り組んだ。具体的には、機械学習に用いる画像を動画から採取することで画像の学習データを増加させた。また、動画から画像を際することで、正解率の向上に寄与すると予想された、「ブレ」を含む画像 の取得も可能となった。結果としてPythonを用いた機械学習による危険検出(草刈り機に人の手が近づいたかどうかの判定)のプログラムでは、危険な状況にある画像(草刈り機と草刈り機に近づいた人の手の画像)に関する正解率は、68%~92%から、86。5%~99。5%に向上した。 次に、Pythonを用いた機械学習による危険検出のプログラムのFPGAによるハードウェア化を行った。 まず、機械学習による学習済みパラメータをテキストファイルに変換して、C言語から読み込みやすいようにした上で、各レイヤの実装をPythonからC言語へ移行した。次に、ソフトウェア(以下、SWと書く)とハードウェア(以下、HW と書く)の協調設計が可能な システムレベル設計環境であるSystemBuilderを用いて、FPGA上のハードウェアを実現した。SystemBuilderは、C言語によってHW・SW を設計する。HWは高位合成技術を用いて合成される。SystemBuilderではプロセスと呼ばれる単位で開発を行うが、HWプロセス同士、SWプロセス同 士、また、HW・SWプロセス間の通信をサポートしている。SystemBuilderでは、どのレイヤをHWとするかを選択できるが、移行したソースコードをすべてHWに指定したところ、資源不足が生じた。そこで、特定のプロセスのみHW化した場合の実行時間を測定した。その結果、プーリング 層のみ高速化したことがわかった。また、全結合層はパラメータ数の多さからFPGAの内部メモリへの搭載が難しいことがわかり、HW化 が困難となることがわかった。
|