ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
このチュートリアルでは、プログラムによるナンバープレート認識について学びます。 いくつかのサンプルナンバープレート画像を取得し、ナンバープレート番号を抽出します。 C#および.NETプログラムを開発して、自動ナンバープレート認識を実行します。 このチュートリアルはシンプルで分かりやすいため、初心者のC#プログラマーにも最適です。
OCRを実行するためのライブラリは多数あります。 いくつかは有料で、いくつかは使いにくく、いくつかは効率的または正確ではありません。 無料で、効率的で、使いやすく、正確な結果を提供するライブラリを見つけるのは非常に難しいことです。 IronOCRを見つけて使用しました。 開発用は無料で、商業利用には1か月の無料体験版を提供し、使いやすく、効率的で、マルチスレッドをサポートし、150以上の言語に対応し、その上でさらに高い精度を提供します。 ナンバープレートの検出からナンバープレート番号の取得まで、すべてのタスクを実行します。
IronOCRは、開発者がC#およびVB.Netアプリケーションから画像やPDFドキュメントを読み取り、テキストを抽出することを可能にします。IronOCRは、製品の高いパフォーマンスと正確性で知られており、Microsoft OCRとTesseract OCRの技術を組み合わせています。これにより、複雑なレイアウトや出版物、手書きのテキストに対しても高い認識率を誇ります。
IronOCRを活用することで、あなたのアプリケーションは自動化されたデータ抽出機能を備え、業務効率を大幅に向上させることができます。
IronOCR は、Iron Software によって開発および保守されており、C# ソフトウェア エンジニアが .NET プロジェクトで OCR、バーコードスキャン、およびテキスト抽出を実行するのに役立つライブラリです。
Deskew
、Denoise
、Binarize
、Enhance Resolution
、Dilate
など、多数のフィルターを使用して、品質の低いスキャンや写真を修正します。
20以上のバーコードフォーマットからバーコードを読み取るおよび QRコードサポート
エクスポート 検索可能なPDFHTMLおよび画像コンテンツのテキスト。
ナンバープレート番号を読み取るデモアプリケーションを開発しましょう。
最初のステップはVisual Studioプロジェクトを作成することです。
Visual Studioを開きます。 「新しいプロジェクトを作成」をクリックし、プロジェクトテンプレートを選択してください。 (このデモアプリケーションのテンプレートとしてコンソールアプリケーションを選択しましたが、ご要件や好みに応じて他のテンプレートを選択することもできます。). 「次へ」ボタンをクリックして、プロジェクトに名前を付けます (私はこれを「License plate OCR」と名付けましたが、好きな名前を付けても構いません。). 「次へ」ボタンをクリックし、ターゲットの .NET Framework を選択してください。 最後に、「Create」ボタンをクリックしてプロジェクトを作成します。 プロジェクトは以下のように作成されます。
ナンバープレートOCRプロジェクト用のVisual Studioプロジェクトを作成する
次に、プロジェクトで使用するためにIronOCRライブラリをインストールする必要があります。 最も簡単な方法は、NuGetパッケージマネージャーを通じてインストールすることです。
トップメニューバーから「ツール」をクリックし、「NuGet パッケージ マネージャー」 > 「ソリューションの NuGet パッケージの管理」を選択します。次の画像を参照してください。
Visual StudioでNuGetパッケージマネージャーUIを見つける
次のウィンドウが表示されます。
Visual Studio の NuGet パッケージ マネージャー UI
「ブラウズ」をクリックして、IronOCR を検索してください。 IronOCR パッケージを選択し、以下に示すように「インストール」ボタンをクリックしてください。
NuGet パッケージ マネージャー UI で IronOCR ライブラリをインストール
IronOCRライブラリがインストールされ、使用準備が整います。
ナンバープレートを読み取るプログラムを書きましょう。 IronOCRは、画像からテキストを抽出するために使用されるTesseract OCRエンジンです。車両の検出のためにコンピュータビジョンを実装する必要がある場合は、他の機械学習ライブラリを使用する必要があるかもしれません。 IronOCRは、オープンソースで市場をリードする検出モデルであるOpenCVをサポートしています。 IronOCR を OpenCV と組み合わせて使用することで、車の検出やナンバープレートの検出などのオブジェクト検出を行うことができます。
次のナンバープレートを読み取ります:
ナンバープレートのイメージで、ナンバープレートの番号がはっきりと見える
さて、コードを書きます。
次の名前空間を追加してください:
using IronOcr;
using IronOcr;
Imports IronOcr
次のコードを追加してください:
var ocr = new IronTesseract();
using (var input = new OcrInput(@"D:\Liscence Plate\plate3.jpg"))
{
input.DeNoise(); // fixes digital noise and poor scanning
input.ToGrayScale();
var result = ocr.Read(Input);
Console.WriteLine(result.Text);
}
var ocr = new IronTesseract();
using (var input = new OcrInput(@"D:\Liscence Plate\plate3.jpg"))
{
input.DeNoise(); // fixes digital noise and poor scanning
input.ToGrayScale();
var result = ocr.Read(Input);
Console.WriteLine(result.Text);
}
Dim ocr = New IronTesseract()
Using input = New OcrInput("D:\Liscence Plate\plate3.jpg")
input.DeNoise() ' fixes digital noise and poor scanning
input.ToGrayScale()
Dim result = ocr.Read(Input)
Console.WriteLine(result.Text)
End Using
これは次の操作を実行します:
IronTesseract
デフォルト設定のオブジェクト。DeNoise(デノイズ)
デジタルノイズを除去するフィルターです。このフィルターはノイズが予想される場合にのみ使用してください。 私たちの場合、CCTVのビデオや写真はしばしばノイズだらけです。Read
メソッドを介して OcrInput
オブジェクトからテキストを読み取り、結果を返します。 OcrResult
オブジェクト OcrInput
は、推奨される入力タイプです。なぜなら、それは 複数ページのドキュメントのOCR画像を読み取る前に強化することで、より速く、より正確な結果を得ることができます。
result.Text (結果.Text)
ナンバープレートから抽出した全コンテンツを返します。検出されたナンバープレートから正しいライセンス番号が抽出されていることがわかります。
IronOCR は、ナンバープレート画像から数字を正確に検出して抽出します
別々のナンバープレートがなく、車全体の写真があるとします。 今、ナンバープレートのエリアをスキャンし、文字認識を行う必要があります。
System.Drawing.Rectangle
を使用して、ナンバープレートを読み取る領域を指定することができます。 測定単位は常にピクセルです。
以下のサンプル画像ファイルを使用します。
車のナンバープレートが見える後ろ姿の全体画像
これは、速度の向上を提供し、不必要なテキストの読み取りを回避することができることがわかります。
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// a 41% improvement on speed
var contentArea = new CropRectangle(x: 365, y: 240, height: 80, width: 29);
input.AddImage(@"D:\Liscence Plate\plate1.jpg", 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: 365, y: 240, height: 80, width: 29);
input.AddImage(@"D:\Liscence Plate\plate1.jpg", 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:= 365, y:= 240, height:= 80, width:= 29)
input.AddImage("D:\Liscence Plate\plate1.jpg", contentArea)
Dim result = ocr.Read(input)
Console.WriteLine(result.Text)
End Using
これにより41%の速度増加が実現し、具体的に指定することが可能になります。 領域の開始座標を指定します (xとy) 検出領域の幅と高さ。
コンテンツ領域 (OCR クロッピング) PDFを読み取る際にも対応しています。
IronOCRは、OpenCVを利用して、画像内にテキストが存在する領域をコンピュータビジョンで検出します。 画像処理技術を実行し、ナンバープレートを検出するための検出モデルを使用します。 IronOCRにおけるコンピュータビジョンの使用は、テキスト領域がどこに存在するかを判断し、そのあとにTesseractを使用してこれらの領域を読み取ろうとします。
ライセンスプレート検出モデルを使用するには、IronOcr.ComputerVision.Windows
をインストールする必要があります。
パッケージマネージャーコンソールで次のコマンドを使用してください。
PM> Install-Package IronOcr.ComputerVision.Windows
これは、IronOCRコンピュータービジョンをモデルファイルと共に使用するために必要なアセンブリを提供します。
以下のサンプルコードは、自動的に車のナンバープレートを検出します。
var ocr = new IronTesseract();
using (var input = new OcrInput(@"D:\Liscence Plate\plate1.jpg"))
{
input.FindTextRegion();
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
}
var ocr = new IronTesseract();
using (var input = new OcrInput(@"D:\Liscence Plate\plate1.jpg"))
{
input.FindTextRegion();
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
}
Dim ocr = New IronTesseract()
Using input = New OcrInput("D:\Liscence Plate\plate1.jpg")
input.FindTextRegion()
Dim result As OcrResult = ocr.Read(input)
Console.WriteLine(result.Text)
End Using
使用の `FindTextRegion (テキスト領域を検索)もちろん、英語のテキストを教えていただけますでしょうか? OcrInput
オブジェクトのすべての画像について、コンピュータビジョンを使用してナンバープレートを含む領域を検出します。
このチュートリアルでは、IronOCRを使用し、自動車のナンバープレートを読み取るシンプルなプログラムを開発する方法を学びました。 IronOCRは、ぼやけた画像や低解像度の画像からテキストを読み取ることができ、高効率で高精度を提供し、127以上の言語に完全に対応しており、開発には無料で提供されており、製品化に制限がないことを確認しました。
要約すると、IronOCR は以下を提供します:
.NET 6、5、Core、Standard、Frameworkをサポート
IronOCR の一部です。 Iron Suite. このスイートには、他にも非常に便利なライブラリが含まれています。 IronPDF PDFの読み書き用に IronXL Excelファイルを操作するための IronWebscraper ウェブサイトからデータを抽出するための。
9つの .NET API製品 オフィス文書用