Giter VIP home page Giter VIP logo

cuttlefish_tracker's Introduction

Projet de Programmation 2 Universite de Montpellier

Sujet: Suivi d'objet avec filtre ร  particule.

Cuttlefish-seq1-.2xratio.0.0.2.0.0.0.2.0.2.-.05-hogcascadelbp-cos-ppp2Dbb-multinomial-128x128-1000.mp4

Introduction

Le projet se concentrer sur le suivi de seiches grace au filtre a particule sur des videos. Les informations initiales sur la seiche suivie sont donnees par une premiere detection, effectue par le reseau de neurone YOLOv7. Ce modele de reseau de neurone a ete fine-tune au prealable sur un dataset de seiche. Ces informations sont alors utilises pour initialiser les particules du filtre, afin d'avoir une chance plus faible de diverger et une convergence plus rapide. L'etape de mis a jour des particules est faites en passant un patch de la frame en cours de traitement dans un descripteur, puis une mesure de similarite est effectue sur le resultat du descripteur avec le resultat du descripteur correspondant au patch de la meilleure particule a l'etape precedente.

Objectifs

L'objectif du projet est de suivre un objet dans une sequence d'image en utilisant un agorithme de filtre a particule. Il se decoupera donc en plusieurs sous objectifs:

  • Creer le repo initial.
  • Organiser la structure fichier du projet.
  • Creer une template de rapport en Latex.
  • Creer un dataset de seiches pour YOLOv7.
  • Fine-tuning de YOLOv7 sur notre dataset.
  • Creer un programme pour la detection initiale de seiches.
  • Implementer plusieurs descripteurs d'image (environ 5).
  • Implementer plusieurs mesures de similarite (environ 5).
  • Implementer un slicer d'image et de descripteur
  • Definir un ou plusieurs vecteurs de representation de ce que l'on suit.
  • Implementer un filtre a particule modulable.
  • Creer un programme principal qui va gerer les transmissions de donnees entre modules.
  • Implementer des metriques d'evaluation pour le programme principal.
  • Test des differentes combinaisons entre les descripteurs et les mesures de similarite.
  • Evaluation de notre application sur le terrain (Aquarium).
  • (Optionnelle) Implementer des metriques d'evaluation pour chaque modules.

Installation

La version 3.10 de python est utilise. Les librairies requises peuvent etre installe avec la commande suivante.

pip install -r requirements.txt

Usage example

Pour lancer le proramme sur une sequence video, la commande ci-dessous peut-etre utilise.

python tracking.py --filepath YOUR_VIDEO --N 500 --descriptor hogcascadelbp --similarity cos --particle ppp2Dbb --resampling multinomial --alpha 1.3 --scale-factor 1 --resample-factor 1 --desc-size 64 64 --lbp-nbpoints 16 --lbp-radius 2

Dataset

Le dataset est constitue de 2161 images de seiche annotees a la main, qui ont ete augmentees en 5175 images et split entre le train (70%), valid (20%) et test (10%) set. Les images sont de taille 640x640 en RGB. L'augmentation du dataset a ete effectue par miroir, rotations des images, ainsi que par modification de la saturation, de la luminosite ou de l'exposition et enfin, par ajout de flou, de bruit, ou cutout.

Fine-tuning

Le modele YOLOv7 est utilise comme base (avec poids pretrain) et a ete fine-tune pour 300 epochs supplementaire sur notre dataset, pendant plus de 20H. Les resultats obtenus apres les 300 epochs sont les suivants:

Precision Recall [email protected] [email protected]:.95
0.953 0.959 0.971 0.607

Descripteurs

TODO

Mesures de similarite

TODO

Filtre a particule

Le principe general du filtre a particule implemente est le suivant:

  1. On genere N particules, chaque particule represente un etat possible dans lequel ce trouve l'objet a suivre.
  2. A chaque particule est associe une probabilite initial, donnee par notre premiere detection, representant notre confiance en une particule de bien represente l'etat de notre objet.
  3. On predit l'etat de nos particules grace a une modelisation du systeme que l'on suppose assez proche du systeme reel.
  4. On met a jour la distribution de probabilite modelise par nos particules en calculant la similarite entre notre estimation a la frame precedente et chacune des particules. Ce calcul nous permet alors de modifier notre confiance dans chaque particule.
  5. On regarde ensuite combien de particules participent reellement au suivi de l'objet. Si ce nombre passe en dessous d'un certain seuil, passe a l'etape 6, sinon, on passe a l'etape 7.
  6. On resample les particules pour que plus de particules participent au suivi de l'objet (duplication des meilleures particules et rejet des autres).
  7. On calcule l'etat estime dans lequel notre objet ce trouve en faisant la moyenne des particules ponderes par leur probabilite.
  8. On revient a l'etape 3 et on recommence le processus.

Evaluations

TODO

cuttlefish_tracker's People

Contributors

gabriel-combe avatar patateon avatar lovebetween avatar koridwen17 avatar migueldelastorres avatar

Stargazers

 avatar  avatar  avatar

Watchers

James Cloos avatar  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.