OCR برای فایل های PDF

گره منبع: 879686

معرفی

از زمان استفاده گسترده از رایانه ها در دهه 1970 و به دنبال آن اختراع PDF در سال 1993، ذخیره فایل های متنی در فرمت های دیجیتال به تدریج اما به طور پیوسته بر کاغذهای سنتی تسلط یافت. این مزیت بی‌نظیر با افزایش راحتی اینترنت که به فایل‌های متنی دیجیتالی امکان می‌دهد به راحتی در عرض چند ثانیه به سراسر جهان ارسال شوند، ایجاد شده و بیشتر تقویت شده است. امروزه، نه تنها متون رمزگذاری شده توسط ماشین از طریق فایل‌های PDF ذخیره و به اشتراک گذاشته می‌شوند، حتی کاغذهای اسناد دست‌نویس نیز برای پردازش و توزیع بیشتر در چنین قالب‌هایی اسکن می‌شوند.

This emerging trend, however, has shed light on a new and currently ongoing domain of research — PDF Optical Character Recognition (OCR). OCR is the process of converting scanned or handwritten text into machine-encoded text, such that it could be further used by programs for further processing and analysis. While the application of OCR is broad (from images of road signs to formal text documents), this article dives specifically into the domain of PDF OCR, particularly PDFs of scanned and handwritten paper, and discusses the technology and programs in various languages to perform the task. A detailed overview and comparison across several in-the-market software for PDF OCR is further presented for reference.


به دنبال راه حل OCR برای استخراج اطلاعات از فایل های PDF هستید؟ نانوشبکه بدهیدچرخشی برای دقت بالاتر، انعطاف پذیری بیشتر، پس پردازش، و مجموعه گسترده ای از ادغام!


پیشرفت در راه حل های OCR

قبل از بحث در مورد کدها، جزئیات و مزایای OCR، ابتدا مفهوم نحوه عملکرد OCR را با معرفی پیشرفت‌های فناوری مربوطه توضیح می‌دهیم.

OCR سنتی

تبدیل الکترونیکی اسناد اسکن شده برای محاسبات بیشتر، قبل از اینکه یادگیری عمیق با دقت مورد نیاز برای چنین وظایفی مواجه شود، معمولاً با چهار مرحله ساده انجام می شود:

  1. یک پایگاه داده از شخصیت های شناخته شده جمع آوری کنید.
  2. از حسگرهای نوری برای جمع آوری و جداسازی حروف جداگانه از اسناد اسکن شده استفاده کنید.
  3. مجموعه ویژگی های بازیابی شده از حسگرهای نوری را با ویژگی های فیزیکی از پایگاه داده مقایسه کنید.
  4. هر مجموعه ای از ویژگی ها را بر این اساس به شخصیت شناخته شده با بیشترین شباهت تبدیل کنید.

در حالی که رویکرد سنتی در اکثر مواقع موثر به نظر می رسد، در برابر محدودیت های مبتنی بر قانون ذاتی خود آسیب پذیر است. یکی از مراحل میانی مهم OCR، استخراج موفقیت آمیز حروف یا نشانه ها از مجموعه/گروهی از متون است. این استخراج به الگوها یا قوانین خاصی (به عنوان مثال، اندازه‌ها/سبک‌های فونت از پیش تعیین شده) نیاز دارد تا دقت بالایی داشته باشد. تحمیل قوانین بیشتر و بیشتر برای افزایش دقت، معضلی را در مورد OCR ایجاد می کند یا فقط در سبک های خاص نوشته ها اصلاح می شود. هر گونه ناهماهنگی نور در طول فرآیند اسکن همچنین منجر به خطا در زمانی که OCR کاملاً مبتنی بر قانون باشد، می شود.

علاوه بر این، مقایسه ویژگی‌های مبتنی بر قاعده نیز هنگام برخورد با دست‌خط کوتاهی می‌کند. فونت‌های تولید شده توسط رایانه عمدتاً با ویژگی‌هایی ثابت می‌شوند که اغلب واضح هستند و به راحتی قابل مقایسه هستند – فونت‌های دست‌نویس دقیقاً برعکس هستند، با تغییرات نامحدود و بنابراین طبقه‌بندی آنها بسیار دشوارتر است. از آنجایی که هر بار یک کاراکتر دست ساز کمی متفاوت است، امکان گنجاندن همه آنها به عنوان بخشی از پایگاه داده نیز وجود ندارد. این اغلب به OCR ها نیاز دارد تا علاوه بر تطبیق صفات ساده، الگوریتم های پیچیده تری را انجام دهند.

در نهایت، مانع از چند زبان نیز در رویکرد سنتی وجود دارد. زبان های متعددی از نمادهای مشابه یا حتی یکسان استفاده می کنند. اگر همه نمادها را در پایگاه داده ذخیره کنیم، نمی‌توانیم تفاوت بین دو نماد را صرفاً با انجام تطبیق ویژگی تشخیص دهیم، که در نهایت باعث می‌شود رویکرد سنتی اغلب به یک زبان در هر مدل محدود شود.

با توجه به عصر یادگیری عمیق اخیر، که خوشبختانه توسط قابلیت‌های محاسباتی سخت‌افزاری در حال رشد به وجود آمده است، OCR‌های جدیدتر مدل‌های یادگیری را هم در طول فرآیند استخراج متن و هم در مرحله تفسیر آنها ترکیب کرده‌اند.

موتورهای OCR مبتنی بر یادگیری عمیق

یادگیری عمیق، یکی از شاخه‌های اصلی قلمرو یادگیری ماشینی، با کمک بسیاری از دانشمندان مشهور که آن را به پیش می‌برند، محبوبیت زیادی به دست آورده است. در مهندسی سنتی، هدف ما طراحی سیستم/عملکردی است که خروجی را از یک ورودی معین تولید کند. از سوی دیگر، یادگیری عمیق به ورودی ها و خروجی ها برای یافتن رابطه میانی متکی است که می تواند از طریق به اصطلاح به داده های نادیده جدید گسترش یابد. شبکه های عصبی.

معماری شبکه های عصبی

یک شبکه عصبی یا یک پرسپترون چند لایه، روشی را که مغز انسان یاد می گیرد تقلید می کند. هر گره، یعنی نورون‌ها، در داخل شبکه مانند نورون‌های بیولوژیکی هستند که اطلاعاتی را برای «فعال کردن» دریافت می‌کنند. مجموعه‌ای از نورون‌ها لایه‌هایی را تشکیل می‌دهند و چندین لایه روی هم قرار می‌گیرند تا به یک شبکه تبدیل شوند که از اطلاعات برای تولید یک پیش‌بینی استفاده می‌کند. پیش‌بینی می‌تواند به هر شکلی باشد، از پیش‌بینی کلاس برای مسائل طبقه‌بندی گرفته تا جعبه‌های مرزی آیتم‌ها در وظایف تشخیص اشیا - که همگی در مقایسه با ادبیات قبلی به پیشرفته‌ترین حالت دست یافته‌اند. در وظیفه OCR دو نوع خروجی به همراه دو ژانر شبکه به شدت اعمال می شود.

  • شبکه های عصبی کانولوشن (CNN) – CNN ها یکی از غالب ترین مجموعه های شبکه هایی هستند که امروزه به ویژه در حوزه بینایی کامپیوتری مورد استفاده قرار می گیرند. این شامل چندین هسته کانولوشن است که برای استخراج ویژگی ها در تصویر می لغزند. همراه با لایه های شبکه سنتی در پایان، CNN ها در بازیابی ویژگی ها از یک تصویر معین برای انجام پیش بینی ها بسیار موفق هستند. این فرآیند می‌تواند به وظیفه یافتن جعبه‌های مرزی و شناسایی ویژگی‌های کاراکترها برای طبقه‌بندی بیشتر در فرآیند OCR منتقل شود.
  • حافظه های کوتاه مدت بلند مدت (LSTM) – LSTMs are a family of networks applied majorly to sequence inputs. The intuition is simple — for any sequential data (i.e., weather, stocks), new results may be heavily dependent on previous results, and thus it would be beneficial to constantly feed-forward previous results as part of the input features in performing new predictions. In the case of OCR, previously detected letters could be of great assistance to help predict the next, as a set of characters should usually make sense when put together (e.g., an English letter “g” is more likely to come after “do” than a number “9”, despite their similar attributes).

علاوه بر وظایف اصلی در OCR که یادگیری عمیق را در بر می گیرد، بسیاری از مراحل پیش پردازش برای حذف رویکردهای مبتنی بر قانون نیز از فناوری های شبکه عصبی پررونق بهره مند شده اند:

  • نویز زدایی - هنگامی که یک سند به درستی اسکن می شود، روش های مبتنی بر قانون ممکن است به راحتی کوتاهی کنند. یک رویکرد اخیر که توسط فناوری‌های OCR اتخاذ شده است، استفاده از یک شبکه متخاصم مولد (GAN) برای حذف صدای ورودی است. GAN شامل دو شبکه، یک مولد و یک تفکیک کننده است. مولد به طور مداوم ورودی های جدیدی را برای تمایز دهنده ایجاد می کند تا بین ورودی های واقعی و تولید شده تمایز قائل شود و به مولد اجازه می دهد که دائماً در ایجاد محتوای ایده آل بهبود یابد. در این مورد، GAN از یک جفت سند نویز و نویز آموزش داده می‌شود و هدف ژنراتور تولید یک سند بدون نویز تا حد امکان نزدیک به حقیقت زمین است. در طول مرحله کاربرد، اگر GAN به خوبی آموزش داده شود، می‌تواند در هر ورودی برای تنظیم دقیق اسنادی که اسکن ضعیفی دارند استفاده شود.
  • شناسایی سند - وظایف OCR، به ویژه وظایف OCR در فایل های PDF، اغلب به منظور استخراج صحیح داده ها از فرم ها و اسناد استفاده می شود. بنابراین، دانستن نوع سندی که دستگاه OCR در حال حاضر در حال پردازش است، ممکن است دقت استخراج داده ها را به میزان قابل توجهی افزایش دهد. هنرهای اخیر یک شبکه سیامی یا یک شبکه مقایسه را برای مقایسه اسناد با قالب‌های سند از قبل موجود ترکیب کرده‌اند و به موتور OCR اجازه می‌دهد تا طبقه‌بندی اسناد را از قبل انجام دهد. این مرحله اضافی به طور تجربی نشان داده شده است که دقت در بازیابی متن را بهبود می بخشد.

به طور خلاصه، پیشرفت OCR با رشد تصاعدی قابلیت های سخت افزاری و یادگیری عمیق به خوبی منتفع شده است. OCR های PDF اکنون برای کاربردهای متعدد به دقت استانداردی شگفت انگیز دست یافته اند.


به دنبال راه حل OCR برای استخراج اطلاعات از فایل های PDF هستید؟ نانوشبکه بدهیدچرخشی برای دقت بالاتر، انعطاف پذیری بیشتر، پس پردازش، و مجموعه گسترده ای از ادغام!


کاربردهای نرم افزار PDF OCR

هدف اصلی OCR بازیابی داده ها از فرمت های بدون ساختار است، خواه اعداد عددی باشند یا اعداد واقعی. اگر بازیابی موفقیت‌آمیز و بسیار دقیق باشد، برنامه‌ها می‌توانند از OCR برای وظایف کاری مانند تشخیص و تفسیر متن، به‌ویژه برای تحلیل‌های عددی و زمینه‌ای استفاده کنند.

تجزیه و تحلیل داده های عددی

هنگامی که فایل های PDF حاوی داده های عددی هستند، OCR به استخراج آنها برای انجام تجزیه و تحلیل آماری کمک می کند. به طور خاص، OCR با کمک جدول یا جفت‌های کلید-مقدار استخراج (KVP) می‌تواند برای یافتن اعداد معنی‌دار از مناطق مختلف یک متن خاص استفاده شود. سپس می‌توانیم روش‌های آماری یا حتی یادگیری ماشینی (به عنوان مثال، KNN، K-Means، رگرسیون خطی/لجستیک) را برای مدل‌های برنامه‌های مختلف اتخاذ کنیم.

تفسیر داده های متنی

