2011/12/31

logoGuillo導入マニュアル

更新日:2013/08/03

ロゴ検出型自動CMカットプログラム logoGuillo 導入マニュアル(v2.xx向け)

MPEG2ファイルをlogoGuilloで処理し、Avisynth用のTrimコマンドを得るまでの手順を説明します。
上手くいかない場合はFAQlogoGuilloの動作精度を上げる為の注意点もご覧下さい。
マニュアル中で登場する各外部ソフトの使用方法は、それぞれのマニュアルを参照して下さい。

長いので大まかな流れを先に書いておきます。(b-eは局毎に一度だけ行います。)
基本的には放送局毎にロゴデータを作成し、ロゴデータに対する検出パラメータの調整を行います。パラメータ調整後はその局の番組を自動でCMカットする事が出来ます。

a. 必要なソフトを準備&インストール
b. ロゴ付き動画を用意
c. ロゴデータ(*.lgd)を作成
d. 動画のうちロゴの見えている範囲を手動で指定したリストを作る
e. リストからロゴに対応するロゴ検出パラメータ(*.param)を作成
f. 以後は局毎に上記のロゴと検出パラメータを指定することで、自動的にCMカットしたTrimコマンドを出力できる


1. 必要なソフトウェアを準備する
*logoGuilloを使うような方なら大抵のソフトはインストール済かと思います。
*推奨動作環境でのプログラムを前提に説明していきます。

1-1. 動作に必要なソフトを用意します。
*logoGuilloはavs2yuvとAvisynth経由で動画を読み込みます。
その際にm2v.vfpをwarpsharpパッケージに含まれるLoadAviUtlInputPlugin経由で呼び出します。

