<%@ page language="java" %> <%@ page import="java.sql.*" %> <% int ID = -1; // 1 String author = null; // 2 String title = null; // 3 String booktitle = null; // 4 String publisher = null; // 5 String editor = null; // 6 String city = null; // 7 String state = null; // 8 String country = null; // 9 String month = null; // 10 String pp = null; // 11 String year = null; // 12 String file = null; // 13 String kind = null; // 14 String keywords = null; // 15 String ISBN = null; // 16 String inputdate = null; // 17 String chapter = null; // 18 String currentYear = ""; String sOrder = "date-year"; // ID if( request.getParameterNames().hasMoreElements() == true ) { sOrder = request.getParameter( "order" ); } String DB_URL = "jdbc:odbc:labDB"; String DB_USER = "usr"; String DB_PASSWORD= "pwd"; String sTable = "papers"; Connection conn=null; Statement stmt=null; ResultSet rs = null; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); stmt = conn.createStatement(); String jSql = "SELECT * FROM ( SELECT * FROM " + sTable + " WHERE kind = 'journal' or kind = 'journal/guest' ) WHERE project = 'animation'"+ " order by [" + sOrder +"] DESC" ; String cSql = "SELECT * FROM ( SELECT * FROM " + sTable + " WHERE kind = 'conference' or kind ='Technical') WHERE project = 'animation'"+ " order by [" + sOrder +"] DESC" ; String bSql = "SELECT * FROM ( SELECT * FROM " + sTable + " WHERE kind = 'book' or kind = 'editedbook' or kind='chapter') WHERE project = 'animation'"+ " order by [" + sOrder +"] DESC" ; %> Animation Database



NSF CAREER: ANIMATION DATABASE PROJECT

