Git Product home page Git Product logo

eigenfaces's Introduction

Eigenfaces

R Project by Marcel Fischer, Ida Jandl and Aaron Osburg

within the course "Programming Language R" - Summersemester 2020.

Table of contents

General info

This Project contains the principle component method on a large set of images of different human faces (here: Olivetti Dataset). The derived eigenvectors are called eigenfaces. They can be used for human face recognition.

Technologies

Project is created with:

  • R Version: 4.0.2

Setup

To run this project, we recommend using RStudio.


Illustration

Nine examples of the images in the Olivetti Dataset: (plots created with this code.)

Example of Images in Olivetti Dataset


First nine eigenfaces of the Olivetti Dataset: (plots created with this code.)

Nine Eigenfaces of the Olivetti Dataset


Projection of images onto the first two eigenfaces: (plots created with this code.)

Projection on eigenfaces Projection on eigenfaces


Furthermore, a classifcation algortihm is implemented. Here it is performed on picture 33 of the dataset.

3 Closest neighbor


Additional content:

  • Shiny App
  • Vignette
  • Extensive documentation

We recommend reading the vignette for additional details.

Sources

This Project is inspired by Marinovsky F., Wagner P., Gesichtserkennung mit Eigenfaces, FH Zittau/Görlitz


eigenfaces's People

Contributors

ida-droid avatar osburg avatar mafi2 avatar

Stargazers

Christof Schötz avatar

Watchers

 avatar

eigenfaces's Issues

Unklarheit zur Hauptkomponentenanalyse

Wie in dieser Arbeit beschrieben, wird nicht das Eigenwertproblem für C = A * A^T gelöst, sondern stattdessen das für C' = A^T * A. Aus den Eigenvektoren C' lässt sich eine (unechte!) Teilmenge der Eigenvektoren von C bestimmen. Damit werden als Eigenfaces diejenigen Eigenvektoren von C (bzw. C') bestimmt, die die größten Eigenwerte (innerhalb der Teilmenge) haben. Da jedoch nur eine unechte Teilmenge der Eigenvektoren von C betrachtet wird, ist aber nicht sichergestellt, dass es sich tatsächlich um die Eigenvektoren von C mit den größten Eigenwerten handelt (d.h. die optimalen Eigengesichter sind). (Oder übersehe ich hier etwas?)
Das beschriebene Problem lässt sich aber glaube ich nicht so leicht lösen, da das obige Vorgehen sehr viel Rechenzeit spart.

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.