Ну фигня выходит, попробовали. Там на одной камере зона где надо делать детект в форме буквы "т" , и область где не надо детектить получается большая и оттуда идут ложные тревоги
Там просто берется картинка пользователь выделяет прямоугольники. Сохраняются координаты прямоугольников. Потом это все вырезается и маштабируется под стандартный размер получается куча кружок или птичек с разных ракурсов. Так же подбираются образцы для отрицательного подкрепления (не кружка/ не птичка) Это отдается на обучение НС. Где НС учится отличать птичку от не птички. А далее тренировочные изображения отдаются на распознавания. Есть два подхода это скользящим окном или плиткой. Скользящим окном перебираются все координаты и копируются квадратики из большого изображения в маленькое. Которое подается в НС которая классифицирует птичка или не птичка. Если птичка то координата запоминается. Медленный способ. Поэтому придумали использовать не скользящее окно, а сразу разделить все изображение сеткой на одинаковые квадраты - как плитка в ванной. И каждый такой кусочек подается на НС. На выходе выдаются координаты центра. Для распознавания разных масштабов придумали Intersection over union (IoU) . Соседние координаты плитки группируются. Центр вычисляется как центр тяжести. Используя точность предсказания оценивается точность укрупненного объекта. Затем ищутся локальные максимумы что-бы отфильтровать дублирующие ректы.
Очевидно самый простой способ. Очерчиваете AABB-rect вокруг вашего контура. Вырезаете нужный кусок или используете ROI подаете на распознавание. Полученные результаты просто фильтруете PointInPolygon Или можно все лишнее закрасить белым или черным цветом
Ну там НС тренируется на кусочках птичек по этому она тоже распознает. Вы, школьники это делают лучше, же можете своих близких распознать по носу или по глазам. Так же и искусственная НС работает.
Т.е. НС скажет что в 4 плитках по птичке. А далее дополнительными алгоритмами такими как IoU 4 объединятся в 1. Подробнее в книге что по ссылке выше в 7 главе.