WO2014013630A1 - 動画処理装置、動画処理方法、ならびに、情報記録媒体 - Google Patents

動画処理装置、動画処理方法、ならびに、情報記録媒体 Download PDF

Info

Publication number
WO2014013630A1
WO2014013630A1 PCT/JP2012/075417 JP2012075417W WO2014013630A1 WO 2014013630 A1 WO2014013630 A1 WO 2014013630A1 JP 2012075417 W JP2012075417 W JP 2012075417W WO 2014013630 A1 WO2014013630 A1 WO 2014013630A1
Authority
WO
WIPO (PCT)
Prior art keywords
moving image
video
drawn
depth information
image processing
Prior art date
Application number
PCT/JP2012/075417
Other languages
English (en)
French (fr)
Inventor
理紀夫 尾内
誠 岡部
竜矢 栗原
正裕 三條
廣美 平野
Original Assignee
楽天株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 楽天株式会社 filed Critical 楽天株式会社
Priority to ES12881371.4T priority Critical patent/ES2675514T3/es
Priority to JP2013509348A priority patent/JP5270052B1/ja
Priority to EP12881371.4A priority patent/EP2775454B1/en
Priority to US14/361,477 priority patent/US9723225B2/en
Publication of WO2014013630A1 publication Critical patent/WO2014013630A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/265Mixing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/156Mixing image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/272Means for inserting a foreground image in a background image, i.e. inlay, outlay
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection

Definitions

  • the present invention relates to a moving image processing apparatus, a moving image processing method, and an information recording medium, and prevents objects from interfering when attempting to combine objects with depth information drawn in a plurality of moving images into one moving image. To do.
  • the depth of the background and the depth of the object By combining these technologies, it is possible to generate a 2.5-dimensional video that distinguishes the depth of the background and the depth of the object after separating the background and the object moving in front of it.
  • the surface of the object that can be seen from the camera (the front surface of the object) is drawn on the frame that constitutes the 2.5D moving image, and the pixel included in the drawing area where the object is drawn includes the object associated with the pixel.
  • the depth to the surface portion front surface depth
  • Such a 2.5D moving image is obtained by photographing the real world with a CCD camera and simultaneously using detection by a depth sensor, or photographing the real world with a stereo camera for stereoscopic vision to obtain a parallax for each corresponding pixel, It is obtained by calculating the depth from the parallax.
  • the state of the surface of the object not drawn in the frame (the back of the object) is not photographed, and the depth information up to the back is not known.
  • collision judgment is performed to prevent situations where objects moving in the virtual space do not interfere with each other or one of them penetrates the other.
  • Technology is widely used.
  • collision refers to the case where the areas occupied by each other overlap as well as the contact between the surfaces of the objects, or the distance between each other is actually closer than a certain threshold even though they are separated from each other. It includes cases and has a broader meaning than everyday meaning.
  • any object is selected depending on the depth. It is decided whether to draw with priority. However, in the first place, if the objects interfere with each other or one of them penetrates the other, the final moving image will be unnatural.
  • the present invention solves the above-described problems, and is suitable for preventing objects from interfering with each other when an object with depth information drawn in a plurality of moving images is combined into one moving image.
  • An object is to provide a moving image processing apparatus, a moving image processing method, and an information recording medium.
  • the moving image processing apparatus is a moving image processing apparatus that synthesizes a first moving image and a second moving image, wherein a first object is drawn on the first moving image, and a front depth of the first object With the information, the second object is drawn in the second moving image, accompanied by the front depth information of the second object, An acquisition unit for acquiring back depth information of the first object and back depth information of the second object; An occupied space that can be occupied by the first object drawn in the first moving image is obtained with reference to the front depth information and the rear depth information of the first object, and the occupied space and a frame with the second moving image are obtained.
  • An interference determination unit that determines whether or not the drawn second object satisfies an interference condition with reference to front depth information and back depth information of the second object;
  • a range setting unit that sets a possible range in which the second object can be positioned without interfering with the occupied space is determined from the determination result by the interference determination unit.
  • the acquisition unit acquires a first depth length previously associated with the attribute of the first object from the database, and acquires a second depth length previously associated with the attribute of the second object from the database. Then, back depth information of the first object is acquired from the front depth information of the first object and the first depth length, and the second object is acquired from the front depth information of the second object and the second depth length. Can be configured to obtain back depth information.
  • the range setting unit is configured to acquire an installation condition of the second object previously associated with an attribute of the second object from a database and set the possible range so as to satisfy the installation condition. be able to.
  • the range setting unit may be configured to set the possible range so that the occupied space and the second object do not satisfy the interference condition for all frames of the second moving image. .
  • Non-deformation transformation representing movement in a three-dimensional space is applied to one of the first video and the second video
  • the possible range may be configured to be expressed by a range of values that can be taken by a conversion parameter indicating the amount of movement related to the non-deformation conversion.
  • the non-deformation transformation is a parallel movement with the amount of shift in the horizontal and vertical directions as the transformation parameter
  • the one video is the second video
  • the horizontal and vertical shift ranges set by the range setting unit and the frame with the first moving image are displayed on the screen. It can be configured as follows.
  • the non-deformation conversion is a parallel movement using the shift amount in the horizontal direction, the vertical direction, and the depth direction as the conversion parameter
  • the one video is the second video
  • the possible range of the horizontal and vertical shift amounts set for the current shift amount in the depth direction by the range setting unit, and A frame with the first moving image can be displayed on the screen.
  • a correction unit that corrects the one moving image by selecting any conversion parameter from the possible range and performing the non-deformation conversion It can comprise so that the moving image production
  • An initial value setting unit for setting an initial value of the conversion parameter If the set initial value is not included in the possible range, the correction unit can be configured to select a conversion parameter closest to the designated initial value from the possible range.
  • the moving image processing method of the present invention combines the first moving image and the second moving image, the first object is drawn on the first moving image, accompanied by the front depth information of the first object, In the second video, a second object is drawn, accompanied by front depth information of the second object, An acquisition step of acquiring back depth information of the first object and back depth information of the second object; An occupied space that can be occupied by the first object drawn in the first moving image is obtained with reference to the front depth information and the rear depth information of the first object, and the occupied space and a frame with the second moving image are obtained.
  • a range setting step of setting a possible range in which the second object can be positioned without interfering with the occupied space is determined from the determination result in the interference determination step.
  • a computer-readable information recording medium records a program for synthesizing a first moving image and a second moving image, and the first object is drawn on the first moving image, and the first object With the front depth information of the second object, the second object is drawn on the second moving image, and the front depth information of the second object is attached.
  • An interference determination unit that determines whether or not the drawn second object satisfies an interference condition with reference to front depth information and back depth information of the second object; From the determination result by the interference determination unit, the second object is configured to function as a range setting unit that sets a possible range in which the second object can be positioned without interfering with the occupied space.
  • the above program can be recorded on a computer-readable non-transitory information recording medium such as a compact disk, flexible disk, hard disk, magneto-optical disk, digital video disk, magnetic tape, and semiconductor memory.
  • This information recording medium can be distributed and sold independently of the computer.
  • the above program can be distributed and sold via a transmission medium such as a computer communication network, independently of the computer on which the program is executed.
  • a moving image processing apparatus a moving image processing method suitable for preventing objects from interfering with each other when objects with depth information drawn in a plurality of moving images are combined into one moving image
  • an information recording medium can be provided.
  • the moving image processing apparatus is realized by a computer executing a program.
  • the program is read from a non-transitory storage device such as a ROM (Read Only Memory) or a hard disk to a temporary storage device such as a RAM (Random Access Memory).
  • a CPU Central Processing Unit
  • the CPU controls exchanges with input / output devices such as a keyboard, mouse, touch panel, display, and network interface under the control of the program.
  • the moving image processing apparatus is not limited to that realized by a computer that executes a program.
  • a dedicated electronic circuit for image processing FPGA (Field Programmable Gate array), DSP (Digital A similar function can be realized by using a signal processor.
  • collision In the field of 3D graphics, interference between objects is sometimes called collision.
  • collision means that objects collide violently, the surfaces touch each other, and in some cases the shape of the object deforms, but in the case of object interference or object collision. Includes a case where the surface touches, a region in the three-dimensional space occupied by the object bites or penetrates, a case where the object is separated, but the distance is sufficiently close, and the like.
  • collision is used as appropriate in place of the term “interference” in order to facilitate understanding.
  • FIG. 1 is an explanatory diagram showing the relationship between an object drawn in a 2.5-dimensional moving image and its specifications.
  • a frame that is played back at an elapsed time t (typically expressed by a frame number) from the playback start time is denoted as X (t).
  • FIG. 1 shows a situation where an object is arranged in a virtual space using a three-dimensional graphics technique as seen from the side of a moving image frame. However, it can be considered that the same situation is established.
  • this figure is a side view of the shooting. Therefore, in this figure, the projection plane 12 is represented by a straight line.
  • the shooting point 11 corresponds to the position of the camera or the observation position, and the distance between the shooting point 11 and the projection surface 12 is determined by the focal length of the lens and the unit of the pixel length. Further, the shooting direction 16 is a direction of a perpendicular drawn from the shooting point 11 to the projection plane 12.
  • the color and front depth of the pixel X (t) [x, y] are expressed as X (t) [x, y] .color and X (t) [x, y] .fore, respectively.
  • X (t) [x, y] .color is determined based on the color at the collision point 15, the lighting conditions, the distance between the shooting point 11 and the collision point 15, and the like.
  • X (t) [x, y] .color represents coordinate values in various color spaces such as RGB, CYMK, and HSV, and conversion of coordinate values between color spaces is formulated. Also, an ⁇ value indicating transparency may be added to X (t) [x, y] .color.
  • X (t) [x, y] .fore is the depth distance between the shooting point 11 and the portion of the object 14 that is drawn in the pixel X (t) [x, y] that hits the collision point 15.
  • the depth distance the length 17 of the component in the shooting direction 16 of the vector from the shooting point 11 to the collision point 15 (corresponding to a so-called “Z distance”) is generally used, but an approximate value thereof is used.
  • the distance from the shooting point 11 to the collision point 15 may be adopted.
  • the depth distance can be expressed in various unit systems.
  • the depth of a plurality of moving images can be normalized by using the length of the side of the pixel as a unit. The following description is based on the assumption that the depth is normalized.
  • the moving image X may have a background drawn in addition to the moving object.
  • the background can be thought of as an object that hardly moves.
  • identification number is assigned to the identified object for easy understanding.
  • the identification number of the object representing the background is assigned as 0, and the identification numbers of the other objects are assigned as 1, 2, 3,.
  • the identification number of the object whose part is drawn in the pixel X (t) [x, y] is expressed as X (t) [x, y] .id
  • the identification number of the object appearing in the video X The maximum value is expressed as X.maxid.
  • a negative value is given as an identification number to a pixel that is no longer an object of processing in order to facilitate understanding. That is, if X (t) [x, y] .id ⁇ 0, the pixel X (t) [x, y] is interpreted as a transparent pixel.
  • transparent corresponds to a blue background in chroma key composition.
  • the video obtained by translating the video X by p in the horizontal direction and q in the vertical direction in the frame is expressed as move (p, q, X).
  • a video obtained by moving the video X by r in the depth direction is expressed as push (r, X).
  • the video obtained by each rotation is expressed as rothor ( ⁇ , X), rotver ( ⁇ , X), rotdep ( ⁇ , X).
  • the coordinate value of the pixel may not be an integer value, or the coordinate value may be missing.
  • anti-aliasing is performed by interpolating the values such as .color and .fore assigned to each pixel, and the value at the grid point closest to the coordinates is adopted for .id, etc. This method can be used, and where the boundary where .id changes is located by interpolation, .id can be determined based on that boundary.
  • pixels that are outside the range of the moving image frame due to parallel movement or the like may be considered as transparent pixels, .id may be set to a negative value as described above.
  • shift (d, X) a video in which the time of video X is shifted by d is denoted as shift (d, X).
  • select (i, X) a movie that draws only the object with the identification number i drawn on the movie X.
  • Z.maxid is shifted by shifting the .id of subsequent objects. Can also be minimized.
  • a video obtained by overlaying an object other than the background of video Y on video X is denoted as superimpose (Y, X).
  • the brightness and saturation of .color may be modified according to the degree.
  • normalization of moving images can be performed based on settings at the time of shooting or the like, but can also be set according to the user's wishes or automatically.
  • the size of the object drawn in the image is set to a desired one by simply expanding or reducing the height or width of the moving image or adjusting the resolution based on the user's instruction or the like. .
  • the depth distance of the corresponding pixel is multiplied by a coefficient corresponding to the enlargement ratio, but the depth distance of the corresponding pixel is used as it is in normalization.
  • the user selects a coefficient, and the depth distance of each pixel is collectively multiplied by the coefficient.
  • the moving image W is a normalized moving image Y so that the object j matches the object i.
  • normalization may be performed by setting c and k as desired by the user.
  • the following situations can be considered when the collision between the object i and the object j can be determined relatively easily.
  • the objects i and j are objects that have nothing on the back side and are planar objects that do not have a thickness and are formed only from the front side.
  • This criterion can be extended in the time direction.
  • the elapsed time t is expressed by a frame number, that is, a case where a frame at time t + 1 follows a frame at time t.
  • the objects i and j have a shape only on the front surface.
  • the thickness of the object is zero, and it can be considered that the front surface of the object matches the back surface of the object. Therefore, simple and high-speed determination is possible by performing collision determination by these methods.
  • FIG. 2A is a cross-sectional view of the object 14 shown in FIG. 1, and FIG. 2B is a cross-sectional view showing the front surface of the object 14.
  • FIG. 2B is a cross-sectional view showing the front surface of the object 14.
  • the object 14 has a thickness and its cross section has a spread.
  • the shape becomes a planar object consisting only of the front surface of the object 14 as shown in FIG. 2B.
  • the planar object is expressed by the curve.
  • the depth to the front surface of the object 14 is obtained from information attached to the 2.5-dimensional moving image, in order to know the thickness of the object 14, the depth to the back surface of the object 14 may be obtained.
  • the first method is that the user sets the distance between the front surface and the back surface for each object in advance.
  • FIG. 2C is a cross-sectional view of an object in which the shape of the back surface is estimated by making the thickness constant. As shown in the figure, the back surface of the object 14 has a shape obtained by translating the front surface of the object 14 in the shooting direction 16.
  • max and avg are the maximum and average values of the body part when the variables placed before the semicolon in the subscript part are changed within the range that satisfies the conditions placed after the semicolon. Means. When “always satisfied” is adopted as the condition, only the variable is described as a subscript part.
  • FIG. 2D is a cross-sectional view of the object in which the shape of the back surface of the object is estimated by obtaining a representative front depth of the object and adding the thickness to the back depth.
  • the back surface of the object 14 is a plane perpendicular to the shooting direction 16, and the object 14 is approximated by a columnar shape extending in the shooting direction 16.
  • the number of pixels area (X, t, i) in the area where the object i is drawn at time t in the moving image X is obtained as follows.
  • the suffix of ⁇ has the same meaning as max and avg.
  • the horizontal coordinate xc (X, t, i) and the vertical coordinate yc (X, t, i) of the representative point of the object i at time t are determined as follows.
  • xc (X, t, i) ⁇ x , y;
  • X (t) [x, y] .id i x / area (X, t, i);
  • yc (X, t, i) ⁇ x , y;
  • X (t) [x, y] .id i y / area (X, t, i)
  • the width w (X, t, i) and height h (X, t, i) of the area where the object i is drawn at time t in the moving image X are determined as follows.
  • w (X, t, i) max x, y;
  • X (t) [x, y] .id i x -min x, y;
  • X (t) [x, y] .id i x;
  • h (X, t, i) max x, y;
  • X (t) [x, y] .id i y -min x, y;
  • X (t) [x, y] .id i y
  • the spherical diameter D (X, t, i) can be determined in various ways, for example, as follows.
  • D (X, t, i) max [w (X, t, i), h (X, t, i)];
  • D (X, t, i) (w (X, t, i) 2 + h (X, t, i) 2 ) 1/2 ;
  • D (X, t, i) area (X, t, i) 1/2 ;
  • D (X, t, i) max x, y;
  • X (t) [x, y] .id i ((x-xc (X, t, i)) 2 + (y-yc (X, t , i)) 2 ) 1/2 ;
  • D (X, t, i) avg t area (X, t, i) 3/2 / area (X, t, i)
  • avg t area (X, t, i) means the time average of the area in the moving image X where the object i is drawn. Therefore, avg t area (X, t, i) 3/2 corresponds to the estimated value of the volume occupied by object i. By dividing this by area (X, t, i), an estimated depth length can be obtained. Become.
  • FIG. 2E is a cross-sectional view of the object in which the shape of the back surface of the object is estimated as a spherical surface.
  • the back surface of the object 14 is a spherical surface centered on the representative point 21, but the front surface to the spherical surface of the object 14 is approximated by a columnar shape extending in the shooting direction 16.
  • the attribute “person” is associated with a depth length of “XX cm”, the attribute “airplane” with a depth length of “XX m”, and the like. Then, the depth length of the object is acquired from the attribute estimated by image recognition from the appearance of the object drawn in the moving image or the attribute set by the user individually selecting the object.
  • the depth length of the object for the attribute is the size of the product described in the product details. It is also possible to obtain from information.
  • the occupying section is from the front depth X (t) [x, y] .fore to the rear depth X (t) [x, y] .back.
  • overlap (X, Y, t, x, y) 0 and overlap (X, Y, t, x, y)> 0 , Objects i and j will collide.
  • overlap (X, Y, t, x, y) min [X (t) [x, y] .back, Y (t) [x, y] .back] -Y (t) [x, y].
  • overlap (X, Y, t, x, y) Y (t) [x, y] .back-max [X (t) [x, y] .fore, Y (t) [x, y] .fore ]
  • overlap (X, Y, t, x, y) min [X (t) [x, y] .back, Y (t) [x, y] .back] -X (t) [x, y].
  • FIG. 3 is an explanatory diagram showing a schematic configuration of elements that perform collision determination in the moving image processing apparatus according to the present embodiment.
  • FIG. 3 is an explanatory diagram showing a schematic configuration of elements that perform collision determination in the moving image processing apparatus according to the present embodiment.
  • the elements that perform the collision determination in the moving image processing apparatus 101 include a rear depth acquisition unit 102 and a collision determination unit 103.
  • the moving image processing apparatus 101 sets the first moving image X and the second moving image Y as processing targets.
  • first video X a 2.5-dimensional image taken of a dancer dancing in the real world is adopted.
  • second video Y a video showing a character dancing with no background
  • Adopt a video that shows how you are doing.
  • the moving image processing apparatus 101 in the present embodiment finally synthesizes the third moving image in which the dancer is dancing with the character or another user.
  • the moving image processing apparatus 101 detects a collision between the first object i drawn on the first moving image X and the second object j drawn on the second moving image Y to be superimposed on the first moving image X. judge.
  • the moving image processing apparatus 101 is typically realized by executing a program on a computer.
  • the first video X is accompanied by the first front depth of the first object i on the side drawn in the first video X
  • the second video Y is the first video on the side drawn in the second video Y.
  • the 2nd front depth of 2 objects j is the 2nd front depth of 2 objects j.
  • the first video X may be composed only of a moving object or may include a background.
  • i> 0 is adopted as the first object
  • i ⁇ 0 is adopted as the first object.
  • the object that is subject to collision determination in the second video Y does not include the background.
  • j> 0 is used as the second object.
  • the back depth acquisition unit 102 first depth of the first object i on the side not drawn in the first video X and the second back side of the second object j on the side not drawn in the second video Y. Get the depth and.
  • the collision determination unit 103 functions as an interference determination unit that determines interference between objects. Then, the collision determination unit 103 overlaps the first moving image X and the second moving image Y, whereby the first drawing area in which the first object i is to be drawn and the second drawing in which the second object j is to be drawn. In the overlapping area where the drawing area overlaps and the first drawing area overlaps with the second drawing area, the first occupied section from the first front depth to the first back depth of the first object i, If the second occupied section from the second front depth to the second rear depth of the two objects j overlaps, it is determined that the first object and the second object collide.
  • the first object i occupies the first occupied section from X (t) [x, y] .fore to X (t) [x, y] .back as the depth.
  • the first object j occupies the second occupied section from Y (t) [x, y] .fore to Y (t) [x, y] .back.
  • the first occupied section and the second occupied section overlap, that is, the first occupied section includes the second front depth or the second rear depth, or the second occupied section includes the first front depth or the second
  • the first occupied section includes the second front depth or the second
  • the back depth information is used.
  • the collision determination between the first object i and the second object j in the frame at the time t is performed.
  • FIG. 4 is a flowchart showing the flow of the collision determination process according to the present embodiment. Below, with reference to this figure, the collision determination process performed with the moving image processing apparatus 101 which concerns on this embodiment is demonstrated.
  • the moving image processing apparatus 101 receives the first moving image X and the second moving image Y that are targets of collision determination (step S151). An object is drawn in the first moving image X and the second moving image Y, and the depth information of the object is attached.
  • step S152 the process of scanning the frames of the first moving image X and the second moving image Y in order from the top is repeated.
  • Step S153 it is determined whether or not there is an overlap between the region where the object is drawn in the first moving image X and the region where the object is drawn in the second moving image Y in the currently scanned frame. If there is no overlap (step S153; No), it will progress to step S157 and will repeat a process.
  • step S153 If there is an overlap (step S153; Yes), the depth information of the object in the first moving image X (corresponding to the “first object” above) that overlaps the drawing area and the object in the second moving image Y Depth information (corresponding to the “second object” described above) is acquired (step S154).
  • step S155 it is determined whether or not there is an overlap in the occupied section of the object obtained from the depth information. If there is no overlap, the process proceeds to step S157 and the process is repeated.
  • step S155 If there is an overlap (step S155; Yes), the determination result that the object drawn in the first moving image X and the object drawn in the second moving image Y collide is output (step S156). This process ends.
  • the overlapping of the drawing areas and the overlapping of the occupied sections based on the depth information are determined for all the frames. However, if the number of frames is large, thinning can be performed as appropriate.
  • any object drawn in the first moving image X and any object drawn in the second moving image Y collide at any time and in any position”.
  • the determination is not made, that is, when no collision occurs, even if the second moving image Y is superimposed on the first moving image X, there is no contradiction in the context of the objects. Accordingly, the third moving image superimpose (Y, X) in which the second moving image Y is superimposed on the first moving image X can be obtained.
  • the user interface is devised when the user moves the second moving image Y with respect to the first moving image X by a drag-and-drop operation using a mouse and then superimposes them.
  • a vertical and horizontal translation amount for designating the second moving image Y after shifting the second moving image Y with respect to the first moving image X is specified by a user's drag and drop operation.
  • the operation system of the present embodiment is not necessarily limited to drag and drop, and drag and drop by adopting various instruction input operations such as a slide operation on the touch screen and an operation of repeating the click operation twice. It is also possible to change to
  • FIG. 5A is an explanatory diagram showing the state of the screen before the dragging is started
  • FIG. 5B is an explanatory diagram showing the state of the screen when the dragging is started
  • FIG. 5C is a diagram in the middle of the dragging
  • FIG. 5D is an explanatory diagram showing the state of the screen at the time of drop.
  • FIG. 6 is an explanatory diagram showing a schematic configuration of a portion related to the drag-and-drop process of the moving image processing apparatus 101.
  • FIG. 7 is a flowchart illustrating the flow of control of the drag and drop process executed by the moving image processing apparatus 101 according to the present embodiment.
  • the shift amount setting unit 104 and the moving image generating unit 105 operate based on the user's drag and drop operation.
  • the moving image processing apparatus 101 When the moving image processing apparatus 101 shifts the second moving image Y from the first moving image X and then superimposes them, the moving image processing apparatus 101 determines whether or not the position condition is satisfied so that the positional relationship of the objects satisfies the predetermined position condition.
  • the interference determination part for performing is provided.
  • the collision determination unit 103 is used as the interference determination unit, and the determination result is used.
  • the back depth acquisition unit 102 prior to the collision determination unit 103 is not shown.
  • the determination result by the collision determination unit 103 described above can also be used for determination of a position condition with reference to a positional relationship other than object interference.
  • correction unit 106 illustrated in the drawing is an element that corrects the shift amount for shifting the second moving image Y from “no shift” so that interference between objects does not occur.
  • the correcting unit 106 displays a representative frame of the first moving image X and a representative frame of the second moving image Y on the screen (step S181). For example, as shown in FIG. 5A, a window 411 for the first moving image X, a window 412 for the second moving image Y, and a cursor 413 are displayed in the screen 401.
  • the simplest method is to adopt the first frame of each video as a representative frame.
  • the user may select a frame to be synchronized and set it as a representative frame.
  • the difference in the elapsed time of the frames to be synchronized corresponds to the shift amount for shifting the second moving image Y by time.
  • the first video X is a video with a background
  • the edge of the window 411 is drawn with a solid line.
  • the second moving image Y is a moving image without a background
  • the periphery of the window 412 is drawn with a transparent color
  • the edge is also drawn with a dotted line. Note that the edge of the window 412 is not necessarily displayed on the screen 401. In this case, it will appear to the user as if only the non-background object drawn in the second moving image Y is displayed on the screen 401.
  • the moving image processing apparatus 101 receives a click operation (start of dragging) in the window 412 of the second moving image Y by the user (step S182).
  • start of dragging the click operation
  • the user moves the cursor 413 using the mouse and clicks a position [s, t] in the second moving image Y.
  • the moving image processing apparatus moves the display position of the window 412 of the second moving image Y accordingly (step S184). For example, as shown in FIG. 5C, when the user moves the cursor 413 while maintaining the click, the window 412 keeps the cursor 413 pointing at the position [s, t] in the second moving image Y. The whole is moved.
  • the position [u, v] in the first moving image X and the position [s, t] in the second moving image Y overlap. Therefore, it is considered that the user intends to superimpose the second moving image Y on the first moving image X after performing conversion such that the second moving image Y is moved by u-s in the horizontal direction and v-t in the vertical direction.
  • the shift amount setting unit 104 of the moving image processing apparatus 101 sets the horizontal direction u-s and the vertical direction vt as the shift amounts (step S185). That is, the moving image processing apparatus 101 tries to superimpose a moving image move (us, vt, Y) obtained by moving the second moving image vertically and horizontally parallel to the frame on the first moving image X. It is interpreted.
  • the moving image processing apparatus 101 uses the collision determination unit 103 to change the object drawn in the first moving image X and the object drawn in the intermediate moving image move (us, vt, Y) in which the second moving image Y is shifted. Are determined to collide at any frame time and at any in-frame position or no collision occurs (step S186).
  • step S186 If no collision occurs as a result of the drop operation shown in FIG. 5C (step S186; No), the moving image generating unit 105 of the moving image processing apparatus 101 performs the third moving image superimpose (move (us, vt, Y), X ) Is output (step S187), and this process ends.
  • the user can obtain the third moving image positioned so that the object drawn in the moving image Y does not collide with the object in the moving image X.
  • the third moving image since the objects drawn in the moving image Y do not collide with each other, it is possible to prevent an unnatural drawing in which the objects are engaged with each other.
  • step S186 if a collision occurs (step S186; Yes), the moving image processing apparatus 101 issues a warning by voice, vibration, screen display, or the like (step S188). This process ends and no new video is output. That is, if the user's instruction is appropriate, the third moving image is generated, but if it is inappropriate, only a warning is generated and the third moving image is not generated.
  • the conversion process is performed in a demand-driven manner including the following embodiments, the conversion for the frame is not performed until it is necessary to determine the duplication of a certain frame. Therefore, in order to obtain a conclusion that no collision occurs at all, it is necessary to convert all the frames. However, when a collision is found in a frame in the middle of a moving image, conversion processing for subsequent frames is not executed.
  • the shift amount is determined by how much the position of the dropped window 412 for the second movie Y is shifted from the position of the window 411 for the first movie X. Is expressed by.
  • the shift amount is an amount applied to the second moving image Y, the comparison with the first moving image X is not essential when the shift amount is input. Therefore, a method may be employed in which the user directly inputs a numerical value using a keyboard or visually inputs a shift amount using a mouse or the like.
  • FIG. 8 is a flowchart showing the flow of control of the automatic adjustment processing according to the present embodiment.
  • a description will be given with reference to FIG.
  • the amount of movement up, down, left and right in a single trial is expressed in the horizontal direction ⁇ p and the vertical direction ⁇ q.
  • the second moving image Y is adjusted while being shifted in a preset direction.
  • the user clicks the position [s, t] in the second video Y and maintains the click in the position [u, v , Then click and drop it.
  • the moving image processing apparatus 101 of this embodiment performs the following processing.
  • the shift amount setting unit 104 of the moving image processing apparatus 101 sets u as the initial value of the variable p and v as the initial value of the variable q (step S191).
  • the shift amount setting unit 104 is set to the initial value setting unit.
  • the collision determination unit 103 of the moving image processing apparatus 101 determines whether the position condition “the first moving image X and the intermediate moving image move (ps, qt, Y) in which the second moving image Y is shifted by the set shift amount. In step S192, it is determined whether or not “no object collision occurs”.
  • step S192 If established (step S192; Yes), the moving image generating unit 105 outputs the third moving image superimpose (move (p-s, q-t, Y), X) by synthesis (step S193), and ends this process.
  • the correcting unit 106 increases the value of the variable p by ⁇ p and increases the value of the variable q by ⁇ q (step S194). As a result, the shift amount is updated minutely.
  • step S195 when the abandonment condition is satisfied, such as when the parallel movement amount (ps, qt) of the video Y becomes too large or the number of repetitions exceeds a predetermined threshold (step S195; Yes), the collision Is inevitable, a warning is issued (step S196), and the process ends.
  • step S195 the control of the moving image processing apparatus 101 returns to step S192.
  • the direction of increasing the vertical coordinate value corresponds to the downward direction of the screen.
  • This is equivalent to searching for a parallel movement amount that avoids a collision while moving from top to bottom, and if not found, this time corresponds to searching a parallel movement amount that avoids a collision while moving from bottom to top.
  • the collision determination unit 103 is simply employed as the interference determination unit. This is equivalent to imposing a positional condition that no object collision occurs with respect to the positional relationship between objects. However, if the determination result by the collision determination unit 103 is used, another condition can be adopted as the position condition in the interference determination unit.
  • the position condition is ““ No object collision occurs between the first movie X and the movie move (ps, qt, Y) ”and“ the first movie X and the movie move (ps, q + 1-t, Y ) ”, An object collision may occur.
  • the object drawn on the second moving image Y is superimposed on the first moving image X, the object drawn on the second moving image Y is aligned so as to be substantially in contact with the ground.
  • the position condition is ““ No object collision occurs between the first movie X and the movie move (ps, qt, Y) ”and“ the first movie X and the movie move (p + ⁇ p-s, q + It is also possible to change to “” that an object collision occurs with ⁇ q-t, Y).
  • the ground is drawn in the first video X
  • the object moving on the plane is drawn in the second video Y
  • the orientation of the camera with respect to the ground in the first video X is the plane of the camera in the second video Y.
  • the object depicted in the first video X is a stationary object such as the ground, ceiling, or wall.
  • the user is confirmed in advance by designating an object in a certain frame, when it is known from the past editing history by the user, when it is known by comparing each frame of the first video X, etc. It is.
  • setting the position condition as described above means setting a movable range in which the synthesized object can occupy in the three-dimensional space. That is, “the object may float in the air as long as it does not collide”, “the object is in contact with the floor or the ground”, “the object is in contact with the ceiling”, etc. It is possible to synthesize a video with the following conditions.
  • ( ⁇ p, ⁇ q) is a vector representing the displacement of the drawing position of the object drawn in the second moving image Y, and the moving direction and the moving amount are appropriately changed by setting this direction. It is possible.
  • the shift amount may be corrected so that the difference between the shift amount and the initial value set by the user is minimized while satisfying the position condition.
  • the shift amount closest to the user's designation is adopted.
  • the vector difference between the representative point of the first object and the representative point of the second object can be adopted as the direction of ( ⁇ p, ⁇ q).
  • a parallel movement is performed in which the second object moves in a direction toward the first object or in a direction away from the first object.
  • these methods may be further advanced to appropriately define an evaluation function and minimize it to adopt a method for avoiding object collision.
  • it is considered to minimize the “collision amount” when the object collides.
  • the collision amount between the moving image X and the moving image Y is considered as the sum of the areas of the collision areas in which the objects that collide in the moving image X and the moving image Y are drawn
  • collision (Y, X) ⁇ t, x, y; X (t) [x, y] .id ⁇ 0, Y (t) [x, y] .id> 0, overlap (X, Y, t, x, y)> 0 overlap (X, Y, t, x, y) Can be adopted.
  • the collision amount calculated in this way is used as an evaluation function.
  • the update direction ( ⁇ p, ⁇ q) of the undetermined variable is determined by random walk, steepest descent method, conjugate gradient method, or (1,0), By preparing (0,1), (-1,0), (0, -1), etc., finding the change in the collision amount when each is adopted, and selecting the one with the smallest amount of collision, What is necessary is just to repeat the update of the value of the variable showing the grade which moves the moving image Y, such as p and q.
  • the initial values of p, q, r are u, v, 0, and collision (push ( Find p, q, r that minimizes r, move (ps, qt, Y)), X).
  • the moving image Y is a 2.5-dimensional moving image, it does not have information on the back side of the object. Therefore, by setting an upper limit and a lower limit in advance for the parallel movement amounts ps, qt, r and rotation amounts ⁇ , ⁇ , ⁇ , etc., it is possible to prevent the movement of the object of the video Y from appearing unnatural. be able to.
  • the above collision and the value obtained by multiplying the absolute value or square value of the conversion parameter such as the translation amount ps, qt, r and the rotation amount ⁇ , ⁇ , ⁇ by a predetermined integer constant There is also a method in which the conversion parameter is continuously updated until the collision amount becomes zero while the result of adding the amount is used as an evaluation function.
  • the initial value of the conversion parameter is a value specified by the user
  • the shift amount closest to the value specified by the user can be found by incorporating the displacement of the conversion parameter into the evaluation function.
  • the user designates the translation amount r in the depth direction by operating the mouse wheel or the like.
  • a third moving image Z is generated by combining the first moving image X and the second moving image Y (or a moving image obtained by shifting the second moving image Y according to the user's instruction). Can also be adopted.
  • each pixel in the third moving image Z is derived from which object, and if an object is drawn while hiding another object, the pixel is hidden.
  • the pixel value and depth information in the hidden area of the object are stored separately.
  • the third animation Z is corrected while referring to the stored information so that no object collision occurs.
  • the depth direction of the object may change during correction.
  • the pixel information in the original second moving image Y may be referred to in order to keep the accuracy of the appearance of the object as much as possible.
  • An area where the user can drop that is, an area including a drop position where a moving image in which an object does not collide is generated by the user's drop operation is generated. It is intended to be presented in an easy-to-understand manner before the user's drop operation.
  • the droppable area presented to the user includes information corresponding to a possible range that can be taken by a conversion parameter indicating a shift amount in the conversion of moving the video Y.
  • a conversion parameter indicating a shift amount in the conversion of moving the video Y.
  • an area in which the second object can exist without interfering with the first object in the space drawn in the first moving image X is expressed.
  • the possible range is set by the correction unit 106 functioning as a range setting unit.
  • FIG. 9A is an explanatory diagram showing the state of the screen before the dragging is started
  • FIG. 9B is an explanatory diagram showing the state of the screen when the dragging is started
  • FIG. 9C is a diagram in the middle of the dragging
  • FIG. 9D is an explanatory diagram showing the state of the screen at the time of dropping
  • FIG. 9D is an explanatory diagram showing the state of the screen when dropped.
  • FIG. 10 is a flowchart showing a flow of control of highlight display processing of a droppable area.
  • an array F is prepared in the RAM, using as an index a candidate for an arbitrary amount of shift that can be adopted when the second moving image Y is shifted in the horizontal and vertical directions (step S501).
  • [ps, qt] is adopted as a subscript, but ps, qt may take a negative value. That is, ps is an integer between the value obtained by inverting the sign of the width of the second video Y and the sum of the width of the first video X and the width of the second video Y, and qt is the height of the second video Y. An integer between the value obtained by inverting the sign and the sum of the height of the first moving image X and the height of the second moving image Y may be used.
  • Step S501 a possible shift amount candidate [ps, qt] (step S501), an intermediate moving image move (ps, qt, Y) in which the first moving image X and the second moving image Y are shifted. ) (Step S502), and the process of substituting the result of the collision determination into the element F [ps, qt] of the array F (step S503) is repeated (step S504).
  • the window 411 for the first moving image X and the window 412 for the second moving image Y are displayed on the screen (step S506), and the start of dragging is accepted (step S507).
  • the intermediate video shifted from the second video Y is move (ps, qt , Y).
  • the moving image processing apparatus 101 determines each position [p, qt] in the first moving image X according to the value of F [ps, qt] for each position [p, q] in the first moving image X (step S508).
  • the process of changing the color (saturation, lightness, hue, or a combination thereof) of the pixel q] is repeated (step S509) (step S510).
  • the area where the user can drop and the area where the user cannot drop are distinguished, and one of them is highlighted.
  • step S183 the process may proceed to step S183.
  • the first moving image X is drawn as it is in the window 411 as shown in FIG. 9A.
  • the video processing device calculates a droppable area. Then, as shown in FIG. 9B, the droppable area in the window 411 is highlighted. In this figure, the highlighting is shown by hatching.
  • the above method can improve the speed of emphasis after clicking, and can perform redrawing at a high speed when the click is performed again (not shown).
  • the user when the user starts dragging on the second video Y, the user can easily know where to drop the first video X to obtain a new video.
  • the automatic adjustment of the parallel movement amount in the third embodiment corresponds to correcting the drop position within the droppable area when the drop is made outside the droppable area.
  • correcting the drop position at the boundary that separates the droppable area from the outside of the droppable area means that there is a moment when the object of the first moving image and the object of the second moving image contact each other. means.
  • the drop position should be corrected to the lower limit of the dropable area.
  • FIG. 9E is an explanatory diagram showing a state where the drop position is automatically corrected after the drop. As shown in the figure, the position [s, t] in the window 412 is modified so as to overlap the lower limit of the droppable area below the position [u, v] in the window 411.
  • the user can easily understand the dropable position, and even if the drop is made at a position where the user cannot drop, the drop position can be easily obtained by using the already calculated information. Can be corrected.
  • the user specifies the horizontal and vertical shift amounts using the drag-and-drop user interface.
  • the shift amount can be taken.
  • the possible range was illustrated.
  • a method in which the user specifies the shift amounts in the horizontal direction, the vertical direction, and the depth direction will be described.
  • the shift amount in the depth direction is fixed at 0, but in this method, the initial value of the shift amount in the depth direction is set to 0, and the shift amount depends on the rotation amount of the wheel. Increases or decreases.
  • the simplest thinning-out method performs a collision determination only between the representative frame of the first moving image X displayed in the window 411 and the representative frame of the second moving image Y displayed in the window 412. It is a technique.
  • the area occupied by the first object is accumulated in all the frames or in each frame thinned out every several frames, and the sum of the accumulated areas (union) is obtained.
  • the same collision determination as described above is performed between the occupied space calculated in advance and the second object drawn in the representative frame of the second moving image Y displayed in the window 412. As a result, when a collision occurs, the shift amount is not included in the possible range.
  • This method obtains the occupied space in advance for the moving image of the compositing partner and determines the collision with each frame of the moving image to be corrected by the shift amount, but this may be replaced.
  • this is a technique of obtaining the occupancy space of the object drawn in the moving image Y in advance, and determining the possible range of the moving amount of the moving image Y by performing a collision determination between the occupied space and each frame of the moving image X.
  • This method can be considered as the roles of the first moving image and the second moving image interchanged.
  • the method of thinning out the collision determination can also be applied to the above-described drag and drop method.
  • a person moving on the floor or ground becomes the second object
  • a car moving on the road becomes the second object, or moves on the track.
  • the train can be the second object.
  • the attributes of the first object floor, ground, road, track, etc.
  • the attributes of the second object people, cars, trains, etc.
  • the installation conditions of the second object such as “contact with the occupied space” are recorded in the database as the installation conditions for the attribute
  • the installation conditions for the occupied space can be set only by setting the attribute of the object in each video. Can be automatically set, and it is possible to set how the object naturally moves.
  • the coordinates of the representative point of the object i drawn in the video X in the three-dimensional space are (xc (X, t, i), yc (X, t, i), zc (X, t, i )). This can be viewed as a three-dimensional position vector pos [X, i] (t) that changes with time t.
  • the video Y is moved up and down.
  • the video W that was translated, rotated, or shifted in time from side to side or depth was obtained and superimposed on the video X.
  • the position vector pos [Y, j] (t) that is the trajectory of the object j and the position vector pos [W, j ] (t) may be different in orientation and position, but the shape is the same. That is, since non-deformation transformation that does not deform the trajectory is performed, the trajectory pos [Y, j] (t) and the trajectory pos [W, j] (t) are congruent.
  • FIG. 11A is an explanatory diagram showing the states of the locus pos [X, i] (t) and the locus pos [Y, j] (t).
  • FIG. 11B is an explanatory diagram showing the states of the trajectory pos [X, i] (t) and the trajectory pos [W, j] (t).
  • each trajectory is shown on the horizontal axis
  • the passage of time is shown on the vertical axis.
  • Each locus is provided with a long and narrow rectangle indicating the horizontal extent of the object.
  • the trajectory pos [W, j] (t) in FIG. 11B is obtained by moving the trajectory pos [Y, j] (t) in FIG. 11A in the horizontal direction, and the shapes of both are congruent.
  • the locus pos [X, i] (t) and the locus pos [Y, i] (t) is close at time T, and rectangles representing the spread of the object in the horizontal direction overlap.
  • the correction unit 106 performs a transformation transformation that transforms the trajectory of the object on the moving image, thereby preventing collision between the objects.
  • trajectory pos [X, i] (t) of the object i drawn on the video X with the background is not deformed, and the trajectory pos [Y of the object j drawn on the video Y superimposed on the video X , j] (t) will be described.
  • each coordinate value of the position vector is described by adding .x, .y, and .z.
  • the depth becomes morph (t) .z / pos [Y, j] (t) .z times due to the deformation of the trajectory.
  • This means that the object j is enlarged pos [Y, j] (t) .z / morph (t) .z times in the frame of the moving image Y at time t.
  • the object j is also moved in the horizontal direction and the vertical direction.
  • the amount of movement is (morph (t) .x-pos [Y, j] (t) .x) ⁇ pos [Y, j] (t) .z / morph (t) .z, (morph ( t) .y-pos [Y, j] (t) .y) ⁇ pos [Y, j] (t) .z / morph (t) .z.
  • a moving image of the trajectory of a certain object can be obtained by combining object selection, parallel movement, and enlargement / reduction.
  • the moving images without trajectory are drawn by overlapping the trajectory-transformed videos.
  • One moving image can be generated.
  • Direction of moving the position pos [Y, j] (t) of the point away from the position pos [X, i] (t) of the representative point of the object i X (t) [x, y] .id included in the video X
  • the process of deforming the trajectory of the object j so as to move in the direction of the main normal vector of the trajectory pos [Y, j] (t) is repeated so that the change in the degree of deformation before and after time becomes small.
  • overlap (X, Y, t, x, y) 0 is established at any time.
  • FIG. 12A to FIG. 12D are explanatory diagrams showing how the trajectory is gradually deformed by repeating the processing.
  • a description will be given with reference to FIG.
  • the locus pos [X, i] (t) and the locus pos [Y, j] (t) are close to each other at time T, as in FIG. 11A.
  • the correction amount propagated to adjacent frames is attenuated by multiplying the correction amount for its own frame by a constant of 0 or more and less than 1, and the propagation can be terminated when the correction amount becomes smaller than a predetermined threshold. It ’s fine.
  • the correction may not be propagated before and after the time as described above, but smooth correction may be performed by using spline interpolation or the like.
  • the second method when the trajectory pos [Y, j] (t) is deformed at time t, the size of the tangent vector (corresponding to the velocity vector) of the trajectory is not changed, and the main normal vector (velocity The vector is orthogonal to the vector and corresponds to the direction in which the direction of the velocity vector is to be bent.) Only the magnitude of the vector is changed, collision (Y, X) is minimized to zero, and the main method This is a method of minimizing the total sum (typically sum of squares) of changes in the size of the line vector.
  • FIG. 8 is an explanatory diagram showing a state in which the main normal vector is adjusted in a specific portion of the locus in order to avoid a collision. This figure represents the shape of the trajectory as it is.
  • locus pox [X, i] (t) collides with locus pos [Y, j] (t) at time T. Therefore, in the adjustment section Ta to T + a before and after time T, adjust the way of trajectory pos [Y, j] (t) so that collision does not occur, and the corrected trajectory morph (t) obtain.
  • the locus pos [Y, j] (t) and the locus morph (t) are congruent in shape after time T + a.
  • the first method is easy to calculate, but there may be a large gap between the movement and trajectory of the object j represented by the movie. At this time, the object j suddenly “moon-walked” It may appear as if.
  • Whether or not the object j has moved unnaturally depends on the size and orientation of the tangent vector of the trajectory of the object j, the size of the main normal vector (this is a value corresponding to the curvature of the trajectory), and orientation. It is also possible to determine by whether or not the change in the value exceeds a predetermined threshold value.
  • an upper limit may be set in advance for the amount of deformation of the trajectory when the trajectory deformation process is repeated. In this case, the movement of the object does not become unnatural, but there is a possibility that the collision cannot be avoided.
  • both trajectories may be deformed.
  • the object i and the object j may be moved away from each other.
  • the amount of change in the main normal vector of the trajectory of the object i and the main trajectory of the object j are increased. It is only necessary to minimize both the amount of change of the normal vector.
  • an upper limit is set for the amount of change in the main normal vector, or a warning is issued when the amount of change in the main normal vector exceeds a predetermined threshold value.
  • both the trajectories of the objects i and j drawn in both videos X and Y may be transformed.
  • the deformation parameter for the object i and the deformation parameter for the object j may be handled together to perform deformation so as to minimize the collision amount.
  • the object j drawn in the video Y is an object that dances on a plane, and the background in the video X includes a floor, the object j dances on the floor of the video X It is desirable to overlap.
  • the present embodiment realizes this.
  • the representative point of the object j drawn in the video Y is selected.
  • the representative point selected here corresponds to the toe of the character.
  • the pixel position [xb (Y, t, j), yb (Y, t, j)] of the representative point can be calculated as follows, for example.
  • xb (Y, t, j) min x; Y (t) [x, yb (Y, t, j)].
  • id j x
  • collision (Y, X) is minimized to 0, and X (t) [xb (Y, t, j), xb (Y, t, j)].
  • X (t) [xb ( Y, t, j), xb (Y, t, j)].
  • Y (t) [xb ( Y, t, j), xb (Y, t, j)].
  • Fore difference typically sum of squares
  • the floor on which the object j is placed in the movie Y and the floor in the movie X can be matched as much as possible, and the behavior of the object j superimposed on the movie X can be made as natural as possible.
  • the coordinates (xc (X, t, i), yc (X, t, i)) of the representative point of the object i at the time t of the moving picture X and the depth coordinates zc of the representative point are (X, t, i) is calculated.
  • the depth coordinates of each part of the object i can be approximated by zc (X, t, i). Therefore, when the depth of the representative point changes from zc (X, t, i) to zc (X, t, i) + r, the depth at each position is [zc (X, t, i) + r] / It approximates that it has become zc (X, t, i) times.
  • Such approximation is effective for parallel movement of a moving image depth method, and rotation around a horizontal axis and a vertical axis.
  • the movement destination of only the representative point of the object i that is the object of translation, rotation around the horizontal axis, and the vertical axis is obtained by the same calculation as in the above embodiment. Then, with the moving destination as the center, the above calculation is simplified by arranging the moving image in an enlarged or reduced manner according to the change in the depth of the representative point.
  • the depth method is translated and rotated around the horizontal axis and the vertical axis. Even in this case, this is equivalent to moving the plate while being perpendicular to the depth direction.
  • the plate In parallel movement in the depth direction, the plate remains perpendicular to the depth direction.
  • the rotation angle is limited to about several degrees, and the position of the plate is changed by rotation, but the direction of the plate remains perpendicular to the depth direction. I think.
  • a moving image obtained by moving the object i drawn on the moving image X by r in the depth direction is obtained by performing the following processing.
  • A) Select only object i from video X,
  • B) Translate along the frame so that (xc (X, t, i), yc (X, t, i)) is the origin,
  • C) Scale the video to zc (X, t, i) / [zc (X, t, i) + r] times,
  • D A translation is performed along the frame so that the origin is (xc (X, t, i), yc (X, t, i)).
  • the coordinates of the representative point of the object in the video are (xc (X, t, i), yc (X, t, i)) To (xc (X, t, i), zc (X, t, i) ⁇ cos ⁇ -yc (X, t, i) ⁇ sin ⁇ ), the depth is zc (X, t, i) to zc Move to (X, t, i) ⁇ sin ⁇ + yc (X, t, i) ⁇ cos ⁇ . That is, the following processing may be performed.
  • the processing speed can be increased.
  • the conversion shift (d, X) is performed to shift the time of the moving image X by d.
  • a video X that shot a person (object i) who moves the heel in the mortar with a hand
  • a video Y that shot a person (object j) who moves the hand in the same mortar with a hand
  • a person A and a person B want to generate a moving image that expresses how they are working together.
  • Parameters for shift and fastforward to minimize the evaluation function that represents the amount of collision when the situation of the mortar and surroundings, and the position and orientation of the camera where the image was taken are common to video X and video Y If you ask for.
  • these conversions can also be applied when it is desired to determine from a movie whether furniture or electrical appliances can be placed in a house.
  • the following process may be performed.
  • an electrical product manufacturer or an electrical product seller provides a video X on the web or the like taken from the front of the washing machine door opening and closing periodically.
  • a user considering purchasing a washing machine prepares a video Y taken from the front of a room door or furniture door that opens and closes periodically in the room where the washing machine is to be installed. To do.
  • the user After normalization is performed so that the distance from the camera to the washing machine in the video X and the distance from the camera to the candidate location for the washing machine in the video Y are substantially the same, the user performs the washing machine in the video X. Are dragged and dropped to the location of the installation candidate in the video Y.
  • the collision amount of the object in the videos X and Y is obtained. If there is no collision, it can be estimated that the washing machine can be installed at a desired location. Even if a collision occurs, if the parameters for shift and fastforward that minimize the amount of collision can be obtained so that the collision does not occur, the washing machine can be installed at the desired location. Can be estimated.
  • the shooting direction may be limited when the user takes a picture of the room.
  • it is supposed to provide videos taken from various directions, such as shooting from the left side, shooting from the right side, etc.
  • a moving image shot in the same direction as the direction in which the user shot the room may be selected.
  • animation can be synthesized so that the objects do not collide with each other, and the object surface touches the desired moment or the object bottom keeps touching the floor. Can be synthesized.
  • the first application example is to allow an exhibitor to easily prepare a video showing the state of a product in an electronic market such as an Internet auction.
  • This video material can be prepared by sellers and bidders in the electronic market, or a video distribution system that uploads videos that can be used publicly and allows other users to browse and distribute this video. It is good also as reusing the animation accumulated in the system.
  • Exhibitors can either shoot a video showing the background in the room at home, or prepare a decorative table or folding screen to make the product look good. You can keep your items organized and cleaned so that you don't know your private information.
  • the background moving image may be selected from moving image materials.
  • the photograph can be taken at any place in the room without organizing or cleaning the items.
  • the exhibitor drags and drops the video of the new product that has been photographed onto the background video that was previously photographed. Then, by the above-described collision avoidance and automatic position adjustment, a moving image representing a state where the product does not collide with an article (eg, folding screen) of the background image and is in contact with the floor of the background image (eg, the top surface of the decoration table). Can be synthesized.
  • an article eg, folding screen
  • the floor of the background image eg, the top surface of the decoration table
  • composition of the product video with the background video may be made not only by the exhibitor but also by the bidder.
  • a party dress is exhibited, and a product moving image representing a state in which a model such as an exhibitor is walking or turning around wearing the dress is provided.
  • Bidders can shoot their own background videos taken inside the venue where the party they are going to attend wearing a dress is held, or select from the video materials. Then, the bidder synthesizes the product video of the dress worn by the model with the background video of the party venue.
  • the model moves on the floor, but a moving image that does not collide with other people, furniture, and equipment in the venue is synthesized.
  • the bidder can check in advance whether the dress displayed as a product matches the atmosphere of the party venue before bidding.
  • the second application example is the further use of moving picture material.
  • a background video showing how a famous celebrity is dancing to music is provided as a video material
  • the user can shoot a singer and synthesize a video that the user dances by himself. It is possible to generate a video that shows how you are dancing with.
  • a background video showing how the merry-go-round is moving with vacant seats is provided as video material
  • the user moves on a different vehicle, such as a bicycle or cart, and moves almost the same track as the merry-go-round.
  • a moving image processing apparatus a moving image processing method suitable for preventing objects from interfering with each other when objects with depth information drawn in a plurality of moving images are combined into one moving image
  • an information recording medium can be provided.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Processing Or Creating Images (AREA)

Abstract

 動画処理装置(101)は、第1動画と第2動画とを合成する。第1動画には、第1オブジェクトが描かれ、第1オブジェクトの前面奥行を伴う。第2動画には、第2オブジェクトが描かれ、第2オブジェクトの前面奥行を伴う。背面奥行取得部(102)は、第1オブジェクトの背面奥行ならびに第2オブジェクトの背面奥行を取得する。衝突判定部(103)は、干渉判定部として機能し、第1オブジェクトが占有しうる占有空間を、第1オブジェクトの前面奥行ならびに背面奥行を参照して求め、占有空間と、第2動画のあるフレームに描かれた第2オブジェクトと、が、干渉条件を満たすか否かを、第2オブジェクトの前面奥行ならびに背面奥行を参照して判定する。修正部(106)は、範囲設定部として機能し、干渉判定部による判定結果から、第2オブジェクトが占有空間に干渉せずに位置しうる可能範囲を設定する。

Description

動画処理装置、動画処理方法、ならびに、情報記録媒体
 本発明は、動画処理装置、動画処理方法、ならびに、情報記録媒体に関し、複数の動画に描かれた奥行情報を伴うオブジェクトを1つの動画にまとめようとするときに、オブジェクト同士が干渉しないようにするものである。
 従来から、撮影されるオブジェクトとカメラとの距離(奥行、Z距離)を取得して、奥行情報を伴う画像を作成する技術が提案されている。このような画像は、2.5次元画像と呼ばれることがある(たとえば、非特許文献1参照)。
 一方で、オブジェクトが位置や形状、色彩などを変化させる様子を描く動画から、ほぼ静止した背景が描かれている領域と移動するオブジェクトが描かれている領域とを分離する技術も提案されている(たとえば、特許文献1参照)。
 これらの技術を組み合わせることにより、背景とその前で移動するオブジェクトを分離した上で、背景の奥行とオブジェクトの奥行を区別した2.5次元動画を生成することができる。2.5次元動画を構成するフレームには、カメラから見えるオブジェクトの表面(オブジェクトの前面)が描かれ、当該オブジェクトが描かれた描画領域に含まれる画素には、当該画素に対応付けられるオブジェクトの表面部分の色彩のほか、当該表面部分までの奥行(前面奥行)が対応付けられる。
 このような2.5次元動画は、現実世界をCCDカメラで撮影すると同時に深度センサによる検知を利用したり、現実世界を立体視用のステレオカメラで撮影して対応する画素ごとに視差を求め、その視差から深度を計算することにより得られる。ここで、現実世界を撮影した2.5次元動画には、フレーム内に描かれていないオブジェクトの表面(オブジェクトの背面)の様子は撮影されていないし、背面までの奥行の情報もわからない。
 このほか、仮想空間内にオブジェクトを配置して移動等をさせる様子を表す動画を3次元グラフィックスにより生成した後、当該動画の各画素における前面奥行のみを付加することによっても、2.5次元動画を得ることができる。このような変換が行われるのは、2.5次元動画とフォーマットの整合性が保てることや、動画編集がしやすくなる等の理由で便利であるためである。
 なお、3次元グラフィックスの分野では、仮想空間内を移動するオブジェクトが干渉しないように、オブジェクトが占める領域が互いに食い込んだり、一方が他方に貫通するような状況を防止するための、衝突判定の技術が広く用いられている。ここでいう衝突とは、オブジェクト同士の表面の接触は勿論、互いの占める領域が重複するような場合や、実際には両者は離間しているにもかかわらず互いの距離がある閾値よりも近い場合を含むものであり、日常的な語義より広い意味を有する。
特開2009-080660号公報
「2.5D」の項、フリー百科辞典『ウィキペディア』英語版、http://en.wikipedia.org/wiki/2.5D、2012年7月18日に取得
 ここで、異なる2.5次元動画に描かれた複数のオブジェクトを一つの動画にまとめるときに、複数のオブジェクトが同じ領域に重ねて描画されるのであれば、奥行の大小によって、いずれのオブジェクトを優先して描画するかを決めることなる。しかしながら、そもそも、オブジェクト同士が、互いに食い込んでいたり、一方が他方に貫通していたり等、干渉していては、最終的な動画も不自然なものとなってしまう。
 したがって、複数の動画をまとめる際に、ユーザの指示等に応じて、動画に描かれたオブジェクトの水平方向、垂直方向、奥行方向の位置を適切にずらして、オブジェクト同士の干渉を防ぐ対策が求められている。
 本発明は、上記のような課題を解決するもので、複数の動画に描かれた奥行情報を伴うオブジェクトを1つの動画にまとめようとするときに、オブジェクト同士が干渉しないようにするのに好適な動画処理装置、動画処理方法、ならびに、情報記録媒体を提供することを目的とする。
 本発明に係る動画処理装置は、第1動画と、第2動画と、を合成する動画処理装置であって、前記第1動画には、第1オブジェクトが描かれ、前記第1オブジェクトの前面奥行情報を伴い、第2動画には、第2オブジェクトが描かれ、前記第2オブジェクトの前面奥行情報を伴い、
 前記第1オブジェクトの背面奥行情報と、前記第2オブジェクトの背面奥行情報と、を取得する取得部、
 前記第1動画に描かれた第1オブジェクトが占有しうる占有空間を、前記第1オブジェクトの前面奥行情報ならびに背面奥行情報を参照して求め、前記占有空間と、前記第2動画のあるフレームに描かれた前記第2オブジェクトと、が、干渉条件を満たすか否かを、前記第2オブジェクトの前面奥行情報ならびに背面奥行情報を参照して判定する干渉判定部、
 前記干渉判定部による判定結果から、前記第2オブジェクトが前記占有空間に干渉せずに位置しうる可能範囲を設定する範囲設定部
 を備えるように構成する。
 また、本発明の動画処理装置において、
 前記取得部は、データベースから、前記第1オブジェクトの属性にあらかじめ対応付けられた第1奥行長を取得し、前記データベースから、前記第2オブジェクトの属性にあらかじめ対応付けられた第2奥行長を取得し、前記第1オブジェクトの前面奥行情報と前記第1奥行長とから前記第1オブジェクトの背面奥行情報を取得し、前記第2オブジェクトの前面奥行情報と前記第2奥行長とから前記第2オブジェクトの背面奥行情報を取得する
 ように構成することができる。
 また、本発明の動画処理装置において、
 前記範囲設定部は、データベースから、前記第2オブジェクトの属性にあらかじめ対応付けられた前記第2オブジェクトの設置条件を取得し、前記可能範囲を、前記設置条件を満たすように設定する
 ように構成することができる。
 また、本発明の動画処理装置において、
 前記範囲設定部は、前記第2動画のすべてのフレームについて、前記占有空間と、前記第2オブジェクトと、が前記干渉条件を満たさないように、前記可能範囲を設定する
 ように構成することができる。
 また、本発明の動画処理装置において、
 前記第1動画と前記第2動画とのいずれか一方の動画には、3次元空間内の移動を表す非変形変換が施され、
 前記可能範囲は、前記非変形変換に係る移動の量を表す変換パラメータがとりうる値の範囲により表現される
 ように構成することができる。
 また、本発明の動画処理装置において、
 前記非変形変換は、水平方向、垂直方向のずらし量を前記変換パラメータとする平行移動であり、
 前記一方の動画は、前記第2動画であり、
 水平方向ならびに垂直方向のずらし量をユーザに修正させるため、前記範囲設定部により設定された水平方向ならびに垂直方向のずらし量の可能範囲と、前記第1動画のあるフレームと、が画面に表示される
 ように構成することができる。
 また、本発明の動画処理装置において、
 前記非変形変換は、水平方向、垂直方向、奥行方向のずらし量を前記変換パラメータとする平行移動であり、
 前記一方の動画は、前記第2動画であり、
 水平方向、垂直方向、奥行方向のずらし量をユーザに修正させるため、前記範囲設定部により現在の奥行方向のずらし量に対して設定された水平方向ならびに垂直方向のずらし量の可能範囲と、前記第1動画のあるフレームと、が画面に表示される
 ように構成することができる。
 また、本発明の動画処理装置において、
 前記可能範囲からいずれかの変換パラメータを選択して、前記非変形変換を施すことにより、前記一方の動画を修正する修正部、
 前記第1動画と、前記第2動画と、を合成した第3動画を生成する動画生成部
 をさらに備えるように構成することができる。
 また、本発明の動画処理装置において、
 前記変換パラメータの初期値を設定する初期値設定部、
 前記修正部は、前記設定された初期値が前記可能範囲に含まれなければ、前記可能範囲から、前記指定された初期値に最も近い変換パラメータを選択する
 ように構成することができる。
 また、本発明の動画処理方法は、第1動画と、第2動画と、を合成し、前記第1動画には、第1オブジェクトが描かれ、前記第1オブジェクトの前面奥行情報を伴い、第2動画には、第2オブジェクトが描かれ、前記第2オブジェクトの前面奥行情報を伴い、
 前記第1オブジェクトの背面奥行情報と、前記第2オブジェクトの背面奥行情報と、を取得する取得工程、
 前記第1動画に描かれた第1オブジェクトが占有しうる占有空間を、前記第1オブジェクトの前面奥行情報ならびに背面奥行情報を参照して求め、前記占有空間と、前記第2動画のあるフレームに描かれた前記第2オブジェクトと、が、干渉条件を満たすか否かを、前記第2オブジェクトの前面奥行情報ならびに背面奥行情報を参照して判定する干渉判定工程、
 前記干渉判定工程における判定結果から、前記第2オブジェクトが前記占有空間に干渉せずに位置しうる可能範囲を設定する範囲設定工程
 を備えるように構成する。
 本発明に係るコンピュータ読取可能な情報記録媒体には、第1動画と、第2動画と、を合成するプログラムが記録され、前記第1動画には、第1オブジェクトが描かれ、前記第1オブジェクトの前面奥行情報を伴い、第2動画には、第2オブジェクトが描かれ、前記第2オブジェクトの前面奥行情報を伴い、前記プログラムは、コンピュータを、
 前記第1オブジェクトの背面奥行情報と、前記第2オブジェクトの背面奥行情報と、を取得する取得部、
 前記第1動画に描かれた第1オブジェクトが占有しうる占有空間を、前記第1オブジェクトの前面奥行情報ならびに背面奥行情報を参照して求め、前記占有空間と、前記第2動画のあるフレームに描かれた前記第2オブジェクトと、が、干渉条件を満たすか否かを、前記第2オブジェクトの前面奥行情報ならびに背面奥行情報を参照して判定する干渉判定部、
 前記干渉判定部による判定結果から、前記第2オブジェクトが前記占有空間に干渉せずに位置しうる可能範囲を設定する範囲設定部
 として機能させるように構成する。
 上記のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読み取り可能な非一時的(non-transitory)な情報記録媒体に記録することができる。この情報記録媒体は、コンピュータとは独立して配布・販売することができる。
 さらに、上記のプログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網等の伝送媒体を介して配布・販売することができる。
 本発明によれば、複数の動画に描かれた奥行情報を伴うオブジェクトを1つの動画にまとめようとするときに、オブジェクト同士が干渉しないようにするのに好適な動画処理装置、動画処理方法、ならびに、情報記録媒体を提供することができる。
2.5次元動画に描かれるオブジェクトとその諸元の関係を表す説明図である。 オブジェクトの断面図である。 オブジェクトの前面を表す断面図である。 厚みを一定とすることにより背面の形状を推定したオブジェクトの断面図である。 オブジェクトの代表的な前面奥行を求め、これに厚みを加算したものを背面奥行とすることにより、オブジェクトの背面の形状を推定したオブジェクトの断面図である。 オブジェクトの背面の形状を球面と推定したオブジェクトの断面図である。 動画処理装置において、衝突判定を行う要素の概要構成を示す説明図である。 衝突判定処理の流れを示すフローチャートである。 ドラッグが開始される以前の画面の様子を示す説明図である。 ドラッグが開始される時点の画面の様子を示す説明図である。 ドラッグの途中の時点の画面の様子を示す説明図である。 ドロップがされた時点の画面の様子を示す説明図である。 動画処理装置のドラッグアンドドロップ処理に係る部分の概要構成を示す説明図である。 ドラッグアンドドロップ処理の制御の流れを示すフローチャートである。 自動調整処理の制御の流れを示すフローチャートである。 ドラッグが開始される以前の画面の様子を示す説明図である。 ドラッグが開始される時点の画面の様子を示す説明図である。 ドラッグの途中の時点の画面の様子を示す説明図である。 ドロップがされた時点の画面の様子を示す説明図である。 ドロップ後に、ドロップ位置の自動修正を行った様子を示す説明図である。 ドロップ可能領域の強調表示処理の制御の流れを示すフローチャートである。 軌跡pos[X,i](t)と軌跡pos[Y,j](t)の様子を示す説明図である。 軌跡pos[X,i](t)と軌跡pos[W,j](t)の様子を示す説明図である。 処理を繰り返すことによって、軌跡が次第に変形していく様子を示す説明図である。 処理を繰り返すことによって、軌跡が次第に変形していく様子を示す説明図である。 処理を繰り返すことによって、軌跡が次第に変形していく様子を示す説明図である。 処理を繰り返すことによって、軌跡が次第に変形していく様子を示す説明図である。 衝突を避けるために、軌跡の特定部分において主法線ベクトルを調整した様子を示す説明図である。
 以下に本発明の実施形態を説明する。なお、本実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
 なお、以下に説明する実施形態に係る動画処理装置は、コンピュータがプログラムを実行することによって実現される。ここで、プログラムは、ROM(Read Only Memory)やハードディスク等の非一時的(non-transitory)な記憶装置からRAM(Random Access Memory)等の一時的(temporary)な記憶装置に読み出される。CPU(Central Processing Unit)は、RAMに読み出されたプログラムを順次解釈し、各種記憶装置との間でデータの読み書きをしたり、データに対する計算処理を行ったりする。また、CPUは、プログラムの制御下で、キーボードやマウス、タッチパネル、ディスプレイ、ネットワークインターフェース等の入出力装置とのやりとりを制御する。
 ただし、本発明に係る動画処理装置は、プログラムを実行するコンピュータにより実現されるものに限られない。たとえば、画像処理用の専用の電子回路やFPGA(Field Programmable Gate array)、DSP(Digital
Signal Processor)等を利用すれば、同様の機能を実現することが可能である。
 なお、3次元グラフィックスの分野では、オブジェクト同士の干渉を、衝突と呼ぶこともある。日常的な語法では、衝突とは、物体が激しくぶつかり、互いの表面が接触して、場合によっては物体の形状が変形することを意味するが、オブジェクトの干渉、あるいは、オブジェクトの衝突といった場合には、表面が接触することのほか、オブジェクトが占める3次元空間内の領域が食い込んだり貫通したりするような場合、オブジェクトが離間してはいるものの、その距離が十分に近い場合等を含む。以下の実施例では、理解を容易にするため、「干渉」という用語にかえて、適宜「衝突」という用語を用いる。
 (2.5次元動画とオブジェクトの関係)
 以下では、理解を容易にするため、2.5次元動画に描かれるオブジェクトを表現するための記法について整理する。図1は、2.5次元動画に描かれるオブジェクトとその諸元の関係を表す説明図である。以下、本図を参照して説明する。
 なお、以下の説明では、理解を容易にするため、「2.5次元動画」を適宜「動画」と略記する。
 ある動画Xに含まれるフレームのうち、再生の開始時点からの経過時間t(典型的には、フレーム番号で表現される。)に再生されるフレームをX(t)と表記する。
 各フレームに固定された画素座標系において、フレームX(t)において、水平方向の座標値x、垂直方向の座標値yに配置される画素をX(t)[x,y]と表記する。
 水平方向の座標値xならびに垂直方向の座標値yが動画Xの各フレームにおいて有効な値であることを、[x,y]∈Xと表記する。すなわち、[x,y]は、画素の位置を意味する。
 図1は、3次元グラフィックス技術を用いて、仮想空間内にオブジェクトが配置される様子を動画のフレームに描く状況を真横から見て図示したものであるが、現実世界をカメラで撮影する場合も、同様の状況が成立する、と考えることができる。
 本図に示すように、空間内では、撮影点11から、投影面12上に配置されたフレームX(t)内の画素X(t)[x,y]に向かう半直線13がオブジェクト14の表面の衝突点15でぶつかるとき、画素X(t)[x,y]には、当該ぶつかった衝突点15の様子が描かれる。これが一般的な透視投影である。
 上記のように、本図は撮影の様子を真横から見たものである。したがって、本図では、投影面12は直線により表現されることになる。
 撮影点11は、カメラの位置や観察位置に相当するものであり、撮影点11と投影面12との距離は、レンズの焦点距離や画素の長さの単位によって決まる。また、撮影方向16は、撮影点11から投影面12に垂らした垂線の方向である。
 以下では、画素X(t)[x,y]の色彩ならびに前面奥行を、それぞれ、X(t)[x,y].colorならびにX(t)[x,y].foreと表記する。
 X(t)[x,y].colorは、衝突点15における色彩やライティングの状況、撮影点11と衝突点15の距離等に基づいて定まる。X(t)[x,y].colorは、RGB、CYMK、HSVなどの各種の色空間における座標値を表すもので、色空間の間での座標値の変換は定式化されている。また、透明度を表すα値をX(t)[x,y].colorに追加することとしても良い。
 X(t)[x,y].foreは、画素X(t)[x,y]に描かれているオブジェクト14の衝突点15に当る部分と、撮影点11と、の間の奥行距離を表す。奥行距離としては、撮影点11から衝突点15までのベクトルの撮影方向16の成分の長さ17(いわゆる「Z距離」に相当する。)を採用するのが一般的であるが、その近似値として、撮影点11から衝突点15までの距離を採用しても良い。
 奥行距離は種々の単位系で表現が可能である。画素が正方形により構成されている場合に、当該画素の辺の長さを単位とすると、複数の動画における奥行の正規化が可能となる。以下では、奥行は正規化がされていることを前提に説明する。
 一般には、動画Xには、移動するオブジェクトのほか、背景も描画されていることがある。背景は、ほとんど移動しないオブジェクトと考えることができる。
 そこで、特許文献1に開示される技術などを利用して動画の各フレームを分析すれば、画素X(t)[x,y]には背景が描かれているのか、それとも、移動するオブジェクトが描かれているのか、を識別することができる。
 以下では、理解を容易にするため、識別されたオブジェクトには識別番号が振られるものとする。背景を表すオブジェクトの識別番号は0、それ以外のオブジェクトの識別番号は1,2,3,…のように割り振るものとする。
 さらに、画素X(t)[x,y]に部分が描かれているオブジェクトの識別番号を、X(t)[x,y].idと表記し、動画Xに出現するオブジェクトの識別番号の最大値をX.maxidと表記する。
 動画Xに出現するオブジェクトの識別番号が0,1,2,3,…,Nであれば、X.maxid = Nである。
 動画Xにおいて、X(t)[x,y].id≠0を満たす画素X(t)[x,y]のみを抽出すれば、オブジェクトのみの情報(背景を除去した情報)が得られることになる。また、i番目のオブジェクトのみの動画を得るには、X(t)[x,y].id=iを満たす画素X(t)[x,y]のみを抽出すれば良い。これらは、従来の動画技術におけるブルーバックを利用したクロマキー合成用の動画に相当するものである。
 ここで、上記のような抽出を行った結果、処理の対象とならなくなった画素には、理解を容易にするため、識別番号として負の値が与えられるものとする。すなわち、X(t)[x,y].id<0であれば、画素X(t)[x,y]は、透明な画素と解釈される。ここでいう「透明」とは、クロマキー合成の際のブルーバックに相当するものである。
 この解釈に基づけば、[x,y]∈Xが成立しない場合に、X(t)[x,y].idとして負の値が設定される、と考えることもできる。以下、理解を容易にするため、処理の対象とならない画素や、動画のフレーム外の位置における「画素」については、.idとして負の値が設定されるものとして説明を続ける。
 (2.5次元動画に対する各種の変換)
 以下では、ある動画から、別の動画を生成するための変換手法について説明する。このような変換手法には、以下のようなものがある。
 (1)動画のフレームに沿った上下左右の平行移動
 (2)動画の拡大縮小
 (3)動画の奥行方向の平行移動
 (4)動画の水平軸、垂直軸、奥行軸周りの回転
 (5)動画の時間方向の移動
 (6)動画から特定のオブジェクトのみを選択
 (7)ある動画に別の動画を重ねる合成
以下、順に説明する。
 まず、動画のフレームに沿った上下左右の平行移動について考える。動画Yが、動画Xをフレーム内で水平方向にp、垂直方向にqだけ平行移動することによって得られるものであれば、
  Y(t)[x+p,y+q] = X(t)[x,y]
ならびに、
  Y(t)[x,y] = X(t)[x-p,y-q]
が成立する。ここで、上記の等号は、.colorや.foreなど、各画素に割り当てられた値が、いずれも互いに等しいことを意味する。
 以下、動画Xをフレーム内で水平方向にp、垂直方向にqだけ平行移動することにより得られる動画をmove(p,q,X)と表記する。
 次に、動画の拡大縮小について考える。透視投影においては、c倍に大きく描かれる、ということは、奥行が1/c倍になって撮影点が近くなった、ということを意味する。したがって、動画Yが、動画Xをフレーム内でc倍に拡大したものであれば、各画素に割り当てられた.fore以外については、
  Y(t)[c×x,c×y] = X(t)[x,y]
すなわち
  Y(t)[x,y] = X(t)[x/c,y/c]
が成立する。
 また、各画素に割り当てられた.foreについては、
  Y(t)[c×x,c×y].fore = X(t)[x,y].fore/c
すなわち
  Y(t)[x,y].fore = X(t)[x/c,y/c].fore/c
が成立する。
 以下、動画Xをフレーム内でc倍に拡大することにより得られる動画を、scale(c,X)と表記する。
 ついで、動画の奥行方向の移動について考える。動画Yが、動画Xに撮影されたものを奥行方向rだけ遠ざけると、X(t)[x,y]の奥行距離は、X(t)[x,y].foreからX(t)[x,y].fore + rに変化する。すなわち、奥行距離は、(X(t)[x,y].fore + r)/X(t)[x,y].fore = k倍になる。
 透視投影において、撮影点との距離がk倍になったのであれば、投影面に描画されるサイズは、1/k倍に拡縮される。したがって、各画素に割り当てられた.fore以外については、
  Y(t)[x/k,y/k] = X(t)[x,y]
が成立し、.foreについては、
  Y(t)[x/k,y/k].fore = X(t)[x,y].fore + r
が成立する。
 以下、動画Xを奥行方向にrだけ移動することにより得られる動画を、push(r,X)と表記する。
 さらに、動画の水平軸、垂直軸、奥行軸周りの回転について考える。動画Yが、動画Xを水平軸周りにθだけ回転して得られるものであれば、.fore以外の要素について、
  Y(t)[x,y] = X(t)[x,X(t)[x,y].fore×cosθ-y×sinθ]
とし、.foreについて、
  Y(t)[x,y].fore = X(t)[x,y].fore×sinθ+y×cosθ
が成立する。
 同様に、動画Yが、動画Xを垂直軸周りにφだけ回転して得られるものであれば、.fore以外の要素について、
  Y(t)[x,y] = X(t)[X(t)[x,y].fore×cosφ-x×sinφ,y]
とし、.foreについて、
  Y(t)[x,y].fore = X(t)[x,y].fore×sinφ+x×cosφ
が成立する。
 また、動画Yが、動画Xを奥行軸周りにψだけ回転して得られるものであれば、
  Y(t)[x,y] = X(t)[x×cosψ-y×sinψ,x×sinψ+y×cosψ]
が成立する。
 以下、それぞれの回転により得られる動画を、rothor(θ,X)、rotver(φ,X)、rotdep(ψ,X)のように表記する。
 なお、これらの変換を行う場合においては、画素の座標値が整数値でなくなったり、座標値に抜けが生じることがある。このような場合には、各画素に割り当てられた.colorや.fore等の値を補間して、アンチエイリアスを行うこととし、.idについては、当該座標に最も近い格子点における値を採用する等の手法を採用することができるほか、.idが変化する境界がどこに位置するか、を補間により調べて、その境界に基づいて、.idを決定すれば良い。
 平行移動等によって動画のフレームの範囲外となる画素は、透明な画素と考えれば良いから、上記のように、.idを負の値に設定すれば良い。
 ついで、動画の時間方向の移動について考える。動画Yが、動画Xの時間をdだけずらしたものであれば、
  Y(t)[x,y] = X(t-d)[x,y]
が成立する。
 以下、動画Xの時間をdだけずらした動画をshift(d,X)と表記する。
 さらに、動画から特定のオブジェクトのみを選択する処理について考える。動画Yが、動画Xに識別番号i番目のオブジェクトのみを描くものであれば、.id以外の要素について、
  Y(t)[x,y] = X(t)[x,y], if
X(t)[x,y].id = i;
が成立する。また、.idについては、
  Y(t)[x,y].id = 1, if
X(t)[x,y].id = iかつi>0;
  Y(t)[x,y].id = 0, if
X(t)[x,y].id = iかつi=0;
  Y(t)[x,y].id = -1, otherwise
とすれば、動画Yにおける識別番号の最大値Y.maxidをできるだけ小さくすることができる。
 以下、動画Xに描かれた識別番号iのオブジェクトのみを描く動画を、select(i,X)と表記する。
 最後に、ある動画に別の動画を重ねる(superimpose)処理について考える。動画X,Yに描かれているオブジェクトに衝突がなければ、動画X(背景を含んでいても良いし、背景以外のオブジェクトのみでも良い。)に、動画Yの背景以外のオブジェクトを重ねることにより、動画Xに描かれたオブジェクトと、動画Yに描かれたオブジェクトと、を1つにまとめた動画Zが得られる。
 動画Zでは、.id以外については、
  Z(t)[x,y] = X(t)[x,y], if
Y(t)[x,y].id≦0;
  Z(t)[x,y] = X(t)[x,y], if
X(t)[x,y].fore<Y(t)[x,y].fore;
  Z(t)[x,y] = Y(t)[x,y], otherwise
が成立する。また、.idについては、
  Z(t)[x,y].id = X(t)[x,y].id, if
Y(t)[x,y].id≦0;
  Z(t)[x,y].id = X(t)[x,y].id, if
X(t)[x,y].fore<Y(t)[x,y].fore;
  Z(t)[x,y].id = Y(t)[x,y].id+X.maxid, otherwise
とすれば、オブジェクトの識別番号の重複を避けることができる。
 また、整数1,2,…,Z.maxidのうち、Z(t)[x,y].idの値として出現しないものがあれば、以降のオブジェクトの.idをずらすことによって、Z.maxidを最小化することも可能である。
 以下、動画Xに、動画Yの背景以外のオブジェクトを重ねることにより得られる動画を、superimpose(Y,X)と表記する。
 上記のmove,scale,push, rothor,rotver,rotdep,select,superimpose等の処理をコンピュータで行う際には、CPU(Central Processing Unit)が有する計算機能を用いる他、グラフィックス処理用のプロセッサを利用する等により、高速な計算が可能である。
 なお、scale,pushにおいては、原点を中心に拡縮や奥行の移動を考え、rothor,rotver,rotdepおいては、回転軸が原点を通ることを前提としている。
 したがって、画像X内の任意の位置[p,q]を中心に拡縮や奥行の移動を行いたい場合には、一旦[p,q]を原点に上下左右に移動し、拡縮や奥行移動を行ってから、逆の上下左右の移動を行えば良い。すなわち、
  move(p,q,scale(c,move(-p,-q,X)));
  move(p,q,push(r,move(-p,-q,X)))
などを利用すれば良い。
 回転軸の位置を上下左右や奥行方向にずらしたい場合も、同様に、一旦回転軸が原点を通るように上下左右や奥行の移動をしてから、回転を行い、その後に、逆の上下左右や奥行の移動を行うことになる。
 このほか、scaleやpush等、奥行が移動される変換においては、その度合に応じて.colorの明度や彩度などの修正をすることとしても良い。
 なお、動画の正規化は、撮影時の設定等に基づいて行うことも可能であるが、ユーザの希望に応じて設定をしたり、自動的に行ったりすることも可能である。
 ユーザの設定による場合には、まず、ユーザの指示等に基づいて動画の高さや幅を単純に拡縮したり、解像度を調整することで画像内に描かれるオブジェクトの大きさを所望のものとする。scaleでは、対応する画素の奥行距離に、拡大率に応じた係数を乗じるが、正規化の際には、対応する画素の奥行距離をそのまま用いる。
 その後に、ユーザは係数を選択し、各画素の奥行距離を一括して当該係数倍にする。
 なお、動画Xにオブジェクトiが描かれ、動画Yにオブジェクトjが描かれている状況で、オブジェクトiとオブジェクトjが一緒に描かれるような動画Zを生成しようとする場合には、オブジェクトiの大きさと、オブジェクトjの大きさと、が、ほぼ等しく、オブジェクトiの奥行と、オブジェクトjの奥行と、が、ほぼ等しくなるようにすることが望ましいことが多い。このような前提が成立する場合には、自動的な正規化も可能である。
 すなわち、動画Yにおいてオブジェクトjが描かれている領域の平均面積や平均高さ等が、動画Xにおけるオブジェクトiの対応する値と一致するように、動画Yを単純拡縮して動画Zを得る。すなわち、.foreを含むすべての値について、
  Z(t)[x,y] = Y(t)[x/c,y/c]
とする。
 そして、動画Zにおけるオブジェクトjの平均奥行と動画Xにおけるオブジェクトiの平均奥行とが一致するように、動画Zにおける奥行を一括して係数倍して、動画Wを得る。すなわち、.fore以外については、
  W(t)[x,y] = Z(t)[x,y]
とし、.foreについては、
  W(t)[x,y].fore = k×Z(t)[x,y].fore
とする。
 上記の条件を満たすようにcやkを、自動設定すれば、動画Wは、オブジェクトjがオブジェクトiに見合うように、動画Yを正規化したものとなる。もちろん、上述の通り、cやkをユーザの希望に応じて設定することによって、正規化を行うこととしても良い。
 以上、動画の種々の特徴量の表記や各種の変換について説明したが、これらの表記、変換は理解を容易にするためのものである。特に、.colorや.fore、.idなどは、他のフォーマットによって表現することも可能である。動画処理に用いられる種々のフォーマットにおいて、これと等価な形式や変換を採用した場合にも、本発明の技術的範囲に含まれることは言うまでもない。
 本実施例は、動画Xに動画Yを重ねたときに、動画Xにおける識別番号iのオブジェクトiと、動画Yにおける識別番号jのオブジェクトjと、が衝突するか否かを判定するものである。
 オブジェクトiと、オブジェクトjと、の衝突が比較的容易に判定できる場合としては、以下のような状況が考えられる。
 まず、オブジェクトiの前面(動画Xに描画されている表面)と、オブジェクトjの前面(動画Yに描画されている表面)と、が、同じ3次元位置を占める瞬間がある場合である。すなわち、いずれかのt,x,yにおいて、
  X(t)[x,y].id = i;
  Y(t)[x,y].id = j;
であれば、位置[x,y]は、オブジェクトiが描画されるべき領域ならびにオブジェクトjが描画されるべき領域の両方に重複して含まれることになる。
 この位置[x,y]において、
  X(t)[x,y].fore = Y(t)[x,y].fore
が成立すれば、オブジェクトiとオブジェクトjが衝突する、と判定できる。
 この手法では、オブジェクトi,jは、背面には何もないオブジェクトで、厚みを持たず、前面の形状のみからなる面状オブジェクトである、と、想定している。
 オブジェクトi,jの前面がある画素X(t)[x,y]に投影される位置で同じ奥行を有する、ということは、その位置でオブジェクトi,jの前面が重なっていることを意味する。そこで、この場合には、両者が衝突する、と判定することができる。
 この判定基準を時間方向に拡張することもできる。以下では、経過時間tがフレーム番号で表現される場合、すなわち、時刻t+1のフレームが時刻tのフレームに続く場合を想定する。
 すると、いずれかのt,x,yにおいて
  X(t)[x,y].id = X(t+1)[x,y].id = i;
  Y(t)[x,y].id = Y(t+1)[x,y].id = j;
  X(t)[x,y].fore < Y(t)[x,y].fore;
  X(t+1)[x,y].fore > Y(t+1)[x,y].fore
が成立すれば、時刻tから時刻t+1にかけてオブジェクトjがオブジェクトiの後から前にすり抜けて出てきた、と考えられる。また、
  X(t)[x,y].id = X(t+1)[x,y].id = i;
  Y(t)[x,y].id = Y(t+1)[x,y].id = j;
  X(t)[x,y].fore > Y(t)[x,y].fore;
  X(t+1)[x,y].fore < Y(t+1)[x,y].fore
が成立すれば、時刻tから時刻t+1にかけてオブジェクトiがオブジェクトjの後から前にすり抜けて出てきた、と考えられる。
 そこで、このような「すり抜け」が生じる場合には、オブジェクトの衝突が生じた、と判定する。
 これらの条件によるオブジェクトi,jの衝突判定では、オブジェクトi,jが、その前面のみの形状からなる、と想定している。オブジェクトが薄板状のオブジェクトである場合には、オブジェクトの厚みはゼロであり、オブジェクトの前面とオブジェクトの背面とが一致する、と考えることができる。したがって、これらの手法によって衝突判定を行うことにより、簡易かつ高速な判定が可能となる。
 図2Aは、図1に示すオブジェクト14の断面図であり、図2Bは、オブジェクト14の前面を表す断面図である。以下、本図を参照して説明する。
 図2Aに示す通り、オブジェクト14は厚みを持ち、その断面には広がりがある。
 しかしながら、2.5次元動画に含まれる情報によってオブジェクト14を表現すると、図2Bに示す通り、その形状はオブジェクト14の前面のみからなる面状オブジェクトとなってしまう。なお、本図は断面図であるから、面状オブジェクトは曲線により表現されている。
 したがって、オブジェクト同士の衝突判定をより正確に行うためには、図2Bに示すような面状オブジェクトの情報から、オブジェクト14の背面の形状を設定あるいは推定する必要がある。
 ここで、オブジェクト14の前面までの奥行は2.5次元動画に付随する情報により得られているから、オブジェクト14の厚みを知るためには、オブジェクト14の背面までの奥行が得られれば良い。
 以下、動画Xにおいてある時刻tに画素X(t)[x,y]に描かれたオブジェクトの背面までの奥行を、X(t)[x,y].backと表記し、この背面奥行を取得する手法について説明する。
 第1の手法は、各オブジェクトについて、前面と背面との距離をユーザがあらかじめ設定する、というものである。
 すなわち、動画Xにおけるオブジェクトiについての前面と背面との距離(厚み)が定数thick(i)と設定されていれば、
  X(t)[x,y].back = X(t)[x,y].fore + thick(X(t)[x,y].id)
とするものである。
 図2Cは、厚みを一定とすることにより背面の形状を推定したオブジェクトの断面図である。本図に示す通り、オブジェクト14の背面は、オブジェクト14の前面を、撮影方向16に平行移動した形状となっている。
 このほか、オブジェクトiについての代表的な前面奥行を定め、これにthick(i)を加算したものを背面奥行とする、という手法がある。
 ある時刻tにおけるオブジェクトiの代表的な前面奥行repfore(X,t,i)としては、以下のようなものが考えられる。
(1)オブジェクトiの前面奥行の最大値を採用する。
  repfore(X,t,i) = maxx,y;X(t)[x,y].id=i X(t)[x,y].fore
(2)オブジェクトiの前面奥行の平均値を採用する。
  repfore(X,t,i) = avgx,y;X(t)[x,y].id=i X(t)[x,y].fore
 ここで、maxやavgは、その添字部分において、セミコロンの前に並べられた変数を、セミコロンの後に置かれた条件を満たす範囲で変化させたときの、本体部分の値の最大値や平均値を意味する。なお、条件として「常に成立する」を採用する場合には、変数のみを添字部分として表記する。
 すなわち、上記(1)(2)では、与えられたX,t,iの下で、X(t)[x,y].id=iを満たすx,yの組み合わせを列挙し、その組み合わせのそれぞれについてX(t)[x,y].foreの値を求めて、その最大値や平均値を求めることになる。
 このように定められたrepfore(X,t,i)を用いれば、画素X(t)[x,y]にオブジェクトiが描かれているとき(i = X(t)[x,y].id)の画素X(t)[x,y]の背面奥行は、
  X(t)[x,y].back = repfore(X,t,i) + thick(i)
あるいは、
  X(t)[x,y].back = max〔repfore(X,t,i)
+ thick(i),X(t)[x,y].fore〕
のように定めることができる。ここで、max〔...〕は、括弧内に並べられた値の最大値を意味する。
 図2Dは、オブジェクトの代表的な前面奥行を求め、これに厚みを加算したものを背面奥行とすることにより、オブジェクトの背面の形状を推定したオブジェクトの断面図である。本図に示す通り、オブジェクト14の背面は、撮影方向16に垂直な平面となっており、オブジェクト14は、撮影方向16に伸びる柱状の形状により近似されることになる。
 このほか、時点tにおけるオブジェクトiの代表点を定め、当該代表点を中心とする球面により、背面を近似する手法もある。
 まず、動画X内で時刻tにおいてオブジェクトiが描画されている領域の画素数area(X,t,i)を以下のように求める。
  area(X,t,i) = Σx,y;X(t)[x,y].id=i 1
ここで、Σの添字は、maxやavgと同じ意味を有する。
 時刻tにおけるオブジェクトiの代表点の水平座標xc(X,t,i)および垂直座標yc(X,t,i)は、以下のように定められる。
  xc(X,t,i) = Σx,y;X(t)[x,y].id=i x/area(X,t,i);
  yc(X,t,i) = Σx,y;X(t)[x,y].id=i y/area(X,t,i)
 また、動画X内で時刻tにおいてオブジェクトiが描画されている領域の幅w(X,t,i)および高さh(X,t,i)は、以下のように定められる。
  w(X,t,i) = maxx,y;X(t)[x,y].id=i x - minx,y;X(t)[x,y].id=i x;
  h(X,t,i) = maxx,y;X(t)[x,y].id=i y - minx,y;X(t)[x,y].id=i y
 球面の直径D(X,t,i)は、たとえば、以下のような、種々の定め方がありうる。
  D(X,t,i) = max〔w(X,t,i),h(X,t,i)〕;
  D(X,t,i) = (w(X,t,i)2+h(X,t,i)21/2
  D(X,t,i) = area(X,t,i)1/2
  D(X,t,i) = maxx,y;X(t)[x,y].id=i ((x-xc(X,t,i))2+(y-yc(X,t,i))2)1/2
  D(X,t,i) = avgt area(X,t,i)3/2/area(X,t,i)
 なお、avgt area(X,t,i)は、動画Xにおいてオブジェクトiが描かれている領域の時間平均を意味する。したがって、avgt
area(X,t,i)3/2は、オブジェクトiが占める体積の推定値に相当し、これをarea(X,t,i)で割ることで、奥行長の推定値が得られることになる。
 さて、直径D(X,t,i)が定まれば、代表点の奥行座標zc(X,t,i)は、以下のように定めることができる。
  zc(X,t,i) = X(t)[xc(X,t,i),yc(X,t,i)].fore +
D(X,t,i)/2
 このほか、単純に以下のように定めても良い。
  zc(X,t,i) = X(t)[xc(X,t,i),yc(X,t,i)].fore
 すると、画素X(t)[x,y]にオブジェクトiが描かれているとき(i = X(t)[x,y].id)の画素X(t)[x,y]の背面奥行は、
  X(t)[x,y].back = max〔zc(X,t,i)+〔max〔(D(X,t,i)/2)2-(x-xc(X,t,i))2-(y-yc(X,t,i))2〕,0〕1/2,X(t)[x,y].fore〕
のように定めれば、球面により近似したことになるし、
  X(t)[x,y].back = max〔zc(X,t,i)+D,X(t)[x,y].fore〕
のように定めれば、円柱により近似したことになる。
 図2Eは、オブジェクトの背面の形状を球面と推定したオブジェクトの断面図である。本図に示す例では、オブジェクト14の背面は、代表点21を中心とする球面となっているが、オブジェクト14の前面から球面までは、撮影方向16に伸びる柱状の形状により近似されている。
 このほか、オブジェクトの背面奥行の推定の手法として、オブジェクトの種類等を表す属性と、その属性に対する奥行長と、を関連付けて記憶するデータベースを利用することも可能である。
 このデータベースでは、属性「人」に対して奥行長が「○○cm」、属性「飛行機」に対して奥行長が「○○m」等のように、関連付けがなされている。そして、動画に描かれるオブジェクトの外観から画像認識により推定した属性や、ユーザがオブジェクトを個別に選択して設定した属性から、オブジェクトの奥行長を取得するのである。
 なお、オブジェクトが「タンス」や「洗濯機」などのように、電子商店街で販売されている商品である場合には、属性に対するオブジェクトの奥行長を、商品詳細に記載された商品のサイズの情報から取得することも可能である。
 オブジェクトの奥行長が得られれば、これと上記の各種の手法を組み合わせることで、オブジェクトの背面奥行を推定することが可能となる。
 ここまでは、移動するオブジェクトの背面奥行を設定、推定する手法について説明したが、背景に相当するオブジェクトについては、背面奥行は、∞と考えれば良い。すなわち、
  X(t)[x,y].id = 0
が成立する場合には、
  X(t)[x,y].back = ∞
とする。
 さて、時刻tにおける動画X内の画素X(t)[x,y]に描かれるオブジェクトX(t)[x,y].idが画素X(t)[x,y]において占有する奥行方向の占有区間は、前面奥行X(t)[x,y].foreから背面奥行X(t)[x,y].backまでとなる。
 ここで、同じ画素位置に描かれる2つのオブジェクトの前面奥行から背面奥行までの占有区間に重複があれば、当該2つのオブジェクトは衝突していることになる。
 したがって、いずれかのt,x,yにおいて、
  X(t)[x,y].id = i;
  Y(t)[x,y].id = j
であり、かつ、
  (1)X(t)[x,y].fore≦Y(t)[x,y].fore≦X(t)[x,y].back;
  (2)X(t)[x,y].fore≦Y(t)[x,y].back≦X(t)[x,y].back;
  (3)Y(t)[x,y].fore≦X(t)[x,y].fore≦Y(t)[x,y].back;
  (4)Y(t)[x,y].fore≦X(t)[x,y].back≦Y(t)[x,y].back
の4つのいずれか少なくとも1つが成立すれば、動画Xと動画Yを重ねたときに、動画Xに描かれるオブジェクトiと動画Yに描かれるオブジェクトjとが衝突する、と判定することができる。
 以下、2つの占有区間の重複量を、overlap(X,Y,t,x,y)と表記することとする。上記(1)-(4)のいずれも成立しなければ、overlap(X,Y,t,x,y)=0であり、overlap(X,Y,t,x,y)>0であれば、オブジェクトi,jは衝突することになる。
 具体的には、上記(1)の場合は、
  overlap(X,Y,t,x,y) = min〔X(t)[x,y].back,Y(t)[x,y].back〕-Y(t)[x,y].fore
であり、上記(2)の場合は、
  overlap(X,Y,t,x,y) = Y(t)[x,y].back-max〔X(t)[x,y].fore,Y(t)[x,y].fore〕
であり、上記(3)の場合は、
  overlap(X,Y,t,x,y) = min〔X(t)[x,y].back,Y(t)[x,y].back〕-X(t)[x,y].fore
であり、上記(4)の場合は、
  overlap(X,Y,t,x,y) = X(t)[x,y].back-max〔X(t)[x,y].fore,Y(t)[x,y].fore〕
である。ここで、min〔...〕は、max〔...〕とは逆に、括弧内の値の最小値を返す。
 なお、上記(1)-(4)のいずれかが成立し、かつ、overlap(X,Y,t,x,y)=0の場合には、オブジェクトi,jは、離間しているのではなく、互いに接する、と考えることができる。したがって、互いに喰い込んでしまう衝突と、表面が接するだけの衝突と、を、区別して判定することも可能である。
 このほか、衝突判定に、上記の占有区間そのものを用いるのではなく、その上限や下限にマージンを持たせて占有区間を少し広げてから、重複があるか否かを調べることとしても良い。この場合には、オブジェクトi,jの衝突判定にマージンを持たせたことになり、オブジェクトi,jは、ある程度の距離離れていなければ、衝突する(おそれがある)と判定されることになる。
 一方で、上記のマージンを負にすれば、少々食い込むような衝突を許容できるようになる。これは、オブジェクトに弾性があり、凹むことが想定される場合等に好適である。
 図3は、本実施形態に係る動画処理装置において、衝突判定を行う要素の概要構成を示す説明図である。以下、本図を参照して説明する。
 本図に示すように、動画処理装置101のうち、衝突判定を行う要素は、背面奥行取得部102、および、衝突判定部103からなる。
 動画処理装置101は、第1動画Xおよび第2動画Yを処理の対象とする。たとえば、
 (a)第1動画Xとして、現実世界においてダンサーがダンスをしている様子を撮影した2.5次元画像を採用し、
 (b1)第2動画Yとして、キャラクターが無背景で踊っている様子を表す動画を採用したり、
 (b2)第2動画Yとして、他のユーザがダンスをしている様子を撮影した後に当該他のユーザが編集を行い、背景の情報をすべて除去して、当該他のユーザが無背景で踊っている様子を表す動画を採用する。
 なお、本実施態様における動画処理装置101は、最終的には、ダンサーがキャラクタあるいは他のユーザと一緒に踊っている第3動画を合成する。
 このため、まず、動画処理装置101は、第1動画Xに描かれた第1オブジェクトiと、第1動画Xに重ねられるべき第2動画Yに描かれた第2オブジェクトjと、の衝突を判定する。動画処理装置101は、典型的には、コンピュータでプログラムを実行することによって実現される。
 ここで、第1動画Xは、第1動画Xに描かれている側の第1オブジェクトiの第1前面奥行を伴い、第2動画Yは、第2動画Yに描かれている側の第2オブジェクトjの第2前面奥行を伴う。
 上記の表記を用いれば、第1動画Xに含まれる時刻tのフレームX(t)において位置[x,y]の画素に第1オブジェクトiが描かれていれば、X(t)[x,y].id = iであり、その第1前面奥行は、X(t)[x,y].foreである。
 第1動画Xは、移動するオブジェクトのみからなるものとしても良いし、背景を含むものとしても良い。前者の場合には、第1オブジェクトとしてi>0のものを採用することになるし、後者の場合には、第1オブジェクトとしてi≧0のものを採用することになる。
 また、第2動画Yに含まれる時刻tのフレームY(t)において位置[x,y]の画素に第2オブジェクトjが描かれていれば、Y(t)[x,y].id = jであり、その第2前面奥行は、Y(t)[x,y].foreである。
 第2動画Yにおいて衝突判定の対象となるオブジェクトは、背景は含まないものとする。すなわち、第2オブジェクトとしては、j>0のものを採用することになる。
 まず、背面奥行取得部102は、第1動画Xに描かれていない側の第1オブジェクトiの第1背面奥行と、第2動画Yに描かれていない側の第2オブジェクトjの第2背面奥行と、を取得する。
 上記の表記を用いれば、背面奥行取得部102は、時刻t、位置[x,y]のうち、X(t)[x,y].id = iを満たすものについて、上記の手法により、第1背面奥行X(t)[x,y].backを求める。また、背面奥行取得部102は、時刻t、位置[x,y]のうち、Y(t)[x,y].id
= jを満たすものについて、上記の手法により、第2背面奥行Y(t)[x,y].backを求める。
 一方、衝突判定部103は、オブジェクト同士の干渉を判定する干渉判定部として機能する。そして、衝突判定部103は、第1動画Xと、第2動画Yと、が重ねられることによって、第1オブジェクトiが描かれるべき第1描画領域と、第2オブジェクトjが描かれるべき第2描画領域と、が重なり、かつ、第1描画領域と、第2描画領域と、が重なる重複領域において、第1オブジェクトiの第1前面奥行から第1背面奥行までの第1占有区間と、第2オブジェクトjの第2前面奥行から第2背面奥行までの第2占有区間と、が重なれば、第1オブジェクトと、第2オブジェクトと、が衝突する、と判定する。
 上記の表記を用いれば、ある時刻tにおける第1描画領域とは、X(t)[x,y].id
= iを満たす位置[x,y]の集合であり、ある時刻tにおける第2描画領域とは、Y(t)[x,y].id = jを満たす位置[x,y]の集合である。これらの集合の共通部分が空集合でなければ、時刻tにおいて、第1描画領域と、第2描画領域と、が重なることになり、これらの集合の共通部分が時刻tにおける重複領域に相当する。
 時刻tにおける重複領域の要素である位置[x,y]については、明らかに
  X(t)[x,y].id = i;
  Y(t)[x,y].id = j
が成立する。
 この位置[x,y]において、第1オブジェクトiは、奥行として、X(t)[x,y].foreからX(t)[x,y].backまでの第1占有区間を占有する。また、第1オブジェクトjは、Y(t)[x,y].foreからY(t)[x,y].backまでの第2占有区間を占有する。
 第1占有区間と、第2占有区間と、が、重なる場合、すなわち、第1占有区間に第2前面奥行もしくは第2背面奥行が含まれ、または、第2占有区間に第1前面奥行もしくは第1背面奥行が含まれる場合には、時刻t、位置[x,y]において、第1オブジェクトiと、第2オブジェクトjと、は、衝突する、と判定されることになる。
 上記の説明では、時刻tにおけるフレームにおいて、第1オブジェクトiが描かれる第1描画領域と、第2オブジェクトjが描かれる第2描画領域と、が重なれば、背面奥行の情報を利用して、当該時刻tにおけるフレームにおける第1オブジェクトiと第2オブジェクトjとの衝突判定を行うものとしている。
 したがって、動画全体において衝突が生じないことを確認するためには、第1動画Xおよび第2動画Yの全フレームについて、順次tを設定して、上記の衝突判定を行うこととすればよい。
 図4は、本実施形態に係る衝突判定処理の流れを示すフローチャートである。以下では、本図を参照して、本実施形態に係る動画処理装置101にて実行される衝突判定処理について説明する。
 まず、動画処理装置101は、衝突判定の対象となる第1動画Xと第2動画Yとを受け付ける(ステップS151)。第1動画Xと第2動画Yにはオブジェクトが描かれており、オブジェクトの奥行情報が付随している。
 ついで、第1動画Xおよび第2動画Yのフレームを先頭から順に走査する処理を繰り返す(ステップS152)。
 すなわち、現在走査しているフレームにおいて、第1動画Xにおいてオブジェクトが描かれている領域と、第2動画Yにおいてオブジェクトが描かれている領域と、に、重なりがあるか否かを判定する(ステップS153)。重なりがなければ(ステップS153;No)、ステップS157に進んで、処理を繰り返す。
 重なりがあれば(ステップS153;Yes)、当該描画領域に重なりがある第1動画X内のオブジェクト(上記の「第1オブジェクト」に相当する。)の奥行情報と、第2動画Y内のオブジェクト(上記の「第2オブジェクト」に相当する。)の奥行情報と、を、取得する(ステップS154)。
 そして、当該奥行情報から得られるオブジェクトの占有区間に、重なりがあるか否かを判定する(ステップS155)。重なりがなければ、ステップS157に進んで、処理を繰り返す。
 重なりがあれば(ステップS155;Yes)、第1動画Xに描かれたオブジェクトと、第2動画Yに描かれたオブジェクトと、が、衝突する旨の判定結果を出力して(ステップS156)、本処理を終了する。
 ステップS152-S157の繰り返しが終了したら、第1動画Xに描かれたオブジェクトと、第2動画Yに描かれたオブジェクトと、が、衝突することはない旨の判定結果を出力して(ステップS158)、本処理を終了する。
 なお、上記の説明では、理解を容易にするため、第1動画Xには第1オブジェクトだけが1つ描かれ、第2動画Yには第2オブジェクトだけが1つ描かれている状況を想定しているが、オブジェクトが複数となる場合には、各オブジェクトについて同様の処理を繰り返せば良い。
 また、上記の説明では、全フレームについて、描画領域の重複ならびに奥行情報に基づく占有区間の重複の判定を行っているが、フレーム数が多い場合には、適宜間引きを行うことも可能である。
 たとえば、当初は等間隔にスキップしながらフレームを選び、第1描画領域と第2描画領域が重なるかを判定し、重なる場合は、その前後でのフレームの間引きをやめる、という手法を採用すれば、動画全体の衝突判定に要する計算時間を節約することができる。
 さて、一般に、「いずれかの時刻、いずれかの位置において、第1動画Xに描かれたいずれかのオブジェクトと、第2動画Yに描かれたいずれかのオブジェクトと、が、衝突する」と判定されなかった場合、すなわち、衝突が一切生じない場合には、第1動画Xに第2動画Yを重ねても、オブジェクトの前後関係に矛盾が生じることはない。したがって、第1動画Xに第2動画Yを重ねた第3動画superimpose(Y,X)を求めることができる。
 一方、「いずれかの時刻、いずれかの位置において、第1動画Xに描かれたいずれかのオブジェクトと、第2動画Yに描かれたいずれかのオブジェクトと、が、衝突する」と判定された場合には、第1動画Xと第2動画Yとを重ねることはできない。したがって、以下に開示するような工夫が必要となる。
 本実施例は、ユーザが、マウスを用いたドラッグアンドドロップ操作等により、第1動画Xに対して第2動画Yをずらしてから重ねる際のユーザインターフェースを工夫するものである。
 本実施例では、理解を容易にするため、ユーザのドラッグアンドドロップ操作により、第1動画Xに対して第2動画Yをずらしてから重ねるための上下左右の平行移動量を指定する場合を想定する。ただし、本実施例の操作体系は、必ずしもドラッグアンドドロップに限られるものではなく、タッチスクリーンに対するスライド動作や、クリック操作を2回繰り返す操作等、種々の指示入力操作を採用することによってドラッグアンドドロップにかえることも可能である。
 図5Aは、ドラッグが開始される以前の画面の様子を示す説明図であり、図5Bは、ドラッグが開始される時点の画面の様子を示す説明図であり、図5Cは、ドラッグの途中の時点の画面の様子を示す説明図であり、図5Dは、ドロップがされた時点の画面の様子を示す説明図である。
 また、図6は、動画処理装置101のドラッグアンドドロップ処理に係る部分の概要構成を示す説明図である。図7は、本実施例に係る動画処理装置101によって実行されるドラッグアンドドロップ処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
 本実施例に係るドラッグアンドドロップ処理では、動画処理装置101において、ずらし量設定部104、ならびに、動画生成部105が、ユーザのドラッグアンドドロップ操作に基づいて動作する。
 動画処理装置101は、第1動画Xに対して第2動画Yをずらしてから重ねる際に、オブジェクトの位置関係が所定の位置条件を満たすようにするため、位置条件を満たすか否かを判定するための干渉判定部を備える。
 ただし、本実施例では、位置条件として、オブジェクトの衝突が生じないことを採用するため、干渉判定部として、上記の衝突判定部103を採用して、その判定結果を利用している。本図では、なお、衝突判定部103に先立つ背面奥行取得部102は図示を省略している。
 後述するように、位置条件として、オブジェクトが干渉しない、すなわち、干渉条件を満たさないことに加えて、さらに他の条件、たとえば、特定のオブジェクト同士がぎりぎりまで近接する等を設定することも可能である。上述の衝突判定部103による判定結果は、オブジェクトの干渉以外の位置関係を参照した位置条件の判定にも利用することができる。
 また、本図に図示されている修正部106は、オブジェクト同士の干渉が生じないように、第2動画Yをずらすずらし量を「ずらしなし」から修正する要素である。
 まず、修正部106は、第1動画Xの代表的なフレームと、第2動画Yの代表的なフレームと、を、画面に表示する(ステップS181)。たとえば、図5Aに示すように、画面401内には、第1動画Xのウィンドウ411と、第2動画Yのウィンドウ412と、カーソル413と、が表示される。
 たとえば、各動画の最初のフレームを代表的なフレームとして採用するのが最も簡易な手法である。このほか、第1動画Xと第2動画Yとが時間的にずれている場合には、同期させるフレームをユーザが選択して、代表的なフレームとすれば良い。この場合は、同期させるフレームの経過時間の差が、第2動画Yを時間ずらしするためのずらし量に相当する。
 本図では、第1動画Xは背景付きの動画であり、ウィンドウ411の縁は実線で描かれている。一方、第2動画Yは背景なしの動画であり、ウィンドウ412の周縁は透明色で描かれ、その縁も点線で描かれている。なお、ウィンドウ412の縁は、必ずしも画面401に表示する必要はない。この場合には、ユーザには、あたかも、第2動画Y内に描かれた背景でないオブジェクトのみが、画面401に表示されているかのように見えることになる。
 ついで、動画処理装置101は、ユーザによる第2動画Yのウィンドウ412内のクリック動作(ドラッグの開始)を受け付ける(ステップS182)。ここで、図5Bに示すように、ユーザがマウスを用いてカーソル413を移動させ、第2動画Y内の位置[s,t]をクリックしたとする。
 さらに、動画処理装置は、ユーザによるドラッグが継続している間(ステップS183;Yes)、これに応じて、第2動画Yのウィンドウ412の表示位置を移動する(ステップS184)。たとえば、ユーザが、図5Cに示すように、クリックを維持したままカーソル413を移動させると、カーソル413が第2動画Y内の位置[s,t]を指したままとなるように、ウィンドウ412全体が移動される。
 さて、ユーザが、図5Dに示すように、カーソル413を第1動画X内の位置[u,v]まで移動させて、クリックをやめ、ウィンドウ412をウィンドウ411にドロップしたとする。
 すると、第1動画X内の位置[u,v]と、第2動画Y内の位置[s,t]と、が重なることになる。したがって、ユーザは、第2動画Yを、水平方向にu-s、垂直方向にv-tだけ移動するような変換を行ってから、第1動画Xに重ねようとしていると考えられる。
 このように、ユーザによるドラッグが終わると(ステップS183;No)、動画処理装置101のずらし量設定部104は、ずらし量として、水平方向u-s、垂直方向v-tを設定する(ステップS185)。すなわち、動画処理装置101は、ユーザが、第1動画Xに対して、第2動画をフレームに平行に上下左右に移動することにより得られる動画move(u-s,v-t,Y)を、重ねようとしている、と解釈する。
 そこで、動画処理装置101は、衝突判定部103を利用して、第1動画Xに描かれたオブジェクトと、第2動画Yをずらした中間動画move(u-s,v-t,Y)に描かれたオブジェクトと、が、いずれかのフレーム時刻、いずれかのフレーム内位置において衝突するか、それとも、衝突が一切生じないか、を判定する(ステップS186)。
 図5Cに示すドロップ操作の結果、衝突が一切生じない場合(ステップS186;No)、動画処理装置101の動画生成部105は、合成により第3動画superimpose(move(u-s,v-t,Y),X)を出力して(ステップS187)、本処理を終了する。
 このような構成により、ユーザは、動画Yに描かれたオブジェクトが動画X内のオブジェクトとは衝突しないように位置付けた第3動画を得ることができる。第3動画では、動画Yに描かれたオブジェクト同士の衝突が生じないから、オブジェクト同士が互いに噛み合ってしまうような不自然な描写を防止することができる。
 一方、図5Cに示すドロップ操作をしたとしても、衝突が生じてしまう場合には(ステップS186;Yes)、動画処理装置101は、音声や振動、画面表示などで警告を発して(ステップS188)、本処理を終了し、新たな動画は出力しない。すなわち、ユーザの指示が適切であれば、第3動画が生成されるが、不適切であれば、警告が生じるのみで第3動画が生成されない。
 なお、上記の各種の変換は、フレーム単位で行われる。したがって、ある動画に変換を施して別の動画を得る際に、全フレームに対するmove等の変換処理をまとめて行ってから、衝突判定等の他の計算処理を実行しても良いし、変換処理をデマンドドリブンに行う遅延評価を採用しても良い。
 以降の実施例を含め、変換処理をデマンドドリブンに行うのであれば、あるフレームについての重複判定等を行う必要があって初めて、当該フレームについての変換が行われることになる。したがって、衝突が一切生じないという結論を得るためには、全フレームについての変換が必要であるが、動画の途中のフレームで衝突が判明した場合には、以降のフレームに対する変換処理は実行されない。
 このほか、ドラッグアンドドロップによりずらし量を指定する手法では、ずらし量は、ドロップされた第2動画Y用のウィンドウ412の位置が、第1動画X用のウィンドウ411の位置に対してどれだけずれているか、により表現される。ただし、ずらし量は、第2動画Yに対して適用される量であるから、ずらし量の入力に際しては、第1動画Xとの対比は必須ではない。したがって、ユーザがキーボードを利用して直接数値を入力したり、マウスなどを利用して視覚的にずらし量を入力する手法を採用しても良い。
 以下では、ユーザの指示が不適切である場合に、単に警告を発するのにかえて、自動調整を行う手法について説明する。
 本実施形態は、ユーザから指定された第2動画Yの平行移動量では、第1動画Xのオブジェクトと第2動画Yのオブジェクトが衝突してしまう場合に、その衝突を避けたり、第2動画Yのオブジェクトが第1動画Xの床や天井に接しているかのように配置するための自動調整を行うものである。
 この自動調整では、第2動画Yを上下左右に平行移動しては衝突が生じるかを判別する試行を少なくとも一回、多くの状況では複数回繰り返して実行する。この処理は、動画処理装置101の修正部106が行う。図8は、本実施例に係る自動調整処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
 一回の試行における上下左右の移動量は、水平方向Δp、垂直方向Δqで表記することとする。Δp,Δqに定数を採用した場合には、第2動画Yをあらかじめ設定された方向にずらしながら調整することになる。
 理解を容易にするため、図5A乃至図5Dと同様に、ユーザが第2動画Y内の位置[s,t]をクリックし、クリックを維持したまま第1動画X内の位置[u,v]までドラッグした後に、クリックをやめてドロップした場合を考える。
 この場合、本実施例の動画処理装置101は、以下の処理を行う。
 まず、動画処理装置101のずらし量設定部104は、変数pの初期値としてuを、変数qの初期値としてvを、それぞれ設定する(ステップS191)。これにより、水平方向のずらし量の初期値としてp-s = u-sが、垂直方向のずらし量の初期値としてq-t = v-tが、それぞれ設定されたことになり、ずらし量設定部104は、初期値設定部として機能する。
 次に、動画処理装置101の衝突判定部103は、位置条件「第1動画Xと、設定されたずらし量だけ第2動画Yをずらした中間動画move(p-s,q-t,Y)と、の間でオブジェクト衝突が生じない」が成立するか否かを判定する(ステップS192)。
 成立すれば(ステップS192;Yes)、動画生成部105は、合成により第3動画superimpose(move(p-s,q-t,Y),X)を出力して(ステップS193)、本処理を終了する。
 一方、成立しなければ、修正部106は、変数pの値をΔpだけ増やし、変数qの値をΔqだけ増やす(ステップS194)。これにより、ずらし量が微小に更新される。
 そして、動画Yの平行移動量(p-s,q-t)が大きくなりすぎた場合や、繰り返し回数が所定の閾値を超えた場合等、断念条件が満たされた場合には(ステップS195;Yes)、衝突が避けなれないと判断し、警告を発して(ステップS196)、本処理を終了する。
 一方、断念条件が満たされず、繰り返しを継続する場合(ステップS195;No)、動画処理装置101の制御は、ステップS192に戻る。
 さて、多くの動画の座標系では、垂直方向の座標値を大きくする方向は、画面下向きの方向に相当する。第2動画Yに描かれているオブジェクトを画面の下方向に移動させて配置するには、(Δp,Δq) = (0,1)と設定すれば良い。
 また、当初は、(Δp,Δq) = (0,1)に設定して、上記の自動調整処理を実行した結果、衝突が避けられないと判定された場合には、(Δp,Δq) = (0,-1)に再設定して、同様の自動調整処理を再度実行することとしても良い。
 これは、まず、上から下へ移動しながら衝突が避けられる平行移動量を探し、見つからなければ、今度は、下から上へ移動しながら衝突が避けられる平行移動量を探すことに相当する。
 さて、上記の説明では、干渉判定部として、単に衝突判定部103を採用している。これは、オブジェクト同士の位置関係について、オブジェクト衝突が生じない、という位置条件を課したことに相当する。しかしながら、衝突判定部103による判定結果を利用すれば、干渉判定部における位置条件として他の条件を採用することもできる。
 たとえば、位置条件を『「第1動画Xと動画move(p-s,q-t,Y)との間でオブジェクト衝突が生じない」かつ「第1動画Xと動画move(p-s,q+1-t,Y)との間でオブジェクト衝突が生じる」』に変更することもできる。このように変更すると、第2動画Yに描かれたオブジェクトを第1動画Xに重ねる際に、第2動画Yに描かれたオブジェクトが地面にほぼ接するように位置合わせしたことになる。
 また、位置条件を、『「第1動画Xと動画move(p-s,q-t,Y)との間でオブジェクト衝突が生じない」かつ「第1動画Xと動画move(p+Δp-s,q+Δq-t,Y)との間でオブジェクト衝突が生じる」』に変更することもできる。
 この場合には、ある方向への平行移動量を探す際には、できるだけ先に進むように設定して、試行を繰り返すことになる。たとえば、上から下へ移動する際には、第2動画Yのオブジェクトが第1動画Xの床に接するまで移動することになり、下から上に移動する際には、第2動画Yのオブジェクトが第1動画Xの天井に接するまで移動することになる。
 なお、第1動画Xに地面が描かれており、第2動画Yに平面上を移動するオブジェクトが描かれていて、第1動画Xにおけるカメラの地面に対する向きが第2動画Yにおけるカメラの平面に対する向きにほぼ一致する場合等には、上記の処理を行えば、第2動画Yに描かれたオブジェクトを第1動画Xに重ねる際に、第2動画Yに描かれたオブジェクトが地面にほぼ接するか、もしくは、地面から離間して浮くように位置合わせしたことになる。
 ここで、第1動画Xに描かれているオブジェクトが地面や天井、壁などのように静止しているオブジェクトであることがわかっている場合がある。たとえば、事前にユーザがあるフレームにおいてオブジェクトを指定したことにより確定している場合、ユーザによる過去の編集履歴によりわかっている場合、第1動画Xの各フレームを対比することによりわかっている場合等である。
 この場合には、位置条件を上記のように設定することは、合成されるオブジェクトが、3次元空間において占めることができる可動範囲を設定したことを意味する。すなわち、「オブジェクトは、衝突さえしなければ宙に浮いていても良い」「オブジェクトは、床や地面に接している」「オブジェクトは、天井に接している」など、3次元空間におけるオブジェクトの可動範囲の条件を課した動画合成を行うことができる。
 さて、上記のように、(Δp,Δq)は、第2動画Yに描かれるオブジェクトの描画位置の変位を表すベクトルであり、この向きを設定することによって、移動方向や移動量を適宜変更することが可能である。
 上記の態様では、第2動画Yをあらかじめ設定された方向に沿って移動してから第1動画Xに重ねることで、第1動画Xおよび第2動画Yに描かれたオブジェクトが互いに衝突しないような新たな動画を生成することとしており、動画Yの上下方向のみの平行移動を想定していた。
 しかしながら、上記のような移動を行った後に、位置条件を満たしつつも、ずらし量とユーザに設定された初期値との相違が最小となるように、ずらし量を修正しても良い。この場合には、ユーザの指定に最も近いずらし量が採用されることになる。
 また、(Δp,Δq)の方向として、第1オブジェクトの代表点と、第2オブジェクトの代表点と、の、ベクトル差を採用することもできる。この場合には、第2オブジェクトが、第1オブジェクトに近付く方向、もしくは、第1オブジェクトから遠ざかる方向に移動するような平行移動がなされることになる。
 これらの手法をさらに進めて、評価関数を適切に定め、これを最小化することで、オブジェクトの衝突を避ける手法を採用しても良い。ここでは、オブジェクトが衝突するときの「衝突量」を最小化することを考える。
 ここで、動画Xと動画Yとの衝突量を、動画Xと動画Yにおいて衝突するオブジェクトが描画されている衝突領域の面積の総和と考えると、当該衝突量は、
  collision(Y,X) =Σt,x,y;X(t)[x,y].id≧0,Y(t)[x,y].id>0,overlap(X,Y,t,x,y)>0 1
によって計算が可能である。
 また、衝突するオブジェクトが3次元空間において重複している体積の総和の推定量を衝突量とする場合には、
  collision(Y,X) =Σt,x,y;X(t)[x,y].id≧0,Y(t)[x,y].id>0,overlap(X,Y,t,x,y)>0 overlap(X,Y,t,x,y)
を採用することができる。このように計算される衝突量を評価関数とする。
 衝突量を最小化するには、未定変数の更新方向(Δp,Δq)をランダムウォーク、最急降下法、共役勾配法により定めたり、(Δp,Δq)の候補として、あらかじめ(1,0),(0,1),(-1,0),(0,-1)等を用意し、それぞれを採用した場合の衝突量の変化を求め、衝突量が最も減少するものを選択することによって、p,q等、動画Yをずらす程度を表す変数の値の更新を繰り返せば良い。
 たとえば、平行移動を行う場合には、s,t,u,vを上記のように定め、変数p,qの初期値をu,vとし、collision(move(p-s,q-t,Y),X)を最小化するp,qを求め、到達した最終点において、collision(move(p-s,q-t,Y),X)=0が成立すれば、オブジェクト同士の衝突を避けた平行移動量p-s,q-tを求めることができたことになる。
 このほか、上下左右の平行移動のほか、奥行方向の平行移動や回転、拡大縮小、時間ずらしを任意に組み合わせても良い。
 たとえば、上下左右と奥行方向の平行移動を組み合わせる場合には、s,t,u,vを上記のように定め、p,q,rの初期値をu,v,0とし、collision(push(r,move(p-s,q-t,Y)),X)を最小化するp,q,rを求める。
 水平軸および垂直軸周りの回転と平行移動を組み合わせる場合には、s,t,u,vを上記のように定め、p,q,θ,φの初期値をu,v,0,0とし、collision(rotver(φ,rothor(θ,move(p-s,q-t,Y))),X)を最小化するp,q,θ,φを求める。
 さて、極端な平行移動や回転が生じると、本来であればオブジェクトの背面の描画が必要となることがある。しかしながら、動画Yは2.5次元動画であるから、オブジェクトの背面の情報は持っていない。そこで、平行移動量p-s,q-t,rや回転量θ,φ,ψ等には、あらかじめ上限および下限を設けておくことで、動画Yのオブジェクトの移動が不自然に見えてしまうことを防止することができる。
 このほか、できるだけずらし量を小さくするため、平行移動量p-s,q-t,rや回転量θ,φ,ψ等の変換パラメータの絶対値あるいは自乗値に所定の整定数を乗じた値と上記の衝突量とを加算した結果を、評価関数としつつ、衝突量が0になるまで、変換パラメータの更新を続ける、という手法もある。変換パラメータの初期値をユーザが指定した値とした場合には、変換パラメータの変位を評価関数に組み込めば、ユーザが指定した値にもっとも近いずらし量を見つけることも可能である。
 さらに以下では、ユーザの指示により、奥行方向の平行移動量を調整するような態様を考える。
 まず、奥行方向の平行移動量を0としたまま、上記の手法で、オブジェクトが床に接するようにp,qを選ぶ。その結果、第1動画Xに動画move(p-s,q-t,Y)を重ねた動画が得られたものとする。
 この後、ユーザは、マウスのホイール操作等によって奥行方向の平行移動量rを指定する。
 そして、条件『「第1動画Xと動画push(r,move(p-s,q-t,Y))との間でオブジェクトが衝突しない」かつ「第1動画Xと動画push(r,move(p-s,q+1-t,Y))との間でオブジェクトが衝突する」』が満たされるまで、上記の態様と同様に、(Δp,Δq)を用いて変数(p,q)の更新を繰り返す。
 これらの態様を採用することにより、ユーザが指定した平行移動量だけ奥行移動をしつつも、オブジェクトは床に触れたままとした動画を生成することが可能となる。
 なお、自動調整の際には、まず、第1動画Xと第2動画Y(あるいは、第2動画Yをユーザの指示にしたがってずらした動画)を合成した第3動画Zを生成してしまう態様を採用することもできる。この態様では、合成の際に、第3動画Zにおける各画素がいずれのオブジェクトに由来するものであるか、ならびに、あるオブジェクトが別のオブジェクトを隠して描画されたものであれば、当該隠されたオブジェクトの当該隠された領域における画素値と奥行情報を別途保存しておく。
 そして、オブジェクトの衝突が生じないように、これらの保存した情報を参照しつつ、第3動画Zを修正するのである。なお、修正の際には、オブジェクトの奥行方向が変化することがありうる。この場合には、オブジェクトがフレーム内に描かれる際に拡縮を行うから、オブジェクトの外観の精度をできるだけ保つために、元の第2動画Yにおける画素情報を参照するようにしても良い。
 これらの態様は、上記の手法と比べると、情報の記憶手法を異なる態様とし、計算処理の順序の入れ換えを行っただけであり、その動作原理は実質的に同一であるとみなすことができる。
 このほか、衝突量は、オブジェクト同士の食い込みの量を示すものと考えられるから、「オブジェクト同士がある程度食い込んでも良い」という条件を課して動画の合成を行うことも可能である。
 さて、上記の種々の手法を採用したとしても、オブジェクトの衝突を避けられないことがある。このような場合には、以下に説明するような工夫が必要となる。
 上記の実施例では、ユーザが動画Yのオブジェクトの上下左右の平行移動量を指定して動画Xに重ねようとして、オブジェクトの衝突が生じてしまう場合に、警告を発する態様(実施例2)と、自動的に平行移動量を調整する態様(実施例3)と、を説明した。
 本実施例は、上記の実施例の両方に適用が可能なもので、ユーザがドロップ可能な領域、すなわち、ユーザのドロップ操作によってオブジェクトが衝突しない動画が生成されるようなドロップ位置からなる領域を、ユーザのドロップ操作の前に理解しやすく提示しようとするものである。
 ここでユーザに提示されるドロップ可能領域は、動画Yをずらす変換におけるずらし量を表す変換パラメータがとりうる可能範囲に相当する情報からなる。これらによって、第1動画Xに描かれる空間内において、第2オブジェクトが第1オブジェクトと干渉せずに存在しうる領域が表現されることになる。可能範囲は、修正部106が範囲設定部として機能することにより、設定される。
 図9Aは、ドラッグが開始される以前の画面の様子を示す説明図であり、図9Bは、ドラッグが開始される時点の画面の様子を示す説明図であり、図9Cは、ドラッグの途中の時点の画面の様子を示す説明図であり、図9Dは、ドロップがされた時点の画面の様子を示す説明図である。以下、これらの図を参照して説明する。
 図10は、ドロップ可能領域の強調表示処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
 まず、第2動画Yを水平方向、垂直方向にずらす際に採用可能な任意のずらし量の候補を添字とする配列FをRAM内に用意する(ステップS501)。なお、以下では添字として[ps,qt]を採用するが、ps,qtは、負の値をとることもありうる。すなわち、psは、第2動画Yの幅の符号を反転した値から第1動画Xの幅と第2動画Yの幅の和までの間の整数、qtは、第2動画Yの高さの符号を反転した値から第1動画Xの高さと第2動画Yの高さの和までの間の整数とすれば良い。
 そして、第2動画Yに対して、採用可能なずらし量の候補[ps,qt]について(ステップS501)、第1動画Xと、第2動画Yをずらした中間動画move(ps,qt,Y)との間で、オブジェクトの衝突判定を行い(ステップS502)、配列Fの要素F[ps,qt]に衝突判定の結果を代入する(ステップS503)処理を繰り返す(ステップS504)。
 この後、上記実施例と同様に、第1動画Xのウィンドウ411と、第2動画Yのウィンドウ412と、を画面に表示し(ステップS506)、ドラッグの開始を受け付ける(ステップS507)。
 ここで、ユーザがマウスを用いて、第2動画Y内の位置[s,t]をクリックしてドラッグが開始されたとする。
 ここで、第2動画Yの位置[s,t]が、第1動画X内の位置[p,q]にドロップされたとすると、第2動画Yをずらした中間動画は、move(p-s,q-t,Y)となる。
 したがって、第1動画Xと、中間動画move(p-s,q-t,Y)と、の間で、オブジェクトが衝突するか否かは、配列の要素F[p-s,q-t]を参照すれば良い。
 そこで、動画処理装置101は、第1動画X内の各位置[p,q]について(ステップS508)、F[p-s,q-t]の値に応じて、第1動画X内の各位置[p,q]の画素の色彩(彩度、明度、色相のいずれか、もしくは、これらの組み合わせ)を変化させる(ステップS509)処理を繰り返す(ステップS510)。
 これにより、ユーザによるドロップが可能な領域と、不可能な領域と、が、区別され、一方が強調表示されることになる。
 強調表示の手法としては、「強調表示すべき画素の色彩を変化させるが、それ以外の画素の色彩は変化させない」あるいは「強調表示すべき画素の色彩は変化させずに、それ以外の画素の色彩を変化させる」手法がありうる。
 上記実施例におけるこの後は、ステップS183に進めば良い。
 以下、実例を掲げて説明する。ドラッグを開始する前は、図9Aに示す通り、ウィンドウ411には、第1動画Xがそのまま描かれている。
 ドラッグが開始された瞬間に、動画処理装置は、ドロップが可能な領域を計算する。そして、図9Bに示すように、ウィンドウ411内のドロップ可能領域を強調表示する。本図では、強調表示はハッチングにより図示されている。
 ユーザは、図9Cに示すように、カーソル413をドロップ可能領域内にドラッグしてから、図9Dに示すようにドロップ処理を行えば、オブジェクトが衝突しない第3動画が得られることになる。
 上記の手法では、クリックをした後の強調表示の体感速度を向上させることができ、クリックをやり直した場合(図示せず)の再描画を高速に行うことができる。
 ただし、十分な計算速度が実現できる場合には、ユーザのドラッグ操作が開始され、[s,t]が確定してから第1画像X内の任意の位置[p,q]について、ずらし量[p-s,q-t]に基づく衝突判定を行い、強調表示をすることとしても良い。
 このように、ユーザは、第2動画Yに対するドラッグを開始すると、第1動画Xのどこにドロップ操作を行えば新たな動画が得られるか、が、容易にわかる。
 ここで、実施例3における平行移動量の自動調整は、ドロップ可能領域外にドロップがされてしまった場合に、ドロップ位置をドロップ可能領域内に修正することに相当する。
 本実施例では、動画Xのフレーム内のすべての位置について、ドロップ可能か否かが判定されるから、本実施例を採用した場合には、ドロップ可能領域外にドロップがされてしまったら、「ドロップ可能領域内のうちそのドロップ位置から最も近い点」や、「ドロップ可能領域内の中心点」などに、ドロップ位置を修正するだけで、上下左右の平行移動量の自動調整が可能となる。
 なお、ドロップ可能領域とドロップ可能領域外とを区切る境界に、ドロップ位置を修正する、ということは、第1動画のオブジェクトと、第2動画のオブジェクトと、が、互いに接触する瞬間があることを意味する。
 したがって、オブジェクトができるだけ床に接するようにするには、ドロップ可能領域の下限にドロップ位置を修正すれば良い、と考えられる。
 図9Eは、ドロップ後に、ドロップ位置の自動修正を行った様子を示す説明図である。本図に示すように、ウィンドウ412内の位置[s,t]は、ウィンドウ411内の位置[u,v]の下方の、ドロップ可能領域の下限に重なるように配置修正されている。
 本実施例によれば、ユーザがドロップ可能な位置を容易に理解できるようになるとともに、ドロップできない位置にドロップをした場合であっても、すでに計算された情報を利用して、容易にドロップ位置を修正できるようになる。
 さて、上記の実施例では、ドラッグアンドドロップというユーザインタフェースにより、水平方向、垂直方向のずらし量をユーザが指定することとしており、ドロップ可能領域を画面内に表示することにより、ずらし量がとりうる可能範囲を図示していた。以下では、水平方向、垂直方向、奥行方向のずらし量をユーザが指定する手法について説明する。
 この手法では、ウインドウ412内の位置[s,t]をクリックにより指定してマウスボタンを解放した後(図9Bに相当)、マウスボタンを離したままマウスを移動させてから(図9Cに相当)、もう一度ウィンドウ411内の位置[u,v]をクリックする(図9Dに相当)、というユーザインターフェースを採用する。
 そして、位置[s,t]のクリックから位置[u,v]のクリックまでの間に、ユーザがマウスのホイールを回転させれば、奥行方向のずらし量が変化するのである。
 上記のドラッグアンドドロップによる手法では、奥行方向のずらし量は、0に固定されているが、本手法では、奥行方向のずらし量の初期値が0に設定され、ホイールの回転量によって、ずらし量が増減する。
 ここで、奥行方向のずらし量が変化すれば、第2動画Xを奥行方向にずらした中間動画が第2動画Xのかわりに利用されることになる。したがって、ウィンドウ412そのものの大きさや、その中に表示されるオブジェクト413の大きさも変化する。さらに、第2オブジェクトの奥行方向の位置が変化することとなるから、「ドロップ可能領域(指定可能な位置[u,v]が含まれる領域)」も変化する。
 このため、図9Cに相当する状況でマウスホイールを回転させると、斜線で示される領域(指定可能な位置[u,v]が含まれる領域)の形状も変化することになる。
 なお、このような態様を採用する場合には、第1動画と第2動画の対応するフレーム同士における衝突を判定していると、高速な計算処理ができないことがある。これは、適切に衝突判定を間引くことで解決できる。
 もっとも簡易な間引きの手法は、ウィンドウ411に表示されている第1動画Xの代表フレームと、ウィンドウ412に表示されている第2動画Yの代表フレームと、の間だけで、衝突判定を行う、という手法である。
 このほか、第1動画Xについては、全フレーム、あるいは、数コマごとに間引いた各フレームにおいて、第1オブジェクトが占有している領域を集積し、集積された領域の和(union)を、第1オブジェクトの占有空間として、あらかじめ計算しておく、という手法もある。この際に、各第1オブジェクトの概形を表す直方体や球からなるバウンディングボックスを結合することにより、占有空間を求めることとすれば、計算をさらに簡易にすることが可能である。
 この手法では、あらかじめ計算された占有空間と、ウィンドウ412に表示されている第2動画Yの代表フレームに描かれている第2オブジェクトと、の間で、上記と同様の衝突判定を行う。その結果、衝突が生じる場合には、そのずらし量は、可能範囲には含まれないことがわかる。
 したがって、ウィンドウ412内の位置指定が終わった後や、マウスホイールの操作によって奥行方向のずらし量が変化した場合には、まず、上記のような簡易判定を行えば、ユーザに、指定不可能なずらし量を明示することができる。
 この後は、並行処理によってあらかじめ計算された占有空間と、ウィンドウ412に表示されている第2動画Yの代表フレームに描かれている第2オブジェクトと、の衝突判定を行って、指定不可能なずらし量を判別していく。この態様では、時間の経過とともに、当初ウィンドウ411に斜線で描かれていた可能範囲がだんだん狭くなっていくことになる。
 本手法は、合成相手の動画について占有空間をあらかじめ求め、ずらし量により修正される側の動画の各フレームとの衝突判定をしているが、これを入れ換えても良い。
 すなわち、動画Yに描かれたオブジェクトの占有空間をあらかじめ求め、この占有空間と動画Xの各フレームとの衝突判定を行うことで、動画Yのずらし量の可能範囲を求める、という手法である。この手法は、第1動画と第2動画との役割が入れ替わったものと考えることができる。
 衝突判定を間引く手法は、上記ドラッグアンドドロップによる手法にも適用が可能である。
 さて、占有空間を利用する手法では、第2オブジェクトが占有空間に接するように、ずらし量の可能範囲を設定することも可能である。この手法は、第1オブジェクトがほとんど動かない物体のときに、特に有用である。
 たとえば、第1オブジェクトとして、床や地面、道路、線路等を採用すると、床や地面の上を動く人を第2オブジェクトとしたり、道路上を移動する自動車を第2オブジェクトとしたり、線路上を移動する電車を第2オブジェクトとすることができる。
 上記のように、第1オブジェクトの属性(床、地面、道路、線路等)や第2オブジェクトの属性(人、自動車、電車等)は、ユーザの指定により、あるいは、画像認識によって取得することができる。
 また、「占有空間に接する」等のような第2オブジェクトの設置条件は、属性に対する設置条件としてデータベースに記録しておけば、各動画におけるオブジェクトの属性を設定するだけで、占有空間に対する設置条件を自動的に設定することが可能であり、オブジェクトが自然に移動する様子を設定できるようになる。
 動画Xに描かれるオブジェクトiの、3次元空間における代表点の座標は、上記のように、(xc(X,t,i),yc(X,t,i),zc(X,t,i))と表記することができる。これは時刻tによって変化する3次元の位置ベクトルpos[X,i](t)と見ることができる。
 上記の実施例では、動画Yに描かれているオブジェクトjを動画Xに重ねようとする際に、オブジェクトjが動画Xに描かれているオブジェクトに衝突してしまう場合には、動画Yを上下左右や奥行方向に平行移動したり、回転したり、時間ずらしをした動画Wを得て、動画Xに重ねていた。
 平行移動や回転等は、合同変換であるから、これらの変換のみを利用した場合には、オブジェクトjの軌跡である位置ベクトルpos[Y,j](t)と、位置ベクトルpos[W,j](t)と、は、向きや位置は異なるかもしれないが、形状は同じである。すなわち、軌跡を変形しない非変形変換が施されたため、軌跡pos[Y,j](t)と、軌跡pos[W,j](t)と、は、合同である。
 図11Aは、軌跡pos[X,i](t)と軌跡pos[Y,j](t)の様子を示す説明図である。
 図11Bは、軌跡pos[X,i](t)と軌跡pos[W,j](t)の様子を示す説明図である。
 これらの図では、横軸に各軌跡の水平方向の位置が、縦軸に時間の経過が図示されている。また、各軌跡には、そのオブジェクトの水平方向の広がりを示す細長い長方形が付してある。
 図11Bにおける軌跡pos[W,j](t)は、図11Aにおける軌跡pos[Y,j](t)を水平方向に移動したもので、両者の形状は合同である。
 動画Xのオブジェクトiと、動画Yのオブジェクトjと、が、時刻Tにおいて衝突していれば、図11Aに示すように、軌跡pos[X,i](t)と軌跡pos[Y,i](t)は、時刻Tにおいて近接しており、オブジェクトの水平方向の広がりを表す長方形が重なることになる。
 一方、動画Xのオブジェクトiと、動画Wのオブジェクトjと、の間では、衝突は生じない。したがって、図11Bに示すように、オブジェクトの水平方向の広がりを表す長方形に重なりはない。
 しかしながら、このような合同変換のみでは、衝突が避けられない場合もある。そこで、本実施例では、修正部106が、オブジェクトの軌跡を変形するような変形変換を動画に施すこととして、オブジェクト同士の衝突を防止する。
 以下では、背景を持つ動画Xに描かれているオブジェクトiの軌跡pos[X,i](t)そのものは変形せず、動画Xに重ねられる動画Yに描かれたオブジェクトjの軌跡pos[Y,j](t)を変形する手法について説明する。
 まず、軌跡を表す位置ベクトルpos[Y,j](t)が変形して位置ベクトルmorph(t)になったものとする。
 以下では、.x,.y,.zを付加することによって、位置ベクトルの各座標値を表記する。
 軌跡の変形によって、奥行は、morph(t).z/pos[Y,j](t).z倍になる。これは、時刻tにおいてオブジェクトjを動画Yのフレーム内でpos[Y,j](t).z/morph(t).z倍に拡大することを意味する。
 また、時刻tにおいてオブジェクトjは、水平方向および垂直方向にも移動される。その移動量は、それぞれ、(morph(t).x-pos[Y,j](t).x)×pos[Y,j](t).z/morph(t).z,(morph(t).y-pos[Y,j](t).y)×pos[Y,j](t).z/morph(t).zである。
 したがって、軌跡を変形した場合には、オブジェクトの選択、平行移動や拡大縮小を組み合わせることによって、あるオブジェクトの軌跡変形済みの動画を得ることができる。
 軌跡の変形がオブジェクト同士の衝突を避けるように行われていれば、軌跡変形済みの動画を重ね合わせることで、複数の動画に描かれていたオブジェクト同士が衝突せずに移動する様子を描いた1つの動画を生成することが可能となる。
 以下では、軌跡の変形の種々の手法について、説明する。
 第1の手法は、overlap(X,Y,t,x,y)>0が成立している時刻tにおいて、動画Yに含まれるオブジェクトj=Y(t)[x,y].idの代表点の位置pos[Y,j](t)を、動画Xに含まれるオブジェクトi=X(t)[x,y].idの代表点の位置pos[X,i](t)から遠ざかる方向、あるいは、軌跡pos[Y,j](t)の主法線ベクトルの方向に移動するように、オブジェクトjの軌跡を変形する処理を、時間前後における変形の度合の変化が小さくなるように繰り返して、いずれの時刻においてもoverlap(X,Y,t,x,y)=0が成立するようにするものである。
 図12A乃至図12Dは、処理を繰り返すことによって、軌跡が次第に変形していく様子を示す説明図である。以下、本図を参照して説明する。
 図12Aは、図11Aと同様に、軌跡pos[X,i](t)と、軌跡pos[Y,j](t)と、が、時刻Tで近接している。
 そこで、図12Bでは、衝突が生じないように、時刻Tにおけるオブジェクトjの位置を、修正している。
 この修正量が大きかったため、図12Cでは、時刻Tの前後T-1,T+1におけるオブジェクトjの位置を、図12Bにおける修正量よりも小さい量だけ、修正している。
 この修正量がまだ大きかったため、図12Dでは、前回の修正の前後T-2,T+2におけるオブジェクトjの位置を、図12Cにおける修正量よりも小さい量だけ、さらに修正している。
 これで修正は十分となり、図12Dに図示される軌跡が、最終的に得られた軌跡morph(t)に相当する。
 なお、隣接するフレームに対して伝播させる修正量は、自身のフレームに対する修正量に0以上1未満の定数を乗ずることにより減衰させ、修正量が所定の閾値より小さくなったら、伝播を終了させれば良い。
 なお、軌跡の変形の際には、上記のように時刻の前後に修正を伝播するのではなく、スプライン補間などを利用することで、滑らかな修正を行うこととしても良い。
 また、本手法では、衝突量が最大の時点に達して上記のような修正ならびに修正量の伝播を行い、まだ衝突が生じていたら、同じ処理を繰り返すこととすれば、修正量および修正回数をできるだけ小さくすることができる。
 第2の手法は、時刻tにおいて軌跡pos[Y,j](t)を変形する際に、軌跡の接ベクトル(速度ベクトルに相当する)の大きさは変化させず、主法線ベクトル(速度ベクトルに直交するベクトルで、速度ベクトルの向きを曲げようとする方向に相当する。)の大きさのみを変化させることとし、collision(Y,X)を最小化して0にするとともに、当該主法線ベクトルの大きさの変化の総和(典型的には自乗和)も最小化するという手法である。
 図8は、衝突を避けるために、軌跡の特定部分において主法線ベクトルを調整した様子を示す説明図である。本図は、軌跡の形状をそのまま表すものである。
 本図では、軌跡pox[X,i](t)が、軌跡pos[Y,j](t)と、時刻Tで衝突する。そこで、時刻Tの前後の調整区間T-a~T+aで、衝突が生じないように、軌跡pos[Y,j](t)の曲がり方を調整して、修正後の軌跡morph(t)を得る。
 軌跡pos[Y,j](t)と、軌跡morph(t)と、は、時刻T+a以降の形状は合同である。
 第1の手法は、計算が簡易であるものの、動画によって表現されているオブジェクトjの動きと軌跡とのずれが大きくなってしまうことがあり、このときには、オブジェクトjが突然「ムーンウォーク」をしたかのように、見えてしまうことがある。
 オブジェクトjが不自然な動きをしたか否かは、オブジェクトjの軌跡の接線ベクトルの大きさや向き、主法線ベクトルの大きさ(これは、軌跡の曲率に相当する値である。)や向きの変化が所定の閾値を超えたか否かによって判定することも可能である。
 軌跡の変形によってオブジェクトの動きが不自然であると判断された場合には、その旨の警告を出力すれば、ユーザにとって利便性が高い。
 なお、軌跡の変形処理の繰り返しにおいて、軌跡の変形量にあらかじめ上限を設定しておくこととしても良い。この場合には、オブジェクトの動きが不自然となることはないが、衝突を避けることができない可能性がある。
 第2の手法は、計算は煩雑ではあるが、オブジェクトjの移動方向が微小に変化するのみであり、移動速度の大きさは変化しないので、「ムーンウォーク」は生じない。
 動画Xに、オブジェクトiのほか、背景も描かれている場合には、オブジェクトiの軌跡を変化させると、背景とオブジェクトiの間に画素情報がない隙間が生じてしまうことがある。そこで、本実施形態では、動画Yに描かれているオブジェクトjの軌跡のみを変形することとしている。
 しかしながら、動画Xに、背景が含まれない場合には、オブジェクトiとオブジェクトjが衝突する場合に、両方の軌跡を変形させても良い。第1の手法では、オブジェクトiとオブジェクトjとが互いに遠ざかる方向に移動させれば良いし、第2の手法では、オブジェクトiの軌跡の主法線ベクトルの変化量と、オブジェクトjの軌跡の主法線ベクトルの変化量と、の、両方を最小化すれば良い。
 なお、本手法においても、主法線ベクトルの変化量に上限を設けるか、あるいは、主法線ベクトルの変化量が所定の閾値を超えた場合には警告を発するなどして、オブジェクトの不自然な動きを防止し、ユーザの利便性を向上させることができる。
 本態様では、動画内に描かれたオブジェクトの単純な平行移動、回転、拡大縮小などでは衝突が避けられない場合であっても、軌跡を変形することによって、衝突を防止することができるようになる。
 なお、本実施例ならびに上記の実施例においては、オブジェクトの衝突を避けるための手法を開示している。しかしながら、所望の時点においてオブジェクトの表面の接触が生じる、という制約条件を課すことも可能である。
 すなわち、所望の時点において、2つのオブジェクトが重なって描画される位置における当該2つのオブジェクトの前面奥行から背面奥行までの占有区間に重複があり、かつ、overlapが0である、という制約を課した上で、その制約を満たすようなオブジェクトの移動や軌跡の変形を行うことになる。
 このほか、両動画X,Yに描かれるオブジェクトi,jの軌跡の両方を変形させることとしても良い。この場合には、オブジェクトi用の変形パラメータと、オブジェクトj用の変形パラメータと、を、まとめて取扱い、衝突量の最小化を図るような変形を行えば良い。
 動画Yに描かれるオブジェクトjが、平面の上でダンスをするようなオブジェクトであり、動画Xにおける背景に床が含まれる場合には、オブジェクトjが動画Xの床の上でダンスをするように重ね合わせることが望ましい。本実施例は、これを実現するものである。
 上記の実施例では、動画Xにおける地面に対するカメラの傾きと、動画Yにおける平面に対するカメラの傾きと、が一致する状況について説明したが、本実施例は、必ずしもこれらの一致を要しない。
 まず、動画Yに描かれるオブジェクトjの代表点として、画面の最も下方に描かれている点を選択する。オブジェクトjがダンスをするキャラクターである場合には、ここで選択される代表点は、当該キャラクターの足先に相当する。
 代表点の画素位置[xb(Y,t,j),yb(Y,t,j)]は、たとえば、以下のように計算することができる。
  yb(Y,t,j) = minx,y;Y(t)[x,y].id=j y;
  xb(Y,t,j) = minx;Y(t)[x,yb(Y,t,j)].id=j x
 ここで、オブジェクトjの最下点と、動画Xの床とが接していれば、
  X(t)[xb(Y,t,j),xb(Y,t,j)].id = 0;
  Y(t)[xb(Y,t,j),xb(Y,t,j)].id = j;
  X(t)[xb(Y,t,j),xb(Y,t,j)].fore =
Y(t)[xb(Y,t,j),xb(Y,t,j)].fore
が成立するはずである。
 したがって、collision(Y,X)を最小化して0にするとともに、X(t)[xb(Y,t,j),xb(Y,t,j)].foreとY(t)[xb(Y,t,j),xb(Y,t,j)].foreの差の総和(典型的には自乗和)も最小化するように、動画Yに対する上下左右ならびに奥行の平行移動量や各軸周りの回転量を定めれば、動画Yに描かれたオブジェクトjが、動画Xに描かれる床面に接するようになる。
 なお、オブジェクトjがダンスの途中で床からジャンプした場合は、X(t)[xb(Y,t,j),xb(Y,t,j)].foreとY(t)[xb(Y,t,j),xb(Y,t,j)].foreを完全に一致させることはできないが、最小化を行うことで、ジャンプをしていない瞬間に床から離間してしまう状況は防止することができる。
 また、最小化によって、できるだけ動画Yにおいてオブジェクトjが乗っていた床と、動画Xにおける床とを、できるだけ一致させて、動画Xに重ねられるオブジェクトjの振舞いをできるだけ自然にすることができる。
 上記の実施例では、2.5次元動画に対する各種の変換において、一つのオブジェクト内の各位置および各奥行情報に対して個別の計算処理を行って、これらをできるだけ反映させるような演算を行っていた。本実施例では、オブジェクトの代表点を利用して近似を行うことで、演算負荷をさらに小さくする。
 すなわち、本実施例では、動画Xの時点tにおけるオブジェクトiの代表点の動画X内における座標(xc(X,t,i),yc(X,t,i))ならびに代表点の奥行座標zc(X,t,i)が計算される。
 ここで、オブジェクトiは、全体としてひとまとまりの動きをするから、オブジェクトiの各部の奥行座標は、zc(X,t,i)で近似できる。したがって、代表点の奥行がzc(X,t,i)からzc(X,t,i)+rに変化するときに、各位置における奥行が〔zc(X,t,i)+r〕/zc(X,t,i)倍になった、と近似するのである。このような近似が効果的であるのは、動画の奥行方法の平行移動、水平軸、垂直軸周りの回転である。
 具体的には、平行移動や水平軸、垂直軸周りの回転の対象となるオブジェクトiの代表点のみの移動先を、上記の実施例と同様の演算により求める。そして、その移動先を中心に、代表点の奥行の変化に応じて動画を拡大縮小して配置することで、上記の演算を簡略化する。
 本実施例における変換では、オブジェクトiの形状を、奥行方向に垂直な板の表面に絵が描かれた物体と仮定して、奥行方法の平行移動や水平軸、垂直軸周りの回転がされた場合であっても、この板を奥行方向に垂直なまま移動することに相当する。
 奥行方向の平行移動では、板は奥行方向に垂直なままである。本実施例では、水平軸、垂直軸周りの回転角に上限を設けることにより、回転角は数度程度までとして、板の位置は回転によって変化させるが、板の向きは奥行方向に垂直なままと考える。
 以下、具体的な変換の演算について説明する。
 動画Xに描かれたオブジェクトiを奥行方向にrだけ移動することにより得られる動画は、以下の処理を行うことによって得られる。
 (a)動画Xからオブジェクトiのみを選択し、
 (b)フレームに沿って(xc(X,t,i),yc(X,t,i))が原点になるように平行移動し、
 (c)zc(X,t,i)/〔zc(X,t,i)+r〕倍に動画を拡大縮小し、
 (d)フレームに沿って原点が(xc(X,t,i),yc(X,t,i))になるように平行移動する。
 したがって、動画Xに描かれたオブジェクトiを奥行方向にrだけ移動する変換をpush'(i,r,X)と標記すると、
  push'(i,r,X) = move(xc(X,t,i),yc(X,t,i),
          scale(zc(X,t,i)/〔zc(X,t,i)+r〕,
          move(-xc(X,t,i),-yc(X,t,i),
          select(i,X))))
となる。
 また、動画Xに描かれたオブジェクトiを水平軸周りにθだけ回転すると、オブジェクトの代表点の動画内における座標は、(xc(X,t,i),yc(X,t,i))から(xc(X,t,i),zc(X,t,i)×cosθ-yc(X,t,i)×sinθ)へ移動し、奥行は、zc(X,t,i)からzc(X,t,i)×sinθ+yc(X,t,i)×cosθへ移動する。すなわち、以下の処理を行えば良い。
 (a)動画Xからオブジェクトiのみを選択し、
 (b)フレームに沿って(xc(X,t,i),yc(X,t,i))を(xc(X,t,i),zc(X,t,i)×cosθ-yc(X,t,i)×sinθ)へ移動し、
 (c)zc(X,t,i)/〔zc(X,t,i)×sinθ+yc(X,t,i)×cosθ〕倍に動画を拡大縮小する。
 したがって、動画Xに描かれたオブジェクトiを水平軸周りにθだけ回転する変換をrothor'(i,θ,X)と標記すると、
  rothor'(i,θ,X) =
scale(zc(X,t,i)/〔zc(X,t,i)×sinθ+yc(X,t,i)×cosθ〕,
           move(0,zc(X,t,i)×cosθ-yc(X,t,i)×sinθ-yc(X,t,i),
           select(i,X)))
