Deep Learning Toolbox

data-analytics-feature-trial

Ein Matlab-Toolbox für Deep Learning.
Deep Learning ist eine neue Teilfeld des maschinellen Lernens, die auf das Lernen tiefe hierarchische Modelle von Daten konzentriert. Es wird durch das menschliche Gehirn offensichtlich tief (geschichtet, hierarchisch) Architektur inspiriert. Eine gute Übersicht über die Theorie der Deep Learning Theorie lernt Tief Architekturen für AI

Für eine informelle Einführung finden Sie in den folgenden Videos von Geoffrey Hinton und Andrew Ng.

Wenn Sie diese Toolbox bei Ihrer Recherche nutzen Sie bitte anführen:

Prognose als Kandidat für das Lernen tiefe hierarchische Modelle von Daten (Palm, 2012)

Verzeichnisse, die in der Toolbox
NN / – Eine Bibliothek für Störgrößenaufschaltung Backpropagation Neural Networks

CNN / – Eine Bibliothek für Faltungs Neuronale Netze

DBN / – Eine Bibliothek für Deep Belief Networks

SAE / – Eine Bibliothek für Stacked Auto-Encoder

CAE / – Eine Bibliothek für Faltungs Auto-Encoder

util / – Utility-Funktionen von den Bibliotheken

Daten / – von den Beispielen verwendeten Daten

Tests / – Unit-Tests Toolbox zu überprüfen arbeitet

Für Verweise auf jede Bibliothek Prüfung REFS.md

https://github.com/rasmusbergpalm/DeepLearnToolbox

mathworks.com/matlabcentral/fileexchange/38310-deep-learning-toolbox


Deep Learning Forschungsgruppen

Einige Labors und Forschungsgruppen, die aktiv arbeiten an tiefen Lernen sind:

University of Toronto – Machine LearningGruppe (Geoffrey Hinton, Rich – Zemel, Ruslan Salakhutdinov, Brendan Frey, Radford Neal)

Université de Montréal – MILA Lab (Yoshua Bengio, Pascal Vincent, Aaron Courville, Roland Memisevic)

New York University – Yann Lecun , Rob Fergus , David Sontag und Kyunghyun Cho

Stanford University – Andrew Ng , Christopher Manning ‘s, Fei-fei Li ‘ s Gruppe

University of Oxford – Tief Lerngruppe , Nando de Freitas und Phil Blunsom , Andrew Zisserman

Google Research – Jeff Dean, Geoffrey Hinton, Samy Bengio, Ilya Sutskever, Ian Goodfellow, Oriol Vinyals, Dumitru Erhan, Quoc Le et al

Google Deepmind – Alex Graves, Karol Gregor, Koray Kavukcuoglu, Andriy Mnih, Guillaume Desjardins, Xavier Glorot, Razvan Pascanu, Volodymyr Mnih et al

Facebook AI Forschung (FAIR) – Yann Lecun, Rob Fergus, Jason Weston, Antoine Bordes, Soumit Chintala, Leon Bouttou, Ronan Collobert, Yann Dauphin et al.

Twitter Deep Learning Group – Hugo Larochelle, Ryan Adams, Clement Farabet et al

Microsoft Research – Li Deng et al

SUPSI – IDSIA ( Jürgen Schmidhuber ‘s – Gruppe)

UC Berkeley – Bruno Olshausen ‘s – Gruppe, Trevor Darrell ‘ s – Gruppe, Pieter Abbeel

UCLA – Alan Yuille

University of Washington – Pedro Domingos ‘Gruppe

IDIAP Research Institute – Ronan Collobert ‘s Gruppe

University of California Merced – Miguel A. Carreira-Perpinan ‘s Gruppe

University of Helsinki – Aapo Hyvärinen ‘s AG Neuroinformatik

Université de Sherbrooke – Hugo Larochelle ‘s Gruppe

University of Guelph – Graham Taylor ‘s Gruppe

University of Michigan – Honglak Lee ‘s Gruppe

Technische Universität Berlin – Klaus-Robert Müller ‘s Gruppe

Baidu – Kai Yu ‘s und Andrew Ng Gruppe

Aalto – Universität – Juha Karhunen und Tapani Raiko Gruppe

U. Amsterdam – Max Welling ‘s Gruppe

CMU – Chris Dyer

U. California Irvine – Pierre Baldi ‘s Gruppe

Universität Gent – Benjamin Shrauwen ‘s Gruppe

University of Tennessee – Itamar Arel ‘s Gruppe

IBM Research – Brian Kingsbury et al

Universität Bonn – Sven Behnke Gruppe

Gatsby Einheit @ University College London – Maneesh Sahani, Peter Dayan

Computational Cognitive Neuroscience Lab @ University of Colorado Boulder

Deep Learning Software


  1. Theano – CPU / GPU symbolischen Ausdruck Compiler in Python (von MILA Labor an der Universität von Montreal)
  2. Torch – bietet eine Matlab-ähnliche Umgebung für state-of-the-art Algorithmen des maschinellen Lernens in lua (von Ronan Collobert, Clement Farabet und Koray Kavukcuoglu)
  3. Pylearn2 – Pylearn2 ist eine Bibliothek entwickelt , um maschinelles Lernen Forschung einfach zu machen.
  4. Blöcke – A Theano Rahmen für die Ausbildung neuronaler Netze
  5. Tensorflow – TensorFlow ™ ist eine Open – Source – Software – Bibliothek für die numerische Berechnung Datenflussgraphen verwenden.
  6. MxNet – MxNet ist ein tiefes Lernen Rahmen sowohl die für Effizienz und Flexibilität.
  7. Caffe -Caffe ist ein tiefes Lernen Rahmen gemacht mit Ausdruck, Geschwindigkeit und Modularität in mind.Caffe ist ein tiefes Lernen Rahmen gemacht mit Ausdruck, Geschwindigkeit und Modularität im Auge behalten.
  8. Lasagne – Lasagne ist eine leichte Bibliothek zu bauen und zu trainieren , neuronale Netze in Theano.
  9. Keras – Ein Theanos basierte tiefe Lernbibliothek.
  10. Deep Learning Tutorials – Beispiele dafür , wie Deep Learning mit Theano zu tun (von LISA Labor an der Universität von Montreal)
  11. DeepLearnToolbox – Ein Matlab – Toolbox für Deep Learning (von Rasmus Berg Palm)
  12. Cuda-Convnet – Eine schnelle C ++ / CUDA Umsetzung von Faltungs (oder allgemeiner, feed-forward) neuronalen Netzen. Es kann beliebige Schicht Netzwerk-Konnektivität und Tiefe modellieren. Jede gerichtete azyklische Graph von Schichten tun wird. Das Training wird getan, um die Back-Propagation-Algorithmus.
  13. Tief Belief Networks . Matlab-Code für Deep Belief Networks (von Ruslan Salakhutdinov) zu lernen.
  14. RNNLM – Tomas Mikolov der Recurrent Neural Network basierten Sprachmodelle Toolkit.
  15. RNNLIB -RNNLIB ist ein wiederkehrendes neuronales Netzwerk Bibliothek für die Sequenzlernprobleme. Gilt für die meisten Arten von Raum-Zeit-Daten, hat es sich besonders wirksame Anerkennung für Sprache und Handschrift unter Beweis gestellt.
  16. matrbm . Vereinfachte Version von Ruslan Salakhutdinov Code, von Andrej Karpathy (Matlab).
  17. deeplearning4j – Deeplearning4J ist ein Apache – 2.0-Lizenz, Open-Source, verteilte neuronale Netz Bibliothek geschrieben in Java und Scala.
  18. Estimating Partition Funktionen von RBM . Matlab-Code Partitionsfunktionen von Restricted Boltzmann-Maschinen für die Abschätzung unter Verwendung von Geglüht Importance Sampling (von Ruslan Salakhutdinov).
  19. Lernen Tiefboltzmann Machines Matlab – Code für die Ausbildung und die Feinabstimmung Tiefboltzmann – Maschinen (von Ruslan Salakhutdinov).
  20. Die LUSH Programmiersprache und Entwicklungsumgebung, die @ NYU für tiefe Faltungs Netzwerken verwendet wird
  21. Eblearn.lsh ist eine LUSH-basierte maschinelles Lernen Bibliothek zu tun Energie-Based Learning. Es enthält Code für “Predictive Sparse Zerlegung” und andere spärlich Auto-Encoder Methoden für den unbeaufsichtigten Lernen. Koray Kavukcuoglu bietet Eblearn Code für mehrere tiefe Lern Papiere auf dieser Seite .
  22. deepmat – Deepmat Basis Matlab tief Lernalgorithmen.
  23. MShadow – MShadow ist eine leichte CPU / GPU – Matrix / Tensor Template Library in C ++ / CUDA. Das Ziel der mshadow ist effizient, Gerät invariant und einfachen Tensor-Bibliothek für maschinelles Lernen zu unterstützen, die sowohl für die Einfachheit und Leistung abzielt.Unterstützt CPU / GPU / Multi-GPU und verteilten System.
  24. CXXNET – CXXNET ist schnell, prägnant, verteilt tief Lern Rahmen auf MShadow. Es ist ein leichtes und einfach erweiterbare C ++ / CUDA neuronales Netzwerk-Toolkit mit freundlichen Python / Matlab-Schnittstelle für Trainings und Vorhersage.
  25. Nengo -Nengo ist eine grafische und Scripting – basiertes Softwarepaket zur Simulation von großen neuronalen Systemen.
  26. Eblearn ist eine C ++ maschinelles Lernen Bibliothek mit einer BSD – Lizenz für Energie-basiertes Lernen, Faltungs Netzwerke, Vision / Erkennungsanwendungen usw. EBLearn wird in erster Linie durch die Aufrechterhaltung des Pierre Sermanet an der NYU.
  27. cudamat ist eine GPU-basierte Matrix – Bibliothek für Python. Beispielcode für die Ausbildung Neuronale Netze und Restricted Boltzmann-Maschinen ist im Preis inbegriffen.
  28. Gnumpy ist ein Python – Modul , das fast identisch mit numpy in einer Weise , Schnittstellen, sondern hat seine Berechnungen auf GPU Ihres Computers. Es läuft auf der cudamat.
  29. Die CUVBibliothek (Github Link ) ist ein C ++ Framework für Python für die einfache Nutzung von Nvidia CUDA – Funktionen auf Matrizen. Es enthält eine RBM Implementierung sowie geglüht Importance Sampling – Code und Code , um die Partitionsfunktion genau (von zu berechnen AISLabor an der Universität Bonn).
  30. 3-Wegeeinkalkuliert RBM und mcRBM ist Python – Code CUDAMat Aufruf Modelle von natürlichen Bildern zu trainieren (von Marc’Aurelio Ranzato ).
  31. Matlab – Code für die Ausbildung bedingte RBM / DBNS und einkalkuliert bedingte RBM (vonGraham Taylor ).
  32. MPOT ist Python – Code unter Verwendung von CUDAMat und gnumpy Modelle natürlicher Bilder zu trainieren (von Marc’Aurelio Ranzato ).
  33. neuralnetworks ist eine Java – basierte gpu – Bibliothek für tiefe Lernalgorithmen.
  34. ConvNet ist ein MATLAB – basierte Faltungs neuronales Netzwerk – Toolbox.
  35. Elektronn ist ein tiefes Lernen Toolkit , das leistungsstarke neuronale Netze zugänglich Wissenschaftler außerhalb der Maschine Lerngemeinschaft macht.
  36. Opennn ist ein Open – Source – Klassenbibliothek geschrieben in C ++ Programmiersprache , die neuronale Netze implementiert, die einen Hauptbereich der tiefen Lernforschung.
  37. NeuralDesigner ist ein innovatives tief Lernwerkzeug für Predictive Analytics.

