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/04/26 07:46] paulien [Results] |
dev:desktop_ext:image_pixel_objects [2021/04/26 11:58] paulien removed |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Image Annotation | + | ====== Image Annotations |
- | This page describes how to use the extension " | + | This page describes how to use the extension " |
- | {{orbit_desktop: | + | {{orbit_desktop: |
- | The " | + | The " |
Line 13: | Line 13: | ||
The image_pixel.ini file describes the tags in the annotation file used for the conversion. | The image_pixel.ini file describes the tags in the annotation file used for the conversion. | ||
- | Every annotation | + | Every annotation |
Line 28: | Line 28: | ||
Every annotation is defined by 4 pixel coordinates that form the bounds of the rectangle: MinX, MaxX, MinY and MaxY. | Every annotation is defined by 4 pixel coordinates that form the bounds of the rectangle: MinX, MaxX, MinY and MaxY. | ||
- | Optional | + | 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 ===== | ===== 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. | + | 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. | ||
< | < | ||
- | Element= | + | Filename PixelMinX PixelMinY PixelMaxX PixelMaxY PhotoName Tags |
- | | + | DSC02497 6366 4079 6973 4621 DSC02497.jpg corrosion, |
- | PixelX= | + | |
- | PixelY= | + | |
- | | + | |
- | | + | |
- | PixelMinY= | + | |
- | | + | |
- | | + | |
- | | + | |
- | Attribute1= | + | |
- | ... | + | |
</ | </ | ||
- | ==== One file for all images ==== | + | Example of xml file. |
- | There is one csv or xml file to be selected in which all annotation | + | < |
+ | <?xml version=" | ||
+ | <annotation> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
- | ===== Target ===== | ||
- | After selecting the target file location and CRS, choose to create 3D point objects or boxes. | + | </ |
- | The result is an ovf with the | + | 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 | ||
+ | ... | ||
+ | </ | ||
- | The pixels_not_converted.txt contains the list of objects that couldn' | + | ==== 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 ===== | ||
- | ===== Advanced Parameters ===== | + | For every situation, slices are created along the vector line between the camera position |
- | + | ||
- | Depending on the chosen source | + | |
==== 3D Coordinates from Pixel Coordinates ==== | ==== 3D Coordinates from Pixel Coordinates ==== | ||
- | Slices are created along the vector line between the camera position and the pixel point. | + | Within a radius around the vector, points are detected and clustered to create the 3D coordinate. |
==== 3D Coordinates fom Pixel Bounds ==== | ==== 3D Coordinates fom Pixel Bounds ==== | ||
- | Slices are created along the vector line between the camera position and the pixel point. | + | Within the pixel coordinate bounds around the vector, voxels are created and clustered to create the 3D coordinate. |
==== 3D Boxes from Pixel Coordinates ==== | ==== 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. | If objects on ground, use ground margin. | ||
Line 87: | Line 113: | ||
==== 3D Boxes from Pixel Bounds ==== | ==== 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. | 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 ==== | ==== 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 ==== | ||
Line 104: | Line 139: | ||
The radius around the vector between the camera position and pixel point to search for cluster points within a slice. | The radius around the vector between the camera position and pixel point to search for cluster points within a slice. | ||
- | Minimum cluster gap size. | ||
- | |||
This value counts also as the cluster distance which is the minimum cluster gap size. | This value counts also as the cluster distance which is the minimum cluster gap size. | ||
- | |||
- | |||
==== Cluster Pts Min ==== | ==== Cluster Pts Min ==== | ||
Line 122: | Line 153: | ||
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. | 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. | ||
- | For bins, hyrdants | ||
- | Use to create boxes for objects on the ground. | ||
==== Voxel Size ==== | ==== Voxel Size ==== | ||
- | The box is divided into voxels of this size. | + | The box in the slice is divided into voxels of this size. |
==== Voxel Pts Min ==== | ==== Voxel Pts Min ==== | ||
Line 136: | Line 165: | ||
===== Results ===== | ===== Results ===== | ||
- | The result is an ovf with the attributes from the image_pixel.ini file. The following attributes are extra: | + | The result is an ovf where every object corresponds to one annotation, having |
- | * FD_ImageAnnotationSequence: | + | * FD_ImageAnnotationSequence: |
* FD_PixelDistanceFromAnnotation: | * FD_PixelDistanceFromAnnotation: | ||
* FD_InsideAnnotationBounds: | * FD_InsideAnnotationBounds: | ||
The pixels_not_converted.txt contains the list of objects that couldn' | The pixels_not_converted.txt contains the list of objects that couldn' | ||
- | The image objects and tags can be displayed on the imagery via the [[dev: | + | |