لینک کوتاه مطلب : https://hsgar.com/?p=5216

پروژه نفتا




اگر به اندازه کافی طولانی و سخت به این سه گیف متحرک خیره شوید، ممکن است نیازی به خواندن چیزی نداشته باشید.

در ماه می 2012، من در مورد حکاکی درز مطالعه می‌کردم، یک الگوریتم جالب و تقریباً جادویی که می‌توانست تصاویر را بدون اینکه ظاهراً له کند، اندازه‌گیری کند. پس از بازی با درزهای کوچکی که درزگیر تمایل به ایجاد آنها داشت، متوجه شدم که آنها تمایل دارند خود را به گونه ای همگرا کنند که فضاهای بین حروف را قطع کنند (رویکردهای برنامه نویسی پویا در واقع در مورد تقسیم بندی حروف نسبتاً رایج هستند. اما من این را نمی دانستم). آن زمان بود، در حالی که خواندن به خصوص پرمخاطب smbc کمیک، فکر می‌کردم که می‌توان چیزی به دست آورد که بتواند تصاویر را بخواند (با <بوم>)، بفهمد خطوط و حروف کجا هستند، و پوشش‌های انتخابی کمی ترسیم کنیم تا عادت فراگیر انتخاب متن را کاهش دهیم.

اولین تلاش من ساده بود. این تصویر را به طرفین نشان داد و یک هیستوگرام پیکسلی عمودی را تشکیل داد. دره های قابل توجه هیستوگرام های به دست آمده به عنوان امضایی برای انتهای خطوط متن عمل کردند. هنگامی که خطوط افقی یافت شد، هر خط را برش داد و فرآیند هیستوگرام را تکرار کرد، اما این بار به صورت عمودی، به منظور تعیین موقعیت حروف. این فقط برای متن چاپ شده با ماشین کاملاً افقی کار می کند، زیرا در غیر این صورت هیستوگرام های طرح ریزی شده بسیار پر سر و صدا می شوند. به هر دلیلی، تصمیم گرفتم که مشکل یا ارزش پرداختن به آن را ندارد، یا اینکه آماده نیستم.

یک سال و نیم به جلو، من دانشجوی سال اول MIT در ماه دوم مدرسه هستم. یک هکاتون وجود دارد که فکر می‌کنم ممکن است ماه‌ها قبل در آن ثبت‌نام کرده باشم و به‌عنوان بزرگ‌ترین هکاتون MIT به فروش برسد. من شب قبل بدون هیچ دلیل خاصی دیر خوابیدم و ساعت 7 صبح از خواب بیدار شدم زیرا می خواستم مطمئن شوم که ثبت نامم انجام شده است. من وارد میدان یخ یخ‌نشده‌ای شدم، جایی که بیش از 1000 نفر روی میز می‌زدند و کابل‌های لپ‌تاپ را روی زمین پخش می‌کردند—بنابراین اولین هکاتون من اینگونه خواهد بود.

هر کس دیگری “به برق وصل شده بود” یا چیزی دیگر. هدفون بزرگی که با دقت به ده ها پنجره Sublime Text خیره شده است. به اندازه کافی منصفانه، صدای بسیار بلندی داشت. نمی‌دانستم در نهایت چه کاری انجام می‌دهم، و نمی‌توانم با شخص دیگری ملاقات کنم که هم مایل به همکاری باشد و هم ایده‌ای به اندازه‌ای جالب داشته باشد که من بخواهم. بنابراین تصمیم گرفتم به خوابگاهم برگردم و چرت بزنم.

فقط کمی از آن چرت بیدار شدم بیشتر خسته، و هیچ جایی به این نزدیکی نیست که بفهمم قرار است چه کار کنم. تصمیم گرفتم به هکاتون برگردم، زیرا غذای رایگان در آنجا وجود دارد یا چیز دیگری.

اگر به مجوزهای درخواست شده در گفتگوی نصب توجه کرده باشید، ممکن است از خود بپرسید که چرا این برنامه افزودنی به چنین دسترسی گسترده ای به اطلاعات شما نیاز دارد. Project Naptha در سطح بسیار پایینی کار می کند، در واقع به طور ایده آل نوعی عملکرد است که به صورت بومی در مرورگرها و سیستم عامل ها ساخته می شود. به منظور برجسته کردن و تعامل با تصاویر هر کجا، به توانایی خواندن تصاویر واقع در همه جا نیاز دارد.