Datensammlungen

Diese Datensätze können für das Benchmarking tiefe Lernalgorithmen verwendet werden:

Symbolische Musik Datensätze


Naturbilder


Künstliche Datensammlungen

Gesichter


Text


Rede


Empfehlungssysteme

  • Movielens: Zwei von verfügbaren Datensätze http://www.grouplens.org . Der erste Datenbestand hat 100.000 Bewertungen für 1682 Filme von 943 Benutzer in fünf disjunkte Teilmengen unterteilt.Der zweite Datenbestand hat etwa 1 Million Bewertungen für 3900 Filme von 6040 Benutzern.
  • Jester: Dieses DatenSet enthält 4,1 Millionen kontinuierliche Bewertungen (-10,00 bis +10,00) von 100 Witze von 73.421 Benutzern.
  • Netflix – Preis: Netflix veröffentlicht eine anonymisierte Version ihres Filmbewertung Datensatzes ;es besteht aus 100 Millionen Ratings von 480.000 Benutzern durchgeführt, die zwischen 1 und alle der 17.770 Filme bewertet haben.
  • Buch-Crossing – Datensatz: Dieses DatenSet ist aus dem Buch-Crossing – Community, und enthält 278.858 Benutzer Bereitstellung 1.149.780 Bewertungen über 271.379 Bücher.

Verschiedenes


Bildsegmentierung MATLAB-Quellcode

matlab-segmentation-code

Perfekt für den Einsteiger, stellt diese Demo einfache Objekterkennung (Segmentierung, Merkmalsextraktion), Messung und Filterung. Erfordert die Image Processing Toolbox (IPT), weil es einige Funktionen, die von dieser Toolbox geliefert demonstriert, plus es verwendet die “Münzen” Demo-Bild mit dieser Toolbox geliefert. Wenn Sie die IPT haben (können Sie durch ver auf der Kommandozeile eingeben überprüfen), sollten Sie in der Lage sein, diese Demo-Code auszuführen, einfach durch Kopieren und Einfügen diesen Code in ein neues Editor-Fenster, und dann die grüne “Run” Dreieck klicken auf die Symbolleiste.
Zunächst alle Objekte findet, dann filtert Ergebnisse Objekte bestimmter Größen auszuwählen. Die grundlegenden Konzepte der Schwellwertbildung, Etikettieren und regionprops werden mit einem einfachen Beispiel gezeigt.

Es ist ein gutes Tutorial für die Benutzer neu zu MATLAB Bildverarbeitungsfunktionen auf zu lernen, bevor sie zu anspruchsvolleren Algorithmen weitergehen.

http://nl.mathworks.com/matlabcentral/fileexchange/25157-image-segmentation-tutorial

Zell Segmentierung SoftwareTools

SOFTWARE-TOOL

ENTWICKLER

COM

WEBSEITE

CellProfiler

Broad Institute

Nein

http: // www . cellprofiler org.

OMAL Toolbox

Frederick National Lab

Nein

http:.. // ncifrederick Krebs gov

MosaicSoftware

Mosaik-Gruppe

Nein

http: // www . Mosaik ethz ch / Downloads / Phasenkontrast..

LSDCAS

University of Iowa

Nein

http:…? // www uihealthcare org / otherservices aspx id = 21022

Celltrack

Mittlerer Osten

Nein

db.cse.ohio-state.edu/CellTrack

Technische Universität

eisig

Institut Pasteur

Nein

icy.bioimageanalysis.org

CyteSeer

Vala Sciences

ja

http:. // www . valasciences com / software / id / cyteseer

Cellomics

Thermo Scientific

ja

http: // www . Cellomics com.

Scharfsinn

TTP LabTech

ja

http: // www . ttplabtech com.

Epigenetik Ziel

Evotec

ja

http: // www . evotec com.

Profilieren

In Cell Investigator

GE Healthcare

ja

http: // www . Biacore com.

Harmonie

PerkinElmer

ja

http: // www . PerkinElmer com.

CellScan LS

Imstar

ja

http: // www . imstarsa ​​com.

iCyte

CompuCyte

ja

http: // www . Compucyte com.

Com = kommerziell.


MATLAB Normalized Cuts SegmentationCode

Normalized Cut Bildsegmentierung und ClusteringCode zum Herunterladen
Die lineare Zeit Multiskalige Normalized Cut Bildsegmentierung MATLABCode ist verfügbar zumHerunterladen .


Clustering und Klassifizierung über Lossy Compression

MATLABPakete zur Verfügung unter:

Der gesamte Code ist Copyright 2007 University of Illinois.

Clustering von multivariaten gemischten Daten

Matlab Paket: segmentation_code.zip

Die Verwendung ist einfach: Wenn X die Datenmatrix (in der Spalte Form) ist, ruft
Y = coding_seg (X, epsilon, false);
die Daten-Segment, um die Anzahl der Bits zu minimieren benötigten
Code, um die Datenvektoren bis Verzerrung epsilon ^ 2. Der letzte Parameter
wahr sein sollte, wenn die Daten ungleich Null-Mittelwert zu sein, sind bekannt. Siehe “test.m”
für ein Beispiel.

Kontakt: John Wright (jnwright@uiuc.edu).

Klassifizierung der multivariaten Daten

Matlab Paket: MICL_code.zip

Kontakt: John Wright (jnwright@uiuc.edu)

Segmentierung von natürlichen Bildern

Matlab Paket: tbes_1.0.zip

Installation: Diese Textur Segmentierungsalgorithmus verwendet den Superpixel Code von Mori et al. , Die einige c – Dateien enthält, die kompiliert werden müssen. Um diese offenen MATLAB tun und dann die folgenden Befehle ausführen:
> Cd Superpixel / yu_imncut> mex csparse.c> mex ic.c> mex imnb.c> mex parmatV.c> mex spmd_imncut.c Verbrauch: unsere Textursegmentierungsalgorithmus zu testen, den folgenden Befehl in MATLAB ausgeführt werden:
> test_texture_seg

ref: http://perception.csl.illinois.edu/coding/sample_code.htm



 

Konturerkennung und Bildsegmentierung Ressourcen

 

Das Ziel dieser Arbeit ist eine empirische Grundlage für die Erforschung der Bildsegmentierung und Randerkennung zur Verfügung zu stellen. Um den wissenschaftlichen Fortschritt in der Erforschung der visuellen Gruppierung zu fördern, stellen wir die folgenden Ressourcen:

    • Eine große DatenSet von natürlichen Bildern , die manuell segmentiert wurden. Die menschlichen Anmerkungen dienen als Grundwahrheit für das Lernen Gruppierung Cues sowie einen Maßstab für unterschiedliche Segmentierung und Randerkennungsalgorithmen zu vergleichen.
    • Die jüngste Algorithmen unserer Gruppe hat sich für die Konturerkennung und Bildsegmentierung entwickelt.

Die vollständigen Ressourcen auf dieser Seite kann als Einzel heruntergeladen werden Datei . (Stand Januar 2013)

Details und einzelne Downloads zur Verfügung below.If Sie die Ressourcen auf dieser Seite verwenden, zitieren Sie bitte das Papier:

Konturerkennung und hierarchische Bildsegmentierung
P. Arbelaez, M. Maire, C. Fowlkes und J. Malik.
IEEE TPAMI, Vol. 33, Nr . 5, S. 898-916, Mai 2011.
[PDF] [BibTex]

Berkeley Segmentation Data Set und Benchmarks 500 (BSDS500)

Diese neuen Daten – Set ist eine Erweiterung des BSDS300 , wo die ursprünglichen 300 Bilder verwendet werden für die Ausbildung / Validierung und 200 frische Bilder, zusammen mit menschlichen Anmerkungen werden zum Testen gegeben. Jedes Bild wurde von fünf verschiedenen Themen im Durchschnitt segmentiert. Die Leistung wird durch die Messung Precision / Recall auf erfassten Grenzen und drei weitere bereichsbasierte Metriken ausgewertet.

Original Bild Thema 1 Thema 2 Thema 3

BestPracticeRichtlinien: Der Datensatz besteht aus 500 natürliche Bilder, Ground-Truth menschlichen Anmerkungen und Benchmarking – Code. Die Daten werden explizit getrennt in disjunkte Zug, Validierung und Testuntergruppen. Um die Integrität der Auswertung zu erhalten und eine direkte und fairen Vergleich der Ergebnisse mit den bestehenden Methoden zu erhalten, müssen die Richtlinien unten folgen:

    • Zug nur auf trainval: Alle Lern, Parameter – Tuning, Modellauswahl, usw. sollten sichausschließlich auf die Bahn und Validierung Teilmengen der Daten durchgeführt werden.
    • Führen Sie einmal im Test: Nach dem Training Ihr Algorithmus sollte nur einmal mit festen Parametern auf der Testteilmenge der Daten ausgeführt werden. Die Bilder und Ground-Truth – Segmentierungen des Testsets können nicht zur Abstimmung Ihres Algorithmus verwendet werden.
    • Bericht alle Bewertungsergebnisse: Ihre Ergebnisse auf dem Testteilmenge mit dem Benchmarking – Code auswerten. Um quantitativ unterschiedliche Aspekte der Leistung von Konturerkennung und Segmentierungsalgorithmen zu bewerten, bietet die BSDS500 eine Reihe von Bewertungsmaßnahmen. Bitte melden Sie alle Ergebnisse und Kurven , die durch die Auswertung Skript boundaryBench (Konturdetektionsverfahren) oder allBench(Segmentierungsverfahren) zurückgegeben.
    • Werten Sie auch auf der BSDS300: Um Ihre Ergebnisse vergleichbar mit Methoden zu machen , die auf dem ursprünglichen BSDS300 ausgewertet wurden, sollten Sie die drei oben genannten Schritte wiederholen, aber sicherstellen , dass nur auf den Zug Teilmenge der Daten und Test auf der Validierungsuntergruppe zu trainieren .

Laden Sie die BSDS500 : Bilder, Ground-Truth – Daten und Benchmarks.


Algorithmen

Die jüngste Methoden unserer Gruppe entwickelt.

    • Konturerkennung. Die Konturdetektor globalPb kombiniert mehrere lokale Signale in eine Globalisierung Rahmen auf Spectral Clustering basiert.
    • Hierarchische Bildsegmentierung. Der allgemeine Segmentierungsalgorithmus owt-ucm wandelt die Ausgabe eines beliebigen Konturdetektor in eine hierarchische Region Baum.
    • Interactive SegmentationTool. Ein Matlab-Schnittstelle hochwertige benutzerspezifischen Segmentierungen von unserem automatischen Ergebnisse zu erzielen.
Original Bild globalPb Contour Karte ultrametrische Automatische Segmentierung

Downloads:

 

 

 

Hinweis: Alle Downloads dieser Seite im selben Ordner sicher dekomprimiert werden können.

ref: http://www.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/resources.html


KMeans Bildsegmentierung

Dieses Programm wird ein Bild und das desidered Anzahl der Partitionen und findet die Mittel der verschiedenen Klassen und liefert ein Bild clasified
(Maske).

ref: http://nl.mathworks.com/matlabcentral/fileexchange/8379-kmeans-image-segmentation


Fuzzy C-Means Clustering

Diese Funktion veranschaulicht die Fuzzy c-means clustering eines Bildes. Es automatisch Segment das Bild in n-Cluster mit zufälligen Initialisierung. Die Anzahl der Cluster kann vom Benutzer angegeben werden. Die Anzahl der Iterationen kann auch gesteuert werden. Die Funktionsausgänge sind segmentierte Bild und aktualisiert Clusterzentren.

http://nl.mathworks.com/matlabcentral/fileexchange/56147-fuzzy-c-means-clustering


Segmentation Morphologie mit

Diese Funktion zeigt die Fuzzy c-means Clustering eines Bildes

Diese Funktion veranschaulicht die Fuzzy c-means clustering eines Bildes. Es automatisch Segment das Bild in n-Cluster mit zufälligen Initialisierung. Die Anzahl der Cluster kann vom Benutzer angegeben werden. Die Anzahl der Iterationen kann auch gesteuert werden. Die Funktionsausgänge sind segmentierte Bild und aktualisiert Clusterzentren.


Pflanze-Blatt-Krankheit Erkennung und Klassifizierung mit Kombinations- SVM Classifier

Ein Matlab-Code zu erkennen und zu klassifizieren Krankheiten in Pflanzenblättern eine Mehrklassen SVM-Klassifikator mit

Ein Matlab-Code wird geschrieben, um die Blätter in eine der folgenden Arten zu klassifizieren: “Alternaria alternata ‘,’ Anthraknose”, “bakterielle Verseuchung ‘,’ Cercospora Blattflecken ‘und’ gesunde Blätter ‘. Die Klassifizierung wird durch Kombinations- SVM (eins gegen alle) getan
Wie laufen ??
1. Legen Sie den Ordner ‘Leaf_Disease_Detection_code’ in der Matlab-Pfad, und fügen Sie alle Unterordner in diesen Pfad
2. Führen Sie DetectDisease_GUI.m
3. Geben Sie in der GUI auf Bild laden klicken und das Bild von Manu-Krankheit Dataset laden, klicken Sie Kontrast verbessern.
4. Klicken Sie anschließend auf Segment Bild, geben Sie die Cluster nicht den ROI enthalten, dh nur die Krankheit betroffenen Teil oder den gesunden Teil
5. Klicken Sie auf Klassifikationsergebnisse. Dann Genauigkeit messen (in diesem Fall eine gesunde vs alle Krankheiten).
Der Code wird auf dem folgenden Papier lose basiert, zitieren Sie bitte die folgenden und geben Kredite an die Autoren:
[1] Akhtar, Asma, et al. “Automatisierte Plant Disease-Analyse (APDA): Performance-Vergleich von Techniken des maschinellen Lernens.” Frontiers of Information Technology (FIT), 2013 11. Internationale Konferenz für. IEEE 2013.
[2] Kombinations- SVM von Anand Mishra Link:http://www.mathworks.com/matlabcentral/fileexchange/33170-multi-class-support-vector-machine

http://nl.mathworks.com/matlabcentral/fileexchange/55098-plant-leaf-disease-detection-and-classification-using-multiclass-svm-classifier



kostenlos MATLAB-Code:

sparse_classification.zip (1. Veröffentlichung: September 2013; Letzte Veröffentlichung: September 2013)

MATLAB-Code zur Durchführung einer Mustererkennung eine Reihe von verschiedenen spärlichen Codierungsalgorithmen, einschließlich der PC / BC-DIM-Algorithmus. Dieser Code führt die beschriebenen Versuche in: MW Spratling (2014) Klassifizierung mit den spärlichen Darstellungen: a . Biologisch plausiblen Ansatz biologische Kybernetik, 108 (1): 61-73.

drivers_modulators.zip (1. Veröffentlichung: Juli 2013; Letzte Veröffentlichung: Juli 2013)

MATLAB-Code für beide modulierende Simulation und Einflüsse der Vorwärtsfahr, Quer- und Top-down-Verbindungen mit dem PC / BC-DIM-Modell. Dieser Code führt die Experimente beschrieben in: MW Spratling (2014) Ein einzelnes Funktionsmodell der Fahrer und Modulatoren in derRinde Journal of Computational Neuroscience, 36 (1):. 97-118.

edge_detection.zip (1. Veröffentlichung: Oktober 2012; Letzte Veröffentlichung: Oktober 2012)

MATLAB-Code zur Durchführung einer Bildsegmentierung mit dem PC / BC-DIM-Modell V1 mit seitlichen Anschlüssen. Dieser Code führt die Experimente beschrieben in: . MW Spratling (2013)Bildsegmentierung eine spärliche Codierung Modell der kortikalen Bereich V1 IEEE Transactions on Image Processing mit, 22 (4): 1631-43.

partial_transforms.zip (1. Veröffentlichung: Mai 2012; Letzte Veröffentlichung: Mai 2012)

MATLAB-Code für die Modellierung von Teiltransformationen Referenzrahmen unter Verwendung des PC / BC-DIM-Modell. Dieser Code führt die beschriebenen Versuche in: K. De Meyer und MW Spratling (2013) Ein Modell des Teilreferenzrahmen transformiert durch Bündelung der Verstärkung modulierten Antworten Hirnrinde, 23 (5):. 1230-9.

v1_reverse_correl.zip (1. Veröffentlichung: Januar 2012; Letzte Veröffentlichung: Januar 2012)

MATLAB-Code für die Modellierung von Reverse-Korrelationsexperimente mit dem PC / BC-DIM-Modell von V1. Dieser Code führt die Experimente beschrieben in: MW Spratling (2012) predictive coding Konten für V1 Antworteigenschaften mittels Reverse Korrelation aufgezeichnetbiologische Kybernetik, 106 (1):. 37-49.

v1_saliency.zip (1. Veröffentlichung: Juli 2011; Letzte Veröffentlichung: Juli 2011)

MATLAB-Code für die Modellierung von visuellen saliency den PC / BC-DIM-Modell. Dieser Code führt die beschriebenen Versuche in: MW Spratling (2012) Predictive Coding als Modell der V1 Salienzenkarte Hypothese Neuronale Netze . , 26: 7-28.

dim_learn_recip_weights.zip (1. Veröffentlichung: Juni 2011; Letzte Veröffentlichung: Juni 2011)

MATLAB-Code für die in einer hierarchischen PC / BC-DIM-Modell zu lernen. Das Modell wird auf das Erlernen der Stäbe Problem aufgebracht und unter Verwendung von natürlichen Bildern zu lernen. Im letzteren Fall RFS ähnlich denen in kortikalen Bereichen V1 und V2 gefunden erlernt werden. Dieser Code führt die beschriebenen Versuche in: MW Spratling (2012) Unüberwachtes Lernen von generativen und diskriminativen Gewichte kodieren elementare Bildkomponenten in einem predictive coding Modell der kortikalen Funktion Neural Computation, 24 (1):. 60-103.

gain_modulation.zip (1. Veröffentlichung: März 2011; Letzte Veröffentlichung: Juni 2011)

MATLAB-Code für das Lernen (das DIM-Algorithmus) MDEs, in dem ein Eingang und die andere modulierende fahren, auf die Arten von “gain Feld” beobachtet in verschiedenen kortikalen Arealen geben Anstieg (zum Beispiel, wenn ein Retina-RF von Augenposition moduliert wird) . Dieser Code führt die beschriebenen Versuche in: K. De Meyer und MW Spratling (2011) Multiplikativ Verstärkungsmodulation entsteht durch unüberwachte Lernen in einem predictive coding Modell der kortikalen Funktion Neural Computation, 23 (6):. 1536-1567.

v1_suppression_mechanisms.zip (1. Veröffentlichung: März 2011; Letzte Veröffentlichung: Juni 2011)

MATLAB-Code für Mechanismen Modellierung V1 Unterdrückung mit Hilfe der PC / BC-DIM-Modell.Dieser Code führt die beschriebenen Versuche in: MW Spratling (2011) Ein einzelner Funktionsmodell berücksichtigt die unterschiedliche Eigenschaften der Unterdrückung der kortikalen Bereich V1 Vision Research, 51:. 563-76.

v1_response_properties.zip (1. Veröffentlichung: Februar 2010; Letzte Veröffentlichung: März 2010)

MATLAB-Code für die Modellierung von V1 einfache Zelle HF-Eigenschaften mit Hilfe der PC / BC-DIM-Modell. Dieser Code führt die Experimente beschrieben in: MW Spratling (2010) Predictive Coding als Modell der Antworteigenschaften in kortikalen Bereich V1 Journal of Neuroscience, 30 (9):. 3531-43.

pc_attention.zip (1. Veröffentlichung: Februar 2010; Letzte Veröffentlichung: Februar 2010)

MATLAB-Code für die visuelle Aufmerksamkeit Modellierung und Bindung mit dem PC / BC-DIM-Modell. Dieser Code führt die Experimente beschrieben in: MW Spratling (2008) predictive coding als ein Modell der voreingenommen Wettbewerb in der visuellen Aufmerksamkeit Vision Research, 48 (12):. 1391-408.

dim_squares.m (1. Veröffentlichung: Februar 2010; Letzte Veröffentlichung: Februar 2010)

MATLAB-Code der Quadrate Problem für das Erlernen der spaltenden Eingangsmodulation (DIM) Algorithmus. Dieser Code führt eine der beschriebenen Aufgaben in: MW Spratling, K. De Meyer und R. Kompass (2009) Unüberwachtes Lernen von überlappenden Bildkomponenten mit spaltenden Eingangsmodulations Computational Intelligence und Neuroscience 2009 (381.457).19.01.

