БЕССЛЕДНЫЙ ЗАХВАТ ИЗОБРАЖЕНИЯ С ПОМОЩЬЮ МОБИЛЬНОГО УСТРОЙСТВА
TRACELESS IMAGE CAPTURE, USING MOBILE DEVICE

ОБЛАСТЬ ТЕХНИКИ
[0001] Реализации изобретения в целом относятся к обработке изображений и, более конкретно, к системам и способам захвата изображения с помощью мобильного устройства.
УРОВЕНЬ ТЕХНИКИ
[0002] В настоящее время для захвата документов можно использовать мобильные устройства. Однако различные методы захвата документов мобильными устройствами подразумевают действия пользователя, такие как ручная регулировка освещения, стабилизация мобильного устройства и т.д. Настоящее изобретение описывает автоматизированный захват изображений мобильного устройства.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
[0003] Реализации настоящего изобретения описывают механизмы захвата изображения мобильным устройством, содержащие: прием приложением для захвата видео, запущенным на мобильном устройстве, видеопотока с камеры мобильного устройства; идентификацию конкретного кадра видеопотока; генерацию множества гипотез, определяющих границы изображения в конкретном кадре; выбор нейронной сетью конкретной гипотезы среди множества гипотез; создание изображения-кандидата путем применения конкретной гипотезы к конкретному кадру; определение значения показателя качества изображения-кандидата; определение того, что значение показателя качества изображения-кандидата превышает одно или несколько значений показателя качества одного или нескольких ранее обработанных изображений, извлеченных из видеопотока; при этом приложение для захвата изображений не требует установки. В некоторых вариантах реализации способ дополнительно содержит выполнение оптического распознавания символов документа, изображенного на изображении-кандидате, при этом оптическое распознавание символов документа выполняется на мобильном устройстве; обрезка изображения-кандидата; отображение изображения-кандидата на экране мобильного устройства; при этом прием видеопотока выполняется в ответ на прием команды через элемент управления веб-браузера; при этом прием видеопотока выполняется в ответ на прием команды через пользовательский интерфейс управления мобильного устройства.
[0004] Энергонезависимый машиночитаемый носитель данных изобретения включает в себя инструкции, которые при доступе к устройству обработки заставляют устройство обработки: принимать с помощью приложения захвата видео, запущенного на мобильном устройстве, видеопоток с камеры мобильного устройства; идентифицировать конкретный кадр видеопотока; генерировать множество гипотез, определяющих границы изображения в конкретном кадре; выбирать с помощью нейронной сети конкретную гипотезу из множества гипотез; создавать изображение-кандидат, применив конкретную гипотезу к конкретному кадру; определять значение показателя качества изображения-кандидата; определять, что значение показателя качества изображения-кандидата превышает одно или несколько значений показателя качества одного или нескольких ранее обработанных изображений, извлеченных из видеопотока; при этом приложение для захвата изображений не требует установки.
В некоторых вариантах реализации инструкции энергонезависимого машиночитаемого носителя информации дополнительно побуждают устройство обработки выполнять оптическое распознавание символов документа, изображенного на изображении-кандидате, при этом оптическое распознавание символов документа выполняется на мобильном устройстве; кадрировать изображение-кандидат; отображать изображение-кандидат на экране мобильного устройства; при этом прием видеопотока выполняется в ответ на прием команды через элемент управления веб-браузера; при этом прием видеопотока выполняется в ответ на прием команды через пользовательский интерфейс управления мобильного устройства.
[0005] Система изобретения включает в себя память и устройство обработки, функционально связанное с памятью, устройство обработки для приема приложением для видеозахвата, запущенным на мобильном устройстве, видеопотока с камеры мобильного устройства; идентификацию конкретного кадра видеопотока; генерацию множества гипотез, определяющих границы изображения в конкретном кадре; выбор с помощью нейронной сети конкретной гипотезы из множества гипотез; создание изображения-кандидата с применением конкретной гипотезы к конкретному кадру; определение значения показателя качества изображения-кандидата; определение того, что значение показателя качества изображения-кандидата превышает одно или несколько значений показателя качества одного или нескольких ранее обработанных изображений, извлеченных из видеопотока; при этом приложение для захвата изображений не требует установки.
В некоторых вариантах реализации система дополнительно содержит выполнение оптического распознавания символов документа, изображенного на изображении-кандидате, при этом оптическое распознавание символов документа выполняется на мобильном устройстве; обрезку изображения-кандидата; отображение изображения-кандидата на экране мобильного устройства; при этом прием видеопотока выполняется в ответ на прием команды через элемент управления веб-браузера; при этом прием видеопотока выполняется в ответ на прием команды через пользовательский интерфейс управления мобильного устройства.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0006] Изобретение может быть лучше изучено благодаря детальному описанию, данному ниже, и благодаря прилагающимся иллюстрациям, показывающим различные варианты применения изобретения. Изображения, тем не менее, не должны восприниматься как единственно возможные варианты применения изобретения, а приведены лишь для объяснения и понимания.
[0007] На ФИГ. 1 представлено схематическое изображение мобильного устройства в соответствии с одним или несколькими вариантами реализации настоящего изобретения.
[0008] На ФИГ. 2 представлена блок-схема, иллюстрирующая один примерный способ захвата изображения в соответствии с некоторыми вариантами реализации настоящего изобретения.
[0009] На ФИГ. 3 представлена блок-схема, иллюстрирующая примерный способ идентификации границ изображения в соответствии с некоторыми вариантами реализациями настоящего изобретения.
[0010] На ФИГ. 4 представлено схематическое изображение структуры нейронной сети, работающей в соответствии с одним или несколькими вариантами реализации настоящего изобретения.
[0011] На ФИГ. 5 представлена блок-схема примерной компьютерной системы, в которой может применяться настоящее изобретение.
[0012] На ФИГ. 6 представлена блок-схема компьютерной системы в соответствии с некоторыми вариантами реализации настоящего изобретения.
ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ РЕАЛИЗАЦИИ
[0013] Описаны системы и способы мобильного захвата изображений. Различные способы захвата изображения мобильным устройством включают важные действия пользователя, такие как ручная настройка освещенности, ожидание стабилизации мобильного устройства, чтобы избежать размытия и бликов на снимаемом изображении. Тщательное позиционирование мобильного устройства по отношению к снимаемому изображению также может иметь решающее значение для успешного захвата изображения. Все части изображения должны быть видны камере мобильного устройства. Мобильное устройство должно располагаться близко к центру изображения и желательно параллельно поверхности изображения, чтобы избежать значительных искажений. Часто пользователю нужно сделать несколько снимков, чтобы выбрать наиболее подходящий кадр с минимальным количеством проблем.
[0014] В большинстве случаев для захвата изображения мобильным устройством пользователю требуется установить на мобильное устройство специализированное приложение для получения изображений. Однако полученные изображения часто бывают низкого качества. Кроме того, многие пользователи не хотят устанавливать на свои устройства другое приложение.
[0015] Варианты реализации изобретения устраняют вышеупомянутые и другие недостатки, обеспечивая механизмы для автоматического захвата изображения. Согласно настоящему изобретению, захват изображения выполняется путем анализа множества кадров в видеопотоке, захваченном камерой, и выбора кадра, который подходит для обработки изображения, в соответствии с набором конфигурируемых пользователем или автоматически определенных требований.
[0016] Одним из аспектов настоящего изобретения является автоматизация захвата изображения. В соответствии с использованием в настоящем изобретении захват изображения автоматизирован, когда последовательность видеокадров, захваченных камерой, анализируется в реальном времени без записи видеопотока. Если анализ показывает, что видеокадр имеет приемлемое качество, такой видеокадр записывается автоматически. Впоследствии записанное изображение может быть обрезано и дополнительно обработано для устранения искажений и других недостатков.
[0017] Другой вариант реализации настоящего изобретения заключается в том, что все взаимодействия с камерой мобильного устройства, а также анализ видеопотока, идентификация подходящего видеокадра и передача захваченного изображения на другое устройство выполняются приложением, не требующим установки. Приложение, не требующее установки, - это приложение, которое не устанавливается на мобильное устройство заранее, а вместо этого загружается мобильным устройством только в ответ на действие пользователя в окне браузера; после завершения приложение автоматически удаляется с мобильного устройства. Например, такое приложение может быть загружено мобильным устройством, когда пользователь активирует конкретный элемент управления графическим интерфейсом пользователя (GUI) на странице браузера. После завершения захвата изображения это приложение с нулевым объемом памяти удаляется с мобильного устройства.
[0018] Используемый термин «кадр» может относиться к изображению, захваченному камерой мобильного устройства в реальном времени, независимо от того, записывается ли захваченный видеопоток, который включает в себя последовательность кадров, в реальном времени или асинхронно относительно захвата.
[0019] В данном контексте «мобильное устройство» может относиться к портативному компьютеру, такому как мобильный телефон, смартфон, фаблет, планшетный компьютер, нетбук, цифровой медиаплеер, портативная игровая консоль, умные часы, персональное устройство цифрового помощника, цифровой помощник предприятия, ноутбук, цифровая видеокамера, цифровой фотоаппарат, цифровая видеокамера. Некоторые мобильные устройства могут иметь сенсорный экран, обеспечивающий интерфейс сенсорного экрана цифровыми кнопками и цифровой клавиатурой. Некоторые мобильные устройства могут иметь физические кнопки вместе с физической клавиатурой. Некоторые мобильные устройства могут иметь возможность подключаться для передачи цифровых данных через один или несколько интерфейсов ввода/вывода (I/O) (например, один или несколько сетевых беспроводных и/или проводных сетевых интерфейсов, которые могут использоваться для установления сеансов связи с одним или несколькими серверами и/или одноранговыми устройствами через одну или несколько сетей, содержащих локальные и/или глобальные сети, такие как Интернет).
[0020] Описанные способы позволяют осуществлять автоматический захват изображения с помощью искусственного интеллекта. Эти методы могут включать обучение нейронной сети для определения подходящей границы изображения в видеокадре. Нейронная сеть может включать множество нейронов, которые связаны с обучаемыми весами и смещениями. Нейроны могут быть организованы в слои. Нейронная сеть может быть обучена на обучающей выборке данных изображений с корректно идентифицированными границами изображений. Например, набор обучающих данных может включать в себя примеры изображений и подходящие границы для этих изображений в качестве результатов обучения.
[0021] Нейронная сеть может генерировать выходное изображение для каждого исходного обучающего изображения. Выходное изображение нейронной сети может быть сопоставлено с целевым выходным результатом, связанным с исходным обучающим изображением, как установлено обучающим набором данных, и ошибка может распространиться на предыдущие слои нейронной сети, чьи параметры (такие как веса и смещения нейронов) могут быть изменены соответствующим образом. Во время обучения нейронной сети параметры нейронной сети могут быть изменены для оптимизации точности прогноза. После обучения нейронная сеть может быть использована для автоматического захвата изображения.
[0022] На ФИГ. 1 представлено примерное изображение мобильного устройства 102, имеющее экран 104 и элемент 106 управления камерой для запуска потоковой передачи видео и записи видео камерой мобильного устройства 102. В некоторых вариантах реализации настоящего изобретения управление камерой 106 может осуществляться виртуальной кнопкой, выполненной на сенсорном экране мобильного устройства 102. В других вариантах реализации элемент 106 управления камерой может представлять собой физическую кнопку. Экран 104 может воспроизводить изображения (например, видеокадры), которые захватываются камерой мобильного устройства.
[0023] На ФИГ. 2 представлена блок-схема, иллюстрирующая один примерный способ 200 захвата изображения в соответствии с некоторыми вариантами реализации настоящего изобретения. Способ 200 может быть выполнен путем обработки логики, которая может включать оборудование (например, схемотехника, специализированная логика, программируемая логика, микрокод и так далее), ПО (например, инструкции, выполненные на устройстве обработки), прошивку или их комбинацию. В одном из вариантов применения способ 200 может быть выполнен устройством обработки (например, устройство обработки 602 на ФИГ. 6) компьютерного устройства 510 и/или сервера 550, как описано в соответствии с ФИГ. 5. В некоторых вариантах применения способ 200 может выполняться одним потоком обработки. В другом варианте способ 200 может выполняться двумя или более потоками обработки, каждый из которых выполняет одну или несколько отдельных функций, процедур, подпрограмм или операций способа. Например, потоки обработки, реализующие способ 200, могут быть синхронизированы (например, с помощью семафоров, критических секций и/или других механизмов синхронизации потоков). В другом варианте применения потоки обработки, осуществляющие способ 200, могут выполняться асинхронно по отношению друг к другу. Поэтому если на ФИГ. 2 и связанном с ней описании перечислены операции способа 200 в конкретном порядке, различные варианты применения способа могут выполнять по меньшей мере некоторые из описанных операций параллельно и/или в произвольно выбранном порядке.
[0024] На шаге 201 пользователь мобильного устройства 102 открывает вебстраницу в браузере мобильного устройства. На веб-странице содержится элемент управления (например, визуальный элемент управления или голосовое управление), который позволяет пользователю запускать приложение, имеющее возможности управления камерой. В соответствии с настоящим изобретением это приложение не требует установки. Соответственно, когда веб-страница в конечном итоге закрывается пользователем или иным образом завершается, приложение автоматически удаляется с мобильного устройства 102.
[0025] На шаге 202 пользователь активирует элемент управления на вебстранице. В ответ на активацию элемента управления камера мобильного устройства 102 активируется 203 приложением, не требующим установки. Пользователь направляет объектив камеры мобильного устройства на объект, который нужно захватить, и, когда камера захватывает последовательность видеокадров, приложение, не требующее установки, анализирует видеопоток. В некоторых вариантах реализации, когда камера мобильного устройства 102 активна, приложение, не требующее установки, автоматически начинает анализ видеопотока, когда изображение документа появляется в объективе камеры.
[0026] На шаге 204 система настоящего изобретения идентифицирует конкретный кадр видеопотока (например, последний захваченный кадр на текущий момент времени). В некоторых вариантах реализации настоящего изобретения система преобразует идентифицированный кадр в видео HTML и отображает его пользователю в реальном времени с помощью экрана 104.
[0027] В некоторых вариантах реализации настоящего изобретения полученные видеокадры анализируются в реальном времени без предварительной записи видеопотока или кадра. Соответственно, обработанные видеокадры могут быть отбракованы (например, с помощью кольцевого буфера в памяти мобильного вычислительного устройства для хранения полученных видеокадров), так что (N+1)-й кадр заменяет ранее записанный первый кадр, при условии, что емкость буфера позволяет хранить N кадров, где N - предопределенное целочисленное значение.
[0028] В других вариантах реализации настоящего изобретения видеопоток записывается, то есть сохраняется в энергозависимой и/или энергонезависимой памяти, а затем может обрабатываться асинхронно по отношению к записи. Записанный видеопоток может быть получен из локальной памяти мобильного вычислительного устройства или с удаленного сервера или однорангового мобильного вычислительного устройства через проводное или беспроводное сетевое соединение.
[0029] После идентификации конкретного кадра (204) начинается анализ кадра. Кадр анализируется, чтобы определить качество изображения документа, содержащегося в кадре, и определить границы изображения документа.
[0030] «Границы изображения» - это контуры, очерчивающие края области в кадре, которые будут дополнительно обрабатываться приложением (например, путем выполнения оптического распознавания символов текста, содержащегося в изображенном документе). Если изображение является страницей документа, границы изображения образуют прямоугольник. Границы изображения образуются «основными линиями». В случае прямоугольного изображения количество основных линий равно четырем.
[0031] На шаге 205 конкретный кадр анализируется детектором сдвига. Если сдвиг конкретного кадра превышает заранее определенный порог, конкретный кадр отбраковывается и другой кадр идентифицируется аналогично этапу 204.
[0032] На шаге 206 конкретный кадр анализируется для идентификации границы изображения в кадре. Конкретные этапы процесса 206 идентификации границы более подробно описаны ниже со ссылкой на ФИГ. 3.
[0033] Для определения границы изображения в кадре система преобразует кадр в оттенки серого (301).
[0034] Цветные изображения часто хранятся в виде трех отдельных матриц изображений: одна хранит количество красного (R) в каждом пикселе, другая - количество зеленого (G), а третья - количество синего (В), так называемый формат RGB. При преобразовании изображения RGB в оттенки серого значения RGB для каждого пикселя преобразуются в одно значение, отражающее яркость этого пикселя. В некоторых вариантах реализации это преобразование принимает среднее значение вклада каждого канала: (R+G+B)/3. Однако поскольку в воспринимаемой яркости часто преобладает зеленый компонент, в другом, более «ориентированном на человека» варианте реализации должно приниматься средневзвешенное значение, например: 0,3R+0,59G+0,11 В или другое средневзвешенное значение.
[0035] На шаге 302 система, согласно настоящему изобретению, сжимает выбранный кадр в оттенках серого. В некоторых вариантах реализации сжатие может выполняться с использованием билинейной интерполяции. Сжатие выполняется до уровня, когда мелкие несущественные детали (такие как царапины, шум, подтеки) стираются, но существенные детали изображения по-прежнему хорошо видны. В некоторых вариантах реализации кадр сжимается до заранее определенного размера, например, до 1-3 мегапикселей. В некоторых вариантах реализации кадр сжимается до размера 256 × 256 пикселей, то есть до 0,07 мегапикселя.
[0036] В некоторых вариантах реализации кадр сжимается до размера квадрата, сторона которого равна степени 2. Подобные сжатия особенно удобны, если преобразование Хафа используется в дальнейшей обработке конкретного кадра. Сжатие выбранного кадра значительно сокращает время, необходимое для анализа кадра, и, как следствие, позволяет осуществить захват изображения в реальном времени из видеопотока.
[0037] В некоторых вариантах реализации настоящего изобретения к конкретному кадру могут применяться другие операции предварительной обработки, такие как медианный фильтр 3×3 или детектор границ Кэнни.
[0038] На шаге 303 система, согласно настоящему изобретению, обнаруживает границы изображения в определенном кадре. В некоторых вариантах реализации для обнаружения линий границы используется быстрое преобразование Хафа. В некоторых вариантах реализации быстрое преобразование Хафа применяется к конкретному кадру как минимум дважды для обнаружения горизонтальных и вертикальных линий. Полученное изображение сканируется для обнаружения локальных максимумов. Каждый обнаруженный максимум определяет потенциальную границу изображения.
[0039] В некоторых вариантах реализации настоящего изобретения система классифицирует обнаруженные максимумы, чтобы идентифицировать максимумы, соответствующие границам изображения. Эта классификация выполняется линейным классификатором, который определяет уровень достоверности для каждого обнаруженного максимума, который соответствует границе изображения. Выявляются максимумы с уровнями уверенности, превышающие заранее определенный порог, и соответствующие им линии сортируются в группы по потенциальной границе изображения. Например, для прямоугольника идентифицированные линии сортируются по четырем группам: группа верхней границы, группа нижней границы, группа левой границы и группа правой границы.
[0040] В некоторых вариантах реализации настоящего изобретения получаемые группы линий фильтруются для удаления дубликатов (линий, которые слишком похожи друг на друга). Благодаря методу идентификации линии с помощью преобразования Хафа, одна линия генерирует набор локальных максимумов, таких как (х, у), (х-1, у+2), (х-2, у+4), …. Линии, полученные в результате этих локальных максимумов, пересекают верхнюю и нижнюю границы изображения в координатах [хВерх, хНиз], [хВерх+1, хНиз+1], [хВерх+1, хНиз-1], … соответственно. Поскольку эти линии очень похожи, все они получат одинаковые уровни уверенности от классификатора.
[0041] В некоторых вариантах реализации настоящего изобретения, чтобы определить, не слишком ли похожи две линии, применяется следующий эвристический тест: для каждой пары линий система определяет расстояние между точками, где эти линии пересекают противоположные границы изображения. Если эти расстояния ниже заданного порога, линии считаются слишком похожими и одна из них исключается из группы потенциальных линий границы.
[0042] На основе этих потенциальных линий границы система может генерировать гипотезы прямоугольника границы. Для каждой сгенерированной гипотезы может быть вычислен уровень уверенности, соответствующий уровням уверенности линий, образующих прямоугольник в соответствии с этой гипотезой. В некоторых вариантах реализации гипотезы ранжируются по уровням уверенности.
[0043] Набор гипотез может быть отфильтрован для исключения наборов линий, которые могут не образовывать подходящий прямоугольник. В некоторых вариантах реализации система также отфильтровывает гипотезы о прямоугольниках с маловероятной геометрией. В системе могут использоваться следующие параметры для определения неподходящих прямоугольников: углы вершин, площадь полученного прямоугольника, размеры сторон и другие геометрические параметры. Эти параметры могут быть проанализированы для выявления неправдоподобных гипотез. В некоторых вариантах реализации система оценивает такие геометрические параметры относительно заранее определенных пороговых параметров.
[0044] На шаге 304 система может дополнительно фильтровать набор гипотез на основе геометрических корреляций и весов точек, расположенных на линиях прямоугольников. В некоторых вариантах реализации фильтрация выполняется линейным классификатором. Система может дополнительно фильтровать оставшиеся гипотезы, чтобы исключить по существу аналогичные гипотезы.
[0045] На шаге 305 система может дополнительно оценить оставшиеся гипотезы с помощью нейронной сети. В некоторых вариантах реализации настоящего изобретения система может дополнительно оценивать углы прямоугольников с помощью нейронной сети.
[0046] На ФИГ. 4 схематично показана структура нейронной сети, работающей в соответствии с одним или несколькими вариантами реализации настоящего изобретения. Как показано на ФИГ. 4, нейронная сеть 400 может быть представлена непериодической нейронной сетью с прямой связью, включающей в себя входной слой 410, выходной слой 420 и один или несколько скрытых слоев 430, соединяющих входной слой 410 и выходной слой 420. Выходной слой 420 может иметь то же количество узлов, что и входной слой 410, так что сеть 400 может быть обучена неконтролируемым процессом обучения для восстановления своих собственных входных данных.
[0047] Нейронная сеть может включать множество нейронов, которые связаны с обучаемыми весами и смещениями. Нейроны могут быть организованы в слои. Нейронная сеть может быть обучена на обучающем наборе данных пограничных гипотез.
[0048] Нейронная сеть может генерировать выходное изображение для каждого исходного обучающего изображения. Во время обучения нейронной сети параметры нейронной сети могут быть изменены для оптимизации точности прогноза. Обучение нейронной сети может включать в себя обработку нейронной сетью гипотез границ, чтобы сеть определяла метрику качества (т.е. наблюдаемый результат) для этой гипотезы, и сравнение определенной метрики качества с известной метрикой качества (т.е. целевой выход, соответствующий входу обучения, как указано в наборе данных для обучения). Наблюдаемый выход нейронной сети можно сравнить с целевым выходом, а ошибка может быть передана обратно на предыдущие уровни нейронной сети, параметры которых (например, веса и смещения нейронов) могут быть соответствующим образом скорректированы для минимизации функции потерь (т.е. разницы между наблюдаемым выходом и результатом обучения).
[0049] После обучения нейронная сеть может использоваться для автоматического определения показателя качества для гипотез границ. В некоторых вариантах реализации нейронная сеть может использоваться для автоматического определения показателей качества для вершин прямоугольников. Описанные здесь механизмы для определения показателей качества могут улучшить качество процесса захвата изображения путем выполнения определения показателя качества с использованием обученной нейронной сети способом, который учитывает наиболее релевантные атрибуты.
[0050] В некоторых вариантах реализации показатель качества гипотезы может быть определен на основе показателей качества вершин прямоугольников. Метрики качества вершин могут быть вычислены нейронной сетью, обрабатывающей изображения вершин. Такие изображения обычно относительно малы и просты в обращении, что сокращает время обработки для захвата изображения в соответствии с настоящим изобретением.
[0051] На шаге 306 система может выполнить классификацию второго уровня гипотез прямоугольника. В некоторых вариантах реализации для выполнения классификации второго уровня используется классификатор повышения градиента. Классификация второго уровня может использовать те же параметры, что и первая классификация. В некоторых вариантах реализации показатели качества для вершин прямоугольников, сгенерированные нейронной сетью, также могут использоваться в качестве параметров классификации второго уровня.
[0052] В результате классификации второго уровня может быть выбрана лучшая гипотеза границы.
[0053] После выбора наилучшей гипотезы границы на шаге 306, возвращаясь к ФИГ. 2, на шаге 207 система определяет показатель качества выбранного кадра. Учитывается только та часть выбранного кадра, которая попадает в выбранную границу. В некоторых вариантах реализации настоящего изобретения в системе могут применяться методы снижения шума к изображению в кадре в пределах выбранной границы, чтобы определить его показатель качества.
[0054] На шаге 208 система может сравнить метрику качества выбранного кадра (как определено на шаге 207) с ранее вычисленной метрикой качества предыдущего кадра. Если показатель качества выбранного кадра хуже, чем показатель качества предыдущего кадра, выбранный кадр отбраковывается и идентифицируется новый кадр 204.
[0055] В некоторых вариантах реализации настоящего изобретения система идентифицирует конкретный кадр в видеопотоке с заранее определенной частотой. В некоторых вариантах реализации настоящего изобретения система идентифицирует конкретный кадр в видеопотоке через заранее определенные интервалы времени. В некоторых вариантах реализации настоящего изобретения следующий кадр идентифицируется после завершения анализа предыдущего идентифицированного кадра. В некоторых вариантах реализации система анализирует заранее определенное количество конкретных кадров и переходит к следующему этапу, если лучший кадр не идентифицирован среди заранее определенного количества кадров или в течение заранее определенного периода времени.
[0056] На шаге 209 система оценивает пригодность кадра для оптического распознавания символов (OCR). В некоторых вариантах реализации оценка пригодности OCR выполняется локально на мобильном устройстве. В качестве альтернативы оценка пригодности OCR может выполняться на сервере после того, как выбранный кадр был захвачен и передан на сервер.
[0057] На шаге 210 система выполняет постобработку выбранного кадра. Постобработка может включать в себя оптическое распознавание символов изображения в выбранном кадре, машинный перевод текста в выбранном кадре или другие операции обработки документа или обработки изображения.
[0058] На ФИГ. 5 представлена блок-схема примерной компьютерной системы 500, в которой могут применяться варианты реализации изобретения. В соответствии с изображением система 500 может включать в себя вычислительное устройство 510, хранилище 520 и сервер 550, подключенный к сети 530. Сеть 530 может быть общедоступной сетью (например, Интернет), частной сетью (например, локальной вычислительной сетью (ЛВС) или глобальной вычислительной сетью (ГВС)) или их комбинацией.
[0059] Вычислительное устройство 510 может быть настольным компьютером, ноутбуком, смартфоном, планшетом, сервером, сканером или любым подходящим вычислительным устройством, способным выполнять описанные в данном документе способы. В некоторых вариантах применения компьютерное устройство 510 может представлять собой (и/или включать) одно или несколько компьютерных устройств 600 на ФИГ. 6.
[0060] Кадр 540 может быть принят компьютерным устройством 510. Кадр 540 может быть получен любым подходящим способом. Кроме того, в случаях, когда компьютерное устройство 510 является сервером, клиентское устройство, подключенное к серверу через сеть 530, может загружать кадр 540 на сервер. В случаях, когда компьютерное устройство 510 является клиентским устройством, подключенным к серверу через сеть 530, клиентское устройство может загружать кадр 540 с сервера или из хранилища 520.
[0061] Кадр 540 может использоваться для обучения набора моделей машинного обучения или может быть новым кадром, для которого желательно определение показателя качества.
[0062] В одном варианте реализации компьютерное устройство 510 может включать в себя механизм 511 определения показателей качества. Механизм 511 определения метрики качества может включать в себя инструкции, хранящиеся на одном или нескольких материальных, машиночитаемых носителях данных компьютерного устройства 510 и выполняемые одним или несколькими устройствами обработки компьютерного устройства 510.
[0063] В одном варианте реализации механизм 511 определения показателей качества может использовать набор обученных моделей 314 машинного обучения для определения одного или нескольких показателей качества кадра 540. Библиотека кадров может находиться в хранилище 520. Модели 514 машинного обучения обучаются и используются для определения показателей качества.
[0064] Механизм 511 определения показателей качества может являться клиентским приложением или представлять собой комбинацию клиентского и серверного компонентов. В некоторых вариантах реализации механизм 511 определения показателей качества может полностью выполняться на клиентском компьютерном устройстве, таком как серверный компьютер, настольный компьютер, планшетный компьютер, смартфон, портативный компьютер, фотоаппарат, видеокамера и т.п. В качестве альтернативы клиентский компонент механизма 511 определения показателей качества, выполняемый на клиентском компьютерном устройстве, может принимать кадр и передавать его на серверный компонент механизма 511 определения показателей качества, выполняемого на серверном устройстве, которое выполняет определение показателей качества. Серверный компонент механизма 511 определения показателей качества может затем возвращать определенные показатели качества клиентскому компоненту механизма 511 определения показателей качества, выполненному на клиентском компьютерном устройстве, для хранения. В качестве альтернативы серверный компонент механизма 511 определения показателей качества может предоставить результат идентификации другому приложению. В других вариантах реализации механизм 511 определения показателей качества может выполняться на серверном устройстве как приложение с доступом в Интернет, доступное через интерфейс браузера. Устройство сервера может представлять собой одну или несколько компьютерных систем, таких как одна или несколько серверных машин, рабочих станций, системных блоков, персональных компьютеров (ПК) и так далее.
[0065] Серверная машина 550 может являться и/или включать стоечный сервер, роутер, персональный компьютер, портативный ассистент, мобильный телефон, ноутбук, планшет, камеру, видеокамеру, нетбук, настольный компьютер, медиацентр или любую комбинацию из вышеперечисленных. Серверная машина 550 может включать механизм обучения 551. Механизм обучения 551 может построить модель(-и) 514 машинного обучения для определения показателей качества. Модель(-и) машинного обучения 514, как показано на ФИГ. 5, могут быть обучены механизмом обучения 551, используя данные обучения, которые включают входные данные для обучения и связанные выходные данные для обучения (правильные ответы на соответствующие входные данные для обучения). Механизм обучения 551 может находить закономерности в данных обучения, привязывая входные обучающие данные к выходным обучающим данным (предполагаемый ответ) и создать модели машинного обучения 514, которые зафиксируют эти эталоны. Набор моделей машинного обучения 514 может состоять, например, из одиночного уровня линейных или нелинейных операций (таких как машина опорных векторов) или может быть глубокой нейронной сетью, такой как модель машинного обучения, которая состоит из нескольких уровней нелинейных операций. Примерами глубоких нейронных сетей являются нейронные сети, включающие сверточные нейронные сети, рекуррентные нейронные сети (РНС) с одним или более скрытых слоев и полностью связанные нейронные сети.
[0066] Модели 514 машинного обучения могут быть обучены определять показатели качества для кадра 340. Обучающие данные могут находиться в хранилище 520 и могут включать один или более наборов входных обучающих данных 522 и один или более наборов выходных обучающих данных 524. Обучающие данные могут также включать данные карт 526, которые связывают входные обучающие данные 522 с выходными обучающими данными 524. В процессе обучения механизм обучения 551 может находить закономерности в обучающих данных 526, которые могут быть использованы для связки входных обучающих данных с выходными обучающими данными. Закономерности могут быть впоследствии использованы моделью (моделями) машинного обучения 514 для будущих прогнозов. Например, после приема входных данных неизвестного кадра обученная(-ые) модель(-и) 514 машинного обучения может (могут) прогнозировать показатели качества для этого кадра и предоставлять такие показатели качества в виде выходных данных.
[0067] Хранилище 520 может быть постоянным хранилищем, способным сохранить структуры для выполнения определения меры сходства в соответствии с вариантами реализации настоящего изобретения. Хранилище 520 может быть размещено на одном или более устройствах хранения, таких как основная память, магнитные или оптические диски, ленты или жесткие диски, NAS, SAN и так далее. Несмотря на то, что изображение показывает компьютерное устройство 510 отдельно от хранилища 520, при применении хранилище 520 может являться частью компьютерного устройства 510. В других вариантах применения хранилище 520 может являться сетевым файловым сервером, в то время как при других применениях хранилище 520 может являться другим типом хранения данных, таким как база данных с привязкой к объекту, реляционная база данных и так далее, которое может находиться на серверной машине или на одной или более различных машинах, соединенных через сеть 530.
[0068] ФИГ. 6 показывает пример компьютерной системы 600, которая может выполнять один или несколько описанных здесь способов. Вычислительная система может подключаться (например, в сети) к другим вычислительным системам с помощью ЛВС, интрасети, экстрасети или Интернета. Вычислительная система может работать в качестве сервера в сетевой среде клиент-сервер. Вычислительная система может быть персональным компьютером (ПК), планшетом, телеприставкой (STB), персональным цифровым помощником (PDA), мобильным телефоном, камерой, видеокамерой или любым устройством, способным выполнять набор команд (последовательных или иных), определяющих действия, которые должны выполняться этим устройством. Кроме того, хотя проиллюстрирована только одна вычислительная система, термин «компьютер» также следует понимать как включающий любую совокупность компьютеров, которые индивидуально или совместно выполняют набор (или несколько наборов) команд для выполнения одного или нескольких из обсуждаемых в данном документе способов.
[0069] Пример компьютерной системы 600 включает устройство обработки 602, основную память 604 (то есть память «только для чтения» (ROM), флэш-память, динамическую память случайного доступа (DRAM), такую как синхронная DRAM (SDRAM)), статическую память 606 (то есть флэш-память, статическую память случайного доступа (SRAM)) и устройство хранения данных 616, которое обменивается данными друг с другом по шине 608.
[0070] Устройство обработки 602 представляет одно или несколько устройств обработки общего назначения, таких как микропроцессор, центральный процессор и т.п. В частности, устройство обработки 602 может быть микропроцессором с полным набором команд (CISC), микропроцессором с сокращенным набором команд (RISC), микропроцессором со сверхдлинным командным словом (VLIW) или процессором, реализующим другие наборы команд, или процессорами, реализующими комбинацию наборов команд. Устройство обработки 602 также может быть представлено одним или более устройствами обработки специального назначения, такими как специализированная интегральная схема (ASIC), программируемая пользователем вентильная матрица (FPGA), цифровой сигнальный процессор (DSP), сетевой процессор и т.п. Устройство обработки 602 создано с возможностью выполнения инструкций 626 для реализации механизма 511 определения показателей качества и/или механизма 551 обучения по ФИГ. 5 и выполнения операций и этапов, описанных в настоящем документе (например, способ 200 по ФИГ. 2).
[0071] Компьютерная система 600 далее может включать устройство сетевого интерфейса 622. Компьютерная система 600 также может включать устройство визуального отображения 610 (например, жидкокристаллический дисплей (ЖКД) или электронно-лучевую трубку (ЭЛТ)), устройство буквенно-цифрового ввода 612 (например, клавиатуру), устройство управления курсором 614 (например, мышь) и устройство генерации сигнала 620 (например, колонку). В одном из показанных примеров устройство визуального отображения 610, устройство буквенно-цифрового ввода 612 и устройство управления курсором 614 могут быть объединены в один компонент или устройство (например, сенсорный ЖК-экран).
[0072] Устройства хранения данных 616 включает машиночитаемый носитель данных 624, на котором хранятся инструкции 626, описывающие одну или более описанных здесь методологий или функций. Инструкции 626 могут также относиться полностью или по меньшей мере частично к основной памяти 604 и/или к устройству обработки 602 в момент их выполнения компьютерной системой 600, основной памятью 604 и устройством обработки 602, которые также относятся к машиночитаемым носителям. В некоторых вариантах применения инструкции 626 могут дополнительно передаваться или приниматься по сети через сетевое интерфейсное устройство 622.
[0073] В то время как машиночитаемый носитель данных 624 показан в иллюстративных примерах как единственный носитель, термин «машиночитаемый носитель данных» следует понимать как включающий один носитель или несколько носителей (например, централизованную или распределенную базу данных и/или связанные кеши и серверы), в которых хранятся один или несколько наборов команд. Термин «машиночитаемый носитель данных» также должен включать любой носитель, который способен хранить, кодировать или переносить набор команд для выполнения машиной и который заставляет машину выполнять одну или несколько методологий настоящего изобретения. Термин «машиночитаемый носитель данных» следует соответственно понимать как включающий твердотельные запоминающие устройства, оптические носители и магнитные носители.
[0074] Хотя операции способов в данном документе показаны и описаны в определенном порядке, порядок операций каждого способа может быть изменен так, чтобы определенные операции могли выполняться в обратном порядке, или так, чтобы определенная операция по крайней мере частично могла выполняться одновременно с другими операциями. В некоторых вариантах реализации команды или подоперации отдельных операций могут быть прерывистыми и/или чередующимися.
[0075] Следует понимать, что приведенное выше описание служит для иллюстрации, а не ограничения. Многие другие варианты реализации будут очевидны специалистам в данной области техники после прочтения и понимания приведенного выше описания. Следовательно, объем настоящего изобретения должен определяться ссылкой на прилагаемую формулу изобретения вместе с полным объемом эквивалентов, на которые такая формула изобретения имеет право.
[0076] В приведенном выше описании изложены многочисленные подробности. Однако для специалиста в данной области техники будет очевидно, что аспекты настоящего изобретения могут быть реализованы на практике без этих конкретных деталей. В некоторых случаях хорошо известные конструкции и устройства показаны в форме блок-схемы, а не в подробностях, чтобы не затруднять понимание настоящего изобретения.
[0077] Некоторые части подробных описаний выше представлены в терминах алгоритмов и символических представлений операций с битами данных в памяти компьютера. Эти алгоритмические описания и представления являются средствами, используемыми специалистами в области обработки данных, чтобы наиболее эффективно передать суть своей работы другим специалистам в данной области техники. Алгоритм здесь и в целом задуман как самосогласованная последовательность шагов, ведущих к желаемому результату. Эти шаги требуют физических манипуляций с физическими величинами. Обычно, хотя и не обязательно, эти величины принимают форму электрических или магнитных сигналов, которые можно сохранять, передавать, комбинировать, сравнивать и иным образом использовать. Иногда оказывается удобным, в основном по причинам обычного использования, называть эти сигналы битами, значениями, элементами, знаками, символами, терминами, числами и т.п.
[0078] Однако следует иметь в виду, что все эти и подобные термины должны быть связаны с соответствующими физическими величинами и представляют собой просто удобные обозначения, применяемые к этим величинам. Если специально не указано иное, как очевидно из следующего обсуждения, следует понимать, что во всем описании обсуждения с использованием таких терминов, как «получение», «определение», «выбор», «сохранение», «анализ» и т.п., относятся к действию и процессам вычислительной системы или аналогичного электронного вычислительного устройства, которое обрабатывает и преобразует данные, представленные в виде физических (электронных) величин в регистрах и памяти вычислительной системы, в другие данные, аналогично представленные в виде физических величин в памяти или регистрах вычислительной системы или других подобных устройств хранения, передачи или отображения информации.
[0079] Настоящее изобретение также относится к устройству для выполнения операций в данном документе. Это устройство может быть специально сконструировано для требуемых целей или может содержать компьютер общего назначения, выборочно активируемый или реконфигурируемый компьютерной программой, хранящейся в компьютере. Такая вычислительная программа может храниться на машиночитаемом носителе данных, таком как, помимо прочего, диск любого типа, включая дискеты, оптические диски, компакт-диски и магнитооптические диски, постоянные ЗУ (ПЗУ), оперативные ЗУ (ОЗУ), ЭППЗУ, ЭСППЗУ, магнитные или оптические платы или любой тип носителя, подходящий для хранения электронных команд, каждая из которых подключена к системной шине компьютера.
[0080] Алгоритмы и дисплеи, представленные в данном документе, по своей сути не связаны с каким-либо конкретным компьютером или другим устройством. Различные системы общего назначения могут использоваться с программами в соответствии с изложенными идеями, или может оказаться удобным сконструировать более специализированное устройство для выполнения требуемых методических шагов. Требуемая структура для множества этих систем будет отображаться, как указано в описании. Кроме того, варианты реализации настоящего изобретения не описаны посредством ссылки на какой-либо конкретный язык программирования. Будет принято во внимание, что для реализации идей настоящего изобретения, как описано в данном документе, можно использовать множество языков программирования.
[0081] Варианты реализации настоящего изобретения могут быть предоставлены в виде компьютерного программного продукта или программного обеспечения, которое может включать в себя машиночитаемый носитель для хранения команд, использующихся для программирования компьютерной системы (или других электронных устройств) с целью выполнения процесса в соответствии с настоящим изобретением. Машиночитаемый носитель включает в себя любой механизм для хранения или передачи информации в форме, читаемой машиной (например, компьютером). Например, машиночитаемый (т.е. считываемый компьютером) носитель включает в себя машиночитаемый (например, компьютером) носитель данных (например, постоянное ЗУ (ПЗУ), оперативное ЗУ (ОЗУ), носители данных на магнитных дисках, оптические носители данных, устройства флэш-памяти и т.д.).
[0082] Слова «пример» или «примерный» используются здесь для обозначения примеров, случаев или иллюстраций. Любой вариант реализации или конструкция, описанные в настоящем документе как «пример», не должны обязательно рассматриваться как предпочтительные или преимущественные по сравнению с другими вариантами реализации или конструкциями. Скорее, использование слов «пример» или «примерный» предназначено для конкретного представления понятий. Используемый в этой заявке термин «или» предназначен для обозначения включающего «или», а не исключающего «или». То есть если иное не указано или не ясно из контекста, «X включает А или В» означает любую из естественных включающих перестановок. То есть если X включает А, X включает В или X включает и А, и В, то высказывание «X включает А или В» является истинным в любом из указанных выше случаев. Кроме того, неопределенные артикли «а» и «an», использованные в англоязычной версии этой заявки и прилагаемой формуле изобретения, должны, как правило, означать «один или более», если иное не указано или из контекста не следует, что это относится к форме единственного числа. Более того, использование терминов «применение», «один вариант применения», «вариант реализации» или «один вариант реализации» не предназначено для обозначения одного и того же применения или реализации, если они не описаны как таковые. Кроме того, используемые здесь термины «первый», «второй», «третий», «четвертый» и т.д. означают метки, позволяющие различать различные элементы, и необязательно могут иметь порядковое значение в соответствии с их числовым обозначением.
[0083] Поскольку многие изменения и модификации изобретения без сомнения будут очевидны для специалиста в данной области после прочтения вышеизложенного описания, следует понимать, что каждое конкретное показанное и описанное посредством иллюстраций применение не должно ни в коем случае считаться ограничением. Следовательно, отсылки к деталям различных применений не должны ограничивать объем запросов, которые сами по себе содержат только те особенности, которые рассматриваются как изобретение.