Какие факторы влияют на точность сравнения объектов при помощи Hu моментов?
Есть система для поиска по изображению в каталоге. На данный момент сложность состоит в том, что помимо нужных результатов в выборке попадаются вообще ниразу не похожие изображения.
Поиск производится следующим образом. Есть база эталонов (база с уже посчитанными Hu моментами). При загрузке изображения, берется Canny, чуть обрабатывается и высчитываются моменты. Потом просто идет сортировка по результату сравнения моментов.
Возможно вариант с моментами не лучший способ решить задачу классификации (у нас есть ~1000 различных объектов вписывающиеся в 10 различных категорий по форме) но я не придумал ничего другого, что бы на выборке в 1000 элементов это отрабатывало достаточно быстро (сейчас обработка и сравнение занимают чуть меньше секунды).
Пробовал применить аппроксимацию, но увы ничего толком не вышло. Поиск уже не инвариантен по отношению к положению объекта на картинке.
Собственно, когда я экспериментировал, я заметил, что если оставить только чистый контур, система работает хуже, нежели если в контуре что-то есть. Хотя по логике точность сравнения должна повыситься, но на деле вышло хуже.
Словом вопрос в следующем. Как можно объяснить то, что при сравнении двух субъективно совершенно разных объектов, разность моментов меньше, чем при сравнении субъективно более похожих объектов. Как это можно исправить?
У меня есть предположение что на это влияет наличие шума внутри контура. Он на каждой фотографии разный. Хотя в некоторых случаях мне совсем непонятен этот баг/фича.