Low-Cost Online Handwritten Symbol Recognition System in Virtual Reality Environment of Head-Mounted Display

: Virtual reality is an important technology in the digital media industry, providing a whole new experience for most people. However, its manipulation method is more di ﬃ cult than the traditional keyboard and mouse. In this research, we proposed a new low-cost online handwriting symbol recognition system to accurately identify symbols by user actions. The purpose was low cost processing without requiring a server. Experimental results showed that the average success rate of recognition was 99.8%. The execution time averaged a signiﬁcantly low 0.03395 s. The proposed system is, respectively, highly reliable and at a low cost. This implies that the proposed system is suitable for applications in real-time environments.


Introduction
Development in virtual reality (VR) has made computer-generated imagery in the 3D environment an amazing experience. Users are able to interact intuitively and immerse and submit themselves into a virtual world [1]. As the head mounted display (HMD) framework released by Valve becomes more mature, manufacturers are attracted to invest in the manufacture of high-quality graphics effective devices, such as HTC Vive, Oculus Rift, and Valve Index. The spatial positioning function of the devices, namely, the position and rotation of the headset and controllers, are in real-time. The controllers are dynamically tracked and wireless so that users can get a better operating feel in the virtual world [2]. Improvements in the hardware equipment has made VR popular. VR can be seen in entertainment, education, shopping, libraries, gaming, sports, and social activities. Therefore, much research has been done on these related fields [3][4][5][6].
There is much improvement to be made for VR. For example, use input methods are buttons on the controllers or collisions by the position of the controllers and the objects in the virtual word to achieve the selection effect (menu driven approach). These are less user-friendly in comparison to the traditional input method. Therefore, this paper proposed an online handwriting tracking input method for VR application. Trajectories of the controllers are tracked and regarded as "handwriting" symbols drawn by a user.
The core technology of the recognition of symbols comes from image analysis and recognition systems. The main work includes image segmentation, image understanding, and graphics recognition [7][8][9]. Amongst them, the handwritten character and symbol recognition technologies are based on image processing and pattern recognition [10,11]. Although the recognition success rate cannot be 100%, the results are very close to the results by human vision. The recognition results of humans and computers are based on characters and symbols. Handwritten recognition can be divided into two types according to the content processed, namely, offline and online. Offline is an image-based method for recognition. The handwritten document is converted into an image through devices such as scanners or cameras, and image recognition is subsequently performed. Online is based on the stroke trajectory for recognition. The trajectory can be obtained in real-time during the writing process, and the recognition process can be performed after writing. Generally speaking, offline is more difficult than online because online can obtain dynamic information. such as stroke order and track point coordinates. Therefore, the success rate of online is much higher than offline. In the VR environment, it is very suitable to use online handwritten recognition as an input method [12,13].
In this paper, we proposed a low cost online handwritten symbol recognition system. The symbols are generated in a fully immersive virtual reality environment and treated as input commands to speedup inputs in the VR environment. The purpose of this paper is to provide users with an efficient input method, such as the up, down, left arrow, and right arrow of the keyboard, so that users can quickly operate and complete the required functions. When the input symbols are too complicated and not so easy to use in the VR environment, the purpose is to set a simpler symbol.
In addition, the proposed system requires very little calculation and it does not require additional calculation servers, unlike other recognition systems. Therefore, equipment cost is effectively reduced. Since our system does not use complicated techniques, such as neural networks, that require pre-training, the proposed system can be used directly in various environments and on various application levels. The research on virtual reality is quite diverse [14][15][16][17][18], and the main focus of this paper is on handwritten symbol recognition.
The remaining parts of the paper are organized as follows. First, we will describe our proposed algorithm in Section 2 and the experimental results in Section 3 and give the conclusion in Section 4.

