Как обнаружить нарушение текстуры

Допустим, у нас есть несколько цветных изображений, являющихся примерами некоего текстурированного узора. В редких случаях эта текстура «нарушается» каким-либо посторонним предметом. Как лучше всего обнаружить эти редкие аномалии?

Я думал об обучении CNN, но хороших примеров намного больше, чем плохих, поэтому у меня есть сомнения. Я начал изучать матрицы совпадения уровней серого (GLCM) и локальные бинарные шаблоны (LBP), но я думаю, что информация о цвете может сыграть важную роль в определении возникновения нарушения. Могу ли я найти распределение этих извлеченных признаков (либо GLCM, либо LBP) и рассчитать вероятность того, что новое изображение принадлежит этому распределению?

Спасибо за вашу помощь!


person Brad Flynn    schedule 23.05.2017    source источник
comment
Не могли бы вы поделиться примерами изображений?   -  person Tonechas    schedule 24.05.2017
comment
@tonechas К сожалению, я не могу, это настолько конкретно, насколько я могу понять проблему.   -  person Brad Flynn    schedule 24.05.2017
comment
Трудно ответить на вопрос без дополнительной информации, но смотрели ли вы на измерения текстуры Ло? Старые, но потенциально полезные. Какой бы метод ни работал, это будет зависеть от вашего приложения. Природные или искусственные объекты/сцены? Живые изображения с камер или файлы изображений разного разрешения/качества? Если вы не можете раскрыть детали, подумайте о том, чтобы провести день в местной инженерной библиотеке, просматривая учебники, тезисы и документы конференций (которые часто находятся за платным доступом в Интернете). Несколько раз я находил мало упоминаемые книги, которые помогали мне решать странные проблемы.   -  person Rethunk    schedule 25.05.2017


Ответы (1)


Трудно понять вашу проблему, не видя несколько образцов изображений. В принципе, существует широкий спектр подходов, которые можно использовать для обнаружения нарушения текстуры, а именно функции GLCM, LBP, маски Ло, векторное квантование и т. д. Одним из возможных способов является измерение локальной энтропии. Рассмотрим изображение ниже, на котором мы можем четко различить два типа текстуры:

квадратный текстурированный объект на текстурированном фоне

Следующий фрагмент считывает изображение, вычисляет локальную энтропию для каждого пикселя в круговой окрестности или заданном радиусе 25 и отображает результаты:

from skimage import io
from skimage.filters.rank import entropy
from skimage.morphology import disk

img = io.imread('https://i.stack.imgur.com/Wv74a.png')
R = 25
filtered = entropy(img, disk(R))
io.imshow(filtered)

Из полученной карты энтропии ясно видно, что локальные значения энтропии можно использовать для обнаружения нарушения текстуры.

локальные значения энтропии

person Tonechas    schedule 05.06.2017