/urbanscribe

UrbanScribe is a system that collects, analyses and visualises human movement through a space, completing the data feedback loop to empirically measure the quality of a space and enable urban and architectural A/B testing through spatial analytics.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

UrbanScribe

UrbanScribe is a system that collects, analyses and visualises human movement through a space, completing the data feedback loop to empirically measure the quality of a space and enable urban and architectural A/B testing through spatial analytics.

Essentially UrbanScribe consists of an OpenCV traking system running on a laptop with a webcam or attached camera, and an Arduino Yun running Linux and an Atmel microcontroller. The laptop recognises faces or pedestrians, sends their positions in the frame to the Arduino which then plots them using a servo arm on a piece of paper.

This project was hastily constructed for a proof-of-concept demonstration in a design class called Ubiquitous Cities at UNSW. The course focused on the meaning of the term 'Smart City' and the considerations when weighing up tech solutions for an urban space.

Setting up

Please note: I am not sure of these requirements. If you require extra packages (just look what package Python references in it's errors) please file a pull request.

Mac

brew install numpy opencv

Ubuntu

There are a lot of packages that the facial and pedestrian recognition rely on.

sudo apt-get -y install build-essential git cmake pkg-config
sudo apt-get -y install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

sudo apt-get -y install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

sudo apt-get -y install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get -y install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get -y install libxvidcore-dev libx264-dev
sudo apt-get -y install libgtk2.0-dev
sudo apt-get -y install libatlas-base-dev gfortran
sudo apt-get -y install python2.7-dev python3-dev
sudo apt-get -y install python-opencv

All platforms: Install pip depenencies

pip install -r requirements.txt

Usage

Spin up the Flask server

python app.py

This will launch a server at localhost:5000

To stop the server:

Further reading

Some more notes on image recognition with OpenCV and Python.

Author

License

This project is licensed under the GNU GPLv3 License - see the LICENSE.md file for details.