1 / 47

Metric Preserving Dense SIFT Compression

Metric Preserving Dense SIFT Compression. Shmuel Tomi Klein Dana Shapira Bar Ilan University Ashkelon Academic College PSC 2014. S cale I nvariant F eature T ransform. S cale I nvariant F eature T ransform. G radient L ocation and O rientation H istogram.

alexis
Download Presentation

Metric Preserving Dense SIFT Compression

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Metric Preserving Dense SIFT Compression Shmuel Tomi Klein Dana Shapira Bar Ilan University Ashkelon Academic College PSC 2014

  2. Scale Invariant Feature Transform

  3. Scale Invariant Feature Transform Gradient Location andOrientation Histogram Speed Up Robust Features • DenseScale Invariant Feature Transform • Pyramid Histogram Of visual Words

  4. Compressed Feature Based Matching

  5. Compressed Feature Based Matching

  6. Compressed Feature Based Matching Problem Given: A set of feature descriptors A metric Find: A metric and an encoding E so that for every  > 0 there exists  > 0  1  i,j  n E E

  7. Compressed Pattern Matching Input: text T and pattern P complementary encoding and decoding functions, E and Drespectively Usual Approach: search for P in the decompressed text D(E(T )) Goal: search for E(P ) in E(T )

  8. Motivation • Reducing time • Reducing storage The file is stored remotely in its compressed form • Reducing I/O operations

  9. Fibonacci Numbers 0 11 2 3 5 8 13 21 34 55 89 144 … Basis elements of a numeration system

  10. 128 64 32 16 8 4 2 1 0 0 1 0 1 1 0 1 45 = 55 34 21 13 8 5 3 2 1 0 1 0 0 1 0 1 0 0 45 = Binary representations of integers Basis elements: Fibonacci: Noadjacent1’s

  11. Fibonacci Code • Example: 19 = 101001 • Problem: Not instantaneous 1 1 0 1 1 1 1 1 1 1 1 1 0 • Solution: Reverse the codeword • Example: 19 = 1 1101001 1001011

  12. Fibonacci Code • {11, 011, 0011, 1011, 00011, 10011, 01011, 000011, 100011, 010011, 001011, 101011, 0000011, …} • Disadvantage: not order preserving: 17 = 1010011 19 = 1001011 • L2 Norm (x-y)2 =(y-x)2 2=83 2=75

  13. Value Distribution in the feature vectors of Lenna • 253,009 and 237,183 feature vectors

  14. Using a Fibonacci Code for DSIFT and PHOW • No sorting of probabilities ! • The pair 00 is assigned the codeword 11 • The integer k is assigned the Fibonacci codeword of integer k+2 for k0 • Example: • 0,0,0,0,0,0,0,0,10,3,6,4,0,0,2,4,10, 83,69,0,… • 11 11 11 11 101011 00011 000011 10011 11 1011 10011 101011 1000101011 010010011 011…

  15. Compressed Pairwise Matching Sub(130,65) A=132=10001001011 B= 67=1010100011 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  16. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=101010001 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; } 1 1

  17. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  18. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  19. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  20. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  21. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  22. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  23. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  24. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  25. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  26. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  27. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  28. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  29. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  30. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  31. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  32. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  33. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  34. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  35. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  36. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  37. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  38. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  39. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  40. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  41. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  42. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; }

  43. Compressed Pairwise Matching Sub(130,65) A=132=1000100101 B= 67=1010100010 Sub(A,B){ scan the bits of A and B from right to left a1 first bit of A; a2 second bit of A; while next bit of A exists{ a3 next bit of A; b1 next bit of B; a1 a1 - b1; a2 a1 + a2; a3 a1 + a3; a1 a2; a2 a3 } b value of last 2 bits of B; if b  0 then b 2-b; return 2a1 + a2 –b; } 225+16-1

  44. Compressed differencing of the coordinates L2Norm(V1, V2){ SSQ 0 while V1 and V2 are not empty{ remove first codeword from V1 and assign it to A remove first codeword from V2 and assign it to B if A  B then if A = 11 then S Sub(B, 011); V1 011 || V1; else if B = 11 then S Sub(A, 011); V2 011 || V2; else S Sub(A, B); SSQSSQ + S2 } Return }

  45. Compression Performance http://sipi.usc.edu/database/

  46. Compression Performance DSIFT PHOW

  47. Thank you !

More Related