Echelle automatique vidéo, détection d'objectifs par webcam

Tous vos montages et bricolages liés aux observations naturalistes.
Règles du forum
Tous vos montages et bricolages liés aux observations naturalistes.
Répondre
Avatar du membre
Blitz
membre
membre
Messages : 12
Enregistré le : 22 avr. 2023 16:31
Prénom : Sylvain

Echelle automatique vidéo, détection d'objectifs par webcam

Message par Blitz »

Bonjour, nouvellement arrivé ici, et histoire de ne pas faire que "prendre" des infos sur le forum, voici la solution que j'utilise pour avoir une échelle automatique sur les vidéos quand je stream en live. Il suffit de changer d'objectif sur le microscope pour que l'échelle se mette à jour toute seule.

Le principe est d'utiliser une webcam montée sur le microscope, qui filme les objectifs, pour détecter quel objectif est actuellement utilisé, et d'envoyer un texte personnalisé correspondant dans un fichier texte, qui est récupéré par le logiciel de streaming (dans mon cas j'utilise OBS), et qui affiche le texte personnalisé sur la vidéo. La caméra est montée sur le microscope avec des supports imprimés en 3D.
webcam.jpg
webcam.jpg (93.29 Kio) Vu 842 fois
Pour détecter quel objectif est utilisé et envoyer un texte personnalisé dans un fichier texte, j'ai codé un petit logiciel qui s'appelle "Camera cross-correlation". On sélectionne la webcam, la résolution de capture (inutile de monter trop haut), la fréquence de capture (pareil, inutile d'aller trop haut), puis on prend un "snapshot" de chaque objectif sur lequel on peut mettre son texte personnalisé (ici 4x, 10x, 40x, 60x). Ensuite, le logiciel compare en permanence (10 fois par seconde dans l'exemple) l'image en temps réel (liveview) et les snapshots, pour déterminer quel objectif est utilisé, et donc quel texte envoyer dans le fichier texte pour être récupéré dans un autre logiciel.
cross-correlation.jpg
cross-correlation.jpg (151 Kio) Vu 838 fois
La comparaison s'effectue avec un algorithme de corrélation croisée, c'est naïf mais suffisant en pratique (tant que l'éclairage ne change pas trop !). On peut voir sur chaque snapshot un pourcentage de match, celui qui match le plus avec le liveview est sélectionné s'il dépasse le seuil (threshold) désiré (75% dans l'exemple). Dans l'exemple on a 97% match sur le deuxième objectif donc le logiciel enverra "10x" dans le fichier texte. J'aurai pu écrire directement l'échelle voulue par exemple (voir plus loin). Ensuite dans le logiciel OBS qui me sert à streamer, je peux afficher un texte sur la vidéo à partir du fichier texte.

Vous pouvez voir ce que ça donne par exemple ici sur une de mes vidéos, l'échelle est fixe mas sa valeur change selon l'objectif utilisé (500µm pour le 4x, 200µm pour le 10x, 50µm pour le 40x, et 32µm pour le 60x, l'ensemble a été mesuré avec une lame micrométrique) :


Si cela intéresse du monde je peux mettre à disposition le logiciel, soit sous forme de .exe, soit sous forme de code à compiler dans BlitzMax (d'où mon pseudo !), ainsi que faire un petit tutoriel vidéo.
Microscope Olympus CHB monoculaire
Objectifs achromatiques 4x, 10x, 40x, 60x, 100x
https://www.youtube.com/@BlitzAtao
https://www.twitch.tv/blitzatao
Répondre

Retourner vers « Bricolages divers »