Coder Social home page Coder Social logo

tudelft3d / city3d Goto Github PK

View Code? Open in Web Editor NEW
223.0 21.0 36.0 80.45 MB

Large-scale LoD2 Building Reconstruction from Airborne LiDAR Point Clouds

Home Page: https://github.com/tudelft3d/City3D

License: GNU General Public License v3.0

CMake 1.39% C++ 94.09% C 4.52%
pointcloud surface-reconstruction urban-reconstruction building

city3d's People

Contributors

ipadjen avatar liangliangnan avatar yidahuang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

city3d's Issues

footprint

Hello teacher, I have another question to ask. I'd like to know how your architectural footprint is generated. Since I now have the building footprint of an area, but store the vertex information of each building outline, I would like to know how to convert this information into a footprint file like the one provided in your project. If possible, could you please tell me what information V, Vn and Vt are in the footprint file?

running of the given data 002.ply on the GUI

Thank you for your contribution! I wonder how long it takes for the given data 002.ply to generate the final scene model on the GUI. I tried to run 002.ply data. After sending a warning "3 faces lie on the same supporting plane" during the reconstruction of the 130th building, the output information has never been updated. The reconstruction of the 130th building has taken 8 hours. I don't know whether it is because the building structure is complex and takes a long time, or my operation process has failed?

[BUG] - some problem about data orientation

problem with dataset orientation
I want to run the code of city3d with my own data set.
But the following is the inconsistency of my data and your data imported into blender at the same time. (My data will be imported at the origin at the beginning, and I translated it to be close to your point cloud data)
ef533e9e11a942f53bcd35de6188f80

How can I fix it?
Could you please tell me the method to adjust my dataset's orientation to the same as yours ?

footprint issue and coordinate issue

I'm very sorry to disturb you.
Q1:How to get my footprint data?
I want to obtain footprint data from my own testing data. In a large scene, such as in Example 1, the point cloud data contains trees and other debris, but the footprint data in Example 1 has already excluded debris and only includes the footprints of the building that needs to be reconstructed. I tried using the function generate_ Polygon, but later it was discovered that only the footprints of individual buildings could be extracted.It doesn't work.So how do I obtain footprint data from my own test data?
Q2:Why does coordinate transformation occur?
In my separate building reconstruction process, as in Example 2, I found that the coordinate values of the reconstruction results changed, for example, the x coordinate of the input point was between 400-500 and the y coordinate was between 1000-1100. But the x、y coordinates of the reconstructed result are completely out of this range, what caused this. Is there a coordinate transformation in which part of the code?

Not clear description of available parameters

Hello,

I have a point cloud of multiple overlapping flightlines, resulting in ~300p/m2, and there are a lot of details, but regardless of how I tune parameters, the result looks almost the same. Attached is one example - one face of the top pyramid always generates either wrong or not at all. Also, perimeter planes are connected to inner ones, although their heights differ. Tried to clean up, or thin points - same result. Could you please confirm or describe more the parameters you have in GUI and write which values worked for you in example below?

Fitting - how well the final model fits the point cloud. Is this a hard limit? (when faces do not fit, they are merged with nearby ones?)
Height - minimum height difference between nearby planes?
Complexity - noise suppressing, 0 as less detailed, 1 as max detail without filtering?
Number - maximum number of faces of building per footprint?
Density - average distance between points in meters?
Ground - absolute height of model lower plane.

With setup below, it takes very long to generate results - this building takes around 3min, but one block consisting of 10 buildings is around 1h or sometimes just freezes if I select parameters that are a bit more detailed.

Ubuntu, CLion, SCIP, as Gurobi didn't send me license, CGAL v5.4-1, OpenCV v4.5.4
64core Threadripper, 200GB RAM, nvme, 2x3080ti

single_building.zip

[BUG] - put here a short description of the issue

Hello Teacher Nan, I've encountered a new issue. It seems like the footprint I generated for this building matches correctly with the building's point cloud data when viewed in other software. However, when I input it into City3D software, it seems like both the point cloud and the footprint data disappear. I'm wondering if this is a projection issue. Below are my building point cloud and footprint data.
data.zip

running

terminate called after throwing an instance of 'CGAL::Assertion_exception'
what(): CGAL ERROR: assertion violation!
Expr: dexp != 2047
File: /usr/local/include/CGAL/Mpzf.h
Line: 445
Explanation: Creating an Mpzf from infinity or NaN.

Is it possible to use this software with linux on an Arm64 architecture?

I would like to be able to use this software on a Lonovo yoga 11 inch tablet with a linux system (Ubuntu 22) mounted on android system. What is the procedure to follow to compile it and make it able to work? Thank you in advance, for any advice allowing me to move forward. Cordially. Mr Barret.

[BUG] - put here a short description of the issue

Describe the bug
Bug: cmd build error with CGAL 5.4.1
When I compile the project with x64 tools for VS2019: there is a cmake error: CMake Error at code/method/CMakeLists.txt:51 (message):CGAL found, but v5.4 or above is required. Please install CGAL v5.4 or above.
2

I check the cmake.txt. In line 51,
3

However, I add the CGAL path to the enviroment. Like This:
4

And the version of CGAL is 5.4.1 which is >=5.4
5

Is there anything wrong with my CGAL? It seemed like the enviroment path don't work

Development/Running environment:

  • OS: Windows 10
  • Compiler MSVC 2019

Additional context
Add any other context about the problem here.

Windows make issue

On Windows, after running "cmake -DCMAKE_BUILD_TYPE=Release .." , this is what I get, and I thought cmake was successful :

-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19044.
-- Found Boost: C:/Users/raziz/Anaconda3/envs/city3d/Library/lib/cmake/Boost-1.74.0/BoostConfig.cmake (found version "1.74.0")
-- Found Boost-1.74.
-- Found GUROBI: C:/gurobi952/win64/include
-- Found GUROBI: debug;C:/gurobi952/win64/lib/gurobi_c++mdd2017.lib;optimized;C:/gurobi952/win64/lib/gurobi_c++md2017.lib;C:/gurobi952/win64/lib/gurobi95.lib
-- Gurobi include dir: C:/gurobi952/win64/include
-- Gurobi libraries: debugC:/gurobi952/win64/lib/gurobi_c++mdd2017.liboptimizedC:/gurobi952/win64/lib/gurobi_c++md2017.libC:/gurobi952/win64/lib/gurobi95.lib
CMake Warning (dev) at code/method/CMakeLists.txt:41 (find_package):
Policy CMP0074 is not set: find_package uses _ROOT variables.
Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.

CMake variable CGAL_ROOT is set to:

C:/Users/raziz/City3D/cgal/cgal-build

For compatibility, CMake is ignoring the variable.
This warning is for project developers. Use -Wno-dev to suppress it.

-- Visual Leak Detector (VLD) is not found.
-- Using header-only CGAL
-- Targetting Visual Studio 16 2019
-- Target build environment supports auto-linking
-- Using VC toolset 142.
-- Generator uses intermediate configuration directory: $(Configuration)
-- Found Boost: C:/Users/raziz/Anaconda3/envs/city3d/Library/lib/cmake/Boost-1.74.0/BoostConfig.cmake (found suitable version "1.74.0", minimum required is "1.48")
-- Boost include dirs: C:/Users/raziz/Anaconda3/envs/city3d/Library/include
-- Boost libraries:
-- Found CGAL: 5.6
-- Multi-configuration CMake generator: cannot display flags
-- Requested component: Core
CGAL_CXX_FLAGS_INIT:
CGAL_LIBRARIES: CGAL::CGAL_Core;CGAL::CGAL
CGAL_3RD_PARTY_LIBRARIES:
GMP_INCLUDE_DIR: C:/Strawberry/c/include
GMP_LIBRARIES: debug;C:/Users/raziz/vcpkg/packages/gmp_x64-windows/lib/gmp.lib;optimized;C:/Users/raziz/vcpkg/packages/gmp_x64-windows/lib/gmp.lib
-- Found GUROBI: C:/gurobi952/win64/include
-- Found GUROBI: debug;C:/gurobi952/win64/lib/gurobi_c++mdd2017.lib;optimized;C:/gurobi952/win64/lib/gurobi_c++md2017.lib;C:/gurobi952/win64/lib/gurobi95.lib
-- Gurobi include dir: C:/gurobi952/win64/include
-- Gurobi libraries: debugC:/gurobi952/win64/lib/gurobi_c++mdd2017.liboptimizedC:/gurobi952/win64/lib/gurobi_c++md2017.libC:/gurobi952/win64/lib/gurobi95.lib
-- Found GUROBI: C:/gurobi952/win64/include
-- Found GUROBI: debug;C:/gurobi952/win64/lib/gurobi_c++mdd2017.lib;optimized;C:/gurobi952/win64/lib/gurobi_c++md2017.lib;C:/gurobi952/win64/lib/gurobi95.lib
-- Gurobi include dir: C:/gurobi952/win64/include
-- ------Gurobi libraries----------: debugC:/gurobi952/win64/lib/gurobi_c++mdd2017.liboptimizedC:/gurobi952/win64/lib/gurobi_c++md2017.libC:/gurobi952/win64/lib/gurobi95.lib
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/raziz/City3D/Release_

However, there is no makefile created in Release folder. When I run nmake, this error pops up :
NMAKE : fatal error U1064: MAKEFILE not found and no target specified
Stop.

What is the problem here? Did it not build correctly? (Note that it has written build files even without finding VLD.)
Thank you!

Parameter tuning and validation

Thanks for providing code and support on this work but sorry to trouble you.

  1. We use City3D and our airborne LiDAR data to construct the building LOD2 model. The point density of raw data ranges from 40-90 pt/m2. We conducted point cloud classification and generated the building footprint by ourselves. For small and simple structure building, we can acquire fine model with default parameter setting. For large buildings, I referred to the previous issues to tune parameters, but it still took very long time to return the result. I attached the point cloud (33707pts), footprint (1221m2), and result of a large building in a zip file as example
    3515.zip
    The parameters were set as below:
    Reconstruction.cpp:
    int low_threshold = (3.0) * 255 / (max_height - ht);
    or
    int low_threshold = (4.0) * 255 / (max_height - ht);
    point_set_region_growing.cpp:
    const FT max_distance_to_plane = FT(15) / FT(100);
    const FT max_accepted_angle = FT(20);

If we try it in GUI, I set also number as 80 or 100, density is 0.3. We usually use command-line program in loop but I am not sure how to set number and density in code.
It took nearly one day to construct the building. As shown below, I found there are too many faces in the model.
image

I think our data is similar to DALES dataset you used in the experiment, could you share with us the parameter used for large building modelling in DALES data? Alternatively, do you have any suggestions for our case as we have plenty of such large buildings?
2. We also would like to validate LOD2 model with lidar data. You have mentioned the validation process in the paper, and I am wondering if the validation code is available for us to use. Many thanks

Reconstruction doesn't finish

Describe the bug
I import the point cloud model into the City3D. For segment and extract roofs, the processes are smooth. But in the reconstruction step, the City3D crashed. The number of point clouds is 10k. I tried 3d models with different amounts of point clouds. But the results are the same. I wonder what the problem is.

微信图片_20240415190954
微信图片_20240415191800

[BUG] - CGAL version cannot be >=5.6

Describe the bug
When building with CGAL 5.6, I encounter the following error:
"CGAL_triangulation_postcondition’ was not declared in this scope; did you mean ‘CGAL_kernel_postcondition’"

"The errors you're encountering with CGAL_triangulation_postcondition are due to changes in CGAL version 5.6. In this version, package-specific assertions, preconditions, and postconditions, like CGAL_triangulation_assertion, have been removed. Instead, you should use the corresponding CGAL-wide versions such as CGAL_assertion. This is part of the general changes introduced in CGAL 5.6 to standardize these functionalities across the library. For more detailed information, you can refer to the official CGAL 5.6 release notes on their website."

Development/Running environment:

  • OS: Ubuntu 22.04.3 LTS
  • trying to build release

Coordinates/Alignment issue

Hey, thank you for sharing this programme. I have been trying to use a geojson for the footprints of my data, but I can’t seem to get the data aligned with my point cloud data in the GUI even though it is aligned in CloudCompare (LAS/PLY/SHP) and QGIS (LAS/Geojson) with the correct coordinate system. It’s a dataset of a French village, when I try out some Dutch AHN data with footprints I do not get the alignment issue,, Any ideas what causes this?
Example_C3D
Data_Sample.zip

Installation documentation not clear

"to do so, go to src/build and run make. Then replace the original libgurobi_c++.a (in the lib directory) with your generated file."

there is no src/build your repository.

acquiring individual building footprints

Thank you for your significant contributions to building reconstruction research. I understand from your paper that your work has resulted in a dataset, specifically mentioned are the '002.ply' file and the '002_footprint.obj' file in the provided data folder. I'm interested in accessing the original point cloud and the corresponding footprint for each individual building in this dataset. Could you please guide me on how to obtain these specific data files? I sincerely appreciate your assistance.

The problem of reconstructing building

Thanks a lot for the opensource project! Here I want to ask some questions I meet when I use the project to run with my data. I tried with one building and the result is extremely high which I thought It might be the plane extruded from the footprint. But I do not know which section went wrong resulting the plane haven't been cut from reconstruction.
RU(@7GJL2(Q}_D(7{SW``~I

Building fails on Windows

nmake build always ends in an error at 97%
I'm using following versions:

  • Windows 10
  • VS 2022
  • Boost 1.71 (building with the latest 1.80 throws lots of errors)
  • CGAL 5.4.3
  • GMP 6.2.1
  • OpenCV 4.6.0
  • QT 5.15.2
  • Gurobi 9.52
  • MPFR 4.1.1

It seems some wrong or missing dependency - has anyone succeeded in building under windows?
error.txt

[BUG] -After the Build process in ubuntu

Problem
After the build process i couldn't run CLI_Examples and showing like reading file failed unknown file format. Here i attached error messages which i saw .
WhatsApp Image 2024-05-17 at 10 14 07 AM

[BUG] - Resulting WAVEFRONT OBJ Files are Invalid

Hi there,

Describe the bug
when using City3D to reconstruct individual buildings, all buildings (result.obj) tested so far are invalid, according to val3dity (so far usually threw errors 104 for multiple faces per building).

Even though I can still render the building using three.js just fine, the precise geometry is broken and when I want to convert it to tiles for mapbox using pg2b3dm, it does not throw any errors but the resulting .glb tiles seem to be simple triangles, not the expected buildings.

Tell us how to reproduce the bug
I attach two of the resulting .obj files so you can run val3dity for yourself and/or see how they look in a viewer.
I also attach a resulting .glb file.
Download via this link: https://we.tl/t-EKMlOACtiF

Development/Running environment:

  • OS: Ubuntu 22
  • Release

I would really appreciate any help on fixing this.

All the best
Paul

The problem with the results in Vaihingen data

Hello, I am sorry to disturb you. I conducted the experiment without adding the footprint on the vaihingen data. However, the results are very different from the results of the paper. Is there a parameter or a specific step that needs to be changed?Because even if I change the alpha parameter in the alphashape process, I still can't get a better result. I would like to get your help !

image

Application hangs

Dear Professor, I tried to compile city3d using vs2017 and successfully generated the .exe file, but when I try to add point cloud data to run the program it crashes, is there any limitation of the software for inputting point cloud? This is my data.Looking forward to your reply.Thank you very much.
city3d
31-25w-buquan - Cloud.zip

[BUG] - CGAL::Shape_detection::Point_set, Build error on Windows

Describe the bug
I am using CGAL 5.6 and I was able to generate using CMake, however when trying the nmake command I run into this error, here is the complete log:

[ 98%] Building CXX object code/method/CMakeFiles/method.dir/reconstruction.cpp.obj
reconstruction.cpp
[ 98%] Building CXX object code/method/CMakeFiles/method.dir/method_global.cpp.obj
method_global.cpp
[ 98%] Building CXX object code/method/CMakeFiles/method.dir/point_set_region_growing.cpp.obj
point_set_region_growing.cpp
C:\Users\akish\Documents\City3D\code\method\point_set_region_growing.cpp(233): error C2661: 'CGAL::Shape_detection::Point_set::Sphere_neighbor_query<Kernel,Point_vector,Point_map>::Sphere_neighbor_query': no overloaded function takes 2 arguments
C:\Users\akish\Documents\City3D\code\method\point_set_region_growing.cpp(236): error C2661: 'CGAL::Shape_detection::Point_set::Least_squares_plane_fit_region<Kernel,Point_vector,Point_map,Normal_map>::Least_squares_plane_fit_region': no overloaded function takes 4 arguments
C:\Users\akish\Documents\vcpkg\installed\x64-windows\include\CGAL/Shape_detection/Region_growing/Region_growing.h(86): error C2039: 'Primitive': is not a member of 'CGAL::Shape_detection::Point_set::Sphere_neighbor_query<Kernel,Point_vector,Point_map>'
C:\Users\akish\Documents\City3D\code\method\point_set_region_growing.cpp(208): note: see declaration of 'CGAL::Shape_detection::Point_set::Sphere_neighbor_query<Kernel,Point_vector,Point_map>'
C:\Users\akish\Documents\City3D\code\method\point_set_region_growing.cpp(240): note: see reference to class template instantiation 'CGAL::Shape_detection::Region_growing<Point_vector,Neighbor_query,Region_type>' being compiled
C:\Users\akish\Documents\vcpkg\installed\x64-windows\include\CGAL/Shape_detection/Region_growing/Region_growing.h(86): error C2146: syntax error: missing '>' before identifier 'Primitive'
C:\Users\akish\Documents\City3D\code\method\point_set_region_growing.cpp(239): error C2661: 'CGAL::Shape_detection::Region_growing<Point_vector,Neighbor_query,Region_type>::Region_growing': no overloaded function takes 3 arguments
C:\Users\akish\Documents\City3D\code\method\point_set_region_growing.cpp(263): error C2672: 'CGAL::Shape_detection::Region_growing<Point_vector,Neighbor_query,Region_type>::unassigned_items': no matching overloaded function found
C:\Users\akish\Documents\City3D\code\method\point_set_region_growing.cpp(263): error C2780: 'ItemOutputIterator CGAL::Shape_detection::Region_growing<Point_vector,Neighbor_query,Region_type>::unassigned_items(const InputRange &,ItemOutputIterator,ItemMap) const': expects 3 arguments - 1 provided
C:\Users\akish\Documents\vcpkg\installed\x64-windows\include\CGAL/Shape_detection/Region_growing/Region_growing.h(430): note: see declaration of 'CGAL::Shape_detection::Region_growing<Point_vector,Neighbor_query,Region_type>::unassigned_items'
NMAKE : fatal error U1077: '"C:\Program Files\CMake\bin\cmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.32.31326\bin\HostX64\x64\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.32.31326\bin\HostX64\x64\nmake.exe"' : return code '0x2'
Stop.

Here are the details of my CGAL:

// Copyright (c) 2009  
// Utrecht University (The Netherlands),
// ETH Zurich (Switzerland),
// INRIA Sophia-Antipolis (France),
// Max-Planck-Institute Saarbruecken (Germany),
// and Tel-Aviv University (Israel).  All rights reserved.
//
// This file is part of CGAL (www.cgal.org)
//
// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial
//
// Author(s)     : -

// This file is automatically created by cmake
// Do not edit manually.

#ifndef CGAL_VERSION_H
#define CGAL_VERSION_H

#define CGAL_VERSION 5.6-I-900
#define CGAL_VERSION_NR 1050600900
#define CGAL_SVN_REVISION 99999

#define CGAL_RELEASE_DATE 20240308

#include <CGAL/version_macros.h>

#endif

CMake output:

C:\Users\akish\Documents\City3D\Release>cmake -G "NMake Makefiles" ^
More? -DCMAKE_BUILD_TYPE=Release ^
More? -DBOOST_ROOT="C:\Users\akish\Downloads\boost_1_82_0\boost_1_82_0" ^
More? -DBoost_LIBRARY_DIR="C:\Users\akish\Downloads\boost_1_82_0\boost_1_82_0\stage\lib" ^
More? -DGMP_INCLUDE_DIR="C:\Users\akish\Documents\vcpkg\installed\x64-windows\include" ^
More? -DGMP_LIBRARIES="C:\Users\akish\Documents\vcpkg\installed\x64-windows\lib\gmp.lib" ^
More? -DGMPXX_LIBRARIES="C:\Users\akish\Documents\vcpkg\installed\x64-windows\lib\gmpxx.lib" ^
More? -DMPFR_INCLUDE_DIR="C:\Users\akish\Documents\vcpkg\installed\x64-windows\include" ^
More? -DMPFR_LIBRARIES="C:\Users\akish\Documents\vcpkg\installed\x64-windows\lib\mpfr.lib" ^
More? -DGUROBI_CXX_LIBRARY="C:\gurobi1101\win64\lib\gurobi_c++.md2017.lib" ^
More? -DGUROBI_CXX_LIBRARY_DEBUG="C:\gurobi1101\win64\lib\gurobi_c++d2017.lib" ^
More? -DGUROBI_LIBRARY="C:\gurobi1101\win64\lib\gurobi1101.lib" ^
More? -DCGAL_DIR="C:\Users\akish\Documents\vcpkg\installed\x64-windows\share\cgal" ^
More? ..
-- The C compiler identification is MSVC 19.32.31332.0
-- The CXX compiler identification is MSVC 19.32.31332.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.32.31326/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.32.31326/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Boost: C:/Users/akish/Downloads/boost_1_82_0/boost_1_82_0 (found version "1.82.0")
-- Found Boost-1.82.
-- Found OpenGL: opengl32
-- Found GUROBI: C:/gurobi1101/win64/include
-- Could NOT find GUROBI (missing: GUROBI_LIBRARIES)
-- Visual Leak Detector (VLD) is not found.
-- Using header-only CGAL
-- Targeting NMake Makefiles
-- Target build environment supports auto-linking
-- Using VC toolset 143.
-- Found GMP: C:\Users\akish\Documents\vcpkg\installed\x64-windows\lib\gmp.lib
-- Found MPFR: C:\Users\akish\Documents\vcpkg\installed\x64-windows\lib\mpfr.lib
-- Found Boost: C:/Users/akish/Downloads/boost_1_82_0/boost_1_82_0 (found suitable version "1.82.0", minimum required is "1.66")
-- Boost include dirs: C:/Users/akish/Downloads/boost_1_82_0/boost_1_82_0
-- Boost libraries:
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - not found
-- Found Threads: TRUE
-- Found CGAL: 5.6
-- Build type: Release
-- USING CXXFLAGS = '/DWIN32 /D_WINDOWS /W3 /GR /EHsc /MD /O2 /Ob2 /DNDEBUG'
-- USING EXEFLAGS = '/machine:x64 /INCREMENTAL:NO'
-- Requested component: Core
CGAL_CXX_FLAGS_INIT:
CGAL_LIBRARIES: CGAL::CGAL_Core;CGAL::CGAL
CGAL_3RD_PARTY_LIBRARIES:
GMP_INCLUDE_DIR: C:\Users\akish\Documents\vcpkg\installed\x64-windows\include
GMP_LIBRARIES: C:\Users\akish\Documents\vcpkg\installed\x64-windows\lib\gmp.lib
-- Found OpenCV: C:/Program Files/opencv/build (found version "4.7.0") found components: core imgproc
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    GUROBI_CXX_LIBRARY
    GUROBI_LIBRARY


-- Build files have been written to: C:/Users/akish/Documents/City3D/Release

I am using windows x64 powershell

Tell us how to reproduce the bug
Steps to reproduce the behavior:

  1. nmake

Development/Running environment:

  • OS: [Windows 11, macOS 11.6]
  • Compiler [e.g. MSVC 2019, Clang 11, GCC 10]
  • Debug

Can you let me know how I can resolve this issue?

Dataset of 20K buildings

Thanks a lot for releasing the code. I have a question about the reconstruction results. Section 4.2 of the paper says that the reconstruction results are released as a new dataset consisting of 20K buildings. Has the new dataset been release? If not, do you have a timeline on when it will be released?

Best regards,

-- Nhon

[experiment] - Inquiry Regarding Polyfit Method Application on Airborne LiDAR Point Clouds

"Thank you for your contribution!
I recently read your paper 'City3D: Large-Scale Building Reconstruction from Airborne LiDAR Point Clouds', and was particularly intrigued by the experiments in Figure 1.
figure1

In these experiments, I noticed that the input point clouds had minimal points on the bottom and facades. Remarkably, the Polyfit method seemed to effectively generate complete models despite these limitations.

However, I encountered a challenge when applying Polyfit to my dataset. As shown in Figure 2 of my aerial point clouds, the models generated failed to reconstruct the bottom portion as shown in the Figure 3. This issue seems to arise from the point clouds having non-closed bottoms with no points.
figure2
figure3

I would greatly appreciate your guidance on using the Polyfit method for scenarios with limited bottom and facade points. Could you suggest strategies to enable effective model reconstruction from such point clouds?

'degenerate face detected' mean job failed?

First of all, I would like to thank the developer for sharing the excellent codes.
There is no problem processing the sample data. However, there is a problem with processing my custom data. Buildings in modern cities are the target. There has been no response since the log "degenerate face detected" came out, and no results have been generated after several hours. The program is in the Freeze(No response) state.
Here is the sample data I am testing.
My point cloud is generated from photogrammetry using DJI UAV Phantom4 Pro.
Point cloud resolution is 0.4m
Can anyone help why this is happening?

image

sample_pc.zip

Issues with dormers

Hi! 👋

Recently, I've been experimenting with updating our local data (downloaded from 3dbag.nl) to the latest AHN4 data with your tool. However, it seems that most dormers are not recognized with the default settings:

Scherm­afbeelding 2023-01-16 om 14 23 03
Scherm­afbeelding 2023-01-16 om 14 22 13

I'd say this is not the expected behaviour, since another paper stated that the difference between AHN3 and AHN4 is mostly in the details.
AHN3 vs AHN4

I generated this object file from our neighbourhood data:
559_472.obj.zip

The original data can be downloaded here, since it's too big to upload to GitHub:
https://drive.google.com/drive/folders/1x8TEAS-T6MSPgVDdE3CnpzW5BJ3OhWX6?usp=share_link

Perhaps it's possible to add a little explanation for each weight you can tweak in the program? Maybe the issue is in there? I just don't understand why the results are significantly less detailed than on 3dbag.nl with AHN3, see https://3dbag.nl/en/viewer?rdx=196074.4345800773&rdy=496756.50010483485&ox=-0.00000283297777059488&oy=625.2703415562623&oz=0.006116235588706331

You're looking at this tile: https://service.pdok.nl/hwh/luchtfotorgb/wmts/v1_0/Actueel_orthoHR/EPSG:28992/10/559/472.jpeg

faillure with a dataset

I unsuccessfully tested the tool with this dataset.
The program (CLI_Example_2) takes a lot of time and finally crash.
Same with City3D : it's take time and a lot of memory, i must crash it manually.

Can you try and explain me where is the problem ?

Thanks,
Antoine

building_test.laz.zip

Validation: Calculation RMSE between point clouds and reconstructed model.

We used LiDAR point clouds and city3d to construct building models. As we don't have ground truth data, we would like to calculate the RMSE between point clouds and constructed models to evaluate the reconstruction results as you mentioned in your paper. We only found some libraries that can calculate the distance between two point clouds instead of the point cloud to mesh. As we lack experience in this field, could you share how you calculate the RMSE in your work? If you know any open-source codes about this, it would be great if you could share them with us. Thanks a lot.

Install dependencies and build city3d in windows with visual studio 2022

Thanks for sharing the codes of city3d, but we met some problems to install and build city3d recently. In May 2023, we successfully installed dependencies with vcpkg and build city3d with visual studio 2022 in Windows 10 system. When we tried to install and build city3d with the same method recently in another window computer, it seems that vcpkg doesn't connect with VS2022 as before (but I am not sure). I have installed all dependencies but the program cannot be built.

For example, there is an error when we try to build city3d in VS2022: "City3D\code\method\alpha_shape.h(218): error C3861: 'CGAL_triangulation_postcondition': identifier not found".

I am wondering if you find similar problem recently to build city3d recently. Do you have any suggestion to solve the problem, alternatively would you suggest any other straightforward way to build in windows. Thanks

Point cloud size limitation

It seems the limit that can be segmented is a 1M points file (1024^2), on larger files the application crashes without error. This happens both on systems with 16 and 32GB of ram (GUI application on Windows)
Is there a way to segment larger files?

what is "POLYFIT_lpsolve_DIR"?

Hi!
Thank you so much for opening up your source code!
When I read the code, I noticed that in "../code/3rd_party/3rd_soplex/cmakelists.txt", contains a section of code
target_include_directories(${PROJECT_NAME} PRIVATE ${POLYFIT_lpsolve_DIR}/shared ${POLYFIT_lpsolve_DIR}/bfp ${POLYFIT_lpsolve_DIR}/bfp/bfp_LUSOL ${POLYFIT_lpsolve_DIR}/bfp/bfp_LUSOL/LUSOL ${POLYFIT_lpsolve_DIR}/colamd)
I try to get the information about the ${POLYFIT_lpsolve_DIR} with cmake debugger, but got an empty value.
So, waht is it?

Prepare footprint .obj file

Thanks for sharing the code. We use city3d to reconstruct our lod2 building model with our airborne LiDAR and the result looks great. I found that in the sample data you shared, the footprint obj file includes the Z coordinates (they are in the same value, I guess is the lowest elevation). We created footprint 2d shapefile from LiDAR data. How should we convert the shapefile to obj, is there any open-source code/tool we can use? Thanks

footprint problem and coordinate problem

I'm very sorry to disturb you.
Q1:How to get my footprint data?
I want to obtain footprint data from my own testing data. In a large scene, such as in Example 1, the point cloud data contains trees and other debris, but the footprint data in Example 1 has already excluded debris and only includes the footprints of the building that needs to be reconstructed. I tried using the function generate_ Polygon, but later it was discovered that only the footprints of individual buildings could be extracted.It doesn't work.So how do I obtain footprint data from my own test data?
Q2:Why does coordinate transformation occur?
In my separate building reconstruction process, as in Example 2, I found that the coordinate values of the reconstruction results changed, for example, the x coordinate of the input point was between 400-500 and the y coordinate was between 1000-1100. But the x、y coordinates of the reconstructed result are completely out of this range, what caused this. Is there a coordinate transformation in which part of the code?

GeoJSON footprint requirements

When opening .geojson files there's always the message: Warning: I can handle only simple GeoJSON format!
And reconstruction keeps failing with: - Warning: encountered non-simple foot print polygons.
So it seems City3D skips on footprints deemed non-simple?

Shapes are quite simple, without touching or intersections. When inspecting in QGIS no errors are found. Even a file with only a simple rectangle will throw this warning. What could be the reason, or can a working example .geojson file be provided?

Some test files: https://github.com/tudelft3d/City3D/files/10297499/2huizen.zip

question about footprint

In your paper, I didn't understand what the specific contribution of generating corresponding footprints is to the reconstruction. Can you describe it to me?
Here's my confusion : In the description of your paper, I feel that the reconstruction effect can be achieved without generating footprints.

Mesh model front and back problems

2023-07-20 16-25-02屏幕截图
When look at the created 3D model in Mapple and find that there are some models that are positive and some are negative.Please how to solve this problem?

Cmake errors

Describe the bug
I'm trying to build the code as you list in the guidance. But considering that there are too many dependencies which makes the configuration complex.

Tell us how to reproduce the bug
Could you please help me with the cmakelist file (in the root path)? Is it too simple to search the dependency libraries?
I'll appreciate it if you could offer me a sample to follow.

Development/Running environment:

  • OS: [e.g. Windows 11]
  • Compiler [e.g. MSVC 2022, Clang 11, GCC 10]
  • Debug or release?
    Release

[BUG/Improvement] - Improve resulting 3D models quality

Bug description

In short

Often the result obj files produced by City3D are valid but not closed and showing face orientation issues.

In details

Me and @LelouchLiBritania are currently testing City3D to try and produce 3D buildings using @IGNF new LIDAR datasets. Our work in progress is available here https://github.com/ignfab/City3D/.
We were successful in producing 3D models with City3D save a small number of cases where reconstruction fails.
However we noted that a large of number City3D results were showing face orientations issues. Trying to fix this classic issue with CGAL , we also noted than a large number of these models were also not closed and therefore could not be fixed with PMP::orient_to_bound_a_volume() directly.

How to reproduce and more explanations

I created a minimal repository at https://github.com/esgn/city3d-result-check containing 23_result.obja result from the default City3D dataset produced by CLI_Example_2 with Gurobi, a Python script to fix this result and a CGAL executable to perform the final cleanup and fix faces orientations.

Here is a screenshot of 23_result.obj before fixing or cleanup showing all the faces but the floor incorrectly oriented :

image

Trying to fix 23_result.obj directly with CGAL make the following issues apparent :

  • The model could not be closed
  • The model showed self intersecting faces

Here is an example of what CGAL detects as self intersecting faces :

image

Inspecting these self intersecting faces it appears most of them are caused by a vertex of a wall face missing from an edge of the floor face. To say it in a different way, it is as if the floor face was added at the end of the reconstruction process without adding the necessary vertices lying at the bottom of the wall faces. Note that these self intersecting faces can sometimes occur between wall faces or between wall face and roof face but these cases are less prevalent.

Adding the missing vertices is exactly what the Python script provided in the repository does. Having added the missing vertices, the CGAL executable works without error and produces a clean 3D model with faces correctly oriented as shown below

image

My question : Would it be possible to improve City3D so that the produced models are directly closed and correctly oriented so that we could skip this post processing phase ?

Note that we are also trying an alternative approach using CGAL alpha wrapper and edge collapse to fix this same issue and to also merge co-planar faces while we are it.

Development/Running environment:

  • OS: Debian 11
  • Compiler GCC 10.2
  • Release with Gurobi 9.5.2

Thanks in advance,

Reconstruction result problem

Hello, I'm sorry to disturb you. I reconstructed the first building in the data data, but there was a reconstruction error. The binary process failed in the lower left corner of the interface. What's the problem?
1678373771240

[BUG] - [put a short description of the issue]

Describe the bug
A clear and concise description of what the bug is.
If applicable, add screenshots (of the results or error messages) to help explain your problem.

Tell us how to reproduce the bug
Steps to reproduce the behavior:

  1. Load the data file xxx.bvg. If applicable, post here a copy of the data for reproducing the issue.
  2. Click on '....'
  3. See error. A clear and concise description of what you expected to happen.

Development/Running environment:

  • OS: [e.g. Windows 10, macOS 11.6]
  • Compiler [e.g. MSVC 2019, Clang 11, GCC 10]
  • Debug or release?

Additional context
Add any other context about the problem here.

Incompatible with latest version of CGAL (5.6)

As referred in https://github.com/CGAL/cgal/releases/tag/v5.6, the assertions used in the code, such as CGAL_triangulation_assertion, are no longer available. Build then breaks saying:

City3D/code/method/alpha_shape.h:168:3: error: use of undeclared identifier 'CGAL_triangulation_postcondition'
                CGAL_triangulation_postcondition(pFace != NULL);

I suppose a solution would be to indicate using CGAL 5.4 or 5.5, but not 5.6 (trying to install 5.4 myself right now to paliate to that).
Or update the code to use general assertions to be compatible with 5.6

Point cloud data testing

图片1
I would like to ask why such a point cloud input into the program crashed. I thought it was because the amount of data was too large, so I diluted the point cloud, but the program still crashed after entering the point cloud

Regularize poligon problems with gurobi_c++ on Windows

When I run the program I get error:
fatal error: gurobi_c++.h: No such file or directory [build] 6 | #include <gurobi_c++.h> //use gurobi as the solver
I use the windows system, any suggestions on how to fix this? I use MinGW as a compiler.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.