Video OCR 機能のパブリック プレビューを発表

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

このポストは、6 月 28 日に投稿された Announcing: Video OCR Public Preview の翻訳です。

 

Azure Media OCR のパブリック プレビュー

Azure Media OCR についてよくご存知でない方は、Azure Media OCR の紹介記事をお読みください。

このたび、プライベート プレビューで貴重なフィードバックをいただいていた Azure Media OCR メディア プロセッサのパブリック プレビューが開始されます。

今回のリリースは、公開されているすべてのデータセンターですべての Azure Media Services ユーザーの方に無料でご利用いただけます。パブリック プレビュー リリースには、新しい構成スキーマ、JSON のサポート、新しい出力形式の追加などの新機能も実装されています。

構成

プライベート プレビューでいただいたフィードバックにお応えして、構成スキーマを簡素化し、JSON と XML の両方の形式をサポートしました。

JSON

次に示すのは、右向きに記述される英語のテキスト (時計回りに 90 度回転) を 1.5 秒ごとに図の領域で検出する JSON 構成の例です。

(注: 画像の縮尺は等倍ではありません)

 {
  'Version':'1.0', 
  'Options': 
  {
    'Language':'English', 
    'TimeInterval':'00:00:01.5',
    'DetectRegions': 
    [
      {'Left':'12','Top':'10','Width':'150','Height':'100'},
      {'Left':'190','Top':'200','Width':'160','Height':'140'}
    ],
    'TextOrientation':'Right'
  }
}

XML

次に示すのは、任意の方向に記述される任意のサポート対象言語のテキストを 0.5 秒ごとに検出する XML 構成の例です。

 <?xml version=""1.0"" encoding=""utf-16""?>
<VideoOcrPreset xmlns:xsi=""https://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""https://www.w3.org/2001/XMLSchema"" Version=""1.0"" xmlns=""https://www.windowsazure.com/media/encoding/Preset/2014/03"">
  <Options>
    <Language>AutoDetect</Language>
  </Options>
</VideoOcrPreset>

次の表は、Azure Media OCR 構成で使用可能な属性をまとめたものです。

Language (オプション) 検出対象のテキストの言語を表します。次のいずれかの値を取ります。AutoDetect (自動検出、既定値)、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 (トルコ語)
TextOrientation (オプション) 検出対象のテキストが記述される方向を表します。“Left” (左向き) が指定されると、すべての文字の上側が左向きであるものとされます。既定のテキスト (本などで一般的に使用されるテキスト) は “Up” (上向き) と呼ばれます。次のいずれかの値を取ります。
  • AutoDetect (自動検出、既定値)
  • Up (上向き)
  • Right (右向き)
  • Down (下向き)
  • Left (左向き)
TimeInterval (オプション) サンプリング レートを表します。既定値は 0.5 秒ごとです。JSON 形式 - HH:mm:ss.SSS (既定値は 00:00:00.500)XML 形式 - W3C XSD で定められた期間を表すプリミティブ型 (英語) (既定値は PT0.5)
DetectRegions (オプション) ビデオ フレームからテキストを検出する領域を DetectRegion オブジェクトの配列で指定します。DetectRegion オブジェクトは次の 4 つの整数値で構成されます。
  • Left – 左余白からのピクセル数
  • Top – 上余白からのピクセル数
  • Width – 領域の幅のピクセル数
  • Height – 領域の高さのピクセル数

 

この入力を使用すると、OCR ジョブをニーズに合わせて高度に最適化することができます。たとえば、ハード コードされたサブタイトルを Azure Media OCR でビデオから抽出する場合、DetectRegion フィールドを使用して検出対象を画面上部 3分の 1 のみに絞り込むことができます。

出力

出力形式も大きく変更され、他の Azure Media Analytics メディア プロセッサとの連携が強化されています。簡単に説明すると、出力はビデオの全般情報と時間に基づく “fragments” で構成され、それぞれの “fragments” にはメディア プロセッサ (この場合は OCR) が検出したメタデータを表す “events” が 0 個から複数個含まれます。

