Azure Media Analytics の Video OCR のプライベート プレビューを発表

執筆者: Adarsh Solanki (Program Manager, Azure Media Services)

このポストは、4 月 20 日に投稿された Announcing Video OCR Private Preview on Azure Media Analytics の翻訳です。

 

: 以下のブログ記事は Azure Media Analytics のコンポーネントについて説明したものです。Azure Media Analytics の詳細と利用開始については、Azure Media Analytics の概要に関するブログ記事 (英語) をご覧ください。

Video OCR

OCR (光学式文字認識) とは、動画内のテキストを編集/検索可能なデジタル テキストに変換する機能です。Video OCR は、動画ファイルからテキスト コンテンツを検出してテキスト ファイルを生成する機能であり、これを使用することでメディアのビデオ信号から有用なメタデータを自動で抽出することができます。

検索エンジンと併用すると、メディアに簡単にテキスト インデックスを付け、コンテンツを検索しやすくすることができます。この機能は、スライドショーの録画や画面キャプチャのようなテキストが多く含まれる動画で利用すると非常に便利です。この Azure OCR Media Processor はデジタル テキストに最適化されています。

そして今回、Azure Media Analytics の一部として Azure OCR Media Processor のプライベート プレビューが開始されました。

Oceaneering のサンプル動画

エンジニアリング サービスを提供する Oceaneering では、海底の石油/ガス操業を定期的に調査して地図を作成しています。その作業の際、GPS 座標、深度、その他さまざまなタグのオーバーレイ表示が埋め込まれた大量の動画データが生成されることになります。そのため Oceaneering のエンジニアは、膨大な数の動画ライブラリに効率的にインデックスを付けて整理できるように、テキスト オーバーレイを抽出したいと考えていました。Azure Media OCR なら、クラウドに保存された膨大な数の動画コンテンツをエンタープライズ規模で処理することができます。

それでは、Oceaneering の実際のサンプル動画を見てみましょう。

特に、ビデオ フレーム上部のテキスト オーバーレイに注目してください。このセクションには、動画とその内容の重要なデータ タグとラベルが含まれています。Azure Media OCR Media Processor を使用することで、このテキスト ベースの情報を動画ファイルから抽出できます。XML 出力の全文をダウンロードするか、以下の結果の抜粋を参照してください。この出力は、上記のサンプル動画の最初のフレーム (タイムスタンプ 0:00) の既定の設定で生成されたものです。

