| 
 "Rowing on the
        Boat" Detection 
            
                |  | In the river world, a
                motion-energy detector is used to compute the
                amount of movement on each side of the bed. This
                information is then used by the control program
                to decide if the boat is moving (i.e. passengers
                are "rowing") and if the people have
                avoided obstacles in the river by rowing
                vigorously on the correct side of the boat. |  |  
            
            
                "Ready to
                Row!" 
                    The algorithm must first wait
                    until everyone is inside the boat (i.e. all
                    on the bed). This information is determined
                    using the tracker. Once everyone is inside,
                    the algorithm needs to find the orientation
                    of the bed which will be used to determine
                    the side of the bed on which people are
                    rowing. Even though the bed is a brightly
                    colored (green) object, we cannot use this
                    color information to determine its
                    orientation due to the people sitting on top,
                    hiding the bed color. Knowing the size of the
                    bed from the top down tracker
                    background-subtracted view, the algorithm
                    waits until the number of pixels in the large
                    blob is approximately equal to the known size
                    of the bed. The story is used to encourage
                    participants to be inside the bed's boundary
                    (e.g. "Tuck your hands and feet right
                    in, the hungry sharks are eager to
                    sin.") When everyone is "in,"
                    the blob size is about right and the bed
                    orientation (i.e. left and right side of bed)
                    is computed. 
                  Rowing on Right or
                Left Side 
                    To tell if the group of
                    people on the bed is rowing on the right or
                    left side of the bed, the algorithm computes
                    the difference between consecutive video
                    frames. If someone moves quickly, a large
                    difference between frames is detected. The
                    magnitude of this difference is the rowing
                    energy. Since the left and right sides of the
                    bed are known from the initialization step,
                    the algorithm can compute an energy measure
                    for each side of the bed. At each time
                    instant the energy level detected is scaled
                    based on the maximum energy level that has
                    been seen so far, which makes the energy
                    values less sensitive to the number of people
                    in the boat and minor perturbations. The
                    control program then uses these energy
                    measures to detect whether or not people are
                    rowing and on which side most of the rowing
                    is occurring. It does this by ensuring that
                    there is at least some minimal amount of
                    rowing and that rowing on one side is at
                    least twice as energetic as rowing on the
                    other side. Man Overboard 
                    The
                    "all-on-the-bed" event detector is used
                    to check if a person has "fallen"
                    off the boat. If so, the room responds with a
                    "man overboard" message and the
                    boat stops until the person gets back
                    onboard.  
                    
                          |