یکی از چیزهای تاثیرگذار در مورد این پروژه این واقعیت است که تقریباً به طور کامل در جاوا اسکریپت سمت مشتری نوشته شده است. این بدان معناست که بدون دسترسی به سرور راه دور تقریباً کاملاً کاربردی است. این یک اخطار است، و آن این است که ترجمه آنلاین در حال اجرا به‌صورت آفلاین بسیار دشوار است و عدم دسترسی به یک سرویس OCR ذخیره‌شده که در فضای ابری اجرا می‌شود به معنی کاهش عملکرد و دقت رونویسی پایین‌تر است.

بنابراین یک مبادله وجود دارد که باید بین حریم خصوصی و تجربه کاربر اتفاق بیفتد. و من فکر می کنم تنظیمات پیش فرض تعادل ظریفی بین در دسترس بودن همه عملکردها و احترام به حریم خصوصی کاربر ایجاد می کند. من شکایاتی را از هر دو طرف شنیده‌ام (تقریباً از نظر کمیت، در واقع، که به نوعی جالب است) – بسیاری از مردم خواهان رونویسی با کیفیت بالا به حالت پیش‌فرض هستند، و دیگران نمی‌خواهند هیچ ارتباطی با سرور به عنوان پیش‌فرض وجود نداشته باشد.

به‌طور پیش‌فرض، وقتی شروع به انتخاب متن می‌کنید، یک درخواست HTTPS امن حاوی URL تصویر خاص و به معنای واقعی کلمه هیچ چیز دیگری (بدون نشانه‌های کاربر، بدون اطلاعات وب‌سایت، بدون کوکی یا تجزیه و تحلیل) ارسال می‌کند و درخواست‌ها ثبت نمی‌شوند. سرور با لیستی از ترجمه های موجود و زبان های OCR که انجام شده است پاسخ می دهد. این به شما امکان می دهد متن را از یک تصویر با دقت بسیار بیشتری نسبت به موارد دیگر تشخیص دهید. با این حال، این را می توان به سادگی با علامت زدن مورد “غیرفعال کردن جستجو” در منوی گزینه ها غیرفعال کرد.

ویژگی ترجمه در حال حاضر به دلیل مشکلات مقیاس پذیری در عرضه محدود است. سرویس OCR آنلاین همچنین دارای اندازه‌گیری برای هر کاربر است، بنابراین چنین درخواست‌هایی شامل یک رمز شناسایی منحصربه‌فرد هستند. با این حال، رمز کاملاً ناشناس است و با هیچ اطلاعات شناسایی شخصی مرتبط نیست (به طور کامل جدا از درخواست های جستجو انجام می شود).

بنابراین، در واقع، چیزی که در این صفحه در حال اجرا است، پروژه کامل نپتا نیست. این اساساً فقط قسمت جلویی است، بنابراین فاقد تمام محاسبات سنگین سنگین است که در واقع آن را خنک می کند. تمام معیارهای متن و تجزیه و تحلیل طرح بندی از قبل محاسبه شده بود. قبل از اینکه چنگال های خود را بالا ببرید، در واقع یک دلیل خوب وجود دارد که این صفحه نمایشی اجرا می کند که معادل وینی هات جونیور نسخه اسکریپت

پشتیبان محاسباتی گران قیمت از WebWorkers به ​​طور گسترده استفاده می کند، که اگرچه از مرورگر مدرن نسبتاً خوبی پشتیبانی می کند، اما تفاوت های ظریفی بین پلتفرم ها دارد. Safari هنگام ارسال نمونه های ImageData رفتار عجیبی دارد و آرایه های تایپ شده قابل انتقال در فایرفاکس و کروم کمی متفاوت هستند. مهمتر از همه، نسخه پایدار فعلی (34) گوگل کروم، در زمان نوشتن واقعاً از یک رنج می برد WebWorkers به ​​طرز ناتوان کننده ای شکسته شده است پیاده سازی. خوشبختانه، به نظر نمی‌رسد که افزونه‌های کروم از همین مشکل رنج می‌برند.

دوگانگی بین کلمات بیان شده به عنوان متن و کلماتی که در تصاویر به دام افتاده اند به قدری در تجربه مرور حک شده است که حتی ممکن است آن را غیر شهودی تشخیص ندهید. برای یک جمعیت فنی، محدودیت طبیعی است، زیرا در این واقعیت نهفته است که تصاویر اساساً موجودیت‌های «تصویری» هستند، فاقد اطلاعات معنایی لازم برای نشان دادن اینکه کدام مناطق باید قابل انتخاب باشند و چه متنی در آن وجود دارد.

بینایی رایانه یک زمینه تحقیقاتی فعال است که اساساً در مورد آموزش رایانه‌ها برای «دیدن» چیزها، تشخیص حروف، اشکال و اشیاء، به جای فشار دادن کپی‌هایی از پیکسل‌ها به اطراف است.

در واقع، تشخیص نوری کاراکتر (OCR) چیز جدیدی نیست. حداقل 30 سال است که توسط کتابخانه ها و شرکت های حقوقی برای دیجیتالی کردن کتاب ها و اسناد استفاده می شود. اخیراً با الگوریتم‌های تشخیص متن ترکیب شده است تا کلمات را از روی عکس‌های تابلوهای خیابان، شماره خانه و کارت‌های ویزیت بخواند.

ویژگی اصلی پروژه نپتا در واقع تشخیص متن است، نه تشخیص نوری کاراکترها. الگوریتمی به نام the را اجرا می کند تغییر عرض سکته مغزی، توسط Microsoft Research در سال 2008 اختراع شد، که قادر به شناسایی مناطق متن به روشی زبانی-آگنوستیک است. به نوعی شبیه کاری است که یک انسان می‌تواند انجام دهد: ما می‌توانیم تشخیص دهیم که یک نشانه زبان نوشتاری را نشان می‌دهد بدون اینکه بدانیم به چه زبانی نوشته شده است، هرگز به معنای آن اهمیت ندهیم.

با این حال، نیم ثانیه هنوز کاملاً قابل توجه است، زیرا مطالعات نشان داده است که کاربران نه تنها تشخیص می دهند، بلکه به راحتی از تأخیرهای کوتاه صد میلی ثانیه ای احساس آزار می کنند. برای دور زدن آن، پروژه نپتا در واقع به طور مداوم حرکات مکان نما را تماشا می کند و نیم ثانیه را به آینده برون یابی می کند تا بتواند پردازش را از قبل آغاز کند، بنابراین آنی احساس می شود.

پروژه نپتا در ارتباط با سایر الگوریتم‌ها، مانند تجزیه و تحلیل اجزای متصل (تشخیص حروف متمایز)، آستانه otsu (تعیین فاصله کلمات)، جنگل‌های مجموعه ناهمگون (تشخیص خطوط متن)، می‌تواند به سرعت مدلی از مناطق متن، کلمات و حروف بسازد. – در حالی که کاملاً از جزئیات، حروف خاصی که وجود دارد بی اطلاع هستند.

با این حال، هنگامی که کاربر شروع به انتخاب متنی می کند، الگوریتم های تشخیص کاراکتر را اجرا می کند تا مشخص کند دقیقاً چه چیزی انتخاب شده است. این فرآیند شناسایی بر اساس هر منطقه اتفاق می‌افتد، بنابراین قبل از اینکه کاربر انتخاب نهایی را انجام دهد، هیچ تلاشی برای انجام آن بیهوده نیست.

فرآیند تشخیص شامل منفجر کردن منطقه مورد نظر است به طوری که ارتفاع هر خط در حدود 100 پیکسل است که می تواند به بزرگی 5 برابر باشد. سپس قبل از ارسال آن به داخل یک فیلتر پوشاننده رنگ هوشمند انجام می دهد پورت جاوا اسکریپت خالص موتور Ocrad OCR منبع باز.

از آنجایی که این فرآیند از نظر محاسباتی نسبتاً گران است، منطقی است که این نوع تشخیص “تنبل” را انجام دهیم – تا آخرین لحظه ممکن برای اجرای فرآیند متوقف شود. بسته به اندازه تصویر و انتخاب، تکمیل آن ممکن است بین پنج تا ده ثانیه طول بکشد. بنابراین احتمال زیادی وجود دارد که وقتی Ctrl+C را فشار می‌دهید و متن در کلیپ‌بورد شما کپی می‌شود، موتور OCR هنوز پردازش متن را انجام نداده است.

با این حال، همه چیز اشکالی ندارد، زیرا به جای متنی که هنوز در حال پردازش است، پرچم کوچکی را درج می کند که مشخص می کند انتخاب کجاست و از کدام قسمت تصویر باید بخوانید. برای 60 ثانیه بعدی، نپتا آن پرچم را ردیابی می کند و در اسرع وقت آن را با متن نهایی و شناخته شده جایگزین می کند.

گاهی اوقات، موتور OCR داخلی به اندازه کافی خوب نیست. این زبان فقط از زبان‌هایی با الفبای لاتین و تعداد محدودی دیاکریتیک پشتیبانی می‌کند و دارای مدل زبانی نیست به طوری که مجموعه‌ای از حروف وابسته به احتمال با توجه به زمینه آن را خروجی می‌دهد (به عنوان مثال، الگوریتم ممکن است تصمیم بگیرد که «he1| o تطبیق بهتری نسبت به “سلام” دارد زیرا فقط به شکل حرف نگاه می کند). بنابراین، گزینه ارسال منطقه انتخابی به یک سرویس تشخیص متن مبتنی بر ابر که توسط Tesseract، موتور OCR منبع باز گوگل (HP سابق) برنده جایزه شده است، که از ده ها زبان پشتیبانی می کند و از یک مدل زبان پیشرفته استفاده می کند، وجود دارد.

اگر کسی موتور Tesseract را روی یک تصویر عمومی راه‌اندازی کند، نتیجه شناسایی ذخیره می‌شود، به‌طوری‌که کاربران بعدی که به صورت تصادفی با همان تصویر مواجه می‌شوند، فوراً نسخه ذخیره‌شده متن را بارگیری می‌کنند.

یک کلاس از الگوریتم‌ها برای چیزی به نام “Inpainting” وجود دارد که در مورد بازسازی تصاویر یا فیلم‌ها با وجود قطعات گم شده است. این به طور گسترده برای بازیابی فیلم استفاده می شود و معمولاً در Adobe Photoshop به عنوان ویژگی “Content-Aware Fill” یافت می شود.

پروژه نپتا از مناطق شناسایی شده به عنوان متن به عنوان ماسکی برای الگوریتم نقاشی درونی خاصی که در سال 2004 بر اساس روش راهپیمایی سریع توسط الکساندر تله. از این ماسک می توان برای پر کردن نقاطی که متن از آنها گرفته شده است استفاده کرد و یک صفحه خالی ایجاد کرد که می توان محتوای جدید را برای آن چاپ کرد.

پروژه نپتا با برخی تحلیل‌های ابتدایی طرح‌بندی و معیارهای متن، می‌تواند پارامترهای هم‌ترازی متن (مرکز، موجه، تراز راست یا چپ)، اندازه قلم و وزن قلم (پررنگ، روشن یا معمولی) را مشخص کند. با این اطلاعات، می تواند متن را با فونت مشابه، در همان مکان دوباره چاپ کند. یا حتی می توانید متن را تغییر دهید تا هر چه می خواهید بگویید.

حتی می‌توان آن را به یک سرویس ترجمه آنلاین، Google Translate، Microsoft Translate یا Yandex Translate متصل کرد تا ترجمه خودکار اسناد را انجام دهد. با موتور OCR پیشرفته Tesseract، این بدان معناست که خواندن متن به زبان‌هایی با اسکریپت‌های مختلف (چینی، ژاپنی یا عربی) امکان‌پذیر است که ممکن است نتوانید آن‌ها را در موتور ترجمه تایپ کنید.

نمونه اولیه ای که در HackMIT 2013 نشان داده شد و بعداً مقام دوم را به دست آورد، به طور معمول “تصاویر به عنوان متن” نامیده شد. مطمئناً، عملکرد دقیق افزونه را به درستی خلاصه می کرد، اما واقعاً فاقد آن جرقه کوچک حیات بود.

بنابراین از آن زمان، من شروع به جستجوی نام جدیدی کردم، چیزی که مملو از احتمالات عجیب و غریب باشد. یکی از احتمالات، “پیرانین” بود، ماده شیمیایی مورد استفاده در ساخت جوهر برای هایلایترهای فلورسنت (هم اتاقی من، یک رشته شیمی، اتفاقاً این نام را دوست داشت). من چند شب با این ایده خوابیدم و متوجه شدم که کاملاً فراموش کرده ام چگونه آن را بنویسم و ​​بنابراین از لیست نامزدها خط خورده است.

نپتا، نام فعلی آن، از یک تداعی حتی ضعیف‌تر گرفته شده است. ببینید، این از این واقعیت ناشی می‌شود که نوع «هایلایتر» شبیه «فندک‌تر» به نظر می‌رسد و نفتا نوعی سوخت است که اغلب برای فندک استفاده می‌شود. این در واقع یکی از اولین نام های رمز پروژه بود و باعث ایجاد یک تخم مرغ کوچک عید پاک که می توانید با کلیک کردن سریع حدود ده بار بر روی برخی از بلوک های متن داخل یک تصویر، با آن بازی کنید.

لینک منبع

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.