Skip to content

FeatureDetector

Moscowsky Anton edited this page Dec 3, 2020 · 2 revisions

Feature

Для использования данного признака, требуется установка дополнительных модулей OpenCV, которые не включены по умолчанию в OpenCV, идущую с ROS.

Детектирование методом ключевых точек алгоритмами SURF, SIFT или ORB. Для работы с данным признаком требуется установка OpenCV contrib. В данной версии признак способен найти только один объект на изображении.

Режимы Оценка точности 3D-перенос 3D-поворот Определение контура Доп. информация
D - В виде четырехугольника соответствующего размеру примера -

1. Режимы

1.1. Детектирование (Detect)

Определяет области с ключевыми точками, соответствующие образцу. Рассчитывает поворот объекта (хорошо работает в случае плоских объектов) и локализует объект, в случае если известны реальные размеры.

1.2. Проверка (Check)

Не реализовано

1.3. Извлечение (Extract)

Не реализовано

2. XML-описание

2.1. Общие параметры

  • Name (string, must be set) уникальное имя атрибута.
  • Type (string, must be "Feature") тип атрибута.
  • Weight (double, default: 1) вес атрибута.
  • Probability (double, default: 0.75) допустимая точность распознавания, не используется.
  • Contour (bool, default: true) Возвращает контур признака если true.

2.2. Особые параметры

  • featureExtractorType (string, default: "SIFT", also can be "SURF" or "ORB") метод определения ключевых точек
  • min_matches (int, default: 50) минимальное кол-во "хороших" точек. Хорошие точки те, мера соответствия между которыми меньше средней меры соответствия между наборами текущего и оригинального изображения.
  • sample_image (string, must be provided) Путь к изображению искомого объекта. Если путь начинается с '/', то он считается глобальным, если нет, то локальным от места расположения базы объектов.
  • height (double, default: 0) Реальная высота искомого объекта в метрах, позволяет определить положение объекта в пространстве.

2.3. Пример

<AttributeLib>
    
    <Attribute Name="NotFractal" Type="Size" MinAreaPc="0.5" MaxAreaPc="100"/>
    
    <Attribute Name="SocialRobotsCover" Type="Feature" featureExtractorType="SIFT" min_matches="100" height="0.215" sample_image="feature_samples/social_robots.jpg"/>

</AttributeLib>

<SimpleObjectBase>  
    
    <SimpleObject Name="SocialRobotsBook" ID="50">              
        <Attribute Type="Detect">SocialRobotsCover</Attribute>            
        <Attribute Type="Check">NotFractal</Attribute>
    </SimpleObject>
    
</SimpleObjectBase>

Данный признак также рекомендуется использовать в совокупности с признаком размера, чтобы отфильтровать ложные срабатывания. feature example Как можно видеть, данный признак при заданных реальных размерах объекта позволяет определить его трехмерное положение и ориентацию. Как признак в целом, лучших показателей точности это достигается в случае с плоскими объектами. Ориентация определяется относительно изображения-примера. feature axis example

Clone this wiki locally