Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 17

Более простым языком, как построить SIFT дескриптор?

12.05.2016, 11:23. Показов 1832. Ответов 3

Студворк — интернет-сервис помощи студентам
На основе этой статьи: https://habrahabr.ru/post/106302/
Первые пункты понятны и просты
1) Гауссом проходим по изображению несколько раз. Сохраняем некоторые стадии размытия
2) Вычитаем "соседние" полученные изображения
3) Исследуем каждый пиксель на экстремум вместе с окружающими его точками самого изображения, а также изображений "выше" и "ниже"
Все это делаем для нескольких "октав", т.е. исходное изображение уменьшается вдвое и т.д.
И вот тут я перестаю понимать. Что значит "аппроксимирование функции DoG многочленом Тейлора второго порядка", в смысле, что именно делать с изображением в плане реализации, к примеру, на С#? Не понимаю нахождение производных в пикселях. Ну и остальные дальнейшие шаги

Заранее спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.05.2016, 11:23
Ответы с готовыми решениями:

Написать программу более простым языком (как заменить std::cout на printf? )
#include <iostream> #include <stdio.h> #include <iomanip> using namespace std; int main() { int const n = 5; int...

как можно более просто написать эту программку(более понятным языком для начинающего)
7. Установить, четным или нечетным является число цифр в записи данного натурального числа. Если число цифр нечетно, вывести среднюю цифру....

Как объяснить простым языком, что такое аксиальный вектор?
Как объяснить простым языком, что такое аксиальный вектор? И почему его ещё называют псевдовектором?

3
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
12.05.2016, 13:40
Цитата Сообщение от Sacerdos Посмотреть сообщение
Не понимаю нахождение производных в пикселях.
Производная "в пикселах" это просто разность яркости текущего пиксела и яркости предыдущего (по x или по y) пиксела:

dP(x, y)/dx = P(x, y) - P(x-1, y)

где P(x, y) яркость пиксела (x,y).

Цитата Сообщение от Sacerdos Посмотреть сообщение
Что значит "аппроксимирование функции DoG многочленом Тейлора второго порядка"
Что касается аппроксимации. После того, как экстремум получен (то есть найден пиксел, яркость которого больше чем яркость всех соседей), нужно уточнить положение экстремума с субпиксельной точностью. Сами пикселы дискретны, и реальный экстремум может находиться где-то "между" пикселами. Для того что бы найти этот экстремум, пикселы апроксимируются кривой второго порядка:



Эта кривая находится с помощью разложения тейлора.
Затем находится экстремум этой кривой. На рисунке видно, что экстремум аппроксимации лежит где-то между 4 и 5 пикселами. Это и есть точка субпиксельного экстремума. Эта точка - дробное число (в отличие от координат самих пикселов).
Для нахождения экстремума, кривая дифференцируется и приравнивается к нуля, находится корень уравнения. Он и будет точкой экстремума.

Эти вычисления делаются как по x так и по y в результате чего получаем субпиксельный экстремум в двумерном пространстве.
0
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 17
12.05.2016, 16:52  [ТС]
Так-с, производную понял - "первая производная DoG — градиент, вторая производная DoG — матрица Гессе." Что со второй? И у меня все еще вопрос, как мы раскладываем по Тейлору в смысле работы с пикселями?
0
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 17
16.05.2016, 10:43  [ТС]
Так-с, с уточнением точек разобрался. А что с последующими пунктами?
m — величина градиента, theta — его направление : это нашел, что дальше?

Добавлено через 20 минут
Гистограмма, где нашел направление(их всего 36, по 10 градусов). Что дальше?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.05.2016, 10:43
Помогаю со студенческими работами здесь

Объясните, пожалуйста, как строить поля из n элементов самым простым и понятным языком
Здравствуйте. Объясните, пожалуйста, как строить поля из n элементов самым простым и понятным языком(например, из 9 или 16 элементов). ...

Модели OSI простым языком
Здравствуйте. Может кто-то объяснить простым языком, все 7 уровней? Своими словами, спрашивая у друга я дошел с трудом до 3 уровня: ...

Нормальные формы простым языком
Как бы заголовок описывает суть проблемы ;) На википедии аж 8 нормальных форм БД и при этом они написаны таким языком, что честно...

Web services простым языком
привет! читаю туториалы на тему web services, но хорошего понимания пока нет. Может кто простым языком пояснить назначение и...

обьясните функцию простым языком :)
Обьясните плиз, почему в main() возможна такая d3 = 10.0 + d1; операция? Тоесть на первом месте стоит 10.0 потом обьект. Я понял что это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru