Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

boundary bug?处理建筑区3d加上边界限制后输出区域结果很差. 3D model of the building area is poor when with boundary constraints by pyodm #30

Closed
meiyanzhao opened this issue Jun 28, 2024 · 3 comments

Comments

@meiyanzhao
Copy link

How did you install ODM? (Docker, installer, natively, ...)?

install doker:
docker run -dp 8888:3000 --gpus all  --name nodeodmgpu01 opendronemap/nodeodm:gpu

in python:
n = Node(ip, port)
boundary ={"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"EPSG:4326"}},"features":[{"type":"Feature","id":0,"geometry":{"type":"Polygon","coordinates":[[[104.15728688732897,36.54148301442387],[ 104.15818386146158,36.54147661480294],[104.15818095611374,36.5411700324329],[104.15725376030238,36.54113720094068]]]}}]}
boundarystr = json.dumps(boundary,ensure_ascii=False)
task = n.create_task(images_name, {"3d-tiles": True,"boundary":boundarystr,"no-gpu":False})

logs:
log.json
task_output.txt

images:
DJI_20240213085228_0001_WIDE
DJI_20240213085238_0002_WIDE
DJI_20240213085242_0003_WIDE
DJI_20240213085246_0004_WIDE
DJI_20240213085250_0005_WIDE
DJI_20240213085254_0006_WIDE
DJI_20240213085258_0007_WIDE
DJI_20240213085302_0008_WIDE
DJI_20240213085304_0009_WIDE
DJI_20240213085308_0010_WIDE
DJI_20240213085312_0011_WIDE
DJI_20240213085316_0012_WIDE
DJI_20240213085320_0013_WIDE
DJI_20240213085324_0014_WIDE
DJI_20240213085328_0015_WIDE
DJI_20240213085332_0016_WIDE
DJI_20240213085336_0017_WIDE
DJI_20240213085340_0018_WIDE
DJI_20240213085344_0019_WIDE
DJI_20240213085348_0020_WIDE
DJI_20240213085352_0021_WIDE
DJI_20240213085356_0022_WIDE
DJI_20240213085400_0023_WIDE
DJI_20240213085406_0024_WIDE

[Type answer here]

What is the problem?

When dealing with oblique photography models of the building area with boundary constraints, the output model effect is very poor, the model is very rough, with many small holes, texture mapping errors at the boundaries, and is messy(as shown in Figure 1111). But without boundary constraints(if this parameter is not set:“boundary”:boundarystr), the effect of the central region of the model is still good(as shown in Figure 2222).
1111

2222

What should be the expected behavior? If this is a feature request, please describe in detail the changes you think should be made to the code, citing files and lines where changes should be made, if possible.

I have checked the point cloud file and the data is quite good. However, there are loopholes and rough textures in the OBJ model results of the cropped area, which I believe may be a bug. the model with all region processing showed high point cloud density and good texture effect; The model using boundary restricted area processing has low point cloud density, sparse point clouds, and poor texture effects. Analyzing the reason, it should be that when processing the 3D model, the set boundaries were used to restrict the reconstruction area. However, in reality, the reconstruction area should not be restricted. I think when dealing with oblique photography models with boundary constraints, the logic should be to first use all photos to reconstruct the entire area, and then output the model results for the range within the boundary area. But in reality, this is not the logic. When outputting the model, only part of the photos were used (according to the results, the texture at the boundary of the cropped model was based on the surrounding image texture, not the original overall texture position, resulting in a disordered texture), and the result was relatively rough without post-processing such as smoothing and hole filling. So it is necessary to optimize the development logic and perform post-processing on the cropping results.

How can we reproduce this? What steps did you do to trigger the problem? If this is an issue with processing a dataset, YOU MUST include a copy of your dataset AND task output log, uploaded on Google Drive or Dropbox (otherwise we cannot reproduce this).

  1. When using the boundary parameter to process oblique photography models of building areas, please confirm whether all photos were first used for model reconstruction, and then the boundary was used to crop the reconstruction results.
  2. If so, check the odd_filterpoints process and see why using boundary results in sparse point cloud results, rough texture results, low accuracy, holes, and incorrect texture mapping around the model (using photos around the region boundary instead of actual photos at the local location).
  3. If there are no issues with the above, please post-process the cropped 3D results: smooth, fill in holes, improve accuracy, crop excess models around, and make the trimmed edges neat.
@meiyanzhao
Copy link
Author

Figure 1111:
1111

Figure 2222:
2222

@meiyanzhao
Copy link
Author

This is the result of my oblique photography using other photos, and the effect is the same as above. When dealing with oblique photography models with boundary constraints, the output model effect is very poor, the model is very rough, with many small holes, texture mapping errors at the boundaries, and is messy(as shown in the first three images). But without boundary constraints(if this parameter is not set:“boundary”:boundarystr), the effect of the central region of the model is still good(as shown in the last image).

1
2
3

4

@pierotofy
Copy link
Member

Duplicate of OpenDroneMap/ODM#1769

@pierotofy pierotofy marked this as a duplicate of OpenDroneMap/ODM#1769 Jun 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants