Skip to content

Commit 50b9d7a

Browse files
committed
Global Rotation Estimating: Fix command-line parameters and comments
1 parent 626b2be commit 50b9d7a

File tree

3 files changed

+30
-24
lines changed

3 files changed

+30
-24
lines changed

src/aliceVision/sfmData/SfMData.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -287,13 +287,13 @@ class SfMData
287287
*/
288288
bool isPoseAndIntrinsicDefined(const View & view) const
289289
{
290-
IndexT poseId = view.getPoseId();
290+
const IndexT poseId = view.getPoseId();
291291
if (poseId == UndefinedIndexT)
292292
{
293293
return false;
294294
}
295295

296-
IndexT intrinsicId = view.getIntrinsicId();
296+
const IndexT intrinsicId = view.getIntrinsicId();
297297
if (intrinsicId == UndefinedIndexT)
298298
{
299299
return false;
@@ -304,7 +304,7 @@ class SfMData
304304
return false;
305305
}
306306

307-
auto it = _poses.find(view.getPoseId());
307+
auto it = _poses.find(poseId);
308308
if (it == _poses.end())
309309
{
310310
return false;

src/software/pipeline/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ if(ALICEVISION_BUILD_SFM)
148148
Boost::json
149149
)
150150

151-
# Bootstraping SfM
151+
# Global Rotation Estimating
152152
alicevision_add_software(aliceVision_globalRotationEstimating
153153
SOURCE main_globalRotationEstimating.cpp
154154
FOLDER ${FOLDER_SOFTWARE_PIPELINE}

src/software/pipeline/main_globalRotationEstimating.cpp

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
#include <aliceVision/types.hpp>
88

9-
#include <aliceVision/system/Timer.hpp>
109
#include <aliceVision/system/Logger.hpp>
1110
#include <aliceVision/system/main.hpp>
1211
#include <aliceVision/cmdline/cmdline.hpp>
@@ -23,7 +22,6 @@
2322
#include <aliceVision/track/TracksHandler.hpp>
2423
#include <aliceVision/dataio/json.hpp>
2524

26-
2725
#include <boost/program_options.hpp>
2826
#include <filesystem>
2927

@@ -39,7 +37,7 @@ namespace fs = std::filesystem;
3937

4038
int aliceVision_main(int argc, char** argv)
4139
{
42-
// command-line parameters
40+
// Command-line parameters
4341
std::string sfmDataFilename;
4442
std::string sfmDataOutputFilename;
4543
std::string tracksFilename;
@@ -49,39 +47,49 @@ int aliceVision_main(int argc, char** argv)
4947
int randomSeed = std::mt19937::default_seed;
5048
double angularTolerance = 5.0;
5149

50+
// clang-format off
5251
po::options_description requiredParams("Required parameters");
5352
requiredParams.add_options()
54-
("input,i", po::value<std::string>(&sfmDataFilename)->required(), "SfMData file.")
55-
("output,o", po::value<std::string>(&sfmDataOutputFilename)->required(), "SfMData output file.")
56-
("tracksFilename,t", po::value<std::string>(&tracksFilename)->required(), "Tracks file.")
57-
("pairs,p", po::value<std::string>(&pairsDirectory)->required(), "Path to the pairs directory.");
53+
("input,i", po::value<std::string>(&sfmDataFilename)->required(),
54+
"SfMData file.")
55+
("output,o", po::value<std::string>(&sfmDataOutputFilename)->required(),
56+
"SfMData output file.")
57+
("tracksFilename,t", po::value<std::string>(&tracksFilename)->required(),
58+
"Tracks file.")
59+
("pairs,p", po::value<std::string>(&pairsDirectory)->required(),
60+
"Path to the pairs directory.");
5861

5962
po::options_description optionalParams("Optional parameters");
6063
optionalParams.add_options()
61-
("rotationAveragingMethod", po::value<sfm::ERotationAveragingMethod>(&rotationAveragingMethod)->default_value(rotationAveragingMethod))
62-
("angularTolerance", po::value<double>(&angularTolerance)->default_value(angularTolerance));
64+
("rotationAveragingMethod", po::value<sfm::ERotationAveragingMethod>(&rotationAveragingMethod)->default_value(rotationAveragingMethod),
65+
"Method for rotation averaging: \n"
66+
"- L1_minimization: Use L1 minimization\n"
67+
"- L2_minimization: Use L2 minimization")
68+
("angularTolerance", po::value<double>(&angularTolerance)->default_value(angularTolerance),
69+
"Angular (in degrees) tolerance for a given triplet.");
70+
// clang-format on
6371

64-
CmdLine cmdline("AliceVision SfM Bootstraping");
72+
CmdLine cmdline("AliceVision Global Rotation Estimating");
6573

6674
cmdline.add(requiredParams);
67-
if(!cmdline.execute(argc, argv))
75+
cmdline.add(optionalParams);
76+
if (!cmdline.execute(argc, argv))
6877
{
6978
return EXIT_FAILURE;
7079
}
7180

72-
// set maxThreads
81+
// Set maxThreads
7382
HardwareContext hwc = cmdline.getHardwareContext();
7483
omp_set_num_threads(hwc.getMaxThreads());
7584

76-
// load input SfMData scene
85+
// Load input SfMData scene
7786
sfmData::SfMData sfmData;
7887
if(!sfmDataIO::load(sfmData, sfmDataFilename, sfmDataIO::ESfMData::ALL))
7988
{
8089
ALICEVISION_LOG_ERROR("The input SfMData file '" + sfmDataFilename + "' cannot be read.");
8190
return EXIT_FAILURE;
8291
}
8392

84-
8593
// Load tracks
8694
ALICEVISION_LOG_INFO("Load tracks");
8795
track::TracksHandler tracksHandler;
@@ -91,8 +99,7 @@ int aliceVision_main(int argc, char** argv)
9199
return EXIT_FAILURE;
92100
}
93101

94-
95-
//Result of pair estimations are stored in multiple files
102+
// Result of pair estimations are stored in multiple files
96103
std::vector<sfm::ReconstructedPair> reconstructedPairs;
97104
const std::regex regex("pairs\\_[0-9]+\\.json");
98105
for(const fs::directory_entry & file : boost::make_iterator_range(fs::directory_iterator(pairsDirectory), {}))
@@ -102,11 +109,11 @@ int aliceVision_main(int argc, char** argv)
102109
continue;
103110
}
104111

105-
std::ifstream inputfile(file.path().string());
112+
std::ifstream inputfile(file.path().string());
106113

107114
boost::json::error_code ec;
108115
std::vector<boost::json::value> values = readJsons(inputfile, ec);
109-
for (const boost::json::value & value : values)
116+
for (const boost::json::value& value : values)
110117
{
111118
std::vector<sfm::ReconstructedPair> localVector = boost::json::value_to<std::vector<sfm::ReconstructedPair>>(value);
112119
reconstructedPairs.insert(reconstructedPairs.end(), localVector.begin(), localVector.end());
@@ -136,14 +143,13 @@ int aliceVision_main(int argc, char** argv)
136143
for (auto & item : globalRotations)
137144
{
138145
sfmData::CameraPose cp;
139-
const geometry::Pose3 & p = cp.getTransform();
146+
const geometry::Pose3& p = cp.getTransform();
140147
p.rotation() = item.second;
141148
cp.setRotationOnly(true);
142149

143150
sfmData.getPoses()[item.first] = cp;
144151
}
145152

146-
147153
sfmDataIO::save(sfmData, sfmDataOutputFilename, sfmDataIO::ESfMData::ALL);
148154

149155
return EXIT_SUCCESS;

0 commit comments

Comments
 (0)