ref: http://www.inf.kcl.ac.uk/staff/mike/code.html



Form vor Bildsegmentierung

Statistische Form vor vielfältigen Lernen mit

Die gemeinsame Arbeit mit Arturo Mendoza Quispe

In dieser Arbeit bauen wir eine statistische vor mit einer vielfältigen Lerntechnik (Diffusion Maps) und es in einem Graph-Cut-Rahmen. Wir haben die Methode in Form vor basierten Bildsegmentierungbeschrieben vielfältigen Lernen verwenden, A. Mendoza Quispe und C. Petitjean, bei akzeptiertIEEE IPTA 2015. pdfVersion

Einige Ergebnisse auf der rechten Ventrikel Segmentierung in Herzmagnetresonanzbilder:

imgsegm

Matlab – Code: unsere Segmentierung Code verfügbar ist hier . Der Code ist kompatibel mit Matlab Version 8 mit der Image Processing Toolbox.

Es erfordert die Verwendung von den folgenden Code:

Unser Archiv ist durch ein Passwort geschützt ist ; bitte fragen Sie nach dem Passwort bei caroline.petitjean [at] univ-rouen.fr.

Bitte beachten Sie : Der Code wird ohne Daten zur Verfügung gestellt. Der Code ist ein Satz von der Implementierung des Algorithmus, der in der oben zitierten Arbeit [Mendoza Quispe und Petitjean, 2015] beschrieben ist. Es ist vorgesehen , «wie» ohne Unterstützung noch Garantie und kann nicht völlig fehlerfrei gewährleistet sein. Wir freuen uns über ein Zitat unseres Papiers im Falle der Code verwendet wird.

Hauptreferenzen:

  • Etyngier, P., Ségonne, F., Keriven, R .: Form priors vielfältigen Lerntechniken. In: Computer Vision, 2007. ICCV 2007 IEEE 11th International Conference on. pp. 1 8. IEEE (2007)
  • Moolan-Feroze, O., Mirmehdi, M., Hamilton, M., Bucciarelli-Ducci, C .: Segmentierung des rechten Ventrikels unter Verwendung von Di ffusion Karten und markov Zufallsfelder. In:. Bildgestützte Medizin und Computergestützte Intervention MICCAI 2014, S. 682 689. Springer (2014)

Vor Graph Schnittbildsegmentierung mit Multilabel statistischer Form

Die gemeinsame Arbeit mit Damien Grosgeorge und Su Ruan

Matlab-Code:

  • werden bald zur Verfügung gestellt

Hauptreferenzen:

  • D. Grosgeorge, C. Petitjean, S. Ruan, Gemeinsame Segmentierung der rechten und linken Herzkammern Mit Multi-Label-Graph Cut, IEEE International Symposium on Biomedical Imaging (ISBI’14), 2014, Beijing, China
  • D. Grosgeorge, C. Petitjean, J.-N. Dacher, S. Ruan. Graph geschnitten Segmentierung mit einer statistischen Formmodell in der Herz-MRT, Computer Vision und Bildverstehen, vol. 117, p. 1027-1035, 2013.
  • D. Grosgeorge, C. Petitjean, S. Ruan, J. Caudron, J.-N. Dacher. Rechten Ventrikel Segmentierung durch Graph, bevor sie mit Form geschnitten. MICCAI International Workshop, Rechte Herzkammer Segmentation Herausforderung, 2012.

MATLAB-Code für die Verarbeitung der Elektroenzephalographie (EEG) und Magnetoenzephalographie (MEG) Daten

MNU ist eine Community-getriebene Software – Paket für die Verarbeitung der Elektroenzephalographie (EEG) , das für und Magnetoenzephalografie (MEG) Daten bietet umfassende Tools und Workflows für:

  1. Anarbeitung
  2. Quelle Schätzung
  3. Zeit-Frequenz-Analyse
  4. Statistische Tests
  5. Die Einschätzung der funktionellen Konnektivität
  6. Anwenden von Algorithmen des maschinellen Lernens
  7. Visualisierung von Sensor- und Quelle-Raum-Daten

MNE enthält eine umfassende Python-Paket (im Rahmen der vereinfachten BSD-Lizenz zur Verfügung gestellt), ergänzt durch Tools von C-Code für den Linux und Mac OSX Betriebssysteme zusammengestellt sowie eine MATLAB-Toolbox.

Download-Link :

https://github.com/mne-tools/mne-matlab

Quelle Link:

http://martinos.org/mne/stable/index.html

Ein Matlab-Toolbox für die Arbeit mit gemeinsamen Datenmodell-Datensätze

Kurze Zusammenfassung:

nctoolbox ist eine Matlab – Toolbox , die Nur – Lese-Zugriff auf liefert gemeinsames Datenmodell – Datensätze. Unter der Haube verwendet nctoolbox NetCDF-Java als Datenzugriffsschicht. Dies ermöglicht den Zugriff auf nctoolbox NetCDF , OPeNDAP , HDF5 , GRIB, GRIB2, HDF4 und viele (15+) andere Dateiformate und Dienstleistungen die gleiche API.

Dokumentation

Der Rest der Geschichte

Es gibt mehrere Daten-Set-Klassen, die zum Lesen von Daten verwendet werden kann. Jeder bietet verschiedene Arten von Funktionalität. Alle Daten-Set-Klassen bieten Zugriff auf variable Daten sowie eine Liste von Variablennamen und netcdf Attribute sowie die zugrunde liegenden netcdf-java-Dataset-Objekt. Die meisten Benutzer werden wollen , da dies die einzige Klasse NCGEODATASET, die letzte Klasse, zu verwenden , die Zugriff auf die geovariable Klasse gibt. Auf diese Weise können subsetting durch Werte von lat / lon, durch Zeitfenster und die Möglichkeit, Koordinaten zurück, die Standardnamen der Zeit verwenden, lat, lon, z für jede Daten-Set-Variable (und führt auch Umbauten koordinieren). Diese Klasse hat auch eine Methode, um Attribute aus einer netCDF-Datei in eine bequeme Matlab Struktur ziehen und eine andere die Ausmaße der Koordinaten zu ziehen.Die älteren NCDATASET und CFDATASET Klassen beibehalten werden meist für die Abwärtskompatibilität.

EyeTribe Tracker mit Matlab

ETWA

Die EyeTribe Toolbox für Matlab ist eine Reihe von Funktionen , die verwendet werden können , mit Eyetracker von hergestellt zu kommunizieren , die EyeTribe . Der Kommunikationsprozess ist nicht direkt, sondern geht über einen Unterserver, der Eingaben von Matlab empfängt (wenn die Funktionen von dieser Werkzeugkasten genannt werden), und sendet dann Befehle an den tatsächlichen EyeTribe Server.

Diese Einrichtung ist ziemlich seltsam, aber es ist die eleganteste Lösung, die ich mit, um das Problem von Matlab nicht mit anständigen Multithreading Funktionalität zu erhalten kommen konnte.Diese Funktionalität ist für den Betrieb eines Herzschlag Gewinde erforderlich (die die Verbindung mit dem EyeTribe am Leben hält), und ein anderer Thread Proben zu überwachen (und schreiben diese in eine Protokolldatei). Ähnliche Ergebnisse können durch Verwendung von Callback – Funktionen innerhalb von Matlab TCP / IP – Rahmen erhalten werden, aber dieser Ansatz führt zu Fehlern , die weit in andere Bereiche Timing: Timing – Probleme , wenn PsychToolbox der mitWaitSecs Funktion und Hintergrundprozesse in Matlab vermasseln alle möglichen anderen Timing sensible Prozesse .

Also, aus Lazine … Äh … Aus einer gut geplanten Zeitmanagementaufwand zu Zeitverlust durch neu zu erfinden das Rad zu vermeiden, habe ich einfach verwendet PyTribe in kurzer Python – Skript (siehe python_source Ordner für die Quelle) zu kompilieren einen Windows ausführbare Datei, die vor Ihnen ausgeführt werden sollten führen Sie Ihre Matlab-Skript.

Die Kalibrierungsroutine basiert auf dem PsychToolbox für Matlab und erfordert ein aktives Fenster an sie übergeben werden. Dies stellt sicher, dass Sie sind frei, die Tracker zu einem bestimmten Zeitpunkt in Ihrem Versuch zu kalibrieren, ohne für die Steuerung der aktiven Anzeige mit Ihrem Experiment beliebige externe Kalibrierungsroutine Kampf mit.

Wenn Sie möchten , dass das PsychToolbox nicht kalibriert werden , können Sie immer noch die EyeTribe Toolbox für Matlab, verwenden , indem Sie einfach nicht der Aufrufeyetribe_calibrate Funktion. Bitte beachten Sie, dass Sie sollten dann das System mit eigenen Mitteln zu kalibrieren, zB durch die eigene GUI EyeTribe mit ( C:\Program Files (x86)\EyeTribe\Client\EyeTribeWinUI.exe ) , bevor Sie Software starten , die die EyeTribe Toolbox ruft für Matlab.

WICHTIG

Eine sehr verbreitete Annahme unter den Menschen, die EyeTribe für Matlab Toolbox besteht darin, dass die Beispielfunktion Aufruf ist eine Voraussetzung. Das ist nicht wahr! Nach dem Aufruf voneyetribe_start_recording die ausführbare Datei (EyeTribe_Matlab_server.exe) sorgen dafür , dass Daten in die Protokolldatei geschrieben werden. Der Aufruf eyetribe_stop_recording wird Datenaufzeichnung stoppen. Die eyetribe_sample und eyetribe_pupil_size Funktionen haben nichts mit Datenaufzeichnung zu tun!

Warum sind sie da? Nun, manchmal will man Teilnehmer Punkt hinsichtlich nutzen, um etwas auf dem Bildschirm zu ändern oder ein Feedback zu geben. Zu diesem Zweck können Sie anrufeneyetribe_sample die jüngste Blick Koordinaten zu erhalten. Diese können verwendet werden, um den Standort eines Reizes zu setzen (zB zu verriegeln Position zu schauen) oder zu überwachen, ob ein Teilnehmer an einem bestimmten Reiz suchen.

In Summe sind die eyetribe_sample und eyetribe_pupil_size sind Funktionen dort Blick Kontingent Displays zu unterstützen. Die ausführbare Datei im Hintergrund laufen wird damit umgehen im Hintergrund, Speicherung Blick und Schüler Daten in einer Textdatei: Sie sind nicht auf die Erfassung von Daten.

HERUNTERLADEN

1) Gehen Sie zu: https://github.com/esdalmaijer/EyeTribe-Toolbox-for-Matlab

2) Drücken Sie die ZIP – Taste, oder klicken Sie auf diesen Link .

3) Entpacken Sie die ZIP-Archiv, das Sie gerade heruntergeladen haben.

4) Kopieren Sie den Ordner EyeTribe_for_Matlab , wo Sie wollen es (zB zu sein in Ihrem OrdnerDokumente unter MATLAB).

5) In Matlab, gehen Sie auf Datei -> Set Path -> Neuer Ordner und wählen Sie den Ordner , den Sie in Schritt kopiert 4.

Alternativ legen Sie die zu Beginn des Experiments folgenden Code:

  % Vorausgesetzt , Sie die EyeTribe_for_Matlab direkt unter C gestellt:
 addpath ( 'C: \ EyeTribe_for_Matlab')

BEI VERWENDUNG AUF WINDOWS

  1. Starten Sie EyeTribe Server C:\Program Files(x86)\EyeTribe\Server\EyeTribe.exe
  2. Starten Sie EyeTribe_Matlab_server.exe .
  3. Führen Sie Ihre Matlab-Skript, zum Beispiel die unten:

BEI VERWENDUNG AUF OS X und Linux

Dank @ shandelman116 für diese auszuprobieren (siehe Ausgabe # 4 ).

  1. Öffnen Sie ein Terminal.
  2. Verwenden Sie die cd – Funktion zum python_source Ordner zu gehen. Ein Beispiel:
 cd /home/python_source
  1. Verwenden Sie Python, um die Quelle laufen. Python sollte auf jedem Linux-System installiert werden, und ich denke, OS X in der Regel mit ihr auch kommt. Geben Sie den folgenden Befehl im Terminal:
 python EyeTribe_Matlab_server.py
  1. laufen nun Ihre Matlab-Skript (aber tun Sie es innerhalb von zwei Minuten das Python-Skript starten, weil es nach dieser Zeit heraus wird).

Beispielskript

  % Nicht mit Vsync - Tests für diese Demo stören
 Screen ( "Preference", "SkipSyncTests", 1);

 % Initialisieren Verbindung
 [Erfolg, Verbindung] = eyetribe_init ( 'test');

 % Ein neues Fenster öffnen
 Fenster = Screen ( 'Openwindow', 2);

 % Kalibrieren den Tracker
 Erfolg = eyetribe_calibrate (Anschluss, Fenster);

 % Zeigen leere Fenster
 Screen ( 'Flip', Fenster);

 % Starte die Aufnahme
 Erfolg = eyetribe_start_recording (Verbindung);

 % Log etwas
 Erfolg = eyetribe_log (Anschluss, 'TEST_START');

 % Erhalten ein paar Proben
 % HINWEIS: ist dies für die Datenaufzeichnung nicht notwendig und
 % Sammlung, aber nur eine Demonstration der Probe
 % Und pupil_size Funktionen!
 für i = 1: 60
     Pause (0,0334)
     [Erfolg, x, y] = eyetribe_sample (Verbindung);
     [Erfolg, Größe] = eyetribe_pupil_size (Verbindung);
     disp ([ 'x =' num2str (x) ', y =' num2str (y) ', s =' num2str (Größe)])
 Ende

 % Log etwas
 Erfolg = eyetribe_log (Anschluss, 'TEST_STOP');

 % Stoppen der Aufnahme
 Erfolg = eyetribe_stop_recording (Verbindung);

 % Enge Verbindung
 Erfolg = eyetribe_close (Verbindung);

 % Fenster schließen
 Screen ( 'Schließen', Fenster);

MATLAB-Toolbox für Geometrieverarbeitung

word_cloud_geometry_i_9

gptoolbox – Geometrie Processing Toolbox

https://github.com/alecjacobson/gptoolbox/

Dies ist eine Toolbox von nützlichen Matlab Funktionen für die Geometrieverarbeitung. Es gibt auch constrainted Optimierung und Bildverarbeitung im Zusammenhang mit Werkzeugen. Typischerweise sind diese Utility-Funktionen, die nicht allein Anwendungen stehen werden.

Hier ist eine unvollständige Liste von coolen Features dieser Matlab Toolbox enthält:

  • Wrapper für TetGen, Dreieck, QSlim, meshfix
  • Netzglättung
  • Netz bereinigen (Duplikate entfernen, entfernen Sie nicht referenzierte)
  • geodätischen Abstände auf dem Dreieck und tetraeder Maschen
  • Netz Mengen und Abfragen (Normalen, diskrete Gaußsche Krümmung, Liste Begrenzungskanten, Topologie, Winkel, Diederwinkeln etc.)
  • Netz Verformung (als starr-as-möglich (ARAP), Bewegen der kleinsten Quadrate, etc.)
  • Netz Parametrisierung (harmonische, der kleinsten Quadrate konforme, ARAP, etc.)
  • automatische Häutung Gewichtsberechnung (begrenzt biharmonische Gewichte, Knochen Wärme)
  • 2D-Dreiecksnetz von binären Bild
  • Input / Output für viele Netzformate (OBJ, .off, .stl, .wrl, .ply, .mesh, .Node, .ele, .poly, .smf, .bdl, .face)
  • diskrete Differentialgeometrie Operatoren für Dreieck und tetraeder Maschen (cotangent Laplace, Gradient, Divergenz)
  • quadratische Programmierung, aktiven Satz Löser
  • Scribble-basierte Bild Einfärben, Diffusionskurven
  • genaue (un) unterzeichnet Abstand Feldberechnung für Maschen
  • konstruktive feste Geometrie Operationen an Maschen, booleans
  • beschleunigte Punkt Lage im Dreieck und tetraeder Maschen
  • Bild Dithering
  • tief Matlab Funktion Abhängigkeit

Die Funktionen wurden in Ordnern organisiert auf der Grundlage ihrer primären Anwendung:

  • extern /
  • Bildverarbeitung/
  • images /
  • Matrix/
  • Netz /
  • mex /
  • Nutzen /
  • Wrapper /

Installation

Die überwiegende Mehrheit dieser Code ist gerade MATLAB ( *.m – Dateien). Somit ist nur die Installation von MATLAB und das Hinzufügen des qptoolbox Verzeichnis und dessen Unterverzeichnissen zu MATLAB-Pfad ist für die Installation benötigt:

 addpath(genpath('/absolute/path/to/gptoolbox'))

Um diese Änderung permanent, dann Ausgabe:

 savepath

Es gibt einige mex Dateien, deren Dokumentation für die Installation in jeweiligen enthaltenmex/README.md Datei.

So aktivieren Sie Ausgabe Tabulatorvervollständigung auf gptoolbox des IO-Funktionen:

 add_gptoolbox_tab_completion

dies dauert ein oder zwei Sekunden (oder 30) und dann werden Sie müssen MATLAB neu starten, damit es in Kraft treten.

Vollinstallation

Dies ist bestrebt, vollständige Installationsanweisungen zu sein, aber zweifellos unvollständig bleiben für einige Zeit. Beginnen Sie mit Pfaden, wie oben hinzufügen.

Wie oben erwähnt, sind die meisten Dateien gerade Matlab und wird nur ausgeführt , wenn Sie auf Ihrem Weg gptoolbox haben.

Kompilieren /mex

Die meisten unserer mex Dateien wird davon abhängen , libigl . Im Folgenden wird Ihre usign ein “Standard” Unix-y-Installation von libigl als statische Bibliothek übernehmen.

In MATLAB Ausgabe:

 cd mex compile_qptoolbox_mex

Kompilieren toolbox_fast_marching

In MATLAB Ausgabe:

 cd external/toolbox_fast_marching/ compile_mex

Abhängigkeiten

Dies ist abhängig von MATLAB und seine verschiedenen Toolbox-Erweiterungen. Viele Funktionen sollten auch mit Octave arbeiten, obwohl dies nicht getestet wurde.

Funktionen , die sich verlassen quadprog wurden unter der Annahme getestet und optimiert , dass die Mosek Toolbox installiert wurde, sollte aber auch mit der Arbeit quadprog in MATLAB Optimization Toolbox.

Mex-Dateien haben andere externe Abhängigkeiten (zB CGAL, Eigen, libigl). Siehe ihre jeweiligen READMEs für weitere Informationen. Wenn mex Bibliotheken zu installieren, müssen Sie die Dateien in zu modifizieren wrappers/ (wie path_to_libigl.m ) so gptoolbox weiß , wo zu suchen.

Zuschreibung

Wenn Sie gptoolbox in Ihrem akademischen Projekten verwenden, zitieren Sie bitte die Papiere wir gegebenenfalls umzusetzen. Um die Bibliothek im Allgemeinen zu nennen, könnten Sie diese BibTeX-Eintrag verwenden:

 @misc{gptoolbox, title = {{gptoolbox}: Geometry Processing Toolbox}, author = {Alec Jacobson and others}, note = {http://github.com/alecjacobson/gptoolbox}, year = {2015}, }

Lizenz

Soweit nicht anders gekennzeichnet, alle Code ist urheberrechtlich Alec Jacobson 2015.

Wir schalten wahrscheinlich auf eine MPL2 Lizenz in der nahen Zukunft.

Kontakt

Die Geometrie Processing Toolbox entstand aus Alec Jacobson privaten Code-Basis während seiner Promotion, sondern hat eine Menge von verschiedenen Mitarbeitern an der New York University und der ETH Zürich profitiert. Nun ist die Geometrie Processing Toolbox eine Gruppe Fangen. Wenn Sie in einen Beitrag Intersted bist, bitte Alec Jacobson (Kontaktalecjacobson@gmail.com ) oder eine Pull – Anforderung auf Github einreichen.

Dokumentation

Denn jetzt wird die Dokumentation zu einer Pro-Funktion Basis begrenzt. Zum Beispiel, Dokumentation zu finden cotmatrix Ausgabe:

 help cotmatrix

Matlab-Skripte zum Lesen und Schreiben von MIDI-Dateien

Der MIDI-Standard

MIDI ist ein Akronym , das für Musical Instrument Digital Interface steht. Es ist ein Weg , um Geräte zu verbinden, und die Kontrolle Sound machen – wie Synthesizer, Sampler und Computer – , so dass sie miteinander kommunizieren können, unter Verwendung von MIDIMeldungen. Auf diese Weise können eine Tastatur Trigger auf einem anderen Synthesizer-Sounds, und es macht es möglich, Musik in einer Form aufzuzeichnen, die für eine einfache Notiz bearbeiten, flexible Orchestrierung und Song Anordnung ermöglicht. Virtuelle Instrumente – Computerprogramme, die Hardware-Synthesizer und Sampler simulieren – kommunizieren auch mit Computer-Sequenzer-Software auf dem Computer MIDI-Nachrichten mit ausgeführt wird.

Diese Web-Seite führt Sie in die Grundlagen von MIDI. Die interaktive Anwendung , die Sie aus dem Download können Lehrplan hilft Ihnen einige Besonderheiten der MIDI – Befehle zu verstehen.

Warum MIDI-Angelegenheiten

Hier sind nur einige der Dinge, MIDI ermöglicht:

  • Sie können ein MIDI-Instrument verwenden, mit denen Sie bequem sind die Geräusche gehört, zu jeder anderen MIDI-Gerät, einschließlich Soft-Synths zu spielen.
  • Erstellen Sie reichen musikalischen Texturen von Sounds aus mehreren MIDI-Geräten Schichtung oder verschiedene Sounds zuweisen in unterschiedlichen Pitch Bereiche zu spielen.
  • Wenn Sie ein MIDI-Instrument spielen, ist es Daten erzeugt, die von einem MIDI erfasst werden können “Sequenzer”. Wenn der Sequenzer die Daten wiedergibt, wird Ihre ursprüngliche Leistung neu erstellt. Sequenzer sind nicht nur MIDI-Recorder, wenn-sie lassen Sie Fehler beheben, die Tonhöhen der Noten ändern, reparieren ihre Timing, die Art, wie sie spielen, die Geräusche, die sie verwenden, und vieles mehr. Darüber hinaus können die meisten Sequenzern mehrere Auftritte auf getrennten Erfassung “Spuren”, so dass Sie voll musikalischen Arrangements, eine Spur zu einem Zeitpunkt aufzubauen.
  • Der General-MIDI-Sound-Set können Sie sofort vorbespielte Musik auf vielen MIDI-Instrumenten wiedergeben, oder auf einem Computer.
  • Ein MIDI-Gerät kann eine andere Steuerung, so dass Sie verwenden, um die bequemste Werkzeug für jeden Job. Edit MIDI Instrumenten-Sounds auf Ihrem Computer arbeiten ein Audio-Recorder von einem MIDI-Beat-Box, und so weiter.

beste Broschüre für MIDI:

https://www.midi.org/images/easyblog_articles/43/intromid_20160320-111631_1.pdf

  MIDI-Datei-Tools für MATLAB


 VERWENDUNG

   Fügen Sie das Verzeichnis 'Matlab-midi / src' auf Ihrem Matlab Pfad.
   Grund lesen:

   Grund schreiben:

   Für eine vollständige Dokumentation finden Sie http://kenschutte.com/midi

 LIZENZ

   Dieser Code wird unter der GPL veröffentlicht.

 AUTOR

   Ken Schutte
   kenschutte@gmail.com

Der Quellcode Download-Link:

https://github.com/kts/matlab-midi

Bibliothek für Support-Vektor-Maschinen (SVM)

LIBSVM ist eine einfache, leicht zu bedienende und leistungsfähige Software für SVM-Klassifikation und Regression. Es löst C-SVM-Klassifizierung, nu-SVM
Klassifizierung, ein Klasse-SVM, epsilon-SVM Regression und nu-SVM Regression. Es bietet auch eine automatische Modellauswahl-Werkzeug für
C-SVM-Klassifikation. Dieses Dokument beschreibt die Verwendung von LIBSVM.

Libsvm is available at
http://www.csie.ntu.edu.tw/~cjlin/libsvm
Please read the COPYRIGHT file before using libsvm.

Inhaltsverzeichnis
=================

- Schnellstart
- Installation und Datenformat
- `SVM-Zug 'Verwendung
- `SVM-vorhersagen Verwendung '
- `SVM-Skala 'Verwendung
- Tipps zur Praktische Anwendung
- Beispiele
- Precomputed Kerneln
- Bibliotheksbenutzung
- Java Version
- Gebäude Windows-Binaries
- Zusätzliche Werkzeuge: Unterabtastung , Parameterauswahl , Formatüberprüfung usw.
- MATLAB / OCTAVE-Schnittstelle
- Python-Schnittstelle
- Zusätzliche Information

Quick Start
===========

If you are new to SVM and if the data is not large, please go to
`tools' directory and use easy.py after installation. It does
everything automatic -- from data scaling to parameter selection.

Usage: easy.py training_file [testing_file]

More information about parameter selection can be found in
`tools/README.'

Installation and Data Format
============================

On Unix systems, type `make' to build the `svm-train' and `svm-predict'
programs. Run them without arguments to show the usages of them.

On other systems, consult `Makefile' to build them (e.g., see
'Building Windows binaries' in this file) or use the pre-built
binaries (Windows binaries are in the directory `windows').

The format of training and testing data file is:

<label> <index1>:<value1> <index2>:<value2> ...
.
.
.

Each line contains an instance and is ended by a '\n' character.  For
classification, <label> is an integer indicating the class label
(multi-class is supported). For regression, <label> is the target
value which can be any real number. For one-class SVM, it's not used
so can be any number.  The pair <index>:<value> gives a feature
(attribute) value: <index> is an integer starting from 1 and <value>
is a real number. The only exception is the precomputed kernel, where
<index> starts from 0; see the section of precomputed kernels. Indices
must be in ASCENDING order. Labels in the testing file are only used
to calculate accuracy or errors. If they are unknown, just fill the
first column with any numbers.

A sample classification data included in this package is
`heart_scale'. To check if your data is in a correct form, use
`tools/checkdata.py' (details in `tools/README').

Type `svm-train heart_scale', and the program will read the training
data and output the model file `heart_scale.model'. If you have a test
set called heart_scale.t, then type `svm-predict heart_scale.t
heart_scale.model output' to see the prediction accuracy. The `output'
file contains the predicted class labels.

For classification, if training data are in only one class (i.e., all
labels are the same), then `svm-train' issues a warning message:
`Warning: training data in only one class. See README for details,'
which means the training data is very unbalanced. The label in the
training data is directly returned when testing.

There are some other useful programs in this package.

svm-scale:

	This is a tool for scaling input data file.

svm-toy:

	This is a simple graphical interface which shows how SVM
	separate data in a plane. You can click in the window to
	draw data points. Use "change" button to choose class
	1, 2 or 3 (i.e., up to three classes are supported), "load"
	button to load data from a file, "save" button to save data to
	a file, "run" button to obtain an SVM model, and "clear"
	button to clear the window.

	You can enter options in the bottom of the window, the syntax of
	options is the same as `svm-train'.

	Note that "load" and "save" consider dense data format both in
	classification and the regression cases. For classification,
	each data point has one label (the color) that must be 1, 2,
	or 3 and two attributes (x-axis and y-axis values) in
	[0,1). For regression, each data point has one target value
	(y-axis) and one attribute (x-axis values) in [0, 1).

	Type `make' in respective directories to build them.

	You need Qt library to build the Qt version.
	(available from http://www.trolltech.com)

	You need GTK+ library to build the GTK version.
	(available from http://www.gtk.org)

	The pre-built Windows binaries are in the `windows'
	directory. We use Visual C++ on a 32-bit machine, so the
	maximal cache size is 2GB.

`svm-train' Usage
=================

Usage: svm-train [options] training_set_file [model_file]
options:
-s svm_type : set type of SVM (default 0)
	0 -- C-SVC		(multi-class classification)
	1 -- nu-SVC		(multi-class classification)
	2 -- one-class SVM
	3 -- epsilon-SVR	(regression)
	4 -- nu-SVR		(regression)
-t kernel_type : set type of kernel function (default 2)
	0 -- linear: u'*v
	1 -- polynomial: (gamma*u'*v + coef0)^degree
	2 -- radial basis function: exp(-gamma*|u-v|^2)
	3 -- sigmoid: tanh(gamma*u'*v + coef0)
	4 -- precomputed kernel (kernel values in training_set_file)
-d degree : set degree in kernel function (default 3)
-g gamma : set gamma in kernel function (default 1/num_features)
-r coef0 : set coef0 in kernel function (default 0)
-c cost : set the parameter C of C-SVC, epsilon-SVR, and nu-SVR (default 1)
-n nu : set the parameter nu of nu-SVC, one-class SVM, and nu-SVR (default 0.5)
-p epsilon : set the epsilon in loss function of epsilon-SVR (default 0.1)
-m cachesize : set cache memory size in MB (default 100)
-e epsilon : set tolerance of termination criterion (default 0.001)
-h shrinking : whether to use the shrinking heuristics, 0 or 1 (default 1)
-b probability_estimates : whether to train a SVC or SVR model for probability estimates, 0 or 1 (default 0)
-wi weight : set the parameter C of class i to weight*C, for C-SVC (default 1)
-v n: n-fold cross validation mode
-q : quiet mode (no outputs)


The k in the -g option means the number of attributes in the input data.

option -v randomly splits the data into n parts and calculates cross
validation accuracy/mean squared error on them.

See libsvm FAQ for the meaning of outputs.

`svm-predict' Usage
===================

Usage: svm-predict [options] test_file model_file output_file
options:
-b probability_estimates: whether to predict probability estimates, 0 or 1 (default 0); for one-class SVM only 0 is supported

model_file is the model file generated by svm-train.
test_file is the test data you want to predict.
svm-predict will produce output in the output_file.

`svm-scale' Usage
=================

Usage: svm-scale [options] data_filename
options:
-l lower : x scaling lower limit (default -1)
-u upper : x scaling upper limit (default +1)
-y y_lower y_upper : y scaling limits (default: no y scaling)
-s save_filename : save scaling parameters to save_filename
-r restore_filename : restore scaling parameters from restore_filename

See 'Examples' in this file for examples.

Tips on Practical Use
=====================

* Scale your data. For example, scale each attribute to [0,1] or [-1,+1].
* For C-SVC, consider using the model selection tool in the tools directory.
* nu in nu-SVC/one-class-SVM/nu-SVR approximates the fraction of training
  errors and support vectors.
* If data for classification are unbalanced (e.g. many positive and
  few negative), try different penalty parameters C by -wi (see
  examples below).
* Specify larger cache size (i.e., larger -m) for huge problems.

Examples
========

> svm-scale -l -1 -u 1 -s range train > train.scale
> svm-scale -r range test > test.scale

Scale each feature of the training data to be in [-1,1]. Scaling
factors are stored in the file range and then used for scaling the
test data.

> svm-train -s 0 -c 5 -t 2 -g 0.5 -e 0.1 data_file

Train a classifier with RBF kernel exp(-0.5|u-v|^2), C=10, and
stopping tolerance 0.1.

> svm-train -s 3 -p 0.1 -t 0 data_file

Solve SVM regression with linear kernel u'v and epsilon=0.1
in the loss function.

> svm-train -c 10 -w1 1 -w-2 5 -w4 2 data_file

Train a classifier with penalty 10 = 1 * 10 for class 1, penalty 50 =
5 * 10 for class -2, and penalty 20 = 2 * 10 for class 4.

> svm-train -s 0 -c 100 -g 0.1 -v 5 data_file

Do five-fold cross validation for the classifier using
the parameters C = 100 and gamma = 0.1

> svm-train -s 0 -b 1 data_file
> svm-predict -b 1 test_file data_file.model output_file

Obtain a model with probability information and predict test data with
probability estimates

Precomputed Kernels
===================

Users may precompute kernel values and input them as training and
testing files.  Then libsvm does not need the original
training/testing sets.

Assume there are L training instances x1, ..., xL and.
Let K(x, y) be the kernel
value of two instances x and y. The input formats
are:

New training instance for xi:

<label> 0:i 1:K(xi,x1) ... L:K(xi,xL)

New testing instance for any x:

<label> 0:? 1:K(x,x1) ... L:K(x,xL)

That is, in the training file the first column must be the "ID" of
xi. In testing, ? can be any value.

All kernel values including ZEROs must be explicitly provided.  Any
permutation or random subsets of the training/testing files are also
valid (see examples below).

Note: the format is slightly different from the precomputed kernel
package released in libsvmtools earlier.

Examples:

	Assume the original training data has three four-feature
	instances and testing data has one instance:

	15  1:1 2:1 3:1 4:1
	45      2:3     4:3
	25          3:1

	15  1:1     3:1

	If the linear kernel is used, we have the following new
	training/testing sets:

	15  0:1 1:4 2:6  3:1
	45  0:2 1:6 2:18 3:0
	25  0:3 1:1 2:0  3:1

	15  0:? 1:2 2:0  3:1

	? can be any value.

	Any subset of the above training file is also valid. For example,

	25  0:3 1:1 2:0  3:1
	45  0:2 1:6 2:18 3:0

	implies that the kernel matrix is

		[K(2,2) K(2,3)] = [18 0]
		[K(3,2) K(3,3)] = [0  1]

Library Usage
=============

These functions and structures are declared in the header file
`svm.h'.  You need to #include "svm.h" in your C/C++ source files and
link your program with `svm.cpp'. You can see `svm-train.c' and
`svm-predict.c' for examples showing how to use them. We define
LIBSVM_VERSION and declare `extern int libsvm_version; ' in svm.h, so
you can check the version number.

Before you classify test data, you need to construct an SVM model
(`svm_model') using training data. A model can also be saved in
a file for later use. Once an SVM model is available, you can use it
to classify new data.

- Function: struct svm_model *svm_train(const struct svm_problem *prob,
					const struct svm_parameter *param);

    This function constructs and returns an SVM model according to
    the given training data and parameters.

    struct svm_problem describes the problem:

	struct svm_problem
	{
		int l;
		double *y;
		struct svm_node **x;
	};

    where `l' is the number of training data, and `y' is an array containing
    their target values. (integers in classification, real numbers in
    regression) `x' is an array of pointers, each of which points to a sparse
    representation (array of svm_node) of one training vector.

    For example, if we have the following training data:

    LABEL    ATTR1    ATTR2    ATTR3    ATTR4    ATTR5
    -----    -----    -----    -----    -----    -----
      1        0        0.1      0.2      0        0
      2        0        0.1      0.3     -1.2      0
      1        0.4      0        0        0        0
      2        0        0.1      0        1.4      0.5
      3       -0.1     -0.2      0.1      1.1      0.1

    then the components of svm_problem are:

    l = 5

    y -> 1 2 1 2 3

    x -> [ ] -> (2,0.1) (3,0.2) (-1,?)
         [ ] -> (2,0.1) (3,0.3) (4,-1.2) (-1,?)
         [ ] -> (1,0.4) (-1,?)
         [ ] -> (2,0.1) (4,1.4) (5,0.5) (-1,?)
         [ ] -> (1,-0.1) (2,-0.2) (3,0.1) (4,1.1) (5,0.1) (-1,?)

    where (index,value) is stored in the structure `svm_node':

	struct svm_node
	{
		int index;
		double value;
	};

    index = -1 indicates the end of one vector. Note that indices must
    be in ASCENDING order.

    struct svm_parameter describes the parameters of an SVM model:

	struct svm_parameter
	{
		int svm_type;
		int kernel_type;
		int degree;	/* for poly */
		double gamma;	/* for poly/rbf/sigmoid */
		double coef0;	/* for poly/sigmoid */

		/* these are for training only */
		double cache_size; /* in MB */
		double eps;	/* stopping criteria */
		double C;	/* for C_SVC, EPSILON_SVR, and NU_SVR */
		int nr_weight;		/* for C_SVC */
		int *weight_label;	/* for C_SVC */
		double* weight;		/* for C_SVC */
		double nu;	/* for NU_SVC, ONE_CLASS, and NU_SVR */
		double p;	/* for EPSILON_SVR */
		int shrinking;	/* use the shrinking heuristics */
		int probability; /* do probability estimates */
	};

    svm_type can be one of C_SVC, NU_SVC, ONE_CLASS, EPSILON_SVR, NU_SVR.

    C_SVC:		C-SVM classification
    NU_SVC:		nu-SVM classification
    ONE_CLASS:		one-class-SVM
    EPSILON_SVR:	epsilon-SVM regression
    NU_SVR:		nu-SVM regression

    kernel_type can be one of LINEAR, POLY, RBF, SIGMOID.

    LINEAR:	u'*v
    POLY:	(gamma*u'*v + coef0)^degree
    RBF:	exp(-gamma*|u-v|^2)
    SIGMOID:	tanh(gamma*u'*v + coef0)
    PRECOMPUTED: kernel values in training_set_file

    cache_size is the size of the kernel cache, specified in megabytes.
    C is the cost of constraints violation.
    eps is the stopping criterion. (we usually use 0.00001 in nu-SVC,
    0.001 in others). nu is the parameter in nu-SVM, nu-SVR, and
    one-class-SVM. p is the epsilon in epsilon-insensitive loss function
    of epsilon-SVM regression. shrinking = 1 means shrinking is conducted;
    = 0 otherwise. probability = 1 means model with probability
    information is obtained; = 0 otherwise.

    nr_weight, weight_label, and weight are used to change the penalty
    for some classes (If the weight for a class is not changed, it is
    set to 1). This is useful for training classifier using unbalanced
    input data or with asymmetric misclassification cost.

    nr_weight is the number of elements in the array weight_label and
    weight. Each weight[i] corresponds to weight_label[i], meaning that
    the penalty of class weight_label[i] is scaled by a factor of weight[i].

    If you do not want to change penalty for any of the classes,
    just set nr_weight to 0.

    *NOTE* Because svm_model contains pointers to svm_problem, you can
    not free the memory used by svm_problem if you are still using the
    svm_model produced by svm_train().

    *NOTE* To avoid wrong parameters, svm_check_parameter() should be
    called before svm_train().

    struct svm_model stores the model obtained from the training procedure.
    It is not recommended to directly access entries in this structure.
    Programmers should use the interface functions to get the values.

	struct svm_model
	{
		struct svm_parameter param;	/* parameter */
		int nr_class;		/* number of classes, = 2 in regression/one class svm */
		int l;			/* total #SV */
		struct svm_node **SV;		/* SVs (SV[l]) */
		double **sv_coef;	/* coefficients for SVs in decision functions (sv_coef[k-1][l]) */
		double *rho;		/* constants in decision functions (rho[k*(k-1)/2]) */
		double *probA;		/* pairwise probability information */
		double *probB;
		int *sv_indices;        /* sv_indices[0,...,nSV-1] are values in [1,...,num_traning_data] to indicate SVs in the training set */

		/* for classification only */

		int *label;		/* label of each class (label[k]) */
		int *nSV;		/* number of SVs for each class (nSV[k]) */
					/* nSV[0] + nSV[1] + ... + nSV[k-1] = l */
		/* XXX */
		int free_sv;		/* 1 if svm_model is created by svm_load_model*/
					/* 0 if svm_model is created by svm_train */
	};

    param describes the parameters used to obtain the model.

    nr_class is the number of classes. It is 2 for regression and one-class SVM.

    l is the number of support vectors. SV and sv_coef are support
    vectors and the corresponding coefficients, respectively. Assume there are
    k classes. For data in class j, the corresponding sv_coef includes (k-1) y*alpha vectors,
    where alpha's are solutions of the following two class problems:
    1 vs j, 2 vs j, ..., j-1 vs j, j vs j+1, j vs j+2, ..., j vs k
    and y=1 for the first j-1 vectors, while y=-1 for the remaining k-j
    vectors. For example, if there are 4 classes, sv_coef and SV are like:

        +-+-+-+--------------------+
        |1|1|1|                    |
        |v|v|v|  SVs from class 1  |
        |2|3|4|                    |
        +-+-+-+--------------------+
        |1|2|2|                    |
        |v|v|v|  SVs from class 2  |
        |2|3|4|                    |
        +-+-+-+--------------------+
        |1|2|3|                    |
        |v|v|v|  SVs from class 3  |
        |3|3|4|                    |
        +-+-+-+--------------------+
        |1|2|3|                    |
        |v|v|v|  SVs from class 4  |
        |4|4|4|                    |
        +-+-+-+--------------------+

    See svm_train() for an example of assigning values to sv_coef.

    rho is the bias term (-b). probA and probB are parameters used in
    probability outputs. If there are k classes, there are k*(k-1)/2
    binary problems as well as rho, probA, and probB values. They are
    aligned in the order of binary problems:
    1 vs 2, 1 vs 3, ..., 1 vs k, 2 vs 3, ..., 2 vs k, ..., k-1 vs k.

    sv_indices[0,...,nSV-1] are values in [1,...,num_traning_data] to
    indicate support vectors in the training set.

    label contains labels in the training data.

    nSV is the number of support vectors in each class.

    free_sv is a flag used to determine whether the space of SV should
    be released in free_model_content(struct svm_model*) and
    free_and_destroy_model(struct svm_model**). If the model is
    generated by svm_train(), then SV points to data in svm_problem
    and should not be removed. For example, free_sv is 0 if svm_model
    is created by svm_train, but is 1 if created by svm_load_model.

- Function: double svm_predict(const struct svm_model *model,
                               const struct svm_node *x);

    This function does classification or regression on a test vector x
    given a model.

    For a classification model, the predicted class for x is returned.
    For a regression model, the function value of x calculated using
    the model is returned. For an one-class model, +1 or -1 is
    returned.

- Function: void svm_cross_validation(const struct svm_problem *prob,
	const struct svm_parameter *param, int nr_fold, double *target);

    This function conducts cross validation. Data are separated to
    nr_fold folds. Under given parameters, sequentially each fold is
    validated using the model from training the remaining. Predicted
    labels (of all prob's instances) in the validation process are
    stored in the array called target.

    The format of svm_prob is same as that for svm_train().

- Function: int svm_get_svm_type(const struct svm_model *model);

    This function gives svm_type of the model. Possible values of
    svm_type are defined in svm.h.

- Function: int svm_get_nr_class(const svm_model *model);

    For a classification model, this function gives the number of
    classes. For a regression or an one-class model, 2 is returned.

- Function: void svm_get_labels(const svm_model *model, int* label)

    For a classification model, this function outputs the name of
    labels into an array called label. For regression and one-class
    models, label is unchanged.

- Function: void svm_get_sv_indices(const struct svm_model *model, int *sv_indices)

    This function outputs indices of support vectors into an array called sv_indices.
    The size of sv_indices is the number of support vectors and can be obtained by calling svm_get_nr_sv.
    Each sv_indices[i] is in the range of [1, ..., num_traning_data].

- Function: int svm_get_nr_sv(const struct svm_model *model)

    This function gives the number of total support vector.

- Function: double svm_get_svr_probability(const struct svm_model *model);

    For a regression model with probability information, this function
    outputs a value sigma > 0. For test data, we consider the
    probability model: target value = predicted value + z, z: Laplace
    distribution e^(-|z|/sigma)/(2sigma)

    If the model is not for svr or does not contain required
    information, 0 is returned.

- Function: double svm_predict_values(const svm_model *model,
				    const svm_node *x, double* dec_values)

    This function gives decision values on a test vector x given a
    model, and return the predicted label (classification) or
    the function value (regression).

    For a classification model with nr_class classes, this function
    gives nr_class*(nr_class-1)/2 decision values in the array
    dec_values, where nr_class can be obtained from the function
    svm_get_nr_class. The order is label[0] vs. label[1], ...,
    label[0] vs. label[nr_class-1], label[1] vs. label[2], ...,
    label[nr_class-2] vs. label[nr_class-1], where label can be
    obtained from the function svm_get_labels. The returned value is
    the predicted class for x. Note that when nr_class = 1, this
    function does not give any decision value.

    For a regression model, dec_values[0] and the returned value are
    both the function value of x calculated using the model. For a
    one-class model, dec_values[0] is the decision value of x, while
    the returned value is +1/-1.

- Function: double svm_predict_probability(const struct svm_model *model,
	    const struct svm_node *x, double* prob_estimates);

    This function does classification or regression on a test vector x
    given a model with probability information.

    For a classification model with probability information, this
    function gives nr_class probability estimates in the array
    prob_estimates. nr_class can be obtained from the function
    svm_get_nr_class. The class with the highest probability is
    returned. For regression/one-class SVM, the array prob_estimates
    is unchanged and the returned value is the same as that of
    svm_predict.

- Function: const char *svm_check_parameter(const struct svm_problem *prob,
                                            const struct svm_parameter *param);

    This function checks whether the parameters are within the feasible
    range of the problem. This function should be called before calling
    svm_train() and svm_cross_validation(). It returns NULL if the
    parameters are feasible, otherwise an error message is returned.

- Function: int svm_check_probability_model(const struct svm_model *model);

    This function checks whether the model contains required
    information to do probability estimates. If so, it returns
    +1. Otherwise, 0 is returned. This function should be called
    before calling svm_get_svr_probability and
    svm_predict_probability.

- Function: int svm_save_model(const char *model_file_name,
			       const struct svm_model *model);

    This function saves a model to a file; returns 0 on success, or -1
    if an error occurs.

- Function: struct svm_model *svm_load_model(const char *model_file_name);

    This function returns a pointer to the model read from the file,
    or a null pointer if the model could not be loaded.

- Function: void svm_free_model_content(struct svm_model *model_ptr);

    This function frees the memory used by the entries in a model structure.

- Function: void svm_free_and_destroy_model(struct svm_model **model_ptr_ptr);

    This function frees the memory used by a model and destroys the model
    structure. It is equivalent to svm_destroy_model, which
    is deprecated after version 3.0.

- Function: void svm_destroy_param(struct svm_parameter *param);

    This function frees the memory used by a parameter set.

- Function: void svm_set_print_string_function(void (*print_func)(const char *));

    Users can specify their output format by a function. Use
        svm_set_print_string_function(NULL);
    for default printing to stdout.

Java Version
============

The pre-compiled java class archive `libsvm.jar' and its source files are
in the java directory. To run the programs, use

java -classpath libsvm.jar svm_train <arguments>
java -classpath libsvm.jar svm_predict <arguments>
java -classpath libsvm.jar svm_toy
java -classpath libsvm.jar svm_scale <arguments>

Note that you need Java 1.5 (5.0) or above to run it.

You may need to add Java runtime library (like classes.zip) to the classpath.
You may need to increase maximum Java heap size.

Library usages are similar to the C version. These functions are available:

public class svm {
	public static final int LIBSVM_VERSION=321;
	public static svm_model svm_train(svm_problem prob, svm_parameter param);
	public static void svm_cross_validation(svm_problem prob, svm_parameter param, int nr_fold, double[] target);
	public static int svm_get_svm_type(svm_model model);
	public static int svm_get_nr_class(svm_model model);
	public static void svm_get_labels(svm_model model, int[] label);
	public static void svm_get_sv_indices(svm_model model, int[] indices);
	public static int svm_get_nr_sv(svm_model model);
	public static double svm_get_svr_probability(svm_model model);
	public static double svm_predict_values(svm_model model, svm_node[] x, double[] dec_values);
	public static double svm_predict(svm_model model, svm_node[] x);
	public static double svm_predict_probability(svm_model model, svm_node[] x, double[] prob_estimates);
	public static void svm_save_model(String model_file_name, svm_model model) throws IOException
	public static svm_model svm_load_model(String model_file_name) throws IOException
	public static String svm_check_parameter(svm_problem prob, svm_parameter param);
	public static int svm_check_probability_model(svm_model model);
	public static void svm_set_print_string_function(svm_print_interface print_func);
}

The library is in the "libsvm" package.
Note that in Java version, svm_node[] is not ended with a node whose index = -1.

Users can specify their output format by

	your_print_func = new svm_print_interface()
	{
		public void print(String s)
		{
			// your own format
		}
	};
	svm.svm_set_print_string_function(your_print_func);

Building Windows Binaries
=========================

Windows binaries are available in the directory `windows'. To re-build
them via Visual C++, use the following steps:

1. Open a DOS command box (or Visual Studio Command Prompt) and change
to libsvm directory. If environment variables of VC++ have not been
set, type

""C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\vcvars64.bat""

You may have to modify the above command according which version of
VC++ or where it is installed.

2. Type

nmake -f Makefile.win clean all

3. (optional) To build shared library libsvm.dll, type

nmake -f Makefile.win lib

4. (optional) To build 32-bit windows binaries, you must
	(1) Setup "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat" instead of vcvars64.bat
	(2) Change CFLAGS in Makefile.win: /D _WIN64 to /D _WIN32

Another way is to build them from Visual C++ environment. See details
in libsvm FAQ.

- Additional Tools: Sub-sampling, Parameter Selection, Format checking, etc.
============================================================================

See the README file in the tools directory.

MATLAB/OCTAVE Interface
=======================

Please check the file README in the directory `matlab'.

Python Interface
================

See the README file in python directory.

Additional Information
======================

If you find LIBSVM helpful, please cite it as

Chih-Chung Chang and Chih-Jen Lin, LIBSVM : a library for support
vector machines. ACM Transactions on Intelligent Systems and
Technology, 2:27:1--27:27, 2011. Software available at
http://www.csie.ntu.edu.tw/~cjlin/libsvm

LIBSVM implementation document is available at
http://www.csie.ntu.edu.tw/~cjlin/papers/libsvm.pdf

For any questions and comments, please email cjlin@csie.ntu.edu.tw

Acknowledgments:
This work was supported in part by the National Science
Council of Taiwan via the grant NSC 89-2213-E-002-013.
The authors thank their group members and users
for many helpful discussions and comments. They are listed in
http://www.csie.ntu.edu.tw/~cjlin/libsvm/acknowledgements

 

source :

https://github.com/cjlin1/libsvm

Bibliothek zum Lesen von ROS-Taschen in Matlab

Eine Tasche ist ein Dateiformat in ROS für ROS-Nachrichtendaten zu speichern. Taschen – so genannt wegen ihrer .bag Erweiterung – eine wichtige Rolle bei der ROS, und eine Vielzahl von Tools geschrieben wurden, können Sie speichern, verarbeiten zu lassen, analysieren und visualisieren.

ÜBERBLICK

matlab_rosbag ist eine Bibliothek zum Lesen von ROS-Taschen in Matlab. Es nutzt die C ++ API ROS gespeicherten Nachrichten zu lesen und Meta-Daten über den Beutel (zum Beispiel Thema info und Nachrichtendefinitionen ähnlich wie rosmsg zeigen und rosbag info) können erhalten. Die Bibliothek enthält auch Methoden für die TF-Nachrichten arbeiten. ROS braucht nicht nicht auf einem Computer installiert sein, um diese Bibliothek zu verwenden.

Sie können den kompilierten Code für Mac und Linux von Github herunterladen:

https://github.com/bcharrow/matlab_rosbag/releases

Wenn Sie die Dinge zusammenstellen wollen selbst sehen

COMPILING.md.

WARNUNG: Diese Bibliothek wird nicht funktionieren, wenn Ihre Maschine Big-Endian ist.

VERWENDUNG

 

Laden Sie die Bibliothek und fügen Sie das Basisverzeichnis zu Ihrem Matlab Pfad (das heißt, fügen Sie das Verzeichnis, das + ros androsbag_wrapper enthält). Sie sollten nun in der Lage sein, ros.Bag zugreifen zu können, eine Matlab-Klasse, die ROS-Nachrichten zu Themen aus einer Tasche zu lesen und sie als structs zurück. Mehrere Nachrichten werden als Zellen-Arrays zurückgeführt . Um eine Vorstellung davon zu bekommen, wie der Code funktioniert zum Beispiel Verzeichnis gehen und schauen auf bag_example.m und tf_example.m

Die Felder in den Strukturen sind garantiert in der gleichen Reihenfolge, wie sie in der Nachrichtendefinition sind. Es gibt auch einige Dienstprogramme für die Nachrichten von structs auf Matrizen zu konvertieren.

HINWEIS: Vor der Version 1.2, Taschen speichern keine Nachrichtendefinitionen . Als solche matlab_rosbag wird nichts mit diesen alten Säcke tun können. Sie nicht zu kümmern, wenn Sie noch eine nicht sehr alte Version von ROS unter Verwendung von (das heißt, C Schildkröte und später).

 

Ubuntu later than 10.04

Matlab Schiffe mit einer alten Version der Standard-Bibliothek C ++, die Sie benötigen, um loszuwerden. Um dies zu tun, diese Schritte von der Kommandozeile wie folgt vor:

 

cd /usr/local/MATLAB/<version>/sys/os/<system>
mkdir backup
mv libstdc++* backup

Bei einigen Versionen von Ubuntu und Matlab, die libstdc ++ Bibliotheken können an anderer Stelle angeordnet sein,

(e.g., /usr/local/MATLAB/bin).

 

Die gleichen Schritte sollte das Problem beheben.

LIZENZ

matlab_rosbag wird unter der BSD-Lizenz lizenziert.

 

QUELLE

https://github.com/bcharrow/matlab_rosbag