Форум программистов, компьютерный форум, киберфорум
Python: Научные вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 04.08.2020
Сообщений: 231

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

09.11.2020, 12:04. Показов 1108. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.11.2020, 12:04
Ответы с готовыми решениями:

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

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

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

1
578 / 411 / 69
Регистрация: 09.01.2018
Сообщений: 1,363
09.11.2020, 16:30
Гистограмма - по определению - это структура данных (объект), в которых каждая строчка соответствует некоторому интервалу возможных значений ваших входных данных, а значение в этой строке - количество элементов во входных данных, значение которое попадает в этот интервал.
Так что ваши рассуждения правильны.
При этом ни на какие части никакие "неудобные элементы" не делятся.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.11.2020, 16:30
Помогаю со студенческими работами здесь

Как правильно составлять гистограмму?
Добрый день! Как в visual studio правильно составлять гистограмму? Я знаю, где найти chart, но вот как прописать значения для оси? Скажем,...

Считаю запятые
Как рассматривать каждый символ в строке отдельно? Dim TestString As String TestString = "1-3,5-7,10-20" t = 1 n =...

Считаю символы в строке
Захотелось написать функцию которая считает символы в строке (знаю, что есть strlen, но это не прикольно). Наваял такое, но что-то оно не...

Считаю периметр треугольника,квадрата,прямоугольника
Здравствуйте форумчане.Есть вопрос по созданной программе представленной ниже.Как мне реализовать возврат из созданных методов для расчета...

В чём ошибка? Считаю подцепочки длины 5
f=open('j6.txt') a=f.readline() k=0 for i in range(len(a)-5): if int(a<a): if int(a<a): if int(a<a):...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru