Virtual golf support device and method, computer program

JP2026143292APending Publication Date: 2026-09-08チンデジェ
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2025034994
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2025-02-27
Filing Date
2025-03-05
Publication Date
2026-09-08

AI Technical Summary

Benefits of technology

【0019】 本発明によれば、個人が所持した携帯電話のような携帯用機器を使用しながら個人の自宅のような小型空間でゴルフボールの打撃により形成される軌跡を容易に把握することによって、ゴルフ練習をすると同時に、多数のユーザーが仮想ゴルフゲームを楽しむことができる。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026143292000001_ABST
    Figure 2026143292000001_ABST
Patent Text Reader

Abstract

This device provides a virtual golf support system that allows multiple users to enjoy virtual golf games while simultaneously practicing golf. [Solution] The virtual golf support device according to one aspect includes: a golf environment simulation device implemented so that it is physically possible to strike a golf ball and move the golf ball as a result of the strike; an image acquisition module that acquires images of the golf ball; and a processor that, based on the images of the golf ball acquired by the image acquisition module when the golf ball is struck on the golf environment simulation device, recognizes the golf ball through a deep learning model, determines the initial velocity and direction of the golf ball, determines the trajectory of the golf ball based on the striking position where the golf ball is struck in the virtual playing environment for the user's virtual golf, the determined initial velocity and direction, and displays the determined trajectory; the processor displays a virtual golf UI including a field terrain data UI and an environment setting UI.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a virtual golf assistance apparatus and method, and a computer program. [Background Art]

[0002] Golf is a sport in which a player hits a golf ball from the tee box on a course and ultimately putts the golf ball into the hole cup on the green. To get the golf ball into a given hole in the minimum number of strokes, a golf player studies the terrain of the course and takes a shot while imagining in their mind the trajectory along which the golf ball will fly and roll according to the speed and direction of the golf ball each time they hit it. Since most people imagine the trajectory based on their individual experience, the actual movement trajectory and final landing position of the golf ball frequently differ considerably from the trajectory and position predicted by the golfer.

[0003] Conventionally, as an apparatus that simulates and provides the trajectory of a golf ball, simulation apparatuses applied to indoor screen golf have been widely used. Such an apparatus operates by a method in which when a golfer hits a golf ball toward a screen, the apparatus senses the speed, direction, and the like, and displays the trajectory of the golf ball on the screen. However, the golf simulation apparatus as described above is an expensive device that is widely used for commercial purposes, requires large-scale facilities, and has a limitation that an individual cannot use it on an actual field.

[0004] Accordingly, there is a need for an economical and efficient method and system that allows an individual to easily grasp the trajectory of a golf ball in a small space such as an individual's home while using a portable device such as a mobile phone owned by the individual. [Prior Art Literature] [Patent Literature]

[0005] [Patent Literature 1] Japanese Patent Laid-Open No.2012-165810 [Summary of Invention] [Problems that the invention aims to solve]

[0006] An objective according to one aspect of the present invention is to provide a virtual golf support device, method, and computer program that allows a large number of users to enjoy a virtual golf game while simultaneously practicing golf by easily understanding the trajectory formed by hitting a golf ball in a small space such as an individual's home, using a portable device such as a mobile phone owned by the individual. [Means for solving the problem]

[0007] A virtual golf support device according to one aspect of the present invention includes: a golf environment simulation device implemented to enable physical striking of a golf ball and movement of the golf ball as a result of the striking; an image acquisition module for acquiring images of the golf ball; and a processor that recognizes a golf ball based on images of the golf ball acquired by the image acquisition module when the golf ball is struck on the golf environment simulation device, determines the initial velocity and direction of the golf ball, determines the trajectory of the golf ball based on the striking position where the golf ball is struck in a virtual playing environment for the user's virtual golf, and displays the determined trajectory; wherein the processor displays a virtual golf UI including a field terrain data UI that provides field terrain data included in the virtual playing environment, and an environment setting UI that provides practice distance, green size, green speed, and slope of the field terrain data for the user to practice golf.

[0008] In the present invention, the field terrain data UI includes concentric circles having a set distance between them, centered on the target position of the golf ball, and the set distance is configured to be variable according to the user's environment settings through the environment setting UI.

[0009] In the present invention, the processor is characterized in that it varies the set distance in accordance with the practice distance set via the environment setting UI, and sets the green size in conjunction with the practice distance set via the environment setting UI.

[0010] In the present invention, the processor is characterized by changing the color of the field terrain data in accordance with the slope set via the environment setting UI.

[0011] In the present invention, the virtual golf UI further includes a golf ball positioning UI in which the image acquisition module displays an image of the tee box points of a mat included in the golf environment simulation device, and the processor displays a message instructing the user to position the golf ball on the mat if the golf ball is not recognized from the image.

[0012] In the present invention, the virtual golf UI further includes a hint ON / OFF toggle UI for toggling whether or not to display the movement trajectory of the golf ball from the hitting position to the target position of the golf ball, wherein the movement trajectory of the golf ball from the hitting position to the target position of the golf ball is correct data for the user to obtain a hint for hitting the golf ball before hitting it, and the processor calculates and displays the movement trajectory of the golf ball from the hitting position to the target position of the golf ball through a predefined movement trajectory model in response to user input to the ON / OFF toggle UI.

[0013] In the present invention, the processor is characterized by performing an environment setting operation to set up the virtual play environment, a position setting operation to set up the hitting position where the golf ball is struck and the target position to which the golf ball is intended to reach in the set up virtual play environment, a speed and direction determination operation to determine the initial velocity and direction of the golf ball based on the golf ball image acquired by the image acquisition module when the golf ball is struck on the golf environment simulation device, a trajectory determination operation to determine the movement trajectory of the golf ball by applying the hitting position, the initial velocity and direction to a predefined movement trajectory model, and a display operation to overlay the determined movement trajectory onto the virtual play environment.

[0014] In the present invention, the processor further performs a position reset operation to reset the final point of the movement trajectory determined by the trajectory determination operation to a new hit position in the virtual play environment, provided that there is no further operation by the user, and the processor then performs the speed direction determination operation, the trajectory determination operation, and the display operation again after performing the position reset operation.

[0015] In the present invention, if the position reset operation, the velocity direction determination operation, the trajectory determination operation, and the display operation performed after the position reset operation are defined as a single operation cycle, the processor is characterized in that, unless otherwise operated by the user, it repeatedly performs the operation cycle until the golf ball reaches the target position.

[0016] In the present invention, the processor supports a game mode for multiple users to play a virtual golf game, characterized in that the game mode is a mode in which multiple users located in remote locations play a virtual golf game based on the golf environment simulation device and the video acquisition module provided at each user's location.

[0017] In the present invention, when the first and second users participate in the game mode, the processor performs the speed direction determination operation, the trajectory determination operation and the display operation when the first user hits the golf ball with the virtual golf UI provided to the first user, and displays the golf ball movement trajectory corresponding to the first user's golf ball hit result via an application on the user terminal held by the first user. When the second user hits the golf ball with the virtual golf UI provided to the second user, the processor performs the speed direction determination operation, the trajectory determination operation and the display operation and displays the golf ball movement trajectory corresponding to the second user's golf ball hit result via an application on the user terminal held by the second user, wherein the golf ball hit results of the first and second users are shared between the first and second users.

