| Inputs data: |
| SSB: Set of N objects Segmented Bounded Boxes |
| SSB = |
| KBB: Set of M objects EKF Bounded Boxes |
| KBB = |
| AT: Set of M Appearance Templates |
| AT = |
| Algorithm |
| Defining Events for each Workstation: |
| For each ϵ SSB, test E1, E2, and E3 in order |
| E1 : |
| if .not_matched (one in ) |
| Then |
| Trigger R1 |
| go to OUT1 |
| E2: |
| if .not_matched (any KBB) AND |
| .matched (one in ) |
| Then |
| Trigger R2 |
| go to OUT1 |
| E3: |
| if size () ≪ matched size () AND |
| .not_matched (one in ) |
| Then |
| Trigger R3 |
| go to OUT1 |
| OUT1: Next |
| For each ϵ KBB, test E4, E5, and E6 in order |
| E4: |
| if .Outside (FOV) AND |
| .not_matched (any SBB) |
| Then |
| Trigger R4 |
| go to OUT2 |
| E5: |
| if size () < matched size () AND |
| .intersected_with (any ) |
| Then |
| Trigger R5 |
| go to OUT2 |
| E6: |
| if .matched () |
| Then |
| Trigger R6 |
| go to OUT2 |
| OUT2: Next |
| Events Responses: |
| Responses are done over: |
| SRM (Server Response Module) and WRM (Workstation |
| Response Module) |
| R1: |
| new WRM.register () |
| WRM.create_object_template () |
| WRM.send_to_SRM () |
| SRM.associate ( ) get |
| SRM.create_and_send_to_each_WRM ( ) |
| R2: |
| new WRM.register () |
| WRM.send_to_SRM () |
| SRM.associate () get |
| SRM.create_and_send_to_each_WRM ( ) |
| R3: |
| For all |
| if not .matched_any_of () AND .near () |
| Then |
| = WRM.get_object_of () |
| if .number_of_containted_objects == 1 |
| Then |
| WRM.trigger_new_response () |
| WRM.build_history_of () |
| Else if .number_of_contained_objects > 1 |
| Then |
| .associate_to_objects_in () |
| Next |
| WRM.trigger_stable_response () |
| R4: |
| WRM.stop_tracking () |
| R5: |
| WRM.register_group () = + |
| WRM.announce_to_SRM () |
| SRM.associate () get |
| SRM.create_and_send_to_each_WRM ( ) |
| if WRM.search(,) = = True |
| Then |
| WRM.split () |
| Else |
| WRM.give_EKF_position () |
| R6: |
| WRM.track (); WRM.update_EKF (); WRM.update_template () |
| WRM.send_to_SRM () |
| SRM.associate () get |
| SRM.create_and_send_to_each_WRM ( |