2012/11/04

L字テロップを自動検出する方法を考える

・L字テロップが多い

最近の番組は結構な頻度でL字テロップが入ります。そこでL字テロップを自動検出出来ないか考えてみる事にしました。

そのテロップ、本当に必要ですか?

・パターン認識で検出出来ないか考える

L字テロップは局や番組によってL字の向き・背景色・幅・表示内容の動静もまちまちです。
さらにコの字テロップやコの字ワイプテロップ(一部が半透明で映像部分に被る)も存在し、加えてテロップが2重3重の入れ子になる場合もあるようです。
これをまともに認識させるのは難易度が高そうなので没案に。認識出来ても劇中劇のような演出で枠が付いていると誤動作しそうです。

・ロゴ検出(logoGuillo)を利用してL字テロップを検出する

と言う訳で、安直な方法ですが現行技術の延長で解決を図ります。

L字テロップの表示中はロゴが検出されない

画像はL字テロップが表示される場合でのlogoGuilloのロゴ検出結果です。(ソースは2011年春頃のとある番組)
L字テロップの表示期間中は番組の映像がロゴも含めて丸ごと縮小されます。その為ロゴが検出されなくなります。
当然ながらロゴが(検出出来)無い部分は、字幕データ補助無効の場合CM扱いとなります。

つまり以下のうち何れかの条件に一致すれば、L字テロップが表示されている可能性が高いと判断できそうです。
1.logoGuilloのロゴ検出生データと字幕データの食い違いが多い
2.動画の長さに占める本編の割合が低い(DTC発動条件)

[1]はログ(*_frmLvOut.csv)のlogoDtcLvとsubtitleの値を付き合わせて判定可能です。当然ながら字幕データが必要になります。
[2]はDTCの条件(本編割合下限値)を適切に設定しておけば、ログ(*_autoCutSummary.log)にDTCの使用有無が記録されるので判定出来ます。字幕データは不要ですが、逆に字幕データが利用可能な場合DTCは使用されません。

・ロゴ検出ベースでのL字テロップ検出の問題点

ロゴがL字テロップ以外の原因で長時間検出できない場合には判定出来ません(右上に番組内容などのテロップが常時表示されるニュースやバラエティ番組等)。
これを回避するにはL字テロップ状態に縮小されたロゴも検出する必要があるのですが、縮小後のサイズや位置が不定なので難しいです。
とりあえずはアニメやドラマ等、テロップが右上に表示されないタイプの番組では有効な手段だとは思います。

・最後に

残念な事にL字テロップや速報字幕スーパーを完璧に自動検出して再放送や別の局から自動補完させる事は難しそうです。
当面は怪しいソース(L字テロップ、本編が少ない等)を自動的に検出し、例外的な物だけを人間が個別に処理する方法が良さそうです。