IRONOCRの使用

C#で字幕のOCR(チュートリアル)

更新済み 2月 21, 2023
共有:

このチュートリアルでは、ビデオファイルからハードコードされた字幕を抽出する方法について学びます。 サンプル動画ファイルを使用して、ハードコーディングされた字幕をtxtファイルに抽出します。OCRプロセスを使用してハードコーディングされた字幕を抽出するC# .NETプログラムを開発します。 このチュートリアルはシンプルで分かりやすくしますので、初心者のC#プログラマーでも理解できるようにします。

効率的なOptical Character Recognitionが必要です。 (OCR (光学式文字認識)) 字幕言語に関係なく、ビデオを処理して字幕ファイルを取得できるエンジン。

OCR結果を提供するライブラリは多数あります。 いくつかは有料であり、いくつかは使いにくく、またいくつかは効率的でないか正確でないため、無料で、効率的で、使いやすく、正確な結果を提供するライブラリを見つけることは非常に困難です。

IronOCRは、開発目的で無料で使用でき、商用利用には1ヶ月間の無料トライアルを提供しています。 150を超える言語をサポートし、他の多くのOCRライブラリよりも高い精度を提供します。 それはまた、効率的で使いやすいです。 このライブラリをデモンストレーションに使用します。

IronOCR

IronOCRは、開発者がC#およびVB.Netアプリケーションから画像やPDFドキュメントを読み取り、テキストを抽出することを可能にします。IronOCRは、製品の高いパフォーマンスと正確性で知られており、Microsoft OCRとTesseract OCRの技術を組み合わせています。これにより、複雑なレイアウトや出版物、手書きのテキストに対しても高い認識率を誇ります。

  • サポートされるファイル形式: PNG, JPG, GIF, TIFF, BMP, PDF
  • ユニークな機能: 複数言語のテキスト認識、回転・歪みの補正、ノイズ除去
  • 導入が簡単: .NETフレームワークや.NET Coreプロジェクトに簡単に統合可能
  • ライセンスオプション: Lite License, Plus License, Professional License, Unlimited License

IronOCRの利点

  1. 高い認識精度: IronOCRは最新のOCR技術を利用し、正確なテキスト抽出を実現します。
  2. 迅速な処理: 高速な処理速度で大量のドキュメントを効率的に処理できます。
  3. シンプルな統合: APIがシンプルで使いやすいため、開発者は短時間で機能を実装できます。

IronOCRを活用することで、あなたのアプリケーションは自動化されたデータ抽出機能を備え、業務効率を大幅に向上させることができます。

IronOCR は、C#ソフトウェアエンジニアが .NETプロジェクトでOCR、バーコードスキャン、およびテキスト抽出を実行するのを支援するために、Iron Softwareによって開発および保守されているライブラリです。

IronOCRの特徴には以下が含まれます:

  • 画像などの多くの形式からテキストを読み取る (JPEG、PNG、BMP), GIF, TIF/TIFFIn Japanese, the text ", Streams, and" can be translated as follows:

、ストリーム、および PDFファイル

  • 「Correction of」 低品質のスキャンや写真 Deskew、Denoise、Binarize、解像度の向上、膨張など多数のフィルター
  • 20種類以上のフォーマットからバーコードを読み取ることに加えて QRコードサポート
  • 最新バージョンのTesseract OCRを活用し、その性能は他の同様のライブラリをはるかに超えるように調整されています。
  • 検索可能なPDFのエクスポート、hOCR / HTMLのエクスポート、および画像コンテンツのテキスト。

    ナンバープレート番号を読み取るデモアプリケーションを開発しましょう。

Visual Studio プロジェクトを作成する

最初のステップは、新しいプロジェクトを作成することです。

Visual Studioを開きます。 Create New Project をクリックし、Console Application プロジェクトテンプレートを選択します。

次へ ボタンをクリックし、プロジェクトの名前を入力してください。 (「OCR字幕」と名付けましたが、お好きな名前を付けていただいて構いません。).

Next ボタンをクリックし、ターゲットフレームワークを選択してください。 最後に、「Create」ボタンをクリックしてプロジェクトを作成します。

プロジェクトは以下のように作成されます。

C#で字幕をOCRする方法(チュートリアル)、図1: Visual Studioで新しいプロジェクトを作成する

Visual Studio で新しいプロジェクトを作成する

次に、プロジェクトで使用するためにIronOCRライブラリをインストールする必要があります。 最も簡単な方法は、ソリューションのためのNuGetパッケージマネージャーを介してインストールすることです。

IronOCR NuGet パッケージをインストール

上部のメニューバーからToolsをクリックし、NuGet Package Manager > Manage NuGet Packages for Solutionを選択してください。次の図を参照してください。

C#で字幕をOCRする方法(チュートリアル)、図2:Visual StudioでIronOCRをインストールする

Visual Studio に IronOCR をインストールする

次のウィンドウが表示されます。

C#で字幕をOCRする方法(チュートリアル)、図3:Visual StudioのNuGetパッケージマネージャーUI

Visual Studio NuGet パッケージマネージャー UI

参照をクリックして、IronOCRを検索してください。 IronOCRパッケージを選択し、以下に示すようにインストールボタンをクリックします。

字幕をC#でOCRする方法(チュートリアル)、図4:NuGet パッケージ マネージャーのUIでIronOCRを検索する

NuGetパッケージマネージャーUIでIronOCRを検索

IronOCRライブラリがインストールされ、使用準備が整います。

ハードコードされた字幕を抽出

ハードコードされた字幕を抽出するプログラムを書きましょう。

以下のスクリーンショットを使用して字幕を抽出します。

OCRで字幕をC#で取得する方法(チュートリアル)、図5: 文字を抽出するサンプル動画のスクリーンショット

テキストが抽出されるサンプルビデオのスクリーンショット

次の名前空間を追加してください:

using IronOcr;
using IronOcr;
Imports IronOcr
VB   C#

名前空間の宣言の下に次のコードを書いてください。

var ocr = new IronTesseract();
using (var input = new OcrInput(@"D:\Liscence Plate\plate3.jpg"))
{
    var result = ocr.Read(input);
    Console.WriteLine(result.Text);
}
var ocr = new IronTesseract();
using (var input = new OcrInput(@"D:\Liscence Plate\plate3.jpg"))
{
    var result = ocr.Read(input);
    Console.WriteLine(result.Text);
}
Dim ocr = New IronTesseract()
Using input = New OcrInput("D:\Liscence Plate\plate3.jpg")
	Dim result = ocr.Read(input)
	Console.WriteLine(result.Text)
End Using
VB   C#

上記のコードは次のように動作します:

  1. 初期化 IronTesseract オブジェクト それは IronTesseract のデフォルトインスタンスを作成します。

  2. 新しい OcrInput(OCR入力) 入力画像ファイルまたはPDFドキュメントで生成されたオブジェクト OcrInputは、複数ページのドキュメントのOCRを可能にし、OCR前に画像を強化することができるため、より速く、より正確な結果を得るための好ましい入力タイプです。

  3. OCR入力オブジェクトからテキストを読み取り、OCR結果オブジェクトを返します。 ocr.Read 指定された入力スクリーンショットから字幕を抽出します。

  4. result.Text は、指定された入力から抽出されたすべてのコンテンツを返します。

    サンプルプログラムは以下のコンソール出力を生成します:

    C#で字幕のOCRを行う方法(チュートリアル)、図7:IronOCRを使用してサンプル画像からテキスト抽出を実行した際のコンソール出力

    サンプル画像からテキスト抽出を行う際にIronOCRを使用して生成されたコンソール出力

    ビデオのフレームに、ビデオのタイトルと字幕の両方が含まれていると仮定しましょう。

    C#で字幕をOCRする方法(チュートリアル)、図6: 動画タイトルと字幕のテキスト領域を含む長時間のビデオの一フレーム

    長いビデオの一部で、ビデオのタイトルおよび字幕のテキスト領域が含まれています。

    私たちの目標は、画像の下部領域からハードコーディングされた字幕を抽出することです。 この場合、字幕が表示されるテキスト領域を指定する必要があります。

フレーム内でサブタイトルの位置を指定

System.Drawing.Rectangle を使用して、ビデオフレームから字幕を読み取る領域を指定することができます。 測定単位は常にピクセルです。

以下のサンプルコードを使用してテキスト領域を指定します。

var ocr = new IronTesseract();
using (var input = new OcrInput())
{
    // a 41% improvement on speed
    var contentArea = new CropRectangle(x: 189, y: 272, height: 252, width: 77);
    input.AddImage(@"D:\subtitle\image.png", contentArea);
    var result = ocr.Read(input);
    Console.WriteLine(result.Text);
}
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
    // a 41% improvement on speed
    var contentArea = new CropRectangle(x: 189, y: 272, height: 252, width: 77);
    input.AddImage(@"D:\subtitle\image.png", contentArea);
    var result = ocr.Read(input);
    Console.WriteLine(result.Text);
}
Dim ocr = New IronTesseract()
Using input = New OcrInput()
	' a 41% improvement on speed
	Dim contentArea = New CropRectangle(x:= 189, y:= 272, height:= 252, width:= 77)
	input.AddImage("D:\subtitle\image.png", contentArea)
	Dim result = ocr.Read(input)
	Console.WriteLine(result.Text)
End Using
VB   C#

これにより41%の速度増加が実現し、具体的に指定することが可能になります。 contentAreaでは、xとyの開始点を指定し、その後に必要な字幕領域の高さと幅を指定しています。

字幕テキストファイルに字幕を保存

抽出した字幕をTXTファイルに保存しましょう。

var ocr = new IronTesseract();
using (var input = new OcrInput(@"D:\subtitle\subtitle1.png"))
{
    var result = ocr.Read(input);
    result.SaveAsTextFile(@"D:\subtitle\subtitlefile.txt");
}
var ocr = new IronTesseract();
using (var input = new OcrInput(@"D:\subtitle\subtitle1.png"))
{
    var result = ocr.Read(input);
    result.SaveAsTextFile(@"D:\subtitle\subtitlefile.txt");
}
Dim ocr = New IronTesseract()
Using input = New OcrInput("D:\subtitle\subtitle1.png")
	Dim result = ocr.Read(input)
	result.SaveAsTextFile("D:\subtitle\subtitlefile.txt")
End Using
VB   C#

result.SaveAsTextFile(テキストファイルとして保存) 出力パスを引数として受け取り、指定されたパスにファイルを保存します。

![C#で字幕をOCRする方法(チュートリアル)

図8: ビデオのタイトルおよびビデオの字幕のテキスト領域を含む長いビデオの単一フレーム](/static-assets/ocr/blog/subtitle-ocr-csharp-tutorial/subtitle-ocr-csharp-tutorial-8.webp)

長いビデオの一部で、ビデオのタイトルおよび字幕のテキスト領域が含まれています。

サマリー

このチュートリアルでは、IronOCRを使用して、ビデオスクリーンショットから字幕を読み取る非常にシンプルなプログラムを開発する方法を学びました。 以下の内容を日本語に翻訳します:

"We can also"

「私たちもまた」 地域を指定する テキストを抽出したい対象。

IronOCRは、以下の機能を提供します OpenCV 以下を日本語に翻訳してください:

For IronPDF, Iron Software offers a variety of licenses, including Lite License, Plus License, Professional License, and Unlimited License. The Lite License is suitable for small projects, while the Plus License offers more features for larger applications. The Professional License provides extensive capabilities for enterprise-level needs, and the Unlimited License offers unrestricted usage. The licenses are designed to cater to different project sizes and requirements, ensuring that developers can choose the best fit for their needs.

IronPDFは、Iron Softwareによって提供されるライセンスの一部としてLite License、Plus License、Professional License、およびUnlimited Licenseを含みます。Lite Licenseは小規模なプロジェクトに適しており、Plus Licenseはより大規模なアプリケーションに対応した多くの機能を提供します。Professional Licenseは企業レベルのニーズに対応する広範な機能を備えており、Unlimited Licenseは無制限の使用を可能にします。これらのライセンスは、異なるプロジェクトの規模や要件に応じて設計されており、開発者が自分のニーズに最適な選択をできるようにします。 コンピュータビジョン. 私たちは、IronOCRによってぼやけた画像や低解像度の画像からテキストを読み取ることができることを確認しました。 このライブラリは効率的で高精度を提供します。 127以上の言語に完全対応しています。 開発には無料であり、実運用に制限はありません。

要約すると、IronOCR は以下を提供します:

  • 画像およびスキャンされたドキュメントをスキャンして読み取る機能

    • 以下を日本語に翻訳します:

サポート 世界の150以上の言語

< 以前
C#でスクリーンショットからテキストをOCRで取得する方法

準備はできましたか? バージョン: 2024.9 新発売

無料のNuGetダウンロード 総ダウンロード数: 2,290,361 View Licenses >