یادگیری خواندن: روشهای رایانه ای برای استخراج متن از تصاویر

یادگیری خواندن: روشهای رایانه ای برای استخراج متن از تصاویر

نوشته رضا سرشق و کیگان هاینز ، پایتخت یک

مانند بسیاری از شرکتها ، نه م institutionsسسات مالی ، Capital One هزاران سند برای پردازش ، تجزیه و تحلیل و تبدیل به منظور انجام روز دارد -عملیات روز مثالها ممکن است شامل رسیدها ، صورتحسابها ، فرمها ، صورتها ، قراردادها و بسیاری دیگر از دادههای بدون ساختار باشد ، و مهم این است که بتوانید به سرعت اطلاعات جاسازی شده در دادههای غیر ساختار یافته مانند اینها را درک کنید.

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

تشخیص نویسه نوری

چالش استخراج متن از تصاویر اسناد به طور سنتی به عنوان تشخیص شخصیت نوری (OCR) شناخته می شود و مورد توجه بسیاری از تحقیقات قرار گرفته است. وقتی اسناد به وضوح تنظیم شده و دارای ساختار جهانی هستند (به عنوان مثال ، نامه تجاری) ، ابزارهای موجود برای OCR می توانند عملکرد خوبی داشته باشند. یکی از ابزارهای باز منبع باز برای OCR ، پروژه Tesseract است که در ابتدا توسط Hewlett-Packard توسعه یافته بود ، اما در سال های اخیر تحت مراقبت و تغذیه گوگل بوده است. Tesseract یک رابط کاربری آسان و همچنین یک کتابخانه مشتری پایتون همراه را ارائه می دهد و به عنوان یک ابزار کاربردی برای پروژه های مرتبط با OCR شناخته می شود. اخیراً ، ارائه دهندگان خدمات ابری قابلیت تشخیص متن را در کنار ارائه های مختلف بینایی رایانه ای خود ارائه می دهند. اینها شامل GoogleVision ، AWS Textract ، Azure OCR و Dropbox و سایر موارد است. این زمان هیجان انگیز در این زمینه است ، زیرا تکنیک های بینایی رایانه به طور گسترده ای برای توانمندسازی بسیاری از موارد استفاده در دسترس قرار می گیرد. راه حل های عمومی کاملاً مناسب نیستند یک مثال ممکن است در تشخیص متن دلخواه از تصاویر صحنه های طبیعی باشد. مشکلاتی از این دست در چالش COCO-Text رسمی شده است ، جایی که هدف استخراج متنی است که ممکن است در علائم جاده ، شماره خانه ، تبلیغات و غیره گنجانده شود. زمینه دیگری که چالش های مشابهی را ایجاد می کند ، استخراج متن از تصاویر اسناد پیچیده است. برخلاف اسناد با طرح کلی (مانند یک نامه ، یک صفحه از یک کتاب ، یک ستون از یک روزنامه) ، بسیاری از انواع اسناد در ساختار خود نسبتاً بدون ساختار هستند و عناصر متنی در سراسر آن پراکنده شده اند (مانند رسیدها ، فرم ها ، و فاکتورها). چنین مشکلاتی اخیراً در چالش ICDAR DeTEXT Text Extraction From Biomedical Literature Figures رسمیت یافته است. این تصاویر با چیدمان های پیچیده ای از بدنه های متنی که در یک سند پراکنده شده اند و توسط اشیاء "حواس پرتی" احاطه شده اند مشخص می شوند. در این تصاویر ، یک چالش اصلی در تقسیم بندی صحیح اشیاء در یک تصویر برای شناسایی بلوک های متن منطقی است. تصاویر نمونه از COCO-Text و ICDAR-DeTEXT در زیر نشان داده شده است. این رژیم های OCR غیر سنتی چالش های منحصر به فردی را شامل می شوند ، از جمله جداسازی زمینه/شی ، مقیاس های متعدد تشخیص شی ، رنگ آمیزی ، جهت گیری متن ، تنوع طول متن ، تنوع فونت ، اشیاء حواس پرتی و انسداد.

شکل 1. تصاویر نمونه از COCO-Textچالش (چپ) و چالش ICDAR DeTEXT (راست). توجه داشته باشید که OCR در این رژیم مستلزم تشخیص اشیاء متنی جدا از پیکسل های پس زمینه و سایر عوامل مزاحم است.

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

یک نمونه خروجی از MaskRCNN در زیر نشان داده شده است. برای هر تصویر ورودی ، این مدل در تلاش است تا سه چیز را انجام دهد: تشخیص شی (جعبه های سبز) ، طبقه بندی اشیا و تقسیم بندی (مناطق سایه دار رنگارنگ). کادرهای سبز رنگ در تصویر زیر خروجی های مدل هستند و در بالای هر کادر پیش بینی این است که چه نوع شیئی در داخل آن قرار دارد. ما می توانیم مشاهده کنیم که وقتی این صحنه از یک خیابان شلوغ در مدل قرار می گیرد ، MaskRCNN قادر است انواع زیادی از اجسام مختلف صحنه از جمله افراد ، ماشین ها و چراغ های راهنمایی را با موفقیت شناسایی کند. علاوه بر این ، در داخل هر کادر محدود کننده مشخص شده ، منطقه سایه دار رنگی دقیقاً مشخص می کند که پیکسل های یک تصویر مربوط به جسم است. به این تقسیم بندی گفته می شود و هر پیکسل در تصویر یک برچسب طبقه بندی پیش بینی شده دریافت می کند که پیکسل به چه نوع شیئی (یا پس زمینه) تعلق دارد.

شکل 2: خروجی MaskRCNN برای تصویری از یک صحنه شلوغ خیابانی. توجه داشته باشید که اشیاء مرتبط (افراد ، اتومبیل ها ، چراغ های راهنمایی) با جعبه های محدود کننده و همچنین مناطق تقسیم بندی شناسایی می شوند.

MaskRCNN نمونه ای از یک شبکه چند کاره است: با یک ورودی (تصویر) واحد ، مدل باید چندین نوع خروجی را پیش بینی کند. به طور خاص ، MaskRCNN به سه سر تقسیم می شود ، جایی که یکی از سرها با پیشنهاد جعبه های محدود کننده که احتمالاً حاوی اشیاء مورد علاقه هستند ، سر دیگر با طبقه بندی نوع شیء در هر جعبه ، و سر نهایی یک پیکسل را مشخص می کند. bitmask -wise برای برآورد تقسیم بندی در هر جعبه. نکته مهم این است که هر سه سر بر یک نمای مشترک تکیه می کنند که از یک مدل ستون فقرات پیچشی عمیق مانند ResNet یا مشابه محاسبه شده است. این نمایش مشترک در یادگیری چند وظیفه ای مهم است و به هریک از سران اجازه می دهد تا خطاهای مربوط به خود را مجدداً منتشر کرده و این نمای ستون فقرات را به روز کنند. اثر کلی این است که هر سردر واقع دقیق تر از آنچه که به عنوان مدلهای جداگانه آموزش دیده بودند ، می شود. تصاویر. همانطور که احتمالاً حدس می زنید ، ما می توانیم OCR غیر سنتی را به عنوان نزدیک به تشخیص شیء مشاهده کنیم. در این مورد ، ما فقط دو دسته از اشیا داریم که به آنها اهمیت می دهیم: اشیاء متنی و سپس همه چیز دیگر. با این دیدگاه ، ما می توانیم مدلی بسیار شبیه به MaskRCNN را برای شناسایی مناطق مورد علاقه (RoI) در تصویری که احتمال زیاد حاوی متن است ، آموزش دهیم ، وظیفه ای که به عنوان محلی سازی متن شناخته می شود. نمونه خروجی چنین مدلی در زیر نشان داده شده است.

شکل 3: یک مدل محلی سازی متن روی تصویر رسید تلفن همراه اعمال می شود. بخش های متن جدا از اشیاء صحنه و پیکسل های پس زمینه مشخص می شوند.

توجه داشته باشید که این تصویر ورودی رسید چالش های جالبی برای استخراج متن ارائه می دهد. اول ، سند مورد علاقه در کنار برخی از اشیاء پس زمینه (فرمان) ظاهر می شود. ثانیاً ، متن درون سند بسیار بدون ساختار است و بنابراین شناسایی همه بلوک های متن ممکن به طور جداگانه مفید است. خروجی مدل روی تصویر بالا پوشانده شده است-مناطق متن با کادرهای محدود خط نقطه مشخص شده و ما حتی ماسک پیکسل را برای متن تخمین زده ایم. بالای هر کادر ، کلاس پیش بینی شده و نمره اطمینان وجود دارد ، که از آنجا که ما فقط یک کلاس شی مورد علاقه داریم ، در همه موارد شناسایی شده "Text" است. توجه داشته باشید که جعبه های محدودکننده کاملاً محکم هستند و مناطق متن را به طور دقیق محاسبه می کنند. اصلاح مدلی مانند MaskRCNN و آموزش آن با مجموعه داده های مربوط به OCR منجر به یک رویکرد م effectiveثر برای محلی سازی متن می شود. جالب است بدانید که حتی اگر ماسک پیکسل به طور ذاتی برای OCR مورد نیاز نیست ، ما مشاهده کرده ایم که شامل این محدودیت در یادگیری چند وظیفه ای ، محلی سازی (رگرسیون جعبه محدود) را دقیق تر می کند.

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

شبکه چند کاره برای استخراج متن

با الهام از مدل ها مانند MaskRCNN ، ما شبکه چند کاره خود را برای حل بومی سازی متن و تشخیص متن طراحی کرده ایم. مشابه روشهای قبلی ، مدل ما شامل یک ستون فقرات متحرک برای استخراج ویژگی های تصویر است. ما هر دو ResNet و Densely Connected Convolutional Networks (DenseNet) را ارزیابی کرده ایم ، که برای آنها متوجه می شویم DenseNet به دقت بالاتری منجر می شود. علاوه بر این ، خروجی پشته حرکتی سپس وارد شبکه هرمی ویژگی می شود که به ترکیب اطلاعات وضوح مکانی بالا از اوایل پشته با جزئیات معنایی با وضوح پایین اما غنی از پشته کمک می کند. اینها اساس ستون فقرات انقلاب را تشکیل می دهندسپس به سر مدل ارسال می شود.

مشابه مدلهای اخیر تشخیص شیء ، سر محلی سازی متن شامل یک مکانیزم دو مرحله ای با یک شبکه پیشنهاد منطقه و سپس یک شبکه رگرسیون جعبه محدود می باشد. خروجی جزء اخیر مجموعه ای از جعبه های پیش بینی شده (RoIs) است که ممکن است حاوی متن باشد. سر دوم مدل ، م componentلفه طبقه بندی است که وظیفه آن تخمین کلاس شیء موجود در هر RoI است - در این مورد ، یک طبقه بندی ساده دوتایی (متن در برابر پس زمینه). سرانجام ، ما سر تشخیص متن را داریم که نقشه های ویژگی را از ستون فقرات متحرک و مختصات RoI ایجاد شده از سر محلی سازی متن را به عنوان ورودی دریافت می کند. این سر تشخیص متن باید ، برای هر RoI ، یک دنباله پیش بینی شده متناسب با متن داخل هر کادر تولید کند و از یک ضرر CTC برای آموزش استفاده کند.

شکل 4: معماری ساده شده مدل چند کاره ما. تصاویر ورودی از طریق یک پشته متحرک که شامل ResNet و Feature Pyramid Network است ، منتقل می شوند. سپس نمایهای به دست آمده توسط سرهای متعدد مدل به منظور شناسایی مکان ها و توالی های متن مورد استفاده قرار می گیرد.

سر تشخیص متن در مقایسه با روش های تشخیص شی ، نقطه اصلی حرکت مدل ما است ، بنابراین برخی موارد اضافی جزئیات ارزشمند است در تشخیص شیء ، نقشه های ویژگی از سطوح متعددی از ستون فقرات متحرک استخراج می شوند و از طریق مکانیزمی که به نام RoIPool (یا RoIAlign) شناخته می شود ، به صورت ثابت جمع می شوند. در OCR ، ما باید اطلاعات وضوح مکانی بالایی داشته باشیم ، بنابراین ویژگی ها را فقط از بلوک های اولیه ستون فقرات پیچشی استخراج می کنیم. علاوه بر این ، ما به یک مکانیسم جمع آوری جدید متکی هستیم که اجازه می دهد اشیاء با نسبت ابعاد مختلف بدون فشرده سازی دنباله های طولانی یا کشیدن دنباله های کوتاه نمایان شوند. سر. یک رویکرد ساده ممکن است برش تصویر ورودی همانطور که توسط RoIs از سر Bound Box Regression مشخص شده و سپس این تصویر بریده شده را از طریق معماری RNN پردازش کند [16]. محدودیت چنین رویکردی این است که ما از نمایش ویژگی های تصویر بین سرها استفاده نمی کنیم ، این امر مستلزم این است که سر تشخیص به تنهایی محاسبات بیشتری انجام دهد. در عوض ، شبکه چند وظیفه ای ما با استفاده از RoI های شناسایی شده و سپس دریافت نمایه های مربوطه برای هر منطقه از ستون فقرات متحرک اقدام می کند. سپس نقشه ویژگی های هر RoI به شکل ثابت تبدیل می شود و توضیحات متن ادامه می یابد.

