In [ ]:
%pylab inline
import ibeis
import vtool
import utool
import six
import numpy as np
import numpy.linalg as npl
import pandas as pd
np.set_printoptions(precision=2)
pd.set_option('display.max_rows', 10)
pd.set_option('display.max_columns', 10)
pd.set_option('isplay.notebook_repr_html', True)
ibeis.ensure_pz_mtest()
ibs = ibeis.opendb('PZ_MTEST')
In [ ]:
In [ ]:
taids = ibs.get_valid_aids()[0:20:2]
tvecs_list = ibs.get_annot_desc(taids)
tkpts_list = ibs.get_annot_kpts(taids)
orig_idx2_vec, orig_idx2_ax, orig_idx2_fx = vtool.nearest_neighbors.invert from vtool import clustering2 as clustertool
clustertool.rrr()
vecs_list = annots_df['vecs'][train_aids].as_matrix()
train_vecs = np.vstack(vecs_list)
print('Training %d word vocabulary with %d annots and %d descriptors' %
(nCentroids, len(train_aids), len(train_vecs)))
words = clustertool.precompute_akmeans(train_vecs, nCentroids, max_iters=100)
able_stack(tvecs_list, taids)
_kpts_col = pd.DataFrame(tkpts_list, index=taids, columns=['kpts'])
_vecs_col = pd.DataFrame(tvecs_list, index=taids, columns=['vecs'])
annots_df = pd.concat([_vecs_col, _kpts_col], axis=1)
In [ ]:
series = annots_df['vecs'][[1, 3, 5]]
series.to_frame()
In [ ]:
In [ ]:
from vtool import clustering2 as clustertool
clustertool.rrr()
vecs_col = annots_df['vecs']
idx2_vec = np.vstack(vecs_col.as_matrix())
nCentroids = 10
centroids = clustertool.akmeans(idx2_vec, nCentroids, max_iters=100)
fig = clustertool.plot_centroids(idx2_vec, centroids, num_pca_dims=2)
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
print(repr(type(annots_df['vecs'])))
#annots_df['vecs'].values
In [ ]:
np.vstack(annots_df['vecs'].values).shape
In [ ]:
In [ ]:
In [ ]:
#help(pd.DataFrame)
In [ ]:
#help(pd.concat)