Closed ecmjohnson closed 2 years ago
Hello, this seems to be an initialization issue. The rendered mask might not be overlapped with observed mask when principal point is not initialized properly.
Does this solve the problem? https://github.com/gengshan-y/viser-release/issues/4#issuecomment-1064636328
Ah, let me clarify my understanding: so the ppx
and ppy
pixel coordinates are not necessarily the principal point of the camera projection (i.e. typically half width and half height respectively) and I should adjust them to be centered on the object for the start_idx
frame in the init
optimization. Is that correct?
I had already set the ppx
and ppy
to be half width and half height respectively for my datasets, but it is possible that this point did not overlap the masks in the datasets which failed.
Your understanding is correct. Let me give more explanation if you are interested -- ppx, ppy
is supposed to be the principal point of camera, but if we initialize them as the correct values, the renderings may not overlap due to the incorrect initial root translation estimation, which causes the problem.
I would suggest using the following to avoid tedious manual initialization of ppx, ppy
:
Besides passing principal points to the config file, another option is to pass --cnnpp to optimize.py, which optimizes an image CNN to predict principal points. In this case, we have some mechanism here to ensure the silhouette rendering and ground-truth overlaps.
Ah, excellent! That solves the issue of failing during optimization
Thanks!
Hello, I'm trying to run ViSER on some of my own datasets. Out of my 5 datasets, 2 succeed and 3 fail: all with the same failure case:
Full error log 1 Full error log 2 Full error log 3
I would tend to assume this is a division by zero in the identified line. Have you encountered this issue before?
I have tried multiple values of
init_frame
andend_frame
for initially optimizing on a subset (where the failure occurs). I have also tried different seed values. I haven't found any choice of these parameters that cause these datasets to avoid this failure case.Any help or insight you can provide would be appreciated