Я уже перестал вздрагивать и удивляться, когда звонит телефон и в трубке раздается жесткий уверенный голос: «Вас беспокоит капитан такой-то (майор такой-то), вы можете ответить на пару вопросов?» Почему бы не поговорить с родной полицией…
Вопросы всегда одни и те же. «У нас есть видео с подозреваемым, пожалуйста, помогите восстановить лицо»… «Помогите увеличить номер с видеорегистратора»… «Здесь не видно рук человека, пожалуйста, помогите увеличить»… И так далее в том же духе.
Чтобы было понятно о чем речь — вот реальный пример присланного сильно сжатого видео, где просят восстановить размытое лицо (размер которого эквивалентен примерно 8 пикселям):
И ладно бы только русские дяди Степы беспокоили, пишут и западные Пинкертоны.
Вот, например, письмо из полиции Англии <*****@*****.fsnet.co.uk>:
I have used your filters privately for some time to rescue my poor videos of family holidays but I would like to use the commercial filters for my work. I am currently a Police Officer in a small police force and we are getting a lot of CCTV video, which sometime is very poor quality and I can see how your filters would make a real difference. Can you tell me the cost and if I could use them.Или вот полицейский из Австралии пишет:
Thank you
ПереводЯ уже пользовался вашими фильтрами для личных целей, чтобы спасти свои плохие видео с семейных праздников. Но мне бы хотелось использовать коммерческие фильтры в своей работе. В данный момент я офицер полиции в небольшом подразделении. Мы получаем большое количество видео с камер видеонаблюдения, иногда очень плохого качества, и ваши фильтры действительно помогут. Не могли бы вы сказать мне их стоимость, и могу ли я их использовать?
Спасибо
Hi,Заметим, что письмо очень продуманное, человек беспокоится о том, чтобы алгоритм был опубликован и об ответственности за неверное восстановление.
I work for the Victoria Police in Australia, in the Video and Audio forensics unit. We occasionally receive video from either hand-held or vehicle-mounted cameras. Often these capture interlaced footage of fast-moving events. In particular, the footage which usually has the most «promise», is footage of vehicle number plates. We often find that the subject vehicle will have moved significantly between the first and last field being captured. As a result, we try and reconstruct the whole frame from the two fields, with the second being translated, sometimes rotated, and occasionally the size will be different too (as the vehicle is travelling away or towards the camera.) Marrying these two fields, preferably to sub-pixel accuracy, and reconstructing the frame containing the number plate, can be difficult.
From what I've see of you deinterlacing footage, it may be that your filter can do some, if not all, of what we need. To be honest, as our budget is rather small, it is unlikely that we can afford a commercial license. We do not sell the product, of course, we use it for evidence in police cases. In any case, I thought I would write an email and ask anyway. How much would it cost for a license? Is it possible to test the product on footage, to see if it is appropriate? Does it do some of what we need? Lastly, has the algorithm been published? Working with unknown algorithms is dangerous practice for a court of law. If the evidence results in a man going to gaol for 20 years, it is good practice to know why!
Any information you can offer would be appreciated.
Regards,
Caseworker
Audio Visual Unit
Victoria Police Forensic Services Department
ПереводПривет,
Я работаю в полиции Виктории в Австралии в отделе видео и аудио криминалистики. Время от времени мы получаем видео с ручных камер и видеорегистраторов. Часто эти видео — чересстрочная съемка быстродвижущихся объектов. В частности, наиболее важный материал — номерные знаки транспортных средств. Мы часто обнаруживаем, что рассматриваемое транспортное средство сильно перемещается между первым и последним отснятым полем. В результате мы пытаемся восстановить целый кадр из двух полей, причем второе — сдвинутое, иногда повернутое и время от времени отличающееся размером (когда автомобиль едет к или от камеры). Объединение этих двух полей, желательно в полупиксельной точности, и восстановление целого кадра, содержащего номерной знак, может быть затруднительным.
Я вижу, как вы применяете деинтерлейсинг к кадрам, и может быть ваши фильтры могут сделать что-то, если не все, что нам нужно. Честно говоря, возможно, мы не сможем позволить себе коммерческую лицензию, потому что наш бюджет достаточно мал. Мы не продаем продукт, конечно, мы используем его для доказательств в полицейских делах. В любом случае, я думал, что напишу письмо и все равно спрошу. Сколько будет стоить лицензия? Можно ли протестировать продукт на материале, чтобы узнать, подходит ли он? Делает ли он часть того, что нам нужно? Наконец, был ли опубликован алгоритм?.. Работа с неизвестными алгоритмами — опасная практика в суде. Если доказательства приводят к тому, что человек садится в тюрьму на 20 лет, полезно знать, почему.
Будем благодарны за любую информацию, которую вы можете предоставить нам.
С уважением,
Следователь
Отдела аудио и видео
Департамента судебно-медицинской экспертизы полиции Виктории
Иногда они только в процессе переписки признаются, что они из полиции. Вот, например, карабинеры Италии хотели бы получить помощь:
Dr. VatolinИ, конечно, много обращений обычных людей…
Thanks for the answer.
The answer is worth also for the police forces (Carabinieri investigation
scientific for PARMA ITALY)?
To which software they have been associates your algorithms to you.
We would be a lot.
ПереводДр. Ватолин
Спасибо за ответ.
Подходит ли это для полиции (Подразделение расследований Карабинеров для PARMA ITALY)?
Они интересуются, в каком программном обеспечении используются ваши алгоритмы?
Будем признательны.
Увеличь это! Что, вам жалко правильную кнопку нажать?
Понятно, что весь этот поток обращений появляется не на пустом месте.
«Виноваты» в первую очередь фильмы и сериалы.
Например, тут за 3 секунды кадр сжатого видео увеличивают в 50 раз и из отражения в очках видят улику:
И таких моментов в современных фильмах и сериалах много. Например, в этом ролике совершенно эпично собрали подобные эпизоды из пачки сериалов, не пожалейте двух минут на просмотр:
И когда вы подобное видите в каждом фильме, то последнему ежу становится понятно, что все, что вам нужно — это иметь грамотного компьютерного гения, комбинацию современных алгоритмов, и остается только вовремя скомандовать «STOP!» and «Enhance it!». И вуаля! Чудо произойдет!
Впрочем, на этом уже избитом приеме сценаристы не останавливаются, и их безудержная фантазия идет дальше. Вот совсем чудовищный пример. Бравые детективы по отражению в ЗРАЧКЕ жертвы получили фото преступника. Действительно, отражение в очках уже было. Это банально. Давайте пойдем дальше! Просто у камеры видеонаблюдения в подъезде разрешение совершенно случайно оказалось как у телескопа Хаббл:
В «Пророке» (00:38:07):
В «Аватаре» (1:41:04–1:41:05) алгоритм увеличения резкости, кстати, какой-то необычный по сравнению с другими фильмами: он сначала повышает резкость в отдельных местах, а через долю секунды подтягивает остальное изображение, т.е. сначала левая половина рта, а потом правая:
В общем, в очень популярных фильмах, которые смотрят сотни миллионов, увеличение резкости картинки делается в один клик. Все люди (в фильмах) делают это! Так почему вы, такие умные специалисты, не можете это сделать???
— Я же знаю, это делается легко! И мне точно сказали, что вы этим занимаетесь! Вам что, лень нажать эту кнопку?
// О боже… Проклятые сценаристы с их буйной фантазией…
— Я понимаю, что вы загружены, но речь идет о вашей помощи государству в раскрытии важного преступления!
// Мы понимаем.
— Может дело в деньгах? Сколько вам нужно заплатить?
// Ну как кратко объяснить, что дело не в том, что нам не нужны деньги… А потом еще раз, а потом еще...
Любые совпадения цитат выше с реальными диалогами являются абсолютно случайными, но, в частности, этот текст пишется для того, чтобы отправлять человека сначала внимательно прочитать его, и только потом перезвонить.
Вывод: Из-за того, что сцена с увеличением изображений с камер видеонаблюдения в один клик стала штампом современного кино, огромное количество людей искренне убеждены, что увеличить фрагмент кадра дешевой камеры или дешевого видеорегистратора — это очень просто. Главное — как следует попросить (ну или скомандовать, это как повезет).
Откуда растут ноги
Понятно, что весь этот поток обращений берется не на пустом месте. Мы действительно занимаемся улучшением видео уже около 20 лет, в том числе разными видами восстановления видео (а их несколько видов, к слову) и ниже в этом разделе будут наши примеры.
«Умное» увеличение разрешения в научных статьях обычно называют Super Resolution (сокращенно SR). Google Scholar на запрос Super Resolution находит 2,9 миллиона статей, т.е. тема как бы достаточно хорошо прокопана, и ей занималось огромное количество людей. Если пойти по ссылке, то там какое-то море результатов, один краше другого. Впрочем, стоит копнуть глубже, картина, как водится, становится не столь пасторальна. В теме SR выделяют два направления:
- Video Super Resolution (0,4 миллиона статей) — собственно восстановление с использованием предыдущих (а иногда и последующих) кадров,
- Image Super Resolution (2,2 миллиона статей) — «умное» увеличение разрешения с использованием только одного кадра. Так как в случае одной картинки взять информацию о том, что было в этом месте на самом деле неоткуда, алгоритмы тем или иным способом достраивают (или, условно говоря, «додумывают») картинку — что там могло бы быть. Основной критерий при этом — результат должен смотреться максимально естественно, либо быть как можно ближе к оригиналу. И понятно, что для восстановления того, что было «на самом деле», подобные методы не годятся, хотя увеличить картинку для того, чтобы она получше выглядела, например, при печати (когда у вас есть уникальное фото, но нет версии в большем разрешении) подобными методами очень даже можно.
Как видно, 0,4 миллиона против 2,2 — то есть в 5 раз меньшее число людей занимается собственно восстановлением. Благо, тема «сделай побольше, просто красиво» весьма востребована, в том числе в индустрии (пресловутый цифровой зум смартфонов и цифровых мыльниц). Причем, если погрузиться еще глубже, быстро выяснится, что заметное количество статей по Video Super Resolution — это тоже повышение разрешения видео без восстановления, ибо восстановление — это сложно. В итоге можно говорить о том, что тех, кто «делает красиво», примерно в 10 раз больше тех, кто действительно пытается восстановить. Довольно частая ситуация в жизни, кстати.
Идем еще глубже. Очень часто результаты алгоритма очень хороши, но ему нужно, например, 20 кадров вперед и 20 кадров назад, а скорость обработки одного кадра — около 15 минут при использовании самого продвинутого GPU. Т.е. на 1 минуту видео нужно 450 часов (почти 19 суток). Упс-с-с… Согласитесь, это совсем не похоже на мгновенный «Zoom it!» из фильмов. Регулярно встречаются алгоритмы, работающие несколько дней на один кадр. Для статей более качественный результат обычно важнее времени работы, ибо ускорение — отдельная сложная задача, а большого слона проще кушать по частям. Так выглядит разница жизни и кино…
Запрос на алгоритмы, работающие на видео с разумной скоростью породил отдельное направление Fast Video Super Resolution — 0,18 миллиона статей, включая «медленные» статьи, которые сравниваются с «быстрыми», т.е. реальное число статей о таких методах завышено. Заметим, что среди «быстрых» подходов процент спекулятивных, т.е. без реального восстановления, выше. Соответственно, процент честно восстанавливающих — ниже.
Картина, согласитесь, проясняется. Но и это, конечно, далеко не все.
Какие еще моменты существенно сказываются на получении хорошего результата?
Во-первых, очень сильно влияют шумы. Ниже пример двукратного восстановления разрешения на очень зашумленном видео:
Источник: материалы автора
Основная проблема на этом фрагменте даже не с обычными шумами, а с цветным муаром на рубашке, который сложно обрабатывать. Кто-то может сказать, что сегодня большие шумы не проблема. Это не так. Посмотрите на данные с автомобильных видеорегистраторов и камер видеонаблюдения в темное время суток (как раз тогда, когда они оказываются чаще востребованы).
Впрочем, муар может возникать и на относительно «чистых» с точки зрения шума видео, типа приведенного ниже города (примеры ниже идут на основе этой нашей работы):
Источник: материалы автора
Во-вторых, для оптимального восстановления нужно близкое к идеалу предсказание движения между кадрами. Почему это сложно — отдельная большая тема, но это объясняет, почему сцены с панорамным движением камеры часто восстанавливаются очень хорошо, а сцены с относительно хаотичным движением крайне сложно восстановить, однако и с ними можно в некоторых ситуациях получить вполне неплохой результат:
Источник: материалы автора
И, наконец, приведем пример восстановления текста:
Источник: материалы автора
Здесь фон движется достаточно плавно, и у алгоритма есть возможность «разгуляться»:
В частности, если сравнивать совсем мелкую надпись справа от руки, в том числе на увеличении с классической бикубической интерполяцией, то предельно хорошо видна разница:
Видно, что у бикубической интерполяции прочитать год практически нереально, у Lanczos4, который любят за большую резкость те, кто полупрофессионально изменяет разрешение видео, края четче, конечно, однако прочитать год по-прежнему невозможно. Коммерческий Topaz не комментируем, а у нас четко читается надпись и можно увидеть, что это с большой вероятностью 1809 год.
Выводы:
- Увеличением разрешения занимаются тысячи исследователей в мире, и на эту тему опубликованы миллионы статей. Благодаря этому в каждом смартфоне есть «цифровой зум», который обычно объективно лучше, чем алгоритмы увеличения обычных программ, а каждый FullHD телевизор умеет показывать SD видео, часто даже без характерных артефактов изменения разрешения.
- Восстановлением реального изображения из видео занимается сильно меньше 10% из занимающихся Super Resolution, более того, большинство алгоритмов восстановления крайне медленные (вплоть до нескольких дней вычислений на один кадр).
- В большинстве случаев восстановление рассчитано на то, что высокие частоты в видео более-менее сохранены, и поэтому не работают на видео с существенными артефактами сжатия. А поскольку в настройках камер видеонаблюдения степень сжатия нередко выбирают исходя из желания сохранить побольше часов (т.е. видео сжимается сильнее, и высокие частоты «убиваются»), восстановить такое видео становится практически невозможно.
Как SR выглядит в индустрии
Справедливости ради заметим, что свои (или как минимум купленные) алгоритмы увеличения разрешения сегодня есть у всех производителей телевизоров (нужно из SD картинки на лету делать HD), у всех производителей смартфонов (то, что в рекламе называют «цифровой зум») и т.д. Мы поговорим о результатах Google (и не только). Во-первых, потому что Google очень неплохо и без особого пафоса и маркетинга описывает результаты в своем блоге — и это крайне приятно. Во-вторых, потому что производители смартфонов (например, одна очень известная корейская компания) не чураются использовать, скажем так, Photoshop в рекламе своих технологий (какая разница — пипл все равно проглотит) — и это неприятно. В общем, поговорим про тех, кто описывает свои технологии достаточно честно.
Еще в 2016 году Google опубликовал довольно интересные результаты алгоритма RAISR (Rapid and Accurate Image Super Resolution), использованного в смартфоне Pixel 2. На наиболее удачных картинках результат выглядел просто великолепно:
Источник: AI блог Google
Алгоритм представлял из себя набор фильтров, применяемых после ML классификации, и по сравнению с бикубической интерполяцией (традиционным мальчиком для битья) результат радовал:
По порядку: оригинал, бикубическая интерполяция, RAISR
Но это был Single Frame Interpolation, и на «неудачных» примерах, как листва ниже, картинка становилась весьма неприятно искажена — после увеличения фотография становилась заметно «синтетической». Проявлялся ровно тот эффект, за который не любят цифровой зум современных смартфонов:
Чуда, по сути, не произошло, и Google честно и сразу опубликовали контр-пример, т.е. сразу обозначили границы применимости их подхода и избавили людей от избыточных ожиданий (характерных для обычного маркетинга).
Впрочем, не прошло и двух лет, как было опубликовано продолжение работы, использованное в Google Pixel 3 и кардинально улучшающее качество его съемки, являющееся уже честным многокадровым Super Resolution, т.е. алгоритмом восстановления разрешения по нескольким кадрам:
Источник: AI блог Google
На картинке выше приведено сравнение результатов Pixel 2 и Pixel 3, и результаты выглядят очень хорошо — картинка действительно стала намного четче и хорошо видно, что это не «додумывание», а действительно восстановление деталей. Причем у внимательного профессионального читателя возникнут вопросы по поводу двух вертикальных сдвоенных труб слева. Разрешение явно выросло, при этом шаг алиайсинга (признак реального разрешения) выглядит странно близким. Что это было?
В двух словах разберем алгоритм. Коллеги пошли от изменения интерполяции байеровского шаблона:
Дело в том, что 2/3 информации в реальном изображении на самом деле информация интерполированная. Т.е. ваша картинка УЖЕ размыта и «замылена», но при реальном уровне шумов это не столь существенно. К слову, возможность использовать более сложные алгоритмы интерполяции сделала популярными программы максимально качественного преобразования RAW для фотографий (разница между простым алгоритмом, встроенным в каждый фотоаппарат, и сложным алгоритмом специализированной программы, как правило, хорошо заметна на глаз при увеличении картинки).
Коллеги из Google используют тот факт, что подавляющее большинство фотографий смартфона делают с рук, т.е. камера будет слегка дрожать:
Источник: AI блог Google (изображение нескольких кадров выровнено на пиксельном уровне, чтобы показать субпиксельный сдвиг)
В результате, если снять несколько кадров и оценить сдвиг (а железо, которое в состоянии строить карту motion estimation с четвертьпиксельной точностью есть в любом смартфоне с поддержкой H.264), получаем карту сдвигов. Правда по анимации выше хорошо видно, что с реальным уровнем шумов построение карты сдвигов с субпиксельной точностью — весьма нетривиальная задача, но за последние 20 лет в этой области появились очень хорошие алгоритмы. Конечно, временами и им приходится несладко. Например, в примере выше что-то бликует на одном кадре наверху поручня лестницы. И это еще статическая сцена, нет движущихся объектов, которые иногда не просто движутся, а вращаются, меняют форму, движутся быстро, оставляя большие области открытия (шлейф которых не должно быть видно после обработки). На примере ниже хорошо видно, что происходит с быстро движущимися объектами, если отключить специальную обработку таких случаев (слева отключена, справа включена, если кликнуть — хорошо видны блоки обработки):
Источник: AI блог Google (рекомендуется нажать и посмотреть в большом разрешении)
Жесткие примеры — это пламя, рябь, блики солнца на воде и т.д. В общем, даже в «простой» задаче определения сдвига есть много нетривиальных моментов, заметно осложняющих жизнь алгоритму. Впрочем, сейчас речь не об этом.
Интересно, что даже если камера совершенно неподвижна (например, закреплена на штативе), то можно заставить сенсор двигаться через управление модулем оптической стабилизации (OIS — Optical Image Stabilization). В итоге мы получим искомые субпиксельные сдвиги. В Pixel 3 поддержка OIS реализована, и можно прижать телефон к стеклу и с интересом наблюдать, как OIS начнет по эллипсу перемещать картинку (примерно, как по этой ссылке), то есть даже в этом сложном для него случае закрепления на штативе Super Resolution сможет отработать и поднять качество. Впрочем, львиная доля съемки со смартфонов — это съемка с рук.
В итоге у нас появляется дополнительная информация для построения фотографии большего разрешения:
Как уже говорилось выше, прямым следствием SR является сильное понижение уровня шумов, в некоторых случаях — очень ощутимое:
Источник: AI блог Google
Заметим, что восстановление означает также и восстановление по числу бит на компоненту. Т.е. формально решая задачу увеличения разрешения, тот же самый engine при определенных условиях может не только подавлять шумы, но и превращать кадр в HDR. Понятно, что сегодня HDR используется пока редко, но это, согласитесь, неплохой бонус.
На примере ниже приведено сравнение изображений, полученных при съемке на Pixel 2 и на Pixel 3 после SR при сравнимом качестве сенсора. Хорошо видна разница по шумам и разница по четкости:
Для любителей разглядывать детали выложен альбом, в котором Super Resolution от Google (маркетинговое название Super Res Zoom) можно оценить во всей красе в спектре шкалы приближения изображения на смартфоне (изменение FoV):
Как они скромно пишут — они еще на шаг приблизили качество съемки смартфонов к качеству профессиональных фотоаппаратов.
Справедливости ради заметим, что профессиональные фотоаппараты тоже на месте не стоят. Другое дело, что при меньших масштабах продаж те же технологии для пользователя обойдутся дороже. Тем не менее, SR в профессиональных фотоаппаратах уже появляются.
UPD:
В качестве примера (последняя ссылка — сравнение):
- Testing Sony’s New Pixel Shift Feature in the a7R III, про увеличение разрешения в 2 раза по обоим измерениям (и рекламное видео в котором красиво рисуется, как мы волшебным образом сдвигаемся ровно на пиксел в каждом направлении при накоплении байеровского паттерна),
- Повышение разрешения в Olympus E-M5 Mark II с 16 до 40 мегапикселов,
- Статья с описанием Super Resolution в фотоаппарате Pentax K-1,
- Великолепная статья: Pixel-Shift Shootout: Olympus vs. Pentax vs. Sony vs. Panasonic — сравнение повышения разрешения Pentax K-1, Sony a7R III, Olympus OM-D E-M1 Mark II и Panasonic Lumix DC-G9. Характерно, что обработка движущихся объектов, про которую речь шла выше и которая весьма нетривиальна, есть только у Pentax K-1.
Выводы:
- Алгоритмами Super Resolution сегодня обзаводятся все компании, чьи продукты профессионально работают с видео и фото, особенно хорошо это видно по производителям телевизоров и смартфонов.
- Простой SR: Image Super Resolution — порождает заметные артефакты (неестественная картинка), поскольку не является алгоритмом восстановления.
- Основные бонусы алгоритмов восстановления — уменьшение шума, уточнение деталей, «более честный» HDR, хорошо видимое более высокое качество картинки на телевизорах с большой диагональю.
- Все это великолепие стало возможно благодаря кардинальному (примерно на 3 порядка в числе операций) увеличению сложности алгоритмов обработки фотографии, или точнее — одного кадра видео.
Результаты Яндекс
Поскольку все равно в комментариях спросят, пару слов скажу про Яндекс, который в прошлом году опубликовал свой вариант Super Resolution:
Источник: https://yandex.ru/blog/company/oldfilms
А тут несколько примеров на мультфильмах:
Источник: https://yandex.ru/blog/company/soyuzmultfilm
Что это было? Яндекс повторил технологию Google 2016 года?
На странице описания технологии от Яндекс (маркетинговое название DeepHD) ссылки только на Image Super Resolution. Это означает, что заведомо существуют контрпримеры, на которых алгоритм портит картинку и они встречаются чаще, чем для алгоритмов «честного» восстановления. Зато теме посвящено примерно 80% статей и алгоритм проще реализовать.
На хабре эта технология тоже описывалась (интересно, что автор статьи — выпускник нашей лаборатории), но, как можно заметить по комментариям, авторы не ответили ни на один мой вопрос, при том на другие отвечали. И это, скорее, не авторы злодеи, а политика компании (в других постах, если присмотреться, тоже часто нет ответов на вопросы специалистов). Ибо в блогах технологических компаний нежелание идти глубже в обсуждение деталей реализаций или технологий является нормальным явлением. Особенно, если при этом создается лучшее впечатление о технологии/продукте. Или конкуренты могут запилить то же самое быстрее. Опять же, за посты отвечает маркетинг, и это их непосредственная работа — создание благоприятного впечатления о продуктах компании вне зависимости от качества самих продуктов. Отсюда частое недоверие к информации, исходящей от маркетинга.
Вообще, стоит весьма скептично относиться к картинкам компаний из серии «как мы сделали всем всё хорошо» по следующим причинам:
- Авторы алгоритмов обработки хорошо знают, что практически не бывает алгоритмов, которые в некоторых случаях не порождали бы артефакты. И, собственно, одна из ключевых задач разработчика — уменьшить процент таких случаев (или заметность артефактов в таких случаях) при сохранении качества в остальных случаях. И очень часто это НЕ удается:
- Либо артефакты столь сильны и сложно исправляемы, что весь подход бракуется. Собственно это случай, пожалуй (сюрприз-сюрприз!), большинства статей. Божественные картинки в некоторых случаях (на которые точились) и «it does not work at all» в остальных.
- Либо (и это частая ситуация для практических технологий компаний) приходится несколько пожертвовать качеством в среднем ради того, чтобы артефакты в худших случаях можно было терпеть.
- Либо артефакты столь сильны и сложно исправляемы, что весь подход бракуется. Собственно это случай, пожалуй (сюрприз-сюрприз!), большинства статей. Божественные картинки в некоторых случаях (на которые точились) и «it does not work at all» в остальных.
- Другой частый пример введения в заблуждение относительно алгоритмов обработки — это использование параметров (в т.ч. внутренних параметров) алгоритма. У алгоритмов, так сложилось, есть параметры, а пользователи — и это тоже норма — любят, чтобы была максимум одна кнопка «включить». И даже если настройки есть, то массовый пользователь их не использует. Именно поэтому компании при покупке технологии «стопятьсот» раз переспрашивают «Это точно полный автомат?» и просят много примеров.
- Соответственно, частая история — публикация результата, который был получен при определенных параметрах. Благо разработчик хорошо их знает, и даже когда их под полсотни (реальная ситуация!), очень быстро подбирает их так, чтобы картинка была волшебна. Ровно эти картинки зачастую и идут в рекламу.
- Причем разработчик может даже быть против. Маркетинг видит новые присланные примеры и говорит «на них ничего не видно, в прошлой презентации у вас же были нормальные примеры!». И дальше им можно пытаться объяснить, что новые примеры — это то, что люди реально увидят, а в прошлой презентации показывались потенциальные результаты, которых можно достичь по предварительным исследованиям начала проекта. Это никого не волнует. Пипл получит картинку «где видно». В некоторых случаях даже крупные компании используют «photoshop». Хавать подано, господа пипл! )
- Соответственно, частая история — публикация результата, который был получен при определенных параметрах. Благо разработчик хорошо их знает, и даже когда их под полсотни (реальная ситуация!), очень быстро подбирает их так, чтобы картинка была волшебна. Ровно эти картинки зачастую и идут в рекламу.
- Кроме того, если речь идет про видео — открывается просто огромные просторы для
махин…хорошего маркетинга! Ибо, как правило, выкладываются кадры, а качество сжатого видео всегда осциллирует и зависит от массы параметров. Опять же — можно несколько технологий грамотно применять, время обработки, опять же, может быть разным. И это не все, простор велик.
- В рекламе Яндекса указано, что технология DeepHD работает в реальном времени, поэтому уже сегодня с ее использованием можно смотреть телевизионные каналы. Выше объяснялось, что скорость работы — ахиллесова пята Super Resolution. Достоинство нейросетей, безусловно, в том, что обучаясь долго, работать они в некоторых случаях могут очень быстро, но все равно я бы посмотрел (с огромным профессиональным интересом), в каком разрешении и с каким качеством алгоритм работает в реальном времени. Обычно создается несколько модификаций алгоритма и на больших разрешениях при real-time многие «фишки» (критичные для качества) приходится отключать. Очень многие.
- В черно-белых примерах при внимательном рассмотрении видно, что меняется локальная яркость. Поскольку правильный SR яркость не меняет, то это, похоже, работал еще какой-то алгоритм, возможно не один (по результатам видно, что это не Single Frame Processing, точнее похоже не только). Если посмотреть кусок большего размера (хотя бы 100 кадров), картина будет понятна. Впрочем, измерение качества видео — это отдельная очень большая тема.
- В рекламе Яндекса указано, что технология DeepHD работает в реальном времени, поэтому уже сегодня с ее использованием можно смотреть телевизионные каналы. Выше объяснялось, что скорость работы — ахиллесова пята Super Resolution. Достоинство нейросетей, безусловно, в том, что обучаясь долго, работать они в некоторых случаях могут очень быстро, но все равно я бы посмотрел (с огромным профессиональным интересом), в каком разрешении и с каким качеством алгоритм работает в реальном времени. Обычно создается несколько модификаций алгоритма и на больших разрешениях при real-time многие «фишки» (критичные для качества) приходится отключать. Очень многие.
Выводы:
- Надо понимать, что маркетологи часто используют свои приемы ровно потому, что это работает (и еще как!). Подавляющее большинство людей
не читают хабрне желают глубоко разбираться в теме и даже не ищут мнения эксперта, им достаточно рекламы (иногда — голимой рекламы). Что регулярно приводит к разного рода перекосам. Желаю всем поменьше вестись на рекламу, особенно когда storytelling на высоте и будет очень хотеться поверить в чудо!
- И, безусловно, очень хорошо, что в Яндексе тоже работают над темой и делают свой SR (точнее, свое семейство SR).
Перспективы
Вернемся к тому, с чего начинали. Что же делать тем, кто хочет увеличить сжатое видео? С этим совсем все плохо?
Как было описано выше, алгоритмам «честного» восстановления критично даже слабое изменение изображения в области, буквально на уровне шумов. То есть, критичны высокие частоты в изображении и их изменение между кадрами.
При этом главное, за счет чего производится сжатие видео — это удаление межкадровых шумов. На примере ниже межкадровая разница шумного видео до компенсации движения, после компенсации (при слабом сжатии) и после ощутимого сжатия — почувствуйте разницу (контраст поднят примерно в 6 раз, чтобы было видно детали):
Источник: лекции автора по алгоритмам сжатия
Хорошо видно, что с точки зрения кодека идеальная область — это область, движение в которой было полностью скомпенсировано и на которую более не надо тратить ни бита. Ну чуть-чуть бит можно потратить, что-то минимально подправить. И таких областей может быть довольно много. Поэтому Super Resolution лишается своего «основного хлеба» — информации о том, что в этом месте находится в других кадрах с учетом субпиксельного сдвига.
Если посмотреть по статьям, то даже для относительно простого JPEG на jpeg restoration находится 26 тысяч результатов, а для jpeg recovery — 52 тысячи, причем это вместе с восстановлением битых файлов и т.д. Для видео ситуация похуже mpeg restoration — 22 тысячи, т.е. работы, конечно, ведутся, но масштабы с масштабами работ по Super Resolution не сравнимы. Работ примерно на порядок меньше, чем по восстановлению разрешения видео и на два порядка меньше, чем Image Super Resolution. Два порядка — это много. Мы подход к снаряду тоже делали (поскольку и сжатием, и обработкой занимаемся давно), там есть с чем работать, особенно если качество осциллирует или используется что-то типа M-JPEG (еще недавно — частая картина в видеонаблюдении). Но это все будут частные случаи.
По результатам статей по ссылками выше также видно, что результаты иногда очень красивые, но получены для очень частных случаев. Т.е. завтра в каждом смартфоне эта функция, увы, не появится. Это плохая новость. Хорошая — послезавтра и на компьютере с хорошим GPU — появится точно.
Причины:
- Постепенно дешевеют устройства накопления (SD-карты для регистраторов, диски для камер видеонаблюдения и т.д.) и повышается средний битрейт сохранения видео.
- Также при сжатии постепенно переходят на стандарты следующих поколений (например, на HEVC), что означает заметное повышение качества при том же битрейте. Последние 2 пункта означают, что постепенно качество видео будет все выше, и начиная с какого-то момента начнут работать хорошо проработанные алгоритмы Video Super Resolution.
- Наконец, совершенствуются алгоритмы. Особенно хороши достижения алгоритмов на основе машинного обучения за последние 4 года. В этом плане с большой вероятностью можно ожидать что-то типа такого:
Т.е. в алгоритме будет явным образом использоваться информация о движении, полученная от кодека, и далее эти данные будут скармливаться нейросети, обученной на восстановлении артефактов, характерных для конкретных кодеков. Такая схема выглядит на данный момент вполне достижимой.
Но в любом случае нужно четко понимать, что текущее восстановление — это, как правило, увеличение разрешения в 2 раза. Реже в некоторых случаях, когда исходных материал не сжимался или почти не сжимался, речь может идти о 3-4 разах. Как видите, это даже близко не 100-1000 раз увеличения из фильмов, когда 1,5 пиксела убитой шумами ночной записи превращаются в превосходного качества номер машины. Жанр «научная фантастика» следовало бы присваивать по факту большему проценту фильмов и сериалов.
И, конечно, будут попытки сделать что-то универсальное, в рамках модного тренда «главное запилить слоев побольше». И тут стоит предостеречь от «ура-ура» реакции на рекламные материалы на эту тему. Ибо нейросети — это самый удобный framework для демонстрации чудес и разного рода спекуляций. Главное — грамотно подобрать обучающую выборку и финальные примеры. И вуаля! Зрите чудо! Очень удобно в плане окучивания инвесторов, кстати. То есть крайне важно, чтобы работоспособность технологий подтверждалась кем-то независимым на большом количестве разнородных примеров, что демонстрируется крайне редко. Для компаний даже привести один-два примера, когда технология не работает, приравнивается сегодня к гражданскому подвигу.
Ну и чтобы жизнь медом не казалась — напомню, что сегодня популярен так называемый транскодинг, когда на деле приходится работать с видео, которое изначально было пожато каким-то одним алгоритмом, а потом пережато другим, при этом используются другие вектора движения, снова уничтожаются высокие частоты и т.д. И то, что человек там все видит хорошо, не означает, что обрабатывающему такое видео алгоритму будет реально совершать чудеса. Восстанавливать сильно пережатые видео получится не скоро, хотя в целом Super Resolution будет бурно развиваться в следующие 10 лет.
Выводы:В конце прошлого года нами была сделана лекция «Нейросети в обработке видео — мифы и реальность». Возможно, доберемся ее сюда положить.
- Помните, что то, что вы видите в фильмах и то, как оно в реальной жизни — сильно отличается. И не только в плане восстановления сильно сжатого видео!
- Обычно современные алгоритмы повышают разрешения в 2 раза, реже — чуть больше, т.е. никаких 50 раз, привычных по фильмам, скоро ждать не приходится.
- Область Super Resolution бурно развивается и можно ожидать активного развития Video Restoration в ближайшие годы, в том числе восстановление после сжатия.
- Но первое, что мы увидим — это разного рода спекуляции на тему, когда демонстрируемые результаты будут сильно преувеличивать реальные возможности алгоритмов. Be careful!
Stay tuned!
Благодарности
Хотелось бы сердечно поблагодарить:
- Лабораторию Компьютерной Графики ВМК МГУ им. М.В.Ломоносова за вычислительные мощности и не только,
- наших коллег из видеогруппы, благодаря которым представленные выше алгоритмы были созданы, и, особенно, Карена Симоняна, автора статьи, результаты которой демонстрировались выше и который сейчас работает в Google DeepMind,
- персонально Константина Кожемякова, который сделал очень много для того, чтобы эта статья стала лучше и нагляднее,
- компанию Google за великолепный блог и относительно корректные описания созданных технологий и компанию Яндекс за то, что они на широком фронте очень неплохо составляют конкуренцию Google — практически единственный успешный пример в стране, где сервисы Google не запрещены,
- хабровчан denisshabr, JamboJet и iMADik за наводку и ссылки на многокадровый SR профессиональных фотоаппаратов,
- и, наконец, огромное спасибо Вячеславу Нападовскому, Евгению Купцову, Станиславу Грохольскому, Ивану Молодецких, Алексею Соловьеву, Евгению Ляпустину, Егору Склярову, Денису Кондранину, Александре Анзиной, Роману Казанцеву и Глебу Ишелеву за большое количество дельных замечаний и правок, сделавших этот текст намного лучше!
Комментарии (191)
ewrokirill
12.02.2019 09:55-3Изображение. Это информация. И если её нет, то её можно только придумать. Будет красиво, похоже на правду, но это не достоверно. Дальше только вероятность. Классика жанра — Человек, похожий на зам. ген. прокурора… И всё.
3Dvideo Автор
12.02.2019 09:57+2Дочитайте хотя бы до середины)))
Как только появляется видео — появляется возможность реального восстановления, масса ссылок и примеров даны.babylon
12.02.2019 17:46Редко нравятся статьи на подобные темы, но здесь всё четко :))) Есть ли современные материалы про OCR в таком же стиле? Люблю фундаментальный подход. Что нибудь про контурные алгоритмы.
3Dvideo Автор
12.02.2019 21:35Спасибо за бальзам на мою душу )
OCR — это не к нам, но боюсь контурный анализ сейчас вчистую проигрывает нейросетевым подходам и там сильно все поменялось в последние 5 летvconst
12.02.2019 22:22Как сказать… Биберы Флибусты ничего хорошего про новые алгоритмы не рассказывают и предпочитаю не самые новые версии Файнридера. Да и сам я никакого особого прогресса не заметил. Или есть другие программы, новые, на нейросетях и с лучшим качеством распознавания?
ewrokirill
14.02.2019 12:59Я имел ввиду единственное изображение, а не поток кадров. Да и в потоке не все гладко (v
?N) в лучшем случае — статический объект.
Gryphon88
12.02.2019 13:30+2У камеры есть разрешение оптики и разрешение матрицы. Честный SR пытается подогнать разрешение матрицы под разрешение оптики. Информация как бы есть, но пожрата aliasing'ом, но пожрата по-разному в каждом из серии снимков или в зависимости от ориентации объекта относительно камеры. Вот за счёт таких различий и делаются догадки, а затем и восстановление.
MiLip
14.02.2019 12:26Простой пример: фотографы-астрономы.
Если сделать только одно фото, то увидим на нём размытый шарик.
Если сделать много фотографий за короткий промежуток времени, то из них можно вытащить больше информации:
1) сначала отбираются самые резкие фотографии
2) затем они «суммируются» в специальной программе
В итоге фотография планеты получается очень неплохого качества, как если бы это было одиночное фото с телескопа на порядок более дорогого.Gutt
14.02.2019 17:13+1Тут принцип другой. Мы таким образом избавляемся от шумов: при складывании изображений уровень полезного сигнала (с выраженной корреляцией между кадрами в стеке) растёт пропорционально первой степени количества кадров, а уровень шума — пропорционально квадратному корню количества кадров.
Neuromantix
12.02.2019 10:04А есть ли доступные (ооткрытые и тп) программы/плагины для обработки старых фото? А то есть много фоток времен фотиков с разрешением 2-5мпикс с людьми, которых уже нет в живых, но картинки при печати даже 9*12 выглядят ужасно. Хотелось бы что-то с ними сделать.
Arty_Fact
12.02.2019 10:462 мегапикселя прекрасно печатаются на 10х15, а при желании и 20х30. Поэтому дело тут не в разрешении. Я рекомендую обратиться к хорошему ретушеру, а не доверять обработку программам.
Victor_koly
12.02.2019 14:49Вы можете распечатать скажем 1200x600 dpi на фотобумаге. То есть если скажем заложить это как 600 dpi, то на 10x15 дюймов (если уж фото, то большое) выйдет фото 12000x9000 — уже не 2 Мп, а 108 Мп. Предположим, что Вы каким-то фоторедактором склеили такую картинку при исходном файле JPG весом 72 МБайта.
Осталась мелочь — найти принтер с хотя бы таким разрешением и такой фотобумагой.Arty_Fact
12.02.2019 16:40+1Вы как будто придумали какой-то комментарий и на него ответили. Или я где-то опечатался и вы так шутите?
Victor_koly
12.02.2019 21:31Да нет, Вы не опечатались. Просто мне лень было искать разрешение фотопринтеров в сантиметрах и переводить его в дюймы.
3Dvideo Автор
12.02.2019 10:54+1А есть ли доступные (ооткрытые и тп) программы/плагины для обработки старых фото?
Безусловно:
www.google.com/search?q=old+photo+restoration
В целом результат по старым фото может быть лучше, если сканировать пленку правильными сканерами (которые снимают HDR и сразу строят маску царапин и грязи поверх и сразу вычищают все это). На западе такое есть давно, думаю и у нас подобные сервисы должны появиться. Результат с большой вероятностью будет заметно лучше даже ручной ретуши 8-битной картинки.
KinsleR
12.02.2019 10:55К такому лучше подходить индивидуально все же, т.е. фоторедактором каждую, вдобавок можно колоризировать если ЧБ
Neuromantix
12.02.2019 13:28+2К этому, и к предыдущему комментарию — вы вопрос читали? Какие пленки, какая колоризация? Речь идет о цифровых фото, снятых на первые цифровые камеры и первые телефоны с камерами в конце 90-начале 00.
3Dvideo Автор
12.02.2019 13:43Медицина восстановления тут бессильна, а вот сделать красиво могут многие, включая последний фотошоп.
KinsleR
13.02.2019 09:51согласен, я неправильно выразился, имел в виду на них и цвета были адские как правило, и ЧБ было много, и это все так же можно поправить, но все же лучше индивидуально каждую.
Vjik
12.02.2019 20:40Бесплатные не знаю, но есть topaz ai gigapixel, на днях как раз тестил на старых фото, результат поражает. На данный момент лучшее что мне доводилось видеть.
Destructive
12.02.2019 21:28Попробуйте этот сервис.
TVIC
13.02.2019 08:16Спасибо за ссылку. Интересный ресурс. Попробовал увеличить картинку им. Ну что сказать, Topaz AI Gigapixel мне понравился больше. Я не большой специалист, но мне приходится апскейлить картинку старого SD PAL формата для использования в современных проектах. Зачастую мне достаточно 2-х или (реже) 4-х кратного увеличения. Я одну и ту же картинку увеличил для сравнения и letsenhance.io увы внес гораздо больше артефактов, если смотреть с увеличением. И уж точно этот ресурс непригоден для апскейла секвенций из видео, т.к. вносимые артефакты дают ощущение неестественного, «дышащего» шума. А вот Topaz вполне сносно позволяет апскейлить, при этом имеет еще и очень неплохой шумодав. По крайней мере ни «продвинутые» алгоритмы Instant 4k ни даже меедленныыый nnedi3 такого результата не показали.
AngReload
13.02.2019 08:28А можно поподробнее, с картинками Topaz vs LE, интересно понять что вы подразумевате под «дышащим» шумом.
То что nnedi3 плохо ресайзит — неудивительно, ведь это интерполяция.TVIC
14.02.2019 18:54Картинки тут не помогут. На картинках все хорошо. Поскольку там разрешают только 5 картинок бесплатно, я сделал несколько аккаунтов и заапскейлил примерно секунду, слил в видео файл и посмотрел. Вокруг мелких четких объектов наблюдаются артефакты, которые меняются из кадра в кадр и создают впечатление «дышащего» шума. Эффект такой же, как если взять и упаковать в h264 с низким битрейтом слегка зашумленный градиент, но там пляшут квадратики, а тут контур мелких деталей, причем не с частотой кадров, а ощущается медленнее. Не знаю как это лучше объяснить, сами файлы я не сохранил, увы. А вот Topaz с включенным шумоподавлением слегка «съедает» детали, но у него нет подобного побочного эффекта.
alexbuyval
12.02.2019 10:04Спасибо за интересную статью!
Вопрос не совсем по восстановлению разрешения, но все же близок к теме.
Есть интересная статья от Интел по восстановлению очень темных кадров. Интересно Ваше мнение на сколько это может быть работающая технология.3Dvideo Автор
12.02.2019 10:21+1Выше про это мельком есть. Возможное (и относительно простое в реализации) побочное следствие нормального многокадрового восстановления — получение HDR картинки, у которой можно изменить яркость и контраст довольно неплохо и с кардинально более высоким качеством, по сравнению с обработкой конечного кадра.
У Интела — речь про обработку RAW до дебайеринга, это технологии на уровне картинки и скорее вопрос денойзинга. Характерно, что они с результатами с применением денойзинга не сравниваются. Потому и на архиве публикация.
rsashka
12.02.2019 10:07+1Спасибо за развернутый материал! Совершенно не ожидал, что затянет и дочитаю до конца.
Причем сперва казалось, что будет очередной срыв покровов. А в результате оказалось, что подобные технологии действительно существуют (хотя в фильмах действительно перегибают палку)3Dvideo Автор
12.02.2019 10:22Ровно потому, что они существуют и мы ими занимались эти звонки и идут)
А «перегибают» — это вы очень мягко и деликатно выразились! )
Victor_koly
12.02.2019 10:10-1собственно восстановление с использованием предыдущих (а иногда и последующих) кадров
Типичное видео содержит средний битрейт 0.11-0.23 бит/писксель. Если Вы сможете выделить честный кадр, это уже будет JPG (сжатие, ЕМНИП, с помощью Фурье и прореживания полученной 2-мерной матрицы) — это скажем 0.45 бит/пиксель, ну может 1 (то есть при 0.11 бит/пиксель мы можем сохранить менее 25% кадров в качестве 0.44 бит/пиксель).
Конечно какой-то алгоритм начнет работу с этим кадром в качестве 1-3 байт/пиксель, но лишней информации Вы не получите. Можете какие-то нейросети заставить из фото разрешением 720x400 в сжатии JPG (взял условное качество 0.44 бит/пиксель), следующего за ним и предыдущего «полного» кадра выхватить информацию (на любом кадре теряется информация, но это может быть разная информация). Таким образом есть вероятность, что последовательность из 5-9 полных кадров даст получить какую-то картинку.
Вывод — Вам нужно проехать область обзора камеры видеонаблюдения (25 или 30 к/с) за 5 кадров, то есть 0.16-0.2 секунды:)3Dvideo Автор
12.02.2019 10:34Там некорректно считать биты на пиксель. Если у вас чистая идеальная исходная картинка, например, рендеринг с плавным движением — там будет работать восстановление.
На реальном снятом видео сейчас модная тема — карты салиентности. Следующее поколение камер видеонаблюдения будет «больше бит» тратить на движущиеся объекты в ущерб качеству шумов в остальной части кадра. Это сделает рассуждения в подсчете бит на пиксель некорректным.
Victor_koly
12.02.2019 11:05Если плавное движение, то интересно было бы иметь камеру, способную снять скажем 15 к/с, но с HDR. То есть за секунду есть 5 групп по 3 кадра, каждый из которых делается с разным уровнем ISO.
Я согласен, что биты на пиксель для видео штука весьма абстрактная. Каким образом задают понятие «информация о движении» между «полными кадрами» — это я не знаю.
По поводу этого:
Дело в том, что 2/3 информации в реальном изображении на самом деле информация интерполированная.
Ну может 50% инфы мы сохраним в видео типа motionJPG — закодируем в 4:2:2 каждый кадр. А упомянутый тут переход от h.264 к h.265 дает повышение степени сжатия, но за счет этого скажем для процессора Celeron 1005M видео Full HD HEVC было весьма сложным — требовалось использовать более подходящий плеер.3Dvideo Автор
12.02.2019 11:36Если плавное движение, то интересно было бы иметь камеру, способную снять скажем 15 к/с, но с HDR.
Сейчас модная другая тема — снять больше кадров с одной экспозицией и работать с ними. При одинаковой экспозиции одинаковый motion blur и кардинально меньше проблем с сопоставлением движения.
В следующей статье про это немного будет )vconst
12.02.2019 12:08Это вы про «лайфхаки» типа такого, когда в людный день снимают достопримечательности без людей, с помощью hdr с псевдо-брекетингом или софта склеивания панорам?
3Dvideo Автор
12.02.2019 12:16+1Тоже прикольная тема, но будет про вычисляемую экспозицию в видео )
Мы как-то по видео больше )
Gutt
14.02.2019 21:36интересно было бы иметь камеру, способную снять скажем 15 к/с, но с HDR. То есть за секунду есть 5 групп по 3 кадра, каждый из которых делается с разным уровнем ISO.
Это уже минимум лет пять как есть. Hikvision, к примеру, называет эту технологию WDR. Только потом эти три кадра сливаются в один с компрессией динамического диапазона.Victor_koly
14.02.2019 23:41Ну я не считаю, что придумал что-то, что не придумали Hikvision 2-3 года назад (а до этого я и не знал производителей камер толком).
Zangasta
12.02.2019 10:21Чуть чуть в сторону от темы — о поимке преступника по фото.
Видел в 00вые документальный фильм, который сильно меня удивил — речь шла о поимке преступника, совершившего преступления в 70ые. Полицейские пригласили эксперта, который должен был состарить фото подозреваемого на 20 лет, чтоб попытаться найти еще раз.
Старик эксперт — предложил бредовую (на мой взгляд) методику. Он начала лепить из пластилина голову преступника, приговаривая что только этот способ надежно показывает как человек старится.
Выглядело это ужасно — как какой-то обряд вуду. Фото маленькой пластилиновой головы было совершенно не похоже на фото молодого преступника. Я предсказуемо прошелся по поводу развода полицаев хитрожопым экспертом.
И был не прав. Преступника удалось задержать. По фото маленькой, сморщенной пластилиновой головы. И что самое удивительное — голова реально была похожа на пойманного старика — обеспечивая стопроцентное узнавание.
Это я к чему? На мой взгляд, можно «восстановить» — а точнее дорисовать человека с сильно пережатого видео со статьи — только делать это должен эксперт, а не алгоритм.dilix
12.02.2019 10:39Так ведь то, про что в статье и пишут
Божественные картинки в некоторых случаях (на которые точились) и «it does not work at all» в остальных.
«Эксперт», как вы его назвали, это тот кто настраивает алгоритм, так, чтобы в конкретно отдельном взятом случае,пластилиналгоритм отработал с вау-эффектом, правда в «массмаркете» этот же алгоритм налажает — это и проблема.3Dvideo Автор
12.02.2019 10:48Согласен в том плане, что иногда «подтянуть» качество картинки методами обработки видео будет можно. И настраивать должен эксперт. И действительно будет реально больше деталей видно. Просто для алгоритмов сжатия эта задача настолько нетривиальна, что ее пока даже копают слабо. Раз в 100 слабее красивого улучшения картинок. Хотя надежда есть.
vconst
12.02.2019 12:36В «бредовом» примере выше — уже не обязательно участие эксперта, по крайней мере, на современном этапе. Нейросети в два клика состарят онлайн любую фотографию. Они уже научились читать рентгеновские снимки лучше профессиональных врачей, а главное, они, за относительно короткое время, могут выдать много вариантов одной и тоже работы. Экспертам остается только выбирать наиболее удачные.
Насколько продвинулись эти технологии именно в подобной обработке видео? Уже можно залить на сервер файл и натравить на него нейросеть, или надо все еще «маять вещь» руками?3Dvideo Автор
12.02.2019 12:45+4Нейросети в два клика состарят онлайн любую фотографию.… Экспертам остается только выбирать наиболее удачные.
Австралийский следователь в письме выше не зря переживал.
Проблема нейросетей в том, что «удачный» вариант будет категорически зависеть от того, на чем нейросеть обучали. Сейчас размер выборок, конечно, растет, но шансы на неудачное «додумывание» из-за которого сядет не тот человек все равно велики. Поэтому я последовательно выступаю за восстановление, хотя оно сложнее и математически, и технически, и занимается им намного меньше людей.vconst
12.02.2019 12:54Это я понимаю. Потому привел пример — когда нейросети легко справляются с работой, от которой зависит только веселье участников.
Но если оставить в стороне полицейский аспект работы.
Получится ли тренировать нейросети на намеренно испорченных образцах, выбирая те направления обучения, которые ближе подходят к исходнику?
Например: берется обычный видеорегистратор, и, в бытовых условиях, снимается номер известной машины. Искажения, которые превносятся в изображение — абсолютно реальны, но у нас есть на что ориентироваться, потому что известно, какой результат нужно получить. Это позволит отсеять случаи, когда 6 превращается в 8 и тд тп.3Dvideo Автор
12.02.2019 16:19Это безусловно получится.
По крайней мере минимизировать превращение 6 в 8 можно будет.
vconst
12.02.2019 12:29+1Старик эксперт — предложил бредовую (на мой взгляд) методику
Для человека, поверхностно знакомого с анатомией — в этом нет ничего бредового. Возрастные изменения — распределения жировой ткани и изменение эластичности кожи, давно изучены и легко прогнозируемы. Просто этот эксперт имел навык скульптора и предпочел пластилин — карандашу.
Но да, надо хоть немного уметь в биологию.
RCray
12.02.2019 10:29Спасибо за статью.
Ещё лет 5 назад принимал участие в разработке сопроцессора для смартфонных камер:
— оптическая стабилизация при встряске до ±1.5 градуса и 10-15 Гц
— геометричесакие искажения в случае тонкой (~5мм) и дешёвой оптической системы
исправляли практически без искажений
— исправление смаза слепой деконволюцией
3Dvideo Автор
12.02.2019 10:38+1Картинки не прогрузились, но все так — там довольно много (и со временем все больше и больше) алгоритмов работает над фотографией. Нам интересны в основном те из них, кто родом из обработки видео, как гугловый выше )
ProLimit
12.02.2019 10:48+1Интересно, есть ли подробности? Где используется?
10-15 Гц — это с каким коэффициентом ослабения (в dB)? и какой самый минимальный?
Насчет слепой деконволюции не понял, почему слепая? Наверняка есть гироскоп, т.е. данные о смазе из «первых рук» и с хорошим временным разрешением.RCray
12.02.2019 18:16Выше это 3 разных случая:
- процесс встряски с достаточно большим углом и частотой (камера в нестабильных руках, катер, в машине) действительно компенсировался с помощью MEMS гироскопа, датчика Холла и PID-регулятора.
- геометрические barrel/pincushion искажения восттанавливались обратным преобразованием координат от какого-то среднего для всех линз закона искажения.
- деконволюция для деблёра слепая, т.к. обратная свертка с заранее выбранной и общей для всех изображений матрицей.
3Dvideo Автор
12.02.2019 18:42Приятно видеть грамотные комментарии коллеги! )
Мы, кстати, экспериментировали с изменением ядра обратной свертки, которое строилось с учетом motion estimation. Там можно хорошо наиграть по резкости, но не для массового использования, увы, из-за нестабильного качества.
staticmain
12.02.2019 10:37А где можно в живую попробовать этот SuperResolution на домашней машине? Пусть медленно и покадрово.
3Dvideo Автор
12.02.2019 10:40+2На гитхабе есть даже специальный топик
Super Resolution
github.com/topics/super-resolution
и там почти 200 репозиториев.
Будет медленно и покадрово, как заказывали! )
AngReload
12.02.2019 11:17В аватаре, кажется, было не повышение разрешения, а гораздо более реалистичная деконволюция блюра.
3Dvideo Автор
12.02.2019 11:41+2А вы попробуйте эту деконволюцию применить к реальным видео с регистратора, а потом поговорим )
Сразу скажу — работать для реального кейса большой ГРИП регистраторов не будет.
Почему не будет, что будет, а также как делают такие картинки для рекламы — тянет на отдельную статью.AngReload
12.02.2019 12:47+1Не хочу показаться грубым, но я ничего не говорил про видео-регистраторы.
Только то, что кадр "до" из Аватара вовсе не в маленьком разрешении. Он расфокусирован, при том совсем чуть-чуть.
А на хороших данных деблюр способен отработать очень хорошо. В этой сцене нет чего-то чересчур фантастического.3Dvideo Автор
12.02.2019 13:04+2Я ответил на ваш пример )
Деблюр дает очень характерный узор. И в Аватаре просто размыли, а потом вернули как было.
Деблюром мы тоже занимались (наши примеры):
можно смотреть на ноги, в т.ч. человека за игроком, на надпись на спине. Это реальное восстановление в реальном разрешении и видно что где-то движение поймалось нормально, а где-то нет. И характерный узор овершарпенинга при deconvlution появляется.
Я мягко намекаю, что там не все волшебно в жизни. И чудеса пиплу показывают неспортивными методами.shurricken
14.02.2019 09:35как простому потребителю, мне кажется что картинки одинаковые… Одна слишком размазана а другая слишком «резкая». Надпись на спине — 7 вижу и там и там, буквы — ни там, ни там.
Ну… вторая чуть «поприятнее» для глаза. Но такой вид зачастую получается при простом «зашарпливании». Вроде как и приятнее смотреть, но по факту различаемость объектов не повысилась.
Впрочем это относится к большинству примеров — и в этой статье и в подобных статьях.
Здесь — исключение — надпись 1809 год,… но тут только стопкадры… посмотреть бы оригинал и конкуретные видео… По стоп кадру кажется, что алгоритм мог и «додумать» с вероятностью.3Dvideo Автор
14.02.2019 10:10Ну… вторая чуть «поприятнее» для глаза. Но такой вид зачастую получается при простом «зашарпливании».
Скопируйте в фотошоп и попробуйте там поиграться его фильтрами ) Получится как-то так:
Можете сами взять картинки и еще поиграться, в стремлении наиграть больше, а заодно приблизить, посмотреть.
как простому потребителю, мне кажется что картинки одинаковые…
Да, это НОРМА! ) Реально очень много людей не видят разницы. Хуже всего видят разницу по резкости те, у кого зрение севшее, даже на большом экране. Именно поэтому в фильмах и показывают чудесное увеличение разрешения в 50 раз, что в этом случае его видит последняя бабушка. ) А 2 раза, которые сегодня максимальный «честный» результат на обычных видео, многим не видно. Поэтому по масштабу исследований примерно в 10 раз популярнее разные «улучшатели» и «додумыватели», чем существенно более сложные «восстанавливатели».
По стоп кадру кажется, что алгоритм мог и «додумать» с вероятностью.
Уже писал, что задумался о конкурсе с призом 10 тысяч рублей за Action фотошопа, который встроенными фильтрами увеличивает разрешение так, как это делает Video SR. Можно и 100 тысяч долларов, надо только правила продумать, чтобы нельзя было заточиться под конкретную картинку, а так — флаг в руки так «додумывать» (чтобы было виднее — ниже картинка из статьи, увеличенная в 2 раза))):
Если на consumer market рекламировать — хорошая акция ) Тут для алгоритмов додумывания золотистые листики — это как раз раз классический контр-пример, они все на них умрут (выдадут синтетически выглядящее нечто))).vconst
14.02.2019 11:24Да, это НОРМА! ) Реально очень много людей не видят разницы.
О чем я и говорил. Если картинки не увеличивать и не сравнивать попиксельно, то в подавляющем большинстве сюжетов — не отличить от обычного аншарпа.
Стоит ли овчинка выделенки?3Dvideo Автор
14.02.2019 12:22Стоит ли овчинка выделенки?
Ровно этим вопросом постоянно задаются менеджеры компаний (не только эффективные).
И ровно по этой причине на «красоту» выделяются на порядок большие деньги, чем на восстановление. Красоту сразу видно, и она дешевле во всех смыслах (от денег до количества операций на пиксель).vconst
14.02.2019 12:28А найдется фото этого герба, в по настоящему высоком разрешении, чтобы сравнить с работой алгоритма?
shurricken
14.02.2019 11:31а так — флаг в руки так «додумывать» (чтобы было виднее — ниже картинка из статьи, увеличенная в 2 раза))):
ну… я верю, что в видео, за счет того что картинка на разных кадрах разные пиксели «засвечивает» для видеокамеры и можно «вытащить» алгоритмом много пикселей. Но вот примеры пока не увидел яркие. А улучшение четкости… ну вроде как лучше… но не «вау» !))
А про просто статические картинки и «умные деблюры» — более скептическое отношение.3Dvideo Автор
14.02.2019 12:27«Вау» — это или маркетинг показывает что-то на грани (за гранью) мухлежа (в статье выше про методы мехлежа отдельный раздел) или к киношникам )
И оно великолепно заходит! (даже если реально не работает и чистый фотошоп или фантастика)))
А то, что реально поднимает разрешение и реально восстанавливает исходный сигнал как-то побочно развивается и даже иногда получает финансирование ) Изредка )
А дальше даже инвесторы приходят. Задают вопросы. Но как только осознают сложность задачи восстановления — вежливо прощаются )
xakep2011
12.02.2019 15:24+1Кажется я понял. В рекламных целях делается какой-то идеальный блюр, который потом благополучно убирается. В реальности же оптика из-за неровностей объективов не даёт идеального блюра и трюк не проходит. Так?
AngReload
12.02.2019 16:59+2Ага. Для красивых картинок обычно делается в фотошопе размытие по диску и результат бережно сохраняется в PNG, а потом деконволюция запросто его обращает. В реальных изображениях задача посложнее:
- Трудно найти функцию размытия, которую нужно обратить. Это грубый перебор с несовершенной проверкой качества получающегося изображения. Даже в простейших случаях: пятно блюра обычно некруглое, смаз неровный.
- Функция размытия отличается для разных точек изображения. Объекты в кадре находятся на разной глубине, движутся с разной скоростью.
- Краевые эффекты по границам изображения и объектов.
- Неидеальность исходника. Типичные алгоритмы сжатия удаляют малозаметную глазу, но важную для деблюра информацию с изображения. Плюс блочность и шум жипега. Вообще говоря, даже если сжатия нет, шум квантования при большом размытии сильно повлияет на результат.
- Маленький диапазон яркости SRGB, когда все значения обрезаются до 255, следовательно звон вокруг белых пикселей.
3Dvideo Автор
12.02.2019 18:45+1Кажется я понял. В рекламных целях делается какой-то идеальный блюр, который потом благополучно убирается.
AngReload очень хорошо ответил.
Основной чит — это размыть руками с известной функцией размытия. И можно восстанавливать просто обалденно.
DistortNeo
12.02.2019 11:31+1Добавлю свои комментарии по супер-разрешению по нескольким кадрам.
Основной источник информации там — это алиасинг — проникновение высокочастотной информации в кадр при его дискретизации. Субпиксельные сдвиги поднимают частоту дискретизации, чем самым позволяя достать эту высокочастотную информацию. То есть для суперразрешения необходимо два фактора: и сдвиги, и алиасинг.
Высокочастотная информация теряется из-за несовершенства оптики и расфокусировки, а также на физическом антиалиасинговом фильтре — рассеивающей плёнке перед матрицей. Поэтому хорошие результаты можно получить только на синтетических изображениях, но не на реальных. И если нет алиасинга, то информацию восстановить не получится, только дорисовать.
Мы замеряли частотные характеристики камеры одного из топовых смартфонов в идеальных условиях для монохромной камеры — получили максимально возможное повышение реального разрешения всего в 1.3-1.4 раза. Для цветной камеры всё ещё хуже. Есть нет доступа к RAW, то штатный дебайер портит высокочастотную информацию, делая её непригодной для дальнейшего использования. Есть же доступ к RAW имеется, то на выходе получаем двойной геморрой с восстановлением цвета по нерегулярной сетке.
Вывод: при современных разрешениях камер повышение разрешения с помощью многокадрового суперразрешения бессмысленно. Зато можно эффективно понизить уровень шума.3Dvideo Автор
12.02.2019 11:46+1получили максимально возможное повышение реального разрешения всего в 1.3-1.4 раза. Для цветной камеры всё ещё хуже. Есть нет доступа к RAW, то штатный дебайер портит высокочастотную информацию, делая её непригодной для дальнейшего использования. Есть же доступ к RAW имеется, то на выходе получаем двойной геморрой с восстановлением цвета по нерегулярной сетке.
Вы до конца дочитали? Видели что сделал гугл в Pixel3? ) Ровно то, о чем вы пишите. И довольно успешно. И не только в плане шумов.DistortNeo
12.02.2019 11:58Google молодец. А вот остальные вендоры хотят сделать из говна конфетку, не понимая, что для достижения наилучших результатов придётся внести изменения в саму камеру.
3Dvideo Автор
12.02.2019 12:14Как человек, который с ними общается клятвенно заверяю — все они понимают ). Там вопрос вложений в развитие технологий. Плюсе некоторые крупные азиатские (не будем называть имена)) сначала смотрят, что получится у других, а потом сталкиваются с проблемой патентов. Приходится использовать маркетинг )))
Но инженеры там хотят, чесслово! ) И даже с камерами активно экспериментируют!DistortNeo
12.02.2019 12:24Даже если рассматривать вариант, чтобы что-то улучшить без вложений, то какого чёрта они не могут предоставить доступ к сырому выходу со своей камеры? Нет, блин, вот вам жпеги — а теперь делайте супер-разрешение.
3Dvideo Автор
12.02.2019 12:33+1Политика, мать ее… Уверяю вас — это решают не инженеры.
Сейчас камеры быстро совершенствуются и у топовых моделей реально большая конкуренция по качеству фото. Менеджеры боятся реверс-инжиниринга, надо полагать.
Можно прогнозировать через какое-то время произойдет то же, что и с фотоаппаратами, т.е. сделают возможность RAW отдать и будет с чем работать. Пока запрос на RAW, очевидно, мал.rogoz
12.02.2019 16:14+1Вроде же RAW (DNG) большинство телефонов умеет со времён появления Camera2 API (Android 5.0), не? Старичок Nexus 5 умеет, Samsung Galaxy начиная с S6 умеют, Xiaomi Pocophone F1 умеет, по моему большинство умеет.
Или проблема в софте, тогда возникают такие рецепты:
как же добавить поддержку RAW на Xiaomi Mi 6, где официально снимать фотографии в этом формате нельзя.
Даже в дешёвом смарте возможность есть.
В двух словах объясним, как это сделать, если у вас уже есть рут. Для этого всего лишь нужно дописать строчку “persist.camera.HAL3.enabled=1” в системном файле build.prop.excentrisitet
12.02.2019 17:19Samsung Galaxy начиная с S6 умеют
Вы имеете ввиду принципиальную возможность после перепрошивки?
В том же Galaxy s9 возможность съёмки в раве из коробки маркетологи выпилили. Как раз-таки из-за этого проклятого
пользователи — и это тоже норма — любят, чтобы была максимум одна кнопка «включить»
Поэтому, т.к. мне очень не хотелось перепрошивать новый телефон — взял себе предыдущую модель, которая умеет в raw без плясок с бубном.rogoz
12.02.2019 18:39В каком смысле выпилили? Галочку из стандартного приложения для фото?
Я на 95% уверен, что на S9 можно установить например это, без перепрошивки и рута, и будет DNG.
kSx
12.02.2019 23:24В настройках дефолтного приложения-камеры, в «Параметрах сохранения» есть опция сохранения RAW для съёмки в Pro-режиме.
denisshabr
12.02.2019 11:38>>Очень часто результаты алгоритма очень хороши, но ему нужно, например, 20 кадров вперед и 20 кадров назад, а скорость обработки одного кадра — около 15 минут при использовании самого продвинутого GPU
Многие готовы были бы подождать сколько угодно, чтобы дать новую жизнь своим старым ценным видео. Но почти все эти алгоритмы дальше PDF не ушли, нет готового инструмента для запуска.
По поводу второго раздела с SR из нескольких кадров фото: это есть уже из коробки с 2017 года у многих фото-производителей, например у Olympus и Sony это называется Pixel Shift Multi Shooting, всё точь в точь как описывает Гугл. Для остальных уже лет 10 это можно делать в Photoacute или Photoshop через объединение слоёв.3Dvideo Автор
12.02.2019 11:53например у Olympus и Sony это называется Pixel Shift Multi Shooting, всё точь в точь как описывает Гугл
С интересом читаю! Единственное — пока не увидел, сдвигают ли они сенсор, если камера на штативе, а так — да, это похоже оно. Спасибо!
Для остальных уже лет 10 это можно делать в Photoacute или Photoshop через объединение слоёв.
Photoshop Action в студию! ) Боюсь, что через слои сколь-нибудь заметно разрешение поднять не удастся. Шумы — да.
Ну и здесь интересно решение из коробки на сравнительно слабом по вычислительной мощности устройстве, конечно.JamboJet
12.02.2019 13:29У Pentax — сдвигается сенсор (благо он в стабилизирующем подвесе): www.pentaxforums.com/reviews/pentax-k-1-review/pixel-shift-resolution.html
Но вообще этой дорогой уже идут все производители: www.bhphotovideo.com/explora/photography/tips-and-solutions/pixel-shift-shootout-olympus-vs-pentax-vs-sony-vs-panasonic3Dvideo Автор
12.02.2019 15:23Супер! Сейчас обновлю. Спасибо огромное, великолепные ссылки, особенно вторая!
denisshabr
12.02.2019 16:23www.dpreview.com/articles/0727694641/here-s-how-to-pixel-shift-with-any-camera прекрасная статья, где сравнили внутрикамерный Dynamic Pixel Shift и фотошоп, последний оказался лучше. Удобно использовать конвертирование слоёв в Smart Object. Впрочем в этом сравнении по ссылке я в упор не вижу разницы с обычным зашарпленным RAW, надо с лупой разглядывать детали. В ночной съёмке, где больше шумов, разница была бы больше.
Photoacute же есть на rutracker.
Alexufo
12.02.2019 17:09Limux GX80 c гуляющей в 5 осях матрицей плюс с гуляющими линзами в обьетиве (OIS)
igenkin
13.02.2019 02:21PhotoAcute можно взять вот тут: www.photoacute.com
Разработка российская. Там у них есть ссылки на научную базу и статьи. Программа давно не обновлялась по причине того, что сейчас многопиксельных камер полно, а жаль. Я ей пользовался много лет и работала она просто отлично. Пользовался бы и сейчас.
engine9
12.02.2019 11:40Вкину три копейки не связанные с темой напрямую. По совету знакомого попробовал применять технику «стекинга» астрофотографов к обычным пейзажам, снятым на фотокамеру. Качество картинки вырастает, разрешение улучшается, уходит шум.
3Dvideo Автор
12.02.2019 11:58+1Да у астрофотографов и компенсация сдвига неба, и подавление шумов за счет пачки снимком (часть из которых отбирается вручную) — базовая техника. Именно чтобы субпиксельные сдвиги кто-то обрабатывал с повышением разрешения — не слышал, хотя может кто и сделал, не слежу, если честно. Но что близко — вы совершенно правы.
engine9
12.02.2019 12:02Причем я использовал астрономический софт с дефолтными настройками и результат сразу был хорошим. Если стекинг делать «пачкой» кадров в фотошопе, то это позволяет давить шум, но резкость по понятной причине (из за микросдвигов камеры и рефракции в атмосфере) уменьшается. Но вторым способом можно получать пристойные ночные снимки даже старыми камерами. Съемка, разумеется, со штатива.
3Dvideo Автор
12.02.2019 12:19Очень прикольно! )
Все шансы, что оно разовьется на профессиональную съемку как минимум неподвижных объектов.
DistortNeo
12.02.2019 12:27+2habr.com/ru/post/173791
www.youtube.com/watch?v=avo3LRTWU3k
Видимо, тут весь прикол в том, что атмосферные искажения имеют довольно плавно изменяющиеся вектора движений, и поэтому оптический поток можно построить довольно точно.3Dvideo Автор
12.02.2019 12:39Хороший пример, спасибо! Кстати — из видео совершенно понятно, почему это не будет работать если просто слои склеивать. И да, таки, похоже, при турбулентности воздуха относительно плавные искажения в основном, а сцену можно считать статичной. Хотя пример с метелью хорош.
excentrisitet
12.02.2019 12:09Именно чтобы субпиксельные сдвиги кто-то обрабатывал с повышением разрешения — не слышал, хотя может кто и сделал, не слежу, если честно.
Применяют. Если разрешение оптики настолько велико, что звёзды проваливаются в один пиксель, то можно увеличить разрешение именно таким способом:
www.astrosurf.com/buil/us/spe9/lrgb3.htm3Dvideo Автор
12.02.2019 12:25Нужно искать описание алгоритма. Подобные результаты для частного случая звезд можно получать без субпиксельных сдвигов дедовскими методами. Но за ссылку спасибо!
Victor_koly
12.02.2019 12:44Имеется в виду идея типа «Сделал кадр с выдержкой 1 секунда, сдвинул камеру на 0.5 пикселя вправо»? И так пройтись как минимум по положениям (0,0), (0.5.0), (0.5,0.5), (-0.5,0) и т.д.
striver
12.02.2019 11:46+1Хм… на прошлой неделе, было ДТП (1 участник скрылся). Есть видео с регистратора очевидца… номер видно только первая буква и 3 цифры — остальное буквы справа не различить. На сколько большая вероятность распознать номер полностью?
Gryphon88
12.02.2019 13:47+2Картинки вслепую обсуждать бесполезно.
striver
12.02.2019 14:19Это понятно. Но видео не мое и не у меня. Я не знаю на каком этапе то ДТП, может уже нашли, нужно интересоваться. К тому же, я не уверен в том, что есть крайняя необходимость в распознавании номера, может уже нашли ибо есть модель и кусок номера, чего вполне может быть достаточно. Я ждал простого ответа. Типа, да можно, это будет стоять н-денег и н-времени. Как-то так.
Gryphon88
12.02.2019 14:28+5Простой ответ невозможен без исходников. Это как просьба рассчитать бюджет на изготовление сайта. Ну, обычно сайта, как у всех.
Porohovnik
12.02.2019 18:08Как раз этот запрос просто рассчитать…
Просто берём выборку около 1000 проектов(или больше)от специалистов с уровнем примерно вашим…
В выборки находим среднеарифметическую цену "обычного" сайта…
striver
12.02.2019 11:49Хм. А можно услышать прогнозы для возможной «реставрации» видео. Например, есть видеоролики миксы на спортивную тему. Есть случаи, когда на общих планах, только с десяток точек на голову спортсмена. То есть, можно ли, в целом, рассчитывать, что такие видео можно будет доводить хотя бы до 720р?
3Dvideo Автор
12.02.2019 12:08Зависит от
- степени сжатия,
- через какие фильтры (особенно денойзеры) проходил результат,
- характера движения объекта
- характера движения камеры и
- размера сцены.
Область пока почти не копают, но она будет активно развиваться, зуб даю)
VitalyZhandarov
12.02.2019 11:57+1Спасибо за статью.
.
P.S. С замиранием дыхания ждал — что же с запросами полицейских, наших и международных???
Помогли ли им или послали?
Облом… Осталось как интрига… :-))))3Dvideo Автор
12.02.2019 12:01Про это было:
Но в любом случае нужно четко понимать, что текущее восстановление — это, как правило, увеличение разрешения в 2 раза. Реже в некоторых случаях, когда исходных материал не сжимался или почти не сжимался, речь может идти о 3-4 разах. Как видите, это даже близко не 100-1000 раз увеличения из фильмов, когда 1,5 пиксела убитой шумами ночной записи превращаются в превосходного качества номер машины.
Более того — сжатое, а тем более сильно сжатое такими методами вообще не восстанавливается, там другие нужны, сложнее.
А им обычно сильно сжатое надо… И не в 2 раза, а больше…
Не помогли, короче, им русские хакеры в этом конкретном случае. Облом-с вышел… )))
RomanArzumanyan
12.02.2019 12:01железо, которое в состоянии строить карту motion estimation с четвертьпиксельной точностью есть в любом смартфоне с поддержкой H.264
Смартфонное железо ищет движение в малой окрестности малых блоков, подбирая вектора движения по критерию минимизации SATD. Т. е. ищет те блоки, которые минимизируют кол-во бит на компенсацию ошибки предсказания и хранение самого вектора движения. Это близко, но не совсем true motion. Кроме того, есть сомнения в качестве «четверть-пиксельности», т. к. 8-тапные свёртки для вычисления четверть-пиксельных значений сильно нагружают шину памяти.3Dvideo Автор
12.02.2019 12:05Что это не true motion — однозначно. И это отдельная большая тема — в чем разница ME для сжатия и фильтрации (а они разные, если результат интересует). Но оптимизировать под фильтрацию поиск с четвертьпиксельной точностью на железе сегодня проблема не такая большая.
vconst
12.02.2019 12:44Как я понимаю — бОльшая часть фотографий в начале, прошли через фильтр повышения микроконтраста в высокочастотной области спектра? Технология стара как мир — еще из пленочной эпохи, отличаются только алгоритмы, но принцип не сильно изменился.
Примеры кадров с чтением года в надписи с гербом — там реальное разрешение или уменьшенное для статьи?3Dvideo Автор
12.02.2019 12:53Как я понимаю — бОльшая часть фотографий в начале, прошли через фильтр повышения микроконтраста в высокочастотной области спектра?
Неправильно понимаете. )
Попробуйте микроконтрастом восстановить все кончики в короне между флагами или дырку нуля в 1809 и вы поймете, о чем выше шла речь )
Примеры кадров с чтением года в надписи с гербом — там реальное разрешение или уменьшенное для статьи?
Реальное. На здании специально кликнуть можно, чтобы реальное открыть.vconst
12.02.2019 13:04Если разрешение реальное, тогда упс…
Но примеры со зданиями habrastorage.org/webt/0a/-x/0z/0a-x0zj47mmkgsa79aiojqtrfco.gif и людьми habrastorage.org/getpro/habr/post_images/4bd/7bb/3da/4bd7bb3da22d2904311d2da762331b5e.gif — очень похожи на обычное повышение микроконтраста.
Я сейчас разглядел гифку со зданием на очень большом разрешении. Действительно, разница с обычным аншарпингом сильно заметна. Но только при большом увеличении. При том размере, что в статье — ничего не разобрать, зато хорошо видно вот так:
iMADik
12.02.2019 13:21Справедливости ради заметим, что профессиональные фотоаппараты тоже на месте не стоят и, очевидно, что через какое-то время все эти технологии там тоже появятся.
Уже появилось, беззеркальные фотоаппараты Олимпус и Панасоник, уже умеют использовать 5- осевую стабилизацию изображения для создания снимков с супер разрешением. Например Olympus OM-D M5M2 с матрицей в 16 МП умеет создавать снимки с разрешением в 40 МП путём сдвига матрицы.
Dnv7
12.02.2019 13:43Тем не менее, SR в профессиональных фотоаппаратах должно скоро появиться: хотя бы для уменьшения шумов при низкой освещенности и увеличения резкости фото.
Если я правильно понял, то подобная технология технология уже используется как минимум в Pentax K-1 под названием «Pixel Shift».genuimous
12.02.2019 15:01Есть мнение (и сложившаяся культура) в том, что от профессионального аппарата требуется лишь максимально точно слить информацию с матрицы. В том числе для возможной обработки в буджущем несуществующими сегодня алгоритмами. Разумеется, культура (и ее адепты) получения сразу готовой картинки тоже есть. Но это mad skill + ограниченные условия (в основном, в студии — с флэшметром, штативом и прочим хардкором). Что касается всяких пентаксов, то всякого рода таких алгоритмов масса, тот же айфон способен демонстрировать потрясающий для своих размеров результат.
3Dvideo Автор
12.02.2019 15:25подобная технология технология уже используется как минимум в Pentax K-1 под названием «Pixel Shift»
Да, сейчас обновлю. Причем у Pentax K-1 чуть не у единственного нормальная обработка движения, т.е. можно движущиеся объекты в этом режиме снимать.
Gryphon88
12.02.2019 14:061. Как в смартфонах делается сопоставление положения камеры и времени между кадрами? Насколько хороша синхронизация между акселерометрами и триггером экспозиции?
2. Есть ли значительные различия в SR с помощью CCD и CMOS камер?3Dvideo Автор
12.02.2019 15:361. что такое сопоставление положения и времени?
2. конечно, при учете сдвига и байеровского паттерна. Т.е. алгоритм нужно тюнить под другой вид сенсораGryphon88
12.02.2019 15:531. Допустим, мы едем в машине по лесу. Тогда, чтобы просчитать субпиксельный сдвиг, нам надо знать, сколько машина прошла за время между двумя кадрами, мгновенное ускорение во время экспозиции и прочее.
2. Давайте для простоты считать матрицы монохромными без зазоров между пикселями и с одинаковым откликом число фотонов-заряд у пикселей, так оно как-то уютнее :) Можете кинуть ссылку на какой-нибудь алгоритм, который учитывает, что у CCD считывание кадрами, а у CMOS строками? Если у CMOS-камеры есть burst mode, на построчном считывании можно попробовать отыграть или число кадров, или необходимое на расчёт время.
DistortNeo
12.02.2019 15:471. Если вы про вычисление межкадровых сдвигов, то с помощью соответствующих алгоритмов обработки изображений, предполагающих относительную постоянность сцены. Акселерометры и гироскопы тут никак не используются — их точность слишком мала, даже чтобы грубо оценивать сдвиги.
Gryphon88
12.02.2019 15:55Жаль, надеялся, допилили. Движение без ускорения достаточно простой вариант, а вот если дёрнулись во время экспозиции, то у нас PSF сдвига может быть разной для частей изображения.
DistortNeo
12.02.2019 16:00Если вы про смаз в процессе экспозиции, то это вообще отдельная задача, далеко не самая простая. Да, он сильно мешает. Но если сделана серия снимков и смазанный получился только один, то разумнее его просто выбросить из дальнейшей обработки.
Gryphon88
12.02.2019 16:22Просто привык к микроскопии: слишком расточительно выкидывать кадры и сцену нельзя считать постоянной, зато известен профиль движения сцены относительно камеры. Думал, что все такие жадные и паранойяльные :)
genuimous
12.02.2019 14:35+1Большинство приведенных примеров это просто лишь хороший ресайз+ресемпл + умный шарп. Лишь на небольшой части видно, что алгоритм пытался дорисовать отсутствующие детали. Причем совершенно не ясно, это реальная работа или рекламная карточка. Если реальная — то это крутяк. Использование соседних кадров, разумеется, обязательно, ведь надо же откуда-то брать информацию.
DistortNeo
12.02.2019 14:38Пользователь хочет, чтобы было красиво, а не достоверно — пользователь получает красиво.
3Dvideo Автор
12.02.2019 15:34Причем совершенно не ясно, это реальная работа или рекламная карточка.
Существует точка зрения, что все эти миллионы статей про Super Resolution — это одно большое надувательство ). С ней невозможно спорить )))
Добавлены ссылки на SR в профессиональных фотоаппаратах.genuimous
12.02.2019 16:30Спасибо. Я не имел ввиду надувательство вообще, я лишь про то, что бОльшую часть примеров можно воспроизвести в фотошопе путем последовательного применения привычных фильтров (да, ручного, но простого), что действительно выглядит как надувательство, потому что не являет собой ничего необычного. Поэтому более интересны другие примеры, где есть реальное увеличсеие разрешения без шарпа и чрезмерного шумодава. Кстати, в фотоаппаратах не обязательно байеровская структура, см. например матрицы от Fuji — они эксперементировали с иным расположением субпикселей и достигли некоторого успеха. А в фотоаппаратх Sigma применяются многослойные матрицы, у них разрешение матрицы равно реальному (если не умножать заявленное разрешение на 3). Наконец, было крайне оптимистично называть приведенные вами игрушки профессиональной техникой (никак не комментирую сам термин, пусть это останется на совести тех кто пудрит мозги всякой маркетинговой чушью, но с таким подходом айфон тоже можно назвать профессиональным — я серьезно). Если вы затронули тему фотоаппаратов, неплохо было бы ее развить и выразить более предметно.
3Dvideo Автор
12.02.2019 19:13я лишь про то, что бОльшую часть примеров можно воспроизвести в фотошопе путем последовательного применения привычных фильтров (да, ручного, но простого), что действительно выглядит как надувательство, потому что не являет собой ничего необычного.
У меня другая точка зрения по этому вопросу )
Я тут осознал, что можно делать конкурс — сулить 10000 рублей тому, кто приведет Photoshop Action, переводящий левую картинку в правую (это к вопросу о примерах), причем умеющий так делать и на других картинках: )
Да, она резче, но ровно потому, что на ней благодаря восстановлению Video SR реально появились детали. И у меня сильнейший профессиональный интерес пользователя фотошоп с 25 летним стажем — какими «привычными фильтрами фотошопа» это можно сделать )))
Автор этого алгоритма не зря покинул нас и сейчас работает в Google DeepMind, с кондачка к счастью или к сожалению, эта задача не решается.genuimous
12.02.2019 19:39Конкретно это никакими. Нужно было побольше выложить таких примеров в статью. Кстати, в фотошопе есть нейросетевое увеличение, можно бы поиграться, но не за 10 тыр.
3Dvideo Автор
12.02.2019 21:25Эта оценка меня радует )
В Photoshop реализован Image SR, конкретно на этой картинке он и корону попортит, и золотистые листики под флагами. Пасть, ухо и глаз зверя не сможет восстановить. Заметно лучше станет только древкам флагов и прочим резким границам.
Alek_roebuck
13.02.2019 00:23Во-первых, это не миллионы статей, а крайне грубая оценка гугля. Увидеть из них вы можете максимум тысячи. Научных статей в мире всего опубликовано несколько десятков миллионов — во всех дисциплинах за всю историю. Вы же сами пишете про тысячи учёных, кто этим занимается: даже если десять тысяч учёных написали бы по сто статей, и все без соавторов, получился бы только миллион.
Во-вторых, если пробежаться по вашей же ссылке на сколар, то создаётся впечатление, что подавляющее большинство статей по запросу super resolution посвящены вовсе не восстановлению оптического изображения с повышением разрешения, а либо разного рода микроскопии, не обязательно оптической, либо методам обеспечения высокого разрешения (ещё до снятия самого изображения).
ntfs1984
12.02.2019 15:25+1А было бы здорово…
./convert -i bumblebee-camrip.avi -o bumblebee-bdrip-fullhd.mkv
Spaceoddity
12.02.2019 15:46Зачем тут эти рекламные картинки? Снимите миру со смазом, расфокусом и т.п. Прогоните через алгоритм и замерьте итоговое разрешение.
3Dvideo Автор
12.02.2019 16:27Характерно, что при сравнении профессиональных фотоаппаратов тоже не сняли миру, а опять мост.
Заговор? )genuimous
12.02.2019 16:33-3Указанные в статье карманные фотобрелки, внешне выглядящие как фотоаппараты (никоим образом не умаляю их достоинств, которые, вне вского сомнения, у них есть), рассчитаны на ЦА, которая не очень хорошо знает, что такое мира.
Spaceoddity
12.02.2019 18:34Не, ну Пентакс-К1 — это довольно серьёзная штука. ФФ-зеркалка, как ни крути.
3Dvideo Автор
12.02.2019 18:53Да, народ сравнивает очень дорогие зеркалки и… опять не приводит миры.
Но все еще хуже… Миры практически не используются в статьях про SR! )
В чем дело? В том, что вы, genuimous да я знаем что такое миры, а остальные неграмотны… Или? ))))DistortNeo
12.02.2019 19:12+1Миры практически не используются в статьях про SR! )
Как это не используются? Например, берём изображение миры, принимаем её за референс, двигаем-даунсамплим-зашумляем — моделируем входные данные, применяем алгоритм SR и получаем шикарнейший результат. Или берём нейросетку, обучаем её на мире, чтоб полоски красиво рисовала, даём на вход хрень, на выходе имеем конфетку и рапортуем о многократном повышении разрешения.
3Dvideo Автор
12.02.2019 19:19Бинго!!! )))
Абсолютно правильный ответ Spaceoddity!
И, главное, маркетинг большое спасибо скажет. И чиселки увеличения разрешения рекордные и картинки научно выглядят. Срочно везде пишем, какая у нас уникальная технология! )
Именно поэтому если на мирах показывать — грамотный народ почему-то недобро коситься будет )))
Хотя в целом миры — очень полезный инструмент, кто бы спорил.
genuimous
12.02.2019 19:33+1Мира не имеет серьезного отношения к реальным изображениям. Те же фотолюбители больше жалуют кирпичики, или газету. Полагаю что все зависит от конкретного алгоритма и конкретной сцены. С другой стороны, если алгоритм или его принцип действия известен (например использование нескольких кадров), то почему бы и не выложить миру. Приведенный ниже пример с нейросетью вызывает в свою очередь вопросы, например, если приведено фото со зданием, то почему бы не натаскать нейросеть на отрисовку зданий, так можно про все сказать и не останется никаких фото для примеров. Либо же придется иметь много нейросетей, каждый на свой случай, плюс еще одну, которая будет определять границы объектов и отдавать их подходящей нейросети, но тогда получим сеть на все случи жизни и это станет тот самый искомый алгоритм, которому не грех и миру подсунуть. Миру, знаете ли, тоже можно снять и так и эдак, но все же это стандартный инструмент, выдающий числовой результат (кипрпичики и газеты трудно сравнивать).
ericgrig
12.02.2019 22:44+2Спасибо!
Замечательная статья. Приятно получать информацию «из под пера профессионала».
Желаю вам дальнейших успехов.
dm9
12.02.2019 23:37Есть ли какой-то софт, который может взять 2-5 RAW-фотографий, сделанных последовательно с рук (сцена одна и та же), и увеличить итоговое разрешение / убрать смазывание?
dimonoid
13.02.2019 02:49Смотрите в сторону астрофотографии, но только там обычно штатив и сотни фото либо 4k видео. Можно попробовать с рук в случае с видео, но у меня руки никак не дойдут на эксперименты. Таким образом делают общую выдержку в минуты вместо 10и секунд, тк земля проворачиваестя и выходит смаз.
Тут предлагают много программ для стакинга:
www.outdoorphotographer.com/blog/star-stacking-for-pinpoint-stars-and-low-noise
veselovi4
13.02.2019 01:15Своевременная и интересная статья.Прямо таки животрепещущая для меня статья. Во дворе машину ударили и водитель скрылся. На видео номера как обычно не разобрать — кажется «вот вот» но никак. Уж чего только не делал. Теперь буду знать где искать.
dimonoid
13.02.2019 02:36Я вот недавно смарт деблюром баловался,
www.flickr.com/gp/131045386@N06/s6ANp5
Слева — фото луны в зените, и без стекла, повернуто на 45 градусов. Справа вверху луна над горизонтом и снимал через стекло. Снизу — ручная деконволюция, самый лучший результат которого удалось достичь. Я вначале делал деконволюцию, и только потом понял что виновником оказалось стекло, которое значительно понижало резкость.
sairus777
13.02.2019 02:46Сталкивался с аналогичными ситуациями, когда в некоторой области (обработки сигналов) все заточено на простые и красивые примеры… Причём — на уровне стандартов (т.к. точность сравнивается на открытых базах). А в реальных условиях помех все они выдают неадекватный результат. И можно кидать в топку тысячи статей, которые пишутся по открытым базам, потому что в продакшене идёт борьба за другой качественный уровень алгоритмов, по своим базам и т.д.
Но раз уж в этом обсуждении можно углубляться в технические детали, то у меня вопросы технические:
1) Восстановление движения — это подходы типа DTW / ShapeDTW?
2) Еще интересно насчет деконволюции — есть ли какие-то качественные источники и практические примеры, где можно было бы руками поделать оптимизацию? Я так понимаю, что деконволюция — это то же самое, что определить импульсную характеристику артефактов и вычесть её?
3) И общий вопрос: применяются ли здесь какие-либо подходы, придуманные для киномонтажа?3Dvideo Автор
13.02.2019 08:21И можно кидать в топку тысячи статей, которые пишутся по открытым базам, потому что в продакшене идёт борьба за другой качественный уровень алгоритмов, по своим базам и т.д.
Все ровно так. С точки зрения практического применения примерно 97% статей — увы, мусор.
1. Нет, современный motion estimation
2. habr.com/ru/post/147828 — примеры, есть репозитории на гите
3. Видимо имеется ввиду post-production фильмов. Это сильно другая область. Там алгоритм в 2000 раз медленнее реального времени с ускорением на GPU — норма, сегодня все студии сидят на render farms + норма, когда много данных задается или правится руками. А тут все же речь идет про более быстрые и более автоматические подходы и речь в первую очередь про восстановление.
ObitoUchiha1985
13.02.2019 08:02Короче говоря, если есть сильно пошакаленная картинка с интернета, то с ней ничего не сделаешь.
Максимум что можно сделать — это убрать шум и сделать чёткие контуры, если они были такие на исходной картинке.
По крайней мере картинки с чёткими контурами намного лучше увеличиваются, чем с размытыми контурами, а хотелось бы как раз получить чёткие контуры из размытых.
AndreyPozdnyakov
13.02.2019 08:03+1Отличная статья, Дима. Теперь всех ментов сначала сюда буду отправлять, а потом уже дальше беседовать. Еще бы по-английски то же самое…
Кстати, камера слегка дрожит даже и будучи укреплена на самом лучшем штативе. На 4К видео с дешевой камеры от Блэкмаджика от кадра к кадру стабильно сдвиг порядка 1/8 пиксела, а от минимума к максимуму — почти 1/4. Это дает очень интересный эффект — резкое увеличение шума на границе яркости, шум существенно выше, чем и на светлом и на темном участке. Вот чистый шум умноженный на 10, для лучшей видимости
Это, кстати, может быть использовано для автоматического выделения синтезированных частей изображения. Нужно только иметь с десяток кадров с неподвижным объектом. Впрочем, в моем примере шума «чистое» изображение строилось по 300 кадрам ;-)3Dvideo Автор
13.02.2019 08:06Андрей, привет! Да, вас, естественно, тоже на ту же тему беспокоят).
На английском планируем.
Дрожание в пикселах зависит от FoV объектива. Если широкоугольным снимали со штатива — то дрожания почти не будет. А так — да, много для чего оно полезно может быть )
Byker
13.02.2019 18:00Получается, что если хорошим алгоритмом обрабатывать кадры из видео с разрешением 4k, можно получить лучшее качество, чем у фото, скажем, на 12 мегапикселей?.. Если это так, то с какой выдержкой видео снимать, 1/100 достаточно?
3Dvideo Автор
13.02.2019 18:03Да, можно )
Но должны быть статическая сцена, полупиксельные сдвиги и правильный алгоритм. Выдержка, если движения в сцене нет — под сцену, лишь бы одинаковая. Выше человек описывал подобную съемку пейзажа с софтом для астросъемки. Если снимать с небольшим FoW — полупиксельные сдвиги гарантированы даже на штативе.
rexen
13.02.2019 18:30Между прочим, в мире аудио картина примерно та же. Не в смысле охочих до «зума», а в информационном — пока вы рассматриваете статичный кадр — кажется, что вытянуть инфу, тонущую в шумах нет шансов. А вот в динамике…
Я сам когда-то копал тему Noise Shaping, Dithering и всего такого в мире цифрового звука. Одно дело — теория, а другое — услышать собственными ушами звук, уровень которого ниже (что-то порядка 1...2 дБ) полки шумов. Шум-то оказывается «модулированным» — отсюда мозг и «вытягивает» сигнал.Cerberuser
14.02.2019 08:48Интереса ради, а что в случае аудио можно считать за «статичный кадр»? Интуитивно выловить по аналогии с видео, увы, не получается.
rexen
14.02.2019 09:35Ну, например, один звуковой сэмпл. За долю секунды вы ничего не разберёте. А вот на продолжительном отрезке — да. Так же и на видео — кадр с белым шумом — ни о чём, но несколько секунд модулированного белого шума — уже заметно.
В принципе, это общее место в теории информации. Что видео, что аудио, что текста, что архиваторов.
Gryphon88
15.02.2019 17:57Если речь зашла, не подскажете, почему в звуке такой зоопарк частот дискретизации? И откуда взялась несуразная цифра в 44 100 Гц?
DistortNeo
15.02.2019 18:29https://en.wikipedia.org/wiki/44,100_Hz#Why_44.1_kHz?
Наследие аналогового телевещения.
rexen
15.02.2019 19:46Да, выше ответили — «зоопарк» получился исторически. 44,1кГц выбрали в основном из-за совместимости со старым (видео)оборудованием и как некий компромисс между хотелками и предельными возможностями аппаратуры 80-хх:
audiophilesoft.ru/publ/theory/why_44100/6-1-0-281
А на момент создания следующих поколений цифрового звукового оборудования, техника уже позволяла выжать чуть больше — 48кГц, хотя как по мне, Сонька с сотоварищами специально пошли на эти искусственные барьеры между CD, MiniDisc и студийного оборудования из копирастически-коммерческих соображений. Интернет и МП3 всё-равно всех побороли, а мы теперь вынуждены жить с кучей форматов, каждый из которых «тянет» наследие предыдущих, упиравшихся в пределы железа.
Короче до боли всем знакомая история с легаси в ПО.
KinsleR
Очень интересно, спасибо! Приходится иногда и видео и изображения :)
Warrangie
Вы только что гранату.
Sirion
Что?
Cerberuser
Гранату.
Sirion
На самом деле я знал ответ. Но кто-то должен был это спросить, иначе шутка бы не удалась.
Cerberuser
«А теперь нужно обязательно дунуть»?)
bopoh13
После комментов на Маркете к Carrier Services уже нет.
TimsTims
Прямо как в том фильме, где
bopoh13
Хороший, но вот название я
meganiksel
Что гранату?
Cerberuser
Только что.
ktim8168
А зачем?
Occama
Потому что гладиолус.