(Funded by National Science Foundation (NSF: http://www.nsf.gov)
through NSF under Grant No. 0237954)
http://www.nsf.gov/awardsearch/showAward.do?AwardNumber=0237954

Principal Investigator: Balakrishnan Prabhakaran

Department of Computer Science
University of Texas at Dallas
MS EC 31, PO Box 830688
Richardson TX 75083

Phone: 972 883 4680
Fax : 972 883 2349 (Attn: B. Prabhakaran)
praba@utdallas.edu
http://www.utdallas.edu/~praba



OVERVIEW


Animation databases are repositories of animation models and motion sequences. This research project's goal is to develop content-based retrieval and related techniques for animation databases. These techniques include partial fuzzy query resolution, animation model/motion comparison, animation sequence segmentation, prediction/resolution of collisions, and handling multiple animation formats. An animation authoring toolkit is being developed with the help of these techniques. The functionality of this toolkit is to aid in generating new animation sequences by reusing existing models and motion sequences. The broader impacts of this project on are in the fields of sign language, medical care (animated instructions for patients, say, in physical therapy), education material preparation, and scientific visualization. For instance , a speech-to-text system is being integrated with this toolkit. The purpose of this integration is to aid in generating sign language animations (based on spoken sentences) for persons challenged with hearing disabilities. Also, some of the techniques being developed (e.g., prediction/resolution of collision) are useful in areas such as robotics.

The educational goals of this project are to: a. Train graduate and under-graduate students from different disciplines (especially Arts & Humanities) in the research and development of animation databases. b. Involve K-12 teachers and students in using the animation authoring toolkit for preparation and understanding of educational materials. The results of this project are being disseminated through courses on animation/multimedia databases, publishing of research papers, and by making the animation toolkit available to public.




ANIMATION DATABASES


 

Multimedia means "numerous mediums" by which information can be stored, transmitted, retrieved and presented. Multimedia databases can support diverse variety of applications in database technology. Some applications are 3D Motion Capture data, data from sensors of gesture sensing devices such as CYBERGLOVE i.e. sensor data, GIS data, stock price quotes etc. The common aspect of such applications is that they involve storage of multiple streams in a unit time and each stream can be considered as an attribute to give multi-attribute characteristics to the database. As the technology is advancing, more and more sophisticated means are developed to generate the repositories which stores multi-dimensional data in huge volumes. In recent years, emerging research in the field of multimedia data is to analyze motion data and retrieve motions efficiently from huge motion database. The important task that lies ahead of researchers is ``Given an query motion, how to search a similar motion in these huge motion databases?''. For instance, 3D motion capture data contains information on the position and orientation of the human body segments by recording the movements of small reflective markers fixed on a human actor while he performs variety of motions (Figure 2). Another interesting application is the ``CyberGlove'', manufactured by Immersion Co-op (Figure 1). As one wears it and performs signs/gestures, each sensor records the movements of fingers and joints of the hand giving multi-attribute characteristic data.


Figure 1. "CyberGlove" manufactured by Immersion Co-op. Figure 2. Human motions captured by MoCap.

In these motion multimedia applications, more than one value is generated at one instance, unlike time series data sequences where we get only one value at each time. As a result, motion data with many attributes forms a matrix, with rows corresponding to a time axes or frames per second and columns representing each attribute the data.

The main focus of this research is on searching a repository equipped with such multi-attribute motion sequences, for a given motion query by-example using indexing techniques. The main purpose of the indexing is to represent the complex data matrices into representative vectors by preserving the characteristics of the multi-attribute motion sequences and then to prune the majority of the irrelevant motions quickly for a query using index tree. So far no indexing technique can index multi-attribute motion data directly or efficiently.

The matrices of the motion data can be of variable lengths, due to the facts that motions can be carried out with different local speeds and durations and motion sampling rate may also be different. For similar motions, corresponding attributes may have more samples and even difference in values may also be large. Hence, there are no continuous row-to-row correspondences between data of similar motions. These properties of make it difficult to index the multi-dimensional motion data efficiently. Under these difficult circumstances where multi-stream data includes unexpectedly frequent or infrequent co-occurrences, to find a similar match for a given query in such kind of pattern database we need to construct a multi-dimensional indexing structure. On other hand, for handling queries in classical databases there are already many index structures such as R-Trees, SR-Trees, R*- Trees, etc.. These structures are useful for classical databases which have low dimensions but performance of these approaches degrades when applies to the motion data from gesture sensing device or 3D motion data which is high dimensional with multi-attributes features. Hence, our multi-dimensional data in literature is commonly known as data with a ``dimensionality curse''.


Toolkits

Pico Life

  • comming soon
  • 2D 3D recognition

  • Development environment:
      IDE Tool : MS Visual C++
  • Tongue Motion Animation

  • Development environment:
      IDE Tool : Matlab 7.9
      Language : Matlab Script
  • Raining Balls Demo

  • Development environment:
      IDE Tool :
      Language : Flash
  • Animation Toolkit

  • Development environment:
      IDE Tool : MS Visual Studio 2005
      Language : C#
      Machine : Pantium 4 (2.8GHz)
      Operating System : MS Windows XP pro sp2
  • Download
  • Multi-Factor Analysis Tool(Jumping)
      Tool to analyze Multi-Factors of Human Motion with EMG signals

  • Development environment:
      IDE Tool : Matlab 2007b or above
      Machine : Pantium 4 (2.8GHz)
      Operating System : Any matlab installed machine

  • Download

  • "Sample data(sample_data.zip)" must be in the same directory with this tool

  • Raise-Arm Motion analysis Tool
      Analyzing Human Raise-Arm motion with 3D Mocap data and EMG signals

  • Development environment:
      IDE Tool : Matlab 2007b or above
      Machine : Pantium 4 (2.8GHz)
      Operating System : Any matlab installed machine

  • Download

  • "Sample data(sample_data.zip)" must be in the same directory with this tool

  • Gait Visualization Tool
      Help to visualize the 3D capture data of walking time serise

  • Development environment:
      IDE Tool : Matlab 2007b or above
      Machine : Pantium 4 (2.8GHz)
      Operating System : Any matlab installed machine

  • Download

  • Sample Data(sample_data.zip) Download

  • Manual

  • 3D Deformable Mesh Network Stream Kit

  • Development environment:
      IDE Tool : MS Visual Studeo 2005
      Machine : Core2 Duo (2.66GHz)
      Operating System : MS Windows XP SP3

  • Reports

  • Annual Report
  • Principal Investigator: Dr. Prabhakaran, Balakrishnan

  • Participating Graduate Students:
      09/2008 - 08/2009
      • Pradan, Gaurav
      • Chin, Yohan
      • Tang, Ziying
      • Panchanathan, Magesh
      • Suk, Myunghoon
      • Kim, Duk-Jin


      09/2007 - 08/2008
      • Agarwal, Parag
      • Pradan, Gaurav
      • Chin, Yohan
      • Tang, Ziying
      • Panchanathan, Magesh
      • Suk, Myunghoon
      • Adi, Ketaki
      • Naik, Sagar
      • Pawar, Manoj


      09/2006 - 08/2007
      • Li, Chuanjun
      • Li, Hui
      • Agarwal, Parag
      • Pradan, Gaurav
      • Arun, Prakash
      • Li, Ming
      • Adi, Ketaki
      • Naik, Sagar
      • Tang, Ziying
      • Zhou, Junqiang
      • Pawar, Manoj
      • Ramaswamy, Vivekshankar
      • Agrawal, Sameer


      09/2005 - 08/2006
      • Li, Chuanjun
      • Li, Hui
      • Zhai, Peng
      • Agarwal, Parag
      • Rajagopal, Srinivas
      • Pradan, Gaurav
      • Kulkarni, Punit
      • Arun, Prakash
      • Shah, Parin
      • Li, Ming
      • Adi, Ketaki
      • Naik, Sagar


      09/2004 - 08/2005
      • Li, Chuanjun
      • Li, Hui
      • Zhai, Peng
      • Agarwal, Parag
      • Rajagopal, Srinivas
      • Pradan, Gaurav
      • Kulkarni, Punit
      • Arun, Prakash
      • Shah, Parin


      09/2003 - 08/2004
      • Li, Chuanjun
      • Li, Hui
      • Zhai, Peng
      • Devalapalle, Gayatri
      • Agarwal, Parag
      • Rajagopal, Srinivas
      • Pradan, Gaurav
      • Kulkarni, Punit

  • Publications

    Journal Articles
    <% /* String author = null; // 2 String title = null; // 3 String booktitle = null; // 4 String publisher = null; // 5 String editor = null; // 6 String city = null; // 7 String state = null; // 8 String country = null; // 9 String month = null; // 10 String pp = null; // 11 String year = null; // 12 String file = null; // 13 String kind = null; // 14 String keywords = null; // 15 String ISBN = null; // 16 String inputdate = null; // 17 String chapter = null; // 18 */ int count = 1; currentYear = ""; rs = stmt.executeQuery( jSql ); while( rs.next() ) { author = rs.getString( 2 ); title = rs.getString( 3 ); publisher = rs.getString( 5 ); month = rs.getString( 10 ); pp = rs.getString( 11 ); year = rs.getString( 12 ); file = rs.getString( 13 ); if(!currentYear.equals(year)){ currentYear = year; %> <% } %> "); count++; } %>
    <%out.println(currentYear);%>
    [ <%out.println(count);%>] <% out.println( author + ", \""); out.println( ""+title + ",\" "); out.println( "" + publisher + ""); if(pp != null) out.println( ", " + pp); if(month != null) out.println( ", " + month); else out.println( ", "); if(year != null) out.println( year); if(file != null){ out.println( ""+"pdf"); } out.println( "

    Books and Chapters
    <% /* int ID = null; // 1 String author = null; // 2 String title = null; // 3 String booktitle = null; // 4 String publisher = null; // 5 String editor = null; // 6 String city = null; // 7 String state = null; // 8 String country = null; // 9 String month = null; // 10 String pp = null; // 11 String year = null; // 12 String file = null; // 13 String kind = null; // 14 String keywords = null; // 15 String ISBN = null; // 16 String inputdate = null; // 17 String chapter = null; // 18 */ count = 1; rs = stmt.executeQuery( bSql ); while( rs.next() ) { author = rs.getString( 2 ); title = rs.getString( 3 ); booktitle = rs.getString( 4 ); publisher = rs.getString( 5 ); editor = rs.getString( 6 ); pp = rs.getString( 11 ); year = rs.getString( 12 ); file = rs.getString( 13 ); ISBN = rs.getString( 16 ); chapter = rs.getString( 17 ); if(!currentYear.equals(year)){ currentYear = year; %> <% } %> "); count++; } %>
    <%out.println(currentYear);%>
    [ <%out.println(count);%>] <% if(author != null) out.println( author + ", \""); if(title != null) out.println( "" + title + ",\" "); if(chapter != null) out.println( chapter+ ", "); if(booktitle != null) out.println( "" + booktitle + ", "); if(editor !=null) out.println( editor + ","); if(publisher != null) out.println( publisher ); if(pp != null) out.println( ", " + pp); if(year != null) out.println( ", " + year); if(ISBN != null) out.println( ", ISBN:" + ISBN); if(file != null){ out.println( ""+"pdf"); } out.println( "
    Conference and Workshop Papers
    <% /* int ID = null; // 1 String author = null; // 2 String title = null; // 3 String booktitle = null; // 4 String publisher = null; // 5 String editor = null; // 6 String city = null; // 7 String state = null; // 8 String country = null; // 9 String month = null; // 10 String pp = null; // 11 String year = null; // 12 String file = null; // 13 String kind = null; // 14 String keywords = null; // 15 String ISBN = null; // 16 String inputdate = null; // 17 String chapter = null; // 18 */ count = 1; currentYear = ""; rs = stmt.executeQuery( cSql ); while( rs.next() ) { author = rs.getString( 2 ); title = rs.getString( 3 ); publisher = rs.getString( 5 ); editor = rs.getString( 6 ); pp = rs.getString( 11 ); city = rs.getString( 7); state =rs.getString( 8); country = rs.getString( 9); month = rs.getString( 10); year = rs.getString( 12 ); file = rs.getString( 13 ); if(!currentYear.equals(year)){ currentYear = year; %> <% } %> "); count++; } %>
    <%out.println(currentYear);%>
    [ <%out.println(count);%>] <% out.println( author + ", \" "); out.println( "" + title + ",\""); out.println( "" + publisher + ""); if(city != null) out.println( ", " + city); if(state != null) out.println( ", " + state); if(country != null) out.println( ", " + country); if(month != null) out.println( ", " + month); if(year != null) out.println( " " + year); if(pp != null) out.println( ", " + pp); if(file != null){ out.println( ""+"pdf"); } out.println( "