Re: Design pattern ...

Top Page

Reply to this message
Author: Jérôme Kieffer
Date:  
To: guilde
Subject: Re: Design pattern ...
On Sun, 14 May 2017 13:38:03 +0200
Frédéric <fma38@???> wrote:

> Tu peux aussi sortir l'artillerie lourde :
>
> https://en.wikipedia.org/wiki/Kalman_filter
>


C'est interessant ... pour une autre partie du code.

J'ai une tête tilt/pan avec une camera pour faire des time-laps. Elle
mesure régulièrement le luma et la balance des blancs et je cherche a
faire une moyenne temporelle, pondéré, sachant que la luminosité varie
(lentement) et qu'il y a beaucoup de bruit (entre autre car la tête bouge).
Mon expérience avec un filtre de Savitsky-Golay sur une fenêtre
glissante avait donné de "bons" resultats, par exemple, mais
j'etudierai Kalman:
http://video.terre-adelie.org/2016/2016-08-05-Hovsund/video.mp4

Pour le SG, l'interet c'est la breveté du code:

class SavGol(object):
    "Class for Savitsky-Golay filtering"
    def __init__(self, order=2):
        "select the order of the filter"
        self.order = order
        self.cache = {} #len, filter


    def filter(lst):
        "filter a list. the last having the more weight"
        l = len(lst)
        if l%2 == 0:
            lst = numpy.array(lst[1:])
            l -= 1
        else:
            lst = numpy.array(lst)
        if l not in self.cache:
            self.cache[l] = scipy.signal.savgol_coeffs(l, self.order, pos=0)
        return numpy.dot(lst, self.cache[l])



Pour la partie accelero, le code est là:
https://github.com/kif/yocto-meteo-plugin/blob/master/accelero.py


A++ et merci pour l'idée.

Jerome