機械学習とその他

機械学習したいマン

ubuntu14.04 + python3 でopencvをいれて動画をいじろうとしたら苦戦した話

アドベントカレンダー15日目です。

adventar.org

今日はopencvをインストールしようとして苦戦した話を書いていきます。

成功するまでにやったこと

  1. pip install opencv-pythonで普通にインストール
  2. opencv-3.0.0 をビルド
  3. ffmpegを入れてもう一度ビルド
  4. Contribを入れてビルド
  5. Git checkoutでバージョン指定してビルド
  6. conda install -c https://conda.anaconda.org/menpo opencv3でインストール
  7. pip install opencv-contrib-pythonでインストール
  8. conda install opencvでインストール

最後の一つで成功しました。 ffmpegとかは多分必要な部分だと思います。

手こずった理由

今回は深層学習でのスタイル転移で、動画を入力して変換するという作業を行う過程でopencvを使います。opencv自体はpipですぐはいるのですが、なぜか動画が読み込めない・・・。読み込めているかどうかは以下のコードで確認しました。

import cv2

filename = "mp4_h264_aac.mp4" 
cap = cv2.VideoCapture(filename)
print(cap.read())

うまくいっていない場合には以下のような出力です。
>>> (False, None)

うまくいっている際には数値が出力されるはずです。

成功したインストール方法

自分はpyenvでanaconda3-4.1.0を使用しています。なので、condaでインストールが可能となります。

github.com こちらのREADME曰く、conda install opencvでインストールできるとのことです。

インストールした後、先程のコードを実行し直してみます。

(True, array([[[ 93,  27,   1],
        [ 92,  26,   0],
        [ 91,  25,   0],
        ...,
        [112,  45,   0],
        [112,  45,   0],
        [112,  45,   0]],

Trueが返ってきていて、値も入っています。これで動画の処理ができます。

まとめ

ビルドをしなくて済む方法をまず探るべき。