تشخیص چهره نویسه خوان کتاب سالانه

تشخیص چهره و نویسه خوان ۳۰۰ میلیون سابقه دفاتر سالانه را پردازش می کنند

مکسیم چرنوپولسکی سرپرست فنی Back-End در MyHeritage

دفتر سالانه نوعی از اسناد است که به صورت سالانه برای ثبت،برجسته سازی و بزرگداشت اتفاقاتی که در سال گذشته در یک مدرسه افتاده است،منتشر می شود.

تیم ما در سازمان MyHeritage پروژه پیچیده ای را درپیش گرفته است:

 استخراج  کردن عکس ها،نام ها و سن و سال اشخاص حقیقی از صد هزار دفتر سالانه، ساختار داده ها و ایجاد یک فهرست قابل جستجو که اکثر مدارس ایالات متحده را در فاصله زمانی ۱۸۹۰ تا  1970- بیشتر از ۲۹۰ میلیون شخص را – پوشش دهد. طی این مقاله برای شما توضیح می دهیم که طی این مقاله ما با چه مشکلاتی مواجه شدیم و چگونه این مشکلات را حل کردیم.

کتاب سالانه نویسه خوان
نمونه یک دفتر سالانه

اول از همه،اجازه دهید توضیح دهم که چرا ما نیاز داریم تا با این چالش برخورد داشته باشیم. MYHERITAGE  یک سامانه ژنتیکی یا تبار شناسی است که برای ما دسترسی به ۱۰ بیلیون سابقه تاریخی را فراهم ساخته است.در این سازمان با استفاده از کارایی جستجوی پیشرفته،کاربران می توانند این سوابق را جستجو کنند تا به اطلاعات جدیدی دربازه خانواده هایشان دست یابند و عکس های بستگان خود را کشف کنند.علاوه براین، تکنولوژی  ثبت مطابقت MYHERITAGE زمانی که اطلاعات کاربران با سوابق تاریخی  ثبت شده همخوانی پیدا کرد،به صورت خودکار کاربران را آگاه می سازد و در بایگانی برای جستجوی فعال ذخیره می کند.هر مجموعه جدیدی که ما در بایگانی ذخیره می کنیم می تواند ما رابه سوی اکتشافات جدیدی برای کاربران هدایت کند.

تشخیص چهره نویسه خوان شجره نامه

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

به عنوان منبع داده ها،۳۶میلیون عکس و به همین تعداد فایل XML  طی فرایند نویسه خوان (OCR)  داشته ایم.

نویسه خوان شجره نامه
دیجیتالی کردن دفاتر سالانه

نویسه خوان –  تشخیص کارکتر نوری (Optical Character Recognition) – تبدیل الکترونیکی اسناد اسکن شده به متن رمزگذاری شده توسط ماشین است. برای تولید داده های نویسه خوان ابتدا آن ها باید توسط اسکنر های مخصوص این دفاتر دیجیتالی شوند. سپس عکس های بدست آمده باید توسط موتور نویسه خوان شروع به پردازش شوند.

نویسه خوان کتاب سالانه
فایل های XML تولید شده نویسه خوان موقعیت در صفحه و هر خط را نشان داده

برای ساخت ساختار یک فهرست ما باید چهار مشکل اصلی را حل کنیم:

۱٫تشخیص پرتره ها و تصاویر روی صفحه

۲٫استخراج نام اشخاص از روی نتایج نویسه خوان

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

۴٫پیش بینی سن افراد

۱- تشخیص پرتره ها و تصاویر

اولین کار این بود که الگوریتم های تشخیص چهره موجود را امتحان کنیم، اما این کار با اسکن سیاه و سفید تصاویر قدیمی به خوبی جواب نداد.  Haar Cascades  – روشی که در گذشته برای تشخیص عکس استفاده می شده است – نیز به خوبی در بعضی موارد جواب داد اما در بقیه موارد کاملا ناموفق بوده است.

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

ما با جاوا و کتابخانه OpenCV شروع کردیم، بعد از برخی تحقیقات ما با الگوریتمی که مورد نیاز ما بود برآمدیم. این الگوریتم براساس Canny Edge Detector می باشد که به تشخیص اشکال می پردازد.

تشخیص چهره کتاب سالانه
تشخیص چهره ناموفق

Canny Edge Detector یک الگوریتم تشخیص لبه پر طرفدار است. توسط John F. Canny   در سال ۱۹۸۹ توسعه یافته است،این الگوریتم می تواند به چند مرحله تقسیم شود: کاهش نویز و اختلالات، پیدا کردن شدت گرادیان تصویر، اعمال سرکوب غیر حداکثر،اعمال تشخیص استانه عکس. در نتیجه تشخیص لبه ها، ما به دنبال مستطیل هایی با پتانسیل بالا و رد کردن نتایج آزمایش اشتباه با تجزیه و تحلیل مربع ها و موقعیت ها بودیم.

دراین نقطه از فرایند، ما برای پردازش ۳۶ میلیون تصویر شروع به ساخت محیط مقیاس پذیر در  سرویس شبکه آمازون (AWS ) کردیم. درنتیجه این کارها مختصات تصاویر و پرتره ها و ارتباط آن ها با صفحات در بایگانی داده ها یعنی RDS  ذخیره شده است. به طور همزمان،ما یک رابط در بایگانی مرکزی داده ها قرار دادیم تا هم وظیفه کنترل را به عهده گیرد وهم نتایج بدست آمده را آزمایش کند. تشخیص پرتره یک فرایند متمرکز پردازنده است و ما از قسمتی از نمونه های قدرتمند EC2  که از موارد رانده شده توسط SQS می باشد استفاده می کنیم.

نویسه خوان تشخیص چهره کتاب سالانه

۲- استخراج اسم

برای استخراج نام های احتمالی از متن بدون ساختار،رویکرد شناخت موجودیت نام (NER) را اعمال کردیم که خود یک کار فرعی در زمینه پردازش زبان طبیعی (NLP) عمومی می باشد.الگوریتم های NER به دنبال پیدا و طبقه بندی کردن نام های ذکر شده موجود در متن های بدون ساختار به درون دسته های از پیش تعریف شده، مانند نام اشخاص، سازمان ها، مکان ها و … با هدف ایجاد یک رویکرد تقریبا انسانی می باشد.

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

تشخیص نام نویسه خوان
نمونه یک NER

۳- ارتباط نام ها و تصاویر

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

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

در این مرحله هزاران اپراتور میلیون ها صفحه را بازبینی کردند و هر ناسازگاری که پیدا کردند را رفع نمودند. این به یک پایگاه قدرتمند داده RDS و قسمتی مقیاس پذیر از موارد وب در جایی که برنامه وب استفاده شده بود نیاز داشت.باتوجه به مکان جغرافیایی فروشنده،روند انتقال کل تصاویر به AWS در منطقه بمبئی با سرعت بیشتری انجام می گرفت.

تشخیص چهره شجره نامه

۴- استنباط سن

برای ساخت بهتر یک فهرست قابل جستجو،ما می خواستیم سن دانش آموزان را بدانیم و سال تولد آن ها را از این اطلاعات استخراج کنیم. چگونه این کار را انجام دهیم؟ یکی از این موارد استفاده از الگوریتم هوش مصنوعی بود که می توانست سن افراد را توسط چهره فرد در تصویر حدس بزند. با این حال، الگوریتمی که ما امتحان کردیم کاملا در استفاده دفاتر سالانه بی فایده بود. دیگر مورد استنباط کردن مقطع تحصیلی دانش اموزان از روی عنوان صفحات و سپس حدس زدن با استفاده از مقطع تحصیلی بود. برای مثال،FRESHMEN  (مقطع تحصیلی نهم) معمولا ۱۴-۱۵ ساله و JUNIORS(مقطع تحصیلی یازدهم) معمولا ۱۶-۱۷ ساله بودند و …

تشخیص سن کتاب سالانه
این صفحه با عنوان Junior شروع شده

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

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

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

نویسه خوان تشخیص پایه تحصیلی
آزمایش نتایج تشخیص مقاطع تحصیلی

قرار دادن همه اطلاعات کنار هم

قدم بعدی استخراج تصویر های پرتره واقعی از صفحات تصاویر به وسیله مختصات آن ها و تشکیل ریز عکس از صفحات بود. این توسط فرایند NODE.JS  در یکی از موارد EC2 با هماهنگی SQS انجام شد. این فرایند همچنین چیز های اضافی را کاهش می دهد چرا که خطاهای تکراری اغلب نتیجه یک نام است که بیشتر از دوبار در بعضی صفحات دفتر ظاهر شده است. تصاویری که در نتیجه بدست می آید در S3 ذخیره می شود.

نویسه خوان تشخیص چهره کتاب سالانه روش کار
نمودار فرایند کلی پردازش دفاتر سالانه

زمانی که تمام دارایی ها و داده ها آماده شد، ما هم سوابق قابل جستجو و آن ها را در APACHE SOLR – یک پلتفرم برای ایجاد جستجوی فوق پیشرفته – فهرست بندی کردیم، و این مجموعه یکی از بزرگترین مجموعه سوابق تاریخی در بین مجموعه های MYHERITAGE است.

بیشتر بخوانید :

منبع Towards Data Science

همچنین ببینید

استفاده از هوش مصنوعی مولد برای بهبود تست نرم‌افزار

هوش مصنوعی مولد به دلیل توانایی خود در ایجاد متن و تصاویر بسیار مورد توجه …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *