Giter VIP home page Giter VIP logo

ssl_opt's Introduction

Semi Supervised Learning optimized

This matlab code provides a computational optimized version of the original version developed and distributed Fergus 2009. Fregus 2009 provides a matlab code to approximate the laplacian eigenvector. He calculated the Laplace beltrami operator eigenfunction then interpolate it to compute laplacian eigenvector. This matlab code provides an optimized procedure for calculating the approximated Laplacian eigenvectors. The figure below show the time analysis for computing the Laplacian smoothness using three different procedure.

  • Using exact Laplacian eigenvectors (EigVector)
  • Using Laplace Beltrami operator eigen functions (Eigfunctions - Fergus)
  • Using Optimized approach for Laplace Beltrami operator eigen functions (Eigfunctions - Taha)

"Alt txt"

##Motivation

We cast the interactive image segmentation problem as a semi-supervised learning problem. we used Fergus 2009 matlab code to test the validity of our idea. Although the results was promising, the time needed to calculate laplacian smoothness for a small image was too big. So we optimized the matlab code to become adaquate for interactive image segmentation problem.

##Setup

  1. Download
  2. Run the demo.m file. In the output log you will be able to see the time consumed by each calculation procedure

For help, please contact ahmed.taha [@] alexu dot edu dot eg

##Contributor list

  1. Ahmed Taha
  2. Marwan Torki

##Contribution guidelines Our procedure improved the running time needed when increasing the number of points (labeled and unlabeled data). Yet, more enhancements are required to cope with increasing the number of features per point. Another bottleneck for the current procedure is increasing the number of eigenvectors for computing the laplacian smoothness. We ran multiple time analysis experiments, we summarize our finding in the following list.

  • eigenfunctions.m -- suu2 = sqrt(sum(uu2.^2)); uu2 = uu2 ./ (ones(nPoints,1) * suu2); These lines slows down the procedure when increasing the number of features -- uu2(:,a)=interp1(bins_out(:,a),uu(:,a),DATA(:,jj(a)), 'linear','extrap'); This line slows the procedure when increasing the number of eigenvectors.

Any contribution to any of these issues are welcomed.

Citation

@inproceedings{taha2015seeded, title={Seeded Laplacian: An interactive image segmentation approach using eigenfunctions}, author={Taha, Ahmed and Torki, Marwan}, booktitle={Image Processing (ICIP), 2015 IEEE International Conference on}, year={2015}, organization={IEEE} } ##License Copyright (c) 2015, Ahmed Taha ([email protected]) All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Re distributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Re distributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

ssl_opt's People

Contributors

ahmdtaha avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.