次に示すのは、TimeInterval の値を 1 (秒) に設定して上のビデオを新バージョンの Azure Media OCR で処理した場合の JSON 出力の一部です。

(注: JSON 出力全体はこちらでダウンロードできます)

 {
  "version": 1,
  "timescale": 30000,
  "offset": 0,
  "framerate": 29.97,
  "width": 1280,
  "height": 720,
  "fragments": [
    {
      "start": 0,
      "duration": 87087,
      "interval": 29029,
      "events": [
        [
          {
            "region": {
              "language": "English",
              "orientation": "Up",
              "lines": [
                {
                  "text": "Digital media landscape is always changing",
                  "left": 386,
                  "top": 143,
                  "right": 1175,
                  "bottom": 189,
                  "word": [
                    {
                      "text": "Digital",
                      "left": 386,
                      "top": 144,
                      "right": 497,
                      "bottom": 189,
                      "confidence": 890
                    },
                    {
                      "text": "media",
                      "left": 514,
                      "top": 144,
                      "right": 624,
                      "bottom": 179,
                      "confidence": 998
                    },
                    {
                      "text": "landscape",
                      "left": 641,
                      "top": 143,
                      "right": 823,
                      "bottom": 189,
                      "confidence": 881
                    },
                    {
                      "text": "is",
                      "left": 838,
                      "top": 145,
                      "right": 861,
                      "bottom": 179,
                      "confidence": 996
                    },
                    {
                      "text": "always",
                      "left": 875,
                      "top": 144,
                      "right": 993,
                      "bottom": 189,
                      "confidence": 874
                    },
                    {
                      "text": "changing",
                      "left": 1007,
                      "top": 144,
                      "right": 1175,
                      "bottom": 189,
                      "confidence": 997
                    }
                  ]
                }
              ]
            }
          },
          {
            "region": {
              "language": "English",
              "orientation": "Up",
              "lines": [
                {
                  "text": "Video is the new currency",
                  "left": 395,
                  "top": 438,
                  "right": 679,
                  "bottom": 465,
                  "word": [
                    {
                      "text": "Video",
                      "left": 395,
                      "top": 438,
                      "right": 458,
                      "bottom": 459,
                      "confidence": 994
                    },
                    {
                      "text": "is",
                      "left": 467,
                      "top": 439,
                      "right": 481,
                      "bottom": 459,
                      "confidence": 992
                    },
…

出力内容の説明

Video OCR 出力には、ビデオで検出された文字が時間で分割されたデータとして示されます。言語や方向などの属性を使用すると、分析したい言葉を正確に絞り込むことができます。

出力には次の属性が含まれます。

timescale ビデオの 1 秒あたりの「ティック数」。
offset タイムスタンプで使用するタイム オフセット。バージョン 1.0 の Video API では、この値は常に 0 です。
framerate ビデオの 1 秒あたりのフレーム数。
width ビデオの幅のピクセル数。
height ビデオの高さのピクセル数。
fragments 時間に基づくビデオ チャンクの配列。メタデータの分割に使用されます。
start fragments の開始時間を示す「ティック数」。
duration fragments の長さを示す「ティック数」。
interval 特定の fragments 内の各 events の間隔。
events region の値を含む配列。
region 検出された語や句を表すオブジェクト。
language 領域内で検出されたテキストの言語。
orientation 領域内で検出されたテキストの記述方向。
lines 領域内で検出されたテキストの行の配列。
text 実際のテキスト。

 

この製品の詳細および用途については、こちらの Azure Media OCR の紹介記事をお読みください。

Azure Media Analytics の詳細については、こちらの紹介記事 (英語) を参照してください。

Media Analytics 製品についてご不明な点がありましたら、お気軽にメール (amsanalytics@microsoft.com) でお問い合わせください。