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/02/18 10:27] paulien [Sidebar] |
dev:desktop_ext:image_pixel_objects [2021/04/26 11:58] paulien removed |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Image Pixels | + | ====== Image Annotations |
- | \\ | + | |
- | This page describes how to use the extension "Image Pixels to Objects" | + | |
- | \\ | + | |
- | **Feature Extraction Pro**\\ | + | |
- | {{orbitgis: | + | |
- | \\ | + | |
- | The " | + | This page describes how to use the extension "Image Annotations to Objects" |
+ | |||
+ | {{orbit_desktop: | ||
+ | |||
+ | The " | ||
===== Concepts ===== | ===== Concepts ===== | ||
- | Image pixel coordinates and bounds can be defined | + | Image annotations |
+ | |||
+ | 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: | ||
+ | |||
+ | ==== 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: | ||
+ | ==== 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. | ||
+ | |||
+ | < | ||
+ | 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 ===== | ||
+ | |||
+ | 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 | ||
+ | |||
+ | ==== 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. | ||
- | The 2D annotations and tags are overlayed on the opened image. | + | ==== 3D Boxes from Pixel Bounds ==== |
- | ===== Sidebar ===== | + | Withing the pixel coordinate bounds around the vector, voxels are created and clustered to create the 3D box. |
- | ==== Source ==== | + | If objects on ground, use ground margin. |
- | === Pixel Definitions === | ||
- | === Reference Files === | ||
- | Define if there is one source file for every image or one source file for all images. | ||
- | ==== Target | + | ===== Advanced Parameters ===== |
- | Select | + | Depending on the chosen source |
- | Choose to create 3D coordinates or 3D boxes. | + | |
- | ==== Parameters | + | ==== Search Slice Thickness |
- | === Cluster size === | + | The thickness of the slices created from camera position to pixel point to search for points. |
+ | *For creating 3D Coordinates: | ||
+ | *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 ==== | ||
- | ==== Advanced Parameters ==== | + | The maximum distance from the camera to create slices and detect points. |
- | === Search | + | ==== Search |
+ | 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 === | + | ==== Cluster Pts Min ==== |
- | === Search Radius (Box from Pix Coord) === | + | The minimum number of points to have a cluster. For less dense point clouds, decrease this parameter. |
- | === Search | + | ==== Search |
- | === 3D Box Creation === | + | The search radius around the direction camera to pixel position to search for the 3D object. |
- | Ground margin | + | ==== Ground margin |
- | Voxel Size | + | 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 Pts Min | ||
+ | ==== Voxel Size ==== | ||
- | ==== Analyze ==== | + | 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 ==== | + | ===== 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' | ||