となる。
 動画Xに描かれたオブジェクトiを垂直軸周りにφだけ回転する変換rotver'(i,θ,X)も、同様に定義される。すなわち、
  rotver'(i,φ,X) =
scale(zc(X,t,i)/〔zc(X,t,i)×sinθ+xc(X,t,i)×cosθ〕,
           move(zc(X,t,i)×cosθ-xc(X,t,i)×sinθ-xc(X,t,i),0
           select(i,X)))
となる。
 本実施例では、動画に描かれた一つのオブジェクトに対する変換を計算負荷が軽い演算move,select,scaleの組み合わせによって実現するため、処理の高速化を図ることができる。
 上記実施例では、動画Xの時間をdだけずらす変換shift(d,X)としたが、動画Xをスロー再生したり早送りしたりする変換を考えることもできる。
 動画Yが、動画Xをa倍に早送りしたものであれば、
  Y(t)[x,y] = X(t/a)[x,y]
が成立する。以下、この変換をfastforward(a,X)と表記する。
 動画Xに描かれるオブジェクトiと、動画Yに描かれるオブジェクトjと、が、いずれも、ある動作を繰り返し行うもので、オブジェクトiとオブジェクトjとが、動画内における特定の場所に交互に登場するような動画Zを合成したい場合に、shift,fastforwardの組み合わせが利用できる。
 たとえば、臼の中の餅を杵で搗く動作をする人物(オブジェクトi)を撮影した動画Xと、同じ臼の中の餅を手でこねる動作をする人物(オブジェクトj)を撮影した動画Yと、を合成して、人物A、人物Bが共同して餅搗きする様子を表す動画を生成したい場合などである。
 臼におよび周辺の様子、ならびに、撮影を行ったカメラの位置および向きが、動画X、動画Yにおいて共通する場合には、衝突量を表す評価関数を最小化するように、shift,fastforwardに対するパラメータを求めれば良いことになる。
 このほか、家具や電気製品を家屋内に配置できるか否かを動画から判定したい場合に、これらの変換を適用することもできる。
 たとえば、扉が開閉する洗濯機が、自宅の洗面所に配置できるか否かを、動画から判定したい場合には、以下のような処理を行えば良い。
 すなわち、電気製品メーカーもしくは電気製品の販売者は、洗濯機の扉が周期的に開閉する様子を正面から撮影した動画Xをウェブなどにおいて提供する。
 一方、洗濯機の購入を検討しているユーザは、洗濯機を設置しようと考えている部屋の箇所における部屋の扉や家具の扉が周期的に開閉する様子を正面から撮影した動画Yを用意する。
 動画Xにおけるカメラから洗濯機までの距離と、動画Yにおけるカメラから洗濯機設置の候補箇所までの距離と、がほぼ一致するように、正規化を行った後、ユーザは、動画Xにおける洗濯機のオブジェクトを、動画Yにおける設置候補の箇所にドラッグアンドドロップする。
 そして、動画X,Yにおけるオブジェクトの衝突量を求める。衝突がなければ、洗濯機は所望の箇所に設置できる、と推定できる。また、衝突が生じた場合であっても、衝突量を最小化するようなshift,fastforwardに対するパラメータを求めて、衝突が生じないようにすることができれば、やはり、洗濯機は所望の箇所に設置できる、と推定できる。
 なお、ユーザが部屋の中を撮影する際に、撮影方向が限られることもある。この場合には、扉が周期的に開閉する洗濯機を、正面から撮影した様子のほか、左側から撮影した様子、右側から撮影した様子等、種々の方向から撮影した動画を提供することとし、ユーザが部屋を撮影した方向と同じ方向で撮影された動画を選択させることとしても良い。
 上記実施例では、オブジェクトが互いに喰い込むような衝突をしないように動画の合成ができるほか、オブジェクトの表面が所望の瞬間に接触したり、オブジェクトの底が床に接触し続けたりするような動画の合成が可能となる。以下では、上記実施例の具体的な応用について種々説明する。
 第1の応用例は、インターネットオークション等の電子市場において、商品の様子を表す動画を出品者が容易に準備できるようにするものである。
 すなわち、電子市場の運営者は、各種の動画の編集ツールを提供するとともに、ユーザが自由に利用できるような動画素材を提供する。この動画素材は、電子市場の出品者や入札者が用意するものでも良いし、パブリック利用が可能な動画をアップロードして他のユーザに閲覧させるような動画配信システムを別途用意し、この動画配信システムに蓄積された動画を再利用することとしても良い。
 出品者は、自宅の部屋の中等で、背景を表す動画をあらかじめ撮影しておくか、この際には、商品を見栄えよく見せるための装飾台や屏風などを用意しても良いし、部屋内の物品を整理整頓し、掃除して、プライベートな情報がわからないようにしても良い。また、背景動画は、動画素材の中から選択することとしても良い。
 この後、出品者が、新たな商品を出品しようと考えた場合には、部屋の中の好きな場所で、物品の整理整頓や掃除を行わないままで、撮影を行うことができる。
 この後、出品者は、撮影された新たな商品の動画を、あらかじめ撮影した背景動画にドラッグアンドドロップする。すると、上記の衝突の回避および位置の自動調整により、商品が背景画像の物品(屏風等)には衝突せず、かつ、背景画像の床(装飾台の上面等)に接する様子を表す動画が合成できる。
 なお、商品動画の背景動画に対する合成は、出品者だけではなく、入札者ができるようにしても良い。たとえば、パーティ用のドレスが出品されており、出品者等のモデルがそのドレスを着用して歩いたり回ったりしている様子を表す商品動画が提供されているものとする。
 入札者は、自分がドレスを着用して出席しようとするパーティが開催された会場内を撮影した背景動画を、自分で撮影したり、動画素材の中から選んだりしておく。そして、入札者は、パーティ会場の背景動画に、モデルに着用されたドレスの商品動画を合成する。
 上記の実施例を適用することにより、モデルは床の上を移動するが、会場内の他の人物や家具、設備とは衝突しないような動画が合成されることになる。
 入札者は、この動画を閲覧することにより、入札の前に、商品として出品されているドレスがパーティ会場の雰囲気にマッチしているか否かを、事前にチェックすることができるようになる。
 第2の応用例は、動画素材のさらなる活用である。
 たとえば、著名な芸能人が音楽に合わせて踊っている様子を表す背景動画が動画素材として提供されていれば、ユーザが自分で踊っている動画を撮影して合成することで、ユーザが著名な歌手と一緒に踊っている様子を表す動画を生成することが可能である。
 また、メリーゴーラウンドが空席のまま動いている様子を表す背景動画が動画素材として提供されている場合には、ユーザが自転車や台車等、別の乗物に乗って、メリーゴーラウンドとほぼ同じ軌跡を移動する動画を撮影してから、「ユーザがメリーゴーラウンドに接し続ける」という制約条件を課して、動画の合成を行うことで、ユーザがメリーゴーラウンドに乗っている様子を表す動画を生成することができる。
 このほか、ボールが床に激しくぶつかって衝突する背景動画に、ユーザが腕やラケットを強く振り下ろす動画を合成する際に、ユーザが腕を振り下ろした瞬間にユーザの手やラケットとボールが接する、という制約条件を課すこととすれば、ユーザがバレーボールのスパイクやテニスのスマッシュをしている様子を表す動画が生成可能である。
 さらに、フェンシングや剣道の練習を一人で行っている様子を撮影した動画素材を複数合成し、撮影されたプレイヤーが決め技を行った瞬間にオブジェクト同士がタイミングで接する、という条件を課すこととすれば、あたかも試合が行われているかのような動画を合成することも可能である。
 なお、本願においては、
 (1)2012年7月20日にされた日本国特許出願2012-161924
 (2)2012年9月7日にされた特許協力条約に基づく国際出願PCT/JP2012/072988
 (3)2012年9月7日にされた特許協力条約に基づく国際出願PCT/JP2012/072989
