system
The system addresses the challenge of personalized exercise form by analyzing users' skeletal structures and providing tailored exercise videos and feedback, enhancing training efficiency and safety.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- SOFTBANK GROUP CORP
- Filing Date
- 2024-10-16
- Publication Date
- 2026-04-28
AI Technical Summary
Existing strength training systems fail to provide personalized and safe exercise forms tailored to individual users' physiques and skeletal structures, leading to inefficiencies and increased risk of injury.
A system that analyzes users' skeletal structures using machine learning and image analysis, generates personalized exercise videos, evaluates user performance, and provides feedback for form improvement, optimizing training based on selected equipment and body parts.
Enables safe and effective training by providing personalized guidance and feedback, ensuring users perform exercises with optimal form and reduce the risk of injury.
Smart Images

Figure 2026071040000001_ABST
Abstract
Description
Technical Field
[0001] The technology of the present disclosure relates to a system.
Background Art
[0002] Patent Document 1 discloses a method for controlling a persona chatbot, which is performed by at least one processor and includes steps of receiving a user utterance, adding the user utterance to a prompt including an instruction sentence related to an explanation of a character of the chatbot, encoding the prompt, and inputting the encoded prompt into a language model to generate a chatbot utterance in response to the user utterance.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] In strength training, it is necessary to solve the problems that it is difficult for users to acquire a form optimal for their physique and skeleton, and it is difficult to continue training in an appropriate form. Furthermore, the optimal training form varies depending on individual skeletons and the exercise equipment selected, and specific guidance for efficient training while preventing injuries is required.
Means for Solving the Problems
[0005] To solve this problem, the present invention provides a means for analyzing and classifying the skeletal structure based on the user's physical information. Furthermore, it generates and presents videos of exercise forms optimized for each individual's physique, based on the exercise equipment selected by the user and the body parts they wish to train. The system then analyzes the videos of the user's exercises, compares them to appropriate forms for evaluation, and provides specific areas for improvement, thereby constructing a system that provides personalized guidance and feedback. This enables users to train safely and effectively.
[0006] "User's physical information" refers to information about an individual person's body, including height, weight, image data, and numerical data obtained based on said image data.
[0007] "Means for analyzing and classifying skeletons" refers to technical means that use machine learning models and image analysis techniques to identify the skeletons of individual users based on their physical information, particularly image data, and to classify their characteristics into specific categories.
[0008] "Exercise equipment" refers to various machines and devices used for muscle training and fitness purposes, and includes specific training equipment such as bench presses and squat racks.
[0009] "Body parts to be trained" refers to specific areas or parts of the body that the user particularly wants to strengthen or improve, such as the chest, arms, and legs.
[0010] "Video of proper exercise form" refers to video data that demonstrates the correct posture and movements for training, optimized or adjusted based on the user's skeletal structure, selected exercise equipment, and the body parts they wish to train.
[0011] "Methods for evaluating by comparing with exercise form" refer to technical methods that analyze the user's own training video and evaluate the accuracy and appropriateness of the movement by comparing it with a standard or model of appropriate exercise form.
[0012] "Means of suggesting areas for improvement" refers to methods of specifically indicating, based on the evaluation results of exercise form, the adjustments and corrections necessary for users to acquire better form. [Brief explanation of the drawing]
[0013] [Figure 1] This is a conceptual diagram showing an example of the configuration of a data processing system according to the first embodiment. [Figure 2] This is a conceptual diagram showing an example of the essential functions of a data processing device and a smart device according to the first embodiment. [Figure 3] This is a conceptual diagram showing an example of the configuration of a data processing system according to the second embodiment. [Figure 4] This is a conceptual diagram showing an example of the main functions of a data processing device and smart glasses according to the second embodiment. [Figure 5] This is a conceptual diagram showing an example of the configuration of a data processing system according to the third embodiment. [Figure 6] This is a conceptual diagram showing an example of the main functions of a data processing device and a headset-type terminal according to the third embodiment. [Figure 7] This is a conceptual diagram showing an example of the configuration of a data processing system according to the fourth embodiment. [Figure 8] This is a conceptual diagram showing an example of the main functions of a data processing device and a robot according to the fourth embodiment. [Figure 9] This shows an emotion map where multiple emotions are mapped. [Figure 10] This shows an emotion map where multiple emotions are mapped. [Figure 11] This is a sequence diagram showing the processing flow of the data processing system in Example 1. [Figure 12] This is a sequence diagram showing the processing flow of the data processing system in Application Example 1. [Figure 13] This is a sequence diagram showing the processing flow of the data processing system in Example 2, which incorporates an emotion engine. [Figure 14]It is a sequence diagram showing the processing flow of a data processing system in Application Example 2 when a sentiment engine is combined.
Embodiments for Carrying Out the Invention
[0014] Hereinafter, an example of an embodiment of a system according to the technology of the present disclosure will be described with reference to the accompanying drawings.
[0015] First, the terms used in the following description will be explained.
[0016] In the following embodiments, a numbered processor (hereinafter simply referred to as "processor") may be a single arithmetic unit or a combination of multiple arithmetic units. Also, the processor may be a single type of arithmetic unit or a combination of multiple types of arithmetic units. Examples of arithmetic units include a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), a GPGPU (General-Purpose computing on Graphics Processing Units), an APU (Accelerated Processing Unit), and the like.
[0017] In the following embodiments, a numbered RAM (Random Access Memory) is a memory in which information is temporarily stored and is used as a work memory by the processor.
[0018] In the following embodiments, a numbered storage is one or more non-volatile storage devices that store various programs and various parameters, etc. Examples of non-volatile storage devices include flash memory (SSD (Solid State Drive)), magnetic disks (e.g., hard disks), or magnetic tapes, etc.
[0019] In the following embodiments, the signed communication interface (I / F) is an interface that includes a communication processor and an antenna, etc. The communication interface manages communication between multiple computers. Examples of communication standards applicable to the communication interface include wireless communication standards such as 5G (5th Generation Mobile Communication System), Wi-Fi (registered trademark), or Bluetooth (registered trademark).
[0020] In the following embodiments, "A and / or B" is synonymous with "at least one of A and B." That is, "A and / or B" means that it may be A alone, or B alone, or a combination of A and B. Furthermore, in this specification, the same concept as "A and / or B" applies when expressing three or more things linked by "and / or."
[0021] [First Embodiment]
[0022] Figure 1 shows an example of the configuration of the data processing system 10 according to the first embodiment.
[0023] As shown in Figure 1, the data processing system 10 includes a data processing device 12 and a smart device 14. An example of the data processing device 12 is a server.
[0024] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0025] The smart device 14 comprises a computer 36, a reception device 38, an output device 40, a camera 42, and a communication interface 44. The computer 36 comprises a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The reception device 38, output device 40, and camera 42 are also connected to the bus 52.
[0026] The reception device 38 is equipped with a touch panel 38A and a microphone 38B, etc., and receives user input. The touch panel 38A receives user input by detecting contact with an object (e.g., a pen or finger). The microphone 38B receives user input by detecting the user's voice. The control unit 46A transmits data indicating the user input received by the touch panel 38A and microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the data indicating the user input.
[0027] The output device 40 includes a display 40A and a speaker 40B, and presents data to the user 20 by outputting the data in a form perceptible to the user 20 (e.g., audio and / or text). The display 40A displays visible information such as text and images according to instructions from the processor 46. The speaker 40B outputs audio according to instructions from the processor 46. The camera 42 is a small digital camera equipped with an optical system such as a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor.
[0028] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various types of information between processor 46 and processor 28 via network 54.
[0029] Figure 2 shows an example of the main functions of the data processing device 12 and the smart device 14.
[0030] As shown in Figure 2, in the data processing device 12, a specific processing is performed by the processor 28. A specific processing program 56 is stored in the storage 32. The specific processing program 56 is an example of a "program" related to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 according to the specific processing program 56 executed on the RAM 30.
[0031] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0032] In the smart device 14, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The reception output program 60 is used in conjunction with a specific processing program 56 by the data processing system 10. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0033] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the smart device 14 as the "terminal".
[0034] This invention is a system for providing the optimal training form based on the user's physical information, and is implemented as follows.
[0035] First, the user installs the application and enters physical information such as height, weight, and front and back image data. All of this information is stored on the device.
[0036] The terminal analyzes the user's joints and skeletal features using a skeletal analysis library based on the acquired image data. The skeletal data obtained from the analysis is sent to a server for further detailed skeletal classification.
[0037] The server processes the received skeletal data and uses a pre-trained machine learning model to classify each user's skeletal structure into a specific category. The classification results are stored on the server and used to provide customized training information for each user.
[0038] Next, the user interacts with the application's UI to specify the exercise equipment to use and the body part they want to train. For example, the user might choose to train their chest muscles with a bench press. This selection information is then sent back to the server, which generates a video demonstrating the most suitable exercise form for the user.
[0039] The server selects the optimal exercise form video based on the user's skeletal classification results, selected motor device and body part information, and transmits that data to the terminal.
[0040] Next, the user watches the video and performs the training according to the form shown. During training, the user can record their form as a video on their device. The recorded video is sent to the server via the device and evaluated by comparing it to the correct exercise form.
[0041] The server analyzes the received user video and compares it to the appropriate form. It generates an evaluation result and provides feedback on specific areas for improvement and adjustments.
[0042] Ultimately, the device presents the user with feedback from the server, specifically highlighting areas for improvement and points to pay attention to in the next training session. This allows users to efficiently train in a way that suits their physique and goals.
[0043] This system provides individualized guidance to users at each stage, supporting them in maximizing results while preventing injuries.
[0044] The following describes the processing flow.
[0045] Step 1:
[0046] The user installs the app and enters their height, weight, and full-body and facial image data on the initial setup screen. This information is saved on the device.
[0047] Step 2:
[0048] The terminal uses the input image data to call a skeletal analysis library and quantifies the user's joint positions and body proportions. It then generates skeletal data based on the analysis results.
[0049] Step 3:
[0050] The terminal sends the generated skeletal data to the server. This data also includes authentication information such as the user ID.
[0051] Step 4:
[0052] The server analyzes the received skeletal data and uses a machine learning model to classify the skeletons into specific categories. The classification results are stored in a database.
[0053] Step 5:
[0054] The user interacts with the app's UI to select the exercise equipment to use for training and the body part they want to work out. For example, they might select the bench press and specify their chest as the body part they want to train.
[0055] Step 6:
[0056] The terminal sends information about the exercise equipment selected by the user and the body parts they want to train to the server.
[0057] Step 7:
[0058] The server compares the received selection information with the user's skeletal data and generates or selects the optimal exercise form video. The selected video is then sent to the user's device.
[0059] Step 8:
[0060] Users watch videos sent to their devices to check the correct form during training. They then use this form as a reference during their training.
[0061] Step 9:
[0062] Users record their training form using their device as a video. This video is then sent to the server via the device.
[0063] Step 10:
[0064] The server analyzes the user's submitted training video and compares it to a standard, correct form. Based on the analysis, it performs an evaluation and generates feedback that includes specific areas for improvement.
[0065] Step 11:
[0066] The terminal displays feedback information received from the server to the user, specifically highlighting points to pay attention to in the next training session. This allows the user to gain a deeper understanding of how to improve their form.
[0067] (Example 1)
[0068] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the smart device 14 will be referred to as the "terminal."
[0069] Traditional training systems have faced challenges in optimizing training to suit individual users' physical characteristics and inefficiently enabling self-improvement of exercise form. Users also have difficulty obtaining training plans tailored to their physique and goals, leading to increased risk of injury and difficulty in achieving desired results.
[0070] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0071] In this invention, the server includes means for receiving the user's physical information from an input device, analyzing the skeleton based on the physical information, and generating characteristic data of the skeleton; means for classifying the skeleton using a classification device with the characteristic data; means for generating an optimal exercise form video using a generation device based on the equipment selected by the user and the body part to be trained, and presenting it on a display device; and means for analyzing the video of the user's movements captured by a recording device, evaluating it by comparing it with an appropriate exercise form, and suggesting areas for improvement. This enables the provision of a training plan based on the user's skeletal characteristics and efficient improvement of exercise form.
[0072] "Physical information" refers to data about the user's body shape and build, including height, weight, and image data.
[0073] "Skeletal analysis" is a process that uses acquired physical information to identify the structure of a user's joints and skeleton, and generates their characteristics as numerical data.
[0074] "Feature data" refers to quantified data obtained through skeletal analysis that shows the user's body movements and joint structure.
[0075] A "classification device" is a device or system that receives feature data and classifies the user's skeletal structure into a specific category based on that data.
[0076] A "generation device" is a device or system that generates video of the optimal exercise form based on the user's selection information.
[0077] A "recording device" is a device used to record a user's actions as video, and includes cameras, smartphones, and other similar devices.
[0078] A "display device" is a device used to visually present generated images or feedback to a user, and includes displays and monitors.
[0079] "Exercise form" refers to the body's movements and posture during a particular exercise, and serves as a standard for evaluating its accuracy and efficiency.
[0080] "Feedback" refers to information that provides areas for improvement and precautions based on an evaluation of the user's actual movements compared to the optimal exercise form.
[0081] This invention is a system for providing an optimal training plan based on the user's physical information and promoting correct exercise form. The following describes embodiments for carrying out this invention.
[0082] Users first install a training application on their device and input their height, weight, and front and back image data into the app. This information is stored on the device and used for individual training analysis.
[0083] The device uses image data input by the user to analyze the body's joints and skeleton using a skeletal analysis library (e.g., OpenPose or MediaPipe). Based on the analysis results, the user's skeletal feature data is generated. This feature data is numerical data that indicates the user's joint positions and physical characteristics.
[0084] The server receives skeletal feature data transmitted from the terminal and uses a pre-trained machine learning model (for example, a TENSORFLOW® or PyTorch-based model) to classify this data. This results in categorization based on each user's physical characteristics, providing the basis for customized training information.
[0085] When a user specifies the body part they want to train and the exercise equipment they will use (e.g., dumbbells, bench press) through the application interface, that information is sent back from the terminal to the server. The server combines this information with previously obtained skeletal feature data and uses a generative AI model to visualize the optimal exercise form. Prompts can be used for this generation. For example, "The user is 170cm tall and weighs 65kg. Please provide the optimal form for chest muscle training using a bench press."
[0086] The generated video is sent to the device and viewed by the user. The user can safely and efficiently perform the training by following the training form shown in the video. During training, the user records their posture and movements as a video on the device and uploads that data back to the server.
[0087] The server analyzes the received training video and compares it to a pre-generated optimal form. As a result, it evaluates the accuracy of the user's movements and identifies areas for improvement. The evaluation results are displayed on the device, allowing the user to incorporate this feedback into their next training session.
[0088] For example, if a user chooses bench press to strengthen their chest muscles, the server generates an appropriate form and sends it to the device. The user then films their form and receives feedback, ensuring they always train with the ideal form. This system promotes safe and effective training based on individual physical characteristics.
[0089] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0090] Step 1:
[0091] The user installs a training application on their device and inputs physical information such as height, weight, and front and back image data. This input information is stored on the device and provides the data necessary for subsequent analysis processes. Specifically, the user's body dimensions and image data are stored and used as input data for skeletal analysis.
[0092] Step 2:
[0093] The terminal uses image data input from the user to analyze the user's joints and skeleton using a skeletal analysis library. During this process, the image data is input into the analysis software, and data processing is performed to extract joint position and posture data. The resulting skeletal feature data includes coordinate and angle information for each joint, and this data is output.
[0094] Step 3:
[0095] The terminal sends the analyzed skeletal data to the server. The server receives this data and uses a machine learning model to classify the skeletal data into specific categories. In this process, a pattern recognition algorithm is applied to the skeletal feature data input to the server to generate category outputs such as "standard type" or "sporty type".
[0096] Step 4:
[0097] The user uses the application interface to select the body part they want to train and the exercise equipment they will use. This selection information is sent from the terminal to the server and entered as data necessary for generating the training form.
[0098] Step 5:
[0099] The server uses a generative AI model to generate video of the optimal exercise form based on the user's skeletal classification data and selection information. A prompt (e.g., "Generate the optimal bench press form for the user's physique") is passed as input, and as a result, video data of the exercise form is output. The generated video is then sent to the terminal.
[0100] Step 6:
[0101] Users view videos sent to their devices and perform training according to the provided forms. During this process, users record their own forms as videos. These recorded videos serve as observational data to verify whether the training is being performed with the correct form.
[0102] Step 7:
[0103] The terminal uploads the recorded training video to a server for comparative evaluation. This video data is then passed to analysis software, which calculates evaluation metrics by comparing it with pre-generated optimal forms. The evaluation output indicates the accuracy of the movement and serves as the basis for generating feedback.
[0104] Step 8:
[0105] The server generates feedback based on the comparative evaluation results and sends it to the terminal. For example, specific improvement suggestions such as "You need to raise your arm position a little more" are provided as feedback. The terminal then presents this feedback to the user to help them improve their next training session.
[0106] (Application Example 1)
[0107] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart device 14 will be referred to as the "terminal."
[0108] Conventional factory robots have limitations in maintaining operational efficiency while optimizing their movements for individual environments and achieving continuous performance improvement. In particular, they lack individual adjustments and feedback based on work conditions, which reduces the accuracy and efficiency of their movements and negatively impacts productivity. Furthermore, it is difficult to respond quickly when operational abnormalities occur, and there is a need for effective measures to address this.
[0109] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0110] In this invention, the server includes means for receiving user motion information, analyzing joints based on said motion information, and classifying said joints; means for generating and presenting an optimal motion pattern based on the work device selected by the user and the work content to be performed; and means for analyzing data recorded on the user's motion, comparing and evaluating it with the optimal motion pattern, and suggesting areas for improvement. This makes it possible for the factory robot to continuously optimize its motion and improve work efficiency and accuracy.
[0111] "Motion information" refers to data on the activities and movements performed by robots and machines, and is information collected by sensors.
[0112] "Joint analysis" is a process that analyzes the movement of the joints of robots and machines in detail based on motion information, and provides basic information for performing appropriate movements.
[0113] An "action pattern" is a combination of actions necessary to efficiently perform a specific task or activity, and is generated and presented by a system.
[0114] "Working equipment" refers to machinery and tools used to perform specific tasks or activities, and includes equipment used in production activities in factories and facilities.
[0115] "Motion optimization" is the process by which robots and machines adjust their movements to efficiently perform tasks and achieve goals while minimizing energy and time.
[0116] "Feedback" refers to information provided to robots and users based on the results of evaluations and analyses, serving as a guideline for improvement and adjustments.
[0117] This invention specifically implements a system for optimizing the operation of factory robots. The server receives operation information from sensors attached to robots operating in the factory. High-precision sensors are used to collect operation information such as the movement of the robot's joints and the conditions of the work environment in real time.
[0118] The server utilizes a dedicated skeletal analysis library to analyze the received motion information. This library is crucial for detailed analysis of the robot's joint movements and identifying optimal motion. The analysis results are stored in a cloud environment, and machine learning models generate optimal motion patterns.
[0119] The generated motion patterns are provided as feedback to the robot's control system, enabling real-time motion adjustments. This improves work efficiency and motion accuracy, thereby increasing productivity. The terminal constantly monitors the robot's movements and corrects them as needed.
[0120] A concrete example is the work of robots on an assembly line. If a robot fails to properly position a part, the server reanalyzes the motion information and quickly generates and provides feedback on a motion pattern for more accurate positioning. In this way, it supports the smooth and efficient progress of work within the factory.
[0121] A simple text prompt, such as "Design a machine learning model that takes robot joint data as input and proposes the most efficient motion pattern," can be used as an example of a prompt to be input to the generated AI model. This allows the AI model to automatically generate the optimal motion pattern for the robot.
[0122] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0123] Step 1:
[0124] The terminal acquires operational information in real time via various sensors attached to robots within the factory. This input data includes the movement of the robot's joints and the environmental conditions. The terminal converts this operational information into a data format and sends it to the server in a format that is easy to analyze.
[0125] Step 2:
[0126] The server uses a skeletal analysis library based on the received motion information to perform a detailed analysis of the robot's joint data. It analyzes the input motion information and generates specific data regarding joint position and movement. Based on this, it sets a baseline to identify the robot's motion patterns.
[0127] Step 3:
[0128] The server uses the analysis results to input motion data into a machine learning model, generating optimized motion patterns. This generative AI model learns from past data and predicts efficient ways of operating. The output provides detailed instructions for adjusting the robot's movements.
[0129] Step 4:
[0130] The server sends the generated optimal motion pattern to the robot's control system, which then adjusts the motion in real time. By building a feedback loop, the robot's movements are continuously optimized. This process improves the accuracy and efficiency of the work.
[0131] Step 5:
[0132] The terminal continuously monitors the robot's movements and, if necessary, sends the movement information back to the server. This allows the server to attempt further optimization based on the latest movement data.
[0133] Step 6:
[0134] The user prompts the system with commands when necessary, requesting instructions from the generating AI model regarding specific behavioral patterns and efficiency. Based on this, further adjustments and customizations are made to establish the optimal robot behavior.
[0135] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0136] This invention is a system that maximizes training efficiency by utilizing data including the user's physical information and emotional state. This system is implemented according to the following procedure.
[0137] First, the user installs the application and sets up their exercise environment along with their physical information such as height and weight. Then, they complete the registration of their physical information by inputting front and back image data into the app. If necessary, they also input facial image data, including facial expressions.
[0138] The device uses a skeletal analysis library to quantify the user's joint positions and body proportions based on acquired physical information and image data. The analyzed data is then sent to a server, preparing it for further detailed skeletal classification.
[0139] The server processes the received skeletal data using a machine learning model to classify the user's skeleton into specific categories. It also analyzes the received facial expression data via an emotion engine to recognize the user's emotional state. This emotional data is used to generate feedback linked to training motivation and stress levels.
[0140] Next, the user operates the app to select the exercise equipment to be used for training and the body parts they want to train. The selected data is sent to the server and used as basic information to provide the most suitable exercise program for each individual user.
[0141] The system generates or selects optimal exercise form videos and sends them to the device. The user views these videos and uses them to improve their actual training. During this process, the device performs facial recognition and expression analysis to monitor emotional changes during exercise.
[0142] During training, users record their form on video and send it to the server. The server evaluates the user's exercise form based on this video and generates feedback combined with emotional data. It generates the evaluation results and advice for improvement and sends them to the device. The device then presents this to the user, clearly and specifically showing areas for improvement and points to pay attention to in the next training session.
[0143] For example, if a user selects "squats" and shows expressions of "surprise" or "pain" during the exercise, the system will not only suggest areas for improvement in their movements but also provide motivational messages and advice on adjusting the load based on their emotions.
[0144] This system takes into account both the physical and emotional aspects of the user, providing training guidance tailored to their current abilities and emotional state, thereby reducing the risk of injury and increasing the efficiency of training.
[0145] The following describes the processing flow.
[0146] Step 1:
[0147] After installing the app, users enter their physical information, such as height and weight, and upload images of their front and back. This registers their physical information in the application.
[0148] Step 2:
[0149] The device uses the uploaded image data to activate its built-in skeletal analysis library, calculates the user's joint positions and body proportions, and generates skeletal data.
[0150] Step 3:
[0151] The terminal sends the generated skeletal data to the server. This transmission includes the user ID, date and time, and environment settings information.
[0152] Step 4:
[0153] The server uses machine learning algorithms to classify the user's skeletal characteristics based on the received skeletal data. The results are stored in a database and managed as individual skeletal information.
[0154] Step 5:
[0155] The user selects the training equipment to use (e.g., a squat rack) and the body part they want to train (e.g., legs) from the in-app menu.
[0156] Step 6:
[0157] The terminal sends information about the selected training device and body part to the server.
[0158] Step 7:
[0159] The server selects a video demonstrating the optimal exercise form based on the user's skeletal classification data and training selection information, and sends this video to the terminal in a streaming or downloadable format.
[0160] Step 8:
[0161] The user watches the provided form video, visualizes the correct form, and then begins their exercise.
[0162] Step 9:
[0163] The device provides a guide function for recording video of the user during training, and activates an emotion engine as needed to identify and collect facial expression data.
[0164] Step 10:
[0165] The user sends training videos and facial expression data they have recorded from their device to the server.
[0166] Step 11:
[0167] The server analyzes the transmitted video footage, compares the movements to correct form, and evaluates performance. It also uses an emotion engine to identify the user's emotions during training (e.g., "anxiety" or "concentration") and incorporates this into the analysis.
[0168] Step 12:
[0169] Based on the evaluation results, the server generates suggestions for form improvement and sentiment-based feedback, and prepares suggestions to boost motivation.
[0170] Step 13:
[0171] The terminal displays feedback information received from the server to the user. This includes corrections to the form, points to remember for next time, and emotion-based advice (e.g., the importance of relaxing and continuing the training).
[0172] Step 14:
[0173] Based on the feedback provided, users can review their training content and consider ways to improve in the next session, thereby conducting more effective training.
[0174] (Example 2)
[0175] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the smart device 14 as the "terminal".
[0176] Conventional training support systems often only evaluate users based on their physical information and exercise performance, lacking feedback that takes into account the user's emotional state. This results in limited training effectiveness and challenges in maintaining user motivation and managing stress.
[0177] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[0178] In this invention, the server includes means for receiving the user's physical information, analyzing and classifying its structure, means for analyzing the user's emotional state and providing feedback, and means for generating and presenting motor performance indicators based on the analysis. This enables comprehensive training support that takes into account the user's physical and emotional aspects.
[0179] "User's physical information" refers to numerical information such as the user's height and weight, as well as physical image data, which forms the basis for developing individual training plans.
[0180] "Means for analyzing and classifying structures" refers to a system that uses a user's physical information to analyze its structure using technology and classify it into a specific category.
[0181] "Exercise demonstration videos" are video data that shows the correct form of the training the user intends to perform, allowing users to check and improve their own training form.
[0182] "User emotional state" refers to the user's mental state, based on data obtained from the user's facial expressions and other sensors.
[0183] "Means of providing adjusted feedback" refers to a system for providing users with individually tailored advice and motivational messages based on analyzed physical information and emotional state.
[0184] An "exercise performance index" is a numerical standard used to measure and evaluate the effectiveness of a user's training. This index allows users to objectively understand their own progress.
[0185] To implement this invention, a system is constructed that provides exercise support based on the user's physical information. The details are shown below.
[0186] Users first install a dedicated application on their smartphone or tablet. This application has the function of collecting and storing basic physical information such as height, weight, and training goals. Furthermore, users use their device's camera to register full-body images and facial expression images in the app.
[0187] The device uses a skeletal analysis library to process this information captured by the app. Specifically, it uses algorithms such as OpenPose to convert the user's joint positions into numerical data. Subsequently, it uses an emotion recognition engine to analyze the emotional state from the user's facial image.
[0188] This data is sent to the cloud, where further advanced analysis is performed on the server. The server uses a generative AI model (for example, a custom model using TensorFlow or PyTorch) to classify the user's skeletal structure based on the data. Based on this classification information, an optimized training plan is created for the user.
[0189] Furthermore, the server generates feedback based on emotion recognition results, aimed at improving motivation and reducing stress. This feedback can be used by users to track their progress and improve their performance.
[0190] Based on the body parts the user has selected to train and the exercise equipment they wish to use, the server selects the appropriate exercise form. This video is sent to the user's device, where they can watch it and learn the correct form. In addition, the camera footage during exercise is analyzed in real time, and areas for improvement are immediately fed back to the device.
[0191] For example, if a user selects "squats" and shows expressions of "surprise" or "pain" during the exercise, the system will suggest ways to improve their form. In addition, it can provide motivational messages and advice on adjusting the training load based on those emotions.
[0192] Examples of input prompts for a generative AI model:
[0193] "Based on the user's physical and emotional data, generate an appropriate training program and feedback. Include an example where the user has selected squats."
[0194] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0195] Step 1:
[0196] The user installs the application and sets up a personal account. Input data includes physical information such as height, weight, age, and exercise experience. This data is saved as a digital profile within the app. Specifically, the user follows the guide and enters the required information into the form.
[0197] Step 2:
[0198] The user uses their device's camera to take full-body images of the front and back and uploads them to the app. This generates image files as input data. The app then prepares these images to be securely sent to the cloud. Specifically, the user operates the camera screen according to the instructions.
[0199] Step 3:
[0200] The device generates numerical data of joint positions using a skeletal analysis library based on uploaded image data and existing body information. The input data is an image, and the output data is the coordinate information of the joints. Specifically, the device launches software such as OpenPose and performs real-time processing.
[0201] Step 4:
[0202] The terminal sends the analysis results to the server. The input data is joint coordinate information, and the output is the transmission of data to the server. Specifically, the terminal encodes the data and sends it to the cloud server via the internet.
[0203] Step 5:
[0204] The server inputs the received data into a generating AI model. The model classifies the skeletal type based on the data and generates the user's skeletal type information as output. Specifically, the server calls the machine learning model and saves the classification results to a database.
[0205] Step 6:
[0206] The server uses an emotion recognition engine to analyze emotional states from facial expression data. The input data is a face image file, and the output is emotional state information. Specifically, the server applies an image analysis algorithm to identify emotions.
[0207] Step 7:
[0208] The server generates an optimal training plan based on the analysis results. Input data includes skeletal type information and emotional state, and the output is a customized training plan. Specifically, the server uses a rule-based engine to construct the plan.
[0209] Step 8:
[0210] The server sends the generated training plan and associated exercise form video data to the terminal. The input data is the training plan, and the output includes a video file. Specifically, the server distributes the data using a file transfer protocol.
[0211] Step 9:
[0212] Users review the training plan and video transmitted on their device and use them for actual exercise. Specifically, users perform the exercises by watching the video displayed on their device screen. The input data is the user's target training content, and the output is a record of the exercise performed.
[0213] Step 10:
[0214] The user videos their form during exercise and uploads it back to the server. The input data is a video file, and the output is information sent to the server for improvement. Specifically, the user adjusts the camera on their device and takes the video.
[0215] Step 11:
[0216] The server evaluates the movement form from the transmitted video data and generates feedback by comparing it with emotional data. The input data consists of video and emotional state, and the output is feedback information. Specifically, the server applies a form comparison algorithm and analyzes the results.
[0217] Step 12:
[0218] The device receives feedback information and presents it to the user. The input data is feedback information, and the output is a display to the user. Specifically, the device uses its notification function to display an alert to the user.
[0219] (Application Example 2)
[0220] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as a "server" and the smart device 14 as a "terminal".
[0221] Improving work efficiency using robots remains a crucial challenge in current industrial processes. In particular, insufficient optimization of robot movements can impact product quality and production efficiency. Furthermore, it can put stress on the moving parts of a robot during operation, increasing the risk of malfunction. Therefore, there is a need for technologies that optimize robot movements in real time, ensuring efficient and safe operation.
[0222] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.
[0223] In this invention, the server includes means for inputting motion data into a machine learning model to generate optimal motion patterns and areas for improvement; means for evaluating load and stress during operation and notifying the user of areas for improvement based on the evaluation; and means for generating specific motion performance indicators based on analyzed video footage of the user's movements and providing these indicators to the user. This makes it possible to improve the efficiency and safety of the robot's movements.
[0224] "User" refers to the entity that operates the system and uses its functions.
[0225] "Physical information" refers to the numerical representation of a user's structural and physical information, and the data used as the basis for skeletal analysis.
[0226] "Movement form" refers to the ideal shape and posture of body movement when performing a particular action or task.
[0227] A "machine learning model" is a program that uses algorithms to learn patterns from data and then applies that knowledge.
[0228] "Performance metrics" are numerical indicators that represent criteria for evaluating the efficiency, accuracy, and safety of a user's actions.
[0229] "Load" refers to the force or pressure applied to an object during operation, and is a factor used to evaluate the resulting effects.
[0230] "Stress" refers to the tension or burden that arises during movement, and is a factor that affects the efficiency and safety of that movement.
[0231] This invention is a system for optimizing the operation of factory robots to achieve efficient and safe work. Embodiments for carrying out the invention are described below.
[0232] The server receives motion data acquired from cameras and sensors mounted on factory robots. This data is transmitted as raw video and motion logs. The server analyzes this data using skeletal analysis libraries such as OpenPose, quantifying the robot's joint movements and proportions. These analysis results are then input into a machine learning model and processed as indicators for optimizing the robot's movements.
[0233] The machine learning model utilizes frameworks such as TensorFlow, and the server uses this to generate optimal operating patterns and areas for improvement. The generated optimization algorithm is fed back to the robot in real time, evaluating the load and stress during operation, and instructing the robot to make necessary improvements based on that evaluation.
[0234] The terminal receives instructions from the server and transmits motion commands to the factory robot. This allows the robot to perform its work safely and efficiently. For example, if a robot is assembling parts and it detects that there is strain on the joint movement, an improved motion pattern is immediately instructed, maintaining smooth operation.
[0235] For example, when a robot is assembling large parts, the server identifies joints that are experiencing excessive load during operation and instructs them to perform alternative movements to distribute the load. Through this process, the robot's movements are ensured to be efficient, preventing wear and tear and malfunctions of the machine.
[0236] Examples of prompts for a generative AI model:
[0237] "Analyze the robot's motion data and generate feedback to improve joint positioning and movement efficiency."
[0238] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0239] Step 1:
[0240] The server acquires video data in real time from cameras mounted on factory robots. The input is raw video data, which is used as foundational data for analyzing the robot's joint movements and proportions.
[0241] Step 2:
[0242] The server analyzes the acquired video data using a skeletal analysis library such as OpenPose. The input is video data, and the output is digitized joint position data. The specific action performed in this step is to extract the joint positions from the video and save them to the server as numerical information.
[0243] Step 3:
[0244] The server inputs digitized joint position data into a machine learning model such as TensorFlow. The input is joint position data, and the output is the optimal movement pattern. Specifically, the machine learning model analyzes the data and determines the efficiency and abnormalities of the movement.
[0245] Step 4:
[0246] The server generates improvement commands for the factory robot based on the outputted optimal motion pattern. The input is the optimization algorithm, and the output is specific motion correction commands for the robot. The action performed in this step is to determine specific adjustments to improve the efficiency of the motion and to communicate them to the robot.
[0247] Step 5:
[0248] The terminal transmits improvement commands received from the server to the factory robot. The input is the improvement command, and the output is the robot's adjusted behavior. In this step, the terminal helps the robot correct its behavior in real time using the appropriate protocol.
[0249] The specific processing unit 290 transmits the result of the specific processing to the smart device 14. In the smart device 14, the control unit 46A causes the output device 40 to output the result of the specific processing. The microphone 38B acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.
[0250] Data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of data generation model 58 is ChatGPT (registered trademark) (Internet search).<URL: https: / / openai.com / blog / chatgpt> ), Gemini (registered trademark) (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0251] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the smart device 14.
[0252] [Second Embodiment]
[0253] Figure 3 shows an example of the configuration of the data processing system 210 according to the second embodiment.
[0254] As shown in Figure 3, the data processing system 210 includes a data processing device 12 and smart glasses 214. An example of the data processing device 12 is a server.
[0255] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0256] The smart glasses 214 include a computer 36, a microphone 238, a speaker 240, a camera 42, and a communication interface 44. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, and camera 42 are also connected to the bus 52.
[0257] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0258] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[0259] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0260] Figure 4 shows an example of the main functions of the data processing device 12 and the smart glasses 214. As shown in Figure 4, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0261] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0262] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0263] In the smart glasses 214, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0264] Next, the identification processing performed by the identification processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the smart glasses 214 will be referred to as the "terminal".
[0265] This invention is a system for providing the optimal training form based on the user's physical information, and is implemented as follows.
[0266] First, the user installs the application and enters physical information such as height, weight, and front and back image data. All of this information is stored on the device.
[0267] The terminal analyzes the user's joints and skeletal features using a skeletal analysis library based on the acquired image data. The skeletal data obtained from the analysis is sent to a server for further detailed skeletal classification.
[0268] The server processes the received skeletal data and uses a pre-trained machine learning model to classify each user's skeletal structure into a specific category. The classification results are stored on the server and used to provide customized training information for each user.
[0269] Next, the user interacts with the application's UI to specify the exercise equipment to use and the body part they want to train. For example, the user might choose to train their chest muscles with a bench press. This selection information is then sent back to the server, which generates a video demonstrating the most suitable exercise form for the user.
[0270] The server selects the optimal exercise form video based on the user's skeletal classification results, selected motor device and body part information, and transmits that data to the terminal.
[0271] Next, the user watches the video and performs the training according to the form shown. During training, the user can record their form as a video on their device. The recorded video is sent to the server via the device and evaluated by comparing it to the correct exercise form.
[0272] The server analyzes the received user video and compares it to the appropriate form. It generates an evaluation result and provides feedback on specific areas for improvement and adjustments.
[0273] Ultimately, the device presents the user with feedback from the server, specifically highlighting areas for improvement and points to pay attention to in the next training session. This allows users to efficiently train in a way that suits their physique and goals.
[0274] This system provides individualized guidance to users at each stage, supporting them in maximizing results while preventing injuries.
[0275] The following describes the processing flow.
[0276] Step 1:
[0277] The user installs the app and inputs height, weight, and full body or face image data on the initial setup screen. This input information is saved on the terminal.
[0278] Step 2:
[0279] The terminal calls the skeletal analysis library using the input image data and quantifies the user's joint positions and body proportions. Skeletal data obtained as the analysis result is generated.
[0280] Step 3:
[0281] The terminal sends the generated skeletal data to the server. This data also includes authentication information such as the user ID.
[0282] Step 4:
[0283] The server analyzes the received skeletal data and classifies the skeleton into specific categories using a machine learning model. The classification result is saved in the database.
[0284] Step 5:
[0285] The user operates the app's UI to select the exercise equipment to be used for training and the body part to be trained. For example, select bench press and specify the chest as the part to be trained.
[0286] Step 6:
[0287] The terminal sends the information on the exercise equipment selected by the user and the body part to be trained to the server.
[0288] Step 7:
[0289] The server compares the received selection information with the user's skeletal data and generates or selects the optimal exercise form video. The selected video is then sent to the user's device.
[0290] Step 8:
[0291] Users watch videos sent to their devices to check the correct form during training. They then use this form as a reference during their training.
[0292] Step 9:
[0293] Users record their training form using their device as a video. This video is then sent to the server via the device.
[0294] Step 10:
[0295] The server analyzes the user's submitted training video and compares it to a standard, correct form. Based on the analysis, it performs an evaluation and generates feedback that includes specific areas for improvement.
[0296] Step 11:
[0297] The terminal displays feedback information received from the server to the user, specifically highlighting points to pay attention to in the next training session. This allows the user to gain a deeper understanding of how to improve their form.
[0298] (Example 1)
[0299] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."
[0300] Traditional training systems have faced challenges in optimizing training to suit individual users' physical characteristics and inefficiently enabling self-improvement of exercise form. Users also have difficulty obtaining training plans tailored to their physique and goals, leading to increased risk of injury and difficulty in achieving desired results.
[0301] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0302] In this invention, the server includes means for receiving the user's physical information from an input device, analyzing the skeleton based on the physical information, and generating characteristic data of the skeleton; means for classifying the skeleton using a classification device with the characteristic data; means for generating an optimal exercise form video using a generation device based on the equipment selected by the user and the body part to be trained, and presenting it on a display device; and means for analyzing the video of the user's movements captured by a recording device, evaluating it by comparing it with an appropriate exercise form, and suggesting areas for improvement. This enables the provision of a training plan based on the user's skeletal characteristics and efficient improvement of exercise form.
[0303] "Physical information" refers to data about the user's body shape and build, including height, weight, and image data.
[0304] "Skeletal analysis" is a process that uses acquired physical information to identify the structure of a user's joints and skeleton, and generates their characteristics as numerical data.
[0305] "Feature data" refers to quantified data obtained through skeletal analysis that shows the user's body movements and joint structure.
[0306] A "classification device" is a device or system that receives feature data and classifies the user's skeletal structure into a specific category based on that data.
[0307] The "generation device" is a device or system for generating images of optimal exercise forms based on the selection information of the user.
[0308] The "recording device" is a device for recording the user's movements as images, including cameras, smartphones, etc.
[0309] The "display device" is a device for visually presenting the generated images and feedback to the user, including displays, monitors, etc.
[0310] The "exercise form" refers to the movements and postures of the body in a specific exercise, and serves as a criterion for evaluating its accuracy and efficiency.
[0311] The "feedback" is information that provides improvement points and precautions based on the result of evaluating the user's actual movements by comparing them with the optimal exercise form.
[0312] This invention is a system for providing an optimal training plan based on the user's body information and promoting the correct exercise form. The following shows the embodiments for implementing this invention.
[0313] First, the user installs a training application on the terminal and inputs height, weight, and image data of their own front and back into the application. This information is saved on the terminal and used for individual training analysis.
[0314] The terminal uses the image data input by the user and analyzes the joints and skeletons of the body using a skeleton analysis library (e.g., OpenPose or MediaPipe). Based on the analysis results, characteristic data of the user's skeleton is generated. This characteristic data is numerical data indicating the user's joint positions and body characteristics.
[0315] The server receives skeletal feature data transmitted from the terminal and performs classification using a pre-trained machine learning model (for example, a TensorFlow or PyTorch-based model) based on this data. This results in categorization based on each user's physical characteristics and provides the basis for customized training information.
[0316] When a user specifies the body part they want to train and the exercise equipment they will use (e.g., dumbbells, bench press) through the application interface, that information is sent back from the terminal to the server. The server combines this information with previously obtained skeletal feature data and uses a generative AI model to visualize the optimal exercise form. Prompts can be used for this generation. For example, "The user is 170cm tall and weighs 65kg. Please provide the optimal form for chest muscle training using a bench press."
[0317] The generated video is sent to the device and viewed by the user. The user can safely and efficiently perform the training by following the training form shown in the video. During training, the user records their posture and movements as a video on the device and uploads that data back to the server.
[0318] The server analyzes the received training video and compares it to a pre-generated optimal form. As a result, it evaluates the accuracy of the user's movements and identifies areas for improvement. The evaluation results are displayed on the device, allowing the user to incorporate this feedback into their next training session.
[0319] For example, if a user chooses bench press to strengthen their chest muscles, the server generates an appropriate form and sends it to the device. The user then films their form and receives feedback, ensuring they always train with the ideal form. This system promotes safe and effective training based on individual physical characteristics.
[0320] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0321] Step 1:
[0322] The user installs a training application on their device and inputs physical information such as height, weight, and front and back image data. This input information is stored on the device and provides the data necessary for subsequent analysis processes. Specifically, the user's body dimensions and image data are stored and used as input data for skeletal analysis.
[0323] Step 2:
[0324] The terminal uses image data input from the user to analyze the user's joints and skeleton using a skeletal analysis library. During this process, the image data is input into the analysis software, and data processing is performed to extract joint position and posture data. The resulting skeletal feature data includes coordinate and angle information for each joint, and this data is output.
[0325] Step 3:
[0326] The terminal sends the analyzed skeletal data to the server. The server receives this data and uses a machine learning model to classify the skeletal data into specific categories. In this process, a pattern recognition algorithm is applied to the skeletal feature data input to the server to generate category outputs such as "standard type" or "sporty type".
[0327] Step 4:
[0328] The user uses the application interface to select the body part they want to train and the exercise equipment they will use. This selection information is sent from the terminal to the server and entered as data necessary for generating the training form.
[0329] Step 5:
[0330] The server uses a generative AI model to generate video of the optimal exercise form based on the user's skeletal classification data and selection information. A prompt (e.g., "Generate the optimal bench press form for the user's physique") is passed as input, and as a result, video data of the exercise form is output. The generated video is then sent to the terminal.
[0331] Step 6:
[0332] Users view videos sent to their devices and perform training according to the provided forms. During this process, users record their own forms as videos. These recorded videos serve as observational data to verify whether the training is being performed with the correct form.
[0333] Step 7:
[0334] The terminal uploads the recorded training video to a server for comparative evaluation. This video data is then passed to analysis software, which calculates evaluation metrics by comparing it with pre-generated optimal forms. The evaluation output indicates the accuracy of the movement and serves as the basis for generating feedback.
[0335] Step 8:
[0336] The server generates feedback based on the comparative evaluation results and sends it to the terminal. For example, specific improvement suggestions such as "You need to raise your arm position a little more" are provided as feedback. The terminal then presents this feedback to the user to help them improve their next training session.
[0337] (Application Example 1)
[0338] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."
[0339] Conventional factory robots have limitations in maintaining operational efficiency while optimizing their movements for individual environments and achieving continuous performance improvement. In particular, they lack individual adjustments and feedback based on work conditions, which reduces the accuracy and efficiency of their movements and negatively impacts productivity. Furthermore, it is difficult to respond quickly when operational abnormalities occur, and there is a need for effective measures to address this.
[0340] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0341] In this invention, the server includes means for receiving user motion information, analyzing joints based on said motion information, and classifying said joints; means for generating and presenting an optimal motion pattern based on the work device selected by the user and the work content to be performed; and means for analyzing data recorded on the user's motion, comparing and evaluating it with the optimal motion pattern, and suggesting areas for improvement. This makes it possible for the factory robot to continuously optimize its motion and improve work efficiency and accuracy.
[0342] "Motion information" refers to data on the activities and movements performed by robots and machines, and is information collected by sensors.
[0343] "Joint analysis" is a process that analyzes the movement of the joints of robots and machines in detail based on motion information, and provides basic information for performing appropriate movements.
[0344] An "action pattern" is a combination of actions necessary to efficiently perform a specific task or activity, and is generated and presented by a system.
[0345] "Working equipment" refers to machinery and tools used to perform specific tasks or activities, and includes equipment used in production activities in factories and facilities.
[0346] "Motion optimization" is the process by which robots and machines adjust their movements to efficiently perform tasks and achieve goals while minimizing energy and time.
[0347] "Feedback" refers to information provided to robots and users based on the results of evaluations and analyses, serving as a guideline for improvement and adjustments.
[0348] This invention specifically implements a system for optimizing the operation of factory robots. The server receives operation information from sensors attached to robots operating in the factory. High-precision sensors are used to collect operation information such as the movement of the robot's joints and the conditions of the work environment in real time.
[0349] The server utilizes a dedicated skeletal analysis library to analyze the received motion information. This library is crucial for detailed analysis of the robot's joint movements and identifying optimal motion. The analysis results are stored in a cloud environment, and machine learning models generate optimal motion patterns.
[0350] The generated motion patterns are provided as feedback to the robot's control system, enabling real-time motion adjustments. This improves work efficiency and motion accuracy, thereby increasing productivity. The terminal constantly monitors the robot's movements and corrects them as needed.
[0351] A concrete example is the work of robots on an assembly line. If a robot fails to properly position a part, the server reanalyzes the motion information and quickly generates and provides feedback on a motion pattern for more accurate positioning. In this way, it supports the smooth and efficient progress of work within the factory.
[0352] A simple text prompt, such as "Design a machine learning model that takes robot joint data as input and proposes the most efficient motion pattern," can be used as an example of a prompt to be input to the generated AI model. This allows the AI model to automatically generate the optimal motion pattern for the robot.
[0353] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0354] Step 1:
[0355] The terminal acquires operational information in real time via various sensors attached to robots within the factory. This input data includes the movement of the robot's joints and the environmental conditions. The terminal converts this operational information into a data format and sends it to the server in a format that is easy to analyze.
[0356] Step 2:
[0357] The server uses a skeletal analysis library based on the received motion information to perform a detailed analysis of the robot's joint data. It analyzes the input motion information and generates specific data regarding joint position and movement. Based on this, it sets a baseline to identify the robot's motion patterns.
[0358] Step 3:
[0359] The server uses the analysis results to input motion data into a machine learning model, generating optimized motion patterns. This generative AI model learns from past data and predicts efficient ways of operating. The output provides detailed instructions for adjusting the robot's movements.
[0360] Step 4:
[0361] The server sends the generated optimal motion pattern to the robot's control system, which then adjusts the motion in real time. By building a feedback loop, the robot's movements are continuously optimized. This process improves the accuracy and efficiency of the work.
[0362] Step 5:
[0363] The terminal continuously monitors the robot's movements and, if necessary, sends the movement information back to the server. This allows the server to attempt further optimization based on the latest movement data.
[0364] Step 6:
[0365] The user prompts the system with commands when necessary, requesting instructions from the generating AI model regarding specific behavioral patterns and efficiency. Based on this, further adjustments and customizations are made to establish the optimal robot behavior.
[0366] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0367] This invention is a system that maximizes training efficiency by utilizing data including the user's physical information and emotional state. This system is implemented according to the following procedure.
[0368] First, the user installs the application and sets up their exercise environment along with their physical information such as height and weight. Then, they complete the registration of their physical information by inputting front and back image data into the app. If necessary, they also input facial image data, including facial expressions.
[0369] The device uses a skeletal analysis library to quantify the user's joint positions and body proportions based on acquired physical information and image data. The analyzed data is then sent to a server, preparing it for further detailed skeletal classification.
[0370] The server processes the received skeletal data using a machine learning model to classify the user's skeleton into specific categories. It also analyzes the received facial expression data via an emotion engine to recognize the user's emotional state. This emotional data is used to generate feedback linked to training motivation and stress levels.
[0371] Next, the user operates the app to select the exercise equipment to be used for training and the body parts they want to train. The selected data is sent to the server and used as basic information to provide the most suitable exercise program for each individual user.
[0372] The system generates or selects optimal exercise form videos and sends them to the device. The user views these videos and uses them to improve their actual training. During this process, the device performs facial recognition and expression analysis to monitor emotional changes during exercise.
[0373] During training, users record their form on video and send it to the server. The server evaluates the user's exercise form based on this video and generates feedback combined with emotional data. It generates the evaluation results and advice for improvement and sends them to the device. The device then presents this to the user, clearly and specifically showing areas for improvement and points to pay attention to in the next training session.
[0374] For example, if a user selects "squats" and shows expressions of "surprise" or "pain" during the exercise, the system will not only suggest areas for improvement in their movements but also provide motivational messages and advice on adjusting the load based on their emotions.
[0375] This system takes into account both the physical and emotional aspects of the user, providing training guidance tailored to their current abilities and emotional state, thereby reducing the risk of injury and increasing the efficiency of training.
[0376] The following describes the processing flow.
[0377] Step 1:
[0378] After installing the app, users enter their physical information, such as height and weight, and upload images of their front and back. This registers their physical information in the application.
[0379] Step 2:
[0380] The device uses the uploaded image data to activate its built-in skeletal analysis library, calculates the user's joint positions and body proportions, and generates skeletal data.
[0381] Step 3:
[0382] The terminal sends the generated skeletal data to the server. This transmission includes the user ID, date and time, and environment settings information.
[0383] Step 4:
[0384] The server uses machine learning algorithms to classify the user's skeletal characteristics based on the received skeletal data. The results are stored in a database and managed as individual skeletal information.
[0385] Step 5:
[0386] The user selects the training equipment to use (e.g., a squat rack) and the body part they want to train (e.g., legs) from the in-app menu.
[0387] Step 6:
[0388] The terminal sends information about the selected training device and body part to the server.
[0389] Step 7:
[0390] The server selects a video demonstrating the optimal exercise form based on the user's skeletal classification data and training selection information, and sends this video to the terminal in a streaming or downloadable format.
[0391] Step 8:
[0392] The user watches the provided form video, visualizes the correct form, and then begins their exercise.
[0393] Step 9:
[0394] The device provides a guide function for recording video of the user during training, and activates an emotion engine as needed to identify and collect facial expression data.
[0395] Step 10:
[0396] The user sends training videos and facial expression data they have recorded from their device to the server.
[0397] Step 11:
[0398] The server analyzes the transmitted video footage, compares the movements to correct form, and evaluates performance. It also uses an emotion engine to identify the user's emotions during training (e.g., "anxiety" or "concentration") and incorporates this into the analysis.
[0399] Step 12:
[0400] Based on the evaluation results, the server generates suggestions for form improvement and sentiment-based feedback, and prepares suggestions to boost motivation.
[0401] Step 13:
[0402] The terminal displays feedback information received from the server to the user. This includes corrections to the form, points to remember for next time, and emotion-based advice (e.g., the importance of relaxing and continuing the training).
[0403] Step 14:
[0404] Based on the feedback provided, users can review their training content and consider ways to improve in the next session, thereby conducting more effective training.
[0405] (Example 2)
[0406] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the smart glasses 214 will be referred to as the "terminal".
[0407] Conventional training support systems often only evaluate users based on their physical information and exercise performance, lacking feedback that takes into account the user's emotional state. This results in limited training effectiveness and challenges in maintaining user motivation and managing stress.
[0408] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[0409] In this invention, the server includes means for receiving the user's physical information, analyzing and classifying its structure, means for analyzing the user's emotional state and providing feedback, and means for generating and presenting motor performance indicators based on the analysis. This enables comprehensive training support that takes into account the user's physical and emotional aspects.
[0410] "User's physical information" refers to numerical information such as the user's height and weight, as well as physical image data, which forms the basis for developing individual training plans.
[0411] "Means for analyzing and classifying structures" refers to a system that uses a user's physical information to analyze its structure using technology and classify it into a specific category.
[0412] "Exercise demonstration videos" are video data that shows the correct form of the training the user intends to perform, allowing users to check and improve their own training form.
[0413] "User emotional state" refers to the user's mental state, based on data obtained from the user's facial expressions and other sensors.
[0414] "Means of providing adjusted feedback" refers to a system for providing users with individually tailored advice and motivational messages based on analyzed physical information and emotional state.
[0415] An "exercise performance index" is a numerical standard used to measure and evaluate the effectiveness of a user's training. This index allows users to objectively understand their own progress.
[0416] To implement this invention, a system is constructed that provides exercise support based on the user's physical information. The details are shown below.
[0417] Users first install a dedicated application on their smartphone or tablet. This application has the function of collecting and storing basic physical information such as height, weight, and training goals. Furthermore, users use their device's camera to register full-body images and facial expression images in the app.
[0418] The device uses a skeletal analysis library to process this information captured by the app. Specifically, it uses algorithms such as OpenPose to convert the user's joint positions into numerical data. Subsequently, it uses an emotion recognition engine to analyze the emotional state from the user's facial image.
[0419] This data is sent to the cloud, where further advanced analysis is performed on the server. The server uses a generative AI model (for example, a custom model using TensorFlow or PyTorch) to classify the user's skeletal structure based on the data. Based on this classification information, an optimized training plan is created for the user.
[0420] Furthermore, the server generates feedback based on emotion recognition results, aimed at improving motivation and reducing stress. This feedback can be used by users to track their progress and improve their performance.
[0421] Based on the body parts the user has selected to train and the exercise equipment they wish to use, the server selects the appropriate exercise form. This video is sent to the user's device, where they can watch it and learn the correct form. In addition, the camera footage during exercise is analyzed in real time, and areas for improvement are immediately fed back to the device.
[0422] For example, if a user selects "squats" and shows expressions of "surprise" or "pain" during the exercise, the system will suggest ways to improve their form. In addition, it can provide motivational messages and advice on adjusting the training load based on those emotions.
[0423] Examples of input prompts for a generative AI model:
[0424] "Based on the user's physical and emotional data, generate an appropriate training program and feedback. Include an example where the user has selected squats."
[0425] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0426] Step 1:
[0427] The user installs the application and sets up a personal account. Input data includes physical information such as height, weight, age, and exercise experience. This data is saved as a digital profile within the app. Specifically, the user follows the guide and enters the required information into the form.
[0428] Step 2:
[0429] The user uses their device's camera to take full-body images of the front and back and uploads them to the app. This generates image files as input data. The app then prepares these images to be securely sent to the cloud. Specifically, the user operates the camera screen according to the instructions.
[0430] Step 3:
[0431] The device generates numerical data of joint positions using a skeletal analysis library based on uploaded image data and existing body information. The input data is an image, and the output data is the coordinate information of the joints. Specifically, the device launches software such as OpenPose and performs real-time processing.
[0432] Step 4:
[0433] The terminal sends the analysis results to the server. The input data is joint coordinate information, and the output is the transmission of data to the server. Specifically, the terminal encodes the data and sends it to the cloud server via the internet.
[0434] Step 5:
[0435] The server inputs the received data into a generating AI model. The model classifies the skeletal type based on the data and generates the user's skeletal type information as output. Specifically, the server calls the machine learning model and saves the classification results to a database.
[0436] Step 6:
[0437] The server uses an emotion recognition engine to analyze emotional states from facial expression data. The input data is a face image file, and the output is emotional state information. Specifically, the server applies an image analysis algorithm to identify emotions.
[0438] Step 7:
[0439] The server generates an optimal training plan based on the analysis results. Input data includes skeletal type information and emotional state, and the output is a customized training plan. Specifically, the server uses a rule-based engine to construct the plan.
[0440] Step 8:
[0441] The server sends the generated training plan and associated exercise form video data to the terminal. The input data is the training plan, and the output includes a video file. Specifically, the server distributes the data using a file transfer protocol.
[0442] Step 9:
[0443] Users review the training plan and video transmitted on their device and use them for actual exercise. Specifically, users perform the exercises by watching the video displayed on their device screen. The input data is the user's target training content, and the output is a record of the exercise performed.
[0444] Step 10:
[0445] The user videos their form during exercise and uploads it back to the server. The input data is a video file, and the output is information sent to the server for improvement. Specifically, the user adjusts the camera on their device and takes the video.
[0446] Step 11:
[0447] The server evaluates the movement form from the transmitted video data and generates feedback by comparing it with emotional data. The input data consists of video and emotional state, and the output is feedback information. Specifically, the server applies a form comparison algorithm and analyzes the results.
[0448] Step 12:
[0449] The device receives feedback information and presents it to the user. The input data is feedback information, and the output is a display to the user. Specifically, the device uses its notification function to display an alert to the user.
[0450] (Application Example 2)
[0451] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."
[0452] Improving work efficiency using robots remains a crucial challenge in current industrial processes. In particular, insufficient optimization of robot movements can impact product quality and production efficiency. Furthermore, it can put stress on the moving parts of a robot during operation, increasing the risk of malfunction. Therefore, there is a need for technologies that optimize robot movements in real time, ensuring efficient and safe operation.
[0453] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.
[0454] In this invention, the server includes means for inputting motion data into a machine learning model to generate optimal motion patterns and areas for improvement; means for evaluating load and stress during operation and notifying the user of areas for improvement based on the evaluation; and means for generating specific motion performance indicators based on analyzed video footage of the user's movements and providing these indicators to the user. This makes it possible to improve the efficiency and safety of the robot's movements.
[0455] "User" refers to the entity that operates the system and uses its functions.
[0456] "Physical information" refers to the numerical representation of a user's structural and physical information, and the data used as the basis for skeletal analysis.
[0457] "Movement form" refers to the ideal shape and posture of body movement when performing a particular action or task.
[0458] A "machine learning model" is a program that uses algorithms to learn patterns from data and then applies that knowledge.
[0459] "Performance metrics" are numerical indicators that represent criteria for evaluating the efficiency, accuracy, and safety of a user's actions.
[0460] "Load" refers to the force or pressure applied to an object during operation, and is a factor used to evaluate the resulting effects.
[0461] "Stress" refers to the tension or burden that arises during movement, and is a factor that affects the efficiency and safety of that movement.
[0462] This invention is a system for optimizing the operation of factory robots to achieve efficient and safe work. Embodiments for carrying out the invention are described below.
[0463] The server receives motion data acquired from cameras and sensors mounted on factory robots. This data is transmitted as raw video and motion logs. The server analyzes this data using skeletal analysis libraries such as OpenPose, quantifying the robot's joint movements and proportions. These analysis results are then input into a machine learning model and processed as indicators for optimizing the robot's movements.
[0464] The machine learning model utilizes frameworks such as TensorFlow, and the server uses this to generate optimal operating patterns and areas for improvement. The generated optimization algorithm is fed back to the robot in real time, evaluating the load and stress during operation, and instructing the robot to make necessary improvements based on that evaluation.
[0465] The terminal receives instructions from the server and transmits motion commands to the factory robot. This allows the robot to perform its work safely and efficiently. For example, if a robot is assembling parts and it detects that there is strain on the joint movement, an improved motion pattern is immediately instructed, maintaining smooth operation.
[0466] For example, when a robot is assembling large parts, the server identifies joints that are experiencing excessive load during operation and instructs them to perform alternative movements to distribute the load. Through this process, the robot's movements are ensured to be efficient, preventing wear and tear and malfunctions of the machine.
[0467] Examples of prompts for a generative AI model:
[0468] "Analyze the robot's motion data and generate feedback to improve joint positioning and movement efficiency."
[0469] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0470] Step 1:
[0471] The server acquires video data in real time from cameras mounted on factory robots. The input is raw video data, which is used as foundational data for analyzing the robot's joint movements and proportions.
[0472] Step 2:
[0473] The server analyzes the acquired video data using a skeletal analysis library such as OpenPose. The input is video data, and the output is digitized joint position data. The specific action performed in this step is to extract the joint positions from the video and save them to the server as numerical information.
[0474] Step 3:
[0475] The server inputs digitized joint position data into a machine learning model such as TensorFlow. The input is joint position data, and the output is the optimal movement pattern. Specifically, the machine learning model analyzes the data and determines the efficiency and abnormalities of the movement.
[0476] Step 4:
[0477] The server generates improvement commands for the factory robot based on the outputted optimal motion pattern. The input is the optimization algorithm, and the output is specific motion correction commands for the robot. The action performed in this step is to determine specific adjustments to improve the efficiency of the motion and to communicate them to the robot.
[0478] Step 5:
[0479] The terminal transmits improvement commands received from the server to the factory robot. The input is the improvement command, and the output is the robot's adjusted behavior. In this step, the terminal helps the robot correct its behavior in real time using the appropriate protocol.
[0480] The specific processing unit 290 transmits the result of the specific processing to the smart glasses 214. In the smart glasses 214, the control unit 46A causes the speaker 240 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[0481] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0482] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the smart glasses 214.
[0483] [Third Embodiment]
[0484] Figure 5 shows an example of the configuration of the data processing system 310 according to the third embodiment.
[0485] As shown in Figure 5, the data processing system 310 includes a data processing device 12 and a headset terminal 314. An example of the data processing device 12 is a server.
[0486] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0487] The headset terminal 314 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication interface 44, and a display 343. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, camera 42, and display 343 are also connected to the bus 52.
[0488] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0489] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[0490] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0491] Figure 6 shows an example of the main functions of the data processing device 12 and the headset terminal 314. As shown in Figure 6, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0492] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0493] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0494] In the headset terminal 314, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0495] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the headset terminal 314 will be referred to as the "terminal".
[0496] This invention is a system for providing the optimal training form based on the user's physical information, and is implemented as follows.
[0497] First, the user installs the application and enters physical information such as height, weight, and front and back image data. All of this information is stored on the device.
[0498] The terminal analyzes the user's joints and skeletal features using a skeletal analysis library based on the acquired image data. The skeletal data obtained from the analysis is sent to a server for further detailed skeletal classification.
[0499] The server processes the received skeletal data and uses a pre-trained machine learning model to classify each user's skeletal structure into a specific category. The classification results are stored on the server and used to provide customized training information for each user.
[0500] Next, the user interacts with the application's UI to specify the exercise equipment to use and the body part they want to train. For example, the user might choose to train their chest muscles with a bench press. This selection information is then sent back to the server, which generates a video demonstrating the most suitable exercise form for the user.
[0501] The server selects the optimal exercise form video based on the user's skeletal classification results, selected motor device and body part information, and transmits that data to the terminal.
[0502] Next, the user watches the video and performs the training according to the form shown. During training, the user can record their form as a video on their device. The recorded video is sent to the server via the device and evaluated by comparing it to the correct exercise form.
[0503] The server analyzes the received user video and compares it to the appropriate form. It generates an evaluation result and provides feedback on specific areas for improvement and adjustments.
[0504] Ultimately, the device presents the user with feedback from the server, specifically highlighting areas for improvement and points to pay attention to in the next training session. This allows users to efficiently train in a way that suits their physique and goals.
[0505] This system provides individualized guidance to users at each stage, supporting them in maximizing results while preventing injuries.
[0506] The following describes the processing flow.
[0507] Step 1:
[0508] The user installs the app and enters their height, weight, and full-body and facial image data on the initial setup screen. This information is saved on the device.
[0509] Step 2:
[0510] The terminal uses the input image data to call a skeletal analysis library and quantifies the user's joint positions and body proportions. It then generates skeletal data based on the analysis results.
[0511] Step 3:
[0512] The terminal sends the generated skeletal data to the server. This data also includes authentication information such as the user ID.
[0513] Step 4:
[0514] The server analyzes the received skeletal data and uses a machine learning model to classify the skeletons into specific categories. The classification results are stored in a database.
[0515] Step 5:
[0516] The user interacts with the app's UI to select the exercise equipment to use for training and the body part they want to work out. For example, they might select the bench press and specify their chest as the body part they want to train.
[0517] Step 6:
[0518] The terminal sends information about the exercise equipment selected by the user and the body parts they want to train to the server.
[0519] Step 7:
[0520] The server compares the received selection information with the user's skeletal data and generates or selects the optimal exercise form video. The selected video is then sent to the user's device.
[0521] Step 8:
[0522] Users watch videos sent to their devices to check the correct form during training. They then use this form as a reference during their training.
[0523] Step 9:
[0524] Users record their training form using their device as a video. This video is then sent to the server via the device.
[0525] Step 10:
[0526] The server analyzes the user's submitted training video and compares it to a standard, correct form. Based on the analysis, it performs an evaluation and generates feedback that includes specific areas for improvement.
[0527] Step 11:
[0528] The terminal displays feedback information received from the server to the user, specifically highlighting points to pay attention to in the next training session. This allows the user to gain a deeper understanding of how to improve their form.
[0529] (Example 1)
[0530] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[0531] Traditional training systems have faced challenges in optimizing training to suit individual users' physical characteristics and inefficiently enabling self-improvement of exercise form. Users also have difficulty obtaining training plans tailored to their physique and goals, leading to increased risk of injury and difficulty in achieving desired results.
[0532] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0533] In this invention, the server includes means for receiving the user's physical information from an input device, analyzing the skeleton based on the physical information, and generating characteristic data of the skeleton; means for classifying the skeleton using a classification device with the characteristic data; means for generating an optimal exercise form video using a generation device based on the equipment selected by the user and the body part to be trained, and presenting it on a display device; and means for analyzing the video of the user's movements captured by a recording device, evaluating it by comparing it with an appropriate exercise form, and suggesting areas for improvement. This enables the provision of a training plan based on the user's skeletal characteristics and efficient improvement of exercise form.
[0534] "Physical information" refers to data about the user's body shape and build, including height, weight, and image data.
[0535] "Skeletal analysis" is a process that uses acquired physical information to identify the structure of a user's joints and skeleton, and generates their characteristics as numerical data.
[0536] "Feature data" refers to quantified data obtained through skeletal analysis that shows the user's body movements and joint structure.
[0537] A "classification device" is a device or system that receives feature data and classifies the user's skeletal structure into a specific category based on that data.
[0538] A "generation device" is a device or system that generates video of the optimal exercise form based on the user's selection information.
[0539] A "recording device" is a device used to record a user's actions as video, and includes cameras, smartphones, and other similar devices.
[0540] A "display device" is a device used to visually present generated images or feedback to a user, and includes displays and monitors.
[0541] "Exercise form" refers to the body's movements and posture during a particular exercise, and serves as a standard for evaluating its accuracy and efficiency.
[0542] "Feedback" refers to information that provides areas for improvement and precautions based on an evaluation of the user's actual movements compared to the optimal exercise form.
[0543] This invention is a system for providing an optimal training plan based on the user's physical information and promoting correct exercise form. The following describes embodiments for carrying out this invention.
[0544] Users first install a training application on their device and input their height, weight, and front and back image data into the app. This information is stored on the device and used for individual training analysis.
[0545] The device uses image data input by the user to analyze the body's joints and skeleton using a skeletal analysis library (e.g., OpenPose or MediaPipe). Based on the analysis results, the user's skeletal feature data is generated. This feature data is numerical data that indicates the user's joint positions and physical characteristics.
[0546] The server receives skeletal feature data transmitted from the terminal and performs classification using a pre-trained machine learning model (for example, a TensorFlow or PyTorch-based model) based on this data. This results in categorization based on each user's physical characteristics and provides the basis for customized training information.
[0547] When a user specifies the body part they want to train and the exercise equipment they will use (e.g., dumbbells, bench press) through the application interface, that information is sent back from the terminal to the server. The server combines this information with previously obtained skeletal feature data and uses a generative AI model to visualize the optimal exercise form. Prompts can be used for this generation. For example, "The user is 170cm tall and weighs 65kg. Please provide the optimal form for chest muscle training using a bench press."
[0548] The generated video is sent to the device and viewed by the user. The user can safely and efficiently perform the training by following the training form shown in the video. During training, the user records their posture and movements as a video on the device and uploads that data back to the server.
[0549] The server analyzes the received training video and compares it to a pre-generated optimal form. As a result, it evaluates the accuracy of the user's movements and identifies areas for improvement. The evaluation results are displayed on the device, allowing the user to incorporate this feedback into their next training session.
[0550] For example, if a user chooses bench press to strengthen their chest muscles, the server generates an appropriate form and sends it to the device. The user then films their form and receives feedback, ensuring they always train with the ideal form. This system promotes safe and effective training based on individual physical characteristics.
[0551] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0552] Step 1:
[0553] The user installs a training application on their device and inputs physical information such as height, weight, and front and back image data. This input information is stored on the device and provides the data necessary for subsequent analysis processes. Specifically, the user's body dimensions and image data are stored and used as input data for skeletal analysis.
[0554] Step 2:
[0555] The terminal uses image data input from the user to analyze the user's joints and skeleton using a skeletal analysis library. During this process, the image data is input into the analysis software, and data processing is performed to extract joint position and posture data. The resulting skeletal feature data includes coordinate and angle information for each joint, and this data is output.
[0556] Step 3:
[0557] The terminal sends the analyzed skeletal data to the server. The server receives this data and uses a machine learning model to classify the skeletal data into specific categories. In this process, a pattern recognition algorithm is applied to the skeletal feature data input to the server to generate category outputs such as "standard type" or "sporty type".
[0558] Step 4:
[0559] The user uses the application interface to select the body part they want to train and the exercise equipment they will use. This selection information is sent from the terminal to the server and entered as data necessary for generating the training form.
[0560] Step 5:
[0561] The server uses a generative AI model to generate video of the optimal exercise form based on the user's skeletal classification data and selection information. A prompt (e.g., "Generate the optimal bench press form for the user's physique") is passed as input, and as a result, video data of the exercise form is output. The generated video is then sent to the terminal.
[0562] Step 6:
[0563] Users view videos sent to their devices and perform training according to the provided forms. During this process, users record their own forms as videos. These recorded videos serve as observational data to verify whether the training is being performed with the correct form.
[0564] Step 7:
[0565] The terminal uploads the recorded training video to a server for comparative evaluation. This video data is then passed to analysis software, which calculates evaluation metrics by comparing it with pre-generated optimal forms. The evaluation output indicates the accuracy of the movement and serves as the basis for generating feedback.
[0566] Step 8:
[0567] The server generates feedback based on the comparative evaluation results and sends it to the terminal. For example, specific improvement suggestions such as "You need to raise your arm position a little more" are provided as feedback. The terminal then presents this feedback to the user to help them improve their next training session.
[0568] (Application Example 1)
[0569] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[0570] Conventional factory robots have limitations in maintaining operational efficiency while optimizing their movements for individual environments and achieving continuous performance improvement. In particular, they lack individual adjustments and feedback based on work conditions, which reduces the accuracy and efficiency of their movements and negatively impacts productivity. Furthermore, it is difficult to respond quickly when operational abnormalities occur, and there is a need for effective measures to address this.
[0571] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0572] In this invention, the server includes means for receiving user motion information, analyzing joints based on said motion information, and classifying said joints; means for generating and presenting an optimal motion pattern based on the work device selected by the user and the work content to be performed; and means for analyzing data recorded on the user's motion, comparing and evaluating it with the optimal motion pattern, and suggesting areas for improvement. This makes it possible for the factory robot to continuously optimize its motion and improve work efficiency and accuracy.
[0573] "Motion information" refers to data on the activities and movements performed by robots and machines, and is information collected by sensors.
[0574] "Joint analysis" is a process that analyzes the movement of the joints of robots and machines in detail based on motion information, and provides basic information for performing appropriate movements.
[0575] An "action pattern" is a combination of actions necessary to efficiently perform a specific task or activity, and is generated and presented by a system.
[0576] "Working equipment" refers to machinery and tools used to perform specific tasks or activities, and includes equipment used in production activities in factories and facilities.
[0577] "Motion optimization" is the process by which robots and machines adjust their movements to efficiently perform tasks and achieve goals while minimizing energy and time.
[0578] "Feedback" refers to information provided to robots and users based on the results of evaluations and analyses, serving as a guideline for improvement and adjustments.
[0579] This invention specifically implements a system for optimizing the operation of factory robots. The server receives operation information from sensors attached to robots operating in the factory. High-precision sensors are used to collect operation information such as the movement of the robot's joints and the conditions of the work environment in real time.
[0580] The server utilizes a dedicated skeletal analysis library to analyze the received motion information. This library is crucial for detailed analysis of the robot's joint movements and identifying optimal motion. The analysis results are stored in a cloud environment, and machine learning models generate optimal motion patterns.
[0581] The generated motion patterns are provided as feedback to the robot's control system, enabling real-time motion adjustments. This improves work efficiency and motion accuracy, thereby increasing productivity. The terminal constantly monitors the robot's movements and corrects them as needed.
[0582] A concrete example is the work of robots on an assembly line. If a robot fails to properly position a part, the server reanalyzes the motion information and quickly generates and provides feedback on a motion pattern for more accurate positioning. In this way, it supports the smooth and efficient progress of work within the factory.
[0583] A simple text prompt, such as "Design a machine learning model that takes robot joint data as input and proposes the most efficient motion pattern," can be used as an example of a prompt to be input to the generated AI model. This allows the AI model to automatically generate the optimal motion pattern for the robot.
[0584] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0585] Step 1:
[0586] The terminal acquires operational information in real time via various sensors attached to robots within the factory. This input data includes the movement of the robot's joints and the environmental conditions. The terminal converts this operational information into a data format and sends it to the server in a format that is easy to analyze.
[0587] Step 2:
[0588] The server uses a skeletal analysis library based on the received motion information to perform a detailed analysis of the robot's joint data. It analyzes the input motion information and generates specific data regarding joint position and movement. Based on this, it sets a baseline to identify the robot's motion patterns.
[0589] Step 3:
[0590] The server uses the analysis results to input motion data into a machine learning model, generating optimized motion patterns. This generative AI model learns from past data and predicts efficient ways of operating. The output provides detailed instructions for adjusting the robot's movements.
[0591] Step 4:
[0592] The server sends the generated optimal motion pattern to the robot's control system, which then adjusts the motion in real time. By building a feedback loop, the robot's movements are continuously optimized. This process improves the accuracy and efficiency of the work.
[0593] Step 5:
[0594] The terminal continuously monitors the robot's movements and, if necessary, sends the movement information back to the server. This allows the server to attempt further optimization based on the latest movement data.
[0595] Step 6:
[0596] The user prompts the system with commands when necessary, requesting instructions from the generating AI model regarding specific behavioral patterns and efficiency. Based on this, further adjustments and customizations are made to establish the optimal robot behavior.
[0597] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0598] This invention is a system that maximizes training efficiency by utilizing data including the user's physical information and emotional state. This system is implemented according to the following procedure.
[0599] First, the user installs the application and sets up their exercise environment along with their physical information such as height and weight. Then, they complete the registration of their physical information by inputting front and back image data into the app. If necessary, they also input facial image data, including facial expressions.
[0600] The device uses a skeletal analysis library to quantify the user's joint positions and body proportions based on acquired physical information and image data. The analyzed data is then sent to a server, preparing it for further detailed skeletal classification.
[0601] The server processes the received skeletal data using a machine learning model to classify the user's skeleton into specific categories. It also analyzes the received facial expression data via an emotion engine to recognize the user's emotional state. This emotional data is used to generate feedback linked to training motivation and stress levels.
[0602] Next, the user operates the app to select the exercise equipment to be used for training and the body parts they want to train. The selected data is sent to the server and used as basic information to provide the most suitable exercise program for each individual user.
[0603] The system generates or selects optimal exercise form videos and sends them to the device. The user views these videos and uses them to improve their actual training. During this process, the device performs facial recognition and expression analysis to monitor emotional changes during exercise.
[0604] During training, users record their form on video and send it to the server. The server evaluates the user's exercise form based on this video and generates feedback combined with emotional data. It generates the evaluation results and advice for improvement and sends them to the device. The device then presents this to the user, clearly and specifically showing areas for improvement and points to pay attention to in the next training session.
[0605] For example, if a user selects "squats" and shows expressions of "surprise" or "pain" during the exercise, the system will not only suggest areas for improvement in their movements but also provide motivational messages and advice on adjusting the load based on their emotions.
[0606] This system takes into account both the physical and emotional aspects of the user, providing training guidance tailored to their current abilities and emotional state, thereby reducing the risk of injury and increasing the efficiency of training.
[0607] The following describes the processing flow.
[0608] Step 1:
[0609] After installing the app, users enter their physical information, such as height and weight, and upload images of their front and back. This registers their physical information in the application.
[0610] Step 2:
[0611] The device uses the uploaded image data to activate its built-in skeletal analysis library, calculates the user's joint positions and body proportions, and generates skeletal data.
[0612] Step 3:
[0613] The terminal sends the generated skeletal data to the server. This transmission includes the user ID, date and time, and environment settings information.
[0614] Step 4:
[0615] The server uses machine learning algorithms to classify the user's skeletal characteristics based on the received skeletal data. The results are stored in a database and managed as individual skeletal information.
[0616] Step 5:
[0617] The user selects the training equipment to use (e.g., a squat rack) and the body part they want to train (e.g., legs) from the in-app menu.
[0618] Step 6:
[0619] The terminal sends information about the selected training device and body part to the server.
[0620] Step 7:
[0621] The server selects a video demonstrating the optimal exercise form based on the user's skeletal classification data and training selection information, and sends this video to the terminal in a streaming or downloadable format.
[0622] Step 8:
[0623] The user watches the provided form video, visualizes the correct form, and then begins their exercise.
[0624] Step 9:
[0625] The device provides a guide function for recording video of the user during training, and activates an emotion engine as needed to identify and collect facial expression data.
[0626] Step 10:
[0627] The user sends training videos and facial expression data they have recorded from their device to the server.
[0628] Step 11:
[0629] The server analyzes the transmitted video footage, compares the movements to correct form, and evaluates performance. It also uses an emotion engine to identify the user's emotions during training (e.g., "anxiety" or "concentration") and incorporates this into the analysis.
[0630] Step 12:
[0631] Based on the evaluation results, the server generates suggestions for form improvement and sentiment-based feedback, and prepares suggestions to boost motivation.
[0632] Step 13:
[0633] The terminal displays feedback information received from the server to the user. This includes corrections to the form, points to remember for next time, and emotion-based advice (e.g., the importance of relaxing and continuing the training).
[0634] Step 14:
[0635] Based on the feedback provided, users can review their training content and consider ways to improve in the next session, thereby conducting more effective training.
[0636] (Example 2)
[0637] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[0638] Conventional training support systems often only evaluate users based on their physical information and exercise performance, lacking feedback that takes into account the user's emotional state. This results in limited training effectiveness and challenges in maintaining user motivation and managing stress.
[0639] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[0640] In this invention, the server includes means for receiving the user's physical information, analyzing and classifying its structure, means for analyzing the user's emotional state and providing feedback, and means for generating and presenting motor performance indicators based on the analysis. This enables comprehensive training support that takes into account the user's physical and emotional aspects.
[0641] "User's physical information" refers to numerical information such as the user's height and weight, as well as physical image data, which forms the basis for developing individual training plans.
[0642] "Means for analyzing and classifying structures" refers to a system that uses a user's physical information to analyze its structure using technology and classify it into a specific category.
[0643] "Exercise demonstration videos" are video data that shows the correct form of the training the user intends to perform, allowing users to check and improve their own training form.
[0644] "User emotional state" refers to the user's mental state, based on data obtained from the user's facial expressions and other sensors.
[0645] "Means of providing adjusted feedback" refers to a system for providing users with individually tailored advice and motivational messages based on analyzed physical information and emotional state.
[0646] An "exercise performance index" is a numerical standard used to measure and evaluate the effectiveness of a user's training. This index allows users to objectively understand their own progress.
[0647] To implement this invention, a system is constructed that provides exercise support based on the user's physical information. The details are shown below.
[0648] Users first install a dedicated application on their smartphone or tablet. This application has the function of collecting and storing basic physical information such as height, weight, and training goals. Furthermore, users use their device's camera to register full-body images and facial expression images in the app.
[0649] The device uses a skeletal analysis library to process this information captured by the app. Specifically, it uses algorithms such as OpenPose to convert the user's joint positions into numerical data. Subsequently, it uses an emotion recognition engine to analyze the emotional state from the user's facial image.
[0650] This data is sent to the cloud, where further advanced analysis is performed on the server. The server uses a generative AI model (for example, a custom model using TensorFlow or PyTorch) to classify the user's skeletal structure based on the data. Based on this classification information, an optimized training plan is created for the user.
[0651] Furthermore, the server generates feedback based on emotion recognition results, aimed at improving motivation and reducing stress. This feedback can be used by users to track their progress and improve their performance.
[0652] Based on the body parts the user has selected to train and the exercise equipment they wish to use, the server selects the appropriate exercise form. This video is sent to the user's device, where they can watch it and learn the correct form. In addition, the camera footage during exercise is analyzed in real time, and areas for improvement are immediately fed back to the device.
[0653] For example, if a user selects "squats" and shows expressions of "surprise" or "pain" during the exercise, the system will suggest ways to improve their form. In addition, it can provide motivational messages and advice on adjusting the training load based on those emotions.
[0654] Examples of input prompts for a generative AI model:
[0655] "Based on the user's physical and emotional data, generate an appropriate training program and feedback. Include an example where the user has selected squats."
[0656] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0657] Step 1:
[0658] The user installs the application and sets up a personal account. Input data includes physical information such as height, weight, age, and exercise experience. This data is saved as a digital profile within the app. Specifically, the user follows the guide and enters the required information into the form.
[0659] Step 2:
[0660] The user uses their device's camera to take full-body images of the front and back and uploads them to the app. This generates image files as input data. The app then prepares these images to be securely sent to the cloud. Specifically, the user operates the camera screen according to the instructions.
[0661] Step 3:
[0662] The device generates numerical data of joint positions using a skeletal analysis library based on uploaded image data and existing body information. The input data is an image, and the output data is the coordinate information of the joints. Specifically, the device launches software such as OpenPose and performs real-time processing.
[0663] Step 4:
[0664] The terminal sends the analysis results to the server. The input data is joint coordinate information, and the output is the transmission of data to the server. Specifically, the terminal encodes the data and sends it to the cloud server via the internet.
[0665] Step 5:
[0666] The server inputs the received data into a generating AI model. The model classifies the skeletal type based on the data and generates the user's skeletal type information as output. Specifically, the server calls the machine learning model and saves the classification results to a database.
[0667] Step 6:
[0668] The server uses an emotion recognition engine to analyze emotional states from facial expression data. The input data is a face image file, and the output is emotional state information. Specifically, the server applies an image analysis algorithm to identify emotions.
[0669] Step 7:
[0670] The server generates an optimal training plan based on the analysis results. Input data includes skeletal type information and emotional state, and the output is a customized training plan. Specifically, the server uses a rule-based engine to construct the plan.
[0671] Step 8:
[0672] The server sends the generated training plan and associated exercise form video data to the terminal. The input data is the training plan, and the output includes a video file. Specifically, the server distributes the data using a file transfer protocol.
[0673] Step 9:
[0674] Users review the training plan and video transmitted on their device and use them for actual exercise. Specifically, users perform the exercises by watching the video displayed on their device screen. The input data is the user's target training content, and the output is a record of the exercise performed.
[0675] Step 10:
[0676] The user videos their form during exercise and uploads it back to the server. The input data is a video file, and the output is information sent to the server for improvement. Specifically, the user adjusts the camera on their device and takes the video.
[0677] Step 11:
[0678] The server evaluates the movement form from the transmitted video data and generates feedback by comparing it with emotional data. The input data consists of video and emotional state, and the output is feedback information. Specifically, the server applies a form comparison algorithm and analyzes the results.
[0679] Step 12:
[0680] The device receives feedback information and presents it to the user. The input data is feedback information, and the output is a display to the user. Specifically, the device uses its notification function to display an alert to the user.
[0681] (Application Example 2)
[0682] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[0683] Improving work efficiency using robots remains a crucial challenge in current industrial processes. In particular, insufficient optimization of robot movements can impact product quality and production efficiency. Furthermore, it can put stress on the moving parts of a robot during operation, increasing the risk of malfunction. Therefore, there is a need for technologies that optimize robot movements in real time, ensuring efficient and safe operation.
[0684] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.
[0685] In this invention, the server includes means for inputting motion data into a machine learning model to generate optimal motion patterns and areas for improvement; means for evaluating load and stress during operation and notifying the user of areas for improvement based on the evaluation; and means for generating specific motion performance indicators based on analyzed video footage of the user's movements and providing these indicators to the user. This makes it possible to improve the efficiency and safety of the robot's movements.
[0686] "User" refers to the entity that operates the system and uses its functions.
[0687] "Physical information" refers to the numerical representation of a user's structural and physical information, and the data used as the basis for skeletal analysis.
[0688] "Movement form" refers to the ideal shape and posture of body movement when performing a particular action or task.
[0689] A "machine learning model" is a program that uses algorithms to learn patterns from data and then applies that knowledge.
[0690] "Performance metrics" are numerical indicators that represent criteria for evaluating the efficiency, accuracy, and safety of a user's actions.
[0691] "Load" refers to the force or pressure applied to an object during operation, and is a factor used to evaluate the resulting effects.
[0692] "Stress" refers to the tension or burden that arises during movement, and is a factor that affects the efficiency and safety of that movement.
[0693] This invention is a system for optimizing the operation of factory robots to achieve efficient and safe work. Embodiments for carrying out the invention are described below.
[0694] The server receives motion data acquired from cameras and sensors mounted on factory robots. This data is transmitted as raw video and motion logs. The server analyzes this data using skeletal analysis libraries such as OpenPose, quantifying the robot's joint movements and proportions. These analysis results are then input into a machine learning model and processed as indicators for optimizing the robot's movements.
[0695] The machine learning model utilizes frameworks such as TensorFlow, and the server uses this to generate optimal operating patterns and areas for improvement. The generated optimization algorithm is fed back to the robot in real time, evaluating the load and stress during operation, and instructing the robot to make necessary improvements based on that evaluation.
[0696] The terminal receives instructions from the server and transmits motion commands to the factory robot. This allows the robot to perform its work safely and efficiently. For example, if a robot is assembling parts and it detects that there is strain on the joint movement, an improved motion pattern is immediately instructed, maintaining smooth operation.
[0697] For example, when a robot is assembling large parts, the server identifies joints that are experiencing excessive load during operation and instructs them to perform alternative movements to distribute the load. Through this process, the robot's movements are ensured to be efficient, preventing wear and tear and malfunctions of the machine.
[0698] Examples of prompts for a generative AI model:
[0699] "Analyze the robot's motion data and generate feedback to improve joint positioning and movement efficiency."
[0700] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0701] Step 1:
[0702] The server acquires video data in real time from cameras mounted on factory robots. The input is raw video data, which is used as foundational data for analyzing the robot's joint movements and proportions.
[0703] Step 2:
[0704] The server analyzes the acquired video data using a skeletal analysis library such as OpenPose. The input is video data, and the output is digitized joint position data. The specific action performed in this step is to extract the joint positions from the video and save them to the server as numerical information.
[0705] Step 3:
[0706] The server inputs digitized joint position data into a machine learning model such as TensorFlow. The input is joint position data, and the output is the optimal movement pattern. Specifically, the machine learning model analyzes the data and determines the efficiency and abnormalities of the movement.
[0707] Step 4:
[0708] The server generates improvement commands for the factory robot based on the outputted optimal motion pattern. The input is the optimization algorithm, and the output is specific motion correction commands for the robot. The action performed in this step is to determine specific adjustments to improve the efficiency of the motion and to communicate them to the robot.
[0709] Step 5:
[0710] The terminal transmits improvement commands received from the server to the factory robot. The input is the improvement command, and the output is the robot's adjusted behavior. In this step, the terminal helps the robot correct its behavior in real time using the appropriate protocol.
[0711] The specific processing unit 290 transmits the result of the specific processing to the headset terminal 314. In the headset terminal 314, the control unit 46A causes the speaker 240 and display 343 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[0712] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0713] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and specific processing may also be performed by the headset terminal 314.
[0714] [Fourth Embodiment]
[0715] Figure 7 shows an example of the configuration of the data processing system 410 according to the fourth embodiment.
[0716] As shown in Figure 7, the data processing system 410 includes a data processing device 12 and a robot 414. An example of the data processing device 12 is a server.
[0717] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0718] The robot 414 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication interface 44, and a controlled object 443. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, camera 42, and controlled object 443 are also connected to the bus 52.
[0719] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0720] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[0721] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0722] The controlled object 443 includes a display device, LEDs in the eyes, and motors that drive the arms, hands, and feet. The posture and gestures of the robot 414 are controlled by controlling the motors of the arms, hands, and feet. Some of the robot 414's emotions can be expressed by controlling these motors. Furthermore, the robot 414's facial expressions can also be expressed by controlling the illumination state of the LEDs in its eyes.
[0723] Figure 8 shows an example of the main functions of the data processing device 12 and the robot 414. As shown in Figure 8, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0724] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0725] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0726] In robot 414, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0727] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[0728] This invention is a system for providing the optimal training form based on the user's physical information, and is implemented as follows.
[0729] First, the user installs the application and enters physical information such as height, weight, and front and back image data. All of this information is stored on the device.
[0730] The terminal analyzes the user's joints and skeletal features using a skeletal analysis library based on the acquired image data. The skeletal data obtained from the analysis is sent to a server for further detailed skeletal classification.
[0731] The server processes the received skeletal data and uses a pre-trained machine learning model to classify each user's skeletal structure into a specific category. The classification results are stored on the server and used to provide customized training information for each user.
[0732] Next, the user interacts with the application's UI to specify the exercise equipment to use and the body part they want to train. For example, the user might choose to train their chest muscles with a bench press. This selection information is then sent back to the server, which generates a video demonstrating the most suitable exercise form for the user.
[0733] The server selects the optimal exercise form video based on the user's skeletal classification results, selected motor device and body part information, and transmits that data to the terminal.
[0734] Next, the user watches the video and performs the training according to the form shown. During training, the user can record their form as a video on their device. The recorded video is sent to the server via the device and evaluated by comparing it to the correct exercise form.
[0735] The server analyzes the received user video and compares it to the appropriate form. It generates an evaluation result and provides feedback on specific areas for improvement and adjustments.
[0736] Ultimately, the device presents the user with feedback from the server, specifically highlighting areas for improvement and points to pay attention to in the next training session. This allows users to efficiently train in a way that suits their physique and goals.
[0737] This system provides individualized guidance to users at each stage, supporting them in maximizing results while preventing injuries.
[0738] The following describes the processing flow.
[0739] Step 1:
[0740] The user installs the app and enters their height, weight, and full-body and facial image data on the initial setup screen. This information is saved on the device.
[0741] Step 2:
[0742] The terminal uses the input image data to call a skeletal analysis library and quantifies the user's joint positions and body proportions. It then generates skeletal data based on the analysis results.
[0743] Step 3:
[0744] The terminal sends the generated skeletal data to the server. This data also includes authentication information such as the user ID.
[0745] Step 4:
[0746] The server analyzes the received skeletal data and uses a machine learning model to classify the skeletons into specific categories. The classification results are stored in a database.
[0747] Step 5:
[0748] The user interacts with the app's UI to select the exercise equipment to use for training and the body part they want to work out. For example, they might select the bench press and specify their chest as the body part they want to train.
[0749] Step 6:
[0750] The terminal sends information about the exercise equipment selected by the user and the body parts they want to train to the server.
[0751] Step 7:
[0752] The server compares the received selection information with the user's skeletal data and generates or selects the optimal exercise form video. The selected video is then sent to the user's device.
[0753] Step 8:
[0754] Users watch videos sent to their devices to check the correct form during training. They then use this form as a reference during their training.
[0755] Step 9:
[0756] Users record their training form using their device as a video. This video is then sent to the server via the device.
[0757] Step 10:
[0758] The server analyzes the user's submitted training video and compares it to a standard, correct form. Based on the analysis, it performs an evaluation and generates feedback that includes specific areas for improvement.
[0759] Step 11:
[0760] The terminal displays feedback information received from the server to the user, specifically highlighting points to pay attention to in the next training session. This allows the user to gain a deeper understanding of how to improve their form.
[0761] (Example 1)
[0762] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[0763] Traditional training systems have faced challenges in optimizing training to suit individual users' physical characteristics and inefficiently enabling self-improvement of exercise form. Users also have difficulty obtaining training plans tailored to their physique and goals, leading to increased risk of injury and difficulty in achieving desired results.
[0764] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0765] In this invention, the server includes means for receiving the user's physical information from an input device, analyzing the skeleton based on the physical information, and generating characteristic data of the skeleton; means for classifying the skeleton using a classification device with the characteristic data; means for generating an optimal exercise form video using a generation device based on the equipment selected by the user and the body part to be trained, and presenting it on a display device; and means for analyzing the video of the user's movements captured by a recording device, evaluating it by comparing it with an appropriate exercise form, and suggesting areas for improvement. This enables the provision of a training plan based on the user's skeletal characteristics and efficient improvement of exercise form.
[0766] "Physical information" refers to data about the user's body shape and build, including height, weight, and image data.
[0767] "Skeletal analysis" is a process that uses acquired physical information to identify the structure of a user's joints and skeleton, and generates their characteristics as numerical data.
[0768] "Feature data" refers to quantified data obtained through skeletal analysis that shows the user's body movements and joint structure.
[0769] A "classification device" is a device or system that receives feature data and classifies the user's skeletal structure into a specific category based on that data.
[0770] A "generation device" is a device or system that generates video of the optimal exercise form based on the user's selection information.
[0771] A "recording device" is a device used to record a user's actions as video, and includes cameras, smartphones, and other similar devices.
[0772] A "display device" is a device used to visually present generated images or feedback to a user, and includes displays and monitors.
[0773] "Exercise form" refers to the body's movements and posture during a particular exercise, and serves as a standard for evaluating its accuracy and efficiency.
[0774] "Feedback" refers to information that provides areas for improvement and precautions based on an evaluation of the user's actual movements compared to the optimal exercise form.
[0775] This invention is a system for providing an optimal training plan based on the user's physical information and promoting correct exercise form. The following describes embodiments for carrying out this invention.
[0776] Users first install a training application on their device and input their height, weight, and front and back image data into the app. This information is stored on the device and used for individual training analysis.
[0777] The device uses image data input by the user to analyze the body's joints and skeleton using a skeletal analysis library (e.g., OpenPose or MediaPipe). Based on the analysis results, the user's skeletal feature data is generated. This feature data is numerical data that indicates the user's joint positions and physical characteristics.
[0778] The server receives skeletal feature data transmitted from the terminal and performs classification using a pre-trained machine learning model (for example, a TensorFlow or PyTorch-based model) based on this data. This results in categorization based on each user's physical characteristics and provides the basis for customized training information.
[0779] When a user specifies the body part they want to train and the exercise equipment they will use (e.g., dumbbells, bench press) through the application interface, that information is sent back from the terminal to the server. The server combines this information with previously obtained skeletal feature data and uses a generative AI model to visualize the optimal exercise form. Prompts can be used for this generation. For example, "The user is 170cm tall and weighs 65kg. Please provide the optimal form for chest muscle training using a bench press."
[0780] The generated video is sent to the device and viewed by the user. The user can safely and efficiently perform the training by following the training form shown in the video. During training, the user records their posture and movements as a video on the device and uploads that data back to the server.
[0781] The server analyzes the received training video and compares it to a pre-generated optimal form. As a result, it evaluates the accuracy of the user's movements and identifies areas for improvement. The evaluation results are displayed on the device, allowing the user to incorporate this feedback into their next training session.
[0782] For example, if a user chooses bench press to strengthen their chest muscles, the server generates an appropriate form and sends it to the device. The user then films their form and receives feedback, ensuring they always train with the ideal form. This system promotes safe and effective training based on individual physical characteristics.
[0783] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0784] Step 1:
[0785] The user installs a training application on their device and inputs physical information such as height, weight, and front and back image data. This input information is stored on the device and provides the data necessary for subsequent analysis processes. Specifically, the user's body dimensions and image data are stored and used as input data for skeletal analysis.
[0786] Step 2:
[0787] The terminal uses image data input from the user to analyze the user's joints and skeleton using a skeletal analysis library. During this process, the image data is input into the analysis software, and data processing is performed to extract joint position and posture data. The resulting skeletal feature data includes coordinate and angle information for each joint, and this data is output.
[0788] Step 3:
[0789] The terminal sends the analyzed skeletal data to the server. The server receives this data and uses a machine learning model to classify the skeletal data into specific categories. In this process, a pattern recognition algorithm is applied to the skeletal feature data input to the server to generate category outputs such as "standard type" or "sporty type".
[0790] Step 4:
[0791] The user uses the application interface to select the body part they want to train and the exercise equipment they will use. This selection information is sent from the terminal to the server and entered as data necessary for generating the training form.
[0792] Step 5:
[0793] The server uses a generative AI model to generate video of the optimal exercise form based on the user's skeletal classification data and selection information. A prompt (e.g., "Generate the optimal bench press form for the user's physique") is passed as input, and as a result, video data of the exercise form is output. The generated video is then sent to the terminal.
[0794] Step 6:
[0795] Users view videos sent to their devices and perform training according to the provided forms. During this process, users record their own forms as videos. These recorded videos serve as observational data to verify whether the training is being performed with the correct form.
[0796] Step 7:
[0797] The terminal uploads the recorded training video to a server for comparative evaluation. This video data is then passed to analysis software, which calculates evaluation metrics by comparing it with pre-generated optimal forms. The evaluation output indicates the accuracy of the movement and serves as the basis for generating feedback.
[0798] Step 8:
[0799] The server generates feedback based on the comparative evaluation results and sends it to the terminal. For example, specific improvement suggestions such as "You need to raise your arm position a little more" are provided as feedback. The terminal then presents this feedback to the user to help them improve their next training session.
[0800] (Application Example 1)
[0801] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[0802] Conventional factory robots have limitations in maintaining operational efficiency while optimizing their movements for individual environments and achieving continuous performance improvement. In particular, they lack individual adjustments and feedback based on work conditions, which reduces the accuracy and efficiency of their movements and negatively impacts productivity. Furthermore, it is difficult to respond quickly when operational abnormalities occur, and there is a need for effective measures to address this.
[0803] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0804] In this invention, the server includes means for receiving user motion information, analyzing joints based on said motion information, and classifying said joints; means for generating and presenting an optimal motion pattern based on the work device selected by the user and the work content to be performed; and means for analyzing data recorded on the user's motion, comparing and evaluating it with the optimal motion pattern, and suggesting areas for improvement. This makes it possible for the factory robot to continuously optimize its motion and improve work efficiency and accuracy.
[0805] "Motion information" refers to data on the activities and movements performed by robots and machines, and is information collected by sensors.
[0806] "Joint analysis" is a process that analyzes the movement of the joints of robots and machines in detail based on motion information, and provides basic information for performing appropriate movements.
[0807] An "action pattern" is a combination of actions necessary to efficiently perform a specific task or activity, and is generated and presented by a system.
[0808] "Working equipment" refers to machinery and tools used to perform specific tasks or activities, and includes equipment used in production activities in factories and facilities.
[0809] "Motion optimization" is the process by which robots and machines adjust their movements to efficiently perform tasks and achieve goals while minimizing energy and time.
[0810] "Feedback" refers to information provided to robots and users based on the results of evaluations and analyses, serving as a guideline for improvement and adjustments.
[0811] This invention specifically implements a system for optimizing the operation of factory robots. The server receives operation information from sensors attached to robots operating in the factory. High-precision sensors are used to collect operation information such as the movement of the robot's joints and the conditions of the work environment in real time.
[0812] The server utilizes a dedicated skeletal analysis library to analyze the received motion information. This library is crucial for detailed analysis of the robot's joint movements and identifying optimal motion. The analysis results are stored in a cloud environment, and machine learning models generate optimal motion patterns.
[0813] The generated motion patterns are provided as feedback to the robot's control system, enabling real-time motion adjustments. This improves work efficiency and motion accuracy, thereby increasing productivity. The terminal constantly monitors the robot's movements and corrects them as needed.
[0814] A concrete example is the work of robots on an assembly line. If a robot fails to properly position a part, the server reanalyzes the motion information and quickly generates and provides feedback on a motion pattern for more accurate positioning. In this way, it supports the smooth and efficient progress of work within the factory.
[0815] A simple text prompt, such as "Design a machine learning model that takes robot joint data as input and proposes the most efficient motion pattern," can be used as an example of a prompt to be input to the generated AI model. This allows the AI model to automatically generate the optimal motion pattern for the robot.
[0816] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0817] Step 1:
[0818] The terminal acquires operational information in real time via various sensors attached to robots within the factory. This input data includes the movement of the robot's joints and the environmental conditions. The terminal converts this operational information into a data format and sends it to the server in a format that is easy to analyze.
[0819] Step 2:
[0820] The server uses a skeletal analysis library based on the received motion information to perform a detailed analysis of the robot's joint data. It analyzes the input motion information and generates specific data regarding joint position and movement. Based on this, it sets a baseline to identify the robot's motion patterns.
[0821] Step 3:
[0822] The server uses the analysis results to input motion data into a machine learning model, generating optimized motion patterns. This generative AI model learns from past data and predicts efficient ways of operating. The output provides detailed instructions for adjusting the robot's movements.
[0823] Step 4:
[0824] The server sends the generated optimal motion pattern to the robot's control system, which then adjusts the motion in real time. By building a feedback loop, the robot's movements are continuously optimized. This process improves the accuracy and efficiency of the work.
[0825] Step 5:
[0826] The terminal continuously monitors the robot's movements and, if necessary, sends the movement information back to the server. This allows the server to attempt further optimization based on the latest movement data.
[0827] Step 6:
[0828] The user prompts the system with commands when necessary, requesting instructions from the generating AI model regarding specific behavioral patterns and efficiency. Based on this, further adjustments and customizations are made to establish the optimal robot behavior.
[0829] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0830] This invention is a system that maximizes training efficiency by utilizing data including the user's physical information and emotional state. This system is implemented according to the following procedure.
[0831] First, the user installs the application and sets up their exercise environment along with their physical information such as height and weight. Then, they complete the registration of their physical information by inputting front and back image data into the app. If necessary, they also input facial image data, including facial expressions.
[0832] The device uses a skeletal analysis library to quantify the user's joint positions and body proportions based on acquired physical information and image data. The analyzed data is then sent to a server, preparing it for further detailed skeletal classification.
[0833] The server processes the received skeletal data using a machine learning model to classify the user's skeleton into specific categories. It also analyzes the received facial expression data via an emotion engine to recognize the user's emotional state. This emotional data is used to generate feedback linked to training motivation and stress levels.
[0834] Next, the user operates the app to select the exercise equipment to be used for training and the body parts they want to train. The selected data is sent to the server and used as basic information to provide the most suitable exercise program for each individual user.
[0835] The system generates or selects optimal exercise form videos and sends them to the device. The user views these videos and uses them to improve their actual training. During this process, the device performs facial recognition and expression analysis to monitor emotional changes during exercise.
[0836] During training, users record their form on video and send it to the server. The server evaluates the user's exercise form based on this video and generates feedback combined with emotional data. It generates the evaluation results and advice for improvement and sends them to the device. The device then presents this to the user, clearly and specifically showing areas for improvement and points to pay attention to in the next training session.
[0837] For example, if a user selects "squats" and shows expressions of "surprise" or "pain" during the exercise, the system will not only suggest areas for improvement in their movements but also provide motivational messages and advice on adjusting the load based on their emotions.
[0838] This system takes into account both the physical and emotional aspects of the user, providing training guidance tailored to their current abilities and emotional state, thereby reducing the risk of injury and increasing the efficiency of training.
[0839] The following describes the processing flow.
[0840] Step 1:
[0841] After installing the app, users enter their physical information, such as height and weight, and upload images of their front and back. This registers their physical information in the application.
[0842] Step 2:
[0843] The device uses the uploaded image data to activate its built-in skeletal analysis library, calculates the user's joint positions and body proportions, and generates skeletal data.
[0844] Step 3:
[0845] The terminal sends the generated skeletal data to the server. This transmission includes the user ID, date and time, and environment settings information.
[0846] Step 4:
[0847] The server uses machine learning algorithms to classify the user's skeletal characteristics based on the received skeletal data. The results are stored in a database and managed as individual skeletal information.
[0848] Step 5:
[0849] The user selects the training equipment to use (e.g., a squat rack) and the body part they want to train (e.g., legs) from the in-app menu.
[0850] Step 6:
[0851] The terminal sends information about the selected training device and body part to the server.
[0852] Step 7:
[0853] The server selects a video demonstrating the optimal exercise form based on the user's skeletal classification data and training selection information, and sends this video to the terminal in a streaming or downloadable format.
[0854] Step 8:
[0855] The user watches the provided form video, visualizes the correct form, and then begins their exercise.
[0856] Step 9:
[0857] The device provides a guide function for recording video of the user during training, and activates an emotion engine as needed to identify and collect facial expression data.
[0858] Step 10:
[0859] The user sends training videos and facial expression data they have recorded from their device to the server.
[0860] Step 11:
[0861] The server analyzes the transmitted video footage, compares the movements to correct form, and evaluates performance. It also uses an emotion engine to identify the user's emotions during training (e.g., "anxiety" or "concentration") and incorporates this into the analysis.
[0862] Step 12:
[0863] Based on the evaluation results, the server generates suggestions for form improvement and sentiment-based feedback, and prepares suggestions to boost motivation.
[0864] Step 13:
[0865] The terminal displays feedback information received from the server to the user. This includes corrections to the form, points to remember for next time, and emotion-based advice (e.g., the importance of relaxing and continuing the training).
[0866] Step 14:
[0867] Based on the feedback provided, users can review their training content and consider ways to improve in the next session, thereby conducting more effective training.
[0868] (Example 2)
[0869] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[0870] Conventional training support systems often only evaluate users based on their physical information and exercise performance, lacking feedback that takes into account the user's emotional state. This results in limited training effectiveness and challenges in maintaining user motivation and managing stress.
[0871] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[0872] In this invention, the server includes means for receiving the user's physical information, analyzing and classifying its structure, means for analyzing the user's emotional state and providing feedback, and means for generating and presenting motor performance indicators based on the analysis. This enables comprehensive training support that takes into account the user's physical and emotional aspects.
[0873] "User's physical information" refers to numerical information such as the user's height and weight, as well as physical image data, which forms the basis for developing individual training plans.
[0874] "Means for analyzing and classifying structures" refers to a system that uses a user's physical information to analyze its structure using technology and classify it into a specific category.
[0875] "Exercise demonstration videos" are video data that shows the correct form of the training the user intends to perform, allowing users to check and improve their own training form.
[0876] "User emotional state" refers to the user's mental state, based on data obtained from the user's facial expressions and other sensors.
[0877] "Means of providing adjusted feedback" refers to a system for providing users with individually tailored advice and motivational messages based on analyzed physical information and emotional state.
[0878] An "exercise performance index" is a numerical standard used to measure and evaluate the effectiveness of a user's training. This index allows users to objectively understand their own progress.
[0879] To implement this invention, a system is constructed that provides exercise support based on the user's physical information. The details are shown below.
[0880] Users first install a dedicated application on their smartphone or tablet. This application has the function of collecting and storing basic physical information such as height, weight, and training goals. Furthermore, users use their device's camera to register full-body images and facial expression images in the app.
[0881] The device uses a skeletal analysis library to process this information captured by the app. Specifically, it uses algorithms such as OpenPose to convert the user's joint positions into numerical data. Subsequently, it uses an emotion recognition engine to analyze the emotional state from the user's facial image.
[0882] This data is sent to the cloud, where further advanced analysis is performed on the server. The server uses a generative AI model (for example, a custom model using TensorFlow or PyTorch) to classify the user's skeletal structure based on the data. Based on this classification information, an optimized training plan is created for the user.
[0883] Furthermore, the server generates feedback based on emotion recognition results, aimed at improving motivation and reducing stress. This feedback can be used by users to track their progress and improve their performance.
[0884] Based on the body parts the user has selected to train and the exercise equipment they wish to use, the server selects the appropriate exercise form. This video is sent to the user's device, where they can watch it and learn the correct form. In addition, the camera footage during exercise is analyzed in real time, and areas for improvement are immediately fed back to the device.
[0885] For example, if a user selects "squats" and shows expressions of "surprise" or "pain" during the exercise, the system will suggest ways to improve their form. In addition, it can provide motivational messages and advice on adjusting the training load based on those emotions.
[0886] Examples of input prompts for a generative AI model:
[0887] "Based on the user's physical and emotional data, generate an appropriate training program and feedback. Include an example where the user has selected squats."
[0888] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0889] Step 1:
[0890] The user installs the application and sets up a personal account. Input data includes physical information such as height, weight, age, and exercise experience. This data is saved as a digital profile within the app. Specifically, the user follows the guide and enters the required information into the form.
[0891] Step 2:
[0892] The user uses their device's camera to take full-body images of the front and back and uploads them to the app. This generates image files as input data. The app then prepares these images to be securely sent to the cloud. Specifically, the user operates the camera screen according to the instructions.
[0893] Step 3:
[0894] The device generates numerical data of joint positions using a skeletal analysis library based on uploaded image data and existing body information. The input data is an image, and the output data is the coordinate information of the joints. Specifically, the device launches software such as OpenPose and performs real-time processing.
[0895] Step 4:
[0896] The terminal sends the analysis results to the server. The input data is joint coordinate information, and the output is the transmission of data to the server. Specifically, the terminal encodes the data and sends it to the cloud server via the internet.
[0897] Step 5:
[0898] The server inputs the received data into a generating AI model. The model classifies the skeletal type based on the data and generates the user's skeletal type information as output. Specifically, the server calls the machine learning model and saves the classification results to a database.
[0899] Step 6:
[0900] The server uses an emotion recognition engine to analyze emotional states from facial expression data. The input data is a face image file, and the output is emotional state information. Specifically, the server applies an image analysis algorithm to identify emotions.
[0901] Step 7:
[0902] The server generates an optimal training plan based on the analysis results. Input data includes skeletal type information and emotional state, and the output is a customized training plan. Specifically, the server uses a rule-based engine to construct the plan.
[0903] Step 8:
[0904] The server sends the generated training plan and associated exercise form video data to the terminal. The input data is the training plan, and the output includes a video file. Specifically, the server distributes the data using a file transfer protocol.
[0905] Step 9:
[0906] Users review the training plan and video transmitted on their device and use them for actual exercise. Specifically, users perform the exercises by watching the video displayed on their device screen. The input data is the user's target training content, and the output is a record of the exercise performed.
[0907] Step 10:
[0908] The user videos their form during exercise and uploads it back to the server. The input data is a video file, and the output is information sent to the server for improvement. Specifically, the user adjusts the camera on their device and takes the video.
[0909] Step 11:
[0910] The server evaluates the movement form from the transmitted video data and generates feedback by comparing it with emotional data. The input data consists of video and emotional state, and the output is feedback information. Specifically, the server applies a form comparison algorithm and analyzes the results.
[0911] Step 12:
[0912] The device receives feedback information and presents it to the user. The input data is feedback information, and the output is a display to the user. Specifically, the device uses its notification function to display an alert to the user.
[0913] (Application Example 2)
[0914] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[0915] Improving work efficiency using robots remains a crucial challenge in current industrial processes. In particular, insufficient optimization of robot movements can impact product quality and production efficiency. Furthermore, it can put stress on the moving parts of a robot during operation, increasing the risk of malfunction. Therefore, there is a need for technologies that optimize robot movements in real time, ensuring efficient and safe operation.
[0916] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.
[0917] In this invention, the server includes means for inputting motion data into a machine learning model to generate optimal motion patterns and areas for improvement; means for evaluating load and stress during operation and notifying the user of areas for improvement based on the evaluation; and means for generating specific motion performance indicators based on analyzed video footage of the user's movements and providing these indicators to the user. This makes it possible to improve the efficiency and safety of the robot's movements.
[0918] "User" refers to the entity that operates the system and uses its functions.
[0919] "Physical information" refers to the numerical representation of a user's structural and physical information, and the data used as the basis for skeletal analysis.
[0920] "Movement form" refers to the ideal shape and posture of body movement when performing a particular action or task.
[0921] A "machine learning model" is a program that uses algorithms to learn patterns from data and then applies that knowledge.
[0922] "Performance metrics" are numerical indicators that represent criteria for evaluating the efficiency, accuracy, and safety of a user's actions.
[0923] "Load" refers to the force or pressure applied to an object during operation, and is a factor used to evaluate the resulting effects.
[0924] "Stress" refers to the tension or burden that arises during movement, and is a factor that affects the efficiency and safety of that movement.
[0925] This invention is a system for optimizing the operation of factory robots to achieve efficient and safe work. Embodiments for carrying out the invention are described below.
[0926] The server receives motion data acquired from cameras and sensors mounted on factory robots. This data is transmitted as raw video and motion logs. The server analyzes this data using skeletal analysis libraries such as OpenPose, quantifying the robot's joint movements and proportions. These analysis results are then input into a machine learning model and processed as indicators for optimizing the robot's movements.
[0927] The machine learning model utilizes frameworks such as TensorFlow, and the server uses this to generate optimal operating patterns and areas for improvement. The generated optimization algorithm is fed back to the robot in real time, evaluating the load and stress during operation, and instructing the robot to make necessary improvements based on that evaluation.
[0928] The terminal receives instructions from the server and transmits motion commands to the factory robot. This allows the robot to perform its work safely and efficiently. For example, if a robot is assembling parts and it detects that there is strain on the joint movement, an improved motion pattern is immediately instructed, maintaining smooth operation.
[0929] For example, when a robot is assembling large parts, the server identifies joints that are experiencing excessive load during operation and instructs them to perform alternative movements to distribute the load. Through this process, the robot's movements are ensured to be efficient, preventing wear and tear and malfunctions of the machine.
[0930] Examples of prompts for a generative AI model:
[0931] "Analyze the robot's motion data and generate feedback to improve joint positioning and movement efficiency."
[0932] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0933] Step 1:
[0934] The server acquires video data in real time from cameras mounted on factory robots. The input is raw video data, which is used as foundational data for analyzing the robot's joint movements and proportions.
[0935] Step 2:
[0936] The server analyzes the acquired video data using a skeletal analysis library such as OpenPose. The input is video data, and the output is digitized joint position data. The specific action performed in this step is to extract the joint positions from the video and save them to the server as numerical information.
[0937] Step 3:
[0938] The server inputs digitized joint position data into a machine learning model such as TensorFlow. The input is joint position data, and the output is the optimal movement pattern. Specifically, the machine learning model analyzes the data and determines the efficiency and abnormalities of the movement.
[0939] Step 4:
[0940] The server generates improvement commands for the factory robot based on the outputted optimal motion pattern. The input is the optimization algorithm, and the output is specific motion correction commands for the robot. The action performed in this step is to determine specific adjustments to improve the efficiency of the motion and to communicate them to the robot.
[0941] Step 5:
[0942] The terminal transmits improvement commands received from the server to the factory robot. The input is the improvement command, and the output is the robot's adjusted behavior. In this step, the terminal helps the robot correct its behavior in real time using the appropriate protocol.
[0943] The specific processing unit 290 transmits the result of the specific processing to the robot 414. In the robot 414, the control unit 46A causes the speaker 240 and the controlled object 443 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[0944] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0945] In the above embodiment, an example was given in which the specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the robot 414.
[0946] Furthermore, the emotion identification model 59, acting as an emotion engine, may determine the user's emotion according to a specific mapping. Specifically, the emotion identification model 59 may determine the user's emotion according to a specific mapping, which is an emotion map (see Figure 9). Similarly, the emotion identification model 59 may also determine the robot's emotion, and the identification processing unit 290 may perform identification processing using the robot's emotion.
[0947] Figure 9 shows an emotion map 400 in which multiple emotions are mapped. In the emotion map 400, emotions are arranged in concentric circles radiating from the center. The closer to the center of the concentric circles, the more primitive the emotions are located. Further out of the concentric circles, emotions representing states and actions arising from mental states are located. Emotion is a concept that includes feelings and mental states. On the left side of the concentric circles, emotions that are generally generated from reactions occurring in the brain are located. On the right side of the concentric circles, emotions that are generally induced by situational judgment are located. Above and below the concentric circles, emotions that are generally generated from reactions occurring in the brain and induced by situational judgment are located. In addition, the emotion of "pleasure" is located on the upper side of the concentric circles, and the emotion of "displeasure" is located on the lower side. Thus, in the emotion map 400, multiple emotions are mapped based on the structure in which emotions arise, and emotions that are likely to occur simultaneously are mapped close together.
[0948] These emotions are distributed at the 3 o'clock position on the Emotion Map 400, and usually fluctuate between feelings of security and anxiety. In the right half of the Emotion Map 400, situational awareness takes precedence over internal feelings, resulting in a calm impression.
[0949] The inside of the Emotion Map 400 represents inner thoughts, while the outside represents actions. Therefore, the further you go from the outside of the Emotion Map 400, the more visible (expressed in actions) your emotions become.
[0950] Here, human emotions are based on various balances, such as posture and blood sugar levels. When these balances deviate from the ideal, it results in discomfort, and when they approach the ideal, it results in pleasure. Similarly, in robots, cars, motorcycles, etc., emotions can be created based on various balances, such as posture and battery level. When these balances deviate from the ideal, it results in discomfort, and when they approach the ideal, it results in pleasure. The emotion map can be generated, for example, based on Dr. Mitsuyoshi's emotion map (Research on a system for analyzing brain physiological signals of speech emotion recognition and emotion, Tokushima University, doctoral dissertation: https: / / ci.nii.ac.jp / naid / 500000375379). The left half of the emotion map contains emotions belonging to a region called "response," where sensation is dominant. The right half of the emotion map contains emotions belonging to a region called "situation," where situational awareness is dominant.
[0951] The emotion map defines two emotions that promote learning. One is the emotion around the middle of the negative "repentance" and "reflection" on the situation side. In other words, it is when the robot experiences negative emotions such as "I never want to feel this way again" or "I don't want to be scolded again." The other is the emotion around the positive "desire" on the reaction side. In other words, it is when the robot has positive feelings such as "I want more" or "I want to know more."
[0952] The emotion identification model 59 inputs user input into a pre-trained neural network, obtains emotion values representing each emotion shown in the emotion map 400, and determines the user's emotion. This neural network is pre-trained based on multiple training data sets, which are combinations of user input and emotion values representing each emotion shown in the emotion map 400. Furthermore, this neural network is trained so that emotions located close together have similar values, as shown in the emotion map 900 in Figure 10. Figure 10 shows an example where multiple emotions such as "reassured," "calm," and "confident" have similar emotion values.
[0953] The above description primarily focuses on the functions of the data processing device 12 in relation to this disclosure. However, the system related to this disclosure is not necessarily implemented on a server. The system related to this disclosure may be implemented as a general information processing system. This disclosure may be implemented, for example, as a software program that runs on a personal computer or as an application that runs on a smartphone. The method related to this disclosure may be provided to users in SaaS (Software as a Service) format.
[0954] In the above embodiment, an example was given in which a specific process is performed by a single computer 22. However, the technology of this disclosure is not limited thereto, and a distributed processing of the specific process may be performed by multiple computers, including computer 22. For example, a data generation model 58 may be provided in an external device of the data processing device 12, and the external device may generate data according to the input data.
[0955] In the above embodiment, an example was given in which the specific processing program 56 is stored in the storage 32, but the technology of this disclosure is not limited thereto. For example, the specific processing program 56 may be stored in a portable, computer-readable, non-temporary storage medium such as a USB (Universal Serial Bus) memory. The specific processing program 56 stored in the non-temporary storage medium is installed in the computer 22 of the data processing device 12. The processor 28 executes specific processing according to the specific processing program 56.
[0956] Alternatively, the specific processing program 56 may be stored in a storage device such as a server connected to the data processing device 12 via the network 54, and the specific processing program 56 may be downloaded and installed on the computer 22 in response to a request from the data processing device 12.
[0957] Furthermore, it is not necessary to store the entirety of the specific processing program 56 in a storage device such as a server connected to the data processing device 12 via the network 54, or to store the entirety of the specific processing program 56 in the storage 32; it is acceptable to store only a portion of the specific processing program 56.
[0958] The following types of processors can be used as hardware resources to perform specific processing. Examples of processors include a CPU, a general-purpose processor that functions as a hardware resource to perform specific processing by executing software, i.e., a program. Other examples of processors include dedicated electrical circuits, such as FPGAs (Field-Programmable Gate Arrays), PLDs (Programmable Logic Devices), or ASICs (Application Specific Integrated Circuits), which have circuit configurations specifically designed to perform specific processing. All of these processors have built-in or connected memory, and all of them perform specific processing by using memory.
[0959] The hardware resource that performs a specific process may consist of one of these various processors, or it may consist of a combination of two or more processors of the same or different types (for example, a combination of multiple FPGAs, or a combination of a CPU and an FPGA). Alternatively, the hardware resource that performs a specific process may consist of a single processor.
[0960] Examples of configurations using a single processor include, firstly, a configuration in which one or more CPUs and software are combined to form a single processor, and this processor functions as a hardware resource that performs a specific process. Secondly, there is a configuration using a processor that realizes the functions of the entire system, including multiple hardware resources that perform a specific process, on a single IC chip, as exemplified by SoCs (System-on-a-chip). In this way, a specific process is realized using one or more of the above types of processors as hardware resources.
[0961] Furthermore, the hardware structure of these various processors can more specifically utilize electrical circuits that combine circuit elements such as semiconductor devices. Also, the specific processing described above is merely an example. Therefore, it goes without saying that unnecessary steps can be deleted, new steps added, or the processing order rearranged, as long as it does not deviate from the main purpose.
[0962] The descriptions and illustrations presented above are detailed explanations of the technical aspects of this disclosure and are merely examples of the technical aspects. For example, the above descriptions of the structure, function, operation, and effect are examples of the structure, function, operation, and effect of the technical aspects of this disclosure. Therefore, it goes without saying that you may delete unnecessary parts, add new elements, or replace elements in the descriptions and illustrations presented above, as long as you do not deviate from the essence of the technical aspects of this disclosure. Furthermore, in order to avoid confusion and facilitate understanding of the technical aspects of this disclosure, explanations of common technical knowledge and the like that do not require special explanation to enable the implementation of the technical aspects of this disclosure have been omitted from the descriptions and illustrations presented above.
[0963] All documents, patent applications, and technical standards described herein are incorporated by reference to the same extent as if each individual document, patent application, and technical standard were specifically and individually noted to be incorporated by reference.
[0964] The following is further disclosed regarding the embodiments described above.
[0965] (Claim 1)
[0966] A means for receiving the user's physical information, analyzing the skeleton based on said physical information, and classifying said skeleton,
[0967] A means for generating and displaying videos of appropriate exercise forms based on the exercise equipment selected by the user and the body parts they wish to train,
[0968] A means of analyzing video footage of users' movements, comparing it to appropriate exercise form for evaluation, and suggesting areas for improvement,
[0969] A system that includes this.
[0970] (Claim 2)
[0971] The system according to claim 1, wherein the user's physical information includes image data and numerical data obtained based on said image data.
[0972] (Claim 3)
[0973] The system according to claim 1, further comprising means for generating specific exercise performance metrics based on analyzed video footage of the user's exercise and providing the metrics to the user.
[0974] "Example 1"
[0975] (Claim 1)
[0976] A means for receiving user physical information from an input device, analyzing the skeleton based on said physical information, and generating characteristic data of said skeleton,
[0977] A means for classifying skeletons using a classification device with the characteristic data,
[0978] A means for generating video of the optimal exercise form using a generation device based on the equipment selected by the user and the body part they wish to train, and presenting it on a display device,
[0979] A means of analyzing video footage of the user's movements captured by a recording device, comparing it to appropriate exercise form for evaluation, and suggesting areas for improvement,
[0980] A system that includes this.
[0981] (Claim 2)
[0982] The system according to claim 1, wherein the user's physical information includes image data and analytical numerical data obtained based on the image data.
[0983] (Claim 3)
[0984] The system according to claim 1, further comprising means for generating specific exercise performance indicators based on analyzed video footage of the user's exercise and providing the indicators to the user.
[0985] "Application Example 1"
[0986] (Claim 1)
[0987] A means for receiving user movement information, analyzing joints based on said movement information, and classifying said joints,
[0988] A means for generating and presenting the optimal operation pattern based on the work device selected by the user and the work content to be performed,
[0989] A means of analyzing data recorded by users' actions, comparing it with the optimal action pattern for evaluation, and suggesting areas for improvement,
[0990] A system that includes this.
[0991] (Claim 2)
[0992] The system according to claim 1, wherein the user's operation information includes data from sensors and analysis results obtained based on said data.
[0993] (Claim 3)
[0994] The system according to claim 1, further comprising means for generating specific work performance metrics based on analyzed user behavior data and providing said metrics to the user.
[0995] "Example 2 of combining an emotion engine"
[0996] (Claim 1)
[0997] A means for receiving a user's physical information, analyzing the structure based on said physical information, and classifying said structure,
[0998] A means for generating and displaying appropriate exercise demonstration videos based on the exercise equipment selected by the user and the body part they wish to train,
[0999] A means of analyzing video recordings of users' movements, comparing them to appropriate exercise models for evaluation, and suggesting areas for improvement,
[1000] A means of analyzing the user's emotional state and providing adjustment feedback based on evaluations of motivation and stress,
[1001] A system that includes this.
[1002] (Claim 2)
[1003] The system according to claim 1, wherein the user's physical information includes image information and numerical information obtained based on the image information.
[1004] (Claim 3)
[1005] The system according to claim 1, further comprising means for generating specific motor performance indicators based on analyzed video footage and emotional data of the user, and providing the indicators to the user.
[1006] "Application example 2 when combining with an emotional engine"
[1007] (Claim 1)
[1008] A means for receiving the user's physical information, analyzing the skeleton based on said physical information, and classifying said skeleton,
[1009] A means for generating and displaying an appropriate motion form video based on the operating device and target body part selected by the user,
[1010] A means of analyzing video footage of user movements, comparing it to appropriate movement forms for evaluation, and suggesting areas for improvement,
[1011] A means of inputting motion data into a machine learning model to generate the optimal motion pattern and areas for improvement,
[1012] A means of evaluating the load and stress during operation and notifying areas for improvement based on that evaluation,
[1013] A system that includes this.
[1014] (Claim 2)
[1015] The system according to claim 1, wherein the user's physical information includes video data and numerical data obtained based on said video data.
[1016] (Claim 3)
[1017] The system according to claim 1, further comprising means for generating specific performance metrics based on analyzed video footage of the user's movements and providing the metrics to the user. [Explanation of Symbols]
[1018] 10, 210, 310, 410 Data Processing Systems 12 Data Processing Devices 14 Smart Devices 214 Smart Glasses 314 Headset-type terminal 414 Robots< / url:> < / url:> < / url:> < / url:>
Claims
1. A means for receiving the user's physical information, analyzing the skeleton based on said physical information, and classifying said skeleton, A means for generating and displaying videos of appropriate exercise forms based on the exercise equipment selected by the user and the body parts they wish to train, A means of analyzing video footage of users' movements, comparing it to appropriate exercise form for evaluation, and suggesting areas for improvement, A system that includes this.
2. The system according to claim 1, wherein the user's physical information includes image data and numerical data obtained based on the image data.
3. The system according to claim 1, further comprising means for generating specific exercise performance metrics based on analyzed video footage of the user's exercise and providing the metrics to the user.
Citation Information
Patent Citations
Persona chatbot control method and system
JP2022180282A