# Gia Huỳnh

I code stuff.

## Skillset & Experience

### Languages

- Python

  Experience: A LOT (Like a lot).
  Used extensively for multiple projects.

- C++

  Experience: 100+ Hours
  • Competitive programming experience, 1400 elo on codeforce.
  • Coding OpenGL and OpenCv2 in C++.

- SQL/NoSQL

  Experience: 100+ Hours
  • Experience writing queries and deploying SQL Server, SQLite, MongoDB with Docker container extensively on multiple projects.

- Lisp

  Experience: 10+ Hours
  • University AI course requires all homework done in Lisp, Evolution Algorithm, Neural Network,...

- JavaScript

  (Node.Js, React, Vanilla)
  Experience: 50+ Hours
  • Mostly using VanillaJs to do front end tasks.
  • A few university projects helped me learn NodeJs and React for server-side rendering, user login, and state management.

- HTML + CSS

  Experience: Yes
  • I know how to center a div.

- C#

  Experience: 10+ Hours
  • Unreal Engine and Unity.

### Libraries

- PyTorch

  Experience: 100+ Hours
  • Train from scratch, finetune, and modify PyTorch models.

- OpenCv (C++/Python)

  Experience: 100+ Hours
  • Frequently utilized OpenCV for image processing tasks.

- MLflow

  Experience:
  • Template

- Scikit-Learn

  Experience:
  • Template

- Pandas

  Experience:
  • Template

- Numpy

  Experience:
  • Template

- Flask

  Experience:
  • Template

- PyQT

  Experience:
  • Template

### Tools and Misc.

- Git

  Experience:
  • Template

- Docker

  Experience:
  • Template

- Aws

  Experience:
  • Template

- PostgreSQL

  Experience:
  • Template

- SQLite

  Experience:
  • Template

- Jira

  Experience:
  • Template

- Postman

  Experience:
  • Template

- Latex

  Experience:
  • Template

- Linux

  Experience:
  • Template

## Featured (Practical) Projects

- ### IO Shield 3D Model Generator

  Generate 3D model from rear case image
  Made like a thousand dollar from this project lmao, selling custom made 3D printed IO Shield, decimating the "metal io shield" market.

- ### High vs Low bitrate audio comparison

  Generate lower bitrate version of user uploaded audio file, then play both version on left/right ear to help user compare in real time the difference in bitrate.

- ### 3D SBS VR Video Generator.

  Convert any videos into 3D Side-By-Side Virtual Reality video.
  Ultilizing Deep Learning Depth Estimation models and Computer Vision algorithms.
  Motivated by porn, got too hooked into coding the program that I forgot about any ulterior motive.

## Projects

### NLP

- Text Summarization

  • Trained Google's Transformer T5 model on BillSum dataset to summarize an input paragraph.
  • The model achieves equal score to Google’s original T5 paper.
  • Built a Django-hosted web page for demonstration, SQLite to store summarization history.

- News Recommendation/Plagiarism Check

  • Extracted the Encoder Vector from the Text Summarization model to represent article content.
  • Compared the cosine similarity of the vectors of multiple news articles to get the most relevant articles based on the one you pick.
  • Adapted the system for Plagiarism detection based on textual similarity.

### Computer Vision

- Indoor Navigation for the Visual Impaired

  • Intergrated Yolo model to backend server to detect object in image.
  • Added Opencv Object Tracking to reduce computation needed for video processing.
  • Reduced computation needed by 95% while maintaining accuracy.
  • Combined with Depth Estimation model to compute a suitable path for collision avoidance.

- Image Captioning

  • Combined Vision Transformer with Language Model to create a locally hosted image/video captioning server that works with both mobile phone app and desktop web page.
  • Hosted the demonstration page on RESTful Flask server with PostgreSQL database.
  • Integrated HuggingFace’s ViT model to the aforementioned Flask server.
  • Ulitlizing React on the desktop webpage to communicate with the server, with user's registration and login scheme, user private directory, private links, captioning history…

- Aruco Marker Tracking

  • Used OpenCv on C++ to track a paper marked with Aruco Marker and normalize the position of content inside it, regardless of orientation and photo angle.
  • Application in human pose tracking, QR code reading, courier service label reader.

- VR Video Generator

  • Adapted ResNet model to train on custom dataset to segment “person” class from a video.
  • Combined with MiDaS depth estimation to create an estimate of depth in a video.
  • Aiming to generate a side-by-side VR videos to stream on Oculus Quest.

- Simple Image Segmentation

  • Trained a U-Net Deep Learning model from scratch on the COCO dataset.
  • Enabled the model to segment classes of objects from each other in an image.

- SLIC SuperPixel Algorithm Visualization

  • Visualizing the generation of SuperPixel from image, showing the execution step-by-step of the SLIC algorithm.
  • Optimized the algorithm's speed with Numpy’s Matrix Multiplication instead of a traditional for-loop, yielding a 50% speedup compared to the original codebase.

- Image Perspective Correction

  • Forked an original, non-working repository for a JavaScript project about utilizing OpenCv2 on JavaScript to “reverse-perspective-warp” a 2D plane in an image.
  • Fixed bugs and logic errors to make it functional, and added a Flask demo for the algorithm.

- Laser to Tablet

  • Experimented with Python and OpenCV to process live webcam images, capturing laser dot movement and converting it into mouse movement for a remote, touch-free mouse operation.
  • Pre-processing input images to standardize it and reducing noises.

- Eigenfaces

  • Utilizing Principal Component Analysis to generate Eigenvectors from a dataset of face images, encoding each faces as a combination of Eigenfaces.
  • Usable in Facial Recognition System, or lossy data compression down by 70% of the original file size.

- 3D IO Shield model generator from images

  • Converted manufacturer’s IO shield image to a 3D printable model file.
  • Apply image morphology algorithms with OpenCv.
  • Deployed the application with Flask and Docker on a self hosted machine.

### General Project

- League of Legends Rehabilitation App

  • Developed an app checking for the user's total playtime and shut down the game if it exceeded the user-defined threshold to combat League of Legends gaming addiction.
  • Used PyQT for user interface.

- Fox and Geese Game Playing Agent

  • Gaming agent utilizing Alpha-Beta pruning search algorithm to efficiently play Fox and Geese board game.
  • Optimized heuristic contains Potential Field Function, Breath-First Search, Exploration-Exploitation Balancing.
  • Achives second place in class competition.

- Mini-Coursera Project

  • Developed a Coursera-style learning platform as part of a sophomore project.
  • Built a Node.Js application with Agile software development methodology.

### "Project"?

- Trivial University works

  • Coded the Baillie–PSW pseudoprime test for the BigNum problem in C++.
  • Coded BFS, DFS, A*, Heuristic search Algorithm in Python.
  • Excel folder content fuzzy search.
  • Competitive Programming experience.

- Plasma CNC building

  • Built an Arduino CNC Shield to build a homemade cnc machine, 3D printed an adapter for the plasma torch and control the torch pulse using Arduino, wrap the controller board in E.M.I resisting material and successfully deployed the machine for real world application.

- Self-hosting

  • Built a Web hosting/Nas machine running Debian Mint Linux.
  • Hands on experience with Apache, Nginx, SSL Certification creation, multi-drive configuring, Docker.

- Office work

  • University coursework required me to master basic office suite like Canva, Latex, Markdown, Microsoft Word/Excel/Powerpoint.

- 3D Engineering Software Experience

  • Used Sketchup quite a lot to do 3D modelling, made many practical models with it.

## Open Source Contribution

- Depth-Anything-V2
- SketchDreamer