Перейти к содержанию
    

Обратная свёртка изображения

Коллеги, помогите.

 Предыстория: Возникла необходимость передавать изображения/кадры в сжатом виде, а потом на том конце разворачивать их. На обеих сторонах обработка будет осуществляться  с помощью ПЛИС.

Я могу получить свёртку изображения через КИХ-фильтр (5х5). Соответственно ядро свёртки у меня есть.

Вопрос: Можно ли, и главное как, мне на другом конце по свёртке и ядру получить исходное изображение?

Если где-то алгоритм обратной свёртки уже описан, ткните пожалуйста носом в ссылку)

PS. Не уверен что угадал с разделом, подходит и сюда и в ЦОС

Изменено пользователем shunix

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Странная идея использовать свертку. Сжимать изображения логично с помощью соответствующих алгоритмов, например, jpeg один из самых простых.

А алгоритма обратной свертки, насколько я понимаю, :girl_crazy:не существует.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почему не существует? Насколько помню, сводится к решению системы интегральных уравнений. При наличии аналитически заданного якобиана может сводиться к задаче поиска минимума (максимума) функции нескольких переменных. В форме физической реализации на лазере использовалось для восстановления расфокусированного изображения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Самое простое использовать JPEG сжатие. В нем на основе дискретного косинусного преобразования, уровня квантования и алгоритма huffman сможете сжать.

В инете есть несколько реализаций jpeg энкодеров и декодеров.

Иначе создавать что-то свое кастомное, велосипедное приведет только к потере времени.

https://compression.ru/book/part2/part2__3.htm#_Toc448152511

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если отвечать на вопрос о восстановлении начальной последовательности, а не о лучшем способе сжатия изображения,

то  ПФ - преобразование Фурье,  ПФ(полученных данных) / ПФ(характеристики фильтра) и от полученного частного

обратное ПФ

Вам бы лучше к анархистам... Вам бы лучше в ЦОС...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Результат свертки (NxN) и (MxM) имеет габариты (N+M-1)x(N+M-1). О каком сжатии идет речь - совершенно не понятно. Похоже, очередной  изобретатель треугольных колес путем распиливания квадратных.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, можно сжимать при помощи свёртки. Для этого придумали архитектуру под названием автоэнкодер. Сжатие будет с потерями, вычислительная сложность высокая, работать будет только на похожих типах изображений. Если натренировать автоэнкодер на портретах, а потом пережать например фотографию биокультуры под микроскопом, может получиться забавно. Но в принципе возможно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дорогой ТС!

Для начала об обращении свёртки:

Небольшие свёртки можно обращать "прямо", отсылаю  к классике:

Айфичер, Джервис "Цифровая обработка сигналов. Практический подход" Гл.5 Корреляция и свёртка, пп "Идентификация систем", "Обращение свёртки"

Свёртки побольше, как я уже написал, обращают при помощи ДПФ, находя поэлеметное частное от ДПФ полученных данных и ДПФ ядра, а после выполняя

обратное ДПФ. Здесь, естественно, нужно следить за тем, что бы у ядра не было нулевых частотных компонентов, либо понимать что в этих точках информация

потеряна, приравнивать частное нулю и осознавать что восстановленная последовательность не соответствует исходной.

 

Теперь Вы, раз уж подняли волну, намекните, какую роль в сжатии изображения у Вас будет играть свёртка, да ещё такого корявенького размера?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, GermanN said:

Дорогой ТС!

Для начала об обращении свёртки:

Небольшие свёртки можно обращать "прямо", отсылаю  к классике:

Айфичер, Джервис "Цифровая обработка сигналов. Практический подход" Гл.5 Корреляция и свёртка, пп "Идентификация систем", "Обращение свёртки"

Свёртки побольше, как я уже написал, обращают при помощи ДПФ, находя поэлеметное частное от ДПФ полученных данных и ДПФ ядра, а после выполняя

обратное ДПФ. Здесь, естественно, нужно следить за тем, что бы у ядра не было нулевых частотных компонентов, либо понимать что в этих точках информация

потеряна, приравнивать частное нулю и осознавать что восстановленная последовательность не соответствует исходной.

 

Теперь Вы, раз уж подняли волну, намекните, какую роль в сжатии изображения у Вас будет играть свёртка, да ещё такого корявенького размера?

Спасибо всем за ответы.

Попытаюсь объяснить что хочу.

Есть коэффициенты числа по18 бит(ядро свёртки 5х5 25коэффициентов),есть КИХ фильтр(5х5) 24-го порядка. Получаю свёртку число 48 бит. Я думаю если я буду считывать свёртку 1 раз в 25 тактов то буду получать значения куда входят байты 25-ти пикселей(5х5). Похоже на сжатие в 25 раз. Далее передавать по Ethernet только значение свёртки. А на приёмнике вернутся от свёртки к исходным значениям пикселей(YCbCr 4:2:2) зная коэффициенты(ядро свёртки).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не совсем ясно, как получаеться после двумерной свертки число 48 бит.

Вот наглядный пример операции двумерной свертки - https://neurohive.io/ru/osnovy-data-science/glubokaya-svertochnaja-nejronnaja-set/

Одно значение/сэмпл/отсчет/пиксель, даже если и центральный, с выхода свертки не будет нести в себе всей информации.

Хотя... если я правильно понимаю, то Вы хотите децимировать изображение, передать картинкой малого разрешения, а потом интерполировать.

Тогда нужно:

- децимировать выкидывая пиксели и строки,

- отфильтровать (возможно, фильтром Ланцоша),

- передать,

- интерполировать до оригинального изображения дополняя нулями,

- снова отфильтровать фильтром Ланцоша.

Но в любом случае, результат интерполяции будет с большими потерями (значительно искажен относительно оригинала).

Потренируйтесь в матлабе...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/13/2019 at 11:32 PM, quato_a said:

Хотя... если я правильно понимаю, то Вы хотите децимировать изображение, передать картинкой малого разрешения, а потом интерполировать.

Тогда нужно:

- децимировать выкидывая пиксели и строки,

- отфильтровать (возможно, фильтром Ланцоша),

- передать,

- интерполировать до оригинального изображения дополняя нулями,

- снова отфильтровать фильтром Ланцоша.

Но в любом случае, результат интерполяции будет с большими потерями (значительно искажен относительно оригинала).

Потренируйтесь в матлабе... 

Спасибо, буду пробовать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/10/2019 at 6:46 PM, thermit said:

Результат свертки (NxN) и (MxM) имеет габариты (N+M-1)x(N+M-1). О каком сжатии идет речь - совершенно не понятно. Похоже, очередной  изобретатель треугольных колес путем распиливания квадратных.

воистину. знание математики в собственной области конечно не панацея от инфантилизма и нежелания смотреть в гугль. Ну чем плоха реализация RLE, если вражеские форматы _peg ТЗ не позволяет. Надо же понимать что сила _peg не в преобразовании, а в нетривиальной обработке преобразованного.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 12.08.2019 в 17:24, count_enable сказал:

Да, можно сжимать при помощи свёртки. Для этого придумали архитектуру под названием автоэнкодер. Сжатие будет с потерями, вычислительная сложность высокая, работать будет только на похожих типах изображений. Если натренировать автоэнкодер на портретах, а потом пережать например фотографию биокультуры под микроскопом, может получиться забавно. Но в принципе возможно.

Сжимать можно практически с помощью всего. Вот например - сжатие при помощи гидравлического пресса. Для этого придумали архитектуру... собственно гидравлический пресс. Сжатие, конечно будет с потерями. Но зато вычислительная сложность ~0. Работает на любых типах изображений. Правда, есть проблемы с расжатием. Зато если сжать ежа совместно с лягухой, получится довольно интересная картинка. Да.

15 часов назад, Hale сказал:

воистину. знание математики в собственной области конечно не панацея от инфантилизма и нежелания смотреть в гугль. Ну чем плоха реализация RLE, если вражеские форматы _peg ТЗ не позволяет. Надо же понимать что сила _peg не в преобразовании, а в нетривиальной обработке преобразованного.

Нынче это не модно. А раз не модно - значит фуфло. И пофигу, что в сети 99% картинок жпг и пнг.  Будущее за истинно прогрессивными технологиями. Ога.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/5/2019 at 3:23 AM, shunix said:

Коллеги, помогите.

 Предыстория: Возникла необходимость передавать изображения/кадры в сжатом виде, а потом на том конце разворачивать их. На обеих сторонах обработка будет осуществляться  с помощью ПЛИС.

Я могу получить свёртку изображения через КИХ-фильтр (5х5). Соответственно ядро свёртки у меня есть.

Вопрос: Можно ли, и главное как, мне на другом конце по свёртке и ядру получить исходное изображение?

Если где-то алгоритм обратной свёртки уже описан, ткните пожалуйста носом в ссылку)

PS. Не уверен что угадал с разделом, подходит и сюда и в ЦОС

 

Свертка -- это фильтрация, а не сжатие. Вы неверный путь выбрали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...