Область техники
[0001] Настоящее изобретение относится к области обработки изображений и, в частности, к способу учитывающей повторяющиеся структуры интерполяции кадра(ов) видео и реализующим этот способ устройству и считываемому компьютером носителю. Предлагаемая в настоящем раскрытии интерполяция кадра(ов) может использоваться в различных применениях, например, для преобразования частоты кадров (FRC), для синтеза вида для многовидовых последовательностей и в любых иных применениях, в которых интерполяция кадра может потребоваться.
Уровень техники
[0002] Для преобразования частоты кадров в уровне техники используют способы интерполяции кадров на основе компенсации движения (Motion Compensated Frame Interpolation, MCFI). При реализации этих способов могут применяться классические подходы, в которых используются традиционные, классические (ручные) алгоритмы, а искусственные нейронные сети по существу не используются. В частности, на основе классических алгоритмов могут реализовываться такие известные в данной области техники операции как оценка движения (ME), коррекция оценки движения, компенсация движения (MC), а также обнаружение окклюзий и т.д.
[0003] Одной проблемой известных из уровня техники классических подходов является то, что оценка движения может выполняться некорректно при наличии в кадрах, для которых такая оценка проводится, структур, которые встречаются на изображении несколько раз с небольшими изменениями или по существу без изменений (т.е. повторяющихся структур). В качестве примера, если в кадрах имеется множество одинаковых прутков забора классический алгоритм ME может по ошибке находить вектор движения из прутка 1 в кадре 1 в пруток 2 в кадре 2, что является ошибкой и приводит к появлению в кадре, который будет получаться интерполяцией кадра на основе такой некорректной оценки движения, серьезных артефактов, например, двоения, размытия, появления разваливающихся объектов, которые находятся не в своем оригинальном месте, а как-то смещены и т.д. (см. часть фиг. 1, относящуюся к уровню техники, в качестве наглядной иллюстрации данной проблемы). Можно сказать, что артефакты, порождаемые данной проблемой, являются одними из самых заметных артефактов, порождаемых интерполяцией кадров видео, не учитывающей повторяющиеся структуры.
[0004] Другим более современным подходом, применяемым в уровне техники для преобразования частоты кадров, является использование искусственных нейронных сетей (NN), в том числе глубоких нейронных сетей (DNN). В этом подходе обеспечивается более высокое качество в сравнении с классическими подходами. Данный подход в свою очередь может быть подразделен на потоковые (flow-based) способы и способы на основе сложных (end-to-end) нейронных сетей. В потоковых способах одна нейронная сеть может отвечать за оценку движения, другая нейронная сеть может отвечать за обнаружение окклюзий и т.д., при этом не исключается дополнительное применение классических алгоритмов или иных нейронных сетей для других целей (например, для целей компенсации движения). В способах на основе сложных (end-to-end) нейронных сетей последние осуществляют всю обработку внутри себя и работают по принципу черного ящика, который принимает на вход ключевые кадры и сразу выдает интерполированные кадры. Известные из уровня техники способы, основанные на NN, также как и классические подходы, страдают из-за артефактов, порождаемых неверным сопоставлением представляемых в кадрах повторяющихся структур при оценке движения между кадрами.
[0005] Сложные архитектуры NN предполагают большое число слоев, по меньшей мере некоторые из которых отвечают за реализацию вычислительно сложных операций. При этом для обучения NN со сложной архитектурой требуются большие объемы качественных обучающих данных. В результате сложные NN оперируют огромным числом параметров, что значительно усложняет их тренировку и последующее использование. Как пример, известный из источника [1] Z. Shi et al., “Video Frame Interpolation Transformer” (CVPR 2022) трансформер, применяемый для интерполяции кадров видео, оперирует практически 30 миллионами параметров, а нейронная сеть, раскрытая в другом источнике [2] W. Bao et al., “Depth-Aware Video Frame Interpolation” (CPVR 2019), оперирует практически 25 миллионами параметров (см. сравнение нейронных сетей по числу параметров на фиг. 14).
[0006] Резюмируя вышесказанное, в уровне техники уже обнаружены относительно легкие с точки зрения вычислительной сложности алгоритмы, которые могут применяться в классических подходах для преобразования частоты кадров. Поэтому классические подходы, в отличие от подходов на основе нейронных сетей, могут достаточно легко применяться на электронных устройствах, не обладающих значительными вычислительными ресурсами и/или ресурсами памяти. Но существует проблема недостаточного качества, особенно в контексте обработки повторяющихся структур (а именно точной оценки движения в областях повторяющихся структур) при интерполяции кадров видео. Классические подходы формируют кадры с большим количеством визуально заметных артефактов (как по объективным, так и по субъективным метрикам) в сравнении с походом, основанным на нейронных сетях.
[0007] С другой стороны, подходы, основанные на нейронных сетях, являются самыми современными и обеспечивающими более высокое качество в сравнении с классическими подходами, но дорогими с точки зрения используемых ресурсов. В частности, обучение сложных нейронных сетей является вычислительно сложной, долгой и дорогой (в плане потребляемых при этом ресурсов как денежных, так и иных, например, энергетических ресурсов, потребляемых центром обработки данных при обучении сложной нейронной сети) процедурой, для которой требуется сбор и, в некоторых случаях, дополнительная обработка больших объемов обучающих данных. Последующее использование таких сложных нейронных сетей также является долгим (т.е. не реализуемым в режиме реального времени) на электронных устройствах (например, мобильных телефонах) с ограниченными ресурсами процессора и/или памяти, т.е. на таких устройствах, которые обычно не обладают самыми передовыми вычислительными компонентами и/или самыми передовыми компонентами памяти. При этом основанные на нейронных сетях подходы все равно не обеспечивают идеального качества, поскольку на тех или иных видео, обработанных с применением нейронных сетей, все еще наблюдаются недостатки и артефакты, связанные с некорректной оценкой движения в областях кадров, содержащих повторяющиеся структуры.
Сущность изобретения
[0008] Раскрытое здесь изобретение решает вышеописанные проблемы будучи компромиссным вариантом, в котором сочетаются достоинства обоих подходов (классического и основанного на нейронных сетях), а негативное влияние недостатков этих подходов ограничивается в максимально возможной, в настоящее время, степени. Таким образом, заявленное изобретение является применимым на обладающих ограниченными ресурсами электронных устройствах, при этом заявленное решение повышает качество интерполируемых кадров за счет более точной оценки движения в учитываемых при интерполяции кадра областях повторяющихся структур. Другие преимущества настоящего раскрытия станут очевидными обычным специалистам в данной области техники при ознакомлении с нижеследующим детальным описанием неограничивающих примеров реализации настоящего изобретения.
[0009] В первом аспекте настоящего изобретения предусмотрен способ интерполяции кадров видео, содержащий этапы, на которых: получают по меньшей мере два ключевых кадра видео, для которых должна быть выполнена оценка движения, с помощью которой и по меньшей мере одного ключевого кадра подлежит получению интерполированный кадр, на по меньшей мере одном ключевом кадре из упомянутых по меньшей мере двух ключевых кадров обнаруживают области повторяющихся структур, оценивают движение между упомянутым по меньшей мере одним ключевым кадром из упомянутых по меньшей мере двух ключевых кадров и интерполируемым кадром, подавая упомянутые по меньшей мере два ключевых кадра и области повторяющихся структур, которые обнаружены на упомянутом по меньшей мере одном ключевом кадре, в обученную нейронную сеть оценки движения, причем при обучении данной нейронной сети оценки движения значение функции ошибки вычислялось как сумма (i) ошибки, связанной со степенью подобия между кадром эталонной интерполяции и интерполированным кадром, и (ii) ошибки, связанной со степенью самоподобия тех векторов движения из векторов движения, полученных, при упомянутом обучении, оценкой движения, которые принадлежат к области повторяющихся структур, обнаруженной на кадре эталонной интерполяции, получают интерполированный кадр, выполняя компенсацию движения с использованием упомянутого по меньшей мере одного ключевого кадра и полученных оценкой векторов движения.
[0010] Согласно развитию первого аспекта настоящего изобретения при обучении нейронной сети оценки движения дополнительно выполняли следующее: к тем векторам движения из векторов движения, получаемых, при упомянутом обучении, оценкой движения между по меньшей мере одним ключевым кадром и интерполируемым кадром, которые принадлежат к области повторяющихся структур, обнаруживаемые на кадре эталонной интерполяции, применялась регуляризация, при этом вычисление (ii) ошибки, связанной со степенью самоподобия, выполняли до применения регуляризации или после применения регуляризации.
[0011] Согласно развитию первого аспекта настоящего изобретения оцениваемым движением являются векторы движения в упомянутый по меньшей мере один ключевой кадр или векторы движения из упомянутого по меньшей мере одного ключевого кадра.
[0012] Согласно развитию первого аспекта настоящего изобретения, когда оцениваемыми векторами движения являются векторы движения в упомянутый по меньшей мере один ключевой кадр, векторами движения, которые принадлежат к области повторяющихся структур, являются векторы движения, которые начинаются в области повторяющихся структур, или когда оцениваемыми векторами движения являются векторы движения из упомянутого по меньшей мере одного ключевого кадра, векторами движения, которые принадлежат к области повторяющихся структур, являются векторы движения, которые заканчиваются в области повторяющихся структур.
[0013] Согласно развитию первого аспекта настоящего изобретения регуляризацию векторов движения выполняют путем применения к векторам движения в области повторяющихся структур одного из локального скользящего среднего, глобального среднего, моды.
[0014] Согласно развитию первого аспекта настоящего изобретения обнаружение областей повторяющихся структур на кадре содержит: получение первой карты признаков повторяющихся структур посредством поблочной обработки кадра в первом направлении и второй карты признаков повторяющихся структур посредством поблочной обработки кадра во втором направлении, объединение первой карты признаков повторяющихся структур и второй карты признаков повторяющихся структур в объединенную карту признаков повторяющихся структур, определение областей повторяющихся структур по объединенной карте признаков повторяющихся структур, причем в область повторяющихся структур включаются два или более смежных блока кадра, для которых на объединенной карте признаков повторяющихся структур установлены признаки повторяющихся структур.
[0015] Согласно развитию первого аспекта настоящего изобретения первое направление ортогонально второму направлению.
[0016] Согласно развитию первого аспекта настоящего изобретения первым и вторым направлениями являются, соответственно, горизонтальное и вертикальное направления, или первым и вторым направлениями являются, соответственно, вертикальное и горизонтальное направления, или первым и вторым направлениями являются, соответственно, направление под углом к горизонтальному или вертикальному направлению и направление, которое ортогонально упомянутому направлению под углом к горизонтальному или вертикальному направлению.
[0017] Согласно развитию первого аспекта настоящего изобретения обнаружение областей повторяющихся структур на кадре содержит: получение карты признаков повторяющихся структур в горизонтальном направлении посредством поблочной обработки кадра в горизонтальном направлении, карты признаков повторяющихся структур в вертикальном направлении посредством поблочной обработки кадра в вертикальном направлении, карты признаков повторяющихся структур в первом диагональном направлении посредством поблочной обработки кадра в первом диагональном направлении и карты признаков повторяющихся структур во втором диагональном направлении посредством поблочной обработки кадра во втором диагональном направлении, объединение полученных карт признаков повторяющихся структур в объединенную карту признаков повторяющихся структур, определение областей повторяющихся структур по объединенной карте признаков повторяющихся структур для получения областей повторяющихся структур, причем в область повторяющихся структур в карте областей повторяющихся структур включаются два или более смежных блока кадра, для которых на объединенной карте признаков повторяющихся структур установлены признаки повторяющихся структур.
[0018] Согласно развитию первого аспекта настоящего изобретения первым диагональным направлением является направление из левого нижнего угла кадра в правый верхний угол кадра, а вторым диагональным направлением является направление из левого верхнего угла кадра в правый нижний угол кадра, или первым диагональным направлением является направление из правого нижнего угла кадра в левый верхний угол кадра, а вторым диагональным направлением является направление из правого верхнего угла кадра в левый нижний угол кадра, или первым диагональным направлением является направление из левого верхнего угла кадра в правый нижний угол кадра, а вторым диагональным направлением является направление из левого нижнего угла кадра в правый верхний угол кадра, или первым диагональным направлением является направление из правого верхнего угла кадра в левый нижний угол кадра, а вторым диагональным направлением является направление из правого нижнего угла кадра в левый верхний угол кадра.
[0019] Согласно развитию первого аспекта настоящего изобретения получение карты признаков повторяющихся структур посредством поблочной обработки кадра в определенном направлении из первого направления и второго направления содержит выполнение следующих операций для каждого блока кадра: получение ряда агрегированных пикселей из полоски кадра, проходящей в упомянутом определенном направлении и включающей в себя текущий обрабатываемый блок и по меньшей мере часть окружения текущего обрабатываемого блока с одной или двух сторон от упомянутого текущего обрабатываемого блока вдоль упомянутого направления, вычисление порогового значения SAD как деленного на два большего значения SAD из значения SAD, вычисляемого между центральным сегментом ряда агрегированных пикселей и сегментом, попиксельно сдвинутым в первую сторону на один пиксель, и значения SAD, вычисляемого между центральным сегментом ряда агрегированных пикселей и сегментом, попиксельно сдвинутым во вторую сторону на один пиксель, вычисление набора значений сумм абсолютных разностей (SAD) между контрольным сегментом из упомянутого ряда агрегированных пикселей и каждым из сегментов, получаемых последовательными попиксельными сдвигами относительно упомянутого контрольного сегмента в пределах упомянутого ряда агрегированных пикселей, причем размер каждого из сдвинутых сегментов аналогичен размеру контрольного сегмента, вычисление стандартного отклонения яркости пикселей в центральном сегменте, подсчет количества значений SAD в упомянутом наборе значений SAD, которые меньше или равны упомянутому пороговому значению SAD, установку признака повторяющихся структур в карте признаков повторяющихся структур в упомянутом определенном направлении для текущего обрабатываемого блока, когда (a) подсчитанное количество значений SAD больше предопределенного порогового значения количества значений SAD и (b) стандартное отклонение яркости пикселей в центральном сегменте больше предопределенного порогового значения стандартного отклонения.
[0020] Согласно развитию первого аспекта настоящего изобретения, когда на этапе установки по меньшей мере одно из условий (a), (b) не выполняется, этап получения карты признаков повторяющихся структур переходит к обработке следующего блока кадра без установки для текущего блока признака повторяющихся структур в соответствующей карте признаков повторяющихся структур.
[0021] Согласно развитию первого аспекта настоящего изобретения шаг попиксельного сдвига, используемый для получения сдвинутых сегментов на этапе вычисления набора значений SAD, составляет один пиксель.
[0022] Согласно развитию первого аспекта настоящего изобретения в качестве упомянутого контрольного сегмента выбирают центральный сегмент упомянутого ряда агрегированных пикселей или сегмент, сдвинутый относительно центрального сегмента на один пиксель в пределах упомянутого ряда агрегированных пикселей в первую или вторую сторону, причем если значение SAD, вычисляемое между центральным сегментом и сегментом, сдвинутым в первую сторону в пределах упомянутого ряда агрегированных пикселей, больше значения SAD, вычисляемого между центральным сегментом и сегментом, сдвинутым во вторую сторону в пределах упомянутого ряда агрегированных пикселей, в качестве упомянутого контрольного сегмента выбирают сдвинутый в первую сторону сегмент, если значение SAD, вычисляемое между центральным сегментом и сегментом, сдвинутым в первую сторону в пределах упомянутого ряда агрегированных пикселей, меньше значения SAD, вычисляемого между центральным сегментом и сегментом, сдвинутым во вторую сторону в пределах упомянутого ряда агрегированных пикселей, в качестве упомянутого контрольного сегмента выбирают сдвинутый во вторую сторону сегмент, в ином случае в качестве упомянутого контрольного сегмента выбирают центральный сегмент, причем продольный размер центрального и контрольного сегмента равен ширине или высоте обрабатываемого блока.
[0023] Согласно развитию первого аспекта настоящего изобретения получение ряда агрегированных пикселей из полоски кадра, проходящей в определенном направлении и включающей в себя текущий обрабатываемый блок и по меньшей мере часть окружения текущего обрабатываемого блока, находящуюся в пределах упомянутой полоски кадра, содержит: формирование по меньшей мере двух поднаборов продольных рядов пикселей из каждой из по меньшей мере двух продольных областей полоски кадра, причем в поднабор продольных рядов пикселей включаются продольные ряды пикселей, лежащие в соответствующей продольной области полоски кадра не смежно друг с другом, усреднение значений яркости пикселей каждого сформированного поднабора продольных рядов пикселей в поперечном направлении поднабора продольных рядов пикселей для получения усредненного ряда пикселей для каждого из сформированных поднаборов продольных рядов пикселей, и вычисление стандартного отклонения яркости пикселей в центральном сегменте каждого усредненного ряда пикселей, и определение в качестве ряда агрегированных пикселей того усредненного ряда пикселей, центральный сегмент которого обладает наибольшим стандартным отклонением яркости пикселей.
[0024] Согласно развитию первого аспекта настоящего изобретения при формировании поднаборов продольных рядов пикселей каждые две соседние продольные области полоски кадра из упомянутых по меньшей мере двух продольных областей полоски кадра имеют по меньшей мере один общий продольный ряд пикселей.
[0025] Согласно развитию первого аспекта настоящего изобретения число формируемых поднаборов продольных рядов пикселей и, соответственно, продольных областей полоски кадра выбирают в зависимости от разрешения текущего обрабатываемого кадра и/или от размера текущего обрабатываемого блока кадра.
[0026] Согласно развитию первого аспекта настоящего изобретения на этапе вычисления дополнительно вычисляют стандартное отклонение яркости пикселей в центральном сегменте одного или нескольких продольных рядов пикселей полоски кадра, не попавших при формировании в какой-либо поднабор продольных рядов пикселей, и на этапе определения в качестве ряда агрегированных пикселей определяют тот продольный ряд пикселей, центральный сегмент которого обладает наибольшим приведенным стандартным отклонением яркости пикселей, из числа усредненных рядов пикселей и, дополнительно, упомянутого одного или нескольких продольных рядов пикселей полоски кадра, не попавших при формировании в какой-либо поднабор продольных рядов пикселей.
[0027] Согласно развитию первого аспекта настоящего изобретения для обучения глубокой нейронной сети оценки движения обучающие данные подготавливают следующим образом: получают множество видео, которые подлежат использованию в качестве обучающих видео, из каждого видео из упомянутого множества видео формируют по меньшей мере одну группу близких друг к другу по времени или непосредственно соседних по времени кадров, каждая группа кадров из упомянутой по меньшей мере одной группы кадров содержит по меньшей мере три кадра: по меньшей мере два из которых используют в качестве ключевых кадров видео, для которых оценивается движение, используемое для получения интерполированного кадра, и по меньшей мере один кадр, расположенный по времени между упомянутыми двумя ключевыми кадрами или на месте любого ключевого кадра из упомянутых двух ключевых кадров, используют в качестве по меньшей мере одного кадра эталонной интерполяции, относительно которого ошибка получаемого при обучении интерполированного кадра подлежит вычислению.
[0028] Согласно развитию первого аспекта настоящего изобретения глубокую нейронную сеть оценки движения обучают многократным выполнением следующих операций: случайным образом выбирают из упомянутых обучающих данных сформированную группу кадров, на по меньшей мере одном ключевом кадре и на кадре эталонной интерполяции из упомянутой группы кадров независимо от остальных кадров обнаруживают области повторяющихся структур, оценивают движение между по меньшей мере одним ключевым кадром из упомянутой группы кадров и интерполируемым кадром, подавая упомянутые по меньшей мере два ключевых кадра и области повторяющихся структур, которые обнаружены на упомянутом по меньшей мере одном ключевом кадре, в обучаемую нейронную сеть оценки движения, получают интерполированный кадр, выполняя компенсацию движения с использованием упомянутого по меньшей мере одного ключевого кадра и полученных оценкой векторов движения, вычисляют значение функции ошибки как сумму (i) ошибки, связанной со степенью подобия между кадром эталонной интерполяции и интерполированным кадром, и (ii) ошибки, связанной со степенью самоподобия тех векторов движения из векторов движения, полученных оценкой движения, которые принадлежат к области повторяющихся структур, обнаруженной на кадре эталонной интерполяции, и осуществляют обратное распространение ошибки путем вычисления градиентов и обновления параметров обучаемой глубокой нейронной сети оценки движения.
[0029] Согласно развитию первого аспекта настоящего изобретения к тем векторам движения из векторов движения, полученных упомянутой оценкой движения, которые принадлежат к области повторяющихся структур, обнаруженной на кадре эталонной интерполяции, дополнительно применяют регуляризацию, при этом вычисление (ii) ошибки, связанной со степенью самоподобия, выполняют до применения регуляризации или после применения регуляризации.
[0030] Согласно развитию первого аспекта настоящего изобретения упомянутую регуляризацию выполняют перед получением интерполированного кадра, и используют полученные оценкой векторы движения, содержащие векторы движения, в отношении которых применена регуляризация, в качестве полученных оценкой векторов движения при выполнении компенсации движения для получения интерполированного кадра.
[0031] Согласно развитию первого аспекта настоящего изобретения (i) ошибка, связанная со степенью подобия между кадром эталонной интерполяции и интерполированным кадром, вычисляется как средняя абсолютная ошибка (MAE) между значениями пикселей кадра эталонной интерполяции и значениями пикселей интерполированного кадра.
[0032] Согласно развитию первого аспекта настоящего изобретения (ii) ошибка, связанная со степенью самоподобия векторов движения, которые принадлежат к области повторяющихся структур, обнаруженной на кадре эталонной интерполяции, вычисляется отдельно для каждой области повторяющихся структур, обнаруженной на кадре эталонной интерполяции, как значение полной вариации или дисперсии, или стандартного отклонения значений упомянутых векторов движения, которые принадлежат к этой области.
[0033] Согласно развитию первого аспекта настоящего изобретения операции обучения глубокой нейронной сети оценки движения выполняют предопределенное число эпох обучения или до достижения признака сходимости функции ошибки.
[0034] Согласно развитию первого аспекта настоящего изобретения глубокую нейронную сеть оценки движения обучают многократным выполнением следующих операций: случайным образом выбирают из упомянутых обучающих данных сформированную группу кадров, на всех кадрах упомянутой группы кадров обнаруживают области повторяющихся структур, оценивают (a) векторы движения в первый ключевой кадр, ближайший к интерполируемому кадру, и векторы движения во второй, отличающийся от первого, ключевой кадр, ближайший к интерполируемому кадру, из интерполируемого кадра, и (b) весовые коэффициенты, используемые для смешивания компенсированных кадров, полученных с помощью оцененных векторов движения при компенсации движения, подавая ключевые кадры из упомянутой группы кадров и обнаруженные области повторяющихся структур на ключевых кадрах в обучаемую нейронную сеть оценки движения, получают интерполированный кадр, выполняя компенсацию движения с использованием упомянутых ближайших ключевых кадров и полученных оценкой (a) векторов движения и (b) весовых коэффициентов, вычисляют значение функции ошибки как сумму (i) ошибки, связанной со степенью подобия между кадром эталонной интерполяции и интерполированным кадром, и (ii) ошибки, связанной со степенью самоподобия тех векторов движения из векторов движения, полученных оценкой движения, которые принадлежат к области повторяющихся структур, обнаруженной на кадре эталонной интерполяции, и осуществляют обратное распространение ошибки путем вычисления градиентов и обновления параметров обучаемой глубокой нейронной сети оценки движения.
[0035] Согласно развитию первого аспекта настоящего изобретения способ дополнительно содержит: выполнение регуляризации тех векторов движения из полученных оценкой векторов движения в первый ближайший ключевой кадр из кадра эталонной интерполяции, которые начинаются в областях повторяющихся структур, обнаруженных на кадре эталонной интерполяции, выполнение регуляризации тех векторов движения из полученных оценкой векторов движения во второй ближайший ключевой кадр из кадра эталонной интерполяции, которые заканчиваются в областях повторяющихся структур, обнаруженных на кадре эталонной интерполяции, при этом вычисление (ii) ошибки, связанной со степенью самоподобия, осуществляют до выполнения упомянутых регуляризаций или после выполнения упомянутых регуляризаций.
[0036] Во втором аспекте настоящего изобретения предусмотрено устройство интерполяции кадров видео, содержащее процессор и запоминающее устройство, причем запоминающее устройство содержит исполняемые процессором инструкции, которые при исполнении побуждают процессор выполнять способ по первому аспекту настоящего изобретения или по любому развитию этого первого аспекта.
[0037] В третье аспекте настоящего изобретения предусмотрен считываемый компьютером носитель, хранящий исполняемые компьютером инструкции, которые при исполнении побуждают компьютер к выполнению способа по первому аспекту настоящего изобретения или по любому развитию этого первого аспекта.
Краткое описание чертежей
[Фиг. 1] Фиг. 1 представляет собой наглядное сравнение, для определенных двух сцен, интерполированных кадров, полученных согласно уровню техники без учета областей повторяющихся структур, кадров эталонной интерполяции (истинных сцен) и интерполированных кадров, полученных согласно настоящему изобретению с учетом областей повторяющихся структур при оценке движения.
[Фиг. 2] Фиг. 2 является схематичным представлением электронного устройства 200, которое сконфигурировано с возможностью интерполяции кадров видео согласно настоящему изобретению.
[Фиг. 3] Фиг. 3 является блок-схемой последовательности операций способа интерполяции кадров видео согласно варианту осуществления настоящего изобретения.
[Фиг. 4] Фиг. 4 является блок-схемой последовательности операций обнаружения S105 областей повторяющихся структур на ключевом кадре согласно неограничивающей реализации такого обнаружения в настоящем изобретении.
[Фиг. 5] Фиг. 5 является иллюстрацией обнаружения S105 областей повторяющихся структур на ключевом кадре, на котором изображены небоскребы.
[Фиг. 6] Фиг. 6 является иллюстрацией обнаруженных на кадре областей повторяющихся структур.
[Фиг. 7] Фиг. 7 является блок-схемой последовательности операций получения S105.1 карты признаков повторяющихся структур посредством поблочной обработки кадра в определенном направлении согласно неограничивающей реализации такого получения в настоящем изобретении.
[Фиг. 8] Фиг. 8 является блок-схемой последовательности операций получения S105.1.1 ряда агрегированных пикселей согласно неограничивающей реализации такого получения в настоящем изобретении.
[Фиг. 9] Фиг. 9 является иллюстрацией вычисления S105.1.3 значений сумм абсолютных разностей (SAD) между контрольным сегментом (в показанном на данной фигуре неограничивающем примере контрольный сегмент совпадает с центральным сегментом) и попиксельно сдвинутыми сегментами; данное вычисление S105.1.3 осуществляется в процессе получения S105.1 карты признаков повторяющихся структур, описанном со ссылкой на фиг. 7.
[Фиг. 10] Фиг. 10 является иллюстрацией получения S105.1.1 ряда агрегированных пикселей, осуществляемого в процессе получения S105.1 карты признаков повторяющихся структур, описанном со ссылкой на фиг. 7.
[Фиг. 11] Фиг. 11 является блок-схемой последовательности операций обучения нейронной сети оценки движения согласно варианту осуществления настоящего изобретения.
[Фиг. 12a] Фиг. 12a иллюстрирует схематичное представление архитектуры нейронной сети оценки движения.
[Фиг. 12b] Фиг. 12b иллюстрирует схематичное представление отдельных блоков, применяемых в архитектуре нейронной сети оценки движения.
[Фиг. 13] Фиг. 13 иллюстрирует график сравнения по метрике пикового отношения сигнала к шуму (PSNR) интерполированных кадров одной сцены, полученных настоящим изобретением, и интерполированных кадров той же самой сцены, полученных согласно уровню техники, т.е. без учета повторяющихся в этой сцене структур.
[Фиг. 14] Фиг. 14 иллюстрирует диаграмму сравнения по числу параметров нейронной сети оценки движения, используемой в настоящем изобретении, с нейронными сетями, используемыми в уровне техники.
Подробное описание
[0038] Ни фиг. 1 показаны кадры, интерполированные настоящим изобретением (учитывающим повторяющиеся структуры при оценке движения), кадры, интерполированные согласно уровню техники (без учета повторяющихся структур), и представляющие истинные сцены эталонные кадры для двух сцен. В первой сцене мужчина идет на фоне забора, имеющего множество одинаковых прутков (т.е. повторяющихся структур), во второй сцене поезд прибывает на платформу, где также имеется множество структур, которые представляют собой повторяющиеся структуры. Как можно судить по показанным в центре фиг. 1 увеличенным фрагментам кадров, фрагменты кадров (нижний ряд в центре фиг. 1), полученных интерполяцией кадра согласно настоящему изобретению, достаточно точно передают структуру истинной сцены (центральный ряд в центре фиг. 1) и не содержат артефактов и искажений в соответствующих фрагментах кадров (верхний ряд в центре фиг. 1), полученных интерполяцией кадра согласно уровню техники.
[0039] Другими словами, разность метрик PSNR, вычисляемых для сравниваемых кадров, т.е. интерполированных кадров двух сцен, получаемых настоящим изобретением, и соответствующих интерполированных кадров тех же самых двух сцен, получаемых согласно уровню техники, будет существенно увеличена (что иллюстрируется двунаправленной стрелкой на графике разности метрик PSNR по фиг. 13) за счет того, что в отличие от уровня техники настоящее изобретение не допускает появления артефактов, показанных в верхнем ряду в центре фиг. 1, в областях повторяющихся структур кадров. Этот и другие благоприятные технические эффекты достигаются по меньшей мере за счет обнаружения на ключевом кадре области(ей) повторяющихся структур и оценки движения с учетом такой области(ей) повторяющихся структур нейронной сетью оценки движения, плюсом которой, обеспечивающим возможность применения настоящего изобретения на электронном устройстве, обладающем ограниченными ресурсами, в режиме реального времени или в режиме близкого к реальному времени, является ее относительная легковесность. Варианты осуществления и неограничивающие примеры реализации настоящего изобретения, обеспечивающего технические преимущества в сравнении с уровнем техники, будут подробно описаны ниже.
[0040] На Фиг. 2 схематично показано электронное устройство 200, которое сконфигурировано с возможностью интерполяции кадров видео согласно настоящему изобретению. Электронное устройство 200 содержит процессор 200.1, а также оперативную и постоянную память 200.2. Неограничивающие примеры электронного устройства 200 включают в себя смартфон, планшет, ноутбук, AR/VR-гарнитуру, умные часы, телевизор, телевизионную приставку и т.д. Процессор 200.1 может включать в себя блок преобразования частоты кадров (FRC) и видеокодер, которые могут иметь программную, аппаратную или программно-аппаратную реализацию. Блок преобразования частоты кадров может конфигурироваться считываемыми и исполняемыми инструкциями, хранящимися в памяти 200.2, на выполнение способа интерполяции кадров видео согласно настоящему изобретению. Видеокодер может быть реализован как программный, аппаратный или программно-аппаратный блок кодирования/декодирования видео, отвечающий за кодирование/декодирование видео согласно любому известному из уровня техники стандарту кодирования/декодирования, например, но без ограничения упомянутым, H.264/MPEG-4 AVC, H.265 (HEVC), VVC.
[0041] Процессором 200.1 может быть, но без ограничения упомянутым, центральный процессор (CPU), графический процессор (GPU), нейронный процессор (NPU), цифровой сигнальный процессор (DSP) или их комбинация. Процессор 200.1 может быть реализован, но без ограничения упомянутым, как система на кристалле (SoC), интегральная схема специального назначения (ASIC), программируемая пользователем вентильная матрица (FPGA). Оперативная память, входящая в состав памяти 200.2, может представлять собой оперативную память (RAM) любого типа, например, но без ограничения упомянутым, обычную RAM, динамическую RAM (DRAM), статическую RAM (SRAM), синхронную DRAM (SDRAM), Rambus DRAM (RDRAM), SDRAM с удвоенной скоростью передачи данных (DDR SDRAM) или их комбинацию. Постоянная память, входящая в состав памяти 200.2, может представлять собой постоянную память (ROM) любого типа, например, но без ограничения упомянутым, обычную ROM, программируемую ROM (PROM), стираемую и программируемую ROM (EPROM), электрически стираемую и программируемую ROM (EEPROM), флеш память NAND (SSD) или их комбинацию.
[0042] Как показано на фиг. 2 FRC-блок содержит реализуемый классическими алгоритмами (i) блок быстрого обнаружения областей повторяющихся структур, (ii) глубокую нейронную сеть оценки движения, обученную с применением функции ошибки, учитывающей, помимо прочего, самоподобие векторов движения в области(ях) повторяющихся структур, и (iii) блок компенсации движения, который может реализовываться любым известным из уровня техники классическим алгоритмом, либо любой известной из уровня техники нейронной сетью компенсации движения. Входное видео, кадры которого подлежат интерполяции, может захватываться камерой, оснащенной процессором обработки изображений (ISP), или получаться из иных источников (например, из Интернета по каналу связи, из памяти или из любого приложения, установленного на электронном устройстве 200).
[0043] Параметры обученной (ii) глубокой нейронной сети оценки движения в предпочтительном варианте реализации и соответствующие исполняемые компьютером инструкции могут, как показано на фиг. 2, храниться на самом электронном устройстве 200 (например, в памяти 200.2). Но это не следует интерпретировать в качестве ограничения, поскольку также возможен вариант реализации, в котором параметры обученной (ii) глубокой нейронной сети оценки движения и/или любой другой требуемой для работы нейронной сети (например, нейронной сети компенсации движения) хранятся на компьютерном сервере (не показан), к которому электронное устройство 200 может осуществлять доступ по любому доступному каналу связи. В этом примере электронное устройство 200 может передавать на компьютерный сервер запрос на выполнение оценки движения с любыми требуемыми в данном случае данными (например, с ключевыми кадрами или их указателями и/или указателем одной или более конкретных точек во времени, в которую(ые) / из которой(ых) должно быть оценено движение, которое впоследствии будет использовано для получения соответствующего(их) интерполированного кадра(ов)), и, в ответ на этот запрос, принимать от компьютерного сервера полученные оценкой векторы движения.
[0044] FRC-блок, показанный на фиг. 2, принимает исходные кадры видео и выдает исходные и интерполированные кадры видео, или только интерполированные кадры видео, в зависимости от реализации. Дополнительная подача обнаруживаемых на по меньшей мере одном ключевом кадре областей повторяющихся структур на вход глубокой нейронной сети оценки движения, содержащейся в упомянутом FRC-блоке и обученной с применением функции ошибки, учитывающей, среди прочего, самоподобие векторов движения в областях повторяющихся структур, приводит к тому, что оцениваемые данной нейронной сетью поля векторов движения в областях повторяющихся структур имеют регуляризированные векторы движения, что в конченом итоге позволяет корректно скомпенсировать движение в этих областях повторяющихся структур для получения интерполированного кадра без артефактов и искажений, описанных выше со ссылкой на фиг. 1.
[0045] Важно отметить, что представление электронного устройства 200 на фиг. 2 является схематичным и упрощенным для целей описания, сфокусированного главным образом на особенностях настоящего изобретения. В фактической реализации электронное устройство 200 может содержать иные компоненты, которые на фиг. 2 не показаны, например, средства ввода/вывода (например, сенсорный экран, динамик, микрофон), один или более модулей связи (например, Bluetooth, Wi-Fi, LTE, 5G, 6G и т. д.), приемопередатчик, антенну, батарею, блок питания, межсоединения, операционную систему (например, Android, iOS, HarmonyOS) и т.д.
[0046] На фиг. 3 проиллюстрирована блок-схема последовательности операций способа интерполяции кадров видео согласно варианту осуществления настоящего изобретения. Описанная последовательность операций применятся на стадии использования, т.е. тогда, когда нейронная сеть оценки движения уже обучена. Термин “интерполяция кадра” в данном документе следует понимать широко как способ получения кадра видео включающий в себя оценку движения, компенсацию движения, а также, возможно, дополнительные алгоритмы такие как обработка окклюзий, резервный режим интерполяции кадра не основанный на компенсации движения и т.д. Интерполяция кадров видео предлагаемым в настоящей заявке способом может выполняться с повышением частоты кадров в видеопоследовательности, с понижением частоты кадров в видеопоследовательности или с иными целями обработки кадров видеопоследовательности (например, для повышения четкости, или, наоборот, для размытия некоторых кадров видеопоследовательности или для шумоподавления (Temporal Noise Reduction)).
[0047] Начало способа инициируется получением на этапе S100 (например, на вход блока преобразования частоты кадров, проиллюстрированного на фиг. 2) по меньшей мере двух ключевых кадров видео, для которых должна быть выполнена оценка движения, с помощью которой и по меньшей мере одного ключевого кадра будет получен интерполированный кадр. Получаемыми ключевыми кадрами могут быть любые кадры оригинальной видеопоследовательности, которая подвергается интерполяции кадра. В некоторых неограничивающих реализациях упомянутые по меньшей мере два ключевых кадра видео могут поступать на вход блока преобразования частоты кадров вместе с соответствующей исполняемой командой, побуждающей соответствующие компоненты (например, процессор 200.1) электронного устройства 200 выполнять интерполяцию данных кадров видео. Следует понимать, что в некоторых реализациях на вход блока преобразования частоты кадров могут подаваться некоторые подлежащие интерполяции в текущий момент кадры или может подаваться вся видеопоследовательность, подлежащая обработке за раз (как единое целое) или покадрово.
[0048] Если во время интерполяции кадров возникают какие-то проблемы (например, но без ограничения, связанные с резкой сменой сцены в кадре), то может быть использован специальный режим обработки (fallback-режим), или иной, более простой режим генерации интерполированного кадра, не основанный на оценке движения. Неограничивающий пример реализации fallback-режима описан в патенте RU 2786784 C1, озаглавленном как “СПОСОБ ПРЕОБРАЗОВАНИЯ ЧАСТОТЫ КАДРОВ, ПОДДЕРЖИВАЮЩИЙ ЗАМЕНУ ИНТЕРПОЛЯЦИИ КАДРА С КОМПЕНСАЦИЕЙ ДВИЖЕНИЯ ЛИНЕЙНОЙ КОМБИНАЦИЕЙ КАДРОВ, И РЕАЛИЗУЮЩЕЕ ЕГО УСТРОЙСТВО”.
[0049] Затем способ переходит к выполнению этапа S105, на котором на по меньшей мере одном ключевом кадре из упомянутых по меньшей мере двух ключевых кадров обнаруживают области повторяющихся структур. Области повторяющихся структур обнаруживаются относительно быстрым и простым с точки зрения потребляемых ресурсов способом, который будет подробно описан ниже со ссылкой на фиг. 4-10.
[0050] После этого способ переходит к выполнению этапа S110, на котором оценивают движение между упомянутым по меньшей мере одним ключевым кадром из упомянутых по меньшей мере двух ключевых кадров и точкой во времени, для которой будет получаться интерполируемый кадр, подавая упомянутые по меньшей мере два ключевых кадра и области повторяющихся структур, которые обнаружены на упомянутом по меньшей мере одном ключевом кадре, в обученную нейронную сеть оценки движения, которая является относительно легковесной, поскольку ей реализуется лишь оценка движения, учитывающая уже обнаруженные повторяющиеся структуры. То, как данную нейронную сеть оценки движения предложено обучать, то, как получают обучающие данные для обучения, и то, какую функцию ошибки (потерь) предложено использовать, будет подробно описано ниже со ссылкой на фиг. 11. Архитектура предлагаемой нейронной сети будет подробно описана ниже со ссылкой на фиг. 12a, а состав отдельных блоков/слоев нейронной сети будет подробно пояснен ниже со ссылкой на фиг. 12b.
[0051] Вышеупомянутой “точкой во времени” может быть любая произвольная точка во времени между упомянутыми по меньшей мере двумя ключевыми кадрами видео, точка во времени, точно соответствующая точке во времени любого из упомянутых по меньшей мере двух ключевых кадров видео, произвольная точка во времени после более позднего во времени кадра из упомянутых по меньшей мере двух ключевых кадров видео или произвольная точка во времени до более раннего во времени кадра из упомянутых по меньшей мере двух ключевых кадров видео. При этом должно быть понятно, что для оценки движения между ключевым кадром и гипотезой интерполированного кадра для определенной точки во времени должна обучаться своя нейронная сеть оценки движения (либо одна нейронная сеть должна обучаться для выдачи всех необходимых оценок движения разом). В неограничивающем примере, если необходимо, чтобы оценка движения нейронной сетью оценки движения выполнялась для точки во времени, находящейся ровно в центре на временной оси между по меньшей мере двумя ключевыми кадрами, значение функции ошибки, применяемой для обучения соответствующего варианта нейронной сети оценки движения, будет вычисляться относительно кадра эталонной интерполяции (эталонного кадра), который находится на временной оси ровно по центру между упомянутыми по меньшей мере двумя ключевыми кадрами (т.е. именно в такой точке во времени). Например, в случае наличия обучающей последовательности кадров 1, 2, 3, кадры 1 и 3 могут использоваться как ключевые кадры, а кадр 2 может использоваться как кадр эталонной интерполяции при обучении данного варианта нейронной сети оценки движения. Аналогичным образом могут быть обучены другие варианты нейронной сети оценки движения, которые будут выдавать оценку движения между ключевыми кадрами и другими произвольными точками во времени.
[0052] В некоторых вариантах реализации настоящего изобретения можно обеспечивать на электронном устройстве 200 доступ к нескольким разным вариантам нейронной сети оценки движения для оценки движения между ключевыми кадрами и другими произвольными точками во времени, отличными от центральной точки во времени между кадрами, для последующего получения интерполированных кадров для этих других произвольных точек во времени. В этом случае, в неограничивающем примере, вышеупомянутая исполняемая команда, которая может опционально получаться на этапе S100, может дополнительно указывать тот конкретный вариант нейронной сети оценки движения, которым, для получаемых на этапе S100 в текущий момент упомянутых по меньшей мере двух ключевых кадров видео, на этапе S110 должна быть выполнена оценка движения.
[0053] Вернемся к описанию фиг. 3. После выполнения этапа S110 способ переходит к выполнению последнего этапа S115, на котором фактически получают интерполированный кадр, выполняя компенсацию движения с использованием упомянутого по меньшей мере одного ключевого кадра и полученных оценкой на этапе S110 векторов движения. Как упомянуто выше компенсация движения может реализовываться любым известным из уровня техники классическим алгоритмом (например, но без ограничения упомянутой, см. статью “Displacement Measurement and Its Application in Interframe Image Coding” за авторством Jaswant R. Jain, и Anil K. Jain, дата публикации: декабрь 1981 г.), либо любой известной из уровня техники нейронной сетью компенсации движения (например, но без ограничения упомянутыми, см. статью “Real-Time Intermediate Flow Estimation for Video Frame Interpolation” за авторством Zhewei Huang и др., дата изначальной публикации: ноябрь 2020 г., или другую статью “View Synthesis by Appearance Flow” за авторством Tinghui Zhou и др., дата изначальной публикации: май 2016 г.).
[0054] Далее перейдем к подробному описанию некоторых неограничивающих вариантов реализации обнаружения S105 областей повторяющихся структур на ключевом кадре со ссылкой на фиг. 4-10. Как показано на блок-схеме последовательности операций по фиг. 4, обнаружение S105 областей повторяющихся структур инициируется выполнением описанного выше этапа S100 и начинается с этапа S105.1, на котором получают первую карту признаков повторяющихся структур посредством поблочной обработки кадра в первом направлении и второй карты признаков повторяющихся структур посредством поблочной обработки кадра во втором направлении. Неограничивающая реализация этапа S105.1 будет подробно описана ниже со ссылкой на фиг. 7. В предпочтительном варианте осуществления упомянутое первое направление ортогонально упомянутому второму направлению. В одном примере первым и вторым направлениями являются, соответственно, горизонтальное и вертикальное направления или наоборот. В другом примере первым и вторым направлениями являются, соответственно, направление под углом к горизонтальному или вертикальному направлению и направление, которое ортогонально упомянутому угловому направлению. В альтернативном варианте реализации (не показан на фиг. 4) дополнительную карту(ы) признаков повторяющихся структур получают обработкой кадра в одном или обоих диагональных направлениях.
[0055] Слева сверху на фиг. 5 проиллюстрирована карта признаков повторяющихся структур, сформированная на этапе S105.1 посредством поблочной обработки кадра в вертикальном направлении, причем эта карта признаков повторяющихся структур показана как наложенная на соответствующий кадр. Слева снизу на фиг. 5 проиллюстрирована другая карта признаков повторяющихся структур, сформированная для того же самого кадра, но посредством поблочной обработки этого кадра в другом, ортогональном направлении, в данном случае - в горизонтальном направлении; эта карта признаков повторяющихся структур также показана как наложенная на соответствующий кадр.
[0056] В неограничивающей реализации кадр, для которого на этапе S105.1 получают карты признаков повторяющихся структур, может во время выполнения этапа S105.1 или заранее разбиваться на массив блоков одинаковой формы и размера согласно регулярной сетке блоков. В альтернативной реализации кадр, для которого на этапе S105.1 получают карты признаков повторяющихся структур, может сразу обрабатываться на этапе S105.1 (т.е. без фактической операции разделения кадра на блоки) как массив блоков предопределенной одинаковой формы и предопределенного размера. В предпочтительном варианте осуществления блоки являются квадратными блоками, хотя это не следует интерпретировать в качестве ограничения. В альтернативных вариантах осуществления формой блоков может быть прямоугольная или даже треугольная форма. Размер блоков также не следует ограничивать каким-либо определенным размером: в качестве примера блоки могут иметь размер 8×8 пикселей, 16×16 пикселей, 32×32 пикселей, 8×16 пикселей, 8×32 пикселя, 16×8 пикселей, 32×8 пикселей, 8×8×8 пикселей, 8×8×16 пикселей и т.д. В неограничивающей реализации, в карте признаков повторяющихся структур единицей ‘1’ может указываться блок, для которого обнаружен признак повторяющейся структуры, а нулем ‘0’ может указываться блок, для которого признак повторяющейся структуры не обнаружен, или наоборот.
[0057] Затем процесс обнаружения S105 областей повторяющихся структур переходит к выполнению этапа S105.2, на котором объединяют первую карту признаков повторяющихся структур и вторую карту признаков повторяющихся структур в объединенную карту признаков повторяющихся структур. В неограничивающем примере данный этап S105.2 может реализовываться операцией логическое ИЛИ - если в любой из объединяемых карт признаков повторяющихся структур для определенного блока указано наличие в этом блоке повторяющейся структуры, то в объединенной карте признаков повторяющихся структур указывается (например, единицей ‘1’) наличие в этом блоке повторяющейся структуры; если ни в какой карте из объединяемых карт признаков повторяющихся структур для определенного блока не указано наличие в этом блоке повторяющейся структуры, то в объединенной карте признаков повторяющихся структур наличие в этом блоке повторяющейся структуры не указывается (например, значение для этого блока в объединенной карте признаков повторяющихся структур оставляют равным изначально инициализированному значению, например, равным нулю ‘0’). Справа сверху на фиг. 5 проиллюстрирована объединенная карта признаков повторяющихся структур, сформированная на этапе S105.2, причем эта объединенная карта признаков повторяющихся структур показана как наложенная на соответствующий кадр.
[0058] После выполнения этапа S105.2 процесс обнаружения S105 областей повторяющихся структур переходит к выполнению этапа S105.3, на котором определяют области повторяющихся структур на основе объединенной карты признаков повторяющихся структур. На данном этапе S105.3 в область повторяющихся структур включаются два или более смежных блока кадра, для которых на объединенной карте признаков повторяющихся структур установлены признаки повторяющихся структур. Область (кластер) повторяющихся структур может задаваться по-разному. Области повторяющихся структур для всего кадра могут задаваться картой чисел, в которой все блоки, принадлежащие одной области, помечены уникальным числом. Области повторяющихся структур для всего кадра могут задаваться картой чисел, в которой все блоки, принадлежащие обнаруженным областям, помечены одним числом (например, 1), а все остальные блоки помечены другим числом (например, 0). Область повторяющихся структур может задаваться списком блоков (например, блок с координатой x1, y1, блок с координатой x2, y2, вплоть до блока с координатой xn, ym согласно регулярной сетке блоков) или любым иным образом.
[0059] В неограничивающем примере этап S105.3 может реализовываться выполняемой итеративно следующей процедурой: берут любой блок, проверяют, указан ли для этого блока признак повторяющейся структуры на объединенной карте признаков повторяющихся структур; если НЕТ - берут другой блок; если - ДА, проходят во все стороны от этого блока вверх, вниз, вправо, влево, и аналогичным образом проверяют каждый блок, к которому переходят; если для блоков, к которым переходят, на объединенной карте признаков повторяющихся структур также указаны соответствующие им признаки повторяющихся структур, эти блоки добавляют в область повторяющихся структур к исходному блоку, и аналогичную процедуру проводят для каждого блока, вновь добавленного в данную область повторяющихся структур. Такую процедуру проводят до тех пор, пока не будут отсутствовать блоки, которые можно было бы присоединить к формируемой области повторяющихся структур. Таким образом, этап S105.3 может реализовываться согласно известным алгоритмам обхода графа в ширину (BFS) или в глубину (DFS), или согласно любым эквивалентным им алгоритмам и их модификациям. В некоторых реализациях блоки без признака повторяющейся структуры со всех сторон окруженные блоками с признаком повторяющейся структуры, принадлежащие одной области, могут быть добавлены в эту область.
[0060] На фиг. 6 иллюстрируется пример обнаруженных для кадра областей повторяющихся структур, причем обнаруженные области повторяющихся структур показаны на фиг. 6 как наложенные на соответствующий кадр, на котором они были обнаружены. Минимальный размер области повторяющихся структур равняется двум смежным блокам, для каждого из которых на объединенной карте признаков повторяющихся структур установлен признак повторяющейся структуры.
[0061] Далее перейдем к подробному описанию со ссылкой на фиг. 7-10 неограничивающего варианта реализации этапа S105.1 получения карты признаков повторяющихся структур посредством поблочной обработки кадра в определенном направлении. Как показано на блок-схеме последовательности операций по фиг. 7, получение S105.1 карты признаков повторяющихся структур инициируется выполнением описанного выше этапа S100 и начинается с этапа S105.1.1, на котором получают ряд агрегированных пикселей из полоски кадра, проходящей в упомянутом определенном направлении и включающей в себя текущий обрабатываемый блок и по меньшей мере часть окружения текущего обрабатываемого блока с одной или двух сторон от упомянутого текущего обрабатываемого блока вдоль упомянутого направления. Перед описанием последующих операций по блок-схеме на фиг. 7, имеет смысл на время переключиться на блок-схему по фиг. 8 и дополнительную иллюстрацию по фиг. 10, со ссылками на которые далее будет подробно описана неограничивающая реализация этапа S105.1.1 получения ряда агрегированных пикселей из полоски кадра.
[0062] Как показано на фиг. 8 неограничивающая реализация этапа S105.1.1 получения ряда агрегированных пикселей из полоски кадра инициируется выполнением описанного выше этапа S100 и начинается с этапа S105.1.1.1, на котором формируют по меньшей мере два поднабора продольных рядов пикселей из каждой из по меньшей мере двух продольных областей полоски кадра, причем в поднабор продольных рядов пикселей включаются продольные ряды пикселей, лежащие в соответствующей продольной области полоски кадра не смежно друг с другом. В левой части фиг. 10 показана неограничивающая иллюстрация того, как могут формироваться два поднабора продольных рядов пикселей, а именно верхний поднабор продольных рядов пикселей и нижний поднабор продольных рядов пикселей.
[0063] После этапа S105.1.1.1 способ переходит на этап S105.1.1.2, на котором усредняют значения пикселей (например, значения яркости пикселей) каждого сформированного поднабора продольных рядов пикселей в поперечном направлении поднабора продольных рядов пикселей для получения усредненного ряда пикселей для каждого из сформированных поднаборов продольных рядов пикселей. В неограничивающей реализации на данном этапе S105.1.1.2 для усреднения значений пикселей используется среднее арифметическое. В правой части фиг. 10 показана неограничивающая иллюстрация двух усредненных рядов пикселей, а именно (a) усредненного ряда пикселей, полученного усреднением верхнего поднабора продольных рядов пикселей в поперечном направлении, и (b) усредненного ряда пикселей, полученного усреднением нижнего поднабора продольных рядов пикселей в поперечном направлении. Другими словами, в показанном на фиг. 10 неограничивающем примере каждый i-й пиксель усредненного ряда пикселей имеет значение, полученное усреднением (в этом примере) трех пикселей, расположенных в соответствующем i-ом столбце соответствующего поднабора продольных рядов пикселей.
[0064] После этапа S105.1.1.2 способ переходит на этап S105.1.1.3, на котором вычисляют стандартное отклонение (StD) значений пикселей (например, значений яркости пикселей) в центральном сегменте каждого усредненного ряда пикселей. В проиллюстрированном на фиг. 10 неограничивающем примере усредненный ряд пикселей содержит 16 пикселей, из которых (в этом примере) восемь центральных пикселей 5-12 определяют центральный сегмент ряда. Тем не менее, не следует интерпретировать показанное на фиг. 10 в качестве ограничения настоящего изобретения, поскольку число пикселей, включаемых в центральный сегмент может быть больше восьми, или меньшей восьми (но не меньше двух пикселей). Кроме того, в некоторых вариантах реализации сегмент, по значениям пикселей которого вычисляют на данном этапе S105.1.1.3, может размещаться не в центре усредненного ряда пикселей, а иметь некоторое смещение от центра в ту или иную сторону при условии, что сдвинутый сегмент все еще полностью находится в пределах усредненного ряда пикселей.
[0065] После этапа S105.1.1.3 способ переходит на этап S105.1.1.4, на котором в качестве ряда агрегированных пикселей определяют тот усредненный ряд пикселей, центральный сегмент которого обладает наибольшим стандартным отклонением значений пикселей (например, значений яркости пикселей). В неограничивающем примере, показанном на фиг. 10, в качестве ряда агрегированных пикселей был определен усредненный ряд пикселей, полученный усреднением верхнего поднабора, поскольку в результате сравнения значений StD пикселей в центральных сегментах усредненных рядов пикселей оказалось, что значение StD пикселей в центральном сегменте усредненного ряда пикселей, полученного усреднением верхнего поднабора, больше, чем значение StD пикселей в центральном сегменте усредненного ряда пикселей, полученного усреднением нижнего поднабора.
[0066] В некоторых (опциональных) вариантах реализации этапа S105.1.1.1 каждые две соседние продольные области полоски кадра из упомянутых по меньшей мере двух продольных областей полоски кадра имеют по меньшей мере один общий продольный ряд пикселей. Слева на фиг. 10 показаны 8 продольных рядов пикселей для имеющей горизонтальное направление полоски кадра. В проиллюстрированном на фиг. 10 неограничивающем примере из упомянутых восьми рядов 1-8 пикселей (при нумерации рядов сверху-вниз): ряды 1-5 пикселей определяют первую продольную область пикселей, из которой формируется верхний поднабор продольных рядов пикселей (из 1-го, 3-го, 5-го рядов пикселей из первой области), а ряды 4-8 пикселей определяют вторую продольную область пикселей, из которой формируется нижний поднабор продольных рядов пикселей (из 4-го, 6-го, 8-го рядов пикселей из второй области).
[0067] В проиллюстрированном на фиг. 10 примере ряды 4-5 пикселей являются двумя общими продольными рядами пикселей для упомянутых двух соседних областей. Тем не менее, настоящее изобретение не следует ограничивать проиллюстрированной на фиг. 10 схемой, поскольку обычным специалистам в данной области будет понятно, что размер блока может отличаться от проиллюстрированного размера блока 8×8 пикселей, полоска кадра может быть не только горизонтальной (как показана), но и вертикальной и диагональной (суть обработки, описанной выше со ссылкой на фиг. 8, будет оставаться прежней и для отличных от горизонтального направлений полосок кадра; будут требоваться лишь очевидные специалисту модификации: например для вертикальной полоски кадра усреднение значений пикселей будет выполняться на этапе S105.1.1.2 не по столбцам соответствующего поднабора рядов, а по строкам и т.д.), соответственно числа продольных и поперечных рядов пикселей в полоске кадра могут отличаться от, соответственно 8 и 16, число соседних областей продольных рядов и, соответственно, число поднаборов продольных рядов пикселей может быть больше двух, число продольных рядов, включаемых в поднабор, может быть больше трех, или меньше трех (но по меньшей мере два), области продольных рядов могут не иметь общего продольного ряда пикселей, или иметь только один общий продольный ряд пикселей, или иметь большее число общих продольных рядов пикселей, чем 2.
[0068] Кроме того, следует понимать, что, если текущий блок является крайним в кадре блоком, размещение текущего блока в пределах полоски кадра может отличаться от показанного на фиг. 10 (т.е. быть не в центре полоски кадра). В одном примере, если направлением обработки является горизонтальное направление, а текущим блоком является крайний слева блок, такой блок не может находиться в центре горизонтальной полоски кадра, вместо этого он может находиться в крайнем левом возможном положении в пределах полоски кадра. В этом примере полоска кадров не будет включать в себя какие-либо пиксели слева от текущего блока, поскольку таких пикселей нет, т.к. данный блок находится на левой границе кадра, но будет включать в себя большее число пикселей справа от данного блока (т.к. размерность самой полоски в этом случае не изменяется). В другом примере, если направлением обработки является вертикальное направление, а текущим блоком является крайний сверху блок, такой блок не может находиться в центре горизонтальной полоски кадра, вместо этого он может находиться в крайнем верхнем возможном положении в пределах полоски кадра. В этом примере полоска кадров не будет включать в себя какие-либо пиксели сверху от текущего блока, поскольку таких пикселей нет, т.к. данный блок находится на верхней границе кадра, но будет включать в себя большее число пикселей снизу от данного блока (т.к. размерность самой полоски в этом случае не изменяется). Обработка, подробно описанная выше со ссылкой на фиг. 8 и фиг. 10, будет выполняться для каждого блока кадра.
[0069] В результате выполнения последнего этапа S105.1.1.4 на этапе S105.1.1 из полоски кадра получают ряд агрегированных пикселей и далее способ переходит на этап S105.1.2, который будет описан ниже со ссылкой вновь на фиг. 7. На этапе S105.1.2 вычисляют пороговое значение суммы абсолютных разностей (SAD) как деленное на два большее значение SAD из значения SAD, вычисляемого между центральным сегментом (0) ряда агрегированных пикселей и сегментом, попиксельно сдвинутым в первую сторону на один пиксель (1), и значения SAD, вычисляемого между центральным сегментом (0) ряда агрегированных пикселей и сегментом, попиксельно сдвинутым во вторую сторону на один пиксель (1). Вычисление порогового значения SAD иллюстрируется центральной частью фиг. 9. Таким образом, пороговое значение SAD вычисляется на этапе S105.1.2 согласно следующему математическому выражению:
(мат. выражение 1).
[0070] После вычисления на этапе S105.1.2 порогового значения SAD способ переходит на этап S105.1.3, на котором вычисляют набор значений SAD между контрольным сегментом из упомянутого ряда агрегированных пикселей и каждым из сегментов, получаемых последовательными попиксельными сдвигами относительно упомянутого контрольного сегмента в пределах упомянутого ряда агрегированных пикселей, причем размер каждого из сдвинутых сегментов аналогичен размеру контрольного сегмента.
[0071] Выбор контрольного сегмента может осуществляться согласно следующей неограничивающей реализации. В качестве упомянутого контрольного сегмента выбирают центральный сегмент упомянутого ряда агрегированных пикселей или сегмент, сдвинутый относительно центрального сегмента на один пиксель в пределах упомянутого ряда агрегированных пикселей в первую или вторую сторону. Если значение SAD, вычисляемое между центральным сегментом и сегментом, сдвинутым в первую сторону в пределах упомянутого ряда агрегированных пикселей, больше значения SAD, вычисляемого между центральным сегментом и сегментом, сдвинутым во вторую сторону в пределах упомянутого ряда агрегированных пикселей, в качестве упомянутого контрольного сегмента выбирают сдвинутый в первую сторону сегмент. Если значение SAD, вычисляемое между центральным сегментом и сегментом, сдвинутым в первую сторону в пределах упомянутого ряда агрегированных пикселей, меньше значения SAD, вычисляемого между центральным сегментом и сегментом, сдвинутым во вторую сторону в пределах упомянутого ряда агрегированных пикселей, в качестве упомянутого контрольного сегмента выбирают сдвинутый во вторую сторону сегмент. В ином случае в качестве упомянутого контрольного сегмента выбирают центральный сегмент, причем продольный размер центрального и контрольного сегмента равен ширине (при обработке кадра в горизонтальном направлении) или высоте обрабатываемого блока (при обработке кадра в вертикальном направлении). В случае недоступности сдвинутого на один пиксель сегмента в какую-либо сторону (край кадра), контрольным сегментом назначается существующий сегмент, сдвинутый в противоположную сторону, а пороговое значение SAD вычисляется как половина SAD между центральным и существующим сдвинутым сегментом.
[0072] Схема вычисления на этапе S105.1.3 набора значений SAD в случае, когда контрольным сегментом является центральный сегмент (а не сегмент, сдвинутый на один пиксель в любую сторону), также иллюстрируется фиг. 9. В неограничивающем примере, показанном на фиг. 9, зона поиска признаков повторяющихся структур в блоке, для которого получен ряд агрегированных пикселей, обрабатываемый в настоящий момент на этапе S105.1.3, может быть определена как зона [-4:4]. Понятно, что размер зоны поиска может зависеть от размера блока и размера полоски кадра, поэтому размер зоны поиска может быть больше или меньше, чем размер [-4:4] проиллюстрированной на фиг. 9 зоны поиска. Кроме того, размер зоны поиска с одной стороны от контрольного сегмента может быть меньше на один пиксель, чем размер зоны поиска с другой стороны от упомянутого контрольного сегмента, когда в качестве контрольного сегмента выступает сегмент, сдвинутый в ту или иную сторону на один пиксель. Кроме того, в одном ряду агрегированных пикселей может применяться несколько контрольных сегментов и несколько зон поиска.
[0073] Далее на этапе S105.1.4 вычисляют значение StD пикселей (например, значений яркости пикселей) в центральном сегменте. Тут необходимо отметить, что в фактической реализации данный этап может содержать лишь обращение (без фактического перевычисления) к значению StD пикселей центрального сегмента, ранее вычисленному для того ряда пикселей, который определен на этапе S105.1.1.4 в качестве ряда агрегированных пикселей и который как таковой обрабатывается в данный момент на этапе S105.1.4.
[0074] Затем на этапе S105.1.5 подсчитывают количество значений SAD в упомянутом наборе значений SAD, которые меньше или равны упомянутому пороговому значению SAD () и на этапе S105.1.6 определяют, (a) больше ли подсчитанное количество значений SAD (
), чем предопределенное пороговое значение количества значений SAD (
)? и (b) больше ли стандартное отклонение значений пикселей (например, значений яркости пикселей) в центральном сегменте (
), чем предопределенное пороговое значение стандартного отклонения (StD Threshold)?
[0075] Говоря математическим языком ряд проверок и определений может выполняться согласно следующему:
Признак повторяющейся структуры обнаружен если:
>
(условие (a)) и
> StD Threshold (условие (b))
где
(мат. выражение 2)
Compare(x)=1 если x ≤ ;
Compare(x)=0 в противном случае; и
SAD(0,0)=0.
[0076] определяется согласно упомянутому выше мат. выражению 1. Значения
и StD Threshold предопределяются в зависимости от одного или более из, но без ограничения упомянутым, шумности исходного кадра (чем больше высокочастотный шум, тем выше должны быть значения указанных параметров), размера контрольного сегмента (чем больше размер, тем меньше
и больше StD Threshold). В примере, проиллюстрированном на фиг. 9 и 10, (StD Threshold)2
и
, но это не следует интерпретировать в качестве ограничения. Такие пороговые значения следует устанавливать для кадров с низкой шумностью. Для более шумных кадров пороговые значения могут быть подобраны эмпирически или, если параметры шума могут быть измерены, с учетом StD шума (StD Threshold должен несколько превышать StD шума). Кроме того, следует понимать, что k=-4,4, указанное выше в мат. выражении 2, актуально только для неограничивающего примера размера зоны поиска, проиллюстрированной на фиг. 9. В других случаях диапазон зоны поиска может отличаться от диапазона, определяемого параметром k=-4,4.
[0077] Если на этапе S105.1.6 выполняется как условие (a), так и условие (b) устанавливают признак повторяющейся структуры (например, единицу ‘1’) в карте признаков повторяющихся структур, формируемой при обработке кадра в соответствующем направлении, для текущего обрабатываемого блока. В противном случае в карте признаков повторяющихся структур, формируемой при обработке кадра в соответствующем направлении, для текущего обрабатываемого блока оставляют изначально инициализированное значение (например, ноль ‘0’). После этого проводят проверку, остались ли в кадре еще необработанные блоки? В случае, если необработанные блоки остались (ДА) - переходят к выполнению этапа S105.1.1 и выполняют всю описанную выше со ссылками на фиг. 7, 8 обработку для следующего блока; в случае, если все блоки кадра уже обработаны (НЕТ) - переходят к выполнению этапа S105.2, который был подробно описан выше со ссылкой на фиг. 4.
[0078] Далее перейдем к подробному описанию того, как могут формироваться обучающие данные для обучения нейронной сети оценки движения, которую применяют на этапе S110, описанном выше со ссылкой на фиг. 3. Обучающие данные могут подготавливаться следующим образом: получают множество видео, которые подлежат использованию в качестве обучающих видео. Множество обучающих видео могут быть записаны и собраны специально для целей обучения нейронной сети производителем оборудования (например, производителем электронных устройств 200). Кроме того, множество обучающих видео могут быть получены из источников/сервисов, которые занимаются записью видеоклипов, которые разрешено использовать для обучения нейронных сетей. Кроме того, могут быть использованы записываемые на устройствах 200 пользователей видеоклипы при условии получения от пользователей этих устройств согласий на использование видеоклипов для обучения нейронных сетей.
[0079] Затем из каждого видео из упомянутого множества видео может формироваться множество групп близких друг к другу по времени или непосредственно соседних по времени кадров. Опционально на данном этапе может быть проведена дополнительная поверка формируемых групп кадров на предмет того, не было бы целесообразнее для кадров (например, если в этих кадрах сцена меняется кардинально), включаемых в отдельную группу, получать интерполированный кадр более простым способом (не применяя оценку движения), т.е., например, согласно fallback-режиму. Если в результате этой проверки для некоторой группы кадров определяется, что было бы целесообразнее для кадров этой группы получать интерполированный кадр более простым способом, такая группа кадров может в обучающие данные не включаться. В другим вариантах реализации по меньшей мере некоторые кадры, включаемые в отдельную группу, могут дополнительно обрабатываться (например, но без ограничения упомянутым, по меньшей мере один ключевой кадр в упомянутой группе может дополнительно обрабатываться для его размытия, или по меньшей мере один ключевой кадр в упомянутой группе может дополнительно обрабатываться для повышения его резкости и т.д. Может выполняться другая дополнительная обработка кадров, которая явно здесь не указана.
[0080] Каждая группа кадров может формироваться таким образом, чтобы содержать по меньшей мере три близких друг к другу по времени или непосредственно соседних по времени кадра. Из упомянутых по меньшей мере трех кадров по меньшей мере два кадра могут использоваться в качестве ключевых кадров видео, относительно которых нейронная сеть оценки движения будет выполнять оценку движения в гипотезу интерполированного для определенной точки во времени кадра, а по меньшей мере один оставшийся кадр, расположенный по времени между упомянутыми двумя ключевыми кадрами или на месте любого ключевого кадра из упомянутых двух ключевых кадров, или в произвольной точке во времени до наиболее раннего по времени кадра из соответствующей группы кадров, или в произвольной точке во времени после наиболее позднего по времени кадра из соответствующей группы кадров, используют в качестве по меньшей мере одного кадра эталонной интерполяции (т.е. эталонного кадра), относительно которого ошибка получаемого при обучении интерполированного кадра подлежит вычислению. Из полученных таким образом обучающих данных могут быть выделены (удержаны), как отдельные наборы данных: проверочный набор и тестовый набор. Назначение проверочного и тестового наборов данных известно из уровня техники.
[0081] Далее со ссылкой на фиг. 11 перейдем к подробному описанию обучения нейронной сети оценки движения, применяемой на этапе S110, описанном выше со ссылкой на фиг. 3. Далее будет описан один прямой и обратный проход при обучении нейронной сети оценки движения. Должно быть понятно, что при фактическом обучении необходимо выполнить множество таких проходов до тех пор, пока, например, не будет выполнено предопределенное число эпох обучения, или не будет достигнут признак сходимости функции ошибки.
[0082] Проход обучения начинается с этапа S50, на котором выбирают из обучающих данных одну группу кадров. В некоторых случаях перед выполнением первого прохода обучения параметры (в том числе весовые коэффициенты) нейронной сети оценки движения, которую будут обучать, инициализируют случайным или предопределенным образом. На следующем этапе S55, на по меньшей мере одном ключевом кадре и на кадре эталонной интерполяции из упомянутой группы кадров независимо от остальных кадров обнаруживают области повторяющихся структур. Обнаружение областей повторяющихся структур на этапе S55 может выполняться аналогично обнаружению областей повторяющихся структур на этапе S105; таким образом подробное описание данного этапа S55 здесь повторно не приводится.
[0083] Затем на этапе S60 оценивают движение между по меньшей мере одним ключевым кадром из упомянутой группы кадров и гипотезой интерполированного для определенной точки во времени кадра, которая аналогична точке во времени, в которой находится включенный в обрабатываемую в настоящий момент группу кадров один кадр из по меньшей мере одного кадра эталонной интерполяции, относительно которого будет вычисляться ошибка. Должно быть понятно, что фактически этот этап реализуется подачей упомянутых по меньшей мере двух ключевых кадров и областей повторяющихся структур, которые обнаружены на упомянутом по меньшей мере одном ключевом кадре, на вход обучаемой нейронной сети оценки движения для обработки и получения какого-то результата обработки на выходе нейронной сети оценки движения. Реализация же именно “оценки движения между по меньшей мере одним ключевым кадром из упомянутой группы кадров и гипотезой интерполированного для определенной точки во времени кадра” достигается впоследствии посредством, что будет подробно описано далее, (i) определения ошибки между кадром эталонной интерполяции и интерполированным кадром, получаемым путем выполнения компенсации движения с использованием упомянутого по меньшей мере одного ключевого кадра и векторов движения, полученных на выходе обучаемой нейронной сети оценки движения в ходе соответствующего прохода обучения, и (ii) обратного распространения данной ошибки при обратной фазе данного прохода с целью корректировки параметров обучаемой нейронной сети оценки движения в сторону уменьшения данной ошибки (расхождения). Аналогичные пояснения актуальны и для описанного выше этапа S110 оценки движения, т.е. для стадии использования обученной нейронной сети оценки движения.
[0084] Затем к векторам движения из векторов движения, полученных упомянутой оценкой (S60) движения, которые принадлежат к области повторяющихся структур, обнаруженной на кадре эталонной интерполяции, дополнительно применяют регуляризацию, которая альтернативно может быть названа унификацией. При этом вычисление второй компоненты (ii) ошибки, т.е. ошибки, связанной со степенью самоподобия, которое будет подробно описано далее со ссылкой на этап S70, может выполняться до применения упомянутой регуляризации или после применения регуляризации. Неограничивающая реализация регуляризации векторов движения заключается в применении к векторам движения, находящимся в области повторяющихся структур, одного из, но без ограничения упомянутым, локального скользящего среднего, глобального среднего, моды. Под векторами движения “находящимися в области повторяющихся структур” здесь понимаются как полученные оценкой векторы, которые попадают (указывают) в область повторяющихся структур кадра, и/или векторы, которые исходят из (начинаются в) области повторяющихся структур кадра.
[0085] На этапе S65 получают интерполированный кадр, выполняя компенсацию движения с использованием упомянутого по меньшей мере одного ключевого кадра и полученных оценкой векторов движения. Как указано выше по тексту данного описания в отношении этапа S115 схема компенсации движения, которая может применяться в настоящем изобретении, каким-либо образом не ограничена. Другими словами, компенсация движения может реализовываться любым известным из уровня техники классическим алгоритмом, либо любой известной из уровня техники нейронной сетью компенсации движения. Тем не менее, желательно, но не обязательно, чтобы алгоритм или нейронная сеть компенсации движения, применяемая на данном этапе S65 для получения интерполированного кадра, были бы аналогичны, соответственно, алгоритму или нейронной сети компенсации движения, предполагаемому для применения на стадии использования, т.е. на описанном выше этапе S115.
[0086] После выполнения этапа S65 проход обучения переходит к выполнению этапа S70, на котором вычисляют значение функции ошибки как сумму первой компоненты (i) ошибки, связанной со степенью подобия между кадром эталонной интерполяции и интерполированным кадром, и второй компоненты (ii) ошибки, связанной со степенью самоподобия тех векторов движения из векторов движения, полученных оценкой движения, которые принадлежат к области повторяющихся структур, обнаруженной на кадре эталонной интерполяции. За счет по меньшей мере второй компоненты (ii) ошибки нейронная сеть оценки движения обучается учитывать области повторяющихся структур и, тем самым, выполнять регуляризацию векторов движения в областях повторяющихся структур для исключения разнонаправленных, резких флуктуаций отдельных векторов движения в этих областях.
[0087] Вычисляемая на этапе S70 функция ошибки состоит из двух слагаемых компонент - учитывающей и не учитывающей самоподобие векторов движения, и определяется согласно следующим математическим выражениям:
(мат. выражение 3),
где
- общая функция ошибки,
MAE - операция вычисления средней абсолютной ошибки,
- интерполированный кадр, полученный на основе компенсации движения, выполненной на основе оценки движения, полученной обучаемой нейронной сетью оценки движения,
- соответствующий кадр эталонной интерполяции,
- номер ключевого кадра (например, 0 или 1),
-ось координат (
или
),
- карта значений векторов движения по оси
поля векторов движения, например из ключевого кадра
в интерполированный кадр,
- карта областей повторяющихся структур (которые альтернативно могут называться областями самоподобия), в неограничивающей реализации при обучении нейронной сети такую карту определяют по кадру
эталонной интерполяции; блоки кадра, в которых обнаружена повторяющаяся структура (ы), указываются в этой карте например единицами ‘1’, блоки кадра, в которых повторяющаяся структура (ы) не обнаружена, имеют другое значение, например, ноль ‘0’,
- весовой коэффициент при слагаемой компоненте функции ошибки, которая отвечает за самоподобие - гиперпараметр сети, выбираемый вручную в начале обучения; в неограничивающем примере значение весового коэффициента
устанавливают равным 0,001,
TV - функция полной вариации векторов движения, вычисляемая в областях повторяющихся структур, указываемых картой ; в других возможных реализациях настоящего изобретения вместо TV здесь может применяться дисперсия или стандартное отклонение).
[0088] Функция полной вариации, применяемая в мат. выражении 3, указанном выше, вычисляется согласно следующему мат. выражению 4:
(мат. выражение 4).
[0089] Описанное выше для прохода обучения образует стадию прямого распространения (forward pass). После выполнения этапа S70 данный проход обучения завершается выполнением этапа S75, на котором осуществляют обратное распространение ошибки (backpropagation) путем вычисления градиентов и обновления параметров обучаемой глубокой нейронной сети оценки движения. Алгоритм обратного распространения ошибки широко известен в уровне техники и его подробное описание здесь по этой причине не приводится. Операции обучения глубокой нейронной сети оценки движения, описанные выше со ссылкой на фиг. 11, выполняют многократно до тех пор, пока не будет выполнено предопределенное число эпох обучения, или до тех пор, пока не будет достигнут признак сходимости функции ошибки.
[0090] Для реализации на компьютере описанного выше обучения могут применяться любые фреймворки машинного обучения, например, но без ограничения упомянутыми, PyTorch, TensorFlow, Keras. Обучение нейронной сети оценки движения может выполняться на специализированном оборудовании (например, сервере). Параметры обученной нейронной сети оценки движения могут сохраняться как на самом устройстве 200, на котором предполагается ее использование, так и удаленно, на сервере (не показан), к которому устройство 200 может обращаться по требованию.
[0091] Далее со ссылкой на фиг. 12 будет описана неограничивающая реализация архитектуры предлагаемой глубокой нейронной сети оценки движения. Как показано на фиг. 12a архитектура предлагаемой глубокой нейронной сети оценки движения может представлять архитектуру типа UNet с 3 уровнями, но без ограничения таким числом уровней. Показанные и описанные со ссылкой на фиг. 12a конкретное число слоев и конкретные размеры тензоров приведены в качества примера и их не следует рассматривать в качестве ограничений раскрытого здесь технического решения. Выбор конкретных размеров слоя (т.е. количества каналов) и числа самих слоев является гиперпараметром, который подбирают таким образом, чтобы обеспечить компромисс между качеством и быстродействием. Обычно задают минимально приемлемое быстродействие (диктуемое, например, производительностью целевого устройства и/или требуемым количеством обработанных кадров в секунду) и с ним подбирается максимально возможная модель, удовлетворяющая условиям быстродействия. При этом должно быть понятно, что бесконечное увеличение модели не будет вести к бесконечному улучшению качества, и в случае, когда ограничений на быстродействие нет, находится тот размер модели (и размер/количество ее слоев), больше которого качество обычно уже не растет. Традиционно указанные и другие гиперпараметры нейронной сети устанавливаются экспериментально. Левая часть показанной архитектуры определяет кодер, который отвечает за кодирование данных с понижением их размерности. Правая часть показанной архитектуры определяет декодер, который отвечает за декодирование данных с повышением их размерности.
[0092] Как показано на фиг. 12a входные данные в форме тензора с размером H x W x 4 (Высота х Ширина х Количество каналов), подаются на вход блока прекодера (PreEnc), который, как показано на фиг. 12b, состоит из последовательности размещаемых в следующем порядке блоков: (1) блок преобразования (Space2Depth), (2) блок свертки с шагом (stride), равным 2, и функцией активации ReLU, (3) блок свертки с шагом, равным 2, и функцией активации ReLU.
[0093] Далее данные, выводимые из блока прекодера, подаются, как показано на фиг. 12a, на вход блока первого кодера (Enc 1), который, как показано на фиг. 12b, состоит из последовательности размещаемых в следующем порядке блоков: (1) блок сепарабельной свертки с шагом (stride), равным 2, и функцией активации ReLU, (2) остаточный блок кодера (Enc Resblock), (3) остаточный блок кодера. Каждый из остаточных блоков кодера, что дополнительно показано на фиг. 12b, состоит из последовательности размещаемых в следующем порядке блоков: (1) блок сепарабельной свертки (SepConv) с шагом и функцией активации ReLU, (2) блок сепарабельной свертки с шагом и функцией активации ReLU, (3) блок сепарабельной свертки с шагом и функцией активации ReLU, (4) блок объединения (Eltwise Add), объединяющий результаты двух ветвей путем выполнения поэлементного сложения элементов обходной ветви и результатов, получаемых в результате свертки.
[0094] Далее данные, выводимые из блока первого кодера, подаются, как показано на фиг. 12a, на вход блока второго кодера (Enc 2), а также дополнительно передаются по skip-соединению на вход блока первого декодера (Dec 1), структура которого будет описана ниже. Структура блока второго кодера полностью соответствует вышеописанной структуре блока первого кодера, что понятно из фиг. 12a и 12b.
[0095] Далее данные, выводимые из блока второго кодера, подаются, как показано на фиг. 12a, на вход блока третьего кодера (Enc 3), а также дополнительно передаются по skip-соединению на вход блока первого декодера (Dec 2), структура которого будет описана ниже. Структура блока третьего кодера полностью соответствует вышеописанным структурам блоков первого и второго кодеров, что понятно из фиг. 12a и 12b. Блок третьего кодера (Enc 3) находится на bottleneck-уровне архитектуры типа UNet, показанной на фиг. 12a.
[0096] Далее данные, выводимые из блока третьего кодера, подаются, как показано на фиг. 12a, на вход блока третьего декодера (Dec 3), который, как показано на фиг. 12b, состоит из последовательности размещаемых в следующем порядке блоков: (1) блок свертки с ядром (kernel) свертки 1×1 (Conv 1×1), (2) блок транспонированной свертки с ядром свертки 4×4 и шагом (stride), равным 2, (3) блок сепарабельной свертки (SepConv) с шагом и функцией активации ReLU.
[0097] Далее данные, выводимые из блока третьего декодера, как показано на фиг. 12a, объединяются путем конкатенации с данными, выводимыми из блока второго кодера и передаваемыми от этого блока второго кодера по соответствующему skip-соединению, и подаются на вход блока второго декодера (Dec 2). Структура блока второго декодера полностью соответствует вышеописанной структуре блока третьего декодера, что понятно из фиг. 12a и 12b.
[0098] Далее данные, выводимые из блока второго декодера, как показано на фиг. 12a, объединяются путем конкатенации с данными, выводимыми из блока первого кодера и передаваемыми от этого блока первого кодера по соответствующему skip-соединению, и подаются на вход блока первого декодера (Dec 1). Структура блока первого декодера полностью соответствует вышеописанным структурам блоков третьего и второго декодеров, что понятно из фиг. 12a и 12b.
[0099] Наконец, данные, выводимые из блока первого декодера, подаются, как показано на фиг. 12a, на вход блока постдекодера (PostDec), который, как показано на фиг. 12b, состоит из последовательности размещаемых в следующем порядке блоков: (1) блок транспонированной свертки с ядром свертки 4×4 и шагом (stride), равным 2, (2) блок преобразования (Space2Depth). В результате из блока постдекодера (PostDec) выводятся выходные данные, т.е. тензор с размером H x W x 5, включающие в себя полученное оценкой движение, например в форме поля векторов движения, между кадрами.
[0100] Должно быть понятно, что настоящее изобретение не следует ограничивать вышеуказанным конкретным шагом свертки, равным 2, поскольку в альтернативных реализациях настоящего изобретения шаг свертки может быть установлен, равным более низкому значению или более высокому значению. Аналогичное касается и ядер свертки. Кроме того, в разных блоках свертки могут использоваться разные значения шага свертки и/или разные ядра свертки. Кроме того, в некоторых реализациях могут применяться иные функции активации, например, но без ограничения упомянутым, функция активации Leaky ReLU или функция активации на основе гиперболического тангенса и т.д. Кроме того, в разных блоках свертки могут использоваться разные значения шага свертки. Термин ‘блок’ здесь и выше используется для указания блока из нескольких слоев нейронной сети, или указания простого слоя нейронной сети или для указания непараметрической операции, что отражено на фиг. 12b.
[0101] Далее со ссылками на фиг. 13 и фиг. 14 и нижеследующую Таблицу 1 кратко прокомментируем благоприятные технические эффекты, достигаемые раскрытым здесь изобретением. В Таблице 1 показан прирост метрики PSNR, который определялся по интерполированным кадрам, получаемым для определенных видеоклипов, в которых имелись повторяющиеся структуры, настоящим изобретением, в котором повторяющиеся структуры учитываются при оценке движения, и решением уровня техники, в котором повторяющиеся структуры при оценке движения не учитываются.
Таблица 1: Сравнение настоящего изобретения и уровня техники по метрике PSNR
[0102] Как видно из результатов, приведенных в Таблице 1, раскрытое в настоящей заявке изобретение улучшает как общую метрику PSNR, вычисляемую по всему кадру, так и, особенно, улучшает данную метрику локально в областях кадра, в которых имеются повторяющиеся структуры.
[0103] На фиг. 13 проиллюстрирован график сравнения по метрике PSNR интерполированных кадров одной сцены, полученных согласно приведенному выше раскрытию, и интерполированных кадров для той же самой сцены, но полученных согласно уровню техники, т.е. без учета повторяющихся в этой сцене структур. Разность метрик PSNR в 7,4 дБ полученная для последовательности кадров сравниваемых видео с, примерно, 48 кадра по, примерно, 75 кадр, которая показана на графике, свидетельствует об исправлении раскрытым в данном документе изобретением в этих кадрах серьезных артефактов (например тех, которые описаны выше со ссылкой на фиг. 1), связанных с наличием в этих кадрах повторяющихся структур. Другими словами, данные, приведенные в Таблице 1 и на графике по фиг. 13, подтверждают, что качество кадров в областях повторяющихся структур достигаемое обработкой с применением настоящего изобретения значительно лучше такового, достигаемого обработкой без применения настоящего изобретения, и достигаемое настоящим изобретением качество интерполируемого кадра максимально приближено к реальной (эталонной) повторяющей структуре на эталонном кадре (см. фиг. 1).
[0104] На фиг. 14 иллюстрируется другое техническое преимущество настоящего изобретения, достигаемое при его осуществлении на практике. В частности, на фиг. 14 показана диаграмма сравнения по числу параметров нейронной сети оценки движения, предложенной в настоящем изобретении, с нейронными сетями, используемыми в уровне техники [1] и [2]. Как видно, архитектура раскрытой в данном документе глубокой нейронной сети оценки движения в сравнении с нейронными сетями, используемыми в уровне техники [1] и [2], является относительно легковесной. Другими словами, достигается примерно 4-х кратное снижение числа параметров нейронной сети оценки движения в сравнении с нейронными сетями, описанными в [1] и [2].
[0105] Таким образом применение настоящего изобретения позволяет улучшить опыт конечного пользователя, использующего электронное устройство, в котором оно реализовано, поскольку значительно снижается количество часто встречающихся артефактов, порождаемых неверной оценкой движения в областях повторяющихся структур. Кроме того, быстродействие обеспечивается даже на электронных устройствах с ограниченными ресурсами, поскольку архитектура нейронной сети оценки движения, учитывающей повторяющиеся структуры, является относительно легковесной, т.е. не имеющей слоев, отвечающих за такие вычислительно сложные операции как, например, варпинг (warping), cost volume, компенсация движения.
[0106] Специалисту в данной области техники может быть понятно, что различные иллюстративные логические блоки (функциональные блоки или модули) и этапы (операции), используемые в вариантах осуществления раскрытого технического решения, могут быть реализованы электронными аппаратными средствами, компьютерным программным обеспечением или их комбинацией. Реализуются ли функции с помощью аппаратного или программного обеспечения, зависит от конкретных приложений и требований к конструкции всей системы. Специалист в данной области техники может использовать различные способы реализации описанных выше функций для каждого конкретного применения, но не следует считать, что такая реализация будет выходить за рамки вариантов осуществления, раскрытых в данной заявке.
[0107] Также следует отметить, что порядок этапов любого раскрытого способа не является строгим, т.к. некоторые один или несколько этапов могут быть переставлены в фактическом порядке выполнения и/или объединены с другим одним или несколькими этапами, и/или разбиты на большее число подэтапов.
[0108] Во всех материалах настоящей заявки ссылка на элемент в единственном числе не исключает наличия множества таких элементов в фактической реализации изобретения, и, наоборот, ссылка на элемент во множественном числе не исключает наличия только одного такого элемента при фактическом осуществлении изобретения. Любое указанное выше конкретное значение или диапазон значений не следует интерпретировать в ограничительном смысле, вместо этого следует рассматривать такое конкретное значение или такой диапазон значений как представляющие середину определенного бóльшего диапазона, вплоть до, приблизительно, 50% или более % в обе стороны от конкретно указанного значения или от границ конкретно указанного меньшего диапазона.
[0109] Хотя данное раскрытие показано и описано со ссылкой на его конкретные варианты осуществления и неограничивающие примеры, специалисты в данной области техники поймут, что различные изменения по форме и содержанию могут вноситься без отступления от сущности и объема данного раскрытия, определяемого прилагаемой формулой изобретения и ее эквивалентами. Другими словами, приведенное выше подробное описание основано на конкретных неограничивающих примерах и возможных реализациях настоящего изобретения, но его не следует интерпретировать так, что осуществимы только явно раскрытые реализации. Предполагается, что любое изменение или замена, которые могут быть осуществлены в данном раскрытии обычным специалистом без внесения в технологию творческого и/или технического вклада, должны подпадать под объем охраны (с учетом эквивалентов), обеспечиваемый приводимой далее формулой настоящего изобретения.
название | год | авторы | номер документа |
---|---|---|---|
СПОСОБ РЕГУЛЯРИЗАЦИИ ГРАДИЕНТОВ ПРИ ОБУЧЕНИИ ГЛУБОКОЙ НЕЙРОННОЙ СЕТИ В АЛГОРИТМЕ УВЕЛИЧЕНИЯ ЧАСТОТЫ КАДРОВ ВИДЕОИЗОБРАЖЕНИЯ С ОПЕРАЦИЕЙ ДЕФОРМАЦИИ ИЗОБРАЖЕНИЯ И РЕАЛИЗУЮЩИЕ ДАННЫЙ СПОСОБ УСТРОЙСТВО И МАШИНОЧИТАЕМЫЙ НОСИТЕЛЬ | 2024 |
|
RU2838424C1 |
ОБРАБОТКА ОККЛЮЗИЙ ДЛЯ FRC C ПОМОЩЬЮ ГЛУБОКОГО ОБУЧЕНИЯ | 2020 |
|
RU2747965C1 |
СПОСОБ ПРЕОБРАЗОВАНИЯ ЧАСТОТЫ КАДРОВ, ПОДДЕРЖИВАЮЩИЙ ЗАМЕНУ ИНТЕРПОЛЯЦИИ КАДРА С КОМПЕНСАЦИЕЙ ДВИЖЕНИЯ ЛИНЕЙНОЙ КОМБИНАЦИЕЙ КАДРОВ, И РЕАЛИЗУЮЩЕЕ ЕГО УСТРОЙСТВО | 2022 |
|
RU2786784C1 |
СИСТЕМА ДЛЯ ГЕНЕРАЦИИ ВИДЕО С РЕКОНСТРУИРОВАННОЙ ФОТОРЕАЛИСТИЧНОЙ 3D-МОДЕЛЬЮ ЧЕЛОВЕКА, СПОСОБЫ НАСТРОЙКИ И РАБОТЫ ДАННОЙ СИСТЕМЫ | 2024 |
|
RU2834188C1 |
СПОСОБ И СИСТЕМА СВЕРХРАЗРЕШЕНИЯ С ПОМОЩЬЮ КОМБИНИРОВАННОЙ РАЗРЕЖЕННОЙ АППРОКСИМАЦИИ | 2016 |
|
RU2661537C2 |
ТЕКСТУРИРОВАННЫЕ НЕЙРОННЫЕ АВАТАРЫ | 2019 |
|
RU2713695C1 |
ТЕХНОЛОГИЯ ДЛЯ ОЦЕНКИ КАЧЕСТВА ВИДЕО | 2010 |
|
RU2540846C2 |
СПОСОБ СОЗДАНИЯ АНИМИРУЕМОГО АВАТАРА ЧЕЛОВЕКА В ПОЛНЫЙ РОСТ ИЗ ОДНОГО ИЗОБРАЖЕНИЯ ЧЕЛОВЕКА, ВЫЧИСЛИТЕЛЬНОЕ УСТРОЙСТВО И МАШИНОЧИТАЕМЫЙ НОСИТЕЛЬ ДЛЯ ЕГО РЕАЛИЗАЦИИ | 2023 |
|
RU2813485C1 |
ВИЗУАЛИЗАЦИЯ РЕКОНСТРУКЦИИ 3D-СЦЕНЫ С ИСПОЛЬЗОВАНИЕМ СЕМАНТИЧЕСКОЙ РЕГУЛЯРИЗАЦИИ НОРМАЛЕЙ TSDF ПРИ ОБУЧЕНИИ НЕЙРОННОЙ СЕТИ | 2023 |
|
RU2825722C1 |
СПОСОБ ВИЗУАЛИЗАЦИИ 3D ПОРТРЕТА ЧЕЛОВЕКА С ИЗМЕНЕННЫМ ОСВЕЩЕНИЕМ И ВЫЧИСЛИТЕЛЬНОЕ УСТРОЙСТВО ДЛЯ НЕГО | 2021 |
|
RU2757563C1 |
Изобретение относится к области обработки изображений. Технический результат заключается в повышении качества интерполируемых кадров за счет более точной оценки движения в учитываемых при интерполяции кадра областях повторяющихся структур. Предложенный способ интерполяции кадров видео содержит этапы, на которых: получают по меньшей мере два ключевых кадра видео; на одном из ключевых кадров обнаруживают области повторяющихся структур; оценивают движение между данным ключевым кадром и интерполируемым кадром, подавая ключевые кадры и области повторяющихся структур в обученную нейронную сеть оценки движения, причем при обучении нейронной сети вычисляют значение функции ошибки; получают интерполированный кадр, выполняя компенсацию движения с использованием упомянутого ключевого кадра и полученных оценкой векторов движения. 3 н. и 26 з.п. ф-лы, 14 ил., 1 табл.
1. Способ интерполяции кадров видео, содержащий этапы, на которых:
получают (S100) по меньшей мере два ключевых кадра видео, для которых должна быть выполнена оценка движения, с помощью которой и по меньшей мере одного ключевого кадра подлежит получению интерполированный кадр,
на по меньшей мере одном ключевом кадре из упомянутых по меньшей мере двух ключевых кадров обнаруживают (S105) области повторяющихся структур,
оценивают (S110) движение между упомянутым по меньшей мере одним ключевым кадром из упомянутых по меньшей мере двух ключевых кадров и интерполируемым кадром, подавая упомянутые по меньшей мере два ключевых кадра и области повторяющихся структур, которые обнаружены на упомянутом по меньшей мере одном ключевом кадре, в обученную нейронную сеть оценки движения,
причем при обучении данной нейронной сети оценки движения значение функции ошибки вычислялось как сумма (i) ошибки, связанной со степенью подобия между кадром эталонной интерполяции и интерполированным кадром, и (ii) ошибки, связанной со степенью самоподобия тех векторов движения из векторов движения, полученных, при упомянутом обучении, оценкой движения, которые принадлежат к области повторяющихся структур, обнаруженной на кадре эталонной интерполяции,
получают (S115) интерполированный кадр, выполняя компенсацию движения с использованием упомянутого по меньшей мере одного ключевого кадра и полученных оценкой векторов движения.
2. Способ по п. 1, в котором при обучении нейронной сети оценки движения дополнительно выполняли следующее: к тем векторам движения из векторов движения, получаемых, при упомянутом обучении, оценкой движения между по меньшей мере одним ключевым кадром и интерполируемым кадром, которые принадлежат к области повторяющихся структур, обнаруживаемые на кадре эталонной интерполяции, применялась регуляризация,
при этом вычисление (ii) ошибки, связанной со степенью самоподобия, выполняли до применения регуляризации или после применения регуляризации.
3. Способ по п. 1 или 2, в котором оцениваемым (S110) движением являются векторы движения в упомянутый по меньшей мере один ключевой кадр или векторы движения из упомянутого по меньшей мере одного ключевого кадра.
4. Способ по п. 2, в котором,
когда оцениваемыми векторами движения являются векторы движения в упомянутый по меньшей мере один ключевой кадр, векторами движения, которые принадлежат к области повторяющихся структур, являются векторы движения, которые начинаются в области повторяющихся структур, или,
когда оцениваемыми векторами движения являются векторы движения из упомянутого по меньшей мере одного ключевого кадра, векторами движения, которые принадлежат к области повторяющихся структур, являются векторы движения, которые заканчиваются в области повторяющихся структур.
5. Способ по любому из пп. 2-4, в котором регуляризацию векторов движения выполняют путем применения к векторам движения в области повторяющихся структур одного из локального скользящего среднего, глобального среднего, моды.
6. Способ по п. 1, в котором обнаружение (S105) областей повторяющихся структур на кадре содержит:
получение (S105.1) первой карты признаков повторяющихся структур посредством поблочной обработки кадра в первом направлении и второй карты признаков повторяющихся структур посредством поблочной обработки кадра во втором направлении,
объединение (S105.2) первой карты признаков повторяющихся структур и второй карты признаков повторяющихся структур в объединенную карту признаков повторяющихся структур,
определение (S105.3) областей повторяющихся структур по объединенной карте признаков повторяющихся структур, причем в область повторяющихся структур включаются два или более смежных блока кадра, для которых на объединенной карте признаков повторяющихся структур установлены признаки повторяющихся структур.
7. Способ по п. 6, в котором первое направление ортогонально второму направлению.
8. Способ по п. 7, в котором
первым и вторым направлениями являются, соответственно, горизонтальное и вертикальное направления, или
первым и вторым направлениями являются, соответственно, вертикальное и горизонтальное направления, или
первым и вторым направлениями являются, соответственно, направление под углом к горизонтальному или вертикальному направлению и направление, которое ортогонально упомянутому направлению под углом к горизонтальному или вертикальному направлению.
9. Способ по п. 1, в котором обнаружение (S105) областей повторяющихся структур на кадре содержит:
получение карты признаков повторяющихся структур в горизонтальном направлении посредством поблочной обработки кадра в горизонтальном направлении, карты признаков повторяющихся структур в вертикальном направлении посредством поблочной обработки кадра в вертикальном направлении, карты признаков повторяющихся структур в первом диагональном направлении посредством поблочной обработки кадра в первом диагональном направлении и карты признаков повторяющихся структур во втором диагональном направлении посредством поблочной обработки кадра во втором диагональном направлении,
объединение полученных карт признаков повторяющихся структур в объединенную карту признаков повторяющихся структур,
определение областей повторяющихся структур по объединенной карте признаков повторяющихся структур для получения областей повторяющихся структур, причем в область повторяющихся структур в карте областей повторяющихся структур включаются два или более смежных блока кадра, для которых на объединенной карте признаков повторяющихся структур установлены признаки повторяющихся структур.
10. Способ по п. 9, в котором первым диагональным направлением является направление из левого нижнего угла кадра в правый верхний угол кадра, а вторым диагональным направлением является направление из левого верхнего угла кадра в правый нижний угол кадра, или
первым диагональным направлением является направление из правого нижнего угла кадра в левый верхний угол кадра, а вторым диагональным направлением является направление из правого верхнего угла кадра в левый нижний угол кадра, или
первым диагональным направлением является направление из левого верхнего угла кадра в правый нижний угол кадра, а вторым диагональным направлением является направление из левого нижнего угла кадра в правый верхний угол кадра, или
первым диагональным направлением является направление из правого верхнего угла кадра в левый нижний угол кадра, а вторым диагональным направлением является направление из правого нижнего угла кадра в левый верхний угол кадра.
11. Способ по п. 6, в котором получение (S105.1) карты признаков повторяющихся структур посредством поблочной обработки кадра в определенном направлении из первого направления и второго направления содержит выполнение следующих операций для каждого блока кадра:
получение (S105.1.1) ряда агрегированных пикселей из полоски кадра, проходящей в упомянутом определенном направлении и включающей в себя текущий обрабатываемый блок и по меньшей мере часть окружения текущего обрабатываемого блока с одной или двух сторон от упомянутого текущего обрабатываемого блока вдоль упомянутого направления,
вычисление (S105.1.2) порогового значения SAD как деленного на два большего значения SAD из значения SAD, вычисляемого между центральным сегментом ряда агрегированных пикселей и сегментом, попиксельно сдвинутым в первую сторону на один пиксель, и значения SAD, вычисляемого между центральным сегментом ряда агрегированных пикселей и сегментом, попиксельно сдвинутым во вторую сторону на один пиксель,
вычисление (S105.1.3) набора значений сумм абсолютных разностей (SAD) между контрольным сегментом из упомянутого ряда агрегированных пикселей и каждым из сегментов, получаемых последовательными попиксельными сдвигами относительно упомянутого контрольного сегмента в пределах упомянутого ряда агрегированных пикселей, причем размер каждого из сдвинутых сегментов аналогичен размеру контрольного сегмента,
вычисление (S105.1.4) стандартного отклонения яркости пикселей в центральном сегменте,
подсчет (S105.1.5) количества значений SAD в упомянутом наборе значений SAD, которые меньше или равны упомянутому пороговому значению SAD,
установку (S105.1.6) признака повторяющихся структур в карте признаков повторяющихся структур в упомянутом определенном направлении для текущего обрабатываемого блока, когда (a) подсчитанное количество значений SAD больше предопределенного порогового значения количества значений SAD и (b) стандартное отклонение яркости пикселей в центральном сегменте больше предопределенного порогового значения стандартного отклонения.
12. Способ по п. 11, в котором, когда на этапе установки (S105.1.6) по меньшей мере одно из условий (a), (b) не выполняется, этап получения (S105.1) карты признаков повторяющихся структур переходит к обработке следующего блока кадра без установки для текущего блока признака повторяющихся структур в соответствующей карте признаков повторяющихся структур.
13. Способ по п. 11, в котором шаг попиксельного сдвига, используемый для получения сдвинутых сегментов на этапе вычисления (S105.1.3) набора значений SAD, составляет один пиксель.
14. Способ по п. 11, в котором в качестве упомянутого контрольного сегмента выбирают центральный сегмент упомянутого ряда агрегированных пикселей или сегмент, сдвинутый относительно центрального сегмента на один пиксель в пределах упомянутого ряда агрегированных пикселей в первую или вторую сторону, причем,
если значение SAD, вычисляемое между центральным сегментом и сегментом, сдвинутым в первую сторону в пределах упомянутого ряда агрегированных пикселей, больше значения SAD, вычисляемого между центральным сегментом и сегментом, сдвинутым во вторую сторону в пределах упомянутого ряда агрегированных пикселей, в качестве упомянутого контрольного сегмента выбирают сдвинутый в первую сторону сегмент,
если значение SAD, вычисляемое между центральным сегментом и сегментом, сдвинутым в первую сторону в пределах упомянутого ряда агрегированных пикселей, меньше значения SAD, вычисляемого между центральным сегментом и сегментом, сдвинутым во вторую сторону в пределах упомянутого ряда агрегированных пикселей, в качестве упомянутого контрольного сегмента выбирают сдвинутый во вторую сторону сегмент,
в ином случае в качестве упомянутого контрольного сегмента выбирают центральный сегмент,
причем продольный размер центрального и контрольного сегмента равен ширине или высоте обрабатываемого блока.
15. Способ по п. 11, в котором получение (S105.1.1) ряда агрегированных пикселей из полоски кадра, проходящей в определенном направлении и включающей в себя текущий обрабатываемый блок и по меньшей мере часть окружения текущего обрабатываемого блока, находящуюся в пределах упомянутой полоски кадра, содержит:
формирование (S105.1.1.1) по меньшей мере двух поднаборов продольных рядов пикселей из каждой из по меньшей мере двух продольных областей полоски кадра, причем в поднабор продольных рядов пикселей включаются продольные ряды пикселей, лежащие в соответствующей продольной области полоски кадра не смежно друг с другом,
усреднение (S105.1.1.2) значений яркости пикселей каждого сформированного поднабора продольных рядов пикселей в поперечном направлении поднабора продольных рядов пикселей для получения усредненного ряда пикселей для каждого из сформированных поднаборов продольных рядов пикселей, и
вычисление (S105.1.1.3) стандартного отклонения яркости пикселей в центральном сегменте каждого усредненного ряда пикселей, и
определение (S105.1.1.4) в качестве ряда агрегированных пикселей того усредненного ряда пикселей, центральный сегмент которого обладает наибольшим стандартным отклонением яркости пикселей.
16. Способ по п. 15, в котором при формировании (S105.1.1.1) поднаборов продольных рядов пикселей каждые две соседние продольные области полоски кадра из упомянутых по меньшей мере двух продольных областей полоски кадра имеют по меньшей мере один общий продольный ряд пикселей.
17. Способ по п. 15, в котором число формируемых (S105.1.1.1) поднаборов продольных рядов пикселей и, соответственно, продольных областей полоски кадра выбирают в зависимости от разрешения текущего обрабатываемого кадра и/или от размера текущего обрабатываемого блока кадра.
18. Способ по п. 15, в котором на этапе вычисления (S105.1.1.3) дополнительно вычисляют стандартное отклонение яркости пикселей в центральном сегменте одного или нескольких продольных рядов пикселей полоски кадра, не попавших при формировании (S105.1.1.1) в какой-либо поднабор продольных рядов пикселей, и
на этапе определения (S105.1.1.4) в качестве ряда агрегированных пикселей определяют тот продольный ряд пикселей, центральный сегмент которого обладает наибольшим приведенным стандартным отклонением яркости пикселей, из числа усредненных рядов пикселей и, дополнительно, упомянутого одного или нескольких продольных рядов пикселей полоски кадра, не попавших при формировании (S105.1.1.1) в какой-либо поднабор продольных рядов пикселей.
19. Способ по п. 1, в котором для обучения глубокой нейронной сети оценки движения обучающие данные подготавливают следующим образом:
получают множество видео, которые подлежат использованию в качестве обучающих видео,
из каждого видео из упомянутого множества видео формируют по меньшей мере одну группу близких друг к другу по времени или непосредственно соседних по времени кадров,
каждая группа кадров из упомянутой по меньшей мере одной группы кадров содержит по меньшей мере три кадра:
по меньшей мере два из которых используют в качестве ключевых кадров видео, для которых оценивается движение, используемое для получения интерполированного кадра, и
по меньшей мере один кадр, расположенный по времени между упомянутыми двумя ключевыми кадрами или на месте любого ключевого кадра из упомянутых двух ключевых кадров, используют в качестве по меньшей мере одного кадра эталонной интерполяции, относительно которого ошибка получаемого при обучении интерполированного кадра подлежит вычислению.
20. Способ по п. 19, в котором глубокую нейронную сеть оценки движения обучают многократным выполнением следующих операций:
случайным образом выбирают (S50) из упомянутых обучающих данных сформированную группу кадров,
на по меньшей мере одном ключевом кадре и на кадре эталонной интерполяции из упомянутой группы кадров независимо от остальных кадров обнаруживают (S55) области повторяющихся структур,
оценивают (S60) движение между по меньшей мере одним ключевым кадром из упомянутой группы кадров и интерполируемым кадром, подавая упомянутые по меньшей мере два ключевых кадра и области повторяющихся структур, которые обнаружены на упомянутом по меньшей мере одном ключевом кадре, в обучаемую нейронную сеть оценки движения,
получают (S65) интерполированный кадр, выполняя компенсацию движения с использованием упомянутого по меньшей мере одного ключевого кадра и полученных оценкой векторов движения,
вычисляют (S70) значение функции ошибки как сумму (i) ошибки, связанной со степенью подобия между кадром эталонной интерполяции и интерполированным кадром, и (ii) ошибки, связанной со степенью самоподобия тех векторов движения из векторов движения, полученных оценкой (S60) движения, которые принадлежат к области повторяющихся структур, обнаруженной на кадре эталонной интерполяции, и
осуществляют обратное распространение (S75) ошибки путем вычисления градиентов и обновления параметров обучаемой глубокой нейронной сети оценки движения.
21. Способ по п. 20, в котором к тем векторам движения из векторов движения, полученных упомянутой оценкой (S60) движения, которые принадлежат к области повторяющихся структур, обнаруженной на кадре эталонной интерполяции, дополнительно применяют регуляризацию,
при этом вычисление (ii) ошибки, связанной со степенью самоподобия, выполняют до применения регуляризации или после применения регуляризации.
22. Способ по п. 21, в котором упомянутую регуляризацию выполняют перед получением (S65) интерполированного кадра и
используют полученные оценкой векторы движения, содержащие векторы движения, в отношении которых применена регуляризация, в качестве полученных оценкой (S60) векторов движения при выполнении компенсации движения для получения (S65) интерполированного кадра.
23. Способ по п. 20, в котором (i) ошибка, связанная со степенью подобия между кадром эталонной интерполяции и интерполированным кадром, вычисляется как средняя абсолютная ошибка (MAE) между значениями пикселей кадра эталонной интерполяции и значениями пикселей интерполированного кадра.
24. Способ по п. 20, в котором (ii) ошибка, связанная со степенью самоподобия векторов движения, которые принадлежат к области повторяющихся структур, обнаруженной на кадре эталонной интерполяции, вычисляется отдельно для каждой области повторяющихся структур, обнаруженной на кадре эталонной интерполяции, как значение полной вариации, или дисперсии, или стандартного отклонения значений упомянутых векторов движения, которые принадлежат к этой области.
25. Способ по п. 20, в котором операции обучения глубокой нейронной сети оценки движения выполняют предопределенное число эпох обучения или до достижения признака сходимости функции ошибки.
26. Способ по п. 19, в котором глубокую нейронную сеть оценки движения обучают многократным выполнением следующих операций:
случайным образом выбирают из упомянутых обучающих данных сформированную группу кадров,
на всех кадрах упомянутой группы кадров обнаруживают области повторяющихся структур,
оценивают (a) векторы движения в первый ключевой кадр, ближайший к интерполируемому кадру, и векторы движения во второй, отличающийся от первого, ключевой кадр, ближайший к интерполируемому кадру, из интерполируемого кадра, и (b) весовые коэффициенты, используемые для смешивания компенсированных кадров, полученных с помощью оцененных векторов движения при компенсации движения, подавая ключевые кадры из упомянутой группы кадров и обнаруженные области повторяющихся структур на ключевых кадрах в обучаемую нейронную сеть оценки движения,
получают интерполированный кадр, выполняя компенсацию движения с использованием упомянутых ближайших ключевых кадров и полученных оценкой (a) векторов движения и (b) весовых коэффициентов,
вычисляют значение функции ошибки как сумму (i) ошибки, связанной со степенью подобия между кадром эталонной интерполяции и интерполированным кадром, и (ii) ошибки, связанной со степенью самоподобия тех векторов движения из векторов движения, полученных оценкой движения, которые принадлежат к области повторяющихся структур, обнаруженной на кадре эталонной интерполяции, и
осуществляют обратное распространение ошибки путем вычисления градиентов и обновления параметров обучаемой глубокой нейронной сети оценки движения.
27. Способ по п. 26, дополнительно содержащий:
выполнение регуляризации тех векторов движения из полученных оценкой векторов движения в первый ближайший ключевой кадр из кадра эталонной интерполяции, которые начинаются в областях повторяющихся структур, обнаруженных на кадре эталонной интерполяции,
выполнение регуляризации тех векторов движения из полученных оценкой векторов движения во второй ближайший ключевой кадр из кадра эталонной интерполяции, которые заканчиваются в областях повторяющихся структур, обнаруженных на кадре эталонной интерполяции,
при этом вычисление (ii) ошибки, связанной со степенью самоподобия, осуществляют до выполнения упомянутых регуляризаций или после выполнения упомянутых регуляризаций.
28. Устройство (200) интерполяции кадров видео, содержащее процессор (200.1) и запоминающее устройство (200.2), причем запоминающее устройство содержит исполняемые процессором инструкции, которые при исполнении побуждают процессор выполнять способ по любому из пп. 1-27.
29. Считываемый компьютером носитель, хранящий исполняемые компьютером инструкции, которые при исполнении побуждают компьютер к выполнению способа по любому из пп. 1-27.
Печь-кухня, могущая работать, как самостоятельно, так и в комбинации с разного рода нагревательными приборами | 1921 |
|
SU10A1 |
CN 110392264 A, 29.10.2019 | |||
US 11367165 B2, 21.06.2022 | |||
JP 2022517444 A, 08.03.2022 | |||
Способ защиты переносных электрических установок от опасностей, связанных с заземлением одной из фаз | 1924 |
|
SU2014A1 |
CN 115210716 A, 18.10.2022 | |||
JP 3935500 B2, 20.06.2007 | |||
Станок для придания концам круглых радиаторных трубок шестигранного сечения | 1924 |
|
SU2019A1 |
Способ приготовления лака | 1924 |
|
SU2011A1 |
Авторы
Даты
2025-03-11—Публикация
2024-05-20—Подача