WO2024117447A1 - 모션 추적 장치 및 방법 - Google Patents

모션 추적 장치 및 방법 Download PDF

Info

Publication number
WO2024117447A1
WO2024117447A1 PCT/KR2023/010698 KR2023010698W WO2024117447A1 WO 2024117447 A1 WO2024117447 A1 WO 2024117447A1 KR 2023010698 W KR2023010698 W KR 2023010698W WO 2024117447 A1 WO2024117447 A1 WO 2024117447A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
marker
joint
human body
angular velocity
Prior art date
Application number
PCT/KR2023/010698
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 재단법인대구경북과학기술원
Publication of WO2024117447A1 publication Critical patent/WO2024117447A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/277Analysis of motion involving stochastic approaches, e.g. using Kalman filters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras

Definitions

  • the present invention relates to motion tracking devices and methods.
  • joint position estimation technology is not only used to create natural movements of characters in the field of 3D content production, but can also be used for various motion analysis using the position values of joints found through motion capture technology.
  • a sensor unit acquires image information, depth information, and marker information and provides them to the processor, and the processor converts a plurality of different information into a coordinate system of the same dimension to precisely derive information about the position and posture of an object.
  • a sensor fusion device capable of
  • One aspect of the present invention includes a marker tracking unit for generating a marker image by photographing a detection marker attached to a preset area of the human body, a photographing unit for generating a human body image by photographing the human body, and the marker tracking unit from the marker tracking unit.
  • a motion tracking device including a processor unit that receives an image, detects marker information, receives the human body image from the photographing unit, detects skeletal information, and derives motion information of the human body using the marker information and the skeletal information. provides.
  • a motion tracking device fuses marker information acquired through a marker tracking unit and skeletal information acquired through an imaging unit to precisely track the position and posture of body parts including joints to which no detection marker is attached. can do.
  • Figure 1 is a diagram showing an example configuration of a motion tracking device according to an embodiment of the present invention.
  • Figure 2 is a flowchart for explaining the operation of the marker tracking unit according to an embodiment of the present invention.
  • Figure 3 is a flowchart for explaining the operation of the photographing unit according to an embodiment of the present invention.
  • Figure 4 is a diagram for explaining a process by which the processor unit calculates a distance vector and an angular velocity vector according to an embodiment of the present invention.
  • Figures 5 and 6 are diagrams for explaining a process in which the processor detects the position of a joint according to an embodiment of the present invention.
  • Figure 7 is a diagram for explaining a process in which the processor unit verifies the position of a detected joint according to an embodiment of the present invention.
  • FIGS. 8 to 11 are diagrams sequentially showing a process for deriving motion information of the human body according to an embodiment of the present invention.
  • One aspect of the present invention includes a marker tracking unit for generating a marker image by photographing a detection marker attached to a preset area of the human body, a photographing unit for generating a human body image by photographing the human body, and the marker tracking unit from the marker tracking unit.
  • a motion tracking device including a processor unit that receives an image, detects marker information, receives the human body image from the photographing unit, detects skeletal information, and derives motion information of the human body using the marker information and the skeletal information. provides.
  • the processor unit uses the skeleton information to calculate a distance vector including distance information between joints constituting the human body and an angular velocity vector including angular velocity information of the distance vector, and calculates the distance vector, the angular velocity vector, and the angular velocity vector.
  • the motion information of the human body can be derived using marker information.
  • the processor unit uses the marker information to derive position information of the first joint to which the detection marker is attached, and uses the position information of the first joint, the distance vector, and the angular velocity vector to determine the position of the first joint to which the detection marker is not attached.
  • Position information of the second joint can be derived.
  • the sensor unit may further include a housing portion where the depth sensor portion, the marker tracking portion, and the vision camera portion are disposed.
  • the marker tracking unit and the photographing unit generate the marker image and the human body image, respectively, at a preset frame rate
  • the processor unit generates the marker information derived from the current frame (arbitrary nth frame). Derive the position information of the first joint using the position information of the first joint, and the distance vector and the angular velocity vector derived from the previous frame (n-1th frame) of the second joint. Location information can be derived.
  • the processor unit derives position information of a third joint to which the detection marker is attached using the marker information, and uses the position information of the third joint, the distance vector, and the angular velocity vector to derive the position information of the third joint to which the detection marker is attached. 2 It can be verified by comparing it with the position of the joint.
  • the processor unit may correct the distance vector and the angular velocity vector in the current frame (arbitrary nth frame) using the verified position information of the second joint.
  • the processor unit may derive motion information of the human body using an Extended Kalman Filter (EKF).
  • EKF Extended Kalman Filter
  • Another aspect of the present invention includes receiving a marker image of a detection marker attached to a preset area of the human body from a marker tracking unit, receiving an image of the human body from a photographing unit, and obtaining location information of the detection marker from the marker image.
  • a motion tracking method is provided, including detecting marker information, detecting skeletal information of the human body from the human body image, and deriving motion information of the human body from the marker information and the skeletal information.
  • calculating a distance vector including distance information between joints constituting the human body and an angular velocity vector including angular velocity information of the distance vector using the skeletal information and calculating the distance vector, the angular velocity vector, and the marker.
  • a step of deriving motion information of the human body using information may be further included.
  • deriving position information of a first joint to which the detection marker is attached using the marker information and using the position information of the first joint, the distance vector, and the angular velocity vector to determine the position of the first joint to which the detection marker is attached. 2 A step of deriving position information of the joint may be further included.
  • the marker tracking unit and the photographing unit generate the marker image and the human body image, respectively, at a preset frame rate, and use the marker information derived from the current frame (arbitrary nth frame) to
  • the position information of the first joint is derived and the position information of the second joint is derived using the step and the position information of the first joint, the distance vector and the angular velocity vector derived from the previous frame (n-1th frame). It may include deriving steps.
  • deriving position information of a third joint to which the detection marker is attached using the marker information and deriving position information of the third joint, the distance vector, and the angular velocity vector of the derived second joint.
  • a verification step may be further included by comparing with the location.
  • the method may further include correcting the distance vector and the angular velocity vector in the current frame (arbitrary nth frame) using the verified position information of the second joint.
  • the step of deriving the motion information of the human body may include using an Extended Kalman Filter (EKF).
  • EKF Extended Kalman Filter
  • a specific process sequence may be performed differently from the described sequence.
  • two processes described in succession may be performed substantially at the same time, or may be performed in an order opposite to that in which they are described.
  • FIG. 1 is a diagram illustrating an example configuration of a motion tracking device according to an embodiment of the present invention
  • FIG. 2 is a flowchart for explaining the operation of a marker tracking unit according to an embodiment of the present invention
  • FIG. 3 is a diagram illustrating an example configuration of a motion tracking device according to an embodiment of the present invention.
  • Figure 4 is a diagram for explaining the process by which the processor unit calculates the distance vector and the angular velocity vector according to an embodiment of the present invention
  • Figures 5 and 6 are diagrams showing the process by which the processor unit detects the position of the joint according to an embodiment of the present invention. This is a drawing to explain the process.
  • Figure 7 is a diagram for explaining the process of verifying the position of a joint detected by the processor according to an embodiment of the present invention
  • Figures 8 to 11 are diagrams for deriving motion information of the human body according to an embodiment of the present invention. This is a diagram showing the process in sequential order.
  • the motion tracking device 1 is a device that tracks the posture of the human body or the position of joints by photographing the human body to be measured. Specifically, the motion tracking device 1 locally attaches a detection marker (M) to a preset area of the human body, and uses information obtained from the detection marker (M) to determine the location where the detection marker (M) is not attached. It is a device that tracks motion information of the human body.
  • the sensing marker M may be attached to a preset area of the human body, and in one embodiment, the sensing marker M may be attached to both wrists.
  • the detection marker M may be made of a sensor that is subject to magnetic motion capture.
  • a separate magnetic field generator may be provided in the space where motion capture is performed, and the position of the detection marker (M) may be calculated by calculating the amount of change in the magnetic field according to the movement of the detection marker (M).
  • the detection marker M may be made of an inertial sensor that is subject to inertial motion capture.
  • the motion tracking device 1 may calculate the position of the detection marker M by measuring the angular velocity physical quantity according to the movement of the detection marker M.
  • the sensing marker M may be a two-dimensional marker as well as a three-dimensional marker. Specifically, the surface on which the sensing marker M emits or reflects light may be formed in two or three dimensions.
  • a plurality of detection markers (M) may be attached to the human body that is the object of motion tracking. Different patterns may be formed on each of the plurality of sensing markers M, and the markers may emit or reflect light to correspond to the shape of the pattern.
  • Pattern information formed on a plurality of detection markers (M) can be stored in the processor unit 300, which will be described later, and the processor unit 300 assigns a marker ID corresponding to the pattern information to each detection marker (M). can do. Due to this, the processor unit 300 may receive light corresponding to the shape of the pattern from the sensing marker M and extract the corresponding marker ID to identify a plurality of sensing markers M.
  • the sensing marker (M) can form a unique coordinate system.
  • the detection marker M may form a virtual three-dimensional grid coordinate system consisting of an x-axis, a y-axis, and a z-axis that are orthogonal to each other, with a preset point on the detection marker M as the origin.
  • the processor unit 300 which will be described later, uses the relative geometric relationship information between the x-axis, y-axis, and z-axis of the three-dimensional grid coordinate system formed by the detection marker M and the marker tracking unit 100 to detect the detection marker.
  • the rotation angle and angular velocity can be measured.
  • the sensing marker (M) may be included in a wearable device, which may be an accessory (e.g., a watch, ring, bracelet, anklet, necklace, glasses, contact lenses, or head-mounted device).
  • a wearable device which may be an accessory (e.g., a watch, ring, bracelet, anklet, necklace, glasses, contact lenses, or head-mounted device).
  • device HMD
  • fabric or clothing-integrated e.g., electronic clothing
  • body-attached e.g., skin pad or tattoo
  • bioimplantable circuit e.g., bioimplantable circuit.
  • the motion tracking device 1 may include a marker tracking unit 100, a photographing unit 200, and a processor unit 300.
  • the marker tracking unit 100 may generate a marker image by photographing a detection marker (M) attached to a preset area of the human body.
  • M detection marker
  • the marker tracking unit 100 may include a lens that passes light emitted or reflected from the detection markers M, and the image of the detection marker M captured by the marker tracking unit 100 is transmitted to the lens. An image can be formed, and a marker image can be generated from the image of the sensing marker (M) that is imaged.
  • a plurality of marker tracking units 100 may be provided, and each of the plurality of marker tracking units 100 may be arranged at a preset angle and distance from the detection marker M.
  • each lens provided in the plurality of marker tracking units 100 may generate different marker images for the same detection marker M, and the processor unit 300, which will be described later, may generate the different marker images. Based on this, feature points can be derived and marker information (MI) can be detected.
  • MI marker information
  • the marker tracking unit 100 has a preset frame rate and can measure the position of the detection marker (M). Specifically, a marker image formed by lens imaging per second may be generated to correspond to the frame speed of the marker tracking unit 100.
  • the image of the detection marker M may be imaged N times per second in the lens provided by the marker tracking unit 100. N marker images are created per second.
  • the marker tracking unit 100 may transmit the generated marker image to the processor unit 300, and the processor unit 300 may receive the marker image and generate geometric information such as the position and rotation angle of the detection marker (M). Marker information (MI) can be detected.
  • M position and rotation angle of the detection marker
  • MI Marker information
  • the photographing unit 200 can generate a human body image by photographing the human body.
  • the imaging unit 200 may be made of various devices that can convert images acquired from the outside into human body images.
  • the photographing unit 200 may be comprised of an RGB camera.
  • the imaging unit 200 can detect wavelengths in the red, green, and blue regions and generate digital codes (RGB) corresponding to the wavelengths in each region.
  • RGB digital codes
  • the imaging unit 200 can detect wavelengths in various regions and generate digital codes preset to correspond to the wavelengths in each region.
  • the imaging unit 200 can amplify an electrical signal and output image information according to the amplified electrical signal to the processor unit 300. This has the effect of being able to obtain images of the human body even in an external environment with low illumination.
  • the photographing unit 200 can use any device that can capture a 3D image of an environment including a human body and obtain depth information of each pixel of the captured image.
  • it may be comprised of a device that can calculate the distance value of objects included in the shooting area, such as an infrared radiation camera, a stereo camera or TOF camera, or a depth imaging Kinect Depth camera.
  • the photographing unit 200 can project infrared rays, and generate a human body image of the desired human body by the difference in phase value between the projected infrared rays and the received infrared rays. You can.
  • the period in which the imaging unit 200 projects infrared rays may be continuous or discontinuous, and the period in which the imaging unit 200 projects infrared rays may be set in advance.
  • the photographing unit 200 When the photographing unit 200 is composed of a stereo camera, the photographing unit 200 can acquire visible light information obtained from a plurality of stereo cameras, and the processor unit 300 is provided with the obtained visible light information and performs triangulation. Through this technique, the desired human body image can be created.
  • the photographing unit 200 includes an RGB camera that acquires an RGB image that captures the direction in which the human body is located, a user, and a depth camera that acquires distance information between the photographing unit 200 and an arbitrary point on the human body. It can be achieved with a RGBD camera including.
  • the photographing unit 200 maps the distance information acquired through the depth camera to the RGB image acquired through the RGB camera (mapping refers to the operation of converting from one coordinate system to another coordinate system in computer graphics. ), the coordinates of the position of the human body can be determined from the coordinates of the entire area of the RGB image, and the photographing unit 200 can generate a human body image through the RGB image to which depth information is mapped.
  • the photographing unit 200 can photograph the direction in which the human body is located at a preset frame rate and generate an image of the human body at a speed corresponding to the frame rate. Due to this, the processor unit 300 can receive frame-based human body images generated by the photographing unit 200 and detect frame-based skeletal information (SI).
  • SI frame-based skeletal information
  • Skeleton information may include information about the positions of joints constituting the human body and information including distance values between the plurality of joints, and is used by the processor unit 300 to derive the information values.
  • the openpose algorithm can be used.
  • the processor unit 300 includes application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), and field programmable gate arrays (FPGAs). ), controllers, micro-controllers, microprocessors, and other electrical units for performing functions.
  • ASICs application specific integrated circuits
  • DSPs digital signal processors
  • DSPDs digital signal processing devices
  • PLDs programmable logic devices
  • FPGAs field programmable gate arrays
  • the processor unit 300 may create a virtual space with three-dimensional grid coordinates.
  • Three-dimensional grid coordinates may be coordinates with x-axis, y-axis, and z-axis orthogonal to each other, but are not limited thereto, and include all grid coordinates that can represent coordinates in three-dimensional space.
  • the processor unit 300 can set a three-dimensional grid coordinate system in virtual space by receiving information about the location and shooting direction of the marker tracking unit 100 and information about the location and shooting direction of the capturing unit 200. .
  • the processor unit 300 can receive a marker image from the marker tracking unit 100 and detect marker information (MI), and the marker information (MI) is the location of the detection marker (M). It may include coordinates, rotation angle and angular velocity of the detection marker (M) based on the marker tracking unit 100.
  • the processor unit 300 receives a marker image and detects marker information (MI)
  • the feature points of the human body are You can use the openpose algorithm that can extract (can be the joints that make up .).
  • the technology for tracking a marker attached to a preset part of the human body is applied to conventional marker tracking devices in various ways, and the marker tracking unit 100 tracks the detection marker (M) to provide marker information (MI). Detailed descriptions of the detection principles and processes are omitted.
  • the processor unit 300 receives a marker image on a frame-by-frame basis from the marker tracking unit 100 and can detect marker information (MI) on a frame-by-frame basis, and receives a human body image on a frame-by-frame basis from the photographing unit 200. Skeleton information (SI) can be detected as a unit.
  • MI marker information
  • SI Skeleton information
  • N marker images and human body images are generated per second, specifically 1, at 1/N second time intervals.
  • the 2nd, 3rd, n-1, nth marker images and the 1st, 2nd, 3rd, n-1, nth human body images can be created.
  • the processor unit 300 may receive the arbitrary nth (hereinafter, in this specification, n refers to a natural number of 2 or more) marker image and detect the nth marker information (MI), and detect the nth human body image.
  • MI nth marker information
  • SI nth skeleton information
  • the nth detected information is defined as information (n).
  • the nth detected marker information (MI) is expressed as marker information (MI(n))
  • the nth detected joint position information is expressed as joint position information (n).
  • the processor unit 300 may derive the position information (Jp1) of the first joint using the marker information (MI).
  • the processor unit 300 may set the first joint as the joint portion to which the detection marker M is attached.
  • the position information (Jp1) of the first joint is the position and rotation angle of the left wrist joint (Ja1).
  • It may be information including angular velocity, or information including the position, rotation angle, and angular velocity of the right wrist joint (Jb1).
  • the processor unit 300 may convert or synchronize the position information (Jp1) of the first joint into marker information (MI).
  • the processor unit 300 may derive the position information (Jp2) of the second joint using the position information (Jp1), the distance vector (L), and the angular velocity vector (WL) of the first joint.
  • the processor unit 300 includes position information (Jp1(n)) of the first joint corresponding to information derived from the n-th frame and a distance vector (L) corresponding to information derived from the n-1-th frame. (n-1)), and the angular velocity vector (WL(n-1)) can be used to derive the position information (Jp2(n)) of the second joint corresponding to the point in time when the nth frame is photographed.
  • the position information of the first joint (Jp1 (n) including the geometric information of the left wrist joint (Ja1) at the time of shooting the nth frame )
  • the angular velocity vector (WL(n-1))
  • Position information of the second joint (Jp2(n)) including geometric information of the elbow joint (Ja2), left shoulder joint (Ja3), right wrist joint (Jb1), right elbow joint (Jb2), and right shoulder joint (Jb3).
  • Position information of the second joint (Jp2(n) including geometric information of the elbow joint (Ja2), left shoulder joint (Ja3), right wrist joint (Jb1), right elbow joint (Jb2), and right shoulder joint (Jb3). ) can be derived.
  • the processor unit 300 stores the position information (Jp1(n-1)) of the first joint corresponding to the information derived from the n-1th frame and the distance vector corresponding to the information derived from the n-th frame. (L(n)) and the angular velocity vector (WL(n)) can be used to derive the position information (Jp2(n)) of the second joint corresponding to the point in time when the nth frame is photographed.
  • the position information (Jp1) of the first joint including the geometric information of the left wrist joint (Ja1) at the shooting time of the n-1th frame (n-1)), the left elbow joint corresponding to the time when the nth frame is captured using the distance vector (L(n)) corresponding to the information derived from the nth frame, and the angular velocity vector (WL(n)) (Ja2), the position information of the second joint (Jp2(n)), including the geometric information of the left shoulder joint (Ja3), right wrist joint (Jb1), right elbow joint (Jb2), and right shoulder joint (Jb3). It can be derived.
  • the processor unit 300 is configured to fuse the position information (Jp1) of the first joint based on marker information (MI) and the distance vector (L) and angular velocity vector (WL) based on bone information (SI).
  • An Extended Kalman Filter (EKF) can be used, and the position information (Jp2) of the second joint can be derived using the Extended Kalman Filter (EKF).
  • the processor unit 300 generates position information (Jp1) of the first joint based on marker information (MI) and a distance vector (L) and an angular velocity vector (WL) based on bone information (SI).
  • Jp1 position information
  • MI marker information
  • L distance vector
  • WL angular velocity vector
  • SI bone information
  • the position information of the first joint (Jp1(n)) and the position information of the second joint (Jp2(n)) are values derived from skeletal information (SI) generated by an open pose algorithm or marker information ( It may be at least one of the values derived from MI), and is an open pose to improve the probabilistic position estimation rate of the position information of the first joint (Jp1(n)) and the position information of the second joint (Jp2(n)).
  • the value derived from the skeleton information (SI) generated by the algorithm and the value derived from the marker information (MI) can be fused.
  • the L segment may mean a distance vector (L), may mean the angular velocity vector (WL).
  • L distance vector
  • WL angular velocity vector
  • the processor unit 300 can obtain skeleton information (SI) moving in a non-linear system using a Jacobian in order to fuse marker information (MI) based on the marker tracking algorithm and skeleton information (SI) according to the markerless motion tracking algorithm. . Specifically, the processor unit 300 may obtain the skeleton information (SI) using a Jacobian to fuse the distance vector (L) and the angular velocity vector (WL) based on the marker information (MI) and the skeleton information (SI).
  • the processor unit 300 can express the rotational motion of a rigid body as SO(3) and SE(3) by applying Lie theory.
  • the mathematical equation expressed in SO(3) and SE(3) by applying Lie theory is as follows.
  • the processor unit 300 can express the motion of the rigid body in Jacobian terms using the SO(3) expressed above. In addition, the processor unit 300 can relatively simply express the Jacobians of SO(3) and SE(3) by calculating the motion of the rigid body by dividing it into minute times. The processor unit 300 may derive motion information of the human body by applying the Extended Kalman Filter (EKF) to the calculated value.
  • EKF Extended Kalman Filter
  • the processor unit 300 can use the marker information (MI) to derive the position information (Jp3) of the third joint to which the detection marker (M) is attached.
  • the processor unit 300 may set the third joint as the joint area to which the detection marker (M) is attached.
  • the position information (Jp3) of the third joint includes the position, rotation angle, and rotation angle of the left wrist joint (Ja1). It may be composed of information including angular velocity or information including the position, rotation angle, and angular velocity of the right wrist joint (Jb1).
  • the processor unit 300 may store or synchronize the marker information (MI) with the position information (Jp3) of the third joint.
  • the position information (Jp3) of the third joint including the geometric information of the left wrist joint (Ja1) is It can be synchronized with the marker information (MI) detected from the detection marker (M) attached to the left wrist joint (Ja1), and the position information (Jp3) of the third joint including geometric information of the right wrist joint (Jb1) It can be synchronized with marker information (MI) detected from the sensing marker (M) attached to the right wrist joint (Jb1).
  • the processor unit 300 may derive the position information (Jp3(n)) of the third joint using the marker information (MI(n)) derived from the current frame (arbitrary nth frame).
  • the processor detects the detection marker (M) from the nth frame obtained by the marker tracking unit 100.
  • the unit 300 may detect marker information (MI(n)), and a third joint including geometric information of the third joint at the time the nth frame is generated using the marker information (MI(n)).
  • the location information (Jp3(n)) can be derived.
  • the processor unit 300 uses the position information (Jp3), the distance vector (L), and the angular velocity vector (WL) of the third joint to It can be verified by comparing with the location of . Specifically, the processor unit 300 generates the position information (Jp2) of the second joint derived using the position information (Jp3) of the third joint, the distance vector (L), and the angular velocity vector (WL), and the position of the first joint. It can be verified by calculating the error by comparing the position information (Jp2) of the second joint derived using the information (Jp1), the distance vector (L), and the angular velocity vector (WL).
  • the sensing marker (M) may be attached to the left wrist joint (Ja1) and the right wrist joint (Jb1).
  • the processor unit 300 sets the left wrist joint (Ja1) as the first joint, the right wrist joint (Jb1) as the third joint, the left elbow joint (Ja2), the left shoulder joint (Ja3), and the right The elbow joint (Jb2) and right shoulder joint (Jb3) can be set as the second joint.
  • the processor unit 300 includes the position information (Jp2 (n)) of the second joint derived using the position information (Jp1 (n)) of the first joint, and the position information (Jp3 (n)) of the third joint. It can be verified by calculating the error by comparing the position information (Jp2(n)) of the second joint derived using )).
  • the position information of the second joint (Jp2) derived using the position information of the first joint (Jp1), the distance vector (L), and the angular velocity vector (WL) is defined as the position information of the second joint 2a
  • the position information of the second joint (Jp2) derived using the position information of the third joint (Jp3), the distance vector (L), and the angular velocity vector (WL) is defined as the position information of the 2b joint.
  • the processor unit 300 may store a preset threshold, and the difference or error value between the position information of the 2a joint and the 2b joint targeting the same joint may exceed the threshold. In this case, it can be recognized as the area where an error occurred.
  • the processor unit 300 may assign weights to the position information of the 2a joint and the position information of the 2b joint, respectively, and use the average value according to the weights or a value derived according to a preset function to the verified second joint. It can be derived from location information (Jp2).
  • the information related to the frame may be ignored.
  • the second joint information of the frame may be replaced with the second joint information of the previous frame. It can be converted into joint information.
  • the process of the processor unit 300 verifying the position information (Jp2) of the second joint and the process of deriving the verified position information (Jp2) of the second joint include all known technical details. It can be seen as including.
  • the processor unit 300 may correct the distance vector (L) and the angular velocity vector (WL) in the current frame using the verified position information (Jp2) of the second joint.
  • the processor unit 300 may calculate the error range of the distance vector (L) and the angular velocity vector (WL) using the verified position information (Jp2) of the second joint, and the error is preset. When the threshold value is exceeded, the distance vector (L) and the angular velocity vector (WL) can be corrected to correspond to the verified position information (Jp2) of the second joint.
  • the processor unit 300 provides position information of the first joint (Jp1), position information of the third joint (Jp3), and verified position information of the second joint derived from marker information (MI). Motion information of the human body can be derived using (Jp2) and the corrected distance vector (L) and angular velocity vector (WL).
  • a motion tracking device is provided. Additionally, embodiments of the present invention can be applied to devices that measure motion by acquiring images of objects used in industry.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Geometry (AREA)
  • Image Analysis (AREA)

Abstract

본 발명은 모션 추적 장치를 제공하며, 인체의 미리 설정되는 영역에 부착되는 감지 마커를 촬영하여 마커 이미지를 생성하는 마커 추적부, 인체를 촬영하여 인체 이미지를 생성하는 촬영부 및 마커 추적부로부터 마커 이미지를 제공받아 마커 정보를 검출하고 촬영부로부터 인체 이미지를 제공받아 골격 정보를 검출하며, 마커 정보와 골격 정보를 이용하여 인체의 동작 정보를 도출하는 프로세서부를 포함할 수 있다.

Description

모션 추적 장치 및 방법
본 발명은 모션 추적 장치 및 방법에 관한 것이다.
일반적으로 관절 위치 추정 기술은 3D 컨텐츠 제작 분야에서 캐릭터의 자연스러운 동작을 생성하기 위해 사용되는 것은 물론 모션 캡쳐 기술로 찾아진 관절의 위치 값을 이용하여 다양한 운동 분석에 활용할 수 있다.
종래에는 관절 위치 측정을 위해 기계식 측정방법을 이용하고 있으나, 이러한 기계식 측정방법은 측각기나 경사계 등의 기계를 이용해서 관절의 위치를 직접 측정하는 점에서 사용이 불편하고 이로 인해 결과의 신뢰가 높지 않다.
또한, RGB영상을 이용하여 사람의 관절의 위치를 학습데이터로 하는 인공지능을 개발하려고 하나, 일반적인 RGB영상에는 사람의 관절부위가 표시되지 않기 때문에 수동으로 관절부위를 표시하는 수작업이 필요한 문제점이 있다.
종래에는, 관절의 위치 및 자세를 측정하기 위해 신체 부위에 마커를 부착한 후 다수의 마커 추적부를 통해 촬영함으로써 관절 데이터를 추출하는 방식이 있었다. 다만, 장비가 매우 고가이므로 다수의 마커를 부착하는 것이 현실적으로 쉽지 않다는 문제점이 있다.
본 발명은 센서 유닛이 영상 정보, 깊이 정보, 마커 정보를 획득하고 이를 프로세서부에 제공하고 프로세서부가 복수의 서로 다른 정보를 동일한 차원의 좌표계로 변환함으로써 사물의 위치 및 자세에 관한 정보를 정밀하게 도출할 수 있는 센서 융합 장치를 제공한다.
본 발명의 일 측면은, 인체의 미리 설정되는 영역에 부착되는 감지 마커를 촬영하여 마커 이미지를 생성하는 마커 추적부와 상기 인체를 촬영하여 인체 이미지를 생성하는 촬영부 및 상기 마커 추적부로부터 상기 마커 이미지를 제공받아 마커 정보를 검출하고 상기 촬영부로부터 상기 인체 이미지를 제공받아 골격 정보를 검출하며, 상기 마커 정보와 상기 골격 정보를 이용하여 상기 인체의 동작 정보를 도출하는 프로세서부를 포함하는 모션 추적 장치를 제공한다.
본 발명의 일 실시예에 따른 모션 추적 장치는 마커 추적부를 통해 획득되는 마커 정보와 촬영부를 통해 획득되는 골격 정보를 융합하여 감지 마커가 부착되지 않은 관절을 포함한 신체 부위의 위치와 자세를 정밀하게 추적할 수 있다.
도 1은 본 발명의 일 실시예에 따른 모션 추적 장치의 예시 구성을 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 마커 추적부의 동작을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 촬영부의 동작을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 프로세서부가 거리 백터 및 각속도 백터를 산출하는 과정을 설명하기 위한 도면이다.
도 5 및 도 6은 본 발명의 일 실시예에 따른 프로세서부가 관절의 위치를 검출하는 과정을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 프로세서부가 검출된 관절의 위치를 검증하는 과정을 설명하기 위한 도면이다.
도 8 내지 도 11은 본 발명의 일 실시예에 따른 인체의 동작 정보를 도출하기 위한 과정을 일련의 순서대로 도시한 도면이다.
본 발명의 일 측면은, 인체의 미리 설정되는 영역에 부착되는 감지 마커를 촬영하여 마커 이미지를 생성하는 마커 추적부와 상기 인체를 촬영하여 인체 이미지를 생성하는 촬영부 및 상기 마커 추적부로부터 상기 마커 이미지를 제공받아 마커 정보를 검출하고 상기 촬영부로부터 상기 인체 이미지를 제공받아 골격 정보를 검출하며, 상기 마커 정보와 상기 골격 정보를 이용하여 상기 인체의 동작 정보를 도출하는 프로세서부를 포함하는 모션 추적 장치를 제공한다.
또한, 상기 프로세서부는 상기 골격 정보를 이용해서 상기 인체를 구성하는 관절 사이의 거리 정보를 포함하는 거리 백터 및 상기 거리 백터의 각속도 정보를 포함하는 각속도 백터를 산출하고 상기 거리 백터, 상기 각속도 백터 및 상기 마커 정보를 이용하여 상기 인체의 동작 정보를 도출할 수 있다.
또한, 상기 프로세서부는 상기 마커 정보를 이용하여 상기 감지 마커가 부착된 제1 관절의 위치 정보를 도출하고 상기 제1 관절의 위치 정보, 상기 거리 백터 및 상기 각속도 백터를 이용하여 감지 마커가 부착되지 않은 제2 관절의 위치 정보를 도출할 수 있다.
또한, 상기 센서 유닛은 상기 깊이 센서부, 상기 마커 추적부 및 상기 비젼 카메라부가 배치되는 하우징부를 더 포함할 수 있다.
또한, 상기 마커 추적부 및 상기 촬영부는 기 설정된 프레임레이트(frame rate)로 각각 상기 마커 이미지 및 상기 인체 이미지를 생성하고, 상기 프로세서부는, 현재 프레임(임의의 n번째 프레임)으로부터 도출된 상기 마커 정보를 이용하여 상기 제1 관절의 위치 정보를 도출하고, 상기 제1 관절의 위치 정보와, 이전 프레임(n-1번째 프레임)으로부터 도출된 상기 거리 백터 및 상기 각속도 백터를 이용하여 상기 제2 관절의 위치 정보를 도출할 수 있다.
또한, 상기 프로세서부는, 상기 마커 정보를 이용하여 상기 감지 마커가 부착된 제3 관절의 위치 정보를 도출하고, 상기 제3 관절의 위치 정보, 상기 거리 백터 및 상기 각속도 백터를 이용하여 상기 도출된 제2 관절의 위치와 비교하여 검증할 수 있다.
또한, 상기 프로세서부는, 상기 검증된 제2 관절의 위치 정보를 이용하여 현재 프레임(임의의 n번째 프레임)에서의 상기 거리 백터 및 상기 각속도 백터를 보정할 수 있다.
또한, 상기 프로세서부는 확장된 칼만 필터(Extended Kalman Filter;EKF)를 이용하여 상기 인체의 동작 정보를 도출할 수 있다.
본 발명의 다른 측면은, 마커 추적부로부터 인체의 미리 설정되는 영역에 부착되는 감지 마커의 마커 이미지를 제공받는 단계와 촬영부로부터 인체 이미지를 제공받는 단계와 상기 마커 이미지로부터 감지 마커의 위치 정보를 포함하는 마커 정보를 검출하는 단계와 상기 인체 이미지로부터 인체의 골격 정보를 검출하는 단계 및 상기 마커 정보, 상기 골격 정보을 상기 인체의 동작 정보를 도출하는 단계를 포함하는, 모션추적 방법을 제공한다.
또한, 상기 골격 정보를 이용해서 상기 인체를 구성하는 관절 사이의 거리 정보를 포함하는 거리 백터 및 상기 거리 백터의 각속도 정보를 포함하는 각속도 백터를 산출하는 단계 및 상기 거리 백터, 상기 각속도 백터 및 상기 마커 정보를 이용하여 상기 인체의 동작 정보를 도출하는 단계를 더 포함할 수 있다.
또한, 상기 마커 정보를 이용하여 상기 감지 마커가 부착된 제1 관절의 위치 정보를 도출하는 단계 및 상기 제1 관절의 위치 정보, 상기 거리 백터 및 상기 각속도 백터를 이용하여 감지 마커가 부착되지 않은 제2 관절의 위치 정보를 도출하는 단계를 더 포함할 수 있다.
또한, 상기 마커 추적부 및 상기 촬영부는 기 설정된 프레임레이트(frame rate)로 각각 상기 마커 이미지 및 상기 인체 이미지를 생성하며, 현재 프레임(임의의 n번째 프레임)으로부터 도출된 상기 마커 정보를 이용하여 상기 제1 관절의 위치 정보를 도출하고 단계 및 상기 제1 관절의 위치 정보와, 이전 프레임(n-1번째 프레임)으로부터 도출된 상기 거리 백터 및 상기 각속도 백터를 이용하여 상기 제2 관절의 위치 정보를 도출하는 단계를 포함할 수 있다.
또한, 상기 마커 정보를 이용하여 상기 감지 마커가 부착된 제3 관절의 위치 정보를 도출하는 단계 및 상기 제3 관절의 위치 정보, 상기 거리 백터 및 상기 각속도 백터를 이용하여 상기 도출된 제2 관절의 위치와 비교하여 검증하는 단계를 더 포함할 수 있다.
또한, 상기 검증된 제2 관절의 위치 정보를 이용하여 현재 프레임(임의의 n번째 프레임)에서의 상기 거리 백터 및 상기 각속도 백터를 보정하는 단계를 더 포함할 수 있다.
또한, 상기 인체의 동작 정보를 도출하는 단계는, 확장된 칼만 필터(Extended Kalman Filter;EKF)를 이용하는 단계를 포함할 수 있다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
이하의 실시예에서, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
이하의 실시예에서, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다.
어떤 실시예가 달리 구현 가능한 경우에 특정한 공정 순서는 설명되는 순서와 다르게 수행될 수도 있다. 예를 들어, 연속하여 설명되는 두 공정이 실질적으로 동시에 수행될 수도 있고, 설명되는 순서와 반대의 순서로 진행될 수 있다.
도면에서는 설명의 편의를 위하여 구성 요소들이 그 크기가 과장 또는 축소될 수 있다. 예컨대, 도면에서 나타난 각 구성의 크기 및 두께는 설명의 편의를 위해 임의로 나타내었으므로, 이하의 실시예는 반드시 도시된 바에 한정되지 않는다.
도 1은 본 발명의 일 실시예에 따른 모션 추적 장치의 예시 구성을 도시한 도면이고, 도 2는 본 발명의 일 실시예에 따른 마커 추적부의 동작을 설명하기 위한 흐름도이며, 도 3은 본 발명의 일 실시예에 따른 촬영부의 동작을 설명하기 위한 흐름도이다. 도 4는 본 발명의 일 실시예에 따른 프로세서부가 거리 백터 및 각속도 백터를 산출하는 과정을 설명하기 위한 도면이고, 도 5 및 도 6은 본 발명의 일 실시예에 따른 프로세서부가 관절의 위치를 검출하는 과정을 설명하기 위한 도면이다. 도 7은 본 발명의 일 실시예에 따른 프로세서부가 검출된 관절의 위치를 검증하는 과정을 설명하기 위한 도면이며, 도 8 내지 도 11은 본 발명의 일 실시예에 따른 인체의 동작 정보를 도출하기 위한 과정을 일련의 순서대로 도시한 도면이다.
본 발명의 일 실시예에 따른 모션 추적 장치(1)는 측정 대상이 되는 인체를 촬영하여 인체의 자세 또는 관절의 위치를 추적하는 장치이다. 구체적으로, 모션 추적 장치(1)는 인체의 미리 설정되는 영역에 국소적으로 감지 마커(M)를 부착하며, 감지 마커(M)로부터 획득되는 정보를 이용하여 감지 마커(M)가 부착되는 않은 인체의 동작 정보를 추적하는 장치이다.
구체적으로, 본 발명의 일 실시예에 따른 모션 추적 장치(1)는 오픈 포즈 알고리즘으로 예측한 관절의 위치 값과 감지 마커(M)의 위치를 계산한 값을 확장 칼만 필터를 이용하여 감지 마커(M)가 부착되지 않은 관절의 위치 값의 추정 확률도를 높이는 장치이다.
일 실시예로, 인체의 미리 설정되는 영역에는 감지 마커(M)가 부착될 수 있으며, 일 실시예로, 감지 마커(M)는 양 손목 부위에 부착될 수 있다.
본 발명의 일 실시예에 따른 감지 마커(M)는 자체적으로 광을 방출하는 액티브(active)마커일 수 있으며, 감지 마커(M)들을 액티브 마커로 사용할 경우 로봇은 별도의 광원을 사용할 필요가 없다. 이와 다르게, 감지 마커(M)는 적어도 하나 이상의 광원으로부터 방출되는 광을 반사시키는 패시브(passive)마커일 수 있다. 이 경우, 감지 마커(M)는 모션 추적 장치(1)에 포함될 수 있는 광원으로부터 방출되는 광을 반사시킬 수 있다. 일 실시예로, 모션 추적 장치(1)가 인체의 동작 정보를 추적하는 목적 및, 모션 추적이 이루어지는 환경에 따라 감지 마커(M)는 액티브 마커와 패시브 마커의 혼용으로 사용될 수 있다.
다른 실시예에 따른 감지 마커(M)는 자기식 모션 캡쳐의 대상이 되는 센서로 이루어질 수 있다. 이 경우 모션 캡쳐가 이루어지는 공간에 별물로 형성되는 자기장 발생장치가 구비될 수 있고, 감지 마커(M)의 움직임에 따른 자기장 변화량을 계산하여 감지 마커(M)의 위치를 계산할 수 있다.
또 다른 실시예에 따른 감지 마커(M)는 관성식 모션 캡쳐의 대상이 되는 관성 센서로 이루어질 수 있다. 이 경우 모션 추적 장치(1)는 감지 마커(M)의 움직임에 따른 각속도 물리량을 측정하여 감지 마커(M)의 위치를 계산할 수 있다.
감지 마커(M)는 2차원 마커는 물론 3차원 마커가 사용될 수 있고 구체적으로 감지 마커(M)가 광을 방출 또는 반사하는 면이 2차원 또는 3차원으로 형성될 수 있다.
모션 추적의 목적이 되는 인체에는 복수 개의 감지 마커(M)가 부착될 수 있다. 복수 개의 감지 마커(M) 각각에는 서로 다른 패턴이 형성될 수 있으며, 상기 패턴의 형상에 대응되도록 마커는 광을 방출 또는 반사할 수 있다.
복수 개의 감지 마커(M)에 형성되는 패턴 정보는 뒤에 설명할 프로세서부(300)에 저장될 수 있으며, 프로세서부(300)는 패턴 정보에 대응되는 마커 ID를 각각의 감지 마커(M)에 할당할 수 있다. 이로 인하여, 프로세서부(300)는 감지 마커(M)로부터 패턴의 형상에 대응되는 광을 입력 받고 이에 대응되는 마커 ID를 추출하여 복수 개의 감지 마커(M)를 식별할 수 있다.
감지 마커(M)는 고유의 좌표계를 형성할 수 있다. 일 실시예로, 감지 마커(M)는 감지 마커(M) 상 미리 설정되는 지점을 원점으로 하며 서로 직교하는 x축, y축, z축으로 이루어지는 가상의 3차원 그리드 좌표계를 형성할 수 있다. 이 경우, 뒤에 설명할 프로세서부(300)는 감지 마커(M)가 형성하는 3차원 그리드 좌표계의 x축, y축, z축과 마커 추적부(100)간 상대적인 기하학적 관계 정보를 이용하여 감지 마커(M)의 회전 각 및 각속도를 측정할 수 있다.
감지 마커(M)는 웨어러블 장치(wearable device)에 포함될 수 있으며, 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드 또는 문신), 또는 생체 이식형 회로 중 적어도 하나를 포함할 수 있다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 모션 추적 장치(1)는 마커 추적부(100), 촬영부(200) 및 프로세서부(300)를 포함할 수 있다.
도 2를 참조하면, 마커 추적부(100)는 인체의 미리 설정되는 영역에 부착되는 감지 마커(M)를 촬영하여 마커 이미지를 생성할 수 있다.
마커 추적부(100)는 감지 마커(M)들로부터 방출 또는 반사되는 광을 통과시키는 렌즈를 포함할 수 있고, 마커 추적부(100)에 의해 촬영되는 감지 마커(M)의 이미지가 상기 렌즈에 결상될 수 있으며, 결상되는 감지 마커(M)의 이미지로부터 마커 이미지를 생성할 수 있다.
다른 실시예로 마커 추적부(100)는 복수 개가 구비될 수 있으며, 복수 개의 마커 추적부(100) 각각은 감지 마커(M)와 미리 설정되는 각도 및 거리를 두고 배치될 수 있다. 이 경우, 복수 개의 마커 추적부(100)가 구비하는 각각의 렌즈에는 동일한 감지 마커(M)에 대한 서로 다른 마커 이미지가 생성될 수 있으며, 뒤에 설명할 프로세서부(300)는 상기 서로 다른 마커 이미지를 기반으로 특징점을 도출하여 마커 정보(MI)를 검출할 수 있다.
마커 추적부(100)는 미리 설정되는 프레임 레이트(frame rate)를 가지며 감지 마커(M)의 위치를 측정할 수 있다. 구체적으로, 마커 추적부(100)의 상기 프레임 속도에 대응되도록 초당 렌즈 결상되는 마커 이미지가 생성될 수 있다.
일 실시예로, 마커 추적부(100)의 미리 설정되는 프레임 속도가 N fps인 경우, 해당 마커 추적부(100)가 구비하는 렌즈에는 감지 마커(M)의 이미지가 초당 N 회 결상될 수 있으며 초당 N개의 마커 이미지가 생성되게 된다.
마커 추적부(100)는 생성한 마커 이미지를 프로세서부(300)를 송출할 수 있으며, 프로세서부(300)는 마커 이미지를 제공받아 감지 마커(M)의 위치 및 회전 각 등 기하학적 정보를 포함하는 마커 정보(MI)를 검출할 수 있다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 촬영부(200)는 인체를 촬영하여 인체 이미지를 생성할 수 있다.
촬영부(200)는 외부로부터 획득된 영상을 인체 이미지로 변환할 수 있는 다양한 장치로 이루어질 수 있다.
일 실시예로 촬영부(200)는 RGB카메라로 이루어질 수 있다. 이 경우, 촬영부(200)는 적색(Red), 녹색(Green), 청색(Blue) 영역대의 파장을 검출할 수 있으며, 각 영역대의 파장에 상응하는 디지털 코드(RGB)를 생성할 수 있다. 그러나 이에 한정되는 것은 아니며, 촬영부(200)는 다양한 영역대의 파장을 검출할 수 있고, 각 영역대의 파장에 상응하도록 미리 설정된 디지털 코드를 생성할 수 있다.
이에 더하여, 촬영부(200)는 전기적 신호를 증폭할 수 있으며, 증폭된 전기적 신호에 따른 영상 정보를 프로세서부(300)에 출력할 수 있다. 이로 인하여 낮은 조도의 외부 환경에서도 인체 이미지를 획득할 수 있다는 효과가 있다.
다른 실시예로, 촬영부(200)는 인체를 포함하는 환경에 관한 3차원 영상을 촬영하고, 그 촬영 이미지의 각 픽셀의 깊이 정보를 획득할 수 있는 어떤 장치든 사용 가능하다. 예를 들어 적외선(Infrared Radiation) 카메라, 스테레오(Stereo) 카메라 또는 TOF 카메라, 깊이 영상 키넥트(Kinect Depth) 카메라 등 촬영 영역에 포함되는 사물의 거리 값을 계산할 수 있는 장치로 이루어질 수 있다.
예를 들어, 촬영부(200)가 적외선 카메라로 이루어지는 경우 촬영부(200)는 적외선을 투사할 수 있으며, 투사되는 적외선과 수광되는 적외선의 위상 값 차이로 목적하는 인체에 관한 인체 이미지를 생성할 수 있다. 촬영부(200)가 적외선을 투사하는 주기는 연속적일 수 있음을 물론 비연속적일 수 있으며, 촬영부(200)가 적외선을 투사하는 주기는 미리 설정될 수 있다.
촬영부(200)가 스테레오 카메라로 이루어지는 경우, 촬영부(200)는 복수 개의 스테레오 카레라로부터 획득되는 가시 광 정보를 획득할 수 있으며, 프로세서부(300)는 획득한 가시 광 정보를 제공받아 삼각 측량 기법을 통해 목적하는 인체 이미지를 생성할 수 있다.
또 다른 실시예로, 촬영부(200)는 인체가 위치한 방향을 촬영하는 RGB 이미지를 획득하는 RGB 카메라와 사용자와, 촬영부(200)와 인체의 임의의 지점간 거리 정보를 획득하는 Depth 카메라를 포함하는 RGBD 카메라로 이루어질 수 있다.
이 경우, 촬영부(200)는 Depth 카메라를 통해 획득한 거리 정보를 RGB 카메라를 통해 획득한 RGB 이미지에 매핑(매핑은 컴퓨터 그래픽스상, 한 좌표 체계에서 다른 좌표 체계로 변환하는 작업을 의미한다.)하여 RGB 이미지의 전체 영역에 대한 좌표 상에서 인체의 위치에 대한 좌표를 파악할 수 있으며, 촬영부(200)는 깊이 정보가 매핑된 RGB 이미지를 통해 인체 이미지를 생성할 수 있다.
촬영부(200)는 미리 설정되는 프레임 레이트(frame rate)로 인체가 위치하는 방향을 촬영할 수 있으며, 상기 프레임 레이트에 대응되는 속도로 인체 이미지를 생성할 수 있다. 이로 인하여, 프로세서부(300)는 촬영부(200)에서 생성된 프레임 단위의 인체 이미지를 제공받아 프레임 단위의 골격 정보(SI)를 검출할 수 있다.
일 실시예에 따른 골격 정보(SI)는 인체를 구성하는 관절의 위치에 관한 정보, 상기 복수 개의 관절 간 거리 값을 포함하는 정보를 포함할 수 있으며 상기 정보 값을 도출하기 위해 프로세서부(300)는 오픈 포즈(openpose) 알고리즘을 이용할 수 있다.
본 발명의 일 실시예에 따른 프로세서부(300)는 ASICs (application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessors), 기타 기능 수행을 위한 전기적 유닛 중 적어도 하나를 이용하여 구현될 수 있다.
프로세서부(300)는 3차원 그리드 좌표를 가지는 가상 공간을 생성할 수 있다. 3차원 그리드 좌표는 서로 직교하는 x축, y축, z축을 갖는 좌표일 수 있으나, 이에 한정되는 것은 아니며, 3차원 공간상의 좌표를 나타낼 수 있는 모든 그리드 좌표를 포함한다. 프로세서부(300)는 제공받은 마커 추적부(100)의 위치 및 촬영 방향에 관한 정보, 촬영부(200)의 위치 및 촬영 방향에 관한 정보를 입력 받아 가상 공간의 3차원 그리드 좌표계를 설정할 수 있다.
본 발명의 일 실시예에 따른 프로세서부(300)는 마커 추적부(100)로부터 마커 이미지를 제공받아 마커 정보(MI)를 검출할 수 있으며, 마커 정보(MI)는 감지 마커(M)의 위치 좌표, 마커 추적부(100)를 기준으로 하는 감지 마커(M)의 회전 각 및 각속도를 포함할 수 있다.
프로세서부(300)가 마커 이미지를 제공받아 마커 정보(MI)를 검출하는 방법에 있어서, 마커 이미지에서 실시간으로 바텀-업(Bottom-up) 방식으로 인체의 특징점(일 실시예에 따르면 특징점은 인체를 구성하는 관절이 될 수 있다.)을 추출할 수 있는 오픈 포즈(openpose) 알고리즘을 이용할 수 있다.
인체의 미리 설정되는 부위에 부착되는 마커를 추적하는 기술은 종래의 마커 추적 장치에 다양한 방법으로 적용되고 있는 바, 마커 추적부(100)가 감지 마커(M)를 추적하여 마커 정보(MI)를 검출하는 원리 및 과정에 대한 상세한 설명은 생략한다.
프로세서부(300)는 마커 추적부(100)로부터 프레임 단위로 마커 이미지를 제공받아 프레임 단위로 마커 정보(MI)를 검출할 수 있으며, 촬영부(200)로부터 프레임 단위로 인체 이미지를 제공받아 프레임 단위로 골격 정보(SI)를 검출할 수 있다.
일 실시예로, 마커 추적부(100) 및 촬영부(200)의 프레임 레이트가 동일하게 N fps 인 경우 마커 이미지 및 인체 이미지는 초당 N개가 생성되며, 구체적으로 1/N초 시간 간격으로 1, 2, 3,쪋, n-1, n 번째 마커 이미지 및 1, 2, 3,쪋, n-1, n 번째 인체 이미지가 생성 될 수 있다. 프로세서부(300)는 상기 임의의 n 번째(이하, 본 명세서에서 n은 2 이상의 자연수를 의미한다.) 마커 이미지를 제공받아 n 번째 마커 정보(MI)를 검출할 수 있으며, n 번째 인체 이미지를 제공받아 n 번째 골격 정보(SI)를 검출할 수 있다.
이하, 설명의 편의를 위해 n번째 검출되는 정보를 정보(n)이라고 정의한다. 예를 들어 n번째 검출되는 마커 정보(MI)는 마커 정보(MI(n))이라고 표현하며, n번째 검출되는 관절의 위치 정보는 관절의 위치 정보(n)이라고 표현한다.
프로세서부(300)는 마커 정보(MI)를 이용하여 제1 관절의 위치 정보(Jp1)를 도출할 수 있다.
도 5를 참조하면, 프로세서부(300)는 제1 관절을 감지 마커(M)가 부착된 관절 부위로 설정할 수 있다.
일 실시예로, 감지 마커(M)가 왼쪽 손목 관절(Ja1) 및 오른쪽 손목 관절(Jb1)에 부착되는 경우, 제1 관절의 위치 정보(Jp1)는 왼쪽 손목 관절(Ja1)의 위치, 회전 각, 각속도를 포함하는 정보 또는 오른쪽 손목 관절(Jb1)의 위치, 회전 각, 각속도를 포함하는 정보일 수 있다.
프로세서부(300)는 제1 관절의 위치 정보(Jp1)를 마커 정보(MI)로 변환 또는 동기화를 할 수 있다.
일 실시예로, 감지 마커(M)가 왼쪽 손목 관절(Ja1) 및 오른쪽 손목 관절(Jb1)에 부착되는 경우, 왼쪽 손목 관절(Ja1)의 기하학적 정보는 왼쪽 손목 관절(Ja1)에 부착되는 감지 마커(M)로부터 검출되는 마커 정보(MI)로 동기화 될 수 있으며, 오른쪽 손목 관절(Jb1)의 기하학적 정보는 오른쪽 손목 관절(Jb1)에 부착되는 감지 마커(M)로부터 검출되는 마커 정보(MI)로 동기화 될 수 있다.
프로세서부(300)는 현재 프레임(임의의 n번째 프레임)으로부터 도출된 마커 정보(MI(n))를 이용하여 제1 관절의 위치 정보(Jp1(n))를 도출할 수 있다.
일 실시예로, 감지 마커(M)가 왼쪽 손목 관절(Ja1) 및 오른쪽 손목 관절(Jb1)에 부착되는 경우, 프로세서부(300)는 마커 추적부(100)에 의해 획득되는 n번째 프레임상 감지 마커(M)로부터 마커 정보(MI(n))을 검출할 수 있으며, 마커 정보(MI(n))을 이용하여 n번째 프레임이 생성되는 시점의 제1 관절의 기하학적 정보를 포함하는 제1 관절의 위치 정보(Jp1(n))을 도출할 수 있다.
도 4를 참조하면, 프로세서부(300)는 마커 정보(MI) 또는 골격 정보(SI) 중 적어도 하나 이상을 이용해서, 인체를 구성하는 관절 사이의 거리 정보를 포함하는 거리 백터(L) 및 거리 백터(L)의 각속도 정보를 포함하는 각속도 백터(WL)를 산출할 수 있으며 거리 백터(L), 각속도 백터(WL) 및 마커 정보(MI)를 이용하여 인체의 동작 정보를 도출할 수 있다.
프로세서부(300)는 미리 설정되는 프레임 레이트에 따라 프레임 단위로 골격 정보(SI)를 검출할 수 있으며, 획득되는 프레임이 누적될수록 누적되는 골격 정보(SI)의 양은 많아지게 된다. 이로 인하여 누적되는 골격 정보(SI)를 기반으로 인체를 구성하는 관절 사이의 거리 정보의 값은 현실 공간 상 인체를 구성하는 관절 사이의 거리 값에 수렴할 수 있다.
일 실시예로, 프로세서부(300)는 미리 설정되는 프레임 레이트에 따라 프레임 단위로 마커 정보(MI)를 검출할 수 있으며, 이로 인하여 획득되는 마커 정보(MI)를 기반으로 인체를 구성하는 관절 사이의 거리 정보의 값을 추출할 수 있다.
다른 실시예로, 프로세서부(300)는 골격 정보(SI)로 획득되는 관절 사이의 거리 정보의 값과 마커 정보(MI)로 획득되는 관절 사이의 거리 정보의 값을 융합하여 각 관절 사이의 거리 정보의 값의 정밀도를 높일 수 있다. 구체적으로 오픈 포즈 알고리즘으로 생성되는 골격 정보(SI)로 도출되는 각 관절 사이의 거리 정보 값의 정밀도를 높이기 위해 마커 정보(MI)로 획득되는 관절 사이의 거리 정보의 값을 참조 또는 보정 데이터로 입력 받을 수 있으며, 마커 정보(MI)로 획득되는 관절 사이의 거리 정보의 값의 오차 범위를 감소시키기 위해 오픈 포즈 알고리즘으로 생성되는 골격 정보(SI)로 도출되는 각 관절 사이의 거리 정보 값을 참조 데이터로 이용할 수 있다.
예를 들어, 감지 마커(M)가 왼쪽 손목 관절(Ja1)과 왼쪽 팔꿈치 관절(Ja2)에 부착되는 경우, 왼쪽 손목 관절(Ja1)과 왼쪽 팔꿈치 관절(Ja2) 사이의 거리 정보를 포함하는 거리 백터(La1)는 오픈 포즈 알고리즘으로 생성되는 골격 정보(SI)로 도출되는 왼쪽 손목 관절(Ja1)과 왼쪽 팔꿈치 관절(Ja2) 사이의 거리 정보를 포함하는 거리 백터(La1)값과, 왼쪽 손목 관절(Ja1)과 왼쪽 팔꿈치 관절(Ja2) 각각에 부착되는 감지 마커(M)의 기하학적 관계 정보를 포함하는 마커 정보(MI)를 이용하여 왼쪽 손목 관절(Ja1)과 왼쪽 팔꿈치 관절(Ja2) 사이의 거리 정보를 포함하는 거리 백터(La1)을 산출할 수 있다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 모션 추적 장치(1)가 인체의 상체 부분에 관한 동작 정보를 도출하는 경우 프로세서부(300)가 산출하는 거리 백터(L)는 왼쪽 손목 관절(Ja1)과 왼쪽 팔꿈치 관절(Ja2) 사이의 거리 정보를 포함하는 거리 백터(La1), 왼쪽 팔꿈치 관절(Ja2)과 왼쪽 어깨 관절(Ja3) 사이의 거리 정보를 포함하는 거리 백터(La2), 왼쪽 어깨 관절(Ja3)과 오른쪽 어깨 관절(Jb3) 사이의 거리 정보를 포함하는 거리 백터(Lc), 오른쪽 어깨 관절(Jb3)과 오른쪽 팔꿈치 관절(Jb2) 사이의 거리 정보를 포함하는 거리 백터(Lb2) 및 오른쪽 팔꿈치 관절(Jb2)과 오른쪽 손목 관절(Jb1) 사이의 거리 정보를 포함하는 거리 백터(Lb1)로 구성될 수 있다.
또한, 프로세서부(300)가 산출하는 각속도 백터(WL)는 거리 백터(La1)의 각속도 정보를 포함하는 각속도 백터(WLa1), 거리 백터(La2)의 각속도 정보를 포함하는 각속도 백터(WLa2), 거리 백터(Lc)의 각속도 정보를 포함하는 각속도 백터(WLc), 거리 백터(Lb2)의 각속도 정보를 포함하는 각속도 백터(WLb2) 및 거리 백터(Lb1)의 각속도 정보를 포함하는 각속도 백터(WLb1)로 구성될 수 있다.
마커 추적부(100) 및 촬영부(200)가 기 설정되는 프레임 레이트에 따라 프레임 단위의 마커 이미지 및 인체 이미지를 생성하는 경우, 프로세서부(300)는 마커 정보(MI(n)) 또는 골격 정보 (SI(n)) 중 적어도 하나 이상을 이용해서, 인체를 구성하는 관절 사이의 거리 정보를 포함하는 거리 백터(L(n)) 및 거리 백터(L)의 각속도 정보를 포함하는 각속도 백터(WL(n))를 산출할 수 있으며 거리 백터(L(n)), 각속도 백터(WL(n)) 및 마커 정보(MI)를 이용하여 인체의 동작 정보를 도출할 수 있다.
일 실시예로, 프로세서부(300)는 제공받은 골격 정보(SI)에 포함되는 인체의 신장 길이를 계산할 수 있으며, 계산된 인체의 신장과 골격 정보(SI)에 포함되는 인체의 비례 정보를 이용하여 골격 정보(SI)를 픽셀 단위로 계산하여 거리 백터(L) 및 각속도 백터(WL)를 도출할 수 있다.
다른 실시예로, 골격 정보(SI)에는 촬영부(200)와 인체의 임의의 지점까지의 깊이 정보가 픽셀 단위로 매핑된 RGB 이미지가 포함될 수 있으며, 프로세서부(300)는 상기 매핑된 RGB 이미지를 이용하여 인체의 실루엣(이하, 본 명세서에서 인체의 실루엣은 인체가 포함되는 공간상 이미지에서 인체가 위치하는 영역을 이루는 경계선을 의미한다.)을 계산할 수 있고 계산된 인체의 실루엣으로 특이점으로 추출하여 거리 백터(L) 및 각속도 백터(WL)를 도출할 수 있다.
그 이외에도, 복수 개의 RGB카메라 또는 RGBD 카메라로 이루어지는 촬영부(200)로부터 인체가 포함되는 영역을 촬영하여 거리 백터(L) 및 각속도 백터(WL)를 획득하는 기술은 종래의 마커리스 모션 추적 장치(1)에 다양한 방법으로 적용되고 있는 바, 이에 대한 상세한 설명은 생략한다.
프로세서부(300)가 마커 이미지를 제공받아 마커 정보(MI)를 검출하는 방법에 있어서, 마커 이미지에서 실시간으로 바텀-업(Bottom-up) 방식으로 인체의 특징점을 추출할 수 있는 오픈포즈(openpose) 알고리즘을 이용할 수 있다.
프로세서부(300)는 제1 관절의 위치 정보(Jp1), 거리 백터(L) 및 각속도 백터(WL)를 이용하여 제2 관절의 위치 정보(Jp2)를 도출할 수 있다.
바람직하게, 제2 관절은 감지 마커(M)가 부착되지 않는 관절 부위로 설정될 수 있으나, 이에 한정되는 것은 아니며 제2 관절은 인체가 포함하는 모든 관절 부위 중 적어도 하나 이상으로 포함할 수 있다.
일 실시예로, 감지 마커(M)가 왼쪽 손목 관절(Ja1) 및 오른쪽 손목 관절(Jb1)에 부착되는 경우, 제2 관절은 왼쪽 팔꿈치 관절(Ja2), 왼쪽 어깨 관절(Ja3), 오른쪽 팔꿈치 관절(Jb2), 오른쪽 어깨 관절(Jb3) 중 적어도 하나 이상으로 설정될 수 있다.
도 6을 참조하면, 프로세서부(300)는 제1 관절의 위치 정보(Jp1)와, 이전 프레임(n-1번째 프레임)으로부터 산출된 상기 거리 백터(L) 및 상기 각속도 백터(WL)를 이용하여 상기 제2 관절의 위치 정보(Jp2)를 도출할 수 있다.
일 실시예로, 프로세서부(300)는 n번째 프레임으로부터 도출되는 정보에 해당하는 제1 관절의 위치 정보(Jp1(n))와 n-1번째 프레임으로 도출되는 정보에 해당하는 거리 백터(L(n-1)), 각속도 백터(WL(n-1))를 이용하여 n번째 프레임이 촬영되는 시점에 해당하는 제2 관절의 위치 정보(Jp2(n))을 도출할 수 있다.
예를 들어, 감지 마커(M)가 왼쪽 손목 관절(Ja1)에 부착되는 경우, n번째 프레임의 촬영 시점 상 왼쪽 손목 관절(Ja1)의 기하학적 정보를 포함하는 제1 관절의 위치 정보(Jp1(n)), n-1번째 프레임으로 도출되는 정보에 해당하는 거리 백터(L(n-1)), 각속도 백터(WL(n-1))를 이용하여 n번째 프레임이 촬영되는 시점에 해당하는 왼쪽 팔꿈치 관절(Ja2), 왼쪽 어깨 관절(Ja3), 오른쪽 손목 관절(Jb1), 오른쪽 팔꿈치 관절(Jb2) 및 오른쪽 어깨 관절(Jb3)의 기하학적 정보를 포함하는 제2 관절의 위치 정보(Jp2(n))을 도출할 수 있다.
다른 실시예로, 프로세서부(300)는 n-1번째 프레임으로부터 도출되는 정보에 해당하는 제1 관절의 위치 정보(Jp1(n-1))와 n번째 프레임으로 도출되는 정보에 해당하는 거리 백터(L(n)), 각속도 백터(WL(n))을 이용하여 n번째 프레임이 촬영되는 시점에 해당하는 제2 관절의 위치 정보(Jp2(n))을 도출할 수 있다.
예를 들어, 감지 마커(M)가 왼쪽 손목 관절(Ja1)에 부착되는 경우, n-1번째 프레임의 촬영 시점 상 왼쪽 손목 관절(Ja1)의 기하학적 정보를 포함하는 제1 관절의 위치 정보(Jp1(n-1)), n번째 프레임으로 도출되는 정보에 해당하는 거리 백터(L(n)), 각속도 백터(WL(n))을 이용하여 n번째 프레임이 촬영되는 시점에 해당하는 왼쪽 팔꿈치 관절(Ja2), 왼쪽 어깨 관절(Ja3), 오른쪽 손목 관절(Jb1), 오른쪽 팔꿈치 관절(Jb2) 및 오른쪽 어깨 관절(Jb3)의 기하학적 정보를 포함하는 제2 관절의 위치 정보(Jp2(n))을 도출할 수 있다.
프로세서부(300)는 마커 정보(MI)에 기반한 관절의 위치 정보와 골격 정보(SI)에 기반한 관절의 위치 정보를 융합하여 추정 확률을 높이기 위해 확장된 칼만 필터(Extended Kalman Filter;EKF)를 이용할 수 있으며, 상기 확장된 칼만 필터(Extended Kalman Filter;EKF)를 이용하여 새로운 관절의 위치 정보값을 도출할 수 있다.
일 실시예로, 프로세서부(300)는 마커 정보(MI)에 기반한 제1 관절의 위치 정보(Jp1)와 골격 정보(SI)에 기반한 거리 백터(L) 및 각속도 백터(WL)를 융합하기 위해 확장된 칼만 필터(Extended Kalman Filter;EKF)를 이용할 수 있으며, 상기 확장된 칼만 필터(Extended Kalman Filter;EKF)를 이용하여 제2 관절의 위치 정보(Jp2)를 도출할 수 있다.
본 발명의 일 실시예에 따른 프로세서부(300)는 마커 정보(MI)에 기반한 제1 관절의 위치 정보(Jp1)와 골격 정보(SI)에 기반한 거리 백터(L) 및 각속도 백터(WL)를 융합하기 위해 하기와 같은 모션 모델 행렬(Motion model matrix)를 이용할 수 있다.
Figure PCTKR2023010698-appb-img-000001
여기서,
Figure PCTKR2023010698-appb-img-000002
는 n번째 프레임에서 도출된 제1 관절의 위치 정보(Jp1(n))이고,
Figure PCTKR2023010698-appb-img-000003
내지
Figure PCTKR2023010698-appb-img-000004
은 서로 다른 관절을 대상으로 하는 제2 관절의 위치 정보(Jp2(n))이다.
Figure PCTKR2023010698-appb-img-000005
는 이동량(translation)을 의미하며,
Figure PCTKR2023010698-appb-img-000006
은 L 세그먼트(segment)가 가지는 미소 시간의 SO(3)의 변화율에 따른 야코비안(jacobian)을 의미한다.
일 실시예에 따른 제1 관절의 위치 정보(Jp1(n)) 및 제2 관절의 위치 정보(Jp2(n))는 오픈 포즈 알고리즘으로 생성되는 골격 정보(SI)로 도출되는 값 또는 마커 정보(MI)로 도출되는 값 중 적어도 하나 이상일 수 있으며, 제1 관절의 위치 정보(Jp1(n)) 및 제2 관절의 위치 정보(Jp2(n))의 확률적 위치 추정율을 향상시키기 위해 오픈 포즈 알고리즘으로 생성되는 골격 정보(SI)로 도출되는 값 과 마커 정보(MI)로 도출되는 값을 융합할 수 있다.
상기 L 세그먼트는 거리 백터(L)를 의미할 수 있으며,
Figure PCTKR2023010698-appb-img-000007
는 각속도 백터(WL)를 의미할 수 있다. 상기 S0(3)의 야코비안을 구하는 방식은 뒤에 상세하게 설명하도록 한다.
프로세서부(300)는 마커 추적 알고리즘에 의한 마커 정보(MI)와 마커리스 모션 추적 알고리즘에 따른 골격 정보(SI)를 융합하기 위해 비선형 시스템으로 운동하는 골격 정보(SI)를 야코비안으로 구할 수 있다. 구체적으로 프로세서부(300)는 마커 정보(MI)와 골격 정보(SI)에 기반한 거리 백터(L)와 각속도 백터(WL)를 퓨전하기 위해 골격 정보(SI)를 야코비안으로 구할 수 있다.
본 발명의 일 실시예에 따른 프로세서부(300)는 상기 문제를 해결하기 위해 강체의 회전 운동을 Lie theory를 적용하여 SO(3), SE(3)으로 표현할 수 있다. Lie theory를 적용하여 SO(3), SE(3)으로 표현한 수학식은 하기와 같다.
Figure PCTKR2023010698-appb-img-000008
프로세서부(300)는 상기 표현된 SO(3)으로 강체의 움직임을 야코비안으로 표현할 수 있다. 이에 더하여, 프로세서부(300)는 상기 강체의 움직임을 미소 시간으로 분할하여 계산함으로써 SO(3), SE(3)의 야코비안을 비교적 간단하게 표현할 수 있다. 프로세서부(300)는 상기 계산값을 상기 확장된 칼만 필터(Extended Kalman Filter;EKF)를 적용하여 인체의 동작 정보를 도출할 수 있다.
SO(3), SE(3)의 야코비안을 비교적 간단하게 표현하기 위한 수학식은 하기와 같다.
Figure PCTKR2023010698-appb-img-000009
도 7을 참조하면, 본 발명의 일 실시예에 따른 프로세서부(300)는 마커 정보(MI)를 이용하여 감지 마커(M)가 부착된 제3 관절의 위치 정보(Jp3)를 도출할 수 있으며, 프로세서부(300)는 제3 관절을 감지 마커(M)가 부착된 관절 부위로 설정할 수 있다.
일 실시예로, 감지 마커(M)가 왼쪽 손목 관절(Ja1) 및 오른쪽 손목 관절(Jb1)에 부착되는 경우 제3 관절의 위치 정보(Jp3)는 왼쪽 손목 관절(Ja1)의 위치, 회전 각, 각속도를 포함하는 정보 또는 오른쪽 손목 관절(Jb1)의 위치, 회전 각, 각속도를 포함하는 정보로 구성될 수 있다.
프로세서부(300)는 제3 관절의 위치 정보(Jp3)에 마커 정보(MI)를 저장 또는 동기화를 할 수 있다. 일 실시예로, 감지 마커(M)가 왼쪽 손목 관절(Ja1) 및 오른쪽 손목 관절(Jb1)에 부착되는 경우 왼쪽 손목 관절(Ja1)의 기하학적 정보를 포함하는 제3 관절의 위치 정보(Jp3)는 왼쪽 손목 관절(Ja1)에 부착되는 감지 마커(M)로부터 검출되는 마커 정보(MI)로 동기화 될 수 있으며, 오른쪽 손목 관절(Jb1)의 기하학적 정보를 포함하는 제3 관절의 위치 정보(Jp3)는 오른쪽 손목 관절(Jb1)에 부착되는 감지 마커(M)로부터 검출되는 마커 정보(MI)로 동기화 될 수 있다.
프로세서부(300)는 현재 프레임(임의의 n번째 프레임)으로부터 도출된 마커 정보(MI(n))를 이용하여 제3 관절의 위치 정보(Jp3(n))를 도출할 수 있다.
일 실시예로, 감지 마커(M)가 왼쪽 손목 관절(Ja1) 및 오른쪽 손목 관절(Jb1)에 부착되는 경우, 마커 추적부(100)에 의해 획득되는 n번째 프레임상 감지 마커(M)로부터 프로세서부(300)는 마커 정보(MI(n))을 검출할 수 있으며, 마커 정보(MI(n))을 이용하여 n번째 프레임이 생성되는 시점의 제3 관절의 기하학적 정보를 포함하는 제3 관절의 위치 정보(Jp3(n))을 도출할 수 있다.
도 7을 참조하면, 본 발명의 일 실시예에 따른 프로세서부(300)는 제3 관절의 위치 정보(Jp3), 거리 백터(L) 및 각속도 백터(WL)를 이용하여 상기 도출된 제2 관절의 위치와 비교하여 검증할 수 있다. 구체적으로 프로세서부(300)는 제3 관절의 위치 정보(Jp3), 거리 백터(L) 및 각속도 백터(WL)를 이용하여 도출한 제2 관절의 위치 정보(Jp2)와, 제1 관절의 위치 정보(Jp1), 거리 백터(L) 및 각속도 백터(WL)를 이용하여 도출한 제2 관절의 위치 정보(Jp2)를 비교하여 오차를 계산하여 검증할 수 있다.
일 실시예로, 감지 마커(M)는 왼쪽 손목 관절(Ja1) 및 오른쪽 손목 관절(Jb1)에 부착될 수 있다. 이때, 프로세서부(300)는 왼쪽 손목 관절(Ja1)을 제1 관절로 설정하고 오른쪽 손목 관절(Jb1)을 제3 관절로 설정하며, 왼쪽 팔꿈치 관절(Ja2), 왼쪽 어깨 관절(Ja3), 오른쪽 팔꿈치 관절(Jb2), 오른쪽 어깨 관절(Jb3)을 제2 관절로 설정할 수 있다.
이 경우, 프로세서부(300)는 제1 관절의 위치 정보(Jp1(n))를 이용하여 도출된 제2 관절의 위치 정보(Jp2(n))와, 제3 관절의 위치 정보(Jp3(n)) 를 이용하여 도출된 제2 관절의 위치 정보(Jp2(n))를 비교하여 오차를 계산하여 검증할 수 있다.
이하, 본 명세서에서는 제1 관절의 위치 정보(Jp1), 거리 백터(L), 각속도 백터(WL)를 이용하여 도출된 제2 관절의 위치 정보(Jp2)를 제2a 관절의 위치 정보로 정의하고, 제3 관절의 위치 정보(Jp3), 거리 백터(L), 각속도 백터(WL)를 이용하여 도출된 제2 관절의 위치 정보(Jp2)를 제2b 관절의 위치 정보라고 정의한다.
이하, 프로세서부(300)가 제2 관절의 위치 정보(Jp2)를 검증하는 과정 및 검증된 제2 관절의 위치 정보(Jp2)를 도출하는 과정을 설명하도록 한다.
일 실시예로, 프로세서부(300)는 미리 설정된 임계 값을 저장할 수 있으며, 동일한 관절을 대상으로 하는 제2a 관절의 위치 정보와 제2b 관절의 위치 정보의 차이 내지 오차 값이 상기 임계 값을 넘을 경우 에러가 발생한 부위로 인식할 수 있다.
프로세서부(300)는 제2a 관절의 위치 정보와 제2b 관절의 위치 정보에 각각 가중치를 부여할 수 있으며, 상기 가중치에 따른 평균값 내지 미리 설정되는 함수에 따라 도출되는 값을 검증된 제2 관절의 위치 정보(Jp2)로 도출할 수 있다.
일 실시예로 제2 관절의 위치 정보(Jp2)에 에러가 발생하였다고 인식되는 경우, 해당 프레임과 관한 정보를 무시할 수 있으며, 다른 실시예로, 해당 프레임의 제2 관절 정보를 이전 프레임의 제2 관절 정보로 변환할 수 있다.
그러나 이에 한정되는 것은 아니며, 프로세서부(300)가 제2 관절의 위치 정보(Jp2)를 검증하는 과정 및 검증된 제2 관절의 위치 정보(Jp2)를 도출하는 과정은 이미 공지된 기술 내용을 모두 포함한다고 볼 수 있다.
프로세서부(300)는 검증된 제2 관절의 위치 정보(Jp2)를 이용하여 현재 프레임에서의 거리 백터(L) 및 각속도 백터(WL)를 보정할 수 있다.
일 실시예로, 프로세서부(300)는 검증된 제2 관절의 위치 정보(Jp2)를 이용하여 거리 백터(L) 및 각속도 백터(WL)의 오차 범위를 계산할 수 있으며, 상기 오차가 미리 설정되는 임계 값을 넘을 경우 검증된 제2 관절의 위치 정보(Jp2)와 대응되도록 거리 백터(L) 및 각속도 백터(WL)를 보정할 수 있다.
본 발명의 일 실시예에 따른 프로세서부(300)는 마커 정보(MI)로부터 도출되는 제1 관절의 위치 정보(Jp1), 제3 관절의 위치 정보(Jp3), 검증된 제2 관절의 위치 정보(Jp2) 및 보정된 거리 백터(L) 및 각속도 백터(WL)를 이용하여 인체의 동작 정보를 도출할 수 있다.
본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐만 아니라, 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.
본 발명의 일 실시예에 의하면, 모션 추적 장치를 제공한다. 또한, 산업상 이용하는 사물에 관한 이미지를 획득하여 모션을 측정하는 장치 등에 본 발명의 실시예들을 적용할 수 있다.

Claims (14)

  1. 인체의 미리 설정되는 영역에 부착되는 감지 마커를 촬영하여 마커 이미지를 생성하는 마커 추적부;
    상기 인체를 촬영하여 인체 이미지를 생성하는 촬영부; 및
    상기 마커 추적부로부터 상기 마커 이미지를 제공받아 마커 정보를 검출하고 상기 촬영부로부터 상기 인체 이미지를 제공받아 골격 정보를 검출하며, 상기 마커 정보와 상기 골격 정보를 이용하여 상기 인체의 동작 정보를 도출하는 프로세서부;를 포함하는, 모션 추적 장치.
  2. 제1항에 있어서,
    상기 프로세서부는,
    상기 골격 정보를 이용해서, 상기 인체를 구성하는 관절 사이의 거리 정보를 포함하는 거리 백터 및 상기 거리 백터의 각속도 정보를 포함하는 각속도 백터를 산출하고, 상기 거리 백터, 상기 각속도 백터 및 상기 마커 정보를 이용하여 상기 인체의 동작 정보를 도출하는, 모션 추적 장치.
  3. 제2항에 있어서,
    상기 프로세서부는,
    상기 마커 정보를 이용하여 상기 감지 마커가 부착된 제1 관절의 위치 정보를 도출하고,
    상기 제1 관절의 위치 정보, 상기 거리 백터 및 상기 각속도 백터를 이용하여 감지 마커가 부착되지 않은 제2 관절의 위치 정보를 도출하는, 모션 추적 장치.
  4. 제3항에 있어서,
    상기 마커 추적부 및 상기 촬영부는 기 설정된 프레임레이트(frame rate)로 각각 상기 마커 이미지 및 상기 인체 이미지를 생성하고,
    상기 프로세서부는,
    현재 프레임(임의의 n번째 프레임)으로부터 도출된 상기 마커 정보를 이용하여 상기 제1 관절의 위치 정보를 도출하고,
    상기 제1 관절의 위치 정보와, 이전 프레임(n-1번째 프레임)으로부터 도출된 상기 거리 백터 및 상기 각속도 백터를 이용하여 상기 제2 관절의 위치 정보를 도출하는, 모션 추적 장치.
  5. 제4항에 있어서,
    상기 프로세서부는,
    상기 마커 정보를 이용하여 상기 감지 마커가 부착된 제3 관절의 위치 정보를 도출하고,
    상기 제3 관절의 위치 정보, 상기 거리 백터 및 상기 각속도 백터를 이용하여 상기 도출된 제2 관절의 위치와 비교하여 검증하는, 모션 추적 장치.
  6. 제5항에 있어서,
    상기 프로세서부는,
    상기 검증된 제2 관절의 위치 정보를 이용하여 현재 프레임(임의의 n번째 프레임)에서의 상기 거리 백터 및 상기 각속도 백터를 보정하는, 모션 추적 장치.
  7. 제1항에 있어서,
    상기 프로세서부는 확장된 칼만 필터(Extended Kalman Filter;EKF)를 이용하여 상기 인체의 동작 정보를 도출하는, 모션 추적 장치.
  8. 마커 추적부로부터 인체의 미리 설정되는 영역에 부착되는 감지 마커의 마커 이미지를 제공받는 단계;
    촬영부로부터 인체 이미지를 제공받는 단계;
    상기 마커 이미지로부터 감지 마커의 위치 정보를 포함하는 마커 정보를 검출하는 단계;
    상기 인체 이미지로부터 인체의 골격 정보를 검출하는 단계; 및
    상기 마커 정보, 상기 골격 정보을 상기 인체의 동작 정보를 도출하는 단계;를 포함하는, 모션추적 방법.
  9. 제8항에 있어서,
    상기 골격 정보를 이용해서, 상기 인체를 구성하는 관절 사이의 거리 정보를 포함하는 거리 백터 및 상기 거리 백터의 각속도 정보를 포함하는 각속도 백터를 산출하는 단계; 및
    상기 거리 백터, 상기 각속도 백터 및 상기 마커 정보를 이용하여 상기 인체의 동작 정보를 도출하는 단계;를 더 포함하는, 모션추적 방법.
  10. 제9항에 있어서,
    상기 마커 정보를 이용하여 상기 감지 마커가 부착된 제1 관절의 위치 정보를 도출하는 단계; 및
    상기 제1 관절의 위치 정보, 상기 거리 백터 및 상기 각속도 백터를 이용하여 감지 마커가 부착되지 않은 제2 관절의 위치 정보를 도출하는 단계;를 더 포함하는, 모션추적 방법.
  11. 제10항에 있어서,
    상기 마커 추적부 및 상기 촬영부는 기 설정된 프레임레이트(frame rate)로 각각 상기 마커 이미지 및 상기 인체 이미지를 생성하며,
    현재 프레임(임의의 n번째 프레임)으로부터 도출된 상기 마커 정보를 이용하여 상기 제1 관절의 위치 정보를 도출하고 단계; 및
    상기 제1 관절의 위치 정보와, 이전 프레임(n-1번째 프레임)으로부터 도출된 상기 거리 백터 및 상기 각속도 백터를 이용하여 상기 제2 관절의 위치 정보를 도출하는 단계;를 포함하는, 모션추적 방법.
  12. 제11항에 있어서,
    상기 마커 정보를 이용하여 상기 감지 마커가 부착된 제3 관절의 위치 정보를 도출하는 단계; 및
    상기 제3 관절의 위치 정보, 상기 거리 백터 및 상기 각속도 백터를 이용하여 상기 도출된 제2 관절의 위치와 비교하여 검증하는 단계;를 더 포함하는, 모션추적 방법.
  13. 제12항에 있어서,
    상기 검증된 제2 관절의 위치 정보를 이용하여 현재 프레임(임의의 n번째 프레임)에서의 상기 거리 백터 및 상기 각속도 백터를 보정하는 단계;를 더 포함하는, 모션추적 방법.
  14. 제8항에 있어서,
    상기 인체의 동작 정보를 도출하는 단계는,
    확장된 칼만 필터(Extended Kalman Filter;EKF)를 이용하는 단계;를 포함하는, 모션추적 방법.
PCT/KR2023/010698 2022-11-29 2023-07-25 모션 추적 장치 및 방법 WO2024117447A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220162267A KR20240079399A (ko) 2022-11-29 2022-11-29 모션 추적 장치 및 방법
KR10-2022-0162267 2022-11-29

Publications (1)

Publication Number Publication Date
WO2024117447A1 true WO2024117447A1 (ko) 2024-06-06

Family

ID=91324413

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/010698 WO2024117447A1 (ko) 2022-11-29 2023-07-25 모션 추적 장치 및 방법

Country Status (2)

Country Link
KR (1) KR20240079399A (ko)
WO (1) WO2024117447A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100104228A (ko) * 2009-03-17 2010-09-29 삼성전자주식회사 모션 데이터 및 영상 데이터를 이용한 골격 모델 생성 장치및 방법
US20120327194A1 (en) * 2011-06-21 2012-12-27 Takaaki Shiratori Motion capture from body mounted cameras
KR20150114141A (ko) * 2014-03-31 2015-10-12 한국전자통신연구원 모션 추정 시스템 및 방법
KR20170012043A (ko) * 2015-07-23 2017-02-02 삼성전자주식회사 엑스선 장치 및 동작 방법
KR20200037502A (ko) * 2018-10-01 2020-04-09 삼성전자주식회사 포즈 정보를 출력하는 방법 및 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100104228A (ko) * 2009-03-17 2010-09-29 삼성전자주식회사 모션 데이터 및 영상 데이터를 이용한 골격 모델 생성 장치및 방법
US20120327194A1 (en) * 2011-06-21 2012-12-27 Takaaki Shiratori Motion capture from body mounted cameras
KR20150114141A (ko) * 2014-03-31 2015-10-12 한국전자통신연구원 모션 추정 시스템 및 방법
KR20170012043A (ko) * 2015-07-23 2017-02-02 삼성전자주식회사 엑스선 장치 및 동작 방법
KR20200037502A (ko) * 2018-10-01 2020-04-09 삼성전자주식회사 포즈 정보를 출력하는 방법 및 장치

Also Published As

Publication number Publication date
KR20240079399A (ko) 2024-06-05

Similar Documents

Publication Publication Date Title
CN106643699B (zh) 一种虚拟现实系统中的空间定位装置和定位方法
Ribo et al. A new optical tracking system for virtual and augmented reality applications
WO2011074759A1 (ko) 메타정보 없는 단일 영상에서 3차원 개체정보 추출방법
WO2022002133A1 (zh) 手势追踪方法及装置
US20070098250A1 (en) Man-machine interface based on 3-D positions of the human body
CN111353355B (zh) 动作追踪系统及方法
CN109242887A (zh) 一种基于多摄像机和imu的实时人体上肢动作捕捉方法
KR20000017755A (ko) 몸 동작에 대한 데이터 획득 방법
CN107613867B (zh) 动作显示系统以及记录介质
JP2014211404A (ja) モーションキャプチャー方法
JP2559939B2 (ja) 3次元情報入力装置
Yonemoto et al. A real-time motion capture system with multiple camera fusion
WO2019135462A1 (ko) 번들 조정 알고리즘을 이용한 립모션과 hmd 사이의 캘리브레이션 방법 및 장치
CN113487674B (zh) 一种人体位姿估计系统和方法
WO2024117447A1 (ko) 모션 추적 장치 및 방법
CN107449403B (zh) 一种时-空四维联合成像模型及应用
CN206300653U (zh) 一种虚拟现实系统中的空间定位装置
WO2021251534A1 (ko) 모션 및 얼굴 캡쳐를 이용한 실시간 방송플랫폼 제공 방법, 장치 및 그 시스템
WO2015167081A1 (ko) 신체 부분 검출 방법 및 장치
CN106872990B (zh) 一种三维空间目标精准定位和追踪方法
WO2021215843A1 (ko) 구강 영상의 마커 검출 방법 및 이를 이용한 구강 영상 정합 장치 및 방법
WO2022014805A1 (ko) 교차 공분산 3d 좌표 추정을 통한 가상공간 이동플랫폼 구축 방법
CN111860275B (zh) 手势识别数据采集系统、方法
WO2021221333A1 (ko) 맵 정보과 영상 매칭을 통한 실시간 로봇 위치 예측 방법 및 로봇
CN113421286A (zh) 一种动作捕捉系统及方法