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 на мобильных устройствах:



    Проект все еще находится в стадии тестирования, но даже на текущий момент он достаточно хорош чтобы использовать его в работе. Можно конечно придираться к деталям и возможным тормозам, но этот продукт, насколько я знаю, единственный в своем роде и он уже экономит мое время.
    Поделиться публикацией
    Похожие публикации
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 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
                  Жалко для 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

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