KR20240002869A - Method for projecting virtual billiard game image on billiard table, projector device and image projection server for performing the same - Google Patents
Method for projecting virtual billiard game image on billiard table, projector device and image projection server for performing the same Download PDFInfo
- Publication number
- KR20240002869A KR20240002869A KR1020220095985A KR20220095985A KR20240002869A KR 20240002869 A KR20240002869 A KR 20240002869A KR 1020220095985 A KR1020220095985 A KR 1020220095985A KR 20220095985 A KR20220095985 A KR 20220095985A KR 20240002869 A KR20240002869 A KR 20240002869A
- Authority
- KR
- South Korea
- Prior art keywords
- virtual
- billiard
- ball
- game image
- image
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 239000000284 extract Substances 0.000 claims abstract description 31
- 238000004891 communication Methods 0.000 claims description 34
- 230000008859 change Effects 0.000 claims description 21
- 238000013528 artificial neural network Methods 0.000 claims description 7
- 239000003086 colorant Substances 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 230000004044 response Effects 0.000 description 10
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 239000010408 film Substances 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 239000012788 optical film Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63D—BOWLING GAMES, e.g. SKITTLES, BOCCE OR BOWLS; INSTALLATIONS THEREFOR; BAGATELLE OR SIMILAR GAMES; BILLIARDS
- A63D15/00—Billiards, e.g. carom billiards or pocket billiards; Billiard tables
- A63D15/006—Training or aiming arrangements on billiard tables
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63D—BOWLING GAMES, e.g. SKITTLES, BOCCE OR BOWLS; INSTALLATIONS THEREFOR; BAGATELLE OR SIMILAR GAMES; BILLIARDS
- A63D15/00—Billiards, e.g. carom billiards or pocket billiards; Billiard tables
- A63D15/20—Scoring or registering devices
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/213—Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/45—Controlling the progress of the video game
- A63F13/46—Computing the game score
-
- G—PHYSICS
- G03—PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
- G03B—APPARATUS OR ARRANGEMENTS FOR TAKING PHOTOGRAPHS OR FOR PROJECTING OR VIEWING THEM; APPARATUS OR ARRANGEMENTS EMPLOYING ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ACCESSORIES THEREFOR
- G03B21/00—Projectors or projection-type viewers; Accessories therefor
- G03B21/14—Details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30221—Sports video; Sports image
- G06T2207/30224—Ball; Puck
Abstract
당구 테이블에 가상의 당구 게임 이미지를 투사하는 방법 및 이를 수행하는 프로젝터 장치가 개시된다. 일 실시예에 따른 프로젝터 장치는 실사의 당구 게임 이미지로부터 가상의 당구 게임 이미지를 생성하는 프로세서, 및 생성된 가상의 당구 게임 이미지를 당구 테이블의 상면을 향해 투사하는 투사 영상 출력 모듈을 포함하고, 프로세서는, 실사의 당구 게임 이미지로부터, 실사의 당구 테이블 상에서 실사의 수구가 이동하여 적어도 하나의 실사의 목적구와 충돌하는 경로 정보를 추출하고, 추출된 경로 정보에 기초하여, 가상의 당구 테이블 상에서 가상의 수구가 이동하여 적어도 하나의 가상의 목적구와 충돌하는 이동 경로를 포함하는 가상의 당구 게임 이미지를 생성한다.A method for projecting a virtual billiard game image on a billiard table and a projector device for performing the same are disclosed. A projector according to an embodiment includes a processor that generates a virtual billiard game image from an actual billiard game image, and a projection image output module that projects the generated virtual billiard game image toward the upper surface of the billiard table, the processor From the real-life billiards game image, extract path information where the real-life cue ball moves on the real-life billiard table and collides with at least one real-time object ball, and based on the extracted path information, virtual cue balls move on the virtual billiard table. A virtual billiard game image is generated including a movement path where the cue ball moves and collides with at least one virtual object ball.
Description
본 발명은 당구 테이블에 가상의 당구 게임 이미지를 투사하는 기술에 관한 것이다.The present invention relates to a technology for projecting a virtual billiard game image on a billiard table.
당구는 당구 테이블(billiard table) 위에 놓인 당구 공들을 여러 명의 플레이어들이 각자의 당구 큐(cue stick)로 쳐서 각자의 점수를 겨루는 경기이다. 당구 큐로 플레이어가 의도한 수구 상의 정확한 지점을 타격하여 상기 수구가 의도한 경로로 움직여 여러 개의 목적구들과 충돌하도록 하는 것이 경기의 승리를 위해 중요하다.Billiards is a game in which several players compete for scores by hitting billiard balls placed on a billiard table with their own cue sticks. It is important to win the game that the player hits the exact point on the cue ball intended by the billiard cue so that the cue ball moves along the intended path and collides with several object balls.
당구 테이블 둘레에는 보통 하얀 점들의 당구 테이블 포인트들(또는 당구 테이블 쿠션 포인트들)이 존재한다. 당구 테이블 포인트들은 당구 테이블의 일측의 방향으로 9개가 있고, 다른 일측의 방향으로 5개가 존재한다. 당구를 플레이하는 플레이어들은 수구를 어떠한 방향으로 칠 것인지를 결정하는데 있어 당구 테이블 포인트들을 참고할 수 있다. 플레이어들은 당구 테이블 포인트들을 통해 당구공이 당구 테이블 쿠션의 특정 위치를 용이하게 식별할 수 있다.There are usually billiard table points (or billiard table cushion points) of white dots around the billiard table. There are 9 billiard table points in one direction of the billiard table, and 5 points in the other direction. Players who play billiards can refer to billiard table points in deciding which direction to hit the cue ball. Players can easily identify the specific location of the billiard ball on the billiard table cushion through the billiard table points.
일반 플레이어들이 숙련자들의 당구 경기 영상을 보고서 수구 및 목적구들의 움직임을 그대로 연습하고 싶으나, 종래에는 일반 플레이어들이 본인의 당구 테이블 내에서 숙련자들의 당구 경기 영상과 동일하게 당구공들을 위치시키기가 어려웠고, 일반 플레이어들이 숙련자들의 당구공 움직임을 직관적으로 이해하고 그 움직임을 그대로 재연할 수 있는 방법이 없었다.General players want to practice the movements of the cue ball and object balls by watching the video of the billiards game of experts, but in the past, it was difficult for the general player to position the billiard balls on their billiard table in the same way as the video of the billiard game of the expert. There was no way for players to intuitively understand the billiard ball movements of experts and reproduce those movements.
일 실시예에 따른 프로젝터 장치는 실사의 당구 게임 이미지로부터 상기 가상의 당구 게임 이미지를 생성하는 프로세서, 및 상기 생성된 가상의 당구 게임 이미지를 상기 당구 테이블의 상면을 향해 투사하는 투사 영상 출력 모듈을 포함하고, 상기 프로세서는, 상기 실사의 당구 게임 이미지로부터, 실사의 당구 테이블 상에서 실사의 수구가 이동하여 적어도 하나의 실사의 목적구와 충돌하는 경로 정보를 추출하고, 상기 추출된 경로 정보에 기초하여, 가상의 당구 테이블 상에서 가상의 수구가 이동하여 적어도 하나의 가상의 목적구와 충돌하는 이동 경로를 포함하는 상기 가상의 당구 게임 이미지를 생성할 수 있다.The projector device according to one embodiment includes a processor that generates the virtual billiard game image from an actual billiard game image, and a projection image output module that projects the generated virtual billiard game image toward the upper surface of the billiard table. And the processor extracts, from the real-life billiard game image, path information on which the real-life cue ball moves on the real-life billiard table and collides with at least one real-time object ball, and based on the extracted path information, virtual The virtual billiard game image may be generated including a movement path where the virtual cue ball moves on the billiard table and collides with at least one virtual object ball.
상기 경로 정보는, 상기 실사의 수구에 대한 위치 좌표의 시간에 따른 변화 정보 및 상기 적어도 하나의 실사의 목적구에 대한 위치 좌표의 시간에 따른 변화 정보를 포함할 수 있다.The path information may include change information over time in the positional coordinates of the target ball of the field trip and change information over time in the position coordinates of the at least one target ball of the field trip.
상기 가상의 당구 게임 이미지 내에서 상기 가상의 수구 및 상기 적어도 하나의 가상의 목적구가 상기 이동 경로를 따라서 시간에 따라 이동할 수 있다.Within the virtual billiard game image, the virtual cue ball and the at least one virtual object ball may move over time along the movement path.
상기 이동 경로는, 상기 가상의 수구 및 상기 적어도 하나의 가상의 목적구에 대응되는 복수의 원형 이미지들에 의해 표시되고, 상기 복수의 원형 이미지들은 설정된 간격을 두고 상기 이동 경로를 따라 배치될 수 있다.The movement path is displayed by a plurality of circular images corresponding to the virtual apparatus and the at least one virtual object ball, and the plurality of circular images may be arranged along the movement path at set intervals. .
상기 복수의 원형 이미지들은 상기 이동 경로를 따라 순차적으로 표시될 수 있다.The plurality of circular images may be displayed sequentially along the movement path.
상기 복수의 원형 이미지들은 적어도 두 가지 이상의 상이한 형태의 원형 이미지들을 포함할 수 있다.The plurality of circular images may include at least two different types of circular images.
상기 두 가지 이상의 상이한 형태의 원형 이미지들은 반투명한 원형 이미지 및 불투명한 원형 이미지를 포함할 수 있다.The two or more different types of circular images may include a translucent circular image and an opaque circular image.
상기 복수의 원형 이미지들은 상기 이동 경로 상의 복수의 지점들에서 동일한 형태의 원형 이미지로 표시될 수 있다.The plurality of circular images may be displayed as circular images of the same shape at a plurality of points on the movement path.
상기 복수의 지점들은 상기 가상의 수구가 상기 적어도 하나의 가상의 목적구와 충돌하는 지점 또는 상기 가상의 수구가 상기 가상의 당구 테이블의 모서리에 접촉하는 지점을 포함할 수 있다.The plurality of points may include a point where the virtual cue ball collides with the at least one virtual object ball or a point where the virtual cue ball contacts a corner of the virtual billiard table.
상기 프로세서는, 상기 실사의 당구 게임 이미지에서 당구 테이블 포인트들을 추출하고, 상기 추출된 당구 테이블 포인트들의 배치와 상기 실사의 수구 또는 상기 적어도 하나의 실사의 목적구 사이의 위치 관계에 기초하여 상기 경로 정보를 추출할 수 있다.The processor extracts billiard table points from the real-time billiard game image, and provides the path information based on a positional relationship between the arrangement of the extracted billiard table points and the real-time cue ball or the at least one real-time target ball. can be extracted.
상기 프로세서는, 학습된 뉴럴 네트워크 기반의 인식 모델을 상기 실사의 당구 게임 이미지에 적용하여 상기 실사의 당구 게임 이미지로부터 상기 실사의 수구 및 상기 적어도 하나의 실사의 목적구의 위치를 추출하고, 상기 추출된 실사의 수구 및 상기 적어도 하나의 실사의 목적구의 위치에 기초하여 상기 경로 정보를 추출할 수 있다.The processor applies a learned neural network-based recognition model to the real-time billiard game image to extract the positions of the real-time cue ball and the at least one real-time object ball from the real-time billiard game image, and the extracted The route information may be extracted based on the locations of the target ball of the field trip and the at least one target ball of the field trip.
상기 프로세서는, 상기 가상의 수구 및 상기 적어도 하나의 가상의 목적구가 상기 이동 경로 상에서 사용자 명령에 따른 속도로 이동하는 상기 가상의 당구 게임 이미지를 생성할 수 있다.The processor may generate the virtual billiard game image in which the virtual cue ball and the at least one virtual object ball move on the movement path at a speed according to a user command.
상기 프로세서는 사용자로부터 상기 가상의 수구 및 상기 적어도 하나의 가상의 목적구 중에서 어느 하나의 가상의 당구공을 선택하는 사용자 명령을 수신하고, 상기 선택된 가상의 당구공이 상기 이동 경로 상에서 이동하는 상기 가상의 당구 게임 이미지를 생성할 수 있다.The processor receives a user command from a user to select any one virtual billiard ball among the virtual cue ball and the at least one virtual object ball, and the selected virtual billiard ball moves on the movement path. You can create a billiards game image.
일 실시예에 따른 프로젝터 장치를 이용하여 당구 테이블에 가상의 당구 게임 이미지를 투사하는 영상 투사 서버는 실사의 당구 게임 이미지로부터 상기 가상의 당구 게임 이미지를 생성하는 프로세서, 및 상기 생성된 가상의 당구 게임 이미지를 통신망을 통하여 상기 프로젝터 장치로 전송하는 통신 모듈을 포함하고, 상기 전송된 가상의 당구 게임 이미지는 상기 프로젝터 장치로부터 상기 당구 테이블의 상면으로 투사될 수 있다.An image projection server that projects a virtual billiard game image on a billiard table using a projector according to an embodiment includes a processor that generates the virtual billiard game image from an actual billiard game image, and the generated virtual billiard game. It includes a communication module that transmits an image to the projector device through a communication network, and the transmitted virtual billiard game image can be projected from the projector device to the upper surface of the billiard table.
상기 프로세서는, 상기 실사의 당구 게임 이미지로부터, 실사의 당구 테이블 상에서 실사의 수구가 이동하여 적어도 하나의 실사의 목적구와 충돌하는 경로 정보를 추출하고, 상기 추출된 경로 정보에 기초하여, 가상의 당구 테이블 상에서 가상의 수구, 적어도 하나의 가상의 목적구가 이동하는 이동 경로를 포함하는 상기 가상의 당구 게임 이미지를 생성할 수 있다.The processor extracts, from the photorealistic billiards game image, path information on which a real-life cue ball moves on a real-life billiard table and collides with at least one real-time object ball, and based on the extracted path information, creates a virtual billiards table. The virtual billiard game image including a movement path along which the virtual cue ball and at least one virtual object ball move on the table can be generated.
상기 경로 정보는, 상기 실사의 수구에 대한 위치 좌표의 시간에 따른 변화 정보 및 상기 적어도 하나의 실사의 목적구에 대한 위치 좌표의 시간에 따른 변화 정보를 포함할 수 있다.The path information may include change information over time in the positional coordinates of the target ball of the field trip and change information over time in the position coordinates of the at least one target ball of the field trip.
상기 가상의 당구 게임 이미지 내에서 상기 가상의 수구 및 상기 적어도 하나의 가상의 목적구가 상기 이동 경로를 따라서 시간에 따라 이동할 수 있다.Within the virtual billiard game image, the virtual cue ball and the at least one virtual object ball may move over time along the movement path.
상기 프로세서는 사용자로부터 상기 가상의 수구 및 상기 적어도 하나의 가상의 목적구 중에서 어느 하나의 가상의 당구공을 선택하는 사용자 명령을 수신하고, 상기 선택된 가상의 당구공에 대응되는 복수의 원형 이미지들이 상기 선택된 가상의 당구공의 이동 경로 상에 배치된 상기 가상의 당구 게임 이미지를 생성할 수 있다.The processor receives a user command from the user to select one virtual billiard ball among the virtual cue ball and the at least one virtual object ball, and displays a plurality of circular images corresponding to the selected virtual billiard ball. The virtual billiard game image placed on the movement path of the selected virtual billiard ball can be created.
상기 복수의 원형 이미지들은 상기 선택된 가상의 당구공의 이동 경로를 따라 순차적으로 표시될 수 있다.The plurality of circular images may be sequentially displayed along the movement path of the selected virtual billiard ball.
상기 프로세서는 상기 복수의 원형 이미지들이 순차적으로 표시되는 시간 간격을 조절하는 사용자 명령을 수신하고, 상기 복수의 원형 이미지들이 상기 선택된 가상의 당구공의 이동 경로를 따라 상기 조절된 시간 간격을 두고 순차적으로 표시되는 상기 가상의 당구 게임 이미지를 생성할 수 있다.The processor receives a user command to adjust a time interval at which the plurality of circular images are sequentially displayed, and the plurality of circular images are sequentially displayed at the adjusted time interval along the movement path of the selected virtual billiard ball. The displayed virtual billiard game image can be created.
상기 프로세서는, 상기 실사의 당구 게임 이미지에서 당구 테이블 포인트들을 추출하고, 상기 추출된 당구 테이블 포인트들의 배치와 상기 실사의 수구 또는 상기 적어도 하나의 실사의 목적구 사이의 위치 관계에 기초하여 상기 경로 정보를 추출할 수 있다.The processor extracts billiard table points from the real-time billiard game image, and provides the path information based on a positional relationship between the arrangement of the extracted billiard table points and the real-time cue ball or the at least one real-time target ball. can be extracted.
일 실시예에 따른 실사의 당구 게임 이미지에 기초한 가상의 당구 게임 이미지를 투사하는 방법은 상기 실사의 당구 게임 이미지로부터, 실사의 당구 테이블 상에서 실사의 수구가 이동하여 적어도 하나의 실사의 목적구와 충돌하는 경로 정보를 추출하는 동작, 상기 추출된 경로 정보에 기초하여, 가상의 당구 테이블 상에서 가상의 수구가 이동하여 적어도 하나의 가상의 목적구와 충돌하는 이동 경로를 포함하는 상기 가상의 당구 게임 이미지를 생성하는 동작, 및 상기 생성된 가상의 당구 게임 이미지를 실제 당구 테이블의 상면을 향해 투사하는 동작을 포함할 수 있다.According to one embodiment, a method of projecting a virtual billiard game image based on a real-life billiard game image includes, from the real-life billiard game image, a real-life cue ball moving on a real-life billiard table and colliding with at least one real-time object ball. Extracting path information, based on the extracted path information, generating the virtual billiard game image including a movement path where a virtual cue ball moves on a virtual billiard table and collides with at least one virtual object ball. It may include an operation and an operation of projecting the generated virtual billiard game image onto the upper surface of an actual billiard table.
상기 경로 정보는, 상기 실사의 수구에 대한 위치 좌표의 시간에 따른 변화 정보 및 상기 적어도 하나의 실사의 목적구에 대한 위치 좌표의 시간에 따른 변화 정보를 포함할 수 있다.The path information may include change information over time in the position coordinates of the target ball of the field trip and change information over time in the position coordinates of the at least one target ball of the field trip.
상기 가상의 당구 게임 이미지 내에서 상기 가상의 수구 및 상기 적어도 하나의 가상의 목적구가 상기 이동 경로를 따라서 시간에 따라 이동할 수 있다.Within the virtual billiard game image, the virtual cue ball and the at least one virtual object ball may move over time along the movement path.
도 1은 일 실시예에 따른 영상 투사 시스템의 개요를 도시하는 도면이다.
도 2는 일 실시예에 따른 프로젝터 장치의 구성을 설명하기 위한 도면이다.
도 3은 또다른 실시예에 따른 영상 투사 시스템의 개요를 도시하는 도면이다.
도 4는 일 실시예에 따른 외부 장치와 연결되어 실사의 당구 게임 이미지에 대응하는 가상의 당구 게임 이미지를 제공하는 것을 설명하기 위한 도면이다.
도 5는 일 실시예에서 수구의 경로를 보여줄 것을 명령하는 사용자 명령에 생성된 가상의 당구 게임 이미지를 설명하기 위한 도면이다.
도 6은 일 실시예에서 제1 목적구의 경로를 보여줄 것을 명령하는 사용자 명령에 따라 생성된 가상의 당구 게임 이미지를 설명하기 위한 도면이다.
도 7은 일 실시예에서 수구 및 제1 목적구의 경로를 보여줄 것을 명령하는 사용자 명령에 따라 생성된 가상의 당구 게임 이미지를 설명하기 위한 도면이다.
도 8은 일 실시예에서 수구 및 제1 목적구가 충돌하는 지점을 보여줄 것을 명령하는 사용자 명령에 따라 생성된 가상의 당구 게임 이미지를 설명하기 위한 도면이다.
도 9는 일 실시예에서 수구가 당구 테이블의 모서리에 접촉하는 첫 번째 지점을 보여줄 것을 명령하는 사용자 명령에 따라 생성된 가상의 당구 게임 이미지를 설명하기 위한 도면이다.
도 10은 일 실시예에서 수구가 당구 테이블의 모서리에 접촉하는 두 번째 지점을 보여줄 것을 명령하는 사용자 명령에 따라 생성된 가상의 당구 게임 이미지를 설명하기 위한 도면이다.
도 11은 일 실시예에서 수구의 모든 충돌 지점을 보여줄 것을 명령하는 사용자 명령에 따라 생성된 가상의 당구 게임 이미지를 설명하기 위한 도면이다.
도 12는 일 실시예에 따른 가상의 당구 게임 이미지를 투사하는 방법의 흐름도이다.1 is a diagram illustrating an outline of an image projection system according to an embodiment.
FIG. 2 is a diagram for explaining the configuration of a projector device according to an embodiment.
FIG. 3 is a diagram illustrating an outline of an image projection system according to another embodiment.
FIG. 4 is a diagram illustrating providing a virtual billiard game image corresponding to an actual billiard game image by connecting to an external device according to an embodiment.
FIG. 5 is a diagram illustrating a virtual billiard game image generated in response to a user command to show the cue ball path in one embodiment.
FIG. 6 is a diagram illustrating a virtual billiard game image generated according to a user command to show the path of the first object ball in one embodiment.
FIG. 7 is a diagram for explaining a virtual billiard game image generated according to a user command to show the path of the cue ball and the first object ball in one embodiment.
FIG. 8 is a diagram illustrating a virtual billiard game image generated according to a user command to show a point at which a cue ball and a first object ball collide, in one embodiment.
FIG. 9 is a diagram illustrating a virtual billiard game image generated according to a user command to show the first point where the cue ball touches the edge of the billiard table, in one embodiment.
FIG. 10 is a diagram illustrating a virtual billiard game image generated according to a user command to show a second point where the cue ball touches the edge of the billiard table, in one embodiment.
FIG. 11 is a diagram illustrating a virtual billiard game image generated according to a user command to show all collision points of the cue ball in one embodiment.
Figure 12 is a flowchart of a method for projecting a virtual billiard game image according to an embodiment.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Specific structural or functional descriptions of the embodiments are disclosed for illustrative purposes only and may be changed and implemented in various forms. Accordingly, the actual implementation form is not limited to the specific disclosed embodiments, and the scope of the present specification includes changes, equivalents, or substitutes included in the technical idea described in the embodiments.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Terms such as first or second may be used to describe various components, but these terms should be interpreted only for the purpose of distinguishing one component from another component. For example, a first component may be named a second component, and similarly, the second component may also be named a first component.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.When a component is referred to as being “connected” to another component, it should be understood that it may be directly connected or connected to the other component, but that other components may exist in between.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions include plural expressions unless the context clearly dictates otherwise. As used herein, “A or B”, “at least one of A and B”, “at least one of A or B”, “A, B or C”, “at least one of A, B and C”, and “A Each of phrases such as “at least one of , B, or C” may include any one of the items listed together in the corresponding phrase, or any possible combination thereof. In this specification, terms such as “comprise” or “have” are intended to designate the presence of the described features, numbers, steps, operations, components, parts, or combinations thereof, and are intended to indicate the presence of one or more other features or numbers, It should be understood that this does not exclude in advance the possibility of the presence or addition of steps, operations, components, parts, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person of ordinary skill in the art. Terms as defined in commonly used dictionaries should be interpreted as having meanings consistent with the meanings they have in the context of the related technology, and unless clearly defined in this specification, should not be interpreted in an idealized or overly formal sense. No.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다. The term “module” used in this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit, for example. A module may be an integrated part or a minimum unit of the parts or a part thereof that performs one or more functions. For example, according to one embodiment, the module may be implemented in the form of an application-specific integrated circuit (ASIC).
본 문서에서 사용되는 ‘~부’라는 용어는 소프트웨어 또는 FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, ‘~부’는 어떤 역할들을 수행한다. 그렇지만, ‘~부’는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. ‘~부’는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 예를 들어, ‘~부’는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함할 수 있다. 구성요소들과 ‘~부’들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 ‘~부’들로 결합되거나 추가적인 구성요소들과 ‘~부’들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 ‘~부’들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다. 또한, ‘~부’는 하나 이상의 프로세서를 포함할 수 있다.The term ‘~part’ used in this document refers to software or hardware components such as FPGA or ASIC, and the ‘~part’ performs certain roles. However, ‘~part’ is not limited to software or hardware. The '~ part' may be configured to reside on an addressable storage medium and may be configured to reproduce on one or more processors. For example, '~part' refers to software components, object-oriented software components, components such as class components and task components, processes, functions, properties, procedures, May include subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables. The functions provided within components and ‘parts’ may be combined into a smaller number of components and ‘parts’ or may be further separated into additional components and ‘parts’. Additionally, components and parts may be implemented to refresh one or more CPUs within a device or secure multimedia card. Additionally, ‘~part’ may include one or more processors.
이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, embodiments will be described in detail with reference to the attached drawings. In the description with reference to the accompanying drawings, identical components will be assigned the same reference numerals regardless of the reference numerals, and overlapping descriptions thereof will be omitted.
도 1은 일 실시예에 따른 영상 투사 시스템의 개요를 도시하는 도면이다.1 is a diagram illustrating an outline of an image projection system according to an embodiment.
도 1을 참조하면, 영상 투사 시스템(100)은 당구 테이블(120) 및 프로젝터 장치(110)를 포함할 수 있다. 프로젝터 장치(110)는 당구 테이블(120)과 이격되어 당구 테이블(120)의 상면의 위쪽(above)에 위치할 수 있다. 당구 테이블(120)의 상면과 프로젝터 장치(110) 간의 이격 거리는 예를 들어 1m 내지 10m 사이의 거리일 수 있고, 프로젝터 장치(110)는 당구 테이블(120)이 놓여진 공간의 천장에 배치 또는 설치될 수 있으나, 실시예의 범위가 이에 제한되는 것은 아니다. 당구 테이블(120)은 예를 들어 4구, 3구, 포켓볼 또는 스누커의 당구 경기를 위한 당구 테이블일 수 있다. 본 명세서에서 '당구 경기'는 당구 게임 또는 당구 시합으로 지칭될 수 있다. 4구, 3구 및 포켓볼 경기를 위한 당구 테이블(120)의 4개 모서리의 둘레에는 당구 테이블 포인트(125)들이 존재할 수 있다. 예를 들어, 당구 테이블 포인트(125)들은 당구 테이블(120)의 일측 방향으로 9개가 있고, 다른 일측 방향으로 5개가 존재할 수 있다.Referring to FIG. 1 , the
프로젝터 장치(110)는 당구 테이블(120)의 상면(예: 커버 시트)을 향해 투사 영상(projection image)을 투사(또는 출력)할 수 있다. 일 실시예에서, 프로젝터 장치(110)는 이미지 객체에 해당하는 가상의 당구공들(130, 135, 140)을 포함하는 투사 영상을 생성하여 당구 테이블(120)로 투사할 수도 있다. 투사 영상에서 가상의 당구공들(130, 135, 140)은 당구공을 나타내는 다양한 형태의 이미지로 표시될 수 있다.The
또는, 프로젝터 장치(110)는 가상의 당구공들(130, 135, 140)과 가상의 당구공들(130, 135, 140) 중 적어도 하나의 이동 경로를 포함하는 투사 영상을 생성하여 당구 테이블(120)로 투사할 수도 있다. 프로젝터 장치(110)에 의해 투사되는 투사 영상에는 특정 그림, 로고, 상표 및/또는 문자 등이 포함될 수도 있으며, 이를 통해 프로젝터 장치(110)는 투사 영상 내에 광고하고자 하는 내용을 여러 가지 형태로서 표현하는 광고용 장치로서 이용될 수도 있다.Alternatively, the
종래에는 사용자가 TV 방송 또는 유투브 등을 통해 시청한 당구 경기의 당구공 배치들을 당구 테이블(120) 상에 구현하여 연습하려는 경우 당구 경기 이미지로부터 당구공들의 대략적인 위치를 파악하고 당구 테이블(120) 상에 당구공들을 배치해야 했다. 이렇게 배치된 당구공들의 위치는 부정확하며, 사용자가 연습을 위해 당구공들을 동일한 위치에 반복적으로 정확히 배치하기 어렵다는 불편함이 있었다. 또한 사용자는 당구 경기에서 당구공들이 이동한 경로를 확인하기 위해 당구 경기를 반복적으로 시청해야 했다.Conventionally, when a user wants to practice by implementing the billiard ball arrangements of a billiard game watched through TV broadcasts or YouTube on the billiard table 120, the approximate positions of the billiard balls are determined from the billiard game image and the billiard table 120 Billiard balls had to be placed on the table. The positions of the billiard balls arranged in this way are inaccurate, and there is an inconvenience in that it is difficult for users to accurately place the billiard balls in the same position repeatedly for practice. Additionally, users had to watch the billiards game repeatedly to check the path the billiard balls took during the game.
그러나, 실시예에 따른 프로젝터 장치(110)를 통해 당구 테이블(120)에 투사되는 투사 영상의 가상의 당구공들(130, 135, 140)을 통해 사용자는 당구 테이블(120)에서 당구공을 원하는 위치에 오차 없이 정확히 배치시킬 수 있다. 또한 사용자는 투사 영상의 가상의 당구공들(130)을 통해 당구 경기의 당구공의 이동 경로를 쉽게 확인하고 해당 이동 경로를 실제로 구현하기 위해 효과적으로 연습할 수 있다.However, through the
프로젝터 장치(110)를 통해 당구 교육이나 당구 연습 시에 정확하고 일관된 당구공 배치 및 타구를 가능하게 하여 교육 효과를 증진시키고, 연습자의 기량 향상에 상당한 도움을 줄 수 있다.The
본 발명에 따른 프로젝터 장치(110)의 일례로서, 오늘날 일반적으로 널리 사용되는 빔 프로젝터(Beam Projector)가 사용될 수 있다. 빔 프로젝터는 광원으로부터 나온 빛을 렌즈를 통과시켜 스크린 또는 벽면 등에 투사시키는 것으로, 브라운관 방식(CRT: Cathode-Ray Tube), 액정 디스플레이 방식(LCD: Liquid Crystal Display), 및/또는 디지털 광학기술(DLP: Digital Light Processing)을 채용할 수 있다. 다른 일례로서, 빔 프로젝트와 기본적인 구조는 같지만, 광원으로 레이저를 사용하는 레이저 프로젝터의 기술이 프로젝터 장치(110)의 영상 투사 기술로서 사용될 수도 있다.As an example of the
도 2는 일 실시예에 따른 프로젝터 장치의 구성을 설명하기 위한 도면이다.FIG. 2 is a diagram for explaining the configuration of a projector device according to an embodiment.
오늘날 유명 당구 플레이어들의 당구 게임들이 TV 채널 또는 인터넷 영상 채널 등을 통하여 사용자들에게 제공되고 있다. 또한, 일반 사용자들의 당구 게임 영상을 녹화하여 서버에 저장하고, 사용자들이 자신의 게임 영상을 원하는 때에 모바일 장치 등을 통하여 쉽게 찾아볼 수 있는 서비스가 제공되고 있다. 본 발명의 실시예에 따르면, 사용자는 상기와 같이 제공되는 당구 게임들 내에서 특정 당구공들의 배치 및 이동을 프로젝터 장치(210)를 통하여 당구 테이블에 재현할 수 있게 된다.Today, billiard games by famous billiard players are provided to users through TV channels or Internet video channels. In addition, a service is provided that records billiard game videos of general users and stores them on a server, and allows users to easily search for their game videos through mobile devices when they want. According to an embodiment of the present invention, a user can reproduce the arrangement and movement of specific billiard balls within the billiard games provided above on the billiard table through the
도 2를 참조하면, 프로젝터 장치(210)(예: 도 1의 프로젝터 장치(110))는 프로세서(222), 메모리(224), 투사 영상 출력 모듈(226) 및 통신 모듈(228)을 포함할 수 있다. 프로젝터 장치(210)의 각 구성 요소들은 통신 버스(229)를 통해 서로 통신할 수 있다.Referring to FIG. 2, the projector device 210 (e.g., the
프로세서(222)는 프로젝터 장치(210)의 전체적인 동작을 제어한다. 프로세서(222)는 하나 또는 복수의 프로세서로 구성될 수 있고, 프로세서(222)는 CPU(central processing unit), AP(application processor), DSP(digital signal processor) 등과 같은 범용 프로세서, 또는 NPU(neural processing unit)을 포함할 수 있다.The processor 222 controls the overall operation of the
일 실시예에서, 프로세서(222)는 외부 장치(예: 모바일 장치(240), 터치 보드 패널 장치(250), 또는 서버)로부터 통신망(221)을 통하여 실사의 당구 게임 이미지를 수신할 수 있다. 여기서, 터치 보드 패널 장치(250)는 당구 테이블이 설치된 곳(예: 당구장, 당구 연습장, 당구 경기장)에서 당구 경기의 관리나 제어를 위해 이용되는 장치를 의미하며, 예를 들어 터치 보드 패널 장치(250)는 네트워크를 통해 당구 테이블이 설치된 곳의 시스템에 연결되거나 인터넷을 통해 외부 서버에 연결될 수 있다.In one embodiment, the processor 222 may receive an actual billiard game image from an external device (e.g.,
프로세서(222)는 실사의 당구 게임 이미지로부터 투사 영상인 가상의 당구 게임 이미지를 생성할 수 있다. 실사의 당구 게임 이미지 및 가상의 당구 게임 이미지는 특정 시점의 정지된 하나의 영상 프레임이거나, 시간의 흐름에 따라서 복수의 영상 프레임을 포함하는 동영상일 수 있다. 프로세서(222)는 가상의 당구 게임 이미지를 생성하기 위해 실사의 당구 게임 이미지 내 당구 테이블에 놓인 당구공들을 추출하고, 실사의 당구 게임 이미지로부터 추출된 당구공들이 실사의 당구 게임 이미지 내 당구 테이블에 놓인 위치 및 추출된 당구공들 각각의 컬러를 결정할 수 있다. 프로세서(222)는 추출된 당구공들의 컬러에 기초하여 수구와 목적구들을 구별할 수 있다.The processor 222 may generate a virtual billiard game image, which is a projection image, from an actual billiard game image. The actual billiard game image and the virtual billiard game image may be a single still video frame at a specific point in time, or may be a video containing a plurality of video frames according to the passage of time. The processor 222 extracts billiard balls placed on the billiard table in the real-life billiard game image to generate a virtual billiard game image, and the billiard balls extracted from the real-life billiard game image are placed on the billiard table in the real-life billiard game image. The placed position and color of each extracted billiard ball can be determined. The processor 222 may distinguish between cue balls and object balls based on the colors of the extracted billiard balls.
본 발명에서 실사의 당구 게임 이미지라 함은 현실의 당구 테이블에서 진행되는 당구 경기를 카메라로 촬영한 이미지 혹은 당구 경기를 촬영한 이미지를 재생하는 전자 장치의 디스플레이를 카메라로 촬영한 이미지를 의미할 수 있다. 실사의 당구 게임 이미지는 당구 레슨에 이용되는 당구 테이블 상면 형태의 칠판을 촬영한 이미지를 포함할 수도 있다. 실사의 당구 게임 이미지는 당구공들이 놓인 당구 테이블 상면의 도면 또는 사진을 포함하는 당구 관련 서적, 사진, 수기 기록물, 인쇄물 및 출판물을 촬영한 이미지를 포함할 수도 있다.In the present invention, a real-life billiards game image may mean an image taken with a camera of a billiards game played on a real billiard table or an image taken with a camera of the display of an electronic device that plays an image of a billiards game. there is. The actual billiards game image may include an image taken of a blackboard in the form of the top of a billiard table used for billiards lessons. The actual billiard game image may include images taken from billiards-related books, photographs, handwritten records, prints, and publications, including drawings or photographs of the top of a billiard table with billiard balls placed on it.
본 발명에서 가상의 당구 게임 이미지라 함은 실사의 당구 게임 이미지에 기초하여 생성되어 프로젝터 장치(210)에 의해 실제 당구 테이블의 상면에 투사되는 이미지를 의미한다. 또한, 실사의 수구 및 실사의 목적구라 함은 실사의 당구 게임 이미지 내 당구 테이블에 놓인 수구 및 목적구를 각각 의미하며, 가상의 수구 및 가상의 목적구라 함은 가상의 당구 게임 이미지에 포함된 당구공들로서 실사의 수구 및 실사의 목적구에 각각 대응된다.In the present invention, a virtual billiard game image refers to an image created based on an actual billiard game image and projected onto the upper surface of an actual billiard table by the
실사의 당구 게임 이미지로부터 당구공들을 추출하기 위하여, 이미지 내에서 복수의 당구공들에 대응하는 복수의 오브젝트들을 정의하고, 정의된 오브젝트들의 형상 및 색깔 등의 속성들에 기초하여 서로를 구별하고, 이들 구별된 오브젝트들의 당구 테이블 상에서의 상대 위치를 계산하여 위치 좌표값들을 획득하는 영상 처리 기술이 사용될 수 있다.In order to extract billiard balls from a real-life billiard game image, define a plurality of objects corresponding to a plurality of billiard balls in the image and distinguish them from each other based on properties such as shape and color of the defined objects, Image processing technology may be used to obtain position coordinate values by calculating the relative positions of these distinct objects on the billiard table.
본 발명에 따른 위치 좌표는 당구 테이블의 일측의 모서리와 다른 일측의 모서리를 각각 X축 및 Y축으로 하여 형성되는 좌표계에 기초하여, 좌표 값으로 표시될 수 있다. 또달리, 위치 좌표는 당구 모서리들의 길이, 당구 모서리에 배치된 포인트들의 위치, 당구공들의 크기, 및 당구공들 사이의 상대적 거리들 중에서 적어도 하나를 고려하여 사각의 당구 테이블 상에서 당구공의 위치로 유일하게 결정되는 위치 정보로 해석될 수 있다.The position coordinates according to the present invention may be expressed as coordinate values based on a coordinate system formed with the corners of one side and the corners of the other side of the billiard table as the X-axis and Y-axis, respectively. Alternatively, the position coordinates are calculated as the positions of the billiard balls on a square billiard table by taking into account at least one of the length of the billiard edges, the positions of points arranged on the billiard edges, the size of the billiard balls, and the relative distances between the billiard balls. It can be interpreted as uniquely determined location information.
프로세서(222)는 실사의 당구 게임 이미지에서 당구 테이블에 놓인 당구공들의 위치에 해당하는 위치 좌표를 추출(또는 획득)하고, 추출된 당구공들 각각의 위치 좌표에 기초하여 가상 당구공들의 위치를 결정할 수 있다. 일 실시예에서, 프로세서(222)는 실사의 당구 게임 이미지로부터 적어도 하나의 수구 및 복수의 목적구의 위치를 결정하기 위한 기준점들을 설정하고, 실사의 당구 게임 이미지로부터, 설정된 기준점들에 기초하여 적어도 하나의 수구 및 복수의 목적구들에 대한 위치 좌표들을 획득할 수 있다. The processor 222 extracts (or obtains) positional coordinates corresponding to the positions of the billiard balls placed on the billiard table from the actual billiard game image, and determines the positions of the virtual billiard balls based on the positional coordinates of each of the extracted billiard balls. You can decide. In one embodiment, the processor 222 sets reference points for determining the positions of at least one cue ball and a plurality of object balls from the actual billiard game image, and sets at least one reference point based on the set reference points from the actual billiard game image. Position coordinates for the cue ball and a plurality of object balls can be obtained.
일례로서, 실사의 당구 게임 이미지 내의 당구 테이블의 모서리들이 서로 만나는 4개의 꼭지점들이 기준점으로 설정될 수 있다. 또 다른 일례로서, 당구 테이블의 둘레에 존재하는 포인트들(또는 당구 테이블 쿠션 포인트들)이 기준점으로 설정될 수 있다. 또 다른 일례로서, 실사의 당구 게임 이미지 내의 당구 테이블의 4개의 모서리들로 형성되는 사각형 형상에서 각 변들을 구성하는 임의의 점들을 기준점들로 설정할 수 있다. 설정된 기준점들에 기초하여 실사의 당구 테이블에 놓인 당구공들의 상대 좌표가 당구공들의 위치 좌표로 계산될 수 있다.As an example, four vertices where the corners of a billiard table in a real-life billiard game image meet each other may be set as reference points. As another example, points existing around the billiard table (or billiard table cushion points) may be set as reference points. As another example, arbitrary points constituting each side of a rectangular shape formed by the four corners of a billiard table in an actual billiard game image can be set as reference points. Based on the set reference points, the relative coordinates of the billiard balls placed on the actual billiard table can be calculated as the position coordinates of the billiard balls.
프로세서(222)는 획득된 위치 좌표들에 기초하여 가상의 당구 테이블 상에서 가상의 수구 및 가상의 목적구들의 위치를 결정할 수 있다. 프로세서(222)는 결정된 위치에 기초하여 가상의 수구 및 가상의 목적구들을 배치한 가상의 당구 게임 이미지를 생성할 수 있다. 프로세서(222)는 가상 당구공들 각각에 할당된 컬러 정보 및 위치 정보에 기초하여 가상의 당구 게임 이미지를 생성할 수 있다.The processor 222 may determine the positions of the virtual cue ball and virtual object balls on the virtual billiard table based on the acquired position coordinates. The processor 222 may generate a virtual billiard game image in which virtual cue balls and virtual object balls are arranged based on the determined position. The processor 222 may generate a virtual billiard game image based on color information and location information assigned to each virtual billiard ball.
실사의 당구 게임 이미지는 실사의 당구 테이블 상에서 적어도 하나의 실사의 당구공이 이동하여 다른 실사의 당구공과 충돌하는 경로 정보를 포함할 수 있다. 예를 들어, 실사의 당구 게임 이미지는 실사의 당구 테이블 상에서 적어도 하나의 실사의 수구가 이동하여 적어도 하나의 실사의 목적구와 충돌하는 경로 정보를 포함할 수 있다.The photorealistic billiards game image may include path information where at least one photorealistic billiard ball moves on the photorealistic billiard table and collides with another photorealistic billiard ball. For example, an image of a real-life billiard game may include path information where at least one real-time cue ball moves on a real-time billiard table and collides with at least one real-time object ball.
프로세서(222)는 실사의 당구 게임 이미지로부터 경로 정보를 추출할 수 있다. 프로세서(222)는 실사의 당구 게임 이미지로부터 추출된 경로 정보에 기초하여 가상의 당구 테이블 상에 배치된 가상의 당구공들 및 가상의 당구공들 중 적어도 하나의 가상의 당구공의 이동 경로를 포함하는 가상의 당구 게임 이미지를 생성할 수 있다. 예를 들어, 프로세서(222)는 실사의 당구 게임 이미지로부터 추출된 경로 정보에 기초하여, 가상의 당구 테이블 상에서 가상의 수구가 이동하여 적어도 하나의 가상의 목적구와 충돌하는 이동 경로를 포함하는 가상의 당구 게임 이미지를 생성할 수 있다.The processor 222 may extract path information from the actual billiard game image. The processor 222 includes a movement path of at least one virtual billiard ball among the virtual billiard balls and the virtual billiard balls placed on the virtual billiard table based on path information extracted from the actual billiard game image. You can create an image of a virtual billiards game. For example, the processor 222 may create a virtual cue ball that includes a movement path where a virtual cue ball moves on a virtual billiard table and collides with at least one virtual object ball, based on path information extracted from an actual billiard game image. You can create a billiards game image.
다른 실시예에서, 외부 장치(예: 모바일 장치(240), 터치 보드 패널 장치(250), 또는 서버)가 실사의 당구 게임 이미지로부터 경로 정보를 추출하고, 추출된 경로 정보를 프로젝터 장치(210)에 전송할 수 있다. 프로세서는 외부 장치로부터 경로 정보를 수신할 수 있다.In another embodiment, an external device (e.g.,
프로세서(222)는 외부 장치로부터 전송된 경로 정보에 기초하여 가상의 당구 테이블 상에 배치된 가상의 당구공들 및 가상의 당구공들 중 적어도 하나의 이동 경로를 포함하는 가상의 당구 게임 이미지를 생성할 수 있다. 예를 들어, 프로세서(222)는 실사의 당구 게임 이미지에 포함된 경로 정보에 기초하여, 가상의 당구 테이블 상에서 가상의 수구 또는 가상의 목적구들 중 적어도 하나의 이동 경로를 포함하는 가상의 당구 게임 이미지를 생성할 수 있다.The processor 222 generates a virtual billiard game image including virtual billiard balls arranged on a virtual billiard table and a movement path of at least one of the virtual billiard balls based on path information transmitted from an external device. can do. For example, the processor 222 creates a virtual billiard game image including a movement path of at least one of the virtual cue ball or the virtual object balls on the virtual billiard table, based on the path information included in the actual billiard game image. can be created.
일 실시예에서, 경로 정보는 실사의 당구공들 중 적어도 하나의 당구공의 시간에 따른 이동을 나타내기 위한 당구 테이블 상에서의 당구공 위치 좌표의 변화 정보를 포함할 수 있다. 예를 들어, 경로 정보는 실사의 당구 테이블 상에서의 실사의 수구에 대한 당구공 위치 좌표의 시간에 따른 변화 정보 및 적어도 하나의 실사의 목적구에 대한 당구공 위치 좌표의 시간에 따른 변화 정보를 포함할 수 있다. 또 다른 예로서, 당구공의 위치 좌표는 당구 테이블의 일측의 모서리와 다른 일측의 모서리를 각각 X축 및 Y축으로 하여 형성되는 좌표계에 기초하여, 좌표 값으로 표시될 수 있다. 경로 정보는 상기 좌표계에서 시간에 따른 좌표 값의 변화를 포함할 수 있다. 일 실시예에 따르면, 경로 정보는 X 좌표 및 Y 좌표를 매개 변수로 하는 수학적 함수로 표시될 수 있다.In one embodiment, the path information may include change information in the position coordinates of a billiard ball on a billiard table to indicate the movement of at least one billiard ball among the actual billiard balls over time. For example, the path information includes information about changes over time in the position coordinates of a billiard ball relative to a cue ball on an actual billiard table and information about changes over time in the position coordinates of a billiard ball relative to at least one object ball of the real world. can do. As another example, the position coordinates of the billiard ball may be expressed as coordinate values based on a coordinate system formed with the corner of one side of the billiard table and the corner of the other side as the X-axis and Y-axis, respectively. Path information may include changes in coordinate values over time in the coordinate system. According to one embodiment, path information may be expressed as a mathematical function with X coordinates and Y coordinates as parameters.
프로세서(222)는 경로 정보에 기초하여, 가상의 당구공들 중 적어도 하나가 이동 경로 상에서 시간에 따라 이동하는 가상의 당구 게임 이미지를 생성할 수 있다. 예를 들어, 프로세서(222)는 경로 정보에 기초하여, 가상의 수구 및 적어도 하나의 가상의 목적구 각각이 시간에 따라 이동하는 가상의 당구 게임 이미지를 생성할 수 있다. 이동 경로는 해당 이동 경로를 따라 간격을 두고 가상의 당구 게임 이미지 상에 배치된 가상의 당구공의 이미지들에 의해 표시될 수 있다. 예를 들어, 이동 경로는 가상의 수구 및 적어도 하나의 가상의 목적구에 대응되는 복수의 원형 이미지들에 의해 표시될 수 있다. 복수의 원형 이미지들은 설정된 간격을 두고 해당 이동 경로를 따라 배치될 수 있다. 복수의 원형 이미지들은 해당 이동 경로를 따라 순차적으로 표시될 수 있다. 예를 들어, 이동 경로는 해당 이동 경로를 따라 설정된 간격을 두고 배치된 가상의 수구에 대응되는 복수의 수구 원형 이미지들 및 적어도 하나의 가상의 목적구에 대응되는 복수의 목적구 원형 이미지들에 의해 표시될 수 있다. 이동 경로는 해당 이동 경로를 따라 해당 이동 경로를 따라 설정된 시간 간격을 두고 배치된 가상의 수구에 대응되는 복수의 수구 원형 이미지들 및 적어도 하나의 가상의 목적구에 대응되는 복수의 목적구 원형 이미지들에 의해 표시될 수 있다. 다른 예로, 이동 경로는 해당 이동 경로를 따라 설정된 거리 간격을 두고 배치된 가상의 수구에 대응되는 복수의 수구 원형 이미지들 및 적어도 하나의 가상의 목적구에 대응되는 복수의 목적구 원형 이미지들에 의해 표시될 수도 있다.Based on the path information, the processor 222 may generate a virtual billiard game image in which at least one of the virtual billiard balls moves with time on the movement path. For example, the processor 222 may generate a virtual billiard game image in which each of the virtual cue ball and at least one virtual object ball moves over time based on the path information. The movement path may be displayed by images of virtual billiard balls placed on the virtual billiard game image at intervals along the movement path. For example, the movement path may be displayed by a plurality of circular images corresponding to a virtual cue ball and at least one virtual object ball. A plurality of circular images may be arranged along the movement path at set intervals. A plurality of circular images may be displayed sequentially along the corresponding movement path. For example, the movement path is composed of a plurality of cue ball circular images corresponding to a virtual cue ball and a plurality of object ball circular images corresponding to at least one virtual object ball arranged at set intervals along the movement path. can be displayed. The movement path includes a plurality of cue ball circular images corresponding to a virtual cue ball and a plurality of object ball circular images corresponding to at least one virtual object ball arranged at set time intervals along the movement path. It can be displayed by . As another example, the movement path is composed of a plurality of cue ball circular images corresponding to a virtual cue ball and a plurality of object ball circular images corresponding to at least one virtual object ball arranged at set distance intervals along the movement path. It may be displayed.
프로젝터 장치(210)는 당구 테이블에 투사된 가상의 당구 게임 이미지를 통해 가상 당구공의 시간에 따른 이동 경로를 보여줌으로써 사용자에게 당구 플레이에 의한 당구공의 이동을 현실감 있게 제공할 수 있다.The
일 실시예에서, 리모트 콘트롤러(230)는 원격으로 통신망(221)을 통하여 프로젝트 장치(210)를 제어할 수 있다. 리모트 콘트롤러(230)는 예를 들어 전원 조작부(232)와 프로젝터 장치(210)의 기능을 제어하기 위한 여러 기능 조작부(234)들을 포함할 수 있다. 전원 조작부(232) 및 기능 조작부(234)들은 버튼식 또는 터치식으로 구현될 수 있다. 기능 조작부(234)들은 당구 테이블에 투사되는 가상의 당구 게임 이미지 내 가상의 당구공들 중에서 이동 경로를 표시할 가상의 당구공을 선택하기 위한 기능 조작부, 및/또는 가상의 당구 게임 이미지에 포함되는 로고/그림/텍스트 등을 변경하기 위한 기능 조작부를 포함할 수 있다. 사용자는 기능 조작부(234)를 조작하는 것에 의해 당구 테이블에 이동 경로가 표시되는 적어도 하나의 가상의 당구공을 선택할 수 있다.In one embodiment, the
메모리(224)는 프로세서(222)가 처리 동작을 수행하는데 필요한 정보를 저장한다. 예를 들어, 메모리(224)는 프로세서(222)에 의해 실행 가능한 인스트럭션들과 가상 당구공들에 할당된 위치 정보, 가상 당구공들의 이동 경로 및 가상의 당구 게임 이미지 중 적어도 하나를 저장할 수 있다. 메모리(224)는 RAM, DRAM, SRAM과 같은 휘발성 메모리 및/또는 플래쉬 메모리와 같은 이 기술 분야에서 알려진 비휘발성 메모리를 포함할 수 있다.
투사 영상 출력 모듈(226)은 가상의 당구 게임 이미지를 당구 테이블의 상면을 향해 투사할 수 있다. 투사 영상 출력 모듈(226)은 가상의 당구 게임 이미지에 대응되는 영상 신호를 생성하는 광원을 포함하는 조명부, 및 영상 신호를 굴절, 반사, 확대, 및/또는 축소하기 위한 렌즈 및/또는 거울을 포함할 수 있다. 투사 영상 출력 모듈(226)은 또한 광학적 효과를 위한 광학 필름이나 그림, 로고, 텍스트 등을 가상의 당구 게임 이미지에 중첩시키기 위한 필름을 더 포함할 수도 있다.The projection
통신 모듈(228)은 유선 통신 및/또는 무선 통신에 따라 통신망(221)을 통하여 외부 장치와 통신할 수 있다. 일례로서, 통신 모듈(228)은 블루투스, WiFi(Wireless Fidelity) direct 또는 IrDA와 같은 근거리 통신 네트워크의 무선 통신을 수행할 수 있다.The
통신 모듈(228)은 외부 장치로부터 제어 신호를 수신할 수 있고, 프로세서(222)는 외부 장치로부터 수신한 제어 신호에 기초하여 가상의 당구 게임 이미지에서 이동 경로를 표시할 가상의 당구공을 결정할 수 있다. 외부 장치는 예를 들어 이동 경로를 표시할 가상의 당구공을 결정하는 제어 신호를 생성할 수 있는 리모트 콘트롤러(230), 터치 보드 패널 장치(250), 또는 모바일 장치(240) 중에서 적어도 하나를 포함할 수 있다.The
실시예에 따라, 프로젝터 장치(210)는 카메라(미도시)를 더 포함할 수도 있다. 카메라는 당구 테이블을 촬영한 당구 테이블 영상을 획득할 수 있다. 예를 들어, 사용자의 당구 플레이를 실사의 당구 게임 이미지로 녹화할 수 있다. 프로세서(222)는 투사 영상 출력 모듈(226)을 통해 녹화된 실사의 당구 게임 이미지를 당구 테이블 상에 가상의 당구 게임지로 투사할 수 있다.Depending on the embodiment, the
실시예에 따라, 프로세서(222)는 카메라를 통해 획득된 실사의 당구 테이블 영상 및/또는 센서(예: 마이크)의 센서 데이터를 분석하는 것을 통해 사용자의 당구 큐 대가 실제 당구공에 맞는 것을 감지할 수 있다. 예를 들어, 실사의 당구 테이블 영상에서 실제 당구공이 당구 큐와의 접촉에 의해 이동이 감지된 경우 또는 마이크에 의해 획득된 소리 데이터에서 당구 큐에 의한 당구공의 타격 소리가 감지된 경우, 사용자의 당구 큐가 실제 당구공에 맞는 것이 감지될 수 있다. 당구 큐가 실제 당구공에 맞는 것이 감지된 경우, 프로세서(222)는 당구 테이블에 대한 가상의 당구 게임 이미지의 투사를 중지시킴으로써 사용자가 실제 당구 테이블 상에서 당구공의 이동을 수월하게 인지할 수 있도록 제어할 수 있다. 즉, 본 발명에 따르면, 실제의 당구 테이블에 가상의 당구공들의 위치 및 움직임들을 효과적으로 투사함으로써, 사용자가 당구 게임의 연습 효과를 극대화할 수 있게 된다.Depending on the embodiment, the processor 222 may detect whether the user's billiard cue stick hits an actual billiard ball by analyzing the actual billiard table image acquired through a camera and/or sensor data from a sensor (e.g., a microphone). You can. For example, if the movement of an actual billiard ball is detected by contact with a billiard cue in an actual billiard table video, or if the sound of a billiard ball being hit by a billiard cue is detected in sound data acquired by a microphone, the user's It can be detected that the billiard cue hits an actual billiard ball. When it is detected that the billiard cue hits the actual billiard ball, the processor 222 stops projection of the virtual billiard game image on the billiard table so that the user can easily perceive the movement of the billiard ball on the actual billiard table. can do. That is, according to the present invention, the user can maximize the practice effect of the billiard game by effectively projecting the positions and movements of virtual billiard balls on the actual billiard table.
실시예에 따라, 투사 영상 출력 모듈(226)은 프로세서(222), 메모리(224) 및 통신 모듈(228)과 물리적으로 이격된 공간에 위치할 수 있다. 예를 들어, 투사 영상 출력 모듈(226)이 당구 테이블의 상면의 위쪽(above)에 위치하고, 프로세서(222), 메모리(224) 및 통신 모듈(228)은 당구 테이블이 놓인 지면에 위치할 수 있다. 이격된 공간에 위치하는 투사 영상 출력 모듈(226)은 통신망을 통해 프로세서(222), 메모리(224) 및 통신 모듈(228)과 통신할 수 있다. 투사 영상 출력 모듈(226)이 프로세서(222), 메모리(224) 및 통신 모듈(228)과 물리적으로 이격된 공간에 위치하는 경우 투사 영상 출력 모듈(226)은 통신을 위한 별도의 통신 모듈(미도시)을 더 포함할 수 있다. 프로세서(222)는 생성된 가상의 당구 게임 이미지를 통신망을 통해 투사 영상 출력 모듈로 전송할 수 있다. 전송된 가상의 당구 게임 이미지는 투사 영상 출력 모듈(226)에 의해 실제 당구 테이블의 상면에 투사될 수 있다.Depending on the embodiment, the projection
다른 예로, 프로세서(222), 메모리(224) 및 통신 모듈(228)은 터치 보드 패널 장치(250) 내에 위치할 수도 있다.As another example, the processor 222,
도 3은 본 발명에 따른 영상 투사 시스템의 또다른 실시예를 도시한 것이다.Figure 3 shows another embodiment of an image projection system according to the present invention.
도 3을 참조하면, 영상 투사 시스템(200)은 복수의 프로젝터 장치들(270, 271, 272)(예: 도 1의 프로젝터 장치(110)), 복수의 당구 테이블들(280, 281, 282) 및 영상 투사 서버(260)를 포함할 수 있다. 영상 투사 서버(260)는 복수의 프로젝터 장치들(270, 271, 272)과 통신망(261)을 통하여 연결되어 있다. 각각의 프로젝터 장치들(270, 271, 272)은 각각의 당구 테이블들(280, 281, 282)과 이격되어 당구 테이블(280, 281, 282)의 상면의 위쪽에 위치할 수 있다. 복수의 당구 테이블들(280, 281, 282)은 서로 다른 당구장에 위치할 수도 있고, 또는 하나의 당구장에 위치할 수 있다.Referring to FIG. 3, the
도 1 및 도 2에 기재된 실시예와 달리, 도 3의 실시예에서는 실사의 당구 게임 이미지로부터 가상의 당구 게임 이미지를 생성하는 프로세서가 영상 투사 서버(260)에 위치하고, 프로젝터 장치(270, 271, 272)를 이용하여 가상의 당구 게임 이미지가 당구 테이블(280, 281, 282)에 각각 투사된다.Unlike the embodiment shown in FIGS. 1 and 2, in the embodiment of FIG. 3, a processor for generating a virtual billiard game image from an actual billiard game image is located in the
도 3을 참조하면, 영상 투사 서버(260)는 프로세서(262), 메모리(264), 통신 모듈(266)을 포함할 수 있다. 영상 투사 서버(260)의 각 구성 요소들은 통신 버스(269)를 통해 서로 통신할 수 있다.Referring to FIG. 3, the
프로세서(262)는 실사의 당구 게임 이미지로부터 가상의 당구 게임 이미지를 생성하고, 통신 모듈(266)은 생성된 가상의 당구 게임 이미지를 통신망을 통하여 프로젝터 장치(270, 271, 272)로 전송할 수 있다. 전송된 가상의 당구 게임 이미지는 프로젝터 장치(270, 271, 272)로부터 당구 테이블(280, 281, 282)의 상면으로 투사된다. 프로세서(262)는 실사의 당구 게임 이미지로부터, 실사의 당구 테이블 상에서 실사의 수구가 이동하여 적어도 하나의 실사의 목적구와 충돌하는 경로 정보를 추출하고, 추출된 경로 정보에 기초하여, 가상의 당구 테이블 상에서 가상의 수구, 및 적어도 하나의 가상의 목적구가 이동하는 이동 경로를 포함하는 가상의 당구 게임 이미지를 생성한다.The
프로세서(262), 메모리(264) 및 통신 모듈(266)의 세부적인 동작은 도 2의 실시예에 기재된 프로세서(222), 메모리(224) 및 통신 모듈(228)과 각각 유사하므로, 이에 대한 상세한 기술은 이하 생략하기로 한다.Since the detailed operations of the
도 4는 일 실시예에 따른 프로젝터 장치 또는 영상 투사 서버가 외부 장치와 연결되어 실사의 당구 게임 이미지에 대응하는 가상의 당구 게임 이미지를 제공하는 것을 설명하기 위한 도면이다.FIG. 4 is a diagram illustrating how a projector device or an image projection server according to an embodiment is connected to an external device to provide a virtual billiard game image corresponding to an actual billiard game image.
도 4를 참조하면, 외부 장치(305) (예: 스마트폰, 태블릿 PC, PDA, 노트북)에 실사의 당구 게임 이미지(310)가 표시되어 있다. 도 3의 예시에서, 실사의 당구 게임 이미지(310)는 실사의 수구(315), 실사의 제1 목적구(320) 및 실사의 제2 목적구(325)를 포함하고, 수구(315)가 이동하여 제1 목적구(320)에 충돌하는 동영상일 수 있다.Referring to FIG. 4, an actual
사용자는 당구 경기를 보다가 실제로 당구 테이블(355)에서 구현하고자 하는 당구공 배치가 나타난 당구 게임 이미지를 캡쳐 또는 촬영할 수 있다. 예를 들어, 사용자는 외부 장치(305)를 이용하여 TV 방송 또는 유투브 등을 통해 당구 경기를 시청할 수 있고, 당구 경기 장면 중 직접 구현하고자 하는 당구공 배치가 나타난 당구 게임 이미지를 캡쳐하거나 해당 당구 경기를 촬영 또는 녹화할 수 있다. 외부 장치(305)는 영상 투사 시스템(100, 200)의 기능을 제어하는 리모트 콘트롤러의 기능을 수행할 수도 있다. 다른 예로, 사용자는 TV로 당구 경기를 시청하고 있는 중에 당구 테이블(355)에서 구현하고자 하는 당구공 배치가 나타난 당구 게임 이미지를 캡쳐하거나 해당 당구 경기를 촬영 또는 녹화할 수도 있다. 사용자는 하나의 영상 프레임뿐만 아니라 동영상을 촬영 또는 녹화할 수도 있다. 사용자가 동영상을 촬영하거나 녹화한 경우, 실사의 당구 게임 이미지(310)는 적어도 하나의 실사의 당구공(예: 수구(315))이 이동하여 적어도 하나의 다른 실사의 당구공(예: 제1 목적구(320))과 충돌하는 경로 정보를 포함할 수 있다.While watching a billiard game, a user can actually capture or photograph a billiard game image showing the billiard ball arrangement that is desired to be implemented on the billiard table 355. For example, the user can use the
사용자는 캡쳐, 촬영 또는 녹화되어 획득된 실사의 당구 게임 이미지(310)를 통신망(321)을 통하여 영상 투사 시스템(100, 200)으로 전송할 수 있다. 프로세서(222, 262)는 수신된 실사의 당구 게임 이미지(310)에서 당구 테이블(327)을 추출하고, 당구 테이블(327) 내에 위치한 당구공들(315, 320, 325)의 각각의 위치 및 컬러를 추출할 수 있다. 실시예에 따라, 실사의 당구 게임 이미지(310)에서 당구 테이블 포인트들이 더 추출될 수도 있고, 프로세서는 당구 테이블 포인트들의 배치와 당구공들(315, 320, 325) 간의 위치 관계를 기초로 당구 테이블(327) 내에서의 당구공들(315, 320, 325)의 위치를 결정할 수 있다.The user can transmit the actual
일 실시예에서, 실사의 당구 게임 이미지(310)에서 당구공들(315, 320, 325) 각각의 위치 및 컬러를 추출하기 위해 특징점 또는 딥러닝(deep learning)(또는 기계 학습) 기반의 객체 추출(또는 인식) 알고리즘이 이용될 수 있다. 예를 들어, 실사의 당구 게임 이미지(310)에서 당구 테이블(327)의 네 개의 모서리들, 당구 테이블 포인트들, 및 당구공들(315, 320, 325)의 중심점이 특징점들로서 추출되고, 특징점들의 위치 관계를 기초로 당구 테이블(327) 내에서의 당구공들(315, 320, 325)의 위치가 결정될 수 있다.In one embodiment, object extraction based on feature points or deep learning (or machine learning) is performed to extract the positions and colors of each of the
이 때, 실사의 당구 게임 이미지(310)에서 당구공들(315, 320, 325)의 컬러 속성도 추출되어 당구공들(315, 320, 325)의 컬러가 인식될 수 있다. 다른 예로, 실사의 당구 게임 이미지(310)가 학습된 뉴럴 네트워크 기반의 인식 모델에 입력되고, 인식 모델로부터 출력된 실사의 당구 게임 이미지(310)에 배치된 당구공들(315, 320, 325)의 위치 좌표와 컬러 속성에 기초하여 당구 테이블(327) 내에서의 당구공들(315, 320, 325) 각각의 위치와 컬러를 결정할 수도 있다. 인식 모델은 많은 수의 학습 이미지들 각각에 대해 각 학습 이미지에서 당구공들의 위치 좌표와 컬러 속성을 추출하여 출력하도록 학습된 모델일 수 있다. 학습 이미지들 각각은 당구공들이 서로 다르게 배치된 당구 게임 이미지들에 대응하고, 당구공들의 실제 위치 값과 실제 컬러 값이 알려진 이미지들이다. 인식 모델의 학습 과정에서는, 인식 모델이 어느 학습 이미지에 대하여 출력된 당구공들의 위치 좌표와 컬러 속성을 해당 학습 이미지에 대해 알려진 실제 위치 값과 실제 컬러 값을 비교하고, 인식 모델의 출력들(당구공들의 위치 좌표와 컬러 속성)과 실제 값들(위치 값 및 컬러 값) 간의 차이가 최소가 되도록 인식 모델의 파라미터들을 업데이트하는 과정이 반복적으로 수행될 수 있다.At this time, the color properties of the
일 실시예에서, 프로세서(222, 262)는 실사의 당구 게임 이미지(310)에서 추출한 당구공들(315, 320, 325)에 대한 위치 정보 및 컬러 정보를 기초로 실사의 당구 게임 이미지(310) 내 당구공들(315, 320, 325)의 위치 및 컬러에 대응하도록 가상의 당구 게임 이미지 내 가상 당구공들(330, 345, 350)의 위치 및 컬러를 결정할 수 있다. 프로세서(222, 262)는 실사의 당구 게임 이미지(310) 내 당구공들(315, 320, 325)의 각 컬러에 기초하여 수구 및 목적구들을 구별할 수 있다. 예를 들어, 실사의 당구 게임 이미지(310)에서 하얀색 또는 노란색의 당구공은 수구로 구별되고, 빨간색 및/또는 노란색의 당구공들은 목적구들로 구별될 수 있다. 노란색의 당구공은 당구 게임 종류나 당구 게임 상황에 따라 수구 또는 목적구로서 구별될 수 있다. 다만, 실시예의 범위가 이에 제한되는 것은 아니고, 프로세서(222, 262)는 당구 게임의 종류(예: 4구, 3쿠션, 포켓볼)에서 정해지는 수구 및 목적구들의 컬러에 기초하여 실사의 당구 게임 이미지(310)에서 수구 및 목적구들을 구별할 수 있다.In one embodiment, the
프로세서는 실사의 당구 게임 이미지(310)로부터 경로 정보를 추출할 수 있다.The processor may extract path information from the actual
일 실시예에서, 프로세서는 당구 테이블 포인트들의 배치와 실사의 당구공들(315, 320, 325) 간의 위치 관계를 기초로 실사의 당구 게임 이미지(310)로부터 경로 정보를 추출할 수 있다. 프로세서(222, 262)는 실사의 당구 게임 이미지(310)의 둘 이상의 영상 프레임들로부터 당구 테이블 포인트들의 배치와 당구공들(315, 320, 325) 간의 위치 관계를 기초로 당구 테이블(327) 내에서의 당구공들(315, 320, 325)의 각각의 위치 및 컬러를 추출할 수 있다. 프로세서(222, 262)는 둘 이상의 영상 프레임들에서의 당구공들(315, 320, 325)의 위치 변화에 기초하여 경로 정보를 추출할 수 있다.In one embodiment, the processor may extract path information from the real-life
다른 실시예에서, 프로세서(222, 262)는 학습된 뉴럴 네트워크 기반의 인식 모델을 이용하여 실사의 당구 게임 이미지로부터 추출된 실사의 수구 및 적어도 하나의 실사의 목적구의 위치 및 컬러에 기초하여 경로 정보를 추출할 수 있다. 프로세서(222, 262)는 실사의 당구 게임 이미지(310)의 둘 이상의 영상 프레임들로부터 학습된 뉴럴 네트워크 기반의 인식 모델을 이용하여 적어도 하나의 실사의 목적구의 위치 및 컬러를 추출할 수 있다. 프로세서(222, 262)는 둘 이상의 영상 프레임들에서의 당구공들(315, 320, 325)의 위치 변화에 기초하여 경로 정보를 추출할 수 있다.In another embodiment, the
프로세서(222, 262)는 추출된 경로 정보에 기초하여 가상의 당구 테이블 상에 배치된 가상의 당구공들(330, 345, 350) 및 가상의 당구공들(330, 345, 350) 중 적어도 하나의 이동 경로를 포함하는 가상의 당구 게임 이미지를 생성할 수 있다. 예를 들어, 프로세서(222, 262)는 실사의 당구 게임 이미지(310)로부터 추출된 경로 정보에 기초하여 가상의 당구 테이블 상에서 가상의 수구(330) 및 가상의 목적구들(345, 350)을 포함하고 가상의 수구(330) 또는 가상의 목적구들(345, 350) 중 적어도 하나의 이동 경로를 포함하는 가상의 당구 게임 이미지를 생성할 수 있다. 도 1의 프로젝터 장치(210)는 투사 영상 출력 모듈(226)을 이용하여 생성된 가상의 당구 게임 이미지를 당구 테이블(355)의 상면을 향해 투사할 수 있다. 또 달리, 도 3의 영상 투사 서버(260)는 프로젝터 장치(270, 271, 272)를 이용하여 생성된 가상의 당구 게임 이미지를 당구 테이블(355)의 상면을 향해 투사할 수 있다.The
다른 실시예에서, 외부 장치(305)가 실사의 당구 게임 이미지(310)로부터 경로 정보를 추출하고, 추출된 경로 정보를 영상 투사 시스템(100, 200)으로 전송할 수 있다. 프로세서(222, 262)는 외부 장치(305)로부터 수신한 경로 정보에 기초하여 가상의 당구 테이블 상에 배치된 가상의 당구공들(330, 345, 350) 및 가상의 당구공들(330, 345, 350) 중 적어도 하나의 이동 경로를 포함하는 가상의 당구 게임 이미지를 생성할 수도 있다.In another embodiment, the
일 실시예에 따른 가상의 당구 게임 이미지에서, 가상의 당구공들(330, 345, 350) 중 적어도 하나가 해당 가상 당구공의 이동 경로 상에서 시간에 따라 이동할 수 있다. 예를 들어, 도 4의 당구 테이블(355)에 투사되는 당구 게임 이미지는 가상의 수구(330)의 시간에 따른 이동을 동영상 형태로 보여줄 수 있다. 일 실시예에서, 프로세서(222, 262)는 사용자로부터 가상의 당구공들(330, 345, 350) 중 적어도 하나가 해당 가상 당구공의 이동 경로 상에서 이동하는 속도를 조절하는 사용자 명령을 수신하고, 가상의 당구공들(330, 345, 350) 중 적어도 하나가 이동 경로 상에서 수신한 사용자 명령에 따른 속도로 이동하는 가상의 당구 게임 이미지를 생성할 수 있다. 예를 들어, 프로세서(222, 262)는 가상의 수구(330) 또는 가상의 목적구들(345, 350) 중 적어도 하나가 이동 경로 상에서 사용자 명령에 따른 속도로 이동하는 가상의 당구 게임 이미지를 생성할 수 있다.In a virtual billiard game image according to an embodiment, at least one of the
다른 실시예에 따른 가상의 당구 게임 이미지에서, 가상의 당구 게임 이미지에 포함된 가상의 당구공들 중 어느 하나의 가상의 당구공의 이동 경로가 해당 가상 당구공의 이동 경로를 따라 간격을 두고 배치된 해당 가상의 당구공의 복수의 원형 이미지들에 의해 표시될 수 있다. 예를 들어, 실사의 당구 게임 이미지(310)에서 실사의 수구(315)의 이동 경로는 가상의 당구 게임 이미지 상에서 가상의 수구(330)의 이동 경로로 표시될 수 있고, 가상의 수구(330)의 이동 경로는 가상의 수구(330)의 이동 경로 따라 설정된 간격을 두고 배치된 복수의 수구 이미지들(332, 334, 336, 340)에 의해 표시될 수 있다.In a virtual billiard game image according to another embodiment, the movement path of any one virtual billiard ball among the virtual billiard balls included in the virtual billiard game image is arranged at intervals along the movement path of the virtual billiard ball. It can be displayed by a plurality of circular images of the corresponding virtual billiard ball. For example, the movement path of the real-
이동 경로를 표시하기 위해 해당 가상 당구공의 이동 경로를 따라 간격을 두고 가상의 당구 게임 이미지 상에 배치된 가상의 당구공의 원형 이미지들은 경로 정보에 기초하여 실사의 당구공들 중 적어도 하나의 시간에 따른 위치 변화를 균등한 시간 간격으로 나타낸 것일 수 있다. 예를 들어, 이동 경로를 따라 배치된 복수의 수구 이미지들 또는 복수의 목적구 이미지들은 경로 정보에 기초하여 실사의 수구 또는 실사의 목적구들 중 적어도 하나의 시간에 따른 위치 변화를 균등한 시간 간격으로 나타낸 것일 수 있다. 도 4의 예에서, 가상의 수구(330)의 이동 경로를 따라 간격을 두고 가상의 당구 게임 이미지 상에 배치된 수구 이미지들(332, 334, 336, 340)은 수구(315)의 시간에 따른 위치 변화를 균등한 시간 간격으로 나타낸 것일 수 있다.In order to display the movement path, circular images of the virtual billiard ball placed on the virtual billiard game image at intervals along the movement path of the virtual billiard ball are displayed at a time of at least one of the actual billiard balls based on the path information. The change in position may be expressed at equal time intervals. For example, a plurality of cue ball images or a plurality of object ball images arranged along a movement path may display a change in the position of at least one of the actual cue ball or object balls over time at equal time intervals based on the path information. It may be indicated. In the example of FIG. 4, the
이동 경로를 표시하기 위해 해당 가상 당구공의 이동 경로를 따라 설정된 간격을 두고 가상의 당구 게임 이미지 상에 배치된 가상의 당구공의 이미지들은 경로 정보에 기초하여 실사의 당구공들 중 적어도 하나의 시간에 따른 위치 변화를 균등한 거리 간격으로 나타낸 것일 수 있다. 예를 들어, 도 4의 예에서, 가상의 수구(330)의 이동 경로를 따라 간격을 두고 가상의 당구 게임 이미지 상에 배치된 수구 이미지들(332, 334, 336, 340) 사이 거리 간격은 동일할 수 있다.In order to display the movement path, images of the virtual billiard ball placed on the virtual billiard game image at set intervals along the movement path of the virtual billiard ball are displayed at the time of at least one of the actual billiard balls based on the path information. The change in location may be expressed at equal distance intervals. For example, in the example of FIG. 4, the distance intervals between the
일 실시예에서, 가상의 당구 게임 이미지는 이동 경로를 따라 간격을 두고 배치된 가상의 당구공의 원형 이미지들을 순차적으로, 또는 동시에 표시하는 당구 게임 이미지일 수 있다. 예를 들어, 가상의 당구 게임 이미지는 복수의 수구 이미지들 또는 복수의 목적구 이미지들을 시간에 따라 순차적으로 표시하는 당구 게임 이미지일 수 있다. 도 4의 예에서, 가상의 수구(330)의 이동 경로를 따라 가상의 수구(330)부터 표시되기 시작하여 시간에 따라 수구 이미지(332), 수구 이미지(334), 수구 이미지(336) 및 수구 이미지(340)가 순차적으로 표시될 수 있다.In one embodiment, the virtual billiard game image may be a billiard game image that sequentially or simultaneously displays circular images of virtual billiard balls arranged at intervals along a movement path. For example, the virtual billiard game image may be a billiard game image that sequentially displays a plurality of cue ball images or a plurality of object ball images over time. In the example of FIG. 4, the display starts from the
가상의 당구 게임 이미지 상에서, 가상 당구공의 이동 경로를 표시하는 복수의 원형 이미지들은 적어도 두 가지 이상의 상이한 형태의 원형 이미지들을 포함할 수 있다. 예를 들어, 복수의 원형 이미지들은 반투명한 원형 이미지 및 불투명한 원형 이미지를 포함할 수 있다.On a virtual billiard game image, a plurality of circular images indicating the movement path of the virtual billiard ball may include at least two different types of circular images. For example, the plurality of circular images may include a translucent circular image and an opaque circular image.
예를 들어, 가상의 수구(330)에 대응되는 수구 이미지들(332, 334, 336, 340)은 적어도 두 가지 이상의 상이한 형태의 수구 이미지들을 포함할 수 있다. 수구 이미지들(332, 334, 336, 340)은 반투명한 수구 이미지(예: 수구 이미지(332)) 및 불투명한 수구 이미지(예: 수구 이미지(340))를 포함할 수 있다. 반투명한 원형 이미지에서는 원형이 점선으로 표시되고, 불투명한 원형 이미지에서는 원형이 실선으로 표시될 수 있다. 또 달리, 반투명한 원형 이미지와 불투명한 원형 이미지는 서로 색깔을 달리하여 구분되도록 표시될 수 있다. 다만, 이는 예시일 뿐이며 가상의 수구(330)에 대응되는 수구 이미지들은 다양한 형태의 수구 이미지일 수 있다.For example, the
일 실시예에서, 가상 당구공의 이동 경로를 표시하는 복수의 원형 이미지들은 이동 경로 상의 복수의 지점들에서 동일한 형태의 원형 이미지로 표시될 수 있다. 복수의 지점들은 가상의 수구(330)가 적어도 하나의 가상의 목적구(예: 가상의 목적구(345))와 충돌하는 지점 또는 가상의 수구(330)가 가상의 당구 테이블의 모서리에 접촉하는 지점(예: 도 5의 가상의 수구 이미지들(415, 420, 425)이 배치된 지점)을 포함할 수 있다. 예를 들어, 이동 경로는 이동 경로 상의 적어도 하나의 특정 지점에서 제1 형태의 수구 이미지로 표시되고, 다른 지점에서 제2 형태의 수구 이미지로 표시될 수 있다. 예를 들어, 가상의 수구(330)의 이동 경로는 충돌 지점 및 도착 지점에 위치하는 불투명한 수구 이미지(340) 및 해당 이동 경로 상의 나머지 지점들에 위치하는 반투명한 수구 이미지들(332, 334, 336)로 표시될 수 있다. In one embodiment, a plurality of circular images representing the movement path of a virtual billiard ball may be displayed as circular images of the same shape at a plurality of points on the movement path. The plurality of points are points where the
당구 게임에서 수구가 목적구들의 어느 부분과 충돌하는지에 따라서 수구 및 목적구들의 이동 경로가 매우 달라질 수 있기 때문에, 수구와 목적구들의 충돌 순간은 매우 세심하게 다루어져야 한다. 따라서, 본 발명에 따르면, 가상의 당구 게임 이미지에서 수구 이미지들(332, 334, 336, 340) 중 일부(수구 이미지들(332, 334, 336))가 반투명하게 표시되고 나머지 일부(수구 이미지(340))가 불투명하게 표시됨으로써 사용자가 이동 경로 상에서 특징적인 지점들을 더 잘 식별할 수 있다. 가상의 수구(330), 가상의 제1 목적구(345) 및 가상의 제2 목적구(350)도 다양한 형태로 표시될 수 있다. 예를 들어, 가상의 수구(330), 가상의 제1 목적구(345) 및 가상의 제2 목적구(350)는 불투명하거나 반투명한 형태로 표시될 수 있다. 실제의 당구 테이블(355)에 표시되는 가상의 수구(330), 수구 이미지들(332, 334, 336, 340) 가상의 제1 목적구(345) 및 가상의 제2 목적구(350)의 투명한 정도는 사용자 설정에 의해 조정될 수 있다.In a billiards game, because the movement paths of the cue ball and object balls can be very different depending on which part of the object balls the cue ball collides with, the moment of collision between the cue ball and object balls must be handled very carefully. Therefore, according to the present invention, in the virtual billiard game image, some of the
이와 같이, 프로젝터 장치(210) 및 영상 투사 서버(260)는 실사의 당구 게임 이미지에 포함된 당구공들의 위치 정보 및 경로 정보에 기초하여, 해당 당구공 위치 정보에 대응되는 가상의 당구공 위치 및 해당 당구공 경로 정보에 대응되는 가상의 당구공 이동 경로를 포함하는 가상의 당구 게임 이미지를 생성할 수 있다. 사용자는 당구 테이블(355)에 투사된 가상의 당구 게임 이미지를 통해, 실사의 당구 게임 이미지에 나타난 당구공들(315, 320, 325)의 배치를 실제 당구 테이블(355)에 정확히 구현하고 및 시간에 따른 이동 경로를 확인할 수 있다.In this way, the
일 실시예에서, 가상의 당구 게임 이미지는 사용자 명령에 따라 다르게 생성될 수 있다. 이하, 도 5 내지 도 11을 참조하여 사용자 명령에 따라 다르게 생성되는 가상의 당구 게임 이미지에 대해 설명한다. 도 5 내지 도 11에서는 사용자가 3구 당구 경기를 플레이하고 있는 것으로 가정한다.In one embodiment, virtual billiard game images may be generated differently depending on user commands. Hereinafter, virtual billiard game images that are differently generated according to user commands will be described with reference to FIGS. 5 to 11. 5 to 11, it is assumed that the user is playing a 3-ball billiards game.
도 5 내지 도 11에서 도시된 가상의 당구 게임 이미지에서는 가상의 수구(405)가 가상의 제1 목적구(435)의 왼쪽 부분과 충돌하고 시계 방향으로 당구 테이블을 회전하면서 2개의 모서리들과 순서대로 접촉 후에 다시 가상의 제2 목적구(440)와 다시 충돌하는 이동 경로를 보여준다.In the virtual billiard game images shown in FIGS. 5 to 11, the
일 실시예에서, 프로세서(222, 262)는 가상 당구공들의 이동 경로 상에서 사용자가 필요로 하는 다양한 정보를 표시하는 가상의 당구 게임 이미지를 생성할 수 있다. 예를 들어, 사용자는 이동 경로를 표시하고자 하는 당구공을 선택하는 사용자 명령을 영상 투사 시스템(100, 200)에 입력할 수 있다. 프로세서(222, 262)는 사용자 명령에 의해 선택된 당구공에 대응되는 가상의 당구공의 이동 경로를 포함하는 가상의 당구 게임 이미지를 생성할 수 있다. 예를 들어, 사용자는 수구의 이동 경로, 제1 목적구의 이동 경로, 및 제2 목적구의 이동 경로 중에서 적어도 하나를 선택하는 사용자 명령을 입력할 수 있고, 프로세서(222, 262)는 사용자가 선택한 당구공의 이동 경로를 표시하는 가상의 당구 게임 이미지를 생성할 수 있다. 도 5 내지 도 11에서 사용자 명령은 음성 명령으로 입력되나, 사용자 명령의 형태가 음성 명령에 한정되는 것은 아니다. 예를 들어, 사용자 명령은 리모트 콘트롤러(230)의 기능 조작부를 이용하여 영상 투사 시스템(100, 200)에 입력될 수 있다.In one embodiment, the
도 5를 참조하면, 사용자 명령(407)에 따라 가상의 수구의 이동 경로를 포함하는 가상의 당구 게임 이미지가 투사된 실제 당구 테이블(403)이 도시되어 있다.Referring to FIG. 5 , a real billiard table 403 is shown on which a virtual billiard game image including the movement path of the virtual cue ball is projected according to a
가상의 당구 게임 이미지는 실사의 당구 게임 이미지 상의 실사의 수구, 실사의 제1 목적구 및 실사의 제2 목적구에 대응되는 가상의 수구(405), 가상의 제1 목적구(435) 및 가상의 제2 목적구(440)를 포함할 수 있다. 프로젝터 장치는 가상의 수구(405), 가상의 제1 목적구(435) 및 가상의 제2 목적구(440)를 포함하는 가상의 당구 게임 이미지를 실제 당구 테이블(403) 상에 투사할 수 있다. 사용자는 실제 당구 테이블(403) 상에 투사된 가상의 당구 게임 이미지를 보고 수구의 이동 경로를 보여줄 것을 명령하는 사용자 명령(407)을 영상 투사 시스템(100, 200)에 입력할 수 있다. 영상 투사 시스템(100, 200)은 사용자 명령(407) 수신에 대한 응답으로 가상의 수구(405)의 이동 경로를 포함하는 가상의 당구 게임 이미지를 생성하고, 당구 테이블(403)에 투사할 수 있다.The virtual billiards game image includes a
가상의 당구 게임 이미지 상에서 수구의 이동 경로는 해당 이동 경로 상에 간격을 두고 배치된 가상의 수구(405) 및 가상의 수구에 대응되는 수구 이미지들(예: 수구 이미지들(410, 415, 420, 430))로 표시될 수 있다. 사용자는 복수의 수구 이미지들이 당구 테이블에 동시에 표시됨으로 인하여, 수구의 움직임을 한 눈에 직관적으로 이해하고, 이를 모방하여 연습할 수 있게 된다.The movement path of the cue ball in the virtual billiard game image is a
가상의 수구(405) 및 수구 이미지들(예: 수구 이미지들(410, 415, 420, 430)) 중에서 적어도 일부(예: 가상의 수구(405), 수구 이미지(415))는 불투명하게 표시되고, 다른 일부(예: 수구 이미지(410))는 반투명하게 표시될 수 있다. 예를 들어, 가상의 당구 게임 이미지는 가상의 수구의 이동 경로 상의 출발 지점, 목적구와의 충돌 지점, 및 모서리와의 접촉 지점들에 불투명하게 표시된 가상의 수구(405), 수구 이미지들(415, 420, 425, 430) 및 가상의 수구의 이동 경로 상에 반투명하게 표시된 수구 이미지들(예: 수구 이미지(410))을 포함할 수 있다. 수구가 당구 테이블의 모서리 상의 어느 지점들과 접촉하는지, 또는 목적구의 어느 부분과 충돌하는지에 따라서 수구의 이동 경로가 매우 달라질 수 있기 때문에, 모서리에 접촉하는 복수의 지점들의 수구 이미지들(415, 420, 425) 및 목적구와 충돌하는 지점의 수구 이미지(430)를 두드러지게 표현함으로써 사용자에게 수구의 이동 경로를 보다 쉽게 이해시킬 수 있다.Among the
일 실시예에서, 가상의 당구 게임 이미지는 가상의 수구(405)의 이동 경로 상에 배치된 가상의 수구(405) 및 수구 이미지들(예: 수구 이미지들(410, 415, 420, 425, 430))을 출발 지점의 가상의 수구(405)부터 마지막 충돌 지점의 수구 이미지(430)까지 시간에 따라 순차적으로 표시하는 가상의 당구 게임 이미지일 수 있다.In one embodiment, the virtual billiard game image includes the
도 6을 참조하면, 사용자 명령(507)에 따라 가상의 제1 목적구의 이동 경로를 포함하는 가상의 당구 게임 이미지가 투사된 실제 당구 테이블(403)이 도시되어 있다.Referring to FIG. 6 , a real billiard table 403 is shown on which a virtual billiard game image including the movement path of the virtual first object ball is projected according to a
가상의 당구 게임 이미지는 실사의 당구 게임 이미지 상의 수구, 제1 목적구 및 제2 목적구에 대응되는 가상의 수구(405), 가상의 제1 목적구(515) 및 가상의 제2 목적구(440)를 포함할 수 있다. 프로젝터 장치는 가상의 수구(405), 가상의 제1 목적구(435) 및 가상의 제2 목적구(440)를 포함하는 가상의 당구 게임 이미지를 실제 당구 테이블(403) 상에 투사할 수 있다. 사용자는 실제 당구 테이블(403) 상에 투사된 가상의 당구 게임 이미지를 보고 제1 목적구의 이동 경로를 보여줄 것을 명령하는 사용자 명령(507)을 영상 투사 시스템(100, 200)에 입력할 수 있다. 영상 투사 시스템(100, 200)은 사용자 명령(507) 수신에 대한 응답으로 가상의 제1 목적구(435)의 이동 경로를 포함하는 가상의 당구 게임 이미지를 생성하고, 당구 테이블(403)에 투사할 수 있다.The virtual billiards game image includes a
도 6에서는 가상의 수구(405)와 충돌한 가상의 제1 목적구(435)가 목적구 (520), 목적구(525), 목적구(530), 및 목적구(540)로 배치된 이미지들에 의하여 차례대로 이동하였음을 예시한다. In Figure 6, an image in which the virtual
가상의 당구 게임 이미지 상에서 제1 목적구의 이동 경로는 해당 이동 경로 상에 간격을 두고 배치된 가상의 제1 목적구(435) 및 제1 목적구 이미지들(예: 제1 목적구 이미지들(520, 525, 530, 540))로 표시될 수 있다. 가상의 제1 목적구(435)의 이동 경로를 포함하는 가상의 당구 게임 이미지는 가상의 제1 목적구(435)의 출발 지점에 충돌하는 수구 이미지(510)를 더 포함할 수 있다.In the virtual billiard game image, the movement path of the first object ball is determined by the virtual
가상의 제1 목적구(435) 및 제1 목적구 이미지들(예: 제1 목적구 이미지들(520, 525, 530, 540)) 중에서 적어도 일부(예: 가상의 제1 목적구(435))는 불투명하게 표시되고, 다른 일부(예: 제1 목적구 이미지(520))는 반투명하게 표시될 수 있다. 예를 들어, 가상의 당구 게임 이미지는 가상의 제1 목적구의 이동 경로 상의 출발 지점 및 충돌 지점에 불투명하게 표시된 가상의 제1 목적구(435), 제1 목적구 이미지들(525, 530, 540) 및 가상의 제1 목적구의 이동 경로 상에 반투명하게 표시된 제1 목적구 이미지들(예: 가상의 제1 목적구(520))을 포함할 수 있다.At least some of the virtual
일 실시예에서, 가상의 당구 게임 이미지는 가상의 제1 목적구(435)의 이동 경로 상에 배치된 가상의 제1 목적구(435) 및 제1 목적구 이미지들(예: 제1 목적구 이미지들(520, 525, 530, 540))을 출발 지점의 가상의 제1 목적구(435)부터 도착 지점의 제1 목적구 이미지(540)까지 시간에 따라 순차적으로 표시하는 가상의 당구 게임 이미지일 수 있다.In one embodiment, the virtual billiard game image includes the virtual
일 실시예에서, 사용자는 가상의 당구 게임 이미지가 이동 경로를 표시하는 당구공 이미지들(예: 수구 이미지들(410, 415), 제1 목적구 이미지들(520, 525, 530, 540))을 시간에 따라 순차적으로 표시하는 경우, 당구공 이미지들(예: 수구 이미지들(410, 415), 제1 목적구 이미지들(520, 525, 530, 540))이 가상의 당구 게임 이미지에 순차적으로 표시되는 시간 간격을 빠르거나 느리게 조절하는 사용자 명령(예: 도 5의 사용자 명령(409) 및 도 6의 사용자 명령(509))을 영상 투사 시스템(100, 200)에 입력할 수 있다. In one embodiment, the user selects billiard ball images (e.g.,
예를 들어, 영상 투사 시스템(100, 200)은 수구 또는 목적구들 중 적어도 하나의 가상의 당구공의 이동 경로를 보여줄 것을 명령하는 사용자 명령(예: 사용자 명령(407), 사용자 명령(507))에 따라 가상의 당구공의 이동 경로 상에 배치된 당구공 이미지들(예: 수구 이미지들(405, 410), 제1 목적구 이미지들(435, 520))을 순차적으로 표시하는 당구 게임 이미지를 실제 당구 테이블(예: 당구 테이블(403))에 투사할 수 있다. 사용자는 당구 테이블(예: 당구 테이블(403))에 투사된 가상의 당구 게임 이미지를 보고 순차적으로 표시되는 가상의 당구공 이미지들을 더 빠르게 보여줄 것을 명령하는 사용자 명령(409) 또는 더 느리게 보여줄 것을 명령하는 사용자 명령(509)을 영상 투사 시스템(100, 200)에 입력할 수 있다. 영상 투사 시스템(100, 200)은 사용자 명령(예: 사용자 명령(409), 사용자 명령(509)) 수신에 대한 응답으로 이동 경로 상의 당구공 이미지들(예: 수구 이미지들(405, 410), 제1 목적구 이미지들(435, 520))이 표시되는 시간 간격이 더 짧거나 더 긴 가상의 당구 게임 이미지를 생성하고 실제 당구 테이블(예: 당구 테이블(403))에 투사할 수 있다.For example, the
일 실시예에서, 사용자는 실사의 당구 게임 이미지에 포함된 실사의 당구공들의 이동 경로들 중에서 둘 이상을 선택하는 사용자 명령을 영상 투사 시스템(100, 200)에 입력할 수 있다. 예를 들어, 도 7을 참조하면, 사용자 명령(607)에 따라 가상의 수구 및 제1 목적구의 이동 경로를 포함하는 가상의 당구 게임 이미지가 투사된 실제 당구 테이블(403)이 도시되어 있다. 사용자는 수구 및 제1 목적구의 이동 경로를 보여줄 것을 명령하는 사용자 명령(607)을 영상 투사 시스템(100, 200)에 입력할 수 있다. 프로세서(222, 262)는 사용자 명령(607) 수신에 대한 응답으로 가상의 수구(405) 및 제1 목적구(435)의 이동 경로를 포함하는 가상의 당구 게임 이미지를 생성하고, 당구 테이블(403)에 투사할 수 있다. 수구 및 목적구들의 움직임들을 동시에 하나의 이미지 내에 보여줌으로써, 사용자가 충돌 전후의 당구공들의 움직임을 직관적으로 이해할 수 있게 된다.In one embodiment, a user may input a user command to the
일 실시예에서, 사용자는 실사의 당구 게임 이미지에 포함된 당구공들 중 어느 하나가 다른 당구공과 충돌하는 지점(또는 이른바'두께'라고 함)을 보여줄 것을 명령하는 사용자 명령을 영상 투사 시스템(100, 200)에 입력할 수 있다. 예를 들어, 도 8을 참조하면, 사용자 명령(707)에 따라 가상의 수구와 가상의 제1 목적구가 충돌하는 지점을 표시하는 가상의 당구 게임 이미지가 투사된 당구 테이블이 도시되어 있다.In one embodiment, the user sends a user command to the image projection system (100) to show the point (or so-called 'thickness') where one of the billiard balls included in the photo-realistic billiard game image collides with another billiard ball. , 200). For example, referring to FIG. 8 , a billiard table is shown on which a virtual billiard game image indicating a point where a virtual cue ball and a virtual first object ball collide is projected according to a
사용자는 수구와 제1 목적구가 충돌하는 지점을 보여줄 것을 명령하는 사용자 명령(707)을 영상 투사 시스템(100, 200)에 입력할 수 있다. 프로세서(222, 262)는 사용자 명령(707) 수신에 대한 응답으로 가상의 제1 목적구에 충돌하는 수구 이미지(510)를 포함하는 가상의 당구 게임 이미지를 생성하고 생성된 가상의 당구 게임 이미지를 당구 테이블(403)에 투사할 수 있다. 당구 게임의 승패가 수구와 제1 목적구가 어느 정도 두께로 충돌하는지, 수구와 제1 목적구의 충돌 지점에 따라서 많이 좌우되므로, 도 7에 따른 실시예는 사용자에게 수구와 제1 목적구의 충돌 순간에 보다 집중할 수 있는 이미지를 제공한다.The user may input a
일 실시예에서, 사용자는 실사의 당구 게임 이미지에 포함된 수구가 실사의 당구 게임 이미지 내 당구 테이블의 모서리에 접촉하는 지점(이른바, '쿠션'이라고 함)들 중 어느 하나를 보여줄 것을 명령하는 사용자 명령을 영상 투사 시스템(100, 200)에 입력할 수 있다.In one embodiment, the user commands the cue ball included in the photo-realistic billiard game image to show one of the points (so-called 'cushions') where it touches the edge of the billiard table in the photo-realistic billiard game image. Commands may be entered into the
도 9를 참조하면, 사용자 명령(807)에 따라 가상의 수구(405)의 이동 경로 상에서 가상의 제1 목적구(435)에 충돌하는 수구 이미지(510) 및 가상의 당구 테이블에 첫 번째로 충돌하는 수구 이미지(415)를 포함하는 가상의 당구 게임 이미지가 투사된 실제 당구 테이블(403)이 도시되어 있다.Referring to FIG. 9, an
사용자는 수구가 당구 테이블의 모서리에 접촉하는 첫 번째 지점(또는, '제1 쿠션 지점'이라고 함)을 보여줄 것을 명령하는 사용자 명령(807)을 영상 투사 시스템(100, 200)에 입력할 수 있다. 프로세서(222, 262)는 사용자 명령(807) 수신에 대한 응답으로 가상의 당구 테이블의 모서리에 접촉하는 수구 이미지(415)를 포함하는 가상의 당구 게임 이미지를 생성하고 생성된 가상의 당구 게임 이미지를 당구 테이블(403)에 투사할 수 있다.The user may enter a
수구가 모서리가 처음 접촉하는 지점은 당구 게임의 승패에 많은 영향을 미치므로, 도 9에 따른 실시예는 사용자에게 제1 쿠션 지점에 보다 집중할 수 있는 이미지를 제공한다.Since the point where the edge of the cue ball first contacts has a great influence on the win or loss of a billiard game, the embodiment according to FIG. 9 provides the user with an image that allows the user to focus more on the first cushion point.
도 10을 참조하면, 사용자 명령(907)에 따라 가상의 수구(405)의 이동 경로 상에서 가상의 제1 목적구(435)에 충돌하는 수구 이미지(510), 가상의 당구 테이블에 첫 번째로 충돌하는 수구 이미지(415) 및 가상의 당구 테이블에 두 번째로 충돌하는 수구 이미지(420)를 포함하는 가상의 당구 게임 이미지가 투사된 실제 당구 테이블(403)이 도시되어 있다.Referring to FIG. 10, an
사용자는 수구가 당구 테이블의 모서리에 접촉하는 두 번째 지점(또는, '제2 쿠션 지점'이라고 함)을 보여줄 것을 명령하는 사용자 명령(907)을 영상 투사 시스템(100, 200)에 입력할 수 있다. 프로세서(222, 262)는 사용자 명령(907) 수신에 대한 응답으로 가상의 당구 테이블에 두 번째로 충돌하는 수구 이미지(420)를 포함하는 가상의 당구 게임 이미지를 생성하고 생성된 가상의 당구 게임 이미지를 당구 테이블(403)에 투사할 수 있다. 수구가 모서리들과 어느 지점들에서 차례대로 접촉하는지에 따라서 수구의 전체 이동 경로가 결정되므로, 도 10에 따른 실시예는 사용자에게 수구의 전체 이동 경로를 한 눈에 파악할 수 있는 이미지를 제공한다.The user may enter a
도 11을 참조하면, 사용자 명령(1007)에 따라 가상의 수구(405)의 이동 경로 상에서 가상의 제1 목적구(435)에 충돌하는 수구 이미지(510), 가상의 당구 테이블에 첫 번째로 충돌하는 수구 이미지(415), 가상의 당구 테이블에 두 번째로 충돌하는 수구 이미지(420) 및 가상의 당구 테이블에 세 번째로 충돌하는 수구 이미지(425)를 포함하는 가상의 당구 게임 이미지가 투사된 실제 당구 테이블(403)이 도시되어 있다.Referring to FIG. 11, an
사용자는 수구가 가상의 제2 목적구(440)와 충돌하기 이전의 모든 충돌 지점을 보여줄 것을 명령하는 사용자 명령(1007)을 영상 투사 시스템(100, 200)에 입력할 수 있다. 프로세서(222, 262)는 사용자 명령(1007) 수신에 대한 응답으로 가상의 제1 목적구(435)에 충돌하는 수구 이미지(510), 가상의 당구 테이블에 첫 번째로 충돌하는 수구 이미지(415), 가상의 당구 테이블에 두 번째로 충돌하는 수구 이미지(420) 및 가상의 당구 테이블에 세 번째로 충돌하는 수구 이미지(425)를 포함하는 가상의 당구 게임 이미지를 생성하고 생성된 가상의 당구 게임 이미지를 당구 테이블(403)에 투사할 수 있다.The user may input a
도 12는 일 실시예에 따른 가상의 당구 게임 이미지를 투사하는 방법의 흐름도이다.Figure 12 is a flowchart of a method for projecting a virtual billiard game image according to an embodiment.
동작(1105)에서, 프로세서(222, 262)는 실사의 당구 게임 이미지로부터, 실사의 당구 테이블 상에서 실사의 수구가 이동하여 적어도 하나의 실사의 목적구와 충돌하는 경로 정보를 추출할 수 있다. 실사의 당구 게임 이미지는 외부 장치(예: 도 2의 모바일 장치(240), 터치 보드 패널 장치(250), 또는 서버)로부터 수신될 수 있다.In
프로세서(222, 262)는 당구 테이블 포인트들의 배치와 실사의 당구공들 간의 위치 관계를 기초로 실사의 당구 게임 이미지로부터 경로 정보를 추출할 수 있다. 경로 정보는 실사의 당구공들 중 적어도 하나의 당구공의 시간에 따른 이동을 나타내기 위한 당구 테이블 상에서의 당구공 위치 좌표의 변화 정보를 포함할 수 있다. 예를 들어, 경로 정보는 실사의 당구 테이블 상에서의 실사의 수구에 대한 당구공 위치 좌표의 시간에 따른 변화 정보 및 적어도 하나의 실사의 목적구에 대한 당구공 위치 좌표의 시간에 따른 변화 정보를 포함할 수 있다.The
프로세서(222, 262)는 실사의 당구 게임 이미지의 둘 이상의 영상 프레임들로부터 당구 테이블 포인트들의 배치와 당구공들 간의 위치 관계를 기초로 당구 테이블 내에서의 당구공들의 각각의 위치 및 컬러를 추출할 수 있다. 프로세서(222, 262)는 둘 이상의 영상 프레임들에서의 당구공들의 위치 변화에 기초하여 경로 정보를 추출할 수 있다.The
다른 실시예에서, 프로세서(222, 262)는 학습된 뉴럴 네트워크 기반의 인식 모델을 이용하여 실사의 당구 게임 이미지로부터 추출된 실사의 수구 및 적어도 하나의 실사의 목적구의 위치 및 컬러에 기초하여 경로 정보를 추출할 수 있다. 프로세서(222, 262)는 실사의 당구 게임 이미지의 둘 이상의 영상 프레임들로부터 학습된 뉴럴 네트워크 기반의 인식 모델을 이용하여 적어도 하나의 실사의 목적구의 위치 및 컬러를 추출할 수 있다. 프로세서(222)는 둘 이상의 영상 프레임들에서의 당구공들의 위치 변화에 기초하여 경로 정보를 추출할 수 있다.In another embodiment, the
다른 실시예에서, 프로세서는 외부 장치로부터 경로 정보를 수신할 수 있다.In another embodiment, the processor may receive route information from an external device.
동작(1110)에서, 프로세서(222, 262)는 경로 정보에 기초하여 가상의 당구 테이블 상에 배치된 가상의 당구공들 및 가상의 당구공들 중 적어도 하나의 이동 경로를 포함하는 가상의 당구 게임 이미지를 생성할 수 있다. 예를 들어, 프로세서(222, 262)는 실사의 당구 게임 이미지로부터 추출된 경로 정보에 기초하여, 가상의 당구 테이블 상에서 가상의 수구가 이동하여 적어도 하나의 가상의 목적구와 충돌하는 이동 경로를 포함하는 가상의 당구 게임 이미지를 생성할 수 있다.In
프로세서(222, 262)는 경로 정보에 기초하여, 가상의 당구공들 중 적어도 하나가 이동 경로 상에서 시간에 따라 이동하는 가상의 당구 게임 이미지를 생성할 수 있다. 예를 들어, 프로세서(222, 262)는 경로 정보에 기초하여, 가상의 수구 및 적어도 하나의 가상의 목적구 각각이 시간에 따라 이동하는 가상의 당구 게임 이미지를 생성할 수 있다. 일 실시예에서, 프로세서(222, 262)는 사용자로부터 가상의 당구공들 중 적어도 하나가 해당 가상 당구공의 이동 경로 상에서 이동하는 속도를 조절하는 사용자 명령을 수신하고, 가상의 당구공들 중 적어도 하나가 이동 경로 상에서 수신한 사용자 명령에 따른 속도로 이동하는 가상의 당구 게임 이미지를 생성할 수 있다. 예를 들어, 프로세서(222, 262)는 가상의 수구 또는 가상의 목적구들 중 적어도 하나가 이동 경로 상에서 사용자 명령에 따른 속도로 이동하는 가상의 당구 게임 이미지를 생성할 수 있다.Based on the path information, the
다른 실시예에 따른 가상의 당구 게임 이미지에서, 가상의 당구 게임 이미지에 포함된 가상의 당구공들 중 어느 하나의 가상의 당구공의 이동 경로가 해당 가상 당구공의 이동 경로를 따라 간격을 두고 배치된 해당 가상의 당구공의 복수의 원형 이미지들에 의해 표시될 수 있다. 예를 들어, 이동 경로는 가상의 수구 및 적어도 하나의 가상의 목적구에 대응되는 복수의 원형 이미지들에 의해 표시될 수 있다. 복수의 원형 이미지들은 설정된 간격을 두고 해당 이동 경로를 따라 배치될 수 있다. 복수의 원형 이미지들은 해당 이동 경로를 따라 순차적으로 표시될 수 있다. 예를 들어, 이동 경로는 해당 이동 경로를 따라 설정된 간격을 두고 배치된 가상의 수구에 대응되는 복수의 수구 원형 이미지들 및 적어도 하나의 가상의 목적구에 대응되는 복수의 목적구 원형 이미지들에 의해 표시될 수 있다. 이동 경로는 해당 이동 경로를 따라 해당 이동 경로를 따라 설정된 시간 간격을 두고 배치된 가상의 수구에 대응되는 복수의 수구 원형 이미지들 및 적어도 하나의 가상의 목적구에 대응되는 복수의 목적구 원형 이미지들에 의해 표시될 수 있다. 다른 예로, 이동 경로는 해당 이동 경로를 따라 설정된 거리 간격을 두고 배치된 가상의 수구에 대응되는 복수의 수구 원형 이미지들 및 적어도 하나의 가상의 목적구에 대응되는 복수의 목적구 원형 이미지들에 의해 표시될 수도 있다.In a virtual billiard game image according to another embodiment, the movement path of any one virtual billiard ball among the virtual billiard balls included in the virtual billiard game image is arranged at intervals along the movement path of the virtual billiard ball. It can be displayed by a plurality of circular images of the corresponding virtual billiard ball. For example, the movement path may be displayed by a plurality of circular images corresponding to a virtual cue ball and at least one virtual object ball. A plurality of circular images may be arranged along the movement path at set intervals. A plurality of circular images may be displayed sequentially along the corresponding movement path. For example, the movement path is composed of a plurality of cue ball circular images corresponding to a virtual cue ball and a plurality of object ball circular images corresponding to at least one virtual object ball arranged at set intervals along the movement path. can be displayed. The movement path includes a plurality of cue ball circular images corresponding to a virtual cue ball and a plurality of object ball circular images corresponding to at least one virtual object ball arranged at set time intervals along the movement path. It can be displayed by . As another example, the movement path is composed of a plurality of cue ball circular images corresponding to a virtual cue ball and a plurality of object ball circular images corresponding to at least one virtual object ball arranged at set distance intervals along the movement path. It may be displayed.
이동 경로를 표시하기 위해 해당 가상 당구공의 이동 경로를 따라 간격을 두고 가상의 당구 게임 이미지 상에 배치된 가상의 당구공의 원형 이미지들은 경로 정보에 기초하여 실사의 당구공들 중 적어도 하나의 시간에 따른 위치 변화를 균등한 시간 간격으로 나타낸 것일 수 있다. 예를 들어, 이동 경로를 따라 배치된 복수의 수구 이미지들 또는 복수의 목적구 이미지들은 경로 정보에 기초하여 실사의 수구 또는 실사의 목적구들 중 적어도 하나의 시간에 따른 위치 변화를 균등한 시간 간격으로 나타낸 것일 수 있다. 이동 경로를 표시하기 위해 해당 가상 당구공의 이동 경로를 따라 설정된 간격을 두고 가상의 당구 게임 이미지 상에 배치된 가상의 당구공의 이미지들은 경로 정보에 기초하여 실사의 당구공들 중 적어도 하나의 시간에 따른 위치 변화를 균등한 거리 간격으로 나타낸 것일 수 있다.In order to display the movement path, circular images of the virtual billiard ball placed on the virtual billiard game image at intervals along the movement path of the virtual billiard ball are displayed at a time of at least one of the actual billiard balls based on the path information. The change in position may be expressed at equal time intervals. For example, a plurality of cue ball images or a plurality of object ball images arranged along a movement path may display a change in position over time of at least one of the actual cue ball or the actual object ball at equal time intervals based on the path information. It may be indicated. In order to display the movement path, images of the virtual billiard ball placed on the virtual billiard game image at set intervals along the movement path of the virtual billiard ball are displayed at the time of at least one of the actual billiard balls based on the path information. The change in location may be expressed at equal distance intervals.
가상의 당구 게임 이미지 상에서, 가상 당구공의 이동 경로를 표시하는 복수의 원형 이미지들은 이동 경로 상의 복수의 지점들에서 동일한 형태의 원형 이미지로 표시될 수 있다. 가상의 당구 게임 이미지 상에서, 가상 당구공의 이동 경로를 표시하는 복수의 원형 이미지들은 적어도 두 가지 이상의 상이한 형태의 원형 이미지들을 포함할 수 있다. 예를 들어, 복수의 원형 이미지들은 반투명한 원형 이미지 및 불투명한 원형 이미지를 포함할 수 있다. 예를 들어, 가상의 수구에 대응되는 수구 이미지들은 적어도 두 가지 이상의 상이한 형태의 수구 이미지들을 포함할 수 있다. 수구 이미지들은 반투명한 수구 이미지(도 4의 예: 수구 이미지(332)) 및 불투명한 수구 이미지(예: 도 4의 수구 이미지(340))를 포함할 수 있다. 다만, 이는 예시일뿐이며 가상의 수구에 대응되는 수구 이미지들은 다양한 형태의 수구 이미지일 수 있다.On a virtual billiard game image, a plurality of circular images indicating the movement path of the virtual billiard ball may be displayed as circular images of the same shape at a plurality of points on the movement path. On a virtual billiard game image, a plurality of circular images indicating the movement path of the virtual billiard ball may include at least two different types of circular images. For example, the plurality of circular images may include a translucent circular image and an opaque circular image. For example, water polo images corresponding to a virtual water polo may include at least two different types of water polo images. Apparatus images may include a translucent apparatus image (e.g.,
가상 당구공의 이동 경로를 표시하는 복수의 원형 이미지들은 이동 경로 상의 복수의 지점들에서 동일한 형태의 원형 이미지로 표시될 수 있다. 복수의 지점들은 가상의 수구가 적어도 하나의 가상의 목적구와 충돌하는 지점 또는 가상의 수구가 가상의 당구 테이블의 모서리에 접촉하는 지점을 포함할 수 있다. A plurality of circular images representing the movement path of the virtual billiard ball may be displayed as circular images of the same shape at a plurality of points on the movement path. The plurality of points may include a point where the virtual cue ball collides with at least one virtual object ball or a point where the virtual cue ball contacts a corner of the virtual billiard table.
동작(1115)에서, 프로젝터 장치(예: 프로젝터 장치(110) 또는 프로젝터 장치(210))는 동작(1110)에서 생성된 가상의 당구 게임 이미지를 실제 당구 테이블의 상면에 투사할 수 있다. 프로젝터 장치는 실제 당구 테이블에 투사된 가상의 당구 게임 이미지를 통해 가상 당구공의 시간에 따른 이동 경로를 보여줌으로써 사용자에게 당구 플레이에 의한 당구공의 이동을 현실감 있게 제공할 수 있다. 가상의 당구 게임 이미지는 프로젝터 장치 내에서 생성되어 당구 테이블의 상면에 투사될 수도 있고, 또 달리 외부 장치 또는 영상 투사 서버에서 생성되어 통신망을 통하여 프로젝터 장치로 전송되고, 전송된 가상의 당구 게임 이미지가 프로젝터 장치를 통하여 당구 테이블의 상면에 투사될 수도 있다. In
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 인스트럭션들(instructions)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The embodiments described above may be implemented with hardware components, software components, and/or a combination of hardware components and software components. For example, the devices, methods, and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, and a field programmable gate (FPGA). It may be implemented using a general-purpose computer or a special-purpose computer, such as an array, programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and software applications running on the operating system. Additionally, a processing device may access, store, manipulate, process, and generate data in response to the execution of software. For ease of understanding, a single processing device may be described as being used; however, those skilled in the art will understand that a processing device includes multiple processing elements and/or multiple types of processing elements. It can be seen that it may include. For example, a processing device may include multiple processors or one processor and one controller. Additionally, other processing configurations, such as parallel processors, are possible.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 인스트럭션들(instructions), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of these, independently or collectively, to configure a processing unit to operate as desired. The processing unit can be commanded. Software and/or data may be used on any type of machine, component, physical device, virtual equipment, computer storage medium or device to be interpreted by or to provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave. Software may be distributed over networked computer systems and thus stored or executed in a distributed manner. Software and data may be stored on a computer-readable recording medium.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령(예: 인스트럭션들) 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 저장할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to the embodiment may be implemented in the form of program instructions (eg, instructions) that can be executed through various computer means and recorded on a computer-readable medium. A computer-readable medium may store program instructions, data files, data structures, etc., singly or in combination, and the program instructions recorded on the medium may be specially designed and constructed for the embodiment or may be known and available to those skilled in the art of computer software. there is. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -Includes optical media (magneto-optical media) and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, etc. Examples of program instructions include machine language code, such as that produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter, etc.
위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The hardware devices described above may be configured to operate as one or multiple software modules to perform the operations of the embodiments, and vice versa.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited drawings, those skilled in the art can apply various technical modifications and variations based on this. For example, the described techniques are performed in a different order than the described method, and/or components of the described system, structure, device, circuit, etc. are combined or combined in a different form than the described method, or other components are used. Alternatively, appropriate results may be achieved even if substituted or substituted by an equivalent.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims also fall within the scope of the claims described below.
Claims (25)
실사의 당구 게임 이미지로부터 상기 가상의 당구 게임 이미지를 생성하는 프로세서; 및
상기 생성된 가상의 당구 게임 이미지를 상기 당구 테이블의 상면을 향해 투사하는 투사 영상 출력 모듈을 포함하고,
상기 프로세서는,
상기 실사의 당구 게임 이미지로부터, 실사의 당구 테이블 상에서 실사의 수구가 이동하여 적어도 하나의 실사의 목적구와 충돌하는 경로 정보를 추출하고,
상기 추출된 경로 정보에 기초하여, 가상의 당구 테이블 상에서 가상의 수구가 이동하여 적어도 하나의 가상의 목적구와 충돌하는 이동 경로를 포함하는 상기 가상의 당구 게임 이미지를 생성하는,
프로젝터 장치.In the projector device for projecting a virtual billiard game image on a billiard table,
a processor that generates the virtual billiard game image from an actual billiard game image; and
A projection image output module that projects the generated virtual billiard game image toward the upper surface of the billiard table,
The processor,
From the real-life billiards game image, extract path information where the real-life cue ball moves on the real-life billiard table and collides with at least one real-time object ball,
Based on the extracted path information, generating the virtual billiard game image including a movement path where a virtual cue ball moves on a virtual billiard table and collides with at least one virtual object ball,
Projector device.
상기 경로 정보는,
상기 실사의 수구에 대한 위치 좌표의 시간에 따른 변화 정보 및 상기 적어도 하나의 실사의 목적구에 대한 위치 좌표의 시간에 따른 변화 정보를 포함하는, 프로젝터 장치.According to paragraph 1,
The route information is,
A projector device comprising change information over time in position coordinates for the live shooting apparatus and change information over time in position coordinates for the at least one live shooting target ball.
상기 가상의 당구 게임 이미지 내에서 상기 가상의 수구 및 상기 적어도 하나의 가상의 목적구가 상기 이동 경로를 따라서 시간에 따라 이동하는, 프로젝터 장치.According to paragraph 1,
A projector device in which the virtual cue ball and the at least one virtual object ball move with time along the movement path within the virtual billiard game image.
상기 이동 경로는,
상기 가상의 수구 및 상기 적어도 하나의 가상의 목적구에 대응되는 복수의 원형 이미지들에 의해 표시되고,
상기 복수의 원형 이미지들은 설정된 간격을 두고 상기 이동 경로를 따라 배치되는, 프로젝터 장치.According to paragraph 1,
The movement path is,
Displayed by a plurality of circular images corresponding to the virtual cue ball and the at least one virtual object ball,
A projector device, wherein the plurality of circular images are arranged along the movement path at set intervals.
상기 복수의 원형 이미지들은 상기 이동 경로를 따라 순차적으로 표시되는, 프로젝터 장치.According to paragraph 4,
A projector device, wherein the plurality of circular images are sequentially displayed along the movement path.
상기 복수의 원형 이미지들은 적어도 두 가지 이상의 상이한 형태의 원형 이미지들을 포함하는, 프로젝터 장치.According to paragraph 4,
A projector device, wherein the plurality of circular images include at least two different types of circular images.
상기 두 가지 이상의 상이한 형태의 원형 이미지들은 반투명한 원형 이미지 및 불투명한 원형 이미지를 포함하는, 프로젝터 장치.According to clause 6,
A projector device, wherein the two or more different types of circular images include a translucent circular image and an opaque circular image.
상기 복수의 원형 이미지들은 상기 이동 경로 상의 복수의 지점들에서 동일한 형태의 원형 이미지로 표시되는, 프로젝터 장치.According to clause 6,
A projector device, wherein the plurality of circular images are displayed as circular images of the same shape at a plurality of points on the movement path.
상기 복수의 지점들은 상기 가상의 수구가 상기 적어도 하나의 가상의 목적구와 충돌하는 지점 또는 상기 가상의 수구가 상기 가상의 당구 테이블의 모서리에 접촉하는 지점을 포함하는, 프로젝터 장치.According to clause 8,
The plurality of points include a point where the virtual cue ball collides with the at least one virtual object ball or a point where the virtual cue ball contacts a corner of the virtual billiard table.
상기 프로세서는,
상기 실사의 당구 게임 이미지에서 당구 테이블 포인트들을 추출하고,
상기 추출된 당구 테이블 포인트들의 배치와 상기 실사의 수구 또는 상기 적어도 하나의 실사의 목적구 사이의 위치 관계에 기초하여 상기 경로 정보를 추출하는, 프로젝터 장치.According to paragraph 1,
The processor,
Extract billiard table points from the actual billiard game image,
A projector device that extracts the path information based on a positional relationship between the arrangement of the extracted billiard table points and the cue ball of the live test or the at least one object ball of the live test.
상기 프로세서는,
학습된 뉴럴 네트워크 기반의 인식 모델을 상기 실사의 당구 게임 이미지에 적용하여 상기 실사의 당구 게임 이미지로부터 상기 실사의 수구 및 상기 적어도 하나의 실사의 목적구의 위치를 추출하고,
상기 추출된 실사의 수구 및 상기 적어도 하나의 실사의 목적구의 위치에 기초하여 상기 경로 정보를 추출하는, 프로젝터 장치.According to paragraph 1,
The processor,
Applying the learned neural network-based recognition model to the real-life billiard game image to extract the positions of the real-time cue ball and the at least one real-time object ball from the real-time billiard game image,
A projector device that extracts the route information based on the positions of the extracted live shooting object ball and the at least one live shooting object ball.
상기 프로세서는,
상기 가상의 수구 및 상기 적어도 하나의 가상의 목적구가 상기 이동 경로 상에서 사용자 명령에 따른 속도로 이동하는 상기 가상의 당구 게임 이미지를 생성하는, 프로젝터 장치.According to paragraph 1,
The processor,
A projector device that generates the virtual billiard game image in which the virtual cue ball and the at least one virtual object ball move on the movement path at a speed according to a user command.
상기 프로세서는
사용자로부터 상기 가상의 수구 및 상기 적어도 하나의 가상의 목적구 중에서 어느 하나의 가상의 당구공을 선택하는 사용자 명령을 수신하고,
상기 선택된 가상의 당구공이 상기 이동 경로 상에서 이동하는 상기 가상의 당구 게임 이미지를 생성하는, 프로젝터 장치.According to paragraph 1,
The processor is
Receiving a user command from a user to select one virtual billiard ball among the virtual cue ball and the at least one virtual object ball,
A projector device that generates the virtual billiard game image in which the selected virtual billiard ball moves on the movement path.
실사의 당구 게임 이미지로부터 상기 가상의 당구 게임 이미지를 생성하는 프로세서; 및
상기 생성된 가상의 당구 게임 이미지를 통신망을 통하여 상기 프로젝터 장치로 전송하는 통신 모듈
을 포함하고,
상기 전송된 가상의 당구 게임 이미지는 상기 프로젝터 장치로부터 상기 당구 테이블의 상면으로 투사되는 영상 투사 서버.In an image projection server that projects a virtual billiard game image on a billiard table using a projector device,
a processor that generates the virtual billiard game image from an actual billiard game image; and
A communication module that transmits the generated virtual billiard game image to the projector device through a communication network
Including,
An image projection server wherein the transmitted virtual billiard game image is projected from the projector device to the upper surface of the billiard table.
상기 프로세서는,
상기 실사의 당구 게임 이미지로부터, 실사의 당구 테이블 상에서 실사의 수구가 이동하여 적어도 하나의 실사의 목적구와 충돌하는 경로 정보를 추출하고,
상기 추출된 경로 정보에 기초하여, 가상의 당구 테이블 상에서 가상의 수구, 및 적어도 하나의 가상의 목적구가 이동하는 이동 경로를 포함하는 상기 가상의 당구 게임 이미지를 생성하는, 영상 투사 서버.According to clause 14,
The processor,
From the real-life billiards game image, extract path information where the real-life cue ball moves on the real-life billiard table and collides with at least one real-time object ball,
An image projection server that generates the virtual billiard game image including a movement path along which a virtual cue ball and at least one virtual object ball move on a virtual billiard table, based on the extracted path information.
상기 경로 정보는,
상기 실사의 수구에 대한 위치 좌표의 시간에 따른 변화 정보 및 상기 적어도 하나의 실사의 목적구에 대한 위치 좌표의 시간에 따른 변화 정보를 포함하는, 영상 투사 서버.According to clause 15,
The route information is,
An image projection server comprising change information over time in position coordinates for the live shooting cue and change information over time in position coordinates for the at least one live shooting target ball.
상기 가상의 당구 게임 이미지 내에서 상기 가상의 수구 및 상기 적어도 하나의 가상의 목적구가 상기 이동 경로를 따라서 시간에 따라 이동하는, 영상 투사 서버.According to clause 15,
An image projection server wherein the virtual cue ball and the at least one virtual object ball move with time along the movement path within the virtual billiard game image.
상기 프로세서는
사용자로부터 상기 가상의 수구 및 상기 적어도 하나의 가상의 목적구 중에서 어느 하나의 가상의 당구공을 선택하는 사용자 명령을 수신하고,
상기 선택된 가상의 당구공에 대응되는 복수의 원형 이미지들이 상기 선택된 가상의 당구공의 이동 경로 상에 배치된 상기 가상의 당구 게임 이미지를 생성하는, 영상 투사 서버.According to clause 15,
The processor is
Receiving a user command from a user to select one virtual billiard ball among the virtual cue ball and the at least one virtual object ball,
An image projection server that generates the virtual billiard game image in which a plurality of circular images corresponding to the selected virtual billiard ball are disposed on a movement path of the selected virtual billiard ball.
상기 복수의 원형 이미지들은 상기 선택된 가상의 당구공의 이동 경로를 따라 순차적으로 표시되는, 영상 투사 서버.According to clause 18,
An image projection server wherein the plurality of circular images are sequentially displayed along a movement path of the selected virtual billiard ball.
상기 프로세서는
상기 복수의 원형 이미지들이 순차적으로 표시되는 시간 간격을 조절하는 사용자 명령을 수신하고,
상기 복수의 원형 이미지들이 상기 선택된 가상의 당구공의 이동 경로를 따라 상기 조절된 시간 간격을 두고 순차적으로 표시되는 상기 가상의 당구 게임 이미지를 생성하는, 영상 투사 서버.According to clause 18,
The processor is
Receiving a user command to adjust a time interval at which the plurality of circular images are sequentially displayed,
An image projection server that generates the virtual billiard game image in which the plurality of circular images are displayed sequentially at the adjusted time interval along the movement path of the selected virtual billiard ball.
상기 프로세서는,
상기 실사의 당구 게임 이미지에서 당구 테이블 포인트들을 추출하고,
상기 추출된 당구 테이블 포인트들의 배치와 상기 실사의 수구 또는 상기 적어도 하나의 실사의 목적구 사이의 위치 관계에 기초하여 상기 경로 정보를 추출하는, 영상 투사 서버.According to clause 15,
The processor,
Extract billiard table points from the actual billiard game image,
An image projection server that extracts the path information based on a positional relationship between the arrangement of the extracted billiard table points and the cue ball of the live shot or the at least one object ball of the live shot.
상기 실사의 당구 게임 이미지로부터, 실사의 당구 테이블 상에서 실사의 수구가 이동하여 적어도 하나의 실사의 목적구와 충돌하는 경로 정보를 추출하는 동작;
상기 추출된 경로 정보에 기초하여, 가상의 당구 테이블 상에서 가상의 수구가 이동하여 적어도 하나의 가상의 목적구와 충돌하는 이동 경로를 포함하는 상기 가상의 당구 게임 이미지를 생성하는 동작; 및
상기 생성된 가상의 당구 게임 이미지를 실제 당구 테이블의 상면을 향해 투사하는 동작
을 포함하는, 방법.In a method of projecting a virtual billiard game image based on a real billiard game image,
extracting, from the realistic billiard game image, information on a path in which a real-life cue ball moves on a real-life billiard table and collides with at least one real-time object ball;
Based on the extracted path information, generating the virtual billiard game image including a movement path where a virtual cue ball moves on a virtual billiard table and collides with at least one virtual object ball; and
An operation of projecting the generated virtual billiard game image onto the upper surface of an actual billiard table.
Method, including.
상기 경로 정보는,
상기 실사의 수구에 대한 위치 좌표의 시간에 따른 변화 정보 및 상기 적어도 하나의 실사의 목적구에 대한 위치 좌표의 시간에 따른 변화 정보를 포함하는, 방법.According to clause 22,
The route information is,
A method comprising change information over time in positional coordinates of the target ball of the field trip and change information over time in position coordinates of the at least one target ball of the field trip.
상기 가상의 당구 게임 이미지 내에서 상기 가상의 수구 및 상기 적어도 하나의 가상의 목적구가 상기 이동 경로를 따라서 시간에 따라 이동하는, 방법.According to clause 22,
A method in which the virtual cue ball and the at least one virtual object ball move with time along the movement path within the virtual billiard game image.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220080310 | 2022-06-30 | ||
KR20220080310 | 2022-06-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240002869A true KR20240002869A (en) | 2024-01-08 |
Family
ID=89533270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220095985A KR20240002869A (en) | 2022-06-30 | 2022-08-02 | Method for projecting virtual billiard game image on billiard table, projector device and image projection server for performing the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20240002869A (en) |
-
2022
- 2022-08-02 KR KR1020220095985A patent/KR20240002869A/en not_active Application Discontinuation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101881620B1 (en) | Using a three-dimensional environment model in gameplay | |
US20190176020A1 (en) | Ball-striking assist method, ball-striking assist system, and portable electronic device | |
US9728011B2 (en) | System and method for implementing augmented reality via three-dimensional painting | |
KR100970677B1 (en) | Virtual golf simulation device providing putting-guide | |
CN108735052B (en) | Augmented reality free fall experiment method based on SLAM | |
US20170036106A1 (en) | Method and System for Portraying a Portal with User-Selectable Icons on a Large Format Display System | |
US20180033158A1 (en) | Location method and system | |
ES2774390T3 (en) | Method and game system to project volumetric images in a physical scene | |
KR102498002B1 (en) | Billiards training method and system using augmented reality | |
JP5733941B2 (en) | GAME DEVICE AND GAME SYSTEM | |
KR20240002869A (en) | Method for projecting virtual billiard game image on billiard table, projector device and image projection server for performing the same | |
KR20240002868A (en) | Method for projecting virtual billiard game image on billiard table, projector device and image projection server for performing the same | |
US20220277520A1 (en) | Information processing apparatus, information processing method, and storage medium | |
KR101059259B1 (en) | Apparatus for virtual golf simulation, system for virtual golf simulation and method for virtual golf simulation | |
US20220138997A1 (en) | Apparatus and method for experiencing augmented reality-based screen sports match | |
KR102317914B1 (en) | Billiards System Capable of Movable Entertainment Object Presentation | |
KR20080080631A (en) | Image element identifier | |
KR102054148B1 (en) | system for playing sports-related interactive contents software inducing player's kinetic behavior | |
KR20240007564A (en) | Apparatus and method for providing billiard game service for users | |
KR102064402B1 (en) | Placement System of Billiard Ball Using Internet and Method thereof | |
KR102178894B1 (en) | Education support system and method using mat and Augmented Reality | |
KR20210149478A (en) | Method for providing image for golf mat, apparatus for providing image for golf mat and virtual golf simulation apparatus | |
KR20180090155A (en) | Automatic score calculation system for billiard game using coordinate values and its principle | |
KR20200009720A (en) | A system for management and assistance of billiard game | |
US20220410009A1 (en) | Information processing device, information processing method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E601 | Decision to refuse application |