Proposed Method
Much attention on VR has been devoted on the development of applications for interaction media. In this paper, the focus of the proposed input method was to improve user experience. Traditionally, input is given by click-tapping a mouse or keyboard. Interaction in VR would be via the use of controllers or sensors for interaction in the 3D environment to track movements for recognition. Figure 1 shows the simple handwriting symbol that was identified as signs used as a base for the proposed handwriting recognition system (HWR). When a sign was identified, it was converted to a manipulating command. The aim was to make user experience easier and to increase confidence with VR. Altogether, there were eight signs identified for the base of the handwriting symbol, which were intermixed to create more symbol commands. The aim was to increase usability and availability on any applications. fline is more difficult than online because online can obtain dynamic information. such as strok der and track point coordinates. Therefore, the success rate of online is much higher than offlin the VR environment, it is very suitable to use online handwritten recognition as an input metho , 13].
In this paper, we proposed a low cost online handwritten symbol recognition system. Th mbols are generated in a fully immersive virtual reality environment and treated as inpu mmands to speedup inputs in the VR environment. The purpose of this paper is to provide use th an efficient input method, such as the up, down, left arrow, and right arrow of the keyboard, s at users can quickly operate and complete the required functions. When the input symbols are to mplicated and not so easy to use in the VR environment, the purpose is to set a simpler symbol.
In addition, the proposed system requires very little calculation and it does not requir ditional calculation servers, unlike other recognition systems. Therefore, equipment cost ectively reduced. Since our system does not use complicated techniques, such as neural network at require pre-training, the proposed system can be used directly in various environments and o rious application levels. The research on virtual reality is quite diverse [14][15][16][17][18], and the main focu this paper is on handwritten symbol recognition.
The remaining parts of the paper are organized as follows. First, we will describe our propose orithm in Section 2 and the experimental results in Section 3 and give the conclusion in Section

Proposed Method
Much attention on VR has been devoted on the development of applications for interactio edia. In this paper, the focus of the proposed input method was to improve user experienc aditionally, input is given by click-tapping a mouse or keyboard. Interaction in VR would be v e use of controllers or sensors for interaction in the 3D environment to track movements fo cognition. Figure 1 shows the simple handwriting symbol that was identified as signs used as a base fo e proposed handwriting recognition system (HWR). When a sign was identified, it was converte a manipulating command. The aim was to make user experience easier and to increase confidenc th VR. Altogether, there were eight signs identified for the base of the handwriting symbol, whic re intermixed to create more symbol commands. The aim was to increase usability and availabilit any applications. In this paper, there were five processes for the HWR system, namely, (1) sampling, (2) 2 mapping, (3) normalization, (4) resample, and (5) eigenvalue detection. These processes were use identify the handwriting symbol. Detailed description is presented in the following subsection. In this paper, there were five processes for the HWR system, namely, (1) sampling, (2) 2D remapping, (3) normalization, (4) resample, and (5) eigenvalue detection. These processes were used to identify the handwriting symbol. Detailed description is presented in the following subsection.

Sampling
The runtime locations of the user controller in the VR world were recorded at the launching of the HWR system, and the original track was recorded in an array. First, we set the maximum number of samples n. Based on experience and trial tests, n = 1000 was found to be suitable and executional-effective. Sampling was empirically ascertained from test trials and a larger n was determined not to be positively beneficial. In fact, we found that excessive sampling might even produce negative results. In addition, a single original track data type was a vector, which was the 3-axes information. x, y, z can also be represented by the following formulas: rt i (1) = x, rt i (2) = y, and rt i (3) = z.
In the sampling session, we set a fixed sampling period t. As long as the time elapsed after t, we saved the 3-axes information x, y, z into the record table, RT = rt 1 , rt 2 , . . . , rt n , where rt i = x, y, z . At the start of each round, array RT was reset to prevent contamination from leftover data of previous rounds. Sessions were stopped once the user stopped, which also stopped data sampling. In fact, if the amount of sampling data exceeded the sampling amount n in the array RT, the system was determined to be an invalid sampling then cleared the sampling data in the array RT. The sampling time t could be set to any value based on individual requirement. From our experience, t = 0.01 s second was suitable for the sampling procedure.

D Mapping
The handwriting procedure was performed with a controller by a user in the 2D mode. However, the direction in which the user was standing had to be considered when obtaining the original track. After sampling, we only needed to remove the rotation and position of the helmet to map the original data to the 2D state, as shown in Equation (1).
where Rotate (object, rotation, position) includes the target object, the axes of rotation, and the center of rotation, respectively, and object refers to the target object to be rotated, which is the RT in the actual execution process. We set all the rt i of the RT on an empty object. Rotation refers to an axial of the helmet, the H r axis of the helmet. H p is the position of the helmet. All data in RT will remove H p to be the center point for position and rotate by the axis H r . Then, the result is RT R = rt R 1 , rt R 2 , . . . , rt R n . In physics, it is the process of removing the z-axis information in every sampling data and keeping the information of the x-axis and y-axis that completes the conversion of the coordinate system. The original data in Figure 2a was captured from the sampling when the user was standing at the x-axis and facing the y-axis. The captured data was arranged by the direction of the z-axis. Figure 2b shows the result removing the axes information of the user at this coordinate. Finally, the z-axis information was removed to get the result on the 2D coordinate system, as seen in Figure 2c.
During 2D mapping, the axes and coordinates were removed when the user put on the helmet. The original data was converted into the xy plane with the z-axis flattened. The flattening resulted in over squeezing. However, our recognition target was designed based on the x-axis and y-axis; the function of the z-axis was insignificant. In addition, the transformation to the xy plane conformed to the normal computer operation of the virtual screen (see Figure 3). In this mode, the need for z-axis space was naturally decreased.
In physics, it is the process of removing the z-axis information in every sampling data and keeping the information of the x-axis and y-axis that completes the conversion of the coordinate system. The original data in Figure 2a was captured from the sampling when the user was standing at the x-axis and facing the y-axis. The captured data was arranged by the direction of the z-axis. Figure 2b shows the result removing the axes information of the user at this coordinate. Finally, the z-axis information was removed to get the result on the 2D coordinate system, as seen in Figure 2c.  During 2D mapping, the axes and coordinates were removed when the user put on the helmet. The original data was converted into the xy plane with the z-axis flattened. The flattening resulted in over squeezing. However, our recognition target was designed based on the x-axis and y-axis; the function of the z-axis was insignificant. In addition, the transformation to the xy plane conformed to the normal computer operation of the virtual screen (see Figure 3). In this mode, the need for z-axis space was naturally decreased.

Normalization
In the sampling and 2D mapping procedure, the height of the user, the state of VR environment, and the relation parameters made a difference in the sampling result. To reduce the computational complexity, linear interpolation was used to normalize the x-axis and y-axis in R RT to be between also aligned the data diagonally to a square architecture. Figure 4a shows the original rectangle architecture of the data before normalization, and Figure 4b shows the square type after normalization.

Normalization
In the sampling and 2D mapping procedure, the height of the user, the state of VR environment, and the relation parameters made a difference in the sampling result. To reduce the computational complexity, linear interpolation was used to normalize the x-axis and y-axis in RT R to be between −1 and 1. The final result after interpolation was RT N = rt N 1 , rt N 2 , . . . , rt N n . This normalization process also aligned the data diagonally to a square architecture. Figure 4a shows the original rectangle architecture of the data before normalization, and Figure 4b shows the square type after normalization. During 2D mapping, the axes and coordinates were removed when the user put on the helmet. The original data was converted into the xy plane with the z-axis flattened. The flattening resulted in over squeezing. However, our recognition target was designed based on the x-axis and y-axis; the function of the z-axis was insignificant. In addition, the transformation to the xy plane conformed to the normal computer operation of the virtual screen (see Figure 3). In this mode, the need for z-axis space was naturally decreased.

Normalization
In the sampling and 2D mapping procedure, the height of the user, the state of VR environment, and the relation parameters made a difference in the sampling result. To reduce the computational complexity, linear interpolation was used to normalize the x-axis and y-axis in R RT to be between also aligned the data diagonally to a square architecture. Figure 4a shows the original rectangle architecture of the data before normalization, and Figure 4b shows the square type after normalization.

Resampling
There were different possibilities during the sampling process. While the frequency of the movement in sampling was variable, the density of sampling was unstable. When the user moved slowly, a large amount of data could be captured in the allotted time, causing oversampling, as shown in Figure 5. On the other hand, when the user moved quickly in a certain location, the data showed less under-sampling, as shown in Figure 5.

Resampling
There were different possibilities during the sampling process. While the frequency of the movement in sampling was variable, the density of sampling was unstable. When the user moved slowly, a large amount of data could be captured in the allotted time, causing oversampling, as shown in Figure 5. On the other hand, when the user moved quickly in a certain location, the data showed less under-sampling, as shown in Figure 5. These situations resulted in recognition error and required resampling on the data. As long as the coordinate distance of each sample could be fixed, the recognition error problem could be solved.
We visited all the sampling points in N RT . When the distance of visit exceeded the threshold θ , a sampling point was added, and when the distance of the visit was less than θ , the old sampling points could be removed. The path of the movement went through by N RT until completing all positions.
In this session, any distance d between Detailed steps are as shown in Figure 5.
Step 1. Let i be the visiting order of N RT , where i is initialized to 1 and 1 i n ≥ ≥ . Set j to record the current feature value order. j is initialized to 1, then set to 1 Step 2. Use Equation (2) to calculate distance d. 3 2 Step 3. If d θ < , then perform Step 4 and Step 5.
Step 4. When d θ < represents over-sampling, move to the next position and set 1 i i = + , and perform Step 6.
Step 5. When d θ ≥ represents under-sampling, a new sampling point needs to be added, so take These situations resulted in recognition error and required resampling on the data. As long as the coordinate distance of each sample could be fixed, the recognition error problem could be solved. We visited all the sampling points in RT N . When the distance of visit exceeded the threshold θ, a sampling point was added, and when the distance of the visit was less than θ, the old sampling points could be removed. The path of the movement went through by RT N until completing all positions.
In this session, any distance d between rt N i and rt N i+1 less than threshold θ implied that these two positions were too close and the data in rt N i+1 needed to be cleared. On the other hand, if distance d was equal or bigger than threshold θ,we added the new sample data between rt N i and rt N i+1 , and the distance between every two position equaled the value of θ. After completing the full path, the whole resampling data was captured, which meant the eigenvalue was RT E = rt E 1 , rt E 2 , . . . , rt E m , where m is the number of eigenvalues. Generally, m was much smaller than n. Detailed steps are as shown in Figure 5.
Step 1. Let i be the visiting order of RT N , where i is initialized to 1 and 1 ≥ i ≥ n. Set j to record the current feature value order. j is initialized to 1, then set to rt E 1 = rt N 1 .
Step 4. When d < θ represents over-sampling, move to the next position and set i = i + 1, and perform Step 6.
Step 5. When d ≥ θ represents under-sampling, a new sampling point needs to be added, so take rt E j as the starting point and move toward rt N i , and the moving distance is θ. Then set the moved coordinates x, y, z to rt E j+1 and finally update the order of the feature value j = j + 1 and perform Step 6.
Step 6. Repeat Steps 2-5 until all RT N visits are completed.
Step 7. After all the visits are completed, the final number of resampling is m = j, and the final resampling result is Mathematics 2020, 8,1967 6 of 13 In Figure 6, the smaller black dots are the original data. Some showed oversampling (dense distribution), and the faster movement showed under sampling (sparse distribution). The bigger red dots represent the resampled data, which maintained fixed distance between any two points. The processed results could therefore be effectively identified.

