ИСПОЛЬЗОВАНИЕ НЕСКОЛЬКИХ КАМЕР ДЛЯ ВЫПОЛНЕНИЯ ОПТИЧЕСКОГО РАСПОЗНАВАНИЯ СИМВОЛОВ
MULTIPLE CHAMBER USING FOR IMPLEMENTATION OF OPTICAL CHARACTER RECOGNITION

ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящее описание относится к использованию нескольких камер для выполнения оптического распознавания символов (OCR) на изображениях физических объектов.
УРОВЕНЬ ТЕХНИКИ
[0002] Оптическое распознавание символов - это механический или электронный перевод изображения машинописного, написанного от руки или печатного текста в машиночитаемый текст, будь то сканированный документ, фотография документа, фотография места (например, текст вывески или рекламного щита на пейзажной фотографии) или текст субтитров, наложенных на изображение (например, из телепередачи). OCR может использоваться как вариант ввода информации с напечатанных на бумаге записей данных, например, документов, удостоверяющих личность, счетов, банковских выписок, компьютеризованных чеков, визитных карточек, писем, распечаток статических данных или других документов. OCR может использоваться для оцифровки печатных текстов, чтобы их можно было редактировать в электронном виде, производить поиск, сохранять в более компактном виде и демонстрировать в сети.
ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0003] На Фиг. 1 представлена схема примера системы использования нескольких камер для выполнения оптического распознавания символов на изображениях физического объекта.
[0004] На Фиг. 2 представлена блок-схема примера системы для использования нескольких камер для выполнения оптического распознавания символов на изображениях физического объекта.
[0005] На Фиг. 3А-В приведены примеры нескольких изображений физического объекта.
[0006] На Фиг. 4 представлена блок-схема примера системы использования нескольких камер для выполнения оптического распознавания символов на изображениях одного или более физических объектов.
[0007] На Фиг. 5А-В представлены блок-схемы примеров систем использования нескольких камер для выполнения оптического распознавания символов на изображениях физического объекта.
[0008] На Фиг. 6 представлена блок-схема примера процесса использования нескольких камер для выполнения оптического распознавания символов на изображениях физического объекта.
[0009] На Фиг. 7 представлена схема примера вычислительной системы.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0010] В настоящем документе описаны системы и методики использования нескольких камер для выполнения оптического распознавания символов на серии изображений (например, последовательность видеокадров или фотоснимков). Оптическое распознавание символов (OCR) можно использовать для распознавания текста в сериях видеокадров для получения машиночитаемого текста, например, в виде символов Юникод. Некоторые кадры могут содержать одинаковые сцены или элементы, например, изображения документа, части документа или другие элементы, содержащие текст или символы, поддающиеся распознаванию. Однако условия создания видеокадров, такие как освещенность, дрожание / раскачивание камеры или угол камеры, могут меняться от кадра к кадру из видео. В результате качество кадров может быть различным. Например, часть некоторых кадров может содержать различные дефекты, такие как цифровой шум, блик, смаз или дефекты расфокусировки.
[0011] Результаты распознавания нескольких кадров могут объединяться, чтобы повысить качество распознавания изображений документов по сравнению с результатами распознавания любого отдельного кадра. Однако если время между объединяемыми кадрами слишком мало, изменение корректируемых условий невелико и получаемые кадры имеют качество, близкое к исходному низкому качеству кадров. Распознавание этих кадров может дать сходные результаты с похожими ошибками. В частности, может быть невозможно эффективно устранить такие дефекты кадров, как блики, что может привести к невозможности обнаружить и распознать фрагмент текста на месте блика или засвеченных областей кадров. В результате для получения качества, необходимого для распознавания текста с помощью OCR, следует увеличить время между объединяемыми кадрами так, чтобы освещение или угол камеры, например, изменились настолько, чтобы блик или засвеченная область исчезли. Таким образом, время с момента наведения камеры на документ до отображения результатов распознавания на экране, которые пользователь может подтвердить как верные, при объединении кадров видео для исправления дефектов кадров, полученных с одной камеры, может быть неприемлемо велико.
[0012] В настоящем документе описана система, машиночитаемый носитель данных и способ использования нескольких камер для выполнения оптического распознавания символов на изображениях из видеопотока. Использование нескольких камер снижает количество времени, необходимого системе для распознавания текста на изображениях на кадрах видео. Например, вместо того чтобы перемещать распознаваемые объекты, камеру и(или) источник света, что требует дополнительного времени, можно использовать для получения видеопотока или изображений несколько камер и выполнять комбинированное распознавание, не ожидая перемещения объекта, камеры или источника света для изменения условий, приводящих к появлению дефектов. Система, машиночитаемый носитель данных и способ, описываемые в этом документе, позволяют устранять систематические ошибки распознавания, проявляющиеся в первом месте расположения или при угле как минимум первой камеры и не проявляющиеся во втором месте расположения или при угле как минимум второй камеры. Это означает, что изображения, получаемые с первой камеры, могут иметь первый дефект или блик, а изображения, получаемые со второй камеры, могут иметь второй дефект или блик. Если первый дефект / блик и второй дефект / блик не совпадают, результаты распознавания изображений с двух камер могут совмещаться для обнаружения и распознавания фрагментов текста на месте двух дефектов / бликов. Положения камеры и положение источника освещения могут выбираться так, чтобы дефекты / блики от двух камер не совпадали. В некоторых вариантах реализации совмещение результатов распознавания вместо объединения изображений до выполнения распознавания может приводить к лучшим результатам распознавания, может требовать меньше вычислительных ресурсов и(или) может требовать меньше времени на обработку.
[0013] Подробности одного или более вариантов реализации изложены в прилагаемых чертежах и в описании ниже. Другие особенности и преимущества будут ясны из описания и чертежей, а также из пунктов патентной формулы.
[0014] На Фиг. 1 представлена схема примера системы 100 для использования нескольких камер 102a-b для выполнения оптического распознавания символов на нескольких изображениях 104a-b физического объекта 106. Физический объект 106 может быть в значительной степени двумерным реальным объектом, например, распечаткой документа, или трехмерным реальным объектом, например, пакетом. Физический объект 106 имеет символы, отображаемые на физическом объекте 106, например, символы документа или этикетка с символами на пакете. Система распознавания 108 может получать первое изображение 104а от первой камеры 102а и второе изображение 104b от второй камеры 102b. Система 108, изображенная на Фиг. 1 как настольное вычислительное устройство, может быть серверным устройством (например, установленным в серверной стойке) или карманным устройством (например, смартфоном). Изображенные на Фиг. 1 отдельно от системы распознавания 108 первая камера 102а и(или) вторая камера 102b могут быть интегрированы в систему распознавания 108, такую как смартфон или другое вычислительное устройство с двумя камерами или двумя объективами. Система распознавания 108 отдельно выполняет оптическое распознавание символов каждого из изображений 104a-b, получая соответствующий текст (распознанные символы) и информацию о разметке (разметка). Разметка может связывать распознанные символы и(или) группы (наборы) символов с их соответствующим расположением на изображениях 104a-b. Одно или более изображений 104a-b, например, первое изображение 104а, может иметь один или более дефектов, например, блик от источника света, освещающего физический объект 106, что не позволяет системе распознавания 108 распознать один или более символов, изображенных на физическом объекте 106. Система распознавания 108 может сравнивать распознанные символы и разметку, получаемую при OCR изображений 104a-b, и совмещать распознанные символы с изображений 104a-b для создания объединенного набора символов 110. Объединенный набор символов 110 может обеспечивать распознавание символов, которые невозможно распознать на первом изображении 104а, путем объединения распознанных символов первого изображения 104а с распознанными символами второго изображения 104b, которые соответствуют символам, которые невозможно распознать на первом изображении 104а. Например, символы, которые невозможно распознать на первом изображении 104а, могут занимать на первом изображении 104а места, которые соответствуют позициям символов, распознанных на втором изображении 104b. Объединение распознанных символов с одного или более изображений представлено, например, в заявках на патент США №№15/168548 и 15/168525, которые явно включены в этот документ посредством ссылок.
[0015] Система 108 распознавания может содержать интерфейс 112 для получения изображений 104a-b с камер 102a-b. Система распознавания 108 может содержать хранилище данных 114, в котором хранятся изображения 104a-b и(или) объединенный набор символов 110. Система распознавания 108 может содержать инструкции для модуля оптического распознавания символов 116, который выполняется обрабатывающим устройством, чтобы распознавать символы и разметку символов в изображениях 104a-b. Система распознавания 108 может содержать инструкции для модуля объединения 118, который выполняется обрабатывающим устройством для сравнения распознанных символов и разметки для объединения распознанных символов с изображений 104a-b.
[0016] На Фиг. 2 представлена блок-схема примера системы 200 для использования нескольких камер 202a-b для выполнения оптического распознавания символов на нескольких изображениях 204a-b физического объекта 206. Система 200 содержит источник света 208, который освещает физический объект 206 так, что камеры 202a-b могут захватывать изображения 204a-b физического объекта 206, но источник света 208 также создает один или более дефектов 210a-b на изображениях 204a-b, таких как блики или засвеченные области от одного или более лучей света 212a-b, излучаемых источником света 208, отражающихся от физического объекта 206 и напрямую попадающих в камеры 202a-b.
[0017] Изображения 204a-b содержат перекрывающуюся область 214. Перекрывающаяся область 214 содержит первый дефект 210а на первом изображении 204а и второй дефект 210b на втором изображении 204b. В некоторых вариантах реализации дефекты 210a-b не перекрываются между собой. Система распознавания 108 может выполнять оптическое распознавание символов на изображениях 204a-b для распознавания символов в перекрывающейся области 214 изображений 204a-b и объединять распознанные символы первого изображения 204а с соответствующими распознанными символами второго изображения 204b для определения символов, которые система 108 не смогла распознать на первом изображении 204а из-за первого дефекта 210а и на втором изображении 204b из-за второго дефекта 210b. В некоторых вариантах реализации камеры 202a-b могут быть настроены так, чтобы перекрывающаяся область 214 захватывала весь отображаемый физический объект 206. В некоторых вариантах реализации камеры 202a-b могут включать больше двух камер, чтобы перекрывающиеся области для пар камер захватывали весь отображаемый физический объект 206.
[0018] На Фиг. 3а-b приведены примеры нескольких изображений 300a-b физического объекта. Этот физический объект представляет собой чек из ресторана, однако могут быть использованы и другие физические объекты, например, другие двухмерные объекты (например, распечатки документов) или трехмерные объекты (например, пакеты с этикетками). Эти изображения содержат один или более дефектов 302a-b, например, блики от источника света 208. Блики могут быть вызваны отражающей способностью поверхности физического объекта, материалом, которым покрыт физический объект, и(или) изогнутой поверхностью физического объекта. Вместо этого или в дополнение к этому дефекты 302a-b могут быть вызваны другими свойствами камер и(или) физического объекта, такими как пятно или крупинка материала на объективах камер.
[0019] Физический объект содержит символы, например, список блюд, цены на блюда, налоги и сведения о ресторане. Система распознавания 108 выполняет оптическое распознавание первого изображения 300а для распознавания символов, включая:
так как первый дефект 302а не позволяет системе распознавания 108 распознать символы «inger» в слове «Ginger». Система распознавания 108 также распознает разметку распознанных символов на первом изображении 300а, как например абсолютное положение символов на первом изображении 300а или положения символов относительно других объектов на первом изображении 300а (например, относительно других символов, слова, строки текста, абзаца или знака). Разметка может связывать распознанные символы и(или) группы символов с их относительным положением на первом изображении 300а. Система распознавания 108 выполняет оптическое распознавание второго изображения 300b для распознавания символов, включая:
так как второй дефект 302b не позволяет системе распознавания 108 распознать символы «ver» в слове «Lover». Система распознавания 108 также распознает разметку распознанных символов на втором изображении 300b, как например абсолютное положение символов на втором изображении 300b или положения символов относительно других объектов на втором изображении 300b (например, относительно других символов, слова, строки текста, абзаца или знака). Разметка может связывать распознанные символы и(или) группы символов с их относительным положением на втором изображении 300b.
[0020] Система распознавания 108 связывает распознанные символы из изображений 300a-b, которые, вероятно, представляют одинаковые серии символов, изображенных на физическом объекте. Например, система распознавания 108 может определить один или более символов с первого изображения 300а, которые соответствуют одному или более символам со второго изображения 300b, например символам , путем сравнения положений символов в разметке изображений 300a-b. Исходя из совпадений между разметками двух наборов распознанных символов система распознавания 108 определяет, что два набора распознанных символов представляют собой одну серию символов, изображенных на физическом объекте. В ответ система распознавания 108 может объединить два набора распознанных символов для создания объединенного набора, содержащего  Система распознавания 108 может объединять два набора распознанных символов, сохраняя относительное положение символов в наборах распознанных символов.
[0021] Система распознавания 108 может определять совпадающие символы или последовательности символов (например, слова) в текстах, полученных в результате OCR, представляющих изображения 300a-b, которые имеют низкую частоту встречаемости в текстах, полученных в результате OCR (например, частоту, не превышающую определенного порога частоты, который может быть установлен в значение 1 для указания на уникальную последовательность символов). В иллюстративном примере редко встречающееся слово может быть определено путем сортировки слов, полученных в результате OCR, в зависимости от частоты и выбора наиболее редко встречающихся слов. В некоторых вариантах реализации система распознавания 108 использует последовательности символов, которые имеют предельную длину, поскольку более короткие последовательности символов генерируют менее надежные опорные точки для совмещения символов.
[0022] Система распознавания 108 может использовать информацию о разметке, например, координаты, связанные с распознанными символами, для идентификации как минимум одной опорной точки, соответствующей каждому символу для каждого из изображений 300a-b. В иллюстративном примере опорная точка, связанная с последовательностью символов, может быть представлена центром минимального описывающего прямоугольника последовательности символов. В другом иллюстративном примере две или более опорные точки, связанные с идентифицированной последовательностью символов, могут быть представлены углами минимального описывающего прямоугольника последовательности символов.
[0023] Система распознавания 108 может проверять идентифицированные опорные точки и отбросить по крайней мере некоторые из них, используя выбранные критерии фильтрации. В одном из иллюстративных примеров система распознавания 108 может проверять, что случайно выбранные группы совпадающих опорных точек демонстрируют определенные геометрические признаки, инвариантные относительно изображений 300a-b, например, инвариантный геометрический признак может быть представлен направлением обхода как минимум трех совпадающих опорных точек. Система распознавания 108 может выявлять редко встречающиеся слова в последовательности символов, чтобы создавать опорные точки. Центры минимальных описывающих прямоугольников соответствующих последовательностей символов в каждом из изображений 300a-b создают серии слов. Если направление обхода опорных точек изображений 300a-b дает одну и ту же серию слов, то опорные точки, вероятно, соответствуют совпадающим последовательностям символов на изображениях 300a-b, а значит, могут быть взяты за основу для выполнения последующих операций.
[0024] Вместо этого или в дополнение к этому система распознавания 108 может представить инвариантный геометрический признак посредством направления обхода векторов, соединяющих случайно выбранную точку (например, начало координатной плоскости, ассоциированной с изображениями 300a-b) с каждой из опорных точек в порядке распознавания слов. Кроме того, система распознавания 108 может представлять инвариантный геометрический признак посредством топологии геометрических фигур, образованных линиями, соединяющими случайно выбранный набор опорных точек распознанных символов или слов.
[0025] Как было описано выше, система распознавания 108 может выявить один или более опорных объектов, таких как опорные точки на первом изображении 300а и на втором изображении 300b. Эти опорные объекты могут представлять собой один или более символов рядом с дефектами 302a-b (например, выше и(или) ниже дефектов 302a-b), которые совпадают среди распознанных символов первого изображения 300а и второго изображения 300b. Вместо этого или в дополнение к этому опорные объекты могут представлять собой один или более графических признаков, совпадающих на первом изображении 300а и на втором изображении 300b (например, граница или угол физического объекта, приведенного на изображениях 300a-b, или одинаковые фигуры на изображениях 300a-b).
[0026] Система распознавания 108 может также связывать распознанные символы с изображений 300a-b, которые, вероятно, представляют одни и те же серии символов, изображенных на физическом объекте, путем построения преобразования координат, которое конвертирует координаты одного изображения из изображений 300a-b в координаты другого изображения из изображений 300a-b. Система распознавания 108 может выявлять проективное преобразование из точек на первом изображении 300а в точки второго изображения 300b исходя из первой точки каждого из опорных объектов на первом изображении 300а относительно второй точки каждого из опорных объектов на втором изображении 300b. Например, система распознавания 108 может вычислить правила трансформации, которые отображают первую точку во вторую точку, и использовать эти правила трансформации для отображения точек одного из изображений 300a-b в точки второго из изображений 300a-b для совмещения точек распознанных символов первого изображения 300а с точками распознанных символов второго изображения 300b.
[0027] Система распознавания 108 затем может отображать случайно выбранную точку первого изображения 300а на второе изображение 300b, применяя проективное преобразование к координатам той же точки на первом изображении 300а. Под «проективным преобразованием» здесь подразумевается преобразование, которое отображает линии в линии, но не обязательно сохраняет параллельность. Проективное преобразование может быть описано следующими уравнениями:
1
2
3
4
1
2
3
4
где (х, у) и (X, Y) представляют собой координаты случайно выбранной точки на первом изображении 300а и втором изображении 300b соответственно. Коэффициенты преобразования Ax, Ах, Ах, Ах, Ay, Ау, Ау и Ау могут определяться исходя из известных координат не менее чем четырех опорных точек на каждом из двух изображений 300a-b, которые должны создавать систему из восьми уравнений с восемью неизвестными. После определения коэффициентов преобразования, уравнения (1) и (2) можно применить к координатам случайно выбранной точки первого изображения 300а, чтобы получить координаты той же точки на втором изображении 300b. В некоторых вариантах реализации для данной пары изображений могут быть определены более четырех пар опорных точек, и в этом случае чрезмерно определенная система может быть решена методами регрессионного анализа, такими как метод наименьших квадратов.
[0028] Система распознавания 108 может связывать одну или более последовательностей символов, полученных в результате OCR второго изображения 300b, с кластером совпадающих последовательностей символов, полученных в результате OCR одного или более ранее обработанных изображений, например первого изображения 300а. Система распознавания 108 может использовать указанные выше преобразования координат, чтобы сравнить положения распознанной последовательности символов на изображениях 300a-b и таким образом определить группы последовательностей символов, которые, вероятно, представляют один и тот же фрагмент исходных символов, изображенных на физическом объекте. В одном из иллюстративных примеров для случайно выбранной последовательности символов из текста, полученного при оптическом распознавании символов второго изображения 300b, система распознавания 108 может выявить один или более совпадающих последовательностей символов, полученных при оптическом распознавании символов на других изображениях из изображений 300a-b. Следует заметить, что «совпадающие последовательности символов» в настоящем документе соответствуют как точно совпадающим, так и нестрого совпадающим последовательностям символов.
[0029] В некоторых вариантах реализации система распознавания 108 может создавать граф, вершины которого соответствуют последовательностям символов с изображений 300a-b, а дуги соединяют последовательности символов, определенные как совпадающие (то есть соответствующие одному и тому же фрагменту исходного текста), путем применения указанного выше преобразования координат между изображениями. Полученный граф может содержать множество кластеров вершин, таких, что каждый кластер соответствует двум или более совпадающим последовательностям символов. Вершины в каждом кластере соединены соответствующими ребрами, при этом отдельные кластеры могут быть изолированы или слабо связаны друг с другом.
[0030] Система распознавания 108 может выявлять медианную строку каждого кластера совпадающих последовательностей символов, такую что выявленная медианная строка должна соответствовать результату OCR соответствующего фрагмента изображения. Каждый кластер должен содержать множество совпадающих последовательностей символов, а результат OCR соответствующего фрагмента изображения должен быть представлен медианной строкой. В некоторых вариантах реализации система распознавания 108 может выявлять медианную строку как последовательность символов, имеющую минимальную сумму расстояний редактирования между ней и всеми символьными последовательностями кластера. Расстояние редактирования, которое в одном из иллюстративных примеров может быть представлено расстоянием Левенштейна, между первой последовательностью символов и второй последовательностью символов может быть равно минимальному количеству редактирований единичных символов (например, вставок, удалений или замен), необходимых для преобразования первой последовательности символов во вторую последовательность символов. В некоторых вариантах реализации система распознавания 108 может понизить вычислительную сложность выявления медианной строки, используя некоторые эвристические методы. В одном из иллюстративных примеров система распознавания 108 может эвристически выявить аппроксимацию нулевого порядка медианной строки. Затем система распознавания 108 может выровнять последовательности символов, используя точно совпадающие символы в каждой последовательности. В другом иллюстративном примере система распознавания 108 может связывать с каждой последовательностью символов кластера весовой коэффициент, отражающий положение последовательности символов в изображении или метрику уверенности OCR.
[0031] Система распознавания 108 может выявлять порядок, в котором указанные выше последовательности символов, представляющие указанный выше кластер, должны располагаться в итоговом тексте. Как было указано выше в этом документе, изображения 300a-b, представляющие исходный документ, могут содержать как минимум частично перекрывающиеся фрагменты физического объекта, но могут отличаться масштабом изображения, углом съемки, скоростью срабатывания затвора, диафрагмой, яркостью изображения, наличием бликов, внешних объектов, которые как минимум частично перекрывают исходных текст, и(или) другими свойствами изображения, визуальными артефактами и параметрами процесса съемки. Таким образом, тексты, созданные при OCR каждого отдельного изображения из изображений 300a-b, могут отличаться одним или более имеющимися или отсутствующими символами и(или) словами в каждом результате OCR, вариациями в последовательностях символов, представляющих слова исходного текста, и(или) порядком последовательностей символов.
[0032] В некоторых вариантах реализации система распознавания 108 может сравнивать множество перестановок последовательностей символов, которые соответствуют обнаруженным кластерам. Система распознавания 108 может определить медианную перестановку как перестановку, имеющую минимальную сумму тау-расстояний Кендалла по сравнению со всеми другими перестановками. Тау-расстояние Кендалла между первой и второй перестановками может быть равно минимальному числу операций перестановок, необходимых в алгоритме пузырьковой сортировки для преобразования первой перестановки во вторую перестановку символов.
[0033] Вместо этого или в дополнение к этому система распознавания 108 может объединять две или более совпадающих последовательностей символов, соответствующих одному и тому же фрагменту исходного текста, удаляя дублирующиеся символы (например, множественные экземпляры одного и того же символа, находящиеся в одном и том же месте физического объекта) и конфликтующие символы (например, разные символы, находящиеся в одном и том же месте физического объекта) исходя из уверенности распознавания и(или) синтаксической и(или) семантической согласованности с соседними символами, а также объединяя символы в слова, фразы, строки, предложения и(или) другие синтаксические и(или) семантические группировки символов.
[0034] Система распознавания 108 затем может сохранять объединенные символы, например, в хранилище данных 114 или в другое хранилище данных. Система распознавания 108 или другая система может далее использовать сохраненные объединенные символы, например, для индексирования и(или) выполнения поиска среди символов, изображенных на физическом объекте (например, отправляя поисковый запрос службе поиска для поиска в копии изображенных символов), для создания физической копии символов, изображенных на физическом объекте (например, для печати копии выводимых символов с помощью печатающего устройства), и(или) для изменения редактируемой копии символов, изображенных на физическом объекте (например, в приложении для редактирования файлов, в котором сохранена копия изображенных символов).
[0035] На Фиг. 4 представлена блок-схема примера системы 400 для использования нескольких камер 402а-с для выполнения оптического распознавания символов на изображениях одного или более физических объектов 404a-b. Физические объекты 404a-b могут быть трехмерными объектами, имеющими неправильную форму и(или) отличающимися по форме один от другого. Камеры 402а-с могут быть установлены так, что изображения с камер 402а-с будут охватывать все поверхности физических объектов 404a-b, имеющие изображенные символы, поддающиеся распознаванию. Система 400 содержит источник света 406, который освещает физические объекты 404a-b так, что камеры 402а-с могут получить изображения физических объектов 404a-b. Физические объекты 404a-b могут содержать символы, например в определенной области, такой как одна или более этикеток 408a-b. Этикетки 408a-b могут быть размещены на различных поверхностях физических объектов 404a-b, например на передней стороне, задней стороне, верхней стороне, нижней стороне, левой стороне и(или) правой стороне, таким образом, что одна или более или несколько из них будут присутствовать на изображениях этикеток 408a-b, полученных камерами 402а-с, хотя одна или более камер 402а-с могут быть не в состоянии получить изображения этикеток 408a-b. Источник света 406 может создавать один или более дефектов 410а-с на изображениях соответствующих объектов, полученных камерами 402а-с. Второй дефект 410b может не позволить системе распознавания 108 распознавание символов на первой этикетке 408а на изображениях, полученных второй камерой 402b. Система распознавания 108 может объединить распознанные символы с первой этикетки 408а из изображений, полученных первой камерой 402а и третьей камерой 402с, с распознанными символами с первой этикетки 408а из изображений, полученных второй камерой 402b, чтобы найти символы, которые система распознавания 108 была не в состоянии определить из-за второго дефекта 410b.
[0036] В некоторых вариантах реализации физические объекты 404a-b остаются неподвижными в поле зрения камер 402а-с, когда камеры 402а-с получают изображения физических объектов 404a-b. Вместо этого или в дополнение к этому физические объекты 404a-b могут быть установлены на конвейер 412. Конвейер 412 может перемещать каждый из физических объектов 404a-b в поле зрения камер 402а-с. Камеры 402а-с могут получать изображения каждого из физических объектов 404а-b по мере того, как физический объект перемещается в поле зрения камер 402а-с.
[0037] Камеры 402а-с могут по отдельности получать изображения каждого из физических объектов 404a-b, когда физический объект будет перемещен в поле зрения камер 402а-с. Вместо этого или в дополнение к этому камеры 402а-с могут непрерывно или регулярно получать изображения (например, в случае видеозаписи) каждого из физических объектов 404a-b, независимо от того, находится ли физический объект в поле зрения камер 402а-с.
[0038] Каждая камера 402а-с может получить одно изображение каждого из физических объектов 404a-b. Вместо этого или в дополнение к этому каждая камера 402а-с может получить несколько изображений каждого физического объекта 404a-b. Система распознавания 108 может затем распознать символы на нескольких изображениях с каждой камеры 402а-с и объединить распознанные символы с нескольких изображений с каждой камеры 402а-с. Например, система распознавания 108 может распознать символы на части первой разметки с изображений, полученных с первой камеры 402а. Система распознавания 108 может не распознать ни одного символа на соответствующей части разметки на изображениях, полученных второй камерой 402b и третьей камерой 402с. Система распознавания 108 может назначить распознанным символам с первой камеры 402а больший вес, чем отсутствию распознанных символов со второй камеры 402b и третьей камеры 402с. Это может позволить системе распознавания 108 использовать распознанные символы для объединения, даже если суммарное количество изображений полученных со второй и третий камер (402b и 402с), где не было распознано ни одного символа больше, чем суммарное количество изображений с первой камеры (402а), где есть распознанные символы.
[0039] На Фиг. 5a-b представлены блок-схемы примеров различных систем 500a-b для использования нескольких камер 502a-f для выполнения оптического распознавания символов на изображениях физического объекта. Первая система 500а демонстрирует вид сверху вниз, когда камеры 502а-с установлены в одну линию, например, для получения изображений двухмерных физических объектов. Вторая система 500b демонстрирует вид сверху вниз, когда камеры 502d-f установлены напротив друг друга, чтобы получить изображения нескольких поверхностей трехмерного объекта.
[0040] Использование нескольких камер может позволить получать изображения одновременно и(или) параллельно, чтобы уменьшить время, затрачиваемое на распознавание символов, изображенных на физическом объекте, если один или более дефектов на полученных изображениях препятствуют распознаванию некоторых символов на некоторых изображениях. Использование нескольких камер, установленных под разными углами относительно физического объекта, может позволить получать изображения текста на трехмерных физических объектах, независимо от ориентации физического объекта относительно камер 502a-f.
[0041] На Фиг. 6 представлена блок-схема примера процесса 600 использования нескольких камер для выполнения оптического распознавания символов на изображениях физического объекта в соответствии с некоторыми вариантами реализации того же изобретения. Процесс 600 может выполняться, например, такой системой, как системы 100, 200, 400 и(или) 500a-b. Для удобства представления в приведенном описании системы 100, 200, 400 и(или) 500 используются как примеры для описания процесса 600. Однако для осуществления процесса 600 может использоваться другая система или сочетание систем.
[0042] В прямоугольнике 602 процесс 600 включает получение как минимум одного первого изображения с первой камеры, содержащего первый вид физического объекта из первого пространственного положения относительно физического объекта. Физический объект содержит множество символов. Например, первая камера 202а может получить первое изображение 300а чека из ресторана из первого пространственного положения относительно физического объекта 206.
[0043] В прямоугольнике 604 процесс 600 включает выполнение оптического распознавания символов первого изображения для выявления одного или более первых символов из символов, изображенных на физическом объекте. Например, система распознавания 108 может выполнять инструкции модуля 116 оптического распознавания символов для распознавания символов на первом изображении 300а, например символов, включающих:
[0044] Выполнение оптического распознавания символов может также включать выявление первой разметки первых символов первого изображения. Например, система распознавания 108 может выполнять инструкции модуля оптического распознавания символов 116 для выявления первой разметки первых символов на первом изображении 300а. Первая разметка может включать положения (например, абсолютные положения) первых символов на первом изображении 300а. Первая разметка может включать положения (например, относительные положения) первых символов на первом изображении 300а относительно других символов или элементов (например, относительно слова, строки текста, абзаца или столбца текста) на первом изображении 300а.
[0045] В прямоугольнике 606, если существует другое изображение, процесс 600 включает повторение прямоугольников 602 и 604, где процесс 600 включает получение как минимум одного второго изображения от второй камеры, содержащего второй вид физического объекта из второго пространственного положения относительно физического объекта, и выполнение оптического распознавания символов на втором изображении для выявления одного или более вторых символов из символов, изображенных на физическом объекте. Кроме того, первое пространственное положение отличается от второго пространственного положения. Например, система распознавания 108 может получать второе изображение 300b со второй камеры 202b, и система распознавания 108 может выполнять инструкции модуля оптического распознавания символов 116 для распознавания символов второго изображения 300b, например символов, включающих:
[0046] Выполнение оптического распознавания символов может также включать выявление второй разметки вторых символов второго изображения. Например, система распознавания 108 может выполнять инструкции модуля оптического распознавания символов 116 для выявления второй разметки вторых символов на втором изображении 300b. Вторая разметка может включать положения (например, абсолютные положения) вторых символов на втором изображении 300b. Вторая разметка может включать положения (например, относительные положения) вторых символов на втором изображении 300b относительно других символов или элементов (например, относительно слова, строки текста, абзаца или столбца текста) на втором изображении 300b.
[0047] Первое изображение может быть кадром из первой видеозаписи, а второе изображение - кадром из второй видеозаписи. Например, первая камера 402а может получать видео или серию изображений по мере того, как физический объект 404а движется по конвейеру 412, и вторая камера 402b может получать видео или серию изображений по мере того, как физический объект 404а движется по конвейеру 412.
[0048] В прямоугольнике 608 процесс 600 включает объединение (как минимум одним обрабатывающим устройством) первых символов со вторыми символами путем сопоставления первых символов со вторыми символами и первой разметки со второй разметкой. Например, система распознавания 108 может выполнить инструкции модуля объединения 118 для объединения первых символов (то есть, ) с первого изображения 300а со вторыми символами (то есть, ) со второго изображения 300b для образования объединенных символов (то есть, ). Система распознавания 108 может объединять символы, выявляя медианную строку кластера совпадающих последовательностей символов, полученных при оптическом распознавании символов с изображений 300a-b, или определяя факт наличия у наборов символов предельного количества общих символов (например, «44 G» в начале, «Lo» в середине и(или) «9,50 долл.» в конце наборов символов). Вместо этого или в дополнение к этому система распознавания 108 может устанавливать соответствие позиций первых символов с первой разметкой и позиций вторых символов со второй разметкой друг другу, используя преобразование, основанное на опорном объекте, который присутствует как на первом изображении 300а, так и на втором изображении 300b.
[0049] Дефект первого изображения, вызванный первым пространственным положением, может не позволить распознать один или более изображенных символов в качестве первых символов. Этим дефектом может быть блик от источника света. Второе пространственное положение может не препятствовать распознаванию одного или более изображенных символов в качестве вторых символов, а объединенные первые и вторые символы могут содержать один или более изображенных символов, которые нельзя было распознать в качестве первых символов.
[0050] В прямоугольнике 610 процесс 600 может включать сохранение объединенных первых и вторых символов. Например, система распознавания 108 может сохранить объединенные символы (например, ) в хранилище данных 114 и(или) в другое хранилище данных.
[0051] Для упрощения объяснения процессы в настоящем описании изобретения изображены и описаны в виде последовательности действий. Однако действия в соответствии с настоящим описанием изобретения могут выполняться в различном порядке и(или) одновременно с другими действиями, не представленными и не описанными в настоящем документе. Кроме того, не все проиллюстрированные действия могут быть необходимы для реализации процессов в соответствии с настоящим описанием изобретения. Кроме того, специалистам в этой области техники будет понятно, что эти процессы могут быть представлены и другим образом - в виде последовательности взаимосвязанных состояний через диаграмму состояний или событий. Кроме того, следует учесть, что процессы, раскрываемые в данном описании, могут храниться в изделиях для упрощения транспортировки и передачи этих процессов в вычислительные устройства. Термин «изделие» в настоящем документе означает компьютерную программу, доступную посредством любого машиночитаемого устройства или носителя данных.
[0052] На Фиг. 7 приведена схема, иллюстрирующая пример машины в виде вычислительной системы 700. Вычислительная система 700 выполняет один или более наборов инструкций 726, которые заставляют машину выполнять одну или более рассматриваемых в этом документе методологий. Эта машина может работать в качестве сервера или клиентского устройства в сетевой среде «клиент-сервер» или как одноранговая машина в одноранговой (или распределенной) сети. Такой машиной может быть персональный компьютер (ПК), планшетный ПК, телевизионная приставка (STB), карманный персональный компьютер (PDA), сотовый телефон, веб-устройство, сервер, маршрутизатор, коммутатор или мост либо любая машина, которая может выполнять набор команд (последовательных или иных), определяющих действия, которые будут предприняты этой машиной. В дальнейшем, несмотря на то что на рисунке изображена одна машина, термин «машина» также будет включать в себя любые наборы машин, которые по отдельности или совместно выполняют набор (или несколько наборов) инструкций 726, осуществляя любой один или более рассматриваемых в этом документе способов.
[0053] Вычислительная система 700 содержит процессор 702 (например, процессор, ЦПУ и т.д.), основное запоминающее устройство 704 (например, постоянное запоминающее устройство (ПЗУ), флеш-память, динамическое оперативное запоминающее устройство (ДОЗУ) (например, синхронное ДОЗУ (СДОЗУ), ДОЗУ (РДОЗУ) и т.д.)), статическое запоминающее устройство 706 (например, флеш-память, статическое оперативное запоминающее устройство (СОЗУ) и т.д.) и запоминающее устройство 716, которые могут обмениваться информацией друг с другом с помощью шины 708.
[0054] Процессор 702 представляет собой одно или более обрабатывающих устройств общего назначения, например, микропроцессоров, центральных процессоров или аналогичных устройств. В частности, процессор 702 может представлять собой микропроцессор с полным набором команд (CISC), микропроцессор с сокращенным набором команд (RISC), микропроцессор с командными словами сверхбольшой длины (VLIW), процессор, реализующий другой набор команд, или процессоры, реализующие комбинацию наборов команд. Процессор 702 также может представлять собой одно или более устройств обработки специального назначения, например, заказную интегральную микросхему (ASIC), программируемую пользователем вентильную матрицу (FPGA), процессор цифровых сигналов (DSP), сетевой процессор и т.д. Процессор 702 выполнен с возможностью исполнения инструкций систем 100, 200, 400 и(или) 500a-b для осуществления рассматриваемых в этом документе операций и шагов.
[0055] Вычислительная система 700 может также содержать устройство сетевого интерфейса 722, которое обеспечивает связь с другими машинами по сети 718, например, по локальной сети (LAN), корпоративной сети, сети экстранет или сети Интернет. Вычислительная система 700 также может включать блок видео дисплея 710 (например, жидкокристаллический дисплей (LCD) или электронно-лучевой монитор (CRT)), алфавитно-цифровое устройство ввода 712 (например, клавиатуру), устройство управления курсором 714 (например, мышь) и устройство генерации сигналов 720 (например, динамик).
[0056] Устройство хранения данных 716 может включать машиночитаемый носитель данных 724, на котором хранятся наборы инструкций 726 систем 100, 200, 400 и(или) 500a-b, реализующие любую одну или более методологий или функций, описанных в настоящем документе. Наборы инструкций 726 систем 100, 200, 400 и(или) 500a-b могут также располагаться полностью или как минимум частично в основном запоминающем устройстве 704 и(или) в процессоре 702 во время их выполнения вычислительной системой 700; основное запоминающее устройство 704 и процессор 702 также формируют машиночитаемый носитель данных. Наборы инструкций 726 могут также передаваться или приниматься по сети 718 с помощью устройства сетевого интерфейса 722.
[0057] В то время как пример машиночитаемого носителя данных 724 показан как единый носитель, термин «машиночитаемый носитель данных» следует понимать как единый носитель либо множество таких носителей (например, централизованная или распределенная база данных и(или) соответствующие кэши и серверы), в которых хранятся наборы команд 726. Термин «машиночитаемый носитель данных» может включать любой носитель, который может хранить, кодировать или переносить набор команд для выполнения машиной и который обеспечивает выполнение машиной любой одной или более технологий настоящего изобретения. Термин «машиночитаемый носитель данных» может включать, в частности, устройства твердотельной памяти, оптические и магнитные носители.
[0058] В приведенном выше описании изложены многочисленные детали. Однако любому специалисту в этой области техники, ознакомившемуся с этим описанием, должно быть очевидно, что настоящее изобретение может быть осуществлено на практике без этих конкретных деталей. В некоторых случаях хорошо известные структуры и устройства показаны в виде блок-схем без детализации, чтобы не усложнять описание настоящего изобретения.
[0059] Некоторые части описания предпочтительных вариантов реализации изобретения представлены в виде алгоритмов и символического представления операций с битами данных в запоминающем устройстве компьютера. Такие описания и представления алгоритмов являются средством, используемым специалистами в области обработки данных, чтобы наиболее эффективно передавать сущность своей работы другим специалистам в данной области. Приведенный здесь (и в целом) алгоритм сформулирован как непротиворечивая последовательность шагов, ведущих к нужному результату. Эти шаги требуют физических манипуляций с физическими величинами. Обычно, хотя и не обязательно, эти величины принимают форму электрических или магнитных сигналов, которые можно хранить, передавать, комбинировать, сравнивать и выполнять другие манипуляции. Иногда удобно, прежде всего для обычного использования, описывать эти сигналы в виде битов, значений, элементов, символов, терминов, цифр и т.д.
[0060] Однако следует иметь в виду, что все эти и подобные термины должны быть связаны с соответствующими физическими величинами и что они являются лишь удобными обозначениями, применяемыми к этим величинам. Если не указано иное, как видно из последующего обсуждения, следует понимать, что во всем описании такие термины, как «определение», «предоставление», «активация», «поиск», «выбор» и т.д., относятся к операциям и процессам вычислительной системы или подобного электронного вычислительного устройства, которые управляют данными, представленными в виде физических (электронных) величин в регистрах и запоминающих устройствах вычислительной системы, и преобразуют их в другие данные, аналогичным образом представленные в виде физических величин в запоминающих устройствах или регистрах вычислительной системы либо в других подобных устройствах хранения, передачи или отображения информации.
[0061] Настоящее изобретение также относится к устройству для выполнения операций, описанных в настоящем документе. Такое устройство может быть специально сконструировано для требуемых целей, или оно может содержать универсальный компьютер, который избирательно активируется или реконфигурируется с помощью компьютерной программы, хранящейся в компьютере. Подобная компьютерная программа может храниться на машиночитаемом носителе данных, включая, помимо прочего, любые типы дисков, например гибкие диски, оптические диски, компакт-диски, не предназначенные для перезаписи (CD-ROM), магнитно-оптические диски, постоянные запоминающие устройства (ROM), оперативные запоминающие устройства (RAM), стираемые программируемые постоянные запоминающие устройства (EPROM), стираемые электрическим сигналом программируемые постоянные запоминающие устройства (EEPROM), магнитные или оптические карты или другие типы носителей, используемые для хранения инструкций в электронном виде.
[0062] Слова «пример» или «примерный» используются здесь для обозначения использования в качестве примера, отдельного случая или иллюстрации. Любой вариант реализации или конструкция, описанная в настоящем документе как «пример», не должны обязательно рассматриваться как предпочтительные или преимущественные по сравнению с другими вариантами реализации или конструкциями. Слово «пример» лишь предполагает, что идея изобретения представляется конкретным образом. В этой заявке термин «или» предназначен для обозначения включающего «или», а не исключающего «или». Если не указано иное или не очевидно из контекста, то «X включает А или В» используется для обозначения любой из естественных включающих перестановок. То есть если X включает в себя А; X включает в себя В; или X включает А и В, то высказывание «X включает в себя А или В» является истинным в любом из указанных выше случаев. Кроме того, артикли «а» и «an», использованные в англоязычной версии этой заявки и в прилагаемой формуле изобретения, должны, как правило, означать «один или более», если иное не указано или из контекста не следует, что это относится к форме единственного числа. Использование терминов «вариант осуществления» или «один вариант осуществления» либо «реализация» или «одна реализация» не означает одинаковый вариант реализации, если такое описание не приложено. В описании термины «первый», «второй», «третий», «четвертый» и т.д. используются как метки для обозначения различных элементов, они не обязательно имеют смысл порядка в соответствии с их числовым обозначением.
[0063] Следует понимать, что приведенное выше описание носит иллюстративный, а не ограничительный характер. Другие варианты реализации будут очевидны специалистам в данной области техники после прочтения и понимания приведенного выше описания. Поэтому область применения изобретения должна определяться с учетом прилагаемой формулы изобретения, а также всех областей применения эквивалентных способов, которые охватывает формула изобретения.