RobertLeahy / KinFu

GNU Lesser General Public License v3.0
6 stars 3 forks source link

OpenCL kernel for pyramidal depth map #82

Open jordan-heemskerk opened 8 years ago

jordan-heemskerk commented 8 years ago

Given a depth map, follow the paper's recommendation to generate 3 different levels of resolution. Sounds like they first average and then subsample at half the resolution at each level if decimation.

RobertLeahy commented 8 years ago

This will require a change in the interface of dynfu::pose_estimation_pipeline_block and dynfu::measurement_pipeline_block.

@jordan-heemskerk and I have discussed it and we're going to proceed without the multi-level/subsampled ICP for now until we have a functioning end-to-end pipeline which may be too slow but which "works". We'll then go back and perform this refactor as an optimization.

Aim for sprint 3.

jordan-heemskerk commented 8 years ago

We won't scope this in for this stage of the project. Move to long term.

RobertLeahy commented 8 years ago

Currently we're looking at about ~20 ms per frame for 15 iterations at full resolution (see #179).

In the paper they do 4 iterations 2x subsampled, 5 iterations 1x subsampled, and 10 iterations at full resolution.

A bit of math reveals that it takes us ~1.33 ms per iteratior per frame at full resolution (640x480).

This means we get the following performance figures, assuming subsampling takes no time (it'll obviously take some time so this has to be factored in):

4 @ 2x subsampled 5 @ 1x subsampled 10 @ full resolution Total
0.67 ms 1.66 ms 13.3 ms 15.6 ms

Given this we don't think this issue is worth pursuing at this point: We still need to make pose estimation faster.