Поиск особых точек и их дескрипторов - обучение без учителя.
arXiv:1712.07629
В задачах SfM и не только, крайне полезно уметь выделять на изображении особые точки и приписывать им некий вектор-дескриптор. Тогда, сопоставив такие точки на двух изображениях, можно определить параметры преобразования гомографии одного изображения в другое, потом найти фундаментальную матрицу и т.п.
Раньше для поиска таких точек использовались разнообразные алгоритмы типа SIFT, SURF, FAST, ORB, а теперь, как и для многих других задач компьютерного зрения, предлагается применить нейронную сеть. Т.е. авторы хотят натренировать такую сеть, чтобы подав ей на вход изображение, на выходе мы бы получили набор особых точек этого изображения с приписанными этим точкам дескрипторами.
Как и обычно, проблема с нейронными сетями ровно одна - где взять соответствующий задаче датасет. И в данном случае разметка такого рода датасета, во-первых, сложноформализуемая задача, т.е. не всегда понятно какие именно точки на изображении следует размечать как особые. Во-вторых, требует огромное количество ресурсов. Поэтому статья, в первую очередь, интересна подходом, при помощи которого авторы умудряются натренировать сеть (и получить датасет), используя только синтетические данные.
Читать дальше...
arXiv:1712.07629
В задачах SfM и не только, крайне полезно уметь выделять на изображении особые точки и приписывать им некий вектор-дескриптор. Тогда, сопоставив такие точки на двух изображениях, можно определить параметры преобразования гомографии одного изображения в другое, потом найти фундаментальную матрицу и т.п.
Раньше для поиска таких точек использовались разнообразные алгоритмы типа SIFT, SURF, FAST, ORB, а теперь, как и для многих других задач компьютерного зрения, предлагается применить нейронную сеть. Т.е. авторы хотят натренировать такую сеть, чтобы подав ей на вход изображение, на выходе мы бы получили набор особых точек этого изображения с приписанными этим точкам дескрипторами.
Как и обычно, проблема с нейронными сетями ровно одна - где взять соответствующий задаче датасет. И в данном случае разметка такого рода датасета, во-первых, сложноформализуемая задача, т.е. не всегда понятно какие именно точки на изображении следует размечать как особые. Во-вторых, требует огромное количество ресурсов. Поэтому статья, в первую очередь, интересна подходом, при помощи которого авторы умудряются натренировать сеть (и получить датасет), используя только синтетические данные.
Читать дальше...
arXiv.org
SuperPoint: Self-Supervised Interest Point Detection and Description
This paper presents a self-supervised framework for training interest point detectors and descriptors suitable for a large number of multiple-view geometry problems in computer vision. As opposed...
D2-Net. Свёрточная нейронная сеть, для одновременного поиска и описания особых точек.
arXiv:1905.03561
Продолжаем тему поиска особых точек и их дескрипторов при помощи нейронных сетей. В прошлый раз разбирали статью, где использовалась сетка с "двумя головами", которая в каком-то смысле повторяла классический подход, одна голова искала особые точки, а вторая потом для этих особых точек выдавала дескрипторы (на самом деле дексрипторы были для всех точек изображения, но нас интересовали только те которые нашлись как особые).
Сегодня разберем еще одну статью, про поиск особых точек на картинке нейронными сетями.
В этой статье авторы вполне логично замечают, что при помощи нейронной сети можно сформировать дескрипторы сначала, а уже потом выбрать по этим дескрипторам хорошие особые точки.
Читать дальше...
arXiv:1905.03561
Продолжаем тему поиска особых точек и их дескрипторов при помощи нейронных сетей. В прошлый раз разбирали статью, где использовалась сетка с "двумя головами", которая в каком-то смысле повторяла классический подход, одна голова искала особые точки, а вторая потом для этих особых точек выдавала дескрипторы (на самом деле дексрипторы были для всех точек изображения, но нас интересовали только те которые нашлись как особые).
Сегодня разберем еще одну статью, про поиск особых точек на картинке нейронными сетями.
В этой статье авторы вполне логично замечают, что при помощи нейронной сети можно сформировать дескрипторы сначала, а уже потом выбрать по этим дескрипторам хорошие особые точки.
Читать дальше...
S2DNet. Sparse-to-dense матчинг особых точек.
arXiv:2004.01673
И еще про особые точки. Однако, здесь концепция несколько отличается от двух предыдущих статей (SuprePoint, D2-Net). Если раньше мы брали две картинки, на каждой находили особые точки с дескриптором в каком-то векторном пространстве, а потом тем или иным способом "матчили" особые точки опираясь на их близость в пространстве дескрипторов и это называлось sparse-to-sparse методика. То в данной статье предлагается использовать несимметричный *sparse-to-dense" подход, а именно, вначале найти особые точки на одном изображении, а потом для каждой найденной точки искать соответствие на втором.
Читать дальше...
arXiv:2004.01673
И еще про особые точки. Однако, здесь концепция несколько отличается от двух предыдущих статей (SuprePoint, D2-Net). Если раньше мы брали две картинки, на каждой находили особые точки с дескриптором в каком-то векторном пространстве, а потом тем или иным способом "матчили" особые точки опираясь на их близость в пространстве дескрипторов и это называлось sparse-to-sparse методика. То в данной статье предлагается использовать несимметричный *sparse-to-dense" подход, а именно, вначале найти особые точки на одном изображении, а потом для каждой найденной точки искать соответствие на втором.
Читать дальше...
D2D. Выделение ключевых точек Сначала описать потом детектировать.
arXiv:2005.13605
Снова про особые точки на изображении. Мы разобрали две статьи sparse-to-sparse подхода: detect-then-describe (SuperPoint ) и detect-and-describe (D2-Net). Также рассмотрели sparse-to-dense подход S2DNet. Сегодня еще одна вариация из разряда sparse-to-sparse - на этот раз с подзаголовком describe-to-detect.
Как очевидно из подзаголовка, авторы предлагают вначале взять сеть, которая хорошо умеет описывать точки изображения, т.е. генерировать для них дескрипторы (в качестве, такой сети в статье предлагаются HardNet или SOSNet), а затем, используя эти дескрипторы, выбрать особые точки.
таксономия подходов к особым точкам, картинка из статьи
Читать дальше...
arXiv:2005.13605
Снова про особые точки на изображении. Мы разобрали две статьи sparse-to-sparse подхода: detect-then-describe (SuperPoint ) и detect-and-describe (D2-Net). Также рассмотрели sparse-to-dense подход S2DNet. Сегодня еще одна вариация из разряда sparse-to-sparse - на этот раз с подзаголовком describe-to-detect.
Как очевидно из подзаголовка, авторы предлагают вначале взять сеть, которая хорошо умеет описывать точки изображения, т.е. генерировать для них дескрипторы (в качестве, такой сети в статье предлагаются HardNet или SOSNet), а затем, используя эти дескрипторы, выбрать особые точки.
таксономия подходов к особым точкам, картинка из статьи
Читать дальше...
MegaDepth: Обучение предсказателя глубины по одной фотографии, на картинках из интернета
arXiv:1804.00607
В одной из предыдущих статей, в которой рассказывали про D2-Net фигурировал датасет, на котором собственно происходило обучение. Датасет называется MegaDepth и хотелось бы остановится на нем по-подробнее. В основном на том как его собрали и для чего использовали авторы исходной статьи.
Читать дальше...
arXiv:1804.00607
В одной из предыдущих статей, в которой рассказывали про D2-Net фигурировал датасет, на котором собственно происходило обучение. Датасет называется MegaDepth и хотелось бы остановится на нем по-подробнее. В основном на том как его собрали и для чего использовали авторы исходной статьи.
Читать дальше...
arXiv.org
MegaDepth: Learning Single-View Depth Prediction from Internet Photos
Single-view depth prediction is a fundamental problem in computer vision. Recently, deep learning methods have led to significant progress, but such methods are limited by the available training...
Про инвариантность к сдвигам свёрточных сетей.
arXiv:2003.07064v2
То что свёрточные сети инвариантны к сдвигам картинки давно уже стало "общим местом" в работах по этому предмету. На самом деле, это крайне полезное свойство при классификации объекта на фотографии, где бы не был "котик" в левом или правом верхнем углу это не должно влиять на ответ классификатора. Если объект сдвигается на фотографии, то соответствующим образом сдвигаются и "ответы" свёрточных слоёв, а после всех свёрточных слоёв сейчас обычно принято ставить какой-то глобальный пулинг (либо усреднение, либо максимум), который тоже инвариантен к сдвигам.
Однако, есть одна тонкость, с которой авторы статьи решили разобраться, а именно поведение свёрточных слоёв на краях картинки.
Читать дальше...
arXiv:2003.07064v2
То что свёрточные сети инвариантны к сдвигам картинки давно уже стало "общим местом" в работах по этому предмету. На самом деле, это крайне полезное свойство при классификации объекта на фотографии, где бы не был "котик" в левом или правом верхнем углу это не должно влиять на ответ классификатора. Если объект сдвигается на фотографии, то соответствующим образом сдвигаются и "ответы" свёрточных слоёв, а после всех свёрточных слоёв сейчас обычно принято ставить какой-то глобальный пулинг (либо усреднение, либо максимум), который тоже инвариантен к сдвигам.
Однако, есть одна тонкость, с которой авторы статьи решили разобраться, а именно поведение свёрточных слоёв на краях картинки.
Читать дальше...
Self-attention (cамовнимание?) в моделях компьютерного зрения
arXiv:1906.05909
Статья сильно не новая, но полезная. В ней attention подход переносится из сетей, применяемых для работы с текстами (перевода), на сети, которые призваны решать задачи компьютерного зрения.
Читать дальше...
arXiv:1906.05909
Статья сильно не новая, но полезная. В ней attention подход переносится из сетей, применяемых для работы с текстами (перевода), на сети, которые призваны решать задачи компьютерного зрения.
Читать дальше...
arXiv.org
Stand-Alone Self-Attention in Vision Models
Convolutions are a fundamental building block of modern computer vision systems. Recent approaches have argued for going beyond convolutions in order to capture long-range dependencies. These...
Изображения как набор слов 16 х 16.
arXiv:2010.11929
Если здесь attention модель применялась "локально" и фактически self-attention преобразование служило заменой стандартной свёртки, то сегодня посмотрим на статью, в которой авторы попытались максимально перенести подход, предложенный для решения задачи перевода в компьютерное зрение.
Читать дальше...
arXiv:2010.11929
Если здесь attention модель применялась "локально" и фактически self-attention преобразование служило заменой стандартной свёртки, то сегодня посмотрим на статью, в которой авторы попытались максимально перенести подход, предложенный для решения задачи перевода в компьютерное зрение.
Читать дальше...
Нейронная машина Тьюринга.
arXiv:1410.5401
Что такое машина Тьюринга все, наверное, знают. В статье рассказывается о некоем аналоге такой машины на базе нейронных сетей.
Т.е. разбирается вопрос можно ли обучить сеть выполнять какой-нибудь алгоритм, используя подход "обучения с учителем", т.е. на базе набора примеров. Не просто классифицировать или даже генерировать картинку-текст-видео, а именно, чтобы сама сеть "написала" программу по набору примеров, а потом на новых примерах её выполнила. Например, научилась копировать последовательность данных или сортировать их и т.п.
Известен результат, что рекуррентная нейронная сеть (RNN) может представлять универсальную машину Тьюринга (см. здесь ), проблема только в том, что теоретически то она может, но практически имеются некоторые проблемы, чтобы получить нужный результат.
Читать дальше...
arXiv:1410.5401
Что такое машина Тьюринга все, наверное, знают. В статье рассказывается о некоем аналоге такой машины на базе нейронных сетей.
Т.е. разбирается вопрос можно ли обучить сеть выполнять какой-нибудь алгоритм, используя подход "обучения с учителем", т.е. на базе набора примеров. Не просто классифицировать или даже генерировать картинку-текст-видео, а именно, чтобы сама сеть "написала" программу по набору примеров, а потом на новых примерах её выполнила. Например, научилась копировать последовательность данных или сортировать их и т.п.
Известен результат, что рекуррентная нейронная сеть (RNN) может представлять универсальную машину Тьюринга (см. здесь ), проблема только в том, что теоретически то она может, но практически имеются некоторые проблемы, чтобы получить нужный результат.
Читать дальше...
RNN, LSTM, GRU и другие рекуррентные нейронные сети.
Поразбираемся с одним интересным классом нейронных сетей, которые называются рекуррентные нейронные сети. Это сети, которые обычно используются в случае, когда входные или выходные данные представляют из себя последовательность элементов, упорядоченных по времени. Например, это может быть предложение состоящие из слов, видео как набор кадров, и т.п.
Читать дальше...
Поразбираемся с одним интересным классом нейронных сетей, которые называются рекуррентные нейронные сети. Это сети, которые обычно используются в случае, когда входные или выходные данные представляют из себя последовательность элементов, упорядоченных по времени. Например, это может быть предложение состоящие из слов, видео как набор кадров, и т.п.
Читать дальше...
NeRF. Представление сцен в виде нейронных полей излучения для синтеза изображений
arXiv:2003.08934
В данной статье предложен метод, который позволяет по набору снимков, получать новые изображения той же сцены из точек, для которых в исходном наборе не было фотографий. Для этого тренируется нейронная сеть, которая для каждой трехмерной точки сцены с координатами $(x, y, z)$ для направления $(theta, phi)$ восстанавливает "прозрачность" этой точки и излучение в нужном направлении. Такое представление сцены авторы называют neural radiance field (NeRF)
схема из статьи
Читать дальше...
arXiv:2003.08934
В данной статье предложен метод, который позволяет по набору снимков, получать новые изображения той же сцены из точек, для которых в исходном наборе не было фотографий. Для этого тренируется нейронная сеть, которая для каждой трехмерной точки сцены с координатами $(x, y, z)$ для направления $(theta, phi)$ восстанавливает "прозрачность" этой точки и излучение в нужном направлении. Такое представление сцены авторы называют neural radiance field (NeRF)
схема из статьи
Читать дальше...
arXiv.org
NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
We present a method that achieves state-of-the-art results for synthesizing novel views of complex scenes by optimizing an underlying continuous volumetric scene function using a sparse set of...
GANcraft. 3D рендеринг Minecraft миров, обучение без учителя
arXiv:2104.07659
В данной статье предлагается механизм генерации фотореалистичных изображений 3Д мира созданного в таких программах как Minecraft, т.е. на вход поступает: "крупноблочное" 3Д представление мира, точка съемки и стиль генерации (например, зима-весна-лето, утро-день-вечер и т.п.) - на выходе "фотография". Важно, отметить, что фотографии нормально склеиваются, т.е. одно место снятое с разных точек генерирует консистентные изображения.
Читать дальше...
arXiv:2104.07659
В данной статье предлагается механизм генерации фотореалистичных изображений 3Д мира созданного в таких программах как Minecraft, т.е. на вход поступает: "крупноблочное" 3Д представление мира, точка съемки и стиль генерации (например, зима-весна-лето, утро-день-вечер и т.п.) - на выходе "фотография". Важно, отметить, что фотографии нормально склеиваются, т.е. одно место снятое с разных точек генерирует консистентные изображения.
Читать дальше...
arXiv.org
GANcraft: Unsupervised 3D Neural Rendering of Minecraft Worlds
We present GANcraft, an unsupervised neural rendering framework for generating photorealistic images of large 3D block worlds such as those created in Minecraft. Our method takes a semantic block...
BARF. Bundle-Adjusting Neural Radiance Fields
arXiv:2104.06405
Еще одно продолжение NeRF, авторы этой статьи обращают внимание, что для получения хорошего представления 3D сцены при помощи нейронной сети, как это описано в NeRF необходимо, чтобы исходный набор изображений имел очень точные координаты камер. Однако в реальной ситуации далеко не всегда точные координаты места съёмки известны. Авторы предлагают способ тренировки нейронной сети типа NeRF, который может иметь дело с не вполне точными координатами камер.
NeRF vs BARF, изображение из статьи
Читать дальше...
arXiv:2104.06405
Еще одно продолжение NeRF, авторы этой статьи обращают внимание, что для получения хорошего представления 3D сцены при помощи нейронной сети, как это описано в NeRF необходимо, чтобы исходный набор изображений имел очень точные координаты камер. Однако в реальной ситуации далеко не всегда точные координаты места съёмки известны. Авторы предлагают способ тренировки нейронной сети типа NeRF, который может иметь дело с не вполне точными координатами камер.
NeRF vs BARF, изображение из статьи
Читать дальше...
arXiv.org
BARF: Bundle-Adjusting Neural Radiance Fields
Neural Radiance Fields (NeRF) have recently gained a surge of interest within the computer vision community for its power to synthesize photorealistic novel views of real-world scenes. One...
Предсказание пробок на дорогах, используя пространственно-временную корреляцию и гибридный фреймворк глубокого обучения.
arXiv:1612.01022
Cтатья решает задачу предсказания пробок (в достаточно простой постановке). Есть дорога без разветвлений и перекрёстков. На этой дороге отмечен некий набор контрольных точек, в которых каждые 5 минут замеряется traffic volume
карта с контрольными точками, изображение из статьи
Надо на основе значения величины в контрольных точках в текущий момент и в прошлом, предсказать значение traffic volume в будущем.
Читать дальше...
arXiv:1612.01022
Cтатья решает задачу предсказания пробок (в достаточно простой постановке). Есть дорога без разветвлений и перекрёстков. На этой дороге отмечен некий набор контрольных точек, в которых каждые 5 минут замеряется traffic volume
карта с контрольными точками, изображение из статьи
Надо на основе значения величины в контрольных точках в текущий момент и в прошлом, предсказать значение traffic volume в будущем.
Читать дальше...
Управляемый линейный модуль (Gated Linear Unit).
arXiv:1612.08083
На самом статья про построение модели языка с использованием управляемых свёрточных сетей (Gated Convolutional Networks), но мне область применения не очень интересна (плюс, думаю в этой области такой подход уже несколько устарел, там сейчас рулит BERT и вот это вот всё), а вот базовый блок, предложенный в данной статье хочется разобрать, чтобы потом можно было ссылаться. Потому что этот блок может быть использован при работе с временными последовательностями в качестве замены рекуррентных сетей.
Читать дальше...
arXiv:1612.08083
На самом статья про построение модели языка с использованием управляемых свёрточных сетей (Gated Convolutional Networks), но мне область применения не очень интересна (плюс, думаю в этой области такой подход уже несколько устарел, там сейчас рулит BERT и вот это вот всё), а вот базовый блок, предложенный в данной статье хочется разобрать, чтобы потом можно было ссылаться. Потому что этот блок может быть использован при работе с временными последовательностями в качестве замены рекуррентных сетей.
Читать дальше...
arXiv.org
Language Modeling with Gated Convolutional Networks
The pre-dominant approach to language modeling to date is based on recurrent neural networks. Their success on this task is often linked to their ability to capture unbounded context. In this...
Графы, лапласиан, кластера и т.п.
Графы и всевозможные алгоритмы с ними связанные, раньше входили в тройку лидеров по популярности в разнообразных книжках про программирование, наряду с алгоритмами сортировки и поиска. Теория графов область весьма обширная и пытаться объять её во всей полноте возможных задач в одной статье (или даже в нескольких статьях) совершенно бесполезно, народ пишет серьёзные толстые книжки и при этом тоже далеко не о всех возможных аспектах рассказывает.
Однако, есть желание не особо углублясь во всякого рода хроматические числа, гамильтоновы циклы и прочие познавательные вещи, разобраться с некоторыми базовыми наработками в теории графов и отталкиваясь от них перейти к нейронным сетям на этих графах построенных.
Читать дальше...
Графы и всевозможные алгоритмы с ними связанные, раньше входили в тройку лидеров по популярности в разнообразных книжках про программирование, наряду с алгоритмами сортировки и поиска. Теория графов область весьма обширная и пытаться объять её во всей полноте возможных задач в одной статье (или даже в нескольких статьях) совершенно бесполезно, народ пишет серьёзные толстые книжки и при этом тоже далеко не о всех возможных аспектах рассказывает.
Однако, есть желание не особо углублясь во всякого рода хроматические числа, гамильтоновы циклы и прочие познавательные вещи, разобраться с некоторыми базовыми наработками в теории графов и отталкиваясь от них перейти к нейронным сетям на этих графах построенных.
Читать дальше...
👍1
Графы, процесс загрубления, кластеризация
В прошлый раз разобрали некоторые общие моменты связанные с графами, теперь поговорим подробнее про разбиение графов на части, т.е. кластеризацию. Мы не будем заходить в какие-то очень тонкие детали, возможно позже разберём конкретные статьи, пока хочется получить представление о двух вещах: первая - это загрубление графа - т.е. алгоритмы уменьшающие размер графа, сохраняя его структурные свойства, вторая - это собственно кластеризация графа (в основном будем разбирать спектральную кластеризацию).
Читать дальше...
В прошлый раз разобрали некоторые общие моменты связанные с графами, теперь поговорим подробнее про разбиение графов на части, т.е. кластеризацию. Мы не будем заходить в какие-то очень тонкие детали, возможно позже разберём конкретные статьи, пока хочется получить представление о двух вещах: первая - это загрубление графа - т.е. алгоритмы уменьшающие размер графа, сохраняя его структурные свойства, вторая - это собственно кластеризация графа (в основном будем разбирать спектральную кластеризацию).
Читать дальше...
Сигналы на графах, свёртки и полиномы Чебышева.
Еще раз поговорим про сигналы на графах. И о том как быстро считать свёртки сигнала с использованием полиномов Чебышева. Нужно это нам для того, чтобы собирать свёрточные сети на графах. Хотя исходно это разбиралось в [1] для навешивание на графы вейвлет преобразований.
Читать дальше...
Еще раз поговорим про сигналы на графах. И о том как быстро считать свёртки сигнала с использованием полиномов Чебышева. Нужно это нам для того, чтобы собирать свёрточные сети на графах. Хотя исходно это разбиралось в [1] для навешивание на графы вейвлет преобразований.
Читать дальше...
Полуавтоматическое обучение классификатора с свёрточными сетями на графах.
arXiv:1609.02907
В статье рассказывается об использовании свёрточной сети на графе для полуавтоматического обучения классификатора.
Задача стоит: взять граф некоторым вершинам которого приписан класс, и продолжить классификацию на неразмеченные вершины. Например, мы хотим классифицировать документы, помещаем их в вершины графа, и связываем две вершины ребром, если один из документов ссылается на другой. При этом у нас только небольшой части документов приписаны метки, а мы хотим разметить все документы.
Читать дальше...
arXiv:1609.02907
В статье рассказывается об использовании свёрточной сети на графе для полуавтоматического обучения классификатора.
Задача стоит: взять граф некоторым вершинам которого приписан класс, и продолжить классификацию на неразмеченные вершины. Например, мы хотим классифицировать документы, помещаем их в вершины графа, и связываем две вершины ребром, если один из документов ссылается на другой. При этом у нас только небольшой части документов приписаны метки, а мы хотим разметить все документы.
Читать дальше...
Свёрточные нейронные сети на графах с быстрыми локализованными спектральными фильтрами.
arXiv:1606.09375
Снова про свёрточные сети на графах. Однако в отличии от того, что разбирали в прошлый раз, у нас задача не перекидывать разметку с одних вершин на другие, а, например, классифицировать сигнал на графе. Если сравнивать со свёрточными сетями на изображениях, предыдущую задачу можно было бы сравнить с задачей семантической сегментации, когда часть изображения уже отсегментирована, и на базе этого знания надо доразметить оставшуюся часть. А сегодня мы разберём аналог классической задачи - классификации изображения. Собственно, авторы и проверяют свой подход на классическом датасете MNIST, представив изображения в виде графа и тренируя сетку для классификации. Авторы выложили код, реализующий идеи статьи, что сильно помогает в понимании работы.
Читать дальше...
arXiv:1606.09375
Снова про свёрточные сети на графах. Однако в отличии от того, что разбирали в прошлый раз, у нас задача не перекидывать разметку с одних вершин на другие, а, например, классифицировать сигнал на графе. Если сравнивать со свёрточными сетями на изображениях, предыдущую задачу можно было бы сравнить с задачей семантической сегментации, когда часть изображения уже отсегментирована, и на базе этого знания надо доразметить оставшуюся часть. А сегодня мы разберём аналог классической задачи - классификации изображения. Собственно, авторы и проверяют свой подход на классическом датасете MNIST, представив изображения в виде графа и тренируя сетку для классификации. Авторы выложили код, реализующий идеи статьи, что сильно помогает в понимании работы.
Читать дальше...
arXiv.org
Convolutional Neural Networks on Graphs with Fast Localized...
In this work, we are interested in generalizing convolutional neural networks (CNNs) from low-dimensional regular grids, where image, video and speech are represented, to high-dimensional...