Skip to content

DnnAttribute

Moscowsky Anton edited this page Nov 2, 2021 · 5 revisions

DNN Attribute

Признак, распознающий образы при помощи dnn модуля из OpenCV. Минимальная версия OpenCV: 3.4.1 (в то время как ROS Melodic идет с 3.2.0, рекомендуется использовать Noetic) Для использования сетей из других фреймворков в этом модуле не требуется их установка.

Режимы Оценка точности 3D-перенос 3D-поворот Определение контура Извлекаемая информация
D D - <Attribute_name>:class_id, <Attribute_name>:class_label

1. Режимы

1.1. Распознавание (Detect)

Возвращает области с объектами, распознанные СНН, и имеющие вероятность не ниже чем Probability.

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

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

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

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

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

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

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

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

  • framework (string, must be set) Фреймворк, доступные варианты: darknet, tensorflow.
  • weights (string, must be set) Путь к файлу весов. См. таблицу ниже для дополнительной информации.
  • config (string, must be set) Путь к файлу конфигурации. См. таблицу ниже для дополнительной информации.
  • labels (string, default: "") Путь к файлу с именами меток. необязательный параметр, нужен только если треубется фиксировать имя объекта в сети.
  • _forceCuda (int, default: 0) Для некоторых копмпьютеров (например линейки Jetson) требуется выставить 1 для включения ускорения сети с помощью CUDA и cuDNN.
  • inputWidth (int, default: 300) Ширина входного изображения на сеть. TODO: extract automatically from config
  • inputHeight (int, default: 300) Высота входного изображения на сеть. TODO: extract automatically from config

2.3. Пример

<?xml version="1.0" ?>

<AttributeLib>

    <Attribute Name="COCO_Dnn" Type="Dnn" framework="tensorflow" weights="ssd_mobilenet_v1_coco_2017_11_17/frozen_inference_graph.pb" config="ssd_mobilenet_v1_coco_2017_11_17/config.pbtxt" labels="ssd_mobilenet_v1_coco_2017_11_17/mscoco_label_map.pbtxt" inputWidth="300" inputHeight="300" Probability="0.75"/>

</AttributeLib>

<SimpleObjectBase>  
    
    <SimpleObject Name="COCO_dnn_object" ID="60">              
        <Attribute Type="Detect">COCO_Dnn</Attribute>                    
    </SimpleObject>
    
</SimpleObjectBase>

dnn example Как можно видеть в примере, за названием признака указывается в фигурных и круглых скобках id и имя образа в сети.

3. Поддерживаемые фреймворки

Framework Weight File Config File Label File
DarkNet .weight file .cfg file
TensorFlow frozen_inference_graph.pb files generated .pbtxt file .pbtxt file
Clone this wiki locally