Беларускае OCR у C#і .NET

Іншыя версіі гэтага дакумента:

IronOCR - гэта праграмны кампанент C #, які дазваляе .NET-кодэрам чытаць тэкст з малюнкаў і PDF-дакументаў на 126 мовах, уключаючы беларускую.

Гэта ўдасканалены відэлец Tesseract, распрацаваны выключна для распрацоўшчыкаў .NET і рэгулярна пераўзыходзіць астатнія рухавікі Tesseract як па хуткасці, так і па дакладнасці.

Змест IronOcr.Languages.Belarusian

Гэты пакет утрымлівае 55 моў OCR для .NET:

  • Беларуская
  • БеларускіЛепшы
  • БеларускіХуткі

Спампаваць

Беларускі моўны пакет [беларуская мова]
* Descargar como Паштовы індэкс
* Instalar con
https://www.nuget.org/packages/IronOcr.Languages.Belarusian/'> NuGet

Ўстаноўка

Першае, што нам трэба зрабіць, гэта ўсталяваць наш беларускі OCR-пакет у ваш .NET-праект.

PM> Install-Package IronOCR.Languages.Belarusian

Прыклад кода

Гэты прыклад кода C#чытае беларускі тэкст з дакумента Image або PDF.

```cs //PM> Install-Package IronOcr.Languages.Belarusian using IronOcr; var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Belarusian; using (var Input = new OcrInput(@"images\Belarusian.png")) { var Result = Ocr.Read(Input); Var AllText = Result.Text } ```

Чаму абраць IronOCR?

IronOCR - простая ва ўсталёўцы, поўная і добра дакументаваная бібліятэка праграмнага забеспячэння .NET.

Выберыце IronOCR, каб дасягнуць дакладнасці 99,8% + OCR без выкарыстання якіх-небудзь знешніх вэб-сэрвісаў, пастаянных збораў і адпраўкі канфідэнцыйных дакументаў праз Інтэрнэт.

Чаму распрацоўшчыкі C#выбіраюць IronOCR перад ванільным тэсэрактам:

  • Усталюйце як адну DLL альбо NuGet
  • Уключае ў сябе рухавікі Tesseract 5, 4 і 3 з камплектацыі.
  • Дакладнасць 99,8% значна пераўзыходзіць звычайны тэсэракт.
  • Дзіўная хуткасць і шматпрофільнасць
  • Сумяшчальнасць з MVC, WebApp, працоўным сталом, кансоллю і серверным дадаткам
  • Няма Exes або кода C ++, з якім можна працаваць
  • Поўная падтрымка PDF OCR
  • Для выканання OCR практычна любога файла выявы альбо PDF
  • Поўная падтрымка .NET Core, Standard і FrameWork
  • Разгортванне на Windows, Mac, Linux, Azure, Docker, Lambda, AWS
  • Чытайце штрых-коды і QR-коды
  • Экспарт OCR у XHTML
  • Экспарт OCR ў PDF-дакументы для пошуку
  • Падтрымка шматструменнасці
  • 126 міжнародных моў, якімі кіруюць з дапамогай файлаў NuGet або OcrData
  • Выманне малюнкаў, каардынат, статыстыкі і шрыфтоў. Не толькі тэкст.
  • Можа выкарыстоўвацца для распаўсюджвання OCR Tesseract у камерцыйных і ўласных праграмах.

OCR ззяе з жалеза пры працы з выявамі з рэальнага свету і недасканалымі дакументамі, напрыклад, фотаздымкамі альбо сканаваннямі з нізкім дазволам, якія могуць мець лічбавыя шумы альбо недасканаласці.

Іншыя бясплатныя бібліятэкі OCR для платформы .NET, такія як іншыя API .net tesseract і вэб-сэрвісы, не вельмі эфектыўна працуюць у гэтых выпадках выкарыстання ў рэальным свеце.

OCR з Tesseract 5 - Пачніце кадзіраванне на C #

