Обнаружение цветовых аур. Это хорошая задача для классификатора или я должен использовать методы обработки изображений?
Я хочу определить, когда игровое изображение содержит ауру, подобную тем, что были на предыдущих изображениях. Они могут принимать случайный цвет (не только красный или синий, я видел белый, желтый, зеленый, оранжевый...). Моим первым подходом было обучение классификатора OpenCV, настройка его параметров и переобучение его в течение нескольких долгих часов. Использование около 500 положительных и 1000 отрицательных изображений. Тем не менее, это не работает. Иногда он их находит, но также получает много ложных срабатываний, иногда даже не находит их.
Я начинаю задаваться вопросом, является ли это хорошей задачей для классификатора. Однако такая возможность выбора случайного цвета нарушает идею использования алгоритма определения цвета. Тем не менее эти цвета действительно яркие.
Возможно, другое возможное решение, которое приходит мне в голову - это всегда выделять самые яркие части изображения и иметь классификатор, чтобы определить, является ли это одной из этих аур или нет. Но я не знаю, сработает ли это.
Не могли бы вы немного рассказать мне об этой задаче? Какие шаги я должен следовать? Должен ли я продолжать использовать классификатор или это пустая трата времени? Спасибо!
2 ответа
Для этой работы вы можете использовать каскадный классификатор. Я думаю, что вы уже используете его, но я не уверен. Если вы используете его, вам нужно знать, что этот классификатор работает с изображением в градациях серого. Это может быть одним из источников проблем. Попробуйте найти предварительную обработку, которая могла бы усилить эти ауры (возможно, попробовать много обнаружений на каждом нормализованном канале). Высокий уровень ложных срабатываний является слабостью этого алгоритма. Попробуйте более глубокий каскад или установите более низкое соотношение. Вы можете использовать SVM, NN, KNN для классификации после этого обнаружения, чтобы удалить все ложные обнаружения.
Да, это хорошая проблема для машинного обучения. Поскольку обучение классификатора занимает несколько часов, я полагаю, вы использовали нейронную сеть, и она была довольно большой. Затем возникло несколько вопросов:
- Насколько большой был ваш NN. Поскольку в вашем тренировочном наборе всего 1500 изображений, вы не можете превышать 300 параметров / весов, и даже в идеале не превышать 150.
- Вы играли с весами каждого экземпляра в тренировочном наборе? Потому что у вас есть несбалансированный набор данных (500 положительных на 1000 отрицательных).
- Содержит ли ваш положительный набор данных примеры каждого цвета?
- Вы дали полное изображение или много исправлений, сделанных на изображении?