• Как мы помогали проводить медицинскую перепись в Республике Бангладеш



      Бангладеш – государство в юго-восточной Азии, занимает восьмое место в мире по численности населения (Россия, по данным Википедии, сейчас на 9 месте), граничит с Индией и Бирмой. Подавляющее большинство бангладешцев – сельские жители (135 миллионов из 160), и условия их жизни, мягко говоря, далеки от идеальных. Не во всех домохозяйствах есть доступ к питьевой воде, санитарные условия оставляют желать лучшего.

      Сегодняшний наш материал о том, как при помощи нашего ABBYY FlexiCapture министерство здравоохранения Бангладеш обработало результаты медицинской переписи — такая перепись нужна, чтобы принимать правильные стратегические решения в области здравоохранения.

      Читать дальше →
    • Cинхронный перевод: как это устроено

        От редактора. Сделать эту статью меня вдохновил Milfgard. Я вернулась с семинара, который всепомогающая редакция Хабрахабра провела для редакторов корпоративных блогов. Сергей рассказывал там, что интересная информация есть в любой компании, надо только уметь её раскопать. Я вернулась с семинара, открыла Facebook и увидела там короткую заметку о том, что ABBYY LS — одна из наших компаний, которая занимается лингвистическими услугами — организовала весь синхронный перевод на торгово-экономическом форуме, где участвовали Россия, Монголия и Китай. Вот бы раскопать, как устроен синхронный перевод на крупном международном форуме… В раскопках мне помогала наш новый автор AnastasiyaMaksimova, ну а что у нас с ней получилось — читайте ниже. luciana

        В некоторых вузах, где обучают будущих переводчиков, есть такое упражнение. Преподаватель начинает читать какой-то текст, а вы должны повторять за ним с отставанием в 3-4 секунды, ни на что не отвлекаясь. Просто повторять слово в слово, не добавляя ничего от себя и ничего не забывая. Неподготовленные «отваливаются» через минуту-две, те, кто покрепче, выдерживают минут десять. В какой-то момент твоё сознание съеживается до тонкой цепочки слов, ты ни о чем не думаешь, ничего не замечаешь вокруг себя — просто повторяешь.
        Читать дальше →
      • Оптимизация сравнения this с нулевым указателем в gcc 6.1



          Хорошие новостиTM ждут пользователей gcc при переходе на версию 6.1 Код такого вида (взят отсюда):

          class CWindow {
              HWND handle;
          public:
              HWND GetSafeHandle() const
              {
                   return this == 0 ? 0 : handle;
              }
          };

          «сломается» — при вызове метода через нулевой указатель на объект теперь может происходить разыменование нулевого указателя, потому что компилятор теперь может просто взять и удалить проверку. Код, конечно, с самого начала сломан, а gcc 6.1 его только немного доломает.
          Читать дальше →
        • Не так-то просто обнулять массивы в VC++ 2015

          • Перевод
          В чем разница между двумя этими определениями инициализированных локальных переменных С/С++?

          char buffer[32] = { 0 };
          char buffer[32] = {};

          Одно отличие состоит в том, что первое допустимо в языках С и С++, а второе — только в С++.

          Что ж, давайте тогда сосредоточимся на С++. Что означают эти два определения?

          Первое гласит: компилятор должен установить значение первого элемента массива в ноль и затем (грубо говоря) инициализировать нулями оставшиеся элементы массива. Второе означает, что компилятор должен инициализировать нулями весь массив.

          Эти определения несколько различаются, но по факту результат один — весь массив должен быть инициализирован нулями. Поэтому согласно правилу «as-if» в С++ они одинаковы. То есть любой достаточно современный оптимизатор должен генерировать идентичный код для каждого из этих фрагментов. Верно?
          Читать дальше →
        • Сегментация страницы — обзор

            Некоторое время назад (о, боже, уже год прошёл!) на вопрос, будет ли кому-то интересен обзор по современным методам сегментации изображения страницы документа, я получил положительный ответ (от massimus). И сегодня наконец-то решил этот обзор сделать.

            Вот как-то так страницу сегментируемНо для начала – маленькое отступление. Систему распознавания текста в наших продуктах можно описать очень просто. У нас есть страница с текстом, мы разбираем ее на текстовые блоки, затем блоки разбираем на отдельные строчки, строчки на слова, слова на буквы, буквы распознаем, дальше по цепочке собираем все обратно в текст страницы. Задача сегментации ставится примерно так: есть страница, надо её декомпозировать на текстовые и нетекстовые элементы.

            Дальше задачу можно уточнять и уточнять (здесь я уже вам поднадоел с разъяснениями, что правильная формулировка задачи — уже полшага к её решению; можете не сомневаться, коллег и начальство я достал этим ещё сильнее). Научные работники из разных стран, авторы приводимых методов, хотят заниматься наукой, а не казуистикой, поэтому формулируют свою задачу попроще:

            На странице есть текст и картинки. Требуется разбить на блоки текст и выделить картинки.
            Читать дальше →
          • От Англии до Таинственного острова вместе с героями романов Жюля Верна

              С постоянно растущим объемом текстовой информации и уровнем развития инструментов web-визуализации возникает желание все эти объемы визуализировать. Демонстрация возможности такой визуализации — задача, которая была поставлена перед командой студентов в рамках работы ABBYY Labs и курса “Промышленное программирование” на Факультете инноваций и высоких технологий (ФИВТ) в МФТИ (если вы ещё ни разу не читали в нашем блоге о студенческих лабораториях ABBYY, есть смысл вернуться вот к этому посту).

              Пятнадцати третьекурсникам-разработчикам и четырем четверокурсникам-менеджерам, студентам ФИВТ, было предложено за три месяца исследовать современные open-source решения визуализации структурированных данных и затем, выбрав для себя тему, визуализировать текстовую информацию на естественном языке. Переход от неструктурированной информации к структурированной предлагалось осуществить при помощи семантико-синтаксического парсера ABBYY Compreno.


              Читать дальше →
            • Как мы помогли крупному бразильскому банку справиться с последствиями деноминации

                Новейшая история денежного обращения в Бразилии – это череда деноминаций, первая из которых была проведена в 1942 году, а последняя – в 1994 году. К 1994 году национальная валюта Бразилии – крузейро – была настолько слабой, что в магазинах цены назначались в условных единицах, рядом с цифрами писали слово “real” – «настоящая» цена. В 1994 от лишних нулей решили избавиться, а слово “real”, к которому все привыкли, стало названием новой валюты – реал (впрочем, точно так же называлась денежная единица Бразилии до 1942 года).

                Сегодня мы расскажем, как один из наших продуктов – ABBYY FineReader Engine помог крупнейшему частному бразильскому банку справиться с последствиями деноминации. Не представляете, как такое может быть? Добро пожаловать под кат.
                Читать дальше →
              • А ваш AngularJS умеет работать на 3.5Mb ОЗУ?


                  В начале весны ABBYY LS совместно с Xerox запустили сервис для перевода документов Xerox Easy Translator Service. Изюминкой этого сервиса является приложение, запускаемое на МФУ Xerox и позволяющее отсканировать необходимое количество документов, дождаться перевода на один из выбранных 38 языков, произвести печать перевода — и все это не отходя от МФУ.

                  Приложение запускается на определенной серии МФУ Xerox на основе технологии Xerox ConnectKey с сенсорным экраном 800x480 точек. Аппаратная начинка МФУ зависит от конкретной модели, например, наша тестовая малютка Xerox WorkCentre 3655 имеет на борту 1Ghz Dual Core процессор и 2Gb оперативной памяти. Как ни удивительно, но МФУ имеет встроенный webkit-браузер, а наше приложение — это обычное html-приложение, разработанное на AngularJS 1.3.15.

                  О самом проекте мы писали в блоге раньше, а эта статья посвящена одному из увлекательных этапов проекта, а именно оптимизации AngularJS под работу на МФУ Xerox. Как оказалось на деле, платформа МФУ практически не накладывает никаких серьезных ограничений на разработку приложений, и они работают практически так же, как и на десктопных webkit-браузерах, за исключением одного НО —
                  Читать дальше →
                • Исправлена серьезная ошибка в официальной документации по настройке SSL в web-ролях Microsoft Azure


                    Хорошие новостиTM: есть небольшое, но важное развитие сюжета из этого поста, где много букв и долгая история, которая могла отвлечь часть целевой аудитории от необходимости проверить и исправить настройки. После вливания освежающих пул-запросов была обновлена официальная документация, показывающая, как правильно настраивать SSL в веб-ролях Microsoft Azure — один и два. Исправлена серьезная ошибка в примерах настроек.

                    Если вы разрабатываете или сопровождаете облачный сервис с веб-ролью, самое время проверить, что настройки SSL указаны правильно и вас не настигнет в самый неподходящий момент волна недовольства пользователей, у которых КРАЙНЕ НЕОЖИДАННО без ясных причин перестало устанавливаться защищенное соединение с вашим сервисом.
                    Читать дальше →
                  • Готическое распознавание: как мы помогали оцифровывать Национальную библиотеку Латвии



                      Сегодня мы хотим рассказать, как оцифровывали издания Национальной библиотеки Латвии. Если вы следите за нашим блогом, вы наверняка читали, как наши технологии помогают оцифровать литературное наследие разных библиотек, а также статьи, посвященные отдельным проектам — оцифровке в Сахалинской библиотеке, королевском ботаническом саду Эдинбурга и библиотеке Хартли. Сегодня история о том, как это было в Риге. Итак, Национальная библиотека Латвии – крупнейшая в стране, основана в 1919 году, обладает 4,5-миллионным собранием книг и документов, в том числе на латышском языке в уникальном готическом написании.
                      Читать дальше →
                    • Поиск линии корешка на фотографиях книжных разворотов

                      • Tutorial
                      При съемке книжного разворота с помощью камеры мобильного устройства неизбежно возникают некоторые из нижеперечисленных дефектов (а возможно, что и все сразу):

                      • цифровой шум,
                      • тени и блики,
                      • расфокусировка и смаз,
                      • перекос,
                      • перспективные искажения,
                      • кривые строки,
                      • лишние объекты в кадре.

                      Обработка таких фотографий для последующего OCR – довольно трудоемкая задача даже для человека, хорошо владеющего навыками работы в Photoshop. Как быть, если мы хотим это сделать автоматически, с помощью программы? Сразу оговоримся, что подробное описание всех этапов алгоритма сделало бы публикацию чересчур объемной, поэтому мы сейчас расскажем только о том, как решать одну из подзадач – найти линию корешка на таких фотографиях. О том, как устранять тени и блики на фотографиях мы уже рассказывали. Про устранение цифрового шума написано много статей. А про автоматическое исправление перспективы и кривых строк мы расскажем в следующий раз.
                      Читать дальше →
                    • Переводчик из машины, или как научить МФУ переводить документы

                        Привет, %username%!

                        Недавно мы, ABBYY LS, совместно с Xerox запустили Xerox Easy Translator Service — сервис, который позволяет получить машинный перевод документа – для этого его нужно отсканировать при помощи МФУ на базе технологии Xerox ConnectKey или же сфотографировать камерой телефона. Через эту же платформу можно заказать и профессиональный перевод.



                        Как это работает? Давай разбираться!
                        Читать дальше →
                        • +17
                        • 5,8k
                        • 2
                      • Распознавание текста из видеопотока: будущее мобильного OCR

                          В последнее время мы довольно часто рассказываем в блоге о наших технологиях распознавания, которые работают на мобильных устройствах и распознают фотографии, сделанные камерами этих устройств. Сейчас мы движемся дальше и учимся работать не с фотографиями, а с видеопотоком. И сегодня мы хотим рассказать вам чуть подробней, что это означает и где в повседневной жизни может пригодиться распознавание текста из видеопотока.

                          Кстати, сейчас мы расширяем команду, занимающуюся созданием продукта для распознавания текста из видеопотока на смартфонах. Если вы Android или iOS-разработчик с опытом написания высоконагруженных приложений и у вас есть желание разрабатывать новые технологии вместе с нами, спешите откликнуться на вакансию.

                          О видеопотоке и распознавании


                          Для начала скажем, с каким именно видеопотоком мы работаем.
                          Читать дальше →
                        • Как не самое удачное поведение по умолчанию может годами маскировать неправильную работу

                            МНОГО ДЕТАЛЕЙОчень удобно, когда благодаря правильно выбранным умолчаниям все работает само и «из коробки» и не нужно ничего настраивать. Эта история о том, что выбранные умолчания должны быть работоспособными всегда, в противном случае есть риск непредвиденного отказа после многих лет беспроблемной работы.

                            Мы столкнулись с недокументированным поведением Windows Server в web-ролях Microsoft Azure, которое долгие годы маскировало неправильную настройку нашего сервиса Cloud OCR SDK, пока в один не самый прекрасный момент не привело к серьезным проблемам у отдельных пользователей.
                            Читать дальше →
                          • Мобильный OCR. Как всё начиналось

                              Перенос OCR-технологий (технологий оптического распознавания) с ПК на мобильные устройства обсуждался, пожалуй, с момента их появления. Ещё в конце 90-х, когда «умные» устройства можно было пересчитать по пальцам, мы задумывались о создании программы, извлекающей данные из визитной карточки, – Business Card Reader, или сокращённо BCR. Эта идея, что называется, витала в воздухе, но ни возможности камер, ни вычислительная мощность устройств не позволяли тогда реализовать её. Выбирать особо не приходилось: либо обычный телефон с хорошей камерой «для обычных людей», либо продвинутый бизнес-наладонник «для профессионалов» (а зачем вообще бизнесменам нужны камеры на устройстве — себя, что ли, фотографировать?)

                              Но время шло, запросы людей росли, и худо-бедно приличные камеры начали появляться во всех устройствах. Как только возможности устройств «подтянулись», разработчики портировали нашу технологию распознавания, учитывая массу ограничений, свойственных мобильным операционным системам: размер библиотек (попробуй впихнуть OCR с базой изображений в 500 килобайт на носителе), скорость работы на малопроизводительных процессорах. Ещё пришлось учитывать, что распознавать предстояло не идеальные изображения со сканера, а фотографии, сделанные зачастую с перекосами, в условиях плохого освещения и т. п.
                              Читать дальше →
                            • ABBYY: экологичность++. Четыре года спустя

                                Несколько лет назад в нашем блоге был пост об экологических инициативах, которые мы придумали и сделали у нас в ABBYY. Поскольку сотрудники у нас неугомонные инициативные всё время придумывают что-то новое, с тех пор возникли новые эко-проекты, и мы решили вернуться к этой теме. Если у вас в офисе тоже заботятся об экологии, давайте обмениваться опытом. Расскажите в комментариях, как у вас. Кстати, не знаете ли, когда у нас все-таки начнут перерабатывать использованные батарейки?
                                Читать дальше →
                              • Продвигаем мобильные приложения в AppStore и Google Play: как правильно использовать методику featuring

                                  В этой статье мы бы хотели обратить внимание разработчиков приложений на такой неоднозначный механизм продвижения, как фичеринг в магазинах мобильных приложений (AppStore и Google Play). Да, нашему редактору тоже не нравится слово «фичеринг» (featuring), но адекватного русского аналога нет, поэтому будем использовать кальку с английского.

                                  Apple или Google featuring – это методика, когда сам Apple или Google выбирает приложения, соответствующие текущим маркетинговым приоритетам этих компаний. Такие приложения выделяются на определенный период с помощью внутренних маркетинговых инструментов App Store/Google Play (прежде всего, это размещение баннера на главной странице App Store/Google Play, или размещение в тематичиской подборке на «видном месте»).
                                  Читать дальше →
                                  • +13
                                  • 12,9k
                                  • 2
                                • Как непродуманные предупреждения компиляторов помогают портить совершенно правильный код

                                    Это пост о сложностях взаимодействия искусственного и естественного интеллекта. Современные компиляторы имеют довольно развитые средства статического анализа, которые умеют выдавать предупреждения на разные подозрительные конструкции в коде. В теории эти предупреждения должны помочь разработчикам делать меньше ошибок в коде.

                                    На практике далеко не всегда предупреждения компилятора одинаково полезны. Зачастую они не помогают разработчикам, а мешают им и могут провоцировать на исправление совершенно правильного кода, т.е. на нарушение правила «работает — не трогай».
                                    Читать дальше →
                                  • От FineReader к решениям для ввода данных: как начиналось направление DataCapture в ABBYY



                                      Многие знают ABBYY, прежде всего, благодаря нашим массовым программам – Lingvo, FineReader, различным мобильным приложениям. Но при этом очень важным для нас было и остается корпоративное направление. В частности, на базе наших технологий распознавания текстов мы создали решения в области потокового ввода документов и данных. Они нужны всем организациям, имеющим дело с большими объемами документов – от банков и страховых компаний, до государственных ведомств, нефтяных, энергетических, ритейл и многих других компаний. Недавно этому направлению в ABBYY исполнилось 20 лет.

                                      В жизни любой технологической компании бывают периоды, когда бал правят разработчики.
                                      Читать дальше →
                                      • +23
                                      • 5,9k
                                      • 3
                                    • Как камерой смартфона сделать фотографии, пригодные для OCR, или кое-что об ABBYY Mobile Imaging SDK

                                        Количество программ — мобильных клиентов, привязанных к различным системам автоматизации деятельности предприятий, постоянно растёт. Согласно исследованию компании IDC, к 2016 году оно увеличится в 4 раза (по сравнению с 2014 годом). Конечно, ABBYY не могла остаться в стороне от этих тенденций, и у нас есть мобильные продукты, ориентированные на корпоративных пользователей. Об одном из них – ABBYY Mobile Imaging SDK (MI SDK) – мы ещё ни разу не рассказывали в блоге, исправляемся.

                                        Наши пользователи привыкли, что мобильные продукты ABBYY – это либо про словари, либо про распознавание. Сразу оговоримся – в ABBYY Mobile Imaging SDK нет ни того, ни другого. Спрашивается, почему нам понадобилось выпускать такое приложение? Ответ – конечно, чтобы продать OCR ещё большему числу клиентов :). Ведь ABBYY Mobile Imaging SDK обычно используется в связке с нашими «корпоративными» решениями для распознавания данных (например, ABBYY Recognition Server) или извлечения данных (например, ABBYY FlexiCapture). Этот небольшой продукт призван помочь нашим «большим» решениям работать лучше, распознавать точнее.

                                        Жизнь изменилась, и если раньше основным устройством, с которого мы получали изображение для распознавания, был сканер, то теперь его всё чаще заменяет мобильный телефон. Чем он отличается от сканера? Конечно, тем, что получить с него изображение хорошего качества гораздо сложнее (разумеется, в данном случае хорошее качество = достаточное для того, чтобы наши OCR-технологии могли распознать текст на фото).
                                        Читать дальше →
                                        • +23
                                        • 10,3k
                                        • 9

                                      Самое читаемое