画像処理

TensorFlowを使用したシステム構築

TensorFlowを使用して推論処理をC# (.NET) で作成されたシステムに組み込む開発業務を行いました。TensorFlowはPythonやC++からの呼び出し方法が提供されていますが、C#.NETで利用する場合はTensorFlow.NETがOSSで公開されています。今回はこのTensorFlow.NETを利用したものの、処理速度が要件に満たないことから、その他の方法についても検討範囲を広げて進めました。

TensorFlowモデルの推論を高速化するには、TensorFlow LiteやTensor RTを使う、C++実装を行うなどがあります。その他、TensorFlowモデルをONNXモデルに変換しつつ量子化を行って高速化する方法もあります。また、GPUデバイスに効率よく処理させる事によっても高速化します。

様々な観点から実際に利用する際のワークフローに適したディープラーニングのフレームワークの使い方を模索するため、モデルの変換を試しています。TensorFlowではバージョンによってモデルの互換性が異なることから、C#から利用したいTensorFlowのバージョンを再ビルドして適切なバージョンが呼び出せるようにしたり、TensorFlow以外のフレームワークのモデルへの変換の互換性について調査を行い、ONNX形式のモデルを利用するなどして処理速度の向上と新しいモデル利用の運用方法を提案しました。

ディープラーニングのフレームワークの扱いについてだけではなく、画像の読み込みや前処理についても高速化のための実装の見直しを行ったり、並列化を取り入れるなど、様々な観点からお客様のニーズに応えるための工夫を行いました。

TOP