Patent Publication Number: US-2022230557-A1

Title: Recognizing coding education block system

Description:
BACKGROUND 
     1. Technical Field 
     The present disclosure relates to a coding education block recognition system, and more particularly, to a coding education block recognition system which can stably recognize a plurality of blocks in an AR (Augmented Reality) environment within a limited time through placement of commands for inputting coding puzzles created in the form of tangible blocks that can be directly handled by the learner&#39;s hand. 
     2. Related Art 
     In the age of the fourth industrial revolution, the importance of coding education is emphasized, and there is a need for a learning tool which can induce kindergarteners and low age students under third grade to develop computing thoughts, and enable the kindergarteners and low age students to learn coding as they play games at home. 
     The related art of this learning tool is disclosed in Korean Patent No. 10-1843831 entitled “Unplugged Real Coding Block”. The unplugged real coding block according to the related art includes: at least one real coding block having a unique ID embedded therein, including one or more connectors, and configured to generate a real code; at least one numbering block having a unique ID embedded therein, connected to the real coding block, and configured to receive a numerical value; at least one variable block having a unique ID embedded therein, connected to the real coding block, and configured to receive a variable value; and a main block connected to the real coding block, and configured to sequentially execute codes corresponding to IDs received from the real coding block. The unplugged real coding block according to the related art may provide a block having a similar structure to a real coding statement (control statement, variable, event, debugging or the like), and the provided block may create excitement, help students to learn the concept of coding, and reinforce the connection with a real coding statement. 
     However, the related art does not detailedly disclose a recognition system or recognition algorithm for making a user recognize the main block. Thus, there is an urgent need for a coding education block recognition system which can make a user stably recognize the placement of commands for inputting a coding puzzle, created in the form of a tangible block, in an AR environment within a limited time. 
     SUMMARY 
     Various embodiments are directed to a coding education block recognition system which can provide a block recognition algorithm capable of transferring commands to a command target according to order information and provide advanced coding education to low age learners, because coordinates provided by OpenCV are not provided in the order in which blocks are placed. 
     Also, various embodiments are directed to a coding education block recognition system which can raise a recognition success rate through a marker attached to a block, such that cording puzzles which can be used as a coding education tool can be smoothly operated. 
     Also, various embodiments are directed to a coding education block recognition system which can provide a reward to a learner who has completed a scheduled curriculum or the like, and cause low age learners to have interest in coding education. 
     In an embodiment, a coding education block recognition system may include: a command block having a plurality of commands stored therein; and a block recognition unit configured to recognize and augment the command block. The block recognition unit may include a block recognition algorithm for acquiring order information in which the command block is placed, and the plurality of commands are transferred to a command target according to the order information. 
     The block recognition algorithm may include: an image acquisition step of acquiring an image of the command block; a storage step of storing the image acquired in the image acquisition step; a 2D information extraction step of extracting 2D information of the stored image; a coordinate setting step of setting an orientation coordinate and setting a coordinate to the 2D information based on the orientation coordinate; an order information acquisition step of acquiring the order information according to the set coordinate; and a placement step of placing the command block on an AR (Augmented Reality) environment according to the order information. 
     The block recognition algorithm may further include an allocation step of allocating not-placed blocks after the placement step, when the not-placed blocks are present. 
     The allocation step may include an average height calculation step of calculating the average height of the tangible blocks and a sorting step of sorting subaverage blocks having a smaller height than the average height, among the non-placed blocks. 
     The command block may have an OpenCV-based marker on the top surface thereof, and the block recognition unit may include a corner recognition module configured to recognize a corner of the marker. 
     The coding education block recognition system may further include a reward providing unit configured to provide a reward to a learner who has completed a scheduled curriculum, and the reward providing unit may include an unlocking module configured to unlock characters which cannot be selected by a learner. 
     In accordance with the embodiment of the present disclosure, the coding education block recognition system can provide a block recognition algorithm capable of transferring commands to a command target according to order information and provide advanced coding education to low age learners, because coordinates provided by OpenCV are not provided in the order in which blocks are placed. 
     Also, the coding education block recognition system can raise a recognition success rate through a marker attached to a block, such that cording puzzles which can be used as a coding education tool can be smoothly operated. 
     Also, the coding education block recognition system which can provide a reward to a learner who has completed a scheduled curriculum or the like, and cause low age learners to have interest in coding education. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a flowchart showing a block recognition algorithm. 
         FIG. 2  is a group of photographs showing a command board and a command chip. 
         FIG. 3  shows a process of recognizing a marker. 
         FIG. 4  is a diagram illustrating a tile board. 
         FIG. 5  is a diagram showing a marker expressed as a pictogram. 
         FIG. 6  is a block diagram illustrating the architecture of a software stack. 
         FIG. 7  is a group of images showing a VR-linked book. 
         FIG. 8  is a group of images showing background screens placed on a VR-linked user interface. 
         FIG. 9  is a table showing a VR-linked puzzle game. 
         FIG. 10  is a diagram showing an access code. 
         FIG. 11  shows one embodiment of a command block. 
     
    
    
     DETAILED DESCRIPTION 
     The present disclosure may be modified in various manners and have various embodiments. Thus, aspects or embodiments of the present disclosure will be described in detail in the detailed description of the present disclosure. However, the aspects or embodiments of the present disclosure do not intend to limit the present disclosure to specific embodiments, and it should be understood that the present disclosure includes all modifications, equivalents and substitutions without departing from the sprit and scope of the present disclosure. 
     The terms used in this specification are used only to describe a specific aspect or embodiment, and do not intend to limit the present disclosure. The terms of a singular form may include plural forms unless clearly referred to the contrary. In this specification, the meaning of “include” or “composed of” specifies the existence of a property, a number, a step, an operation, an element, a component, or combinations thereof, but does not exclude the existence or addition possibility of one or more other properties, numbers, steps, operations, elements, components, or combinations thereof. 
     All terms used herein, which include technical or scientific terms, have the same meanings as those generally understood by those skilled in the art to which the present disclosure pertains, unless differently defined. The terms defined in a generally used dictionary should be construed to have meanings which coincide with contextual meanings in the related art. Unless clearly defined in this specification, the terms should not be construed as ideal or excessively formal meanings. 
     In the present disclosure, the terms such as first and second are only used to distinguish between different components, and are used regardless of the order in which the components are manufactured. The names of the components in the detailed descriptions may not coincide with those in the claims. 
     The present disclosure relates to a coding education block recognition system, and more particularly, to a coding education block recognition system which can stably recognize a plurality of blocks in an AR (Augmented Reality) environment within a limited time through placement of commands for inputting coding puzzles created in the form of tangible blocks that can be directly handled by the learner&#39;s hand. 
     The coding education block recognition system in accordance with the present disclosure includes a command block having a plurality of commands stored therein, and the command block has an OpenCV-based marker on the top surface thereof. As an embodiment of such a command block, a tangible block may be exemplified. 
     When such a marker is used, information for recognizing and tracking an object may be relatively easily acquired. Since the marker has a binary pattern or shape therein and corners whose 3D coordinates are known, an object may be easily recognized through simple image processing. 
     The tangible block is configured as a square plastic model outputted through a 3D printer, and ArUco markers which can be attached in the form of a sticker are attached to the top surface of the tangible block. The marker includes the above-described commands. 
     As shown in  FIG. 2 , the commands may be composed of five commands including a forward command, a right rotation command, a left rotation command, a jump command and an action command. According to the forward command, a robot moves one square forward over tiles on the basis of the current time point of the robot. The two rotation commands refer to commands for rotating the robot to the left and right, respectively. The action command refers to a command for purifying a contaminated tile or clearing a mission or instantly moving the robot by using a warp tile, when a front tile in a direction seen by the robot is the contaminated tile or the tile at which the robot is currently located is the warp tile. When a given mission is cleared, a beep sound may be additionally provided to notify that the mission is cleared. The jump command refers to a command for making the robot jump. 
     In addition to the above-described commands, a group command may also be provided to execute a plurality of commands, placed at the bottom of the command board through which the commands are inputted, by the number of group commands. 
     The command board is composed of a command board top and a command board bottom, and the command board top and the command board bottom are divided on the basis of a boundary located in the center of the command board. As described above, the command board bottom corresponds to the space to which a command to be used as the group command is inputted. 
     In addition to the above-described commands, a command which is frequently used may be stored in the form of a function and then fetched and used. The command is referred to as a function command. 
     When a user inputs such a command to a command input queue, a control unit may transfer the command to the robot. 
     The above-described robot is configured as an Arduino-based device capable of providing stable movement. In order to clear a given mission, a plurality of commands set to the command group are contained in a command queue, and sequentially transmitted through communication with a communication unit of the Arduino-based device, thereby controlling the robot. Thus, a command scheduler serves to fetch the input commands one by one from the command queue, transfer the fetched commands to the robot through a wireless communication unit with a transmitter, and instruct the robot to perform operations according to the various commands. When the commands are completely executed, the command scheduler sequentially fetches the next commands contained in the command queue, and finishes all the commands remaining in the command queue. 
     Furthermore, a puzzle game or the like, which is executed by recognizing a block in accordance with the embodiment of the present disclosure, may be implemented on a mobile application for coding education, and based on the Unity3D game platform. 
     The command scheduler and the robot operate in a client/server manner through a wireless network, and the command scheduler serves as a client. In reality, an Arduino-based device controls a plurality of sensors to execute one command. Therefore, in order to coordinate the plurality of sensors, the command scheduler and the robot operate as a client/server model through the wireless communication unit. 
     In the present disclosure, Bluetooth which can be easily utilized with small power consumption in a limited interior space is employed among various communication methods. Bluetooth 4.0 or more may be used to cope with all representative mobile environments (iOS and Android). 
     Furthermore, an Arduino Bluetooth receiver module serving as a server receives commands according to a serial connection method, and executes commands one by one and returns performance results to the transmitter, according to a synchronous method. 
     Then, a block recognition unit serves to recognize the tangible block such that the tangible block can be augmented on an AR environment. As a specific embodiment, a recognition system using OpenCV may be exemplified. In the OpenCV, however, the input order of the tangible block is not recognized. Thus, in the present disclosure, the order information of the tangible block may be acquired through an independent block recognition algorithm. 
     The recognition system using the OpenCV refers to a system that uses a method for recognizing a marker through a template matching and image recognition technique. 
     That is, the block recognition algorithm is an algorithm for acquiring the order information of the tangible block. More specifically, the order information of commands included in a marker attached to the top surface of the tangible block may be acquired in order to transfer the commands to the robot according to the order in which the commands are inputted. 
     The commands may indicate the above-described commands, and the communication method may be performed as described above. 
     As shown in  FIG. 1 , the block recognition algorithm includes an image acquisition step of acquiring an image of the tangible block, a storage step of storing the image acquired in the image acquisition step, a 2D information extraction step of extracting 2D information of the stored image, a coordinate setting step of setting an orientation coordinate, and setting a coordinate in the 2D information on the basis of the orientation coordinate, an order information acquisition step of acquiring the order information according to the set coordinate, and a placement step of placing the tangible block on the AR environment according to the order information. 
     Here, a feature of the block recognition algorithm is to map 3D information stored in the marker in order to extract the 2D information. The mapping may be also performed through the above-described OpenCV. A mobile device has four different directions or orientations, and thus includes a landscape screen, a portrait screen, a flipped landscape screen and a flipped portrait screen. Thus, the orientation coordinate may be set to different values for the respective directions or orientations. Therefore, when the orientation coordinate is set, it indicates that the coordinate system is converted into a 2D coordinate system in which a top left corner adopted in DirectX on the basis of the landscape screen is set to a screen origin (0, 0), such that the same algorithm can be applied. 
     The block recognition algorithm further includes an allocation step of allocating not-placed blocks after the placement step, when the not-placed blocks are present. The allocation step includes an average height calculation step of calculating the average height of the tangible blocks and a sorting step of sorting subaverage blocks having a smaller height than the average height, among the non-placed blocks. 
     Thus, a result obtained by sorting all the subaverage blocks in ascending order of x values is stored in a result list, and this process is repeated until no markers remain, in order to place all the markers. 
     Block recognition software corresponds to a recognition test program developed through the OpenCV for Unity library in the Unity environment.  FIGS. 3A to 3C  show a result obtained by placing tangible blocks, which are to be tested, in a direction perpendicular to a recognition camera before measurement, checking currently recognized commands during recognition, and then expressing markers, which have recognized the check results in the placement order on the screen, in the form of icons. 
     Next, a tile board corresponding to the space in which the robot moves will be described as follows. As shown in  FIG. 4 , the tile board includes a general tile, an obstacle tile, a contaminated tile and a warp tile. The general tile corresponds to a basic tile which has no function such that the robot can pass the basic tile. The obstacle tile has a height such that the robot can move over the obstacle tile according to the jump command. The contaminated tile corresponds to a tile which has been contaminated so that the robot cannot step on the tile. While the robot stays square to the contaminated tile, the robot needs to purify the contaminated tile into a general tile by using an action command, in order to move to the contaminated tile. The warp tile corresponds to a tile through which the robot can end a game or instantly move, when using the action command. 
     Next, the tangible block including a command and a marker in which a 3D location is stored will be described as follows. 
     When a learner actually places the tangible blocks, objects (the tangible blocks) may be augmented on an AR environment through recognition of the block recognition unit, and information on the objects may be transferred to the robot such that the robot can be controlled according to the content and input order of the commands. The tangible block may also be described with reference to  FIG. 5 . 
     As illustrated in  FIG. 5 , the tangible block has a color variation of a white background having high brightness and a pictogram having low brightness, and thus reinforces pattern recognition through the brightness difference, thereby having a high recognition rate. 
     Therefore, the tangible block may be used as a coding education tool using a robot, which is targeted to relatively low age learners. Furthermore, since a robot control system in accordance with the present disclosure accurately controls the robot, the robot control system can be actively utilized as a coding education tool. 
     For a VR-linked application using the coding education block recognition system, a separate link software stack is required for each development platform. In the present disclosure, the link software stack includes a VR software stack for implementing a GooGle VR-linked application, a VR software stack for implementing a Vuforia-linked application, and a VR software stack for implementing an OpenCV-linked application. 
     As illustrated in  FIG. 6 , the software stack is configured in such a form that can utilize AR/VR devices, and constructed in the form of a prefab which can be used in the Unity engine. Such a software stack has an SDK library plugged therein. 
     Furthermore, a UI (User Interface) of a VR-linked application needs to be designed as a UI which can be used without a conventional physical input device (mouse or keyboard). At this time, a head tracking technology using a gyroscope may be employed for a user&#39;s gaze movement. 
     Such a UI is configured not to display a reference point for the center direction of the user&#39;s gaze as it is, but to distinguish the closest object to the reference point and highlight the corresponding object on the screen. 
     Through the VR software stack, an AR-based task execution game system may be implemented and utilized as an AR coding education book. 
       FIG. 7  is a group of images showing a mobile application GUI (Graphical User Interface) of the AR coding education book. 
       FIG. 8  is a group of images showing background screens of the application, which low age students may like. 
     In addition, the coding education block recognition system may further include a reward providing unit which corresponds to a function unit configured to provide a reward to a learner who has completed a scheduled curriculum or cleared a mission. 
     The reward providing unit includes an unlocking module configured to unlock characters which cannot be selected by a learner. 
     A learner who has completed a certain level of curriculum may acquire unlocked character information on the basis of completion information, select the acquired character, and use the selected character as a new character in a game. A first user is provided with at least one available character regardless of whether the character is unlocked. 
     According to the unlocking condition, a user who can unlock a character is limited to a user such as a general learner or teacher, who has been normally registered, and unlocks a character associated with a specific stage when the specific stage is ended. When a specific stage is ended, a character associated with the stage is unlocked. 
     Referring to  FIG. 9 , the game refers to a puzzle game which enables a learner to learn the basic content of coding by placing tangible blocks on an AR environment, as indicated by a puzzle task title. 
     Hereafter, an evaluation result unit access interface (hereafter, an access code generation unit or access code input unit) will be described as follows. As group education for coding education is actively conducted, the access code generation unit or access code input unit can notify evaluation result information on learning content only to an evaluation target learner, and enable the learner to intuitively check an evaluation grade based on the evaluation result. 
     The access code generation unit or access code input unit may prevent unintended authentication through unintended access, and thus prevent random access to an evaluation result unit. Furthermore, the present disclosure is particularly related to the evaluation of the coding education for low age learners. As an authentication path P 1  is configured in the shape of the fingerprint of an evaluation target learner, the present disclosure enables the low age learners to recognize the importance of a fingerprint as an authentication method. 
     First, the coding education block recognition system further includes the evaluation result unit including information on an evaluation result of a coding education learner, and the evaluation result unit includes the access code generation unit configured to generate an access code I for access to the evaluation result unit. 
     The access code I generated by the access code generation unit may be managed by a server. Since the generated access code I is different for each client, the server individually transmits the access code I to each client. That is, the access code I may be individually transmitted to the client of the evaluation target learner, and an access code input unit D receiving the access code may decode the access code I to connect the client to the evaluation result unit. 
     The reason to transmit individually the access code I is in order to allow learners not to know the grades of each other.  FIG. 10  shows the access code I appearing on the access code input unit D. 
     The access code I includes an authentication path P 1  and an authentication point  2 . The authentication path P 1  is configured in the shape of the fingerprint of an evaluation target learner, and composed of a start point P 11  set to the lowest grade of another learner and an end point P 12  set to the highest grade of the another learner, and the authentication point P 2  is formed at any one location of the authentication path P 1 . 
     The fingerprint shape refers to the fingerprint shape of each learner. Since the another learner and the evaluation target learner have different fingerprint shapes, the authentication path P 1  of the another learner and the authentication path P 1  of the evaluation target learner are also differently formed. 
     The authentication path P 1  has a total length corresponding to a value obtained by subtracting the lowest grade of any one learner from the highest grade of the any one learner. For example, when the highest grade and the lowest grade are significantly different from each other, the total length of the authentication path P 1  is increased. 
     When the start point P 11  of the authentication path P 1  is set to the lowest grade of another learner and the end point P 12  of the authentication path P 1  is set to the highest grade of the another learner, it indicates that the start point P 11  from which a drag operation is started is formed at a location corresponding to the lowest grade of the another learner, and the end point P 12  at which the drag operation is ended is formed at a location corresponding to the highest grade of the another learner, as shown in  FIG. 10 . 
     The any one location is formed close to the start point P 11  when the current grade of the evaluation target learner is close to the lowest grade, and formed close to the end point P 12  when the current grade of the evaluation target learner is close to the highest grade. 
     That is, the any one location at which the authentication point P 2  is formed refers to a location away from the start point P 11  by a length corresponding to a value obtained by multiplying the total length of the authentication path P 1  by the ratio of the current grade to the lowest grade with respect to the difference between the highest grade and the lowest grade. 
     For example, when the highest grade of the another learner is 80, the lowest grade of the another learner is 20, and the current grade of the evaluation target learner is 30, the ratio of the current grade to the lowest grade with respect to the difference between the highest grade and the lowest grade corresponds to 1/6 (=(30−20)/(80−20)). Thus, the authentication point P 2  is formed at a location away from the start point P 11  by a length corresponding to 1/6 of the total length of the authentication path P 1 . 
     As a result, the authentication path P 1  has the grade distribution of all learners as one line. 
     Only when a drag operation is performed along the authentication path P 1 , the access to the evaluation result unit is successfully performed. 
     Then, when the drag operation is stopped at the authentication point P 2 , an effect of gradually filling the inside of the authentication point P 2  may be outputted, and the drag operation may be resumed only after the authentication point P 2  is completely filled. When the inside of the authentication point P 2  is not filled or excessively filled, the authentication path P 1  disappears. 
     As the authentication path P 1  disappears when the inside of the authentication point P 2  is not filled or excessively filled, the access to the evaluation result unit may be successfully performed only when the inside of the authentication point P 2  is accurately filled. 
     As described above, the location at which the authentication point P 2  is formed may be formed where the current grade is located on the authentication path P 1  having the grade distribution of all the learners as one line, such that the evaluation target learner can intuitively recognize his/her grade while the authentication point P 2  is filled, which makes it possible to significantly help the evaluation target learner to have a learning motivation. 
     While various embodiments have been described above, it will be understood to those skilled in the art that the embodiments described are by way of example only. Accordingly, the disclosure described herein should not be limited based on the described embodiments.