Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitaf903f3

Browse files
committed
disable dense solve if no overlapping frames found
1 parentd9b0f31 commitaf903f3

File tree

2 files changed

+4
-5
lines changed

2 files changed

+4
-5
lines changed

‎FriedLiver/Source/Solver/CUDASolverBundling.cpp‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ extern "C" void solveBundlingStub(SolverInput& input, SolverState& state, Solver
1111

1212
extern"C"intcountHighResiduals(SolverInput& input, SolverState& state, SolverParameters& parameters, CUDATimer* timer);
1313

14-
extern"C"voidBuildDenseSystem(const SolverInput& input, SolverState& state, SolverParameters& parameters, CUDATimer* timer);
1514
extern"C"voidconvertLiePosesToMatricesCU(const float3* d_rot,const float3* d_trans,unsignedint numTransforms, float4x4* d_transforms, float4x4* d_transformInvs);
1615

1716
extern"C"voidcollectHighResiduals(SolverInput& input, SolverState& state, SolverStateAnalysis& analysis, SolverParameters& parameters, CUDATimer* timer);

‎FriedLiver/Source/Solver/SolverBundling.cu‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -332,8 +332,7 @@ __global__ void BuildDenseSystem_Kernel(SolverInput input, SolverState state, So
332332
}// valid image pixel
333333
}
334334

335-
extern"C"
336-
voidBuildDenseSystem(const SolverInput& input, SolverState& state, SolverParameters& parameters, CUDATimer* timer)
335+
boolBuildDenseSystem(const SolverInput& input, SolverState& state, SolverParameters& parameters, CUDATimer* timer)
337336
{
338337
constunsignedint N = input.numberOfImages;
339338
constint sizeJtr =6 * N;
@@ -373,7 +372,7 @@ void BuildDenseSystem(const SolverInput& input, SolverState& state, SolverParame
373372
cutilSafeCall(cudaMemcpy(&numOverlapImagePairs, state.d_numDenseOverlappingImages,sizeof(int), cudaMemcpyDeviceToHost));
374373
if (numOverlapImagePairs ==0) {
375374
printf("warning: no overlapping images for dense solve\n");
376-
return;
375+
returnfalse;
377376
}
378377
constint reductionGlobal = (input.denseDepthWidth*input.denseDepthHeight + THREADS_PER_BLOCK_DENSE_DEPTH -1) / THREADS_PER_BLOCK_DENSE_DEPTH;
379378
dim3grid(numOverlapImagePairs, reductionGlobal);
@@ -442,6 +441,7 @@ void BuildDenseSystem(const SolverInput& input, SolverState& state, SolverParame
442441
cutilCheckMsg(__FUNCTION__);
443442
#endif
444443
if (timer) timer->endEvent();
444+
returntrue;
445445
}
446446

447447
//todo more efficient?? (there are multiple per image-image...)
@@ -1136,7 +1136,7 @@ extern "C" void solveBundlingStub(SolverInput& input, SolverState& state, Solver
11361136
#ifdef USE_LIE_SPACE
11371137
convertLiePosesToMatricesCU(state.d_xRot, state.d_xTrans, input.numberOfImages, state.d_xTransforms, state.d_xTransformInverses);
11381138
#endif
1139-
if (parameters.useDense)BuildDenseSystem(input, state, parameters, timer);
1139+
if (parameters.useDense)parameters.useDense =BuildDenseSystem(input, state, parameters, timer);//don't solve dense if no overlapping frames found
11401140
Initialization(input, state, parameters, timer);
11411141

11421142
if (parameters.weightSparse >0.0f) {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp