-
Notifications
You must be signed in to change notification settings - Fork 6
common_objectbase
Практически все взаимодействие с пакетом происходит посредством конфигурационного XML-файла, называющегося обычно базой объектов. Пример такого файла, содержащий большое количество объектов, основанных на разных признаках можно посмотреть тут. Также много примеров приложено по ходу документации, например при описании признаков.
В данном файле должно быть четыре основных раздела-тега.
Внутри этого тега описываются все признаки простых объектов. Признак описывается тегом Attribute и содержит всю необходимую информацию для распознавания этого признака. Подробнее читайте в разделе простые объекты.
<AttributeLib>
<Attribute Name="HaarFace" Type="HaarCascade" Cascade="cascades/mallick_haarcascade_frontalface_default.xml"/>
<Attribute Name="CnnPerson" 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.5" obj_id="1"/>
</AttributeLib>
Выше два примера, признак, оперделяющий лицо каскадами Хаара и признак определяющий человека сверточной нейронной сетью.
Внутри этого тега описываются простые объекты. Объект описывается тегом SimpleObject, который содержит список тегов Attribute, ссылающихся по имени на признаки из AttributeLib.
<SimpleObjectBase>
<SimpleObject Name="Face" ID="10">
<Attribute Type="Detect">HaarFace</Attribute>
</SimpleObject>
<SimpleObject Name="CnnPerson" ID="67">
<Attribute Type="Detect">CnnPerson</Attribute>
</SimpleObject>
</SimpleObjectBase>
Примеры выше описывают объекты, состоящие из соотвественных признаков (в данном случае по одному на каждый).
Внутри этого тега описываются отношения.
<RelationLib>
<Relation Obj1="Face" Obj2="Person" Relationship="in"/>
</RelationLib>
Пример выше описывает отношение нахождение прямоугольник аодного объекта в прямуогльнике другого.
Внутри этого тега описываются сложные объекты, со ссылкой на простые объекты из SimpleObjectBase и отношения из RelationLib.
<ComplexObjectBase>
<ComplexObject ID="10" Name="FacedPerson">
<SimpleObject Class="CnnPerson" InnerName="Person"/>
<SimpleObject Class="Face" InnerName="Face"/>
<Relation Obj1="Face" Obj2="Person" Relationship="in"/>
</ComplexObject>
</ComplexObjectBase>
Пример описывает объект человека с распознанным лицом.
- ROS-интерфейс
- Взаимодействие посредством конфигурационного файла
- Установка
- Руководства
- Проблемы
- Разработка