Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
dev:desktop_ext:image_pixel_objects [2021/04/26 11:58]
paulien removed
— (current)
Line 1: Line 1:
-====== Image Annotations to Objects ====== 
- 
-This page describes how to use the extension "Image Annotations to Objects"\\ 
- 
-{{orbit_desktop:how_to_find.png?25&nolink  |}} [[dev:desktop:workspace:main_toolbar|Main Toolbar]] > Extensions > Image Annotations to Objects 
- 
-The "Image Annotations to Objects" extension makes it possible to convert image annotations defined with pixel coordinates or pixel bounds into 3D coordinates or 3D boxes using the pointcloud resource.\\ 
- 
- 
-===== Concepts ===== 
- 
-Image annotations for mapping run imagery can be defined with two pixel coordinates or pixel bounds defined by four pixel coordinates. The image pixels are converted into 3D coordinates or 3D boxes using the mapping run pointcloud and original/optimized images.  
- 
-The image_pixel.ini file describes the tags in the annotation file used for the conversion.  
-Every annotation (and optionally the tag) can be overlayed on the opened image. 
- 
- 
-===== Pixel Definitions ===== 
- 
-Select how the annotations are defined. 
- 
-==== Coordinates ==== 
- 
-Every annotation is defined by 1 coordinate having two pixel coordinates: X and Y.  
- 
-==== Bounds ==== 
- 
-Every annotation is defined by 4 pixel coordinates that form the bounds of the rectangle: MinX, MaxX, MinY and MaxY. 
- 
-The center of the bounds can be used to convert to 3D. The same algorithm as for pixel coordinates will be used.  
- 
-==== Display Annotations ==== 
- 
-The original image annotations and tags can be displayed on the imagery via the [[dev:desktop:preferences:mapping|]]. 
-===== Reference Files ===== 
- 
-Choose how the reference files are structured: 
-==== One file for every image ==== 
-There is one csv or xml file in the original or processed folder that is linked to an image via equal filenames.  
- 
-Example of csv file. 
- 
-<code> 
-Filename PixelMinX PixelMinY PixelMaxX PixelMaxY PhotoName Tags 
-DSC02497 6366 4079 6973 4621 DSC02497.jpg corrosion,structural_steel,light 
-</code> 
- 
-Example of xml file. 
- 
-<code> 
-<?xml version="1.0" ?> 
-<annotation> 
- <folder></folder> 
- <filename>DSC02490.JPG</filename> 
- <object> 
- <tags>corrosion,structural_steel,light</tags> 
- <comment></comment> 
- <bound> 
- <xmin>1541</xmin> 
- <xmax>2008</xmax> 
- <ymin>4257</ymin> 
- <ymax>4555</ymax> 
- </bound> 
- </object> 
-</annotation> 
- 
- 
-</code> 
- 
-Example of the image_pixel.ini file to describe the xml tags. 
-     
-<code> 
-Element=object 
-Filename=filename 
-PixelX= 
-PixelY= 
-PixelMinX=bound/xmin 
-PixelMaxX=bound/xmax 
-PixelMinY=bound/ymin 
-PixelMaxY=bound/ymax 
-Tags=tags 
-Attribute0=folder 
-Attribute1=comment 
-...     
-</code> 
- 
-==== One file for all images ==== 
- 
-There is one csv or xml file to be selected in which all annotations are described. The same structure as for one file for one image can be used.  
- 
-===== Target ===== 
- 
-After selecting the target file location and CRS, choose to create 3D point objects or boxes.  
- 
-===== Algorithms ===== 
- 
-For every situation, slices are created along the vector line between the camera position and the pixel point.  
- 
-==== 3D Coordinates from Pixel Coordinates ==== 
- 
-Within a radius around the vector, points are detected and clustered to create the 3D coordinate.  
- 
-==== 3D Coordinates fom Pixel Bounds ==== 
- 
-Within the pixel coordinate bounds around the vector, voxels are created and clustered to create the 3D coordinate.  
- 
-==== 3D Boxes from Pixel Coordinates ==== 
- 
-With a radius around the vector, points are detected and clustered to create the 3D box.  
- 
-If objects on ground, use ground margin. 
- 
-==== 3D Boxes from Pixel Bounds ==== 
- 
-Withing the pixel coordinate bounds around the vector, voxels are created and clustered to create the 3D box. 
- 
-If objects on ground, use ground margin.  
- 
- 
- 
- 
- 
- 
-===== Advanced Parameters ===== 
- 
-Depending on the chosen source and target options, the used parameters will be enabled. 
- 
-==== Search Slice Thickness ==== 
- 
-The thickness of the slices created from camera position to pixel point to search for points.  \\ 
-  *For creating 3D Coordinates: If an object is detected in a slice, don't search in the following slices.\\ 
-  *For creating 3D Boxes: If an object is detected in a slice, do search in the following slices up until the Search Dist Max is reached. 
- 
-==== Search Dist Max ==== 
- 
-The maximum distance from the camera to create slices and detect points.  
- 
-==== Search Radius and Cluster Distance ==== 
- 
-The radius around the vector between the camera position and pixel point to search for cluster points within a slice.  
-This value counts also as the cluster distance which is the minimum cluster gap size.  
- 
-==== Cluster Pts Min ==== 
- 
-The minimum number of points to have a cluster. For less dense point clouds, decrease this parameter.  
- 
-==== Search Radius  ==== 
- 
-The search radius around the direction camera to pixel position to search for the 3D object. 
- 
-==== Ground margin ==== 
- 
-The ground margin used to identify a 3D box reached the ground to be able to end the clustering.  
-To be used if the object to identify is located on the ground. If you don't remove the ground, the object will become bigger.  
- 
- 
-==== Voxel Size ==== 
- 
-The box in the slice is divided into voxels of this size.  
- 
-==== Voxel Pts Min ==== 
- 
-Nearby voxels that have the minimum number of points will be clustered into an object.  
- 
-===== Results ===== 
- 
-The result is an ovf where every object corresponds to one annotation, having the attributes from the image_pixel.ini file or csv file. The following attributes are extra: 
-  * FD_ImageAnnotationSequence: Used to indicate the sequence of annotation on the same image.  
-  * FD_PixelDistanceFromAnnotation: The distance to the pixel coordinate or the center of the pixel bounds, expressed in pixels.  
-  * FD_InsideAnnotationBounds: The value can be zero/false or one/true. True means that the display of the created object is still within the bounds of the original annotation. False means that the display of the created object is outside the bounds of the original annotation. For pixel coordinate definition always false/zero.  
- 
-The pixels_not_converted.txt contains the list of objects that couldn't be converted.  
-