Skip to content

AlexLens is a comprehensive Image Classification and Transfer Learning application, specifically designed for heterogeneous computing platforms. It features a custom-built AlexNet Neural Network for in-depth analysis and learning.

Notifications You must be signed in to change notification settings

eismont21/AlexLens

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AlexLens

AlexLens is an Image Classification and Transfer Learning program tailored for heterogeneous platforms, with a custom-built Neural-Net-Classification system. This project is the brainchild of a collaborative effort at KIT by Viet Pham, Dmitrii Seletkov, Aleksandr Eismont, Jakub Trzciński, and Friedemann Claus.

Features

  • Custom AlexNet Implementation: Built from the ground up to provide a deep understanding of neural networks.
  • Heterogeneous Computing Platforms: Optimized for different platforms, primarily CPU and Intel Movidius Neural Compute Stick with potential extensions for GPU and other hardware.
  • GUI-Based Interaction: Intuitive user interface built with Qt5, allowing seamless interaction with the neural network system.
  • Transfer Learning Capabilities: Employs PyTorch for adaptable and efficient transfer learning processes.
  • Modular Design: The system is structured into distinct modules for neural networks, GUI, management, platform-specific operations, and training.
  • Docs: Extensive documentation for the project.

System Requirements

  • OS: Ubuntu 18.04
  • RAM: 8 GB
  • CPU: Core-i5 4600 or similar
  • GPU: Basic onboard graphics (higher capabilities for GPU-specific operations)
  • Additional: Up to four Intel Movidius Neural Compute Sticks (Gen 1 officially supported, Gen 2 also compatible)

Installation and Setup

To set up AlexLens, you need to:

  1. Download the "resources" from here.
  2. Unzip and place them in the AlexLens folder.
  3. Install the necessary libraries, including Qt5, Eigen, Torch, OpenVINO, OpenCL, HDF5, and Libusb.

Optionally, we also provide a training dataset as an example here.

The necessary libraries are:

Library Usecase Download/ Tutorial Comments
Qt5 GUI Download Page You can skip the registration. In the installer, select under "Qt 5.13.0": Desktop gcc 64-bit, Sources, Qt Charts, Qt Data Visualization, Qt Debug Information Files and under "Developer and Designer Tools": Qt 3D Studio 2.4.0
Eigen Matrices and vectors sudo apt-get install libeigen3-dev that's all
Torch Transfer Learning and CPU-Classification of other Neural Networks than AlexNet Download Unzip and move libtorch folder to AlexLens/thirdparty
OpenVINO ASIC-Sticks and the included OpenCV Tutorial Go through steps 1,2,3,5,7 and 9. After Step 9 you should have a folder named "inference_enginge_samples_build" in your /home/"username" directory
OpenCL Low-level access to the GPU sudo apt update sudo apt install ocl-icd-opencl-dev sudo apt-get install beignet Confirmed to work on Intel HD Graphics of 4th, 7th and 8th generation
HDF5 To read the weights file with a good performance sudo apt-get install libhdf5-dev that's all
Libusb For dynamically detecting the amount of USB-devices used sudo apt-get install libusb-1.0-0-dev that's all

About

AlexLens is a comprehensive Image Classification and Transfer Learning application, specifically designed for heterogeneous computing platforms. It features a custom-built AlexNet Neural Network for in-depth analysis and learning.

Topics

Resources

Stars

Watchers

Forks

Languages

  • C++ 88.3%
  • Python 5.5%
  • CMake 4.4%
  • QMake 1.3%
  • C 0.5%