Определите высоту Кофе в горшке с помощью обработки изображений Python

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

(Это - мое лучшее предположение, и я понятия не имею о базовых сложностях.)

Как я пошел бы об этом? Это считали бы очень сложным заданием для участия? К вашему сведению я никогда не делал никакого вида связанной с обработкой изображений работы.

24
задан pppery 1 August 2019 в 22:02
поделиться

7 ответов

Вы должны превратить этот вопрос в школьное задание для студента ИТ-школы. В большинстве IT-школ преподают Компьютерное зрение. Задавать вопрос здесь смешно, а получить студента и преподавателя, исследующих эту тему, было бы просто уморительно!

0
ответ дан 19 July 2019 в 19:49
поделиться

Существует Библиотека изображений Python , которая может определять края. Но я не пользователь Python :).

0
ответ дан 19 July 2019 в 19:49
поделиться

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


(источник: nullnetwork.net)

Самый простой способ - получить два кадра, один с пустым кофейником, другой с полным (очевидно, при одинаковых условиях освещения, что обычно и происходит), преобразовать в градации серого (colorsys. rgb_to_hsv каждый пиксель RGB и сохраняем только v (3-й) компонент) и суммируем светимость всех пикселей в выбранном сегменте линии. Допустим, в случае пустого кофейника сумма составит 550, а в случае полного кофейника - 220 (кофе темный). Сравнивая сумму входного кадра с этими двумя суммами, можно получить приблизительную оценку процентного содержания кофе в кофейнике.

Я бы не стал ставить свою жизнь на точность этого метода, однако, и колебания даже от секунды к секунде могут быть дикими :)

N.B: в моем примере зеленый столбец пикселей должен простираться до дна кофейника; я просто привел пример того, что я имел в виду.

11
ответ дан 29 November 2019 в 00:22
поделиться

Шаги, которые я бы попробовал:

  1. Преобразование изображения в оттенки серого .
  2. Сделайте двоичное изображение , оставив только кофе. Вы можете определить хороший порог вручную путем экспериментов.
  3. Экстракция кляксы . Площадь капли (количество пикселей) - это один из способов вычисления высоты, то есть площади / ширины.
4
ответ дан 29 November 2019 в 00:22
поделиться

Сначала выполните пороговую обработку, затем сегментацию. Тогда вам будет легче обнаруживать края.

2
ответ дан 29 November 2019 в 00:22
поделиться

Вы ищете обнаружение края . Но вам нужно только сделать это между коричневым / черным кофе и цветом фона за горшком.

1
ответ дан 29 November 2019 в 00:22
поделиться
  • сделайте фотографии кофейника с разным уровнем кофе в нем.
  • уменьшите размер изображения до 4*10 пикселей.
  • проделайте то же самое в цикле для каждой новой живой фотографии.
  • вычислите разницу значений каждого пикселя по сравнению с эталонными изображениями.
  • возьмите эталонное изображение с наименьшей суммой разницы и получите состояние вашей кофеварки.

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

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

0
ответ дан 29 November 2019 в 00:22
поделиться
Другие вопросы по тегам:

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