ДЕТЕКТИРОВАНИЕ И ИДЕНТИФИКАЦИЯ ОБЪЕКТОВ НА ИЗОБРАЖЕНИЯХ
DETECTING AND IDENTIFYING OBJECTS ON IMAGES

ОБЛАСТЬ ТЕХНИКИ
[0001] Реализация настоящего изобретения в общем связана с компьютерными системами и, более конкретно, с системами и способами обнаружения на изображениях объектов, в том числе баркодов, логотипов, текстовых строк и т.п. с применением нейронных сетей.
УРОВЕНЬ ТЕХНИКИ
[0002] Обнаружение текстовых строк и различных объектов на изображении документа является фундаментальной задачей при обработке, хранении и сопоставлении документов. Традиционные подходы к обнаружению полей могут включать использование большого количества настраиваемых вручную эвристик и поэтому могут требовать большого количества ручного труда.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
[0003] Различные варианты реализации настоящего изобретения описывают механизмы обнаружения объектов и определения типов объектов, присутствующих на изображениях документов, с помощью нейронных сетей. Способ настоящего изобретения включает получение изображения, причем изображение содержит изображение объекта, представляющее каждый элемент из множества элементов изображения с помощью входного вектора из множества входных векторов, причем каждый из входных векторов содержит один или более параметров, относящихся к визуальному представлению соответствующего элемента из множества элементов изображения; предоставление обрабатывающим устройством множества входных векторов в первую подсеть нейронной сети для получения множества выходных векторов, причем каждый выходной вектор из множества выходных векторов связан с элементом изображения из множества элементов изображения; определение обрабатывающим устройством на основе множества выходных векторов подмножества элементов изображения из множества элементов изображения, относящихся к изображению объекта, и определение обрабатывающим устройством расположения изображения объекта на изображении на основе расположения подмножества элементов, входящего в множество элементов.
[0004] Постоянный машиночитаемый носитель данных по настоящему изобретению содержит команды, которые при обращении к ним обрабатывающего устройства приводят к выполнению обрабатывающим устройством следующих операций: получение изображения, причем изображение содержит изображение объекта, представляющее каждый элемент из множества элементов изображения с помощью входного вектора из множества входных векторов, причем каждый из входных векторов содержит один или более параметров, относящихся к визуальному представлению соответствующего элемента из множества элементов изображения; предоставление множества входных векторов в первую подсеть нейронной сети для получения множества выходных векторов, причем каждый выходной вектор из множества выходных векторов связан с элементом изображения из множества элементов изображения; определение обрабатывающим устройством на основе множества выходных векторов подмножества элементов изображения из множества элементов изображения, относящихся к изображению объекта, и определение расположения изображения объекта на изображении на основе расположения подмножества элементов, входящего в множество элементов.
[0005] Система по настоящему изобретению содержит память и обрабатывающее устройство, оперативно соединенное с памятью, при этом обрабатывающее устройство выполняет следующие операции: получение изображения, причем изображение содержит изображение объекта, представляющее каждый элемент из множества элементов изображения с помощью входного вектора из множества входных векторов, причем каждый из входных векторов содержит один или более параметров, относящихся к внешнему виду соответствующего элемента из множества элементов изображения; предоставление множества входных векторов в первую подсеть нейронной сети для получения множества выходных векторов, причем каждый выходной вектор из множества выходных векторов связан с элементом изображения из множества элементов изображения; определение обрабатывающим устройством на основе множества выходных векторов подмножества элементов изображения из множества элементов изображения, относящихся к изображению объекта, и определение расположения изображения объекта на изображении на основе расположения подмножества элементов, входящего в множество элементов.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0006] Сущность изобретения будет более понятна из приведенного ниже подробного описания и приложенных чертежей различных вариантов реализации изобретения. Однако не следует считать, что чертежи ограничивают сущность изобретения конкретными вариантами реализации; они предназначены исключительно для пояснения и понимания сущности изобретения.
[0007] На Фиг. 1 представлена блок-схема примера вычислительной системы, в которой могут выполняться варианты реализации настоящего изобретения.
[0008] На Фиг. 2 представлена иллюстрация примера аугментации базового изображения для создания реалистичных изображений, которые могут использоваться для обучения одной или более нейронных сетей, работающих в соответствии с некоторыми вариантами реализации настоящего изобретения.
[0009] На Фиг. 3 представлена иллюстрация примера обучения изображений, полученных в результате аугментации базового изображения, с помощью изображений обучающего объекта в соответствии с некоторыми вариантами реализации настоящего изобретения.
[0010] На Фиг. 4 представлена принципиальная схема, иллюстрирующая пример системы нейронной сети, которая может обнаруживать объекты и определять типы обнаруженных объектов на изображениях, в соответствии с некоторыми вариантами реализации настоящего изобретения.
[0011] На Фиг. 5 показаны некоторые примеры соединенных графов, которые представляют определенные объекты, в соответствии с некоторыми вариантами реализации настоящего изобретения.
[0012] На Фиг. 6 показан пример выходов системы нейронной сети, определяющих баркоды на изображениях, в соответствии с некоторыми вариантами реализации настоящего изобретения.
[0013] На Фиг. 7 схематически показан подход с использованием сжатия и развертывания (обратный отступ) для обнаружения строк текста на изображениях в соответствии с некоторыми вариантами реализации настоящего изобретения.
[0014] На Фиг. 8 представлена блок-схема, иллюстрирующая пример способа обнаружения присутствия объектов на изображении, в соответствии с некоторыми вариантами реализации настоящего изобретения.
[0015] На Фиг. 9 представлена блок-схема, иллюстрирующая пример способа определения типа обнаруженного объекта, в соответствии с некоторыми вариантами реализации настоящего изобретения.
[0016] На Фиг. 10 изображен пример вычислительной системы, которая может выполнять один или более способов, описанных в настоящем документе, в соответствии с некоторыми вариантами реализации настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0017] Описаны варианты реализации изобретения для обнаружения объектов и определения типов обнаруженных объектов на изображениях с использованием нейронных сетей. Типовое изображение может содержать ряд объектов, например, баркоды, логотипы, текстовые строки, печати, подписи и т.п. Необходимость в быстром и точном обнаружении и распознавании объектов на изображениях возникает, например, в системах обработки, в том числе в системах отслеживания почтовых отправлений, системах обработки товаров, системах маркировки, банковских системах, системах транспортировки (доставки), системах контроля качества и во многих других условиях применения. Один из традиционных подходов к определению объектов на изображениях основан на эвристиках (эвристических алгоритмах). При использовании эвристического подхода берется большое количество (например, сотни) документов, в том числе почтовые бланки отслеживания, квитанции, формы документов государственных органов, и выполняется накопление статистических данных о том, какие объекты могут присутствовать в таких документах. Например, при использовании эвристического подхода можно отследить типы баркодов (например, QR-код или баркод EAN), которые часто встречаются на изображениях, и вероятные расположения таких баркодов (например, в верхней или нижней части изображения). Эвристический подход необязательно работает с высокой точностью, например, если объект находится в непривычном месте на новом изображении, этот объект может быть определен неверно или даже полностью пропущен.
[0018] Традиционные системы, использующиеся для распознавания объектов, зачастую являются специфичными для конкретных условий применения и не будут эффективно применяться за пределами целевого контекста. Например, система, предназначенная для обнаружения объектов при производственном контроле, может не работать при учете товаров. В частности, системы определения, предназначенные для распознавания баркодов EAN, могут плохо работать с QR-кодами, а системы, предназначенные для распознавания логотипов, могут быть не очень эффективными при распознавании печатей или подписей.
[0019] Одно из узких мест при проектировании эффективных систем/моделей распознавания объектов в различных контекстах заключается в необходимости получения достаточно больших обучающих выборок для надежного обучения таких моделей. Имеющееся множество созданных ранее изображений зачастую не обеспечивает достаточного разнообразия обучающих изображений для учета обучающей моделью возможных последующих вариаций. Например, форма документа государственного органа с измененной разметкой может содержать поле баркода или подписи, смещенное в новое место, в результате чего проведенное ранее обучение становится недостаточным и потребуется повторное обучение модели.
[0020] Варианты реализации настоящего изобретения устраняют отмеченные выше и другие недостатки путем предоставления механизмов разработки высокоэффективных моделей определения объектов в различных контекстах, а также эффективного обучения таких моделей на основе обучающих изображений, синтетически аугментированных с помощью изображений обучающих объектов. В описанных механизмах может использоваться относительно небольшое количество базовых изображений за счет аугментации этих базовых изображений изображениями репрезентативных объектов, представляющих интерес и размещенных в различных местах базового изображения. Изображения обучающих объектов могут иметь наклон под различным градусом. Качество изображений объектов также можно изменить (например, уменьшение контраста, яркости, резкости, искажение цветов объекта и т.д.) заданным образом. В результате даже из небольшого количества базовых изображений и изображений имеющихся обучающих объектов может быть сформировано значительное количество обучающих изображений, различающихся по расположению, наклону, качеству изображения, цветовым схемам и т.д., объектов, добавленных на базовые изображения. Объекты добавляются таким образом, чтобы можно было достичь эффекта гармоничного внедрения объектов в базовое изображение. Такая реалистичная аугментация достигается за счет корректировки значений яркости пикселей базовых изображений с учетом контекста и внешнего вида базового изображения, а также внешнего вида объектов (вместо простой замены пикселей базовых изображений на пиксели объектов). При гармоничном внедрении объектов создаются изображения, в которых искусственно добавленные объекты могут быть неразличимыми от объектов, внедренных на момент начального создания изображений.
[0021] Поскольку модель может быть обучена на ряде базовых изображений, аугментированных изображениями различных представляющих интерес объектов (различные типы баркодов, логотипы, печати, текстовые строки, написанный от руки текст и т.п.), та же модель может эффективно и быстро определять присутствие различных классов объектов в электронных изображениях и далее определять типы выявленных объектов. В контексте настоящего документа под словом «класс» понимаются объекты с различными функциями. Например, объекты могут относиться к классу «баркод», классу «печать», классу «логотип» и т.д. В контексте настоящего документа под словом «тип» понимаются встречающиеся варианты каждого класса. Например, если установлено, что объект относится к классу «баркод», он может относиться к типу «EAN-13», типу «EAN-8», типу «QR», типу «UPC» и т.д. Если установлено, что объект относится к классу «печать», он может относиться к типу «печать нотариуса», «печать государственного правительства», «печать местного правительства» и т.д.
[0022] В контексте настоящего документа под словом «изображение» понимается любое изображение, доступное для компьютерной системы. Изображение может быть представлено отсканированным изображением, сфотографированным изображением, картиной, снимком, пейзажем, изображением природной или интерьерной сцены, видом и т.д., которое может быть преобразовано в форму данных, доступную для компьютера. В соответствии с различными реализациями настоящего изобретения изображение может быть представлено в виде файла любого подходящего формата, например, PDF, DOC, ODT, JPEG и др. Несмотря на то, что изображение может быть представлено файлом в электронном (например, цифровом) формате, предполагается, что изображение не разделено в электронном виде и что представляющие интерес объекты не векторизированы (т.е. не представлены в цифровом формате) в электронном файле.
[0023] «Документ» может представлять собой финансовый документ, юридический документ, форму документа государственного органа, транспортную маркировку, заказ на закупку или любой иной документ, в котором может присутствовать один или более представляющих интерес объектов (например, баркодов и подписей). «Документ» может представлять собой документ, который напечатан, набран или написан от руки (например, путем заполнения стандартной формы). «Документ» может быть напечатан на фирменном бланке, заверен печатью, подписан и т.д. «Документ» может представлять собой форму документа, который содержит множество текстовых полей (содержащих цифры, буквы, слова, предложения), графическое поле (содержащее логотип или любое другое изображение), таблицы (содержащие строки, столбцы, ячейки) и т.д.
[0024] К изображениям, в которых выполняется определение объектов, помимо прочего, могут относиться изображения документов, имеющих стандартное содержимое (предопределяемое официальными правилами или установившейся практикой хозяйственной деятельности), но гибкое распределение этого содержимого в документе - заявки на выдачу кредитов (в т.ч. ипотечных), договоры купли-продажи объектов недвижимости, графики платежей по кредиту, договоры страхования, полицейские рапорты, заказы на закупку, счета и т.д. Документы могут содержать объекты заданного класса, встречающиеся в одном и том же изображении один или несколько раз. Например, форма может содержать баркод транспортной маркировки, при этом такой баркод используется для внутренней маркировки выпускающей организацией, и баркод для отслеживания документа государственным органом. В другом примере изображения могут включать изображения улиц, при этом определяемыми объектами могут быть машины, люди, животные и т.д.
[0025] Описанные в данном документе методы позволяют автоматически обнаруживать объекты на изображениях с использованием искусственного интеллекта. Методики могут включать в себя обучение нейронной сети обнаружению представляющих интерес объектов. В некоторых вариантах реализации после обработки изображения (например, обучающего или целевого изображения) нейронной сетью в пределах изображения может быть определен объект. Нейронная сеть может быть обучена последовательному определению нескольких классов объектов. Например, различные выходные каналы нейронной сети могут выводить расположение выявленной печати и расположение выявленной подписи. В некоторых вариантах реализации выявленные объекты могут частично или полностью накладываться. Например, официальная печать государственного органа может быть размещена поверх подписи официального лица государственного органа. В другом примере подпись нотариуса (или любого другого официального лица) может быть нанесена от руки в соответствующем поле с печатью нотариуса.
[0026] Помимо определения конкретного класса объекта, каналы выхода нейронной сети могут быть настроены на вывод указания типа объекта. Например, обученная сеть может относить объект класса «печать» к типу «печать нотариуса». Нейронная сеть (сети) может содержать множество нейронов, связанных с получаемыми при обучении весами и смещениями. Эти нейроны могут быть организованы по слоям. Нейронная сеть (сети) может быть обучена на обучающей выборке изображений, содержащей известные объекты, относящиеся к известным классам и типам. Например, обучающие изображения могут включать примеры изображений, содержащих один или более объектов и определяющую объект информацию. В некоторых вариантах реализации определяющая объект информация может быть включена в обучающее изображение (например, цветная линия по периметру объекта). В других вариантах реализации определяющая объект информация может быть представлена файлом метаданных, сопровождающим обучающее изображение, например файлом, содержащим расположения четырех углов баркода или центра и радиуса печати.
[0027] Нейронная сеть может построить наблюдаемый результат для всех обучающих входных данных. Наблюдаемый результат работы нейронной сети можно сравнить с ожидаемым результатом работы, соответствующим желаемым выходным данным, согласно обучающей выборке данных, а ошибка может распространяться назад на предыдущие слои нейронной сети, параметры которых (веса и смещения нейронов) могут корректироваться соответствующим образом (например, с использованием функции потерь). В ходе обучения нейронной сети параметры нейронной сети могут быть скорректированы для оптимизации точности предсказания.
[0028] После обучения нейронная сеть может использоваться для автоматического обнаружения объектов и определения типов обнаруженных объектов (путем выбора наиболее вероятного типа, что более детально описано ниже). Согласно описанию, приведенному в настоящем документе, при использовании нейронных сетей необходимость в участии человека на этапе определения может быть снижена, может быть повышено качество обнаружения и предоставлена платформа для обнаружения нескольких классов и типов объектов путем обнаружения объектов с использованием обученной нейронной сети с учетом контекста всего изображения.
[0029] Нейронная сеть, обученная в соответствии с вариантами реализации настоящего изобретения, может применяться для определения объектов различных типов в любом приемлемом изображении и может обеспечивать эффективное обнаружение объектов/классификацию типов, таким образом повышая как точность определения, так и скорость обработки в условиях применения, где реализуется такое определение.
[0030] На Фиг. 1А представлена блок-схема примера вычислительной системы 100, в которой может выполняться реализация настоящего изобретения. Как показано на изображении, система 100 включает вычислительное устройство 110, хранилище 120 и сервер 150, подключенный к сети 130. Сеть 130 может быть общественной сетью (например, Интернет), частной сетью (например, локальной сетью (LAN) или распределенной сетью (WAN)) или же их сочетанием.
[0031] Вычислительное устройство 110 может быть настольным компьютером, портативным компьютером, смартфоном, планшетным компьютером, сервером, сканером или любым подходящим вычислительным устройством, которое в состоянии использовать технологии, описанные в настоящем изобретении. В некоторых вариантах реализации изобретения вычислительное устройство 110 может быть представлено одной или более вычислительными системами 1000 на Фиг. 10 (и (или) включать в себя такие системы).
[0032] Изображение 140 может быть получено вычислительным устройством 110. Изображение 140 может содержать любой подходящий текст, графические изображения или таблицы, например, один или более символов (буквы и (или) цифры), слов, предложений и т.д. Изображение 140 может быть соответствующего типа, например «форма документа государственного органа», «транспортная маркировка», «счет», «паспорт», «медицинский полис», «квитанция о приемке» и т.д.
[0033] Изображение 140 может быть получено любым подходящим способом. Например, вычислительное устройство 110 может получать цифровую копию изображения 140 путем сканирования документа или фотографирования документа, пейзажа, вида и т.д. Кроме того, в тех вариантах реализации изобретения, где вычислительное устройство 110 представляет собой сервер, клиентское устройство, подключенное по сети 130 к серверу, может загружать цифровую копию изображения 140 на сервер. В тех вариантах реализации изобретения, где вычислительное устройство 110 является клиентским устройством, соединенным с сервером по сети 130, клиентское устройство может загружать изображение 140 с сервера или из хранилища 120.
[0034] Изображение 140 может быть использовано для обучения набора моделей машинного обучения или может быть новым изображением, для которого следует выполнить обнаружение и (или) классификацию объектов. В некоторых вариантах реализации при использовании для обучения одной или более моделей (нейронных сетей) 114 машинного обучения для последующего распознавания изображение 140 может быть соответствующим образом подготовлено для облегчения обучения. Например, на изображении 140 могут быть вручную или автоматически выбраны текстовые последовательности и (или) элементы таблиц, могут быть отмечены символы, текстовые последовательности, могут быть нормализованы, масштабированы и (или) бинаризованы графические изображения или элементы таблиц. В некоторых вариантах реализации изобретения текст в документе 140 может распознаваться с использованием любого подходящего метода оптического распознавания символов (OCR).
[0035] При обучении моделей машинного обучения 114 изображение 140 может быть базовым изображением, используемым для создания нескольких обучающих изображений. В частности, в одном варианте реализации вычислительное устройство 110 может включать механизм 111 аугментации изображений для формирования обучающих изображений на основе базового изображения. Вычислительное устройство 110 может дополнительно включать механизм обработки изображений для выполнения определения объекта и (дополнительно) классификации объекта (среди различных типов объектов) на этапах обучения и определения. Механизм 111 аугментации изображения и механизм 112 обработки изображения может содержать инструкции, сохраненные на одном или более физических машиночитаемых носителях данных вычислительного устройства 110 и выполняемые на одном или более устройствах обработки данных вычислительного устройства 110. В одном варианте реализации механизм 111 аугментации изображений и механизм 112 обработки изображений может быть реализован в качестве единого компонента. В некоторых вариантах реализации механизм 111 аугментации изображений на вычислительном устройстве может отсутствовать. Например, механизм 111 аугментации изображений может быть расположен на машине разработчика и может быть не представлен на машине клиента. Более конкретно, после использования механизма 111 аугментации изображений для создания обучающих изображений для обучения одной или более моделей 114 нейронных сетей механизм обработки изображений (включающий обученные модели 114) может быть передан заказчику без механизма 111 аугментации изображений.
[0036] Механизм 112 обработки изображений (механизм 111 аугментации изображений, если применимо) может выполнять предварительную обработку изображений до использования изображений для обучения моделей 114 машинного обучения и (или) применения обученных моделей 114 машинного обучения к изображениям. В некоторых вариантах реализации обученные модели машинного обучения 114 могут быть частью системы обработки изображений 112 или могут быть доступны с другой машины (например, сервера 150) через систему обработки изображений 112. На основе выхода обученных моделей 114 машинного обучения механизм 112 обработки изображений может обнаруживать один или более объектов на изображениях 140. Механизм 112 обработки изображений может дополнительно определять конкретный тип обнаруженных объектов.
[0037] Механизм 112 обработки изображений может представлять собой клиентское приложение или же сочетание компонентов, базирующихся на рабочей станции клиента и на сервере. В некоторых вариантах реализации изобретения механизм 112 обработки изображений может быть запущен на исполнение исключительно на вычислительном устройстве клиента, например, это могут быть сервер, персональный компьютер, планшетный компьютер, смартфон, ноутбук, фотокамера, видеокамера и т.д. В альтернативном варианте реализации клиентский компонент механизма 112 обработки изображений, исполняемый на клиентском вычислительном устройстве, может получать документ и передавать его на серверный компонент механизма 112 обработки изображений, исполняемый на серверном устройстве, где выполняется обнаружение объектов. Затем серверный компонент механизма 112 обработки изображений может вернуть результат распознавания (например, координаты одного или более обнаруженных объектов) в клиентский компонент механизма 112 обработки изображений, исполняемого на клиентском вычислительном устройстве для дальнейшего использования и (или) хранения. При альтернативном подходе серверный компонент механизма 112 обработки изображений может передавать результат распознавания в другое приложение. В других вариантах реализации изобретения механизм 112 обработки изображений может быть запущен на исполнение на серверном устройстве в качестве интернет-приложения, доступ к которому обеспечивается через интерфейс браузера. Серверное устройство может быть представлено одной или более вычислительными системами, например, одним или более серверами, рабочими станциями, большими ЭВМ (мейнфреймами), персональными компьютерами (ПК) и т.д.
[0038] Сервер 150 может быть стоечным сервером, маршрутизатором, персональным компьютером, карманным персональным компьютером, мобильным телефоном, портативным компьютером, планшетным компьютером, фотокамерой, видеокамерой, нетбуком, настольным компьютером, медиацентром или их сочетанием и (или) содержать указанное оборудование. Сервер 150 может содержать обучающую систему 151. Обучающая система 151 может строить модель (модели) машинного обучения 114 для обнаружения полей. Модель (модели) 114 машинного обучения, приведенная на Фиг. 1, может быть обучена обучающей системой 151 с использованием обучающих данных, которые содержат обучающие входные данные и соответствующие обучающие выходные данные (правильные ответы на соответствующие обучающие входные данные). Обучающая система 151 может находить в обучающих данных шаблоны, которые связывают обучающие входные данные с обучающими выходными данными (предсказываемым результатом), и предоставлять модели 114 машинного обучения, которые используют эти шаблоны. Как будет более подробно описано ниже, набор моделей 114 машинного обучения может быть составлен, например, из одного уровня линейных или нелинейных операций (например, машина опорных векторов (SVM)) или может представлять собой глубокую нейронную сеть, например, модель машинного обучения, составленную из нескольких уровней нелинейных операций. Примерами глубоких нейронных сетей являются нейронные сети, включая сверточные нейронные сети, рекуррентные нейронные сети (RNN) с одним или более скрытыми слоями и полносвязные нейронные сети. В некоторых вариантах реализации изобретения модели машинного обучения 114 могут включать одну или более нейронных сетей, описанных применительно к Фиг. 4.
[0039] Модели 114 машинного обучения могут быть обучены обнаружению изображений объектов, встроенных в изображения 140 или наложенных на них, и определению наиболее вероятных типов различных обнаруженных объектов на изображениях 140. Обучающая система 151 может создавать обучающие данные для обучения моделей 114 машинного обучения. Механизм 151 обучения (размещенный на сервере 150) может работать в сочетании с механизмом 111 аугментации изображения (размещенном на вычислительном устройстве 110). Например, вычислительное устройство 110 может быть вычислительным устройством разработчика. Разработчик может иметь доступ к базовым изображениям и изображениям обучающих объектов. Механизм 111 аугментации изображений может сочетать базовое изображение и одно или более изображений обучающих объектов, выполнять обработку комбинированных изображений (в соответствии с приведенным ниже описанием для Фиг. 2) и передавать получаемые изображения (данные обучения) в хранилище 120, где к ним может быть обеспечен доступ для обучающего механизма 151. Обучающие данные могут храниться в хранилище 120 и включать в себя один или более наборов обучающих входных данных 122 и один или более наборов обучающих выходных данных 124. Такие обучающие данные могут также содержать данные 126 о сопоставлении обучающих входных данных 122 с обучающими выходными данными 124. В некоторых вариантах реализации данные сопоставления 126 могут включать перечень некоторых объектов (и их типов) в обучающих входных данных 122. Например, данные сопоставления могут включать запись «баркод» и перечень некоторых (или всех) объектов (добавленных механизмом аугментации изображений или уже присутствующих в базовом изображении), которые относятся к классу «баркод» в конкретном обучающем исходном изображении. Данные сопоставления 126 могут включать пространственное расположение (любые наборы координат, указывающих на место расположения объекта в обучающем изображении) и дополнительно также могут включать тип некоторых объектов. Обучающие входные данные 122 могут включать ряд различных базовых изображений и ряд различных модификаций (аугментаций) базовых изображений. Обучающие выходные данные 124 могут быть классами и типами объектов с обучающими входными данными 122. На этапе обучения обучающая система 151 может находить шаблоны в обучающих данных, которые можно использовать для сопоставления обучающих входных данных с обучающими выходными данными. Такие шаблоны могут быть впоследствии использованы моделью (моделями) 114 машинного обучения для дальнейших предсказаний. Модель (модели) машинного обучения может быть обучена поиску конкретных объектов, представляющих интерес для клиента (например, баркоды и почтовые штампы), но игнорировать объекты других классов (например, текст, написанный от руки).
[0040] Хранилище 120 может представлять собой постоянную память, которая в состоянии сохранять файлы, а также структуры данных для выполнения распознавания объектов в соответствии с вариантами реализации настоящего изобретения. Хранилище 120 может располагаться на одном или более запоминающих устройствах, таких как основное запоминающее устройство, магнитные или оптические запоминающие устройства на основе дисков, лент или твердотельных накопителей, NAS, SAN и т.д. Несмотря на то, что хранилище изображено отдельно от вычислительного устройства 110, в некотором варианте осуществления хранилище 120 может быть частью вычислительного устройства 110. В некоторых вариантах реализации хранилище 120 может представлять собой подключенный к сети файловый сервер, в то время как в других вариантах реализации изобретения хранилище содержимого 120 может представлять собой какой-либо другой тип энергонезависимого запоминающего устройства, например, объектно-ориентированную базу данных, реляционную базу данных и т.д., которая может находиться на сервере или одной или более различных машинах, подключенных к нему через сеть 130.
NN
[0041] В некоторых вариантах реализации обучающая система 151 может обучать одну или более искусственных нейронных сетей (модели 114), каждая из которых содержит множество нейронов для обнаружения объектов в соответствии с некоторыми вариантами реализации настоящего изобретения. Каждый нейрон может получать свои исходные данные от других нейронов или из внешнего источника и генерировать результат, применяя функцию активации к сумме взвешенных исходных данных и полученному при обучении значению смещения. Нейронная сеть может содержать множество нейронов, распределенных по слоям, включая входной слой, один или более скрытых слоев и выходной слой. Нейроны соседних слоев соединены взвешенными ребрами. Веса дуг определяются на этапе обучения сети на основе обучающей выборки данных, которая содержит множество изображений с известными объектами и классами объектов. В иллюстративном примере все веса ребер инициализируются некоторыми изначально назначенными случайными значениями. Для всех входящих данных 122 в обучающей выборке система обучения 151 может активировать соответствующую нейронную сеть (выбор соответствующей нейронной сети может выполняться механизмом 112 обработки изображений). Наблюдаемый выход нейронной сети OUTPUT (ОБУЧАЮЩИЕ ВХОДНЫЕ ДАННЫЕ) сравнивается с желаемыми обучающими выходными данными 124, заданными обучающей выборкой:
NN
Сравнение: OUTPUT (ОБУЧАЮЩИЕ ВХОДНЫЕ ДАННЫЕ) в сравнении с ОБУЧАЮЩИМИ ВЫХОДНЫМИ ДАННЫМИ.
NN
NN
NN
Полученная погрешность - разница между выходными данными нейронной сети OUTPUT и желаемыми ОБУЧАЮЩИМИ ВЫХОДНЫМИ ДАННЫМИ - распространяется назад на предыдущие слои нейронной сети, в которых веса настраиваются таким образом, чтобы изменить OUTPUT и приблизить его к РЕЗУЛЬТАТУ ОБУЧЕНИЯ. Такая корректировка может повторяться до тех пор, пока ошибка в результатах для конкретных обучающих входных данных 122 не будет удовлетворять заранее определенным условиям (например, станет ниже заранее определенной погрешности). Впоследствии могут быть выбраны другие обучающие входные данные 122, может быть сгенерирован новый OUTPUT, может быть реализован новый ряд корректировок и т.д. до тех пор, пока нейронная сеть не будет обучена с достаточной степенью точности. В некоторых вариантах реализации данный способ обучения может применяться для обучения одной или более искусственных нейронных сетей, проиллюстрированных на Фиг. 4.
[0042] После обучения моделей 114 машинного обучения набор моделей 114 машинного обучения может быть передан механизму 112 обработки изображений для анализа целевых изображений. Например, механизм 112 обработки изображений может ввести целевое изображение на вход набора моделей 114 машинного обучения. Механизм 112 обработки изображений может получать один или более выходов определения от набора обученных моделей машинного обучения и может извлекать из выходов определения классы, расположения и типы различных объектов, изображения которых присутствуют в целевом изображении.
[0043] На Фиг. 2 представлена иллюстрация примера процесса 200 аугментации базового изображения для создания реалистичных изображений, которые могут использоваться для обучения одной или более нейронных сетей, работающих в соответствии с некоторыми вариантами реализации настоящего изобретения. В иллюстративном примере, показанном на Фиг. 2, вычислительная система, реализующая показанные методики, может выполнять эмуляцию реалистичных изображений. Процесс эмуляции может включать вставку обучающего изображения объекта (обучающий объект) в базовое изображение, расфокусировку изображения, введение цифрового шума, эмуляцию предварительной обработки изображения устройством получения изображения (например, фотокамера), смаз изображения и т.д. Такие операции обработки изображения могут давать аугментированный набор изображений, включающих вставленные обучающие объекты.
[0044] Более конкретно, как показано на Фиг. 2, механизм 111 аугментации изображений может получать базовое изображение 210, которое может быть любым фактическим изображением или некоторым искусственно подготовленным изображением. Базовое изображение может быть получено в виде аналоговой или цифровой фотографии, путем сканирования, обработки в видеокамере и т.д. Базовое изображение 210 может быть в любом цифровом формате, доступном для обрабатывающего устройства. Базовое изображение 210 может быть монохромным изображением или цветным изображением. Цветовая схема, используемая в цифровом представлении базового изображения 210, может быть схемой RGB (красный, зеленый, синий), или CMYK (четырехцветная автотипия), или любой другой схемой, позволяющей эффективно выполнять цветовую дифференциацию. Базовое изображение 210 может не содержать объекты, дифференциации которых должны быть обучены модели нейронной сети. В некоторых вариантах реализации базовое изображение 210 может уже содержать некоторые из отображаемых в нем объектов. Базовое изображение может быть преобразовано в растровое с разбиением на пиксели. Пиксели могут быть произвольного размера и формы. При преобразовании в растровое изображение могут использоваться квадратные пиксели, треугольные пиксели, многоугольные пиксели и т.д. Размер и форма пикселей может задаваться механизмом 111 аугментации изображений в тех случаях, когда механизм 111 аугментации изображений вызывает получение базового изображения 210 и (или) его преобразование в растровое изображение. В некоторых вариантах реализации размер и форма пикселей могут быть заранее зафиксированы, например, устройством, выполнившим преобразование в растровое изображение до того, как базовое изображение было получено механизмом 111 аугментации изображений. Каждый пиксель может быть охарактеризован одним или более значениями яркости. Например, в одном варианте реализации монохромное изображение может иметь одно значение яркости на пиксель в диапазоне от 0 (белый пиксель) до 1 (черный пиксель). Аналогичным образом, в некоторых вариантах реализации изображение с цветовой схемой RGB может иметь значения яркости для каждого цвета в диапазоне от 0 (заданный цвет отсутствует) до 1 (полная яркость соответствующего цвета), при этом сумма трех значений яркости добавляется к максимальному значению 1. В таких вариантах реализации значения 0,33 для каждого из трех цветов могут представлять белый цвет, а все значения 0 могут представлять черный цвет. На изображении с цветовой схемой CMYK может быть 4 значения яркости, равные 0 и соответствующие белому цвету.
[0045] Механизм аугментации изображений 111 может также получать одно или более изображений обучающих объектов 220. Обучающие объекты 220 могут быть представлены баркодами, печатями, текстовыми строками, логотипами или любыми другими объектами, распознаванию которых должна быть обучена модель нейронной сети. В некоторых вариантах реализации обучающие объекты 220 могут быть представлены аналоговыми изображениями, преобразованными в цифровой формат (например, путем преобразования в растровое изображение). В других вариантах реализации обучающие объекты могут быть представлены цифровыми изображениями (например, изображениями, изначально созданными с использованием векторной графики). В некоторых вариантах реализации механизм 111 аугментации изображений может выполнять преобразование в растровые цифровые изображения с использованием одного и того же (или аналогичного) формата растрового изображения, как тот, который используется в базовом изображении 210.
[0046] Затем механизм 111 аугментации изображений может определить расположения 230 аугментации для размещения одного или более изображений обучающих объектов 220 в базовом изображении 210. В некоторых вариантах реализации объекты должны быть вставлены в места в базовом изображении, имеющие достаточно большой размер для размещения объекта без наложения на другие графические или текстовые элементы базового изображения 210. Для определения мест расположения, имеющих достаточно большой размер для размещения обучающего объекта, механизм 111 аугментации изображений может проанализировать фон изображения. Например, механизм 111 аугментации изображений может определить доминирующий цвет или яркость (например, белый или серый или любой другой цвет), наиболее распространенный в базовом изображении 210. В некоторых вариантах реализации пиксели с яркостью, отличающейся на определенное заданное значение, могут считаться пикселями одного цвета. Например, после сканирования белый цвет может выглядеть как светло-серый в связи с артефактами и ограничениями сканирования.
[0047] В некоторых вариантах реализации фон может быть определен на основе цветовой гистограммы изображения или нескольких цветовых гистограмм для различных частей изображения. В некоторых вариантах реализации обучающий объект может быть вставлен в базовое изображение 210 независимо от локальной среды для эмуляции экземпляров, где поверх других элементов изображения размещены печать или штамп.
[0048] После определения возможных мест вставки изображений обучающих объектов 220 механизм 111 аугментации изображений может выполнить обработку аугментацией 240. Каждое из определенных мест может потенциально служить местом для вставки изображения обучающего объекта 220. Вставка может выполняться таким образом, чтобы изображения обучающих объектов принимали различные углы относительно опорной оси (например, горизонтальной оси) базового изображения 210. В некоторых вариантах реализации пиксели базового изображения 210 могут быть заменены на пиксели изображения обучающих объектов 220. Однако при такой замене могут создаваться обучающие изображения с недостаточной гармоничной интеграцией объектов в базовое изображение. Например, пиксели обучающих объектов 220 могут иметь более высокие (более низкие) значения яркости, чем пиксели базового изображения 210. Для решения этой проблемы механизм 111 аугментации изображений может корректировать значения яркости вставленных пикселей с учетом контрольного значения яркости базового изображения 210. Например, контрольное значение может соответствовать среднему значению яркости (не фоновых) пикселей базового изображения 210 или некоторой части базового изображения 210, например, вблизи (например, в заданной части базового изображения) выбранного места аугментации 230. В некоторых вариантах реализации может быть реализована обратная процедура. А именно, вместо замены пикселей базового изображения 210 на пиксели обучающих объектов 220 и корректировки обучающих объектов 220 с учетом значений яркости базового изображения 210, механизм 111 аугментации изображений может выполнять корректировку пикселей базового изображения 210 с учетом значений яркости пикселей изображений обучающих объектов 220.
O
B
O
O
O
B
O
B
O
O
B
O
B
B
O
[0049] Более конкретно, допустим, что базовое изображение 210 содержит пиксели, имеющие максимальное значение яркости 0,6, и пиксели обучающих объектов 220, имеющие максимальное значение яркости 0,9. При простой замене пикселей базового изображения на пиксели обучающих объектов возможна аугментация обучающего изображения, в котором часть изображения на 50% темнее остального изображения. Такое обучающее изображение может «выдавать» расположение объекта и, следовательно, быть эффективным для обучения моделей 114 нейронной сети. Вместо этого пиксели базового изображения 210 могут быть скорректированы (например, затемнены, высветлены) с учетом значений яркости пикселей обучающего объекта 220. Например, если пиксель P объекта должен быть размещен в месте, где в настоящее время расположен пиксель P базового изображения, то можно определить значение яркости S пикселя P. В одном из примеров реализации изобретения, если пиксель имеет белый цвет (S=0) или имеет значение яркости ниже определенного минимального значения, то пиксель P может не требовать изменения. (Это соответствует ситуации, где, например, пиксель P является белым пикселем, расположенным между темными линиями баркода, - при этом сохраняется исходный внешний вид пикселя P базового изображения). Если пиксель P обучающего объекта имеет отличное от нуля значение яркости S, то значение яркости пикселя P может быть скорректировано (увеличено) с учетом значения яркости S согласно следующей формуле: S (S+S × (0,6/0,9) в рассматриваемом варианте реализации. В других вариантах реализации вместо этого могут использоваться различные другие формулы корректировки (например, на основе нелинейных функций). Специалисту в данной области техники будет понятно, что имеется практически неограниченное число возможностей корректировки значения яркости пикселя базового изображения с использованием значения яркости соответствующего пикселя изображения в качестве весового коэффициента.
B
O
B
O
B
B
O
[0050] Описанный выше способ гармоничной аугментации базовых изображений с изображениями обучающих объектов также может применяться к цветным изображениям (для базовых изображений или изображений обучающих объектов). Более конкретно, корректировка значений яркости каждого цвета пикселя P может выполняться с учетом значения яркости соответствующего цвета соответствующего пикселя P. Например, если сканирование базового изображения привело к яркости пурпурного цвета 0,1, тогда то же самое значение яркости пурпурного цвета 0,1 может быть добавлено к (взвешенному) значению яркости пурпурного цвета пикселей изображения обучающего объекта. В тех вариантах реализации, где используется цветовая схема RGB, белый фон может соответствовать полной яркости каждого цвета. В таких вариантах реализации значения яркости могут быть вычтены (а не добавлены, как в случае с используемой цветовой схемой CMYK). Например, в схеме, где белый цвет имеет значение яркости S=1, а черный цвет имеет значение яркости S=0, максимальная темнота пикселей базового изображения 210 может соответствовать значению яркости 0,3, при этом пиксели обучающего объекта 220 могут иметь максимальное затемнение, соответствующее значению яркости 0,1. Для обеспечения гармоничной интеграции обучающего объекта 220 в базовое изображение 210 механизм 111 аугментации изображения может корректировать значение яркости S пикселя базового изображения с учетом значения яркости S соответствующего пикселя обучающего объекта по формуле S (S - (1-S) × (1-0,3)/(1-0,1).
[0051] В результате аугментации 240 механизм 111 аугментации изображений может вывести несколько реалистичных обучающих изображений 250, даже если изначально имеется лишь небольшое количество базовых изображений 210. Дополнительные выходные изображения 250 могут быть получены за счет дополнительной постобработки выходных изображений. Например, в некоторых вариантах реализации механизм 111 аугментации изображений может снизить контраст некоторых из сформированных изображений, например, за счет сокращения максимальной разности яркости различных пикселей сформированных обучающих изображений с помощью заданного значения, например 0,1 или 0,2 от исходной максимальной разности. В некоторых вариантах реализации механизм 111 аугментации изображений может имитировать дополнительный источник на изображении путем дополнительного применения, по меньшей мере к подмножеству пикселей изображения, Гауссова шума низкой амплитуды между более насыщенными и менее насыщенными частями обучающих изображений. В некоторых вариантах реализации механизм 111 аугментации изображений может частично провести расфокусировку изображения, например, накладывая размытие по Гауссу с заранее определенным или динамически настраиваемым радиусом, который может выбираться из заранее определенного или динамически настраиваемого диапазона. В некоторых вариантах реализации механизм 111 аугментации изображений может накладывать на изображение размытие движением, имитируя движение изображаемых объектов в течение времени экспозиции, которое определяется скоростью срабатывания затвора. В некоторых вариантах реализации механизм 111 аугментации изображений может применить к подмножеству обучающих пикселей изображения имитированный цифровой шум, например, Гауссов шум заданной или динамически корректируемой амплитуды. В некоторых вариантах реализации механизм 111 аугментации изображений может имитировать артефакты, добавленные камерой, например, путем применения сигма-фильтра к подмножеству пикселей изображения. В некоторых вариантах реализации механизм 111 аугментации изображений может применять Гауссово размытие с заданным или динамически регулируемым значением сигмы. В некоторых вариантах реализации механизм 111 аугментации изображений может вводить шум, т.е. случайные колебания значений яркости для различных цветов. В некоторых вариантах реализации механизм 111 аугментации изображений может вводить линии или штрихи для имитации различных артефактов сканирования.
[0052] Выходные реалистичные изображения 250 могут быть связаны с данными сопоставления (например, с данными сопоставления 126). Данные сопоставления могут включать определения добавленных изображений обучающих объектов 220, например, координат добавленных изображений. Данные сопоставления могут дополнительно определять классы и типы добавленных изображений. Например, данные сопоставления могут выполнять индексацию добавленных объектов по классу/типу и давать координаты описанного прямоугольника (или любой иной геометрической фигуры, в том числе круга, овала или многоугольника), включающего объект.
[0053] После этого механизм 112 обработки изображений может использовать реалистичные обучающие изображения 250, созданные механизмом 111 аугментации изображений для обучения моделей 114, причем модели 114 могут обнаруживать и определять объекты в обучающих изображениях 250, а также целевые изображения, которые не использовались в обучении. При обучении искусственно подготовленные обучающие изображения 250 могут использоваться совместно с реальными изображениями, которые не были аугментированы. В некоторых вариантах реализации могут использоваться только реальные изображения. В некоторых вариантах реализации могут использоваться только искусственно аугментированные изображения. В некоторых вариантах реализации использование искусственно аугментированных изображений может сокращать необходимость, требуемые усилия и затраты для получения достаточного количества обучающих изображений. Добавление аугментированных изображений к множеству обучающих изображений может давать преимущество, связанное с тем, что такие изображения позволяют формировать значительное количество обучающих изображений, даже начиная с относительно небольшого количества доступных реальных изображений.
[0054] На Фиг. 3 представлена иллюстрация примера обучения изображений, полученных в результате аугментации базового изображения, с помощью изображений обучающего объекта в соответствии с некоторыми вариантами реализации настоящего изобретения. Показано базовое изображение 210 (левая сторона), содержащее различные объекты, например, множество строк текста, набранного различным шрифтом, фирменный бланк, подпись, официальная печать и т.д. После определения областей фона в базовом изображения 210 механизм 111 аугментации изображений вставляет изображение обучающего объекта (баркод) 220 в место в нижней части базового изображения (центральная часть) и в верхнюю часть базового изображения (правая часть).
[0055] На Фиг. 4 представлена принципиальная схема, иллюстрирующая пример системы 400 нейронной сети, которая может обнаруживать объекты и определять типы обнаруженных объектов на изображениях, в соответствии с некоторыми вариантами реализации настоящего изобретения. Нейронная сеть 400 может содержать множество нейронов, связанных с получаемыми при обучении весами и смещениями. Эти нейроны могут быть организованы по слоям. Некоторые из слоев могут быть скрытыми. Как показано, система 400 нейронной сети может включать в себя подсистему A 430, подсистему B 450 и подсистему C 480. Каждая из подсистем 430, 450 и 480 может включать несколько нейронных слоев и может быть настроена для выполнения одной или более функций для обнаружения объектов в соответствии с настоящим изобретением.
[0056] Вход механизма 112 обработки изображений может быть представлен одним или более изображениями 410. Если изображения имеют физический вид (например, на бумаге, пленке и т.п.), то механизм 112 обработки изображений или вычислительное устройство 110 (или сервер 150) могут получать физические изображения (например, фотографии) и преобразовывать полученные изображения в цифровые изображения (например, путем сканирования) в одном из цифровых форматов (JPEG, TIFF, GIG, BMP, CGM, SVG и др.).
[0057] В некоторых вариантах реализации визуализация может выполняться непосредственно перед обработкой изображения 410 нейросетевой системой 400. В других вариантах реализации визуализация может выполняться в некоторый момент в прошлом, и изображение 410 может быть получено из локального или сетевого (например, облачного) хранилища. Изображение 410 может проходить преобразование в растровый формат для представления изображения 410 набором пикселей. Количество пикселей может зависеть от разрешения изображения, например, изображение может содержать 4096 × 2048 пикселей. Каждый пиксель может быть охарактеризован одним или более значениями яркости. Монохромный пиксель может быть охарактеризован одним (k=1) значением яркости, представляющим затемнение пикселя, где значение 0 (или 1 при инвертированной схеме) соответствует белому пикселю, а значение 1 (или 0) соответствует черному пикселю. Значение яркости может предполагать постоянные (или дискретизированные) значения от 0 до 1 (или в любых других выбранных пределах). Аналогичным образом, в одном варианте реализации цветной пиксель может быть представлен более, чем одним значением яркости, например, тремя (k=3) отдельными значениями яркости для красного, зеленого и синего цвета. В других вариантах реализации количество значений яркости может быть различным, например, может быть 4 значения (k=4), если используется цветовая схема CMYK.
[0058] В некоторых вариантах реализации система нейронной сети 400 может дополнительно выполнять сокращение 420 разрешения изображения. Например, некоторые объекты, в том числе баркоды, могут иметь достаточно большой размер, чтобы даже при обработке с пониженным разрешением имелась возможность успешного обнаружения таких объектов при значительном сокращении времени вычисления. Для снижения разрешения 420 механизм 112 обработки изображений может совмещать пиксели для образования более крупных элементов (суперпикселей, плиток), размеры которых могут составлять n × m. В некоторых вариантах реализации элементы могут быть представлены квадратами (n=m). Например, могут использоваться элементы размером 4 × 4 пикселя, таким образом исходное разрешение изображения 4096 × 2048 пикселей будет снижено до 1024 × 512 элементов (суперпикселей). В некоторых вариантах реализации, если требуется высокое разрешение, сокращение разрешения 420 может не выполняться. В таких вариантах реализации элемент может быть представлен одним пикселем.
[0059] Сокращение разрешения 420 может выполняться подсистемой A 430 системой нейронной сети 400. Подсистема A 430 может быть обучена согласно приведенному выше описанию. В зависимости от типа объекта, который должен быть обнаружен, каждый элемент с координатами (x,y) может быть описан как вектор vec(x,y) с соответствующим (для типа обнаруженного объекта) количеством компонентов. Вектор vec(x,y) может относиться к визуальному представлению элемента (x,y). Вектор vec(x,y) может включать компоненты, описывающие средние значения интенсивности для каждого цвета пикселей элемента. Вектор vec(x,y) также может включать другие компоненты, описывающие отклонения и (или) корреляции значений яркости пикселей элемента (x,y) и т.д. Вектор vec(x,y) может иметь ряд компонентов N в диапазоне от одного до общего количества значений яркости k × n × m всех расположенных ниже пикселей элемента. Для эффективного сокращения разрешения оптимальным решением может быть сохранение количества компонентов ниже общего количества значений яркости k × n × m, но при этом выше количества цветов k. За счет этого подсистема A 430 может строить векторы, описывающие элементы более подробно, только с использованием некоторых средних значений яркости составляющих пикселей, при этом с сохранением достаточно низкого количества параметров для эффективной обработки другими компонентами системой нейронной сети 400. Количество параметров может быть скорректировано в зависимости от характеристик обученной системы 400, от экспертной обратной связи и (или) ожидаемых возможностей обработки клиентскими вычислительными системами. Например, если обученная система 400 должна использоваться на процессоре низкой мощности клиентского устройства, то количество компонентов N может быть соответствующим образом ограничено для балансировки скорости обработки с учетом точности обнаружения объектов для этого конкретного устройства.
1
2
N
[0060] Компонент vec(x,y)=(z, z, … z) может быть вычислен с количеством k × n × m значений яркости составляющих пикселей и с использованием обучаемых весовых коэффициентов и смещений стандартных методов машинного обучения. В частности, обучение подсистемы А 430 может выполняться путем сравнения фактических выходных данным подсистемы А 430 с требуемыми обучающими выходными данными, обратного распространения наблюдаемых разностей и корректировки весовых коэффициентов и смещений до минимизации наблюдаемых разностей. Например, в подсистеме A 430 может использоваться один или более матричных фильтров, параметры которых (элементы матрицы, глубина, шаг и т.д.) могут быть скорректированы в процессе обучения. Подсистема A 430 может использовать множество нейронных слоев, таких как входной слой, выходной слой и один или более скрытых слоев. Подсистема A 430 может быть сверточной нейросетью (CNN), которая выводит сниженное количество каналов (N для каждого элемента) по сравнению с количеством входных каналов (k × n × m для каждого элемента). Подсистема A 430 может изменять размер элемента, количество компонентов N векторов vec(x,y) и количество обучаемых параметров каждого из объектов, которые должны быть обнаружены системой нейронной сети 400.
1
2
N
1
2
M
1
2
M
1
2
M
1
2
N
[0061] Выход подсистемы A 430 - набор векторов {vec(x,y)} - может обрабатываться для обнаружения объектов (операция 440) с помощью одного или более нейронных слоев, предназначенных для учета контекста всего изображения (или части изображения, включающей различные элементы). Нейронные слои, выполняющие расширение контекста/обнаружение объектов, могут быть объединены в подсистему (подсеть) B 450. Следует понимать, что подсистема B 450 может быть интегрирована в подсистему A 430 и что разделение между подсистемой A (подсетью) 430 и подсистемой B 450, схематически показанное на Фиг. 4, предназначено исключительно для облегчения описания и понимания. Подсистема B 450 может принимать векторы vec(x,y)=(z, z, … z) в качестве входа и создавать векторы VEC(x,y)=(Z, Z, … Z) в качестве выхода. Выходные векторы VEC(x,y)=(Z, Z, … Z) могут выводиться для каждого элемента (x,y) изображения 410. В некоторых вариантах реализации, где обнаруживается несколько классов объектов, с каждым элементом (x,y) может быть связано несколько векторов VEC(x,y), по одному вектору для каждого определенного класса. Если не указано иное, следует понимать, что приведенное ниже описание распространяется на каждый класс объектов, который может быть определен независимо (например, параллельно). Количество компонентов M в выходных векторах VEC(x,y)=(Z, Z, … Z) может отличаться от количества компонентов N во входных векторах vec(x,y)=(z, z, … z). Выходные векторы VEC(x,y) могут иметь значение, отличающееся от значения входных векторов vec(x,y). Например, входные векторы могут описывать внешний вид соответствующего элемента (x,y), при этом выходные векторы могут описывать контекст элемента (x,y) на изображении, в том числе, например, вероятность того, что элемент (x,y) относится к особому объекту или фону.
[0062] Учитывая архитектуру подсистемы B 450, подробное описание которой приведено ниже, выходные векторы VEC(x,y) могут учитывать контекст всего изображения или части изображения. Подсистема B 450 может включать ряд нейронных слоев. Входной слой подсистемы B 450 может принимать ряд каналов, вводящих векторы vec(x,y) в каждом рецептивном поле выделенного канала. Рецептивные поля первого слоя подсистемы B 450 могут включать относительно небольшое количество элементов. Например, размер рецептивного поля входного слоя может составлять 8 × 8 элементов (4 × 4 элемента, 4 × 8 элементов и т.д.). При обработке первым слоем входных векторов vec(x,y) и предоставлении множества промежуточных векторов во второй (третий и т.д.) слой нейронов подсистемы B 450 размер рецептивного поля может увеличиться до 32 × 32 элементов и более. Это означает, что для вектора, описывающего элемент (x,y), выполняется пересчет с учетом контекста увеличивающейся (с каждым дополнительным слоем нейронов) ширины изображения 410. В некоторых вариантах реализации максимальный размер рецептивного поля (например, размер, достигнутый в первом слое подсистемы B 450) может быть полным размером изображения 410 или значительной частью изображения (например, половиной или четвертью изображения, или некоторой частью изображения). Количество слоев, а также размеры исходных и окончательных рецептивных полей могут зависеть от класса обнаруживаемого объекта. Например, при обнаружении печати подсистема B 450 может использовать пять нейронных слоев, при этом для обнаружения баркодов подсистемой B 450 векторы VEC(x,y) могут быть определены выходом четвертого слоя, чтобы последний нейронный слой мог не использоваться при обнаружении баркода.
1
1
2
M
1
1
2
M
1
[0063] Выходные векторы VEC(x,y) могут описывать различные особенности и контексты элемента (x,y) на изображении 410. Например, первый компонент Z выходного вектора VEC(x,y)=(Z, Z, … Z) может описывать вероятность того, что элемент (x,y) относится к объекту класса обнаружения. Например, значение первого компонента Z>0,5 может указывать на то, что элемент (x,y) относится к объекту, при этом значение первого компонента Z ≤ 0,5 может указывать на то, что элемент (x,y) не относится к объекту (например, относится к фону). Пороговое значение может отличаться от 0,5 и может зависеть от реализации изобретения, от класса обнаруживаемого объекта и т.д. Оставшиеся компоненты Z, … Z выходного вектора могут содержать дополнительную информацию о вероятности того, что элемент (x,y) относится к особому типу среди типов, относящихся к классу, который был определен с учетом первого компонента Z.
1
[0064] Элементы (x,y), для которых механизм 112 обработки изображений определил наличие первого компонента Z, удовлетворяющего пороговым условиям, могут считаться множеством элементов, относящихся к определенному объекту. Такое множество элементов может быть представлено связной компонентой (графом). Например, две вершины графа (элементы изображения) могут рассматриваться как тесно связанные, если расстояние между ними (по горизонтали, вертикали, диагонали и т.д.) не превышает заданного значения (например, расстояние не более 3 элементов). Граф может считаться соединенным, если для любых двух вершин графа существует путь, начинающийся в одной вершине и заканчивающийся в другой вершине с прохождением по тесно соединенным вершинам. Иными словами, если имеется два (или более) тесно связанных множеств элементов, разделенных значительным расстоянием, то такие множества могут считаться не относящимися к соединенному графу (например, могут представлять два раздельные объекта).
1
[0065] На Фиг. 5 показаны некоторые примеры соединенных графов, которые представляют определенные объекты, в соответствии с некоторыми вариантами реализации настоящего изобретения. На чертеже схематически показаны определенные объекты с представлением их элементов (суперпикселей). Отображаются первые компоненты Zвыходных векторов VEC(x,y). Для краткости первые две компоненты округляются до ближайшего целого числа (например, значение 0,3, указывающее на то, что элемент относится к фону, округляется до нуля, а значение 0,7, указывающее на то, что элемент относится к объекту, может быть округлено до 1). Соединенный граф 510 имеет связанный многоугольник (прямоугольник), начерченный вокруг соединенного графа. Соединенный граф 520 имеет связанный многоугольник (не прямоугольной формы), начерченный вокруг соединенного графа. Оба графа 510 и 520 имеют все элементы внутри соответствующих многоугольников, относящиеся к классу «объекта» (на что указывает соответствующее число 1). Соединенный граф 530, наоборот, имеет прямоугольник, начерченный вокруг соединенного графа, в котором не все элементы могут быть определены как относящиеся к классу «объект». При этом механизм 112 обработки изображений может определять внешний прямоугольник как многоугольник минимальной площади, описывающий определенный объект. В некоторых вариантах реализации описывающая фигура может быть кругом или овалом. После определения соединенных графов подсистема B 450 может выводить определенные графы (и соответствующие описывающие фигуры). На Фиг. 6 показан пример выходов 600 системы 400 нейронной сети, определяющих баркоды на изображениях, в соответствии с некоторыми вариантами реализации настоящего изобретения. Как показано на Фиг. 6, система нейронной сети 400 успешно обнаружила многоугольники 610 и 620, включающие баркоды на изображении.
1
2
M
[0066] Также со ссылкой на Фиг. 4 векторы VEC(x,y)=(Z, Z, … Z) и соединенные графы (соответствующие определенным объектам, относящимся к определенному классу), выведенные подсистемой B 450, могут использоваться для определения типа, к которому относятся обнаруженные объекты. В одном варианте реализации такое определение может выполняться механизмом 112 обработки изображений, который вводит векторы VEC(x,y) в подсистему C 480. В некоторых вариантах реализации механизм 112 обработки изображений может использовать формирование гипотез (операция 460) и классификацию (операция 470) для определения наиболее вероятного типа обнаруженного объекта. Подсистема C 480 может иметь один или более полносвязных (fully-connected/dense) нейронных слоев. Некоторые из полносвязных слоев могут использовать функцию софтмакс (softmax). В некоторых вариантах реализации один или более полносвязных слоев подсистемы C 480 могут быть соединены друг с другом слоями, которые не являются полносвязными.
j
1
2
3
j
j
j
j
j
j
j
[0067] Подсистема C 480 может обрабатывать векторы VEC(x,y) в одном или более нейронных слоях и определять значение W(x,y), отражающее вероятность того, что элемент (x,y) относится к объекту типа j. Например, W(x,y) может описывать вероятность того, что элемент (x,y) относится к баркоду типа QR. W(x,y) может описывать вероятность того, что элемент (x,y) относится к баркоду типа EAN-13. W(x,y) может описывать вероятность того, что элемент (x,y) относится к баркоду типа EAN-8 и т.д. Значения W(x,y) в некоторых вариантах реализации могут быть нормализованными вероятностями, где сумма значений W(x,y) для всех возможных (например, признанных обученной моделью) типов объектов составляет Σ W(x,y)=1. В других вариантах реализации значения W(x,y) могут быть не нормализованы, но более высокие (низкие) значения W(x,y) при этом могут указывать на повышенную вероятность того, что определенный объект относится к заданному типу объектов, чем на то могли бы указывать более низкие (высокие) значения W(x,y).
j
j
j
j
j
j
j
[0068] После определения вероятностей W(x,y) для каждого элемента многоугольника, определенного подсистемой 450, подсистема C 480 может сформировать одну или более гипотез о том, что объект, представленный определенным многоугольником, относится к одному из известных типов. (Далее под термином «многоугольник» понимается любая фигура, в том числе круг и овал, описывающая элементы определенного объекта.) Вероятность W (объект) того, что многоугольник представляет объект, относящийся к типу j, может быть определена на основе вероятностей W(x,y) для составляющих элементов. В некоторых вариантах реализации вероятность W(объект) определяется как среднее значение для значений W(x,y) всех элементов (x,y) многоугольника. В некоторых вариантах реализации вероятность W(объект) определяется как средневзвешенное значение для значений W(x,y) элементов многоугольника с различными элементами, имеющими неравные весовые коэффициенты. Например, в одном варианте реализации внешним элементам (x,y) могут быть заданы сниженные (или повышенные) весовые коэффициенты. Для различных типов объектов могут использоваться различные схемы применения весовых коэффициентов. Например, для типов объектов, относящихся к классу «подпись», внешние элементы (например, элементы, расположенные рядом с описывающим многоугольником) могут быть заданы меньшими весовыми коэффициентами. С другой стороны, для типов объектов, относящихся к классу «печать», для которых ожидается наличие четкой внешней линии, внешним элементам могут быть присвоены повышенные весовые коэффициенты. В других вариантах реализации весовые коэффициенты являются фиксированными (например, разработчиком программного обеспечения). В некоторых вариантах реализации весовые коэффициенты являются параметрами подсистемы C 480, оптимизированными в процессе обучения.
j
j
[0069] После определения вероятностей W(объект) для всех (или некоторых) известных типов объектов механизм 112 обработки изображений может выбрать тип j, имеющий максимальную вероятность. В некоторых вариантах реализации это действие может выполняться подсистемой C 480 c применением функции softmax (например, операция 470) к выходным вероятностям W(объект). Система нейронной сети 400 может выводить (например, предоставлять пользователю на вычислительном устройстве 110, хранить на носителе информации, передавать по сети 130) определенный класс объекта (например, «баркод») вместе с определенным типом объекта (например, «QR-код»). При этом система нейронной сети 400 также может выводить координаты определенного объекта. Например, координаты могут включать координаты вершин описывающего объект многоугольника или любые другие идентификаторы, служащие для определения расположения объекта (например, радиус описывающего круга с координатами центра круга). Поскольку размер изображения с сокращенным разрешением может быть снижен (при выполнении операции сокращения разрешения 420), координаты (x,y) определенных элементов могут потребовать изменения масштаба для приведения к масштабу исходного изображения, (x,y) ((X,Y). Например, если размер элемента (суперпикселя) составляет n × m пикселей, изменение масштаба может быть выполнено следующим образом: (x,y) ((X=nx,Y=my). В некоторых вариантах реализации изменение масштаба может выполняться после определения завершения объекта, но до идентификации типа объекта (в случаях, когда определяется тип). В некоторых вариантах реализации изменение масштаба может выполняться после определения типа объекта.
[0070] Некоторые из компонентов, показанных на Фиг. 4, могут быть объединены. Например, в одном из вариантов реализации подсистемы A, B и C могут быть реализованы в виде одной нейронной сети. В некоторых вариантах реализации подсистемы A и B могут быть реализованы как одна сеть, в то время как подсистема C может быть реализована как отдельная сеть. В некоторых вариантах реализации подсистемы B и C могут быть реализованы как одна сеть, в то время как подсистема A может быть реализована как отдельная сеть. В тех вариантах реализации, где множество подсистем реализуются объединенной единой сетью, функции разных подсистем объединенной сети могут быть реализованы отдельными выделенными слоями или симметричными слоями (слоями общего доступа, использующих идентичные наборы параметров на входе, shared layers) или их сочетанием.
[0071] На Фиг. 7 схематически показан подход с использованием сжатия и развертывания для обнаружения строк текста на изображениях в соответствии с некоторыми вариантами реализации настоящего изобретения. Типовое изображение может содержать несколько экземпляров строк текста, которые могут быть разделены фоновыми пробелами (например, вертикальными пробелами), размеры которых могут быть сопоставимы с шириной (например, ширина по вертикали) самих строк текста. Следовательно, определение раздельных описывающих фигур (многоугольников) для каждой строки текста может быть сложной задачей, если требуется разрешение изображения по строкам. На Фиг. 7 представлен один из возможных подходов к определению текстовых строк с высоким разрешением, при котором не допускается нежелательная группировка (объединение) различных строк в единый обнаруженный объект и облегчается обнаружение отдельных строк.
[0072] Типовая последовательность символов (например, последовательность слов, цифр, символов и т.д.), как показано на верхнем рисунке на Фиг. 7, может рассматриваться как центральная область с высокой плотностью - ядро, - схематически показанная как область между двух горизонтальных линий, и как внешняя область - поле, - которая содержит только случайные пиксели (например, пиксели, относящиеся к верхним и нижним элементам символов, верхним частям заглавных букв и т.п.). Для того, чтобы воспользоваться преимуществом такого разделения типовой строки текста на ядро и поле, строки могут быть проигнорированы при обучении системы нейронной сети 400, чтобы для обучения системы нейронной сети 400 использовались только ядра. Например, в одном возможном варианте реализации в качестве обучающих входных данных отмечаются (определяются) только ядра строк обучающего текста. В одном варианте реализации, не накладывающем ограничений, может считаться, что ядро составляет 40% от всей строки текста, при этом 30% полей на обеих сторонах игнорируются (схема 30/40/30). Может использоваться любая другая схема сжатия поле/ядро/поле, например, схема 25/50/25, или 20/45/35, или любая другая схема (применяемая схема может зависеть от языка, используемого в тексте обучающих и целевых изображений, на типовых наборах и т.д.).
1
1
1
1
1
2
2
2
2
1
1+
2
1+
2
1
2
1
2
[0073] Система нейронной сети, обученная на сжатых текстовых строках с удаленными полями, может более точно определять строки текста (в том числе с эффективным разделением строк в вертикальном направлении). На этапе идентификации (схематически показан нижним рисунком на Фиг. 7) обученная система нейронной сети может определить ядра целевых строк. После определения описывающих фигур для строк текста фигуры могут быть развернуты обратно (обратный отступ) до стандартных размеров в зависимости от схемы, использующейся при обучении. Например, в случаях, где используется схема 30/40/30, после определения, что верх описывающей фигуры строки текста имеет координату y, а нижняя часть описывающей фигуры имеет координату y, операция развертывания может быть выполнена следующим образом: y (Y=(7*y - 3*y)/4, y (Y=(7*y - 3*y)/4. При таком разделении центр описывающей фигуры сохраняется по месту, (yy)/2=(YY)/2, с увеличением ширины фигуры y - y с 40% обратно до 100%: Y - Y=5(y1 - y2)/2.
[0074] На Фиг. 8-9 показаны блок-схемы, иллюстрирующие примеры способов 800-900, в которых используется контекст изображения для обнаружения объектов и определения типов обнаруженных на изображениях объектов, в соответствии с некоторыми вариантами реализации настоящего изобретения. Каждый из способов 800-900 может выполняться алгоритмом обработки, который может быть выполнен в виде аппаратных средств (электронные схемы, специализированная логика, программируемая логика, микрокоманды и т.д.), программного обеспечения (например, инструкции, выполняемые обрабатывающим устройством), встроенного программного обеспечения или сочетания всех таких средств. В одном из вариантов реализации способы 800-900 могут выполняться устройством обработки данных (например, устройством обработки данных 1002 на Фиг. 10) вычислительного устройства 110 и (или) сервера 150, как показано применительно к Фиг. 1. В некоторых вариантах реализации обрабатывающее устройство может выполнять способы 800-900 при получении команд от механизма 112 обработки изображений. В некоторых вариантах осуществления способы 800-900 могут выполняться в одном потоке обработки. В альтернативном варианте реализации способы 800-900 могут выполняться в двух или более потоках обработки, при этом в каждом потоке будут выполняться одна или более отдельных функций, процедур, подпрограмм или операций способа. Например, первый поток может использоваться для обнаружения объектов первого класса, а второй поток может использоваться для обнаружения объектов второго класса. В иллюстративном примере потоки обработки, реализующие способы 800-900, могут быть синхронизированы (например, с использованием семафоров, критических секций и (или) других механизмов синхронизации потоков). В альтернативном варианте реализации потоки обработки, реализующие способы 800-900, могут выполняться асинхронно друг относительно друга. Таким образом, несмотря на то, что Фиг. 8-9 и соответствующее описание содержат список операций для способа 800-900 в определенном порядке, в различных вариантах осуществления способов как минимум некоторые из описанных операций могут выполняться параллельно и (или) в случайно выбранном порядке.
[0075] На Фиг. 8 представлена блок-схема, иллюстрирующая пример способа 800 обнаружения присутствия объектов на изображении, в соответствии с некоторыми вариантами реализации настоящего изобретения. В операции 810 устройство обработки, выполняющее способ 800, может получить изображение. Изображение может содержать изображение объекта. В операции 820 способ 800 может продолжить использовать обрабатывающее устройство, представляющее каждый элемент из множества элементов на изображении через входной вектор из множества входных векторов. Элементы могут быть суперпикселями, включающими множество пикселей. Каждый элемент с координатами (x,y) может быть описан как входной вектор vec(x,y) с одним или более параметрами (компонентами), относящимися к визуальному представлению соответствующего элемента. Внешний вид может относиться к значениям яркости (для различных цветов) пикселей элемента. Для представления элементов (x,y) через входные векторы vec(x,y), устройство обработки может предоставить значения яркости в виде входных данных для обученной нейронной сети, такой как подсистема A 430 на Фиг. 4, в одном из вариантов реализации.
[0076] Подсистема A 430 может определять параметры, относящиеся к визуальному представлению элемента изображения, с использованием одного или более входных значений. В некоторых вариантах реализации каждое входное значение, относящееся к визуальному представлению элемента изображения, может включать значение яркости по меньшей мере одного пикселя элемента. В некоторых вариантах реализации входные значения могут включать значения яркости всех пикселей элементов. Соответственно, подсистема А 430 может определить параметры, описывающие внешний вид элементов изображения с учетом первого множества значений яркости для первого цвета (например, черный красный или любой иной цвет) для расположенных ниже пикселей элемента. Подсистема A 430 может дополнительно определять параметры, относящиеся к визуальному представлению элемента изображения с учетом второго (третьего и т.д.) множества значений яркости для второго (третьего и т.д.) первого цвета (например, красного, зеленого или любого иного цвета) для расположенных ниже пикселей.
[0077] В некоторых вариантах реализации множество элементов изображения может включать все элементы изображения. В других вариантах реализации только часть изображения может быть представлена множеством элементов. Например, если известно, что объект (например, баркод) может появляться только в нижней части изображения, то в некоторых вариантах реализации только нижняя часть изображения может быть представлена множеством элементов, а верхняя часть изображения может быть проигнорирована при дальнейшей обработке.
[0078] В операции 830 способ 800 может далее предоставить множество входных векторов первой нейронной сети для получения множества выходных векторов VEC(x,y), связанных с элементом (x,y) изображения. В одном из вариантов реализации первая нейронная сеть может быть подсистемой B 450. Следует понимать, что слова «первый» и «второй» не относятся к какому-либо хронологическому порядку, в котором должна работать подсистема B 450 (или подсистема A 430) относительно других сущностей, которые могут быть задействованы в выполнении способа 800. В частности, в некоторых вариантах реализации вычисления, выполняемые «второй» подсистемой A 430, могут предшествовать вычислениям, выполняемым «первой» подсистемой B 450. В различных вариантах реализации выходной вектор VEC(x0,y0), связанный с заданным элементом (x0,y0) из множества элементов, может зависеть от подмножества входных векторов {vec(x,y)} с диапазоном координат (x,y), представляющих некоторое соседство с элементом (x0,y0), например элементы, расположенные рядом с элементом (x0,y0). Таким образом можно обеспечить учет векторами VEC(x,y) более широкого контекста изображения. Размер окрестности может быть задан (например, оптимальный размер может быть определен при обучении подсистемы B 450). В некоторых вариантах реализации заданное количество элементов, находящихся рядом с элементом (x0,y0), может быть определено по части количества элементов. Например, заданное количество элементов рядом с элементом (x0,y0) может включать все элементы в прямоугольнике p × q элементов с центром в элементе (x0,y0). В других вариантах реализации заданное количество элементов, находящихся рядом с элементом (x0,y0), может быть определено для части изображения с центром вокруг элемента (x0,y0), которая может составлять 1/8 от размера изображения, 1/4 от размера изображения, 1/2 от размера изображения, быть представлена полным размером изображения или другой частью изображения.
1
[0079] Способ 800 может продолжить определение с помощью устройства обработки на основе выходных векторов VEC(x,y) подмножества элементов на изображении, относящегося к изображению объекта (операция 840). Например, устройство обработки может определить, что подмножество выходных векторов содержит первый компонент (Z), удовлетворяющий пороговому условию. В некоторых вариантах реализации определяется, что выходной вектор VEC(x,y) относится к изображению объекта, если его первый компонент больше некоторого порогового значения, например 0,5. После определения подмножества из множества векторов {VEC(x,y)}, удовлетворяющего пороговому условию, устройство обработки может дополнительно определить подмножество элементов изображения, связанных с соответствующими векторами VEC(x,y) подмножества выходных векторов.
[0080] В некоторых вариантах реализации в операции 850 устройство обработки может определить на основе расположений подмножества элементов расположение изображения объекта на изображении, как показано на Фиг. 3 и 5.
2
2
3
[0081] На Фиг. 9 представлена блок-схема, иллюстрирующая пример способа 900 определения типа обнаруженного объекта, в соответствии с некоторыми вариантами реализации настоящего изобретения. В операции 910 устройство обработки, выполняющее способ 900, может определить подмножество выходных векторов VEC(x,y), содержащих первый компонент, удовлетворяющий пороговым условиям, аналогично описанной выше операции 840. После определения устройством обработки подмножества элементов (например, по их координатам), которые связаны с подмножеством выходных векторов VEC(x,y) (операция 920), способ 900 может продолжить определение первого значения на уровне объекта с использованием второго компонента (Z) каждого вектора из вложенного набора из подмножества выходных векторов VEC(x,y). Более конкретно, в одном варианте реализации устройство обработки может предоставить компоненты Z, Z, … в подсистему C 480.
1
1
1
1
1
2
1
2
3
[0082] Компоненты, предоставленные в подсистему C 480, могут использоваться подсистемой C480 для определения типа объекта. Например, устройство обработки может определить первое значение на уровне объекта W(объект), описывающее вероятность того, что обнаруженный (например, с помощью способа 800) объект относится к первому типу. Первое значение уровня объекта W(объект) может быть средневзвешенным значением на уровне элемента W(x,y) для различных элементов, связанных с обнаруженным объектом. Значения на уровне элемента W(x,y) могут быть репрезентативными для вероятности того, что элемент (x,y) является частью объекта, который относится к первому типу объектов заданного класса. В некоторых вариантах реализации значение на уровне элемента W(x,y) может быть определено только с использованием компонента Z из элементов, связанных с обнаруженным объектом. В некоторых вариантах реализации значение на уровне элемента W(x,y) может быть определено только с использованием нескольких компонентов Z, Z, … из элементов, связанных с обнаруженным объектом.
2
2
3
2
2
2
2
2
2
2
2
3
[0083] В операции 940 способ может продолжить определение второго значения на уровне объекта W(объект) аналогичным образом с использованием, по меньшей мере, второго компонента Zили третьего компонента Z выходных векторов VEC(x,y) элементов (x,y) обнаруженного объекта. Второе значение уровня объекта W(объект) может быть средневзвешенным значением на уровне элемента W(x,y) для различных элементов, связанных с обнаруженным объектом. Значения на уровне элемента W(x,y) могут быть репрезентативными для вероятности того, что элемент (x,y) является частью объекта, который относится ко второму типу объектов заданного класса. В некоторых вариантах реализации значение на уровне элемента W(x,y) может быть определено только с использованием компонента Z из элементов, связанных с обнаруженным объектом. Например, конкретный класс объектов может включать только два типа объектов (например, печать муниципальной администрации и печать государственного органа власти). В таких вариантах реализации тип обнаруженного объекта может быть определен на основе одного компонента Z. В некоторых вариантах реализации значение на уровне элемента W(x,y) может быть определено только с использованием нескольких компонентов Z, Z, … из элементов, связанных с обнаруженным объектом.
2
1
2
1
[0084] В операции 950 устройство обработки может определить, что отношение между первым значением уровня объекта и вторым значением уровня объекта может быть заданным отношением. Например, устройство обработки может определить, что W(объект)>W(объект). В операции 960 устройство обработки может определить тип объекта на основе отношения между первым значением уровня объекта и вторым значением уровня объекта. Например, на основе определенного отношения W(объект)>W(объект) устройство обработки может определить, что обнаруженный объект относится ко второму типу.
[0085] На Фиг. 10 изображен пример вычислительной системы 1000, которая может выполнять один или более способов, описанных в настоящем документе, в соответствии с некоторыми вариантами реализации настоящего изобретения. Эта вычислительная система может быть подключена (например, по сети) к другим вычислительным системам в локальной сети, сети интранет, сети экстранет или сети Интернет.Данная вычислительная система может выступать в качестве сервера в сетевой среде клиент-сервер. Данная вычислительная система может представлять собой персональный компьютер (ПК), планшетный компьютер, телевизионную приставку (STB), карманный персональный компьютер (PDA), мобильный телефон, фотоаппарат, видеокамеру или любое устройство, способное выполнять набор команд (последовательно или иным способом), который определяет действия этого устройства. Кроме того, несмотря на то, что показана система только с одним компьютером, термин «компьютер» также включает любой набор компьютеров, которые по отдельности или совместно выполняют набор команд (или несколько наборов команд) для реализации любого из описанных в данном документе способов или нескольких таких способов.
[0086] Пример вычислительной системы 1000 включает устройство обработки 1002, основную память 1004 (например, постоянное запоминающее устройство (ПЗУ), флэш-память, динамическое ОЗУ (DRAM), например, синхронное динамическое ОЗУ (SDRAM)), статическую память 1006 (например, флэш-память, статическое оперативное запоминающее устройство (ОЗУ)) и устройство хранения данных 1016, которые взаимодействуют друг с другом по шине 1008.
[0087] Устройство обработки 1002 представляет собой одно или более универсальных устройств обработки, таких как микропроцессор, центральный процессор и т.п.В частности, устройство обработки 1002 может представлять собой микропроцессор с полным набором команд (CISC), микропроцессор с сокращенным набором команд (RISC), микропроцессор с сверхдлинным командным словом (VLIW) или процессор, в котором реализованы другие наборы команд, или процессоры, в которых реализована комбинация наборов команд. Устройство обработки 1002 также может представлять собой одно или более устройств обработки специального назначения, такое как специализированная интегральная схема (ASIC), программируемая пользователем вентильная матрица (FPGA), процессор цифровых сигналов (DSP), сетевой процессор и т.п. Устройство обработки данных 1002 реализовано с возможностью выполнения команд 1026 для реализации механизма 112 обработки изображений (и (или) механизма 111 аугментации изображений) и (или) обучающей системы 151 на Фиг. 1, а также для выполнения операций и шагов, описанных в настоящем документе (то есть способов 800-900 на Фиг. 8-9).
[0088] Вычислительная система 1000 может дополнительно включать устройство сопряжения с сетью 1022. Компьютерная система (1000) также может содержать блок видеодисплея (1010) (например, жидкокристаллический дисплей (ЖК-дисплей) или электронно-лучевую трубку (ЭЛТ)), буквенно-цифровое устройство ввода (1012) (например, клавиатуру), устройство управления курсором (1014) (например, мышь) и устройство, подающее сигналы (1020) (например, громкоговоритель). В одном иллюстративном примере видеодисплей 1010, устройство буквенно-цифрового ввода 1012 и устройство управления курсором 1014 могут быть объединены в один модуль или устройство (например, сенсорный жидкокристаллический дисплей).
[0089] Устройство 1016 хранения данных может содержать машиночитаемый носитель данных 1024, в котором хранятся инструкции 1026, реализующие одну или более из методик или функций, описанных в настоящем документе. Инструкции 1026 могут также находиться полностью или, по меньшей мере, частично в основном запоминающем устройстве 1004 и (или) в устройстве обработки 1002 во время их выполнения вычислительной системой 1000, основным запоминающим устройством 1004 и устройством обработки 1002, также содержащим машиночитаемый носитель информации. В некоторых вариантах реализации изобретения инструкции 1026 могут дополнительно передаваться или приниматься по сети через устройство 1022 сопряжения с сетью.
[0090] Несмотря на то, что машиночитаемый носитель данных 1024 показан в иллюстративных примерах как единичный носитель, термин «машиночитаемый носитель данных» следует понимать и как единичный носитель, и как несколько таких носителей (например, централизованная или распределенная база данных и (или) связанные кэши и серверы), на которых хранится один или более наборов команд. Термин «машиночитаемый носитель данных» также следует понимать как описывающий любой носитель, который может хранить, кодировать или переносить набор команд для выполнения машиной и который обеспечивает выполнение машиной любой одной или более методик настоящего изобретения. Соответственно, термин «машиночитаемый носитель данных» следует понимать, как включающий, среди прочего, устройства твердотельной памяти, оптические и магнитные носители.
[0091] Несмотря на то, что операции способов показаны и описаны в настоящем документе в определенном порядке, порядок выполнения операций каждого способа может быть изменен таким образом, чтобы некоторые операции могли выполняться в обратном порядке или чтобы некоторые операции могли выполняться (по крайней мере частично) одновременно с другими операциями. В некоторых вариантах реализации операции или подоперации различных операций могут выполняться с перерывами и (или) попеременно.
[0092] Следует понимать, что приведенное выше описание носит иллюстративный, а не ограничительный характер. Специалистам в данной области техники после прочтения и уяснения приведенного выше описания станут очевидны и различные другие варианты реализации изобретения. Поэтому область применения изобретения должна определяться с учетом прилагаемой формулы изобретения, а также всех областей применения эквивалентных способов, которые охватывает формула изобретения.
[0093] В приведенном выше описании изложены многочисленные детали. Однако специалистам в данной области техники должно быть очевидно, что аспекты настоящего изобретения могут быть реализованы на практике и без этих конкретных деталей. В некоторых случаях хорошо известные структуры и устройства показаны в виде блок-схем, а не подробно, для того, чтобы не усложнять описание настоящего изобретения.
[0094] Некоторые части подробных описаний выше представлены в виде алгоритмов и символического изображения операций с битами данных в компьютерной памяти. Такие описания и представления алгоритмов являются средством, используемым специалистами в области обработки данных, чтобы наиболее эффективно передавать сущность своей работы другим специалистам в данной области. Приведенный здесь алгоритм в общем сконструирован как непротиворечивая последовательность шагов, ведущих к нужному результату. Такие шаги требуют физических манипуляций с физическими величинами. Обычно, но не обязательно, такие величины принимают форму электрических или магнитных сигналов, которые можно хранить, передавать, комбинировать, сравнивать, а также выполнять другие манипуляции. Иногда удобно, прежде всего для обычного использования, описывать такие сигналы в виде битов, значений, элементов, символов, терминов, цифр и т.д.
[0095] Однако следует иметь в виду, что все такие и подобные термины должны быть связаны с соответствующими физическими величинами и что они являются лишь удобными обозначениями, применяемыми к таким величинам. Если прямо не указано иное, как видно из последующего обсуждения, то следует понимать, что во всем описании такие термины, как «прием» или «получение», «определение» или «обнаружение», «выбор», «хранение», «анализ» и т.п., относятся к действиям и процессам вычислительной системы или подобного электронного вычислительного устройства, причем такая система или устройство манипулирует данными и преобразует данные, представленные в виде физических (электронных) величин в регистрах и памяти вычислительной системы, в другие данные, также представленные в виде физических величин в памяти или регистрах компьютерной системы или в других подобных устройствах хранения, передачи или отображения информации.
[0096] Настоящее изобретение также относится к устройству для выполнения операций, описанных в настоящем документе. Такое устройство может быть специально сконструировано для требуемых целей, либо оно может представлять собой универсальный компьютер, который избирательно приводится в действие или дополнительно настраивается с помощью программы, хранящейся в памяти компьютера. Такая вычислительная программа может храниться на машиночитаемом носителе данных, включая, среди прочего, диски любого типа, в том числе гибкие диски, оптические диски, CD-ROM и магнитно-оптические диски, постоянные запоминающие устройства (ПЗУ), оперативные запоминающие устройства (ОЗУ), программируемые ПЗУ (EPROM), электрически стираемые ППЗУ (EEPROM), магнитные или оптические карты или носитель любого типа, пригодный для хранения электронных команд, каждый из которых соединен с шиной вычислительной системы.
[0097] Алгоритмы и изображения, приведенные в настоящем документе, не обязательно связаны с конкретными компьютерами или другими устройствами. Различные системы общего назначения могут использоваться с программами в соответствии с изложенной в настоящем документе информацией, возможно также признание целесообразности конструирования более специализированного устройства для выполнения необходимых шагов способа. Необходимая структура различных систем такого рода определяется в порядке, предусмотренном в описании. Кроме того, изложение вариантов осуществления настоящего изобретения не предполагает ссылок на какие-либо конкретные языки программирования. Следует принимать во внимание, что для реализации принципов настоящего изобретения могут быть использованы различные языки программирования.
[0098] Варианты реализации настоящего изобретения могут быть представлены в виде компьютерного программного продукта или программы, которая может содержать машиночитаемый носитель данных с сохраненными на нем инструкциями, которые могут использоваться для программирования компьютерной системы (или других электронных устройств) в целях выполнения процесса в соответствии с настоящим изобретением. Машиночитаемый носитель данных включает механизмы хранения или передачи информации в машиночитаемой форме (например, компьютер). Например, машиночитаемый (то есть считываемый компьютером) носитель данных содержит носитель данных, считываемый машиной (например, компьютером) (например, постоянное запоминающее устройство (ПЗУ), оперативное запоминающее устройство (ОЗУ), накопитель на магнитных дисках, накопитель на оптическом носителе, устройства флэш-памяти и пр.).
[0099] Слова «пример» или «примерный» используются в настоящем документе для обозначения использования в качестве примера, отдельного случая или иллюстрации. Любой вариант реализации или конструкция, описанные в настоящем документе как «пример», не должны обязательно рассматриваться как предпочтительные или преимущественные по сравнению с другими вариантами реализации или конструкциями. Слово «пример» лишь предполагает, что идея изобретения представлена конкретным образом. В настоящей заявке термин «или» предназначен для обозначения, включающего «или», а не исключающего «или». Это означает, если не указано иное или не очевидно из контекста, что «X содержит А или В» используется для обозначения любой из естественных включающих перестановок. То есть если X содержит А, Х содержит B или Х содержит и А, и В, то высказывание «X содержит А или В» является истинным в любом из указанных выше случаев. Кроме того, неопределенные артикли, использованные в настоящей заявке и прилагаемой формуле изобретения, должны, как правило, означать «один или более», если иное не указано или из контекста не следует, что это относится к форме единственного числа. Использование во всем настоящем документе терминов «вариант реализации» или «один вариант реализации» либо «реализация» или «одна реализация» не означает одинаковый вариант осуществления или реализации, если это не указано в описании. Кроме того, в описании термины «первый», «второй», «третий», «четвертый» и т.д. используются как метки для обозначения различных элементов и не обязательно имеют смысл порядка в соответствии с их числовым значением.
[00100] Принимая во внимание множество вариантов и модификаций настоящего изобретения, которые, без сомнения, будут очевидны специалисту в уровне техники после прочтения изложенного выше описания, следует понимать, что любой частный вариант реализации изобретения, приведенный и описанный для иллюстрации, ни в коем случае не должен рассматриваться как ограничение. Таким образом, ссылки на подробности различных вариантов осуществления изобретения не должны рассматриваться как ограничение объема притязания, который содержит только признаки, относящиеся к сущности изобретения как таковой.