logoGuillo
・Avisynth(2.5.8以降推奨、SourceForge.netへのリンク
 *開発環境では"2.5.8(32bit版)"を使用 
・warpsharpプラグイン(warpsharp.dll、本家へのリンク
・MPEG-2 VIDEO VFAPI Plug-In (m2v.vfp、まるも製作所
・avs2pipemod(Ch's barn
 *開発環境では"avs2pipemod-20110919"を使用
・JAVAランタイム(最新の物を推奨

1-2. ロゴデータを作成するのに必要なソフトを用意します。
・AviUtl(AviUtlのお部屋
・AviUtl用 ロゴ解析プラグイン version 0.07(MakKi's SoftWare
・MPEG-2 VIDEO VFAPI Plug-In (m2v.vfp、まるも製作所

2. 動作に必要なソフト&ロゴデータを作成するのに必要なソフトをインストール

2-1. Avisynthをインストールします。
2-2. warpsharpプラグインをインストールします。
2-3. MPEG-2 VIDEO VFAPI Plug-Inをインストールします。(推奨設定
2-4. avs2pipemodをインストールします。
2-5. logoGuilloをインストールします。*32bit環境の場合はlggf_v1**.jarと同じフォルダに入っているlogoGuillo.exeをbin_v2**_x86フォルダ内のlogoGuillo.exeで置き換えて下さい。
2-6. AviUtlをインストールします。*インストール後、オプションでフレーム番号が0から始まるよう設定して下さい。
2-7. MPEG-2 VIDEO VFAPI Plug-InをAviUtl入力プラグインとして使用出来るようにインストールします。
2-8. AviUtl用 ロゴ解析プラグイン version 0.07をインストールします。
2-9. JAVAランタイム(JRE)をインストールします。

*この時点でAvisynthと各種プラグインが正常に動作する環境になっている必要があります。

#必要なソフトの準備が終わりました。
#ロゴデータを作成する準備が整ったのでロゴデータを作成します。


3.入力用の動画ファイルの準備
局毎の動作確認状況を確認して下さい。

*局ロゴが表示されるMPEG2ファイル(*.m2vファイル)を準備します。(以降は例としてinput.m2vとしています)

4. ロゴデータを作成する
*動画からロゴデータ(*.lgdファイル)を作成します。以降、作成したロゴデータの名前を"logo.lgd"として説明していきます。

4-1. ロゴデータを作成します。ロゴの含まれる番組(アニメなどベタ一色のシーンが多い物を推奨)をAviUtlで開きます。解析範囲はロゴの縁ギリギリではなく、3,4ピクセル程度の余裕を持つように取り、ロゴデータを生成します。(あくまでも推奨)また、logoGuillo側の制限により、最大ロゴサイズ240x192以下、一つのlgdファイルに格納するロゴデータは一つまでにして下さい。

ロゴデータを作成する際の注意事項

#ロゴデータ(logo.lgd)ができました。
#次に、ロゴデータ用の検出パラメータを調整します。


5. ロゴ検出パラメータの調整用のフレームリストを作成し、自動調整を行う
手動でロゴの見えている範囲を指定したフレームリストを作成します。logoGuilloはそれを参考にして自動学習によりロゴ検出に最適なパラメータを決定します。この作業は使用するロゴデータ毎に一度するだけです。
*同梱のサンプル(*.param)と、お手持ちのロゴデータ(*.lgd)の放送局が同じ場合はそのまま組み合わせても動作するはずですが、同梱のデータは既にOut of Dateなので非推奨です。

5-1. ロゴの表示されている動画をAviUtlで開き、ロゴが表示されているフレーム番号の範囲を調べます。
*本編ではありません。単純にロゴが表示されているかどうかです。また、ロゴがフェードする場合、"少しでも"ロゴが見えたらロゴが表示されていると見なして下さい。見づらい場合はAviUtlの色調補正で輝度とコントラストを弄って確認しながら行うと楽です。

*表示区間の境界から前後10フレーム程度の範囲は参照しないので、数フレームのズレであれば問題有りません。
*高輝度でロゴが表示されない局(BS11,CX等)の場合:本編のブロックのうちCM直前/直後のシーンが白飛びしている場合、本編とCMの境界部分を指定します。また白飛びしたエンドカード等、ロゴが一切表示されないブロックは無視して下さい。

例: 34 - 450 , 600 - 900 , 1200 - 1250 のフレーム範囲でロゴが見えるのを確認

5-2. 上記のフレーム番号を以下のような書き方でメモ帳等でmanualcut.txtとして保存します。

例:(manualcut.txt)
34
450
600
900
1200
1250


5-3. logoGuilloのGUIフロントエンド でロゴ検出パラメータの調整を行います。
*GUIフロントエンドの実行にはJAVAランタイム(JRE)が必要です。

5-3-1. GUIフロントエンド(lggf_v*.jar)を起動します。
5-3-2. 以下のように設定します。
[モード]
検出パラメータ調整モード
[Avisynthの設定]
avs2pipemod.exeとm2v.vfpのパスを指定します。
[動画ファイル]
3で準備したinput.m2vを指定します。
[ロゴデータ]
4-1で作成したlogo.lgdを指定します。
[自動調整用の参考フレームリスト]
5-2で作成したmanualcut.txtを指定します。

5-3-3. 右下の[実行]ボタンを押します。 
自動調整が開始され、4分-18分程度で完了します。 *高輝度でロゴが見えない局では時間が掛かります。
結果(ロゴ検出パラメータ)はロゴデータ( logo.lgd )と同じ場所に"logo.lgd.autoTune.param"として保存されます。

#ここまでで、ロゴデータ(logo.lgd)に対する検出パラメータファイル(logo.lgd.autoTune.param)を作成できました。実際に自動CMカットを行って動作を確認してみます。

6. 自動CMカットを行う
*正常に自動CMカットが行えるか確認します。

6-1. GUIフロントエンド(lggf_v*.jar)を起動します。
6-2. 以下のように設定します。
[モード]
CMカットモードを選択し、"ロゴが白飛びしたエンドカードを検出する"にチェックを入れます。
[カットマージン]
チェックボックスは無効のままで結構です。
[Avisynthの設定]
avs2pipemod.exeとm2v.vfpのパスを指定します。
[動画ファイル]
3で準備したinput.m2vを指定します。
[ロゴデータ]
4-1で作成したlogo.lgdを指定します。
[検出パラメータファイル]
5-3で作成したlogo.lgd.autoTune.paramを指定します。
[フレームリストの出力形式]
Trimコマンド形式を選択します。
[フレームリストの保存先]
例として動画ファイルと同じ場所にinput.m2v.txtとします。

6-3. 右下の[実行]ボタンを押します。 
自動CMカットが開始され、2分-5分程度で完了します。*高輝度でロゴが見えない局では時間が掛かります。
動画ファイルと同じ場所にinput.m2v.txtが保存されます。

6-4. Avisynth用のTrimコマンドが正常に出力されたか確認します。
"input.m2v.txt"を開き、中に例のようなテキストが記述されていたら成功です。

例:
Trim(28,480) ++ Trim(594,930) ++ Trim(1194,1280)


#ここまでで、Avisynth用のTrimコマンド(input.m2v.txt)が得られました。
#同じ局の別の動画ファイルであっても、正しく動作するはずです。試してみて下さい。
#フロントエンドの[BATを書きだし]で保存したBATを参考に、現在運用中のエンコード用BATに組み込めば、自動CMカット&エンコードを実現することが出来ます。


お疲れ様です。以上でlogoGuilloの導入は終わりです。また、FAQlogoGuilloの動作精度を上げる為の注意点等も是非ご覧下さい。