Область техники
Настоящее изобретение относится к обработке изображений, в частности к способу и устройству обработки видеоизображений для уменьшения шума.
Уровень техники
В настоящее время множество людей используют мобильные электронные устройства, такие как смартфоны, планшетные компьютеры и т.д., для захвата видеоизображений. При этом одним из основных требований пользователей является высокое качество (высокое разрешение и высокий динамический диапазон) захватываемых видеоизображений. Однако, в реальных сценариях применения полученные видеоизображения зачастую содержат различные артефакты, шумы, искажения и т.д. В таком случае качество полученного видеоизображения может не соответствовать ожиданиям пользователя. Упомянутые недостатки имеют множество различных причин, например, таких как неблагоприятные условия съемки, несовершенство оптического тракта, ошибки алгоритма обработки видеоизображений, недостаточная вычислительная мощность мобильного устройства и т.д.
В существующем уровне техники известно множество способов уменьшения шума на видеоизображениях. Многие из них основаны либо на традиционных методах фильтрации видеоизображения, либо на нейронных сетях. Так как задача уменьшения шума на видеоизображениях достаточно сложная, все эти способы обладают рядом известных недостатков.
Во-первых, возникновение шума является сложным многофакторным процессом. Алгоритмы обработки захватываемых видеоизображений зачастую содержат множества этапов, каждый из которых может привносить в результирующее видеоизображение свою шумовую составляющую. Для решения задачи уменьшения шума на видеоизображениях требуется разработка сложной модели возникновения шума, включающей в себя эффекты всех этапов обработки, что практически невозможно. Кроме того, ввиду широкого разнообразия аппаратных средств, используемых для захвата видеоизображений, вызванного наличием на рынке множества производителей таких мобильных устройств, оптимизация алгоритмов обработки видеоизображений, применяемых в разных устройствах, является затруднительной.
Во-вторых, для уменьшения шума на видеоизображениях требуется оборудование с высокой производительностью, т.к. существующие способы уменьшения шума на видеоизображениях для получения хороших результатов используют либо модели нейронных сетей с большим полем восприятия или рецептивным полем (RF, receptive field), либо пространственные фильтры с большим размером ядра.
Такие нейронные сети являются сложными, используют большое количество весов, требуют серьезные вычислительные мощности, значительное время для выполнения вычислений и чаще всего не могут быть реализованы в мобильных портативных устройствах. Основной причиной недостаточной эффективности решений для уменьшения шума на видеоизображениях на основе нейронных сетей является полномасштабная обработка. Известные архитектуры нейронных сетей для шумоподавления обрабатывают кадры в полном разрешении: по меньшей мере входной и выходной слои включают свертку в полном разрешении с большим количеством фильтров, что приводит к недостаточной производительности для обработки видео в реальном времени.
Например, нейронная сеть с архитектурой типа U-Net состоит из сужающегося тракта (кодер) и расширяющегося тракта (декодер), которые не могут независимо выполняться на разных устройствах, т.к. слои кодера и декодера связаны пропускаемыми соединениями (skip connections или residual connections). Кроме того, на входе и на выходе такой нейронной сети обрабатывается полное изображение, что требует большого объема доступной памяти и высоких вычислительных возможностей.
Таким образом, упомянутые способы не могут применяться в маломощных устройствах для обработки изображений или видео в реальном времени.
В-третьих, нейронные сети для уменьшения шума на видеоизображениях на основании одного кадра могут приводить к возникновению отклонений в балансе белого или уровне интенсивности (мерцание) в последовательности кадров обрабатываемого видео, что является очень заметным недостатком видеозаписи для пользователя.
В статье «FastDVDnet: Towards Real-Time Deep Video Denoising Without Flow Estimation» авторов M. Tassano, J. Delon, T. Veit раскрыта многокадровая нейронная сеть, состоящая из двух уровней обработки. Упомянутая нейронная сеть обучена на искусственном гауссовом шуме, обладает высокой сложностью для аппаратной реализации и недостаточной производительностью. Обязательная многокадровая обработка означает, что упомянутая модель не может применяться в качестве финальной стадии уменьшения шума в таких приложениях, как обработка видео с высоким динамическим диапазоном (HDR, High Dynamic Range).
Документ US 8,731,320 B2 раскрывает способ обработки цифрового изображения. Способ обработки включает в себя: заполнение двусторонней сетки, содержащей множество ячеек, на основе информации, полученной из изображения, причем каждая ячейка содержит по меньшей мере одно значение; затем кумулятивное интегрирование по меньшей мере одного значения по двусторонней сетке для формирования интегрированной сетки, содержащей интегрированные значения; формирование модифицированной двусторонней сетки, включающее вычисление суммы по меньшей мере одного значения по заранее определенному прямоугольному блоку ячеек двусторонней сетки, путем использования интегрированных значений, соответствующих углам блока; и деление модифицированной двусторонней сетки для формирования выходного изображения. Упомянутый способ может быть реализован в режиме реального времени для обработки видео для таких задач, как тональное отображение HDR. Однако, данное решение не может быть использовано для уменьшения шума, т.к. требует обработки соседних пикселей, а обработки одного пикселя недостаточно. Карта наведения в данном решении зависит от локальной яркости, в то время как при шумоподавлении области с одинаковой яркостью могут иметь разные уровни шума (из-за HDR) и требовать разной обработки.
В статье «Burst Denoising with Kernel Prediction Networks» авторов B.Mildenhall, J.T.Barron, J.Chen, D.Sharlet, R.Ng, R.Carrol раскрыто предсказание ядер, используемых для фильтрации входных кадров с использованием нейронной сети с архитектурой U-Net. Однако, в данном решении используется структура кодер-декодер, требующая обработки полного изображения. Кроме того, раскрытая архитектура имеет большое количество выходных каналов. Малый размер предсказываемого ядра не применим для решений по уменьшению шума на основе одного кадра.
Таким образом, в уровне техники существует потребность в разработке методики, решающей вышеперечисленные проблемы, т.е. методики уменьшения шума на видеоизображениях, обеспечивающей:
- низкую вычислительную сложность обработки,
- обработку в реальном времени,
- высокое качество результирующего видеоизображения,
- низкое энергопотребление устройства,
- реализацию в маломощных мобильных устройствах формирования изображений,
- применение в режиме HDR,
- отсутствие мерцания в решениях уменьшения шума на основе одного кадра.
Сущность изобретения
Настоящее изобретение направлено на решение по меньшей мере некоторых из приведенных выше проблем.
В соответствии с первым аспектом изобретения предложен способ обработки видеоизображений, включающий в себя этапы, на которых:
- принимают один разреженный канал кадра видеоизображения,
- на основании упомянутого одного разреженного канала посредством нейронной сети формируют карту параметров низкого разрешения для осуществления пространственной фильтрации кадра видеоизображения,
- с использованием сформированной карты параметров осуществляют пространственную фильтрацию кадра видеоизображения для формирования обработанного кадра.
В соответствии с одним вариантом осуществления способа кадр видеоизображения подвергают предварительной обработке, которая включает в себя этапы, на которых выделяют один канал из кадра и подвергают его прореживанию.
В соответствии с другим вариантом осуществления способа до этапа выделения канала предварительная обработка видеоизображения включает в себя этап, на котором преобразуют кадр видеоизображения в формат YUV.
В соответствии с другим вариантом осуществления способа упомянутый канал прореживается по высоте и по ширине в два раза.
В соответствии с другим вариантом осуществления способа упомянутый один канал является Y-каналом для видеоизображения в формате YUV.
В соответствии с другим вариантом осуществления способа кадр видеоизображения имеет размер W × H × D, где W - ширина кадра, H - высота кадра, D - количество каналов, а данные упомянутого разреженного канала имеют размер W/2 × H/2 × 1.
В соответствии с другим вариантом осуществления способа пространственная фильтрация включает в себя операцию взвешенного суммирования, выполняемую пространственным фильтром, который для каждого канала входного изображения вычисляет взвешенную сумму по окрестности пикселя с заданным радиусом выборки в соответствии с выражением:
Fnxn=
= WeightedSum(Image, WeightMap[directional], Radius), (1)
где Fnxn - результат фильтрации, WeightedSum - операция взвешенного суммирования для вычисления взвешенной суммы окрестности nxn пикселя подлежащего обработке изображения Image с радиусом выборки Radius с использованием весовых коэффициентов, полученных на основе направленной карты весов WeightMap[directional] для выполнения взвешенного суммирования окрестности пикселя, причем операция взвешенного суммирования по выражению (1) включает в себя выполнение для всего кадра следующих вычислений:
F’[i, j]=(Image[i, j-Radius] * p_left[i, j] + Image[i, j] + Image[i, j+Radius] * p_right[i, j]) / (p_left[i, j] + 1 + p_right[i, j]), (2)
Fnxn[i, j]=(F’[i-Radius, j] * p_top[i, j] + F’[i, j] + F’[i+Radius, j] * p_bottom[i, j]) / (p_top[i, j] + 1 + p_bottom[i, j]), (3)
где Image[i, j] - значение пикселя подлежащего обработке кадра с координатами [i, j], F’[i, j] - значение пикселя промежуточного результата, Radius - радиус выборки, p_left/p_right/p_top/p_bottom - весовые коэффициенты для вычисления взвешенной суммы окрестности пикселя с координатами [i, j], полученные посредством интерполяции коэффициентов направленной карты весов WeightMap[directional] до размера обрабатываемого изображения, Fnxn[i, j] - значение пикселя кадра, обработанного посредством пространственного фильтра для вычисления взвешенной суммы окрестности nxn пикселя с координатами [i, j].
В соответствии с другим вариантом осуществления способа карта параметров низкого разрешения для осуществления пространственной фильтрации кадра видеоизображения представляет собой семиканальную карту параметров, включающую в себя:
- карту весов низкого разрешения для линейного взвешивания промежуточных результатов пространственной фильтрации (WeightMap[0]),
- карту весов низкого разрешения для линейного взвешивания промежуточного результата пространственной фильтрации и низкочастотной компоненты (WeightMap[1]),
- четырехканальную направленную карту весов для выполнения взвешенного суммирования окрестности пикселя (WeightMap[2,3,4,5]) и
- низкочастотную компоненту (WeightMap[6]),
причем выходное обработанное изображение формируют в соответствии со следующим выражением:
Output=WeightMap[6] +
+ WeightMap[1]*(F9×9sum - WeightMap[6]),
где
F9×9sum=F9×9+WeightMap[0]*(F3×3 - F9×9),
F3×3=WeightedSum(Input, WeightMap[2,3,4,5], Radius=1),
F9×9=WeightedSum(F3×3, WeightMap[2,3,4,5], Radius=3),
где Output - выходное обработанное изображение с уменьшенным шумом, Input - входное зашумленное изображение, Radius - радиус выборки, WeightedSum - операция взвешенного суммирования в соответствии с выражениями (1)-(3), F3×3 - результат промежуточной фильтрации входного изображения посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 1, F9×9 - результат промежуточной фильтрации F3×3 посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 3, F9×9sum - результат промежуточной фильтрации, являющийся взвешенной суммой F3×3 и F9×9, WeightMap[0] - карта весов для линейного взвешивания F3×3 и F9×9, WeightMap[1] - карта весов для линейного взвешивания F9×9sum и низкочастотной компоненты, WeightMap[2,3,4,5] - четырехканальная направленная карта весов для выполнения взвешенного суммирования окрестности пикселя, WeightMap[6] - низкочастотная компонента.
Низкочастотная компонента соответствует областям изображения, в которых значения пикселей изменяются монотонно, без резких скачков. Высокочастотная компонента соответствует областям изображения, на которых изображены края элементов, мелкие детали, шумы, в которых происходит резкое изменение значений пикселей.
В соответствии с другим вариантом осуществления способа карта параметров низкого разрешения для осуществления пространственной фильтрации кадра видеоизображения представляет собой пятиканальную карту параметров, включающую в себя:
- карту весов низкого разрешения для линейного взвешивания промежуточных результатов пространственной фильтрации (WeightMap[0]) и
- четырехканальную направленную карту весов для выполнения взвешенного суммирования окрестности пикселя (WeightMap[2,3,4,5]),
причем выходное обработанное изображение формируют в соответствии со следующим выражением:
Output=F9×9+WeightMap[0]*(F3×3 - F9×9),
где
F3×3=WeightedSum(Input, WeightMap[2,3,4,5], Radius=1),
F9×9=WeightedSum(F3×3, WeightMap[2,3,4,5], Radius=3),
где Output - выходное обработанное изображение с уменьшенным шумом, Input - входное зашумленное изображение, Radius - радиус выборки, WeightedSum - операция взвешенного суммирования в соответствии с выражениями (1)-(3), F3×3 - результат промежуточной фильтрации входного изображения посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 1, F9×9 - результат промежуточной фильтрации F3×3 посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 3, WeightMap[0] - карта весов для линейного взвешивания F3×3 и F9×9, WeightMap[2,3,4,5] - четырехканальная направленная карта весов для выполнения взвешенного суммирования окрестности пикселя.
В соответствии с другим вариантом осуществления способа карта параметров низкого разрешения для осуществления пространственной фильтрации кадра видеоизображения включает в себя:
- карты весов низкого разрешения для линейного взвешивания промежуточных результатов пространственной фильтрации (WeightMap[0] и WeightMap[7]),
- карту весов низкого разрешения для линейного взвешивания промежуточного результата пространственной фильтрации и низкочастотной компоненты (WeightMap[1]),
- четырехканальную направленную карту весов для выполнения взвешенного суммирования окрестности пикселя (WeightMap[2,3,4,5]) и
- низкочастотную компоненту (WeightMap[6]),
причем выходное обработанное изображение формируют в соответствии со следующим выражением:
Output=WeightMap[6] +
+ WeightMap[1]*(F27×27sum - WeightMap[6]),
где
F27×27sum=F27×27+WeightMap[7]*(F9×9sum - F27×27),
F27×27=WeightedSum(F9×9sum, WeightMap[2,3,4,5], Radius=9),
F9×9sum=F9×9+WeightMap[0]*(F3×3 - F9×9),
F3×3=WeightedSum(Input, WeightMap[2,3,4,5], Radius=1),
F9×9=WeightedSum(F3×3, WeightMap[2,3,4,5], Radius=3),
где Output - выходное обработанное изображение с уменьшенным шумом, Input - входное зашумленное изображение, Radius - радиус выборки при вычислении взвешенной суммы, WeightedSum - операция взвешенного суммирования в соответствии с выражениями (1)-(3), F3×3 - результат промежуточной фильтрации входного изображения посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 1, F9×9 - результат промежуточной фильтрации F3×3 посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 3, F9×9sum - результат промежуточной фильтрации, являющийся взвешенной суммой F3×3 и F9×9, F27×27 - результат промежуточной фильтрации F9×9sum посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 9, F27×27sum - результат промежуточной фильтрации, являющийся взвешенной суммой F9×9sum и F27×27, WeightMap[0] - карта весов для линейного взвешивания F3×3 и F9×9, WeightMap[1] - карта весов для линейного взвешивания F27×27sum и низкочастотной компоненты, WeightMap[2,3,4,5] - четырехканальная направленная карта весов для выполнения взвешенного суммирования окрестности пикселя, WeightMap[6] - низкочастотная компонента, WeightMap[7] - карта весов для линейного взвешивания F9×9sum и F27×27.
В соответствии с другим вариантом осуществления способа карта параметров низкого разрешения для осуществления пространственной фильтрации кадра видеоизображения включает в себя:
- карты весов низкого разрешения для линейного взвешивания промежуточных результатов пространственной фильтрации (WeightMap[0] и WeightMap[7]),
- четырехканальную направленную карту весов для выполнения взвешенного суммирования окрестности пикселя (WeightMap[2,3,4,5]),
причем выходное обработанное изображение формируют в соответствии со следующим выражением:
Output=F27×27+WeightMap[7]*(F9×9sum - F27×27),
где
F27×27=WeightedSum(F9×9sum, WeightMap[2,3,4,5], Radius=9)
F9×9sum=F9×9+WeightMap[0]*(F3×3 - F9×9),
F3×3=WeightedSum(Input, WeightMap[2,3,4,5], Radius=1),
F9×9=WeightedSum(F3×3, WeightMap[2,3,4,5], Radius=3),
где Output - выходное обработанное изображение с уменьшенным шумом, Input - входное зашумленное изображение, Radius - радиус выборки при вычислении взвешенной суммы, WeightedSum - операция взвешенного суммирования в соответствии с выражениями (1)-(3), F3×3 - результат промежуточной фильтрации входного изображения посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 1, F9×9 - результат промежуточной фильтрации F3×3 посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 3, F9×9sum - результат промежуточной фильтрации, являющийся взвешенной суммой F3×3 и F9×9, F27×27 - результат промежуточной фильтрации F9×9sum посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 9, F27×27sum - результат промежуточной фильтрации, являющийся взвешенной суммой F9×9sum и F27×27, WeightMap[0] - карта весов для линейного взвешивания F3×3 и F9×9, WeightMap[2,3,4,5] - четырехканальная направленная карта весов для выполнения взвешенного суммирования окрестности пикселя, WeightMap[7] - карта весов для линейного взвешивания F9×9sum и F27×27.
В соответствии с другим вариантом осуществления способа карта параметров низкого разрешения для осуществления пространственной фильтрации кадра видеоизображения представляет собой девятиканальную карту параметров, включающую в себя:
- карту весов низкого разрешения для линейного взвешивания промежуточных результатов пространственной фильтрации (WeightMap[0]);
- четырехканальные направленные карты весов для выполнения взвешенного суммирования окрестности пикселя (WeightMap[2,3,4,5] и WeightMap[8,9,10,11]),
причем выходное обработанное изображение формируют в соответствии со следующим выражением:
Output=F9×9+WeightMap[0]*(F3×3 - F9×9),
где
F3×3=WeightedSum(Input, WeightMap[2,3,4,5], Radius=1),
F9×9=WeightedSum(F3×3, WeightMap[8,9,10,11], Radius=3),
где Output - выходное обработанное изображение с уменьшенным шумом, Input - входное зашумленное изображение, Radius - радиус выборки, WeightedSum - операция взвешенного суммирования в соответствии с выражениями (1)-(3), F3×3 - результат промежуточной фильтрации входного изображения посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 1, F9×9 - результат промежуточной фильтрации F3×3 посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 3, WeightMap[0] - карта весов для линейного взвешивания F3×3 и F9×9, WeightMap[2,3,4,5] - четырехканальная направленная карта весов для выполнения взвешенного суммирования окрестности пикселя с радиусом выборки 1, WeightMap[8,9,10,11] - четырехканальная направленная карта весов для выполнения взвешенного суммирования окрестности пикселя с радиусом выборки 3.
В соответствии с другим вариантом осуществления способа карта параметров низкого разрешения для осуществления пространственной фильтрации кадра видеоизображения представляет собой двухканальную карту параметров, включающую в себя:
- карту весов низкого разрешения для линейного взвешивания входного изображения и промежуточного результата пространственной фильтрации (WeightMap[12]);
- карту весов низкого разрешения для линейного взвешивания промежуточных результатов пространственной фильтрации (WeightMap[13]);
причем пространственная фильтрация кадра видеоизображения включает в себя этапы, на которых:
- осуществляют пространственную фильтрацию кадра изображения посредством последовательного применения линейных усредняющих фильтров для окрестности пикселя с радиусом выборки 1 и с радиусом выборки 3,
причем выходное обработанное изображение формируют в соответствии со следующим выражением:
Output=Box9×9+WeightMap[13]*(F3×3sum - Box9×9),
где
F3×3sum=Box3×3+WeightMap[12]*(Input - Box3×3),
где Input - входное зашумленное изображение, Box3×3 - результат промежуточной фильтрации входного изображения посредством линейного усредняющего фильтра для окрестности пикселя с радиусом выборки 1, F3×3sum - результат промежуточной фильтрации, являющийся взвешенной суммой Input и Box3×3, Box9×9 - результат промежуточной фильтрации Box3×3 посредством линейного усредняющего фильтра для окрестности пикселя с радиусом выборки 3, Output - выходное обработанное изображение с уменьшенным шумом, WeightMap[12] - карта весов для линейного взвешивания Input и Box3×3, WeightMap[13] - карта весов для линейного взвешивания F3×3sum и Box9×9.
В соответствии с другим вариантом осуществления способа пространственная фильтрация кадра видеоизображения включает в себя этап, на котором применяют по меньшей мере один из билатерального фильтра, медианного фильтра и фильтра Гаусса, причем карта параметров включает в себя параметры упомянутого по меньшей мере одного пространственного фильтра.
В соответствии с другим вариантом осуществления способа кадр видеоизображения имеет размер W × H × D, где W - ширина кадра, H - высота кадра, D - количество каналов, а данные упомянутого разреженного канала имеют размер W/2 × H/2 × 2 вследствие параллельного осуществления двух разных вариантов прореживания канала входного кадра.
В соответствии с другим вариантом осуществления способа каждый канал карты параметров имеет размер W/4 × H/4 или W/8 × H/8.
В соответствии со вторым аспектом настоящего изобретения предложен блок обработки видеоизображений, выполненный с возможностью:
- принимать один разреженный канал кадра видеоизображения,
- на основании упомянутого одного разреженного канала посредством нейронной сети формировать карту параметров низкого разрешения для осуществления пространственной фильтрации кадра видеоизображения,
- с использованием сформированной карты параметров осуществлять пространственную фильтрацию кадра видеоизображения для получения обработанного кадра.
В соответствии с одним вариантом осуществления упомянутый блок обработки видеоизображений включает в себя нейронный процессор и графический процессор.
В соответствии с третьим аспектом настоящего изобретения предложено устройство обработки видеоизображений, включающее в себя блок обработки видеоизображений, а также блок предварительной обработки видеоизображений, причем устройство обработки видеоизображений выполнено с возможностью осуществления способа обработки видеоизображений.
В соответствии с одним вариантом осуществления упомянутой устройство дополнительно включает в себя блок захвата видеоизображений.
В соответствии с четвертым аспектом настоящего изобретения предложен компьютерно-читаемый носитель, хранящий компьютерную программу, которая при ее исполнении посредством процессора предписывает упомянутому процессору выполнять способ обработки видеоизображений.
Настоящее изобретение позволяет снизить сложность обработки видеоизображений, увеличить ее скорость и повысить качество обработанного изображения.
Краткое описание чертежей
В дальнейшем изобретение поясняется описанием предпочтительных вариантов осуществления изобретения со ссылками на сопроводительные чертежи, на которых:
Фиг. 1 изображает примерную блок-схему процесса обработки видеоизображений для уменьшения шума в соответствии с настоящим изобретением.
Фиг. 2 схематично изображает обработку изображения в нейронном процессоре.
Фиг. 3 схематично изображает обработку изображения в графическом процессоре.
Фиг. 4 изображает процесс получения взвешенной суммы окрестности 3×3.
Фиг. 5 изображает поле восприятия для разных пространственных фильтров в соответствии с настоящим изобретением.
Фиг. 6 изображает варианты прореживания Y-канала для подачи в нейронную сеть.
Подробное описание
Варианты осуществления не ограничиваются описанными здесь вариантами осуществления, специалисту в области техники на основе информации, изложенной в описании, и знаний уровня техники станут очевидны и другие варианты осуществления изобретения, не выходящие за пределы сущности и объема данного изобретения.
В общем виде, способ обработки видеоизображений для уменьшения шума в соответствии с настоящим изобретением включает в себя следующие этапы:
- принимают один разреженный канал кадра видеоизображения,
- на основании упомянутого одного разреженного канала посредством нейронной сети формируют карту параметров низкого разрешения для осуществления пространственной фильтрации кадра видеоизображения,
- с использованием сформированной карты параметров осуществляют пространственную фильтрацию кадра видеоизображения для получения обработанного кадра.
Технология обработки видеоизображений далее будет описана более подробно.
В соответствии с настоящим изобретением блок захвата видеоизображений захватывает видеоизображение (кадр), например, в формате YUV. В качестве альтернативы захватываемое изображение может иметь формат RGB, YCbCr или иной подходящий формат.
Захваченный кадр видеоизображения передается из блока захвата изображений в блок предварительной обработки изображений и блок обработки изображений (см. фиг. 1).
Блок захвата изображений может быть интегрирован в одном устройстве с блоком предварительной обработки изображений и/или блоком обработки изображений, либо выполнен как отдельный блок захвата изображений.
Блок обработки изображений может быть интегрирован в одном устройстве с блоком захвата изображений и/или блоком предварительной обработки изображений, либо может быть реализован в виде удаленного сервера или с помощью облачных технологий.
Блок предварительной обработки изображений в зависимости от сценария применения может быть выполнен как самостоятельный блок, либо может быть включен в состав блока захвата изображений или блока обработки изображений.
Хотя в примерном варианте осуществления описывается обработка изображений, захватываемых блоком захвата изображений в реальном времени, в альтернативном варианте осуществления упомянутые данные изображений, подлежащих обработке, могут представлять собой предварительно сохраненные в запоминающем устройстве данные ранее захваченного видеоизображения.
В примерном варианте осуществления блок обработки изображения включает в себя нейронный процессор (NPU, Neural Processing Unit) и графический процессор (GPU, Graphics Processing Unit).
Блок предварительной обработки изображения выполнен с возможностью предварительной обработки изображения перед подачей его в нейронный процессор. Предварительная обработка изображения включает в себя выделение одного канала, например, Y-канала для изображения в формате YUV, из захватываемого кадра и его прореживание, причем канал прореживается по высоте и по ширине в два раза, т.е. количество данных канала после прореживания уменьшается в четыре раза (фиг. 2). Такое прореживание обеспечивает заданное быстродействие последующей обработки данных этого разреженного канала и приемлемое качество обработанного изображения. В качестве альтернативы может осуществляться прореживание данных канала по высоте и по ширине в четыре раза, в восемь раз и т.д., что позволяет увеличить скорость обработки данных, однако отрицательно сказывается на качестве обработанного изображения. В примерном варианте осуществления Y-канал выбран, т.к. данный канал несет основную информацию о структуре изображения.
В случае если блок захвата изображения захватывает изображение в формате отличном от формата YUV, например, в формате RGB, то предварительная обработка может включать в себя преобразование кадра из формата RGB в формат YUV до этапа выделения канала и его прореживания.
Таким образом, блок предварительной обработки изображения передает в нейронный процессор данные одного разреженного канала кадра захватываемого видеоизображения.
Упомянутые данные разреженного канала подаются на вход нейронной сети в нейронном процессоре, на выходе которой получают карту параметров низкого разрешения, включающую в себя параметры (веса или признаки) для пространственной фильтрации исходного изображения для уменьшения шума. Указание на низкое разрешение карты параметров свидетельствует о том, что полученная карта параметров имеет более низкое разрешение по сравнению с исходным изображением.
Нейронная сеть в нейронном процессоре имеет упрощенную архитектуру по сравнению с традиционными нейронными сетями, например, с архитектурой типа U-Net, и включает в себя только кодирующий тракт (без декодирующего тракта). Использование такой упрощенной архитектуры нейронной сети и обработка одного разреженного канала захватываемого кадра позволяют значительно уменьшить объем передаваемых данных, снизить вычислительную нагрузку на нейронный процессор и энергопотребление, а также увеличить скорость выполняемой обработки.
Нейронная сеть в примерном варианте осуществления настоящего изобретения представляет собой сверточную нейронную сеть (convolutional neural network, CNN) и может быть реализована с использованием существующих структур для мобильных нейронных сетей, например, таких как SNPE и др.
В примерном варианте осуществления на выходе нейронной сети получают семиканальный тензор данных (фиг. 2), представляющий карту параметров для осуществления пространственной фильтрации изображения, включающую в себя:
- карту весов низкого разрешения для линейного взвешивания промежуточных результатов пространственной фильтрации (WeightMap[0]),
- карту весов низкого разрешения для линейного взвешивания промежуточного результата пространственной фильтрации и низкочастотной компоненты (WeightMap[1]),
- четырехканальную направленную карту весов для выполнения взвешенного суммирования окрестности пикселя (WeightMap[2,3,4,5]) и
- низкочастотную компоненту (WeightMap[6]).
Число каналов на выходе нейронной сети задает качество обработки изображения. Увеличение числа каналов позволяет повысить качество выходного обработанного изображения за счет понижения скорости обработки. Оптимальное число каналов для каждого конкретного случая выбирается в зависимости от целевого показателя шума на выходном изображении и адаптируется на этапе обучения нейронной сети.
Если исходное захватываемое изображение имеет размер W × H × D, где W - ширина изображения, H - высота изображения, D - количество каналов (3 для формата YUV), то размер тензора данных (разреженного канала), подаваемого на нейронную сеть, составляет W/2 × H/2 × 1, а размер выходного тензора данных из нейронной сети составляет W/4 × H/4 × 7. Заданная размерность каждого канала выходного тензора данных из нейронной сети (W/4 × H/4) обеспечивает высокую скорость и низкую сложность обработки данных в нейронной сети. Упомянутые выше значения наглядно показывают снижение объема обрабатываемых в нейронной сети данных по сравнению с исходным изображением.
Полученные карты параметров из нейронного процессора передаются в графический процессор (фиг. 1).
Графический процессор на основании принятых из нейронного процессора карт параметров низкого разрешения вычисляет пространственные фильтры и осуществляет фильтрацию изображения, принимаемого из блока захвата изображений, для получения обработанного изображения с пониженным шумом (фиг. 3).
Параметры взвешивания необходимые для вычисления взвешенных сумм содержатся в каналах (2, 3, 4, 5) направленной карты весов WeightMap[2,3,4,5].
Карты весов WeightMap[0] и WeightMap[1] используются для последовательного выполнения пространственной фильтрации изображения по симметричным областям 3×3 и 9×9 вокруг центрального пикселя. 3×3 - минимальная симметричная область для пространственной фильтрации, а пространственный фильтр с ядром 9×9 реализуется как каскад двух последовательных фильтров с ядром 3×3 с радиусом выборки равным 1 и радиусом выборки равным 3.
Четырехканальная направленная карта WeightMap[2,3,4,5] интегрирована в вычисление обоих пространственных фильтров, выполняющих операции взвешенного суммирования. Конкретное число каналов направленной карты весов WeightMap[2,3,4,5] соответствует четырем направлениям, по которым осуществляется взвешивание: лево, право, верх, низ.
Блок Weighted-Sum на фиг. 3 представляет собой операцию взвешенного суммирования, выполняемую пространственным фильтром, который для каждого канала входного изображения вычисляет взвешенную сумму по окрестности пикселя с заданным радиусом выборки. Операция взвешенного суммирования может быть описана следующим выражением:
Fnxn=
= WeightedSum(Image, WeightMap[directional], Radius), (1)
где Fnxn - результат фильтрации, WeightedSum - операция взвешенного суммирования для вычисления взвешенной суммы окрестности nxn пикселя подлежащего обработке изображения Image с радиусом выборки Radius с использованием весовых коэффициентов, полученных на основе направленной карты весов WeightMap[directional] для выполнения взвешенного суммирования окрестности пикселя.
Взвешенная сумма вычисляется в два этапа для снижения количества вычислений:
Этап 1. Взвешивание с весовыми коэффициентами p_left (для карты WeightMap[2]) и p_right (для карты WeightMap[3]) обеспечивает точную фильтрацию по горизонтальным краям (фиг. 4 слева);
Этап 2. Взвешивание с весовыми коэффициентами p_top (для карты WeightMap[4]) и p_bottom (для карты WeightMap[5]) обеспечивает точную фильтрацию по вертикальным краям (фиг. 4 справа).
Упомянутые выше весовые коэффициенты p_left/p_right/p_top/p_bottom для каждого пикселя изображения получают посредством интерполяции (например, билинейной интерполяции) коэффициентов направленной карты весов WeightMap[directional] (в примерном варианте осуществления WeightMap[2,3,4,5]) до размера обрабатываемого изображения.
При этом единичные коэффициенты в среднем столбце (слева на фиг. 4) и средней строке (справа на фиг. 4) указывают на то, что пиксели, соответствующие этим весовым коэффициентам, берутся как есть (т.е. с весовым коэффициентом 1).
В случае применения фильтров в обширных областях изображения без краев изображаемых элементов, весовые коэффициенты p_left/p_right/p_top/p_bottom адаптируются посредством модели адаптации карты с помощью машинного обучения для выполнения одинакового усреднения во всех направлениях.
Операция взвешенного суммирования по выражению (1) включает в себя выполнение для всего кадра следующих вычислений:
Этап 1: F’[i, j]=(Image[i, j-Radius] * p_left[i, j] + Image[i, j] + Image[i, j+Radius] * p_right[i, j]) / (p_left[i, j] + 1 + p_right[i, j]), (2)
Этап 2: Fnxn[i, j]=(F’[i-Radius, j] * p_top[i, j] + F’[i, j] + F’[i+Radius, j] * p_bottom[i, j]) / (p_top[i, j] + 1 + p_bottom[i, j]), (3)
где Image[i, j] - значение пикселя подлежащего обработке кадра с координатами [i, j], F’[i, j] - значение пикселя промежуточного результата, Radius - радиус выборки, p_left/p_right/p_top/p_bottom - весовые коэффициенты для вычисления взвешенной суммы окрестности пикселя с координатами [i, j], Fnxn[i, j] - значение пикселя кадра, обработанного посредством пространственного фильтра для вычисления взвешенной суммы окрестности nxn пикселя с координатами [i, j].
Выражения (2) и (3) в примерном варианте осуществления сначала вычисляются для входного изображения Input и значения Radius=1 и позволяют получить взвешенную сумму F3×3 для окрестности 3×3 пикселя входного изображения. При последующем вычислении взвешенной суммы F9×9 (для Radius=3) в качестве Image принимаются ранее вычисленные значения F3×3 (для Radius=1).
Эти этапы в соответствии с настоящим изобретением включают в себя четыре операции умножения и две операции деления: две операции умножения и одно деление для вычисления одного пикселя промежуточного результата F’, и две операции умножения и одно деление для вычисления одного пикселя Fnxn. Члены F’[i-Radius, j] и F’[i+Radius, j] в выражении (3) не являются вычислением промежуточного результата по координатам [i-Radius, j] и [i+Radius, j], их значения просто считываются из заранее вычисленного промежуточного результата F’, т.к. сначала F’ вычисляется по всему кадру, а после того как F’ полностью вычислен, переходим к вычислению Fnxn. В то же время в случае обычной свертки выполняется восемь операций умножений и одна операции деления.
Пространственный фильтр, выполняющий операцию Weighted-Sum с радиусом 1, имеет поле восприятия 3×3=9 пикселей (фиг. 5). Сначала упомянутые выше этапы выполняются для пространственного фильтра, выполняющего операцию Weighted-Sum с радиусом 1, а затем для пространственного фильтра, выполняющего операцию Weighted-Sum с радиусом 3. Каскад из фильтров, последовательно выполняющих операцию Weighted-Sum с радиусом 1 и радиусом 3, выполняет восемь умножений и четыре деления и покрывает эффективное поле восприятия размером 9×9=81 пиксель исходного изображения (фиг. 5).
Опционально, упомянутый каскад фильтров может быть дополнен еще одним пространственным фильтром, выполняющим операцию Weighted-Sum с радиусом 9. Такой каскад фильтров выполняет двенадцать умножений и шесть делений и покрывает эффективное поле восприятия размером 27×27=729 пикселей исходного изображения (фиг. 5).
Реализация двумерных фильтров, выполняющих операцию WeightedSum, в качестве двух отдельных одномерных фильтров в пирамидальном порядке имеет низкую сложность даже для больших изображений.
Набор пространственных фильтров с ядром 3×3 и 9×9 может быть эффективно реализован в качестве пирамидального каскада фильтров с ядром 3×3 с разным радиусом.
После выполнения описанной выше пространственной фильтрации графический процессор (фиг. 3) выполняет формирование выходного изображения с уменьшенным шумом в соответствии со следующим выражением:
Output=WeightMap[6] +
+ WeightMap[1]*(F9×9sum - WeightMap[6]),
где
F9×9sum=F9×9+WeightMap[0]*(F3×3 - F9×9),
F3×3=WeightedSum(Input, WeightMap[2,3,4,5], Radius=1),
F9×9=WeightedSum(F3×3, WeightMap[2,3,4,5], Radius=3),
где Output - выходное обработанное изображение с уменьшенным шумом, Input - входное зашумленное изображение, Radius - радиус выборки при вычислении взвешенной суммы, WeightedSum - операция взвешенного суммирования в соответствии с выражениями (1)-(3), F3×3 - результат промежуточной фильтрации входного изображения посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 1, F9×9 - результат промежуточной фильтрации F3×3 посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 3, F9×9sum - результат промежуточной фильтрации, являющийся взвешенной суммой F3×3 и F9×9, WeightMap[0] - карта весов для линейного взвешивания F3×3 и F9×9, WeightMap[1] - карта весов для линейного взвешивания F9×9sum и низкочастотной компоненты, WeightMap[2,3,4,5] - четырехканальная направленная карта весов для выполнения взвешенного суммирования окрестности пикселя, WeightMap[6] - низкочастотная компонента.
WeightMap[0], WeightMap[1], WeightMap[6] являются соответственно 0, 1 и 6 каналами карты параметров WeightMap, которую генерирует нейронная сеть.
Следует отметить, что на вход WeightedSum подается WeightMap[2,3,4,5] - четыре канала карты весов, которые обеспечивают веса p_left/p_right/p_tom/p_bottom описанные ранее.
WeightedSum(Input, WeightMap[2,3,4,5], Radius=1) - вычисляет F3×3, в котором шум отфильтрован в высоких частотах, соответственно сохраняются детали исходного изображения, но шум недостаточно убирается в относительно монотонных областях изображения.
WeightedSum(F3×3, WeightMap[2,3,4,5], Radius=3) - вычисляет F9×9, в котором подавляется шум в монотонных областях, но при этом сохраняются мелкие детали, то есть высокочастотные компоненты исходного изображения.
Линейное взвешивание F3×3 и F9×9 позволяет более точно объединить области изображений, где требуется сохранение мелких деталей, и области изображения, где требуется более сильное подавление шума. Таким образом, F3×3 можно считать первой итерацией шумоподавления - подавляются шумы вокруг деталей изображения, F9×9 - убираются более сильные шумы в монотонных областях, F9×9sum - объединяет лучшие свойства F3×3 и F9×9, и в конце выполняется линейное взвешивание F9×9sum и WeightMap[6] - для максимально эффективного удаления сильного шума в монотонных областях.
Описанная выше обработка имеет низкую вычислительную сложность.
Настоящее решение обеспечивает отсутствие мерцаний в выходном видеоизображении, поскольку сохраняет исходную яркость и баланс белого посредством фильтров WeightedSum.
Фильтр с ядром 3×3 предназначен для подавления мелких шумов на изображении.
Фильтр с ядром 9×9 предназначен для подавления средних шумов на изображении.
Низкочастотная компонента предназначена для подавления сильных шумов на изображении.
Направленная карта позволяет уменьшать шумы на краях элементов на изображении.
В то время как графический процессор выполняет пространственную фильтрацию кадра 1 с использованием карты параметров, полученной нейронной сетью, упомянутая нейронная сеть может выполнять обработку следующего кадра 2 (см. фиг. 1). Таким образом, блок обработки изображений обеспечивает потоковую обработку кадров захватываемого видеоизображения.
Обучение нейронной сети, используемой в нейронном процессоре, осуществляется следующим образом.
Посредством целевого устройства, в котором должен быть реализован способ уменьшения шума на изображениях, захватывают множество изображений. Упомянутые изображения усредняют для получения усредненного изображения с низким уровнем шума, которое может использоваться в качестве истинных данных (ground truth) для обучения тяжелой и сложной модели нейронной сети на реальном целевом наборе данных (dataset). Усреднение множества изображений позволяет значительно снизить случайную компоненту формирования шума на изображении. Упомянутая тяжелая модель нейронной сети реализуется на сервере. Далее обученная тяжелая модель нейронной сети используется для формирования истинных данных (ground truth) для обучения упрощенной модели нейронной сети, которая должна быть реализована на целевом устройстве, на основе входных целевых изображений. В процессе обучения упрощенной модели нейронной сети для формирования карты параметров для пространственной фильтрации реализуется весь алгоритм обработки изображения (получение карты параметров - пространственная фильтрация изображения - формирование обработанного изображения) и полученное обработанное изображение сравнивается с полученными ранее данными ground truth, после чего происходит адаптация упомянутой модели нейронной сети.
Поскольку обучающий набор данных собирается непосредственно на целевом устройстве, эта процедура обеспечивает приемлемые результаты для различных конфигураций конвейера обработки видео без необходимости его полного моделирования и даже без необходимости знать его точные настройки, т.к. шум, характерный для целевого устройства, остается неизменным. Сбор реальных данных в обучающий набор данных необходим только для обучения тяжелой и сложной модели нейронной сети. Далее обучение упрощенной модели нейронной сети для генерации карты параметров низкого разрешения и пространственной фильтрации изображения на основе карты параметров выполняется автоматически на основе сформированных тяжелой моделью нейронной сети истинных данных с входными зашумленными данными, полученными целевым устройством. Привлечение дополнительной тяжелой модели для формирования истинных данных позволяет добавлять динамические сцены в обучающий набор данных упрощенной модели нейронной сети. Иначе динамические сцены не могут быть добавлены в обучающий набор данных упрощенной модели нейронной сети, поскольку кадры динамической сцены не могут быть усреднены, т.к. усредненное изображение в таком случае будет размытым.
Таким образом, главное преимущество применения предварительно обученной тяжелой нейронной сети для обучения упрощенной модели нейронной сети, которая должна быть реализована на целевом устройстве - получение истинных данных (ground truth) для динамических сцен. Второе преимущество заключается в увеличении скорости обучения упрощенной модели нейронной сети за счет формирования обучающего набора данных тяжелой моделью нейронной сети, которая генерирует истинные данные для упрощенной нейронной сети практически на лету (примерно 1 секунда на сцену), в то время как ручной сбор набора данных с помощью усреднения кадров, захватываемых целевым устройством, требует примерно 5 минут для генерации одной сцены с учетом установки и настройки штатива и выжидания момента, пока сцена станет статичной (в сцене перестанут мелькать птицы/люди/листья и т.д.). На сложность обучения легкой модели при этом никакое влияние не оказывается, поскольку тяжелая модель лишь дополнительный источник данных для обучения.
Далее будут описаны альтернативные варианты осуществления настоящего изобретения.
Альтернативный вариант 1
В одном из вариантов осуществления число каналов карты параметров на выходе нейронной сети может быть уменьшено до пяти. По сравнению с примерным вариантом осуществления карты весов WeightMap[1] и WeightMap[6] исключаются. Размер выходного тензора данных из нейронной сети составляет W/4 × H/4 × 5. В данном случае формирование выходного изображения осуществляется в соответствии со следующим выражением:
Output=F9×9+WeightMap[0]*(F3×3 - F9×9),
где
F3×3=WeightedSum(Input, WeightMap[2,3,4,5], Radius=1),
F9×9=WeightedSum(F3×3, WeightMap[2,3,4,5], Radius=3).
Это позволяет снизить сложность модели нейронной сети, объем передаваемых данных и время, требуемое для осуществления вычислений. Однако, шумоподавление в случае наличия сильного шума на изображениях будет иметь более низкий уровень.
Альтернативный вариант 2
Число входных каналов для нейронной сети может быть удвоено за счет параллельного осуществления двух разных вариантов прореживания канала входного кадра (фиг. 6). Размер тензора данных (разреженного канала), подаваемого на нейронную сеть, в таком случае составляет W/2 × H/2 × 2. В результате повышается разрешение входных данных для нейронной сети, что позволяет улучшить шумоподавление в высокочастотных областях.
Альтернативный вариант 3
Количество пространственных фильтров в графическом процессоре может быть увеличено за счет добавления дополнительного фильтра, выполняющего операцию Weighted-Sum с радиусом 9, описанного выше со ссылкой на фиг. 5. Это позволяет улучшить уровень шумоподавления, однако приводит к увеличению энергопотребления, а также времени и сложности обработки.
В таком варианте осуществления пространственная фильтрация изображения может быть осуществлена двумя способами: с использованием низкочастотной компоненты и без нее.
В случае использования низкочастотной компоненты карта параметров на выходе из нейронной сети включает в себя следующие данные:
- карты весов низкого разрешения для линейного взвешивания промежуточных результатов пространственной фильтрации (WeightMap[0] и WeightMap[7]),
- карту весов низкого разрешения для линейного взвешивания промежуточного результата пространственной фильтрации и низкочастотной компоненты (WeightMap[1]),
- четырехканальную направленную карту весов для выполнения взвешенного суммирования окрестности пикселя (WeightMap[2,3,4,5]) и
- низкочастотную компоненту (WeightMap[6]).
При этом формирование обработанного изображения выполняется в соответствии с выражением:
Output=WeightMap[6] +
+ WeightMap[1]*(F27×27sum - WeightMap[6]),
где
F27×27sum=F27×27+WeightMap[7]*(F9×9sum - F27×27),
F27×27=WeightedSum(F9×9sum, WeightMap[2,3,4,5], Radius=9),
F9×9sum=F9×9+WeightMap[0]*(F3×3 - F9×9),
F3×3=WeightedSum(Input, WeightMap[2,3,4,5], Radius=1),
F9×9=WeightedSum(F3×3, WeightMap[2,3,4,5], Radius=3),
где Output - выходное обработанное изображение с уменьшенным шумом, Input - входное зашумленное изображение, Radius - радиус выборки при вычислении взвешенной суммы, WeightedSum - операция взвешенного суммирования в соответствии с выражениями (1)-(3), F3×3 - результат промежуточной фильтрации входного изображения посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 1, F9×9 - результат промежуточной фильтрации F3×3 посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 3, F9×9sum - результат промежуточной фильтрации, являющийся взвешенной суммой F3×3 и F9×9, F27×27 - результат промежуточной фильтрации F9×9sum посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 9, F27×27sum - результат промежуточной фильтрации, являющийся взвешенной суммой F9×9sum и F27×27, WeightMap[0] - карта весов для линейного взвешивания F3×3 и F9×9, WeightMap[1] - карта весов для линейного взвешивания F27×27sum и низкочастотной компоненты, WeightMap[2,3,4,5] - четырехканальная направленная карта весов для выполнения взвешенного суммирования окрестности пикселя, WeightMap[6] - низкочастотная компонента, WeightMap[7] - карта весов для линейного взвешивания F9×9sum и F27×27. При этом при вычислении F27×27 в качестве Image принимаются значения F9×9sum.
Как видно в приведенных выше выражениях, в данном варианте осуществления WeightedSum сначала вычисляют для значения Radius=1, что позволяет получить взвешенную сумму F3×3 для окрестности 3×3 пикселя входного изображения Input. Затем при вычислении взвешенной суммы F9×9 (для Radius=3) в качестве Image принимаются ранее вычисленные значения F3×3 (для Radius=1). Далее при вычислении взвешенной суммы F27×27 (для Radius=9) в качестве Image принимаются ранее вычисленные значения F9×9 (для Radius=3).
В случае пространственной фильтрации без низкочастотной компоненты карта параметров на выходе из нейронной сети включает в себя следующие данные:
- карты весов низкого разрешения для линейного взвешивания промежуточных результатов пространственной фильтрации (WeightMap[0] и WeightMap[7]),
- четырехканальную направленную карту весов для выполнения взвешенного суммирования окрестности пикселя (WeightMap[2,3,4,5]).
При этом формирование обработанного изображения выполняется в соответствии с выражением:
Output=F27×27+WeightMap[7]*(F9×9sum - F27×27),
где
F27×27=WeightedSum(F9×9sum, WeightMap[2,3,4,5], Radius=9)
F9×9sum=F9×9+WeightMap[0]*(F3×3 - F9×9),
F3×3=WeightedSum(Input, WeightMap[2,3,4,5], Radius=1),
F9×9=WeightedSum(F3×3, WeightMap[2,3,4,5], Radius=3),
где Output - выходное обработанное изображение с уменьшенным шумом, Input - входное зашумленное изображение, Radius - радиус выборки при вычислении взвешенной суммы, WeightedSum - операция взвешенного суммирования в соответствии с выражениями (1)-(3), F3×3 - результат промежуточной фильтрации входного изображения посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 1, F9×9 - результат промежуточной фильтрации F3×3 посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 3, F9×9sum - результат промежуточной фильтрации, являющийся взвешенной суммой F3×3 и F9×9, F27×27 - результат промежуточной фильтрации F9×9sum посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 9, F27×27sum - результат промежуточной фильтрации, являющийся взвешенной суммой F9×9sum и F27×27, WeightMap[0] - карта весов для линейного взвешивания F3×3 и F9×9, WeightMap[2,3,4,5] - четырехканальная направленная карта весов для выполнения взвешенного суммирования окрестности пикселя, WeightMap[7] - карта весов для линейного взвешивания F9×9sum и F27×27.
Вариант пространственной фильтрации без низкочастотной компоненты быстрее по производительности и лучше сохраняет исходный баланс белого, чем вариант пространственной фильтрации с низкочастотной компонентой, но имеет более низкий уровень шумоподавления.
Альтернативный вариант 4
В данном варианте осуществления число каналов карты весов на выходе нейронной сети может быть увеличено до девяти. Размер выходного тензора данных из нейронной сети составляет W/4 × H/4 × 9. В таком варианте осуществления карта параметров на выходе из нейронной сети включает в себя следующие данные:
- карту весов низкого разрешения для линейного взвешивания промежуточных результатов пространственной фильтрации (WeightMap[0]) и
- четырехканальные направленные карты весов для выполнения взвешенного суммирования окрестности пикселя (WeightMap[2,3,4,5] и WeightMap[8,9,10,11]).
При этом формирование обработанного изображения выполняется в соответствии с выражением:
Output=F9×9+WeightMap[0]*(F3×3 - F9×9),
где
F3×3=WeightedSum(Input, WeightMap[2,3,4,5], Radius=1),
F9×9=WeightedSum(F3×3, WeightMap[8,9,10,11], Radius=3),
где F3×3 - результат промежуточной фильтрации входного изображения посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 1, F9×9 - результат промежуточной фильтрации F3×3 посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 3, WeightMap[0] - карта весов для линейного взвешивания F3×3 и F9×9, WeightMap[2,3,4,5] - четырехканальная направленная карта весов для выполнения взвешенного суммирования окрестности пикселя с радиусом выборки 1, WeightMap[8,9,10,11] - четырехканальная направленная карта весов для выполнения взвешенного суммирования окрестности пикселя с радиусом выборки 3.
Таким образом, добавляются дополнительные четыре канала для вычисления взвешенной суммы окрестности пикселя с радиусом Radius=3. С другой стороны, остается только одна карта весов для линейного взвешивания.
Это позволяет повысить качество шумоподавления вокруг краев элементов на изображении и в высокочастотных областях.
Альтернативный вариант 5
В графическом процессоре пространственные фильтры WeightedSum, вычисленные на основании карты весов и направленной карты, могут быть заменены простыми линейными усредняющими фильтрами (box-filter 3×3 и box-filter 9×9), в которых каждый пиксель выходного изображении имеет значение, равное среднему значению соседних пикселей на входном изображении. Размер выходного тензора данных из нейронной сети составляет W/4 × H/4 × 2.
При этом карта параметров включает в себя следующие каналы:
- карту весов низкого разрешения для линейного взвешивания входного изображения и промежуточного результата пространственной фильтрации (WeightMap[12]);
- карту весов низкого разрешения для линейного взвешивания промежуточных результатов пространственной фильтрации (WeightMap[13]).
Пространственная фильтрация кадра видеоизображения включает в себя этапы, на которых осуществляют пространственную фильтрацию кадра изображения посредством последовательного применения линейных усредняющих фильтров (box-filter 3×3 и box-filter 9×9) для окрестности пикселя с радиусом выборки 1 и с радиусом выборки 3.
Выходное изображение формируется в соответствии со следующими выражениями:
Output=Box9×9+WeightMap[13]*(F3×3sum - Box9×9),
где
F3×3sum=Box3×3+WeightMap[12]*(Input - Box3×3),
где Input - входное зашумленное изображение, Box3×3 - результат промежуточной фильтрации входного изображения посредством линейного усредняющего фильтра (box-filter 3×3) для окрестности пикселя с радиусом выборки 1, F3×3sum - результат промежуточной фильтрации, являющийся взвешенной суммой Input и Box3×3, Box9×9 - результат промежуточной фильтрации Box3×3 посредством линейного усредняющего фильтра (box-filter 9×9) для окрестности пикселя с радиусом выборки 3, Output - выходное обработанное изображение с уменьшенным шумом, WeightMap[12] - карта весов для линейного взвешивания Input и Box3×3 и WeightMap[13] - карта весов для линейного взвешивания F3×3 и Box9×9.
Это позволяет снизить сложность модели нейронной сети, объем передаваемых данных и время, требуемое для осуществления вычислений. Однако, шумоподавление вокруг краев элементов на изображениях будет иметь более низкий уровень.
Альтернативный вариант 6
Пространственное разрешение карты параметров может быть дополнительно уменьшено. Размер выходного тензора данных из нейронной сети составляет W/8 × H/8 × 7. Это позволяет снизить сложность модели нейронной сети, объем передаваемых данных и время, требуемое для осуществления вычислений.
Альтернативный вариант 7
В графическом процессоре пространственные фильтры, выполняющие операцию WeightedSum, вычисленные на основании карты параметров, могут быть заменены обычными известными пространственными фильтрами, такими как билатеральный фильтр (Bilateral3×3), медианный фильтр (Median5×5), фильтр Гаусса (Gauss7×7) и т.д. В таком варианте осуществления нейронная сеть формирует карту параметров, включающую в себя параметры упомянутых пространственных фильтров. В зависимости от используемого фильтра и радиуса это позволяет как повысить, так и снизить вычислительную сложность обработки, оказывая при этом влияние на качество обработки изображения.
Таким образом, настоящее изобретение обеспечивает уменьшение шума на видеоизображениях в реальном времени, уменьшает вычислительную сложность обработки изображения и энергопотребление устройства. Настоящее изобретение обеспечивает возможность формирования распределенного конвейера обработки изображения для его реализации на одном устройстве или, при необходимости, на разных устройствах, что позволяет распределить вычислительную нагрузку. Обеспечивается возможность гибкого регулирования производительности и качества обработки изображения посредством выбора числа пространственных фильтров и/или схемы взвешивания, оптимальных для конкретного устройства или сценария применения. При этом настоящее изобретение не требует знания точной модели формирования шума. Кроме того, настоящее изобретение позволяет предотвратить возникновения мерцания в выходном видеоизображении.
Выше описан блок обработки изображений, включающий в себя нейронный процессор и графический процессор. В альтернативном варианте осуществления блок обработки изображений может быть полностью реализован с помощью процессора цифровых сигналов (DSP) или может быть реализован как включающий в себя DSP и GPU.
В соответствии с еще одним аспектом настоящего изобретения представлено устройство обработки видеоизображений, включающее в себя описанный выше блок обработки видеоизображений и блок предварительной обработки видеоизображений. Опционально, устройство обработки видеоизображений также включает в себя блок захвата видеоизображений.
Согласно дополнительному аспекту настоящего изобретения предложен компьютерно-читаемый носитель, хранящий компьютерную программу, которая при ее исполнении посредством процессора предписывает упомянутому процессору выполнять описанный выше способ обработки изображения.
Очевидно, что, когда речь идет о хранении данных, программ и т.п., подразумевается наличие компьютерно-читаемого носителя данных, примеры компьютерно-читаемых носителей данных включают в себя постоянное запоминающее устройство, оперативное запоминающее устройство, регистр, кэш-память, полупроводниковые запоминающие устройства, магнитные носители, такие как внутренние жесткие диски и съемные диски, магнитооптические носители и оптические носители, такие как диски CD-ROM и цифровые универсальные диски (DVD), а также любые другие известные в уровне техники носители данных.
Настоящее изобретение может найти применение в устройствах захвата и обработки изображения, таких как фото- и видеокамеры, в том числе встроенные в оборудование на основе SoC (смартфоны, планшеты, видеорегистраторы и т.д.). Возможность получения изображений хорошего качества обеспечивает преимущества при использовании настоящего изобретения в системах видеонаблюдения, устройствах захвата изображения в автономных транспортных средствах, роботах и т.д. При этом настоящее изобретение обеспечивает возможность обработки захватываемого изображения в реальном времени даже на маломощном оборудовании с ограниченной вычислительной мощностью.
По меньшей мере один из этапов в способе или блоков в системе может использовать модель искусственного интеллекта (AI) для выполнения соответствующих операций. Функция, связанная с AI, может выполняться через энергонезависимую память, энергозависимую память и процессор.
Процессор может включать в себя один или несколько процессоров. В то же время, один или несколько процессоров могут быть процессором общего назначения, например, центральным процессором (CPU), прикладным процессором (AP) или т.п., блоком обработки только графики, таким как графический процессор (GPU), визуальный процессор (VPU) и/или специализированный процессор AI, такой как нейронный процессор (NPU).
Один или несколько процессоров управляют обработкой входных данных в соответствии с заранее определенным правилом работы или моделью искусственного интеллекта (AI), хранящейся в энергонезависимой памяти и энергозависимой памяти. Предварительно определенное рабочее правило или модель искусственного интеллекта могут быть получены путем обучения. При этом процессор может выполнять операцию предварительной обработки данных для преобразования в форму, подходящую для использования в качестве входных данных для модели искусственного интеллекта.
«Получена путем обучения» означает, что посредством применения алгоритма обучения к множеству обучающих данных создается предварительно определенное рабочее правило или модель AI с желаемой характеристикой. Обучение может выполняться на самом устройстве, в котором выполняется AI согласно варианту осуществления, и/или может быть реализовано через отдельный сервер/систему.
Модель искусственного интеллекта может включать в себя множество слоев нейронной сети. Каждый из множества слоев нейронной сети включает в себя множество весовых значений и выполняет рабочую операцию для данного уровня путем вычисления между результатом вычисления предыдущего слоя и множеством весовых значений.
Примеры нейронных сетей включают, помимо прочего, сверточную нейронную сеть (CNN), глубокую нейронную сеть (DNN), рекуррентную нейронную сеть (RNN), ограниченную машину Больцмана (RBM), глубокую сеть доверия (DBN), двунаправленную рекуррентную глубокую нейронную сеть (BRDNN), генеративно-состязательные сети (GAN) и глубокие Q-сети.
Алгоритм обучения - это метод обучения предварительно определенного целевого устройства (например, нейронной сети на базе GPU) с использованием множества обучающих данных, чтобы вызывать, разрешать или управлять целевым устройством для выполнения определения или прогнозирования. Примеры алгоритмов обучения включают, но не ограничиваются ими, обучение с учителем, обучение без учителя, обучение с частичным привлечением учителя или обучение с подкреплением.
Различные иллюстративные блоки и модули, описанные в связи с раскрытием сущности в данном документе, могут реализовываться или выполняться с помощью процессора общего назначения, процессора цифровых сигналов (DSP), специализированной интегральной схемы (ASIC), программируемой пользователем вентильной матрицы (FPGA) или другого программируемого логического устройства (PLD), дискретного логического элемента или транзисторной логики, дискретных аппаратных компонентов либо любой комбинации вышеозначенного, предназначенной для того, чтобы выполнять описанные в данном документе функции. Процессор общего назначения может представлять собой микропроцессор, но в альтернативном варианте, процессор может представлять собой любой традиционный процессор, контроллер, микроконтроллер или конечный автомат. Процессор также может реализовываться как комбинация вычислительных устройств (к примеру, комбинация DSP и микропроцессора, несколько микропроцессоров, один или более микропроцессоров вместе с DSP-ядром либо любая другая подобная конфигурация).
Память может быть энергозависимой или энергонезависимой памятью или может включать в себя как энергозависимую, так и энергонезависимую память. Энергонезависимой памятью может быть постоянное запоминающее устройство (ROM), программируемое постоянное запоминающее устройство (PROM), стираемое программируемое постоянное запоминающее устройство (EPROM), электронно-стираемое программируемое постоянное запоминающее устройство (EEPROM) или флэш-память. Энергозависимая память может быть оперативной памятью (RAM). Также память в вариантах осуществления настоящего раскрытия может быть статической памятью с произвольным доступом (SRAM), динамической памятью с произвольным доступом (DRAM), синхронной динамической памятью с произвольным доступом (синхронная DRAM, SDRAM), синхронной динамической памятью с произвольной выборкой с двойной скоростью передачи данных (SDRAM с двойной скоростью передачи данных, DDR SDRAM), синхронной динамической памятью с произвольной выборкой с повышенной скоростью (улучшенная SDRAM, ESDRAM), DRAM с синхронной линией связи (SLDRAM) и оперативной памятью с шиной прямого доступа (DR RAM) и тд. То есть память в вариантах осуществления настоящего раскрытия включает в себя, но не ограничивается этим, эти и любые другие подходящие типы памяти.
Способы, раскрытые здесь, содержат один или несколько этапов или действий для достижения описанного способа. Этапы и/или действия способа могут заменять друг друга, не выходя за пределы объема формулы изобретения. Другими словами, если не определен конкретный порядок этапов или действий, порядок и/или использование конкретных этапов и/или действий может изменяться, не выходя за пределы объема формулы изобретения.
Функции, описанные в данном документе, могут реализовываться в аппаратном обеспечении, программном обеспечении, выполняемом посредством процессора, микропрограммном обеспечении или в любой комбинации вышеозначенного. При реализации в программном обеспечении, выполняемом посредством процессора, функции могут сохраняться или передаваться как одна или более инструкций или код на компьютерно-читаемом носителе. Другие примеры и реализации находятся в пределах объема раскрытия настоящего изобретения. Например, вследствие характера программного обеспечения, функции, описанные выше, могут реализовываться с использованием программного обеспечения, выполняемого посредством процессора, аппаратного обеспечения, микропрограммного обеспечения, фиксированного блока или комбинаций любого из вышеозначенного. Признаки, реализующие функции, также могут физически находиться в различных позициях, в том числе согласно такому распределению, что части функций реализуются в различных физических местоположениях.
Компьютерно-читаемые носители включают в себя как некратковременные компьютерные носители хранения данных, так и среду связи, включающую в себя любую передающую среду, которая упрощает перемещение компьютерной программы из одного места в другое. Некратковременный носитель хранения данных может представлять собой любой доступный носитель, к которому можно осуществлять доступ посредством компьютера общего назначения или специального назначения. В качестве примера, а не ограничения, некратковременные компьютерно-читаемые носители могут содержать оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), флэш-память, ROM на компакт-дисках (CD) или другое устройство хранения данных на оптических дисках, устройство хранения данных на магнитных дисках или другие магнитные устройства хранения, либо любой другой некратковременный носитель, который может использоваться для того, чтобы переносить или сохранять требуемое средство программного кода в форме инструкций или структур данных, и к которому можно осуществлять доступ посредством компьютера общего назначения или специального назначения либо процессора общего назначения или специального назначения.
Несмотря на то, что примерные варианты осуществления были подробно описаны и показаны на сопроводительных чертежах, следует понимать, что такие варианты осуществления являются лишь иллюстративными и не предназначены ограничивать более широкое изобретение, и что данное изобретение не должно ограничиваться конкретными показанными и описанными компоновками и конструкциями, поскольку различные другие модификации могут быть очевидны специалистам в соответствующей области.
Элементы, упомянутые в единственном числе, не исключают множественности элементов, если отдельно не указано иное.
Признаки, упомянутые в различных зависимых пунктах формулы, а также реализации, раскрытые в различных частях описания, могут быть скомбинированы с достижением полезных эффектов, даже если возможность такого комбинирования не раскрыта явно.
название | год | авторы | номер документа |
---|---|---|---|
НАЗНАЧЕНИЕ ОЦЕНКИ РЕЛЕВАНТНОСТИ ДЛЯ ИСКУССТВЕННЫХ НЕЙРОННЫХ СЕТЕЙ | 2015 |
|
RU2703343C2 |
СПОСОБ И УСТРОЙСТВО ФИЛЬТРОВАНИЯ ШУМА ВИДЕОСИГНАЛОВ | 2008 |
|
RU2364937C1 |
СИСТЕМА И СПОСОБ ФОРМИРОВАНИЯ И ВОСПРОИЗВЕДЕНИЯ ТРЕХМЕРНОГО ВИДЕОИЗОБРАЖЕНИЯ | 2009 |
|
RU2421933C2 |
Способ детекции протяженных линейных объектов на изображении | 2022 |
|
RU2802991C1 |
СИСТЕМА И СПОСОБ ДЛЯ ИСКУССТВЕННОЙ НЕЙРОННОЙ СЕТИ, ИНВАРИАНТНОЙ К СДВИГУ | 2017 |
|
RU2656990C1 |
СХЕМА КОДИРОВАНИЯ ДЛЯ ВИДЕОДАННЫХ С ПРИМЕНЕНИЕМ ПОНИЖАЮЩЕЙ/ПОВЫШАЮЩЕЙ ДИСКРЕТИЗАЦИИ И НЕЛИНЕЙНОЙ ФИЛЬТРАЦИИ КАРТЫ ГЛУБИНЫ | 2020 |
|
RU2831969C1 |
СПОСОБ ПРЕОБРАЗОВАНИЯ ЧАСТОТЫ КАДРОВ, ПОДДЕРЖИВАЮЩИЙ ЗАМЕНУ ИНТЕРПОЛЯЦИИ КАДРА С КОМПЕНСАЦИЕЙ ДВИЖЕНИЯ ЛИНЕЙНОЙ КОМБИНАЦИЕЙ КАДРОВ, И РЕАЛИЗУЮЩЕЕ ЕГО УСТРОЙСТВО | 2022 |
|
RU2786784C1 |
СПОСОБ ДЕКОДИРОВАНИЯ ВИДЕО ДЛЯ КОМПЕНСАЦИИ ДВИЖЕНИЯ | 2020 |
|
RU2739499C1 |
СПОСОБ И УСТРОЙСТВО ДЛЯ КОМПЕНСАЦИИ ДВИЖЕНИЯ С ПРЕДСКАЗАНИЕМ | 2016 |
|
RU2634703C2 |
СПОСОБ И УСТРОЙСТВО ДЛЯ КОМПЕНСАЦИИ ДВИЖЕНИЯ С ПРЕДСКАЗАНИЕМ | 2017 |
|
RU2664389C1 |
Изобретение относится к способу и устройству обработки видеоизображений для уменьшения шума. Технический результат заключается в снижении сложности обработки видеоизображений, увеличении ее скорости и повышении качества обработанного изображения. Способ обработки видеоизображений включает в себя этапы, на которых: принимают один разреженный канал кадра видеоизображения, на основании упомянутого одного разреженного канала посредством нейронной сети формируют карту параметров низкого разрешения для осуществления пространственной фильтрации кадра видеоизображения, с использованием сформированной карты параметров осуществляют пространственную фильтрацию кадра видеоизображения для получения обработанного кадра. 4 н. и 17 з.п. ф-лы, 6 ил.
1. Способ обработки видеоизображений, включающий в себя этапы, на которых:
- принимают один разреженный канал кадра видеоизображения,
- на основании упомянутого одного разреженного канала посредством нейронной сети формируют карту параметров низкого разрешения для осуществления пространственной фильтрации кадра видеоизображения,
- с использованием сформированной карты параметров осуществляют пространственную фильтрацию кадра видеоизображения для формирования обработанного кадра.
2. Способ по п.1, в котором кадр видеоизображения подвергают предварительной обработке, которая включает в себя этапы, на которых выделяют один канал из кадра и подвергают его прореживанию.
3. Способ по п.2, в котором до этапа выделения канала предварительная обработка видеоизображения включает в себя этап, на котором преобразуют кадр видеоизображения в формат YUV.
4. Способ по п.2, в котором упомянутый канал прореживается по высоте и по ширине в два раза.
5. Способ по п.2 или 3, в котором упомянутый один канал является Y-каналом для видеоизображения в формате YUV.
6. Способ по п.1, в котором кадр видеоизображения имеет размер W × H × D, где W - ширина кадра, H - высота кадра, D - количество каналов, а данные упомянутого разреженного канала имеют размер W/2 × H/2 × 1.
7. Способ по п.1, в котором пространственная фильтрация включает в себя операцию взвешенного суммирования, выполняемую пространственным фильтром, который для каждого канала входного изображения вычисляет взвешенную сумму по окрестности пикселя с заданным радиусом выборки в соответствии с выражением:
Fnxn=
= WeightedSum(Image, WeightMap[directional], Radius), (1)
где Fnxn - результат фильтрации, WeightedSum - операция взвешенного суммирования для вычисления взвешенной суммы окрестности nxn пикселя подлежащего обработке изображения Image с радиусом выборки Radius с использованием весовых коэффициентов, полученных на основе направленной карты весов WeightMap[directional] для выполнения взвешенного суммирования окрестности пикселя,
причем операция взвешенного суммирования по выражению (1) включает в себя выполнение для всего кадра следующих вычислений:
F’[i, j]=(Image[i, j-Radius] * p_left[i, j] + Image[i, j] + Image[i, j+Radius] * p_right[i, j]) / (p_left[i, j] + 1 + p_right[i, j]), (2)
Fnxn[i, j]=(F’[i-Radius, j] * p_top[i, j] + F’[i, j] + F’[i+Radius, j] * p_bottom[i, j]) / (p_top[i, j] + 1 + p_bottom[i, j]), (3)
где Image[i, j] - значение пикселя подлежащего обработке кадра с координатами [i, j], F’[i, j] - значение пикселя промежуточного результата, Radius - радиус выборки, p_left/p_right/p_top/p_bottom - весовые коэффициенты для вычисления взвешенной суммы окрестности пикселя с координатами [i, j], полученные посредством интерполяции коэффициентов направленной карты весов WeightMap[directional] до размера обрабатываемого изображения, Fnxn[i, j] - значение пикселя кадра, обработанного посредством пространственного фильтра для вычисления взвешенной суммы окрестности nxn пикселя с координатами [i, j].
8. Способ по п.7, в котором карта параметров низкого разрешения для осуществления пространственной фильтрации кадра видеоизображения представляет собой семиканальную карту параметров, включающую в себя:
- карту весов низкого разрешения для линейного взвешивания промежуточных результатов пространственной фильтрации (WeightMap[0]),
- карту весов низкого разрешения для линейного взвешивания промежуточного результата пространственной фильтрации и низкочастотной компоненты (WeightMap[1]),
- четырехканальную направленную карту весов для выполнения взвешенного суммирования окрестности пикселя (WeightMap[2,3,4,5]) и
- низкочастотную компоненту (WeightMap[6]),
причем выходное обработанное изображение формируют в соответствии со следующим выражением:
Output=WeightMap[6] +
+ WeightMap[1]*(F9×9sum - WeightMap[6]),
где
F9×9sum=F9×9+WeightMap[0]*(F3×3 - F9×9),
F3×3=WeightedSum(Input, WeightMap[2,3,4,5], Radius=1),
F9×9=WeightedSum(F3×3, WeightMap[2,3,4,5], Radius=3),
где Output - выходное обработанное изображение с уменьшенным шумом, Input - входное зашумленное изображение, Radius - радиус выборки, WeightedSum - операция взвешенного суммирования в соответствии с выражениями (1)-(3), F3×3 - результат промежуточной фильтрации входного изображения посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 1, F9×9 - результат промежуточной фильтрации F3×3 посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 3, F9×9sum - результат промежуточной фильтрации, являющийся взвешенной суммой F3×3 и F9×9, WeightMap[0] - карта весов для линейного взвешивания F3×3 и F9×9, WeightMap[1] - карта весов для линейного взвешивания F9×9sum и низкочастотной компоненты, WeightMap[2,3,4,5] - четырехканальная направленная карта весов для выполнения взвешенного суммирования окрестности пикселя, WeightMap[6] - низкочастотная компонента.
9. Способ по п.7, в котором карта параметров низкого разрешения для осуществления пространственной фильтрации кадра видеоизображения представляет собой пятиканальную карту параметров, включающую в себя:
- карту весов низкого разрешения для линейного взвешивания промежуточных результатов пространственной фильтрации (WeightMap[0]) и
- четырехканальную направленную карту весов для выполнения взвешенного суммирования окрестности пикселя (WeightMap[2,3,4,5]),
причем выходное обработанное изображение формируют в соответствии со следующим выражением:
Output=F9×9+WeightMap[0]*(F3×3 - F9×9),
где
F3×3=WeightedSum(Input, WeightMap[2,3,4,5], Radius=1),
F9×9=WeightedSum(F3×3, WeightMap[2,3,4,5], Radius=3),
где Output - выходное обработанное изображение с уменьшенным шумом, Input - входное зашумленное изображение, Radius - радиус выборки, WeightedSum - операция взвешенного суммирования в соответствии с выражениями (1)-(3), F3×3 - результат промежуточной фильтрации входного изображения посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 1, F9×9 - результат промежуточной фильтрации F3×3 посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 3, WeightMap[0] - карта весов для линейного взвешивания F3×3 и F9×9, WeightMap[2,3,4,5] - четырехканальная направленная карта весов для выполнения взвешенного суммирования окрестности пикселя.
10. Способ по п.7, в котором карта параметров низкого разрешения для осуществления пространственной фильтрации кадра видеоизображения включает в себя:
- карты весов низкого разрешения для линейного взвешивания промежуточных результатов пространственной фильтрации (WeightMap[0] и WeightMap[7]),
- карту весов низкого разрешения для линейного взвешивания промежуточного результата пространственной фильтрации и низкочастотной компоненты (WeightMap[1]),
- четырехканальную направленную карту весов для выполнения взвешенного суммирования окрестности пикселя (WeightMap[2,3,4,5]) и
- низкочастотную компоненту (WeightMap[6]),
причем выходное обработанное изображение формируют в соответствии со следующим выражением:
Output=WeightMap[6] +
+ WeightMap[1]*(F27×27sum - WeightMap[6]),
где
F27×27sum=F27×27+WeightMap[7]*(F9×9sum - F27×27),
F27×27=WeightedSum(F9×9sum, WeightMap[2,3,4,5], Radius=9),
F9×9sum=F9×9+WeightMap[0]*(F3×3 - F9×9),
F3×3=WeightedSum(Input, WeightMap[2,3,4,5], Radius=1),
F9×9=WeightedSum(F3×3, WeightMap[2,3,4,5], Radius=3),
где Output - выходное обработанное изображение с уменьшенным шумом, Input - входное зашумленное изображение, Radius - радиус выборки при вычислении взвешенной суммы, WeightedSum - операция взвешенного суммирования в соответствии с выражениями (1)-(3), F3×3 - результат промежуточной фильтрации входного изображения посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 1, F9×9 - результат промежуточной фильтрации F3×3 посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 3, F9×9sum - результат промежуточной фильтрации, являющийся взвешенной суммой F3×3 и F9×9, F27×27 - результат промежуточной фильтрации F9×9sum посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 9, F27×27sum - результат промежуточной фильтрации, являющийся взвешенной суммой F9×9sum и F27×27, WeightMap[0] - карта весов для линейного взвешивания F3×3 и F9×9, WeightMap[1] - карта весов для линейного взвешивания F27×27sum и низкочастотной компоненты, WeightMap[2,3,4,5] - четырехканальная направленная карта весов для выполнения взвешенного суммирования окрестности пикселя, WeightMap[6] - низкочастотная компонента, WeightMap[7] - карта весов для линейного взвешивания F9×9sum и F27×27.
11. Способ по п.7, в котором карта параметров низкого разрешения для осуществления пространственной фильтрации кадра видеоизображения включает в себя:
- карты весов низкого разрешения для линейного взвешивания промежуточных результатов пространственной фильтрации (WeightMap[0] и WeightMap[7]),
- четырехканальную направленную карту весов для выполнения взвешенного суммирования окрестности пикселя (WeightMap[2,3,4,5]),
причем выходное обработанное изображение формируют в соответствии со следующим выражением:
Output=F27×27+WeightMap[7]*(F9×9sum - F27×27),
где
F27×27=WeightedSum(F9×9sum, WeightMap[2,3,4,5], Radius=9)
F9×9sum=F9×9+WeightMap[0]*(F3×3 - F9×9),
F3×3=WeightedSum(Input, WeightMap[2,3,4,5], Radius=1),
F9×9=WeightedSum(F3×3, WeightMap[2,3,4,5], Radius=3),
где Output - выходное обработанное изображение с уменьшенным шумом, Input - входное зашумленное изображение, Radius - радиус выборки при вычислении взвешенной суммы, WeightedSum - операция взвешенного суммирования в соответствии с выражениями (1)-(3), F3×3 - результат промежуточной фильтрации входного изображения посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 1, F9×9 - результат промежуточной фильтрации F33 посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 3, F9×9sum - результат промежуточной фильтрации, являющийся взвешенной суммой F3×3 и F9×9, F27×27 - результат промежуточной фильтрации F9×9sum посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 9, F27×27sum - результат промежуточной фильтрации, являющийся взвешенной суммой F9×9sum и F27×27, WeightMap[0] - карта весов для линейного взвешивания F3×3 и F9×9, WeightMap[2,3,4,5] - четырехканальная направленная карта весов для выполнения взвешенного суммирования окрестности пикселя, WeightMap[7] - карта весов для линейного взвешивания F9×9sum и F27×27.
12. Способ по п.7, в котором карта параметров низкого разрешения для осуществления пространственной фильтрации кадра видеоизображения представляет собой девятиканальную карту параметров, включающую в себя:
- карту весов низкого разрешения для линейного взвешивания промежуточных результатов пространственной фильтрации (WeightMap[0]);
- четырехканальные направленные карты весов для выполнения взвешенного суммирования окрестности пикселя (WeightMap[2,3,4,5] и WeightMap[8,9,10,11]),
причем выходное обработанное изображение формируют в соответствии со следующим выражением:
Output=F9×9+WeightMap[0]*(F3×3 - F9×9),
где
F3×3=WeightedSum(Input, WeightMap[2,3,4,5], Radius=1),
F9×9=WeightedSum(F3×3, WeightMap[8,9,10,11], Radius=3),
где Output - выходное обработанное изображение с уменьшенным шумом, Input - входное зашумленное изображение, Radius - радиус выборки, WeightedSum - операция взвешенного суммирования в соответствии с выражениями (1)-(3), F3×3 - результат промежуточной фильтрации входного изображения посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 1, F9×9 - результат промежуточной фильтрации F3×3 посредством пространственного фильтра для взвешенного суммирования окрестности пикселя с радиусом выборки 3, WeightMap[0] - карта весов для линейного взвешивания F3×3 и F9×9, WeightMap[2,3,4,5] - четырехканальная направленная карта весов для выполнения взвешенного суммирования окрестности пикселя с радиусом выборки 1, WeightMap[8,9,10,11] - четырехканальная направленная карта весов для выполнения взвешенного суммирования окрестности пикселя с радиусом выборки 3.
13. Способ по п.1, в котором карта параметров низкого разрешения для осуществления пространственной фильтрации кадра видеоизображения представляет собой двухканальную карту параметров, включающую в себя:
- карту весов низкого разрешения для линейного взвешивания входного изображения и промежуточного результата пространственной фильтрации (WeightMap[12]);
- карту весов низкого разрешения для линейного взвешивания промежуточных результатов пространственной фильтрации (WeightMap[13]);
причем пространственная фильтрация кадра видеоизображения включает в себя этапы, на которых:
- осуществляют пространственную фильтрацию кадра изображения посредством последовательного применения линейных усредняющих фильтров для окрестности пикселя с радиусом выборки 1 и с радиусом выборки 3,
причем выходное обработанное изображение формируют в соответствии со следующим выражением:
Output=Box9×9+WeightMap[13]*(F3×3sum - Box9×9),
где
F3×3sum=Box3×3+WeightMap[12]*(Input - Box3×3),
где Input - входное зашумленное изображение, Box3×3 - результат промежуточной фильтрации входного изображения посредством линейного усредняющего фильтра для окрестности пикселя с радиусом выборки 1, F3×3sum - результат промежуточной фильтрации, являющийся взвешенной суммой Input и Box3×3, Box9×9 - результат промежуточной фильтрации Box3×3 посредством линейного усредняющего фильтра для окрестности пикселя с радиусом выборки 3, Output - выходное обработанное изображение с уменьшенным шумом, WeightMap[12] - карта весов для линейного взвешивания Input и Box3×3, WeightMap[13] - карта весов для линейного взвешивания F3×3sum и Box9×9.
14. Способ по п.1, в котором пространственная фильтрация кадра видеоизображения включает в себя этап, на котором применяют по меньшей мере один из билатерального фильтра, медианного фильтра и фильтра Гаусса, причем карта параметров включает в себя параметры упомянутого по меньшей мере одного пространственного фильтра.
15. Способ по п.1, в котором кадр видеоизображения имеет размер W × H × D, где W - ширина кадра, H - высота кадра, D - количество каналов, а данные упомянутого разреженного канала имеют размер W/2 × H/2 × 2 вследствие параллельного осуществления двух разных вариантов прореживания канала входного кадра.
16. Способ по любому из пп.8-13, в котором каждый канал карты параметров имеет размер W/4 × H/4 или W/8 × H/8.
17. Блок обработки видеоизображений, выполненный с возможностью:
- принимать один разреженный канал кадра видеоизображения,
- на основании упомянутого одного разреженного канала посредством нейронной сети формировать карту параметров низкого разрешения для осуществления пространственной фильтрации кадра видеоизображения,
- с использованием сформированной карты параметров осуществлять пространственную фильтрацию кадра видеоизображения для получения обработанного кадра.
18. Блок обработки видеоизображений по п.17, включающий в себя нейронный процессор и графический процессор.
19. Устройство обработки видеоизображений, включающее в себя блок обработки видеоизображений по п.17 или 18, а также блок предварительной обработки видеоизображений, причем устройство обработки видеоизображений выполнено с возможностью осуществления способа по любому из пп.1-16.
20. Устройство обработки видеоизображений по п.19, дополнительно включающее в себя блок захвата видеоизображений.
21. Компьютерно-читаемый носитель, хранящий компьютерную программу, которая при ее исполнении посредством процессора предписывает упомянутому процессору выполнять способ по любому из пп.1-16.
BYEONGKEUN KANG, Toward Joint Image Generation and Compression using Generative Adversarial Networks, 23.01.2019 Найдено в сети Интернет URL: https://arxiv.org/pdf/1901.07838 | |||
US 20110299769 A1, 08.12.2011 | |||
ФЕДОРОВ С | |||
Нефтяной конвертер | 1922 |
|
SU64A1 |
Авторы
Даты
2024-12-25—Публикация
2024-02-05—Подача