classification_results_and_sensor_properties.patch
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 |
- |