وقتی اخیراً در تعطیلات بودم، میخواستم از کتاب الکترونیکی که میخواندم یادداشت برداری کنم. اما به جای یادداشت برداری صوتی یا نوشتن چیزها در یک دفترچه، از لنز برای انتخاب بخشی از کتاب، کپی کردن و چسباندن آن در یک سند استفاده کردم. این مرا کنجکاو کرد: چطور همه این اتفاقات روی تلفن من افتاد؟ چگونه یک دوربین کلمات را با تمام فونت ها و زبان های آنها تشخیص می دهد؟
تصمیم گرفتم به ریشه سوال برسم و با آنا ماناسوفسکا، یک مهندس نرم افزار مستقر در زوریخ که یکی از کارمندان گوگل در خط مقدم تبدیل تصویر به متن است، صحبت کنم.
آنا، از کار خود در لنز بگو
من با جنبه متن درگیر هستم، بنابراین مطمئن شوید که برنامه می تواند متن را تشخیص دهد و آن را برای جستجو کپی کند یا آن را ترجمه کند – بدون نیاز به تایپ. برای مثال، اگر دوربین تلفن خود را به سمت پوستری به زبان خارجی بگیرید، برنامه میتواند متن روی آن را ترجمه کند. و برای افرادی که نابینا هستند یا کم بینا هستند، می تواند متن را با صدای بلند بخواند. این بسیار چشمگیر است.
بنابراین بخشی از کاری که تیم من انجام می دهد این است که لنز نه تنها متن، بلکه ساختار متن را نیز تشخیص دهد. ما انسانها به طور خودکار نوشتههایی را که به جملات و پاراگرافها، یا بلوکها و ستونها تفکیک شدهاند، درک میکنیم و میدانیم که چه چیزی با هم هماهنگ است. با این حال، تشخیص آن برای یک ماشین بسیار دشوار است.
آیا این یادگیری ماشینی است؟
آره. به عبارت دیگر، از سیستمهایی استفاده میکند (ما آنها را مدل مینامیم) که برای تشخیص شخصیتها و ساختار در تصاویر آموزش دادهایم. یک سیستم محاسباتی سنتی تنها توانایی محدودی برای انجام این کار خواهد داشت. اما مدل یادگیری ماشین ما برای “آموزش خود” بر روی مجموعه داده های عظیم ساخته شده است و در حال یادگیری تمایز ساختارهای متنی به همان روشی است که یک انسان انجام می دهد.
آیا سیستم می تواند با زبان های مختلف کار کند؟
بله، می تواند 30 خط از جمله سیریلیک، دوانگاری، چینی و عربی را تشخیص دهد. در حال حاضر در زبانهای الفبای لاتین دقیقتر است، اما حتی در آنجا، انواع مختلف فونتها چالشهایی را ایجاد میکنند. ژاپنی ها و چینی ها مشکل هستند زیرا تفاوت های ظریف زیادی در شخصیت ها دارند. چیزی که به نظر یک تغییر کوچک به نظر می رسد برای چشم آموزش ندیده می تواند معنی را کاملاً تغییر دهد.
چالش برانگیزترین بخش شغل شما چیست؟
پیچیدگی و ابهام زیادی وجود دارد، که چالش برانگیز است، بنابراین من باید یاد می گرفتم که چگونه آن را هدایت کنم. و سرعت آن بسیار سریع است. همه چیز به طور مداوم در حال حرکت است و شما باید سوالات زیادی بپرسید و با افراد زیادی صحبت کنید تا پاسخ های مورد نیاز خود را دریافت کنید.
وقتی صحبت از کدنویسی واقعی می شود، چه چیزی را شامل می شود؟
من بیشتر از یک زبان برنامه نویسی به نام C++ استفاده می کنم که به شما امکان می دهد مراحل پردازشی مورد نیاز برای رساندن شما را از تصویر به نمایش کلمات و ساختار اجرا کنید.