Transcript
Page 1: Snake terrestrial locomotion synthesis in 3D virtual environments

Visual Comput (2006) 22: 562–576DOI 10.1007/s00371-006-0035-1 O R I G I N A L A R T I C L E

Costas PanagiotakisGeorgios Tziritas

Snake terrestrial locomotion synthesis in 3Dvirtual environments

Published online: 12 July 2006© Springer-Verlag 2006

C. Panagiotakis (�) · G. TziritasComputer Science Department, Universityof Crete,Greece, P.O. Box 2208{cpanag, tziritas}@csd.uoc.gr

Abstract We present a methodfor a 3D snake model constructionand terrestrial snake locomotionsynthesis in 3D virtual environmentsusing image sequences. The snakeskeleton is extracted and partitionedinto equal segments using a newiterative algorithm for solving theequipartition problem. This methodis applied to 3D model constructionand at the motion analysis stage.Concerning the snake motion, thesnake orientation is controlled bya path planning method. An anima-tion synthesis algorithm, based ona physical motion model and tracking

data from image sequences, describesthe snake’s velocity and skeletonshape transitions. Moreover, theproposed motion planning algorithmallows a large number of skeletonshapes, providing a general methodfor aperiodic motion sequences syn-thesis in any motion graph. Finally,the snake locomotion is adaptedto the 3D local ground, while itsbehavior can be easily controlled bythe model parameters yielding theappropriate realistic animations.

Keywords Snake motion modeling ·Graph exploration · Snake animation

1 Introduction

The analysis of image sequences containing moving an-imals in order to create a 3D model of the animal andits physical motion is a difficult problem because of theunpredictable and complicated (most of the time) animalmotion. On the other hand, there are many techniques andmethods in character modeling. We can distinguish themin canned animation from motion capture data and numer-ical procedural techniques such as inverse kinematics [11].Canned animations are more expressive, but less inter-active than numerical procedural techniques, which oftenappear as “robotic” creatures and require parameter tuningby hand.

Motion capturing can be performed by means ofimage analysis. Ramanan and Forsyth [23] present a sys-tem that builds appearance models of animals fromimage sequences. Many systems use direct motion cap-ture technology [5] having high accuracy on tracking tar-

gets. Motion graphs [15] constructed from motion capturedata generate different styles of locomotion by build-ing walks on the graph. The motion graph consists bothof pieces of original motion and automatically gener-ated transitions. Our motion planning algorithm is ex-ecuted in a similar graph. The computer vision basedtechniques in specific environments can also give highaccuracy tracking data using predefined 2D [22] or 3Dmodels [26], or without using explicit shape models [25].One of the first attempts to reconstruct animal motionfrom videos was Wilhelms’ work [29]. Deformable con-tours (snakes) are used to extract the 2D motion ofeach limb’s contour in a video sequence of a runninghorse. However, the active contours methods are verysensitive to noise and have parameters that are diffi-cult to tune. Favreau et al. present a 3D animal mo-tion reconstruction method from segmented video ob-jects [6]. The user provides the object pose in somekey frames and the other poses are computed usinginterpolation.

Page 2: Snake terrestrial locomotion synthesis in 3D virtual environments

Snake terrestrial locomotion synthesis in 3D virtual environments 563

In robotics, a lot of work has been done on the con-struction of snake-like robots with elegant and flexiblemotion, which can move in two or three dimensions [4, 24,27]. Usually, these robots have many degrees of freedomin order to achieve the flexibility of the real snake and theirmotion is periodic. Snake-like robots can move in rugged,sandy, terrestrial environments, such as rough or muddyterrains, where wheeled mechanisms are not effective.

To date, a lot of work has been done in 3D animal mod-eling. A 3D animal model and its texture mapping can becomputed using images captured from specific views anda predefined animal model. This methodology has beenapplied successfully in snake, lizard and goat 3D modelconstruction [21]. A.J. Ijspeert [9] designed the 3D modelof a salamander using neural controllers. Nougaret et al.describe an approach for the design of simple proportionalderivative controllers for dynamic locomotion applying itin fish locomotion [18]. Miller [16] simulates muscle con-tractions of snakes and worms by animating spring ten-sions. In [30] a physics-based method for synthesis of birdflight animations is described. A set of wing-beats is com-puted, which enables a bird to follow a specified trajectory.The most recent works try to model the muscle system ofa character getting realistic results. Morphing techniquescan be applied for creating and controlling the metamor-phosis of two animated and textured models [2]. A lot ofwork has been done on human animation. Albrecht et al.present a deformation algorithm to create hand animationsfrom images using muscle models [1]. Yang et al. simulatea human swimmer attempting to follow a dynamic user-defined target by augmenting cyclic stroke control witha set of pre-specified variations, based on the current stateof the character and its environment [31].

The motion planning capability in the obstacle avoid-ance problem supports the autonomy of a virtual character.It has been studied using probabilistic roadmap methods(PRM) [13]. Under PRM, a random sample of configura-tion space constructs an accessible point graph (roadmap),which is used to search for a path during the planningstage, yielding good performance. In [7], a motion plan-ning method, based on finite state machines, is used tosolve the path planning problem under dynamic obstacleavoidance for virtual humans without knowledge of theenvironment topology.

Realistic snake movement depends on the mode of lo-comotion used by the snake. When snakes encounter dif-ferent environments, they are remarkably adept at chang-ing their pattern of movement so that they can propelthemselves effectively. Gray [8] provides a good review ofhis earlier papers, some of which emphasized modeling,while others made direct observations of snake movement.In [10] the first quantitative kinematic analysis of the ma-jor modes of terrestrial snake locomotion using lateralbending of the vertebral column to generate propulsiveforces is presented. In [17] the muscular basis and propul-sive mechanism of terrestrial lateral undulation in gopher

snakes are examined using patch electrodes. The snakemass center trajectory depends mainly on the snake orien-tation. Thus, depending on exactly how periodic motionis defined, most of the modes of snake locomotion in-volve some sort of periodic motion or repetitive pattern.In both aquatic and terrestrial locomotion, a given point onthe body periodically moves to the left (L) and then to theright (R). During swimming, the frequency of L, R move-ments is constant along the entire length of the snake.During terrestrial lateral undulation, which is the kind ofundulation that we are going to animate, the amplitudeand wavelength of the wave of bending can be variablealong the length of the snake. Thus, the duration of a cycleof L, R movement can be variable, producing aperiodicmotion. During concertina locomotion, snakes moving ata steady speed periodically (at regular time intervals) stop,although the pattern of left and right movement is highlyvariable. As our experiments show, the most impressiveresults are provided when the motion sequence is aperi-odic, since if the snake motion is periodic, the motion willbe predictable. For this reason, the proposed motion plan-ning algorithm obtains aperiodic motion sequences.

A preliminary version of our work was presentedin [21]. In this paper, motion synthesis has been sig-nificantly improved by adding a model of acting forces,modifying the motion planning algorithm, using mathe-matical models on skeleton shape transitions derived bytracking data from image sequences, adding the snake be-havior control module and by better fitting the snake 3Dshape into the 3D virtual world. The basic purpose of ourwork is to create simple and accurate 3D models and re-alistic animations of terrestrial snakes in any 3D virtualenvironments. We study the curve equipartition problem,whose solution is used in the creation of the 3D model andon motion analysis stage. The proposed snake model co-efficients can be distinguished as those that describe therotation, translation, and scaling of the snake, and as thosethat describe the snake’s shape. Moreover, the minimalnumber of proposed snake model coefficients, without ac-curacy loss, provide an easily tuned method that controlsthe snake behavior. Thus, the proposed snake model co-efficients and the motion planning algorithm are the maincontributions of this work.

The rest of the paper is organized as follows. Section 2presents the proposed method. The experimental resultsare presented in Sect. 3. Finally, in Sect. 4 we summarizeand discuss the results.

2 Methodology

2.1 System overview

The main stages of the proposed method for computing3D snake animations are the following:

Page 3: Snake terrestrial locomotion synthesis in 3D virtual environments

564 C. Panagiotakis, G. Tziritas

Fig. 1. a Snake image, b background image and c extracted snakesilhouette

– Creation of a 3D snake model– State graph construction– Motion Synthesis

Initially, a 3D animal model is produced using segmentedimages obtained by background subtraction. For the 3Dmodel construction process, a set of points located on theskeleton of the snake is extracted. These points are here-after called skeleton points. During the motion analysisstage, the skeleton points are tracked through time in thevideo sequence. Then a graph of snake skeleton states iscreated. Each state describes only the snake shape inde-pendent of position and global orientation. During the mo-tion synthesis stage, a motion planning algorithm basedon a set of possible states is executed on the graph allow-ing a large number of skeleton shapes and ensuring ape-riodic motion sequences. Mathematical models, derivedby tracking data, describe the skeleton shape transitions.The user selects some points of the outer environment inorder to specify the trajectory that the animal will trace.However, it is possible that several obstacles appear in theouter world. In addition, the trajectory may not be smoothenough, which results in a zigzagging type of motion. Inorder that all of the above issues be tackled, an obstacleavoidance algorithm is proposed that yields a “safe” ani-mal trajectory. Finally, since initially the snake locomotionis computed to be a plane displacement, this locomotion istransformed to fit the 3D virtual environment.

2.2 Creation of a 3D snake model

Generally, perfect 3D body reconstruction using only 2Dimages as input is a difficult task due to the complexity ofthe animal’s 3D shape. So instead, making use of a pri-ori knowledge about the snake’s anatomy, we assume thatits body cross sections are ellipses (see Fig. 2b). This waythe number of modeling parameters is minimized, which

Fig. 2. a Skeleton points (greenpoints) and snake boundary (redcurve). b 3D wire-frame modelof the snake

increases the robustness of the reconstruction. Therefore,the proposed method is simple and yields accurate resultsusing priori knowledge about the snake anatomy. More-over, we can use the estimated snake skeleton points at themotion synthesis stage, applying the method to the wholeimage sequence.

The snake body is reconstructed using the following“skeleton points extraction” procedure. Two images aregiven as input to a background subtraction method forextracting the boundary of the snake body (Fig. 1): a back-ground image and a top view image of the snake. Equallyspaced points from the medial axis of the boundary, skele-ton points, are then chosen as the centers of these ellipses(Fig. 2a). We propose an iterative curve equipartition algo-rithm that segments any 2D curve to equal segments, giventhe first and the last point of the curve (see Sect. 2.3). Thetexture mapping is done at the same time using the mirror-ing technique; each couple of antisymmetrical ellipse cen-ter points corresponds to the appearance of a snake imagepixel. The ellipse size at a point pn is determined basedon the distance dn between its center and the boundary.Its eccentricity can be given as a known constant param-eter, as it is almost the same for all ellipses. Otherwise,it can be computed using an input image instead of a topview image and a side view image of the snake. All ofthe produced ellipses make up the final 3D model of thesnake.

2.3 Curve equipartition

The “skeleton points extraction” procedure is based oncurve equipartition (EP), and it is used on 3D snakemodel creation (Sect. 2.2) and on the motion analysisstage (Sect. 2.4). The EP problem can be defined for any2D continuous curve. Let A and B be the start and endpoints of the curve, respectively. The EP problem is to lo-cate N −1 consecutive curve points, so that the curve canbe divided into N equal length chords, under the constraintthat the first starts at A and the last ends at B (see Fig. 3).We have proved [19, 20] that the above problem alwayshas at least one solution that provides algorithms that solvethe problem.

The above problem can have more than one solution,depending on the curve shape and number N. As N tendsto infinity the problem solution (equal chords) will beunique and it will provide an approximation of the curve(see Fig. 3). Next, we present a steepest descent based EPalgorithm (see Algorithm 1) that converges to a solution

Page 4: Snake terrestrial locomotion synthesis in 3D virtual environments

Snake terrestrial locomotion synthesis in 3D virtual environments 565

Fig. 3. EP examples for different N. The higher the N, the better the curve approximation

and is efficient for large N. Let Pi = C(ti), i = 0, . . . , N,P0 = A, ti < ti+1 be the curve points computed at an itera-tion. In each iteration, point Pi is computed based on theconstraint that the length of the line segments (|Pi−1 Pi |)is constant. Finally, Pi will converge to a solution, whichmeans that PN � B. The first N −1 segments will haveexactly the same length. Let T and r be the convergenceerror and the algorithm learning rate (r < 1), respectively.The final solution computed by the above algorithm willbe very close to the real one because the length of eachchord will be exactly the same.

Algorithm 1. Steepest descent based curve EP

P0 = A

s = curve length

Nrepeat∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣

for i = 1 to N do∣∣∣∣∣∣∣

Pi = C(ti) : ti > ti−1 ∧|Pi−1 Pi | = s/* If there is no solution, we compute point Pi usinga mirroring technique, ⇒ then Pi will be out of curve.*/

end

s ={

s +r |B−PN |N , PN is curve point

s −r |B−PN |N , PN is being out of curve

until |PN − B| < T

2.4 Motion analysis stage

In this section, the motion analysis stage is described.The skeleton points are tracked with pixel accuracy in thewhole image sequence using the “skeleton points extrac-tion” procedure. The tracking accuracy has been improvedusing a stable camera and a high contrast background.We have captured terrestrial snake locomotion on varioustypes of surfaces in order to measure how the friction af-fects the snake locomotion.

Let Θ(n, t) be the angle between the horizontal axisand the skeleton on point n at frame t (see Fig. 6a).When the snake moves on high friction surfaces (Figs. 4a,4b) it holds that each skeleton point traces the headpoint trajectory: Θ(n, t) = Θ(n −U(t), t −1), where U(t)denotes the snake pulse speed at frame t. Otherwise,the snake slides on low friction surfaces (Figs. 4c, 4d).Let Θe(n, t) denote the estimation of Θ(n, t) using themodel Θe(n, t) = Θ(n −U(t), t −1). Then, the absoluteestimation error |Θe(n, t)−Θ(n, t)| is proportional to thefirst derivative of Θ(n, t) with respect to n (Θn(n, t))(see Fig. 5a). Let U(n, t) denote the n snake skeletonpoint pulse speed at frame t. U(n, t) can be estimated byapplying the linear model: Θe(n, t) = Θ(n −u(n, t), t −1)+w(n, t)(Θ(n +1 −u(n, t), t−1)−Θ(n −u(n, t), t −1), where u(n, t) ∈ {1, 2, . . . }, w(n, t) ∈ [0, 1). Then itholds that U(n, t) = u(n, t)+w(n, t). For a more robustestimation, U(n, t) was estimated in nine point neighbor-hoods using least mean square error minimization. Fig-ure 5b illustrates results of the estimation.

2.5 State graph construction

Since the input video sequence contains a limited numberof motions and skeleton shapes, it is important that themotion synthesis algorithm can generate new unseen mo-tions, thus producing realistic and non-periodic snake ani-mations. For this reason, we have not used simple mathe-matical models for motion description, but instead a noveltechnique has been proposed and implemented. Accord-ing to this method, a graph is constructed, whose nodescorrespond to states of the snake skeleton. A graph nodeis independent of translation, rotation and scaling of thesnake, describing only the snake shape. Then the stage ofshape motion synthesis merely amounts to traversing suit-able paths through this graph.

At first, a skeleton state representation will be de-scribed. Since each frame contains a fixed and relativelylarge number (100) of skeleton points, a more compactrepresentation of the skeleton state is obtained usingFourier transform coefficients. This representation will be

Page 5: Snake terrestrial locomotion synthesis in 3D virtual environments

566 C. Panagiotakis, G. Tziritas

Fig. 4. a Frames of a snake motion on a high friction surface and b the tracking results using a maximum intensity filter over time. cFrames of snake motion on a low friction surface and d the snake skeleton points tracking results

Fig. 5. Motion analysis results (inrad)

Fig. 6. a Equally spaced skele-ton points and the resultingA(sk) function computed atthese points. A(sk) is the anglebetween the horizontal axis andthe skeleton at point sk . b Thefunctions A(s) (in rad) and itsFourier transform F(u)

related to the local curvature of the snake shape and willthus facilitate our motion synthesis. More specifically, letA(sk) be the angle computed at the equally spaced skele-ton points sk (Fig. 6a). Let F(u)1 be the Fourier transformof the sequence A(sk) (Fig. 6b).

Ignoring the first Fourier transform coefficient, whichmeasures the global rotation of the snake’s shape, the

1 Actually, F(u) is the Fourier transform of a signal A(sk) produced by ap-pending samples to the end of A(sk) so that no discontinuities appear afterrepetition of A(sk). These extra samples may be computed by interpolationof the first and last terms of the initial A(sk).

next seven Fourier transform coefficients, say {C(i); i =1, . . . , 7} of F(u) are chosen to represent the state of thesnake skeleton. Due to the smoothness of snake’s shape,these coefficients suffice to recover the angles A(sk) be-cause they contain about 99% of the signal energy (seeFig. 6b), on average in the tracking data. Therefore, a goodapproximation of the shape is reconstructed, reducingnoise at the same time. In addition, these coefficients areinvariant to translation, rotation and scaling of the snake’sshape.

Having defined a representation of the skeleton state,the construction of the graph that will be used for the mo-

Page 6: Snake terrestrial locomotion synthesis in 3D virtual environments

Snake terrestrial locomotion synthesis in 3D virtual environments 567

tion synthesis will be now described. Each node of thegraph corresponds to a skeleton state, i.e. a 7-tuple of com-plex numbers. Since a limited number of skeleton statescan be extracted directly from the video frames, more“random” skeleton states need to be generated based onthe existing ones using the sampling algorithm describedbelow.

Let Ct(i), i = 1, . . . , 7 be the existing skeleton statesfor all video frames2 t = 1, . . . , n, where n denotes thenumber of video frames. Let Rk(i) be a new random skele-ton state to be generated. To completely define Rk themodulus and phase for all seven components of Rk need tobe set. Each modulus |Rk(i)| of the new state is stronglyrelated to the curvature of the shape, and so the validvalues should lie between the corresponding minimumCmin(i) and maximum Cmax(i) modulus of all the existingstates,

Cmin(i) = mint

(|Ct(i)|), Cmax(i) = maxt

(|Ct(i)|).

The angle � Rk(i) is related to the position where the snakeskeleton is curved. Since the snake skeleton can be curvedat any of its skeleton points, no constraints are imposed on� Rk(i). Thus, Rk(i) is defined by the following equation,rk(i), gk(i) being random numbers uniformly distributedin the interval [0, 1]:|Rk(i)| = Cmin(i)+rk(i) · (Cmax(i)−Cmin(i)) (1)� Rk(i) = 2π · gk(i). (2)

The edges of the motion graph are defined and updatedduring the trajectory computation procedure of the mo-tion synthesis algorithm. Therefore, the construction ofthe motion graph resembles the generation of a probabilis-tic roadmap [12, 13]. Let SA be the current snake skele-ton (skeleton state, snake orientation and snake position).The procedure for connecting a skeleton SB and SA isthat SB is placed (rotated and translated) consecutivelyon SA so that the head of SA will be the tail of SB (seeFig. 8b).

2.6 Motion synthesis

Points of the trajectory in the 3D virtual environment areprovided as input for the motion synthesis algorithm. Thepath planner creates a safe and short path in the 3D virtualenvironment that passes from the user defined points. Thepath planner output is a set of L points (Tn , n = 1, . . . , L)that the snake has to follow. Each point is admitted asreached when the distance Dn of the snake from the con-sidered point is lower than a threshold (Dmax). Then, thetrajectory computation procedure is executed, computing

2 The skeleton states are produced by the skeleton points that are trackedwith pixel accuracy in the whole image sequence.

an initial trajectory of snake motion and initializing theskeleton animation angles sequence, Θ(n, t). The pseudo-code of the motion synthesis algorithm is given here-after.

Algorithm 2. Motion synthesis

n = 1pathPlanner()trajectoryComputation()repeat∣∣∣∣∣∣∣∣∣∣∣

if Dn < Dmax then∣∣∣ n = n +1

endgetVelocity()getSkeletonPoints()

until n < N

The motion synthesis loop is split into steps: deter-mination of the snake’s velocity, computation of skeletonangles and skeleton points. The snake velocity is definedby applying a physical model. Next, the snake’s shape iscomputed. Finally, the snake motion is adapted to the localground model.

2.6.1 Path planning in a 3D virtual environment

During this stage, the path of the outer environment thatwill be traced by the animal is computed. We assume thata 3D model of the outer environment is provided as input.We also assume that the outer environment may containobstacles, such as rocks, trees, etc., which are overlaidon a mostly horizontal surface. Let W = {K1, . . . , Kn}(Kj ∈ Re3) be the set of vertices of that 3D model. We willdenote by X(K), Y(K), Z(K) the 3D coordinates of anyworld point K . Based on the geometry of the world model,initially a subset S of W is automatically selected con-taining all those points having no obstacles around them.A point will be a node of S, if the variance of the elevation(Y coordinate) around this point is lower than a predefinedthreshold. The user then interactively picks a sequence ofpoints {U1, . . . , Ul} out of the set S and the path plan-ning algorithm outputs a path, which passes through thesepoints, but does not pass through any obstacles in between.For this purpose, a weighted graph G = (S, E) is com-puted that has the points of the set S as nodes (Fig. 7a).The edges E are set so that there is a path between twonodes of G, only if there is a path between the correspond-ing points in the original world 3D model. The weight ofan edge is set equal to the variance of the elevation (Ycoordinate) of all world 3D points that appear along thatedge. The sum of the edge weights along a path is calledthe path score and indicates the amount of obstacles thatthe path contains. The path ({T1, T2, . . . , TL}) with the

Page 7: Snake terrestrial locomotion synthesis in 3D virtual environments

568 C. Panagiotakis, G. Tziritas

minimum score is computed by applying Dijkstra’s algo-rithm to the weighted graph G. A sample output of thealgorithm is shown in Fig. 7b. The red points numbered(1, 2, 6) were specified by the user, the final path pointsequence is (1, 2, 3, 4, 5, 6).

2.6.2 Trajectory computation

In this procedure, the trajectory and the skeleton anglesequence of the animation are initialized using a motionplanning (exploration) algorithm on the state graph. Thisis a general algorithm, which can be applied to any mo-tion graph obtaining aperiodic motion sequences. First,an arbitrary state (node) of the graph is selected andthen the next states are chosen by traversing edges of thegraph.

Using an inverse kinematic transform, the skeleton an-gles can be computed by the snake state and snake orien-tation. In each iteration (k), we compute the state skeletonangles using the state vector S(k) of size N = 7 and thesnake orientation D(k) (see Fig. 8a). Let G be a vectorwith a size equal to the size of the initial transformed vec-tor.

G = [

c · D(k) RT (k) 0 · · · 0 RH (k)]T

,

RH = [

R(N) R(N −1) · · · R(1).]

Then, the skeleton angles Θk(n) sequence is computed bythe inverse Fourier transform of the vector G.

The goal of the algorithm is that the snake trace thetarget point sequence Ti selecting unvisited states. The op-timal snake orientation Do(k) can be computed by thedirection of the vector Ti − Sk, where Sk denotes the snake

Fig. 7. The 3D point graph andthe final path in a virtual envi-ronment

Fig. 8. a The motion analysisand synthesis scheme. b Thesnake shape and orientation aredefined by the snake target (T2)

mass center at iteration k and Ti denotes the current tar-get point. Thus, the edges in graph are defined using thecurrent snake target point. Let SA and SB be the currentskeleton state and an arbitrary state, respectively. Then SBis placed (rotated and translated) consecutively on SA (seeFig. 8b). The edge between SA and SB is created, if theorientation (after rotation) of SB is close to the optimalorientation Do(k). Therefore, the graph edges are updatedon each iteration of the procedure, yielding a star graphwith the center in current state.

During the state selection process, which is executeduntil the snake passes all the target points, we use the fol-lowing criteria so that non-periodic motions are obtainedand the snake will visit most of the graph states as soon aspossible:

1. The graph will be covered as soon as possible withoutmany cycles.

2. The steps between two visits (Ts(q)) of the same stateq will be at least 0.05 · |V |, where |V | is the number ofstates.

3. Low computation cost per execution step (O(|V |)).The first constraint will solve the Hamilton path problem,which is an NP-complete problem. Thus, we have to de-velop an approximate algorithm because the NP-completeproblems have not been solved in O(|V |).

According to the literature, there are two low computa-tion cost algorithms that can be used: the random walk andthe depth first search (DFS) [3]. We are going to comparethem with the proposed method. Random walk selects thenext state randomly from the unvisited states, otherwise ifall neighboring states have been visited, it selects the nextstate randomly. The major problem of this algorithm is

Page 8: Snake terrestrial locomotion synthesis in 3D virtual environments

Snake terrestrial locomotion synthesis in 3D virtual environments 569

that it needs O(|V |2) in the mean case to cover the graph.An appropriate version of depth first search (stack walk)selects from all unvisited states, the one with the high-est degree as the next state. If all neighboring states havebeen visited, it will select the previous state as the nextstate (it keeps the visited states in stack). The advantageof this algorithm is that it needs O(|E|) steps in the worstcase to visit the total states of a graph where the optimalis at least |V | and where |E| is the number of graph edges.However, when the backtracking is performed, the secondconstraint is not satisfied because the time between twovisits of the same state is low.

We propose a snake walk algorithm that satisfies theabove constraints. For each state q we store the number oftimes M(q) that this state has been selected and the num-ber of times F(q) that this state has been selected and thenext state was an unvisited state. If deg(q) denotes the de-gree of node q, then the following statement is true:

deg(q)+ F(q) ≥ M(q) ≥ F(q). (3)

Among all neighboring states of the current state, the onethat maximizes the function W(q), defined hereafter, ischosen:

Du(q) = 1− sign(M(q)), (4)Dv(q) = deg(q) · (sign(M(q))+ sign(F(q))) (5)

Df (q) = M(q) ·2F(q), (6)

W(q) = deg(q)

Du(q)+ Dv(q)+ Df (q). (7)

The properties of W(q) describe the selection strategyof the algorithm.

– W(q) ≥ 1 ↔ the state q is unvisited3.– 1 > W(q) ≥ 1

2 ↔ the state q has been visited andF(q) = 04.

– W(q) < 12 ↔ F(q) > 05.

Therefore, those states that have not been visited arepreferred. If there are no unvisited states to visit in onestep, those states that can be connected to unvisited statesare selected. The states q where F(q) > 0 are not preferred(W(q) < 1

2 ) because they will certainly lead us to selectanother already visited state. If there are many unvisitedstates, the states with a high degree are preferred, becausethese states may drive the algorithm to unvisited parts ofthe graph. If there are only visited states, the states q withF(q) = 0 and with a high degree and a low number of vis-its are preferred, since these states are more likely to drivethe algorithm in the next step to an unvisited state, and the

3 W(a) > W(b) ↔ deg(a) > deg(b).4 W(a) > W(b) ↔ deg(a)M(b) > deg(b)M(a).5 W(a) > W(b) ↔ deg(a)M(b)2F(b) > deg(b)M(a)2F(a)

number of steps that passed from the last selection of q isthe maximum (second constraint) with the highest proba-bility.

For many known graphs, such as connected cliqueswith bridges, high density graphs (mean node degree ≥ 6),which are possible state graphs, it can be proved that theabove algorithm needs O(N) steps to cover the graph. Inmany cases of high density, graphs approximate the op-timal (|V |). The snake walk covers quickly any type ofgraph and as our experiments6 show, in the worst case, itneeds less than NlogN steps.

As our experiments show, in high density graphs thesnake walk always covers the graph faster than the stackwalk, while, in most cases in the low density graphs, thestack walk is proved faster (Fig. 9). Concerning the sec-ond constraint, the percentage of cases, in low densitygraphs, where Ts(q) < 0.05 · |V | is less than 10% and it isdecreased to 0% in high density graphs. Using the stackwalk, this percentage varies between 20% and 50% in thesame graphs because of the backtracking phenomenon.Thus, under the problem constraints the snake walk yieldsbetter results than the stack walk and it is almost optimalin high density graphs.

2.6.3 Snake velocity computation

In this procedure, the snake velocity is computed apply-ing a physical model. Let P(n0, t) be the position of the n0snake skeleton point at frame t in the horizontal X Z plane.The frame rate is chosen high enough, so that P(n0, t) canbe estimated with high accuracy using just the 2D snakevelocity �v(t). P(n0, t) = P(n0, t −1)+ �v(t)∆t, where ∆tdenotes the short time period between the two successiveframes t and t −1. The point n0 changes over time. Wehave developed a simple snake model for the dynamicsof snake locomotion. We assume that there are two typesof forces interacting with the snake, a friction force |T(t)|and a force produced by the snake motion F(t). The fric-tion model includes viscous friction and Coulomb friction,|T(t)| = c1|�v(t)|+ c2. The norm of the snake motion force|F(t)| is given in Eq. 8. K(t), O(t) denote the standard de-viation of the skeleton angles and the first time derivativeof snake orientation, respectively. The snake force is re-lated to the snake curves. Moreover, it has been observedthat a real world snake usually decelerates when it is turn-ing. Equation 8 describes this behavior:

|F(t)| = c3K(t)− c4|O(t)|. (8)

We now integrate the forces applying the second Newto-nian law,

| �v(t)| = |F(t)|− |T(t)|. (9)

6 The worst case occurred on low density graphs where the graph diameterwas high. We tested the snake walk in more than 10.000 low density smallworlds and random graphs [28] with |V | ∈ {100, 200, 300, . . . , 1000}.

Page 9: Snake terrestrial locomotion synthesis in 3D virtual environments

570 C. Panagiotakis, G. Tziritas

Fig. 9a–f. The total number of distinct visited states per algorithm execution step at graphs of 1000 nodes. The red and blue cycles denotethe time step in which the stack walk and snake walk cover the graph, respectively. a Random graph with a mean degree of 3, b randomgraph with a mean degree of 6, c random graph with a mean node degree of 9, d small world graph with a mean node degree of 3,e small world graph with a mean node degree of 6, f small world graph with a mean node degree of 9

Using the last equation, we can compute the norm ofthe acceleration vector. The speed norm can be com-puted using the assumption that the acceleration direc-tion is parallel to the speed direction. This is a very goodapproximation, as the friction direction is exactly paral-lel to the speed direction and the snake exerts the forceF in the direction of the snake body at the n0 skele-ton point. This direction is the speed direction of the n0skeleton point, so we are able to compute the speed vec-tor �v(t).

The constants c1, c2, c3, c4 are the model parameters.The snake behavior is affected by these parameters. Theparameters c1 and c2 depend on the friction model. In ourimplementation we used c1 = 1, c2 = 0.5. c3 and c4 arerelated to the snake mass and snake force. In our experi-ments, we used c3 = 6 and c4 < 2 and obtained realisticresults.

2.6.4 Skeleton points computation

The skeleton points at each frame t are computed usingthe snake velocity and the initial snake angle sequenceestimated by the trajectory computation procedure. Thesnake motion is characterized by the fact that the tail

motion always follows the head motion with a smallphase delay. However, on a low friction surface, thisrule does not hold. Using the results of the motion an-alysis stage, we propose the following general math-ematical model for the skeleton angles Θ(n, t). LetΘ1(n), Θ2(n), . . . , ΘM(n) be the skeleton angles esti-mated by the trajectory computation procedure. We initial-ize Θ(n − (k −1) · N, 1) = Θk(n), k ∈ {1, 2, . . . , M}, n ∈{1, 2, . . . , 100}. Θ(n, t), t > 1 is given by the equa-tion:

Θ(n, t −1) = Θ

(

n − u(n, t) ·∆t

r, t −1

)

, (10)

Θ(n, t −1) = Θn

(

n − u(n, t) ·∆t

r, t −1

)

, (11)

Θ(n, t) = Θ(n, t −1)+wd(n, t) · Θ(n, t −1), (12)

u(n, t) = |�v(t)|+ g(n, t). (13)

Parameter r denotes the constant distance between twoconsecutive skeleton points. Θn(n, t) is the first numeri-cal derivative of Θ(n, t) with respect to n. The weightingfunction wd(n, t) is defined for each skeleton point n.This function describes how the skeleton point n slides at

Page 10: Snake terrestrial locomotion synthesis in 3D virtual environments

Snake terrestrial locomotion synthesis in 3D virtual environments 571

Fig. 10. Skeleton points as recovered by using angles Θ(n, t) with different sampling rate over time. The blue and black skeletonscorrespond to the first and last states, respectively

Fig. 11. a The snake mass center trajectory. b Statistics about snake motion over time: the distance of the snake middle point from thecurrent target and the snake velocity. c Sampling skeletons from a snake motion sequence and the three target points (green, brown andred cycle)

frame t. If wd(n, t) = 0, then the skeleton points will tracethe snake head trajectory with a phase delay (see Fig. 12a).This way, the angles defined at the points of the headare gradually transferred to the points of the tail. Usinga non-constant function such as g(n, t), the skeleton pointpulse speed can vary over the skeleton. A useful parame-ter that controls this behavior is the variance of g(:, t) andσ2

g (t). As our motion analysis stage shows, it holds thatg(n, t) = ci, ni < n < ni+1 and |g(n, t)− g(n −1, t)|< Tand |g(n, t)− g(n, t−1)| < T .

As the snake speed vector �v(t) is known, the skeletonpoints P(n, t), t > 1 can be computed recursively from thehead to the tail using the following equation under the hy-pothesis P(−1, t) = 0:

y1 =t

i=1

�v(i) ·∆t,

y2 = [sin(Θ(n, t)) cos(Θ(n, t))

]T

P(n, t) = P(1, 1)+ y1 + P(n −1, t)+r · y2.

Skeleton samples from three snake motion sequences ex-tracted by our method are depicted in Fig. 10. An exampleof a snake animation is illustrated in Fig. 11.

2.6.5 Snake locomotion adaptation to the 3D local ground

The synthesis algorithm computes a prototype locomotionthat always takes place in the horizontal X Z plane. Finally,the Y coordinates of the snake skeleton are computed, sothat the snake moves on any surface of the virtual 3D en-vironment. We assume, however, that the animal moves ona mostly horizontal surface7 (with slope less than 25◦). Anefficient way to solve the problem without many computa-tions is to ignore the change of X and Z, and to computejust the Y coordinate of any skeleton point using the 3Dworld model. Otherwise, we have to recompute the X andZ coordinates of each skeleton point. This can be done it-eratively starting from the end of tail skeleton point, whose

7 In the proposed force model, we have ignored the gravity force, which isimportant for the motions at inclined planes with a slope of more than 25◦.

Page 11: Snake terrestrial locomotion synthesis in 3D virtual environments

572 C. Panagiotakis, G. Tziritas

Fig. 12a–f. Skeleton points sequences as recovered by using angles Θ(n, t). The *, + points correspond to the position of the head andmass center, respectively. a wd(n, t) = 0, g(n, t) = 0, b wd(n, t) = 0.5, g(n, t) = 0, c wd(n, t) = 1, g(n, t) = 0, d wd(n, t) = cos2(0.05 · t),g(n, t) = 0, e wd(n, t) = 0.3, Vg(t) = 0.5, f wd(n, t) = 0.3, Vg(t) = 2

position is known. The skeleton point P(n, t) can be com-puted from the skeleton point P(n +1, t) using the follow-ing constraints:

– The distance from the skeleton point P(n +1, t) is r.– The angle on the X Z plane between skeleton points n

and n +1 is Θ(n, t).– The distance between the point P(n, t) and the 3D

world model is dtn2 (see Sect. 2.2).

Let us define the vertical hemicycle on the X Z planeCn+1, where the center is the skeleton point P(n +1, t),the radius is r, and the direction is Θ(n, t). The skeletonpoint n can be computed by the section of Ct

n+1 with the

3D world model. Finally, we add the constants dtn

2 to theestimated Y coordinates, so that the skeleton point P(n, t)distance from the ground will be dt

n2 and the 3D snake

model will be adopted to the local ground. Results of thisadaptation are depicted in Fig. 15.

2.6.6 Snake behavior control

In many cases, a real world snake can slide on low frictionsurfaces. We can enable this behavior by using a non-zero function wd(n, t). Moreover, the skeleton point pulse

speed can vary; this behavior is controlled by the func-tion g(n, t). In Fig. 12, skeleton point sequences over timeare depicted; these sequences have been computed usingdifferent wd(n, t) and g(n, t) functions.

The snake’s shape coefficients can efficiently affect thesnake curvature (the number – type of waves appearing onthe snake skeleton) and the snake behavior. Each coeffi-cient C(i), i ∈ {1, . . . , 7} of a snake state corresponds toa frequency of the snake skeleton signal. The first corres-pond to low frequencies (low number of waves) and thelast to high frequencies (high number of waves). We caninfluence the snake curvature on the state graph construc-tion module, as the state graph consists of the differentsnake states that the snake is going to cover. Therefore,we can set some thresholds on the coefficients’ energy orwe can allow many types of waves under a predefined pro-portion getting the appropriate snake curvature on the syn-thetic snake motion sequences. Fig. 13 illustrates skele-tons derived by different rules on snake state coefficientsof the state graph construction module.

The snake tongue is modeled by a cylinder whoseheight varies over time. The direction of the snake tongueis almost the same as that of the snake head. Let Hst(t) bethe height of the cylinder at time t. We used image track-ing data in order to estimate the probability P(Hst(t) =x/Hst(t − 1) = y, Hst(t − 2) = z). If this probability is

Page 12: Snake terrestrial locomotion synthesis in 3D virtual environments

Snake terrestrial locomotion synthesis in 3D virtual environments 573

Fig. 13. a Low frequency skeleton, b medium frequency skeleton and c high frequency skeleton

Fig. 14. The synthetic 3D snake

known, it is trivial to compute a sequence of Hst(t). Thesnake tongue behavior (how fast the snake tongue ismoved) can be adjusted by using Hst(bst · t) as the Hst(t),where bst ∈ [0.4, 2.5] is the adjustment parameter of thesnake tongue behavior.

3 Results

The first step of the algorithm is the 3D snake model con-struction. In Figs. 14 and 2b the 3D snake model and thecorresponding wire-frame are depicted.

Hundreds of synthetic animations have been producedby the proposed motion synthesis algorithm. The snakewas placed inside 3D virtual environments such as a rep-resentation of Samaria Gorge and synthetic virtual envi-ronments. Some frames from the produced animations aredisplayed in Fig. 15. In Figs. 15c, 15f, 15e and 15h the 3Dshape of the snake body is adapted to the inclined localground. The accurate texture mapping and 3D model al-low us to observe the snake skin details in high resolution(see Fig. 15g). Consequently, the snake motion algorithmpasses in many states, producing smooth and aperiodicmotion, which are the major features of real snake mo-tion. Some videos of the snake animations produced by

the proposed method are available at the Web address:www.csd.uoc.gr/∼cpanag/DEMOS/snakeAnimation.htm.

The method was implemented using C and Matlab andthe animations were generated in VRML 2.0 format. Themean computation time for the construction of a 3D snakemodel was about 45 seconds, using as input images of 1.6megapixels. This step needs to be executed only once andit has been implemented using C. Regarding the remain-ing steps of the method, which have been implementedusing Matlab, the mean computation time for producinga 250 frame animation was about 65 seconds. This timeincludes the time occupied by the path planning stage (in-side a 3D virtual world of 10 000 vertices), as well as themotion synthesis stage. The code, as it was written in Mat-lab, was not speed optimized. Thus, our method can beimplemented in real time. For our experiments we useda Pentium 4 CPU at 2.8 GHz.

4 Conclusion

In this paper, we have presented a method for 3D snakemodel building and animation synthesizing using imagesequences as input. The 3D model is created by ellipses,whose centers are defined by the skeleton points. In thesame step, the proposed method provides a very detailedtexture mapping, using high resolution real snake imagesand prior knowledge about the snake anatomy, making thesynthetic snake genuine. Thus, the precision of image an-alysis data suffices to give realistic modeling.

The snake motion data consist of tracking skeletonpoints in the whole image sequences. The tracking accu-racy has been improved by using a stable camera and highcontrast background. This method is based on a solutionof the curve equipartition problem, which has been alsopresented in this article. The proposed snake model co-efficients can be distinguished as those that describe therotation, translation, scaling of the snake and to those thatdescribe the snake’s shape, leading on development of anefficient motion synthesis method. The minimal number

Page 13: Snake terrestrial locomotion synthesis in 3D virtual environments

574 C. Panagiotakis, G. Tziritas

Fig. 15. Some frames from the produced snake animations inside 3D virtual environments

of the proposed snake model coefficients decreases thememory cost of the state graph construction, providing theability of a large graph construction, which means a hugenumber of different skeletons that the snake is going tocover. Moreover, the noise of image data and the num-ber of 3D model parameters are reduced by using theFourier transform coefficients of the angle sequence be-tween consecutive skeleton points. To move the snakefrom one user predefined point to another, a graph of sur-face vertices is used. Edges of this graph have differentweights concerning the safety of the edge path. A safe andsmooth trajectory of the snake is calculated as a trajec-

tory along these graph edges and it should be of minimalweight.

Concerning the snake locomotion, an animation syn-thesis algorithm based on a physical motion model de-scribes the snake’s velocity. To overcome the problem thatthe input video sequence contains a limited number of mo-tions and skeleton shapes, the proposed motion synthesisalgorithm, which is based on a set of possible states, cangenerate new unseen motions, allows a large number ofskeleton shapes, and ensures aperiodic motion sequences.Their combination yields special characteristics of snakelocomotion behavior, such as the natural locomotion, that

Page 14: Snake terrestrial locomotion synthesis in 3D virtual environments

Snake terrestrial locomotion synthesis in 3D virtual environments 575

is locomotion derived following physical laws, and theunpredictable – aperiodic motion, yielding impressive an-imations. The motion planning algorithm yields better re-sults than the existing methods, random walk and stackwalk and it can be applied to any motion graph. Finally,the snake locomotion is adapted to 3D local ground yield-ing realistic results on fitting the snake skin into the 3Dlocal ground surface. Concerning the snake behavior, thesnake curvature over a synthetic motion sequence can beefficiently affected by the snake’s shape coefficients on thestate graph construction module. Moreover, the “sliding”snake behavior can be easily controlled by model parame-ters.

As future work, we plan to extend our forces modelof the snake body and the ground by including the grav-

ity force, so that a more accurate representation of thesnakeŠs locomotion is obtained. Moreover, we can applythe 3D model construction method and the path planningalgorithm to other creatures, characterized by a skeletonbased 3D model and no periodic motion. The motion plan-ning algorithm can be also applied to robotic systems thatshould cover as soon as possible a state graph (e.g. a re-gion) without many cycles.

Acknowledgement This research was partially supported by theEuropean IST Digital Artistic and Ecological Heritage Exchange(DHX) project and by the Greek PENED 2003 program. Theauthors would like to thank the researchers of the Natural HistoryMuseum of Crete (NHMC), Dr. Apostolis Trichas and Dr. PetrosLymberakis for the fruitful discussions on animation and help onvideo data collection.

References1. Albrecht, I., Haber, J., Seidel, H.:

Construction and animation of anatomicallybased human hands models. In:SIGGRAPH (2003)

2. Barbier, A., Galin, E., Akkouche, S.:A framework for modeling, animating, andmorphing textured implicit models.Graphical Models 67(6), 166–188 (2005)

3. Batalin, M.A., Sukhatme, G.S.: Efficientexploration without localization. In: Int.Conference on Robotics and Automation,Taipei, Taiwan, pp. 2714–2719 (2003)

4. Chernousko, F.: Modelling of snake-likelocomotion. Appl. Math. Comput. 164(2),415–434 (2005)

5. Dontchena, M., Yngve, G., Popovic, Z.:Layered acting for character animation. In:Proc. IEEE International Conference onComputer Vision, pp. 409–416 (2003)

6. Favreau, L., Reveret, L., Depraz, C., Cani,M.: Animal gaits from video. In:SIGGRAPH, Grenoble, France (2004)

7. Glardon, P., Boulic, R., Thalmann, D.:Dynamic obstacle avoidance for real-timecharacter animation. Visual Comput. 22(6),399–414 (2006)

8. Gray, J.: Animal Locomotion. Norton,London (1968)

9. Ijspeert, A.: Design of artificial neuraloscillatory circuits for the control oflamprey- and salamander-like locomotionusing evolutionary algorithms. Ph.D.Thesis, Univ. of Edinburgh (1998)

10. Jayne, B.C.: Kinematics of terrestrial snakelocomotion. Copeia 4, 915–927 (1986)

11. Johnson, M.: Exploiting quaternions tosupport expressive interactive charactermotion. Ph.D. Thesis, MassachusettsInstitute of Technology (2003)

12. Kavraki, L., LaValle, S., Yakey, J.:A probabilistic roadmap approach forsystems with closed kinematic chains. In:Proc. of the IEEE Int. Conf.

on Robotics and Automation,pp. 1671–1677 (1999)

13. Kavraki, L., Svestka, P., Latombe, J.,Overmars, M.: Probabilistic roadmaps forpath planning in high dimensionalconfiguration spaces. IEEE Trans. RoboticsAuto. 12(4), 566–580 (1996)

14. Kim, H., Sohn, K.: 3d reconstruction fromstereo images for interactions between realand virtual objects. Signal Processing:Image Commun. 20, 61–75 (2005)

15. Kovar, L., Gleicher, M., Pighin, F.: Motiongraphs. In: SIGGRAPH (2002)

16. Miller, G.: The motion dynamics of snakesand worms. Computer Graphics 22(4),169–178 (1988)

17. Moon, B.R., Gans, C.: Kinematics,muscular activity and propulsion in gophersnakes. J. Experiment. Biol. 201,2669–2684 (1998)

18. Nougaret, J., Arnaldi, B., Multon, F.:Coarse-to-fine design of feedbackcontrollers for dynamic locomotion. VisualComput. 13, 435–455 (1997)

19. Panagiotakis, C., Georgakopoulos, G.,Tziritas, G.: The curve equipartitionproblem. Computational Geometry(submitted, 2005)

20. Panagiotakis, C., Georgakopoulos, G.,Tziritas, G.: On the curve equipartitionproblem: a brief exposition of basic issues.In: European Workshop on ComputationalGeometry, Delphi, Greece (2006)

21. Panagiotakis, C., Tziritas, G.: Constructionof animal models and motion synthesis in3D virtual environments using imagesequences. In: Proc. 2nd InternationalSymposium on 3D Data Processing,Visualization and Transmission,Thessaloniki, Greece (2004)

22. Panagiotakis, C., Tziritas, G.: Recognitionand tracking of the members of a movinghuman body. In: Proc. of the 3rd

International Workshop on ArticulatedMotion and Deformable Objects, pp.86–98. Springer, Berlin Heidelberg NewYork (2004)

23. Ramanan, D., Forsyth, D.: Using temporalcoherence to build models of animals. In:Proc. IEEE International Conference onComputer Vision, pp. 338–345 (2003)

24. Saito, M., Fukaya, M., Iwasaki, T.:Modeling, analysis, and synthesis ofserpentine locomotion with a multilinkrobotic snake. IEEE Control SystemsMagazine 22(1), 64–81 (2002)

25. Sifakis, E., Grinias, I., Tziritas, G.: Videosegmentation using fast marching andregion growing algorithms. EURASIP J.Appl. Signal Process. 2002(4), 379–388(2002)

26. Sminchisescu, C., Triggs, B.: Buildingroadmaps of minima and transitions invisual models. Int. J. Comput. Vision 61(1),81–101 (2005)

27. Tsakiris, D., Sfakiotakis, M., Menciassi, A.,LaSpina, G., Dario, P.: Polychaete-likeundulatory robotic locomotion. In: Proc.IEEE International Conference Roboticsand Automation, Barcelona, Spain,pp. 3029–3034 (2005)

28. Watts, D.J., Strogatz, S.H.: Collectivedynamics of small-world networks. Nature393, 340–442 (1998)

29. Wilhelms, J., Gelder, A.V.: Combiningvision and computer graphics for videomotion capture. Visual Comput. 19(6),360–376 (2003)

30. Wu, J., Popovic, Z.: Realistic modeling ofbird flight animations. In: SIGGRAPH,pp. 888–895 (2003)

31. Yang, L., J., Singh, K.: Layered dynamiccontrol for interactive character swimming.In: SIGGRAPH, Grenoble, France,pp. 37–49 (2004)

Page 15: Snake terrestrial locomotion synthesis in 3D virtual environments

576 C. Panagiotakis, G. Tziritas

COSTAS PANAGIOTAKIS was born in Heraklion,Crete, Greece in 1979. He received the B.S. andthe M.S. degrees in computer science from Uni-versity of Crete in 2001 and 2003, respectively.Currently, he is a Ph.D. candidate in computerscience at University of Crete. His researchinterests include computer vision, image andvideo analysis, motion analysis and synthesis,computer graphics, computational geometry andsignal processing.

GEORGIOS TZIRITAS received the Diploma ofElectrical Engineering (1977) from the Techni-cal University of Athens, the Diplôme d’EtudesApprofondies (DEA, 1978), the Diplôme deDocteur Ingenieur (1981), and the Diplôme deDocteur d’Etat (1985) from the Institut NationalPolytechnique de Grenoble.From 1982 he was a researcher of the CentreNational de la Recherche Scientifique, with theCentre d’Etudes des Phenomènes Aleatoires(CEPHAG, until Aug. 1985), with the Insti-tut National de Recherche en Informatique etAutomatique (INRIA, until Jan. 1987), andwith the Laboratoire des Signaux et Systèmes(LSS). From September 1992 he was AssociateProfessor, and from January 2003 he is FullProfessor, at the University of Crete, Departmentof Computer Science, teaching among othersDigital Image Processing, Digital Video Process-ing, Pattern Recognition and Data and SignalCompression.G. Tziritas is coauthor (with C. Labit) of a bookon “Motion Analysis for Image Sequence Cod-ing” (Elsevier, 1994), and of more than 90journal and conference papers on signal andimage processing, image and video analysis,computer vision and pattern recognition. Hisresearch interests are in the areas of multimediasignal processing, image processing and analy-sis, computer vision, motion analysis, image andvideo indexing, and image-based augmentedreality.


Top Related