LoginSignup
10
4

More than 3 years have passed since last update.

onnx-go で tiny-yolov2 が動く様になった

Last updated at Posted at 2019-06-20

はじめに

1ヶ月程前に「Go による機械学習 推論フレームワークの最新動向 2019」という記事を書きました。onnx-go はバックエンドとして gorgonia を使う Pure Go なニューラルネットワークのライブラリなのですが、前回紹介させて頂いた時にはまだ mnist 程度の簡単なモデルしか動作しませんでした。

image.png

tiny_yolov2 が動いた

昨日マージされた変更により、tiny-yolov2 が動く様になりました。

image.png

examples/tiny_yolov2 ディレクトリに移動し go build すると tiny_yolov2 が出来上がります。モデルファイルは以下からダウンロードして下さい。

$ ./tiny_yolov2 -img file.jpg -output output.jpg

この様に実行するとマーカーが描画された画像が出力されます。

output.jpg

リアルタイムに推論はまだ遅くて使えないと思いますが、アップロードされた画像から物体を検出して何か処理を行う程度には使える様になりました。

今後の onnx-go

これまで Go で学習済みモデルを使えるニューラルネットワークと言えば TensorFlow の Go binding、TensorFlow Lite の Go binding (go-tflite)、PFN 社の menoh を使うしかなく、またいずれも cgo の為、ビルドのハードルが高いのが問題でした。ですが、onnx-go が Pure Go で実現した事により go get で機械学習ライブラリが手に入れられる様になりました。また Pure Go なのでクロスプラットフォームでビルドできる様になりました。とても良い話です。

とは言え、全てのオペレータが揃ったという事ではありません。まだ足りないオペレータもあります。皆さんからのコントリビュートをお待ちしています。
(僕も onnx-go の push 権限を頂いたので、もっとコントリビュートしようと思います。)

10
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
4