در ابتدا مراحل یک ocr تجاری را خدمتتون عرض می کنم و بعد از آن در مورد یک ocr ساده راهنماییتون می کنم در مورد ocr های تجاری هم می تونید به خودم مراجعه کنید.
البته این مطالبی که عرض می کنم برای یک پروژه دانشحویی جوابگو هستش و اگر کار تجاری باشه از این روش ساده نمی تونید استفاده کنید
-
preprocessing : در این مرحله عملیات حذف نویز های اولیه و آستانه گیری لز تصویر انجام میشه که از جمله این روش ها آستانه گیری otsu و sauvola هستش .
-
registeration : در این مرحله بایستی میزان چرخش تصویر را بدست بیارید .در این مرحله به صورت همزمان می تونید عملیات تشخیص layout تصویر ورودی را انجام بدید .که از روش های مختلفی می توان استفاده کرد که یکی از آنها استفاده از روش دم دستی هاف خطی هستش.
-
normalization : در این مرحله بایستی خطوط موجود در صفحه را استخراج و نرمال کنید و اطلاعاتی راجع به هر خط استخراج کنید مثل Baseline
-
segmentation : در این مرحله در صورت پیوستگی حروف بایستی حروف های چسبیده به هم را از هم جدا کنید.
-
feature extraction : در این مرحله بابیستی از هر کدام از حروف ویژگی های بدست بیاورید با این داده ها بتوانید تصویرتان را توصیف کنید.
-
classification : در این مرحله ویژگی های استخراج شده در مرحله قبل را به یک کلاسیفیر آموزش داده و در هنگام اجرای ocr کلاسیفیر را تست می کنید.
برای کاری که شما قصد انجامش را دارید پس از عملیات پیش پردازش شما بایستی نواحی نوشته را مکان یابی کنید که این کار میشه کاری شبیه به layout recognition پس از آن می تونید برای استخراج ویژگی از projection افقی و عمودی استفاده کنید و برای کلاسیفیر هم از knn استفاده کنید.
یک نمونه از ocr ساده با OpenCV در اینجا هستش.