У меня есть видеопоток с камеры с ручным управлением, расположенной сверху и обращенной к объекту на столе. Объект примерно имеет форму равнобедренной трапеции с короткой стороной, всегда обращенной вверх, но он не всегда идеально выровнен и имеет отверстия.
Я хочу сразу определить, когда камера выходит из поля зрения объекта
Я использую opencv и могу извлечь контур объекта. (черный — фон, серый — контур/выпуклая оболочка, темно-серый — ограничивающий прямоугольник, а точки в кружках — точки контура)
Таким образом, вы можете сказать, что я пытаюсь определить, когда контур выглядит как этот 5-сторонний многоугольник. Который можно описать как прямоугольник с треугольником, вырезанным из любого из верхних углов
Проблема в том, что объект не является идеальной трапецией, не идеально выровнен и имеет случайные отверстия, из-за чего извлечение контура приобретает более сложную форму. например:
Он изменился, но форма все еще похожа на 5-сторонний многоугольник. Из-за отверстий в объекте контур может иметь некоторые другие сложные формы, поэтому мне нужно, чтобы соответствие формы было как можно более точным, но при этом надежным, чтобы приспособиться к несовершенной форме.
Я не могу просто использовать соотношение пикселей объекта к пикселям фона из-за отверстий, и мне трудно программно идентифицировать форму исключительно по положению точек контура, потому что это не точная форма. Я предполагаю, что сопоставление шаблонов и сопоставление форм не будут идеальными, потому что размер формы неизвестен, и из-за других форм контур может быть (например, треугольник с вершиной, обращенной влево)
Мне нужно определить, что камера отошла от объекта, как только это произойдет, потому что впоследствии это отбрасывает мою обработку.