Обнаружение выбросов пикселей на основе плотности с использованием python - PullRequest
0 голосов
/ 23 декабря 2019

У меня есть изображение с разрешением 256 x 256. Моя цель - найти размытые белые пиксели, которые выделяются на изображении. Изображения можно увидеть ниже, и их требуемый вывод находится под ними. Я применил кластеризацию DBSCAN, используя sklearn с 1 в качестве eps и 150 в качестве min_samples. Результат, который я получил, потрясающий, но он занял 30 секунд и около 35 ГБ моей оперативной памяти. Я хочу другой метод обнаружения аномалий, который может кластеризовать размытые белые пиксели от остальных черноватых пикселей. Я пытался использовать Random Forest и LOF, но не смог получить желаемый результат. Решение должно быть достаточно быстрым и использовать как можно меньше оперативной памяти. DBSCAN занимает много времени и слишком много оперативной памяти. Кластеризация должна выполняться без указания количества кластеров, чтобы алгоритм мог сам находить аномальные пиксели. Желаемый результат, который мне нужен, ниже: enter image description hereenter image description hereenter image description hereenter image description here

1 Ответ

0 голосов
/ 24 декабря 2019

Я не думаю, что вам вообще следует использовать кластеризацию. Вы хотите удалить значения с некоторым порогом, я думаю. Это неправильный инструмент для этой проблемы. Если у вас есть молоток, все выглядит как гвоздь, но это не гвоздь.

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

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

...