ویراستاری (افزونه افیس برای ورد) بخش چهارم

ویراستاری (افزونه افیس برای ورد) بخش چهارم

در ویراستاری (افزونه افیس برای ورد) بخش اول به امکانات سیستم املای لغات اشاره کردم و همانطور که نوشتم این سیستم در برخی سیستمهای دیگر مثل نویسه خوان نوری یا او سی آر کاربرد دارد.در نسخه جدید امکان نویسه خوانی (تبدیل عکس به متن) هم به برنامه “ویراستاری” اضافه شده است. تا جایی که من تست کردم دقتی بالای 99 درصد برای برخی تصاویر ارائه میدهد. در ادامه به تاریخچه و برخی نکات و تکنیکهای فنی در این خصوص پرداخته میشود . به نظر من از نظر کاربری نیازی نیست که این چیزها را بخوانید. برای دانلود از آدرس زیر استفاده کنید. https://github.com/ehsan2022002/VirastarEویراستاری R2نویسه خوان نوری” یا OCR نوعی تکنولوژی است که شما را قادر به تبدیل انواع مختلف اسناد مانند اسناد اسکن‌شده کاغذ، فایل‌های PDF یا تصاویر گرفته شده توسط دوربین‌های دیجیتال به داده‌های قابل ویرایش و قابل جستجو می‌نماید.تسرکت (انگلیسی: Tesseract‎) یک موتور نویسه‌خوان نوری برای سیستم‌های عامل مختلف است. این نرم‌افزار آزاد است، تحت مجوز آپاچی، نسخه ۲، و توسعه توسط گوگل از سال ۲۰۰۶ پشتیبانی شده‌است. در سال ۲۰۰۶، به عنوان یکی از دقیق‌ترین موتورهای متن‌باز در نظر گرفته شد. این نرم‌افزار فقط یک موتور نویسه‌خوان است و برای آن محیط‌های گرافیکی برخط و آفلاین متعددی به صورت جداگانه توسط دیگر توسعه‌دهندگان، ساخته شده‌ است. بین سال‌های ۱۹۸۵ تا ۱۹۹۴ موتور tesseract در ابتدا به عنوان نرم‌افزار اختصاصی در آزمایشگاه‌های HP در بریستول، انگلستان و گریلی، کلرادو توسعه یافت و در سال ۱۹۹۶ به ویندوز منتقل شد و در سال ۱۹۹۸ کدهایش از زبان C به C + + تبدیل شد. کار کمی در دهه بعد انجام شد. کدهایش در سال ۲۰۰۵ توسط HP و دانشگاه نوادا در لاس وگاس منتشر شد و از سال ۲۰۰۶ پروژه توسط گوگل حمایت مالی شد.در نسخه ۴ پشتیبانی از شبکه یادگیری عمیق LSTM به این نرم افزار اضافه شده است .Tesseract تا نسخه 2 و فقط می توانست تصاویر TIFF از متن ساده یک ستونی را به عنوان ورودی بپذیرد. این نسخه های اولیه شامل تجزیه و تحلیل طرح نبودند و بنابراین با وارد کردن متن ، ستون و تصاویر یا چند معادله ، خروجی نامفهوم ایجاد می شود. از آنجا که نسخه 3.00 Tesseract از قالب بندی متن خروجی ، اطلاعات موقعیتی hOCR و تحلیل طرح صفحه پشتیبانی کرده است. پشتیبانی از تعدادی از قالبهای تصویر جدید با استفاده از کتابخانه Leptonica اضافه شد. Tesseract می تواند تشخیص دهد که متن دارای یک فاصله است یا دارای فاصله ای متناسب است .نسخه های اولیه Tesseract فقط متن انگلیسی زبان را می توانست تشخیص دهد. Tesseract v2 شش زبان غربی دیگر (فرانسوی ، ایتالیایی ، آلمانی ، اسپانیایی ، پرتغالی برزیل ، هلندی) اضافه کرد. نسخه 3 پشتیبانی از زبان را به طور قابل توجهی شامل زبانهای ایدئوگرافیک (چینی و ژاپنی) و راست به چپ (به عنوان مثال عربی ، عبری) و همچنین اسکریپت های دیگر می کند. (بیش از 100 زبان) علاوه بر این Tesseract می تواند برای کار به زبانهای دیگر آموزش ببیند. Tesseract می تواند متن راست به چپ مانند عربی یا عبری ، بسیاری از اسکریپت های Indic و همچنین CJK را به خوبی پردازش کند. اگر تصاویر ورودی از قبل پردازش نشده و یا متناسب با آن نباشد ، خروجی Tesseract کیفیت بسیار پایینی خواهد داشت: تصاویر (به ویژه عکس های صفحه) باید به گونه ای کوچک شوند که متن x-height حداقل 20 پیکسل باشد ، هر چرخش یا کج شدن باید اصلاح شود یا هیچ متنی تشخیص داده نمی شود ، تغییرات با فرکانس پایین روشنایی باید با عبور زیاد فیلتر شود ، یا مرحله باینری سازی Tesseract بسیاری از صفحه را از بین می برد و حاشیه های تاریک باید به صورت دستی برداشته شوند ، یا اینکه به عنوان کاراکتر اشتباه تعبیر می شوند.معماری تیسرکتتیسرکت از لبه های صفحه استفاده نمیکند ورودی آن یک تصویر باینری با است مناطق متن چند ضلعی اختیاری تعریف شده است. ابتدا متن را سیاه و سفید و معکوس میکند یعنی متن سفید در زمینه سیاه و در مرحله بعدی Blobs را تشخص میدهد. در این حالت میتوان خطوط را مشخص کرد. متن خطوط با توجه به فواصلی به کلمات تجزیه میشود. بعد هر کلمه را خرد کرده و سعی را تشخیص حروف مینماید (با استفاده از مقادیر تعریف شده و فازی) .الگوریتم خط یافتن یکی از معدود قسمتهای آن است Tesseract که قبلاً منتشر شده است.الگوریتم طوری طراحی شده است که کجی صفحه را می توان بدون نیاز به منحرف کردن اصلاح کرد، بنابراین باعث کاهش کیفیت تصویر می شود. قسمتهای کلیدی فرآیند فیلتر لکه و ساخت خط است. با فرض اینکه تحلیل طرح صفحه قبلاً انجام شده باشد مناطق متن ارائه شده از اندازه متن تقریباً یکنواخت ، الف فیلتر ساده نویز را از بین می برد.پس از یافتن خطوط متن ، خطوط اصلی را جستجو میکند و با دقت بیشتری با استفاده از خط شکسته درجه دوم نصب خطوط و اتصالات پایه ایجاد می شوند. برای اداره صفحات با خطوط پایه منحنی که مصنوعی رایج در اسکن هستند و نه فقط در صحافی کتاب خطوط پایه با تقسیم حباب ها ایجاد می شوند به گروه هایی با جابجایی مداوم منطقی برای خط اصلی مستقیم- مستقیم. متناسب با پرجمعیت ترین پارتیشن ، (فرض می شود) . پس از این کار میتوان برش پس زمینه و جستجوی مناسب متن را انجام داد.بخشی از فرایند شناسایی برای هر کاراکتر شناسایی نحوه تقسیم یک کلمه به نویسه است. ابتدا تقسیم بندی خروجی از نظر یافتن خط ابتدا طبقه بندی می شود. بقیه مرحله تشخیص کلمه فقط برای متن هایی با سطح غیر ثابت اعمال می شود.در حالی که نتیجه یک کلمه نامناسب است ، Tesseract تلاش می کند تا نتیجه را با خرد کردن قطره ای با بدترین اطمینان از طبقه بندی کاراکتر بهبود بخشد. نقاط ریز نامزد از رئوس مقعر تقریب چند ضلعی رئوس مطالب پیدا می شود ، یا مقعر دیگر مقابل ، یا یک بخش خط. برای جدا کردن موفقیت کاراکترهای پیوست شده از مجموعه ASCII ، ممکن است 3 کاراکتر خرد شوداین تکه های خرد به ترتیب اجرا میشوند و اگر نتیجه نداد صرفنظر میشود. نگامی که ریز ریزهای احتمالی به پایان رسید ، اگر این کلمه هنوز به اندازه کافی خوب نباشد ، آن را به مشاور ارائه می شود. Associatorm یک جستجوی A * (بهترین اولین) از بخش تقسیم بندی احتمالی حباب های کاملاً خرد شده حروف غیر کاندیدا را انجام می دهد. این کار را بدون ساختن نمودار تقسیم بندی انجام می دهد ، اما در عوض جدول هش از بخش بازدید شده را حفظ می کند. جستجوی A * با کشیدن بخشهای جدید کاندیدا از یک صف اولویت بندی و ارزیابی آنها با طبقه بندی ترکیبات طبقه بندی نشده از قطعات. ممکن است ادعا شود که رویکرد “پس از آن” پس از آن “وابسته” در بهترین حالت ناکارآمد است ، در بدترین حالت ممکن است به خرد شدن های مهم منجر شود . معایب این است که طرحهای tochop-then-Associate ساختار داده را که برای حفظ نمودار تقسیم بندی کامل مورد نیاز است ، ساده می کند. هنگامی که جستجوی تقسیم بندی A * در حدود 1989 انجام شد ، در کاراکترهای شکسته دقت Tesseract بسیار جلوتر از موتورهای تجاری آن روز بود.. بخش اصلی این موفقیت طبقه بندی کاراکتر بود که به راحتی می توانست کاراکترهای شکسته را تشخیص دهد.طبقه بندی کاراکتر استاتیکنسخه اولیه Tesseract از ویژگیهای توپولوژیکی استفاده شده از اگرچه به خوبی از قلم و اندازه مستقل است ، اما این ویژگی ها برای مشکلات موجود در تصاویر واقعی قوی نیستند. alsonotrobust به کاراکترهای آسیب دیده. نتایج مناسبی نمیدهد. راه حل موفقیت این ایده است که نیازی نیست ویژگی های موجود در موارد ناشناخته همان ویژگی های داده های آموزش باشد. در طول آموزش ، این بخشهای تقریب آپولیگونال برای ویژگیها استفاده می شود ، اما عدم شناخت ، ویژگیهای کوچک ، طول ثابت (در واحدهای نرمال شده) از خط خارج و مطابق با بسیاری از ویژگیهای نمونه اولیه خوشه داده های آموزش استخراج می شود. در شکل بالا ، خطوط کوتاه و ضخیم از ویژگی های استخراج شده از ناشناخته است و خطوط نازک و طولانی تر ، بخش های خوشه ای تقریب چند ضلعی است که به عنوان نمونه های اولیه استفاده می شود. نمونه اولیه ای که از دو پل استفاده می کند کاملاً بی همتا است. سه ویژگی در یک طرف و دو ویژگی دیگر قابل مقایسه نیستند ، اما جدا از آن ، هر نمونه اولیه و هر ویژگی به خوبی مطابقت دارد. به عنوان مثال ، این روند از ویژگی های کوچک و مطابقت با نمونه های بزرگ نشان می دهد که به راحتی می تواند با شناسایی تصاویر آسیب دیده کنار بیاید. مشکل اصلی آن این است که هزینه محاسباتی محاسبه فاصله بین یک نمونه ناشناخته و یک نمونه اولیه بسیار زیاد است. ویژگی های استخراج شده از ناشناخته 3 بعدی هستند ، (x ، موقعیت y ، زاویه) ، به طور معمول 50-100 ویژگی در یک کاراکتر، و ویژگی های نمونه اولیه 4 بعدی هستند (x ، y ، موقعیت ، زاویه ، طول) ، 10-20 ویژگی در یک پیکربندی نمونه اولیه.طبقه بندی طبقه بندی به عنوان یک فرآیند دو مرحله ای ادامه می یابد. در اولین مرحله ، a class pruner لیست کوتاهی از کلاس های کاراکتر را که ممکن است ناشناخته مطابقت داشته باشد ، ایجاد می کند. هر ویژگی از یک جدول جستجوی سه بعدی درشت کوانتیزه ، یک بردار بیت (bit vector) از کلاسهایی که ممکن است مطابقت داشته باشد ، و بردارهای بیت در تمام ویژگی ها خلاصه می شوند. کلاس های دارای بالاترین تعداد (بعد از اصلاح تعداد پیش بینی شده) برای مرحله بعدی به لیست کوتاه تبدیل می شوند. هر ویژگی ناشناخته کمی بردار از نمونه های کلاس داده شده را مشاهده می کند که ممکن است مطابقت داشته باشد ، و سپس شباهت واقعی بین آنها محاسبه می شود. هر یک از نمونه اولیه کاراکتر کلاس با بیان جمع بندی منطقی محصول با هر تنظیم پیکربندی نامیده شده نشان داده می شود ، بنابراین فرآیند محاسبه فاصله ، رکوردی از کل شباهت هر ویژگی در هر پیکربندی و همچنین هر نمونه اولیه را نگه می دارد. بهترین فاصله ترکیبی که از ویژگی جمع بندی شده و نمونه های اولیه محاسبه می شود ، بهترین نسبت به تمام تنظیمات ذخیره شده کلاس است.از آنجا که طبقه بندی کننده قادر است کاراکترهای آسیب دیده را به راحتی تشخیص دهد ، طبقه بندی کننده کاراکترهای آسیب دیده آموزش داده نشده است. در واقع ، طبقه بندی فقط 20 نمونه از 94 کاراکتر از 8 قلم در اندازه خاکستری بود ، اما دارای 4 صفت (عادی ، پررنگ ، مورب ، مورب مورب) ، در مجموع 60160 نمونه آموزش را ایجاد می کند. این تفاوت قابل توجهی با سایر طبقه بندی های منتشر شده مانند طبقه بندی کالرا دارد با بیش از میلیون نمونه ، و طبقه بندی 100 فونت بایرد با 1175000 نمونه آموزش. تجزیه و تحلیل زبانی برنامه حاوی تجزیه و تحلیل نسبتاً کمی بین المللی است. هرگاه ماژول تشخیص کلمه با در نظر گرفتن یک تقسیم بندی جدید ، ماژول زبانی (به اشتباه نامیده می شود مجری) انتخاب می کند. با در نظر گرفتن موارد زیر کلمه متداول ، کلمه واژه نامه برتر ، کلمه عددی بالا ، کلمه مورد بالا بالا ، کلمه کوچک با حروف بزرگ (با ابتدای اولیه اختیاری) ، انتخاب طبقه بندی کننده برتر. تصمیم نهایی برای یک تقسیم بندی داده شده صرفاً کلمه ای را با کمترین رتبه بندی کل فاصله نشان می دهد ، جایی که هر یک از دسته های فوق در ثابت جدا شده ضرب می شود.کلمات از تقسیم بندی های مختلف ممکن است تعداد کاراکتر های مختلفی را در خود داشته باشند. مقایسه مستقیم این کلمات حتی در مواردی که یک طبقه بندی کننده برای تولید احتمالات کار دشواری است ، Tesseract این کار را نمی کند. این مشکل در Tesseract با تولید دو عدد برای هر طبقه بندی کاراکتر حل می شود. اولین مورد ، اعتماد به نفس نامیده می شود ، فاصله نرمال از نمونه اولیه است. این می تواند یک “اطمینان” باشد به این معنا که بزرگترین ها بهتر هستند ، اما با این وجود فاصله ، از بعد صفر ، فاصله بیشتر است. خروجی دوم ، رتبه بندی نامیده می شود ، فاصله نرمال شده از نمونه اولیه را در کل طول رئوس مطالب در شخصیت ناشناخته ضرب می کند. رتبه بندی برای کاراکترهای یک کلمه می تواند به طور معنی داری خلاصه شود ، زیرا طول کل خط برای همه کاراکترهای یک کلمه همیشه یکسان است.طبقه بندی تطبیقیپیشنهاد و نشان داده شده است که موتورهایOCR می توانند از استفاده از طبقه بندی سازگار بهره مند شوند. از آنجا که طبقه بندی کننده استاتیک باید در تعمیم دادن به هر نوع قلم تبحر داشته باشد ، توانایی آن در تمایز بین کاراکترهای مختلف بین کاراکترها و غیر کاراکترها ضعیف می شود.یک طبقه بندی سازگار با حساسیت بیشتر که توسط خروجی طبقه بندی ایستا از این رو بطور معمول آموزش دیده است برای بدست آوردن تبعیض بیشتر در داخل هر یک از سندها ، که در آن تعداد فونت محدود است ، استفاده می شود.فکر کنم کمی آشنا شده باشیم. بحثهای شبکه عصبی و LSTM هم هست که بسیار جالبه ولی بهتره برگردیم به برنامهبرای استفاده از نوسه خوان من مقداری کد کلاس لغت یابی ویراستاری را تغیر دادم و یک متد اضافه کردم که با تیک زدن “تصحیح خودکار لغات” فعال بشه. در این حالت بعد از پردازش متن یکبار خودکار اصلاح انجام میشه و برای همین متن دقت بالایی داره. با مطالعه سورس میتونید ارتباط بین کلاسهای مختلف رو پیدا کنید البته کارهای بیشتری هم بود که من فعلا برای این نسخه ازشون صرف نظر کردم . امیدوارم که مفید باشه و تا نوشتاری دیگر بدرود. https://github.com/ehsan2022002/VirastarE

Author: admin

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

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