از سوی دیگر، پردازش داده های متنی ممکن است به مراحل بیشتری از محاسبات نیاز داشته باشد، با هدف نهایی برای برنامه ها برای درک "معانی" پشت کلمات. چنین فرآیندی از تفسیر داده های متنی به معانی معنایی آن به عنوان پردازش زبان طبیعی (NLP) نامیده می شود.

مزایای PDF OCR

PDF OCR اهداف متعددی را در سطح برنامه انجام می دهد. بخش‌های زیر چند نمونه از موارد استفاده را از کوچک‌ترین استفاده شخصی تا بزرگ‌تر از یک شرکت توصیف می‌کنند.

موارد استفاده شخصی

PDF OCR هنگام انجام کارهای آزاردهنده مانند اسکن شناسه ها و تامین مالی شخصی، راحتی فوق العاده ای را به ارمغان می آورد.

شناسه‌های شخصی اغلب باید به فرمت‌های PDF تبدیل شوند تا به برنامه‌های مختلف ارسال شوند. این اسناد شناسایی حاوی اطلاعاتی مانند تاریخ تولد و شماره شناسایی هستند که اغلب برای اهداف مختلف باید به طور مکرر تایپ شوند، و بنابراین یک OCR PDF بسیار دقیق که فیلدهای منطبق و مقادیر متناظر را در سراسر شناسه پیدا می کند بسیار عالی خواهد بود. کمک در انجام کارهای دستی بی اهمیت تنها کار مورد نیاز این است که هر گونه ناهماهنگی را دوباره بررسی کنید.

تامین مالی شخصی فرآیند دیگری است که به تعداد زیادی کار دستی نیاز دارد. اگرچه پیشرفت‌ها در اکسل و صفحه‌گسترده‌ها قبلاً کارهایی مانند بودجه‌بندی شخصی را تسهیل کرده‌اند، OCR و استخراج داده‌ها در صورت‌حساب‌های PDF می‌تواند این فرآیند را تسریع کند. این داده ها را می توان به طور خودکار در صفحات گسترده برای تجزیه و تحلیل همانطور که در بخش های قبلی ذکر شد قرار داد تا انجام شود. می توان به راحتی از زمان کلید اصلی برای فکر کردن به برنامه های مالی بهتر استفاده کرد.

موارد استفاده تجاری

هم شرکت‌های بزرگ و هم سازمان‌های کوچک‌تر باید با هزاران کار کاغذی به دنبال قالب‌های مشابه، که بسیار کار بر و در عین حال بی‌مولد هستند، سروکار داشته باشند (یعنی تمام نیروی کار برای چیزی استفاده می‌شود که نیاز به طوفان فکری کمتری دارد). طبقه‌بندی خودکار اسناد و مجموعه‌ها/تحلیل‌های نظرسنجی جایی است که OCR مفید است.

OCR ها رایانه ها را قادر می سازند تا متون اسکن شده را به متون رمزگذاری شده توسط ماشین تبدیل کنند. محتویات متون تبدیل شده می‌تواند برای طبقه‌بندی اسناد استفاده شود، چه درخواست‌هایی برای نقش‌های مختلف یا فرم‌هایی که در انتظار تایید هستند. اگر OCR به خوبی آموزش داده شود، می تواند منجر به حداقل خطا شود که ممکن است به دلیل خستگی اجتناب ناپذیر انسان تکرار شود. از دیدگاه کسب و کار، هزینه نیروی کار نیز ممکن است بسیار کاهش یابد.

از نظر نظرسنجی یا بازخورد، که اغلب توسط سازمان ها برای بهبود محصول یا برنامه های فعلی خود مورد نیاز است، OCR نیز نقش حیاتی ایفا می کند. داده ها را می توان به سرعت استخراج کرد و به طور گسترده برای تجزیه و تحلیل آماری ارزیابی کرد. اگر به خوبی طراحی شود، حتی متن دست نویس ممکن است به طور خودکار استخراج و تجزیه و تحلیل شود.


به دنبال راه حل OCR برای استخراج اطلاعات از فایل های PDF هستید؟ نانوشبکه بدهیدچرخشی برای دقت بالاتر، انعطاف پذیری بیشتر، پس پردازش، و مجموعه گسترده ای از ادغام!


یک آموزش ساده

OCR های PDF در واقع می توانند به راحتی به صورت شخصی برنامه ریزی شوند. زیر یک خط لوله ساده برای انجام OCR در فایل های PDF است.

تبدیل PDF به عکس

کتابخانه ها و API های متعددی به زبان های مختلف وجود دارد که از OCR های از پیش آموزش دیده پشتیبانی می کنند. با این حال، اکثر آنها با تصاویر پردازش می کنند و نه مستقیماً PDF. از این رو، برای ساده‌سازی مراحل زیر، می‌توانیم پیش از انجام تشخیص کاراکتر، فایل‌های PDF را در قالب‌های تصویری پردازش کنیم.

یکی از رایج ترین کتابخانه هایی که برای انجام این کار استفاده می شود pdf2 تصویر کتابخانه ای برای پایتون که به سادگی از طریق دستور زیر قابل نصب است:

pip install pdf2image

پس از آن، می توان کتابخانه را وارد کرد و از هر یک از دو خط کد برای دریافت یک تصویر با فرمت PIL به صورت زیر استفاده کرد:

from pdf2image import convert_from_path, convert_from_bytes
from pdf2image.exceptions import ( PDFInfoNotInstalledError, PDFPageCountError, PDFSyntaxError
) images = convert_from_path('/home/belval/example.pdf')
images = convert_from_bytes(open('/home/belval/example.pdf','rb').read())

برای اطلاعات بیشتر در مورد کد، می توانید به اسناد رسمی در مراجعه کنید https://pypi.org/project/pdf2image/

تصویر OCR

API های متعددی از شرکت های بزرگ فناوری با OCR بسیار دقیق وجود دارد. با توجه به این فرض که PDF ها معمولاً با داده های متنی متراکم پر شده اند، مناسب ترین راه برای انجام چنین OCR استفاده از Google Vision API، به ویژه Document_Text_Annotation عملکرد آن به طور خاص برای چنین اهدافی طراحی شده است. به طور مشخص، Document_Text_Annotation کد را به موتور OCR می فرستد که گوگل برای متون متراکم از جمله دست نوشته ها به زبان های مختلف طراحی کرده است.

راه اندازی کل Google Vision API ساده است، می توان به راهنمای رسمی آن مراجعه کرد https://cloud.google.com/vision/docs/quickstart-client-libraries برای روش دقیق تنظیم

پس از آن می توانیم از کدهای زیر برای بازیابی OCR استفاده کنیم:

def detect_document(path): """Detects document features in an image.""" from google.cloud import vision import io client = vision.ImageAnnotatorClient() with io.open(path, 'rb') as image_file: content = image_file.read() image = vision.Image(content=content) response = client.document_text_detection(image=image) for page in response.full_text_annotation.pages: for block in page.blocks: print('nBlock confidence: {}n'.format(block.confidence)) for paragraph in block.paragraphs: print('Paragraph confidence: {}'.format( paragraph.confidence)) for word in paragraph.words: word_text = ''.join([ symbol.text for symbol in word.symbols ]) print('Word text: {} (confidence: {})'.format( word_text, word.confidence)) for symbol in word.symbols: print('tSymbol: {} (confidence: {})'.format( symbol.text, symbol.confidence)) if response.error.message: raise Exception( '{}nFor more info on error messages, check: ' 'https://cloud.google.com/apis/design/errors'.format( response.error.message))

از طرف دیگر، Google Vision API از چندین زبان مانند Java و Go نیز پشتیبانی می کند. کدهای بیشتر در مورد استفاده از Google API را می توان در اینجا بازیابی کرد: https://cloud.google.com/vision  

همچنین سایر سرویس‌ها/APIهای OCR از آمازون و مایکروسافت وجود دارد و همیشه می‌توانید از آن‌ها استفاده کنید PyTesseract کتابخانه ای برای آموزش مدل خود برای اهداف خاص.


به دنبال راه حل OCR برای استخراج اطلاعات از فایل های PDF هستید؟ نانوشبکه بدهیدچرخشی برای دقت بالاتر، انعطاف پذیری بیشتر، پس پردازش، و مجموعه گسترده ای از ادغام!


مقایسه

