HUMIM Software for Articulated Tracking



Similar documents
Xcode Project Management Guide. (Legacy)

Code Estimation Tools Directions for a Services Engagement

How does the Kinect work? John MacCormick

Introduction CMake Language Specific cases. CMake Tutorial. How to setup your C/C++ projects? Luis Díaz Más.

Practical Tour of Visual tracking. David Fleet and Allan Jepson January, 2006

Virtualization Techniques for Cross Platform Automated Software Builds, Tests and Deployment

Supported platforms & compilers Required software Where to download the packages Geant4 toolkit installation (release 9.6)

Interactive Computer Graphics

Unit 1: INTRODUCTION TO ADVANCED ROBOTIC DESIGN & ENGINEERING

Robotics. Chapter 25. Chapter 25 1

Kinect Interface to Play Computer Games with Movement

INSTRUCTOR WORKBOOK Quanser Robotics Package for Education for MATLAB /Simulink Users

Microsoft Visual Basic Scripting Edition and Microsoft Windows Script Host Essentials

Colorado School of Mines Computer Vision Professor William Hoff

User s Manual

Configuration Management

TZWorks Windows Event Log Viewer (evtx_view) Users Guide

Model-Based 3D Human Motion Capture Using Global-Local Particle Swarm Optimizations

Articulated Body Motion Tracking by Combined Particle Swarm Optimization and Particle Filtering

Interactive Segmentation, Tracking, and Kinematic Modeling of Unknown 3D Articulated Objects

Code::Blocks Student Manual

SimFonIA Animation Tools V1.0. SCA Extension SimFonIA Character Animator

Anar Manafov, GSI Darmstadt. GSI Palaver,

Visualization Plugin for ParaView

How To Use Titanium Studio

Component visualization methods for large legacy software in C/C++

Mobile Cloud Computing T Open Source IaaS

Module 1: Sensor Data Acquisition and Processing in Android

Intelligent Flexible Automation

MatrixSSL Getting Started

GAUSS 9.0. Quick-Start Guide

OpenMake Dynamic DevOps Suite 7.5 Road Map. Feature review for Mojo, Meister, CloudBuilder and Deploy+

VEHICLE LOCALISATION AND CLASSIFICATION IN URBAN CCTV STREAMS

Spatio-Temporally Coherent 3D Animation Reconstruction from Multi-view RGB-D Images using Landmark Sampling

ECE 495 Project 3: Shocker Actuator Subsystem and Website Design. Group 1: One Awesome Engineering

Motion Capture Technologies. Jessica Hodgins

NVIDIA CUDA GETTING STARTED GUIDE FOR MAC OS X

Equalizer. Parallel OpenGL Application Framework. Stefan Eilemann, Eyescale Software GmbH

Introduction to Robotics Analysis, Systems, Applications

Enhanced Connector Applications SupportPac VP01 for IBM WebSphere Business Events 3.0.0

Visualizing and Analyzing Massive Astronomical Datasets with Partiview

INSTALL NOTES Elements Environments Windows 95 Users

How To Write A Cg Toolkit Program

Integration of a Robotic Arm with the Surgical Assistant Workstation Software Framework

A Test Suite for Basic CWE Effectiveness. Paul E. Black.

Creating a Java application using Perfect Developer and the Java Develo...

imc FAMOS 6.3 visualization signal analysis data processing test reporting Comprehensive data analysis and documentation imc productive testing

CS3600 SYSTEMS AND NETWORKS

ANALYSING SERVER LOG FILE USING WEB LOG EXPERT IN WEB DATA MINING

Waspmote IDE. User Guide

Using Autodesk HumanIK Middleware to Enhance Character Animation for Games

Page 1 of 5. IS 335: Information Technology in Business Lecture Outline Computer Technology: Your Need to Know

THE BENEFITS OF INTEGRATING LEGO MINDSTORMS INTO DESIGN EDUCATION. COURSE MEDIA SYSTEMS

Professional. SlickEdif. John Hurst IC..T...L. i 1 8 О 7» \ WILEY \ Wiley Publishing, Inc.

imc FAMOS 6.3 visualization signal analysis data processing test reporting Comprehensive data analysis and documentation imc productive testing

Cisco Unified Intelligence Center for Advanced Users

Kevin Hoffman. Sams Teach Yourself. Mac OS* X Lion" App Development. 800 East 96th Street, Indianapolis, Indiana, USA

CE 504 Computational Hydrology Computational Environments and Tools Fritz R. Fiedler

Eclipse IDE for Embedded AVR Software Development

Operating System Today s Operating Systems File Basics File Management Application Software

Character Creation You can customize a character s look using Mixamo Fuse:

Lavastorm Analytic Library Predictive and Statistical Analytics Node Pack FAQs

Program 5 - Processes and Signals (100 points)

2.2 INFORMATION SERVICES Documentation of computer services, computer system management, and computer network management.

place/business fetch details, removefromfavorite () function, 189 search button handler bind, B BlackBerry build environment

Overview of the Adobe Flash Professional CS6 workspace

System Reference 2013

Chapter 1: Getting Started

Speed Performance Improvement of Vehicle Blob Tracking System

CS408 Animation Software Design Sample Exam Questions (Second Half)

CUICAU: Cisco Unified Intelligence Center for Advanced Users v1.x

Robot Task-Level Programming Language and Simulation

Limits and Possibilities of Markerless Human Motion Estimation

Creating OpenGL applications that use GLUT

Design-Simulation-Optimization Package for a Generic 6-DOF Manipulator with a Spherical Wrist

Wowza Media Systems provides all the pieces in the streaming puzzle, from capture to delivery, taking the complexity out of streaming live events.

TNM093 Practical Data Visualization and Virtual Reality Laboratory Platform

SUMMARY Moderate-High: Requires Visual Basic For Applications (VBA) skills, network file services skills and interoperability skills.

Digital Asset Management System Quality Assurance Testing A Case Study

CSE452 Computer Graphics

PCL Tutorial: The Point Cloud Library By Example. Jeff Delmerico. Vision and Perceptual Machines Lab 106 Davis Hall UB North Campus.

Interactive Visualization of Magnetic Fields

Using Microsoft Expression Web to Upload Your Site

The "Eclipse Classic" version is recommended. Otherwise, a Java or RCP version of Eclipse is recommended.

CS231M Project Report - Automated Real-Time Face Tracking and Blending

01. Introduction of Android

Braindumps.C questions

Transcription:

F A C U L T Y O F S C I E N C E U N I V E R S I T Y O F C O P E N H A G E N HUMIM Software for Articulated Tracking Søren Hauberg and Kim Steenstrup Pedersen Technical Report no. 01/2012 ISSN: 0107-8283

Contents 1 Introduction 3 1.1 How to Cite this Software.............................. 3 1.2 Software License................................... 3 2 Directory Layout and Dependencies 3 2.1 Included Libraries.................................. 4 3 Compiling the Code 4 3.1 Dependencies..................................... 4 4 Running the Code 5 5 Modifying the Code 6 5.1 The Prior....................................... 6 5.2 The Observation................................... 6 6 Final Remarks 7 2

1 Introduction This technical report documents the software developed for articulated tracking as part of the Human Motion Imitation (HUMIM) project 1 at the Dept. of Computer Science, University of Copenhagen. The purpose of this document is to show how to install and run the software as well as provide some insights into how the code can be modified. The software has been developed with academic research in mind. As such, the software has been designed to make it easy to modify and adapt to new theoretical models. It has, however, not been designed with speed in mind, nor to provide a black box for articulated tracking. 1.1 How to Cite this Software If you use this software in academic work, we would appreciate if you say so in your papers. If you just use the basic particle filter classes you can cite this report. If you use specific priors, we would appreciate if you cite the paper that introduces the prior in question. The details of the specific papers are given in the Doxygen documentation for the individual classes. Briefly put, you can use the following papers for the following classes: projection_state and tangent_state: [4] pik_state and pik_stick_state: [3] angle_state: [7] KBK_stick_state: [6] stick_state and stick2d_state: [1] brownian_state and brownian_stick_state: [5] hull_state, bgsub_state and angle_bgsub_state: [2] 1.2 Software License The software is made available under the de facto Free and Open Source software license, the GNU General Public License, version 3 (GPLv3) or later. This allows you to study and modify the code anyway you please as long as you give other users the same access to your modifications. For details of the license, please read the LICENSE file distributed with the source code. If you make useful changes to the software, we would appreciate if you send us your changes such that we can make them available to others. 2 Directory Layout and Dependencies The source code for the articulated tracker is placed in the top-level directory. This contains two sub-directories: ntk and OpenTissue. Each of these directories contain a third-party library that we distribute along with the code. These libraries are not available under the GPLv3 license, but they are compatible with this license. 1 http://humim.org 3

2.1 Included Libraries We currently include two libraries: NTK 2 and OpenTissue 3. The first is used for interacting with the Microsoft Kinect sensor and the latter is used for basic data structures for kinematic skeletons, forward and inverse kinematics and for basic mathematical routines. 3 Compiling the Code We use CMake 4 for compiling the software as this is used by the included libraries. In principle this allows the code to be easily compiled in different operating systems, but it has only been verified to compile on Linux and Mac OS X 10.6 with Xcode 3.2.6. Please consult the CMake documentation on how to compile the code as this depends on your operating system. On Linux this can be done with cmake. make assuming you have the necessary dependencies in place. 3.1 Dependencies The code uses several different standard libraries for image processing, mathematical routines, visualisation, etc. Specifically, we depend on OpenCV 2.2 (or later) ANN Boost Boost Bindings QHull Atlas DeVIL GLEW GLUT You need to install these and ensure that CMake is able to find them. software requires GCC 4.2.1 or later to compile. Furthermore, the 2 http://nicolas.burrus.name/index.php/research/kinectrgbdemov6 3 http://www.opentissue.org 4 http://www.cmake.org 4

4 Running the Code When compiled, you will have the following executables gui_tracker A tracker that visualises the results in 3D using OpenGL. gui_projecter A tracker that visualises the results in the image plane. headless_tracker A tracker that does not visualise results at all. This can be useful on clusters etc. poser A program that allows you to change the pose of a skeleton to fit the data. skeleton_sizer A program that allows you to change the size of limbs in a skeleton. view_data A program for viewing 3D point clouds. To run a program you need a configuration file that sets parameters, data paths, output paths, etc. The name of this file should be given as first input to all programs. The tracking programs also support an optional second argument playback that replays previous tracking data rather than perform the tracking again. An example configuration file can be seen here observation_type point_cloud state_type angle_state data_template hands2_060410/image_%.3d.points left_image_template hands2_060410/image_2_%.3d.png background_image hands2_060410/background_2.png intrinsic_matrix 838.08544922 838.90100098 496.17398071 392.37945557 data_start_idx 1 output_directory output num_particles 150 initial_pose config/hands2_060410_1.pose pred_noise 0.15 convex_lambda 0.05 external_view config/hands2_060410.view bone_appearance config/soren_thin_appearance_milimeters_cylinder.txt skeleton_xsf config/soren_milimeters_cylinders.xsf measure_threshold 2 measure_variance 0.1 mocap_filename hands2_060410/hands2_060410.mocap If this configuration has been saved in the file config_file then, e.g. the gui_tracker program can be executed using gui_tracker config_file In general you should not expect this code to be something you just run and get a result. It is designed for development of new tracking techniques and not for developing applications of tracking. So some modifications is to be expected to get you what you want. 5