یک رویکرد معمولی برای طبقه بندی دنباله ها و برچسب گذاری دنباله ها این است که از نوعی RNN استفاده کنیم. به طور متوالی از "چپ به راست" در حدود 200 مرحله فضایی افقی RoI و سعی کنید یک برچسب خروجی برای هر مکان در نقشه ویژگی RoI پیش بینی کنید. با این حال ، ما متوجه می شویم که RNN ها در تشخیص متن در اینجا بسیار ضعیف عمل می کنند. این امر به احتمال زیاد به این دلیل است که ما برای رمزگشایی متن نیازی به در نظر گرفتن همبستگی های طولانی مدت در این دنباله نداریم. در عوض ، ما فقط باید نگاه کنیمچند "ستون ویژگی" در یک زمان به منظور درک اینکه کدام شخصیت در حال نمایش است. به همین دلیل ، ما استفاده از روشهای ساده پیچشی در اینجا با عرض هسته کوتاه برد را بسیار مفید می دانیم. در هر مرحله فضایی ، خروجی پیچیدگی ها برای پیش بینی یک حرف خروجی استفاده می شود و سپس توالی کلی از طریق لایه CTC فرو می ریزد تا دنباله نهایی ROI را نشان دهد.

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

نمونه خروجی های مدل ما در زیر نشان داده شده است. در سمت چپ یکی از تصاویر مربوط به چالش ICDAR DeTEXT و در سمت راست اسکرین شاتی از رسید است. بخش های متن جدا از پیکسل های پس زمینه و سایر اشیاء تصویر مشخص می شوند و با خطوط تیره برجسته می شوند. دنباله متن پیش بینی شده برای هر RoI با رنگ قرمز بالای هر کادر نشان داده شده است. توجه داشته باشید که این مدل می تواند شیء متنی را که با تنوع زیادی نسبت ابعاد ، فونت ها ، اندازه فونت ها و رنگ ها ایجاد می شود ، به طور دقیق تشخیص دهد.

شکل 5: نمونه هایی از مدل ما برای تصاویر مربوط به چالش ICDAR DeTEXT (سمت چپ) و اسکرین شات دریافتی از یک برنامه اشتراک گذاری سوار (راست). بخش متن RoI ها به عنوان خطوط خط کشی مشخص می شوند. توجه داشته باشید که اشیاء متنی جدا از پیکسل های پس زمینه و اشیاء حواس پرتی شناسایی می شوند. خروجی های هد تشخیص در بالای هر RoI نشان داده شده است. در این پست ، موارد مورد استفاده در تجزیه و تحلیل اسناد و تشخیص شخصیت نوری را توضیح داده ایم. با تکیه بر کارهای اخیر در تشخیص شیء ، شبکه چند کاره ما قادر است بطور همزمان بلوک های متن را در اسناد پیچیده دلخواه بومی سازی و تشخیص دهد. این یک رویکرد امیدوار کننده برای افزایش کارآیی خطوط لوله پردازش اسناد است و قدرت یادگیری ماشین را برای تغییر آینده کار روشن می کند.

اظهارنظر افشا شده: این نظرات نظرات نویسنده است. مگر اینکه در این پست به طور دیگری ذکر شده باشد ، Capital One به هیچ یک از شرکت های ذکر شده وابسته نیست و مورد تأیید قرار نمی گیرد. همه علائم تجاری و سایر دارایی های معنوی استفاده شده یا نمایش داده شده مالکیت صاحبان مربوطه است. این مقاله © 2019 Capital One است.