Projects

  1. You Play God

    Other Contributors:

    Sayan Sil

    In this work, we present a novel Ecosystem Simulator where the user plays the role of God. Our toolkit helps the user mimic a real-world ecosystem where he can introduce new organisms with custom characteristics and also bring changes to the ecosystem and then observe their behavior and reaction to those changes. Thus the user can be looked upon as The God of the ecosystem who has the power to bring any change with which he can simulate the problems happening worldwide and gain valuable insights on how the organisms try to adapt to the change to ensure their survival. Studying the overall behavior of the ecosystem will provide us with a wealth of knowledge and be far better prepared on how we should be equipped to handle the future.

  2. Liquid Player

    Other Contributors:

    Sayan Sil
    Rajarshi Lahiri

    Liquid Player is a one-of-a-kind Media Player which recognises the emotion of the user and plays a song accordingly. Currently supported emotions are:

    • Happy
    • Sad
    • Neutral

    The songs have to be kept in three different folders namely happy, sad and neutral and based on the emotion, a random song is played from the corresponding folder. The song is played as long as long as a face is being detected in the feed obtained from the webcam. The moment no face is detected, the song pauses automatically and then resumes when a face is detected.

    Features separating this from an ordinary media player:

    • Emotion recognition
    • Automatic pause and resume based on face detection

    Hardware requirements:

    A mid-ranged GPU is highly recommended for getting a good FPS value of the CNN based face detector. We have developed and tested this throughly on a gaming laptop with a 4GB NVIDIA GeForce GTX 1050 card and an i7 7700HQ CPU with 8GB RAM running Linux.

    Libraries used:

    • We have used the libvlc C++ wrapper as the Media Player backend.
    • The Dlib C++ Library has been used for face detection. In our project we have used the CNN-based face detector available in Dlib shown in this example
    • The emotion recognition part has been done in Python using Keras.

    Targetted Customers

    The automatic pause feature will be very helpful for students listening to video lectures.

    Future Plans

    As of now, Liquid Player plays songs only from a collection of songs stored in the user’s filesystem. We will be trying to play songs from the internet in our future versions.

    Note:

    The emotion detection has been done in Python and the video playing and face detection has been done in C++. The integration of these two portions have been done using a system call: system("python3 realtime.py"); in test2.cpp. This has prevented the need of using any wrapper code.

    Have a look at a simple video demonstration of the project here:

  3. Insight

    Other Contributors:

    Sayan Sil

    The project Insight revolutionizes home and office security by absolutely scraping the need of any person staring at the CCTV footage 24x7. Our artificially intelligent system does that for you and notifies you only when you need to be, or when you want to be. Live monitoring, real-time object detection and classification with user flexibility is the crux of project Insight.

    All that is needed is a laptop or a desktop with an active internet connection and a mid-ranged graphics card capable of running CUDA which effectively narrows it down to NVIDIA Graphics cards; the CCTV camera apparatus and the smartphone(s) with an internet connection as well having our Insight app installed. But this is quite expected as NVIDIA GPUs are the industry standard when it comes to Deep Learning. It is to be noted that although we can run Insight purely on the CPU or on a low-end GPU but then it will no longer be realtime. As of now, Insight can run on Linux distributions only. On my laptop with the specs mentioned above, it runs at 15 - 21 fps. As it runs, at specific intervals set by the user, the contents of that frame are listed along with their time stamps in an Android app we have designed. The notifications are sent to all the phones having our app installed regardless of their location and are updated simultaneously.

    Future plans:

    We will be trying to incorporate more features like human-pose estimation and also proper documentation of the detected items and maintaining a proper database for it so that user can query the database efficiently and gain thorough information about the incidents happening at the surveillance area.

    Have a look at a simple demo video of the project in our College lab:

  4. Machizmo

    Other Contributors:

    Sayan Sil
    Abhirup Das

    This project features a head controlled mouse aimed to be an extension of one of our previous projects - Air Mouse. The movements of the cursor of the computer and also the left and right clicks can be controlled by the head movements of the user and the smoothness and speed is much better than the previous project. It has been tested in a Linux environment on multiple configurations - on a gaming laptop with i7 7700HQ processor with an NVIDIA GeForce GTX 1050 graphics card it gives a speed of about 55 FPS. On another 1½ year old laptop with an i3 6th gen processor and no dedicated graphics card it gives about 40 fps and on a new i5 8th gen laptop, a speed of about 50 FPS. A graphics card is optional but is recommended for higher speed and accuracy. Moreover we are also trying to integrate voice functionality so that the user can give voice commands also enable voice typing to make the project more versatile. The only essential hardware requirement is a decent web-cam.

    Future Plans

    We will be trying to add speech-to-text functionality to this project

    Have a look at the simple demo video I prepared:

  5. Traffic Congestion Detection

    Other Contributors:

    Sayan Sil
    Rajarshi Lahiri
    Soumyojit Chatterjee

    In this project, we aim to provide a mechanism to estimate the traffic congestion on a particular road. The live feed or a video recording (whichever is preferable) has to be captured by any means and fed to a centralized server where our project will be running. Our code constantly measures and outputs the congestion in terms of a percentage.

    Have a look at a demo video of the project:

  6. Movie Review Sentiment Analysis from Scratch

    Other Contributors:

    Abhirup Das

    This was our fifth semester project where we implemented a movie review sentiment analysis tool which rates the review and returns a fractional value between 0 and 1, where, 0 indicates negative and 1 being positive. For preprocessing, we have used the TFIDF algorithm from the Scikit-learn package. The main training has been done on an Artificial Neural Network (ANN) written in C++ and Arrayfire which is capable of accelerating Linear Algebra operations on CPU as well as GPU using Intel MKL, OpenCL and CUDA.

  7. Arbitrary Precision Linear Equation Solver

    This project solves linear equations with arbitrary precision, that is, there’s no limit to precision and huge numbers can be entered. The time taken for such inputs solely depends on the hardware it’s running on. To maintain high precision, the calculations are done in fractions. Answers like 0.5, 0.3333 etc are displayed as 1/2 and 1/3 respectively. The program is written completely in C++ and is powered by the Boost multiprecision library. The program can also find the inverse or determinant of a square matrix with the same accuracy. The technique of LUP decomposition has been used for all the computations. The program runs on command line.

  8. Enkhwipshan

    Other Contributors:

    Sayan Sil

    Enkhwipshan is a cross-platform lightweight encryption tool which encrypts large text files within seconds. It has a minimalist user interface running on Command line for fast accessibility. The best part is that we haven’t used any standard algorithm for encryption but used our own approach which gives good results with a very confusing and seemingly random encrypted text.