出力の抜粋

     <FrameTextData time="0.00">

        <TextRegion left="15" top="4" width="705" height="50">

          <TextData>  MD-13  Mad Dog  cp -148</TextData>

          <TextLine left="15" top="4" width="51" height="13">

       <TextData> MD-13</TextData>

       <TextBlob left="15" top="4" width="51" height="13" confidence="464" language="6">

        <TextData>MD-13</TextData>

       </TextBlob>

      </TextLine>

      <TextLine left="15" top="38" width="68" height="16">

       <TextData> Mad Dog</TextData>

       <TextBlob left="15" top="38" width="30" height="14" confidence="494" language="6">

        <TextData>Mad</TextData>

       </TextBlob>

       <TextBlob left="53" top="38" width="30" height="16" confidence="698" language="6">

        <TextData>Dog</TextData>

       </TextBlob>

      </TextLine>

      <TextLine left="659" top="38" width="61" height="13">

       <TextData> cp -148</TextData>

       <TextBlob left="659" top="38" width="19" height="13" confidence="424" language="6">

        <TextData>cp</TextData>

       </TextBlob>

       <TextBlob left="685" top="38" width="35" height="13" confidence="603" language="6">

        <TextData>-148</TextData>

       </TextBlob>

      </TextLine>

     </TextRegion>

     <TextRegion left="332" top="4" width="54" height="47">

      <TextData>  Drilling  33</TextData>

      <TextLine left="332" top="4" width="54" height="16">

       <TextData> Drilling</TextData>

       <TextBlob left="332" top="4" width="54" height="16" confidence="594" language="6">

        <TextData>Drilling</TextData>

       </TextBlob>

      </TextLine>

      <TextLine left="333" top="38" width="18" height="13">

       <TextData> 33</TextData>

       <TextBlob left="333" top="38" width="18" height="13" confidence="355" language="6">

        <TextData>33</TextData>

       </TextBlob>

      </TextLine>

     </TextRegion>

     <TextRegion left="394" top="4" width="38" height="13">

      <TextData>  Riser</TextData>

      <TextLine left="394" top="4" width="38" height="13">

       <TextData> Riser</TextData>

       <TextBlob left="394" top="4" width="38" height="13" confidence="606" language="6">

        <TextData>Riser</TextData>

       </TextBlob>

      </TextLine>

     </TextRegion>

     <TextRegion left="885" top="4" width="83" height="47">

      <TextData>  8/12/2012  59</TextData>

      <TextLine left="885" top="4" width="83" height="15">

       <TextData> 8/12/2012</TextData>

      <TextBlob left="885" top="4" width="83" height="15" confidence="524" language="6">

       <TextData>8/12/2012</TextData>

      </TextBlob>

     </TextLine>

     <TextLine left="940" top="38" width="18" height="13">

      <TextData> 59</TextData>

      <TextBlob left="940" top="38" width="18" height="13" confidence="333" language="6">

       <TextData>59</TextData>

      </TextBlob>

     </TextLine>

    </TextRegion>

    <TextRegion left="1004" top="4" width="112" height="47">

     <TextData>  E 2528185.  79  N 9875573.57</TextData>

     <TextLine left="1004" top="4" width="88" height="13">

      <TextData> E 2528185.</TextData>

      <TextBlob left="1004" top="4" width="8" height="13" confidence="562" language="6">

       <TextData>E</TextData>

      </TextBlob>

      <TextBlob left="1019" top="4" width="73" height="13" confidence="603" language="6">

       <TextData>2528185.</TextData>

      </TextBlob>

     </TextLine>

     <TextLine left="1096" top="4" width="17" height="13">

      <TextData> 79</TextData>

      <TextBlob left="1096" top="4" width="17" height="13" confidence="317" language="6">

       <TextData>79</TextData>

      </TextBlob>

     </TextLine>

     <TextLine left="1004" top="38" width="112" height="13">

      <TextData> N 9875573.57</TextData>

      <TextBlob left="1004" top="38" width="10" height="13" confidence="566" language="6">

       <TextData>N</TextData>

      </TextBlob>

      <TextBlob left="1021" top="38" width="95" height="13" confidence="669" language="6">

       <TextData>9875573.57</TextData>

      </TextBlob>

     </TextLine>

    </TextRegion>

    <TextRegion left="1140" top="4" width="82" height="48">

     <TextData>  H 2.13  D 2245.90</TextData>

     <TextLine left="1140" top="4" width="51" height="13">

      <TextData> H 2.13</TextData>

      <TextBlob left="1140" top="4" width="10" height="13" confidence="608" language="6">

       <TextData>H</TextData>

      </TextBlob>

      <TextBlob left="1157" top="4" width="34" height="13" confidence="608" language="6">

       <TextData>2.13</TextData>

      </TextBlob>

     </TextLine>

     <TextLine left="1140" top="39" width="82" height="13">

      <TextData> D 2245.90</TextData>
  
      <TextBlob left="1140" top="39" width="11" height="12" confidence="536" language="6">

       <TextData>D</TextData>

      </TextBlob>

      <TextBlob left="1158" top="39" width="64" height="13" confidence="427" language="6">

       <TextData>2245.90</TextData>

      </TextBlob>

     </TextLine>

    </TextRegion>

   </FrameTextData>

Oceaneering では、この XML ファイルを使用してマルチメディアのタグ付けを自動化できます。そのため、このオーバーレイ データを後処理用のパイプラインに渡すためにアーキテクチャを再構築する必要はありませんでした。カメラ フィードにオーバーレイ表示される位置データに基づいて、特定の深度や近隣の場所を撮影した動画 (または動画のセグメント) に簡単にインデックスを付けることができます。

企業のサンプル動画

実は、Oceaneering での Video OCR の使用方法は特殊でした。より一般的な使用方法としては、たとえば、録画した講演の PowerPoint スライドからテキスト データを抽出する場合などがあります。

//Build で行った Azure Media Services のプレゼンテーション クリップがありますので、以下をご覧ください。

この動画にあるすべてのテキストを抽出することができます (//Build のロゴは除く)。

 Digital media landscape is always changing

Huge capital investment required Delivering video is hard, expensive, time - consuming, with a need for high scale and high availability especially hard and costly as both audience sizes and content libraries grow and shrink and grow again.

Delivering video is hard, expensive, time - consuming, with a need for

high scale and high availability especially hard and costly as both

audience sizes and content libraries grow and shrink and grow

Video is the new currency Audiences of all kinds are changing and demanding content on their own devices, wherever they are.That isn 't easy: So many different device profiles and different delivery technologies.

Audiences of all kinds are changing and demanding content

on their own devices, wherever they are.That isn 't easy: So

many different device profiles and different delivery

Azure Media Services Microsoft's cloud platform enables on demand and live streaming video solutions for consumer and enterprise scenarios.

Microsoft's cloud platform enables on

demand and live streaming video solutions

for consumer and enterprise scenarios.

この結果を見れば、Video OCR でのスライドショー プレゼンテーションに対する処理能力がいかに高いかがよくわかります。理想的なのは、すべての企業や教育機関がプレゼンテーションの録画に含まれる重要なデータにインデックスを付け、検索や確認を容易にできるようにすることです。

Video OCR のプライベート プレビュー版の構成プリセットの内容は以下のとおりです。

TimeInterval 0 以上の整数。OCR のサンプリング頻度を指定します。値を 1.5 に設定した場合、1.5 秒ごとに 1 つのフレームをサンプリングします。既定値は 0 です (すべてのフレームをサンプリングします)。
Language 次のいずれかの文字列。Arabic、Chinese Simplified、Chinese Traditional、Czech、Danish、Dutch、English、Finnish、French、German、Greek、Hungarian、Italian、Japanese、Korean、Norwegian、Polish、Portuguese、Romanian、Russian、Serbian Cyrillic、Serbian Latin、Slovak、Spanish、Swedish、Turkish (アラビア語、簡体字中国語、繁体字中国語、チェコ語、デンマーク語、オランダ語、英語、フィンランド語、フランス語、ドイツ語、ギリシャ語、ハンガリー語、イタリア語、日本語、韓国語、ノルウェー語、ポーランド語、ポルトガル語、ルーマニア語、ロシア語、セルビア語 (キリル文字)、セルビア語 (ラテン文字)、スロバキア語、スペイン語、スウェーデン語、トルコ語)。

使用を開始するには

Video OCR のプライベート プレビューを利用するには、こちらの Azure Web ページ (英語) でサインアップを行ってください。

プライベート プレビューへのアクセスが承認されたら、Media Analytics の概要ブログ記事 (英語) のサンプル プロジェクトを以下の構成で使用します。

タスク構成 <?xml version="1.0" encoding="utf-8"?><configuration version="2.0"><input><metadata key="title" value="" /><metadata key="description" value="" /></input><features><feature name="ocr"><settings><add key="OutputFormats" value="txt|xml" /><add key="Language" value="english"/><add key="TimeInterval" value="5"/></settings></feature></features><settings></settings></configuration>
  
メディア プロセッサ名 “Azure Media OCR”

Video OCR とコンテンツ モデレートを利用するには、こちらのページ (英語) でサインアップを行ってください。

Azure Media Analytics の詳細については、概要に関するブログ記事 (英語) をご覧ください。

Media Analytics のサービスについてご不明な点は、amsanalytics@microsoft.com までお問い合わせいただければ幸いです。