Coder Social home page Coder Social logo

marwanmashra / carbon-visionnaire Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 835 KB

๐ŸŽ–๏ธ1st prize from TotalEnergies for Technical Excellence (the best score) during a Hackathon. It's an AI solution for detecting a car in an image and estimating its CO2 emission.

License: MIT License

Jupyter Notebook 100.00%
hackathon-project object-detection pytorch tensorflow computer-vision co2-emissions car-detection python

carbon-visionnaire's Introduction

GreatAI Team

See Hackathon Website Here.

Team and project overview

Team presentation

We are "Great AI", a group of 6 students coming from different backgrounds with complementary skillsets. We divided ourselves into 2 teams, the technical team and the business team.
Let us first present you the Technical Team. First, we have Fabien Roger, student in 2nd year in Cycle Ingenieur at Ecole Polytechnique. Working with him was Pierre-Antoine Arsaguet, engineer student in 2nd year at Telecom SudParis. To complete this amazing team, Marwan Mashra, 1st year master student at Paris-Saclay, was also working on the AI model. While Pierre-Antoine focused on the car detection, Fabien experimented with the identification of the car throughout its logo, and Marwan throught image similarity. They all collaborated throughout the whole process using different approaches to enhance the performance while mainting the frugality.
On the other team were true business leaders, starting with Irina Tabacaru, 1st year master student in Managerial and Financial Economics at HEC Paris. She was working alongside with Georgi Ivanov, in the same program as her. Finally, Elsa Bismuth, 2nd year bachelor student at Ecole Polytechnique joined forces with them to develop a strong business plan. While Irina focused on the planning, Georgi on the animation, and Elsa on the branding, they worked together for the value creation and realization of the video.

General strategy

We developed an AI model using Computer Vision and capable of recognizing the model of a car based on images taken from a parking lot. Recognizing the model of the car, we were able to know its carbon footprint per kilometer. We developed a solution displaying the carbon footprint of the car and the total carbon emission of the ride when entering the parking lot, enabling the consumer to be aware of its carbon footprint while incentivizing him to lower his emissions.

Scientific approach

Approach description

The problem was divided in two task : detecting the car, and estimating its CO2 emission.
Since the frugality on our AI solution is a key factor for sustainability, our strategy was to take advatage of Transfer learning as much as possibe.

Car detection

First, we tried to detect the bounding box of the car using a pretrained model of YOLO (state of the art for object detection). We compared the several versions of it, as well as a fine-tuned version, in order to find the best trade-off between performance and frugality to finally choose the YOLOR model. After analyizing the performance, we realized that the erros were due to the noise in some images. Therefore, we decided to implement a denoiosing algorithm based on scikit-image. Although using this algorithm improves the performance, it does increase the CPU inference time. Thus, we decided to not use it in the final pipeline.

Estimating CO2 emission

In the second part, we first attempted unsuccessfully to treat the task as a standard classification problem with classes being models of cars. However, we have 100 different class and the number of images per class varies between 4 and 25, with a median of 13 images per class. Therefore, it was clear that we needed to look at the task as a Few-shot learning probelm. Then, We tried to recognize the logo of the car using OpenCV in hope that it'll represent addititioanl information for our AI model. However, results of logo detection weren't sufficinlty accurate to be used is this task. Then, we switched to image similary approachs using a pretrained model. The idea is to get the embedding of each image of the training dataset from the last layer of a pretrained CNN. Then for a new given image, we get its embedding, compute its difference with the saved embeddings, and find the K closest image. After comparing the performance and the trainig/inference CPU time between several pretrained CNN, we end up chosing ResNet50. Farthermore, by computing the mean of CO2 emission of 5 closest cars, we were able to improve the performance.

Then to improve results even father as well as reduce the training time, we decided to use ML-Decoder: Scalable and Versatile Classification Head, a pretrained CNN which is currenly considdered the state of the art for car classification. It allowed us to improve results sinificnlty without having to train the model.

Final Pipeline

We use YOLOR to detect the bounding the box, and then ML-Decoder to detemine the model of the car to estimaate its CO2 emission.

Future improvements

Explain what next steps you envisage.

Project usage

Explain the prerequisites, the environment setup and the procedure and guidelines to run the code / model.

In order to use our pipeline, you need to install the following github repository:

as well as all the requirements of these repositories.

III. CARBON FOOTPRINT LIMITATION

During this project, we were very careful with several decisions taken to increase the frugality of our AI solution. From taking advatage of Transfere learning and pretrained models, to comparing several pretrainded models for performance and CPU run time and find the best trade-off.

IV. CONCLUSION

Using Transfer learning, we think we acheived the goal of this hackathon which is to make the best trade-off between performance and frugality. Other approches, for increasing frugality without losing on the perfomance can implemented, like like knowledge distillation.

carbon-visionnaire's People

Contributors

marwanmashra avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.