[0018] The present invention presents a method for assisting a user in virtual golf, based on a golf environment simulation device that runs on a computing device and is implemented to allow physical impact on a golf ball and the movement of the golf ball as a result of the impact, the method comprising the steps of: setting up a virtual playing environment for virtual golf; setting the impact position where the golf ball is struck and the target position to which the golf ball is intended to reach in the set virtual playing environment; recognizing the golf ball through a pre-trained deep learning model based on an image of the golf ball acquired at the moment the golf ball is struck on the golf environment simulation device; analyzing the afterimage of the image of the golf ball to determine the initial velocity and direction of the golf ball; applying the impact position, the initial velocity and direction to a pre-defined movement trajectory model to determine the movement trajectory of the golf ball; and displaying the determined movement trajectory, wherein in each step, a virtual golf UI is displayed, which includes a field terrain data UI that provides field terrain data included in the virtual playing environment and an environment setting UI that provides practice distance, green size, green speed, and slope of the field terrain data for the user to practice golf. [Effects of the Invention]

[0019] According to the present invention, by using a portable device such as a personal mobile phone, it is possible to easily grasp the trajectory formed by hitting a golf ball in a small space such as a personal home, allowing individuals to practice golf while simultaneously enjoying a virtual golf game with a large number of users. [Brief explanation of the drawing]

[0020] [Figure 1] Figure 1 is an illustrative diagram showing the virtual golf support device of this embodiment. [Figure 2] Figure 2 is an illustrative diagram showing the virtual golf support device of this embodiment. [Figure 3] Figure 3 is an illustrative diagram showing the UI displayed via a user terminal in the virtual golf support device of this embodiment. [Figure 4] Figure 4 is an illustrative diagram showing the UI displayed via a user terminal in the virtual golf support device of this embodiment. [Figure 5] Figure 5 is an illustrative diagram showing the UI displayed via a user terminal in the virtual golf support device of this embodiment. [Figure 6] Figure 6 is an illustrative diagram showing the UI displayed via a user terminal in the virtual golf support device of this embodiment. [Figure 7] Figure 7 is a flowchart illustrating the virtual golf support method of this embodiment. [Figure 8] Figure 8 is a flowchart and illustrative diagram illustrating the process of determining the trajectory of a golf ball in the virtual golf support device of this embodiment. [Figure 9] Figure 9 is a flowchart and illustrative diagram illustrating the process of determining the trajectory of a golf ball in the virtual golf support device of this embodiment. [Figure 10] Figure 10 is a flowchart and illustrative diagram illustrating the process of determining the trajectory of a golf ball in the virtual golf support device of this embodiment. [Modes for carrying out the invention]

[0021] Embodiments of the virtual golf support device and method, and computer program according to the present invention will be described below with reference to the attached drawings. In this process, the thickness of lines and the size of components shown in the drawings may be exaggerated for clarity and convenience of explanation. Furthermore, the terms described later are defined in consideration of the functions in the present invention, and these may change depending on the intent or convention of the user or operator. Accordingly, such terms should be defined based on the content throughout this specification.

[0022] Figures 1 and 2 are illustrative diagrams showing the virtual golf support device of this embodiment, and Figures 3 and 4 are illustrative diagrams showing the UI displayed via a user terminal in the virtual golf support device of this embodiment.

[0023] First, referring to Figure 1, the virtual golf support device according to this embodiment may include a processor 100, memory 200, positioning unit 300, communication unit 400, and display unit 500. Each of the above components 100 to 500 may be implemented on a computing device owned by the user, and the above computing device may be implemented on a user terminal UT owned by the user (a portable device such as a smartphone or tablet PC, or a dedicated terminal separately provided to provide the virtual golf support service of this embodiment). The computing device may have a dedicated application (hereinafter referred to as the application) installed for providing the virtual golf support service of this embodiment, and in this embodiment, the positioning unit 300, communication unit 400, and display unit 500 may be installed on the user terminal UT owned by the user, and the processor 100 and memory 200 may be implemented in the form of a service server to support the functions of the dedicated application.

[0024] In this embodiment, the processor 100 is the entity providing the virtual golf support service and may be implemented as a central processing unit (CPU) or a system on a chip (SoC). It can drive the operational system or applications, control multiple hardware or software components connected to the processor 100, and perform various data processing and calculations. The processor 100 may be configured to execute at least one instruction stored in the memory 200 and to store the execution result data in the memory 200.

[0025] The positioning unit 300 may correspond to a GPS (Global Positioning System) positioning module mounted on the user terminal UT, and the communication unit 400 may function as a wireless communication module (e.g., an LTE or WiFi communication module) mounted on the user terminal UT, and can support wireless communication between the user terminal UT and an external system (e.g., the video acquisition module 20 described later). The display unit 500 may be embodied in the display panel of the user terminal UT, for example, a touchscreen panel, and the golf ball's movement trajectory determined by the processor 100 may be displayed via the display unit 500 and provided to the user.

[0026] Memory 200 may store at least one instruction that is executed via the processor 100 and provides a virtual golf assistance service based on the user's interface to the computing device of this embodiment. Memory 200 may be embodied in a volatile storage medium and / or a non-volatile storage medium, for example, in read-only memory (ROM) and / or random access memory (RAM).

[0027] At least one instruction stored in memory 200 and executed by processor 100 may include the following instruction: i) A command to set up a virtual playing environment for virtual golf. ii) A command to set the hitting position where the golf ball will be struck and the target position that the golf ball will reach in the virtual playing environment. iii) A command to determine the initial velocity and direction of a golf ball based on the golf ball image acquired at the time the golf ball is struck on the golf environment simulation device 10. iv) An instruction to determine the trajectory of the golf ball by applying the impact position, initial velocity, and direction to a predefined trajectory model. v) An instruction to display the determined movement trajectory.

[0028] Based on the above, the operation of the virtual golf support device of this embodiment will be specifically described below with reference to Figure 2.

[0029] 1. Virtual Golf Support System Referring to Figure 2, the virtual golf support device of this embodiment may include a golf environment simulation device 10, an image acquisition module 20, and the aforementioned processor 100.

[0030] The golf environment simulation device 10 may be implemented in such a way that it is physically possible to strike a golf ball and for the golf ball to move as a result of that strike. Specifically, this embodiment may focus on the short game and putting game of golf, and the golf environment simulation device 10 may be physically installed in the space where the user is located, and may be sized to support the user's short game and putting game. As shown in Figure 2, the golf environment simulation device 10 may be configured to include a mat M on which the golf ball moves and a net N that restricts the movement of the struck golf ball (i.e., prevents the golf ball from flying too far). The left and right ends of the mat M may be provided with side walls (not shown) to prevent the golf ball from falling off the mat. The mat M may also display a tee box point T, a center line ML, and target points MP located at predetermined points within the center line for left and right braking, and the net N may also display auxiliary lines NL indicating the flight altitude of the golf ball. As mentioned above, the golf environment simulation device 10 may be sized to support the user's short game and putting game. For example, the mat M may have a length of 2m and a width of 70cm, the net N may have a width of 1m and a height of 1m, and the side walls may have a height of 2mm.

[0031] The image acquisition module 20 acquires images of the golf ball and transmits them to the processor 100 (described later) via wired or wireless communication. It may be installed in the space where the user is located, within a range where images of the golf ball can be acquired. The image acquisition module 20 may be configured to include a stereo camera to acquire the three-dimensional position coordinates (world coordinates) of the golf ball. The three-dimensional position coordinates of the golf ball acquired by the image acquisition module 20 can be used by the processor 100 (described later) to calculate the initial velocity of the golf ball. In addition, the two cameras included in the stereo camera may be pre-calibrated using the tee box location or target point on the mat as feature points.

[0032] To enable the capture of a golf ball at a predetermined height, the video acquisition module 20 may be mounted on a stand S, or a structure may be adopted in which the user terminal UT is also held together with the stand S. The trajectory of the golf ball determined by the processor 100 (described later), and the user's shot results may be displayed to the user via the display unit 500 of the user terminal UT held on the stand S, or the shot results may be provided to the user audibly via a speaker provided on the user terminal UT. The screen displayed on the user terminal UT may also be displayed via a television or personal computer installed in the space where the user is located, through a mirroring function.

[0033] As described above, the processor 100 is the entity that provides the virtual golf support service and may be implemented by being installed on a user terminal UT or on a service server. If the processor 100 is included in the service server, in this embodiment, the processor 100 of the service server may be implemented in a communication manner that supports the functions of the application installed on the user terminal UT.

[0034] Figure 3 shows an example of a UI (Default screen) displayed by the processor (100) through the display unit (500) of the user terminal (UT). The UIs in Figures 3 to 6 can be provided to the user through an application installed on the user terminal. When the UI shown in Figure 3 is defined as the virtual golf UI (UI_MAIN), the virtual golf UI (UI_MAIN) can be configured to include a shot history display UI (UI1), a field terrain data display UI (UI2), a shot candidate position display UI (UI3), a golf ball positioning UI (UI4), an environment setting UI (UI5), a hint ON / OFF toggle UI (UI6), a hint result display UI (UI7), a shot refresh UI (UI8), and a club selection UI (UI9). On the other hand, it should be made clear that the figures shown in Figures 3 to 6 are examples to aid in understanding this embodiment.

[0035] The batting history display UI (UI1) can function as a UI that displays the user's batting history up to the present. As shown in Figures 3 to 5, the user's batting history displayed through the batting history display UI (UI1) may include the golf club used, number of hits (shots), average distance, average ball speed, average approach rate to the pin, and score.

[0036] The field terrain data display UI (UI2) can function as a UI that displays field terrain data, which serves as the background for the virtual golf UI (UI_MAIN). The field terrain data can correspond to 3D terrain data (3D Terrain Map) having a 3-axis coordinate system, where altitude acquired by LiDAR positioning is reflected in a 2D still image. The terrain data can be pre-stored in memory (200) after the field terrain (position and altitude) is positioned via a LiDAR sensor mounted on an aircraft such as a drone, so that the field terrain data can correspond to 3D positioning data having a 3-axis coordinate system. As shown in Figure 3, the field terrain data can include concentric circles with a set distance between them, centered on the target position that the golf ball is trying to reach (e.g., the hole cup on the green) (Figure 3 shows an example where the set distance, which is the distance between the concentric circles, is set to 10m). The set distance, which is the distance between multiple concentric circles, can also be configured to be variable according to the user's environment settings through the environment setting UI (UI5) described later.

[0037] The batting position display UI (UI3) can function as a UI that displays a predefined number of batting positions for the user to set a batting position. Figure 3 shows an example where eight batting positions are displayed. Of the eight batting positions, the batting position selected by the user can be set as the batting position.

[0038] The golf ball positioning UI (UI4) can function as a UI that displays an image taken by the image acquisition module (20) of the tee box point (T) on the mat (M). The processor (100) can recognize the golf ball by applying a known image processing algorithm to the image taken by the image acquisition module (20) of the tee box point (T) on the mat (M), or by applying the pixel information of the stereo camera image to a deep learning model as a pre-trained artificial intelligence model. If the golf ball is not recognized from the image taken by the image acquisition module (20) of the tee box point (T) on the mat (M), the processor (100) can also display a message prompting the user to position the ball on the mat (M), as shown in Figure 3.

[0039] The Environment Settings UI (UI5) functions as a UI for setting practice distance, green size, green speed, and slope.

[0040] The Environment Settings UI (UI5) can provide a UI for the user to set the practice distance for practicing golf, that is, the distance from the hitting position to the target position that the golf ball is trying to reach. The Environment Settings UI (UI5) can provide a UI for setting the practice distance within a range from a minimum of 1m to a maximum of 50m, with practice distances up to 20m adjustable in 1m increments and practice distances of 20m or more adjustable in 5m increments. In addition, in response to the setting of the practice distance through the Environment Settings UI (UI5), the processor (100) can vary the zoom in or zoom out of the virtual golf UI (UI_MAIN) to improve the visibility of the field terrain data, and can also vary the set distance, which is the interval between concentric circles in the field terrain data.

[0041] Furthermore, the environment settings UI (UI5) can provide a UI for setting the green size. If the user does not make any separate settings, the green size can be automatically set in conjunction with the set practice distance. In other words, if the user does not make any separate settings for the green size, the processor (100) can set the green size in conjunction with the practice distance set through the environment settings UI (UI5). In this case, the processor (100) can set the green size to 60% of the practice distance set through the environment settings UI (UI5). For example, if the practice distances are set to 50m, 40m, 30m, 25m, 20m, 15m, 10m, and 5m, the green size can be set to 30m, 24m, 18m, 15m, 12m, 9m, 6m, and 3m, which are 60% of each practice distance. There is also an example where, if the practice distance is set to the minimum distance of 1m, the green size is set to the same 1m as the practice distance. In the example above, the ground from the edge of the green to the set practice distance can be set to the fairway. For example, if the practice distance and green size are set to 50m and 30m respectively, the processor (100) can set the ground from the 30m point, which is the edge of the green size, to the 50m point of the practice distance as the fairway.

[0042] Furthermore, the Environment Settings UI (UI5) can provide a UI for setting the green speed. This allows users to practice golf while varying the green speed they want to practice. The Environment Settings UI (UI5) can also provide a UI for independently setting the speed of the "green" and the "fairway".

[0043] Furthermore, the environment settings UI (UI5) can provide a UI for setting the slope of the ground between the striking position and the target position. The slope can be expressed in units of [°], [%], or [m] (altitude difference). As shown in Figures 3 to 5, the processor (100) can change the color of the field terrain data in accordance with the slope set through the environment settings UI (UI5), and can display the field terrain data as a temperature map corresponding to the slope, for example. In the examples in Figures 3 to 5, for striking candidate positions 4, 5, and 6, the slope to the target position is large, so the color of these striking candidate positions can be expressed in red, while for striking candidate positions 8, 1, and 2, the slope to the target position is small, so the color of these striking candidate positions can be expressed in blue. The slope that can be set by the user is limited to 30°.

