質問: 環境 linux mint18 mate darknetでyolov3 識別した範囲の画像をキャプチャーしたいのですが、 以前に端末からではなく、pythonから呼び出せば可能だと聞きました。 どの様にして呼び出すのでしょうか?
回答: 2018年4月20日現在、Python 2 だと `python/darknet.py` を使えば識別が可能です。ただし以下の変更が必要でした。 1. チュートリアルに従って、目的に合った訓練済み重みファイルをダウンロードしておく。 2. 適当な場所からシンボリックリンクを張るなどして、`libdarknet.so` が見えるようにする。 3. そのままだと `tiny-yolo.cfg` を読みにいくので、ここを yolov3 に変える。 また、Python 3 でも更に以下の変更を行うと動くことを確認しました。 1. `print r` を `print(r)` にする。つまり `2to3 -w ./python/darknet.py` 相当のことをする。 2. 文字列の型が変わった関係でファイル名の部分をバイト列にしないと動かないので、すべて `.encode('ascii')` をつける (参考)。 このサンプルプログラムでは最終的に `r` へ識別結果が入っているため、その後に何か処理したい場合はこの `r` を元に行うことになります。 ※ darknet のリポジトリ内容は時折破壊的に変わるため、この方法が将来的にも使えるとは限りません。使えなかった場合、darknet の issue トラッカーを見るなどして、まずはサンプル・プログラムがあるか確認するのが良いと思います。