Fake News Source Distinguisher
- Performed hypothesis testing and successfully proved with a p-value of 0.03 that fake news/propaganda websites have fundamentally different lexical characteristics compared to unbiased news sources.
- Analyzed the lexical diversity, sentiment scores and readability levels of 200 articles, each from over 1,500 news source websites, using BeautifulSoup for web scraping and NLTK for NLP in Python.
Recommendation System for Reddit
- Developed a recommendation system for Reddit using collaborative filtering by measuring the Jaccard similarity between subreddits.
- Analyzed subscriber and commenter information of over 1 million subreddits encompassing 230 million registered users from over 1 TB of Reddit data, using Apache Hadoop.
Deep Q-Learning on Swing Copters and Helicopter
- Developed Python versions of Swing Copters and Helicopter using Pygame and developed reinforcement learning agents to play the games by estimating the expected reward using a Q-function, using Deep Convolutional Neural Networks.
- Achieved consistent growth in learning, rendering the RL agents capable of attaining proficiency surpassing that of humans. Accomplished the above in Python using OpenCV for visual input and TensorFlow for the CNN.
QoS Constrained Optimal Sink and Relay Placement in Planned Wireless Sensor Networks
The problem was to optimally choose positions for sinks and relays from a pool of potential sink locations and potential relay locations, given a set of sensor locations, such that the hop count from any source to any sink is bounded by an upper limit, and, in addition to this, find the minimum cost among all such feasible networks.
We proposed a polynomial time approximation algorithm (SmartSelect) based on a relay placement algorithm proposed in our earlier work, along with a modification of the greedy algorithm for weighted set cover.
We also came up with a polynomial time heuristic algorithm that improved upon the solution obtained by the aforementioned one, by pruning each sink from its solution set and running the whole algorithm repeatedly over the remaining sinks until there was no improvement in cost or the user-set iteration limit was reached.
High Level Synthesis in Scala to exploit Assignment Decision Diagrams from input description in Chisel
Developed a Scala compiler plugin to generate Verilog output with all decision blocks built exclusively using Assignment Decision Diagrams from an input layout description in Chisel, a hardware construction language embedded in Scala. Minimized the number of Assignment Decision Diagrams used by implementing ESPRESSO and Linear Programming.
Real-time Illegal Parking Detection in Daylight Environments
Implemented an object tracking algorithm using adaptive background subtraction techniques in MATLAB and achieved perfect results when benchmarked against Advanced Video and Signal-based Surveillance, 2007, and Performance Evaluation of Tracking and Surveillance, 2006, and 2007 datasets. Background subtraction here proved to be more challenging since lighting conditions kept changing during the daytime and necessitated the requirement of a dynamically-adaptive background. Implemented an algorithm to morph static parts of consecutive images and replace parts of the background when it encountered consecutive frames with a foreground blob area larger than a certain threshold. Reduced the number of false positives by allowing the background to adapt to different lighting conditions, as opposed to a static background, and hence warranted robustness.
Occlusion Tolerant Abandoned Object Detection in Crowded Environments
Implemented an algorithm to perform background subtraction and object tracking by using selective sampling and combining multiple consecutive sampled frames to reduce noise and detect the abandoned objects even under occlusion by other moving foreground parts. Designed it to show a warning sign around the potential abandoned objects thus detected in order to assist security in detecting them. Achieved perfect results when benchmarked against Advanced Video and Signal-based Surveillance, 2007, and Performance Evaluation of Tracking and Surveillance, 2006, and 2007 datasets.
Quadcopter
Assembled a Quadcopter using an aluminium frame, an Arduino Uno, an accelerometer from a Nintendo Wii Nunchuk, a gyroscope from a Nintendo Wii Motion Plus, brushless motors, electronic speed controllers, propellers, an appropriate lipo battery and a 6-channel radio transmitter/receiver pair. Programmed the Arduino Uno's ATMega328 based on the Aeroquad open source project and used feedback from the motors, accelerometer and gyroscope to accomplish stable flight.