در حال حاضر تعداد زیادی OCR PDF در بازار موجود است. در حالی که برخی از آنها رایگان، سریع هستند و می توانند فوراً به صورت آنلاین مورد استفاده قرار گیرند، برخی دیگر محصولات دقیق تر و با طراحی بهتری را برای استفاده حرفه ای ارائه می دهند. در اینجا ما چند گزینه و همچنین مزایا و معایب آنها را شرح می دهیم.

OCR های PDF آنلاین

هنگام استفاده از OCR های PDF برای استفاده شخصی در تبدیل سریع، رایگان و سریع ممکن است مطلوب تر از دقت باشد. خدمات آنلاین PDF OCR متعددی وجود دارد که این نیازها را برآورده می کند. می توان به سادگی اسناد PDF را آپلود کرد و به روشی سریع و راحت به متن نوشتاری تبدیل شد.

مشکل اصلی با این حال، کنترل کیفیت OCR است. این نرم‌افزارهای OCR رایگان آنلاین، در حالی که اغلب اوقات به خوبی کار می‌کنند، در مقایسه با سایر نرم‌افزارهای آفلاین که نیاز به تعمیر و نگهداری مداوم دارند، هر بار مجبور به ارائه بهترین خروجی با کیفیت نیستند.

نرم افزار آفلاین

در حال حاضر، چندین شرکت وجود دارند که خدمات OCR PDF بسیار دقیق را ارائه می دهند. در اینجا ما به چندین گزینه PDF OCR که در جنبه های مختلف تخصص دارند، و همچنین برخی از نمونه های اولیه تحقیقاتی اخیر که به نظر می رسد نتایج امیدوارکننده ای ارائه می دهند، نگاه می کنیم:

چندین سرویس OCR وجود دارد که برای کارهایی مانند تصاویر در طبیعت هدف قرار می گیرند. ما از این خدمات صرف نظر کردیم زیرا در حال حاضر فقط بر خواندن اسناد PDF تمرکز می کنیم.

  • ابی – ABBYY FineReader PDF یک OCR است که توسط ABBYY توسعه یافته است. این نرم افزار دارای رابط کاربری دوستانه ای است که برای خواندن PDF و تبدیل متن استفاده می شود. با این حال، با ماهیت غیر مهندسی آن (مشتریان هدف متخصصان غیر فناوری در زمینه های دیگر هستند که به PDF OCR نیاز دارند)، ترکیب آن در برنامه های دیگر برای پردازش بیشتر دشوارتر خواهد بود.
  • کوفاکس - مانند ABBYY، Kofax یک PDF خوان دوستانه است که نیاز به خرید دارد. قیمت برای استفاده فردی ثابت است، با تخفیف برای شرکت های بزرگ. همچنین در صورت بروز هرگونه مشکل فنی، کمک 24 ساعته در دسترس است.
  • خواننده عمیق – Deep Reader یک کار تحقیقاتی است که در کنفرانس ACCV 2019 منتشر شده است. چندین معماری شبکه پیشرفته را برای انجام وظایفی مانند تطبیق اسناد، بازیابی متن و حذف نویز تصاویر در خود جای داده است. ویژگی های اضافی مانند جداول و استخراج جفت کلید-مقدار-کلید وجود دارد که امکان بازیابی و ذخیره داده ها را به شیوه ای سازمان یافته فراهم می کند.
  • نانو شبکه ها – Nanonets™ PDF OCR از یادگیری عمیق استفاده می‌کند و بنابراین کاملاً مستقل از الگو و قانون است. نانوشبکه‌ها نه تنها می‌توانند روی انواع خاصی از فایل‌های PDF کار کنند، بلکه می‌توانند روی هر نوع سندی برای بازیابی متن نیز اعمال شوند.

نتیجه

در خاتمه، در این مقاله به اصول اولیه نحوه عملکرد OCR و همچنین جدول زمانی توسعه OCR و به دنبال آن آموزش‌های ساده و موارد استفاده پرداختیم. ما همچنین مجموعه ای از گزینه های قابل اجرا برای OCR های PDF و همچنین مزایا و معایب آنها را برای استفاده بیشتر ارائه کردیم.

منبع: https://nanonets.com/blog/pdf-ocr/

تمبر زمان:

بیشتر از هوش مصنوعی و یادگیری ماشین