Pull to refresh

Comments 28

как странно, вся статья про разработку Google, но вначале статьи нам зачем-то стали рассказывать про совсем другой продукт.
Просто хорошая программа, но на Хабре и GT про неё ничего не писали. Я решил воспользоваться ситуацией и всё-таки упомянуть. Может быть, кто-то про неё ещё не слышал…
Подобные алгоритмы применить бы к «экранкам», обучаешь на трейлере к фильму в хорошем качестве, подаешь на вход экранную копию, на выходе фильм в DVD качестве, ну и куда же без Joycasino
Если этот фильтр применить в видеоиграх, то «мыльное кинцо» превратится просто в «кинцо».
Не получится, поскольку придется рендерить интерполяцию 60 раз в секунду.
Чтобы не снизить общую производительность нужно будет уделять на эту обработку не более 1 мс на каждый кадр, но современное железо на это не способно.
UFO just landed and posted this here
Можно делать игры с плохой графикой, а скриншоты обрабатывать через эту технологию.
Неплохо, но чудес не произошло. Границы становятся более аккуратными, что плюс, но новых деталей не появляется (если информации нет, то её нет).

ЗЫ. Технион — это университет, а не компания.
А чудес и не будет на алгоритмах общего назначения. Чтобы оно начало восстанавливать детали, нужен значительно больший объём памяти сети (которая не эквивалентна памяти системы, эмулирующей сеть). Как вариант решения этой проблемы в том же Neural Enhance есть пример обучения сети на лицах, где результаты значительно лучше, чем для сетей общего назначения. Лично я работаю в том же направлении и считаю, что следующим этапом было бы неплохо привязать какую-нибудь из современных сетей попиксельной сегментации и учить несколько разных специализированных сетей под разные классы объектов.
Подскажите, есть ли подобные вещи для ситуаций, где информация есть?
Например камера наблюдения, и рекламный плакат, слегка движущийся от ветра.
Предположим что плакат не деформируется, но смещается. В теории каждый следующий кадр — плюс к информации.
Есть. Причем настолько, что продвинутые современные фотоаппараты умеют делать такое одной кнопкой (внутри делается быстрая серия из 4 кадров со сдвигом матрицы на полпикселя вправо-вниз-влево, которая тут же в камере сшивается в картинку с разрешением 2х по каждой оси).
Для вашего случая — зависит от камеры наблюдения. А именно:
1. Физического разрешения объектива достаточно для разрешения каждого пикселя матрицы. Например, обычные CCTV объективы, разработанные в эпоху аналоговых камер наблюдения, с запасом разрешают VGA матрицу, но не могут разрешить FullHD. Т.е. само изображение, которое поступает на матрицу, особенно по краям, будет «мутным» просто из-за искажений в низкокачественном стекле, и тут уже ничего нельзя сделать. Обычно, резкие объективы специально помечают всякими маркетинговыми лейбаками типа «Ultra Sharp», «HD», «Full HD», «5Mpix», «10Mpix» и т.п. (в порядке возрастания крутости и цены; на объективе должно быть написано).
2. Перед матрицей не стоит АА фильтр или он заведомо слишком тонкий, чтобы удовлетворять требованиям теоремы Котельникова. В приложении к камерам эта теорема требует, чтобы перед матрицей стоял физический фильтр, размывающий слишком резкие детали так, чтобы они занимали на матрице область площадью минимум 2х2 пикселя. Иначе будет муар и высокочастотный шум, из-за которого изображение в мельчайших, однопиксельных деталях будет почти невосстановимо испорчено из-за свертки спектра. Здесь шансов больше: в дешевых камерах тупо экономят копеечку и вообще не ставят АА фильтр (особенно с заведомо фуфлыжным комплектным объективом), а в дорогих давят муар программным способом, частично сохраняющим детали.
3. Самое страшное: камерный шумодав. При нехватке света дешевые камеры тупо блурят (замыливают) изображение крупными блоками типа 8х8 пикселей. Шумы оно давит хорошо, но и деталей не остается от слова совсем. Машины, лица, стены — все как нарисованное в пеинте, абсолютно гладкие поверхности без бликов и изъянов.
4. Ну и последнее — формат записи. Обычно настраивается, но по дефолту стоит «максимальное сжатие», чтобы больше влезло. Но это значит — минус детали, плюс артефакты.
В-общем, на дешевых камерах скорее всего ничего не выйдет без замены объектива и ковыряния в прошивке. На более приличных — может и повезёт. В лоб это делается примерно так: увеличиваем каждый кадр тупым nearest neighbour например в 4 раза по каждой оси; ищем сдвиги алгоритмом максимального правдоподобия; применяем склейку кадров для сдвинутых зон со специально подобранным ядром свертки.
Таким образом, кстати, можно повышать разрешение не только по осям, но и по глубине цвета.
Есть. Причем настолько, что продвинутые современные фотоаппараты умеют делать такое одной кнопкой (внутри делается быстрая серия из 4 кадров со сдвигом матрицы на полпикселя вправо-вниз-влево, которая тут же в камере сшивается в картинку с разрешением 2х по каждой оси).

Насколько я помню, там не матрица на полпикселя смещается, а светофильтр. Основная цель — избавиться от необходимости интерполяции байеровских паттернов (debayer), вносящей вполне себе реальные искажения.

Для вашего случая — зависит от камеры наблюдения. А именно:

4. Видео обычно сжимается с компенсацией движения, поэтому никакой новой информации последующие кадры не внесут. А вот если это два отдельных фотоснимка — есть шанс.

5. Если камера наблюдения не grayscale, а rgb, то дебайер перечеркнёт возможность применения суперразрешения.
Фильтры Байера в принципе не идеальные, а современные, особенно на камерах наблюдения — вообще сознательно далеки от идеала. Грубо говоря, пиксель фильтра пропускает не 100% своего цвета и 0%, 0% для двух «чужих», как должен был бы в идеальном случае, и не 90%, 10%, 10%, как в технически достижимом, а скажем 90%, 60% и 50%. Здесь идет сознательный размен качества цветопередачи на светочувствительность (тонкий фильтр пропускает банально больше фотонов).
Причем производитель знает эти проценты очень точно, иначе бы дебайеризация не могла бы работать нормально.
Поэтому супер-разрешение все-таки возможно, пусть и с дальнейшей потерей точности цвета.
На последнем примере под номером 5 попросту пропали противоположные «белые» полосы с этим алгоритмом.
UFO just landed and posted this here
Вот-вот. Который существует уже минимум лет 5, а то и больше. Причем результат точно такой же. Казалось бы, нейросеть и продвинутые программы должны это делать лучше, а не выдавать результат пятилетней давности за революцию.

Ох уж этот Гугл, ох уж эти современные компании с их пиаром нейросетей по любому поводу…
продвинутые программы должны это делать лучше

Хорошо бы еще не только качество на выходе сравнивать но и скорость.
> Даже в фильмах детективы иногда умудряются рассмотреть номер автомобиля на кадре с камеры наблюдения, «приблизив» фотографию до предела. И не только номер автомобиля. Тут всё ограничено фантазией и совестью режиссёра и сценариста. Они могут приблизить фотографию ещё больше — и разглядеть отражение преступника в зеркале заднего вида или даже в отполированной металлической головке болта, которым крепится номерной знак.

как в этой связи не вспомнить http://images-cdn.9gag.com/photo/2078832_700b.jpg?
Удивительные примеры. Показывают до и после. Нужно сравнивать не исходник и enlarge алгоритм, а
два enlarge, где первый — лучший алгоритм ресемплинга и алгоритм автора. Вау эффекта поубавится.
Можно сравнивать с оригиналом до уменьшения)
Интересно, какая сложность обученной сети (количество нейронов)?
Кому-нибудь ещё кажется, что второе и третье изображение с примерами (улицы и пешеходы) попахивают враньём?
Возможно, типичная ошибка: учили сеть на том же наборе, на котором генерировали примеры.
О, вижу характерные артефакты SRCNN (шумовая регулярная сеточка). Их причина — хреновый training set.
На самом деле, достаточно добавить немного шумка в обучающую выборку, чтобы SRCNN заиграл новыми красками:
http://imaging.cs.msu.ru/pub/2016.ICSP.Nasonov_Krylov.SRCNN.en.pdf

Сейчас отправлена статья в полноценный журнал. Саму статью пока показать не могу, но могу привести график:
http://imaging.cs.msu.ru/files/exchange/graph_woman.pdf
Легенда: O и P — обучающие выборки без шума, PN — с шумом, SS — использование в качестве обучающей выборки только входное изображение (самоподобие). По оси Y — PSNR, по оси X — уровень шума в тестовой выборке. При высоком уровне шума все модные алгоритмы проигрывают простым, потому что пытаются из шума вытащить детали.
UFO just landed and posted this here
Sign up to leave a comment.

Articles