import matplotlib matplotlib.use("Agg") # agg-backend, so we can create figures without x-server (no PDF, just PNG etc.) from SparseEdges import SparseEdges FORMATS = ['pdf', 'eps'] # TODO: here, we are more interested in the processing of the database, not the comparison - use the correct function # TODO : annotate the efficiency of different LogGabor bases (RMSE?) # TODO: make a circular mask to avoid border effects coming with whitening... #! comparing databases #!-------------------- mp = SparseEdges('https://raw.githubusercontent.com/bicv/SparseEdges/master/default_param.py') mp.N = 128 mp.pe.datapath = '../../SLIP/database/' mp.process('testing_vanilla') # TODO: CRF mp.process('testing_noise', noise=mp.pe.noise) mp.process('testing_vanilla', name_database='serre07_targets') # TODO : make an experiment showing that using scale does not bring much mps, experiments = [], [] v_alpha = np.linspace(0.3, 1., 9) for MP_alpha in v_alpha: mp = SparseEdges('https://raw.githubusercontent.com/bicv/SparseEdges/master/default_param.py') mp.N = 128 mp.pe.datapath = '../../SLIP/database/' mp.pe.MP_alpha = MP_alpha mp.init() exp = 'testing_MP_alpha_' + str(MP_alpha).replace('.', '_') mp.process(exp)
import matplotlib.pyplot as plt fig_width_pt = 800 #318.67085 # Get this from LaTeX using \showthe\columnwidth inches_per_pt = 1.0/72.27 # Convert pt to inches fig_width = fig_width_pt*inches_per_pt # width in inches # ==================================================================================================# fig, [[A, B], [C, D]] = plt.subplots(2, 2, figsize=(fig_width, fig_width), subplot_kw={'axisbg':'w'}) # ==================================================================================================# mps, experiments = [], [] v_B_sf = np.logspace(-.2, .2, 5, base=10, endpoint=True)*mp.pe.B_sf for B_sf in v_B_sf: mp = init_mp() mp.pe.B_sf = B_sf exp = 'efficiency_B_sf_' + str(B_sf).replace('.', '_') mp.process(exp) experiments.append(exp) mps.append(mp) databases = ['serre07_distractors'] * len(experiments) labels = ['%0.2f' % B_sf for B_sf in v_B_sf] try: fig, A, inset = mp.plot(mps=mps, experiments=experiments, databases=databases, labels=labels, ref=2, fig=fig, ax=A, color=[0., 1., 0.], threshold=threshold, scale=False) A.set_xlabel(r'frequency bandwith $B_{sf}$') #A.set_yticks([0., 0.02, 0.04, 0.06]) except Exception as e: print('Failed to plot with error : %s ' % e ) # ==================================================================================================#
rm -fr **/prior_firstorder* **/**/prior_firstorder* """ import numpy as np from SparseEdges import SparseEdges for name_database in ['serre07_distractors']:#, 'serre07_distractors_urban', 'laboratory']: mp = SparseEdges('https://raw.githubusercontent.com/bicv/SparseEdges/master/default_param.py') mp.pe.datapath = '../../SLIP/database/' mp.pe.seed = 21341353 # this ensures that all image lists are the same for the different experiments mp.pe.N_image = 20 mp.pe.N = 1024 # control experiment #mp.theta = np.linspace(-np.pi/2, np.pi/2, mp.n_theta+1)[1:] imageslist, edgeslist, RMSE = mp.process(exp='prior_vanilla', name_database=name_database) imageslist_noise, edgeslist_noise, RMSE_noise = mp.process(exp='prior_vanilla_noise_' + str(mp.pe.noise).replace('.', '_'), name_database=name_database, noise=mp.pe.noise) if True:#try: six, N, N_image = edgeslist.shape # first-order prior v_hist, v_theta_edges = mp.histedges_theta(edgeslist, display=False) v_theta_middles, v_theta_bin = (v_theta_edges[1:]+v_theta_edges[:-1])/2, v_theta_edges[1]-v_theta_edges[0] v_hist, v_theta_edges = mp.histedges_theta(edgeslist, display=False) v_theta_middles, v_theta_bin = (v_theta_edges[1:]+v_theta_edges[:-1])/2, v_theta_edges[1]-v_theta_edges[0] z = np.linspace(0, 1., mp.pe.n_theta+1) P = np.cumsum(np.hstack((0, v_hist[-1]/2, v_hist[:-1], v_hist[-1]/2))) theta_prior = np.interp(z, P, np.hstack((v_theta_edges[0]-v_theta_bin/2, v_theta_edges[:-1], v_theta_edges[-1]-v_theta_bin/2)))
FORMATS = ['pdf', 'eps'] mps = [] sizes = [16, 32, 64, 128, 256] N_image = 32 N = 1024 for size, size_str in zip(sizes, ['_016', '_032', '_064', '_128', '']): mp = SparseEdges('https://raw.githubusercontent.com/bicv/SparseEdges/master/default_param.py') mp.pe.seed = 42 mp.pe.datapath = '../../SLIP/database/' mp.set_size((size, size)) downscale_factor = sizes[-1]/size # > 1 mp.pe.N_image = int(N_image*downscale_factor) mp.pe.N = int(N/downscale_factor**2) mp.init() mp.process('SparseLets' + size_str) mps.append(mp) import matplotlib.pyplot as plt fig_width_pt = 600 # Get this from LaTeX using \showthe\columnwidth inches_per_pt = 1.0/72.27 # Convert pt to inches fig_width = fig_width_pt*inches_per_pt # width in inches fig = plt.figure(figsize=(fig_width, fig_width/1.618)) sizes = [16, 32, 64, 128, 256] experiments = ['SparseLets_' + '%0.3d' % size for size in sizes] experiments[-1] = 'SparseLets' databases = ['serre07_distractors'] * len(experiments) labels = [str(size) for size in sizes] fig, ax, inset = mp.plot(fig=fig, mps=mps, experiments=experiments, databases=databases, labels=labels, scale=True)
""" $ python experiment_retina_sparseness.py rm -fr **/retina_sparseness* **/**/retina_sparseness* """ import numpy as np from SparseEdges import SparseEdges mps = [] for name_database in ["serre07_distractors"]: # , 'serre07_distractors_urban', 'laboratory']: mp = SparseEdges("https://raw.githubusercontent.com/bicv/SparseEdges/master/default_param.py") mp.pe.datapath = "../../SLIP/database/" mp.pe.N_image = 100 mp.pe.do_mask = True mp.pe.N = 2 ** 12 mp.pe.n_theta = 1 mp.pe.B_theta = np.inf mp.pe.line_width = 0 mp.init() # normal experiment imageslist, edgeslist, RMSE = mp.process(exp="retina_sparseness", name_database=name_database) mps.append(mp) # control experiment if True: mp.pe.MP_alpha = np.inf mp.init() imageslist, edgeslist, RMSE = mp.process(exp="retina_sparseness_linear", name_database=name_database) mps.append(mp)