Prasad Subrahmanya
GitHub Profile
A Java-based face recognition system that uses eigenfaces for face recognition under various conditions including expressions, occlusions, and pose variations.
- Face recognition under different conditions:
- Facial expressions
- Occlusions (e.g., glasses)
- Pose variations (up to 60 degrees)
- Interactive GUI for:
- Loading and processing face images
- Training the recognition system
- Testing face recognition
- Visualizing results
- Support for batch processing
- Results visualization with 3D charts
- Uses eigenfaces for face recognition
- Implements Two-Stage Classification and Detection (TSCD)
- Supports 3D face visualization
- Uses Java 3D for 3D rendering
- MySQL database for user management
- Java Development Kit (JDK) 8 or higher
- Maven 3.6 or higher
- MySQL 5.7 or higher
- Java 3D API
-
Clone the repository:
git clone https://github.com/prasadus92/face-recognition.git cd face-recognition
-
Install Java 3D API:
- Download Java 3D API from Oracle's website
- Install it on your system
- Add the Java 3D libraries to your system's Java library path
-
Set up MySQL:
CREATE DATABASE face_recognition; USE face_recognition; CREATE TABLE users ( UserName VARCHAR(30), Email VARCHAR(50), Phone VARCHAR(10), Password VARCHAR(20) );
-
Install JAI libraries:
- Download JAI libraries from Oracle's website
- Place the following files in the
lib
directory:jai_core.jar
jai_codec.jar
mlibwrapper_jai.jar
-
Build the project:
mvn clean install
-
Start MySQL server
-
Run the application:
mvn exec:java -Dexec.mainClass="src.Main"
- Install Microsoft Visual C++ Redistributable Package (vcredist_x86.exe)
- Copy the DLLs from
platform-specific/windows/
to your system's Java library path:copy platform-specific\windows\*.dll %JAVA_HOME%\bin
- Install required system libraries:
sudo apt-get install libj3d-java
- Install required system libraries:
brew install java3d
src/main/java/src/
- Source codeMain.java
- Main application entry pointFace.java
- Face recognition core logicFeatureSpace.java
- Feature extraction and analysisTSCD.java
- Two-Stage Classification and DetectionFaceBrowser.java
- Face visualization component
src/main/resources/
- Application resourcesface.png
- Application iconbkd.png
- Background image
lib/
- Local dependencies- JAI libraries
platform-specific/
- Platform-specific fileswindows/
- Windows-specific DLLs
pom.xml
- Maven project configurationREADME.md
- Project documentation
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the License.txt file for details.
- Bosphorus Database for testing data
- Java 3D API team
- All contributors to the project