Forum

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - mrv2020

Pages: [1] 2
1
Feature Requests / CHECK/UNCHECK API (SOLVED)
« on: March 16, 2024, 03:04:27 PM »
Hi,

I'm reaching out to suggest a potential addition to the Metashape API that I believe could benefit many users. While the current API offers great flexibility, including enabling/disabling cameras (enabled) and selecting/deselecting them (selected), it seems there's no direct way to programmatically "uncheck" images for processing based on specific criteria (e.g., location accuracy).

Many of us automate workflows where pre-selecting images based on metadata or quality metrics is crucial before proceeding to resource-intensive processing steps. For instance, being able to automatically uncheck images with location accuracy below a certain threshold could save significant time and enhance the quality of project outputs.

Could we consider adding a method to the API to control the "check" state of images in the Reference Panel or before processing? This feature would provide even greater control over automated workflows and potentially improve processing efficiency and outcomes.

Code: [Select]
import Metashape
doc = Metashape.app.document
chunk = doc.chunks[0]
for camera in chunk.cameras:
    # Checks if the camera has a defined reference and location accuracy
    if camera.reference and camera.reference.location_accuracy:
        accuracy = max(camera.reference.location_accuracy.x, camera.reference.location_accuracy.y,camera.reference.location_accuracy.z)
        print(f"Camera {camera.label}: Accuracy = {accuracy}") # Prints the accuracy
        if accuracy > 9:
            camera.selected = False
            print(f"Camera {camera.label} unselected due to high accuracy.") # Print the action

Best,

2
Bug Reports / Infinite values in transform V.2.1.0.17526
« on: January 25, 2024, 07:06:29 PM »
Code: [Select]
2024-01-25 12:57:59 1 blocks: 4593
2024-01-25 12:58:05 block: 3 sensors, 4593 cameras, 4506674 points, 14742630 projections
2024-01-25 12:58:05 block_sensors: 0.00254059 MB (0.00254059 MB allocated)
2024-01-25 12:58:05 block_cameras: 1.78713 MB (1.78713 MB allocated)
2024-01-25 12:58:05 block_points: 206.299 MB (219.429 MB allocated)
2024-01-25 12:58:05 block_tracks: 17.1916 MB (17.1916 MB allocated)
2024-01-25 12:58:05 block_obs: 674.864 MB (674.864 MB allocated)
2024-01-25 12:58:05 block_ofs: 34.3832 MB (34.3832 MB allocated)
2024-01-25 12:58:05 block_fre: 0 MB (0 MB allocated)
2024-01-25 12:58:05 final block size: 4593
2024-01-25 12:58:06 adding 3996297 points, 0 far, 789281 inaccurate, 10436 invisible, 916 weak
2024-01-25 12:58:06 (3 px, 2 3d) sigma filtering...
2024-01-25 12:58:08 adjusting: - nan -> nan
2024-01-25 12:58:19 point variance: 1.69192 px, threshold: 5.07577 px
2024-01-25 12:58:21 adding 767565 points, 133804 far (5.07577 px threshold), 758903 inaccurate, 8020 invisible, 1168 weak
2024-01-25 12:58:22 adjusting: - nan -> nan
2024-01-25 12:58:32 point variance: 1.05102 px, threshold: 3.15307 px
2024-01-25 12:58:33 adding 736792 points, 123068 far (3.15307 px threshold), 729916 inaccurate, 6026 invisible, 1065 weak
2024-01-25 12:58:35 adjusting: - nan -> nan
2024-01-25 12:58:44 point variance: 0.788759 px, threshold: 2.36628 px
2024-01-25 12:58:45 adding 715358 points, 96357 far (2.36628 px threshold), 709650 inaccurate, 4868 invisible, 1301 weak
2024-01-25 12:58:46 adjusting: - nan -> nan
2024-01-25 12:58:54 point variance: 0.677631 px, threshold: 2.03289 px
2024-01-25 12:58:56 adding 702639 points, 65034 far (2.03289 px threshold), 697230 inaccurate, 4266 invisible, 1423 weak
2024-01-25 12:58:57 adjusting: - nan -> nan
2024-01-25 12:59:05 point variance: 0.623643 px, threshold: 1.87093 px
2024-01-25 12:59:06 adding 695379 points, 40811 far (1.87093 px threshold), 690054 inaccurate, 3981 invisible, 1525 weak
2024-01-25 12:59:06 optimized in 59.735 seconds
2024-01-25 12:59:13 Error: Infinite values in transform are not allowed
2024-01-25 12:59:13 processing failed in 75.271 sec

Hi Alexey,

I've never seen this before. I checked the coordinates, none were out of range. What I only noticed is that after version 2.0 some images are aligning with astronomical displacements, something that didn't happen before in previous versions.

3
Bug Reports / Can't Select Tile Size - Dual GPU V2.1.0.17526
« on: January 13, 2024, 11:23:08 PM »
Hi Alexey,

On the network, in the "Match photos" processing step, if the GPU mask "Use default GPU mask" and have Dual GPU, I get the message "Can't select tile size", I checked msg and it was there, GPU with memory zero.

Code: [Select]
2024-01-13 16:32:55 Free VRAM: 0 MB, maximum allocation required: 2047 MB, memory required: 0 MB
2024-01-13 16:32:55 [GPU] photo 5608: 40000 points
2024-01-13 16:32:55 Error: Can't select tile size
2024-01-13 16:32:55 processing failed in 9.154 sec

But the GPU drivers were updated.
 
Solution, I had to isolate the GPUs and defined Nmask "1,0" and "0,1" for each GPU and there was no more error message, completing the step without memory overflow.

Code: [Select]
2024-01-13 17:17:31 Found 2 GPUs in 0.182 sec (CUDA: 0.127 sec, OpenCL: 0.055 sec)
2024-01-13 17:17:32 Using device: NVIDIA GeForce RTX 2080, 48 compute units, free memory: 7110/8191 MB, compute capability 7.5
2024-01-13 17:17:32   driver/runtime CUDA: 12030/10010
2024-01-13 17:17:32   max work group size 1024
2024-01-13 17:17:32   max work item sizes [1024, 1024, 64]
2024-01-13 17:17:32   got device properties in 0 sec, free memory in 0.76 sec
2024-01-13 17:17:55 211487 matches found in 24.065 sec
2024-01-13 17:17:56 matches combined in 0.057 sec
2024-01-13 17:17:56 filtered 95567 out of 148497 matches (64.3562%) in 0.105 sec
2024-01-13 17:17:56 saved matches in 0.093 sec
2024-01-13 17:17:56 processing finished in 124.34 sec

Version 2.1.0 build 17526, in previous 2.0.3 same dataset without problems.

4
Bug Reports / Vertical Datum Issue Network
« on: January 04, 2024, 09:59:44 AM »
Code: [Select]
2024-01-04 03:53:56 loaded camera partition in 0.001 sec
2024-01-04 03:53:56 Error: Vertical datum missing: WSG84 to LOCAL
2024-01-04 03:53:56 processing failed in 0.364 sec

Hello Alexey,

I'm working with local vertical data. On the PC where creation works fine on the network and local, but the nodes print this error.

5
Bug Reports / Batch not work script over network
« on: January 03, 2024, 11:02:19 PM »
Code: [Select]
import Metashape
import sys, os, time

chunk = Metashape.app.document.chunk
chunk.reduceOverlap(overlap = 5, use_selection = False)

Metashape.Model.clear(chunk.model)

This simple script does not work in batch process run over network, in local batch process it works fine. In 2.0.4 it works on local and network. Current V. 2.1.0.17526

6
Hi Alexey,

Currently, the "Photos>Open Next Photo" shortcut is limited to advancing to the next image only when there is a single tab at a time, i.e. only the active tab of the photo open. We would like to request an update to this shortcut, allowing it to work when more than one image tab is open and they all move forward or backward together.

Additionally, it would be beneficial if the user could keep a reference tab, such as the "Ortho" tab, visible while multiple image tabs are loaded. When calling the shortcut, we expect all images to advance simultaneously, providing a more efficient viewing experience.


Best Regards,

7
Bug Reports / Import Laser issues
« on: December 26, 2023, 09:13:17 PM »
Hi,

Trying to import 1365 laz, totaling 13 gb, after metashape creating the dense_cloud.500 folders this problem appears and the import does not continue. However, it continues creating the folders but generates an empty file, you need to stop, delete the empty ones, reopen, merge and continue the import.

Code: [Select]
2023-12-26 14:52:45 Importing point cloud...
2023-12-26 14:52:45 processing 1879121 points...
2023-12-26 14:52:45 Analyzing points...
2023-12-26 14:52:45 processing 1879121 points...
2023-12-26 14:52:49 saved point cloud in 0.137 sec
2023-12-26 14:52:49 Calculating normals...
2023-12-26 14:52:49 Warning! Calculating normals without known scanner position. Normals orientation may be broken for a complex geometry.
2023-12-26 14:52:49 Required 116.7627 GB RAM for extended block
2023-12-26 14:52:49 Available: 101.8174 GB
2023-12-26 14:52:49 Using small block
2023-12-26 14:52:49 Using 36 threads
2023-12-26 14:52:49 Expected max memory usage: 20.4346 GB
2023-12-26 14:52:58 computed normals in 8.02 sec
2023-12-26 14:52:58 Error: Can't open file: too many files open (24): F:/02 Process/lasers.files/0/0/dense_cloud.509/dense_cloud.oc3
2023-12-26 14:52:58 Peak memory used: 1.81 GB at 2023-12-26 14:52:56

8
Bug Reports / When the server is closed, all hosts go down together
« on: December 26, 2023, 04:41:46 PM »
Hello Alexey,

When the server needs to be closed, for some reason, such as to clear the host error list, we save the process list for a new import, restart the Server and all hosts reconnect and we move on.

In version 2.1 I noticed that when closing the Server all hosts are closed, which would require restarting each host. In 2.0 it was not necessary and earlier, it kept showing "can't connect" and when the server command was activated all connections were reestablished. As there have been changes, how can I avoid terminating the hosts' connection when closing the server and leaving them on standby.

Best regards,

9
Feature Requests / batch process optimization
« on: December 12, 2023, 10:17:12 PM »
Hi Alexey,

1. It often happens that there are images wrongly aligned with absurd distances, is there a way to select only those images with an error greater than "x" meters and reset the alignment?

2. There are also images that do not align automatically and for that I need to manually select them and ask them to align them in small groups. Is there a way to automate this selection and ask them to align the selected group again?

3. As the region box was wrong, I need to reset region, as I use batch for the processes, but I cannot use the reset region on network option, is there a way to implement it easy?

Best regards,

10
Python and Java API / Select images by error
« on: September 06, 2023, 05:43:34 AM »
Hi,

I would like to select images with error above 5 cm, after adjustment, and then uncheck boxes that selection in the menu reference by python.

Could someone give me a guideline on how the py code would look?




11
Bug Reports / Bug loading photos
« on: April 18, 2023, 05:43:52 PM »
Hello,

We individually analyze each of the aligned images on a daily basis and make notes using the point of shapes. We need to analyze more than 5000 photos and the metashape has a delay to load the photos, in version 1.6 this did not happen, but in the new versions each time it presents an increase in the delay in opening the individual images, we see the thumbsnails and mask with the message from bottom right side loading 0... 100%. This loading takes 2 to 3 seconds generates a delay for us to analyze more than 2 to 3 hours per unproductive day for 5000 photos. We have already left the show depth maps and mask button disabled and still nothing is resolved.

There is a mention of improvements in the post below but no news so far.
https://www.agisoft.com/forum/index.php?topic=13298.msg61409#msg61409

I ask, as far as possible, that you look fondly at this topic and bring a long-awaited solution for some time.

Best Regards.

12
Bug Reports / Alignment Error
« on: March 20, 2023, 04:26:10 AM »
Hello,

I'm testing version 2.0.1, so I selected three datasets with 24mp, one with facade photos (2880 images), another with oblique and terrestrial images (3114 images) and another orthogonal/nadir (2450 images), with the objective of comparing with version 1.8.5. All datasets have already been texted and with satisfactory results in previous versions 1.7.6 and 1.8.5. The images have precise coordinates.

In version 1.8.5.
Set the alignment In workflow->Aling Photos->40k/10k, I do the gradual selection and cleaning of the sparse cloud after the alignment.
After running the optimization there was no image reset and the result is achieved without failures. The observed error was within the expected range.

In version 2.0.1.
At first, the images align automatically, I clean up the sparse cloud points, after also using the gradual selection, Projection error level 0.5, reconstruction uncertainty level 75 and Projection Accuracy 10 and take it to optimize.

In the façade image dataset, only 135 photos remain aligned. So I do the alignment manually, by groups and they align and when I repeat the selection and optimization they fix and do not lose the alignment in the project and reach the expected precision.

Ditto the problem for oblique images, where only 451 remain aligned.

In the nadir or nadir dataset with 10 degrees of inclination I did not find this difficulty after optimization.

I noticed that in version 2.0.1 there was a number of 4 or more components created, while in version 1.8.5 there was only 1 for all.

In the other stages Dense cloud, mesh, DEM, orthomosaic, I did not find any changes.

Best regards,

13
Python and Java API / Layer Name of Shape
« on: May 26, 2021, 01:48:36 AM »
Hello,

I'm using py to export multiples shapes, and works very well with the each name of each label in filename.
Code: [Select]
for shape in boundaries:
shape.boundary_type = Metashape.Shape.BoundaryType.OuterBoundary
label = shape.attributes[ATTRIBUTE]

                chunk.exportRaster(path + "/" + label + ".tif",


And now I need get the layer of each shape to export.

Future code.
Code: [Select]
                chunk.exportRaster(path + "/" + label + layer + ".tif",


I have no idea how to do this, I already tried it with the shapes.groups, layer.label (but it returns only with the last layer of the shapes id in the doc.xml),

Code: [Select]
def getShapeLayer(chunk, label):
     for layer in chunk.shapes.groups:
          if layer.label == label:
               return layer
     print("Label not found")
     return None

all codes unsuccessful, if anyone can help me,
thank you very much

14
Hi,

I am trying to use the function to reduce the dense cloud "filterdensecloud" command.

Manual workflow:

Generate the dense cloud> Right click on the "filter dense cloud"> Point Space> "0.30m"> Replace Default dense cloud> "No".

Code: [Select]

chunk.dense_cloud.label = "Full"

task = Metashape.Tasks.DuplicateChunk ()
chunk.dense_cloud = None
task.copy_dense_clouds = True
task.apply(chunk)
                   
task1 = Metashape.Tasks.FilterDenseCloud ()
task1.point_spacing = 0.30
task1.assets = [cloud.key for cloud in chunk.dense_clouds]
task1.apply(chunk)
                   
chunk.dense_cloud.label = "Reduced"



On the end the result is "AttributeError:"

15
Hi,


I need a script similar to the one posted on the link below:
https://www.agisoft.com/forum/index.php?topic=12559.0

But with a difference, depending on the shapes select only the cameras inside the polygon and Copy to a new chunk the selected ones, and consider a margin of 10 to 20% of the shape and copy the images close to the edge of the external side.

I understand that copying the photos to a new chunk is correct because the photos that are internal will be for the shape parallel to the external ones and vice versa, there are cases that some polygons intersect.

It is important to note that these images have not yet been aligned as in the post above.

And after the photos separated by chunk create a correlated list to be able to move the photos to the folders of the respective shapes.

This is because I have more than hundreds of shapes and some with 20 photos and others with more than 200 photos in a mix of flights of the drones interspersed over several days, and not all are processed for that moment.

If anyone can give me a light, I would be extremely grateful for the help!

Best Regards,

Pages: [1] 2