СПОСОБ И УСТРОЙСТВО ДЛЯ СОВМЕСТНОГО ВЫПОЛНЕНИЯ ДЕБАЙЕРИЗАЦИИ И УСТРАНЕНИЯ ШУМОВ ИЗОБРАЖЕНИЯ С ПОМОЩЬЮ НЕЙРОННОЙ СЕТИ
METHOD AND APPARATUS FOR JOINT DEBAYERING AND IMAGE NOISE ELIMINATION USING A NEURAL NETWORK

Область техники
[0001] Настоящее изобретение относится к области искусственного интеллекта (ИИ) и, в частности, к способу совместного выполнения дебайеризации и устранения шумов для формирования выходного изображения с помощью нейронной сети и вычислительному устройству для реализации упомянутого способа.
Уровень техники
[0002] Практически все современные вычислительные устройства такие как, например, смартфоны и планшеты, обладают камерой, выполненной с возможностью захвата изображений и видео. Тем не менее, изображения, захватываемые такими камерами, подвержены цифровому шуму, вносимому фотосенсорами, неоптимальными параметрами съемки, а также сложными условиями съемки (ночная съемка, съемка с избыточным светом и т.д.). На камерах с массивом цветных фильтров (CFA, наиболее распространенный в данный момент тип цифровых камер), размещенным поверх фотосенсора, шум обычно имеет визуально более крупные зерна, чем пиксели на изображениях. Таким образом, в уровне техники имеется проблема появления цифрового шума на изображениях, захватываемых камерами вычислительных устройств. Кроме того, если дебайеризация шумного RAW-изображения выполняется сначала (т.е. перед устранением шумов изображения), тогда такая дебайеризация коррелирует с шумом, что затрудняет последующее устранение шумов на изображении. Если же устранение шумов применяется к данным, которые еще не подвергались дебайеризации, становится сложнее использовать межцветовые корреляции, которые необходимы для последующего устранения шумов на изображении. Чтобы эти проблемы не возникали необходимо предусмотреть техническое решение, которое разрешает проблему появления цифрового шума на изображениях, захватываемых камерами вычислительных устройств, а также выполняет дебайеризацию и устранение шумов на этом изображения совместно, т.е. параллельно.
[0003] Для решения этих проблем можно обратиться к области ИИ и, в частности, к нейросетевым технологиям. Действительно, аппаратные конфигурации большинства доступных в данный момент вычислительных устройств способны выполнять обработку изображений и видео с помощью нейронных сетей, которые могут быть заблаговременно обучены на специализированном оборудовании для обучения нейронных сетей (например, GPU, NPU, FPGA, ASIC и т.д.) и загружены на вычислительное устройство как готовый продукт в форме, например, весовых коэффициентов, других параметров, а также исполняемых-компьютером инструкций для реализации определенной архитектуры глубокой нейронной сети. Тем не менее, поскольку считается, что большинство мобильных вычислительных устройств пользователя (смартфон, планшет и т.д.) обладают ограниченными вычислительными ресурсами процессора, архитектуры нейронных сетей, применяемые для таких устройств, должны быть адаптированы соответствующим образом для обеспечения возможности их работы в режиме реального времени на таких вычислительных устройствах. Таким образом, для решения вышеупомянутых проблем архитектура применяемой глубокой нейронной сети должна быть облегченной.
[0004] Кроме того, поскольку процедура обучения нейронной сети в традиционных способах совместного выполнения дебайеризации и устранения шумов значительно отличается от стандартного алгоритма обработки изображения на вычислительном устройстве, на котором обученная нейронная сеть впоследствии применяется, нейронная сеть, показывающая высокие оценки во время процедуры обучения, не обеспечивает достаточного качества при ее интеграции в реальный конвейер обработки изображений на устройстве (на стадии использования/inference).
[0005] Заявка на патент США, которая опубликованная 29 июня 2017 года как US2017185871 A1 (Samsung Electronics Co. Ltd.) и которая может быть рассмотрена в качестве ближайшего аналога, раскрывает способ, который заменяет некоторые части стандартного алгоритма обработки нейронной сетью. В качестве одного из полезных применений в документе ближайшего уровня техники раскрыто совместное выполнение дебайеризации и устранения шумов. Тем не менее, небольшой размер входного изображения (32×32) приводит к маленькому полю восприятия применяемой нейронной сети, что, в свою очередь, приводит к появлению артефактов и общему плохому качеству обработанного таким способом изображения. Кроме того, данному решению также свойственна проблема различий между процедурой обучения нейронной сети и стандартным алгоритмом обработки изображения, применяемого на вычислительном устройстве, в который обученная нейронная сеть впоследствии интегрируется. Наконец, универсальность данного решения оставляет желать лучшего поскольку в конвейере ISP учитывается полный набор операций и для каждой возможной комбинации необходимо обучать отдельную нейронную сеть.
Сущность изобретения
[0006] В первом аспекте настоящего раскрытия обеспечен способ совместного выполнения дебайеризации и устранения шумов для формирования выходного изображения с помощью нейронной сети, включающий в себя: получение данных изображения, собранных массивом цветных фильтров (CFA-данных изображения); и совместное выполнение дебайеризации и устранения шумов над CFA-данными изображения с помощью обученной нейронной сети для формирования выходного изображения, при этом нейронная сеть имеет облегченную архитектуру U-Net и обучена на множестве пар обучающих изображений, причем одно изображение в каждой паре обучающих изображений получают с более низким значением ISO, чем другое изображение в упомянутой паре обучающих изображений, и обрабатывают стандартным алгоритмом обработки, причем другое изображение в каждой паре обучающих изображений представлено в формате CFA-данных изображения
[0007] Во втором аспекте обеспечено вычислительное устройство пользователя, включающее в себя процессор и память, хранящую обученную нейронную сеть и исполняемые процессором инструкции, которые при исполнении побуждают процессор к выполнению способа совместного выполнения дебайеризации и устранения шумов для формирования выходного изображения согласно первому аспекту настоящего раскрытия.
[0008] Настоящее изобретение решает вышеупомянутые проблемы в уровне техники и обеспечивает совместную дебайеризацию и устранение цифрового шума на изображениях, захватываемых камерами вычислительных устройств, с помощью нейронной сети с модифицированной архитектурой. Данный технический результат достигается по меньшей мере за счет того, что нейронная сеть имеет облегченную архитектуру U-Net, а также за счет того, что она обучена на множестве пар обучающих изображений, причем одно изображение в каждой паре обучающих изображений получают с более низким значением ISO, чем другое изображение в упомянутой паре обучающих изображений, и обрабатывают стандартным алгоритмом обработки.
Краткое описание чертежей
[0009] Конкретные варианты осуществления, реализации и другие подробности раскрытого изобретения проиллюстрированы на чертежах, на которых:
ФИГ. 1
[ФИГ. 1]  иллюстрирует блок-схему последовательности операций способа совместного выполнения дебайеризации и устранения шумов для формирования выходного изображения с помощью нейронной сети согласно варианту осуществления настоящего изобретения.
ФИГ. 2
[ФИГ. 2]  иллюстрирует одну возможную реализацию облегченной архитектуры U-Net нейронной сети, которая может быть применена в способе согласно варианту осуществлени я настоящего изобретения.
ФИГ. 3
[ФИГ. 3]  иллюстрирует другую возможную реализацию облегченной архитектуры U-Net нейронной сети, которая может быть применена в способе согласно варианту осуществления настоящего изобретения.
ФИГ. 4
[ФИГ. 4]  иллюстрирует примерную структуру разностного блока (Residual block) и примерную структуру разностного блока с сепарабельной сверткой (ResidualSep block) из облегченной архитектуры U-Net нейронной сети, которая может быть применена в способе согласно варианту осуществления настоящего изобретения.
ФИГ. 5
[ФИГ. 5]  иллюстрирует общую блок-схему последовательности операций обучения нейронной сети, которая может быть применена в способе согласно варианту осуществления настоящего изобретения.
ФИГ. 6
[ФИГ. 6]  иллюстрирует блок-схему последовательности операций конкатенации параметров модели шума, коэффициентов баланса белого и параметров постобработки в bottleneck-слой нейронной сети.
ФИГ. 7
[ФИГ. 7]  иллюстрирует возможную реализацию обучения нейронной сети на фрагментах изображений, которая может быть применена в способе согласно варианту осуществления настоящего изобретения.
ФИГ. 8
[ФИГ. 8]  иллюстрирует блок-схему вычислительного устройства согласно варианту осуществления настоящего изобретения.
Подробное описание
[0010] Сначала будут описаны некоторые общие понятия и концепции применимых технологий, а затем данный раздел сконцентрируется на отличиях и возможных реализациях настоящего изобретения. Специалист в данной области поймет, что ниже приведено не полное теоретическое описание всех известных технологий, а только та часть такого описания, которая граничит с и необходима для теоретического обоснования и практической реализации заявленного изобретения. Особый акцент будет сделан на различных модификациях и отличиях заявленного изобретения от известного уровня техники, а также на различных реализациях и вариантах осуществления заявленного изобретения.
«массив цветных фильтров (CFA)»
«мозаика цветных фильтров (CFM)»
[0011] Под термином  или  понимается часть светочувствительной матрицы камеры, осуществляющая пространственное цветоделение изображения при помощи фотодатчиков - пиксельных датчиков матрицы, расположенных за светофильтрами различного цвета. Каждый пиксельный датчик матрицы накрыт одним светофильтром массива. Существуют различные типы CFA/CFM, например, фильтр Байера, RGBE, CYYM, CYGM, RGBW Байера и т.д, которые могут быть применены без ограничения. Поскольку каждый пиксельный датчик матрицы находится за элементарным цветным фильтром, он фиксирует только информацию о яркости своего пикселя в частичном цветоделенном изображении. Фильтр Байера представляет собой двумерный массив цветных фильтров, которыми накрыты пиксельные датчики светочувствительной матрицы. Фильтр Байера используется для получения цветного изображения в матрицах цифровых фотоаппаратов, видеокамер и сканеров. Фильтр Байера состоит из 25% красных элементов, 25% синих и 50% зеленых элементов.
«Дебайеризация/демозаика»
[0012] Формат RAW - формат цифровых файлов изображения, содержащий необработанные данные об электрических сигналах со светочувствительной матрицы цифрового фотоаппарата, цифровой кинокамеры, а также сканеров неподвижных изображений или кинопленки. ISP - процессор сигналов изображения, который выполнен с возможностью осуществления обработки изображения согласно стандартному алгоритму обработки.  (интерполяция CFA/CFM) - процесс, используемый для восстановления полноцветного изображения из неполных цветовых выборок, выводимых с пиксельных датчиков светочувствительной матрицы, которые расположены за CFA/CFM.
ФИГ. 1
[0013] На  проиллюстрирована блок-схема последовательности операций способа совместного выполнения дебайеризации и устранения шумов для формирования выходного изображения с помощью глубокой нейронной сети согласно варианту осуществления настоящего изобретения. Способ совместного выполнения дебайеризации и устранения шумов изображения с помощью глубокой нейронной сети, включает в себя: получение S105 данных изображения, собранных массивом цветных фильтров (CFA-данных изображения). CFA-данные изображения представляют собой информацию о яркости пикселей изображения в частичном цветоделенном изображении. Тип применяемого CFA определяет содержимое CFA-данных изображения, получаемых на данном этапе. В одном примере, когда типом CFA является фильтр Байера получаемые на данном этапе данные содержат частичное R-изображение, частичное G-изображение и частичное B-изображение. В другом примере, когда типом CFA является RGBE получаемые на данном этапе данные содержат частичное R-изображение, частичное G-изображение, частичное B-изображение и частичное E-изображение и т.д. Затем способ содержит совместное выполнение S110 дебайеризации и устранения шумов над CFA-данными изображения с помощью обученной глубокой нейронной сети для формирования выходного изображения.
[0014] Используемая глубокая нейронная сеть имеет облегченную архитектуру U-Net и обучена на множестве пар обучающих изображений, причем одно изображение в каждой паре обучающих изображений получают с более низким значением ISO (светочувствительность), чем другое изображение в упомянутой паре обучающих изображений, и обрабатывают стандартным алгоритмом обработки, причем другое изображение в каждой паре обучающих изображений представлено в формате CFA-данных изображения. Должно быть понятно, что изображения в каждой паре изображений захвачены для одной и той же сцены, т.е. сцена в одном изображении аналогична сцене в другом изображении. Изображение с низким значением ISO является изображением лучшего качества, например, но без ограничения, в цветовом пространстве RGB. При сборе обучающих данных предпочтение отдавалось статичным сценам, которые снимались со штатива. Цифрового шума на таком изображении будет мало или уровень шума будет меньше порога квантования цвета и общий контраст изображения будет лучше, чем у изображения с высоким значением ISO. Таким образом, изображение с низким значением ISO в каждой обучающей паре изображений может быть использовано при обучении глубокой нейронной сети в качестве эталонного (ground-truth) изображения, а соответствующее изображение с высоким значением ISO, представленное в формате CFA-данных изображения, собранные с пиксельных датчиков светочувствительной матрицы через массив цветных фильтров при захвате цветного (например RGB-) изображения с высоким значением ISO, могут служить в качестве исходных данных, которые подлежат совместному выполнению дебайеризации и устранения шумов (т.е. восстановлению) до эталонного изображения.
ФИГ. 2
асимметричной
[0015] На  проиллюстрирована одна возможная реализация облегченной архитектуры U-Net глубокой нейронной сети, которая может быть применена в способе согласно варианту осуществления настоящего изобретения. Глубокая нейронная сеть архитектуры U-Net является сверточной нейронной сетью, содержащей сжимающий путь/кодер (слева) и расширяющий путь/декодер (справа), поэтому архитектура похожа на букву U, что и отражено в названии. Как проиллюстрировано на фигуре 2 архитектура нейронной сети U-Net содержит skip-соединения между слоями кодера и декодера с одинаковой размерностью. Архитектура U-Net глубокой нейронной сети для совместного выполнения дебайеризации и устранения шумов является  (т.е. на стороне кодера сети применяется одна или более несепарабельных сверток, а на стороне декодера применяется одна или более сепарабельных сверток) и содержит один или более разностных блоков на стороне кодера и один или более разностных блоков на стороне декодера. Как показано на фигуре 2 кодер U-Net глубокой нейронной сети содержит два слоя Conv2D nxn (например, 3×3, 5×5 и т.д.) strd=1 (показаны штриховкой сверху-вниз слева-направо), каждый из которых обеспечивает последовательность сверток и активаций, не меняющую размер, четыре разностных блока Residual Block с Conv2D (показаны штриховкой снизу-вверх слева-направо), каждый из которых обеспечивает суммирование сигнала поступающего на вход блока и выхода группы сверточных слоев и активаций, при этом функция активации может быть реализована в виде Parametric RELu, но без ограничения упомянутым. Должно быть понятно, что заявленное изобретение не следует ограничивать конкретной указанной функцией активации, поскольку одинаково успешно могут быть применены другие известные функции активации, например Leaky ReLU, PReLU, RReLU и т.д.
[0016] Слои сети в архитектуре U-Net, у которых размерность изображения в пространстве признаков минимальна, называются bottleneck-слоями, bottleneck-слой не содержит операций ни повышающего масштабирования, ни понижающего масштабирования, поскольку в этом bottleneck-слое размер входных данных совпадает с размером выходных данных. В проиллюстрированной архитектуре глубокой нейронной сети U-Net bottleneck-слой представлен разностным блоком Residual Block (показанным штриховкой «в клетку»), обеспечивающим суммирование сигнала поступающего на вход блока и выхода группы сверточных слоев и активаций с целью решения проблемы затухающих градиентов в процессе обучения сети. Декодер глубокой нейронной сети U-Net содержит четыре слоя SepConv2D (показанные штриховкой «змейка»), каждый из которых реализован с использованием последовательного соединения блока масштабирования методом ближайшего соседа (nearest upscale) или любым другим известным методом и блока свертки, при этом блок свертки в по меньшей мере одном из таких слоев является блоком сепарабельной свертки. Затем идет один слой Conv2D nxn (например, 3×3, 5×5 и т.д.) strd=1. При этом на вход первого блока декодера подается выходной сигнал bottleneck-слоя, а на вход каждого последующего блока декодера подается сумма выходных сигналов предыдущего слоя декодера и skip-соединения, обеспечивающего выходной сигнал слоя кодера с такой же размерностью, при этом назначение skip-соединений состоит в обеспечении непосредственного протекания информации между далеко отстоящими друг от друга слоями сети, что способствует эффективной тренировке глубоких нейронных сетей и позволяет избегать проблему затухающего градиента. Разностный блок для совместного выполнения устранения шумов и дебайеризации никогда не использовался. В такой архитектуре входная мозаика 1536х1408х1 преобразуется в изображение 768×704x4 и проходит через UNet-подобную сеть с разностными блоками. Выходной тензор имеет форму 768×704x16. Конечное изображение расширяется до 1536х1408х3 из выходного тензора. Указанные конкретные значения размеров следует рассматривать лишь в качестве примера, а не ограничения. В частности, поскольку сеть чисто сверточная, размер входных данных может быть любым, но затем входные данные могут разделяться или не разделяться на определенное число фрагментов для обработки, чтобы соответствовать ограничениям по памяти на конкретном устройстве и т.д. Обучение проводится с помощью L1-нормы+разномасштабного структурного подобия (Multi-Scale Structural Similarity) с 4 уровнями масштаба. Указанные в данном абзаце размерности и конкретные значения параметров не следует интерпретировать в качестве ограничивающих настоящее изобретение, поскольку для заявленного назначения другие архитектуры являются возможными (см., например, архитектуру, показанную на фигуру 3, описание которой приводится ниже).
ФИГ. 3
[0017] Размеры фильтров для каждого из слоев проиллюстрированной архитектуры приведены на фигуре 2. Должно быть понятно, что заявленное изобретение не следует ограничивать конкретными указанными на фигуре 2 размерами фильтра, поскольку одинаково успешно могут быть применены другие архитектуры с другими размерами фильтров. В качестве примера, на  проиллюстрирована другая возможная реализация облегченной архитектуры глубокой нейронной сети U-Net, которая может быть применена в способе согласно варианту осуществления настоящего изобретения. Штриховка слоев и блоков глубокой нейронной сети, показанной на фигуре 3, полностью соответствует штриховке, использованной на фигуре 2. Другая возможная реализация архитектуры глубокой нейронной сети U-Net, показанная на фигуре 3, является еще более облегченной (т.е. содержит меньшее число слоев), чем архитектура, показанная на фигуре 2. Ассиметричная U-Net нейронная сеть, в которой блоки сепарабельной свертки используются только на стороне декодера никогда не использовалась.
ФИГ. 4
[0018] На  проиллюстрирована примерная структура разностного блока (Residual block) и примерная структура разностного блока с сепарабельной сверткой (ResidualSep block) из облегченной архитектуры U-Net глубокой нейронной сети, которая может быть применена в способе согласно варианту осуществления настоящего изобретения. Разностный блок содержит вход, первый модуль функции ReLu-активации, первый модуль 2D несепарабельной свертки (Conv2D), второй модуль функции ReLu-активации, второй модуль несепарабельной 2D свертки (Conv2D) и выход. Разностный блок с сепарабельной сверткой отличается от обычного разностного блока тем, что второй модуль 2D несепарабельной свертки (Conv2D) в нем заменен модулем 2D сепарабельной свертки. Данная модификация никогда не использовалась для совместного выполнения устранения шумов и дебайеризации.
ФИГ. 5
[0019] На  проиллюстрирована общая блок-схема последовательности операций обучения глубокой нейронной сети, которая может быть применена в способе согласно варианту осуществления настоящего изобретения. Как проиллюстрировано на фигуре 5 сначала получают обучающие данные, включающие в себя пары обучающих изображений, причем одно изображение в каждой паре обучающих изображений получают с более низким значением ISO, чем другое изображение в упомянутой паре обучающих изображений, которое представлено в формате CFA-данных («мозаики») изображения. Предполагается, что при получении обучающих изображений выполняется их предобработка в RAW-области, включающая в себя одно или более из регулировки баланса белого, многокадрового HDR-слияния, многокадрового подавления шума, коррекции виньетирования и т.д.
[0020] Примерный режим получения обучающих данных: Для автоматического режима вычисляли произведение exposure_time0 * ISO0, вычисляли минимальное ISO=ISO1, которое было бы больше или равно минимально доступному ISO для конкретной модели смартфона (обычно это 40 или 50, данные доступны в API Android), чтобы при этом существовало такое exposure_time1, что exposure_time0 * ISO0=exposure_time1 * ISO1 и exposure_time1 не превышает максимально доступного времени экспозиции для данной модели телефона (также доступно в API Android). В качестве высокого значения ISO брали различные значения ISO=ISO2, не менее чем в 2 раза большие, чем ISO1, такие, чтобы exposure_time0 * ISO0=exposure_time1 * ISO1=exposure_time2* ISO2 причем так, чтобы выбранные значения выдержки и экспозиции попадали в диапазон допустимых значений для данной модели телефона. Специалисту в данной области техники будут понятны другие возможные варианты подбора значений более высокого ISO и более низкого ISO. В нижеследующей таблице приведены примерные значения ISO, которые могут применяться:
Таблица 1
<b>Эталонное (ground truth) изображение/изображение RGB с более низким значением ISO</b>
<b>RAW/CFA-данные изображение для изображения с более высоким значением ISO</b>
<b>Номер пары обучающих изображений</b>
<b>Значение ISO</b>
<b>Значение ISO</b>
1
200
300
2
100
400
3
100
400
4
100
200
5
200
400
6
200
600
7
200
800
8
400
1600
9
400
925
10
200
513
11
200
721
12
..
..
[0021] Добавление к обучающему набору данных изображений с различными значениями ISO обеспечивает обучение способной к обобщению нейронной сети и гарантирует возможность последующего применения такой сети для обработки изображений с разными ISO без изменения самой сети и/или переобучения.
[0022] Затем выполняется последовательная обработка каждой пары обучающих изображений из набора обучающих данных. Для этого изображение с низким значением ISO обрабатывают стандартным алгоритмом обработки, который предполагает обработку реальным (существующим) процессором сигналов изображения (ISP), настроенным с оптимальными параметрами съемки. Оптимальные параметры съемки могут определяться в соответствии с требованиями заказчика. Обработка стандартным алгоритмом обработки содержит раздельное (т.е. сначала любое одно, а затем другое) выполнение устранения шума и дебайеризации. Опционально обработка изображения стандартным алгоритмом обработки дополнительно содержит одну или более из следующих операций постобработки, выбираемых из группы, содержащей: применение матрицы цветокоррекции, тоновую коррекцию, улучшение деталей изображения, тождественное преобразование, преобразование гаммы, увеличение насыщенности или предопределенное линейное или нелинейное преобразование в любом цветовом пространстве из следующих: RGB, HSV, LaB, YCbCr, YIQ, YUV, HSL, но без ограничения упомянутым.
[0023] Конкретная компоновка операций, включаемых в стандартный алгоритм обработки, может отличаться у различных ISP. Таким образом, в зависимости от того, каким конкретно ISP обладает целевое вычислительное устройство, на котором предполагается использование обученной глубокой нейронной сети, обработка изображения с низким значением ISO стандартным алгоритмом может быть адаптирована соответствующим образом на данной стадии обучения глубокой нейронной сети. Другими словами, стандартный алгоритм обработки на данной стадии обучения глубокой нейронной сети может в точности копировать обработку посредством ISP на целевом вычислительном устройстве. В результате выполнения обработки изображения с низким значением ISO стандартным алгоритмом получают второе выходное изображение (получение первого выходного изображения будет описано далее). После выполнения обработки изображения с низким значением ISO стандартным алгоритмом проводят оценку параметров постобработки, которая выполнялась при формировании второго выходного изображения. Для этого можно обратиться к значениям параметров, с которыми была сконфигурирована каждая операция постобработки на стадии исполнения стандартного алгоритма обработки, в том числе операция дебайеризации.
[0024] Полученная в результате оценка параметров дебайеризации может применяться при выполнении применения матрицы цветокоррекции и тоновой коррекции на стадии операций постобработки стандартного алгоритма обработки. Кроме того, полученная в результате оценка параметров постобработки может применяться при выполнении применения матрицы цветокоррекции и тоновой коррекции к первому выходному изображению, выводимому из нейронной сети совместного устранения шумов и дебайеризации, а также учитываться нейронной сетью в качестве дополнительной обучающей информации (данные особенности будут описаны далее).
[0025] Изображение с высоким значением ISO (соответствующее изображению с низким значением ISO, обработка которого была описана выше, т.е. из одной и той же пары обучающих изображений), представленное в формате CFA-данных изображения, подают на вход обучаемой нейронной сети совместного устранения шумов и дебайеризации. Дополнительно как было указано выше, в нейронную сеть могут быть поданы параметры постобработки изображения с низким значением ISO, которая выполнялась стандартным алгоритмом обработки. Таким образом, нейронная сеть может быть осведомлена о том, что, например, тени будут «вытянутыми» с определенными параметрами, что побуждает сеть к усиленному подавлению шума в этих областях. Благодаря этому нейронной сети не надо пытаться угадать эти «грядущие» преобразования самой, что весьма трудно, особенно при обработке лишь фрагмента изображения. К тому же в разных режимах съемки у разных пользователей могут быть разные предпочтения, которые заранее не известны. Тем не менее благодаря данной особенности обучения нейронной сети может быть получить такое выходное изображение, которое после указанной постобработки будет выглядеть максимально выигрышно.
[0026] Кроме того, в нейронную сеть могут быть поданы параметры шума и коэффициенты баланса белого, с которыми были получены обучающие изображения из соответствующей пары обучающих изображений. В качестве примера, коэффициенты баланса белого могут быть достаточно большими, например, 2-3. Другими словами, в одном цветовом канале шум может увеличиваться в 2-3 раза по сравнению с другими каналами. Следовательно, такие коэффициенты и параметры могут быть указаны нейронной сети в явном виде, чтобы получить более качественный результат. Таким образом, параметры постобработки и/или параметры шума и коэффициенты баланса белого могут быть использованы как дополнительная обучающая информация. Обучаемая нейронная сеть совместного устранения шумов и дебайеризации формирует первое выходное изображение, которое является изображением, подвергнутым совместному устранению шумов и дебайеризации. К первому выходному изображению может быть применена матрица цветокоррекции и тоновая коррекция, которые применялись стандартным алгоритмом обработки при формировании второго выходного изображения. Должно быть понятно, что использование терминов «первый», «второй» и т.д. по отношению к любым элементам и компонентам, раскрытым в данном описании, предназначено лишь для удобного различения однотипных элементов и компонентов, но не для определения какой-либо порядковой взаимосвязи между такими элементами и компонентами.
[0027] Обучение глубокой нейронной сети может быть проведено с использованием алгоритма обучения SGD, Adam или любого другого известного алгоритма обучения. В предпочтительном варианте осуществления нейронную сеть обучали алгоритмом обучения Adam. На каждой итерации обучения: подают на вход глубокой нейронной сети, обучаемой для выполнения совместной дебайеризации и устранения шумов, изображение с более высоким значением ISO из пары обучающих изображений для формирования первого выходного изображения, которое подвергнуто совместной дебайеризации и устранению шумов; обрабатывают другое изображение с более низким значением ISO стандартным алгоритмом обработки, включающим в себя раздельное выполнение дебайеризации и устранения шумов, для формирования второго выходного изображения, которое подвергнуто раздельной дебайеризации и устранению шумов; вычисляют функцию потерь для первого выходного изображения и второго выходного изображения для получения градиента функции потерь; и обновляют параметры нейронной сети с учетом полученного градиента функции потерь в соответствии с используемым алгоритмом обучения.
[0028] В качестве примера, а не ограничения, в одной возможной реализации функция потерь может быть вычислена следующим образом:
LossFunc(ImgGt, ImgNet) = Lambda1 * L1(ImgGt-ImgNet)+ Lambda2 * L2(ImgGt-ImgNet)+ Lambda3 * SSIM(ImgGt, ImgNet)+ Lambda4 * PerceptualLoss(ImgGt, ImgNet)+ Lambda5 * HuberNorm(ImgGt-ImgNet),
где ImgGt - второе выходное изображение/фрагмент изображения,
ImgNet - первое выходное изображение/фрагмент изображения,
L1, L2 - первая норма и вторая норма, соответственно,
SSIM (индекс структурного сходства) - метрика измерения схожести между двумя изображениями,
HuberNorm - норма Хьюбера,
PerceptualLoss - это расстояние между изображениями в пространстве признаков, и
Lambda1…LambdaN - коэффициенты, подбираемые эмпирически.
[0029] В другом варианте осуществления обучения обучение глубокой нейронной сети проводят итеративно, причем на каждой итерации обучения: подают на вход глубокой нейронной сети, обучаемой для выполнения совместной дебайеризации и устранения шумов, изображение с более высоким значением ISO из пары обучающих изображений для формирования первого выходного изображения, которое подвергнуто совместной дебайеризации и устранению шумов; обрабатывают другое изображение с более низким значением ISO стандартным алгоритмом обработки, включающим в себя раздельное выполнение дебайеризации и устранения шумов, для формирования второго выходного изображения, которое подвергнуто раздельной дебайеризации и устранению шумов; получают одну или более модификаций второго выходного изображения путем применения к разным экземплярам второго выходного изображения разных дополнительных операций постобработки, причем число получаемых в результате модификаций второго выходного изображения равно числу использованных дополнительных операций постобработки, получают одну или более модификаций первого выходного изображения путем применения к разным экземплярам первого выходного изображения аналогичных дополнительных операций постобработки, вычисляют функцию совокупных потерь для первого выходного изображения и второго выходного изображения как сумму отдельных функций потерь каждой пары соответствующих модификаций второго выходного изображения и первого выходного изображения для получения градиента функции потерь; и обновляют параметры нейронной сети с учетом полученного градиента функции совокупных потерь в соответствии с используемым алгоритмом обучения Данный вариант осуществления обучения нейронной сети, в котором используются различные модификации постобработки изображений с известными параметрами, подготавливает нейронную сеть к возможным изменениям параметров постобработки, когда реальные значения постобработки недоступны и не могут быть оценены по тем или иным причинам.
[0030] В дополнительном варианте осуществления итерация обучения глубокой нейронной сети дополнительно содержит: оценку параметров одной или более дополнительных операций постобработки, которые были выполнены стандартным алгоритмом обработки при формировании второго выходного изображения; и подачу на вход глубокой нейронной сети параметров одной или более дополнительных операций постобработки, полученных в результате оценки, для их учета глубокой нейронной сетью, обучаемой для выполнения совместной дебайеризации и устранения шумов, при обработке изображения с более высоким значением ISO из пары обучающих изображений для формирования первого выходного изображения, которое подвергнуто совместной дебайеризации и устранению шумов.
[0031] В другом дополнительном варианте осуществления итерация обучения глубокой нейронной сети дополнительно содержит: получение одного или более из параметров модели шума, коэффициентов баланса белого и параметров постобработки для по меньшей мере одного из изображения с более высоким значением ISO, подачу на вход глубокой нейронной сети полученного одного или более из параметров модели шума, коэффициентов баланса белого и параметров постобработки для учета этой информации глубокой нейронной сетью, обучаемой для выполнения совместной дебайеризации и устранения шумов, при обработке изображения с более высоким значением ISO из пары обучающих изображений для формирования первого выходного изображения, которое подвергнуто совместной дебайеризации и устранению шумов.
[0032] В другом дополнительном варианте осуществления способ дополнительно содержит: получение одного или более из параметров модели шума, коэффициентов баланса белого и параметров постобработки для изображения с высоким значением ISO, представленного в формате CFA-данных изображения, подачу на вход глубокой нейронной сети полученного одного или более из параметров модели шума, коэффициентов баланса белого и параметров постобработки для учета этой информации обученной глубокой нейронной сетью при совместном выполнении дебайеризации и устранения шумов над изображением с высоким значением ISO, представленным в формате CFA-данных изображения, с помощью обученной глубокой нейронной сети для формирования выходного изображения. Параметры модели шума включают в себя параметры, определяющие модель гетероскедастического шума с известными коэффициентами K и B, а параметры постобработки включают в себя одно или более из матриц цветокоррекции и кривых тоновой коррекции.
ФИГ. 6
карты уровня шума
цветовой карты
[0033] На  проиллюстрирована блок-схема последовательности операций конкатенации параметров модели шума, коэффициентов баланса белого и параметров постобработки в bottleneck-слой нейронной сети. В варианте осуществления подачу на вход глубокой нейронной сети одного или более из параметров модели шума, коэффициентов баланса белого и параметров постобработки обеспечивают посредством конкатенации в bottleneck-слой (показан квадратной рамкой на ФИГ. 6) глубокой нейронной сети , вычисляемой для входного изображения на основе предположения о модели гетероскедастического шума с известными коэффициентами K и B и коэффициентов Wr, Wg, Wb баланса белого для каждого канала, а также , получаемой для входного изображения, которое подвергнуто билинейной дебайеризации, понижению размерности и обработано с использованием одного или более из матриц цветокоррекции и кривых тоновой коррекции, причем каждый канал входного изображения дополнительно умножают на коэффициенты баланса белого. В одном варианте осуществления на стадии обучения и стадии использования изображения делят на фрагменты (более подробное описание данного варианта осуществления приведено ниже со ссылкой на фигуру 7), обрабатывают соответствующие фрагменты, а затем объединяют фрагменты в целое изображение. Таким образом, блок «Входной фрагмент» на фигуре 6 относится к такому варианту осуществления данного раскрытия. Проиллюстрированный на фиг. 6 блок «Карта уровня шума» обеспечивает поблочную карту уровня шума. При этом карта уровня шума для каждого цветового канала может быть вычислена как Variance=K * I+b, где I - это яркость в соответствующем канале.
[0034] В одном варианте осуществления раскрытого способа один или более весовых коэффициентов, применяемых к данным, проходящим через skip-соединения, имеющиеся в глубокой нейронной сети, оценивают на основе параметров модели шума и параметров постобработки входного изображения с помощью отдельной нейронной подсети. Skip-соединения являются ключевым свойством архитектуры U-Net и применяются для обеспечения возможности обучения нейронной сети с лучшими характеристиками. Такая оценка весовых коэффициентов может быть полезной по следующим причинам. При более высоком уровне шума можно больше «доверять» признакам в более низком разрешении, т.к. они уже агрегируют информацию из нескольких соседних пикселей, и меньше доверять признакам в более высоком разрешении. При низком уровне шума можно доверять и признакам в высоком разрешении. Степень этого доверия можно отразить при помощи весовых коэффициентов, которые используются во взвешенной сумме, которую может быть использована в настоящем изобретении вместо обычного сложения при skip-соединении.
ФИГ. 7
[0035] На  проиллюстрирована возможная реализация обучения глубокой нейронной сети на фрагментах изображений, которая может быть применена в способе согласно варианту осуществления настоящего изобретения. В этом варианте осуществления обучающими парами являются пары соответствующих друг другу фрагментов как изображения с низким значением ISO, так и изображения с высоким значением ISO, которое представлено в формате CFA-данных изображения.
[0036] Способ согласно этой реализации содержит разделение обучающих изображений на фрагменты изображения; выполнение обработки стандартным алгоритмом обработки фрагмента изображения с низким значением ISO, выполнение обработки обучаемой нейронной сетью для совестного устранения шумов и дебайеризации совместное фрагмента изображения с низким значением ISO, и вычисление функции потерь для обработанных фрагментов изображений. Опционально, перед вычисление функции потерь обработанные фрагменты изображений могут объединяться в соответствующие обработанные изображения, по которым вычисляется функция потерь. Другими словами, в данной возможной реализации способ дополнительно содержит на стадии обучения глубокой нейронной сети: разделение каждого из изображения с более высоким значением ISO и изображения с более низким значением ISO из пары обучающих изображений на фрагменты одинакового размера и выполнение соответствующих операций обучения глубокой нейронной сети на основе соответствующих полученных разделением фрагментов изображения с более высоким значением ISO и изображения с более низким значением ISO.
[0037] В данной возможной реализации способа параметры одной или более операций постобработки, которые применяются к соответствующим полученным разделением фрагментам изображения с более высоким значением ISO и изображения с более низким значением ISO, оценивают дополнительной предварительно обученной нейронной сетью по целому изображению, которое аналогично изображению с более высоким значением ISO, но подвергнуто понижению размерности и билинейной дебайеризации, при этом упомянутая дополнительная нейронная сеть обучается на фотографиях высокого качества, которые используются в качестве эталонных образцов на стадии обучения.
[0038] Параметры постобработки, вычисленные при помощи вспомогательной нейронной сети, наряду с входным фрагментом изображения в формате Байера (CFA-данные фрагмента изображения) и коэффициентами баланса белого подаются на вход проиллюстрированного на фиг. 7 блока управления. Возможна реализация, когда вспомогательная сеть вычисляет не только параметры постобработки, но и коэффициенты баланса белого. Блок управления является еще одной вспомогательной нейросетью, которая на основании входных данных вычисляет вектор признаков, которые конкатенируется в bottleneck-слой основной нейронной сети, а также весовые коэффициенты, которые используются при сложении выходных данных skip-соединений слоев кодера и выходных данных соответствующих слоев декодера.
[0039] Параметры модели шума K и B для различных значений ISO могут быть определены экспериментально для нескольких фиксированных значений ISO, а затем может быть реализован блок интерполяции, который на основе экспериментальных данных вычисляет значения параметров для произвольного ISO. Специалисту ясно, что эту операцию можно реализовать при помощи любого известного метода интерполяции или аппроксимации, включая методы машинного обучения.
ФИГ. 8
[0040] На  проиллюстрирована блок-схема вычислительного устройства согласно варианту осуществления настоящего изобретения. Вычислительное устройство 200 пользователя содержит процессор 205 и память 210, хранящую обученную нейронную сеть и исполняемые процессором инструкции, которые при исполнении побуждают процессор к выполнению способа совместного выполнения дебайеризации и устранения шумов для формирования выходного изображения согласно первому аспекту настоящего изобретения. Процессор 205 может выполнять, среди прочих операций, этапы S105 и S110 способа, проиллюстрированного на ФИГ.1. Память 210 хранит обученную нейронную сеть (набор параметров/весовых коэффициентов) и исполняемые процессором инструкции, которые при исполнении побуждают процессор к выполнению способа совместного выполнения дебайеризации и устранения шумов для формирования выходного изображения. Память 210 способна хранить любые другие данные и информацию. Вычислительное устройство 200 может содержать другие непоказанные компоненты, например, экран, камеру, блок связи, воспринимающую касание панель, динамик, микрофон, Bluetooth-модуль, NFC-модуль, Wi-Fi-модуль, блок питания и соответствующие межсоединения. Раскрытый способ совместного выполнения дебайеризации и устранения шумов для формирования выходного изображения может быть реализован на широком спектре вычислительных устройств 200, таких как ноутбуки, смартфоны, планшеты, мобильные роботы и навигационные системы. Реализация предложенного способа поддерживает все виды устройств, способных выполнять вычисления на CPU. Кроме того, если вычислительное устройство имеет дополнительное устройство для ускорения нейронной сети, такое как GPU (графический процессор), NPU (модуль нейронной обработки), TPU (модуль обработки тензорных данных), на таких устройствах возможна более быстрая реализация раскрытого способа.
[0041] По меньшей мере один из множества модулей, блоков, компонентов, этапов, подэтапов может быть реализован с помощью модели ИИ. Функция, связанная с ИИ, может выполняться через энергонезависимую память, энергозависимую память и процессор. Процессор может включать в себя один или несколько процессоров. Один или несколько процессоров могут быть процессором общего назначения, таким как центральный процессор (CPU), прикладным процессором (AP) или тому подобным, графическим процессором, таким как графический процессор (GPU), процессором визуальной информации (VPU) и/или выделенным ИИ процессором, таким как нейронный процессор (NPU). Один или несколько процессоров управляют обработкой входных данных в соответствии с заранее определенным операционным правилом или моделью искусственного интеллекта (ИИ), хранящейся в энергонезависимой памяти и энергозависимой памяти. Предопределенное операционное правило или модель ИИ обеспечивается посредством обучения. Должно быть понятно, что применение алгоритма обучения к множеству обучающих данных обеспечивает создание предопределенного операционного правила или модель ИИ с желаемой характеристикой(-ами). Обучение может быть выполнено в самом устройстве, в котором выполняется ИИ в соответствии с вариантом осуществления, и/или может быть реализовано через отдельный сервер/систему.
[0042] Модель ИИ может состоять из множества слоев нейронной сети. Каждый слой имеет множество весовых значений и выполняет операцию слоя через вычисление предыдущего слоя и операцию применения множества весовых коэффициентов. Примеры нейронных сетей включают, но без ограничения, сверточную нейронную сеть (CNN), глубокую нейронную сеть (DNN), рекуррентную нейронную сеть (RNN), ограниченную машину Больцмана (RBM), сеть глубокого убеждения (DBN), двунаправленную рекуррентную глубокую нейронную сеть (BRDNN), генеративные состязательные сети (GAN) и глубокие Q-сети. Алгоритм обучения представляет собой способ обучения целевого вычислительного устройства на множестве обучающих данных, чтобы вызывать, обеспечивать возможность или управлять целевым вычислительным устройством для осуществления определения, оценки прогнозирования. Примеры алгоритмов обучения включают в себя, но без ограничения, обучение с учителем, обучение без учителя, обучение с частичным привлечением учителя или обучение с подкреплением.
[0043] Следует четко понимать, что не все технические эффекты, упомянутые в настоящем документе, должны быть реализованы в каждом варианте осуществления настоящей технологии. Например, варианты осуществления настоящей технологии могут быть реализованы без достижения некоторых из этих технических эффектов, в то время как другие варианты осуществления могут быть реализованы с достижением других технических эффектов или вообще без них.
[0044] Модификации и усовершенствования вышеописанных реализаций настоящей технологии могут стать очевидными для специалистов в данной области техники. Приведенное выше описание должно быть скорее иллюстративным, но не ограничивающим. Таким образом, предполагается, что сфера применения настоящей технологии будет ограничена исключительно объемом прилагаемой формулы изобретения.
[0045] Хотя вышеописанные реализации были описаны и показаны со ссылкой на конкретные этапы, выполняемые в определенном порядке, следует понимать, что эти этапы могут быть объединены, подразделены или переупорядочены без отступления от данного раскрытия настоящей технологии. Соответственно, порядок и группировка этапов не является ограничением настоящей технологии. Использование единственного числа по отношению к любому раскрытому в данной заявке элементу не исключает того, что таких элементов может быть множество при фактической реализации, и наоборот.