La science a besoin de vous : translation X et post-stabilisation

La science a besoin de vous : translation X et post-stabilisation - Traitement Vidéo - Video & Son

Marsh Posté le 03-06-2011 à 02:14:25    

Ploc,

 


Contexte :
Je cherche à analyser les capacités locomotrices et le rythme circadien de bestioles (insectes invasifs dans les îles sub-Antarctiques) en fonction de différents traitements expérimentaux. Pour cela, j'ai enregistré de nombreuses vidéos (un mois en cumulé [:tinostar]) de mes bestioles s'ennuyant dans des boîtes de Petri. Les vidéos doivent ensuite être analysées automatiquement à travers un logiciel de video tracking.

 

Problème :
Il y a un étrange mouvement de translation sur l'axe X dans mes vidéos. Toutes. Pour que vous puissiez voir par vous-mêmes, j'en ai mis un échantillon ici. Mon référentiel bouge, l'analyse des déplacements n'est donc pas possible sans biais.

 

Comme vous pourrez le constater en regardant de près, ce n'est pas un tremblement de la caméra mais plutôt l'image qui se déplace dans le cadre de 720x576 pixels. En effet, ce sont les bandes noires gauche et droite qui se contractent et se dilatent aléatoirement. Le cadrage de la partie visible, lui, reste parfaitement identique pendant toute la vidéo. Pour vous en convaincre, fixez le petit morceau de plastique découpé dans le coin bas-gauche de l'image et vous pourrez constater qu'il reste toujours cadré de la même manière. Ce n'est pas la caméra qui bouge ni la zone filmée qui vibre : les deux restent parfaitement solidaires. Pour avoir mis en place le dispositif, je peux confirmer qu'il n'y avait aucune source de vibration possible (trépied spécialisé, pas de courants d'air, pas de passages, pas de machineries à proximité, rien) ; en posant la caméra à plat sur le sol, les mêmes mouvements apparaissaient.

 

Bref, je n'ai aucune idée de l'origine de ce problème et lorsque j'ai fait les enregistrements, je n'avais de toute manière pas la moindre possibilité de dépannage (pas de téléphone, pas de matériel de rechange, pas de transports ou de déplacements possibles avant deux mois). J'avais donc simplement le choix de faire les enregistrements en espérant pouvoir les corriger a posteriori, soit de ne pas les faire. Une fois le dispositif mis en place, il est autonome, j'ai donc tenté.

 

Question/Solution :
Auriez-vous une idée de comment corriger mon problème de manière à ce que toutes mes boîtes de Petri soient fixes ? J'ai testé le plugin Deshaker de Virtual Dub mais je ne parviens pas à le paramétrer convenablement, ou bien il ne peut pas corriger ce type de problème, je ne sais pas trop. À mon avis, il "suffirait" de supprimer les bandes noires sur chaque frame de mes videos. Cela changerait la résolution de ma vidéo de sortie, mais l'image visible étant rigoureusement de la même taille tout le long, la résolution de sortie serait fixe et le pixel de coordonnées [0,0] serait bien le premier pixel non-noir en haut à gauche de l'image. La vidéo serait donc stable. J'emploie les guillemets toutefois car je ne sais absolument pas comment automatiser ce crop sur la partie visible pour chaque frame de mes vidéos. Voyez-vous une application ou un plugin permettant de faire cela ?

 

Merci par avance de votre aide ; c'est relativement urgent ! [:agkklr]


Message édité par kabouik le 03-06-2011 à 15:26:56

---------------
Feedback HFR [VDS] MR-14EX, LCDVF, Markins, divers §§
Reply

Marsh Posté le 03-06-2011 à 02:14:25   

Reply

Marsh Posté le 03-06-2011 à 12:46:38    

