OCR چيست؟






فرض كنيد كه ما متني را روي كاغذ داريم و مي‌خواهيم آن را وارد رايانه كنيم. اولين روشي كه به ذهن مي‌رسد اين است كه متن را به تايپيست بدهيم تا با كامپيوتر تايپ كند. اما آيا مي‌شود عين همان متن را وارد رايانه بكنيم تا نيازي به تايپ نباشد؟
البته دستگاه «اسكنر» مي‌تواند تصويري از آن متن را وارد رايانه كند، تا اينجا بخشي از مشكل ما حل شده است. اما رايانه كه نه عقلي دارد و نه «زبان» مي‌فهمد، نمي‌تواند حروف و كلمات را از هم تشخيص دهد.
مثلاً اگر از كامپيوتر بخواهيم به ما بگويد كه در متن اسكن‌شده كلمة «علي» چند بار آمده است، بي‌آنكه شرمنده شود، مي‌گويد نمي‌توانم تشخيص بدهم! در واقع اين «تصوير ديجيتال‌شده» بايد به «تصوير قابل پردازش» تبديل شود. موضوع اصلي OCR همين است.
OCR سرنام اصطلاحي است كه صورت كامل آن در واژه‌نامه‌هاي انگليسي به دو صورت آمده است:

انواع OCR

در زبان‌هاي ديگر، به ويژه زبان‌هايي كه با حروف لاتيني نوشته مي‌شوند، سال‌هاست كه از OCR استفاده مي‌شود. اما در ايران دو سه سالي است كه به فكر استفاده از OCR در زبان فارسي افتاده‌ايم.
و اما OCR چند نوع است: يا تايپي است يا دست‌نويس. يعني يا بايد يك متن قبلاً تايپ شده را (مثل كتاب‌ها و روزنامه‌هاي چندين سال قبل، يا حتي متني را كه فايل تايپي آن موجود نيست و فقط پرينت آن را داريم) وارد رايانه كنيم، يا متن دست‌نويس را.
متن‌هاي دست‌نويس هم به دو صورت «گسسته» و «پيوسته» وجود دارند: متن «دست‌نويس پيوسته» مثل همان چيزهايي است كه ما هرازگاهي كه دلمان تنگ مي‌شود روي كاغذ مي‌نويسيم، يا يك نامه، يا يك قطعه شعر و ... اما متن «دست‌نويس گسسته» همان نوشته‌‌هايي است كه حروف آن جدا از هم و به صورت گسسته نوشته شده‌اند، مثل نام و نام‌خانوادگي كه در فرم‌هاي آزمون ثبت‌نام، به صورت هر حرف داخل يك كادر، نوشته مي‌شوند.
طراحي OCR گسستة فارسي تقريباً در مراحل پاياني كار قرار دارد ولي، OCR پيوسته ظاهراً سال‌هاي زيادي كار مي‌برد.

فارسي ما و مشكلات آن

قبل از اينكه به مراحل ديگر OCR بپردازيم، لازم است اندكي هم به مشكلات خط فارسي ــ يا در واقع ويژگي‌هاي اين خط ــ بپردازيم. اول اينكه ما در فارسي حروف را به صورت چسبيده و پيوسته مي‌نويسيم و اين كار براي تشخيص حرف به حرف نوشته از سوي رايانه (كه قرار است در مراحل بعدي آن را تايپ كند) بسيار مشكل است. تصور كنيد كه همين كلمه ساده «است» را به حالت‌هاي مختلف مي‌شود نوشت: يكي براي «س» دندانه مي‌گذارد، يكي نمي‌گذارد، يكي آن را مي‌كشد و يكي نمي‌كشد و... حالا اگر همين صورت‌هاي مختلف «س» به «ت» هم بچسبند، تشخيص حروف براي ما انسان‌ها هم سخت مي‌شود، چه رسد به رايانه.

شباهت حروف

مشكل ديگر خط ما اين است كه حرف‌هاي فارسي بسيار به هم شبيه‌اند. مثلاً در نظر بگيريد كه تفاوت «ر» با «ز» با «ذ» يا «ب» با «ت» تنها در يك نقطه است، و چون نقطه جزء بسيار كوچكي است، اگر يك خط يا حتي يك لك كوچك روي كاغذ بيفتد، تشخيص حروف از هم بسيار دشوار مي‌شود و دردسر جدي براي بازشناسي حروف توسط رايانه ايجاد مي‌كند. اينها تازه مشكلات خط فارسي است. دربارة اعداد فارسي هم اين مشكل وجود دارد: صفر ما يك نقطه كوچك است كه مي‌تواند رايانه را به اشتباه بيندازد؛ اعداد 4، 3، 2، 1 هم بسيار به هم شبيه هستند و تنها تفاوتشان يك دندانه كوچك است.
به دلايل گفته شده OCR درمرحلة كنوني در كشور ما مربوط به «دست‌نويس‌هاي گسسته» يا متن‌هاي تايپي پيوسته است، و تا بازشناسي متن‌هاي دست‌نويس پيوسته توسط كامپيوتر راه زيادي در پيش است، چون در دست‌نويس‌هاي گسسته، اگرچه حروف به هم شباهت دارند، حداقل جداجدا نوشته شده‌اند. در متن‌هاي پيوسته تايپي هم مشكل كشيده شدن يك حرف يا شكسته نوشته شدن حروف را نداريم.
البته به گفته مسئولان شركت «پايا» در حال حاضر هم نرم‌افزارهايي وجود دارد كه متن دست‌نويس پيوسته را تبديل به حروف جدا ازهم و گسسته مي‌كنند، ولي ضريب خطاي اين نرم‌افزارها زياد است و به شكل صنعتي درنيامده‌اند.

بازشناسي حروف و الگو

تا اينجا گفتيم تصوير صفحه‌اي كه در آن حروف به طور جداجدا (هر حرف داخل يك كادر) نوشته شده است، به وسيلة اسكن وارد رايانه مي‌شود. مرحلة بعدي اين است كه حروف بازشناسي شوند، يعني مكان آنها از ديگر خطوط (مثل خطوط كادري كه داخل آن نوشته شده) بازشناسي شود، و اگر متن پيوسته تايپي است، حروف جدا شوند و زوايد تصوير حذف شود. مثلاً اگر دانش‌آموزي «س» را به گونه‌اي نوشت كه بيرون از كادر بود، به رايانه بفهمانيم كه بي‌دقتي شده است او بايد همان حرف داخل كادر را بخواند.
در مرحلة بعدي كه «بازشناسي الگو» نام دارد، با تعدادي شرط مي‌شود فهميد كه مثلاً حرفي «الف» است يا نه، و رايانه تشخيص مي‌دهد كه حرف «پ» است يا «ب». براي اين تشخيص لازم است كه تصوير حرف «الف» با الف‌هاي نمونه ــ كه قبلاً به رايانه داده شده است ــ منطبق شود. الفباي نمونه قبلاً از روي يك مجموعه بزرگ آموزشي تهيه شده و ويژگي‌هاي مشترك از آن استخراج شده است. اما از آنجا كه تنوع صورت‌ها نوشتاري يك حرف به صورت دست‌‌نويس بسيار زياد است، مدلي آماري استخراج مي‌شود كه در آن شباهت ويژگي‌هاي استخراج‌ شدة قبلي با نمونه ورودي به رايانه بررسي مي‌شود. در اينجا «بازشناسي الگو» با روش‌هاي آماري انجام مي‌شود كه روش معمول در سيستم‌هاي OCR است.
اگر فكر مي‌كنيد كه كار تمام شده است در اشتباهيد، چون تازه مي‌رسيم به دنبالة حروف. مثلاً اگر كسي همان حرف «س» را با دنباله بنويسد، رايانه بايد تشخيص دهد كه اين حرف فقط «س» است، يا مثلاً «ي» هم به آن چسبيده است.

مدل‌سازي يا پردازش زباني

مرحله بعدي «مدل‌سازي زباني»يا «پردازش زباني» نام دارد. حروف به هم چسبيده، كه كلمه را درست مي‌كنند، بايد معني‌دار يا شناخته‌شده باشند. در اين مرحله بررسي مي‌شود كه چه كلماتي در زبان وجود دارد؟ چه تركيب‌هايي از كلمات مجاز است؟ و... البته در مراحل پيشرفته‌تر، مدل‌سازي گرامري (دستور زبان) و مدل‌سازي معنايي هم وجود دارد كه تشخيص مي‌دهد جمله از لحاظ دستوري و معنايي درست است يا بي‌مفهوم است. اما در OCR گسسته ــ كه بيشتر براي ثبت‌نام استفاده شده ــ شباهت يك كلمه به نام، نام خانوادگي، شهر و ... كافي است.
براي تشخيص تركيب‌هاي مجاز يك كلمه يا معني‌دار بودن يك كلمه نيز به تهية بانك‌هاي اطلاعاتي (Data base) نياز داريم. در اين بانك‌ها مثلاً تمام نام‌هاي كوچك و بزرگ ايرانيان قبلاً جمع‌آوري شده است و هنگام تطبيق يك كلمه با آن مشخص مي‌شود كه رايانه حروف آن را دست تشخيص داده يا نه. بنابراين نقش اين بانك اطلاعاتي بسيار مهم است، چون اگر نامي در آن ثبت نشده باشد، كلمه‌اي كه آن نام را شامل شود، به طور خودكار از برنامه OCR حذف مي‌شود يا پيغام مي‌آيد كه: «اين كلمه اشتباه است» در صورتي كه ممكن است مثلاً نام «هشام» در بين نام‌هاي ايراني وجود داشته باشد، ولي قبلاً در بانك اطلاعاتي ثبت نشده باشد.

بانك‌هاي ما و ديگران

مهندس «رزازي» دربارة مشكل بانك‌هاي اطلاعاتي در زبان فارسي مي‌گويد: «در دنيا براي توسعة OCR و ارزيابي آن، بانك‌هاي اطلاعاتي استاندارد ساخته شده است كه در آنها همة كلمات وجود دارند، يعني بانك هم مشكل ديجيتال كلمه را دارد، و هم تصويرش را. اما براي زبان فارسي، اين بانك‌هاي اطلاعاتي چه براي ارزيابي و چه براي توسعه، استاندارد شده نيست. در واقع هر كسي براي خودش يك بانك اطلاعاتي مي‌سازد، و اين نمونه‌هاي متفاوت مشكلاتي را ايجاد مي‌كند. مثلاً براي ثبت‌نام دانش‌آموزاني كه در آزمون مدارس تيزهوشان شركت كرده بودند، يك بانك اطلاعاتي حاوي نام‌هاي فارسي، از روي اطلاعات فرم‌هاي سال‌هاي قبل، تهيه شد كه از روي آن كلماتي كه خيلي شبيه به نام‌هاي فارسي بودند تشخيص داده مي‌شد. مثلاً اگر رايانه كلمه‌اي را «مصيبت» تشخيص داد، براساس بانك اطلاعاتي معلوم مي‌شود كه «مصيب» بوده است كه يك نام ايراني است.
علي، ولي، قلي ... و سيب
نكتة ديگر اين است كه يك بانك اطلاعاتي بايد شامل تعدادي كلمات خام باشد، بلكه «بسامد» آن واژگان، يعني ميزان استعمال و تكرار كلمات در زبان و مشخصات آماري آن‌ها هم بايد ثبت شده باشد، والا كارايي زيادي ندارد. مثلاً «علي» نامي است كه شباهت زيادي به «ولي» و «قلي» دارد. كارهاي آماري در بانك اطلاعاتي بايد طوري انجام شده باشد كه تعداد «علي» بيشتر باشد، و بعد نوبت «ولي» و «قلي» برسد، چون درصد بسامدي «علي» به لحاظ آماري و كاربرد در ميان نام‌هاي بيشتر است.
در OCR فارسي گسسته، اگر فقط مربوط به نام‌ها و نام‌خانوادگي باشد، كار ساده‌تر است از حالتي كه در OCR پيوسته وجود دارد. چون در OCR پيوسته هر كلمه‌اي ممكن است وجود داشته باشد مثل «سيب»، اما در بانك اطلاعاتي نام‌ها همه مي‌دانيم كه سيب نام يك شخص نيست بلكه نام يك ميوه است! بنابراين در OCR همواره سعي مي‌شود كه درصد خطا كاهش يابد، تا كلمات در حد ممكن درست تشخيص داده شوند. اگرچه طراحان هنوز به صددرصد صحت نرسيده‌اند، ولي نگران نتايج آزمون خود نباشيد، چون تمامي اطلاعات مربوط به شما چندين بار كنترل مي‌شوند و از سازوكار reject )يا مردودي) در رايانه هم استفاده مي‌شود. در اين روش اگر رايانه نتوانست كلمه‌اي را تشخيص دهد، مي‌فهمد كه نفهميده است و در خروجي‌‌اش مي‌آورد كه: «من اين كلمه را نفهميده‌ام» و كار به سيستم دستي مي‌رود و در آنجا تصحيح مي‌شود. اين فرايند در پست خيلي كارايي دارد. در هر جاي دنيا كه تفكيك نامه‌ها و ديگر مرسولات پستي به وسيلة OCR انجام مي‌شود، بعضي از نامه‌ها در سيستم كامپيوتري وارد سازوكار «مردودي» مي‌شوند و به طور دستي مورد بررسي مجدد قرار مي‌گيرند. هم‌اكنون در سطح محدودي از OCR در پست كشور ما نيز استفاده مي‌شود، چون در پست هم كد پستي چندرقمي و ديگر اطلاعات به صورت گسسته و داخل كادرهايي نوشته مي‌شود، و كار آسان‌تر است.
در مورد خطاي OCR در تشخيص كلمات، مسئولان شركت «پايا» نظر جالبي دارند:
«حتي با تعبية سيستم مردودي (reject) هم ممكن است خطايي در تشخيص كلمات وجود داشته باشد. بايد در نظر داشته باشيم كه هيچ سيستم پردازشگري (از جمله انسان) بدون خطا نيست. نكته مهم اين است كه يك سيستم ماشيني درصد خطاي كمتري نسبت به انسان داشته باشد تا جايگزين خوبي براي انسان باشد. مسئله اين نيست كه خطا را به صفر برسانيم. هر قدر كه فناوري جلوتر مي‌رود، ميزان خطا هم بيشتر كاهش مي‌يابد.»
مدير شركت «دوران نوين» هم به گونه‌اي ديگر به همين موضوع اشاره مي‌كند: «انتظار ما از مسئولان طرح «تكفا» آن است كه با موضوع OCR واقع‌بينانه‌تر برخورد شود، و در بحث مربوط به هزينه‌هاي پروژه و انتظاراتي كه از OCR مي‌رود، واقعيت‌ها در نظر گرفته شود. ديدگاه كنوني مسئولان تكفا آن است كه كل مشكل «خطا» تا 100درصد حل شود، در حالي كه فكر مي‌كنم حل مسائل مربوط به هوش مصنوعي نياز به روش تدريجي دارد. مثلاً در زبان عربي هم، نرم‌افزار «صخر» در نسخة اول خود فقط تا حدود 40درصد دقت داشت، در حالي كه اكنون پس از گذشت 13 سال از اولين نسخه آن دقت به مرز 98 درصد رسيده است.»
همان‌طور كه اشاره شد از OCR در ثبت‌نام آزمون «سازمان ملي استعدادهاي درخشان» در سال‌هاي 81 و 82 استفاده شد كه از طريق آن440000 نفر به طور ماشيني ثبت‌نام شدند. اين روش باعث شد كه در سال 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 براي بسياري از زبان‌هاي دنيا مانند انگليسي عملاً حل شده است، اگر در كشور ما هم به نتيجة نهايي برسد در افزايش سطح اطلاعات فارسي در دنياي ديجيتالي امروز (از جمله در اينترنت) بسيار اهميت خواهد داشت.
منبع:iranwsis.org