Full-Stack PHP/JS developer
0,0
рейтинг
14 ноября 2015 в 18:46

Разработка → Project Naptha — выделяй, копируй и переводи тексты с любых картинок

На hh/gt не нашел ни единого упоминания о этом замечательном расширении для Google Chrome. Хочу поделиться им с сообществом, потому как в последнее время оно помогает мне каждодневно экономить минут 10 — уж очень много скриншотов из социальных сетей на разных языках которые с помощью этого плагина переводятся в два клика.

Встречайте — Project Naptha (Chrome webstore).

image

Список возможностей:
  • копировать текст с картинки
  • выделить весь текст
  • гуглить выделенный текст
  • переводить выделенное (бета)
  • проговорить (TTS) выделенное


Проект был создан Kevin Kwok и представляет собой систему OCR (Optical character recognition), реализованную в JavaScript в виде браузерного расширения.

Project Naptha, несмотря на простоту для конечного пользователя, довольно сложный внутри.

Прежде всего, перед тем как непосредственно распознавание текста началось, нужно определить где собственно находятся блоки с текстом на картинке. Довольно нетривиальная задача, учитывая то, что текст может располагаться поверх совершенно разных фонов и сам по себе иметь разные цвета. Для реализации этого механизма Naptha использует проект Майкрософта Stroke Width Transform (SWT) — эффективный алгоритм, который отталкивается от того, что шрифты обычно имеют примерно равномерную толщину линий (font-weight) и, следовательно, легко отделить блоки текста от остального шума на картинке.

Оригинал:
image

После SWT:
image

Naptha конечно же не распознает каждую картинку на открытой странице — это бы было крайне расточительно по отношению к ресурсам. Вместо этого начинает распознавание расположения блоков текста только после… нет, не наведения мыши на картинку (mouseover) как вы могли подумать, а предположения о том, что курсор будет над картинкой, основываясь на его движении. Дальше Web Workers (мультипоточность в фоне) работают над распознаванием расположения текста на картинке без какого-либо ощутимого торможения браузера.

Когда вы выбрали блок текста и клинкули “Copy Text” (Ctrl+C), он посылается на сервер с Ocrad OCR — движком с открытым кодом для распознавания текста. Ocrad попытается распознать кусок растровой картинки в текст, что может занять пару секунд, и после завершения вернет распознанный текст, который можно будет вставить обычным образом куда угодно (Ctrl+V).

Функция перевода пока что в бете, для того чтобы ее попробовать нужно отправить запрос на их электронный адрес. Предполагается что она будет работать схоже c уже работающим аналогом в Google Translate на мобильных устройствах:



Проект все еще находится в стадии тестирования, но даже на текущий момент он достаточно хорош чтобы использовать его в работе. Можно конечно придираться к деталям и возможным тормозам, но этот продукт, насколько я знаю, единственный в своем роде и он уже экономит мое время.
@limonte
карма
68,7
рейтинг 0,0
Full-Stack PHP/JS developer
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (30)

  • +2
    спасибо, уже юзаю!;)
  • +2
    Главный вопрос распознование картинки где происходит, на сервере или на локальном компьютере?
    • +4
      На сервере.
      Когда вы выбрали блок текста и клинкули “Copy Text” (Ctrl+C), он посылается на сервер с Ocrad OCR — движком с открытым кодом для распознавания текста. Ocrad попытается распознать кусок растровой картинки в текст, что может занять пару секунд, и после завершения вернет распознанный текст, который можно будет вставить обычным образом куда угодно (Ctrl+V).
    • –3
      Если бы вы касались темы расширений таких вопросов бы не задавали. На клиенте хрома это сделать невозможно, точнее возможно, но через поганые приложения — читай извращения, которые как 5 колесо в разработке расширений, на лисе попроще. Бесит, не могу.
      • 0
        Вот, распознавание цифр на клиенте: myselph.de/neuralNet.html
        Могли бы и пояснить, почему невозможно: ограничение CORS.
        • +2
          да, следует пояснить. Вот есть к примеру kdzwinel.github.io/JS-OCR-demo
          Вот что, на js медленно работает? Ну не сказал бы. Правда точность слабовата. Но в общем есть потенциал распознавать на клиенте.

          Я про то, что хром, чтобы получить доступ к чему нибудь кроме урлов в сети и пары кнопок в интерфейсе браузера, нативному коду или службе на компе пользователя требует писать так называемые приложения. Что выглядит каким то убогим корявым непонятной пользователю вещью. С FF немного легче благодаря c-types однако чтобы лис не вис (т.к один поток работы интерфейса и кода расширения ) без Palant'а автора AdBlockPlus на StackOverflow не обойтись. то есть все это первопроходчество какое то. :-)
        • +1
          CORS кстати, не причем, на расширения он не распространяется. А вот Stroke Width Transform (SWT) на js боюсь напряжно выйдет, понятия не имею как он работает правда. С handwriting куда проще, там же тупняк сразу бинаризованный идеальный образец.
          Вобщем на js переписать все, мне кажется кровь из глаз у разработчиков пойдет. А нативные либы заливать — гемор с расширениями и кроссплатформенностью. нужно же 3 платформы поддерживать минимум. Винда линух макось. Сейчас КУДА проще.
          • 0
            CORS кстати, не причем, на расширения он не распространяется.
            Да, вы правы, нашел на stackoverflow
          • 0
            Если с CORS проблем в расширении нет, то не понятно, почему
            На клиенте хрома это сделать невозможно
  • –2
    Жаль, что с русским текстом не работает.
    • +2
      С русским текстом прекрасно работает, только ему нужно подсказать, что это русский:

      image
  • 0
    На hh/gt не нашел ни единого упоминания о этом замечательном расширении для Google Chrome.

    А я нашёл — Расширение к браузеру для извлечения текста из изображений )
    Но согласен, расширение интересное.
    • 0
      My bad, искал по полному названию — habrahabr.ru/search/?q=Project+Naptha и как-то не подумал проверить по половине.
      • 0
        Та ничего, думаю, многие могли не видеть тот пост, а приложение действительно удобное)
      • 0
        Еще можно в гугле искать: site:habrahabr.ru OR site:geektimes.ru Project Naptha
  • 0
    Жалко для Firefox нет, обещали прислать письмо, давно жду.
    Удобнее было бы конечно если бы распознавал на локальном компьютере
    • 0
      а чем удобнее?) пинги?
      • 0
        Пинги, траффик, нагрузка на сервер. Блокировки.
        • +1
          а расширение под 200 метров, сложности с обновлением, подарок от RAM в пол гига, вероятные висы — не? :-)
          • +3
            Полгига рамы в случае современных браузеров это в пределах погрешности ;)
            А вообще может вы и правы, возможно и правда такое дополнение слишком тяжелым было. Моё мнение похоже несколько предвзято, потому что долго приходилось пользоваться достаточно мощным компьютером с медленным и нестабильным интернетом, поэтому тяну всё в офлайн…
          • 0
            Гугловцы вроде сделали чтобы на телефоне распознавашка работала
  • +1
    Очень круто, спасибо! Осталось дождаться расширения, добавляющего улыбки на лица на картинках или следящие со всех картинок за мышкой глаза. Думаю, как то можно отделение текста применить для сжатия изображений, а там недалеко и до deep learning video compression(например, что-то такое) и до deep learning interactive video compression(своеобразный аналог программы deep.exe из вселенной Лабиринта отражений, только с обработкой на компьютере, а не на мозгах пользователей).
  • 0
    Вроде же у яндекса перевод текста с наведением камеры есть?
  • 0
    Не все так удачно, или я что то делаю не так?image
    • +1
      image
      • +3
        Вы мне мозг сломали своими рекурсивными скриншотами :)

        Duke565 — установите английский язык в меню Language, очевидно что плагин пытается распознать русский.
      • +2
        Все пошло хорошо
        • 0
          У меня тоже нормально работает (только текст почему-то выделился в форме параллелограмма):
  • 0
    Хм, под линуксом и хромиумом что то не ставится:
    «UTILITY_PROCESS_CRASHED_WHILE_TRYING_TO_INSTALL»
    • 0
      У меня тоже линукс, установилось без проблем. Какая версия хромиума? С наскоку вот что нагуглил askubuntu.com/a/582710/389908

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.