を基礎とする優先権を主張するものとし、指定国の法令が許す限り、当該基礎出願の内容を本願に取り込むものとする。
 本発明によれば、複数の動画に描かれた奥行情報を伴うオブジェクトを1つの動画にまとめようとするときに、オブジェクト同士が干渉しないようにするのに好適な動画処理装置、動画処理方法、ならびに、情報記録媒体を提供することができる。
  11  撮影点
  12  投影面
  13  半直線
  14  オブジェクト
  15  衝突点
  17  Z距離
  21  代表点
  101 動画処理装置
  102 背面奥行取得部
  103 衝突判定部
  104 ずらし量設定部
  105 動画生成部
  106 修正部
  401 画面
  411 ウィンドウ
  412 ウィンドウ
  413 カーソル

Claims (11)

  1.  第1動画と、第2動画と、を合成する動画処理装置であって、前記第1動画には、第1オブジェクトが描かれ、前記第1オブジェクトの前面奥行情報を伴い、第2動画には、第2オブジェクトが描かれ、前記第2オブジェクトの前面奥行情報を伴い、
     前記第1オブジェクトの背面奥行情報と、前記第2オブジェクトの背面奥行情報と、を取得する取得部、
     前記第1動画に描かれた第1オブジェクトが占有しうる占有空間を、前記第1オブジェクトの前面奥行情報ならびに背面奥行情報を参照して求め、前記占有空間と、前記第2動画のあるフレームに描かれた前記第2オブジェクトと、が、干渉条件を満たすか否かを、前記第2オブジェクトの前面奥行情報ならびに背面奥行情報を参照して判定する干渉判定部、
     前記干渉判定部による判定結果から、前記第2オブジェクトが前記占有空間に干渉せずに位置しうる可能範囲を設定する範囲設定部
     を備えることを特徴とする動画処理装置。
  2.  請求項1に記載の動画処理装置であって、
     前記取得部は、データベースから、前記第1オブジェクトの属性にあらかじめ対応付けられた第1奥行長を取得し、前記データベースから、前記第2オブジェクトの属性にあらかじめ対応付けられた第2奥行長を取得し、前記第1オブジェクトの前面奥行情報と前記第1奥行長とから前記第1オブジェクトの背面奥行情報を取得し、前記第2オブジェクトの前面奥行情報と前記第2奥行長とから前記第2オブジェクトの背面奥行情報を取得する
     ことを特徴とする動画処理装置。
  3.  請求項1に記載の動画処理装置であって、
     前記範囲設定部は、データベースから、前記第2オブジェクトの属性にあらかじめ対応付けられた前記第2オブジェクトの設置条件を取得し、前記可能範囲を、前記設置条件を満たすように設定する
     ことを特徴とする動画処理装置。
  4.  請求項1に記載の動画処理装置であって、
     前記範囲設定部は、前記第2動画のすべてのフレームについて、前記占有空間と、前記第2オブジェクトと、が前記干渉条件を満たさないように、前記可能範囲を設定する
     ことを特徴とする動画処理装置。
  5.  請求項1に記載の動画処理装置であって、
     前記第1動画と前記第2動画とのいずれか一方の動画には、3次元空間内の移動を表す非変形変換が施され、
     前記可能範囲は、前記非変形変換に係る移動の量を表す変換パラメータがとりうる値の範囲により表現される
     を備えることを特徴とする動画処理装置。
  6.  請求項5に記載の動画処理装置であって、
     前記非変形変換は、水平方向、垂直方向のずらし量を前記変換パラメータとする平行移動であり、
     前記一方の動画は、前記第2動画であり、
     水平方向ならびに垂直方向のずらし量をユーザに修正させるため、前記範囲設定部により設定された水平方向ならびに垂直方向のずらし量の可能範囲と、前記第1動画のあるフレームと、が画面に表示される
     ことを特徴とする動画処理装置。
  7.  請求項5に記載の動画処理装置であって、
     前記非変形変換は、水平方向、垂直方向、奥行方向のずらし量を前記変換パラメータとする平行移動であり、
     前記一方の動画は、前記第2動画であり、
     水平方向、垂直方向、奥行方向のずらし量をユーザに修正させるため、前記範囲設定部により現在の奥行方向のずらし量に対して設定された水平方向ならびに垂直方向のずらし量の可能範囲と、前記第1動画のあるフレームと、が画面に表示される
     ことを特徴とする動画処理装置。
  8.  請求項5に記載の動画処理装置であって、
     前記可能範囲からいずれかの変換パラメータを選択して、前記非変形変換を施すことにより、前記一方の動画を修正する修正部、
     前記第1動画と、前記第2動画と、を合成した第3動画を生成する動画生成部
     をさらに備えることを特徴とする動画処理装置。
  9.  請求項8に記載の動画処理装置であって、
     前記変換パラメータの初期値を設定する初期値設定部、
     前記修正部は、前記設定された初期値が前記可能範囲に含まれなければ、前記可能範囲から、前記指定された初期値に最も近い変換パラメータを選択する
     ことを特徴とする動画処理装置。
  10.  第1動画と、第2動画と、を合成する動画処理方法であって、前記第1動画には、第1オブジェクトが描かれ、前記第1オブジェクトの前面奥行情報を伴い、第2動画には、第2オブジェクトが描かれ、前記第2オブジェクトの前面奥行情報を伴い、
     前記第1オブジェクトの背面奥行情報と、前記第2オブジェクトの背面奥行情報と、を取得する取得工程、
     前記第1動画に描かれた第1オブジェクトが占有しうる占有空間を、前記第1オブジェクトの前面奥行情報ならびに背面奥行情報を参照して求め、前記占有空間と、前記第2動画のあるフレームに描かれた前記第2オブジェクトと、が、干渉条件を満たすか否かを、前記第2オブジェクトの前面奥行情報ならびに背面奥行情報を参照して判定する干渉判定工程、
     前記干渉判定工程における判定結果から、前記第2オブジェクトが前記占有空間に干渉せずに位置しうる可能範囲を設定する範囲設定工程
     を備えることを特徴とする動画処理方法。
  11.  第1動画と、第2動画と、を合成するプログラムであって、前記第1動画には、第1オブジェクトが描かれ、前記第1オブジェクトの前面奥行情報を伴い、第2動画には、第2オブジェクトが描かれ、前記第2オブジェクトの前面奥行情報を伴い、前記プログラムは、コンピュータを、
     前記第1オブジェクトの背面奥行情報と、前記第2オブジェクトの背面奥行情報と、を取得する取得部、
     前記第1動画に描かれた第1オブジェクトが占有しうる占有空間を、前記第1オブジェクトの前面奥行情報ならびに背面奥行情報を参照して求め、前記占有空間と、前記第2動画のあるフレームに描かれた前記第2オブジェクトと、が、干渉条件を満たすか否かを、前記第2オブジェクトの前面奥行情報ならびに背面奥行情報を参照して判定する干渉判定部、
     前記干渉判定部による判定結果から、前記第2オブジェクトが前記占有空間に干渉せずに位置しうる可能範囲を設定する範囲設定部
     として機能させることを特徴とするプログラムを記録したコンピュータ読取可能な情報記録媒体。
PCT/JP2012/075417 2012-07-20 2012-10-01 動画処理装置、動画処理方法、ならびに、情報記録媒体 WO2014013630A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
ES12881371.4T ES2675514T3 (es) 2012-07-20 2012-10-01 Dispositivo de procesamiento de imágenes en movimiento, método de procesamiento de imágenes en movimiento, y medio de registro de información
JP2013509348A JP5270052B1 (ja) 2012-07-20 2012-10-01 動画処理装置、動画処理方法、ならびに、情報記録媒体
EP12881371.4A EP2775454B1 (en) 2012-07-20 2012-10-01 Moving-image processing device, moving-image processing method, and information recording medium
US14/361,477 US9723225B2 (en) 2012-07-20 2012-10-01 Moving-image processing device, moving-image processing method, and information recording medium

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2012-161924 2012-07-20
JP2012161924 2012-07-20
PCT/JP2012/072988 WO2014013627A1 (ja) 2012-07-20 2012-09-07 動画処理装置、動画処理方法、ならびに、情報記録媒体
JPPCT/JP2012/072989 2012-09-07
JPPCT/JP2012/072988 2012-09-07
PCT/JP2012/072989 WO2014013628A1 (ja) 2012-07-20 2012-09-07 動画処理装置、動画処理方法、ならびに、情報記録媒体

Publications (1)

Publication Number Publication Date
WO2014013630A1 true WO2014013630A1 (ja) 2014-01-23

Family

ID=49948477

Family Applications (4)

Application Number Title Priority Date Filing Date
PCT/JP2012/072988 WO2014013627A1 (ja) 2012-07-20 2012-09-07 動画処理装置、動画処理方法、ならびに、情報記録媒体
PCT/JP2012/072989 WO2014013628A1 (ja) 2012-07-20 2012-09-07 動画処理装置、動画処理方法、ならびに、情報記録媒体
PCT/JP2012/075416 WO2014013629A1 (ja) 2012-07-20 2012-10-01 動画処理装置、動画処理方法、ならびに、情報記録媒体
PCT/JP2012/075417 WO2014013630A1 (ja) 2012-07-20 2012-10-01 動画処理装置、動画処理方法、ならびに、情報記録媒体

Family Applications Before (3)

Application Number Title Priority Date Filing Date
PCT/JP2012/072988 WO2014013627A1 (ja) 2012-07-20 2012-09-07 動画処理装置、動画処理方法、ならびに、情報記録媒体
PCT/JP2012/072989 WO2014013628A1 (ja) 2012-07-20 2012-09-07 動画処理装置、動画処理方法、ならびに、情報記録媒体
PCT/JP2012/075416 WO2014013629A1 (ja) 2012-07-20 2012-10-01 動画処理装置、動画処理方法、ならびに、情報記録媒体

Country Status (5)

Country Link
US (4) US9819878B2 (ja)
EP (4) EP2779107B1 (ja)
JP (1) JP5451955B1 (ja)
ES (4) ES2676719T3 (ja)
WO (4) WO2014013627A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11450352B2 (en) 2018-05-29 2022-09-20 Sony Corporation Image processing apparatus and image processing method

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9429912B2 (en) * 2012-08-17 2016-08-30 Microsoft Technology Licensing, Llc Mixed reality holographic object development
US9823824B2 (en) * 2013-08-19 2017-11-21 Kodak Alaris Inc. Context sensitive adaptable user interface
US10311595B2 (en) * 2013-11-19 2019-06-04 Canon Kabushiki Kaisha Image processing device and its control method, imaging apparatus, and storage medium
JP6427332B2 (ja) * 2014-04-08 2018-11-21 株式会社ミツトヨ 画像測定機
JP2015207802A (ja) * 2014-04-17 2015-11-19 ソニー株式会社 画像処理装置および画像処理方法
EP3073726B1 (en) * 2015-03-24 2017-03-01 Axis AB Method for configuring a camera
US10600169B2 (en) * 2015-03-26 2020-03-24 Sony Corporation Image processing system and image processing method
US20170068863A1 (en) * 2015-09-04 2017-03-09 Qualcomm Incorporated Occupancy detection using computer vision
CN105243268B (zh) * 2015-09-18 2018-06-22 网易(杭州)网络有限公司 一种游戏地图定位方法、装置及用户终端
GB2550854B (en) 2016-05-25 2019-06-26 Ge Aviat Systems Ltd Aircraft time synchronization system
CN106095294B (zh) * 2016-06-08 2019-03-05 福建天泉教育科技有限公司 不同平台之间同步笔画的方法及其系统
JP6488329B2 (ja) * 2016-09-29 2019-03-20 株式会社リクルート 順番管理システム、順番管理装置、およびプログラム
US10609332B1 (en) 2018-12-21 2020-03-31 Microsoft Technology Licensing, Llc Video conferencing supporting a composite video stream
CN112232170B (zh) * 2020-10-10 2024-08-02 浙江大华技术股份有限公司 对象行为的确定方法及装置、存储介质、电子装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07322137A (ja) * 1994-05-30 1995-12-08 Nec Eng Ltd 映像信号合成装置
JP2004145448A (ja) * 2002-10-22 2004-05-20 Toshiba Corp 端末装置、サーバ装置および画像加工方法
JP2009080660A (ja) 2007-09-26 2009-04-16 Rakuten Inc 物体領域抽出処理プログラム、物体領域抽出装置、および物体領域抽出方法

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5087981A (en) * 1990-01-02 1992-02-11 Eastman Kodak Company Error diffusion of overlapping dots
JP3244798B2 (ja) * 1992-09-08 2002-01-07 株式会社東芝 動画像処理装置
US6151009A (en) * 1996-08-21 2000-11-21 Carnegie Mellon University Method and apparatus for merging real and synthetic images
US6456289B1 (en) * 1999-04-23 2002-09-24 Georgia Tech Research Corporation Animation system and method for a animating object fracture
US6738066B1 (en) * 1999-07-30 2004-05-18 Electric Plant, Inc. System, method and article of manufacture for detecting collisions between video images generated by a camera and an object depicted on a display
DE10106023A1 (de) * 2001-02-09 2002-08-29 Fraunhofer Ges Forschung Verfahren und Vorrichtung zur Kollisionserkennung von Objekten
US6791549B2 (en) 2001-12-21 2004-09-14 Vrcontext S.A. Systems and methods for simulating frames of complex virtual environments
US7982738B2 (en) * 2004-12-01 2011-07-19 Microsoft Corporation Interactive montages of sprites for indexing and summarizing video
US7788071B2 (en) * 2004-12-03 2010-08-31 Telekinesys Research Limited Physics simulation apparatus and method
JP4335160B2 (ja) * 2005-03-02 2009-09-30 任天堂株式会社 衝突判定プログラムおよび衝突判定装置
CN101228549B (zh) * 2005-03-31 2012-10-17 本田技研工业株式会社 文件管理系统、文件管理方法
JP4345737B2 (ja) * 2005-11-14 2009-10-14 セイコーエプソン株式会社 デジタルコンテンツ作成システム、デジタルコンテンツ作成方法およびプログラム
JP4754364B2 (ja) * 2006-01-20 2011-08-24 三菱電機株式会社 画像重ね合わせ装置
KR100718157B1 (ko) * 2006-03-08 2007-05-14 삼성전자주식회사 충돌 감지 장치 및 방법
US8016653B2 (en) * 2007-02-01 2011-09-13 Sportvision, Inc. Three dimensional virtual rendering of a live event
TW200844899A (en) * 2007-05-04 2008-11-16 Sunplus Mmobile Inc An interactive image and graphical system and method that is capable of detecting collisions of graphical objects
JP5253936B2 (ja) * 2008-09-08 2013-07-31 株式会社エヌ・ティ・ティ・ドコモ 情報処理装置及びプログラム
US8730245B2 (en) * 2008-12-01 2014-05-20 Naturalmotion Ltd. Defining an animation of a virtual object within a virtual world
GB0901351D0 (en) * 2009-01-28 2009-03-11 Univ Dundee System and method for arranging items for display
TWI378718B (en) * 2009-06-05 2012-12-01 Univ Nat Taiwan Method for scaling video content according to bandwidth rate
DE102009037835B4 (de) * 2009-08-18 2012-12-06 Metaio Gmbh Verfahren zur Darstellung von virtueller Information in einer realen Umgebung
US8749588B2 (en) * 2009-09-15 2014-06-10 HNTB Holdings, Ltd. Positioning labels in an engineering drawing
US20110199302A1 (en) 2010-02-16 2011-08-18 Microsoft Corporation Capturing screen objects using a collision volume
US20110316972A1 (en) * 2010-06-29 2011-12-29 Broadcom Corporation Displaying graphics with three dimensional video
US20120044259A1 (en) * 2010-08-17 2012-02-23 Apple Inc. Depth management for displayed graphical elements
US8860766B2 (en) * 2010-09-30 2014-10-14 Nvidia Corporation System, method, and computer program product for determining one or more contact points between a pair of objects
JP5643617B2 (ja) 2010-11-18 2014-12-17 任天堂株式会社 画像処理プログラム、画像処理装置、画像処理方法、画像処理システム
US8401225B2 (en) * 2011-01-31 2013-03-19 Microsoft Corporation Moving object segmentation using depth images
JP5602040B2 (ja) 2011-02-03 2014-10-08 ミツカワ株式会社 積層体布帛
JP5678710B2 (ja) * 2011-02-14 2015-03-04 ソニー株式会社 画像処理装置、および画像処理方法、並びにプログラム
JP5708196B2 (ja) * 2011-04-21 2015-04-30 セイコーエプソン株式会社 衝突検出システム、ロボットシステム、衝突検出方法及びプログラム
US10109097B2 (en) 2011-08-01 2018-10-23 Autodesk, Inc. Dynamic collision avoidance for crowd simulation over structured paths that intersect at waypoints
US20130215230A1 (en) * 2012-02-22 2013-08-22 Matt Miesnieks Augmented Reality System Using a Portable Device
US9183676B2 (en) * 2012-04-27 2015-11-10 Microsoft Technology Licensing, Llc Displaying a collision between real and virtual objects
US9147221B2 (en) * 2012-05-23 2015-09-29 Qualcomm Incorporated Image-driven view management for annotations
US9741145B2 (en) 2012-06-29 2017-08-22 Disney Enterprises, Inc. Augmented reality simulation continuum
JP2014238731A (ja) * 2013-06-07 2014-12-18 株式会社ソニー・コンピュータエンタテインメント 画像処理装置、画像処理システム、および画像処理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07322137A (ja) * 1994-05-30 1995-12-08 Nec Eng Ltd 映像信号合成装置
JP2004145448A (ja) * 2002-10-22 2004-05-20 Toshiba Corp 端末装置、サーバ装置および画像加工方法
JP2009080660A (ja) 2007-09-26 2009-04-16 Rakuten Inc 物体領域抽出処理プログラム、物体領域抽出装置、および物体領域抽出方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Article on "2.5D"", WIKIPEDIA, Retrieved from the Internet <URL:http://en.wikipedia.org/wiki/2.5D> [retrieved on 20120718]

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11450352B2 (en) 2018-05-29 2022-09-20 Sony Corporation Image processing apparatus and image processing method

Also Published As

Publication number Publication date
WO2014013627A1 (ja) 2014-01-23
ES2675514T3 (es) 2018-07-11
EP2775452A1 (en) 2014-09-10
JP5451955B1 (ja) 2014-03-26
EP2775454A1 (en) 2014-09-10
EP2775452B1 (en) 2018-05-02
EP2779107A4 (en) 2015-03-11
US20140321736A1 (en) 2014-10-30
ES2676719T3 (es) 2018-07-24
WO2014013628A1 (ja) 2014-01-23
JPWO2014013628A1 (ja) 2016-06-30
EP2779107A1 (en) 2014-09-17
EP2775455A1 (en) 2014-09-10
ES2675513T3 (es) 2018-07-11
US9723225B2 (en) 2017-08-01
EP2775454A4 (en) 2015-04-01
EP2775454B1 (en) 2018-05-09
EP2775452A4 (en) 2015-03-04
EP2775455B1 (en) 2018-05-09
ES2673545T3 (es) 2018-06-22
EP2779107B1 (en) 2018-05-16
WO2014013629A1 (ja) 2014-01-23
US20150201132A1 (en) 2015-07-16
US9876965B2 (en) 2018-01-23
EP2775455A4 (en) 2015-04-22
US20140340477A1 (en) 2014-11-20
US20140347560A1 (en) 2014-11-27
US9819878B2 (en) 2017-11-14
US9374535B2 (en) 2016-06-21

Similar Documents

Publication Publication Date Title
JP5451955B1 (ja) 動画処理装置、動画処理方法、ならびに、情報記録媒体
JP6950013B2 (ja) 画像処理装置、画像処理方法及びプログラム
US20130113701A1 (en) Image generation device
KR20070119018A (ko) 3d 카메라 및 3d비디오를 위한 자동 씬 모델링
KR20200043458A (ko) 3d 장면의 이미지를 생성 및 수정하기 위한 방법
WO2018051747A1 (ja) 画像処理装置、画像生成方法及びプログラム
CN113347373B (zh) 通过ar空间定位实时制作特效视频的图像处理方法
JP2022077148A (ja) 画像処理方法、プログラムおよび画像処理システム
JP6089145B2 (ja) カメラワーク生成方法、カメラワーク生成装置及びカメラワーク生成プログラム
JP5254505B1 (ja) 動画処理装置、動画処理方法、ならびに、情報記録媒体
KR20190074911A (ko) 실감형 영상 콘텐츠 제공 방법 및 이를 이용한 서버
JP5270052B1 (ja) 動画処理装置、動画処理方法、ならびに、情報記録媒体
JP5270051B1 (ja) 動画処理装置、動画処理方法、ならびに、情報記録媒体
US20240233297A1 (en) Image processing apparatus, image processing method, and computer-readable storage medium
Albuquerque et al. An overview on virtual sets
JP2014078861A (ja) 表示制御装置

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2013509348

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12881371

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14361477

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2012881371

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE