CSCI  4830/5722 Assignment  3 solution


Original Work


5/5 - (2 votes)

Stereo  and  Segmentation     For  Assignment  2,  you  will  implement  a  few  functions  in  a  stereo  pipeline  example   provided  by     Provided  files:   In  your  Matlab  Command  Window,  type   edit DepthEstimationFromStereoVideoExample   What  You  Have  to  Do:       Task  1  (30  points):  Calculate  disparity  using  the  SSD  algorithm   Implement  the  SSD  matching  algorithm  for  a  range  of  window  sizes,  and  create  a   disparity  image  D(x,  y)  such  that  Left(x,  y)  =  Right(x  +  D(x,  y),  y)  when  matching   from  left  to  right.  Remember  to  reduce  the  search  only  over  epipolar  lines.  You   should  also  restrict  the  search  using  the  disparity  range  (see  line  56  in  the  original   script).     Write  a  function  to  replace  the  disparity  built-­‐in  function  on  line  54.  Your  function   needs  to  accept  as  an  input  value  the  size  of  the  window  search.  Call  your  function   three  times  for  the  following  window  sizes:  1,  3,  5.       Create  a  2×2  subplot  and  display  the  disparity  map  results  from  these  three  function   calls,  plus  the  one  obtained  using  Matlab’s  built-­‐in  disparity  function.     Note:  when  using  a  window  size  bigger  than  1,  it  is  common  practice  to  use  a   Gaussian  weighting  of  the  window,  so  that  the  center  has  greater  influence  than  the   periphery.  Convolve  your  window  matrices  with  a  Gaussian  filter  prior  to   computing  the  sum  of  squared  differences.       Task  2  (30  points):  Calculate  disparity  using  the  NCC  algorithm   Implement  the  normalized  cross  correlation  (NCC)  matching  algorithm  for  a  range   of  window  sizes,  and  create  a  disparity  image  D(x,  y)  such  that  Left(x,  y)  =  Right(x  +   D(x,  y),  y)  when  matching  from  left  to  right.  Similarly,  remember  to  reduce  the   search  only  over  epipolar  lines  and  to  restrict  the  search  using  the  disparity  range   (see  line  56  in  the  original  script).     Information  on  how  to  compute  NCC  for  image-­‐processing  applications  here:­‐correlation#Normalized_cross-­‐correlation   The  inner  product  of  vectors  approach  mentioned  on  Wikipedia,  also  here,  slide  66:   http://www.gris.tu-­‐­‐stereo-­‐v1_0.pdf  
Write  a  function  to  replace  the  disparity  built-­‐in  function  on  line  54.  Your  function   needs  to  accept  as  an  input  value  the  size  of  the  window  search.  Call  your  function   three  times  for  the  following  window  sizes:  3,  5  and  7.       Create  a  2  x  2  subplot  and  display  the  disparity  map  results  from  these  three   function  calls,  plus  the  one  obtained  using  Matlab’s  built-­‐in  disparity  function.     Task  3  (30  points):  Generate  outliers  map  -­‐  Refine  the  disparity  by  performing  a   left-­‐right  consistency  check.     The  disparity  map  dLR(x)  is  acquired  considering  as  reference  image  the  left  image   of  the  stereo  pair.  If  the  right  image  is  considered  as  reference,  then  the  disparity   map  dRL(x)  is  acquired.  The  disparity  maps  dLR(x)  and  dRL(x)  can  be  useful  in   detecting  problematic  areas,  especially  outliers  in  occluded  regions  and  depth   discontinuities.  One  strategy  for  detecting  outliers  is  the  Left–Right  consistency   check  introduced  by  1.  In  this  strategy,  the  outliers  are  disparity  values  that  are  not   consistent  between  the  two  maps  and  therefore,  they  do  not  satisfy  the  relation:     |  dLR(x)  −dRL(x−dLR(x))  |  ≤  TLR,  where  TLR  is  a  user-­‐defined  threshold.       Write  a  function  that  accepts  as  inputs  two  disparity  maps  (LR  and  RL)  and  a  value   for  TLR  and  returns  a  binary  image  where  the  outliers  have  the  value  1  and  the   inliers  have  the  value  0.       Call  this  function  twice,  passing  as  inputs  the  LR  and  RL  disparity  maps  from  SSD   and  NCC  matching  with  window  size  of  3.  Use  a  TLR  value  of  1.  With  this  value,  pixels   with  difference  equal  to  1  in  the  Left–Right  consistency  check  are  not  considered   outliers.  Plot  the  two  resulting  binary  images  side  by  side.     Task  4  (10  points):  Compute  depth  from  disparity   Now that we have a disparity image, computing depth at every pixel in the left image should be very straightforward. Use equation 11.1 from the Szeliski textbook.   Write  a  function  to  replace  the  reconstructScene  built-­‐in  function  on  line  64.  Your   function  should  have  the  same  input  arguments  as  the  built-­‐in  version  and  it  should   return  a  matrix  of  depth  values  for  each  pixel  location  from  the  left  image.       Submitting  the  assignment:   Make  sure  each  script  or  function  file  is  well  commented  and  it  includes  a  block   comment  with  your  name,  course  number,  assignment  number