Прыведзены ніжэй ўзор кода паказвае, як лёгка чытаць тэкстз выявы з дапамогай C#альбо VB .NET.

OneLiner

```cs string Text = new IronTesseract().Read(@"img\Screenshot.png").Text; ```

Наладжвальны Hola Mundo

```cs // PM> Install-Package IronOCR.Languages.Belarusian using IronOcr; var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Belarusian; using (var Input = new OcrInput()){ Input.AddImage("images/sample.jpeg") //... вы можаце дадаць любую колькасць малюнкаў var Result = Ocr.Read(Input); Console.WriteLine(Result.Text); } ```

C#PDF OCR

Такім жа падыходам можна аналагічна выкарыстаць выманне тэксту з любога дакумента PDF.

```cs var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Belarusian; using (var input = new OcrInput()) { input.AddPdf("example.pdf", "password"); // Мы таксама можам выбраць пэўныя нумары старонак PDF для OCR var Result = Ocr.Read(input); Console.WriteLine(Result.Text); Console.WriteLine($"{Result.Pages.Count()} Pages"); // 1 старонка для кожнай старонкі PDF } ```

OCR для шматстаронкавых TIFF

Чытанне фармата OCR у фармаце TIFF, уключаючы шматстаронкавыя дакументы. TIFF таксама можна пераўтварыць непасрэдна ў файл PDF з тэкстам для пошуку.

```cs using IronOcr; var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Belarusian; using (var Input = new OcrInput()){ input.AddMultiFrameTiff("multi - frame.tiff"); var Result = Ocr.Read(Input); Console.WriteLine(Result.Text); } ```

Штрых-коды і QR

Унікальнай асаблівасцю IronOCR з'яўляецца тое, што ён можа счытваць штрых-коды і QR-коды з дакументаў падчас сканавання тэксту. OcrResult.OcrBarcode класа OcrResult.OcrBarcode даюць распрацоўшчыку падрабязную інфармацыю пра кожны адсканаваны штрых-код.

```cs // using IronOcr; var Ocr = new IronTesseract(); Ocr.Configuration.ReadBarCodes = true; using (var input = new OcrInput()) { input.AddImage("img/Barcode.png"); var Result = Ocr.Read(input); foreach (var Barcode in Result.Barcodes) { Console.WriteLine(Barcode.Value); // тып і ўласцівасці размяшчэння таксама падвяргаюцца } } ```

OCR па пэўных галінах малюнкаў

Усе метады сканавання і счытвання OCR з дапамогай IronOCR дазваляюць дакладна ўказаць, з якой часткі старонкі ці старонак мы хочам прачытаць тэкст. Гэта вельмі карысна, калі мы разглядаем стандартызаваныя формы і можам зэканоміць вельмі шмат часу і павысіць эфектыўнасць.

Каб выкарыстоўваць рэгіёны ўраджаю, нам трэба будзе дадаць сістэмную спасылку наа Sistema.Dibujo каб мы маглі выкарыстоўваць аб'ект System.Drawing.Rectangle .

```cs using IronOcr; var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Belarusian; using (var Input = new OcrInput()) { var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 }; // Памеры ў пікселях Input.Add("document.png", ContentArea); var Result = Ocr.Read(Input); Console.WriteLine(Result.Text); } ```

OCR для сканавання нізкай якасці

Клас IronOCR OcrInput можа выправіць сканаванне, якое звычайны Tesseract не можа прачытаць.

```cs using IronOcr; var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Belarusian; using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff")) { Input.DeNoise(); // выпраўляе лічбавыя шумы і дрэннае сканаванне Input.Deskew(); // фіксуе кручэнне і перспектыву var Result = Ocr.Read(Input); Console.WriteLine(Result.Text); } ```

Экспарт OCR вынікаў у PDF для пошуку

Выява ў PDF з тэкставымі радкамі, якія можна капіраваць. Можа быць праіндэксавана пошукавымі сістэмамі і базамі дадзеных.

```cs using IronOcr; var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Belarusian; using (var Input = new OcrInput()){ input.Title = "Quarterly Report" input.AddImage("image1.jpeg"); input.AddImage("image2.png"); input.AddImage("image3.gif"); var Result = Ocr.Read(input); Result.SaveAsSearchablePdf("searchable.pdf") } ```

TIFF для пераўтварэння PDF з магчымасцю пошуку

Пераўтварыце дакумент TIFF (альбо любую групу файлаў малюнкаў) непасрэдна ў PDF-файл для пошуку, які можна праіндэксаваць у інтрасеці, на вэб-сайтах і ў пошукавых сістэмах Google.

```cs using IronOcr; var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Belarusian; using (var Input = new OcrInput()){ input.AddMultiFrameTiff("example.tiff") var Result = Ocr.Read(input).SaveAsSearchablePdf("searchable.pdf") } ```

Экспарт OCR вынікаў у HTML

Пераўтварэнне выявы ў фармат OCR ў XHTML.

```cs using IronOcr; var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Belarusian; using (var Input = new OcrInput()){ input.Title = "Html Title" input.AddImage("image1.jpeg"); var Result = Ocr.Read(input); Result.SaveAsHocrFile("results.html"); } ```

Фільтры для паляпшэння выявы OCR

IronOCR прадастаўляе унікальныя фільтры для аб'ектаў OcrInput для паляпшэння прадукцыйнасці OCR.

Прыклад кода паляпшэння малюнка

Зрабляе ўводныя выявы OCR больш высокай якасцю, каб атрымаць лепшыя і больш хуткія вынікі OCR.

```cs using IronOcr; var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Belarusian; using (var Input = new OcrInput(@"LowQuality.jpeg")) { Input.DeNoise(); // выпраўляе лічбавыя шумы і дрэннае сканаванне Input.Deskew(); // фіксуе кручэнне і перспектыву var Result = Ocr.Read(Input); Console.WriteLine(Result.Text); } ```

Спіс фільтраў выявы OCR

Уваходныя фільтры для павышэння прадукцыйнасці OCR, убудаваныя ў IronOCR, ўключаюць:

  • OcrInput.Rotate (двайныя градусы) - паварочвае выявы на колькасць градусаў па гадзіннікавай стрэлцы. Для супраць гадзіннікавай стрэлкі выкарыстоўвайце адмоўныя лікі.
  • OcrInput.Binarizar () - Гэты фільтр малюнкаў ператварае кожны піксель у чорны ці белы без прамежкавага становішча. Можа палепшыць эфектыўнасць OCR з вельмі нізкай кантраснасцю тэксту да фону.
  • OcrInput.ToGrayEscala () - Гэты фільтр малюнкаў ператварае кожны піксель у адценні шэрага. Наўрад ці палепшыць дакладнасць OCR, але можа палепшыць хуткасць
  • OcrInput.Contraste () - Аўтаматычна павялічвае кантраст. Гэты фільтр часта паляпшае хуткасць і дакладнасць OCR пры сканаванні з нізкай кантраснасцю.
  • OcrInput.DeNoise () - Выдаляе лічбавыя шумы. Гэты фільтр павінен выкарыстоўвацца толькі там, дзе чакаецца шум.
  • OcrInput.Invertir () - Інвертуе кожны колер. Напрыклад, белы становіцца чорным: чорны становіцца белым.
  • OcrInput.Dilate () - Пашыраная марфалогія. Пашырэнне дадае пікселі да межаў аб'ектаў на малюнку. Насупраць Erode
  • OcrInput.Erode () - Пашыраная марфалогія. Эрозія выдаляе пікселі на межах аб'екта насупраць пашыранага
  • OcrInput.Deskew () - Паварочвае малюнак, каб ён быў правільным і артаганальным. Гэта вельмі карысна для OCR, таму што дапушчальнае дапушчэнне Tesseract да скасаваных сканаваннняў можа складаць да 5 градусаў.
  • OcrInput.DeepCleanRuido de fondo () - Выдаленне моцнага фонавага шуму. Выкарыстоўвайце гэты фільтр толькі ў тым выпадку, калі вядомы экстрэмальны фонавы шум дакумента, бо гэты фільтр таксама рызыкуе знізіць дакладнасць OCR чыстых дакументаў і вельмі дарагі для працэсара.
  • OcrInput.MejorarResolución - павышае дазвол малюнкаў нізкай якасці. Гэты фільтр часта не патрэбны, таму што OcrInput.MinimumDPI і OcrInput.TargetDPI аўтаматычна ўлоўлівае і вырашае ўвод з нізкім дазволам.

LimpiarRuido de Fondo. Гэта ўстаноўка займае некалькі часу; аднак гэта дазваляе бібліятэцы аўтаматычна чысціць лічбавыя шумы, скамячанне паперы і іншыя недахопы ў лічбавым малюнку, якія ў адваротным выпадкум выпадку робяць яго немагчымым для чытання іншымі бібліятэкамі OCR.

MejorarContraste - гэта налада, якая прымушае OCR для жалеза аўтаматычна павялічваць кантраст тэксту на фоне выявы, павялічваючы дакладнасць OCR і, як правіла, павялічваючы прадукцыйнасць і хуткасць OCR.

MejorarResolución - гэта налада, якая аўтаматычна выяўляе выявы з нізкім дазволам ( памерам менш 275 dpi) і аўтаматычна павялічвае малюнак, а затым завострывае ўвесь тэкст, каб яго можна было выдатна прачытаць у бібліятэцы OCR. Нягледзячы на тое, што гэтая аперацыя сама па сабе працаёмкая, яна звычайна скарачае агульны час аперацыі OCR для выявы.

OCR для мовы Iron падтрымлівае 22 міжнародныя моўныя пакеты, і налада мовы можа быць выкарыстана для выбару адной або некалькіх моў, якія будуць прымяняцца для аперацыі OCR.

Стратэгія IronOCR падтрымлівае дзве стратэгіі. Мы можам выбраць альбо хуткае і менш дакладнае сканаванне дакумента, альбо выкарыстоўваць прасунутую стратэгію, якая выкарыстоўвае некаторыя мадэлі штучнага інтэлекту для аўтаматычнага павышэння дакладнасці тэксту OCR, разглядаючы статыстычную сувязь слоў паміж сабой утатыстычную сувязь слоў сказе. .

Espacio de color - гэта параметр, пры якім мы можам выбраць OCR у адценнях шэрага ці ў колеры. Наогул, адценні шэрага - гэта лепшы варыянт. Аднак часам, калі ёсць тэксты альбо фоны падобнага адцення, але вельмі рознага колеру, поўнакаляровая каляровая прастора дасць лепшыя вынікі.

DetectarTextoBlancoEnFondosOscuros. Як правіла, усе бібліятэкі OCR чакаюць чорнага тэксту на белым фоне. Гэты параметр дазваляе IronOCR аўтаматычна выяўляць мінусы альбо цёмныя старонкі з белым тэкстам і счытваць іх.

InputImageType. Гэты параметр дазваляе распрацоўшчыку накіроўваць бібліятэку OCR на тое, ці праглядае яна поўны дакумент альбо фрагмент, напрыклад скрыншот.

Girar y enderezar - гэта ўдасканалены параметр, які дазваляе IronOCR унікальную магчымасць чытаць дакументы, якія не толькі паварочваюцца, але, магчыма, і ўтрымліваюць перспектыву, напрыклад, фатаграфіі тэкставых дакументаў.

LeerCódigo Postal - карысная функцыя, якая дазваляе IronOCR аўтаматычна счытваць штрых-коды і QR-коды на старонках, бо ён таксама счытвае тэкст, не дадаючы вялікай дадатковай часовай нагрузкі.

Глыбіня колеру. Гэты параметр вызначае, колькі біт на піксель будзе выкарыстоўваць бібліятэка OCR для вызначэння глыбіні колеру. Большая глыбіня колеру можа павялічыць якасць OCR, але таксама павялічыць час, неабходны для завяршэння аперацыі OCR.

126 Моўныя пакеты

IronOCR падтрымлівае 126 міжнародных моў праз моўныя пакеты, якія распаўсюджваюцца ў выглядзе DLL- файлаў , якія можна загрузіць з гэтага вэб-сайта альбо з дыспетчара пакетаў NuGet .

Мовы ўключаюць нямецкую, французскую, англійскую, кітайскую, японскую і шмат іншых. Спецыялізаваныя моўныя пакеты існуюць для пашпартных MRZ, чэкаў MICR, фінансавых дадзеных, нумароў і многіх іншых. Вы таксама можаце выкарыстоўваць любы файл ".traineddata" tesseract - уключаючы тыя, якія ствараеце самі.

Моўны прыклад

Выкарыстанне іншых моў OCR.

```cs // using IronOcr; // PM> Install IronOcr.Languages.Arabic var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Arabic; using (var input = new OcrInput()) { input.AddImage("img/arabic.gif"); // Пры неабходнасці дадайце фільтры малюнкаў // У гэтым выпадку нават уклад думкі вельмі нізкі // IronTesseract можа прачытаць тое, што не можа звычайны Tesseract. var Result = Ocr.Read(input); // Кансоль не можа лёгка друкаваць арабскую мову на Windows. // Давайце захаваем на дыск Result.SaveAsTextFile("arabic.txt"); } ```

Прыклад некалькіх моў

Таксама магчыма OCR, выкарыстоўваючы некалькі моў адначасова. Гэта сапраўды можа дапамагчы атрымаць метаданыя і URL-адрасы на англійскай мове ў дакументах Unicode.

```cs // using IronOcr; // PM> Install IronOcr.Languages.ChineseSimplified var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.ChineseSimplified; Ocr.AddSecondaryLanguage(OcrLanguage.Belarusian); // Мы можам дадаць любую колькасць моў using (var input = new OcrInput()) { input.Add("multi - language.pdf"); var Result = Ocr.Read(input); Result.SaveAsTextFile("results.txt"); } ```

Падрабязныя аб'екты вынікаў OCR

IronOCR вяртае аб'ект выніка OCR для кожнай аперацыі OCR. Як правіла, распрацоўшчыкі выкарыстоўваюць толькі ўласцівасць тэксту гэтага аб'екта, каб сканаваць тэкст з выявы. Аднак вынікі OCR DOM значна больш прасунутыя, чым гэта.

```cs using IronOcr; using System.Drawing; //Дадайце спасылку на зборку var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Belarusian; Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm; Ocr.Configuration.ReadBarCodes = true; //! Важна using (var Input = new OcrInput(@"images\sample.tiff")) { OcrResult Result = Ocr.Read(Input); var Pages = Result.Pages; var Words = Pages [0].Words; var Barcodes = Result.Barcodes; // Даведайцеся тут, каб знайсці масіўны падрабязны API: // - Старонкі, блокі, парафафы, радкі, словы, сімвалы // - Экспарт малюнкаў, каардынаты шрыфтоў, статыстычныя дадзеныя } ```

Прадукцыйнасць

IronOCR працуе нестандартна, без неабходнасці наладжваць прадукцыйнасць альбо моцна мадыфікаваць ўваходныя выявы.

Хуткасць дзіўная: IronOcr.2020 + да 10 разоў хутчэй і дапускае на 250% менш памылак, чым у папярэдніх зборках.

Даведайся больш

Каб даведацца больш пра OCR на C#, VB, F# альбо любой іншай мове .NET, прачытайце нашы падручнікі па супольнасці , якія прыводзяць рэальныя прыклады таго, як можна выкарыстоўваць OCR Iron, і могуць паказаць нюансы, як атрымаць лепшае з гэтая бібліятэка.

Поўная спасылка на аб'ект для распрацоўшчыкаў .NET таксама даступная.