5 Modifying the Code The articulated tracker uses a particle filter for inference. As such, the most interesting parts to modify is the likelihood and the prior of the model. Other parts of the code can also easily be modified, but we shall only consider these in this document. In general, the code makes heavy use of C++ templates, though it only uses basic template functionality. As such, the code can often be extended simply by building a class with a given interface and telling the application core that a new class exists. 5.1 The Prior In order to extend the tracker with a new prior distribution, you need to implement a class that implements the state interface. This is practically always done by inheriting from the skeleton_state class, which provides basic functionality for manipulating a kinematic skeleton. When building a new state the most essential function to implement in the derived class is predict. This function draws a random pose from the prior distribution and hence encodes the prior in the particle filter. The best way to figure out the details of how to build a new class is to study an example. We recommend looking into the angle_state and projection_state classes as these are the two most basic examples and they show how to work with both joint angles and joint positions. Once you have created your new state class you need to register it with the tracking framework. This is a two-step procedure, where you first need to ensure that the configuration system knows your new class such that it can be selected at run-time. To do this, edit options.h and add a new state name to the tracker_state_type enum. Then, edit options.cc and add a check for your new state in the if (option_name == "state_type") branch of the constructor. You can just imitate the code for the other state s. Now, the configuration system knows your new prior class. The second step of the two-step procedure is to register the class with the template system. This is done by editing the macros in macros.h. Just add your new class to the list of classes marked with EXPAND_PLAIN_OBS. This macro will expand the different combinations of input data with your new class such that all combinations are available at run-time. This part of the code is non-trivial so we recommend to just mimic the other classes in the beginning. 5.2 The Observation Different types of observations are currently supported by the tracking system. At the moment it is possible to use the TriClops library along with Point Grey Bumblebee stereo cameras. It is also possible to use the Microsoft Kinect camera as well as reading point clouds from text files where each line contains the x y z R G B coordinates of a point. These are implemented by the triclops_cloud, kinect_cloud and point_cloud respectively. These classes all inherit from the cloud class that implements basic point cloud functionality. New point clouds can easily be added in much the same way as state s were added in the previous section. 6

If you want to be able to work with other types of input data than point clouds you currently have to make compile-time changes to the code. You will basically have to reimplement the measure class in skeleton_cloud_measure.h file. 6 Final Remarks This document has given some basic knowledge about the HUMIM tracking software. We have, however, only scratched the surface of the software, so you will need to study the code before making proper use of the software. We hope the software is useful to you, and if you extend it in interesting ways we would love to hear about it and distribute your extensions as well (with full credit given to you). References [1] Søren Hauberg and Kim S. Pedersen. Stick It! Articulated Tracking using Spatial Rigid Object Priors. In R. Kimmel, R. Klette, and A. Sugimoto, editors, ACCV 2010, volume 6494 of Lecture Notes in Computer Science, pages 758 769. Springer, Heidelberg, 2011. [2] Søren Hauberg and Kim Steenstrup Pedersen. Data-Driven Importance Distributions for Articulated Tracking. In Yuri Boykov et al., editors, Energy Minimization Methods in Computer Vision and Pattern Recognition, Lecture Notes in Computer Science. Springer, 2011. [3] Søren Hauberg and Kim Steenstrup Pedersen. Predicting Articulated Human Motion from Spatial Processes. International Journal of Computer Vision, 94:317 334, 2011. [4] Søren Hauberg, Stefan Sommer, and Kim Steenstrup Pedersen. Gaussian-like Spatial Priors for Articulated Tracking. In K. Daniilidis, P. Maragos, and N. Paragios, editors, ECCV, volume 6311 of LNCS, pages 425 437. Springer, 2010. [5] Søren Hauberg, Stefan Sommer, and Kim Steenstrup Pedersen. Natural Metrics and Least-Committed Priors for Articulated Tracking. Image and Vision Computing, 2011. [6] Hedvig Kjellström, Danica Kragić, and Michael J. Black. Tracking people interacting with objects. In IEEE CVPR, 2010. [7] Hedvig Sidenbladh, Michael J. Black, and David J. Fleet. Stochastic tracking of 3d human figures using 2d image motion. In ECCV, volume II of LNCS 1843, pages 702 718. Springer, 2000. 7