Классификация текстур через DCT


12

Насколько целесообразно было бы классифицировать текстуру изображения, используя элементы дискретного косинусного преобразования? Погуглив «текстовую классификацию dct», можно найти только одну академическую статью по этой теме, используя нейронную сеть.

Для моего приложения у меня есть большой корпус помеченных изображений, в которых все изображение представляет собой непротиворечивую текстуру (например, снимки крупного плана одеяла, коры дерева, травянистого поля и т. Д.).

Вдохновленный ответом на предыдущий вопрос , я рассматривал следующий подход:

  1. разбить каждое изображение на NxN блоков пикселей
  2. взять DCT каждого блока
  3. объединить каждый DCT в массив 1xM и передать его в алгоритм кластеризации K-Means, а также получить метку кластера для каждого DCT
  4. рассчитать гистограмму кластеризации меток для каждого изображения путем подсчета каждой метки на изображение из # 3
  5. обучить классификатор SVM, передав ему набор [(гистограмма, метка изображения)]

Насколько хорошо это будет работать? Я реализовал аналогичную систему, используя функции, извлеченные с помощью алгоритмов SIFT / SURF, но я смог получить точность только около 60%.

Какими еще способами я мог бы использовать DCT для классификации текстур?


1
Это почти похоже на назначение нейронной сети, которое я только что сделал для ml-class.org
Ivo Flipse

2
@IvoFlipse: +1 для ml-class.org. Тем не менее, этот вопрос об особенностях. В конце концов, если ваши функции не соответствуют задаче, не имеет значения, насколько хорош ваш алгоритм классификации.
Дима

Фильтры банка Габора могут быть очень полезны для классификации текстов.
mrgloom

Ответы:


6

Пока что то, что вы предлагаете, звучит как разумный подход. Тем не менее, я не думаю, что вы будете знать, насколько хорошо это работает, пока не попробуете, так же, как вы попробовали SIFT.

У меня есть вопрос, хотя. Почему вы ограничиваете себя DCT? Существует множество представлений, которые использовались для классификации текстур: матрицы совместного использования, локальные двоичные шаблоны и т. Д. Тот факт, что вы нашли только одну статью об использовании DCT для классификации текстур, предполагает, что это не самая распространенная функция. для этой проблемы. Я бы порекомендовал вам расширить поиск литературы, чтобы увидеть, какие другие функции люди использовали и насколько хорошо они работали.


4

Если бы вы не разбивали изображение на блок NxN, а вместо этого использовали скользящее окно - вычислите DCT для блоков, центрированных в каждой точке изображения, это будет по существу с использованием вейвлет-подхода. Ваше разбиение изображения на блоки аналогично использованию скользящего окна и уменьшающей дискретизации изображения. По сути, вы используете сокращенную форму сегментации текстуры вейвлетов. Вейвлет Габора используется вместо DCT обычно потому, что: он имеет больше параметров (+ масштаб и + направление) и плавное затухание (вместо острого края окна).


3

Одной из самых привлекательных причин, по которой нужно выполнять сегментацию / классификацию текстур на основе DCT (или любую другую деятельность), является тот факт, что большинство изображений JPEG и видео MPEG уже находятся в DCT. С другой стороны, обычно считается, что подход, основанный на Габоре, является вычислительно дорогостоящим.

Коэффициенты DCT MID к высоким частотам и / или диагональным частотам отражают хорошее представление локальных изменений в области пикселей.

Однако все это может быть не так хорошо, как кажется. Во-первых, в большинстве стандартов блоки DCT имеют размер 8x8. Таким образом, подразумевается, что если сцена имеет шаблон с периодичностью 8 точек пикселей, этот резонирующий эффект будет виден с точки зрения сходства соответствующих коэффициентов смежных блоков, однако, когда периодичность изменяется, эта зависимость изменяется.

Поймите, что критическая разница между чистыми блоками DCT против Габора заключается в том, что у Габора есть шкала. Поэтому, если вы измените «периодичность» или «тонкость / шероховатость» текстуры, Габор обнаружит ее там, где при фиксированной оценке блока DCT @ 8x8 размер блока не сможет хорошо поместиться.

Однако, что нужно понять, это построить такие шаблоны, рассматривая несколько блоков вместе, чтобы оценить такое масштабное явление. В качестве базового подхода, например, спросите, были бы у меня блоки 16x16 или блоки размером 32x32, каковы были бы результирующие шаблоны в коэффициентах? Коэффициенты в соответствующих местах будут иметь некоторые взаимосвязи для использования и позволяют определить истинный масштаб текстуры.

Это действительно хорошая тема для исследования.

ПРИМЕЧАНИЕ. Даже MPEG7 (который очень близок к комитетам, создавшим MPEG) - они предлагают функции на основе Gabor для текстур, а не на основе DCT.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.