Огромное спасибо, хотел оценить потенциал данного метода для сжатия изображений. Поэкспериментировал с программкой, не удаляйте ее некоторое время пожалуйста. Возникли идеи по применению этого к иерархическому представлению и сжатию картинок.
Долго думал прежде чем отписаться: если это и работает, то в очень ограниченном прикладе. Как правильно говорили выше — сбор признаков, их анализ и распознавание! Тут в виде признака — слабенький хеш, и это плохо. Ну к примеру, если вместо этого хеша, брать специально обработанные компоненты разложения Фурье — то лучше получится + инвариантность к повороту и масштабу можно обеспечить. Дилетантство вижу я тут :).
Попробуйте пожалуйста вот такой эксперимент:
С генерируйте картинку из белого шума размера 256 на 256 — без разницы, цветную или нет.
Пусть размер повреждения будет 16 на 16 пикселей — просто потеря объекта (черным) и 32 на 32.
Какие результаты восстановления будут в этом случае?
Два вопроса:
1) Есть ли статья на которую вы ссылаетесь в формате pdf? — слишком жуткий HTML на сайте.
2) Как вы думаете — возможно ли применить данный алгоритм для задачи генерации «похожих» картинок — например берем космический снимок, обучаем на нем алгоритм, а потом генерируем похожие на него снимки.
На самом деле возможно все что угодно, тут теорию делать сложно. я встречал и более замороченные коллизии. В начале, пытался честным образом строить граф эквивалентностей, разбирая получающиеся тразитивности по завершению алгоритма — но отказался от этой затеи, так как она привела к задаче поиска путей в графе и ужаснула меня.
Литературу — ну про этот алгоритм есть ссылка в вики (приводилась в комментариях). Там же есть хороший список литературы, но я с ним еще не знаком, как и с этой статьей.
Про этот алгоритм я узнал из лекций на 4-ом курсе.
Пусть изображение представляется матрицей, где в каждой ячейке — указатель на номер объекта, которому принадлежит эта ячейка.
Все номера хранятся в отдельном массиве — выделенном предварительно и с некоторым запасом, так как неизвестно сколько объектов на картинке.
Самое простое и нормально работающее:
Возникла коллизия 2 эквивалентно 3, мы не трогаем указатели в матрице, мы в массиве номеров, на втором месте вместо двойки ставим 3.
Возникла коллизия 3 эквивалентно 1, мы просматриваем массив номеров — и везде, где в нем стоит 3, ставим 1.
То есть обобщая эти два тезиса имеем:
При возникновении эквивалентности C1 эквивалентно C2 мы проходим весь массив номеров и там где C1 ставим C2.
Массив номеров часто имеет малый размер в сравнении с изображением, и это сильно ускоряет перенумерацию. Уже этот способ дает реал-тайм, я реализовывал для iPhone.
В эти выходные я опубликую вторую часть статьи, с которой уже порядком затянул — обстоятельства. Там расскажу про улучшение этого способа, но оно на поверхности.
С бюрократией — вы действительно правы, просто чудовищное количество документов. Особенно напрягает второй отдел, в который нужно каждый раз часами ходить, что бы получить разрешение на публикацию.
Возможно этим сервисом можно выявлять социальные проблемы.
Так, запросов «drugs» больше всего из штата Миссисипи, «vodka» — в штатах Пенсильвания и Нью Йорк.
А криминальные штаты (по запросы «criminal»): Техас, Флорида и Северная Каролина.
Интересно — совпадают ли эти выводы с реальностью?
Там как раз WMS, по крайне мере он был изначально при создании этого портала, что было дальше — не знаю, пришлось изменить профиль работы. А ГИС и социальная сеть сделает, только на русском интерфейс и куча модераторов. Отличная идея автора топика. Очень хотелось бы видеть в ближайшем будущем такой проект, и я чем смогу — помогу.
Карты есть, посмотрите ссылку которую я давал. Там все города спутники Самары, в потрясающей детализации. И эта карта как раз для общественных нужд сделана + клиенты для мобильных устройств и возможность общения с картой по специальному протоколу. Хотя его спецификация закрыта, по крайне ере пока.
Действительно сложно все это, самим рисовать карту — очень я скептично настроен на это, хотя если подключить социальную сеть — то выполнимо.
Так что делать с малыми городами — в которых основная часть проблем? Для них детализация популярных ресурсов оставляет желать лучшего. Как выход, я предложил использовать местные геопорталы.
Отличная идея! Вижу проблемы — это ГИС, какую использовать? Они все дороги и сложны в поддержке.
Вот например в Самаре есть геопортал электронного правительства — отличная и качественная штука, детализированы даже совсем малые города спутники. Там есть возможность создавать слои и потенциально отмечать ямы, рытвины и остальные проблемы.
Задачи подобного типа, по крайне мере для изображений, изучены более чем хорошо. Они вообще допускают и аналитические решения. То есть вначале рассматривается псевдонепрерывное изображение — например набор точек — дельта-функций в нужных местах. Потом находят решение в аналитическом виде, возможно в виде ряда — и вот его уже дискретизируют. На практике очень много ограничений накладывается, в связи со сложностью изготовления таких фотопластинок. Часто ограничение настолько сурово — что фотопластинка должна быть вообще бинарной.
Большое количество работ этому в свое время было посвящено в журнале «Компьютерная оптика».
С генерируйте картинку из белого шума размера 256 на 256 — без разницы, цветную или нет.
Пусть размер повреждения будет 16 на 16 пикселей — просто потеря объекта (черным) и 32 на 32.
Какие результаты восстановления будут в этом случае?
1) Есть ли статья на которую вы ссылаетесь в формате pdf? — слишком жуткий HTML на сайте.
2) Как вы думаете — возможно ли применить данный алгоритм для задачи генерации «похожих» картинок — например берем космический снимок, обучаем на нем алгоритм, а потом генерируем похожие на него снимки.
Литературу — ну про этот алгоритм есть ссылка в вики (приводилась в комментариях). Там же есть хороший список литературы, но я с ним еще не знаком, как и с этой статьей.
Про этот алгоритм я узнал из лекций на 4-ом курсе.
Все номера хранятся в отдельном массиве — выделенном предварительно и с некоторым запасом, так как неизвестно сколько объектов на картинке.
Самое простое и нормально работающее:
Возникла коллизия 2 эквивалентно 3, мы не трогаем указатели в матрице, мы в массиве номеров, на втором месте вместо двойки ставим 3.
Возникла коллизия 3 эквивалентно 1, мы просматриваем массив номеров — и везде, где в нем стоит 3, ставим 1.
То есть обобщая эти два тезиса имеем:
При возникновении эквивалентности C1 эквивалентно C2 мы проходим весь массив номеров и там где C1 ставим C2.
Массив номеров часто имеет малый размер в сравнении с изображением, и это сильно ускоряет перенумерацию. Уже этот способ дает реал-тайм, я реализовывал для iPhone.
В эти выходные я опубликую вторую часть статьи, с которой уже порядком затянул — обстоятельства. Там расскажу про улучшение этого способа, но оно на поверхности.
Так, запросов «drugs» больше всего из штата Миссисипи, «vodka» — в штатах Пенсильвания и Нью Йорк.
А криминальные штаты (по запросы «criminal»): Техас, Флорида и Северная Каролина.
Интересно — совпадают ли эти выводы с реальностью?
Действительно сложно все это, самим рисовать карту — очень я скептично настроен на это, хотя если подключить социальную сеть — то выполнимо.
Вот например в Самаре есть геопортал электронного правительства — отличная и качественная штука, детализированы даже совсем малые города спутники. Там есть возможность создавать слои и потенциально отмечать ямы, рытвины и остальные проблемы.
1. Синтез цифровых галограмм
2. Здесь про схему Д. Габора
Большое количество работ этому в свое время было посвящено в журнале «Компьютерная оптика».