google colabにdarknetを使用した画像処理サーバーを建てる方法

導入

google colab 偉大です。
ブラウザでpythonの実行ができて、共有リンクが発行できて、主要な機械学習系のライブラリが一式インストールされているだけでなくgooglegpuリソースで計算することもできます。 しかしせっかく画像認識ができても認識用の画像を上げるにはボタンを押してエクスプローラから選択する方法ではスクリプトから実行することはできないし、google drivedropboxから読み出す方法ではファイルアクセスの時間がかさばります。 そこでhttp requestで画像を受信してdarknetを実行した結果を返してくれるipynbとscriptを書きました。

構成・実行方法

以下のリポジトリのdark.ipynbをgoogle colabで読み込んですべてのセルを実行してください。 app.pyがserver sideで実行されているpython のscriptで client.pyがclient sideでのサンプルのpython scriptです。 github.com

http serverはflask,portのトンネリングにngrokを使っています

.
+ - dark.ipynb 
                #load this notebook from ipynb and execute all cells
+ - app.py 
                # flask server script
+- *.cfg
+- *.weights
+- data/
        +- *.jpg
+- client.py
                # sample script for client side
+ ....

パフォーマンス

あとで書く

結論

結局サーバーにアクセスする時間があまりに長くて使い物にならなかった印象。やはりローカルの環境を使うべきなのであろうか。jetson tx2が欲しい。 今後はipynbを介さずローカルでdarknetを使おうかなと思っていますがpull request,issue,fork来たらうれしいのでどんどん対応すると思います。ちなみにこういった使い方にgoogleは24時間ごとにインスタンスの初期化をして対応しているみたいです。
google colab 偉大です。

関連リンク

pypi.org

medium.com

medium.com