Aman's Projects
Artificial Data Generation
One of the greatest challenges of machine learning is the lack or difficulty to gather enough data to train neural networks and prevent overfitting to small datasets.
Data Augmentation proposes a solution to this problem by altering small datasets to create new, similar data.
However, current approaches to data augmentation often revolve around filters and transformations which affect the entirety of an image, often in unintended ways while also changing aspects such as shape and leaving buffered regions. This can lead to multiple problems such as:
Training data needs to be hand picked and sorted, requiring intensive manual labor
Filters & transformations may discard important color information and thus are not always a label-preserving transformation
The pros of color augmentation such as countering luminance bias is suppressed by the way it affects the rest of the image
Thus, this project attempts to
1) Create and train an image recoloring and perspective augmentation model in order to augment small datasets into larger image datasets
2) See if artificial data improves network generalizability and prevents overfitting
Learn More
Word Finder
I developed an android application named “Word Finder” and the objective of this game is for one to try and find as many words as possible in a randomly generated level from 6 english letters. I was interested in this project because I wanted to implement API’s and other data structures in an interactive way and efficiently use data and hardware of the phone in multithreaded applications.
IDE and API used:
Android Studio
FreeDictionaryAPI
How the App works?
The app is quite simple. One has to combine a set of 6 letters in as many ways possible to try and create words. If the word is valid, the score increases and the word is added to a list of found words they can scroll through. The app allows the user to interact with the words they found, selecting specific words they are interested in seeing the definitions of. The app implements the Oxford dictionary API to search and display the definitions for each word, and then stores these definitions for later use or reference. If one is unable to come up with a word, they are able to press the hint button, which pulls up a definition of a possible word they can create and displays it on the screen. There is a minimum score which has to be reached for each level in order for that score to be registered as a new high score, this score being based on the number of words possible to create and the weightage of the letters used.
Database and API
The application uses the FreeDictionaryAPI in order to find and display the definitions for words used throughout the game, and it uses in-built data structures to store the database of 58400 + words that are used to generate levels and word lists.
Possible improvements
Using more threading to improve performance by decreasing the load on the main thread whill will also improve compatibility with older devices
Change the resolution and formatting to support more devices
Improve UI and organization of code
Add more art for backgrounds to offer variance
Android Application for Warehouse Management Transactions
For my internship at Arni Coorporation, I was tasked with the development of a prototype android application that could allow mobile devices to scan warehouse item qr and bar codes and then facilitate the execution of Warehouse Management transactions (Inventory Inquiry and Transfer ) with a user friendly interface to send those transactions in real time to Oracle Cloud ERP (Oracly Fusion) using Webservice APIs.
Swerve Drive Simulation
Swerve Drive is a type of drivetrain that the Monta Vista Robotics Team that I am a part of was considering for future robot drivetrains. However, we had no experience with programming or building them, so I decided to independently research and program a swerve drive subsystem with robot simulation so we could test and explore swerve drive. This project uses WPIlib for VScode and can be run for both simulation and on actual hardware.