OCR چيست و چگونه كار ميكند؟
تبديل كردن كاراكترهاي چاپي يا متنهاي دستنويس به فايلهاي ديجيتال و قابل درك در كامپيوتر، فرايند پيچيدهاي دارد. درواقع نياز به فناوريهايي كه بهطور كلي ارتباط بين كامپيوترها و انسانها و درك زبانها را آسان كنند، نياز هميشگي در عصر كامپيوتر بودهاند. اغلب كامپيوترها براي درك خواستههاي ما به وروديهاي مرسوم از دستگاههايي همچون ماوس و كيبورد نياز دارند. ازطرفي ما برخي اوقات به وارد كردن اطلاعات از كتاپهاي چاپي قديمي يا دستنوشتههاي خاص به كامپيوترها داريم. در چنين مواردي كامپيوتر براي درك ورودي به ابزارها و راهكارهاي پيچيدهتري نياز پيدا ميكند. در چنين مواردي، فناوري تشخيص كاراكتر نوري (يا اپتيكي) موسوم به OCR وارد عمل ميشود.
فناوري OCR به زبان ساده نرمافزاري است كه بهصورت خودكار، متن چاپ شده را تحليل كرده و آن را به فرمي تبديل ميكند كه كامپيوتر بهراحتي توانايي پردازشش را داشته باشد. فناوري مذكور امروزه در بسياري از تجهيزات دنياي فناوري استفاده ميشود. از برنامههاي تحليل دستخط تا موبايلهاي هوشمند و دستگاههاي عظيم مديريت و دستهبندي مرسولههاي پستي، امروزه از OCR بهره ميبرند. اگر بهدنبال پاسخ به اين سؤال هستيد كه چگونه متن چاپي با OCR به كاراكتر ديجيتالي تبديل ميشود، با اخبار تخصصي، علمي، تكنولوژيكي، فناوري مرجع متخصصين ايران همراه باشيد.
OCR چيست؟
وقتي مشغول مطالعه متن اين مقاله هستيد، چشمها و مغز شما فرايندهاي تشخيص كاراكتر اپتيكي را انجام ميدهند و حتي متوجه چنين فرايندي نميشويد. چشمها، الگوهاي روشن و تاريكي كه كاراكتر را تشكيل ميدهند، شناسايي ميكنند (حروف، اعداد يا علائم نگاري و موارد مشابه، همگي كاراكتر هستند). سپس مغز شما از دادههاي دريافتشده، اطلاعات ميسازد و متن را تحليل و درك ميكند. ساختن اطلاعات برخي اوقات با اسكن تك به تك حروف و برخي اوقات با اسكن كامل كلمه يا جمله رخ ميدهد.
كامپيوترها هم ميتوانند عملكردي شبيه به چشم و مغز داشته باشند، اما قطعا كار پيچيدهاي در پيش دارند. اشكال اصلي اين است كه كامپيوترها چشم ندارد. درنتيجه براي خواندن متني مثلا از يك جزوه رايگان قديمي، بايد عكس ديجيتالي آن را ازطريق ابزارهاي مرسوم مانند اسكنر يا دوربين ديجيتال دراختيار كامپيوتر قرار دهيد. صفحهاي كه با استفاده از ابزارهاي ثبت عكس ايجاد ميشود، در دستهي محتواي گرافيكي قرار ميگيرد. كامپيوتر در ابتدا هيچ تفاوتي بين اين تصوير يا هر فايل گرافيكي ديگر (اغلب با فرمت JPG) مانند تصاوير مانديشه متخصصينه يا اشخاص قائل نميشود. به بيان ديگر، كامپيوتر بهجاي متن موجود در صفحه، «عكسي» از آن را دراختيار دارد و قطعا نميتواند بهراحتي ما، متن موجود در عكس را بخواند. OCR براي تبديل كردن عكس متن به يك متن واقعي استفاده ميشود. به بيان ديگر با استفاده از OCR ميتوانيد از عكس گرفتهشده از يك صفحهي جزوه رايگان، فايل TXT يا DOC يا هر فرمت متني ديگر توليد كنيد.
مزيتهاي OCR
وقتي يك تصوير داراي متن، به متني قابل ويرايش در كامپيوتر تبديل شود، قابليتهاي بسيار زيادي دراختيار شما قرار ميگيرد. از مزيتهاي بسيار مهم ميتوان به جستوجوي كلمه در ميانهي متن اشاره كرد. قابليت ديگر در ويرايش ديده ميشود. ميتوانيد آن متن را بهراحتي در بك صفحهي وب استفاده كنيد. فشردهسازي، جابهجايي آسانتر، ذخيره در سرويسهاي ابري و بسياري متخصصدهاي ديگري كه با هر فايل متني ديجيتالي انجام ميشود، با فايل استخراجشده بهكمك OCR هم قابل اجرا خواهد بود. يكي از متخصصدهاي مهم، تبديل متن به صوت در كامپيوتر است. تصور كنيد كه يك جزوه رايگان قديمي با OCR به متن ديجيتالي تبديل ميشود و سپس بهراحتي كامپيوتر آن را با صداي پيشفرض ميخواند كه خصوصا براي متخصصان نابينا بسيار مفيد خواهد بود. يكي از اولين متخصصدهاي OCR در دههي ۱۹۷۰ بود كه دستگاهي شبيه به فتوكپي بهنام Kurzweil Reading Machine، با اسكن كردن جزوه رايگانهاي چاپي، آنها را براي متخصصان نابينا ميخواند.
OCR چگونه كار ميكند؟
تصور كنيد كه در كل جهان تنها يك زبان و يك حرف وجود داشت: حرف A. حتي در چنين وضعيتي هم استفاده از OCR در كامپيوترها با چالشهاي گوناگون روبهرو ميشد، چون افراد متفاوت، شيوهي نوشتن منحصربهفردي براي نگارش همان يك حرف دارند. حتي در متنهاي چاپشده هم اشكالات زيادي داريم. بههرحال هر متن يا جزوه رايگان چاپ شده با فونتي منحصربهفرد و حتي تفاوت در رنگ و چاپ، منتشر ميشود.
براي حل چالش تفاوت در نوشتار، دو راهكار اصلي وجود دارد. يكي از راهكارها از شناسايي كامل كاراكتر استفاده كرده، يعني الگوي آن را شناسايي ميكند. راهكاري ديگر، خطوط تكي كاراكتر را مورد تحليل قرار ميدهد كه به شناسايي براساس مشخصه هم شهرت دارد.
شناسايي الگو
اگر همهي افراد و ناشران، حرف تكي A را به يك صورت مينوشتند و چاپ ميكردند، شناسايي آن در كامپيوتر دشوار نبود. درواقع تنها بايد يك تصوير از A را در كامپيوتر ذخيره كرده و سپس هر كاراكتر اسكن شده را با آن مقايسه ميكرديم. اگر دو كاراكتر، شبيه به هم بودند، كاراكتر اسكن شده بهعنوان حرف A بهصورت متن ديجيتالي ثبت ميشد.
چگونه همهي مردم را به نوشتن به يك شكل ملزم كنيم؟ در دههي ۱۹۶۰، فونتي بهنام OCR-A توسعه يافته بود كه روي اسناد مهمي همچون چكهاي بانكي استفاده ميشد. هريك از حروف، عرض برابري با ديگري داشت و فضاي برابري را اشغال ميكرد (فونت Monospace). خطوط حرفها نيز بهگونهاي طراحي شده بود كه بهراحتي بتوان هر حرف را از ديگري تشخيص داد. پرينترهاي مخصوص چك، همگي از فونت مذكور استفاده ميكردند و درنهايت دستگاههاي اسكن OCR نيز امكان شناسايي و تحليل آن را داشتند. درنهايت با استاندارد كردن يك فونت ساده، حل كردن اشكال OCR هم تسهيل شد.
راهكار فونت OCR-A قطعا براي همهي شرايط متخصصد ندارد. همهي ناشران و نويسندهها از فونت مذكور استفاده نميكنند و دستخط متخصصان نيز قطعا شبيه به چنين فونتي نيست. قدم بعدي، ياد دادن فونتهاي مرسوم ديگر به برنامههاي OCR بود. از فونتهاي مرسوم ميتوان به Times, Helvetica, Courtier و ديگران اشاره كرد. با پيشرفت فناوري، OCR توانايي تشخيص اغلب متنهاي چاپشده را پيدا كرده بود، اما باز هم تا تشخيص همهي وروديها فاصلهي زيادي داشت.
فونت OCR-A
شنسايي براساس مشخصه
روش ديگر شناسايي با OCR كه روندي پيچيده دارد، بهنام Intellgent Character Recognition يا ICR هم شناخته ميشود. تصور كنيد كه تعداد زيادي حرف را با فونتهاي گوناگون به برنامهي OCR ارائه كنيم. براي شناسايي چنين تنوعي از حروف و كاراكترها، نياز به رويكردي پيچيدهتر داريم. بهعنوان مثال براي همان حرف A بايد به كامپيوتر بگوييم كه هرگاه دو خط زاويهدار در نقطهاي در بالا و مركز به هم ميرسند و يك خط افقي هم تقريبا از ميانهي آنها عبور ميكند، حرف A را ميبينيم. قطعا چنين قانوني صرفانديشه متخصصين از فونت و دستخط، براي حرف A صادق ميشود و ميتوان همين قانون را براي حروف ديگر در زبانهاي ديگر پيادهسازي كرد.
كامپيوتر با يادگيري مشخصههاي زاويه و خطوط كاراكتر، آن را شناسايي ميكند
در روش شناسايي براساس مشخصه، بهجاي گشتن بهدنبال الگوي مشترك بين حروف ورودي با الگوي ثابت حروف، بهدنبال مشخصههايي همچون خطوط زاويهدار، خط افقي قطع كننده، انحناي خطوط و مواردي اينچنيني هستيم كه حروف را از هم متمايز ميكند. اكثر برنامههاي OCR مدرن با همراهي از فونتهاي گوناگون، بهجاي سيستمهاي شناسايي الگو از شناسايي مشخصه بهره ميبرند. نمونههاي پيشرفتهتر هم شبكههاي عصبي را بهكار ميگيرند تا تشخيص دقيقتري داشته باشند.
الگوريتمهاي تشخيص دستخط چگونه عمل ميكنند؟
شناسايي كاراكترهايي كه با پرينترهاي باكيفيت ليزري يا دستگاههاي چاپ حرفهاي روي كاغذ نقش بستهاند، نسبت به شناسايي دستخط افراد بسيار آسانتر است. در مطالعه و شناسايي متن از ميان دستخطها، انسانها تواناييهاي بسيار بهتري نسبت به كامپيوترها دارند. ما روزانه حتي با خواندن بدترين دستخطها هم امكان استخراج مفهوم و منظور نوشته را داريم. مغز انسان از تركيبي از تشخيص الگوي خودكار، استخراج مشخصه و (قطعا) اطلاعات پيرامون نويسنده و معنا و مفهوم متن استفاده ميكند تا دستخط نوشته شده را شناسايي كند. اگر كامپيوتر بخواهد چنين تركيبي را در OCR به كار بگيرد، قطعا پيچيدگيهاي زيادي در پيش رو خواهد داشت. در ادامه، مراحل تشخيص دستخط در OCR را مطالعه ميكنيم:
آسانسازي
وقتي براي تشخيص دستخط به كامپيوترها نياز پيدا ميكنيم، عموما مسائل را بهصورت سادهتر به آنها ارائه خواهيم كرد. بهعنوان مثال، ماشينهايي كه براي دستهبندي مرسولههاي پستي استفاده ميشوند، تنها وظيفهي شناسايي كاراكترهاي موجود در كد پستي را دارند و كل آدرس را اسكن نميكنند. درنتيجه چنين كامپيوترهايي تنها بايد يك متن كوتاه را شناسايي كنند كه از تعداد محدودي كاراكتر تشكيل شده است. ازطرفي قوانين پست هم از متخصصان ميخواهد كه آدرسها و كاراكترها را طبق دستورالعمل مشخصي وارد كنند. بهعنوان مثال حروف بايد در بخشهاي مشخصي از آدرس و با فاصلهي مناسب نوشته شوند.
اسناد رسمي كه نياز به اسكن شدن و تبديل شدن به فايل ديجيتال بهكمك OCR دارند، اغلب بهصورتي طراحي ميشوند كه متخصص، حروف را با دقت در آنها وارد كند. حتما با اسنادي روبهرو شدهايد كه بايد نام و نام خانوادگي و اطلاعات ديگر را بهصورت حروف جدا از هم در مربعهايي مشخص در آنها وارد كنيد. اين اسناد اغلب با رنگ پسزمينهي خاصي هم چاپ ميشوند تا بيشترين تفاوت تم رنگ را با نوشتهها داشته باشند. بهعنوان مثال رنگي همچون صورتي انتخاب ميشود كه درصورت نوشتن متن با جوهر مشكي يا آبي، تفاوت كامل را ايجاد كند.
موبايلهاي هوشمند و تبلتهايي كه قابليت تشخيص دستخط دارند، اغلب از رويكرد شناسايي مشخصه بهره ميبرند. بهعنوان مثال وقتي متخصص مشغول نوشتن حرف A ميشود، دستگاه تمامي فعاليتهاي او را در كشيدن خطوط دنبال ميكند و كاراكتر را تشخيص ميدهد. درنتيجه در تشخيص دستخط از نمايشگرهاي لمسي، استفاده از رويكرد مشخصه آسانتر و متخصصديتر خواهد بود.
فرايند استفاده از OCR در اسكن متن
قطعا متخصصان عادي نيازي به اسكن و تبديل كردن تعداد زيادي سند و متن در روز ندارند. ما در بهترين حالت بهدنبال تبديل متن از جزوه رايگان يا مقالهاي چاپ شده به متن ديجيتالي هستيم. دركنار ابزارهاي متعددي كه براي اسكن زبان انگليسي وجود دارد، براي زبان فارسي هم نرمافزارهاي متعدد OCR ارائه شدهاند. در ادامه، مراحل آمادهسازي و تبديل OCR را براي اسناد، شرح ميدهيم.
آمادهسازي متن چاپي: ابتدا بايد باكيفيتترين نسخهي چاپي از متن مدانديشه متخصصين خود را تهيه كنيد. برخي اوقات سند شما قديمي است و متن باكيفيتي روي آن ديده نميشود. با برخي راهكارها همچون فتوكپي يا چند بار اسكن و پرينت كردن با تغيير كنتراست، ميتوان دقت متن را افزايش داد. كيفيت متن چاپي اوليه در خروجي نهايي OCR تأثير زيادي دارد. ايرادهايي همچون لكه، كثيف بودن كاغذ، نشت جوهر و غيره، همگي روي تشخيص نهايي نرمافزار تأثير ميگذارند.
اسكن كردن: پس از آمادهسازي متن چاپي مناسب، بايد با استفاده از دستگاه اسكنر آن را به فايل ديجيتال تبديل كنيد. اسكنرهاي ورقهاي نسبت به اسكنرهاي تخت براي OCR بهتر هستند، چون كاغذها را با سرعت بهتري دريافت و اسكن ميكنند. اكثر برنامههاي OCR مدرن، در همان مراحل اسكن كردن، متن ديجيتالي را هم توليد ميكنند و سپس اسكن صفحهي بعد را انجام ميدهند. بهجاي اسكنر ميتوان از دوربين ديجيتال با كيفيت بالا نيز استفاده كرد تا تصويري با جزئيات مناسب به كامپيوتر ارائه شود. در برخي موارد ميتوان با استفاده از حالت ماكرو، تصويري دقيقتر و شفافتر را از كاراكترها ثبت كرد.
سياه و سفيد كردن: ابزارهاي OCR در مرحلهي ابتدايي سند را به نسخهاي سياه و سفيد تبديل ميكنند. درواقع تمامي رنگهاي اضافهي سند از بين ميرود تا تنها دو رنگ باقي بمانند. OCR يك فرايند باينري محسوب ميشود. وقتي تصوير بهخوبي به حالت سياه و سفيد با تفاوت زياد متن و پسزمينه تبديل شود، بهراحتي هر رنگ سياه براي پيدا كردن كاراكتر اسكن ميشود و هر رنگ سفيد، بهمعناي پسزمينه خواهد بود. درنتيجه تبديل كردن تصوير رنگي به سياه و سفيد، شناسايي كاراكتر را در OCR آسان ميكند.
انجام فرايند OCR: برنامههاي OCR تفاوتهايي جزئي با هم دارند. البته در اغلب آنها فرايندي ثابت براي اسكن كردن و دريافت خروجي پياده ميشود. برنامه، متن را كاراكتر به كاراكتر و سپس كلمه به كلمه و درنهايت جمله به جمله اسكن ميكند. در دهههاي گذشته، برنامههاي OCR سرعت بسيار پاييني داشتند، اما امروزه فرايند OCR با سرعت بسيار بالايي
غلطيابي كلي: برخي از برنامهها به متخصص امكان ميدهند تا صفحههاي اسكن شده را بازبيني و اصلاح كند. برخي از آنها به قابليتهاي غلطيابي املايي مجهز هستند كه كلمههايي با احتمال زيادي تشخيص اشتباه را پررنگ كرده و فرايند را براي متخصص ساده ميكنند. نمونههاي پيشرفتهتر، قابليت پيدا كردن كلمهي صحيح را هم باتوجهبه كلمههاي مجاور پيدا كردهاند. درواقع اين برنامهها باتوجهبه كلمههاي قبل و بعد، املاي صحيح يك كلمهي احتمالا غلط را پيدا ميكنند.
تحليل الگويي: برنامههاي OCR پيشرفته، قابليت شناسايي المانهايي به جز متن را هم دارند و آنها را به المانهاي گرافيكي تبديل ميكنند. بهعنوان مثال، برنامه ميتواند ستون و جدول و عكس را از متن اسكنشده شناسايي كرده و آنها را در فايل نهايي بهصورت عكس يا جدول نمايش دهد.
غلطيابي انساني: در پايان پس از استفاده از پيشرفتهترين ابزارهاي OCR نيز به غلطيابي نياز پيدا ميكنيد. بههرحال اين ابزارها هيچگاه كاملا دقيق نيستند و بايد مرحلهاي براي غلطيابي انساني هم در اسكنها در انديشه متخصصين بگيريد.
تاريخچه OCR
بسياري تصور ميكنند كه OCR در سالهاي اخير توسعه يافته است. درحاليكه اين فناوري عمري طولاني در دنياي كامپيوتر دارد. اولين پتنت مرتبط با توانايي خواندن متنهاي انساني توسط ماشينها در سال ۱۹۲۸ بهنام گوستاو تاوسچك قبت شد. پتنت مشابهي هم در سال ۱۹۳۱ بهنام پائول هندل از جنرال الكتريك در ايالات متحده به ثبت رسيد. هردو پتنت از ايدهي فتوسلهايي با قابليت تشخيص الگو از كاغذ بهره ميبردند. در سال ۱۹۴۹، دستگاهي در RCA Laboratories ساخته شد كه با استفاده از همان فناوري فتوسل، امكان خواندن متن براي نابينايان را با سرعت ۶۰ كلمه در دقيقه فراهم ميكرد.
در سال ۱۹۵۰، مهندسي بهنام ديويد اچ شپرد، دستگاهي با قابليت تبديل كردن متن كاغذي به فرمتي قابل خواندن در ماشينها ساخت كه به ارتش ايالات متحده فروخته شد. او بعدا شركتي مخصوص OCR بهنام Intelligent Machines Research راهاندازي كرد.شپرد همچنين فونت Farrington B را هم مخصوص خواندن در دستگاههاي OCR توسعه داد كه امروزه بهنام OCR-7B براي چاپ كردن اعداد روي كارتهاي اعتباري استفاده ميشود.
لارنس رابرتس يكي ديگر از افراد تأثيرگذار در فناوري OCR بود. او كه در MIT تحقيق ميكرد، يكي از اولين سيستمهاي پيشرفتهي تشخيص متن را با تكيه بر فونت OCR-A توسعه داد. او بعدها در توسعهي اينترنت هم نقش داشت. در همان سالها، رسانهي Reader's Digest و RCA تلاش ميكردند تا اولين نمونههاي تجاري دستگاه OCR را به بازار عرضه كنند. در دههي ۱۹۶۰، دستگاههاي OCR به تجهيزاتي مرسوم در مراكز پستي تبديل شدند كه براي دستهبندي نامهها و مرسولهها و اسكن آدرسها استفاده ميشدند. آمريكا و بريتانيا و كانادا از پيشگامان استفاده از فناوري OCR در شركتهاي پستي بودند.
ريموند كورزويل در سال ۱۹۷۴ برنامهاي براي اسكن متن و خواندن آن براي افراد نابينا توسعه داد كه بعدا شركت زيراكس آن را خريد. اولين دستگاه همراهبا قابليت تشخيص دستخط، در سال ۱۹۹۳ توليد شد. Apple Newton MessagePad قابليت تشخيص دستخط متخصصان را روي نمايشگر لمسي داشت. در دههي ۱۹۹۰، توانايي تشخيص دستخط به قابليتي محبوب و مرسوم، خصوصا در كامپيوترهاي همراه PDA تبديل شد كه شركت پالكم، از پيشگامان توليد آنها بود.
در سال ۲۰۰۰، دانشمندان دانشگاه كارنگي ملون پيشنهاد دادند كه از سيستمهاي ضد اسكن CAPTCHA براي بهبود برنامههاي OCR استفاده شود كه هنوز هم نمونههاي آنها را ميبينيم. در سال ۲۰۰۷ هم رخداد مهم ديگر در تاريخ OCR اتفاق افتاد و با ورود آيفون به بازار موبايلهاي هوشمند، توانايي اسكن با دوربين موبايل و تبديل كردن آن به متن، بيش از هميشه مرسوم شد.
هم انديشي ها