-
Notifications
You must be signed in to change notification settings - Fork 0
/
osi_detectedtrafficsign.proto
237 lines (207 loc) · 8.18 KB
/
osi_detectedtrafficsign.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
syntax = "proto2";
option optimize_for = SPEED;
import "osi_common.proto";
import "osi_trafficsign.proto";
import "osi_detectedobject.proto";
package osi3;
//
// \brief A traffic sign in the environment as detected by the sensor.
//
// \image html OSI_DetectedSign.svg
//
// The parent frame of a detected traffic sign is the virtual sensor coordinate
// system.
//
// \note The virtual sensor coordinate system is relative to the vehicle coordinate
// system which has its origin in the center of the rear axle of the ego
// vehicle. This means if virtual sensor mounting position and orientation are
// set to (0,0,0) the virtual sensor coordinate system coincides with the
// vehicle coordinate system.
//
message DetectedTrafficSign
{
// Common information of one detected item.
//
optional DetectedItemHeader header = 1;
// The main sign as detected by the sensor.
//
optional DetectedMainSign main_sign = 2;
// A list of additional supplementary sign(s) as detected by the sensor.
//
repeated DetectedSupplementarySign supplementary_sign = 3;
//
// \brief Candidates for a detected main sign as estimated by the sensor.
//
// \image html OSI_DetectedMainSign.svg
//
message DetectedMainSign
{
// A list of candidates for this traffic sign as estimated by the
// sensor.
//
// \note OSI uses singular instead of plural for repeated field names.
//
repeated CandidateMainSign candidate = 1;
// The base parameters of the traffic sign.
//
// The orientation of the bounding box \c #base
// ( \c BaseStationary::orientation ) is defined as follows:
//
// The z-axis of the given \c BaseStationary::orientation is the vector
// from the bottom to the top of the traffic sign's 2D image plate.
// (Normally it is equal to the ground truth z-axis.)
//
// The x-axis of the given \c BaseStationary::orientation is view
// normal of the traffic sign's image.
//
// This x-axis points from the traffic sign's image in the direction
// from where a 'viewer' could see the traffic sign image.
//
optional BaseStationary base = 2;
// The root mean squared error of the base parameters of the detected
// traffic sign. \c TrafficSign::MainSign::base has to be identical for
// all \c #candidate traffic signs.
//
optional BaseStationary base_rmse = 3;
// The estimated geometry of the traffic sign.
//
optional Geometry geometry = 4;
//
// \brief A candidate for a detected main sign as estimated by the
// sensor.
//
message CandidateMainSign
{
// The estimated probability that this candidate is the true value.
//
// \note The sum of all \c #probability must be one. This
// probability is given under the condition of \c
// DetectedItemHeader::existence_probability.
//
// \rules
// is_less_than_or_equal_to: 1
// is_greater_than_or_equal_to: 0
// \endrules
//
optional double probability = 1;
// The classification of one main sign that defines this candidate.
//
// \note IDs, which are referenced in this message, usually
// reference to \c DetectedXXX::tracking_id IDs.
//
optional TrafficSign.MainSign.Classification classification = 2;
}
// Definition of traffic sign geometries.
//
enum Geometry
{
// Geometry of the traffic sign is unknown (must not be used in
// ground truth).
//
GEOMETRY_UNKNOWN = 0;
// Geometry of the traffic sign is unspecified (but known).
//
GEOMETRY_OTHER = 1;
// Traffic sign has a circular geometry. (0 corners)
//
GEOMETRY_CIRCLE = 2;
// Traffic sign has a triangular geometry pointing to the top. (3
// corners)
//
GEOMETRY_TRIANGLE_TOP = 3;
// Traffic sign has a triangular geometry pointing down. (3 corners)
//
GEOMETRY_TRIANGLE_DOWN = 4;
// Traffic sign has a square geometry. (4 corners)
//
GEOMETRY_SQUARE = 5;
// Traffic sign that has a pole geometry. (height is bigger than
// width e.g. pole indicating highways exit in xx m). (4 corners)
//
GEOMETRY_POLE = 6;
// Traffic sign has a rectangle geometry. (width is bigger than
// height e.g. one-way) (4 corners)
//
GEOMETRY_RECTANGLE = 7;
// Traffic sign that has an oversize rectangle geometry. (4 corners)
// E.g. direction plates on highway or city signs.
//
GEOMETRY_PLATE = 8;
// Traffic sign has a diamond geometry. (4 corners)
//
GEOMETRY_DIAMOND = 9;
// Traffic sign has a geometry of an arrow pointing to the left. (5
// corners)
//
GEOMETRY_ARROW_LEFT = 10;
// Traffic sign has a geometry of an arrow pointing to the right. (5
// corners)
//
GEOMETRY_ARROW_RIGHT = 11;
// Traffic sign has an octagon geometry. (8 corners)
//
GEOMETRY_OCTAGON = 12;
}
}
//
// \brief Candidates for all detected supplementary signs of one traffic
// sign as estimated by the sensor.
//
// \image html OSI_DetectedSupplementarySign.svg
//
message DetectedSupplementarySign
{
// The definition of one of more supplementary signs that together
// define this candidate.
//
// \note OSI uses singular instead of plural for repeated field names.
//
repeated CandidateSupplementarySign candidate = 1;
// The base parameters of the supplementary traffic sign.
//
// The orientation of the bounding box \c SupplementarySign::base
// ( \c BaseStationary::orientation ) is defined as follows:
// The z-axis of the given \c BaseStationary::orientation is the vector
// from the bottom to the top of the supplementary traffic sign's 2D
// image plate. (Normally it is equal to the ground truth z-axis.) The
// x-axis of the given \c BaseStationary::orientation is view normal of
// the supplementary traffic sign's image. This x-axis points from the
// supplementary traffic sign's image in the direction from where a
// 'viewer' could see the supplementary traffic sign image.
//
optional BaseStationary base = 2;
// The root mean squared error of the base parameters of the detected
// supplementary traffic sign. \c #candidate
// \c TrafficSign::SupplementarySign::base has to be identical for all
// \c #candidate supplementary traffic signs.
//
optional BaseStationary base_rmse = 3;
//
// \brief A candidate for a detected supplementary sign as estimated by
// the sensor.
//
message CandidateSupplementarySign
{
// The estimated probability that this candidate is the true value.
//
// \note The sum of all \c #probability must be one. This
// probability is given under the condition of \c
// DetectedItemHeader::existence_probability.
//
// \rules
// is_less_than_or_equal_to: 1
// is_greater_than_or_equal_to: 0
// \endrules
//
optional double probability = 1;
// The classification of one of more supplementary signs that
// together define this candidate.
//
// \note IDs, which are referenced in this message, usually
// reference to \c DetectedXXX::tracking_id IDs.
//
optional TrafficSign.SupplementarySign.Classification
classification = 2;
}
}
}