Salut,
Sans vouloir créer de faux espoirs, j'ai testé vite fait le filtre "Deshacker" v2.7. J'avais préalablement coupé 2sec (donc 20 frames) seulement de ton échantillon. Et exporté en uncompressed RGB pour un meilleur matériau que du H.264. Et modifié l'aspect ratio pour qu'il colle à l'un des presets du filtre.
Puis : modif indispensable de pas mal de paramètres sur la pass 1. Notamment pour affiner le scan au max (val ~ 1px), et désactiver (décocher) les trucs inutiles.
=> résultat étonnant à la fin (les 2sec me semblent 100% stables horiztalmt !) alors qu'au début je n'y croyais pas avec 1 outil gratuit.
Là je suis brutalement pris par le temps & autre chose. J'uploaderai un extrait dès que possible.

 

Tout ça pour dire : il me semble (sous réserve, j'ai fait vite et checké vite aussi) que c'est possible. Mais il faut s'aloigner bcp des réglages par défaut. Personnaliser fortement le paramétrage dans ton cas.


Message édité par zoroastre94 le 03-06-2011 à 12:48:19

---------------
"Avec un escalier prévu pour la montée, on réussit souvent à monter plus bas qu'on ne serait descendu avec un escalier prévu pour la descente" (devise Shadok)
Reply

Marsh Posté le 03-06-2011 à 16:29:00    

Salut,

 


Merci beaucoup pour ta réponse. Hier soir après mon post ici, j'ai continué à chercher et à trifouiller Deshaker. Je ne comprends toujours pas la moitié des options, mais j'ai changé des choses et surtout j'ai commencé par rogner les bandes noires (en exagérant pour m'assurer qu'elles n’apparaissent jamais même quand elles sont au plus large). En utilisant Deshaker après avoir rogné les bandes et en changeant certains paramètres, j'arrive à quelque chose qui me semble très potable aussi... Mais c'est très long car ça implique trois étapes de traitement (rognage, Deshaker Pass 1, Deshaker Pass 2).

 

Pour résumer, voici ce que j'ai fait :

 

# Etape 1 : convertir et rogner.
- Importer la vidéo de base.
- Audio/No audio (ça fait gagner énormément de place).
- Video/Framerate/Convert to 5 FPS (idem et pas besoin de plus).
- Video/Filters/Grayscale/Cropping (je pense que le Grayscale fait gagner en place et en vitesse de traitement, j'en profite pour rogner les bandes noires exagérément).
- Video/Compression/ffdshow/MPEG4 et je compresse un peu pour gagner encore en place, en mode grayscale à nouveau.
- Save as AVI.

 

# Etape 2 : détection des translations X dans Deshaker.
- Ouvrir le nouveau fichier.
- Video/Filters/Deshaker/Configure. Je configure le Pass 2 avant même de faire l'analyse parce que j'ai lu quelque part que les informations conservées après l'analyse Pass 1 dépendent de ce qui sera utile au Pass 2. Donc dans le Pass 2, je choisis Adaptive Zoom dans Edge Compensation. Je définis également des valeurs minimales de Rotation et de Y-Translation parce que je sais qu'on n'en a pas (j'avais essayé de virer le zoom aussi mais ça donnait de moins bons résultats). Je configure ensuite le Pass 1. Je choisis PAL dans Source Pixel Aspect. Je choisis Grayscale dans Color Mode. Je décoche Detect Rotation et Detect Zoom. En-dessous, je passe la valeur 300 à 500.
- Je lance File/Run video analysis pass.

 

# Etape 3 : encodage d'un nouveau fichier rogné, converti en 5 FPS, stabilisé et compressé en MPEG4 grayscale.
- Je réouvre Video/Filters/Deshaker, je sélectionne le Pass 2 pré-configuré.
- Save as AVI.

 

L'étape 2 est la plus lente des trois, mais le problème, c'est quand même qu'il y a trois étapes et que le temps de traitement est donc assez énorme pour les fichiers que j'ai à convertir. Je n'ai pas réussi à faire marcher le rognage du plugin Grayscale en même temps que la stabilisation Deshaker. Cela ferait pourtant déjà gagner l'étape 1 ; et je suis sûr qu'il doit bien y avoir un moyen d'y parvenir.

 

De même, je ne maîtrise pas bien Virtual Dub, mais est-il possible de lui indiquer d'avance les trois étapes à faire successivement pour qu'il soit autonome une fois que l'une d'entre elles se termine ? Cela m'aiderait beaucoup à faire tourner plusieurs conversions sur plusieurs PC différents du labo pendant les week-ends.

 

En tous cas, je suis très intéressé par les réglages que tu as testés Zoroastre94 parce que j'ai l'impression que tu t'es affranchi de mon étape 1 pour arriver à de bons résultats quand même, peut-être meilleurs ! Merci encore pour ton aide !


Message édité par kabouik le 03-06-2011 à 16:34:13

---------------
Feedback HFR [VDS] MR-14EX, LCDVF, Markins, divers §§
Reply

Marsh Posté le 04-06-2011 à 13:17:09    

Salut,
Oula tu as beaucoup bossé !
Je ne suis pas un spécialiste de VDub. Et j'ai pas bcp de temps pour bidouiller ce filtre (pourtant très profus et pas spécialement intuitif).
En vrac & en espérant aider un peu :

 

- Ton étape 1 : le crop, perso, j'aurais plutôt eu tendance à l'éviter dans un 1er temps.
Parce que je me suis dit que, justement, la frontière contrastée avec 1 ou 2 bordures latérales permettrait au filtre de repérer plus efficacement les translations X.
Puis utiliser l'outil "ignore pixels" (en bas des paramètres de pass 1) pour que par exemple, le deshaker se focalise uniquement, lors de l'analyse, sur genre une bande verticale de 60 px de large et c'est tout (couvrir une frontière de bordure quoi). Réduire la zone d'analyse sur l'endroit le + pertinent.
On gagnerait ainsi beaucoup en temps et en précision. (en théorie et si j'ai compris le principe...) Sous réserve donc, peut-être que j'ai tt faux.
=> NB: du coup je décoche "ignore pixels: darker than..."

EDIT : non c'est une mauvaise idée. Ca ne corrigerait que la zone restreinte analysée.
Alors que dans mon idée, il aurait fallu, d'une analyse spatiale restreinte, pouvoir extrapoler les résultats à la totalité d'une frame.
Ce qui ne semble pas possible ici.

 

- no audio = bien sûr.
- "décocher Detect Rotation et Detect Zoom" dans la pass 1 = pareil pour moi.

 

- Pour le grayscale : vu que sauf erreur de ma part la vidéo est d'origine en N&B ou presque... Pourquoi sortir 1 filtre supplémentaire, alors que deshaker permet de définir une analyse grayscale ?

 

- le PAR (pixel aspect ratio = "source pixel aspect" dans deshaker) je l'ai finalement saisi manuellement / custom : mis sur 1.25 (= 5/4 = celui de ton fichier original. Pour gagner du temps & simplifier.

 

> sinon dans les params pass 1 j'ai mis aussi (plus "à l'instinct "que sur des bases éprouvées) :
- Scale = Full
- use pixels = All

 

>

Citation :

est-il possible de lui indiquer d'avance les trois étapes à faire successivement pour qu'il soit autonome une fois que l'une d'entre elles se termine ?


Que je sache, dans une bonne mesure, oui : File / queue batch operation / choisir
=> ainsi les opérations ne s'effectuent pas tout de suite mais s'additionnent dans job control (F4).

 

Vlà. J'ai pas tout mis ça deviendrait trop long. Bon courage :)

 

Re-edit : y a ce guide intéressant sur deshaker : http://www.sundancemediagroup.com/ [...] _guide.htm


Message édité par zoroastre94 le 05-06-2011 à 10:20:37

---------------
"Avec un escalier prévu pour la montée, on réussit souvent à monter plus bas qu'on ne serait descendu avec un escalier prévu pour la descente" (devise Shadok)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed