Projects

Alternative Input: Gaze Tracking with Ordinary Webcam

Alternative Input: Gaze Tracking with Ordinary Webcam

This project, initiated on June 1, 2021, aims to create an affordable gaze tracking solution using an ordinary webcam. The first version, written in 2020, employed a basic algorithm mapping facial movements to screen coordinates, but it proved unsuitable for broad use due to its complexity and user discomfort.

To enhance the user experience, I transitioned to a neural network-based approach. This solution, powered by MediaPipe for face detection, feeds images of the user's eyes into a neural network to track eye movements. This method reduces the need for head movement, offering a more natural interaction.

Key Advantages:

  • Improved User Convenience: Tracks pupil movement for more intuitive control.
  • Lightweight Neural Model: Ensures efficiency even on low-cost computers.
  • Reduced Head Movement: Minimizes physical strain during use.

Future plans include a large-scale data collection to develop a universal model and further fine-tuned for individual users.

GitHub Repository.

Initial Version (YouTube Video)

Neural Network Solution (YouTube Video).

Tags: Gaze TrackingAIMediaPipeAccessibilityPython

User Country Analytics

User Country Analytics

During this project, I had learn the basics of Laravel and Redux (in ReactJS) while simultaneously exploring the capabilities of AI and its potential to help people with disabilities. The focus was on using AI assistants (ChatGPT and Copilot) to aid in the development process. In contrast to other similar projects, special attention was paid to code maintainability and testability. The final version of the project included over 30 tests for the backend and over 50 tests for the frontend. The goal was not only to create an application but also to ensure that the code could be easily maintained and extended in the future.

Effective collaboration between humans and AI was also a key consideration in the project. While AI can augment our abilities and help us overcome limitations, it cannot replace the need for expert knowledge and experience. The project highlighted the importance of balancing AI's potential with human expertise to achieve the best outcomes.

Overall, the project demonstrated the potential for AI to revolutionize the way people with disabilities work and interact with the world around them. While there are still challenges to overcome, the benefits of using AI to augment our abilities are significant and undeniable. With continued exploration and development, AI has the potential to transform the lives of people with disabilities and improve accessibility for all.

GitHub repository

Tags: PHPLaravelReactReduxAI AssistantsAccessibility

Feeding Robot

Feeding Robot

This project aims to create a feeding robot to assist individuals with mobility impairments in feeding themselves independently. The project will use a robotic manipulator and a webcam to develop a system that can recognize markers, reconstruct the robot's position in space, move the manipulator, and recognize the mouth and surroundings. The project is important as it offers a cost-effective and practical solution to a problem faced by many individuals with mobility impairments, improving their quality of life and mental health. Additionally, the project contributes to the development of robotics technology in healthcare.

The project is temporarily on hold due to its complexity, as it involves advanced topics such as computer vision, reinforcement learning, and more. Only the first stage of the project has been completed. However, the project was still valuable as it provided experience in object detection and localization using AI. Also, it was my very first step into the application of robotics technology and AI in healthcare.

GitHub project page

Video

Tags: Computer VisionPythonAIAccessibility

Distributed Social Media Monitoring System

Distributed Social Media Monitoring System

I have created a distributed social media monitoring system for an SMM agency that utilizes several programming languages. The project consists of multiple sub-projects, each with its own set of tests to ensure quality and reliability. The system is designed to constantly monitor social media and gather data on people's music preferences, conduct analysis, and store information in a customized database.

The use of different programming languages allows for flexibility and versatility in the system's design and implementation. Each language is chosen based on its strengths and compatibility with the specific task it is intended to perform. Java and C++ are used for the core functionality of the system, while Python and PHP are used for coordination and administration tasks. The system is designed to be distributed across multiple servers, which allows for scalability and reliability.

Despite being resource-intensive, I optimized the system to work on a weak servers. Four servers parse social media, and one stores the database, conducts analysis, and search. Every day, they parse gigabytes of data, extract new events, and store them in the database. Traditional databases like MySQL were unable to handle the workload, so I created a custom database that is optimized for the client's specific needs. The project includes the implementation of several advanced algorithms, including multi-threaded fuzzy search and count-min sketch.

This project helps the SMM agency stay on top of emerging trends and target their marketing efforts more effectively. The customized database, optimized for the client's needs, is essential to the project. The system's complex algorithms are groundbreaking, demonstrating my expertise in optimizing resource-intensive systems and developing customized solutions. Overall, the project showcases my ability to deliver innovative solutions that meet my client's unique needs.

Tags: web scrapingdistributed systemsalgorithmsjavac++

Hungry Geese

Hungry Geese

I have developed a bot using Q-learning and REDQ algorithms for a competition. My bot has achieved a score of 750 points, while other bots based on Q-learning, on average, achieved 700. This became possible thanks to numerous AI improvements and its training process.

Q-learning is a reinforcement learning algorithm that enables the bot to learn the optimal action in a given state by maximizing the expected reward. The REDQ algorithm combines Q-learning and Double Q-learning to enhance the bot's performance in complex environments with high-dimensional state spaces.

Through the use of these algorithms, the bot was able to adapt to the changing environment and make strategic decisions to achieve the highest possible score. The implementation of Q-learning and REDQ has proven to be effective in improving the bot's performance and providing a competitive edge in the competition.

Overall, the success of this project demonstrates the potential of reinforcement learning algorithms in developing intelligent agents for various applications, including robotics and decision-making systems.

GitHub project page

Games replays

Video

Tags: AIReinforcement LearningPythonKaggle

Deep Maze

Deep Maze

The project focuses on the Q-learning approach in a POMDP environment, which presents greater challenges than the standard MDP environment. The objective is to train an agent to navigate a maze effectively and maximize exploration of the environment, similar to a real-world scenario with a robot in an unknown physical environment.

The study emphasizes the opportunities and challenges of using ensemble methods and distillation techniques in reinforcement learning. The findings demonstrate that combining multiple agents can result in more reliable and robust performance, while copying the Q-value distribution of an ensemble can be an effective knowledge transfer method.

GitHub Repository

Video 1

Video 2

Tags: AIReinforcement LearningPython