Skip to content

common_objectbase

Moscowsky Anton edited this page Nov 17, 2020 · 4 revisions

Общая структура конфигурационного файла

Практически все взаимодействие с пакетом происходит посредством конфигурационного XML-файла, называющегося обычно базой объектов. Пример такого файла, содержащий большое количество объектов, основанных на разных признаках можно посмотреть тут. Также много примеров приложено по ходу документации, например при описании признаков.

В данном файле должно быть четыре основных раздела-тега.

AttributeLib

Внутри этого тега описываются все признаки простых объектов. Признак описывается тегом 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>

Выше два примера, признак, оперделяющий лицо каскадами Хаара и признак определяющий человека сверточной нейронной сетью.

SimpleObjectBase

Внутри этого тега описываются простые объекты. Объект описывается тегом 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

Внутри этого тега описываются отношения.

<RelationLib>    
    <Relation Obj1="Face" Obj2="Person" Relationship="in"/>        
</RelationLib>

Пример выше описывает отношение нахождение прямоугольник аодного объекта в прямуогльнике другого.

ComplexObjectBase

Внутри этого тега описываются сложные объекты, со ссылкой на простые объекты из 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>

Пример описывает объект человека с распознанным лицом.

Clone this wiki locally