KDL BLOG

【やってみた】ONNX・OpenVINOでYOLOv5の高速化!

株式会社神戸デジタル・ラボ DataIntelligenceチームの原口です。 今回はAIモデルをCPUで高速に実行できると噂のONNX・OpenVINOを用いてYOLOv5の高速化に取り組みます! AIモデルをスマートフォンやIoTデバイスで動作させたい全国のエンジニア必見です!

はじめに

皆さんはAIを実行している際 「このモデルすごいけど、めっちゃ遅くない?」 「GPUがないマシンだとなんもできんから実質案件で使えんやん・・・」 などと考えたことはありませんか?私は日々精度と速度のトレードオフに悩まされています。 「昔のモデルもCPU推論遅かったっけ?」と考えたそこのあなた! 今のモデルと昔のモデルで計算量がどれくらい増えたかご存知ですか?少し比較してみましょう。
モデル名 発表年度 計算量
VGG16 2014 15.4GFLOPS
Swin-L 2021 103.9GFLOPS
VGG16は畳み込みニューラルネットワーク(CNN)の名を世に知らしめた有名なモデルですね。このモデルが発表されたのが2014年ですね。 もう一方のSwin-Lはコンピュータビジョン界隈に激震を走らせたViTの後継モデルです。このモデルが発表されたのが2021年です。 計算量(FLOPS)は推論結果を出すまでの浮動小数点演算の計算回数を表しています。1FLOPSは1回の計算です。 VGG16が約150億回の計算をして推論結果を出力していたのに対し、Swin-Lでは約1兆回の計算をしないと推論結果が出力されません。約6倍の計算回数が必要となります。それだけ差があれば遅く感じるのも当然ですね。 推論速度は昔のモデル程度で、精度は今のモデルというAIが欲しいですがそうは問屋が卸しません。 そうなってくるとすることは決まってきます。そう、モデルの高速化です。 AIモデルの高速化には様々な手法がありますが、今回の実験ではYOLOv5モデルをONNX・OpenVINOに変換することで高速化を実現します! (つづきは、ブログ「神戸のデータ活用塾!KDL Data Blog」へ) hatena.png