avidemuxをUbuntu14.04にインストールして動画編集
動画から画像を収集するプログラムを実行していましたが
動画が長いと多量の画像が生成されてしまうため
動画編集にオープンソースのavidemuxを使ってみました
環境はubuntu14.04
インストール手順
レポジトリの登録
sudo add-apt-repository ppa:rebuntu16/avidemux+unofficial
パッケージアップデート
sudo apt-get update
インストール
sudo apt-get install avidemux2.6-gtk avidemux2.6-qt4
Ubuntuのアプリケーションメニューで起動できます。
動画ファイルを指定して右クリックから
一度avidemuxを選んで起動してもよし。
機械学習用に訓練用データを収集したい時など
動画編集出来ると便利です。
積極的にOSSツールを活用したい所ですね。
OpenCVから提供されている顔分類器は下記の通り。
顔切り出しコードのカスケード分類器xmlファイルの部分を書き換える事で認識したい対象を変更できます。
顔検出用 カスケード分類器
haarcascade_frontalface_default.xml
haarcascade_frontalface_alt.xml
haarcascade_frontalface_alt2.xml
haarcascade_frontalface_alt_tree.xml
haarcascade_profileface.xml
アニメ顔検出の場合
天才により作成されたアニメ顔検出用の分類器です。
//名前 lbpcascade_animeface.xml
//使い方:
face_cascade.load("lbpcascade_animeface.xml");
顔切り出しコード
*切り出しコードやコンパイル方法等詳細は闇に舞い降りた天才、kivantiumさんのページを参照してください。
#include <opencv2/opencv.hpp> #include <string> #include <sstream> #include <iomanip> using namespace std; using namespace cv; void detectAndDisplay(Mat image); CascadeClassifier face_cascade; int imagenum = 0; int main(int argc, char* argv[]){ int framenum = 0; //カスケードのロード >face_cascade.load("lbpcascade_animeface.xml"); //動画の読み込み Mat frame; VideoCapture video("video"); if(!video.isOpened()){ cout << "Video not found!" << endl; return -1; } for(;;){ framenum++; video >> frame; if (frame.empty()) { cout << "End of video" << endl; break; }; //全フレーム切りだすと画像数が増え過ぎるの>で10フレームごとに検出 if(framenum%10==0) >detectAndDisplay(frame); } return 0; } //認識と表示を行う関数 void detectAndDisplay(Mat image) { vector<Rect> faces; Mat frame_gray; stringstream name; //画像のグレースケール化 cvtColor(image, frame_gray, >COLOR_BGR2GRAY ); //ヒストグラムの平坦化 equalizeHist(frame_gray, frame_gray); //顔の認識 小さい顔は除外 face_cascade.detectMultiScale(frame_gray, >faces, 1.1, 3, 0, Size(80,80)); for(int i = 0; i<faces.size(); i++){ //顔部分に注目したMatをROIで作る Mat Face = image(Rect(faces[i].x, >faces[i].y,faces[i].width, faces[i].height)); //連番のファイル名を作る。参考:http://www.geocities.jp/eneces_jupiter_jp/cpp1/013-001.html name.str(""); name << "image" << setw(3) << >setfill('0') << imagenum << ".png"; imwrite(name.str(), Face); imagenum++; } }
ちなみに開発で使用する動画の著作権については
情報解析の為であれば著作権法第47条の7に該当し自由に使える範疇になります。
OpenCVを用いた画像認識手法の開発は
情報解析に該当する筈ですから
皆さん、法律を守って面白いものをガンガン開発しましょう。
情報解析のための複製(著作権法第47条の7)
コンピュータを使った情報解析のために、必要と認めら
れる限度において、著作物を複製することができる。
*しかしながらその後ogv形式のファイルが開けなかったりしたので
openshotという動画編集ソフトを入れてみました。
ogvは問題なく開けたのでしばらく使ってみます。
sudo add-apt-repository ppa:openshot.developers/ppa
sudo apt-get update
sudo apt-get install openshot
参考ページ:
kivantiumさんのページ
アニメ顔カスケード分類器を作成された方
OpenCVの分類器についてはこちら
著作権情報センター
avidemux参考
Author And Source
この問題について(avidemuxをUbuntu14.04にインストールして動画編集), 我々は、より多くの情報をここで見つけました https://qiita.com/manjiroukeigo/items/a7423bf0cfe951a10abb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .