Each image is taken from a webcam, downsampled to 320x240 pixels, and corrected for lens distortion. The images should be entirely covered in makred-up planar and non-planar regions.
This is done by having a series of 2D points on the image, connected by edges; these partition the image into non-overlapping but entirely covering sections.
Each line in the file corresponds to one piece of data. The first few lines are general properties of the image, such as the total number of marked regions or image size.
A 'boundaryPoint' is one 2D point in the image. The first number is an ID, the second two are x,y coordinates.
A 'boundaryEdge' connectes a pair of boundary points. The first number is an ID, the second two refer to boundaryPoints by their IDs.
'truthRegionSettings' stores data on each region. Each record begins with a number corresponding to the region ID. After the colon are more fields, pertaining to that region:
'boundarySequence' is the ordered IDs of points making up the boundary of the region
'regionVanishClicks' are the 2D locations of the points of a labelled rectangle, from which the orientation is derived. Format is x1 , y1|x2 , y2|... etc
'normalFromAngles' states whether the normal can be computed directly from the vanishing lines, or if it has been edited manually (i.e. use the recorded vaue, do not recompute)
'normalIsFlipped' states if the normal has been manually flipped to point towards the camera
'regionNormal' is the unit normal vector of the plane region. Zeros indicate it is not a plane.
This should be enough to recover the ground truth data - see our BMVC paper for examples of what this should look like. The code which can read these files will be made available at some point. If you have trouble understanding it or want more information on how to use the data please contact me.
--Osian Haines, August 2013
haines@cs.bris.ac.uk