Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
dev:desktop_ext:image_pixel_objects [2021/03/12 10:21] paulien [Advanced Parameters] |
dev:desktop_ext:image_pixel_objects [2021/04/26 11:58] paulien removed |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Image Annotation | + | ====== Image Annotations |
- | FIXME | + | |
- | This page describes how to use the extension "Image Annotation to Object" | + | |
- | {{orbit_desktop: | + | This page describes how to use the extension "Image Annotations |
- | The " | + | {{orbit_desktop: |
+ | |||
+ | The " | ||
===== Concepts ===== | ===== Concepts ===== | ||
- | Image annotations | + | Image annotations for mapping run imagery |
- | The 2D annotations and tags are overlayed on the opened image. | + | 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 ===== | ||
- | ===== Source ===== | + | Select how the annotations are defined. |
- | ==== Pixel Definitions | + | ==== Coordinates |
- | Select how the annotations are defined: | + | Every annotation is defined by 1 coordinate |
- | * Coordinates: | + | |
- | * Bounds: every annotation is defined by 2 pixel coordinates | + | |
- | ==== Reference Files ==== | + | ==== 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: | ||
+ | ===== Reference Files ===== | ||
Choose how the reference files are structured: | Choose how the reference files are structured: | ||
- | * One file for every image | + | ==== 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. |
- | Supported formats are .csv and .xml. | + | |
+ | Example of csv file. | ||
+ | |||
+ | < | ||
+ | Filename PixelMinX PixelMinY PixelMaxX PixelMaxY PhotoName Tags | ||
+ | DSC02497 6366 4079 6973 4621 DSC02497.jpg corrosion, | ||
+ | </ | ||
+ | |||
+ | Example of xml file. | ||
+ | |||
+ | < | ||
+ | <?xml version=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | Example of the image_pixel.ini file to describe the xml tags. | ||
+ | |||
+ | < | ||
+ | Element=object | ||
+ | Filename=filename | ||
+ | PixelX= | ||
+ | PixelY= | ||
+ | PixelMinX=bound/ | ||
+ | PixelMaxX=bound/ | ||
+ | PixelMinY=bound/ | ||
+ | PixelMaxY=bound/ | ||
+ | Tags=tags | ||
+ | Attribute0=folder | ||
+ | Attribute1=comment | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | ==== 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 ===== | ===== Target ===== | ||
After selecting the target file location and CRS, choose to create 3D point objects or boxes. | After selecting the target file location and CRS, choose to create 3D point objects or boxes. | ||
- | The result is an ovf with | + | ===== Algorithms ===== |
- | The pixels_not_converted.txt contains | + | |
+ | 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 | ||
+ | |||
+ | ==== 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 | ||
+ | |||
+ | ==== 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. | ||
Line 43: | Line 124: | ||
===== Advanced Parameters ===== | ===== Advanced Parameters ===== | ||
- | Depending on which source and target options | + | Depending on the chosen |
==== Search Slice Thickness ==== | ==== Search Slice Thickness ==== | ||
The thickness of the slices created from camera position to pixel point to search for points. | The thickness of the slices created from camera position to pixel point to search for points. | ||
- | *For creating 3D Coordinates: | + | *For creating 3D Coordinates: |
- | *For creating 3D Boxes: | + | *For creating 3D Boxes: |
==== Search Dist Max ==== | ==== Search Dist Max ==== | ||
- | The maximum distance from the camera to the detected object. | + | The maximum distance from the camera to create slices and detect points. |
==== Search Radius and Cluster Distance ==== | ==== Search Radius and Cluster Distance ==== | ||
- | The radius around the vector between camera position and pixel point to search for cluster points. | + | The radius around the vector between |
- | + | This value counts also as the cluster | |
- | Tooltip: The cluster size to identify coordinates in the direction from camera position to image position. | + | |
==== Cluster Pts Min ==== | ==== Cluster Pts Min ==== | ||
- | The minimum number of points to have a cluster. | + | The minimum number of points to have a cluster. For less dense point clouds, decrease this parameter. |
- | ==== Search Radius | + | ==== Search Radius |
The search radius around the direction camera to pixel position to search for the 3D object. | The search radius around the direction camera to pixel position to search for the 3D object. | ||
Line 72: | Line 152: | ||
The ground margin used to identify a 3D box reached the ground to be able to end the clustering. | 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 ==== | ==== Voxel Size ==== | ||
- | The voxel size used to cluster objects. | + | The box in the slice is divided into voxels of this size. |
==== Voxel Pts Min ==== | ==== Voxel Pts Min ==== | ||
- | + | Nearby voxels that have the minimum number of points | |
- | The minimum number of points | + | |
- | + | ||
- | ===== Analyze ===== | + | |
- | + | ||
===== Results ===== | ===== 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: | ||
+ | * FD_PixelDistanceFromAnnotation: | ||
+ | * FD_InsideAnnotationBounds: | ||
+ | The pixels_not_converted.txt contains the list of objects that couldn' | ||