Skip to content

Commit 4a604ec

Browse files
authored
Merge pull request #1795 from alicevision/dev/sfmExpanding
Adding logs to sfmExpanding
2 parents f05101f + 15a901c commit 4a604ec

File tree

7 files changed

+61
-1
lines changed

7 files changed

+61
-1
lines changed

src/aliceVision/sfm/bundle/BundleAdjustmentCeres.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -884,6 +884,8 @@ void BundleAdjustmentCeres::createJacobian(const sfmData::SfMData& sfmData, ERef
884884

885885
bool BundleAdjustmentCeres::adjust(sfmData::SfMData& sfmData, ERefineOptions refineOptions)
886886
{
887+
ALICEVISION_LOG_INFO("BundleAdjustmentCeres::adjust start");
888+
887889
// create problem
888890
ceres::Problem::Options problemOptions;
889891
problemOptions.loss_function_ownership = ceres::DO_NOT_TAKE_OWNERSHIP;
@@ -922,6 +924,8 @@ bool BundleAdjustmentCeres::adjust(sfmData::SfMData& sfmData, ERefineOptions ref
922924
_statistics.RMSEinitial = std::sqrt(summary.initial_cost / summary.num_residuals);
923925
_statistics.RMSEfinal = std::sqrt(summary.final_cost / summary.num_residuals);
924926

927+
ALICEVISION_LOG_INFO("BundleAdjustmentCeres::adjust end");
928+
925929
return true;
926930
}
927931

src/aliceVision/sfm/pipeline/expanding/ExpansionChunk.cpp

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,23 @@ namespace sfm {
1515

1616
bool ExpansionChunk::process(sfmData::SfMData & sfmData, const track::TracksHandler & tracksHandler, const std::set<IndexT> & viewsChunk)
1717
{
18+
ALICEVISION_LOG_INFO("ExpansionChunk::process start");
19+
ALICEVISION_LOG_INFO("Chunk size : " << viewsChunk.size());
20+
21+
ALICEVISION_LOG_INFO("Chunk items : ");
22+
for (const auto &item: viewsChunk)
23+
{
24+
ALICEVISION_LOG_INFO("- " << item);
25+
}
26+
1827
//For all views which have been required
1928
//Compute the pose given the existing point cloud
2029
if (!_bundleHandler)
2130
{
2231
return false;
2332
}
2433

34+
ALICEVISION_LOG_INFO("Resection start");
2535
#pragma omp parallel for
2636
for (int i = 0; i < viewsChunk.size(); i++)
2737
{
@@ -46,7 +56,8 @@ bool ExpansionChunk::process(sfmData::SfMData & sfmData, const track::TracksHand
4656

4757
#pragma omp critical
4858
{
49-
addPose(sfmData, viewId, pose);
59+
60+
addPose(sfmData, viewId, pose);
5061
}
5162
}
5263
}
@@ -62,6 +73,7 @@ bool ExpansionChunk::process(sfmData::SfMData & sfmData, const track::TracksHand
6273
validViewIds.insert(viewId);
6374
}
6475
}
76+
ALICEVISION_LOG_INFO("Updated valid views count in this chunk : " << validViewIds.size());
6577

6678
//Now that all views of the chunks
6779
if (!triangulate(sfmData, tracksHandler, validViewIds))
@@ -79,11 +91,14 @@ bool ExpansionChunk::process(sfmData::SfMData & sfmData, const track::TracksHand
7991
_historyHandler->saveState(sfmData);
8092
}
8193

94+
ALICEVISION_LOG_INFO("ExpansionChunk::process end");
95+
8296
return true;
8397
}
8498

8599
bool ExpansionChunk::triangulate(sfmData::SfMData & sfmData, const track::TracksHandler & tracksHandler, const std::set<IndexT> & viewIds)
86100
{
101+
ALICEVISION_LOG_INFO("ExpansionChunk::triangulate start");
87102
SfmTriangulation triangulation(_triangulationMinPoints, _maxTriangulationError);
88103

89104
std::set<IndexT> evaluatedTracks;
@@ -98,6 +113,7 @@ bool ExpansionChunk::triangulate(sfmData::SfMData & sfmData, const track::Tracks
98113
}
99114

100115
auto & landmarks = sfmData.getLandmarks();
116+
ALICEVISION_LOG_INFO("Existing landmarks : " << landmarks.size());
101117

102118
for (const auto & pl : outputLandmarks)
103119
{
@@ -127,6 +143,9 @@ bool ExpansionChunk::triangulate(sfmData::SfMData & sfmData, const track::Tracks
127143
landmarks.insert(pl);
128144
}
129145

146+
ALICEVISION_LOG_INFO("New landmarks count : " << landmarks.size());
147+
ALICEVISION_LOG_INFO("ExpansionChunk::triangulate end");
148+
130149
return true;
131150
}
132151

src/aliceVision/sfm/pipeline/expanding/ExpansionIteration.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ namespace sfm {
1313

1414
bool ExpansionIteration::process(sfmData::SfMData & sfmData, track::TracksHandler & tracksHandler)
1515
{
16+
ALICEVISION_LOG_INFO("ExpansionIteration::process start");
17+
1618
if (!_chunkHandler)
1719
{
1820
return false;
@@ -48,6 +50,8 @@ bool ExpansionIteration::process(sfmData::SfMData & sfmData, track::TracksHandle
4850
_historyHandler->endEpoch(sfmData, _policy->getNextViews());
4951
}
5052

53+
ALICEVISION_LOG_INFO("ExpansionIteration::process end");
54+
5155
return true;
5256
}
5357

src/aliceVision/sfm/pipeline/expanding/ExpansionPolicyLegacy.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,11 @@ bool ExpansionPolicyLegacy::process(const sfmData::SfMData & sfmData, const trac
114114
_selectedViews.insert(vscoring[0].id);
115115

116116
int maxSetSize = _maxViewsPerGroup;
117+
if (maxSetSize == 0)
118+
{
119+
maxSetSize = std::numeric_limits<int>::max();
120+
}
121+
117122
if (sfmData.getValidViews().size() < _nbFirstUnstableViews)
118123
{
119124
maxSetSize = 1;

src/aliceVision/sfm/pipeline/expanding/ExpansionProcess.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ namespace sfm {
1212

1313
bool ExpansionProcess::process(sfmData::SfMData & sfmData, track::TracksHandler & tracksHandler)
1414
{
15+
ALICEVISION_LOG_INFO("ExpansionProcess start");
16+
1517
if (!_iterationHandler)
1618
{
1719
return false;
@@ -58,14 +60,20 @@ bool ExpansionProcess::process(sfmData::SfMData & sfmData, track::TracksHandler
5860
}
5961
}
6062
}
63+
64+
ALICEVISION_LOG_INFO("ExpansionProcess poses count : " << sfmData.getPoses().size());
6165
}
6266
while (sfmData.getPoses().size() != nbPoses);
6367

68+
ALICEVISION_LOG_INFO("ExpansionProcess end");
69+
6470
return true;
6571
}
6672

6773
bool ExpansionProcess::prepareExisting(sfmData::SfMData & sfmData, const track::TracksHandler & tracksHandler)
6874
{
75+
ALICEVISION_LOG_INFO("ExpansionProcess prepareExisting");
76+
6977
//Prepare existing data
7078
remapExistingLandmarks(sfmData, tracksHandler);
7179

@@ -90,6 +98,8 @@ bool ExpansionProcess::prepareExisting(sfmData::SfMData & sfmData, const track::
9098

9199
void ExpansionProcess::remapExistingLandmarks(sfmData::SfMData & sfmData, const track::TracksHandler & tracksHandler)
92100
{
101+
ALICEVISION_LOG_INFO("remapExistingLandmarks");
102+
93103
// get unmap landmarks
94104
sfmData::Landmarks landmarks;
95105

@@ -150,6 +160,8 @@ void ExpansionProcess::remapExistingLandmarks(sfmData::SfMData & sfmData, const
150160
{
151161
ALICEVISION_LOG_INFO("Not all existing landmarks have been remapped");
152162
}
163+
164+
ALICEVISION_LOG_INFO("Landmarks count after remapping : " << sfmData.getLandmarks().size());
153165
}
154166

155167
} // namespace sfm

src/aliceVision/sfm/pipeline/expanding/SfmBundle.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ namespace sfm {
1313

1414
bool SfmBundle::process(sfmData::SfMData & sfmData, const track::TracksHandler & tracksHandler, const std::set<IndexT> & viewIds)
1515
{
16+
ALICEVISION_LOG_INFO("SfmBundle::process start");
17+
1618
BundleAdjustmentCeres::CeresOptions options;
1719
BundleAdjustment::ERefineOptions refineOptions;
1820

@@ -40,6 +42,7 @@ bool SfmBundle::process(sfmData::SfMData & sfmData, const track::TracksHandler &
4042
}
4143
while (cleanup(sfmData));
4244

45+
ALICEVISION_LOG_INFO("SfmBundle::process end");
4346
return true;
4447
}
4548

@@ -58,6 +61,12 @@ bool SfmBundle::cleanup(sfmData::SfMData & sfmData)
5861

5962
bool somethingChanged = /*somethingErased || */(nbOutliers > _bundleAdjustmentMaxOutlier);
6063

64+
ALICEVISION_LOG_INFO("SfmBundle::cleanup : ");
65+
ALICEVISION_LOG_INFO(" - nbOutliersResidualErr : " << nbOutliersResidualErr);
66+
ALICEVISION_LOG_INFO(" - nbOutliersAngleErr : " << nbOutliersAngleErr);
67+
ALICEVISION_LOG_INFO(" - somethingErased : " << somethingErased);
68+
ALICEVISION_LOG_INFO(" - somethingChanged : " << somethingChanged);
69+
6170
return somethingChanged;
6271
}
6372

src/aliceVision/sfm/pipeline/expanding/SfmResection.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ bool SfmResection::processView(
2929
double & updatedThreshold
3030
)
3131
{
32+
ALICEVISION_LOG_INFO("SfmResection::processView start " << viewId);
33+
3234
// A. Compute 2D/3D matches
3335
// A1. list tracks ids used by the view
3436
const aliceVision::track::TrackIdSet & viewTracksIds = tracksPerView.at(viewId);
@@ -50,6 +52,7 @@ bool SfmResection::processView(
5052

5153
if (trackIds.size() < 3)
5254
{
55+
5356
// If less than 3 points, the resection is theorically impossible.
5457
// Let ignore this view.
5558
return false;
@@ -83,18 +86,22 @@ bool SfmResection::processView(
8386
double errorMax = 0.0;
8487
if (!internalResection(intrinsic, randomNumberGenerator, structure, observations, featureTypes, pose, inliers, errorMax))
8588
{
89+
ALICEVISION_LOG_INFO("SfmResection::processView internalResection failed " << viewId);
8690
return false;
8791
}
8892

8993
//Refine the pose
9094
if (!internalRefinement(structure, observations, inliers, pose, intrinsic))
9195
{
96+
ALICEVISION_LOG_INFO("SfmResection::processView internalRefinemanet failed " << viewId);
9297
return false;
9398
}
9499

95100
updatedThreshold = errorMax;
96101
updatedPose = pose;
97102

103+
ALICEVISION_LOG_INFO("SfmResection::processView end " << viewId);
104+
98105
return true;
99106
}
100107

0 commit comments

Comments
 (0)