[0044] The Hint ON / OFF toggle UI (UI6) can function as a UI to toggle the display of the golf ball's movement trajectory from the hitting position to the target position (this is not the actual movement trajectory of the golf ball as hit by the user, but rather correct data that provides hints for the user before hitting the golf ball). In other words, the display of the golf ball's movement trajectory from the hitting position to the target position is toggled according to the user's toggle action on the Hint ON / OFF toggle UI (UI6). The golf ball's movement trajectory from the hitting position to the target position can be calculated through the movement trajectory model described later. Figures 4 and 5 show examples where the golf ball's movement trajectory from the hitting position to the target position is displayed. The golf ball's movement trajectory displayed in response to the toggle action on the Hint ON / OFF toggle UI (UI6) can also be displayed in an animation format that shows the changes in the speed at which the golf ball flies or rolls, according to the aforementioned green speed. On the other hand, when the trajectory of the golf ball from the hitting position to the target position is displayed in response to the user's toggle action on the Hint ON / OFF UI (UI6), the initial velocity of the golf ball applied to calculate the trajectory (i.e., the initial velocity of the golf ball required to reach the target position from the currently set hitting position) may also be displayed along with the trajectory of the golf ball.

[0045] The hint result display UI (UI7) can function as a UI that displays the physical parameters of the golf ball required for the golf ball to reach the target position from the hitting position. As shown in Figures 3 to 5, the physical parameters of the golf ball may include distance, carry, run, spin, golf ball speed, direction angle, and launch angle.

[0046] The shot refresh UI (UI8) can function as a UI that allows the user to select "Continue Shot" and "Repeat Shot". If the user's shot result is neither a hole-in nor a concede (i.e., the golf ball does not reach the target position) and the user selects 'Continue', the processor (100) can reset the final point of the golf ball's trajectory to the new shot position and then perform additional actions to allow the virtual golf to continue. If the user selects 'Repeat Shot', the virtual golf can resume from the initial shot position. A more detailed explanation of this will follow later.

[0047] The club selection UI (UI9) can function as a UI for setting the club to be used to hit the golf ball (e.g., PT, LW, SW, AW, PW, 9I, 8I, 7I, etc.). The processor (100) considers the hit to be a putt if a putter is selected (in this case, only the cloud's trajectory is determined in the process of determining the golf ball's movement trajectory, as described later), and an approach if any other club (e.g., a wedge) is selected. If there is no further action from the user (default), the hit is considered a putt.

[0048] The virtual golf UI (UI_MAIN) can also be configured to include, in addition to the aforementioned UI, a virtual playing environment for the user's virtual golf game (for example, a UI for setting a specific field (golf course) for the progress of the virtual golf game, and a UI that allows the target position icon to be changed into various forms (for example, a hole cup, a basket, etc.)). Based on the above, the operation of the processor (100) of the virtual golf support device in this embodiment will be explained in detail.

[0049] The processor 100 of this embodiment determines the initial velocity of the golf ball based on the golf ball image acquired by the image acquisition module 20 at the moment the golf ball is struck on the golf environment simulation device 10, determines the trajectory of the golf ball based on the striking position where the golf ball is struck in the virtual playing environment for the user's virtual golf and the determined initial velocity, and can display the determined trajectory via the display unit 500 described above. The operation of the processor 100 can be described in more detail as follows.

[0050] First, the processor 100 generates a user account (account generation operation) based on the user's actions (e.g., touch) on the virtual golf UI (UI_MAIN) provided through the user terminal (UT) application. The golf ball's movement trajectory and the results of the shots (e.g., hole-in, concede, remaining distance), which will be described later, are stored separately for each user account.

[0051] Next, the processor 100 configures the virtual playing environment for the user's virtual golf (e.g., a specific field (golf course) to play on for the virtual golf) based on user operations on the virtual golf UI (UI_MAIN) provided through the application on the user terminal (UT) (environment configuration operation). The virtual playing environment includes the aforementioned field terrain data.

[0052] Next, the processor 100 sets the club to be used for hitting the golf ball based on user interaction with the virtual golf UI (UI_MAIN) provided through the user terminal (UT) application (club setting operation). As mentioned above, if a putter is selected as the club, the processor 100 considers the hit to be a putt, and if any other club (e.g., a wedge) is selected, the hit is considered an approach shot. If there is no further interaction from the user (default), the hit is considered a putt.

[0053] Next, the processor 100 sets the hitting position where the golf ball is struck and the target position where the golf ball aims to reach in the virtual playing environment, based on user operations on the virtual golf UI (UI_MAIN) provided through the application on the user terminal (UT) (position setting operation). That is, the user can set the hitting position and target position by touching a specific point while the virtual playing environment (terrain data) is displayed via the user terminal UT. If there is no user setting for the target position, the processor 100 can set the hole cup in the field terrain data as the target position, as illustrated in Figure 3. Because the virtual playing environment, i.e., the field terrain data, corresponds to three-dimensional positioning data with a three-axis coordinate system, the hitting position and target position are also composed of three-dimensional position coordinates.

[0054] Next, the processor 100 recognizes the golf ball based on the golf ball image acquired by the image acquisition module 20 at the moment the golf ball is struck by the user on the golf environment simulation device 10 (golf ball recognition operation), and determines the initial velocity and direction of the golf ball (velocity determination operation). As mentioned above, the processor 100 can grasp the three-dimensional position coordinates of the golf ball acquired by the image acquisition module 20 (i.e., the stereo camera), and can determine the initial velocity of the golf ball by differentiating the change in the acquired three-dimensional position coordinates with respect to time. In the following, the initial velocity of the golf ball will be described as a vector concept that includes information in the three axes.

[0055] In this case, the processor 100 can recognize the golf ball by applying a well-known image processing algorithm to the stereo camera image, or by applying the pixel information of the stereo camera image to a deep learning model as a pre-trained artificial intelligence model. When recognizing the golf ball through a deep learning model, the processor 100 can recognize the golf ball at a more accurate level. In particular, when a convolutional neural network is used, the golf ball can be recognized accurately in real time without requiring many calculations. In this case, the initial velocity and direction of the golf ball can also be determined by analyzing the afterimage of the stereo camera image and comparing the pixel position of the golf ball when it is stationary with the pixel position of the golf ball after it has moved for a predetermined time.

[0056] Next, the processor 100 applies the impact position and initial velocity determined through the above process to a predefined movement trajectory model to determine the movement trajectory of the golf ball (trajectory determination operation). The movement trajectory of the golf ball may include a flight trajectory, a rebound trajectory, and a rolling trajectory, and the process of determining the movement trajectory of the golf ball can be broadly divided into the process of determining the flight trajectory, the process of determining the rebound trajectory, and the process of determining the rolling trajectory. A specific explanation of the process of determining the movement trajectory of the golf ball will be given later.

[0057] Next, the processor 100 superimposes the movement trajectory determined as described above onto the virtual playing environment and displays it via the display unit 500 of the user terminal UT (display operation) (Figure 6 shows an example of a UI including the movement trajectory of a golf ball displayed via the user terminal UT) (Figure 6 shows multiple golf ball movement trajectories to help understand the embodiment). Along with the movement trajectory of the golf ball, user setting information (hit position and target position, the resulting horizontal distance and elevation between the hit position and target position, etc.), hitting environment information (club used, initial speed and direction of the golf ball, backspin, etc.), and hit result information (hole in, concede, remaining distance, etc.) can also be displayed.

[0058] If the user's shot does not result in a hole-in or a concede (i.e., the golf ball does not reach the target position), and the user selects "Continue" in the shot refresh UI (UI8) provided through the application on the user terminal (UT), the processor 100 performs additional actions to continue the user's virtual golf game. Specifically, the processor 100 resets the final point of the golf ball's trajectory to a new shot position in the virtual playing environment (position reset operation), and then performs the speed determination operation, trajectory determination operation, and display operation described above again.

[0059] When the above-described position reset operation, and the golf ball recognition operation, speed determination operation, trajectory determination operation, and display operation performed after the position reset operation are defined as one operation cycle, the processor 100 will repeat the above operation cycle until the golf ball reaches the target position unless the user performs any other operation, such as ending virtual golf practice by operating on the virtual golf UI (UI_MAIN) or selecting 'repeat hit' in the hit refresh UI (UI8). As a result, the user can continue playing virtual golf until a hole-in or concede occurs unless they perform a separate stop operation, and each time an operation cycle is completed until the golf ball reaches the target position (i.e., each time the user hits), the distance difference between the final point of the movement trajectory and the target position (i.e., the remaining distance) is provided to the user via the virtual golf UI (UI_MAIN). In addition, the user's score can be continuously updated and saved during the course of playing virtual golf and provided to the user via the virtual golf UI (UI_MAIN).

[0060] Furthermore, the processor 100 can support a training mode for one user to practice golf and a game mode for multiple users to play a virtual golf game via an application. The operation of the processor 100 described above applies to both the training mode and the game mode.

[0061] The game mode corresponds to a mode in which a large number of users located in remote locations play a virtual golf game based on a golf environment simulation device 10 and a video acquisition module 20 installed at each user's location (e.g., each user's home). In other words, each user can create a user account via an application on their user terminal UT, connect to the service server, and play the virtual golf game online. The processor 100 (e.g., the service server's processor) can record the scores calculated by playing the virtual golf game for each of the users and provide them via the application.

[0062] In an example where the first and second users participate in the game mode, with the aforementioned virtual golf UI (UI_MAIN) provided through an application on the user terminal owned by the first user, when the first user hits a golf ball located on the mat, the processor (100) executes the aforementioned golf ball recognition operation, speed determination operation, trajectory determination operation, and display operation, so that the trajectory of the golf ball resulting from the first user's golf ball hit can be displayed through an application on the user terminal owned by the second user. The trajectory of the golf ball resulting from the first user's golf ball hit can be displayed through an application on the user terminal owned by the first user, and the trajectory of the golf ball resulting from the first user's golf ball hit can be displayed through an application on the user terminal owned by the second user (i.e., the first user's golf ball hit result can be shared with the first and second users).

[0063] Subsequently, with the virtual golf UI (UI_MAIN) provided through an application on the user terminal held by the second user, when the second user hits a golf ball located on the mat, the processor (100) executes the aforementioned golf ball recognition operation, speed determination operation, trajectory determination operation, and display operation, so that the golf ball movement trajectory resulting from the second user's golf ball hit can be displayed through the application on the user terminal held by the second user, and the golf ball movement trajectory resulting from the second user's golf ball hit can be displayed through the application on the user terminal held by the first user (i.e., the second user's golf ball hit result can be shared with the first and second users).

[0064] Subsequently, when it is the first user's turn to hit, the processor (100) can perform the aforementioned position reset operation, speed determination operation, trajectory determination operation, and display operation again for the first user. Similarly, when it is the second user's turn to hit, the processor (100) can perform the aforementioned position reset operation, speed determination operation, trajectory determination operation, and display operation again for the second user.

[0065] If all of the first and second users' shots result in a hole-in, the game mode ends, and the processor (100) can provide the final scores of the first and second users through the applications on the user terminals each user possesses.

[0066] 2. Virtual Golf Support Methods Figure 7 is a flowchart illustrating the virtual golf support method of this embodiment. The virtual golf support method of this embodiment will be explained with reference to Figure 7, and specific explanations of parts that overlap with the content described above will be omitted, with the focus being on the time-series structure.

[0067] First, the processor 100 generates a user account (S100) based on the user's actions on the virtual golf UI (UI_MAIN) provided through the application on the user terminal (UT).

[0068] Next, the processor 100, based on user operations on the virtual golf UI (UI_MAIN) provided through the user terminal (UT), sets up a virtual playing environment for the user's virtual golf (S200), sets the club to be used to hit the golf ball (S300), and sets the hitting position where the golf ball will be struck and the target position the golf ball will reach in the virtual playing environment (S400). The execution order of steps S200 to S400 does not matter.

[0069] Next, the processor 100 determines the initial velocity of the golf ball based on the golf ball video acquired by the video acquisition module 20 at the moment the golf ball is struck by the user on the golf environment simulation device 10 (S500).

[0070] Next, the processor 100 applies the impact position and initial velocity determined in steps S400 and S500, respectively, to a predefined movement trajectory model to determine the movement trajectory of the golf ball (S600). A detailed explanation of the process for determining the movement trajectory of the golf ball will be given later.

[0071] Next, the processor 100 superimposes the movement trajectory determined in the S600 stage onto the virtual play environment and displays it via the display unit 500 of the user terminal UT (S700).

[0072] If the user's shot does not result in a hole-in or a concede (i.e., the golf ball does not reach the target position), and the user selects "Continue" in the shot refresh UI (UI8) provided through the application on the user terminal (UT) (S800), the processor 100 resets the final point of the golf ball's trajectory to a new shot position in the virtual playing environment (S900), and then repeats steps S500, S600, and S700 described above.

[0073] When the S900 stage and the subsequent S500, S600, and S700 stages are defined as a single operation cycle, the above operation cycle is repeated until the termination condition in the S800 stage is met.

[0074] If the hint ON / OFF toggle UI (UI6) of the virtual golf UI (UI_MAIN) is operated during the execution of steps S400 or S900, the processor (100) can also provide the user through the application with the trajectory of the golf ball from the hitting position to the target position, and the initial velocity of the golf ball applied to calculate that trajectory. Furthermore, the operation of steps S100 to S900 applies to both the training mode and the game mode, which are supported through the application.

[0075] 3. Method for determining the trajectory of a golf ball Before providing a detailed explanation of the process for determining the trajectory of the golf ball, we will first describe the mesh model that forms the basis of this embodiment.

[0076] As shown in Figure 9, the mesh model is defined as a model in which the topographic data of the field (i.e., the golf course (golf course terrain)) that serves as the space in which the golf ball moves is emulated by the first to the nth planar mesh (where N is a natural number greater than or equal to 2, and Figure 9 shows an example where the mesh model is composed of the first to fourth planar meshes MS1 to MS4, assuming N is 4).

[0077] Each planar mesh has a triangular planar structure. Each planar mesh may have metadata (including physical attribute data such as the slope of the planar mesh and coefficient of restitution, vertex coordinate data P m , ..., P k , mathematical attribute data such as the normal vector n and streamline vector p, and regulation data such as fairway, green, hazard, and OB (Out of Bound) according to the golf course rules) defined in the mesh model. Accordingly, the multiple planar meshes (i.e., the first to N-th planar meshes) are continuously arranged with the slope defined by the above metadata, whereby the mesh model is configured to emulate a field in a three-dimensional space defined by a three-axis coordinate system (x-axis, y-axis, z-axis). Figure 9 shows an example in which a golf ball is hit at hitting position B i , lands at point B k of the first planar mesh MS1, rebounds by repulsive force at point B k and point B k+1 to perform subsequent flight (bounce), starts rolling movement from point B k+2 of the second planar mesh MS2, passes passing point B m+1 on the boundary line "P k+3 -Pm+4" and passing point B m+2 -P m+4 " on the boundary line " k+4 , enters the fourth planar mesh MS4, and then stops at point B s .

[0078] The mesh model configured as described above, as will be described later, serves as a foundation for mathematically defining the flight trajectory model, rebound trajectory model, and rolling trajectory model that are used to calculate the flight trajectory, rebound trajectory, and rolling trajectory of a golf ball. The process described below is based on the premise that the processor 100 receives the mesh model defined as described above transmitted from an external system via the communication unit 400 and stores the mesh model in the memory 200.

[0079] Based on the above explanation, the process of determining the trajectory of a golf ball will be explained in detail below with reference to Figures 8 to 10, and in order to identify the time-series structure, it will be explained based on each stage of "2. Virtual Golf Support Method" mentioned above.

[0080] Referring to Figure 8, first, the processor 100 grasps the golf ball's impact position, which was set in step S400, and the golf ball's initial velocity, which was determined in step S500 (S610). The golf ball's impact position and initial velocity have three components based on a three-axis coordinate system.

[0081] Once the impact position and initial velocity of the golf ball are determined through step S610, the processor 100 determines the flight path of the golf ball from the time it starts flying due to the impact force until it lands within the Mth planar mesh included in the mesh model, by applying the impact position and initial velocity of the golf ball as flight path calculation factors to a predefined flight path model (S620). The planar mesh where the golf ball first lands (i.e., the planar mesh corresponding to the target position set in step S400) is represented by the Mth planar mesh (where M is a natural number less than or equal to N), and Figures 9 and 10 show examples where the Mth planar mesh is the first planar mesh MS1.

[0082] A golf ball in flight is subjected to external forces such as gravity, air friction, and wind, as well as the force due to its own spin. In this embodiment, in order to reduce the computational load, only gravity is considered as a force acting on the golf ball in flight. Therefore, the acceleration acting on the golf ball in flight is expressed by the following equation 1.

[0083]

number

[0084] In formula 1, a x a y a z θ represents the acceleration in the x, y, and z directions, respectively, and g is the acceleration due to gravity.

[0085] The flight trajectory model applied in the S620 stage is defined by the equation 2 below, using the equations of uniform acceleration motion.

[0086]

number

[0087] In equation 2, v(t) is the velocity of the golf ball t hours after the start of flight, Vi is the initial velocity of the golf ball, a is the acceleration acting on the golf ball, B(t) is the position of the golf ball after t hours, B i This is the point where the golf ball is struck. v(t), V i a, B(t), B i It has three axial components according to a three-axis coordinate system.

[0088] Furthermore, the normal vector of the M-th plane mesh where the golf ball first lands is n(n x , n y , n z ) = n(cosα, cosβ, cosθ) (where α, β, θ are the angles that the normal vectors make with the x, y, and z axes, respectively, and n is vector notation), and the coordinates of one vertex of the M-th plane mesh are (X m , Y m , Z m When defined as such, the equation of the plane, as a mathematical model defining the M-th plane mesh, is expressed by the following equation 3.

[0089]

number

[0090] In equation 3, the variables x, y, and z are the coordinates of a point on the M-th plane mesh.

[0091] This allows the processor 100 to determine the flight time and landing position of the golf ball from the start of flight until it lands within the M-plane mesh, based on the mathematical model defining the M-plane mesh (Equation 3) and the flight trajectory model (Equation 2) (S621).

[0092] Specifically, the impact position B of the golf ball i =(x i , y i , z i ), flight time T L Golf ball landing position B L =(x L , y L , z L If so, the landing position of the golf ball can be expressed as shown in equation 4 below, according to equations 1 and 2.

[0093]

number

[0094] In formula 4, V ix , V iy , V iz These are the x, y, and z components of the initial velocity of the golf ball.

[0095] Since the landing position of the golf ball lies on the M-th plane mesh according to Equation 3, Equation 5 below is derived.

[0096]

number

[0097] Solving equations 4 and 5 simultaneously gives the flight time T of the golf ball. L This is derived as shown in equation 6 below.

[0098]

number

[0099] Flight time TL Once this is determined, the landing velocity and landing position of the golf ball can also be determined using Equation 4, and the landing velocity V L and landing position B L This is derived as shown in equation 7 below.

[0100]

number

[0101] Through the above process, the processor 100 can determine the flight path as the path connecting the impact position of the golf ball, the flight segment determined by the flight path model during flight time, and the landing position of the golf ball (S622).

[0102] Subsequently, the processor 100 determines the bounce trajectory formed by the rebound after the golf ball lands on the M-plane mesh by applying the landing position and rebound velocity of the golf ball on the M-plane mesh as bounce trajectory factors to the bounce trajectory model.

[0103] Specifically, after step S620, the processor 100 calculates the rebound velocity of the golf ball from the landing velocity of the golf ball on the M-plane mesh and the coefficient of restitution predefined for the M-plane mesh (S630). When the coefficient of restitution of the M-plane mesh is defined as e (e.g., 0.6), the following equation 8 is derived from the velocity relationship before and after the collision.

[0104]

number

[0105] In equation 8, R(T L ) is the rebound velocity.

[0106] Next, the processor 100 calculates the rebound velocity of the golf ball using equation 8 and sets it to a predetermined critical value R. cThis is compared (S640). The critical value is a reference value used to determine whether the golf ball will continue to fly or roll after landing due to its rebound, and may be pre-stored in memory 200 as a specific value based on the designer's intentions and experimental results (e.g., 1.0 mm / s).

[0107] If, at step S640, it is determined that the rebound velocity of the golf ball is above a critical value, the processor 100 applies the landing position and rebound velocity of the golf ball to the flight trajectory calculation factors, and then determines the rebound trajectory by repeatedly performing step S620 described above. That is, in the first step S620, the impact position and initial velocity of the golf ball are used as flight trajectory calculation factors. After the golf ball lands, if the rebound velocity is above a critical value and the golf ball starts flying again, the processor 100 updates the flight trajectory calculation factors for determining the flight trajectory to the landing position and rebound velocity of the golf ball derived from equation 7, and then determines the rebound trajectory by repeatedly performing step S620 to determine the flight trajectory. This process is repeated until the rebound velocity of the golf ball falls below a critical value.

[0108] If, in step S640, it is determined that the rebound velocity of the golf ball is below a critical value (including cases where, after step S620 has been repeated, it is determined that the rebound velocity of the golf ball is below a critical value), the processor 100 determines the rolling trajectory of the golf ball as it rotates on the K-plane mesh by applying the starting position of the golf ball's roll, the starting velocity of the roll, and the external forces acting on the golf ball in the K-plane mesh to a predefined rolling trajectory model as rolling trajectory calculation factors (S650). K is a natural number between M and N, meaning that when a golf ball lands on the M-plane mesh and begins to roll, the K-plane mesh is the same as the M-plane mesh. If the golf ball moves to an adjacent plane mesh after multiple flights, the K-plane mesh can correspond to any one of the K+1 to N-plane meshes. Below, step S650 will be explained assuming that the K-plane mesh and the M-plane mesh are the same.

[0109] At stage S650, processor 100 determines the rolling trajectory using the streamline vector, defined by the normal vector and slope of the K-plane mesh, as a mediating factor. As is well known, a streamline is the line along which an object moves on a plane due to vertical gravity and the slope of the plane, and the streamline vector of the K-plane is defined by the normal vector and slope of the K-plane mesh, p(p x , p y , p z ) = p(n x ·n z / sinθ, n y ·n z It is defined as ( / sinθ, -sinθ).

[0110] The external forces acting on the golf ball as factors for calculating the rolling trajectory may include gravity and friction acting on the golf ball on the K-plane mesh. Since the golf ball rolls on the K-plane mesh which has a predetermined inclination, the gravitational acceleration acting on the golf ball must be corrected by the stream vectors mentioned above. Therefore, considering the corrected gravitational acceleration and the frictional deceleration acting on the golf ball due to the friction coefficient of the K-plane mesh, the acceleration acting on the golf ball during rolling motion can be expressed by the following equation 9.

[0111]

number

[0112] In formula 9, g p μ is the corrected gravitational acceleration (g·sinθ), and μ is the frictional deceleration (m / s) of the K-plane mesh. 2 ), u is the unit vector of the rolling initiation velocity.

[0113] The rolling trajectory model applied in the S650 stage is defined by the equation 10 below, using the equations of motion for uniform acceleration.

[0114]

number

[0115] In equation 10, v(t) is the velocity of the golf ball t hours after it started rolling. i is the starting speed of the roll, a is the acceleration acting on the golf ball, B(t) is the position of the golf ball after time t, B i This is the starting position of the roll. v(t), V i a, B(t), B i It has three-axis components in a three-axis coordinate system (for convenience, it is written using the same notation as equations 1-7 used to calculate the flight path of a golf ball, but it should be made clear that the factors in equations 1-7 with S620 steps and the factors in equations 9-17 with S650 and S660 steps are clearly distinguishable).

[0116] At stage S650, the processor 100 counts the time elapsed since the golf ball began to roll (S651), and determines the rolling trajectory in a manner that reflects the rolling interval (i.e., B(t) in equation 10) determined by the rolling trajectory model during the counted rolling time (S652, S653).

[0117] Furthermore, there are cases where the golf ball moves from the K-th plane mesh to the K+1-th plane mesh through rolling motion. In this case, the processor 100 can perform a continuous rolling trajectory determination operation. The continuous rolling trajectory determination operation is defined as the following process. i) The process of determining the time required (expressed as transit time) for a golf ball to reach a boundary line from its starting position in the K-plane mesh, based on mathematical models defining the boundaries of the K-plane mesh and the K+1-plane mesh, and a rolling trajectory model. ii) A process for determining the starting position and starting velocity of the golf ball in the K+1th plane mesh using the passage time and the normal vector of the K+1th plane mesh. iii) The process of determining the rolling trajectory of a golf ball on the K+1 plane mesh using the determined starting position and starting velocity of the golf ball on the K+1 plane mesh, and the gravitational and frictional forces acting on the golf ball on the K+1 plane mesh as rolling trajectory calculation factors.

[0118] To explain each process in detail, when the coordinates of the ends of the boundary lines of the K-plane mesh and the K+1-plane mesh are defined as P2(X2, Y2, Z2) and P3(X3, Y3, Z3), respectively, the boundary line is defined by the following equation 11 (see Figure 10).

[0119]

number

[0120] In equation 11, x c , y c These are the x and y coordinates of the point where the golf ball passes through the boundary line (hereinafter referred to as the passing point).

[0121] T is the time it takes for a golf ball to travel from its starting point to the next destination. c Therefore, according to equation 10, the points to pass through are expressed by the following equation 12.

[0122]

number

[0123] Solving equations 11 and 12 simultaneously, we get the time T it takes for the golf ball to travel from its starting position to the passing point. c This is derived as shown in equation 13 below.

[0124]

number

[0125] The time T to reach the checkpoint through the above process. cOnce determined, the processor 100 uses the determined passage time and the normal vector of the K+1 plane mesh to determine the starting position and starting speed of the golf ball in the K+1 plane mesh. Since the starting position corresponds to the passage point, the processor 100 determines the starting speed, however, in this case, when moving from the K plane mesh to the K+1 plane mesh, its slope changes, and thereby the normal vector of each plane mesh also changes, so the processor 100 uses the normal vector of the K+1 plane mesh to determine the starting speed of the golf ball (i.e., T calculated relative to the K plane mesh). c The starting speed of the golf ball in the K+1th plane mesh is determined by correcting the speed of the golf ball in the K+1th plane mesh using the normal vector of the K+1th plane mesh.

[0126] T calculated based on the K-plane mesh c The speed of the golf ball in V i (V cx , V cy , V cz ) when (T c (This can be derived by applying this to v(t) in equation 10), and the rolling start velocity in the K+1 plane mesh can be expressed as shown in equation 14 below.

[0127]

number

[0128] In formula 14, n x ′、n y ′、n z ′ is the normal vector component of the K+1 plane mesh.

[0129] The processor 100 determines the rolling trajectory of the golf ball on the K+1 plane mesh using the starting position and starting velocity of the golf ball in the K+1 plane mesh determined as described above, as well as the gravitational and frictional forces acting on the golf ball on the K+1 plane mesh, as rolling trajectory calculation factors. The continuous rolling trajectory determination operation according to equations 11 to 14 is repeated until the golf ball stops.

[0130] Next, to explain the process of calculating the stopping position of the golf ball (assuming the golf ball stops on the K-plane mesh), the time it takes for the golf ball to stop after it starts rolling (expressed as stopping time) is T. s In this case, equations 9 and 10 lead to equation 15 below.

[0131]

number

[0132] When equation 15 is divided and organized according to the components of each axis, it becomes as shown in equation 16 below.

[0133]

number

[0134] Processor 100 is determined by T through equation 16. sx , T sy , T sz The maximum value among them is the final stop time T s And so it was decided, and the decision was made. s Apply this to B(t) in equation 10, and the final stopping position B s To decide.

[0135] When a golf ball stops, it is normal for it not to move any further. However, if the force applied to the golf ball by wind or ground movement becomes greater than the stopping friction force, the golf ball can move. As a result, after step S650, if environmental forces (wind or ground movement) emulated by the environmental factors of the field are applied to the golf ball while it is stopped, the processor 100 can calculate the displacement of the golf ball from the friction force of the planar mesh on which the stopped golf ball is located and the environmental forces, and reflect the calculated displacement of the golf ball in the rolling trajectory (S660).

[0136] The stopping friction force is defined by the stopping friction coefficient F L When the external force defined by the acceleration according to Equation 9 is denoted as F, the velocity and position of the golf ball formed by the environmental external force can be expressed by the following Equation 17 (assuming the mass of the golf ball is a constant and therefore has a value of 1).

[0137]

number

[0138] The process of reflecting displacements caused by external environmental forces in the rolling trajectory can be repeated until the golf ball finally comes to a stop (for example, if the golf ball remains stationary for a certain period of time).

[0139] Thus, according to the present invention, by using a portable device such as a personal mobile phone, it is possible to easily grasp the trajectory formed by hitting a golf ball in a small space such as a personal home, allowing for golf practice while simultaneously enabling many users to enjoy a virtual golf game. [Industrial applicability]

[0140] The embodiments described herein may be embodied, for example, in the form of a method or process, apparatus, software program, data stream or signal. Even if discussed only in the context of a single form of embodiment (e.g., discussed only in the form of a method), the embodiment of the discussed feature may also be embodied in other forms (e.g., apparatus or program). Apparatus may be embodied in appropriate hardware, software and firmware, etc. Methods may be embodied in apparatus such as a processor, which generally refers to a processing device including, for example, a computer, microprocessor, integrated circuit or programmable logic device. A processor may also include communication devices such as computers, cell phones, personal digital assistants ("PDAs") and other devices that facilitate the communication of information between end users.

[0141] Although the present invention has been described with reference to embodiments shown in the drawings, these are merely illustrative, and a person with ordinary skill in the art to which the art pertains will understand that a variety of modifications and equivalent other embodiments are possible therefrom. Therefore, the true scope of technical protection of the present invention should be defined by the claims. [Explanation of Symbols]

[0142] 100 processors 200 memory 300 Positioning Unit 400 Communications Department 500 Display Unit 10. Golf Environment Simulation Device 20 Video Acquisition Modules

Claims

1. A golf environment simulation device that is embodied in which it is physically possible to strike a golf ball and to move the golf ball as a result of said striking; A video acquisition module that captures images of a golf ball; A processor that recognizes a golf ball based on a golf ball image acquired by the image acquisition module at the moment the golf ball is struck on the golf environment simulation device, determines the initial velocity and direction of the golf ball, determines the trajectory of the golf ball based on the striking position where the golf ball is struck in the virtual playing environment for the user's virtual golf, and the determined initial velocity and direction, and displays the determined trajectory; The virtual golf support device is characterized in that the processor displays a virtual golf UI which includes a field terrain data UI that provides field terrain data included in the virtual playing environment, and an environment setting UI that provides practice distance, green size, green speed, and slope of the field terrain data for the user to practice golf.

2. The virtual golf support device according to claim 1, wherein the field terrain data UI includes concentric circles having a set distance between them centered on the target position of the golf ball, and the set distance is configured to be variable according to the user's environment settings result via the environment setting UI.

3. The virtual golf support device according to claim 2, characterized in that the processor varies the set distance in accordance with the practice distance set via the environment setting UI, and sets the green size in conjunction with the practice distance set via the environment setting UI.

4. The virtual golf support device according to claim 1, characterized in that the processor varies the color of the field terrain data in accordance with the slope set via the environment setting UI.

5. The virtual golf UI is characterized in that the image acquisition module further includes a golf ball positioning UI that displays images of tee box points on a mat included in the golf environment simulation device. The virtual golf support device according to claim 1, characterized in that the processor displays a message to place the golf ball on the mat if the golf ball is not recognized from the image.

6. The virtual golf UI further includes a hint ON / OFF toggle UI for toggling whether or not to display the trajectory of the golf ball's movement from the hitting position to the target position, wherein the trajectory of the golf ball's movement from the hitting position to the target position is correct data for the user to obtain hints about the shot before hitting the golf ball. The virtual golf support device according to claim 1, characterized in that the processor calculates and displays the movement trajectory for the golf ball to reach the target position of the golf ball from the hitting position, in response to user input to the ON / OFF toggle UI, using a predefined movement trajectory model.

7. The aforementioned processor, Environment setup operation for setting the virtual play environment, A position setting operation is performed to set the hitting position where the golf ball will be struck and the target position to which the golf ball will aim in the virtual playing environment described above. Based on the golf ball image acquired by the image acquisition module at the moment the golf ball is struck on the golf environment simulation device, the golf ball is recognized via a pre-trained deep learning model, and a velocity and direction determination operation is performed to determine the initial velocity and direction of the golf ball. A trajectory determination operation that determines the trajectory of the golf ball by applying the aforementioned impact position, initial velocity, and direction to a predefined movement trajectory model, and The virtual golf support device according to claim 1, characterized in that it performs a display operation to superimpose the determined movement trajectory onto the virtual playing environment and display it.

8. If there is no further action from the user, the processor further performs a position reset operation to reset the final point of the movement trajectory determined by the trajectory determination operation to a new hitting position in the virtual play environment. The virtual golf support device according to claim 7, characterized in that the processor performs the speed direction determination operation, the trajectory determination operation, and the display operation again after performing the position reset operation.

9. The virtual golf support device according to claim 8, characterized in that when the position reset operation, the speed direction determination operation, the trajectory determination operation, and the display operation performed after the position reset operation are defined as one operation cycle, the processor repeats the operation cycle until the golf ball reaches the target position, provided there is no further operation by the user.

10. The processor is a virtual golf support device characterized by supporting a game mode for multiple users to play a virtual golf game. The virtual golf support device according to claim 7, characterized in that the game mode is a mode in which a large number of users located in remote locations play a virtual golf game based on the golf environment simulation device and the video acquisition module provided at each user's location.

11. When the first and second users participate in the game mode, the processor With the virtual golf UI provided to the first user, when the first user hits the golf ball, the speed direction determination operation, the trajectory determination operation, and the display operation are performed, and the golf ball's movement trajectory corresponding to the first user's golf ball hit is displayed via an application on the user terminal held by the first user. With the virtual golf UI provided to the second user, when the second user hits the golf ball, the speed direction determination operation, the trajectory determination operation, and the display operation are executed, and the trajectory of the golf ball resulting from the second user's golf ball hit is displayed via an application on the user terminal owned by the second user. The virtual golf support device according to claim 10, characterized in that the golf ball hitting results of the first and second users are shared with the first and second users.

12. A method for assisting a user in virtual golf, based on a golf environment simulation device implemented on a computing device, which is designed to physically enable the striking of a golf ball and the movement of the golf ball as a result of said striking, The stage of setting up the virtual playing environment for virtual golf; The steps include setting the hitting position where the golf ball will be struck and the target position to which the golf ball will aim in the virtual playing environment set up; The steps include: recognizing the golf ball via a pre-trained deep learning model based on the golf ball image acquired at the moment the golf ball is struck on the aforementioned golf environment simulation device; The steps include: analyzing the afterimage of the golf ball to determine its initial velocity and direction; The steps include: determining the trajectory of the golf ball by applying the aforementioned impact position, initial velocity, and direction to a predefined trajectory model; The step of displaying the determined movement trajectory; including, A virtual golf support method characterized in that, in each of the steps described above, a virtual golf UI is displayed which includes a field terrain data UI that provides field terrain data included in the virtual playing environment, and an environment setting UI that provides practice distance, green size, green speed, and slope of the field terrain data for the user to practice golf.

Citation Information

Patent Citations

  • Golf support system, and golf support device and program

    JP2012165810A