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

Aborted #6

Open
UcefMountacer opened this issue Jan 25, 2022 · 12 comments
Open

Aborted #6

UcefMountacer opened this issue Jan 25, 2022 · 12 comments

Comments

@UcefMountacer
Copy link

Hi,

I am getting this error :

mv: cannot stat 'Roots/dense/pmvs/models/option-all.ply': No such file or directory

I can share the whole output:


==============================================================================
Exhaustive feature matching
==============================================================================

Matching block [1/2, 1/2] in 0.010s
Matching block [1/2, 2/2] in 0.001s
Matching block [2/2, 1/2] in 0.004s
Matching block [2/2, 2/2] in 0.001s
Elapsed time: 0.000 [minutes]
Feature matching completed in a moment, building sparse model

==============================================================================
Loading database
==============================================================================

Loading cameras... 61 in 0.000s
Loading matches... 1830 in 0.013s
Loading images... 61 in 0.002s (connected 61)
Building correspondence graph... in 0.044s (ignored 0)

Elapsed time: 0.001 [minutes]

  => No good initial image pair found.
  => Relaxing the initialization constraints.
  => No good initial image pair found.
  => Relaxing the initialization constraints.
  => No good initial image pair found.
  => Relaxing the initialization constraints.
  => No good initial image pair found.
  => Relaxing the initialization constraints.
  => No good initial image pair found.

Elapsed time: 0.381 [minutes]
F0125 00:39:45.210147    94 reconstruction.cc:806] cameras, images, points3D files do not exist at Roots/sparse/0
*** Check failure stack trace: ***
    @     0x7f822db4a0cd  google::LogMessage::Fail()
    @     0x7f822db4bf33  google::LogMessage::SendToLog()
    @     0x7f822db49c28  google::LogMessage::Flush()
    @     0x7f822db4c999  google::LogMessageFatal::~LogMessageFatal()
    @     0x564649aad65d  (unknown)
    @     0x5646499ffdac  (unknown)
    @     0x5646499efe9e  (unknown)
    @     0x7f822948cb97  __libc_start_main
    @     0x5646499f9a6a  (unknown)
Aborted (core dumped)
Sparse model completed in 23 seconds, building dense model
F0125 00:39:45.392874    96 reconstruction.cc:806] cameras, images, points3D files do not exist at Roots/sparse/0
*** Check failure stack trace: ***
    @     0x7f0ecc8b50cd  google::LogMessage::Fail()
    @     0x7f0ecc8b6f33  google::LogMessage::SendToLog()
    @     0x7f0ecc8b4c28  google::LogMessage::Flush()
    @     0x7f0ecc8b7999  google::LogMessageFatal::~LogMessageFatal()
    @     0x557f7d6ad65d  (unknown)
    @     0x557f7d604935  (unknown)
    @     0x557f7d5efe9e  (unknown)
    @     0x7f0ec81f7b97  __libc_start_main
    @     0x557f7d5f9a6a  (unknown)
Aborted (core dumped)

pmvs2
Roots/dense/pmvs/
option-all
Unrecognizable option: 
mv: cannot stat 'Roots/dense/pmvs/models/option-all.ply': No such file or directory
Dense model completed in a moment
Reconstruction completed in 23 seconds

Hope someone has an idea !

thanks

@eyildiz-ugoe
Copy link

I am facing the same issue. It could be because of the images we feed in (that the method cannot find suitable features), but I am not sure. It would be nice if the authors could take a look into it.

@UcefMountacer
Copy link
Author

A follow up on this issue :

==============================================================================
Exhaustive feature matching
==============================================================================

Matching block [1/3, 1/3] in 50.709s
Matching block [1/3, 2/3] in 29.601s
Matching block [1/3, 3/3] in 5.442s
Matching block [2/3, 1/3] in 41.419s
Matching block [2/3, 2/3] in 11.398s
Matching block [2/3, 3/3] in 4.013s
Matching block [3/3, 1/3] in 19.988s
Matching block [3/3, 2/3] in 1.521s
Matching block [3/3, 3/3] in 0.002s
Elapsed time: 2.737 [minutes]
Feature matching completed in 2 minutes, building sparse model

==============================================================================
Loading database
==============================================================================

Loading cameras... 122 in 0.000s
Loading matches... 7381 in 0.039s
Loading images... 122 in 0.006s (connected 122)
Building correspondence graph... in 0.184s (ignored 0)

Elapsed time: 0.004 [minutes]

  => No good initial image pair found.
  => Relaxing the initialization constraints.
  => No good initial image pair found.
  => Relaxing the initialization constraints.
  => No good initial image pair found.
  => Relaxing the initialization constraints.
  => No good initial image pair found.
  => Relaxing the initialization constraints.

==============================================================================
Initializing with image pair #90 and #31
==============================================================================


==============================================================================
Global bundle adjustment
==============================================================================

iter      cost      cost_change  |gradient|   |step|    tr_ratio  tr_radius  ls_iter  iter_time  total_time
   0  2.307481e+03    0.00e+00    1.55e+05   0.00e+00   0.00e+00  1.00e+04        0    1.83e-02    3.96e-02
   1  7.794527e+02    1.53e+03    4.91e+05   1.46e+02   8.45e-01  1.49e+04        1    1.74e-02    5.71e-02
   2  5.710930e+02    2.08e+02    6.07e+05   1.24e+02   5.63e-01  1.49e+04        1    4.49e-03    6.17e-02
   3  4.448607e+02    1.26e+02    3.86e+05   6.80e+01   4.57e-01  1.49e+04        1    3.50e-03    6.53e-02
   4  2.567100e+02    1.88e+02    1.60e+05   4.49e+01   8.66e-01  2.45e+04        1    7.12e-03    7.24e-02
   5  2.139265e+02    4.28e+01    1.29e+05   5.99e+01   6.31e-01  2.49e+04        1    4.63e-03    7.71e-02
   6  1.771437e+02    3.68e+01    6.43e+04   5.25e+01   7.85e-01  3.06e+04        1    3.38e-03    8.06e-02
   7  1.745059e+02    2.64e+00    7.03e+04   5.93e+01   1.16e-01  2.11e+04        1    2.86e-03    8.35e-02
   8  1.524212e+02    2.21e+01    2.86e+04   3.87e+01   8.61e-01  3.37e+04        1    2.29e-03    8.58e-02
   9  1.601602e+02   -7.74e+00    0.00e+00   5.95e+01  -8.06e-01  1.69e+04        1    9.32e-04    8.68e-02
  10  1.467089e+02    5.71e+00    1.68e+04   2.99e+01   8.24e-01  2.32e+04        1    1.74e-03    8.86e-02
  11  1.453460e+02    1.36e+00    2.70e+04   4.02e+01   2.74e-01  2.12e+04        1    1.73e-03    9.03e-02
  12  1.406493e+02    4.70e+00    1.95e+04   3.58e+01   7.13e-01  2.30e+04        1    1.40e-03    9.17e-02
  13  1.377813e+02    2.87e+00    1.97e+04   3.78e+01   5.99e-01  2.32e+04        1    1.47e-03    9.32e-02
  14  1.347126e+02    3.07e+00    1.73e+04   3.71e+01   6.75e-01  2.42e+04        1    1.38e-03    9.46e-02
  15  1.320676e+02    2.65e+00    1.65e+04   3.78e+01   6.67e-01  2.52e+04        1    1.26e-03    9.59e-02
  16  1.295601e+02    2.51e+00    1.56e+04   3.83e+01   6.82e-01  2.64e+04        1    1.25e-03    9.72e-02
  17  1.272230e+02    2.34e+00    1.52e+04   3.93e+01   6.82e-01  2.78e+04        1    1.61e-03    9.88e-02
  18  1.249850e+02    2.24e+00    1.48e+04   4.03e+01   6.86e-01  2.93e+04        1    1.73e-03    1.01e-01
  19  1.228435e+02    2.14e+00    1.46e+04   4.15e+01   6.85e-01  3.08e+04        1    1.47e-03    1.02e-01
  20  1.207769e+02    2.07e+00    1.45e+04   4.27e+01   6.86e-01  3.25e+04        1    1.80e-03    1.04e-01
  21  1.187817e+02    2.00e+00    1.44e+04   4.39e+01   6.85e-01  3.42e+04        1    1.54e-03    1.05e-01
  22  1.168509e+02    1.93e+00    1.43e+04   4.51e+01   6.84e-01  3.60e+04        1    1.32e-03    1.07e-01
  23  1.149823e+02    1.87e+00    1.42e+04   4.64e+01   6.82e-01  3.79e+04        1    1.24e-03    1.08e-01
  24  1.131733e+02    1.81e+00    1.42e+04   4.76e+01   6.81e-01  3.97e+04        1    1.30e-03    1.09e-01
  25  1.114224e+02    1.75e+00    1.41e+04   4.87e+01   6.79e-01  4.17e+04        1    1.41e-03    1.11e-01
  26  1.097283e+02    1.69e+00    1.40e+04   4.99e+01   6.78e-01  4.36e+04        1    1.28e-03    1.12e-01
  27  1.080896e+02    1.64e+00    1.40e+04   5.10e+01   6.76e-01  4.56e+04        1    2.00e-03    1.14e-01
  28  1.065050e+02    1.58e+00    1.39e+04   5.21e+01   6.75e-01  4.77e+04        1    1.30e-03    1.15e-01
  29  1.049732e+02    1.53e+00    1.38e+04   5.32e+01   6.73e-01  4.97e+04        1    1.30e-03    1.17e-01
  30  1.034928e+02    1.48e+00    1.37e+04   5.42e+01   6.72e-01  5.18e+04        1    3.25e-03    1.20e-01
  31  1.020621e+02    1.43e+00    1.36e+04   5.53e+01   6.71e-01  5.40e+04        1    1.54e-03    1.22e-01
  32  1.006795e+02    1.38e+00    1.35e+04   5.63e+01   6.70e-01  5.62e+04        1    1.55e-03    1.23e-01
  33  9.934327e+01    1.34e+00    1.34e+04   5.73e+01   6.69e-01  5.85e+04        1    1.29e-03    1.25e-01
  34  9.805143e+01    1.29e+00    1.33e+04   5.83e+01   6.68e-01  6.08e+04        1    1.21e-03    1.26e-01
  35  9.680197e+01    1.25e+00    1.32e+04   5.93e+01   6.68e-01  6.31e+04        1    1.21e-03    1.27e-01
  36  9.559277e+01    1.21e+00    1.31e+04   6.04e+01   6.67e-01  6.56e+04        1    1.23e-03    1.28e-01
  37  9.442153e+01    1.17e+00    1.30e+04   6.14e+01   6.68e-01  6.82e+04        1    2.25e-03    1.31e-01
  38  9.328581e+01    1.14e+00    1.29e+04   6.26e+01   6.68e-01  7.09e+04        1    1.45e-03    1.32e-01
  39  9.218296e+01    1.10e+00    1.28e+04   6.38e+01   6.69e-01  7.37e+04        1    1.85e-03    1.34e-01
  40  9.111004e+01    1.07e+00    1.27e+04   6.51e+01   6.70e-01  7.67e+04        1    1.39e-03    1.35e-01
  41  9.006376e+01    1.05e+00    1.26e+04   6.66e+01   6.72e-01  8.00e+04        1    2.30e-03    1.38e-01
  42  8.904024e+01    1.02e+00    1.26e+04   6.83e+01   6.75e-01  8.36e+04        1    1.63e-03    1.39e-01
  43  8.803476e+01    1.01e+00    1.26e+04   7.02e+01   6.79e-01  8.77e+04        1    1.42e-03    1.41e-01
  44  8.704134e+01    9.93e-01    1.26e+04   7.25e+01   6.85e-01  9.23e+04        1    1.23e-03    1.42e-01
  45  8.605190e+01    9.89e-01    1.27e+04   7.53e+01   6.93e-01  9.79e+04        1    1.14e-03    1.43e-01
  46  8.505495e+01    9.97e-01    1.29e+04   7.89e+01   7.03e-01  1.05e+05        1    1.24e-03    1.45e-01
  47  8.403309e+01    1.02e+00    1.33e+04   8.38e+01   7.18e-01  1.14e+05        1    1.15e-03    1.46e-01
  48  8.295846e+01    1.07e+00    1.39e+04   9.06e+01   7.37e-01  1.28e+05        1    1.36e-03    1.47e-01
  49  8.178496e+01    1.17e+00    1.50e+04   1.01e+02   7.60e-01  1.49e+05        1    1.23e-03    1.48e-01
  50  8.043947e+01    1.35e+00    1.70e+04   1.17e+02   7.80e-01  1.81e+05        1    1.40e-03    1.50e-01
  51  7.883257e+01    1.61e+00    2.02e+04   1.42e+02   7.73e-01  2.16e+05        1    1.36e-03    1.51e-01
  52  7.689245e+01    1.94e+00    2.49e+04   1.69e+02   7.24e-01  2.37e+05        1    1.24e-03    1.52e-01
  53  7.512405e+01    1.77e+00    3.24e+04   1.82e+02   5.14e-01  2.37e+05        1    1.23e-03    1.54e-01
  54  7.375788e+01    1.37e+00    3.29e+04   1.72e+02   3.21e-01  2.27e+05        1    1.17e-03    1.55e-01
  55  7.068762e+01    3.07e+00    2.12e+04   1.51e+02   6.68e-01  2.36e+05        1    1.15e-03    1.56e-01
  56  6.879798e+01    1.89e+00    1.19e+04   1.44e+02   7.49e-01  2.69e+05        1    1.23e-03    1.57e-01
  57  6.786059e+01    9.37e-01    5.16e+03   1.52e+02   7.03e-01  2.88e+05        1    1.25e-03    1.58e-01
  58  6.728221e+01    5.78e-01    1.25e+03   1.53e+02   6.11e-01  2.92e+05        1    1.44e-03    1.60e-01
  59  6.677329e+01    5.09e-01    1.00e+03   1.46e+02   6.11e-01  2.95e+05        1    1.75e-03    1.62e-01
  60  6.631013e+01    4.63e-01    9.31e+02   1.41e+02   6.24e-01  2.99e+05        1    1.45e-03    1.63e-01
  61  6.589487e+01    4.15e-01    1.19e+03   1.38e+02   6.25e-01  3.04e+05        1    1.37e-03    1.65e-01
  62  6.551966e+01    3.75e-01    1.51e+03   1.35e+02   6.16e-01  3.08e+05        1    1.25e-03    1.66e-01
  63  6.517340e+01    3.46e-01    1.74e+03   1.33e+02   6.07e-01  3.11e+05        1    1.22e-03    1.67e-01
  64  6.484908e+01    3.24e-01    1.86e+03   1.30e+02   6.02e-01  3.14e+05        1    1.30e-03    1.68e-01
  65  6.454331e+01    3.06e-01    1.89e+03   1.28e+02   6.00e-01  3.16e+05        1    2.36e-03    1.71e-01
  66  6.425464e+01    2.89e-01    1.88e+03   1.26e+02   6.02e-01  3.19e+05        1    1.53e-03    1.72e-01
  67  6.398223e+01    2.72e-01    1.89e+03   1.24e+02   6.04e-01  3.22e+05        1    1.20e-03    1.74e-01
  68  6.372522e+01    2.57e-01    1.92e+03   1.23e+02   6.08e-01  3.25e+05        1    1.15e-03    1.75e-01
  69  6.348261e+01    2.43e-01    1.91e+03   1.22e+02   6.11e-01  3.29e+05        1    1.27e-03    1.76e-01
  70  6.325334e+01    2.29e-01    1.89e+03   1.21e+02   6.14e-01  3.33e+05        1    1.19e-03    1.77e-01
  71  6.303628e+01    2.17e-01    1.86e+03   1.20e+02   6.17e-01  3.37e+05        1    1.28e-03    1.79e-01
  72  6.283039e+01    2.06e-01    1.83e+03   1.19e+02   6.20e-01  3.42e+05        1    1.26e-03    1.80e-01
  73  6.263468e+01    1.96e-01    1.80e+03   1.18e+02   6.22e-01  3.47e+05        1    1.26e-03    1.81e-01
  74  6.244827e+01    1.86e-01    1.77e+03   1.18e+02   6.23e-01  3.52e+05        1    1.22e-03    1.82e-01
  75  6.227039e+01    1.78e-01    1.74e+03   1.18e+02   6.25e-01  3.57e+05        1    1.23e-03    1.84e-01
  76  6.210036e+01    1.70e-01    1.71e+03   1.18e+02   6.26e-01  3.63e+05        1    1.36e-03    1.85e-01
  77  6.193757e+01    1.63e-01    1.68e+03   1.18e+02   6.26e-01  3.69e+05        1    1.23e-03    1.86e-01
  78  6.178151e+01    1.56e-01    1.66e+03   1.18e+02   6.27e-01  3.75e+05        1    1.25e-03    1.87e-01
  79  6.163171e+01    1.50e-01    1.64e+03   1.18e+02   6.27e-01  3.82e+05        1    1.16e-03    1.89e-01
  80  6.148777e+01    1.44e-01    1.61e+03   1.18e+02   6.27e-01  3.88e+05        1    1.21e-03    1.90e-01
  81  6.134933e+01    1.38e-01    1.59e+03   1.18e+02   6.28e-01  3.95e+05        1    1.21e-03    1.91e-01
  82  6.121607e+01    1.33e-01    1.57e+03   1.18e+02   6.28e-01  4.01e+05        1    2.39e-03    1.94e-01
  83  6.108770e+01    1.28e-01    1.55e+03   1.18e+02   6.27e-01  4.08e+05        1    1.38e-03    1.95e-01
  84  6.096395e+01    1.24e-01    1.54e+03   1.18e+02   6.27e-01  4.15e+05        1    1.28e-03    1.96e-01
  85  6.084460e+01    1.19e-01    1.52e+03   1.18e+02   6.27e-01  4.22e+05        1    1.26e-03    1.98e-01
  86  6.072941e+01    1.15e-01    1.50e+03   1.19e+02   6.27e-01  4.29e+05        1    1.26e-03    1.99e-01
  87  6.061818e+01    1.11e-01    1.49e+03   1.19e+02   6.26e-01  4.36e+05        1    1.24e-03    2.00e-01
  88  6.051073e+01    1.07e-01    1.47e+03   1.19e+02   6.26e-01  4.43e+05        1    1.36e-03    2.01e-01
  89  6.040688e+01    1.04e-01    1.45e+03   1.19e+02   6.26e-01  4.50e+05        1    3.12e-03    2.05e-01
  90  6.030646e+01    1.00e-01    1.44e+03   1.19e+02   6.26e-01  4.57e+05        1    2.23e-03    2.07e-01
  91  6.020933e+01    9.71e-02    1.42e+03   1.20e+02   6.25e-01  4.65e+05        1    1.71e-03    2.09e-01
  92  6.011535e+01    9.40e-02    1.41e+03   1.20e+02   6.25e-01  4.72e+05        1    1.50e-03    2.10e-01
  93  6.002436e+01    9.10e-02    1.40e+03   1.20e+02   6.24e-01  4.79e+05        1    1.46e-03    2.12e-01
  94  5.993626e+01    8.81e-02    1.38e+03   1.20e+02   6.24e-01  4.87e+05        1    1.25e-03    2.13e-01
  95  5.985091e+01    8.53e-02    1.37e+03   1.21e+02   6.24e-01  4.94e+05        1    1.21e-03    2.14e-01
  96  5.976821e+01    8.27e-02    1.36e+03   1.21e+02   6.23e-01  5.02e+05        1    1.25e-03    2.15e-01
  97  5.968804e+01    8.02e-02    1.34e+03   1.21e+02   6.23e-01  5.09e+05        1    1.76e-03    2.17e-01
  98  5.961031e+01    7.77e-02    1.33e+03   1.21e+02   6.23e-01  5.17e+05        1    1.41e-03    2.19e-01
  99  5.953492e+01    7.54e-02    1.32e+03   1.22e+02   6.22e-01  5.25e+05        1    1.40e-03    2.20e-01
 100  5.946177e+01    7.31e-02    1.31e+03   1.22e+02   6.22e-01  5.32e+05        1    1.70e-03    2.22e-01


Bundle adjustment report
------------------------
    Residuals : 852
   Parameters : 648
   Iterations : 101
         Time : 0.222179 [s]
 Initial cost : 1.64569 [px]
   Final cost : 0.26418 [px]
  Termination : No convergence

  => Filtered observations: 195
  => Filtered images: 0
  => No good initial image pair found.

Elapsed time: 1.671 [minutes]
F0126 00:17:56.007046   106 reconstruction.cc:806] cameras, images, points3D files do not exist at out/sparse/0
*** Check failure stack trace: ***
    @     0x7f0d36f610cd  google::LogMessage::Fail()
    @     0x7f0d36f62f33  google::LogMessage::SendToLog()
    @     0x7f0d36f60c28  google::LogMessage::Flush()
    @     0x7f0d36f63999  google::LogMessageFatal::~LogMessageFatal()
    @     0x55994a8ad65d  (unknown)
    @     0x55994a7ffdac  (unknown)
    @     0x55994a7efe9e  (unknown)
    @     0x7f0d328a3b97  __libc_start_main
    @     0x55994a7f9a6a  (unknown)
Aborted (core dumped)
Sparse model completed in a minute, building dense model
F0126 00:17:56.195652   108 reconstruction.cc:806] cameras, images, points3D files do not exist at out/sparse/0
*** Check failure stack trace: ***
    @     0x7f1e4c2f20cd  google::LogMessage::Fail()
    @     0x7f1e4c2f3f33  google::LogMessage::SendToLog()
    @     0x7f1e4c2f1c28  google::LogMessage::Flush()
    @     0x7f1e4c2f4999  google::LogMessageFatal::~LogMessageFatal()
    @     0x564fbb2ad65d  (unknown)
    @     0x564fbb204935  (unknown)
    @     0x564fbb1efe9e  (unknown)
    @     0x7f1e47c34b97  __libc_start_main
    @     0x564fbb1f9a6a  (unknown)
Aborted (core dumped)

pmvs2
out/dense/pmvs/
option-all
Unrecognizable option: 
mv: cannot stat 'out/dense/pmvs/models/option-all.ply': No such file or directory
Dense model completed in a moment
Reconstruction completed in 5 minutes

The output folders dense and sparse were empty.
Is this error due to features detected not being enough?

this error is also confusing :
mv: cannot stat 'out/dense/pmvs/models/option-all.ply': No such file or directory

@wpbonelli
Copy link
Member

wpbonelli commented Jan 26, 2022

Hi @UcefMountacer and @eyildiz-ugoe, it looks like registration failed to converge during colmap sparse reconstruction. As a first step you could try again with a modified image set. Adding or removing images may improve the chances of convergence (see this for instance). Lighting can also have a significant effect.

The No such file or directory error is a cascading consequence of failure during sparse reconstruction (thrown by this line in particular). Really we should catch errors, short-circuit the pipeline, and show a more informative message- I will see if I can get to it later this week, documented here

@eyildiz-ugoe
Copy link

Thank you for your rapid reply @w-bonelli . As you pointed towards adding and removing images, let me ask you one thing. Does the method assume that the images were collected from a static plant (e.g. your setup)? In my case I have the opposite case. Plant is rotating and the cameras are fixated, taking images of a rotating plant. I'm feeding those images into your method which gives the error described above. If there is such implicit requirement to your method, please let me know.

@lsx1980
Copy link
Contributor

lsx1980 commented Jan 26, 2022

Hi, thank you for your testing our pipeline. Our method uses the 3D scanner to collect images in a fixed illumination environment and a static plant with rotating cameras mounted in an arc. The CAD design of the 3D scanner was attached with the supplementary materials. We did not use the fixed camera and fixed plant set up was to avoid the bluring effect and shaking of the root object. As Wes mentioned, registration failed to converge in colmap, which was caused by lacking of enough feature matching points. We would like to help you with your reconstruction, would you mind sharing your whole image set with us? we can help you debug it and find the best solution.

@wpbonelli
Copy link
Member

@eyildiz-ugoe there is no requirement in principle that the cameras rotate while the plant stays fixed.

One potential problem is that rotating the plant may produce blurry images. The reconstruction is sensitive to blur as well as lighting. Maybe reducing the rotation speed could help? If you can share some sample images we can help diagnose the issue.

In our setup @lsx1980 has the camera arm running on a stepper motor which does not rotate continuously but stops before taking each round of images.

@eyildiz-ugoe
Copy link

Dear @w-bonelli and @lsx1980 , thank you for your answers. I've seen your setup on your YouTube page, you used several cameras around a rig with fixed lighting, rotating around the plant in steps. Stopping every now and then accounts for shaking and blurry input, I can see that. Here is some sample data from our runs. We are having the plant rotating instead of the cameras. We have a distinctive background, QR code, and the plant in the scene. We hope to utilize the QR codes for feature matching (although originally they were there for plant identification). However, I think the method fails to find enough features in our images, which results in the aforementioned error.

Our idea is to 3d reconstruct the plant root with what we have. Unfortunately, we cannot repeat the experiments again using a different setup. That's the downside. On the upper side, we have an almost unlimited amount of videos (of the same setup, different plants).

Any idea/direction towards 3d reconstruction of our plants would be appreciated. I see that your method is doing exactly what we are after, that's why I am trying to see if it would work. Therefore, any advise would be highly appreciated.

@UcefMountacer
Copy link
Author

UcefMountacer commented Jan 26, 2022

Thanks for responding to our issue.

One potential problem is that rotating the plant may produce blurry images. The reconstruction is sensitive to blur as well as lighting. Maybe reducing the rotation speed could help?

We had indeed some doubts that the problem comes from the setup (plant root being fixed, rotating, and camera being fixed). But the root is rotating slowly, as you can see in the videos provided by @eyildiz-ugoe .
I hope you can direct us to obtain a better result.

Really we should catch errors, short-circuit the pipeline, and show a more informative message

Thanks, we now know for sure that its a feature problem.

@wpbonelli
Copy link
Member

wpbonelli commented Jan 26, 2022

@eyildiz-ugoe @UcefMountacer thanks for sharing your sample data. One thing that could help is preprocessing, in order to lighten dark images, omit blurry images, and crop more closely to the root. The pipeline has some preprocessing options which attempt to do this (see the --segmentation and --gamma_correction parameters).

I will see if I can do a test run later today on your samples.

@UcefMountacer
Copy link
Author

@w-bonelli Thanks for your reply.

We have used these commands, the last output I shared was using these options.

The gamma_correction improved the visibility of the root. However, i didn't see any effect using segmentation option. At least, the root wasn't segmented well. Maybe this has to do with poor features.

I'm interested to see your test results using our data. Please let us know when you have done it.

Thanks

@lsx1980
Copy link
Contributor

lsx1980 commented Jan 26, 2022

Hi, @eyildiz-ugoe @UcefMountacer, thanks for sharing your sample data. I have discussed this with Wes.

We tried with one of your videos named “MVI_0590.MOV”, we use the https://ezgif.com/video-to-jpg to extract to image sequence from the video. The results are attached in (https://drive.google.com/drive/folders/1oWldxZKu5SmhZmf-aYM5Enj0Tx5EkQkJ?usp=sharing)

We were able to reproduce the error you encountered, the main reason was "no initial good feature found at feature matching step.”, which means the input images did not have enough features to perform feature matching and the following step to compute the coordinates of the matching point and reconstruct a 3D model. We also tried to segment your image sequence focusing on only the root part, which can generate a very sparse 3D model.

We checked the image sequences converted from videos, like we mentioned before, there is a serious motion blur and the root object was very blurry although the image resolution meets HD standard, (1920*1080). You might wonder why we are using HD record the video still gets blurry root part? The motion blur was caused by when compressing all the images into videos, for example, MOV is a video format that was developed by Apple. It's a MPEG 4 video container, MPEG 4 (https://en.wikipedia.org/wiki/MPEG-4) can compress video from image sequences by removing both temporal redundancy and spatial redundancy (https://stackoverflow.com/questions/593649/how-does-mpeg4-compression-work). In Temporal redundancy, motion estimation examines the movement of objects in an image sequence to try to obtain vectors representing the estimated motion. Motion compensation uses the knowledge of object motion so obtained to achieve data compression.

Therefore, you can see a lot of square shape blocks in your images sequence, especially the root part, which is the only “motion” object in your scene. like the shared image"snapshot.png".
In summary, blurry images cause the failure of feature matching and 3D reconstruction. BTW, the reason we choose the design of our 3D scanner was already considering the motion blurry effect from videos, we have tested using videos before.

Suggestions,

  1. Can you try to take some static images of your root object using the same device to capture the videos? Around 60 ~300 would be good enough, the more images, the higher resolution of the 3D models according to Nyquist–Shannon sampling theorem (https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem), we can help you to try these kinds of images for 3D reconstruction.

  2. Suggest trying methods like “Automatic 3D Reconstruction From Unstructured Videos Combining Video Summarization and Structure From Motion” (https://www.frontiersin.org/articles/10.3389/fict.2018.00029/full).
    That might help, the critical step was to recover a clear image from compressed videos or remove the motion blur effect. Another way was to try to obtain uncompressed videos which will have bigger sizes in storage.

Thank you for your testing our pipeline.

@UcefMountacer
Copy link
Author

Thanks @lsx1980 for the great analysis of our dataset. It's really full of insights.

We will try to get good data, although these recording date back to 2018. So its difficult to ask for none-blurred data of these plant roots.

The suggestion to remove blur effect from the images is the most feasible one right now for us. We will try some algorithms to do this and test again with your tool. Until then, let's keep in touch.

Thank you

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

4 participants