ОБУЧЕНИЕ НЕЙРОННЫХ СЕТЕЙ ДЛЯ ОБРАБОТКИ ИЗОБРАЖЕНИЙ С ПОМОЩЬЮ СИНТЕТИЧЕСКИХ ФОТОРЕАЛИСТИЧНЫХ СОДЕРЖАЩИХ ЗНАКИ ИЗОБРАЖЕНИЙ
TRAINING NEURAL NETWORKS FOR IMAGE PROCESSING USING SYNTHETIC PHOTOREALISTIC CONTAINING IMAGE SIGNS

ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящее изобретение в целом относится к вычислительным системам, а точнее - к системам и способам обучения нейронных сетей для обработки изображений с помощью синтетических фотореалистичных изображений, содержащих знаки.
УРОВЕНЬ ТЕХНИКИ
[0002] Процесс оптического распознавания символов (OCR) может извлекать машиночитаемую текстовую информацию с возможностью поиска из содержащих знаки изображений на различных носителях (например, печатных или рукописных бумажных документах, баннерах, постерах, знаках, рекламных щитах и (или) других физических объектах, несущих видимые символы текста (включая закодированные символы текста, например, штрихкоды, баркоды) на одной или более их поверхностях). Перед поступлением в процесс OCR исходные изображения могут подвергаться предварительной обработке одной или более сверточными нейронными сетями, которые исправляют определенные дефекты изображения.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
[0003] В соответствии с одним или более вариантами реализации настоящего изобретения пример способа обучения нейронных сетей для обработки изображений с помощью синтетических фотореалистичных изображений, содержащих знакии, может включать создание исходного набора изображений, где каждое изображение из исходного набора изображений содержит визуализацию текстовой строки; получение аугментированного набора изображений путем обработки исходного набора изображений для внесения в каждое изображение из исходного набора изображений по меньшей мере одного имитированного дефекта изображении; создание обучающей выборки данных, содержащей множество пар изображений, где каждая пара изображений содержит первое изображение, выбранное из исходного набора изображений, и второе изображение, выбранное из аугментированного набора изображений; а также обучение, с использованием обучающей выборки данных, сверточной нейронной сети для обработки изображений.
[0004] В соответствии с одним или более вариантами реализации настоящего изобретения пример системы обучения нейронных сетей для обработки изображений с помощью синтетических фотореалистичных изображений, содержащих знаки, может включать память и вычислительное устройство, соединенное с памятью, причем это вычислительное устройство выполнено с возможностью создания исходного набора изображений, где каждое изображение из исходного набора изображений содержит визуализацию текстовой строки; получения аугментированного набора изображений путем обработки исходного набора изображений для внесения в каждое изображение из исходного набора изображений по меньшей мере одного смоделированного дефекта изображения; создания обучающей выборки данных, содержащей множество пар изображений, где каждая пара изображений содержит первое изображение, выбранное из исходного набора изображений, и второе изображение, выбранное из аугментированного набора изображений; а также обучения, с использованием обучающей выборки данных, сверточной нейронной сети для обработки изображений.
[0005] В соответствии с одним или более вариантами реализации настоящего изобретения пример постоянного машиночитаемого носителя данных может включать исполняемые команды, которые при выполнении их вычислительным устройством приводят к выполнению этим вычислительным устройством операций, включающих в себя создание исходного набора изображений, где каждое изображение из исходного набора изображений содержит рендеринг текстовой строки; получение аугментированного набора изображений путем обработки исходного набора изображений для внесения в каждое изображение из исходного набора изображений по меньшей мере одного смоделированного дефекта изображения; создание обучающей выборки данных, содержащей множество пар изображений, где каждая пара изображений содержит первое изображение, выбранное из исходного набора изображений, и второе изображение, выбранное из аугментированного набора изображений; а также обучение, с использованием обучающей выборки данных, сверточной нейронной сети для обработки изображений.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0006] Настоящее изобретение иллюстрируется с помощью примеров, а не способом ограничения, и может быть лучше понято при рассмотрении приведенного ниже описания предпочтительных вариантов реализации в сочетании с чертежами, на которых:
[0007] На Фиг. 1 изображен пример процесса эмуляции фотосъемки, реализованный в соответствии с одним или более вариантами реализации настоящего изобретения;
[0008] На Фиг. 2 приведена блок-схема примера способа обучения нейронных сетей для обработки изображения с помощью синтетических фотореалистичных изображений, содержащих знаки, в соответствии с одним или более вариантами реализации настоящего изобретения;
[0009] На Фиг. 3A-3D схематично изображены различные операции обработки изображения, которые могут использоваться для создания синтетических фотореалистичных изображений, содержащих знаки, в соответствии с одним или более вариантами реализации настоящего изобретения;
[00010] На Фиг. 4 схематично изображена структура сверточной нейронной сети, которая может использоваться для бинаризации изображения и исправления смаза, в соответствии с одним или более вариантами реализации настоящего изобретения;
[00011] На Фиг. 5 схематично изображена структура расширенной сверточной сети, которая может использоваться для повышения качества затененных и светлых участков изображения, в соответствии с одним или более вариантами реализации настоящего изобретения;
[00012] На Фиг. 6 схематично изображена структура сверточной нейронной сети, которая может использоваться для классификации набора исходных изображений для отделения синтетических изображений от реальных фотографий, в соответствии с одним или более вариантами реализации настоящего изобретения;
[00013] На Фиг. 7 представлена схема компонентов примера вычислительной системы, которая может использоваться для реализации описанных в этом документе способов.
ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ РЕАЛИЗАЦИИ
[00014] Ниже описаны способы и системы для обучения нейронных сетей для обработки изображения с помощью выборок данных синтетических фотореалистичных изображений, содержащих знаки.
[00015] Эффективное обучение нейронных сетей для обработки изображения может быть затруднено недостатком имеющихся обучающих выборок данных. С другой стороны, создание расширенных наборов данных, которые включают изображения, полученные в разных условиях (например, различная ориентация, точка съемки, масштаб, яркость и т.д.) для демонстрации различных дефектов изображения (расфокусировка, смаз, блики и пр.), может потребовать больших затрат средств или времени. Аугментация изображений, например, изменение набора ранее полученных изображений для изменения их ориентации, точки съемки, масштаба, яркости, может в некоторых случаях решить проблему недостатка обучающих данных, однако по-прежнему включает затратный процесс получения исходного набора изображений.
[00016] Системы и способы, описанные в этом документе, представляют значительное усовершенствование стандартных способов аугментации изображений за счет предоставления способа создания фотореалистичных изображений, который включает процесс эмуляции получения изображений путем отображения изображения текстовых строк и последующей обработки полученных изображений для внесения различных дефектов изображения (расфокусировка, смаз, блики и пр.), обычно присутствующих на изображениях, полученных путем фотосъемки. Использование синтетических фотореалистичных изображений, полученных с помощью систем и способов по настоящему изобретению для обучения нейронных сетей для обработки изображений, приводит к значительному повышению качества изображений, что повышает общую эффективность различных приложений, использующих предварительно обработанные изображения, например, процесса оптического распознавания символов (OCR), который извлекает из изображений текстовую информацию.
[00017] В одном из иллюстративных примеров вычислительная система, реализующая способы, описанные в этом документе, может выполнять процесс эмуляции фотосъемки, как схематично изображено на Фиг. 1. Этот процесс эмуляции фотосъемки может включать наложение прозрачного текста на исходное изображение, деконтрастирование изображения, эмуляцию дополнительного искуственного источника света на изображенной сцене, расфокусировку изображения, наложение цифрового шума, эмуляцию предварительной обработки изображения устройством фиксации изображения (например, фотокамерой), эмуляцию демозайки изображения, применение нерезкого маскирования изображения, добавление в изображение шумов JPEG и (или) выполнение различных других операций обработки изображения. Эти операции обработки изображения приведут к получению аугментированного набора изображений объектов, содержащих знаки. Пары изображений, в которых одно изображение выбрано из исходного набора изображений, а другое - из аугментированного набора изображений, могут быть использованы для последующего обучения сверточных нейронных сетей, предназначенных для корректировки различных дефектов изображений, таких как смаз изображения, повышение качества затененных и светлых участков изображения и (или) различных других операций обработки изображения. Изображения, обработанные обученными нейронными сетями, могут использоваться в процессе OCR для извлечения из изображений текстовой информации.
[00018] В некоторых вариантах реализации сверточные нейронные сети, которые используются для предварительной обработки изображений, могут быть модифицированы и использованы для классификации набора исходных изображений для отделения синтетических изображений от настоящих фотографических изображений, как более подробно описано ниже в этом документе. Различные аспекты упомянутых выше способов и систем подробно описаны ниже в этом документе с помощью примеров, что не должно являться ограничивающим.
[00019] На Фиг. 2 изображена блок-схема одного иллюстративного примера способа 200 обучения нейронных сетей для обработки изображений с помощью синтетических фотореалистичных изображений, содержащих знаки, в соответствии с одним или более вариантами реализации настоящего изобретения. Способ 200 и (или) каждая из его отдельно взятых функций, процедур, подпрограмм или операций могут осуществляться с помощью одного или более процессоров вычислительной системы {например, вычислительной системы 700 на Фиг. 7), реализующей этот способ. В некоторых вариантах реализации способ 200 может быть реализован в одном потоке обработки. Кроме того, способ 200 может выполняться, используя два или более потоков обработки, причем каждый поток выполняет одну или более отдельных функций, процедур, подпрограмм или операций способа. В одном из иллюстративных примеров потоки обработки, в которых реализован способ 200, могут быть синхронизированы (например, с использованием семафоров, критических секций и (или) других механизмов синхронизации потоков). В качестве альтернативы потоки обработки, в которых реализован способ 200, могут выполняться асинхронно по отношению друг к другу. Таким образом, несмотря на то что на Фиг. 2 и в соответствующем описании список операций для способа 200 приводится в определенном порядке, в различных вариантах реализации способа по меньшей мере некоторые из описанных операций могут выполняться параллельно и (или) в случайно выбранном порядке.
[00020] На шаге 210 вычислительная система, реализующая способ, может создавать исходный набор изображений, так что каждое изображение будет содержать визуализацию одной или более текстовых строк. Визуализация может быть выполнена с использованием различных шрифтов, разрешений и (иди) других параметров процесса визуализации. В одном из иллюстративных примеров исходный набор изображений может содержать только черно-белые изображения. В одном из иллюстративных примеров исходный набор изображений может храниться в одном или более файлах заранее определенного формата, например, файлах PDF. В некоторых вариантах реализации нейронные сети, обученные способами по настоящему изобретению, могут проверяться путем использования проверочных наборов изображений, содержащих известные тексты, которые могут быть визуализированы и растеризованы с использованием заранее определенных или динамически регулируемых параметров визуализации и растеризации.
[00021] На шагах 215-260 вычислительная система может обрабатывать созданные изображения для получения набора аугментированных изображений. Обработка изображения может вносить различные дефекты и (или) искажения (расфокусировка, смаз, блики и др.), которые обычно присутствуют на изображениях, полученных с помощью фотографии. В различных вариантах реализации по меньшей мере некоторые из операций, описанных ниже в этом документе со ссылкой на шаги 215-260, могут быть опущены; кроме того, порядок операций обработки изображения, описанных ниже в этом документе со ссылкой на шаги 215-260, может быть различным.
[00022] В частности, на шаге 215 вычислительная система может накладывать на созданное изображение изображение с заранее определенным или случайно сгенерированным прозрачным текстом. Части прозрачного изображения могут быть полностью невидимы в тех местах, где прозрачное изображение пересекается с базовым изображением («полная прозрачность»). В других случаях части прозрачного изображения могут быть частично видимы в тех местах, где прозрачное изображение пересекается с базовым изображением («частичная прозрачность» или «просвечиваемость»). Как схематично изображено на Фиг. 3А, операция 310 наложения прозрачного текста на входное изображение 315 позволяет получить выходное изображение 320.
[00023] На шаге 220 вычислительная система может снижать контрастность созданного изображения, то есть уменьшать максимальную разницу освещенности или яркости пикселей созданного изображения на заранее определенную величину, например, 0,1 или 0,2 от исходной максимальной разницы. Как схематично изображено на Фиг. 3А, операция 325 снижения контрастности исходного изображения 320 позволяет получить выходное изображение 330.
[00024] На шаге 225 вычислительная система может накладывать дополнительный искусственный источник света (псевдо-источник света) на изображенной сцене, дополнительно накладывая по меньшей мере на часть пикселей изображения гауссовский шум сверхнизкой частоты с малой амплитудой и таким образом эмулируя градиентные переходы между более светлыми и более темными фрагментами изображения. Как схематично изображено на Фиг. 3А-3В, операция 335 наложения дополнительного искусственного источника света на изображенной сцене должна обрабатывать входное изображение 330 и создавать выходное изображение 340.
[00025] На шаге 230 вычислительная система может по меньшей мере частично провести расфокусировку изображения, например накладывая размытие по Гауссу с заранее определенным или динамически настраиваемым радиусом, который может выбираться из заранее определенного или динамически настраиваемого диапазона (например, 0,7-3,0). Как схематично изображено на Фиг. 3В, операция 345 расфокусировки входного изображения 340 дает выходное изображение 350.
[00026] На шаге 235 вычислительная система может накладывать на изображение размытие движения, имитируя движение изображаемых объектов в течение времени экспозиции, которое определяется выдержкой.
[00027] На шаге 240 вычислительная система может применять по меньшей мере к части пикселей изображения наложение имитации цифрового шума, например гауссовский шум с заранее определенной или динамически регулируемой амплитудой, например не более 20 единиц яркости изображения или не более 0,15 диапазона яркости изображения. Как схематично изображено на Фиг. 3В, операция 355 внесения цифрового шума во входное изображение 350 позволяет получить выходное изображение 360.
[00028] На шаге 245 вычислительная система может имитировать предварительную обработку изображения, выполняемую получающей изображение камерой, например, путем применения сигма-фильтра по меньшей мере к части пикселей изображения. Как схематично изображено на Фиг. 3В-3С, операция эмуляции 365 предварительной обработки изображения входного изображения 360 позволяет получить выходное изображение 370.
[00029] На шаге 250 вычислительная система может имитировать демозайки изображения, которая представляет собой процесс восстановления полноцветного изображения из примеров с неполноценными цветами, полученными датчиком изображения путем наложения массива цветных фильтров (CFA). В некоторых вариантах реализации демозайка (demosaicing) изображения может включать наложение размытия по Гауссу с заранее определенным или динамически регулируемым среднеквадратичным значением (например, 0,1, 0,2, 0,3 или иным значением). Кроме того, демозайка изображения может дополнительно включать применение к изображению сглаживания света по Гауссу. Оператор сглаживания по Гауссу представляет собой двумерный оператор свертки, который может использоваться для размытия изображения и устранения деталей и шума. Как схематично изображено на Фиг. 3С, операция 375 устранения мозаичности входного изображения 370 позволяет получить выходное изображение 380.
[00030] На шаге 255 вычислительная система может выполнить нерезкое маскирование по меньшей мере части пикселей изображения, которое представляет собой технологию обработки, использующую размытое (или «нерезкое») негативное изображение для создания маски исходного изображения. Нерезкая маска затем объединяется с позитивным (исходным) изображением, в результате получается менее размытое, чем оригинал, изображение. Нерезкая маска может быть представлена линейным или нелинейным фильтром, который усиливает высокочастотные компоненты исходного сигнала. В некоторых вариантах реализации вычислительная система может имитировать операцию снижения резкости, выполняемую определенной моделью камеры, используя значения параметров нерезкой маски, реализуемые камерой. Как схематично изображено на Фиг. 3С, операция 385 снижения резкости входного изображения 380 позволяет получить выходное изображение 390.
[00031] На шаге 260 вычислительная система может накладывать шум JPEG, то есть случайные вариации информации о яркости или цвете. Шум может вноситься, например, путем сохранения изображения в формате JPEG с заранее определенным или динамически регулируемым качеством (например, выбираемым из диапазона 2-80) с последующим разархивированием сохраненного изображения JPEG. Как схематично изображено на Фиг. 3C-3D, операция 392 добавления шума JPEG во входное изображение 390 позволяет получить выходное изображение 395.
[00032] Исходный набор изображений может быть обработан одним или более из описанных выше операций обработки изображений с возможными изменениями параметров операций, в результате будет получен набор аугментированных изображений.
Полученный набор может далее быть аугментирован путем вращения объектов изображений на заранее определенный или динамически регулируемый угол (например, выбираемый из диапазона 10-15°) или изменения масштаба данного изображения для получения двух или более изображений разного размера.
[00033] Таким образом, операции обработки изображений, описанные в этом документе со ссылкой на шаги 225-260, приводят к получению аугментированного набора изображений с объектами, содержащими знаки. Пары изображений, в которых одно изображение выбрано из исходного набора изображений, а другое - из аугментированного набора изображений, могут быть использованы для последующего обучения сверточных нейронных сетей, предназначенных для корректировки различных дефектов изображений, например нейронных сетей, которые могут использоваться для бинаризации изображений и устранения смаза изображений, и (или) повышения качества затененных и светлых участков изображения, как более подробно будет описано ниже со ссылкой на шаги 270-275. В различных вариантах реализации на выборках данных, содержащих пары изображений, в которых одно изображение выбрано из исходного набора изображений, а другое - из аугментированного набора изображений, могут быть обучены и другие нейронные сети. Кроме того, по меньшей мере некоторые из операций, описанных ниже в этом документе со ссылкой на шаги 270-275, могут быть опущены; кроме того, порядок операций обработки изображения, описанных ниже в этом документе со ссылкой на шаги 270-275, может быть различным.
[00034] Сверточная нейронная сеть представляет собой вычислительную модель, основанную на многостадийном алгоритме, который применяет набор заранее определенных функциональных преобразований ко множеству входов (например, пикселей изображений) и затем использует преобразованные данные для выполнения распознавания образов. Сверточная нейронная сеть может быть реализована в виде искусственной нейронной сети с прямой связью, в которой схема соединений между нейронами подобна тому, как организована зрительная зона коры мозга животных. Отдельные нейроны коры откликаются на раздражение в ограниченной области пространства, известной под названием рецептивного поля. Рецептивные поля различных нейронов частично перекрываются, образуя поле зрения. Отклик отдельного нейрона на раздражение в границах своего рецептивного поля может быть аппроксимирован математически с помощью операции свертки. Нейроны соседних слоев соединены взвешенными ребрами. Веса ребер и (или) другие параметры сети определяются на стадии обучения сети на основе обучающей выборки данных.
[00035] В одном из иллюстративных примеров обучение сети включает активацию сверточной нейронной сети для каждого исходного образца обучающей выборки данных. Значение заранее определенной функции потерь вычисляется исходя из получаемого выхода сверточной нейронной сети и ожидаемого результата, определенного в обучающей выборке данных, а ошибка обратного распространяется (backpropagation error) на предыдущие слои сверточной нейронной сети, в которой соответствующим образом меняются веса и (или) другие параметры сети. Этот процесс может повторяться, пока значение функции ошибок не станет ниже заранее определенного порогового значения.
[00036] Соответственно, на шаге 265 вычислительная система может создавать обучающую выборку данных, содержащую множество пар изображений, - таких, что каждая пара изображений включает изображение, выбранное из исходного набора изображений, и изображение, выбранное из аугментированного набора изображений.
[00037] На шаге 270 вычислительная система может использовать пары изображений, взятых из исходного набора изображений и из аугментированного набора изображений, для обучения сверточной нейронной сети U-net, реализующей сквозную сеть кодирования-декодирования, которая может использоваться для бинаризации изображений и исправления смаза изображения.
[00038] Как схематично изображено на Фиг. 4, сеть U-Net 400 может включать ветку предварительной обработки 410 (левая часть) и ветку контекста 420 (правая часть). Ветка предварительной обработки может содержать набор сверточных фильтров, выполняющих локальную трансформацию изображений. Ветка контекста может содержать несколько сверточных слоев, которые уменьшают входное изображение 430 на заранее определенный или динамически регулируемый коэффициент масштабирования (например, в 3 раза), и соответствующее количество слоев транспонированной свертки для увеличения изображения на тот же коэффициент масштабирования, что эффективно отменяет эффект предшествующей операции по уменьшению изображения. Конкатенирующий слой может находиться между сверточными и транспонированной свертки (transposed convolution, trans-convolution) слоями, таким образом предупреждая потерю локальной информации изображения в слоях транспонированной свертки. В одном из иллюстративных примеров сверточный слой может быть представлен остаточной нейронной сетью, которая имитирует функции пирамидальных клеток коры головного мозга, используя обходные соединения в качестве ссылок для проскока одного или более слоев. Обходные соединения могут ассоциироваться с весом проскока, изученного на стадии обучения нейронной сети. Результаты работы ветки предварительной обработки и ветки контекста объединяются, и объединенные данные поступают в один или более сверточных слоев, выход которых образует выходное изображение 440, которое в основном совпадает с входным изображением.
[00039] Обучение сети U-Net может выполняться с использованием кусочно-линейной функции потерь, для предполагаемых входных данных t=±2 и оценки классификатора у, определяя потери кусочно-линейной функции предсказания у как . В некоторых вариантах реализации обучение сети может выполняться с относительно небольшими значениями скорости обучения (которая является гиперпараметром способа обучения, определяющим скорость изменения градиента в направлении градиента. В некоторых вариантах реализации скорость обучения может динамически регулироваться (уменьшаться) со временем, это позволяет точно настроить параметры сети после определения исходного рабочего набора параметров сети.
[00040] На шаге 275 вычислительная система может использовать пары изображений, полученные из исходного набора изображений и аугментированного набора изображений для обучения расширенной сверточной нейронной сети, которую можно использовать для корректировки экспонирования изображения путем повышения качества затененных и светлых участков изображения. В одном из иллюстративных примеров расширенная сверточная нейронная сеть может реализовывать сверточный оператор дилатации, который можно описать следующим образом:
[00041]
[00042] где к - дискретный фильтр заранее определенного размера, а */ - 1-расширенная свертка.
[00043] Операция дилатации в основном выполняет экспоненциальное расширение рецепторного поля сверточного слоя без потерь разрешения или покрытия.
[00044] На Фиг. 5 схематично изображен пример структуры расширенной сверточной сети, которая может использоваться для повышения качества затененных и светлых участков изображения в соответствии с одним или более вариантами реализации настоящего изобретения. Как схематично изображено на Фиг. 5, расширенная сверточная сеть 500 может содержать несколько сверточных слоев 510A-510N, которые могут реализовывать операторы дилатации свертки с различными значениями параметра дилатации  (например, 1, 2, 4, 8, 8, 8, 8, 16).
[00045] В одном из иллюстративных примеров расширенная сверточная сеть может обучаться с использованием алгоритма оптимизации Адама, который представляет собой расширение методов стохастического градиентного спуска, например Оптимизатора потерь по Адаму L2 (L2 loss Adam Optimizer). Процесс обучения может включать итеративное изменение весов сети и (или) других параметров сети исходя из обучающей выборки. В некоторых вариантах реализации обучение сети может выполняться при относительно небольших значениях скорости обучения. Способ обучения может поддерживать скорость обучения по параметрам, что повышает производительность при проблемах с разреженными градиентами. Скорость обучения по параметрам может базироваться на вторых моментах градиентов (нецентрованная дисперсия), например, путем вычисления экспоненциального скользящего среднего градиента и квадратичного градиента, и параметров, которые управляют скоростью расширения этих скользящих средних.
[00046] На шаге 280 сверточные нейронные сети, обученные на шагах 270-275, могут использоваться для предварительной обработки изображения в различных реализациях OCR и (или) других приложений для обработки изображений.
[00047] В некоторых вариантах реализации сверточные нейронные сети, использованные для предварительной обработки изображений (например, описанные выше сверточные нейронные сети), могут быть изменены и использованы для отделения синтетических изображений от реальных фотографических изображений. Такие измененные сети могут использоваться для определения качества синтетических изображений: если точность классификации не превосходит нижнего предельного значения (которое может быть выбрано близким к 50%), то качество синтетических изображений может быть достаточным для их использования в обучении нейронных сетей для обработки изображений для OCR и других различных применений. И наоборот, если точность классификации превосходит другое предельное значение (которое может быть выбрано близким к 70%), то качество синтетических изображений может быть чрезмерным для их использования в обучении нейронных сетей, так как синтетические изображения должны отличаться от реальных фотографических изображений. Таким образом, сверточные нейронные сети, измененные для выделения синтетических изображений, могут использоваться для фильтрации обучающих выборок данных, созданных в соответствии с одним или более вариантами реализации настоящего изобретения, таким образом препятствуя использованию синтетических изображений неподходящего качества для обучения нейронных сетей.
[00048] В одном из иллюстративных примеров сверточная нейронная сеть, схематично изображенная на Фиг. 4, может быть изменена путем удаления компонентов сети, следующих за ранее определенным сверточным слоем (например, сверточным слоем 450 на Фиг. 4, имеющем заранее определенный размер, например 5×5×256). Как схематично изображено на Фиг. 6, измененная сверточная нейронная сеть 600 должна включать подмножество 610 компонентов исходной нейронной сети 400 между входом сети и заранее определенным сверточным слоем (например, сверточным слоем 450 на Фиг. 4). Выход сверточного слоя 450 поступает на вход полносвязного слоя 620, который преобразует свой вход в вектор заранее определенного (например, 128) количества признаков, который классифицируется в определенные целевые классы (например, класс синтетических изображений и класс реальных фотографических изображений). Сверточная нейронная сеть 600 может быть обучена с использованием двоичной функции потерь на базе перекрестной энтропии.
[00049] Таким образом, настоящее изобретение описывает системы и способы для создания фотореалистичных изображений, который включает процесс эмуляции получения изображений путем отображения изображения текстовых строк и последующей обработки полученных изображений для внесения различных дефектов изображения (расфокусировка, смаз, блики и пр.), обычно присутствующих на изображениях, полученных путем фотосъемки. Использование синтетических фотореалистичных изображений, полученных с помощью систем и способов по настоящему изобретению для обучения нейронных сетей для обработки изображений, приводит к значительному повышению качества изображений, что повышает общую эффективность оптического распознавания символов (OCR), который извлекает из изображений текстовую информацию.
[00050] На Фиг. 7 представлена схема компонентов примера вычислительной системы, которая может использоваться для реализации описанных в этом документе способов. Вычислительная система 700 может быть соединена с другой вычислительной системой по локальной сети, корпоративной сети, сети экстранет или сети Интернет. Вычислительная система 700 может работать в качестве сервера или клиента в сетевой среде «клиент / сервер», или в качестве однорангового вычислительного устройства в одноранговой (или распределенной) сетевой среде. Вычислительная система 700 может быть представлена персональным компьютером (ПК), планшетным ПК, телевизионной приставкой (STB), карманным ПК (PDA), сотовым телефоном или любой вычислительной системой, способной выполнять набор команд (последовательно или иным образом), определяющих операции, которые должны быть выполнены этой вычислительной системой. Кроме того, несмотря на то что показана только одна вычислительная система, термин «вычислительная система» также может включать любую совокупность вычислительных систем, которые отдельно или совместно выполняют набор (или несколько наборов) команд для выполнения одной или более методик, обсуждаемых в настоящем документе.
[00051] Пример вычислительной системы 700 включает процессор 702, основное запоминающее устройство 704 (например, постоянное запоминающее устройство (ПЗУ) или динамическое оперативное запоминающее устройство (ДОЗУ)) и устройство хранения данных 718, которые взаимодействуют друг с другом по шине 730.
[00052] Процессор 702 может быть представлен одним или более универсальными вычислительными устройствами, такими как микропроцессор, центральный процессор и т.п. В частности, процессор 702 может представлять собой микропроцессор с полным набором команд (CISC), микропроцессор с сокращенным набором команд (RISC), микропроцессор со сверхдлинным командным словом (VLIW) или процессор, в котором реализованы другие наборы команд, или процессоры, в которых реализована комбинация наборов команд. Процессор 702 также может представлять собой одно или более вычислительных устройств специального назначения, например, заказную интегральную микросхему (ASIC), программируемую пользователем вентильную матрицу (FPGA), процессор цифровых сигналов (DSP), сетевой процессор и т.п. Процессор 702 реализован с возможностью выполнения команд 726 для осуществления рассмотренных в настоящем документе способов.
[00053] Вычислительная система 700 может дополнительно включать устройство сетевого интерфейса 722, устройство визуального отображения 710, устройство ввода символов 712 (например, клавиатуру) и устройство ввода в виде сенсорного экрана 714.
[00054] Устройство хранения данных 718 может включать машиночитаемый носитель данных 724, в котором хранится один или более наборов команд 726, в которых реализован один или более методов или функций, описанных в данном варианте реализации изобретения. Инструкции 726 во время выполнения их в вычислительной системе 700 также могут находиться полностью или по меньшей мере частично в основном запоминающем устройстве 704 и (или) в процессоре 702, при этом основное запоминающее устройство 704 и процессор 702 также представляет собой машиночитаемый носитель данных. Команды 726 также могут передаваться или приниматься по сети 716 через устройство сетевого интерфейса 722.
[00055] В некоторых вариантах реализации инструкции 726 могут включать инструкции способа 200 обучения нейронных сетей для обработки изображения с помощью синтетических фотореалистичных изображений, содержащих знаки, в соответствии с одним или более вариантами реализации настоящего изобретения. Хотя машиночитаемый носитель данных 724, показанный в примере на Фиг. 7, является единым носителем, термин «машиночитаемый носитель» может включать один или более носителей (например, централизованную или распределенную базу данных и (или) соответствующие кэши и серверы), в которых хранится один или более наборов команд. Термин «машиночитаемый носитель данных» также может включать любой носитель, который может хранить, кодировать или содержать набор команд для выполнения машиной и который обеспечивает выполнение машиной любой одной или более методик настоящего изобретения. Поэтому термин «машиночитаемый носитель данных» относится, помимо прочего, к твердотельным запоминающим устройствам, а также к оптическим и магнитным носителям.
[00056] Способы, компоненты и функции, описанные в этом документе, могут быть реализованы с помощью дискретных компонентов оборудования либо они могут быть встроены в функции других компонентов оборудования, например ASICS (специализированная заказная интегральная схема), FPGA (программируемая логическая интегральная схема), DSP (цифровой сигнальный процессор) или аналогичных устройств. Кроме того, способы, компоненты и функции могут быть реализованы с помощью модулей встроенного программного обеспечения или функциональных схем аппаратного обеспечения. Способы, компоненты и функции также могут быть реализованы с помощью любой комбинации аппаратного обеспечения и программных компонентов либо исключительно с помощью программного обеспечения.
[00057] В приведенном выше описании изложены многочисленные детали. Однако любому специалисту в этой области техники, ознакомившемуся с этим описанием, должно быть очевидно, что настоящее изобретение может быть осуществлено на практике без этих конкретных деталей. В некоторых случаях хорошо известные структуры и устройства показаны в виде блок-схем без детализации, чтобы не усложнять описание настоящего изобретения.
[00058] Некоторые части описания предпочтительных вариантов реализации изобретения представлены в виде алгоритмов и символического представления операций с битами данных в запоминающем устройстве компьютера. Такие описания и представления алгоритмов представляют собой средства, используемые специалистами в области обработки данных, что обеспечивает наиболее эффективную передачу сущности работы другим специалистам в данной области. В контексте настоящего описания, как это и принято, алгоритмом называется логически непротиворечивая последовательность операций, приводящих к желаемому результату. Операции подразумевают действия, требующие физических манипуляций с физическими величинами. Обычно, хотя и необязательно, эти величины принимают форму электрических или магнитных сигналов, которые можно хранить, передавать, комбинировать, сравнивать и выполнять с ними другие манипуляции. Иногда удобно, прежде всего для обычного использования, описывать эти сигналы в виде битов, значений, элементов, символов, терминов, цифр и т.д.
[00059] Однако следует иметь в виду, что все эти и подобные термины должны быть связаны с соответствующими физическими величинами и что они являются лишь удобными обозначениями, применяемыми к этим величинам. Если не указано дополнительно, принимается, что в последующем описании термины «определение», «вычисление», «расчет», «получение», «установление», «изменение» и т.п.относятся к действиям и процессам вычислительной системы или аналогичной электронной вычислительной системы, которая использует и преобразует данные, представленные в виде физических {например, электронных) величин в реестрах и запоминающих устройствах вычислительной системы, в другие данные, аналогично представленные в виде физических величин в запоминающих устройствах или реестрах вычислительной системы или иных устройствах хранения, передачи или отображения такой информации.
[00060] Настоящее изобретение также относится к устройству для выполнения операций, описанных в настоящем документе. Такое устройство может быть специально сконструировано для требуемых целей, либо оно может представлять собой универсальный компьютер, который избирательно приводится в действие или дополнительно настраивается с помощью программы, хранящейся в памяти компьютера.
Такая компьютерная программа может храниться на машиночитаемом носителе данных, например, помимо прочего, на диске любого типа, включая дискеты, оптические диски, CD-ROM и магнитно-оптические диски, постоянные запоминающие устройства (ПЗУ), оперативные запоминающие устройства (ОЗУ), СППЗУ, ЭППЗУ, магнитные или оптические карты и носители любого типа, подходящие для хранения электронной информации.
[00061] Следует понимать, что приведенное выше описание призвано иллюстрировать, а не ограничивать сущность изобретения. Специалистам в данной области техники после прочтения и уяснения приведенного выше описания станут очевидны и различные другие варианты реализации изобретения. Исходя из этого область применения изобретения должна определяться с учетом прилагаемой формулы изобретения, а также всех областей применения эквивалентных способов, на которые в равной степени распространяется формула изобретения.