classification_results_and_sensor_properties.patch

L. Ziegler, 06/04/2013 11:29 AM

Download (9.96 KB)

View differences:

proto/sandbox/rst/classification/ClassifiedRegion2D.proto
1
package rst.classification;
2

  
3
import "rst/geometry/BoundingBox.proto";
4
import "rst/classification/ClassificationResult.proto";
5

  
6
option java_outer_classname = "ClassifiedRegion2DType";
7

  
8
/**
9
 * Focus on image coordinate systems (vision-based).
10
 *
11
 * A image region with a classification result.
12
 *
13
 * @author Leon Ziegler <lziegler@techfak.uni-bielefeld.de>
14
 */
15
message ClassifiedRegion2D {
16

  
17
    /**
18
     * Region in the input image.
19
     */
20
    optional geometry.BoundingBox region = 1;
21

  
22
    /**
23
     * The class represented by the image region.
24
     */
25
    optional ClassificationResult result = 2;
26

  
27
}
0
- 
proto/sandbox/rst/classification/ClassifiedRegion3D.proto
1
package rst.classification;
2

  
3
import "rst/geometry/BoundingBox3DFloat.proto";
4
import "rst/classification/ClassificationResult.proto";
5

  
6
option java_outer_classname = "ClassifiedRegion3DType";
7

  
8
/**
9
 * Focus on image coordinate systems (vision-based).
10
 *
11
 * A region in 3D space with a classification result.
12
 *
13
 * @author Leon Ziegler <lziegler@techfak.uni-bielefeld.de>
14
 */
15
message ClassifiedRegion3D {
16

  
17
    /**
18
     * Region in 3D space.
19
     */
20
    optional geometry.BoundingBox3DFloat region = 1;
21

  
22
    /**
23
     * The class represented by the 3D region.
24
     */
25
    optional ClassificationResult result = 2;
26

  
27
}
0
- 
proto/sandbox/rst/geometry/CameraPose.proto
1
package rst.geometry;
2

  
3
import "rst/geometry/Pose.proto";
4

  
5
option java_outer_classname = "CameraPoseType";
6

  
7
/**
8
 * Pose of a camera with semantic annotation of the axes.
9
 *
10
 * The pure transformation of the camera's pose (in terms of coordinate systems) 
11
 * does not provide information about the viewing direction. There must be a convention
12
 * about the semantic meaning of the transformation in order to convey the information
13
 * about where the camera actually looks. The enum coordinate_frame realizes this 
14
 * convention by describing the three axes of the camera's coordinate system 
15
 * semantically including viewing direction and up direction.
16
 *
17
 * @author Leon Ziegler <lziegler@techfak.uni-bielefeld.de>
18
 */
19
message CameraPose {
20

  
21
    /**
22
     * Semantic annotation of the axes. (all right-handed)
23
     */
24
    enum CoordinateFrame {
25

  
26
        /**
27
         * X: right - Y: down - Z: forward (depth axis)
28
         */
29
        CAMERA_IMAGE_FRAME = 0;
30

  
31
        /**
32
         * X: up - Y: right - Z: forward (depth axis)
33
         */
34
        CAMERA_X_UP_FRAME = 1;
35

  
36
        /**
37
         * X: left - Y: up - Z: forward (depth axis)
38
         */
39
        CAMERA_Y_UP_FRAME = 2;
40

  
41
        /**
42
         * X: forward (depth axis) - Y: left - Z: up
43
         */
44
        LASER_FRAME = 3;
45

  
46
        /**
47
         * X: right - Y: up - Z: towards viewer (negative depth axis)
48
         */
49
        SCREEN_FRAME = 4;
50

  
51
    }
52

  
53
    /**
54
     * Annotation of the axes.
55
     */
56
    optional CoordinateFrame coordinate_frame = 1 [default = CAMERA_IMAGE_FRAME];
57

  
58
    /**
59
     * The pose of the camera's coordinate system in 3d space relative to a
60
     * given parent coordinate system. 
61
     */
62
    required geometry.Pose pose = 2;
63

  
64
}
0
- 
proto/sandbox/rst/geometry/FieldOfView.proto
1
package rst.geometry;
2

  
3
option java_outer_classname = "FieldOfViewType";
4

  
5
/**
6
 * The field of view of a sensor.
7
 *
8
 * The sensor's FOV is defined the angular extent of a scene that 
9
 * is imaged by a visual sensor. The most outer observable ray that
10
 * falls in a sensor's FOV has the angular distance +/- AOV/2.0 from
11
 * the optical axis in the respective extend (vertical/horizontal).
12
 * The angles are given in radian.
13
 *
14
 * @author Leon Ziegler <lziegler@techfak.uni-bielefeld.de>
15
 */
16
message FieldOfView {
17

  
18
    /**
19
     * An angle defining the horizontal bounds of the FOV.
20
     */
21
    // @constraint(value > 0)
22
    // @unit(radian)
23
    required float horizontal_aov = 1;
24

  
25
    /**
26
     * An angle defining the vertical bounds of the FOV.
27
     */
28
    // @constraint(value > 0)
29
    // @unit(radian)
30
    required float vertical_aov = 2;
31

  
32
}
0
- 
proto/sandbox/rst/geometry/ViewFrustum.proto
1
package rst.geometry;
2

  
3
import "rst/geometry/FieldOfView.proto";
4

  
5
option java_outer_classname = "ViewFrustumType";
6

  
7
/**
8
 * A camera's view frustum.
9
 * 
10
 * This type adds information about the maximal and minimal perceivable
11
 * distance from the sensor to the definition of the Field of View.
12
 * 
13
 * @author Leon Ziegler <lziegler@techfak.uni-bielefeld.de>
14
 */
15
// @constraint(.maximal_distance > .minimal_distance)
16
message ViewFrustum {
17

  
18
    /**
19
     * The field of view of the frustum.
20
     */
21
    required FieldOfView fov = 1;
22

  
23
    /**
24
     * The minimal perceivable distance.
25
     */
26
    // @constraint(value > 0)
27
    // @unit(meter)
28
    optional float minimal_distance = 2 [default = 0];
29

  
30
    /**
31
     * The maximal perceivable distance.
32
     */
33
    // @constraint(value > 0)
34
    // @unit(meter)
35
    optional float maximal_distance = 3 [default = 99999];
36

  
37
}
0
- 
proto/sandbox/rst/vision/LocatedXYZImage.proto
1
package rst.vision;
2

  
3
import "rst/geometry/ViewFrustum.proto";
4
import "rst/geometry/CameraPose.proto";
5
import "rst/vision/SimpleXYZImage.proto";
6

  
7
option java_outer_classname = "LocatedXYZImageType";
8

  
9
/**
10
 * A simple point cloud represented in 2D structure with information
11
 * from where it was taken.
12
 * 
13
 * By adding information about the pose of the camera and its perceived view
14
 * frustum, one can reconstruct the location and the circumstances under which
15
 * the provided point cloud was captured.
16
 *
17
 * @author Leon Ziegler <lziegler@techfak.uni-bielefeld.de>
18
 */
19
message LocatedXYZImage {
20

  
21
    /**
22
     * The background model.
23
     */
24
    required vision.SimpleXYZImage image = 1;
25

  
26
    /**
27
     * The camera's pose in 3d space.
28
     */
29
    required geometry.CameraPose camera = 2;
30

  
31
    /**
32
     * The camera's view frustum.
33
     */
34
    required geometry.ViewFrustum frustum = 3;
35

  
36
}
0
-