Eigenvalue Detection
The sequential collision was used for the detection procedure and to extract the data from the eigenvalue RT E for comparison. The proposed system is a real-time system. If there was no collision with recognition targets in the comparing process, detection failed. However, if the eigenvalue made sequential collision, it meant a successful detection and the ID number was sent back to system. In Figure 7, the solid dot means the eigenvalue and hollow dot is the data library for detection. Figure  7a shows invalid collisions, resulting in failed results. Figure 7b shows the successful collisions. When all eigenvalues collided with the detection data, the user got an ID from the target database of the system. In the recognition process, the resample data was compared in sequence with the recognition targets. If the resample data of a target collided with all the coordinates, the target was a candidate. If all targets were judged and the number of candidates was greater than 1, we located the candidate closest to the recognition targets to find the most suitable result. According to this method, even if the targets were very close, the correct results could be effectively analyzed.
Furthermore, the structure of the database was very simple. The movement path of the target symbol was recorded in sequence, as shown in Figure 8. The recognition target on the upper left of The remaining recognition targets can be processed in the same way, and the detailed coordinate data is as shown in Table 1.

Eigenvalue Detection
The sequential collision was used for the detection procedure and to extract the data from the eigenvalue RT E for comparison. The proposed system is a real-time system. If there was no collision with recognition targets in the comparing process, detection failed. However, if the eigenvalue made sequential collision, it meant a successful detection and the ID number was sent back to system. In Figure 7, the solid dot means the eigenvalue and hollow dot is the data library for detection. Figure 7a shows invalid collisions, resulting in failed results. Figure 7b shows the successful collisions. When all eigenvalues collided with the detection data, the user got an ID from the target database of the system.

Eigenvalue Detection
The sequential collision was used for the detection procedure and to extract the data from the eigenvalue RT E for comparison. The proposed system is a real-time system. If there was no collision with recognition targets in the comparing process, detection failed. However, if the eigenvalue made sequential collision, it meant a successful detection and the ID number was sent back to system. In Figure 7, the solid dot means the eigenvalue and hollow dot is the data library for detection. Figure  7a shows invalid collisions, resulting in failed results. Figure 7b shows the successful collisions. When all eigenvalues collided with the detection data, the user got an ID from the target database of the system. In the recognition process, the resample data was compared in sequence with the recognition targets. If the resample data of a target collided with all the coordinates, the target was a candidate. If all targets were judged and the number of candidates was greater than 1, we located the candidate closest to the recognition targets to find the most suitable result. According to this method, even if the targets were very close, the correct results could be effectively analyzed.
Furthermore, the structure of the database was very simple. The movement path of the target symbol was recorded in sequence, as shown in Figure 8 The remaining recognition targets can be processed in the same way, and the detailed coordinate data is as shown in Table 1. Table 1. Details of eight recognition targets. In the recognition process, the resample data was compared in sequence with the recognition targets. If the resample data of a target collided with all the coordinates, the target was a candidate. If all targets were judged and the number of candidates was greater than 1, we located the candidate closest to the recognition targets to find the most suitable result. According to this method, even if the targets were very close, the correct results could be effectively analyzed.

IDs Target Data
Furthermore, the structure of the database was very simple. The movement path of the target symbol was recorded in sequence, as shown in Figure 8. The recognition target on the upper left of  Table 1. We have also designed vertical and horizontal V-shaped recognition targets based on the eight directions that extended the foundation, as shown in Figures 9 and 10. The detailed coordinate data are listed in Tables 2 and 3. We have also designed vertical and horizontal V-shaped recognition targets based on the eight directions that extended the foundation, as shown in Figures 9 and 10. The detailed coordinate data are listed in Tables 2 and 3. Table 2. Details of four recognition targets for vertical V-shapes.

IDs
Target Data We have also designed vertical and horizontal V-shaped recognition targets based on the eight directions that extended the foundation, as shown in Figures 9 and 10. The detailed coordinate data are listed in Tables 2 and 3.

Experimental Results
In this section, we conducted several experiments to test the proposed system. The first experiment works with various recognition targets, such as the impact of different movement speeds on the recognition situation. We adopted three movement speeds, namely, normal movement, slow movement, and fast movement. They corresponded to normal-sampling, over-sampling, and over-sampling, respectively.
The original data is represented with a black dot and the resample data are represented with red, blue, and green dots. The blue dot shows the starting point of the track and the green dot shows the ending point of the track. We observed the position of the blue and green dots to distinguish the direction. The following experiment shows the speed performance, measured on an Intel i7-6770 CPU, with 3.4GHz and 16 GB of RAM under the Windows 10 64-bit operating system.
In this experiment, 16 kinds of recognition targets (e.g., Figures 8-10) were tested for these three kinds of moving speeds, and the total data was 48. Table 4 shows the state of normal sampling, Table 5 shows over-sampling, and Table 6 shows the result of under-sampling. Results showed successful recognitions of the three sets on tests of different moving speeds. 5 shows over-sampling, and Table 6 shows the result of under-sampling. Results showed successful recognitions of the three sets on tests of different moving speeds. 5 shows over-sampling, and Table 6 shows the result of under-sampling. Results showed successful recognitions of the three sets on tests of different moving speeds. 5 shows over-sampling, and Table 6 shows the result of under-sampling. Results showed successful recognitions of the three sets on tests of different moving speeds. 5 shows over-sampling, and Table 6 shows the result of under-sampling. Results showed successful recognitions of the three sets on tests of different moving speeds. 5 shows over-sampling, and Table 6 shows the result of under-sampling. Results showed successful recognitions of the three sets on tests of different moving speeds. 5 shows over-sampling, and Table 6 shows the result of under-sampling. Results showed successful recognitions of the three sets on tests of different moving speeds. 5 shows over-sampling, and Table 6 shows the result of under-sampling. Results showed successful recognitions of the three sets on tests of different moving speeds. 5 shows over-sampling, and Table 6 shows the result of under-sampling. Results showed successful recognitions of the three sets on tests of different moving speeds. 5 shows over-sampling, and Table 6 shows the result of under-sampling. Results showed successful recognitions of the three sets on tests of different moving speeds. 5 shows over-sampling, and Table 6 shows the result of under-sampling. Results showed successful recognitions of the three sets on tests of different moving speeds. 5 shows over-sampling, and Table 6 shows the result of under-sampling. Results showed successful recognitions of the three sets on tests of different moving speeds. 5 shows over-sampling, and Table 6 shows the result of under-sampling. Results showed successful recognitions of the three sets on tests of different moving speeds. 5 shows over-sampling, and Table 6 shows the result of under-sampling. Results showed successful recognitions of the three sets on tests of different moving speeds. 5 shows over-sampling, and Table 6 shows the result of under-sampling. Results showed successful recognitions of the three sets on tests of different moving speeds. 5 shows over-sampling, and Table 6 shows the result of under-sampling. Results showed successful recognitions of the three sets on tests of different moving speeds. 5 shows over-sampling, and Table 6 shows the result of under-sampling. Results showed successful recognitions of the three sets on tests of different moving speeds. After these 48 original data were processed by resampling, the number of original data in normal sampling was about 25-56 and the data after resampling was reduced to 8-15. The amount of original data for over-sampling fell between 162-308 and was between 8-12 after processing. Finally, the original data of under-sampling was 5-13 and the result of re-sampling was 7-16. After processing by our method, the distribution of the data can be made more uniform and beneficial to subsequent processing.                                   blue, and green dots), respectively (as shown in Figure 11). The data containing the three moving speeds were normal sampling, over-sampling, and under-sampling. The amount of original data of normal sampling was 44, the amount after resampling was 15, and the time spent was 0.0449 s and 0.0270 s, respectively. After resampling, time saved was near double. In the over-sampling situation, the numbers of original and resample data were 526 and 10, respectively. The time spent on recognition was 0.1006 s and 0.02751 s, respectively. Time saved after resampling was almost 6 times. Finally, in the state of under-sampling, the amount of original and resample data was 13 and 17, respectively. Due to the lack of points in the original data, our algorithm automatically supplemented the area with a larger interval. Therefore, the processed points were expanded from 13 to 17 points and more processing time was required. Although more time was needed, recognition stability was increased. Overall, our resampling can effectively reduce the amount of data and achieve significantly high accuracy of the recognition procedure.
In the final experiment, we performed 100 accuracy tests for each of the 16 recognition targets. Therefore, this experiment was performed a total of 1600 times. The results are as shown in Table 7. In this experiment, the moving speed was random and the data consisted of normal sampling, over-sampling, and under-sampling. The average amount of original data is 22.23 sampling points, and the number of resample data is averaged to 8.03 after processing. The average processing time for resample data after recognition is 0.03395 s. Our processing time was very instant and did not take too much time to complete the recognition. There was almost no delay for the user since there was insignificant calculation time. In addition, the average accuracy rate of our 1600 tests was 99.8%. The recognition failures occurred in " " and "→", respectively. The original data is as shown in Figure 12. Due to the lack of points in the original data, our algorithm automatically supplemented the area with a larger interval. Therefore, the processed points were expanded from 13 to 17 points and more processing time was required. Although more time was needed, recognition stability was increased. Overall, our resampling can effectively reduce the amount of data and achieve significantly high accuracy of the recognition procedure.
(a) (b) (c) In the final experiment, we performed 100 accuracy tests for each of the 16 recognition targets. Therefore, this experiment was performed a total of 1600 times. The results are as shown in Table 7. In this experiment, the moving speed was random and the data consisted of normal sampling, oversampling, and under-sampling. The average amount of original data is 22.23 sampling points, and the number of resample data is averaged to 8.03 after processing. The average processing time for resample data after recognition is 0.03395 s. Our processing time was very instant and did not take too much time to complete the recognition. There was almost no delay for the user since there was insignificant calculation time. In addition, the average accuracy rate of our 1600 tests was 99.8%. The recognition failures occurred in "↗" and "→", respectively. The original data is as shown in Figure  12. The two data were processed by resample. There were only four data points. Since our recognition targets required at least five data points, there was an error in detection. This means that the user's total movement distance in the capture data was insufficient. Nonetheless, the accuracy of our method was still strong, with an average of 99.8%.  In the final experiment, we performed 100 accuracy tests for each of the 16 recognition targets. Therefore, this experiment was performed a total of 1600 times. The results are as shown in Table 7. In this experiment, the moving speed was random and the data consisted of normal sampling, oversampling, and under-sampling. The average amount of original data is 22.23 sampling points, and the number of resample data is averaged to 8.03 after processing. The average processing time for resample data after recognition is 0.03395 s. Our processing time was very instant and did not take too much time to complete the recognition. There was almost no delay for the user since there was insignificant calculation time. In addition, the average accuracy rate of our 1600 tests was 99.8%. The recognition failures occurred in "↗" and "→", respectively. The original data is as shown in Figure  12.

Conclusions
The current application of virtual reality is popular. This industry is at its peak, and we have developed a low-cost recognition method suitable for various user applications. It can be a stand-alone computing mode without the need of the internet. According to our experiment, the calculation time was only 0.03395 s each time and the accuracy rate was 99.8%, which is very suitable for the real-time computing environment. Our method does not require the support of special equipment and can be extended to various application levels. Future research includes focus on text recognition to make the VR application environment more user friendly.