Ejemplo n.º 1
0
def test_lasso_regression():
	datafile_viper = '../data_viper/viper.pkl'
	viper = loadfile(datafile_viper)

	from sklearn.linear_model import Lasso

	model = Lasso(alpha=1e-3)
	model.fit(viper.train_feat, viper.train_y)

	y_pred = model.predict(viper.test_feat)
	print 'testing error {}'.format(abs_error(y_pred, viper.test_y)) 
Ejemplo n.º 2
0
def test_SVR():
	datafile_viper = '../data_viper/viper.pkl'
	viper = loadfile(datafile_viper)

	from sklearn.svm import SVR
	model = SVR(C=10, kernel='rbf', shrinking=False, verbose=True)

	model.fit(viper.train_feat, viper.train_y)

	y_pred = model.predict(viper.test_feat)
	print 'testing error {}'.format(abs_error(y_pred, viper.test_y)) 
Ejemplo n.º 3
0
def test_linear_regression():
	datafile_viper = '../data_viper/viper.pkl'
	viper = loadfile(datafile_viper)

	from sklearn.linear_model import LinearRegression

	model = LinearRegression(normalize=True)
	model.fit(viper.train_feat, viper.train_y)

	y_pred = model.predict(viper.test_feat)
	print 'testing error {}'.format(abs_error(y_pred, viper.test_y)) 
Ejemplo n.º 4
0
def test_knn_regression():

	datafile_viper = '../data_viper/viper.pkl'
	viper = loadfile(datafile_viper)

	from sklearn.neighbors import KNeighborsRegressor
	model = KNeighborsRegressor(n_neighbors=5, weights='uniform', metric='euclidean')
	model.fit(viper.train_feat, viper.train_y)

	n_test = len(viper.test_feat)
	y_pred = np.zeros(n_test)
	for i, feat in zip(np.arange(n_test), viper.test_feat):
		dist, ind = model.kneighbors(feat)
		y_pred[i] = (viper.train_y[ind]*np.exp(-dist**2)).sum()/(np.exp(-dist**2)).sum()
	
	# y_pred = model.predict(viper.test_feat)
	print 'testing error {}'.format(abs_error(y_pred, viper.test_y)) 
Ejemplo n.º 5
0
def main():
	''' pipeline for evaluating salience '''
	# three types: 
	# 1) unsupervised, knnsal
	# 2) groundtruth, gtsal 
	# 3) prediction, predsal

	## load cnn salience with groundtruth
	supsal_path = '../data_viper/model_feat/salmaps_comparison.pkl'
	test_imids, salmap_gt, salmap_pred = loadfile(supsal_path)

	mapsz = salmap_gt[0].shape

	## load knn salience 
	knnsal_path = '../data_viper/salience_all.mat'
	tmp = loadfile(knnsal_path)
	knn_gal = tmp['salience_all_gal'] # view a
	knn_prb = tmp['salience_all_gal'] # view b

	labeled_imidx_path = '../data_viper/labeled_imidx.mat'
	tmp = loadfile(labeled_imidx_path)
	labeled_imidx = tmp['labeled_imidx'].flatten()
	salmap_knn_small = knn_gal[:, :, labeled_imidx].transpose((2, 0, 1))
	salmap_knn_all = [mapresize(im, size=mapsz) for im in salmap_knn_small]

	# get rid of background for better illustration 
	datafile_viper = '../data_viper/viper.pkl'
	viper = loadfile(datafile_viper)
	salmap_knn = []
	for seg, msk in zip(viper.segmsks, salmap_knn_all): 
		idx = seg == 0
		msk[idx] = 0
		salmap_knn.append(msk)
	salmap_knn = np.asarray(salmap_knn)

	# qualitative evaluation
	save_path = '../data_viper/model_feat/'
	for i in test_imids:
		pl.figure(1)
		pl.subplot(1, 4, 1) # show image
		pl.imshow(viper.imgs[i])
		pl.title('image')
		pl.subplot(1, 4, 2) # show groundtruth salience
		pl.imshow(salmap_gt[i]*255., cmap='hot', vmin=0, vmax=255)
		pl.title('groundtruth')
		pl.subplot(1, 4, 3) # show knn salience
		pl.imshow(salmap_knn[i]*255., cmap='hot', vmin=0, vmax=255)
		pl.title('KNN salience')
		pl.xlabel('abserr={0:.2f}'.format(abs_error(salmap_knn[i].flatten(), salmap_gt[i].flatten())))
		pl.subplot(1, 4, 4) # show CNN prediction salience
		pl.imshow(salmap_pred[i]*255., cmap='hot', vmin=0, vmax=255)
		pl.title('CNN salience')
		pl.xlabel('abserr={0:.2f}'.format(abs_error(salmap_pred[i].flatten(), salmap_gt[i].flatten())))
		pl.savefig(save_path + '{0:03d}.jpg'.format(i))
		print save_path +'{0:03d}.jpg'.format(i) + ' saved!'

	# quantitative evaluation
	test_idx = np.unique(test_imids)
	print 'mean abs error - KNN vs Gt: {0:.2f}'.format(abs_error(salmap_knn[test_idx], salmap_gt[test_idx]))
	print 'mean abs error - CNN vs Gt: {0:.2f}'.format(abs_error(salmap_pred[test_idx], salmap_gt[test_idx]))

	# pl.figure(2)	
	# test_idx = np.unique(test_imids)
	# recall_knn, precision_knn = get_roc_curve(salmap_gt[test_idx], salmap_knn[test_idx])
	# pl.plot(recall_knn, precision_knn, 'b', linewidth=2, label='knn vs. gt')
	# recall_cnn, precision_cnn = get_roc_curve(salmap_gt[test_idx], salmap_pred[test_idx])
	# pl.plot(recall_cnn, precision_cnn, 'r', linewidth=2, label='cnn vs. gt')
	# pl.xlabel('recall')
	# pl.ylabel('precision')
	# pl.legend()
	# pl.savefig(save_path+'roc.jpg')
	# print 'ROC curve saved!'

	os.system('xdg-open '+save_path)