@My1Name

Как обнаружить объект на изображении?

Какие есть методы (алгоритмы) обнаружения объекта на изображении?
- Решил я написать программу для подсчёта объектов на изображении. Долго не думая и ничего не читая по теме - "нарисовал" алгоритм (см. комментарии), а затем написал программу, и теперь понял, что я в общем-то написал инструмент "выделение" (как в фотошопе) в цветовом диапазоне. ..

Если говорить о простых вычислениях, то программа справляется со своей задачей. Поигравшись с настройками "размер области" и "цветовой диапазон" - можно что-то считать... Однако, данное решение нельзя применять в полевых условиях. Возникает задача: Определять форму, а затем - объект. То есть, непосредственно в коде для подсчёта объектов нужно параметризировать геометрию.

private void countAreas(HashMap<Integer, int[]> forms) {
		int unit=0, x1, x2, y1, y2;
		int [] position;
		int offset=3; // x > на 2-3 пикселя; - часто встречаемая разница для простой геометрии.
		for (int i = 0; i<forms.size(); i++) {
			position = forms.get(i);
			x1 = position[0];
			y1 = position[1];
			x2 = position[2];
			y2 = position[3];
			if(area!=-1) {
				int x = x2-x1;
				int y = y2-y1;
        // Квадрат или прямоугольник с ориентацией по вертикали: (y+offset)>=x
				if(x>=area && x>=2 (y+offset)>=x) {
						unit++;
						count.setText("C O U N T  :  "+unit);
            //рисуем прямоугольник
						drawAreas(x1,x2,y1,y2);
				}	
			}
		}
	}

Результат работы программы для простых вычислений выгляди вот так:
637b377958a77319509187.jpeg
Если говорить о более сложных вычислениях - начинается "каламбур". Возникает потребность более точно определять форму и классифицировать объект. И чем больше углубляешься в тему данного вопроса, те больше "пропасть" в понимании. Что только не пишут в интернете: "компьютерное зрение", "машины опорных векторов", "нейросети" и т.д. и т.п. В реальности - всё это набор математических выражений определения формы (геометрии), которую нужно описывать в своих методах классификации объекта. В связи с этим возникает вопрос: Какие есть методы (алгоритмы) обнаружения объекта на изображении?
  • Вопрос задан
  • 232 просмотра
Пригласить эксперта
Ответы на вопрос 1
AgentSmith
@AgentSmith
Это мой правильный ответ на твой вопрос
Всё зависит от того что пытаться распознать на изображении.
Для простых геометрических фигур типа линий и окружностей/эллипсов есть метод преобразований Хафа (Hough).
Лица и прочие подобные объекты можно детектировать методом Виолы-Джонса с помощью каскадов Хаара.
Есть ещё метод корреляции для поиска совпадений по шаблону.
Для сложных объектов - машинное обучение и вплоть до полной невозможности распознавания, т.к. эта задача в полной мере не решена и не может быть математически описана.

Какая конкретно стоит задача?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы