DekuLiuTesla / CityGaussian

CityGaussian Series for High-quality Large-Scale Scene Reconstruction with Gaussians
https://dekuliutesla.github.io/CityGaussianV2
Other
516 stars 37 forks source link

convert_cam.py fails to run on the Building & Rubble dataset. #33

Closed ArSpi closed 2 months ago

ArSpi commented 2 months ago

These are my operations, taking Building dataset as an example.

  1. wget -c https://storage.cmusatyalab.org/mega-nerf-data/building-pixsfm.tgz
  2. tar -zxvf building-pixsfm.tgz
  3. ln -s /home/docker/CityGaussian/data/mill19/building-pixsfm/train/rgbs /home/docker/CityGaussian/data/mill19/building-pixsfm/train/input
  4. ln -s /home/docker/CityGaussian/data/mill19/building-pixsfm/val/rgbs /home/docker/CityGaussian/data/mill19/building-pixsfm/val/input
  5. python tools/transform_pt2txt.py --source_path data/mill19/building-pixsfm
  6. python convert_cam.py -s data/mill19/building-pixsfm/train

And then I get an error.

==============================================================================
Loading model
==============================================================================
E0913 08:29:02.225658 20515 reconstruction.cc:445] Image with name 001939.JPG does not exist in database
terminate called after throwing an instance of 'std::invalid_argument'
  what():  [reconstruction.cc:445] Image with name 001939.JPG does not exist in database
*** Aborted at 1726216142 (unix time) try "date -d @1726216142" if you are using GNU date ***
PC: @     0x7f1bf0d8f00b gsignal
*** SIGABRT (@0x3e700005023) received by PID 20515 (TID 0x7f1bec7f7000) from PID 20515; stack trace: ***
    @     0x7f1bf2598631 (unknown)
    @     0x7f1bf256d420 (unknown)
    @     0x7f1bf0d8f00b gsignal
    @     0x7f1bf0d6e859 abort
    @     0x7f1bf11468d1 (unknown)
    @     0x7f1bf115237c (unknown)
    @     0x7f1bf11523e7 std::terminate()
    @     0x7f1bf1152699 __cxa_throw
    @     0x564d693bd0cd _ZN6colmap14Reconstruction28TranscribeImageIdsToDatabaseERKNS_8DatabaseE.cold
    @     0x564d6940b59d colmap::RunPointTriangulatorImpl()
    @     0x564d6940ba21 colmap::RunPointTriangulator()
    @     0x564d693ec6af main
    @     0x7f1bf0d70083 __libc_start_main
    @     0x564d693f382e _start
Aborted (core dumped)

I search the /home/docker/CityGaussian/data/mill19/building-pixsfm/train/distorted/database.db by SELECT * FROM images; in the sqlite3 and get the following items (part of them).

......
1901|001920.jpg|1
1902|001921.jpg|1
1903|001923.jpg|1
1904|001922.jpg|1
1905|001925.jpg|1
1906|001924.jpg|1
1907|001927.jpg|1
1908|001928.jpg|1
1909|001926.jpg|1
1910|001929.jpg|1
1911|001930.jpg|1
1912|001931.jpg|1
1913|001933.jpg|1
1914|001932.jpg|1
1915|001934.jpg|1
1916|001935.jpg|1
1917|001937.jpg|1
1918|001938.jpg|1
1919|001939.jpg|1
1920|001936.jpg|1

What is wrong?

ArSpi commented 2 months ago

@DekuLiuTesla

DekuLiuTesla commented 2 months ago

Hi, @ArSpi , please check the lost image doesn't break and its pose can be found in transform_pt2txt's processing. Besides, you can use our provided COLMAP results. Please check our latest code.

ArSpi commented 2 months ago

Hi, @ArSpi , please check the lost image doesn't break and its pose can be found in transform_pt2txt's processing. Besides, you can use our provided COLMAP results. Please check our latest code.

I ensure that 001939.jpg and 001939.pt exist. And please check #15, where I tell why I do not use provided COLMAP results, and I doubt that the COLMAP results do not align with the dataset.

DekuLiuTesla commented 2 months ago

@ArSpi Hi, the result sounds weird. Have you compared our provided points3D.ply and yours? Is there any difference?

ArSpi commented 2 months ago

@ArSpi Hi, the result sounds weird. Have you compared our provided points3D.ply and yours? Is there any difference?

Thanks, I compare them and find that they are similar but different in some details. Please check https://pan.baidu.com/s/1U7KMV5Py1nQbgQ2nJOuFvA?pwd=jt94. There are points3D.ply files of aerial scene.

ArSpi commented 2 months ago

I get it. It is necessary to convert xxx.jpg to xxx.JPG. As long as doing this, convert_cam.py runs sucessfully.