Open
Description
EDIT, some of these code snippets are out of date.
Console
# save clique subgraphs during inference at critical steps
getSolverParams(fg).dbg = true
# record CSM steps for later analysis
tree, smt, hist = solveTree!(fg, recordcliqs=ls(fg))
# print to screen the CSM steps for clique with frontal :x2
printCliqHistorySummary(tree, :x2)
# where is everything saved???
getLogPath(fg)
clid = getCliq(tree, :x5).index
STEP = 8
fncAS = hist[clid][STEP][3]
dataAS = deepcopy(hist[clid][STEP][4])
fncAS(dataAS)
solveTree!
will always generate content atgetLogPath(fg)
location.- More or less will be stored there depending
getSolverParams(fg).dbg
. recordcliqs=[:x1;:x2;...]
will save the CSM history to RAM.
Animate CSM Video
Can also make concurrent video of CSM at work:
# new interface
csmAnimate(tree, hist, frames=1000)
run(`ffmpeg -r 10 -i /tmp/caesar/csmCompound/csm_%d.png -c:v libtheora -vf fps=25 -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -q 10 /tmp/caesar/csmCompound/out.ogv`)
@async run(`totem /tmp/caesar/csmCompound/out.ogv`)
Also see csmAnimate
's own documentation.
EDIT
new Caesar.writevideo
function directly engages with ffmpeg
which is easier:
Also see example of debug process in #754