Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • DynAIkonTrap DynAIkonTrap
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 4
    • Issues 4
    • List
    • Boards
    • Service Desk
    • Milestones
  • Deployments
    • Deployments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • DynAIkonTrap
  • DynAIkonTrapDynAIkonTrap
  • Issues
  • #4

Closed
Open
Created Jul 08, 2021 by Miklas Riechmann@mhrOwner

Make default motion filter use SoV

Summary

The default behaviour of the motion filter still uses the SoTV approach. As we determined that performance was better with SoV, the latter approach should be the default. It may be desirable to completely remove SoTV functions and make SoV the only approach.

Steps to reproduce

Run system with non-zero "small_threshold" in settings.json

What is the current bug behaviour?

System applies SoTV method instead of SoV

What is the expected correct behaviour?

Out of the box use SoV

Relevant logs and/or screenshots

-/-

Possible fixes

There are two fixes:

  • [Quick & less invasive] Make "small_threshold" zero by default, effectively disabling the small vector thresholding
  • [Preferred] Change run_raw() in motion.py to be something like:
    def run_raw(self, motion_frame: np.ndarray) -> float:
          x_sum = sum(sum(motion_frame['x'].astype(int)))
          y_sum = sum(sum(motion_frame['y'].astype(int)))
    
          x_sum = self.x_iir_filter.filter(x_sum)
          y_sum = self.y_iir_filter.filter(y_sum)
    
          return math.sqrt(x_sum ** 2 + y_sum ** 2)
Assignee
Assign to
Time tracking