-
Introduction
-
Projects
2.1. Realtime Face Beautification
2.2. Hair Recolor
2.3. Synthetic Face Generation and Editing using StyleGAN3 and InterFaceGAN
2.4. Room Remodelling using Stable Diffusion
2.5. Removing Captions from Videos/GIFS
2.6. People Counting and Segmentation
2.7. Crowd Proximity Detection
2.8. Human Body Part Segmentation
2.9. Custom Object Detection using YOLOv8
2.10. Realtime Object Detection on Android/iOS
-
Contact
Meet Muhammad Abdullah, a passionate engineer with interest in mathematics, computer science and problem-solving. With his newfound knowledge and skillset in the field of AI and machine learning, he's looking towards solving real-world problems and helping businesses boost their productivity.
Not ready for that online interview!? No problem, this project is what you need!
Using Mediapipe in combination with OpenCV, this project smartly applies facial filters to remove spots and apply lipstick, etc. while maintaining real and authentic look. The model is lightweight so it can give around 30FPS on CPU. The next phase of the project would be a mobile version of this project with more added features.
input.mp4
purple.mp4
red.mp4
Using semantic segmentation and custom computer vision algorithms, this project can recolor your hair to any shade you desire.
First, a few images of synthetic faces are generated by StyleGAN3.
Figure 2.3.1: Synthetic faces generated using stylegan3Then, these latent codes of these images are editing using InterFaceGAN directions to achieve desired effect. Real images can also be easily edited using various GAN techniques using e4e or pSp encoder. Have a look at some of the edits made using InterFaceGAN:
Figure 2.3.2: Attractive filter Figure 2.3.3: Feminine filter Figure 2.3.4: Smile filter Figure 2.3.5: Black hair filter Figure 2.3.6: Smile + Attractive filterAn input image of a room is fed to Stable Diffusion model.
Figure 2.4.1: Input image to be remodelledUsing depth2img from Stable Diffusion 2.1, the room is remodelled using a given prompt. The benefit of using depth2img is that the remodelled version of the room retains the walls and objects in the correct places. However, it might be undesirable when only partial remodelling is required (like changing furniture etc.)
Below are the results from two different prompts using depth2img.
When partial remodelling like furniture change is required, selective inpainting gives better results as demonstrated in this section. Below is the manual selection on the image (shown in black).
Figure 2.4.4: Manual selection applied on input image Again, the results with the same two prompts are shown.The results show that selective inpainting can lead to better results when only partial remodelling is required. This is just a proof of concept. The current project can be upgraded to automatically detect and inpaint certain objects in the scene.
The project comes in form of a script which can take in a video/GIF as input and remove text overlay from it and inpaint the video in that region to generate a seamless output video/GIF.
Below are some sample input GIFs:
And these are the output GIFs generated after caption removal and inpainting:
This is demonstration of a simple but common application of realtime object detection.
Figure 2.6.1: People counting Figure 2.6.2: People segmentationThe people counting application is enhanced via object promixity detection which works applying DPT by Intel on the image and combining the results with object detection output.
The image on the left shows a number over each box showing distance on an arbitary scale to the object. The image on the right shows the heatmap.
The application can be used in assistive equipment for the visually impaired people.
This is a demonstration project that uses semantic segmentation to segment human body parts.
This project demonstrates custom object detection via transfer learning using YOLOv8. Using transfer learning, YOLOv8 is trained on a moderate-sized dataset to detect potholes. The trained model gives great results.
Figure 2.9.1: Test ground truth boxes Figure 2.9.2: Test predicted boxesThis project takes any trained YOLO model and embeds it in a simple mobile application to perform realtime object detection from mobile devices.
If you want to discuss your ideas or projects with me, you can always connect with me on LinkedIn, Upwork, or Fiverr.