Problem Definition and the Research Proposal
- 格式:ppt
- 大小:731.00 KB
- 文档页数:30


Optimal Stopping-Amit Goyal27th Feb 2007Overview Why?What?How?Example ReferencesWHY?House selling : You have a house and wish to sell it. Each day you are offered X n for your house, and pay k to continue advertising it. If you sell your house on day n , you will earn y n , where y n = (X n −nk ). You wish to maximise the amount you earn by choosing a stopping rule. Secretary Problem : You are observing a sequence of objects which can be ranked from best to worst. You wish to choose a stopping rule whichmaximises your chance of picking the best object.WHAT?(Problem Definition)Stopping Rule is defined by two objectsA sequence of random variables, X 1, X 2, .., whose joint distribution is assumed known A sequence of real-valued reward functions,y 0, y 1(x 1), y 2(x 1,x 2), …, y ∞(x 1,x 2,…)Given these objects, the problem is as follows: You are observing the sequence of random variables, and at each step n, you can choose to either stop observing or continueIf you stop observing, you will receive the reward y n You want to choose a stopping rule to maximize your expected reward (or minimize the expected loss)Stopping RuleStopping rule consists of sequence = (0, 1(x 1), 2(x 1,x 2), …) n (x 1,…,x n ) : probability you stop after step n 0 <= n (x 1,…,x n ) <= 1 If N is random variable over n (time to stop), the probability mass function ψis defined as),...,())],...,(1([),...,(...(),...,(11111111n n j n j n n n n n n x x x x x x )x ,X ,x n|X N P x x φφψψ∏−−==>====),...,,,(210∞=ψψψψψHOW?(Solution Framework)So, the problem is to choose stopping rule to maximize the expected return, V(), defined as∑∞==0j 11)},...,(*),...,({ E )V(j j j j X X y X X ψφj = ∞if we never stop (infinite horizon)j = T if we stop at T (finite horizon)Optimal Stopping in Finite HorizonSpecial case of general problem, by setting y T+1= y T+2= …y ∞= -∞ Use DP algorithm))},...,((),,...,(max{),...,(),...,(111111++==j j j j j j T T T x x V E x x y x x V x x y V Here, V j (x 1,…,x j ) represents the maximum return one can obtain starting from stage j having observed X 1=x 1,…, X j =x j .The Classical Secretary Problem (CSP)Aka marriage problem, hiring problem, the sultan's dowry problem, the fussy suitor problem, and the best choice problemRules of the game:There is a single secretarial position to fill.There are n applicants for the position, n is known.The applicants can be ranked from best to worst with no ties.The applicants are interviewed sequentially in a random order, with each order being equally likely.After each interview, the applicant is accepted or rejected.The decision to accept or reject an applicant can be based only on the relative ranks of the applicants interviewed so far.Rejected applicants cannot be recalled.The object is to select the best applicant. Win: If you select the best applicant. Lose: otherwiseNote: An applicant should be accepted only if it is relatively best among those already observedCSP –Solution FrameworkA relatively best applicant is called a candidateReward Functiony j(x1,…,x n) = j/n if applicant j is a candidate, = 0otherwiseLets say the interviewer rejects the first r-1 applicants and then accept the next relatively best applicant. We wish to find the optimal rCSP –Solution Framework Cont.∑=∑=−−=−−=∑==∑==∑==n r k n r k k n r k r n r k r k - P nn rk th k P th k P nrk th k P r P 111 11n 1) stage before appears 1first of best (1 best) is it | selected is applicant (best) is applicant (selected) and best is applicant (Probability that the best applicant is selected is** (r-1)/(r-1) = 1 if r = 1CSP –Solution Framework Cont. For optimal r,∑∑∑+++≤−⇒−−≤−⇒≤n r n r n r rr k k n r k P P 11111111111n r ∑+≤−≥=n r k r r 1}111:1min{*0.4060.4100.4140.4280.4330.4580.5000.5001.000P 443332211r*987654321nCSP –for large n368.0/*1log )log(11large, is 1*1===⇒=⇒≈−−+∑e P e n r (n/r*)r n k If n r nrReferencesOptimal Stopping and Applications by Thomas S. Ferguson(/~tom/Stopping/Co ntents.html)/wiki/Optimal_stopping /wiki/Secretary_proble m。
调查研究解决问题作文Research plays a crucial role in addressing various problems faced by society. It helps in understanding the root causes of issues and finding effective solutions. 调查研究在解决社会面临的各种问题中扮演着至关重要的角色。
它有助于理解问题的根源,并找到有效的解决方案。
One of the key benefits of research is that it provides evidence-based insights that can inform decision-making at individual, organizational, and policy levels. 调查研究的一个关键好处是它提供基于证据的见解,可以指导个人、组织和政策层面的决策。
Researchers collect data, analyze it, and draw conclusions based on empirical evidence, which can help in identifying innovative solutions to complex problems. 研究人员收集数据、分析数据,并根据实证证据得出结论,这有助于确定复杂问题的创新解决方案。
Moreover, research helps in advancing knowledge and understanding in various fields, contributing to the overall progress of society. 此外,研究有助于推动各个领域的知识和理解不断向前发展,为社会的整体进步做出贡献。
By exploring new frontiers and generating new ideas, researchers play a critical role in driving innovation anddevelopment. 通过探索新的领域并产生新的想法,研究人员在推动创新和发展方面发挥着至关重要的作用。
Example-Based Motion CloningMin Je Park Sung Yong ShinKorea Advanced Institute of Science and TechnologyPhone:+82428693528Fax:+82428693510Email:{mjpark,syshin}@jupiter.kaist.ac.krIn this paper,we pose a motion cloning problem of retargeting the motion of a source character to a target character with a different structure.Based on scattered data interpolation,an example-based approach to motion cloning is proposed.Provided with a set of example motions,our method automatically extracts a small number of representative postures called source key-postures.The animator then creates the corresponding key-postures of the target character,breathing his/her imagination and creativity into the output animation.Exploiting this correspondence,each input posture is cloned frame by frame to the target character to produce an initial animation,which is further adjusted in space and time for retargeting and timewarping and thenfinalized with some interactivefine tuning.With rich animation data available,our motion cloning method aims at rapid prototyping of an animation to verify an animator’s concept at an early stage.Keywords:character animation,motion cloning,scattered data interpolation,posture clusteringIntroductionProblem DefinitionIt is burdensome and time-consuming to create realistic motion from scratch.As rich repertoires have become available in motion databases, motion synthesis by example has arose as a key issue in character animation.A rather wide variety of solutions have been proposed to address motion synthesis issues in different contexts,e.g.,motion retargeting[1,2,3],motion rearrangement[4,5,6,7],and motion blending[8,9],to name a few.Formulated by Gleicher[1],the motion retargeting problem concerns how to apply a captured motion of one character to another with the same structure but different segment proportions.To synthesize an intended motion,Gleicher’s solution relies on constraints specified by an animator.This method addressed commonly-observed motion artifacts such as foot sliding and penetration rather well.In this paper,we generalize the solution in two different directions while taking a completely different approach:First,we remove the restriction on target characters requiring them to have identical structure in order to retarget captured motions to more diverse characters. Second,we provide a simple user interface for the animator to express his/her intentions directly.To distinguish our problem from motion retargeting,we refer to this problem as“motion cloning”,which is named after“facial expression cloning”in[10,11].Our solution is mainly based on posture blending rather than constrained optimization.Given a set of example motions of the source character,a small number of representative key-postures are extracted.The key-postures are chosen to represent the characteristics of the example motions.After extracting the key-postures of the source character,the animator prepares the corresponding key-postures of the target character together with the(geometric)character model to properly express the intended(time-varying)character shape.Provided with an input motion consisting of a stream of source character postures,every input posture is cloned frame by frame to the target character.This is achieved by blending the target key-postures with their weight values derived from the relationship between the input posture and the source key-postures.Finally,the animator makes some adjustments in space and time as well as minor posture editing.In motion cloning,the main issue is how to manifest animator’s intentions on the target animation with a minimum number of key-postures.More key-postures require accordingly greater effort to create target key-postures.On the other hand,more key-postures yield accordingly better quality in the resulting animation.Our technical contributions are two-fold:We provide a novel scheme for extractingmotionstargetan inputmotionFigure1:Overview of our example-based motion cloninga set of key-postures automatically,while trading off these conflicting requirements.Based on this scheme,we provide a framework of motion cloning.Related WorkSynthesis by imitation is a popular paradigm in computer graphics including shape modelling[12,13],image and texture synthesis[14, 15,16,17,18,19],facial animation[10,11,20],and motion generation[1,3,4,5,6,7,21,22].In concept,motion cloning originates from motion retargeting,which can be classified into motion generation.Technically,however,the origin of our method is facial expression cloning[11,23,24]based on scattered data interpolation[9,13],together with cartoon motion capture and retargeting[25].Motion Generation:Rose et al.[9]and Sloan et al.[13]proposed a framework of motion blending employing scattered data interpo-lation with radial basis functions.Park et al.[8]enhanced this framework for on-line locomotion generation.Bregler et al.[25]proposed an example-based approach to cartoon motion capture and retargeting.Assuming affine transformations between source and target shapes, their approachfirst captured both transformation parameters and blending weights of the source key-shapes at each frame of the input car-toon animation,and then synthesized an output by applying both the parameters and the weights to the corresponding target key-shapes.In a technical sense,the framework of this approach is similar to that of facial expression cloning[11,23,24]although there are well-known, generic key-expressions in facial expression cloning unlike cartoon motion capture and retargeting.Motion Retargeting:Gleicher[1]formulated motion retargeting as a constrained optimization problem.Lee and Shin[2]provided an interactive method to solve this problem by using a hierarchical displacement mapping scheme based on multi-level B-spline approximation. Shin et al.[3]proposed an importance-based approach to on-line puppetry.In addition to their conceptual contribution,motion retargeting techniques are also used in motion cloning to remove artifacts such as foot sliding and penetration in the post-processing stage.Facial Expression Cloning:Motivated by motion retargeting,Noh and Neumann[10]posed a facial expression cloning problem. Based on3D morphing between a pair of source and target face models,their method transfers the facial motion vectors from the source model to the target model to clone a facial expression.Similar example-based methods were proposed to retarget facial expressions from 2D videos to2D drawing[23]or3D models[24].Pyun et al.proposed a similar method by recasting the work of Bregler et al.within the framework of scattered data interpolation[11].We further enhance this framework for motion cloning.OverviewAs illustrated in Figure1,our example-based method for motion cloning consists of two parts:motion analysis and motion synthesis.The motion analysis part is the preprocessing stage consisting of three tasks:parameterization,cluster analysis,and key-posture extraction. These tasks are used in combination to extract a set of source key-postures.Given an input motion together with the parameterized source key-postures and their corresponding target key-postures,the motion synthesis part is to perform actual cloning.This part includes three tasks:initialization,posture blending,and motion retargeting and time adjustment.Thefirst two tasks are for key-posture initialization and scattered data interpolation,respectively,and the last is for postprocessing.The remainder of this paper is organized as follows:In Motion Analysis,we present a method to parameterize the postures of a source character for key-posture extraction.We describe actual motion cloning in Motion Synthesis and show experimental results in Experimental Results.Finally,Discussion and Conclusions provide discussion and conclusions,respectively.Motion AnalysisIn this section,we describe thefirst part of our method that extracts the key-postures from the example motions. ParameterizationWefirst describe how to linearize the postures of a source character for further analysis,and then explain how to obtain their parameter vectors.Motion data of an articulatedfigure can be considered as a vector-valued function in time that provides the posture of thefigure.The function is sampled at regular time instances to form their corresponding frames.The sampled vector at each frame determines the posture of thefigure at that time.Let a motion M be given as follows:M=(M(1),M(2),···,M(n))T,(1) where M(i),1≤i≤n is the posture of the source character at frame i.For an articulatedfigure with m joints including the root,we represent the posture M(i)at frame i byM(i)=(p(i),q1(i),···,q m(i))T,(2) where p(i)∈R3and q1(i)∈S3denote the position of the root and its orientation,respectively,and q j(i)∈S3the orientation of joint j for2≤j≤m.The localized version¯M of the motion M is given by¯M=(¯M(1),¯M(2),···,¯M(n))T,(3) where¯M(i),1≤i≤n is a posture specified in the root coordinate frame.¯M(i)is obtained by nullifying p(i)and q1(i),that is,¯M(i)=(0,1,q2(i),···,q m(i))T.(4) Since the unit quaternion space S3is highly non-linear,we linearize quaternions for later analysis such as principal components analysis (PCA)and k-means clustering:Wefirstfind a reference orientations q j∗for each joint j by minimizing the sum of angular distances between q j(i)and q j∗for all i as proposed in Park et al.[8].As preprocessing,we make all joint orientations q j(i)lie in the same hemisphere of S3for each frame,that is,if||log(q−1j∗q j(i)||>π/2for any j,we replace q j(i)by−q j(i).Given the reference orientation q j∗,we linearize¯M(i)to obtainˆM(i)=(0,0,vT,(5)2(i),···,v m(i))where v j(i)=log(q−1j∗q j(i)),2≤j≤m is the rotation vector of q j(i)with respect to q j∗.By assemblingˆM(i),1≤i≤n,we have the linearized versionˆM:ˆM=(ˆM(1),ˆM(2),···,ˆM(n))T.(6) The local posture vectorˆM contains redundant information since individual joints are correlated with each other.We employ PCA to reduce the dimensionality of the posture vector space to remove the redundancy while sacrificing some accuracy[26].This improves both efficiency and robustness in the remaining part of motion cloning.In particular,we express a posture as a linear combination of the key-postures.However,if the dimensionality of parameters is too higher than the number of key-postures,the scattered data interpolation problem is severely over-constrained,which results in a large approximation error called the“curse of dimensionality”.We avoid this problem by adopting PCA.Given the linearized motionˆM,we compute the set of eigenvectors,e i,1≤i≤m of the covariance matrix of posture elements.We choose the most significant r eigenvectors for r<m to form a space spanned by them.The parameter vectorˇM(i),1≤i≤n of a posture M(i)is obtained by projectingˆM(i)onto this space,that is,ˇM(i)=FˆM(i),1≤i≤n,(7) where F is a matrix formed by the chosen eigenvectors.The parameterized versionˇM is represented byˇM=(ˇM(1),ˇM(2),···,ˇM(n))T.(8)Cluster AnalysisIn this section,we present a scheme for clustering the postures of a source character in the example motions.Fraley and Raftery provide a comprehensive survey on cluster analysis [27].In particular,Berkhin [28]gives an excellent exposition on k -means clustering.The most distinguishing feature of our scheme is automatic computation of the number of clusters provided with the conditions to be satisfied by the resulting clusters.We start with describing these conditions.The objective of posture clustering is to choose proper key-postures such that each key-posture represents a unique cluster.Therefore,the postures in the same cluster should be similar,and a pair of distinct clusters should have different kinds of postures.To guarantee these requirements,we provide two threshold values,γand δ,which restrict the radius of a cluster and the inter-center distance between clusters,respectively.Letting C i ,1≤i ≤k denote a cluster,we define its (geometric)center c i as follows:c i =S j ∈C iS j /n i ,1≤i ≤k,(9)where S j is ˇMs (k )for some k ,and n i is the number of postures in C i .Then,the radius R (C i )of a cluster C i is given as follows:R (C i )=max S j ∈C i {||S j −c i ||},1≤i ≤k,(10)where ||·||gives a Euclidean norm.Similarly,the inter-center distance D (C i ,C j )between a pair of clusters,C i and C j isD (C i ,C j )=||c i −c j ||.(11)Using R (C i )and D (C i ,C j ),we provide the clustering conditions as follows:γ>max i {R (C i )}and δ<min i,j {D (C i ,C j )}.(12)These conditions force each cluster to have sufficiently similar postures (γcondition)and the resulting clusters to be sufficiently different from each other (δcondition).Now,we are ready to describe our clustering scheme:function γδ-Cluster(M ){1¯M ←LocalizeMotions(M );2ˆM ←LinearizeMotions(¯M );3ˇM ←ParameterizeMotions(ˆM );4C ←SeedClusters(ˇM);5γF lag ←TRUE;δF lag ←TRUE;6while (γF lag ∨δF lag ){7K =|C |;8C ←k -MeanCluster(K,C,ˇM);9C ←C ;10γCandidates ←{C i :R (C i )>γ};11δCandidates ←{(C i ,C j ):D (C i ,C j )<δ};12if γCandidates =Øthen {13C ←AddCluster(C,γCandidates );14C ←C ;15γF lag ←TRUE;}16else γF lag ←FALSE;17if δCandidates =Øthen {18C ←DeleteCluster(C,δCandidates );19C ←C ;20δF lag ←TRUE;}21else δF lag ←FALSE;}22return(C );}Initially,an example motion M is preprocessed to be parameterized (steps 1-3).Then,the pair of postures with the maximum Euclideandistances are chosen to classify the postures in ˇMaccording to their distances to each of the chosen postures (step 4).Here,the set C contains the estimation for clusters,that is,the centers of clusters and their members,and thus they are properly initialized.The clusters are then populated iteratively in the while loop (steps 6-21).At step 7,the cardinality of the set C is counted to employ the well-known k -means clustering scheme [28](steps 8-9).With the set C ,the while loop is repeated until the clustering conditions are satisfied.To do this,γCandidates and δCandidates are computed (stepsFigure2:Splitting and merging:splitting the cluster with the largest radius r>γ(left);merging the two distinct clusters with the smallest distance d<δ(right)10-11).These sets provide the information on the clusters that violate our clustering conditions.The former set contains the clusters of which the radii are greater than the given thresholdγ,and the latter consists of pairs of clusters of which the distances are less thanδ.If γCandidates is not empty,then the cluster with the largest radius is chosen from the set and is split(steps13-16),as shown in Figure2(a). IfδCandidates is not empty,the pair of clusters with the smallest distance is chosen from the set and are merged into one(steps17-21), as illustrated in Figure2(b).Specifically,our scheme works well withδ=2γ=0.09-0.1.Key-Posture ExtractionThe source key-postures are instrumental in motion cloning.Therefore,they should satisfy the following requirements:1.The source key postures faithfully reflect the postures in the example animation.2.The number of source key-postures is minimized as long as the animator’s intention on the cloned animation can be expressed.To achieve thefirst requirement,the source key postures should be the representatives of various sample postures.Thus,the postures should be as diverse as possible.Moreover,every posture in the sample animation needs to be expressed as a linear combination of the key-postures since our motion cloning method is based on scattered data interpolation.The second requirement is intended to minimize the animator’s effort in creating the target key-postures corresponding to the source key-postures.Diversity of key-postures for thefirst requirement may aid in expression of the animator’s intended design.However,fidelity of reconstruction quality conflicts with minimality of key-postures for the second condition.Theoretically,every posture can be reconstructed exactly if the degrees of freedom of the source character are the same as the number of linearly-independent key-postures.However,a large number of key-postures imposes a burden on the animator in preparing the corre-sponding target key-postures.Our strategy is to minimize the number of key-postures while forcing every sample posture to be interpolated within a user-specified error toleranceε.For each reconstructed postureˆM∗,its error eˆM is defined as follows:eˆM=||ˆM−ˆM∗||||ˆM||,(13)whereˆM is the linearized posture of a sample posture M.Now,we present our scheme for key-posture extraction in a pseudo-code and explain its major steps: function ExtractKeyPostures(M){1¯M←LocalizeMotions(M);2ˆM←LinearizeMotions(¯M);3ˇM←ParameterizeMotions(ˆM);4C←γδ-Cluster(M);5ContinueF lag←TRUE;6while(ContinueF lag){7KeyP ostures←ExtractKeys(C);8MaxError←0;9GetNextF lag←TRUE;10while(GetNextF lag){11ˆM←GetNextPosture(ˆM);12ˇM←GetNextPosture(ˇM);13ifˆM=øthen GetNextF lag←FALSE;14else{Figure3:MaxError and MaxS(left)after augmenting C with MaxS(right)15W eights←ComputeWeights(KeyP ostures,ˇM);16ˆM∗←BlendPostures(W eights,KeyP ostures);17if MaxError>||ˆM−ˆM∗||/||ˆM||then{18MaxError←||ˆM−ˆM∗||/||ˆM||;19MaxS←ˇM;}}}20if MaxError≤εthen ContinueF lag←FALSE;21else{22C←C∪{MaxS};23K←|C|;24C ←k-MeanCluster(K,C,ˇM);25C←C ;}}26C ←ExtractKeys(C);27ˆC←DeParameterizeMotions(C );28KeyP ostures←DeLinearizeMotions(ˆC);29return(KeyP ostures);}Steps1-3are to process an example motion M to obtain¯M,ˆM,andˇM(See Equations(3),(6),and(8)).Provided with a sequence of sample postures,an initial collection C of clusters is obtained(step4).This collection is then augmented by adding a new cluster at each iteration in the main loop(steps5-25),until every sample posture can be expressed as a linear combination of the chosen key-postures with a given thresholdε.Steps7-9are to prepare for the inner loop(steps10-19).Specifically,step7chooses a key-posture per cluster,which is closest to the center of each cluster,to give the initial key-postures.The task of the inner loop is tofind the maximum error MaxError between a linearized postureˆM and its reconstructed oneˆM∗over all sample postures,together with the sample posture MaxS that yields this error. Steps15and16are for scattered data interpolation,which is explained in Scattered Data Interpolation.After computing MaxError and MaxS,steps20-25are performed:MaxError is compared with a given error thresholdε.If MaxError is less thanε,then the process isfinished since all sample postures can be constructed using the chosen key-postures withinε. Otherwise,the cluster collection is augmented with MaxS and the next iteration is performed with the new collection C.In steps26-28, the source key-postures are sent back to the root coordinate frame so that the animator can refer to it to create the corresponding target key-postures.We empirically setε=2∼5%,which works well for our experiments in Experimental Results.As shown in Figure3,the error for the posture MaxS is reduced to zero after augmenting C with it,which also decreases the errors of other postures near MaxS in the parameter space.Motion SynthesisPreliminariesIn this section,we describe the second part of our method,that is,how to perform the actual cloning.Wefirst provide definitions and symbols to be used,and then present the overall structure of the actual cloning in a pseudocode.Definitions and Symbols:Let M s and M t be input and output motions as follows:M s=(M s(1),M s(2),···,M s(n))T,andM t=(M t(1),M t(2),···,M t(n))T.(14)¯M s,ˆM s,andˇM s denote the same input motion M s represented in different manners as given in Equations(3),(6),and(8),respectively. Similarly,¯M t,ˆM t,andˇM t represent different versions of the same output motion,respectively.Let¯P s and¯P t denote the set of source key-postures and that of their corresponding target key-postures specified in their root coordinate frames,respectively,that is,¯P s=(¯P s1,¯P s 2,···,¯P sk)T,and¯P t=(¯P t1,¯P t2,···,¯P tk)T,(15)where¯P s j in¯P s corresponds to¯P t j in¯P t for all1≤j≤k.¯P s is extracted from the sample postures by function ExtractKeyP ostures given in Key-Posture Extraction,and¯P t is supplied by the animator.For the source key-postures¯P s,its different versionsˆP s andˇP s are built as explained in Equation(6).ˆP t is obtained from the target key-postures using Equation(8).Overall Structure:Now,we are ready to present the overall structure of actual cloning:function SynthesizeMotion(M s,¯P s,¯P t){1(ˆP s,ˆP t)←LinearizeMotions(¯P s,¯P t);2ˇP s←ParameterizeMotions(ˆP s);3M t←ø;4GetNextF lag←TRUE;5while(GetNextF lag){6M s←GetNextPosture(M s);7if M=øthen GetNextF lag←FALSE;8else{9¯M s←LocalizePosture(M s);10ˆM s←LinearizePosture(¯M s);11ˇM s←ParameterizePosture(ˆM s);12W eights←ComputeWeights(ˇP s,ˇM s);13ˆM t←BlendPosture(W eights,ˆP t);14¯M t←DeLinearizePosture(ˆM t);15M t←DeLocalizePosture(¯M t);16M t←M t∪{M t};}}17M←Retarget(M t);18M t←Adjust(M);19return(M t);}Our motion synthesis part consists of three major tasks:key-posture processing(steps1-2),scattered data interpolation(steps3-16),and postprocessing(steps17-18).Thefirst task is to initialize the source and target key-postures for weight computation and posture blending. The second task is to perform the actual motion cloning,and the last task is for motion retargeting and interactivefine tuning performed by the animator.We explain these tasks in the next three sections.InitializationWhen the target key-postures are created,the relationship of the target character with the environment is not available.Thus,they have to be specified in the root coordinate frame of the target character.Since every source key-posture is used as a reference in creating its corresponding target key-posture,the source key-posture should also be specified in the root coordinate frame of the source character. Therefore,we assume that both kinds of key-postures are in their corresponding characters’local coordinate frames,respectively(See Equation(4)).However,since the joint angles are specified in unit quaternions in the local coordinate frames,they should be linearized for scattered data interpolation.In addition,the source key-postures go through PCA for their parameterization(See Equation(7)),which is needed for weight computation.Scattered Data InterpolationGiven an input animation M s,the while loop(steps3-16)clones a sequence of postures in M s to the target character frame by frame to create an output animation M t.The core of motion cloning is scattered data interpolation based on cardinal basis functions[9,13].The loop body can be divided into three groups of steps,that is,input posture parameterization(steps9-11),weight computation and posture blending(steps12-13),and output animation construction(steps14-16).Every posture M s in M sfirst goes through three stages in sequence as described by Equations(4),(5),and(7)to locate the positionˇM s in the parameter space,where the linearized postureˆM s is defined.Then,based on cardinal basis functions,the weight w i(ˆP s j),1≤j≤k of each input key-postureˆP s i inˆP s is computed atˇM s in the parameter space,that is,w i(ˇM s)=rj=1l ij L j(ˇM s)+kj=1r ij R j(ˇM s),1≤i≤k,(16)where L j(·)and l ij are linear basis functions and their coefficients,R j(·)and r ij are radial basis functions and their coefficients,and r and k are the dimensionality of the parameter space and the number of key-postures,respectively.We use cubic B-spline functions as radial basis functions,for which the dilation factor is set to the maximum of cluster radii for all clusters.For details on basis functions and their coefficients,we refer readers to the work in[9,13].Each w i(ˇM s j),1≤j≤k is applied to its corresponding linearized target key-postureˆP t i to give the output postureˆM t corresponding to the input key-postureˆM s,that is,ˆM t=ki=1w iˆP t i.(17)Finally,ˆM t is converted back to the original posture space by negating the sequence of transformations to(experienced in steps9-10)in the reverse order(See Equations(4)and(5)).In particular,letˆM t=(0,0,v t2,···,v tm)T,(18)where v t j is the rotation vector of joint j inˆM s computed in steps12-13.Then,¯M t=(0,1,q t2,···,q tm)T,(19)where q t j=q j∗exp(v t j),and q j∗is the reference orientation for joint j(see Parameterization).Finally,M t=(0,q s1,q t2,···,q t m)T.(20) Here,intact q s1is transferred from M s to M t.Motion Retargeting and AdjustmentNow,we construct the proper position of the root to complete the synthesis process.Since the target key-postures,which are created by the animator,do not contain information about the global frame,we try to construct a plausible root trajectory while satisfying the user-specified constraints.The input postures of the source character are promising guesses for the output postures of the target character.If the source and target characters are structurally similar,we can transfer the root trajectory into the target character as described in[1]after applying some global scaling to the trajectory.However,the target character generally looks quite different from the source character,not only in segment proportions but also in structures.In such a case,to prevent artifacts such as foot sliding or penetration,the animator should specify the target root trajectory in advance so that an on-line motion retargeting technique can be employed[3,8].We also provide a user interface that facilitates dynamic time-warping to control motion styles,exploiting a set of keytimes in the motion, that is,the moments of interaction between the character and its surrounding environment such as instances of heel-strikes and toe-offs in human locomotion.These instances can be detected automatically by employing the technique described in[29].The animator can change motion styles by interactively specifying the temporal correspondence between the keytimes of the input motion and those of the cloned motion.After establishing the correspondence,the cloned motion is resampled and interactively edited forfine tuning to complete motion cloning.Figure4:Three different character models in structures and segment proportionsTarget Key-Posture ValidityWe describe how to check the validity of target key-postures specified by the animator.Suppose that the key-postures are linearized.By the way in which we choose the source key-postures,every linearized postureˆM s in the input animationˆM s can be expressed as a linear combination of the source key-postures within a given error tolerance.Thus,ˆM s≈kj=1w jˆP s j for w j∈R.(21)The corresponding output postureˆM t can be expressed as a function of the input postureˆM s,that is,ˆM t=f(ˆM s)=f(kj=1w jˆP s j),(22)assuming thatˆM s= kj=1w jˆP s j.The function f interpolates the target key-postures at their corresponding source postures,that is,ˆP tj=f(ˆP s j)for all1≤j≤k.(23)Since the target postureˆM t can also be obtained by blending the target key-postures with the same weights,ˆM t j =kj=1w jˆP t j=kj=1w j f(ˆP s j).(24)From Equations(22)and(23),f(kj=1w jˆP s j)=kj=1w j f(ˆP s j),(25)which states that f is a linear function.In other words,the animator should specify the linearized target key-postures such that they are linearly related to their corresponding source key-postures.In order to check the linearity between the two key-posture sets,ˆP s andˆP t, we employ a statistical technique called CCA[22,30],which is a multi-dimensional generalization of correlation analysis.Experimental ResultsWe used a human model of51DOFs for body configuration(6DOFs for the root position and orientations,6DOFs for the spline,3DOFs for the neck,and9DOFs for each limb)as a source character.Three kinds of target characters were prepared for our experiments,as shown in Figure4.The model on the left has the same number of DOFs as that of the source character but has different segment proportions.The middle model has78DOFs and looks quite different not only in segment proportions but also in structures.The model on the right is a third target character with36DOFs.The motions were sampled at a rate of60frames per second.The experiments were performed on a standard PC environment(Intel P42.2GHz processor and1GB memory)with MS Windows XP.Two sets of example motions were captured:Thefirst set of example motions was composed of locomotive motions including walking, jogging,and running.To obtain smooth transitions between these motions,we captured a continuous sequence of those motions as a single motion clip consisting of5112frames.The second set was composed of a sequence of dynamic motions of the same character consisting of4700frames,including soccer motions such as kicking,dribbling,feinting,and heading.For key-posture extraction,our example motions werefirst parameterized as described in Parameterization by employing PCA.To keep 95%of the variance in motion data,we selected12and16eigenvectors of the covariance matrices of posture elements in the two example motion sets,respectively.To apply our key-posture extraction scheme to thefirst set of example motions,we empirically set our thresholds for the radius and the inter-center distance to0.05and0.10,respectively.For the second set of motions,they were set to0.045and0.09. When the scattered data interpolation was performed with an error tolerance of2%,15and24key-postures were obtained for the example。