読者になるねののお庭。2018-01-04opencvでリアルタイムに学習済みモデルを動かす。windowsタイトル通りopencvで学習済みのモデルを動かしてみようって記事です。opencv3.3からcontribにあったdnnモジュールがメインのレポジトリにシュッっと入ってました。(記事書いてるときの最新は3.4)なので気軽(?)に学習済みモデル拾ってきて試す~なんてことができそうです。メインのレポジトリにあるものを使う安心感は異常です。このdnnモジュール、いろいろなフレームワークのモデルを読み込むことができるらしいです。みた感じtensorflow,darknet,caffe,torchが読み込めるっぽい。何が嬉しいって、無駄にビルドバトルしないで済むということですね。私昔tensorflowの学習済みをwindows上でc++で呼び出したかったのでビルドバトルして、まぁ失敗に終わったのですが、大分時間を吸われました。これさえあればそういう手間がグっと減るということです。あとリアルタイムで動くアプリ書いてるときはどうしてもpythonよりc++で書きたかったりしますよね。いう需要にもこたえてくれそうです。いうかopencv3.4.0普通にビルド済み配っててくれてうれしい。ビルドめんどくさい()能書きはこれくらいにして実際に動かして行きます。動画もあるよ('ω')今回使ったソースはこれ(こっち)です。yoloとかいうリアルタイムで物体検出するとき現行最強(yolov2)の初代さんを動かします。重みのデータとかそこらへんはdarknetから落としてきます。-class_names=coco.namesです。windowsで動かした場合。Linux(Ubuntu)で動かした場合。Linuxでopencvをたたかないで直にdarknetをたたいた場合。机の上が汚いのはまぁ仕方がないですね。大体opencvで動かすとopenclが使える状態でwindowsもUbuntuも大体3FPS前後。darknetをダイレクトにたたくと大体15fpsくらい。^ω^)・・・ダメじゃん!wまぁダメではないんですが、opencvのはちょっと遅いですね。今後早くなるんですかね?contribするかーとか思ってソース読んでたけど、うんわからんといった感じであきらめました。いうか遅いの、nvidiaがopenclにやる気ないからなのではとか勘ぐってみたり。studioでDebugのままいじったときFPS0.3とかで凄まじく重たかった()しかしwindowsでもdnn関連のものがさっくり動かせるようになるのは個人的にすごくうれしいですね、なにかとアプリ組む時はwindowsですが深層学習のフレームワークをwindowsで使おうとすると一悶着あったりするので。今度はtensorflowの学習済みがさっくり読み込めて使えるかを試していきたいところです。読者になる関連記事2018-11-20OpenCV4で追加されたG-APIについて。gitのcommit間のdiffをいい感じに見れる。openCVの描画が遅い問題を解決しました。リクエストの回復力を高める。3引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。