BehaviorScope Sensor Network

The privacy-preserving human localization algorithm described in the Research section of this site was evaluated using a network of smart cameras deployed not only at Yale ENALAB, but also in real homes in an assisted-living application. For this, I implemented the algorithm on Intel iMote2 sensor nodes running UCLA's SOS operating system, achieving a person-localization frame rate of around 15Hz. This means that every 66ms each iMote2's 208MHz CPU captured a 320×240 image into RAM, resampled it, executed the person-detection/localization algorithm, and transmitted the results over the radio — while leaving enough idle time to perform the typical system tasks of a sensor node, such as sampling the radio for incoming messages. Furthermore, since remote operation was a requirement for these deployments, I also implemented a number of self-monitoring facilities that allowed us to monitor the performance of the network in terms of packet drops, node downtime, and so on. This testbed was deployed in a number of real-world homes and used extensively in our behavior-recognition research.

BehaviorScope Web Portal

Figure 1: Log-in page.

This image shows the landing page of the BehaviorScope web portal. Here existing users can log in, and new users can read about the project and get started by downloading our custom software for their GPS-enabled phone.

Figure 2: Datasources page.

Users can register different “datasources”, which can be a GPS-enabled phone, a PIR motion sensor network, or any other type. In this image you can see private datasources, as well as privately-shared and public ones.

Figure 3: Visualization page.

Each type of datasource can have its own custom visualization. This image shows the visualization page for a GPS datasource showing the GPS's location at the current time.

In an application targeting another class of users — doctors, patients, families — it is paramount to develop an interface that can be easily used by someone with no programming experience. For this, I developed the BehaviorScope web portal, through which non-expert users can manage their own deployments, view its status, view plots of sensor data, control actuators, and assign access permissions for doctors and family. This portal, built using PySOS and the Django web-application framework, was designed for easy extensibility: new sensors can be added by simply writing 2 Python files. As a consequence of this extensibility, undergraduate student Anna Yu extended the BehaviorScope portal to support GPS-enabled mobile phones, as featured in the Yale Daily News campus newspaper. This portal has also been extended for use with PIR motion sensors by my labmate Athanasios Bamis who, in addition, also greatly extended the system. Finally, this portal was employed in a number of research projects both inside and outside Yale.

Python Tools for SOS

Traditionally, sending and receiving messages between computers and sensors nodes has been an unnecessarily complex issue. To facilitate this task in our deployments, I wrote the PySOS middleware that abstracts all the details of data communications under an object-oriented API. In addition, being Python-based, PySOS could also be accessed interactively through a command line, for rapid prototyping and debugging. As part of the PySOS toolset, I also developed the PySOS Control Center, a graphical user interface for WSN deployments. This allows an administrator to remotely monitor which nodes are alive/unresponsive, eavesdrop on all messages being received by the base node, transmit messages to groups of nodes, set actions that should be executed when certain messages are received, etc. . As a testament to its widespread appeal, this work was eventually added to the official distribution of UCLA's SOS operating system.