OCR چیست؟
OCR چیست؟
نويسهخوان نوري(OCR)، به عنوان تنها ابزار بازيابي اطلاعات متني از تصوير، يكي از مهمترين ابزارهاي تبديل اطلاعات موجود به صورت قابل استفاده و پردازش در رايانهها و در نتيجه يكي از اركان مهم تحقق محيط رايانهاي فارسي به شمار ميآيد.
OCR
تشخیص نوری نویسهها (Optical Character Recognition) که با سرواژهی OCR شناخته میشود، از مهمترین شاخه های بازشناسی متن است. OCR عبارت است از بازشناسی خودکار متون موجود در تصاویر اسناد و تبدیل آنها به متون قابل جستجو و ویرایش توسط رایانه. تصویر سند غالبا توسط روبشگر (اسکنر) و یا دوربین دیجیتال تولید میشود و شامل تعدادی پیکسل با رنگهای مختلف و سطوح روشنایی گوناگون است. از دید انسان، یک سند ممکن است ارزش اطلاعاتی زیادی داشته باشد، لیکن از دید رایانه تصویر یک سند با تصویر یک منظره تفاوتی ندارد، چرا که هر دوی آنها مجموعهای از پیکسلها هستند. برای اینکه بتوان از اطلاعات نوشتاری تصویر سند استفاده کرد، باید به نحوی نوشتههای موجود در سند را بازشناسی کرد. چنین کاری توسط نرم افزارهای نویسهخوان نوری انجام میشود.
واژهٔ OCR ابتدا تنها در مورد بازشناسی ارقام و حروف چاپی بکار گرفته میشد. پسوند نوری در این عبارت در مقابل عبارت مرکب مغناطیسی (Magnetic Ink) قرار داده شد تا این روش را از روش قدیمیتر بازشناسی نویسهها با مرکب مغناطیسی ،MICR، متمایز کند. با گذشت زمان و پیشرفت قابل توجه در این زمینه، روشهای بازشناسی دستنوشته و متون چاپی مطرح شدند که دامنهٔ کار را به کلمات و عبارات رساندند. با وجود عدم تطبیق دقیق OCR با این موارد، این نام برای این روشها هم استفاده شد و رواج پیدا کرد. هماکنون OCR را بیشتر برای بازشناسی مستندات چاپی مثل صفحات کتابها، مجلهها و نامههای چاپی به کار میبرند.
سامانهٔ نویسهخوان مثل یک نفر ماشین نویس یا تایپیست، متن سند را میخواند و آن را به قالب مناسب برای ذخیره در رایانه تبدیل میکند. معمولاً یک روبشگر، تصویر سند را برای OCR فراهم میکند. سامانهٔ نویسهخوان، اشیاء موجود در تصویر سند را که ارقام، حروف، علائم و کلمات هستند، بازشناسی کرده و رشتهی متناظر با آنها را در قالب مناسب ذخیره میکند. یک فایل تصویری، حجم زیادی دارد و جستجوی متنی در آن ممکن نیست. این در حالی است که فایل خروجی سامانهٔ نویسهخوان بسیار کم حجم و قابل جستجو است. ضمن اینکه اطلاعات فایل متنی را به راحتی می توان ویرایش کرد و در جای دیگر استفاده کرد در حالی که اطلاعات موجود در تصویر سند قابل ویرایش نیست.
سامانههای نویسهخوان مثل بسیاری از سامانه های هوشمند دیگر، پیچیدگی زیادی دارد. پردازش تصویر و بازشناسی الگو دو پایهٔ اصلی این سامانهها هستند. پیچیدگی این سامانهها برای زبانهای گوناگون، متفاوت است. به عنوان مثال نوشتن OCR برای زبانهای لاتین به دلیل اینکه حروف آنها به طور مجزا نوشته میشود آسانتر است از زبانهایی مثل فارسی و عربی که حروف یک کلمه به یکدیگر میچسبند. این موضوع به علاوهٔ جمعیت کم کاربران زبان فارسی، سبب شده سامانههای نویسهخوان کمی برای زبان فارسی داشته باشیم.
یک سیستم OCR از بخشهای متعددی تشکیل شده است. ابتدا باید تصویر ورودی آنالیز شده و اگر متن آن دارای چرخش است، اصلاح شود. پس از اصلاح چرخش باید موقعیت بلوکهای متنی، شکل و جدول در تصویر سند مشخص شود. پس از تعیین موقعیت بلوکهای مختلف (ناحیه بندی یا آنالیز ساختار سند)،باید بلوکهای متنی بازشناسی شوند؛ یعنی خطوط متنی یافت شده و سپس موقعیت کلمات مشخص شود و در مرحله بعد، موقعیت حروف در کلمه مشخص شود، در نهایت تک تک حروف باید شناخته شده و با یکدیگر ترکیب شوند تا کلمهی معادل آنها مشخص شود. این کل فرایند تشخیص خودکار متن بود که به صورت بسیار ساده بیان شد. لازم به ذکر است که به دلیل پیچیدگیهای زبان فارسی نسبت به زبانهای لاتین تولید OCR فارسی به مراتب دشوارتر از نمونه های انگلیسی است. از این رو محصولات موجود در این زمینه برای زبان فارسی بسیار کم است.
Ocr چیست ؟
فرض كنید كه ما متنی را روی كاغذ داریم و میخواهیم آن را وارد رایانه كنیم. اولین روشی كه به ذهن میرسد این است كه متن را به تایپیست بدهیم تا با كامپیوتر تایپ كند. اما آیا میشود عین همان متن را وارد رایانه بكنیم تا نیازی به تایپ نباشد؟
البته دستگاه «اسكنر» میتواند تصویری از آن متن را وارد رایانه كند، تا اینجا بخشی از مشكل ما حل شده است. اما رایانه كه نه عقلی دارد و نه «زبان» میفهمد، نمیتواند حروف و كلمات را از هم تشخیص دهد.
مثلاً اگر از كامپیوتر بخواهیم به ما بگوید كه در متن اسكنشده كلمة «علی» چند بار آمده است، بیآنكه شرمنده شود، میگوید نمیتوانم تشخیص بدهم! در واقع این «تصویر دیجیتالشده» باید به «تصویر قابل پردازش» تبدیل شود. موضوع اصلی OCR همین است.
Optical Character Reader
انواع OCR
در زبانهای دیگر، به ویژه زبانهایی كه با حروف لاتینی نوشته میشوند، سالهاست كه از OCR استفاده میشود. اما در ایران تازه دو سه سالی است كه به فكر استفاده از OCR در زبان فارسی افتادهایم.
و اما OCR چند نوع است: یا تایپی است یا دستنویس. یعنی یا باید یك متن قبلاً تایپ شده را (مثل كتابها و روزنامههای چندین سال قبل، یا حتی متنی را كه فایل تایپی آن موجود نیست و فقط پرینت آن را داریم) وارد رایانه كنیم، یا متن دستنویس را.
متنهای دستنویس هم به دو صورت «گسسته» و «پیوسته» وجود دارند: متن «دستنویس پیوسته» مثل همان چیزهایی است كه ما هرازگاهی كه دلمان تنگ میشود روی كاغذ مینویسیم، یا یك نامه، یا یك قطعه شعر و ... اما متن «دستنویس گسسته» همان نوشتههایی است كه حروف آن جدا از هم و به صورت گسسته نوشته شدهاند، مثل نام و نامخانوادگی كه در فرمهای آزمون ثبتنام، به صورت هر حرف داخل یك كادر، نوشته میشوند.
طراحی OCR گسستة فارسی تقریباً در مراحل پایانی كار قرار دارد ولی، OCR پیوسته ظاهراً سالهای زیادی كار میبرد.
فارسی ما و مشكلات آن
قبل از اینكه به مراحل دیگر OCR بپردازیم، لازم است اندكی هم به مشكلات خط فارسی ــ یا در واقع ویژگیهای این خط ــ بپردازیم. اول اینكه ما در فارسی حروف را به صورت چسبیده و پیوسته مینویسیم و این كار برای تشخیص حرف به حرف نوشته از سوی رایانه (كه قرار است در مراحل بعدی آن را تایپ كند) بسیار مشكل است. تصور كنید كه همین كلمه ساده «است» را به حالتهای مختلف میشود نوشت: یكی برای «س» دندانه میگذارد، یكی نمیگذارد، یكی آن را میكشد و یكی نمیكشد و... حالا اگر همین صورتهای مختلف «س» به «ت» هم بچسبند، تشخیص حروف برای ما انسانها هم سخت میشود، چه رسد به رایانه.
شباهت حروف
مشكل دیگر خط ما این است كه حرفهای فارسی بسیار به هم شبیهاند. مثلاً در نظر بگیرید كه تفاوت «ر» با «ز» با «ذ» یا «ب» با «ت» تنها در یك نقطه است، و چون نقطه جزء بسیار كوچكی است، اگر یك خط یا حتی یك لك كوچك روی كاغذ بیفتد، تشخیص حروف از هم بسیار دشوار میشود و دردسر جدی برای بازشناسی حروف توسط رایانه ایجاد میكند. اینها تازه مشكلات خط فارسی است. دربارة اعداد فارسی هم این مشكل وجود دارد: صفر ما یك نقطه كوچك است كه میتواند رایانه را به اشتباه بیندازد؛ اعداد 4، 3، 2، 1 هم بسیار به هم شبیه هستند و تنها تفاوتشان یك دندانه كوچك است.
به دلایل گفته شده OCR درمرحلة كنونی در كشور ما مربوط به «دستنویسهای گسسته» یا متنهای تایپی پیوسته است، و تا بازشناسی متنهای دستنویس پیوسته توسط كامپیوتر راه زیادی در پیش است، چون در دستنویسهای گسسته، اگرچه حروف به هم شباهت دارند، حداقل جداجدا نوشته شدهاند. در متنهای پیوسته تایپی هم مشكل كشیده شدن یك حرف یا شكسته نوشته شدن حروف را نداریم.
البته به گفته مسئولان شركت «پایا» در حال حاضر هم نرمافزارهایی وجود دارد كه متن دستنویس پیوسته را تبدیل به حروف جدا ازهم و گسسته میكنند، ولی ضریب خطای این نرمافزارها زیاد است و به شكل صنعتی درنیامدهاند.
بازشناسی حروف و الگو
تا اینجا گفتیم تصویر صفحهای كه در آن حروف به طور جداجدا (هر حرف داخل یك كادر) نوشته شده است، به وسیلة اسكن وارد رایانه میشود. مرحلة بعدی این است كه حروف بازشناسی شوند، یعنی مكان آنها از دیگر خطوط (مثل خطوط كادری كه داخل آن نوشته شده) بازشناسی شود، و اگر متن پیوسته تایپی است، حروف جدا شوند و زواید تصویر حذف شود. مثلاً اگر دانشآموزی «س» را به گونهای نوشت كه بیرون از كادر بود، به رایانه بفهمانیم كه بیدقتی شده است او باید همان حرف داخل كادر را بخواند.
در مرحلة بعدی كه «بازشناسی الگو» نام دارد، با تعدادی شرط میشود فهمید كه مثلاً حرفی «الف» است یا نه، و رایانه تشخیص میدهد كه حرف «پ» است یا «ب». برای این تشخیص لازم است كه تصویر حرف «الف» با الفهای نمونه ــ كه قبلاً به رایانه داده شده است ــ منطبق شود. الفبای نمونه قبلاً از روی یك مجموعه بزرگ آموزشی تهیه شده و ویژگیهای مشترك از آن استخراج شده است. اما از آنجا كه تنوع صورتها نوشتاری یك حرف به صورت دستنویس بسیار زیاد است، مدلی آماری استخراج میشود كه در آن شباهت ویژگیهای استخراج شدة قبلی با نمونه ورودی به رایانه بررسی میشود. در اینجا «بازشناسی الگو» با روشهای آماری انجام میشود كه روش معمول در سیستمهای OCR است.
اگر فكر میكنید كه كار تمام شده است در اشتباهید، چون تازه میرسیم به دنبالة حروف. مثلاً اگر كسی همان حرف «س» را با دنباله بنویسد، رایانه باید تشخیص دهد كه این حرف فقط «س» است، یا مثلاً «ی» هم به آن چسبیده است.
1. Optical Character Recognition مدلسازی یا پردازش زبانی
مرحله بعدی «مدلسازی زبانی» یا «پردازش زبانی» نام دارد. حروف به هم چسبیده، كه كلمه را درست میكنند، باید معنیدار یا شناختهشده باشند. در این مرحله بررسی میشود كه چه كلماتی در زبان وجود دارد؟ چه تركیبهایی از كلمات مجاز است؟ و... البته در مراحل پیشرفتهتر، مدلسازی گرامری (دستور زبان) و مدلسازی معنایی هم وجود دارد كه تشخیص میدهد جمله از لحاظ دستوری و معنایی درست است یا بیمفهوم است. اما در OCR گسسته ــ كه بیشتر برای ثبتنام استفاده شده ــ شباهت یك كلمه به نام، نام خانوادگی، شهر و ... كافی است.
برای تشخیص تركیبهای مجاز یك كلمه یا معنیدار بودن یك كلمه نیز به تهیة بانكهای اطلاعاتی (Data base) نیاز داریم. در این بانكها مثلاً تمام نامهای كوچك و بزرگ ایرانیان قبلاً جمعآوری شده است و هنگام تطبیق یك كلمه با آن مشخص میشود كه رایانه حروف آن را دست تشخیص داده یا نه. بنابراین نقش این بانك اطلاعاتی بسیار مهم است، چون اگر نامی در آن ثبت نشده باشد، كلمهای كه آن نام را شامل شود، به طور خودكار از برنامه OCR حذف میشود یا پیغام میآید كه: «این كلمه اشتباه است» در صورتی كه ممكن است مثلاً نام «هشام» در بین نامهای ایرانی وجود داشته باشد، ولی قبلاً در بانك اطلاعاتی ثبت نشده باشد.
بانكهای ما و دیگران
مهندس «رزازی» دربارة مشكل بانكهای اطلاعاتی در زبان فارسی میگوید: «در دنیا برای توسعة OCR و ارزیابی آن، بانكهای اطلاعاتی استاندارد ساخته شده است كه در آنها همة كلمات وجود دارند، یعنی بانك هم مشكل دیجیتال كلمه را دارد، و هم تصویرش را. اما برای زبان فارسی، این بانكهای اطلاعاتی چه برای ارزیابی و چه برای توسعه، استاندارد شده نیست. در واقع هر كسی برای خودش یك بانك اطلاعاتی میسازد، و این نمونههای متفاوت مشكلاتی را ایجاد میكند. مثلاً برای ثبتنام دانشآموزانی كه در آزمون مدارس تیزهوشان شركت كرده بودند، یك بانك اطلاعاتی حاوی نامهای فارسی، از روی اطلاعات فرمهای سالهای قبل، تهیه شد كه از روی آن كلماتی كه خیلی شبیه به نامهای فارسی بودند تشخیص داده میشد. مثلاً اگر رایانه كلمهای را «مصیبت» تشخیص داد، براساس بانك اطلاعاتی معلوم میشود كه «مصیب» بوده است كه یك نام ایرانی است.
علی، ولی، قلی ... و سیب
نكتة دیگر این است كه یك بانك اطلاعاتی باید شامل تعدادی كلمات خام باشد، بلكه «بسامد» آن واژگان، یعنی میزان استعمال و تكرار كلمات در زبان و مشخصات آماری آنها هم باید ثبت شده باشد، والا كارایی زیادی ندارد. مثلاً «علی» نامی است كه شباهت زیادی به «ولی» و «قلی» دارد. كارهای آماری در بانك اطلاعاتی باید طوری انجام شده باشد كه تعداد «علی» بیشتر باشد، تا و بعد نوبت «ولی» و «قلی» برسد، چون درصد بسامدی «علی» به لحاظ آماری و كاربرد در میان نامهای بیشتر است.
در OCR فارسی گسسته، اگر فقط مربوط به نامها و نامخانوادگی باشد، كار سادهتر است از حالتی كه در OCR پیوسته وجود دارد. چون در OCR پیوسته هر كلمهای ممكن است وجود داشته باشد مثل «سیب»، اما در بانك اطلاعاتی نامها همه میدانیم كه سیب نام یك شخص نیست بلكه نام یك میوه است! بنابراین در OCR همواره سعی میشود كه درصد خطا كاهش یابد، تا كلمات در حد ممكن درست تشخیص داده شوند. اگرچه طراحان هنوز به صددرصد صحت نرسیدهاند، ولی نگران نتایج آزمون خود نباشید، چون تمامی اطلاعات مربوط به شما چندین بار كنترل میشوند و از سازوكار reject (یا مردودی) در رایانه هم استفاده میشود. در این روش اگر رایانه نتوانست كلمهای را تشخیص دهد، میفهمد كه نفهمیده است و در خروجیاش میآورد كه: «من این كلمه را نفهمیدهام» و كار به سیستم دستی میرود و در آنجا تصحیح میشود. این فرایند در پست خیلی كارایی دارد. در هر جای دنیا كه تفكیك نامهها و دیگر مرسولات پستی به وسیلة OCR انجام میشود، بعضی از نامهها در سیستم كامپیوتری وارد سازوكار «مردودی» میشوند و به طور دستی مورد بررسی مجدد قرار میگیرند. هماكنون در سطح محدودی از OCR در پست كشور ما نیز استفاده میشود، چون در پست هم كد پستی چندرقمی و دیگر اطلاعات به صورت گسسته و داخل كادرهایی نوشته میشود، و كار آسانتر است.
در مورد خطای OCR در تشخیص كلمات، مسئولان شركت «پایا» نظر جالبی دارند:
«حتی با تعبیة سیستم مردودی (reject) هم ممكن است خطایی در تشخیص كلمات وجود داشته باشد. باید در نظر داشته باشیم كه هیچ سیستم پردازشگری (از جمله انسان) بدون خطا نیست. نكته مهم این است كه یك سیستم ماشینی درصد خطای كمتری نسبت به انسان داشته باشد تا جایگزین خوبی برای انسان باشد. مسئله این نیست كه خطا را به صفر برسانیم. هر قدر كه فناوری جلوتر میرود، میزان خطا هم بیشتر كاهش مییابد.»
مدیر شركت «دوران نوین» هم به گونهای دیگر به همین موضوع اشاره میكند: «انتظار ما از مسئولان طرح «تكفا» آن است كه با موضوع OCR واقعبینانهتر برخورد شود، و در بحث مربوط به هزینههای پروژه و انتظاراتی كه از OCR میرود، واقعیتها در نظر گرفته شود. دیدگاه كنونی مسئولان تكفا آن است كه كل مشكل «خطا» تا 100درصد حل شود، در حالی كه فكر میكنم حل مسائل مربوط به هوش مصنوعی نیاز به روش تدریجی دارد. مثلاً در زبان عربی هم، نرمافزار «صخر» در نسخة اول خود فقط تا حدود 40درصد دقت داشت، در حالی كه اكنون پس از گذشت 13 سال از اولین نسخه آن دقت به مرز 98 درصد رسیده است.»
همانطور كه اشاره شد از OCR در ثبتنام آزمون «سازمان ملی استعدادهای درخشان» در سالهای 81 و 82 استفاده شد كه از طریق آن 000,440 نفر به طور ماشینی ثبتنام شدند. این روش باعث شد كه در سال 81 (نمونه اول) 45 درصد در هزینهها و 25 درصد در زمان ثبتنام صرفهجویی شود. در سال بعد (82) این رقم به 50 درصد رسید. نرمافزاری كه در این آزمونها مورد استفاده قرار گرفت برای هر كدام از موارد صحت بازشناسی متفاوتی داشت و در مجموع كار آن خوب بود (به جدول توجه كنید):
به نظر میآید كه در چند سال آینده و با پیشرفت OCR فارسی و كاهش هر چه بیشتر خطای آن، در آزمونهای بزرگتری مانند آزمون سراسری دانشگاهها نیز بتوان از آن استفاده كرد.
سرنوشت OCR دستنویس
در مورد OCR پیوسته دستنویس نیز روند كار به همان صورتی است كه شرح دادیم، اما آنچه كار را دشوارتر میكند، قطعهبندی و جداجدا كردن حروف به هم چسبیده و تشخیص آنهاست. اگر این روند طی شود، این امید وجود دارد كه روزی از OCR پیوسته دستنویس فارسی هم در سطح گستردهای استفاده شود. البته OCR پیوسته دستنویس حتی در زبان انگلیسی هم هنوز به كاربرد وسیع و عملی نرسیده است. مهندس «رزازی» دراین مورد میگوید: « OCRانگلیسی در سیستم عامل windows وجود دارد كه همراه با office فروخته میشود، ولی فكر نكنید كه نامههای اداری انگلیسی كه با دستنویس نوشته شدهاند همه با OCR تایپ میشوند. این كار برای به نتیجه رسیدن به حداقل یك روند 10 ساله را باید طی كند. OCR فارسی یك مرحله عقبتر است، پس زمان بیشتری میبرد.»
مهندس «صدیق»، مدیرعامل شركت «پایا» هم میگوید: «همین OCR فارسی گسسته هم تا چند سال پیش یك رؤیا بود، ولی دیدیم كه محقق شده است و به مرور پیشرفتهتر هم خواهد شد. بنابراین طراحی OCR پیوسته فارسی هم، اگرچه سالها طول میكشد، ولی مطمئناً به نتیجه خواهد رسید. این طرح یك طرح تحقیقاتی است كه در دانشگاهها دنبال میشود و هنوز به یك محصول صنعتی قابل استفاده در سطح كلان و كاربردی برای عموم نرسیده است. ولی در حال حاضر نمونههای دانشگاهی و آزمایشگاهی آن در داخل كشور وجود دارد و موضوع رساله دكتری برخی از دانشجویان است.»
بنابراین بین 10 تا 20 سال آینده، آنگونه كه مسئولان شركت «پایا» میگویند، OCR پیوسته دستنویس فارسی هم وارد بازار خواهد شد.
دكتر فیلی هم در پاسخ به این سؤال كه «آیا طراحی OCR پیوستة فارسی روزی تحقق خواهد یافت؟» پاسخ میدهد: «بله ولی به تدریج.»
به هر حال براساس قرارداد «تكفا» با شركتهای ایرانی، تا كمتر از یك ماه دیگر، نسخهنهایی (البته نه صددرصد تكمیلشده) OCR فارسی دستنویس گسسته و تایپی پیوسته ارائه خواهد شد. مدیر شركت «دوران نوین» در این مورد میگوید: «پروژة OCR گسسته در مراحل پایانی خود قرار دارد ولی دارای مشكلاتی در تشخیص انواع اسكنرها و انواع فونتهاست كه در حال رفع آن هستیم. این نرمافزار در حال حاضر امكان تشخیص فونتهای تایپی فارسی با دقت زیاد را دارد، ولی مشكل جدی آن است كه با اسكنرهای مختلف نتایج نامناسبی میدهد.» وی از اهمیت این طرح در بعد كلان ملی هم میگوید: «با توجه به این كه مشكل OCR برای بسیاری از زبانهای دنیا مانند انگلیسی عملاً حل شده است، اگر در كشور ما هم به نتیجة نهایی برسد در افزایش سطح اطلاعات فارسی در دنیای دیجیتالی امروز (از جمله در اینترنت) بسیار اهمیت خواهد داشت
منابع
1-نما متن نشریات www.namamatn.ir
www.microrayaneh.com-2
3-http://en.wikipedia.org
4- "بر نامه هاي شناسايي نوري كاراكتر ( ocr) چگونه كار مي كنند ؟" نشریه وب،شماره: 92بهمن 138
5- "درآمدي بر "ocr حيات نو،شماره نشریه 1386/03/26
6-ocr" و مقدمه اي بر ocr فارسي " دنياي كامپيوتر و ارتباطات،شماره نشریه 45
7-"آشنايي با فن آوري ocr" ابرار اقتصادي،شماره نشریه 16
مطالب مشابه :
OCR چیست؟
این کل فرایند تشخیص خودکار متن بود که به صورت بسیار به انسان تایپی فارسی با
رد نظريه داروين توسط قرآن و دانشمندان
تبدیل به انسان تایپی به هنگام هیچ شباهت و مجانستی با
پاسخ مستند حداد عادل به اتهام پراکنی عبدالکریم سروش
آیا کسی، با مشاهده و مقایسه این نمونهها و با علم به اینکه من متن متن تایپی متن تایپ
برچسب :
کد متن تایپی با شباهت بسیار به تایپ انسان