D k n
α1
...
αk
μ1,1 ... μD,1
...
μ1,k ... μD,k
q1,1 ... qD,1 l1,1 ... l½D(D - 1),1
...
q1,k ... qD,k l1,k ... l½D(D - 1),k
x1,1 ... xD,1
...
x1,n ... xD,n
γ m
Definitions of all variables are given in the srajer-autodiff-screen.pdf, page 3.
Note that if replicate point mode is enabled the benchmark expects only a line containing x1,1 ... xD,1 and duplicates that point n
times.
..._F_...
file
Contains only the value of the function in the specified point...._J_...
file
v1 ... vn where vi are components of the objective gradient.
n m p
p1 ... p11
x1 x2 x3
w1
feat1 feat2
n,m,p are number of cams, points and observations. Definitions of all other variables are given in the srajer-autodiff-screen.pdf, page 4.
-
..._F_...
fileReprojection error:
reproj_err1
...
reproj_err2p
Zach weight error:
w_err1
...
w_errp -
..._J_...
fileThis file contains sparse Jacobian of nrows * ncols size in the CSR format where ncols=2p+p, nrows=11n+3*m+p. It suggests the use of three one-dimensional arrays (
rows
,cols
,vals
).vals
holds all the nonzero entries of the Jacobian in the left-to-right top-to-bottom order.rows
is of length nrows + 1. It is defined recursively as follows:
rows[0]
= 0
rows[i]
=rows[i-1]
+ the number of nonzero elements on the i-1 string of the Jacobiancols[i]
contains the column index in the Jacobian of each element ofvals
and that's why it has the same size
The resulting file looks as follows:
nrows ncols
rows_size
rows0 ... rowsrows_size-1
cols_size
cols0 ... colscols_size-1
vals0 ... valsrows_size-1
-
model/bones.txt Contains a list of lines where each line contains such parameters separated by ":" delimiter:
- bone_name
- bone_parent
- base_relative1 ... base_relative16
- base_absolute1 ... base_absolute16
-
model/vertices.txt Contains a list of lines where each line contains such parameters separated by ":" delimiter:
- v1 ... v3
- dummy1 ... dummy5
- n
- bone1:weightbone1,vert1: ... :bonen:weightbonen,vertn
-
model/triangles.txt Contains a list of lines:
- v1:v2:v3
-
input.txt
N n_theta
correspondence1 point1,1 point1,2 point1,3
...
correspondenceN pointN,1 pointN,2 pointN,3
u1,1 u1,2
...
un_pts,1 uN,2
θ1
...
θn_theta
Note that the benchmark expects "u" block only if complicated mode is enabled.
Definitions of all variables are given in the srajer-autodiff-screen.pdf, page 5.
-
..._F_...
file
v1 ... vn where vi are components of the objective vector. -
..._J_...
filej1,1 ... j1,ncols
...
jnrows,1 ... jnrows,ncolswhere ncols=(complicated ? 2 : 0) + n_theta, nrows=3*n_pts
l c b
main_param1 ... main_param2l·4b
extra_param1 ... extra_param3b
state1 ... state2l·b
seq1 ... seqc·b
..._F_...
file
Contains only the value of the function in the specified point...._J_...
file
v1 ... vn where vi are components of the objective gradient.