Форум программистов, компьютерный форум, киберфорум
Python: Научные вычисления
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Python Как вычислить гистограмму градиентов ячейки 8×8? https://www.cyberforum.ru/ python-science/ thread2725450.html
Доброго времени суток, предположим, что у меня есть фрагмент изображения 8 × 8 пикселей, и соответствующая матрица, заполненная значениями яркости каждого пикселя Пусть для примера будет что-то...
Сортировка данных из pdf файлов Python
Доброго времени суток, форумчане! Перейду сразу к сути вопроса. Есть большой перечень пдф файлов вроде закрепленного. В них хранятся сведения о погибших в первой мировой войне. Необходимо из этих...
Поиск сопряжённой функции (convex conjugate) Python
Здравствуйте! Задача: Найти сопряжённую и дважды сопряжённую функции к 5\sin{2x}+x^2. По определению сопряжённая функция есть f^*(p)=sup(px-f(x)). Т.е. нужно решить задачу оптимизации. Нашла код...
Python Решение задачи линейного программирования графическим методом Нужна помощь) Есть такая задача: (((Для составления 1 изделия необходимы 2 детали Д1 и 1 деталь Д2. Их можно получить двумя способами: 1 способ дает 6 деталей Д1 и 4 детали Д2 с единицы сырья:... https://www.cyberforum.ru/ python-science/ thread2720525.html
Python Работа с графами библиотеки networkx https://www.cyberforum.ru/ python-science/ thread2718634.html
Здравствуйте уважаемые знатоки. Не могли бы вы подсказать мне с данным вопросом? На приложенном скрине я вывел граф, в котором даже по картинке видно, что не всего его узлы являются сильно...
Посчитать среднию используя groupby in Pandas Python
Здравствуйте, Извиняюсь если вопрос слишком простой. Я только начала работать с данными (машинное обучение). И сейчас бьюсь пока с базовыми манипуляциями панды. Есть файл CSV по посаженным...
Создание графика по уравнению Python
Помогите нарисовать график в matplotlib по системе линейных уравнений. 6x1+x2>=2 4x1+2x2>=1
Python Погрешность при работе с большими числами Реализую алгоритм шифрования rsa. Шифрую сообщение следующим обрпзом . for i in range(len(dig_text)): dig_text = (dig_text**e)%n Расшифровываю:. for i in range(len(crypt)): ... https://www.cyberforum.ru/ python-science/ thread2717680.html
Python Некорректное построение графиков: matplotlib https://www.cyberforum.ru/ python-science/ thread2717183.html
Здравствуйте! Почему в matplotlib график (прямые линии) строятся не совсем от заданных координат по оси абцисс? Там какие-то смещения и в глаза это бросается резко. Значения все проверены. Всё...
Python По каналу связи передаётся сообщение из натуральных чисел, не превышающих 1000. Для проверки того, что сообщение передан По каналу связи передаётся сообщение из натуральных чисел, не превышающих 1000. Для проверки того, что сообщение передано без помех, используется примитивный алгоритм подсчёта контрольной суммы -... https://www.cyberforum.ru/ python-science/ thread2714177.html
Python Не заполняются контуры при использовании функции drawContours opencv https://www.cyberforum.ru/ python-science/ thread2712604.html
Здравствуйте. Почему-то не работает функция drawContours в opencv. При выставленном параметре thickness=-1 не происходит заполнения контуров, только сами контуры и рисуются. Подскажите, в чем может...
Python Tensorflow: вычисление на GPU Добрый день. Хотел выполнить сложные вычисления на GPU. С этой целью написал вот такой код: def multivariate_data(dataset, target, start_index, end_index, history_size, ... https://www.cyberforum.ru/ python-science/ thread2712558.html
0 / 0 / 0
Регистрация: 04.08.2020
Сообщений: 163
0

Правильно ли я считаю гистограмму градиентов?

09.11.2020, 12:04. Просмотров 739. Ответов 1
Метки (Все метки)


Доброго времени суток, не нашел четкого описания алгоритма HOG, во многих статьях даны лишь расплывчатые представления, в связи с этим что-то пришлось додумывает самому и я хочу поинтересоваться, правильно ли я делаю, или нет
Если конкретно, то я не уверен в вычислении гистограммы для ячейки 8 × 8
Предположим, у нас есть матрица 8 × 8:

10 20 30 40 50 60 70 80
15 25 35 45 55 65 75 85
90 100 110 120 130 140 150 160
95 105 115 125 135 145 155 165
250 240 230 220 210 200 190 180
255 245 235 225 215 205 195 185
170 160 150 140 130 120 110 100
175 165 155 145 135 125 115 105

У меня есть неуверенность в следующих моментах:
1. Рассчет направления по x и y для крайних пикселей
Так как направление по x и y для пикселей в центре, например для пикселя 2 столбца 3 ряда (100) будет следующая:
По x: |90-110| = 20
По y: |25-105| = 80
Но как посчитать направления, например, для пикселя 1-ого ряда 1-ого столбца (10)
Я думаю, что это должно считаться как полуразница с единственным соседним пиксели, то есть так:
По x: |(10-20)/2|=5
По y: |(10-15)/2|=2.5

И второй непонятный мне момент:
Когда мы посчитаем магнитуду и ориентацию для каждого пикселя через формулы:

Magnitude = √x^2+y^2 = √25+6.25 = √31.25
Orientation = arktan(30/50)

Нам нужно будет заполнить саму гистограмму, представляющую вектор 9 × 1 с ячейками, соответствующим углам от 0 до 160 с шагом 20:

0 20 40 60 80 100 120 140 160

И я не уверен в следующих моментах:
1. Допустим в ходе расчетов мы узнаем, что у нас в ячейки 8 × 8 есть два угла, равные, например, 140:
Тогда мы значения, соответствующие magnitude пикселей, которым принадлежат значения orientation 140, а таких пикселей, как мы предположили, 2, мы, получается суммируем?
То есть если в гистограмме 8 × 8 у нас есть один пиксель с magnitude 48 и orientation 140 и второй пиксель с magnitude 142 и orientation тоже 140, то в поле 140 вектора 9 × 1 мы заносим сумму значений 48+142 = 190?

2. Если orientation пикселя находится ровно между двумя ячейками, например есть пиксель с magnitude 72 и orientation 50, то в ячейки, между которыми находится этот угол (то есть в ячейки, соответствующие углам 40 и 60) мы вносим ровно по половине значения magnitude этого пикселя 36?(72/2=36)

3. И обращаясь к пункту 2, получается, если значение orientation пикселя не очень удобное, например 135, то значения в ближайшие ячейки вектора 9 × 1 (120 и 140) вносятся пропорционально тому, к какой ячейки значение orientation ближе?
То есть допустим у нас есть пиксель с magnitude 20 и orientation 135, то пропорция распределения будет следующая:
1/4 в ячейку 120, то есть 20/4 = 5
3/4 в ячейку 140, то есть 20/4*3 = 15
И в ячейку 120 попадет значение 5, а в ячейку 140 значение 15

Подскажите пожалуйста, правильно ли я делаю?

Вернуться к обсуждению:
Правильно ли я считаю гистограмму градиентов?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.11.2020, 12:04
Готовые ответы и решения:

Как вычислить гистограмму градиентов ячейки 8×8?
Доброго времени суток, предположим, что у меня есть фрагмент изображения 8 × 8 пикселей, и...

Скажите правильно ли я считаю
Нужно найти ошибку в коде и дать объяснение преподавателю, скажите правильно ли я считаю: В этом...

Правильно ли я считаю вероятность события?
Добрый день! Подскажите я правильно считаю вероятность события. Есть колода карт из 52 штук...

Считаю запятые
Как рассматривать каждый символ в строке отдельно? Dim TestString As String TestString =...

__________________
Помогаю в написании студенческих работ здесь.
1
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.