Date post: | 21-Dec-2015 |
Category: |
Documents |
View: | 215 times |
Download: | 0 times |
Hierarchical Organization of Shapes for Efficient RetrievalVictoria ChoiEN161 Project Final PresentationDecember 17, 2004
Project Goal
Organize shapes in a data structure for efficient search Cluster shapes in
minimum variance clusters randomly
Build tree structure from calculating mean shape of each cluster
Algorithm: Clustering
Variance (average distance-squared within a cluster)
Moving Shapes
Swapping Shapes
Algorithm: Tree Generation
Generate nodes for level above by calculating a unique mean shape
Cluster nodes with a predefined number of clusters
Repeat until there is only one cluster on the level and calculate the mean shape as the head node
More on Clustering
Number of clusters is crucial to performance/speed More clusters if clusters are not clearly
defined by distances Cooling Schedule
Not important for original implementation (calculating probabilities for all possible choices and choosing the maximum)
Crucial for latter implementation (generate random probability and execute action if probability calculated is greater)
Both implementations give comparable results
For 10 clusters…
bat09, bird01, bird02, bird07, truck01, truck03, truck04, truck10 bird05, bird06, cattle04, cattle05 bird03, bird04, bird08, bird09, bird10, truck06 key01, key04, key07, key08, lmfish06, lmfish09, truck08, truck09,
watch01, watch02, watch03, watch04, watch05, watch06, watch07, watch08, watch09, watch10
rat01, rat02, rat03, rat04, rat05, rat06, rat07, rat08, rat09, rat10 key02, key03, key05, key06, key09, key10, pocket01, pocket02,
pocket03, pocket04, pocket05, pocket06, pocket07, pocket08, pocket10
bat01, bat02, bat03, bat04, bat05, bat06, bat07, bat08, bat10 apple01, apple02, apple03, apple04, apple05, apple06, apple07,
apple08, apple09, apple10, pocket09 cattle01, cattle02, cattle03, cattle06, cattle07, cattle08, cattle09,
cattle10 lmfish01, lmfish02, lmfish03, lmfish04, lmfish05, lmfish07, lmfish08,
lmfish10, truck02, truck05
For 18 clusters… key03, key05, key06, key09, key10, lmfish06, lmfish09, watch05, watch07 lmfish03, truck02, truck03, truck04, truck06, truck08 cattle01, cattle02, cattle03 bird07, bird08, bird09, bird10 cattle06, cattle07, cattle08, cattle09, cattle10 rat03, rat04, rat05, rat06, rat09 bird01, bird02 key01, key04, key07, key08, watch01, watch02, watch03, watch05,
watch06, watch08, watch09, watch10 key02, pocket01, pocket02, pocket03, pocket04, pocket05, pocket06,
pocket07, pocket08, pocket09, pocket10 rat01, rat02, rat07, rat08, rat10 apple05, apple08, apple09 apple01, apple02, apple03, apple04, apple06, apple07, apple10 bird03, bird04, bird05, bird06 cattle04, cattle05 bat01, bat02, bat03, bat06, bat06, bat07, bat09, bat10 lmfish01, lmfish02, lmfish05, lmfish07, lmfish08, lmfish10 bat04, bat05, bat08 lmfish04, truck01, truck05, truck07, truck09, truck10
For 20 clusters… apple03, apple04, apple05, apple10 key08, lmfish09, watch01, watch02, watch03, watch05, watch06, watch07,
watch08, watch09, watch10 bat01, bat06, bat07, bat09, bat10 bat02, bat03, bird09 rat01, rat02, rat08 cattle01, cattle02, cattle03 lmfish01, lmfish02, lmfish05, lmfish08, lmfish10 bird01, truck01, truck03 bat04, bat05, bat08 rat05, rat06, rat09 cattle04, cattle05 rat03, rat04, rat07, rat10 cattle06, cattle07, cattle08, cattle09, cattle10 truck02, truck04, truck05, truck06, truck07, truck08, truck09, truck10 lmfish03, lmfish04, lmfish06, lmfish07, watch04 key01, key02, key03, key04, key05, key06, key07, key09, key10 apple01, pocket01, pocket02, pocket03, pocket04, pocket05, pocket06,
pocket07, pocket08, pocket09, pocket10 apple02, apple06, apple07, apple08, apple09 bird02, bird07, bird08, bird10 bird03, bird04, bird05, bird06
Problem with Clustering key08, lmfish09, watch01, watch02, watch03, watch05, watch06,
watch07, watch08, watch09, watch10
Need more distinguished distances
from Key08 key10 watch01 Watch02
Key08 0 62.6943 54.8792 56.6153
key10 62.6943 0 71.9629 60.9151
watch01 54.8792 71.9629 0 30.7742
Watch02 56.6153 60.9151 30.7742 0
Geodesic Distances: 10 clusters…
B2, I3 D3, I1, I2, I4, I5 C2, C3, D1 A3, C1, F1, F2, F3 G1, G3, G4, G5, H1, H2, H3, H4, H5 C4, C5, D2 B1, D5 E2, E3, E4, E5, F4, F5 D4, G2 A1, A2, A4, A5, B3, B4, B5, E1
Geodesic Distances: 18 clusters…
D1, D4 E1, F4, F5 G2 E2, E3, E4 C1, C2 C3 I3 G5, H3, H4, H5 B2, D3 I1, I2, I4, I5 E5, F1, F2, F3 B1 C5 C4, D2 A2, A3, B4, B5 A1, A4, A5, B3 G1, G3, G4, H1, H2 D5
Even more problematic…
Results worse than with the other set of distancesDistances definition between sets
not distinct enoughLarge errors in geodesic distance
calculation
Tree Generation
No Karcher mean averaging function Large errors in geodesic distances would
make Karcher mean function error-prone To visualize the tree generation
algorithm, we use a 2-D plot Each point on the plot would represent a
shape with the distances from other points the distances from other shapes
Assumption: distance calculation and mean shape generation algorithms that works really well
Starting with 5 clusters
0
2
4
6
8
10
12
14
16
0 2 4 6 8 10 12 14 16 18
x
y
Building the tree…
0
2
4
6
8
10
12
14
16
0 2 4 6 8 10 12 14 16 18
x
y
Searching for a Node
0
2
4
6
8
10
12
14
16
0 2 4 6 8 10 12 14 16 18
x
y
With 10 clusters
0
2
4
6
8
10
12
14
16
0 2 4 6 8 10 12 14 16 18
x
y
Optimal Cluster Number The number of clusters at each
level is important.At each level, the more clusters, the
more accurate the algorithm will beBut this will also increase the
number of levels, thus sacrificing speed
Currently dividing the number of clusters by 2 to get the number for the above level
Improvements
Develop algorithms which provide a sound implementation of shape distance, mean shape calculations and shape matching
Calculate optimal cluster number for each level
Faster implementation (??)
Thank you for your time!
Questions?Comments?