An example MP run. To run: $ python experiment_example.py To remove cache: $ rm -fr **/example* """ __author__ = "(c) Laurent Perrinet INT - CNRS" import numpy as np from SparseEdges import SparseEdges mp = SparseEdges("https://raw.githubusercontent.com/bicv/SparseEdges/master/default_param.py") mp.N = 128 image = mp.imread("https://raw.githubusercontent.com/bicv/SparseEdges/master/database/lena256.png") name = "example" image = mp.normalize(image, center=True) # print image.mean(), image.std() import os matname = os.path.join(mp.pe.matpath, name + ".npy") try: edges = np.load(matname) except: edges, C_res = mp.run_mp(image, verbose=True)
from __future__ import division, print_function """ $ ipython experiment_fig-efficiency.py rm -fr **/efficiency_* **/**/efficiency_* """ import numpy as np from SparseEdges import SparseEdges FORMATS = ['pdf', 'eps'] threshold = None # classical plots threshold = .3 # plot L0 sparseness obtained when reaching this threshold mp = SparseEdges('https://raw.githubusercontent.com/bicv/SparseEdges/master/default_param.py') def init_mp(): mp = SparseEdges('https://raw.githubusercontent.com/bicv/SparseEdges/master/default_param.py') mp.pe.seed = 42 mp.pe.N_image = 60 mp.pe.datapath = '../../SLIP/database/' return mp FORMATS = ['pdf', 'eps'] #FORMATS = ['png'] import matplotlib matplotlib.use('Agg') #matplotlib.rcParams.update({'font.size': 18, 'font.family': 'STIXGeneral', 'mathtext.fontset': 'stix'}) matplotlib.rcParams.update({'text.usetex': False})
""" __author__ = "(c) Laurent Perrinet INT - CNRS" import numpy as np 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
$ python experiment_fig-sparselets.py ./figures $ rm -fr **/SparseLets* **/**/SparseLets* """ __author__ = "(c) Laurent Perrinet INT - CNRS" from SparseEdges import SparseEdges 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))
from __future__ import division, print_function """ $ python experiment_fig-firstorder.py rm -fr **/prior_* **/**/prior_* rm -fr **/prior_vanilla* **/**/prior_vanilla* rm -fr **/prior_vanilla_noise_* **/**/prior_vanilla_noise_* 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)
import numpy as np from SparseEdges import SparseEdges mp = SparseEdges('https://raw.githubusercontent.com/bicv/SparseEdges/master/default_param.py') mp.N = 128 image = mp.imread('https://raw.githubusercontent.com/bicv/SLIP/master/database/serre07_targets/B_N107001.jpg') mp.pe.figsize_edges = 9 image = mp.normalize(image, center=True) #! trying now using no whitening of the image mp.pe.do_whitening = False import os matname = os.path.join(mp.pe.matpath, 'experiment_test_nowhitening.npy') matname_RMSE = os.path.join(mp.pe.matpath, 'experiment_test_nowhitening_RMSE.npy') try: edges = np.load(matname) except: edges, C_res = mp.run_mp(image, verbose=True) np.save(matname, edges) fig, a = mp.show_edges(edges, image=image, mask=True)
import numpy as np from SparseEdges import SparseEdges mp = SparseEdges('https://raw.githubusercontent.com/bicv/SparseEdges/master/default_param.py') mp.N = 128 # number of edges mp.pe.figsize_edges = 9 #! defining a reference test image (see test_Image) image = np.zeros((mp.pe.N_X, mp.pe.N_Y)) image[mp.pe.N_X/2:mp.pe.N_X/2+mp.pe.N_X/4, mp.pe.N_X/2:mp.pe.N_X/2+mp.pe.N_X/4] = 1 image[mp.pe.N_X/2:mp.pe.N_X/2+mp.pe.N_X/4, mp.pe.N_X/4:mp.pe.N_X/2] = -1 import os matname = os.path.join(mp.pe.matpath, 'experiment_test_MP.npy') try: edges = np.load(matname) except: edges, C_res = mp.run_mp(image, verbose=False) np.save(matname, edges) fig, a = mp.show_edges(edges, image=mp.whitening(image))
# -*- coding: utf8 -*- from __future__ import division, print_function """ $ 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()