Skip to content

Latest commit

 

History

History
132 lines (70 loc) · 8.11 KB

README.md

File metadata and controls

132 lines (70 loc) · 8.11 KB

TSAI-DeepVision-EVA4.0-Phase-2


This contains the solutions to the assignments given in The School of AI - Extensive Vision AI 4.0 EVA4 Phase2


[prefer to use the website]

NOTE: most of the links have stopped working as heroku stopped free services, here's a backup site: https://master.d165apizgrkyke.amplifyapp.com/

  1. Deploy to AWS

    This was the first time i deployed a DL model on AWS, it was quite an experience, i had to setup WSL to work, then PyCharm to work with my windows's anaconda, and then making sure that the WSL anaconda requirements match with windows anaconda. maaaaan why is it so difficult to share conda envs ?

    Also i used flask to deploy it over AWS Lambda. I spent about 6 hours figuring out why my API didn't work, then realised i didn't allow binary media types in the Gateway settings.

    I learnt that debugging in production is really difficult, you have to rely on logs, so from now on, please do proper logging, and always test on local dev env before deploying.

    finally i deployed it on https://un64uvk2oi.execute-api.ap-south-1.amazonaws.com/dev/

  2. MobileNet - Training Custom IFO Dataset

    Here we created our custom Identified-Flying-Objects dataset, preprocessed it, and trained a MobileNet Model, then deployed it into AWS.

    Also i made a streamlit app and deployed it to heroku ! https://floating-refuge-59093.herokuapp.com/

  3. FaceRecognition-I - Implementing Face Swap !

    Face Recognition starts by aligning your face so it looks directly to the front. Here we implemented FaceSwap by aligning the two faces and then swapping the detected face. The face was detected using the dlib's 68 point frontal face detector.

    The Flask Backend was deployed on AWS Lambda and the React Frontend on AWS Amplify https://master.d165apizgrkyke.amplifyapp.com/

  4. FaceRecognition-II - Deploying Face Recognizer Model !

    Here i finally trained a Face Recognizer model and deployed it over Heroku ! why Heroku you ask ? head over to its README. All the models are hosted on a single dyno instance now. Face Align and Swap are still hosted on Lambda.

    My Amazon S3 Limits have shot up, so i don't want to risk incurring costs, Face Swap doesn't use S3 so thats ok.

    The Flask Backend was moved to Heroku, as well as the Front end is now hosted on Heroku https://thetensorclan-web.herokuapp.com/

  5. HumanPoseEstimation-ONNX

    Following the usual drill, here i learnt about Human Pose Estimation, and we deployed a pretrained model, and it was added to the backend and the frontend.

    Something to note that i hit the storage limits, so i had to resort to converting the large 170MB model to ONNX and then quantizing it to 68MB, so that saved a lot of computatation costs and storage.

    I wrote a blog on it https://satyajitghana.github.io/2020/08/pose-estimation-onnx.html

    Also deployment url: https://thetensorclan-web.herokuapp.com/

  6. Generative Adversarial Networks

    Here i learnt about GAN's and what the actual awesome stuff this is ! it allows me to train a model on a dataset and actually create a new dataset which is very similar to the source dataset !

    Deployment url: https://thetensorclan-web.herokuapp.com/red-car-gan

  7. Variational AutoEncoders

    The previous assignment was done using VAE.

    Deployment url: https://thetensorclan-web.herokuapp.com/red-car-vae

    Also a nice little thing i did with MNIST VAE and ONNX.JS : https://thetensorclan-web.herokuapp.com/mnist-vae, this model directly runs on your browser ! and on real time !, simply draw a digit on the canvas, and the model will try to reconstruct it

  8. SuperResolution & StyleTransfer

    The dataset used in MobileNetV2 assignment was used to create a Super Resolution model or SRGAN, the images sent to the model are upscaled by a factor of 2.

    Also Neural Style Transfer models were deployed, i used fast neural style transfer which are basically feed forward network that are pretrained to apply a specific style to a image.

    ST Deployment url: https://thetensorclan-web.herokuapp.com/style-transfer

    SR Deployment url: http://thetensorclan-web.herokuapp.com/ifo-sr

  9. Neural Word Embedding

    This was a pretty straight forward deployemnt for a NLP Model, i learnt quite a lot of things about NLP, and how embeddings work, what's the purpose of embedding.

    Also a thing to note that i wasn't able to use a traced model on the backend, so i had to use a scripted model

    Spacy Model overloaded the backend, so i had to use a small model, and also always load the model inside the function, never store a copy of the model as global variable.

    Deployment url: https://thetensorclan-web.herokuapp.com/text-classifiers

  10. Sequence Models

    Built an LSTM from scrath with numpy

  11. Attention & Transformers

    NLP is vastly affected by transformers ! even the huge GPT-3 uses transformer, this assignment was the very basics, where we created a simple German to English Translator using Attention and Transformers.

    Deployment url: https://thetensorclan-web.herokuapp.com/translator

  12. Image Captioning

    Deployment url: https://thetensorclan-web.herokuapp.com/image-captioning

  13. AI for Sound

    This was a really amazing session, basically previous session was converting Images to Text, and this session was to convert Sound to Text, which is a really difficult task, is what i understood, in this session we used librispeech dataset to create a small ~92MB model that can do speech recognition, i.e. convert some small words to text, doesn't work well, but meh, for such a small model for sound, it works kinda good.

    Deployment url: https://thetensorclan-web.herokuapp.com/speech-to-text

  14. [AWS-EC2-Flask Deployment]

    In this assignment, all of the previous deployments was done at once in an EC2 Instance (t2.micro)

    https://github.com/extensive-vision-ai/tensorclan-ec2

  15. Capstone Project

    The task was to create like a <lobe.ai> clone, which is basically a image classifier toolkit, but we needed to built a fully web version of it, and training of models should be in lambda.

    This was probably the most difficult to setup in all of the deployment task, planning, architecture design, implementation, web development, backend development, message queues, task processing, containerization, model training, and much much more !

    After a lot of failed attempts and failed architecures, i was able to finish it 😁

    Github: https://github.com/ProjektTejas Website: https://tejas.tensorclan.tech/ Documentation (Must Read): https://projekt-tejas-docs.vercel.app/