SlideShare une entreprise Scribd logo
1  sur  83
Télécharger pour lire hors ligne
Declarative Gesture Spotting Using
Inferred and Refined Control Points
Department of Computer Science, Vrije Universiteit Brussel (VUB)
               Lode Hoste      -    lhoste@vub.ac.be
               Brecht De Rooms - bderooms@vub.ac.be
               Beat Signer     -   bsigner@vub.ac.be



                                                               1
Gesture Classification


                          template



                         sample segment


             e.g. Dynamic Time Warping




                                          2
Gesture Classification


                          template



                         sample segment


             e.g. Dynamic Time Warping




                                          3
Gesture Classification




                         4
Gesture Classification




                         5
Gesture Classification




                         6
Gesture Classification




                         7
Gesture Classification




                         8
Gesture Classification




             Too Complex




                           9
Gesture Classification




Start?




                 We need gesture spotting




                        End?

                                            10
Gesture Classification




Start?




                 We need gesture spotting
               reduce amount of work for gesture
               classification




                          End?

                                                   11
Gesture Spotting

Goal:
   - High Recall
   - High Precision

Popular techniques:
   - Hidden Markov Models
   - Continuous Dynamic Programming




                                      12
Our Declarative Gesture Spotting Approach

     1. Automatically infer control points
           - from one representative sample
           - one shot learning
     2. Generate declarative code
Spotted?   - understandable and extensible spotting definitions
     3. Call a gesture classification algorithm




                                                                  13
Automatically Infer Control Points

One representative sample




                                        Z gesture


                                                    14
Automatically Infer Control Points

One representative sample
 - start with the first point




                                          Z gesture


                                                      15
Automatically Infer Control Points

One representative sample
 - start with the first point
 - search for the smallest angle
 - within a given time-frame




                                         Z gesture


                                                     16
Automatically Infer Control Points

One representative sample
 - start with the first point
 - search for the smallest angle
 - within a given time-frame




                                         Z gesture


                                                     17
Automatically Infer Control Points

One representative sample
 - start with the first point
 - search for the smallest angle
 - within a given time-frame
 - refine control points
    (optionally)




                                          Z gesture


                                                      18
Comprehensible Code Generation

Based on the inferred control points:




                                            19
Comprehensible Code Generation

 Based on the inferred control points:
1 (defrule symbol_z
2   ?p1 (Point2D) there   is a start point
                                             ?p1




                                                   20
Comprehensible Code Generation

 Based on the inferred control points:
1 (defrule symbol_z
2   ?p1 (Point2D)
3   ?p2 (Point2D) there   is a second point   ?p1   ?p2




                                                      21
Comprehensible Code Generation

 Based on the inferred control points:
1 (defrule symbol_z
2   ?p1 (Point2D)
3   ?p2 (Point2D)                         ?p1   ?p2
4   (test (< ?p1.time ?p2.time))

    temporal constraint:
       that comes after the start point




                                                  22
Comprehensible Code Generation

 Based on the inferred control points:
1 (defrule symbol_z
2   ?p1 (Point2D)
3   ?p2 (Point2D)                                    ?p1   ?p2
4   (test (< ?p1.time ?p2.time))
5   (test (inside_control_point ?p1 ?p2 185 4 76))

 spatial constraint:




                                                             23
Comprehensible Code Generation

 Based on the inferred control points:
1 (defrule symbol_z
2   ?p1 (Point2D)
3   ?p2 (Point2D)                                        ?p1         ?p2
4   (test (< ?p1.time ?p2.time))
5   (test (inside_control_point ?p1 ?p2 185 4 76))
                                                     4
                                                               185
 spatial constraint:
     .. a circular area with centerpoint
           x: 185 y:4 (pixels)




                                                                       24
Comprehensible Code Generation

 Based on the inferred control points:
1 (defrule symbol_z
2   ?p1 (Point2D)
3   ?p2 (Point2D)                                        ?p1         ?p2
4   (test (< ?p1.time ?p2.time))
5   (test (inside_control_point ?p1 ?p2 185 4 76))
                                                     4
                                                               185
 spatial constraint:
     .. a circular area with centerpoint
           x: 185 y:4 (pixels)
              and radious 76




                                                                       25
Comprehensible Code Generation

 Based on the inferred control points:
1 (defrule symbol_z
2   ?p1 (Point2D)
3   ?p2 (Point2D)                                        ?p1         ?p2
4   (test (< ?p1.time ?p2.time))
5   (test (inside_control_point ?p1 ?p2 185 4 76))
                                                     4
                                                               185




                                                                       26
Comprehensible Code Generation

 Based on the inferred control points:
1 (defrule symbol_z
2   ?p1 (Point2D)
3   ?p2 (Point2D)                                           ?p1         ?p2
4   (test (< ?p1.time ?p2.time))
5   (test (inside_control_point ?p1 ?p2 185 4 76))
                                                        4
6    ?p3 (Point2D)                                                185
7    (test (< ?p2.time ?p3.time))
8    (test (inside_control_point ?p1 ?p3 15 178 76))
9    ?p4 (Point2D)
10   (test (< ?p3.time ?p4.time))
11   (test (inside_control_point ?p1 ?p4 197 175 76))



                                                            ?p3           ?p4




                                                                          27
Comprehensible Code Generation

 Based on the inferred control points:
1 (defrule symbol_z
2   ?p1 (Point2D)
3   ?p2 (Point2D)                                       ?p1   ?p2
4   (test (< ?p1.time ?p2.time))
5   (test (inside_control_point ?p1 ?p2 185 4 76))
6    ?p3 (Point2D)
7    (test (< ?p2.time ?p3.time))
8    (test (inside_control_point ?p1 ?p3 15 178 76))
9    ?p4 (Point2D)
10   (test (< ?p3.time ?p4.time))
11   (test (inside_control_point ?p1 ?p4 197 175 76))

       each point expressed relative to ?p1
                                                        ?p3     ?p4




                                                                28
Comprehensible Code Generation

 Based on the inferred control points:
1 (defrule symbol_z
2   ?p1 (Point2D)
3   ?p2 (Point2D)                                       ?p1   ?p2
4   (test (< ?p1.time ?p2.time))
5   (test (inside_control_point ?p1 ?p2 185 4 76))
6    ?p3 (Point2D)
7    (test (< ?p2.time ?p3.time))
8    (test (inside_control_point ?p1 ?p3 15 178 76))
9    ?p4 (Point2D)
10   (test (< ?p3.time ?p4.time))
11   (test (inside_control_point ?p1 ?p4 197 175 76))

       temporal constraints:
         the points should be ordered                   ?p3     ?p4




                                                                29
Comprehensible Code Generation

 Based on the inferred control points:
1 (defrule symbol_z
2   ?p1 (Point2D)
3   ?p2 (Point2D)                                     ?p1   ?p2
4   (test (< ?p1.time ?p2.time))
5   (test (inside_control_point ?p1 ?p2 185 4 76))
6   ?p3 (Point2D)
7   (test (< ?p2.time ?p3.time))
8   (test (inside_control_point ?p1 ?p3 15 178 76))
9   ?p4 (Point2D)
10 (test (< ?p3.time ?p4.time))
11 (test (inside_control_point ?p1 ?p4 197 175 76))
12 =>
13    (call DynamicTimeWarping
14       (select-between ?p1.time ?p4.time)
15       (gesture-set “CharacterZ”))                  ?p3     ?p4

      call an external algorithm for classification

                                                              30
A State Machine is Not Enough


          template                    continuous stream
                                 State 1


State 1              State 2




State 3                State 4




                                                          31
A State Machine is Not Enough


          template               continuous stream
                                       State 2



State 1              State 2




State 3                State 4




                                                     32
A State Machine is Not Enough


          template               continuous stream
                                       State 2



State 1              State 2

                                       reset state machine?



State 3                State 4




                                                              33
A State Machine is Not Enough


          template               continuous stream
                                                  State 1


State 1              State 2

                                       reset state machine?



State 3                State 4




                                                              34
A State Machine is Not Enough


          template               continuous stream
                                                 State 1


State 1              State 2




State 3                State 4




                                                           35
A State Machine is Not Enough


          template               continuous stream
                                                 State 1


State 1              State 2




State 3                State 4




                                                           36
A State Machine is Not Enough


          template               continuous stream



State 1              State 2

                                       gesture overshot
                                           missed gesture


State 3                State 4




                                                         37
A State Machine is Not Enough


          template               continuous stream



State 1              State 2




State 3                State 4




                                                     38
A State Machine is Not Enough


          template               continuous stream



State 1              State 2

                                         refused by gesture
                                         classification



State 3                State 4




                                                          39
A State Machine is Not Enough


          template                    continuous stream



State 1              State 2

                                               refused by gesture
                                               classification



State 3                State 4
                                 overlapping gesture
                                   missed gesture



                                                                40
Incremental Evaluation of Every Possible Combination




        1 (defrule symbol_z
        2   ?p1 (Point2D)




                                                  41
Incremental Evaluation of Every Possible Combination




        1 (defrule symbol_z
        2   ?p1 (Point2D)
        3   ?p2 (Point2D)
        4   (test (< ?p1.time ?p2.time))
        5   (test (inside_control_point ?p1 ?p2 185 4 76))




                                                             42
Incremental Evaluation of Every Possible Combination



            1 (defrule symbol_z
            2   ?p1 (Point2D)




        1 (defrule symbol_z
        2   ?p1 (Point2D)
        3   ?p2 (Point2D)
        4   (test (< ?p1.time ?p2.time))
        5   (test (inside_control_point ?p1 ?p2 185 4 76))




                                                             43
Incremental Evaluation of Every Possible Combination



            1 (defrule symbol_z
            2   ?p1 (Point2D)




        1 (defrule symbol_z
        2   ?p1 (Point2D)
        3   ?p2 (Point2D)
        4   (test (< ?p1.time ?p2.time))
        5   (test (inside_control_point ?p1 ?p2 185 4 76))




                                                             44
Incremental Evaluation of Every Possible Combination
            1 (defrule symbol_z
            2   ?p1 (Point2D)


            1 (defrule symbol_z
            2   ?p1 (Point2D)
            3   ?p2 (Point2D)



        1 (defrule symbol_z
        2   ?p1 (Point2D)
        3   ?p2 (Point2D)
        4   (test (< ?p1.time ?p2.time))
        5   (test (inside_control_point ?p1 ?p2 185 4 76))




                                                             45
Incremental Evaluation of Every Possible Combination
            1 (defrule symbol_z
            2   ?p1 (Point2D)


            1 (defrule symbol_z
            2   ?p1 (Point2D)
            3   ?p2 (Point2D)
                                  1 (defrule symbol_z
                                  2   ?p1 (Point2D)
        1 (defrule symbol_z       3   ?p2 (Point2D)
        2   ?p1 (Point2D)
        3   ?p2 (Point2D)
        4   (test (< ?p1.time ?p2.time))
        5   (test (inside_control_point ?p1 ?p2 185 4 76))




                                                             46
Incremental Evaluation of Every Possible Combination
            1 (defrule symbol_z
            2   ?p1 (Point2D)


            1 (defrule symbol_z
            2   ?p1 (Point2D)
            3   ?p2 (Point2D)
                                  1 (defrule symbol_z
                                  2   ?p1 (Point2D)
        1 (defrule symbol_z       3   ?p2 (Point2D)
        2   ?p1 (Point2D)
        3   ?p2 (Point2D)
        4   (test (< ?p1.time ?p2.time))
        5   (test (inside_control_point ?p1 ?p2 185 4 76))




                                                             47
Incremental Evaluation of Every Possible Combination
            1 (defrule symbol_z
            2   ?p1 (Point2D)


            1 (defrule symbol_z
            2   ?p1 (Point2D)
            3   ?p2 (Point2D)
                                  1 (defrule symbol_z
                                  2   ?p1 (Point2D)
        1 (defrule symbol_z       3   ?p2 (Point2D)
        2   ?p1 (Point2D)
        3   ?p2 (Point2D)
        4   (test (< ?p1.time ?p2.time))
        5   (test (inside_control_point ?p1 ?p2 185 4 76))



   RETE engine takes care
   of caching intermediate calculations


                                                             48
Incremental Evaluation of Every Possible Combination




 ?p1




                                                  49
Incremental Evaluation of Every Possible Combination




       ?p1


 ?p1




                                                  50
Incremental Evaluation of Every Possible Combination




   ?p1


         ?p1


 ?p1




                                                  51
Incremental Evaluation of Every Possible Combination




   ?p1


         ?p1


 ?p1




                                                  52
Incremental Evaluation of Every Possible Combination




   ?p1


         ?p1


 ?p1




                                                  53
Incremental Evaluation of Every Possible Combination
               ?p1




   ?p1


         ?p1


 ?p1




                                                  54
Incremental Evaluation of Every Possible Combination
                             ?p2
               ?p1




   ?p1


         ?p1


 ?p1




                                                  55
Incremental Evaluation of Every Possible Combination
                                ?p2
               ?p1
                          ?p1




   ?p1


         ?p1


 ?p1




                                                  56
Incremental Evaluation of Every Possible Combination
                                 ?p2
                     ?p1
                           ?p1




   ?p1


         ?p1
               ?p3


 ?p1




                                                  57
Incremental Evaluation of Every Possible Combination
                                 ?p2
                     ?p1
                           ?p1




   ?p1


         ?p1
               ?p3


 ?p1




                                                  58
Incremental Evaluation of Every Possible Combination
                                 ?p2
                     ?p1
                           ?p1




   ?p1


         ?p1
               ?p3


 ?p1




                                                  59
Incremental Evaluation of Every Possible Combination
                                       ?p2
                     ?p1
                                 ?p1
                           ?p1




   ?p1


         ?p1
               ?p3


 ?p1




                                                  60
Incremental Evaluation of Every Possible Combination
                                             ?p2
                     ?p1
                                       ?p1
                                 ?p1
                           ?p2




   ?p1


         ?p1
               ?p3


 ?p1




                                                   61
Incremental Evaluation of Every Possible Combination
                                            ?p2
                    ?p1
                                      ?p1
                                ?p1
                          ?p2




   ?p1


        ?p1
              ?p3
       ?p3

 ?p1




                                                  62
Incremental Evaluation of Every Possible Combination
                                            ?p2
                    ?p1
                                      ?p1
                                ?p1
                          ?p2

                                             Limit calculations to
                                             a sliding window
   ?p1


        ?p1
              ?p3
       ?p3

 ?p1




                                                                 63
Incremental Evaluation of Every Possible Combination
                                          ?p2
                  ?p1
                                    ?p1
                              ?p1
                        ?p2

                                           Limit calculations to
                                           a sliding window
   ?p1


      ?p1
            ?p3
     ?p3




                                                               64
Incremental Evaluation of Every Possible Combination
                                         ?p2
                 ?p1
                                   ?p1
                             ?p1
                       ?p2

                                          Limit calculations to
                                          a sliding window
   ?p1



           ?p3
     ?p3




                                                              65
Incremental Evaluation of Every Possible Combination
                                       ?p2
               ?p1
                                 ?p1
                           ?p1
                     ?p2

                                        Limit calculations to
                                        a sliding window
   ?p1



           ?p3 ?p1
     ?p3




                                                            66
Incremental Evaluation of Every Possible Combination
                                       ?p2
               ?p1
                                 ?p1
                           ?p1
                     ?p2

                                        Limit calculations to
                                        a sliding window
   ?p1



           ?p3 ?p1                     ?p4
     ?p3




                                                            67
Incremental Evaluation of Every Possible Combination
                                       ?p2
               ?p1
                                 ?p1
                           ?p1
                     ?p2

                                        Limit calculations to
                                        a sliding window


           ?p3 ?p1                     ?p4
     ?p3




                                                            68
Incremental Evaluation of Every Possible Combination
                                       ?p2
               ?p1
                                 ?p1
                           ?p1
                     ?p2

                                        Limit calculations to
                                        a sliding window


           ?p3 ?p1                     ?p4
     ?p3




                                                            69
Incremental Evaluation of Every Possible Combination
                                       ?p2
               ?p1
                                 ?p1
                           ?p1
                     ?p2

                                        Limit calculations to
                                        a sliding window


           ?p3 ?p1                     ?p4
     ?p3




                                                            70
Incremental Evaluation of Every Possible Combination
                                       ?p2
               ?p1
                                 ?p1
                           ?p1
                     ?p2

                                        Limit calculations to
                                        a sliding window

                                        ?p2

           ?p3 ?p1                     ?p4
     ?p3




                                                            71
Incremental Evaluation of Every Possible Combination
                                       ?p2
               ?p1
                                 ?p1
                           ?p1
                     ?p2

                                        Limit calculations to
                                        a sliding window

                                        ?p2

           ?p3 ?p1                     ?p4
     ?p3




                                                            72
Incremental Evaluation of Every Possible Combination
                                       ?p2
               ?p1
                                 ?p1
                           ?p1
                     ?p2

                                        Limit calculations to
                                        a sliding window

                                        ?p2

           ?p3 ?p1                     ?p4
     ?p3




                                                            73
Extending the ‘Flick Right’ Definition
       Reducing false positives using negation

        ?p1              ?p2          ?p3




                                                 74
Extending the ‘Flick Right’ Definition
       Reducing false positives using negation

        ?p1              ?p2          ?p3




                                                 75
Extending the ‘Flick Right’ Definition




          ?p1          ?p2         ?p3




                                         76
Extending the ‘Flick Right’ Definition




                   ?p1               ?p2                   ?p3




(not
   (and
     (Point2D   (y ?b y) (time ?b time)) … there   should not be a point where the …
     (test (<   ?b time ?p3.time))
     (test (>   ?b time ?p1.time))
     (test (>   (abs (- ?p1.y ?b y)) 245))))


                                                                                  77
Extending the ‘Flick Right’ Definition




                   ?p1               ?p2                ?p3




(not
   (and
     (Point2D   (y ?b y) (time ?b time)) … there should not be a point where the   …
     (test (<   ?b time ?p3.time))
                                         … time lies in between ?p1 and ?p3 …
     (test (>   ?b time ?p1.time))
     (test (>   (abs (- ?p1.y ?b y)) 245))))


                                                                                   78
Extending the ‘Flick Right’ Definition




          y
                   ?p1                ?p2                ?p3
          y




(not
   (and
     (Point2D   (y ?b y) (time ?b time)) … there should not be a point where the …
     (test (<   ?b time ?p3.time))
                                         … time lies in between ?p1 and ?p3 …
     (test (>   ?b time ?p1.time))
     (test (>   (abs (- ?p1.y ?b y)) 245)))) … for which      y is greater than 245.

                                                                                  79
Evaluation
22   77.50   52.10   78.75   56.50
24   83.13   47.16   84.38   52.53
26   90.63   42.40   91.25   46.79
28   93.75   39.47   94.38   43.26
30   97.50   35.37   97.50   39.29
32   98.75   32.78   98.75   36.41




                             • 16 gestures
                             • 1760 gesture samples
                             • 10 subjects
                                                 80
Future Work

Scale / rotational            Visual 3D gesture
invariant spotting            definitions




                                                  81
Summary
                lhoste@vub.ac.be bderooms@vub.ac.be   bsigner@vub.ac.be




Auto infer control points        Generate Spotting Code               Call classification




     •   Extensive spotting: support for real-time continuous streams.
     •   No gesture overshooting: support for overlapping submatches.
     •   Comprehensible: easy to understand and to correct.
     •   Extensible: allows for expert adjustments.


                                                                                            82
Lode Hoste, Brecht De Rooms
and Beat Signer, Declarative
Gesture Spotting Using
Inferred and Refined Control
Points, Proceedings of
ICPRAM 2013, International
Conference on Pattern
Recognition, Barcelona, Spain,
February 2013


                                 83

Contenu connexe

Tendances

Lecture 2 verilog
Lecture 2   verilogLecture 2   verilog
Lecture 2 verilog
venravi10
 
Session 6 sv_randomization
Session 6 sv_randomizationSession 6 sv_randomization
Session 6 sv_randomization
Nirav Desai
 
OWF12/PAUG Conf Days Pro guard optimizer and obfuscator for android, eric l...
OWF12/PAUG Conf Days Pro guard   optimizer and obfuscator for android, eric l...OWF12/PAUG Conf Days Pro guard   optimizer and obfuscator for android, eric l...
OWF12/PAUG Conf Days Pro guard optimizer and obfuscator for android, eric l...
Paris Open Source Summit
 
Verilog Lecture3 hust 2014
Verilog Lecture3 hust 2014Verilog Lecture3 hust 2014
Verilog Lecture3 hust 2014
Béo Tú
 

Tendances (20)

VHDL CODE
VHDL CODE VHDL CODE
VHDL CODE
 
GCC Summit 2010
GCC Summit 2010GCC Summit 2010
GCC Summit 2010
 
System Verilog Tutorial - VHDL
System Verilog Tutorial - VHDLSystem Verilog Tutorial - VHDL
System Verilog Tutorial - VHDL
 
Lecture 2 verilog
Lecture 2   verilogLecture 2   verilog
Lecture 2 verilog
 
Delays in verilog
Delays in verilogDelays in verilog
Delays in verilog
 
Crash course in verilog
Crash course in verilogCrash course in verilog
Crash course in verilog
 
Session1
Session1Session1
Session1
 
180809
180809180809
180809
 
Htn in videogames
Htn in videogamesHtn in videogames
Htn in videogames
 
Praktek ARDUINO
Praktek ARDUINOPraktek ARDUINO
Praktek ARDUINO
 
Shop 2 presentation slide
Shop 2 presentation slideShop 2 presentation slide
Shop 2 presentation slide
 
Digital system design practical file
Digital system design practical fileDigital system design practical file
Digital system design practical file
 
Verilog 語法教學
Verilog 語法教學 Verilog 語法教學
Verilog 語法教學
 
radix_4 fft dif with mdc and mdf
radix_4 fft dif with mdc and mdfradix_4 fft dif with mdc and mdf
radix_4 fft dif with mdc and mdf
 
Session 6 sv_randomization
Session 6 sv_randomizationSession 6 sv_randomization
Session 6 sv_randomization
 
Programs of VHDL
Programs of VHDLPrograms of VHDL
Programs of VHDL
 
OWF12/PAUG Conf Days Pro guard optimizer and obfuscator for android, eric l...
OWF12/PAUG Conf Days Pro guard   optimizer and obfuscator for android, eric l...OWF12/PAUG Conf Days Pro guard   optimizer and obfuscator for android, eric l...
OWF12/PAUG Conf Days Pro guard optimizer and obfuscator for android, eric l...
 
Bluespec @waseda
Bluespec @wasedaBluespec @waseda
Bluespec @waseda
 
VERILOG CODE
VERILOG CODEVERILOG CODE
VERILOG CODE
 
Verilog Lecture3 hust 2014
Verilog Lecture3 hust 2014Verilog Lecture3 hust 2014
Verilog Lecture3 hust 2014
 

Similaire à Declarative Gesture Spotting Using Inferred and Refined Control Points

Monkey-patching in Python: a magic trick or a powerful tool?
Monkey-patching in Python: a magic trick or a powerful tool?Monkey-patching in Python: a magic trick or a powerful tool?
Monkey-patching in Python: a magic trick or a powerful tool?
Elizaveta Shashkova
 
Verilog for synthesis - combinational rev a.pdf
Verilog for synthesis - combinational rev a.pdfVerilog for synthesis - combinational rev a.pdf
Verilog for synthesis - combinational rev a.pdf
AzeemMohammedAbdul
 
Building High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low EffortBuilding High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low Effort
Stefan Marr
 

Similaire à Declarative Gesture Spotting Using Inferred and Refined Control Points (20)

Pharo Virtual Machine: News from the Front
Pharo Virtual Machine: News from the FrontPharo Virtual Machine: News from the Front
Pharo Virtual Machine: News from the Front
 
Tdd with python unittest for embedded c
Tdd with python unittest for embedded cTdd with python unittest for embedded c
Tdd with python unittest for embedded c
 
Eclipse Day India 2015 - Java bytecode analysis and JIT
Eclipse Day India 2015 - Java bytecode analysis and JITEclipse Day India 2015 - Java bytecode analysis and JIT
Eclipse Day India 2015 - Java bytecode analysis and JIT
 
Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Data Provenance Support in...
Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Data Provenance Support in...Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Data Provenance Support in...
Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Data Provenance Support in...
 
OpenMI Developers Training
OpenMI Developers TrainingOpenMI Developers Training
OpenMI Developers Training
 
OpenMI Developers Training
OpenMI Developers TrainingOpenMI Developers Training
OpenMI Developers Training
 
Multiplatform JIT Code Generator for NetBSD by Alexander Nasonov
Multiplatform JIT Code Generator for NetBSD by Alexander NasonovMultiplatform JIT Code Generator for NetBSD by Alexander Nasonov
Multiplatform JIT Code Generator for NetBSD by Alexander Nasonov
 
Monkey-patching in Python: a magic trick or a powerful tool?
Monkey-patching in Python: a magic trick or a powerful tool?Monkey-patching in Python: a magic trick or a powerful tool?
Monkey-patching in Python: a magic trick or a powerful tool?
 
IL2CPP: Debugging and Profiling
IL2CPP: Debugging and ProfilingIL2CPP: Debugging and Profiling
IL2CPP: Debugging and Profiling
 
Good news, everybody! Guile 2.2 performance notes (FOSDEM 2016)
Good news, everybody! Guile 2.2 performance notes (FOSDEM 2016)Good news, everybody! Guile 2.2 performance notes (FOSDEM 2016)
Good news, everybody! Guile 2.2 performance notes (FOSDEM 2016)
 
IOS debugging
IOS debuggingIOS debugging
IOS debugging
 
Code Difference Visualization by a Call Tree
Code Difference Visualization by a Call TreeCode Difference Visualization by a Call Tree
Code Difference Visualization by a Call Tree
 
Windbg랑 친해지기
Windbg랑 친해지기Windbg랑 친해지기
Windbg랑 친해지기
 
Verilog for synthesis - combinational rev a.pdf
Verilog for synthesis - combinational rev a.pdfVerilog for synthesis - combinational rev a.pdf
Verilog for synthesis - combinational rev a.pdf
 
So You Want To Write Your Own Benchmark
So You Want To Write Your Own BenchmarkSo You Want To Write Your Own Benchmark
So You Want To Write Your Own Benchmark
 
Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...
Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...
Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...
 
Code lifecycle in the jvm - TopConf Linz
Code lifecycle in the jvm - TopConf LinzCode lifecycle in the jvm - TopConf Linz
Code lifecycle in the jvm - TopConf Linz
 
Building High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low EffortBuilding High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low Effort
 
Class 17: Golden Sneezewort
Class 17: Golden SneezewortClass 17: Golden Sneezewort
Class 17: Golden Sneezewort
 
Gcc porting
Gcc portingGcc porting
Gcc porting
 

Plus de Beat Signer

Personalised Learning Environments Based on Knowledge Graphs and the Zone of ...
Personalised Learning Environments Based on Knowledge Graphs and the Zone of ...Personalised Learning Environments Based on Knowledge Graphs and the Zone of ...
Personalised Learning Environments Based on Knowledge Graphs and the Zone of ...
Beat Signer
 
Towards a Framework for Dynamic Data Physicalisation
Towards a Framework for Dynamic Data PhysicalisationTowards a Framework for Dynamic Data Physicalisation
Towards a Framework for Dynamic Data Physicalisation
Beat Signer
 

Plus de Beat Signer (20)

Introduction - Lecture 1 - Human-Computer Interaction (1023841ANR)
Introduction - Lecture 1 - Human-Computer Interaction (1023841ANR)Introduction - Lecture 1 - Human-Computer Interaction (1023841ANR)
Introduction - Lecture 1 - Human-Computer Interaction (1023841ANR)
 
Indoor Positioning Using the OpenHPS Framework
Indoor Positioning Using the OpenHPS FrameworkIndoor Positioning Using the OpenHPS Framework
Indoor Positioning Using the OpenHPS Framework
 
Personalised Learning Environments Based on Knowledge Graphs and the Zone of ...
Personalised Learning Environments Based on Knowledge Graphs and the Zone of ...Personalised Learning Environments Based on Knowledge Graphs and the Zone of ...
Personalised Learning Environments Based on Knowledge Graphs and the Zone of ...
 
Cross-Media Technologies and Applications - Future Directions for Personal In...
Cross-Media Technologies and Applications - Future Directions for Personal In...Cross-Media Technologies and Applications - Future Directions for Personal In...
Cross-Media Technologies and Applications - Future Directions for Personal In...
 
Bridging the Gap: Managing and Interacting with Information Across Media Boun...
Bridging the Gap: Managing and Interacting with Information Across Media Boun...Bridging the Gap: Managing and Interacting with Information Across Media Boun...
Bridging the Gap: Managing and Interacting with Information Across Media Boun...
 
Codeschool in a Box: A Low-Barrier Approach to Packaging Programming Curricula
Codeschool in a Box: A Low-Barrier Approach to Packaging Programming CurriculaCodeschool in a Box: A Low-Barrier Approach to Packaging Programming Curricula
Codeschool in a Box: A Low-Barrier Approach to Packaging Programming Curricula
 
The RSL Hypermedia Metamodel and Its Application in Cross-Media Solutions
The RSL Hypermedia Metamodel and Its Application in Cross-Media Solutions The RSL Hypermedia Metamodel and Its Application in Cross-Media Solutions
The RSL Hypermedia Metamodel and Its Application in Cross-Media Solutions
 
Case Studies and Course Review - Lecture 12 - Information Visualisation (4019...
Case Studies and Course Review - Lecture 12 - Information Visualisation (4019...Case Studies and Course Review - Lecture 12 - Information Visualisation (4019...
Case Studies and Course Review - Lecture 12 - Information Visualisation (4019...
 
Dashboards - Lecture 11 - Information Visualisation (4019538FNR)
Dashboards - Lecture 11 - Information Visualisation (4019538FNR)Dashboards - Lecture 11 - Information Visualisation (4019538FNR)
Dashboards - Lecture 11 - Information Visualisation (4019538FNR)
 
Interaction - Lecture 10 - Information Visualisation (4019538FNR)
Interaction - Lecture 10 - Information Visualisation (4019538FNR)Interaction - Lecture 10 - Information Visualisation (4019538FNR)
Interaction - Lecture 10 - Information Visualisation (4019538FNR)
 
View Manipulation and Reduction - Lecture 9 - Information Visualisation (4019...
View Manipulation and Reduction - Lecture 9 - Information Visualisation (4019...View Manipulation and Reduction - Lecture 9 - Information Visualisation (4019...
View Manipulation and Reduction - Lecture 9 - Information Visualisation (4019...
 
Visualisation Techniques - Lecture 8 - Information Visualisation (4019538FNR)
Visualisation Techniques - Lecture 8 - Information Visualisation (4019538FNR)Visualisation Techniques - Lecture 8 - Information Visualisation (4019538FNR)
Visualisation Techniques - Lecture 8 - Information Visualisation (4019538FNR)
 
Design Guidelines and Principles - Lecture 7 - Information Visualisation (401...
Design Guidelines and Principles - Lecture 7 - Information Visualisation (401...Design Guidelines and Principles - Lecture 7 - Information Visualisation (401...
Design Guidelines and Principles - Lecture 7 - Information Visualisation (401...
 
Data Processing and Visualisation Frameworks - Lecture 6 - Information Visual...
Data Processing and Visualisation Frameworks - Lecture 6 - Information Visual...Data Processing and Visualisation Frameworks - Lecture 6 - Information Visual...
Data Processing and Visualisation Frameworks - Lecture 6 - Information Visual...
 
Data Presentation - Lecture 5 - Information Visualisation (4019538FNR)
Data Presentation - Lecture 5 - Information Visualisation (4019538FNR)Data Presentation - Lecture 5 - Information Visualisation (4019538FNR)
Data Presentation - Lecture 5 - Information Visualisation (4019538FNR)
 
Analysis and Validation - Lecture 4 - Information Visualisation (4019538FNR)
Analysis and Validation - Lecture 4 - Information Visualisation (4019538FNR)Analysis and Validation - Lecture 4 - Information Visualisation (4019538FNR)
Analysis and Validation - Lecture 4 - Information Visualisation (4019538FNR)
 
Data Representation - Lecture 3 - Information Visualisation (4019538FNR)
Data Representation - Lecture 3 - Information Visualisation (4019538FNR)Data Representation - Lecture 3 - Information Visualisation (4019538FNR)
Data Representation - Lecture 3 - Information Visualisation (4019538FNR)
 
Human Perception and Colour Theory - Lecture 2 - Information Visualisation (4...
Human Perception and Colour Theory - Lecture 2 - Information Visualisation (4...Human Perception and Colour Theory - Lecture 2 - Information Visualisation (4...
Human Perception and Colour Theory - Lecture 2 - Information Visualisation (4...
 
Introduction - Lecture 1 - Information Visualisation (4019538FNR)
Introduction - Lecture 1 - Information Visualisation (4019538FNR)Introduction - Lecture 1 - Information Visualisation (4019538FNR)
Introduction - Lecture 1 - Information Visualisation (4019538FNR)
 
Towards a Framework for Dynamic Data Physicalisation
Towards a Framework for Dynamic Data PhysicalisationTowards a Framework for Dynamic Data Physicalisation
Towards a Framework for Dynamic Data Physicalisation
 

Dernier

Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune WaterworldsBiogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Sérgio Sacani
 
Module for Grade 9 for Asynchronous/Distance learning
Module for Grade 9 for Asynchronous/Distance learningModule for Grade 9 for Asynchronous/Distance learning
Module for Grade 9 for Asynchronous/Distance learning
levieagacer
 
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 bAsymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Sérgio Sacani
 

Dernier (20)

Introduction to Viruses
Introduction to VirusesIntroduction to Viruses
Introduction to Viruses
 
Thyroid Physiology_Dr.E. Muralinath_ Associate Professor
Thyroid Physiology_Dr.E. Muralinath_ Associate ProfessorThyroid Physiology_Dr.E. Muralinath_ Associate Professor
Thyroid Physiology_Dr.E. Muralinath_ Associate Professor
 
Justdial Call Girls In Indirapuram, Ghaziabad, 8800357707 Escorts Service
Justdial Call Girls In Indirapuram, Ghaziabad, 8800357707 Escorts ServiceJustdial Call Girls In Indirapuram, Ghaziabad, 8800357707 Escorts Service
Justdial Call Girls In Indirapuram, Ghaziabad, 8800357707 Escorts Service
 
Kochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRL
Kochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRLKochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRL
Kochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRL
 
FAIRSpectra - Enabling the FAIRification of Analytical Science
FAIRSpectra - Enabling the FAIRification of Analytical ScienceFAIRSpectra - Enabling the FAIRification of Analytical Science
FAIRSpectra - Enabling the FAIRification of Analytical Science
 
Sector 62, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 62, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 62, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 62, Noida Call girls :8448380779 Model Escorts | 100% verified
 
Call Girls Ahmedabad +917728919243 call me Independent Escort Service
Call Girls Ahmedabad +917728919243 call me Independent Escort ServiceCall Girls Ahmedabad +917728919243 call me Independent Escort Service
Call Girls Ahmedabad +917728919243 call me Independent Escort Service
 
Human & Veterinary Respiratory Physilogy_DR.E.Muralinath_Associate Professor....
Human & Veterinary Respiratory Physilogy_DR.E.Muralinath_Associate Professor....Human & Veterinary Respiratory Physilogy_DR.E.Muralinath_Associate Professor....
Human & Veterinary Respiratory Physilogy_DR.E.Muralinath_Associate Professor....
 
COST ESTIMATION FOR A RESEARCH PROJECT.pptx
COST ESTIMATION FOR A RESEARCH PROJECT.pptxCOST ESTIMATION FOR A RESEARCH PROJECT.pptx
COST ESTIMATION FOR A RESEARCH PROJECT.pptx
 
SAMASTIPUR CALL GIRL 7857803690 LOW PRICE ESCORT SERVICE
SAMASTIPUR CALL GIRL 7857803690  LOW PRICE  ESCORT SERVICESAMASTIPUR CALL GIRL 7857803690  LOW PRICE  ESCORT SERVICE
SAMASTIPUR CALL GIRL 7857803690 LOW PRICE ESCORT SERVICE
 
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune WaterworldsBiogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
 
Connaught Place, Delhi Call girls :8448380779 Model Escorts | 100% verified
Connaught Place, Delhi Call girls :8448380779 Model Escorts | 100% verifiedConnaught Place, Delhi Call girls :8448380779 Model Escorts | 100% verified
Connaught Place, Delhi Call girls :8448380779 Model Escorts | 100% verified
 
Module for Grade 9 for Asynchronous/Distance learning
Module for Grade 9 for Asynchronous/Distance learningModule for Grade 9 for Asynchronous/Distance learning
Module for Grade 9 for Asynchronous/Distance learning
 
Pulmonary drug delivery system M.pharm -2nd sem P'ceutics
Pulmonary drug delivery system M.pharm -2nd sem P'ceuticsPulmonary drug delivery system M.pharm -2nd sem P'ceutics
Pulmonary drug delivery system M.pharm -2nd sem P'ceutics
 
module for grade 9 for distance learning
module for grade 9 for distance learningmodule for grade 9 for distance learning
module for grade 9 for distance learning
 
Molecular markers- RFLP, RAPD, AFLP, SNP etc.
Molecular markers- RFLP, RAPD, AFLP, SNP etc.Molecular markers- RFLP, RAPD, AFLP, SNP etc.
Molecular markers- RFLP, RAPD, AFLP, SNP etc.
 
PSYCHOSOCIAL NEEDS. in nursing II sem pptx
PSYCHOSOCIAL NEEDS. in nursing II sem pptxPSYCHOSOCIAL NEEDS. in nursing II sem pptx
PSYCHOSOCIAL NEEDS. in nursing II sem pptx
 
Clean In Place(CIP).pptx .
Clean In Place(CIP).pptx                 .Clean In Place(CIP).pptx                 .
Clean In Place(CIP).pptx .
 
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
 
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 bAsymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
 

Declarative Gesture Spotting Using Inferred and Refined Control Points

  • 1. Declarative Gesture Spotting Using Inferred and Refined Control Points Department of Computer Science, Vrije Universiteit Brussel (VUB) Lode Hoste - lhoste@vub.ac.be Brecht De Rooms - bderooms@vub.ac.be Beat Signer - bsigner@vub.ac.be 1
  • 2. Gesture Classification template sample segment e.g. Dynamic Time Warping 2
  • 3. Gesture Classification template sample segment e.g. Dynamic Time Warping 3
  • 9. Gesture Classification Too Complex 9
  • 10. Gesture Classification Start? We need gesture spotting End? 10
  • 11. Gesture Classification Start? We need gesture spotting reduce amount of work for gesture classification End? 11
  • 12. Gesture Spotting Goal: - High Recall - High Precision Popular techniques: - Hidden Markov Models - Continuous Dynamic Programming 12
  • 13. Our Declarative Gesture Spotting Approach 1. Automatically infer control points - from one representative sample - one shot learning 2. Generate declarative code Spotted? - understandable and extensible spotting definitions 3. Call a gesture classification algorithm 13
  • 14. Automatically Infer Control Points One representative sample Z gesture 14
  • 15. Automatically Infer Control Points One representative sample - start with the first point Z gesture 15
  • 16. Automatically Infer Control Points One representative sample - start with the first point - search for the smallest angle - within a given time-frame Z gesture 16
  • 17. Automatically Infer Control Points One representative sample - start with the first point - search for the smallest angle - within a given time-frame Z gesture 17
  • 18. Automatically Infer Control Points One representative sample - start with the first point - search for the smallest angle - within a given time-frame - refine control points (optionally) Z gesture 18
  • 19. Comprehensible Code Generation Based on the inferred control points: 19
  • 20. Comprehensible Code Generation Based on the inferred control points: 1 (defrule symbol_z 2 ?p1 (Point2D) there is a start point ?p1 20
  • 21. Comprehensible Code Generation Based on the inferred control points: 1 (defrule symbol_z 2 ?p1 (Point2D) 3 ?p2 (Point2D) there is a second point ?p1 ?p2 21
  • 22. Comprehensible Code Generation Based on the inferred control points: 1 (defrule symbol_z 2 ?p1 (Point2D) 3 ?p2 (Point2D) ?p1 ?p2 4 (test (< ?p1.time ?p2.time)) temporal constraint: that comes after the start point 22
  • 23. Comprehensible Code Generation Based on the inferred control points: 1 (defrule symbol_z 2 ?p1 (Point2D) 3 ?p2 (Point2D) ?p1 ?p2 4 (test (< ?p1.time ?p2.time)) 5 (test (inside_control_point ?p1 ?p2 185 4 76)) spatial constraint: 23
  • 24. Comprehensible Code Generation Based on the inferred control points: 1 (defrule symbol_z 2 ?p1 (Point2D) 3 ?p2 (Point2D) ?p1 ?p2 4 (test (< ?p1.time ?p2.time)) 5 (test (inside_control_point ?p1 ?p2 185 4 76)) 4 185 spatial constraint: .. a circular area with centerpoint x: 185 y:4 (pixels) 24
  • 25. Comprehensible Code Generation Based on the inferred control points: 1 (defrule symbol_z 2 ?p1 (Point2D) 3 ?p2 (Point2D) ?p1 ?p2 4 (test (< ?p1.time ?p2.time)) 5 (test (inside_control_point ?p1 ?p2 185 4 76)) 4 185 spatial constraint: .. a circular area with centerpoint x: 185 y:4 (pixels) and radious 76 25
  • 26. Comprehensible Code Generation Based on the inferred control points: 1 (defrule symbol_z 2 ?p1 (Point2D) 3 ?p2 (Point2D) ?p1 ?p2 4 (test (< ?p1.time ?p2.time)) 5 (test (inside_control_point ?p1 ?p2 185 4 76)) 4 185 26
  • 27. Comprehensible Code Generation Based on the inferred control points: 1 (defrule symbol_z 2 ?p1 (Point2D) 3 ?p2 (Point2D) ?p1 ?p2 4 (test (< ?p1.time ?p2.time)) 5 (test (inside_control_point ?p1 ?p2 185 4 76)) 4 6 ?p3 (Point2D) 185 7 (test (< ?p2.time ?p3.time)) 8 (test (inside_control_point ?p1 ?p3 15 178 76)) 9 ?p4 (Point2D) 10 (test (< ?p3.time ?p4.time)) 11 (test (inside_control_point ?p1 ?p4 197 175 76)) ?p3 ?p4 27
  • 28. Comprehensible Code Generation Based on the inferred control points: 1 (defrule symbol_z 2 ?p1 (Point2D) 3 ?p2 (Point2D) ?p1 ?p2 4 (test (< ?p1.time ?p2.time)) 5 (test (inside_control_point ?p1 ?p2 185 4 76)) 6 ?p3 (Point2D) 7 (test (< ?p2.time ?p3.time)) 8 (test (inside_control_point ?p1 ?p3 15 178 76)) 9 ?p4 (Point2D) 10 (test (< ?p3.time ?p4.time)) 11 (test (inside_control_point ?p1 ?p4 197 175 76)) each point expressed relative to ?p1 ?p3 ?p4 28
  • 29. Comprehensible Code Generation Based on the inferred control points: 1 (defrule symbol_z 2 ?p1 (Point2D) 3 ?p2 (Point2D) ?p1 ?p2 4 (test (< ?p1.time ?p2.time)) 5 (test (inside_control_point ?p1 ?p2 185 4 76)) 6 ?p3 (Point2D) 7 (test (< ?p2.time ?p3.time)) 8 (test (inside_control_point ?p1 ?p3 15 178 76)) 9 ?p4 (Point2D) 10 (test (< ?p3.time ?p4.time)) 11 (test (inside_control_point ?p1 ?p4 197 175 76)) temporal constraints: the points should be ordered ?p3 ?p4 29
  • 30. Comprehensible Code Generation Based on the inferred control points: 1 (defrule symbol_z 2 ?p1 (Point2D) 3 ?p2 (Point2D) ?p1 ?p2 4 (test (< ?p1.time ?p2.time)) 5 (test (inside_control_point ?p1 ?p2 185 4 76)) 6 ?p3 (Point2D) 7 (test (< ?p2.time ?p3.time)) 8 (test (inside_control_point ?p1 ?p3 15 178 76)) 9 ?p4 (Point2D) 10 (test (< ?p3.time ?p4.time)) 11 (test (inside_control_point ?p1 ?p4 197 175 76)) 12 => 13 (call DynamicTimeWarping 14 (select-between ?p1.time ?p4.time) 15 (gesture-set “CharacterZ”)) ?p3 ?p4 call an external algorithm for classification 30
  • 31. A State Machine is Not Enough template continuous stream State 1 State 1 State 2 State 3 State 4 31
  • 32. A State Machine is Not Enough template continuous stream State 2 State 1 State 2 State 3 State 4 32
  • 33. A State Machine is Not Enough template continuous stream State 2 State 1 State 2 reset state machine? State 3 State 4 33
  • 34. A State Machine is Not Enough template continuous stream State 1 State 1 State 2 reset state machine? State 3 State 4 34
  • 35. A State Machine is Not Enough template continuous stream State 1 State 1 State 2 State 3 State 4 35
  • 36. A State Machine is Not Enough template continuous stream State 1 State 1 State 2 State 3 State 4 36
  • 37. A State Machine is Not Enough template continuous stream State 1 State 2 gesture overshot  missed gesture State 3 State 4 37
  • 38. A State Machine is Not Enough template continuous stream State 1 State 2 State 3 State 4 38
  • 39. A State Machine is Not Enough template continuous stream State 1 State 2 refused by gesture classification State 3 State 4 39
  • 40. A State Machine is Not Enough template continuous stream State 1 State 2 refused by gesture classification State 3 State 4 overlapping gesture  missed gesture 40
  • 41. Incremental Evaluation of Every Possible Combination 1 (defrule symbol_z 2 ?p1 (Point2D) 41
  • 42. Incremental Evaluation of Every Possible Combination 1 (defrule symbol_z 2 ?p1 (Point2D) 3 ?p2 (Point2D) 4 (test (< ?p1.time ?p2.time)) 5 (test (inside_control_point ?p1 ?p2 185 4 76)) 42
  • 43. Incremental Evaluation of Every Possible Combination 1 (defrule symbol_z 2 ?p1 (Point2D) 1 (defrule symbol_z 2 ?p1 (Point2D) 3 ?p2 (Point2D) 4 (test (< ?p1.time ?p2.time)) 5 (test (inside_control_point ?p1 ?p2 185 4 76)) 43
  • 44. Incremental Evaluation of Every Possible Combination 1 (defrule symbol_z 2 ?p1 (Point2D) 1 (defrule symbol_z 2 ?p1 (Point2D) 3 ?p2 (Point2D) 4 (test (< ?p1.time ?p2.time)) 5 (test (inside_control_point ?p1 ?p2 185 4 76)) 44
  • 45. Incremental Evaluation of Every Possible Combination 1 (defrule symbol_z 2 ?p1 (Point2D) 1 (defrule symbol_z 2 ?p1 (Point2D) 3 ?p2 (Point2D) 1 (defrule symbol_z 2 ?p1 (Point2D) 3 ?p2 (Point2D) 4 (test (< ?p1.time ?p2.time)) 5 (test (inside_control_point ?p1 ?p2 185 4 76)) 45
  • 46. Incremental Evaluation of Every Possible Combination 1 (defrule symbol_z 2 ?p1 (Point2D) 1 (defrule symbol_z 2 ?p1 (Point2D) 3 ?p2 (Point2D) 1 (defrule symbol_z 2 ?p1 (Point2D) 1 (defrule symbol_z 3 ?p2 (Point2D) 2 ?p1 (Point2D) 3 ?p2 (Point2D) 4 (test (< ?p1.time ?p2.time)) 5 (test (inside_control_point ?p1 ?p2 185 4 76)) 46
  • 47. Incremental Evaluation of Every Possible Combination 1 (defrule symbol_z 2 ?p1 (Point2D) 1 (defrule symbol_z 2 ?p1 (Point2D) 3 ?p2 (Point2D) 1 (defrule symbol_z 2 ?p1 (Point2D) 1 (defrule symbol_z 3 ?p2 (Point2D) 2 ?p1 (Point2D) 3 ?p2 (Point2D) 4 (test (< ?p1.time ?p2.time)) 5 (test (inside_control_point ?p1 ?p2 185 4 76)) 47
  • 48. Incremental Evaluation of Every Possible Combination 1 (defrule symbol_z 2 ?p1 (Point2D) 1 (defrule symbol_z 2 ?p1 (Point2D) 3 ?p2 (Point2D) 1 (defrule symbol_z 2 ?p1 (Point2D) 1 (defrule symbol_z 3 ?p2 (Point2D) 2 ?p1 (Point2D) 3 ?p2 (Point2D) 4 (test (< ?p1.time ?p2.time)) 5 (test (inside_control_point ?p1 ?p2 185 4 76)) RETE engine takes care of caching intermediate calculations 48
  • 49. Incremental Evaluation of Every Possible Combination ?p1 49
  • 50. Incremental Evaluation of Every Possible Combination ?p1 ?p1 50
  • 51. Incremental Evaluation of Every Possible Combination ?p1 ?p1 ?p1 51
  • 52. Incremental Evaluation of Every Possible Combination ?p1 ?p1 ?p1 52
  • 53. Incremental Evaluation of Every Possible Combination ?p1 ?p1 ?p1 53
  • 54. Incremental Evaluation of Every Possible Combination ?p1 ?p1 ?p1 ?p1 54
  • 55. Incremental Evaluation of Every Possible Combination ?p2 ?p1 ?p1 ?p1 ?p1 55
  • 56. Incremental Evaluation of Every Possible Combination ?p2 ?p1 ?p1 ?p1 ?p1 ?p1 56
  • 57. Incremental Evaluation of Every Possible Combination ?p2 ?p1 ?p1 ?p1 ?p1 ?p3 ?p1 57
  • 58. Incremental Evaluation of Every Possible Combination ?p2 ?p1 ?p1 ?p1 ?p1 ?p3 ?p1 58
  • 59. Incremental Evaluation of Every Possible Combination ?p2 ?p1 ?p1 ?p1 ?p1 ?p3 ?p1 59
  • 60. Incremental Evaluation of Every Possible Combination ?p2 ?p1 ?p1 ?p1 ?p1 ?p1 ?p3 ?p1 60
  • 61. Incremental Evaluation of Every Possible Combination ?p2 ?p1 ?p1 ?p1 ?p2 ?p1 ?p1 ?p3 ?p1 61
  • 62. Incremental Evaluation of Every Possible Combination ?p2 ?p1 ?p1 ?p1 ?p2 ?p1 ?p1 ?p3 ?p3 ?p1 62
  • 63. Incremental Evaluation of Every Possible Combination ?p2 ?p1 ?p1 ?p1 ?p2 Limit calculations to a sliding window ?p1 ?p1 ?p3 ?p3 ?p1 63
  • 64. Incremental Evaluation of Every Possible Combination ?p2 ?p1 ?p1 ?p1 ?p2 Limit calculations to a sliding window ?p1 ?p1 ?p3 ?p3 64
  • 65. Incremental Evaluation of Every Possible Combination ?p2 ?p1 ?p1 ?p1 ?p2 Limit calculations to a sliding window ?p1 ?p3 ?p3 65
  • 66. Incremental Evaluation of Every Possible Combination ?p2 ?p1 ?p1 ?p1 ?p2 Limit calculations to a sliding window ?p1 ?p3 ?p1 ?p3 66
  • 67. Incremental Evaluation of Every Possible Combination ?p2 ?p1 ?p1 ?p1 ?p2 Limit calculations to a sliding window ?p1 ?p3 ?p1 ?p4 ?p3 67
  • 68. Incremental Evaluation of Every Possible Combination ?p2 ?p1 ?p1 ?p1 ?p2 Limit calculations to a sliding window ?p3 ?p1 ?p4 ?p3 68
  • 69. Incremental Evaluation of Every Possible Combination ?p2 ?p1 ?p1 ?p1 ?p2 Limit calculations to a sliding window ?p3 ?p1 ?p4 ?p3 69
  • 70. Incremental Evaluation of Every Possible Combination ?p2 ?p1 ?p1 ?p1 ?p2 Limit calculations to a sliding window ?p3 ?p1 ?p4 ?p3 70
  • 71. Incremental Evaluation of Every Possible Combination ?p2 ?p1 ?p1 ?p1 ?p2 Limit calculations to a sliding window ?p2 ?p3 ?p1 ?p4 ?p3 71
  • 72. Incremental Evaluation of Every Possible Combination ?p2 ?p1 ?p1 ?p1 ?p2 Limit calculations to a sliding window ?p2 ?p3 ?p1 ?p4 ?p3 72
  • 73. Incremental Evaluation of Every Possible Combination ?p2 ?p1 ?p1 ?p1 ?p2 Limit calculations to a sliding window ?p2 ?p3 ?p1 ?p4 ?p3 73
  • 74. Extending the ‘Flick Right’ Definition Reducing false positives using negation ?p1 ?p2 ?p3 74
  • 75. Extending the ‘Flick Right’ Definition Reducing false positives using negation ?p1 ?p2 ?p3 75
  • 76. Extending the ‘Flick Right’ Definition ?p1 ?p2 ?p3 76
  • 77. Extending the ‘Flick Right’ Definition ?p1 ?p2 ?p3 (not (and (Point2D (y ?b y) (time ?b time)) … there should not be a point where the … (test (< ?b time ?p3.time)) (test (> ?b time ?p1.time)) (test (> (abs (- ?p1.y ?b y)) 245)))) 77
  • 78. Extending the ‘Flick Right’ Definition ?p1 ?p2 ?p3 (not (and (Point2D (y ?b y) (time ?b time)) … there should not be a point where the … (test (< ?b time ?p3.time)) … time lies in between ?p1 and ?p3 … (test (> ?b time ?p1.time)) (test (> (abs (- ?p1.y ?b y)) 245)))) 78
  • 79. Extending the ‘Flick Right’ Definition y ?p1 ?p2 ?p3 y (not (and (Point2D (y ?b y) (time ?b time)) … there should not be a point where the … (test (< ?b time ?p3.time)) … time lies in between ?p1 and ?p3 … (test (> ?b time ?p1.time)) (test (> (abs (- ?p1.y ?b y)) 245)))) … for which y is greater than 245. 79
  • 80. Evaluation 22 77.50 52.10 78.75 56.50 24 83.13 47.16 84.38 52.53 26 90.63 42.40 91.25 46.79 28 93.75 39.47 94.38 43.26 30 97.50 35.37 97.50 39.29 32 98.75 32.78 98.75 36.41 • 16 gestures • 1760 gesture samples • 10 subjects 80
  • 81. Future Work Scale / rotational Visual 3D gesture invariant spotting definitions 81
  • 82. Summary lhoste@vub.ac.be bderooms@vub.ac.be bsigner@vub.ac.be Auto infer control points Generate Spotting Code Call classification • Extensive spotting: support for real-time continuous streams. • No gesture overshooting: support for overlapping submatches. • Comprehensible: easy to understand and to correct. • Extensible: allows for expert adjustments. 82
  • 83. Lode Hoste, Brecht De Rooms and Beat Signer, Declarative Gesture Spotting Using Inferred and Refined Control Points, Proceedings of ICPRAM 2013, International Conference on Pattern Recognition, Barcelona, Spain, February 2013 83