Indoor Navigation
By using time windows of different lengths to identify step events in the acceleration signal flow, the problem of GPS signal attenuation and inertial measurement unit noise influence of navigation applications in indoor navigation is solved, improving navigation accuracy and operability.
Patent Information
- Application Number
- CN202080098361.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-05-29
- Publication Date
- 2025-01-14
- Estimated Expiration
- 2040-05-29
AI Technical Summary
Existing navigation applications are difficult to provide accurate position information due to GPS signal attenuation when navigating indoors, and the noise and deviation of the inertial measurement unit sensors affect the accuracy of identifying step events.
Two time windows of different lengths are used to process the acceleration signal flow separately. By comparing the amplitude characteristics in the signal segment, step events are identified, reducing the impact of noise and deviation, and improving identification accuracy.
It realizes more efficient and accurate identification of step events in indoor navigation, improves navigation accuracy and operability, and reduces dependence on signal filtering.
Smart Images

Figure CN115280101B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of this specification relate to a navigation application technology, and more specifically, to a method, device, computer program product, and computer-readable storage medium for indoor navigation. Background Art
[0002] In recent years, navigation applications have become increasingly popular. A navigation application may be a computer software program installed on a terminal device equipped with a global positioning system (GPS) sensor. Based on the signals and maps received from GPS satellites, the navigation application can provide the location of the terminal device. However, when a user of the navigation application enters a building, the signals from the GPS satellite may be attenuated and dispersed by the roof, walls, and other objects of the building. Therefore, the navigation application cannot provide accurate indoor navigation.
[0003] Special sensors are developed to measure the acceleration and direction of a mobile user. For example, terminal devices such as mobile phones are equipped with these sensors, so the acceleration and direction signals of the user can be detected. However, it is difficult to process these signals and obtain the user's accurate movement in an efficient and convenient way. Summary of the invention
[0004] According to one embodiment of the present specification, a new method for identifying step events in indoor navigation is proposed. Generally speaking, a first signal segment and a second signal segment are respectively obtained in a first time window and a second time window in an acceleration signal stream, the acceleration signal stream is collected by an acceleration sensor associated with a mobile user, and the first time window is shorter than the second time window; based on the first signal segment and the second signal segment, a first amplitude feature and a second amplitude feature of the first time window and the second time window are respectively determined; and the user's step event is identified based on the deviation between the first amplitude feature and the second amplitude feature. Through the above method, step events are identified in a more efficient and accurate manner, thereby improving the accuracy of indoor navigation.
[0005] It is to be understood that the purpose of the content of the invention is not to determine the key or essential features of the embodiments of the present specification, nor is it intended to limit the scope of the present specification. Other features of the present specification can be easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] The details of one or more embodiments of the present specification are set forth in the accompanying drawings and the following description. Other features, aspects and advantages disclosed in the specification, drawings and claims are apparent, among which:
[0007] Figure 1 A block diagram showing an environment for implementing embodiments of the present specification;
[0008] Figure 2 A flowchart of a method for identifying a step event according to an embodiment of the present specification is shown;
[0009] Figure 3 A process block diagram of processing an acceleration signal stream based on two time windows according to an embodiment of the present specification is shown;
[0010] Figure 4 A flowchart of a process for determining a deviation according to an embodiment of the present specification is shown;
[0011] Figure 5 A block diagram of a process for determining step strengths associated with a first time window and a second time window according to an embodiment of the present specification is shown;
[0012] Figure 6 A block diagram of determining a step strength curve based on an acceleration signal stream according to an embodiment of the present specification is shown;
[0013] Figure 7 A process block diagram of determining acceleration magnitude according to an embodiment of the present specification is shown;
[0014] Figure 8 A flowchart of a process for determining a step size according to an embodiment of the present specification is shown;
[0015] Fig. 9 A block diagram showing an environment for implementing embodiments of the present specification;
[0016] Fig.10 A flowchart of a process for determining a user's motion direction according to an embodiment of the present specification is shown;
[0017] Fig.11 A flow chart of a method for determining a user's motion direction according to an embodiment of the present specification is shown;
[0018] Fig.12 A flowchart of a process for determining a user's motion direction according to an embodiment of the present specification is shown;
[0019] Fig.13 A block diagram showing a step window associated with a user's step event according to an embodiment of the present specification;
[0020] Fig.14 A block diagram showing a method of determining a user trajectory according to an embodiment of the present specification; and
[0021] Fig.15 A block diagram of a device implementing one or more embodiments of the present description is shown.
[0022] Throughout the various drawings, the same or corresponding reference numerals designate the same or corresponding elements. DETAILED DESCRIPTION
[0023] The principles of this specification will be described below with reference to certain embodiments. It is understood that these embodiments are only for the purpose of description to help those skilled in the art understand and implement this specification, and are not intended to limit the scope of protection of this specification. This specification can be implemented through the embodiments described below and various other forms.
[0024] As described herein, the term "including" and similar terms should be understood as open inclusion, i.e., "including but not limited to". The term "based on" should be understood as "based at least in part on". Unless otherwise specified, the word "one" should be understood as "one or more". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The term "another embodiment" should be "at least other embodiment". In addition, it should be understood that in the description of this specification, the terms "first", "second", etc. are used to indicate a single element or component, and are not intended to limit the order of these elements. In addition, the first element may not be the same as the second element. Other explicit and implicit definitions may also be included below.
[0025] Navigation applications are widely installed in terminal devices, and GPS sensors in terminal devices can receive signals from GPS satellites and obtain the location of the terminal device. However, when the user of the terminal device enters a building, the signal may be weakened and become useless. Currently, inertial measurement unit (IMU) sensors have been applied to terminal devices, and signal streams collected from IMU sensors can be processed to determine the movement of a mobile user carrying a terminal device.
[0026] For the working environment of this manual, refer to Figure 1 . Figure 1 A block diagram 100 is shown of an environment in which embodiments of the present specification may be implemented. Figure 1 In the embodiment, the navigator 110 may be installed in the terminal device, and the sensor 130 may be provided in the user's terminal device. The sensor 130 may include an accelerometer 132 for obtaining an acceleration signal stream and a gyroscope 134 for obtaining a direction signal stream. Then, the signal stream may be processed to determine a motion signal 120, and the motion signal 120 includes a speed 122 and a direction 124 of the user. In addition, the motion signal 120 may be provided to the navigator 110 for indoor navigation.
[0027] A pedestrian dead reckoning (PDR) method is proposed for indoor navigation. The PDR method involves three main steps: 1) determining the user's step event, 2) determining the user's step length; and 3) determining the user's direction. Among them, a step event refers to an event in which a user extends his / her leg and takes a step. Since the determination of both the step length and the direction are based on the determined step events, the identification of step events becomes the basis for indoor navigation. Peak detection and zero crossing detection algorithms are developed to identify step events from the signal stream. However, due to the noise and bias of the sensor 130, the signal stream should be filtered first. In addition, it is difficult to create criteria to detect peaks and zero points in the filtered signal stream.
[0028] In order to at least partially solve the above problems and other potential problems, a new method and device are provided herein to identify step events. According to an embodiment of the present specification, two windows with different lengths are used to process the signal stream collected from the sensor 130. Since the two windows have different widths, the signal segments within the two windows show different patterns. Then, step events can be identified from the signal stream by comparing the signal segments. Through the above embodiments, there is no need to filter the noise and deviation in the signal stream and identify the peak and zero points, so that step events can be determined more effectively and conveniently.
[0029] refer to Figure 2 , to describe the embodiments of this specification in detail. Figure 2 2 shows a flow chart of a method 200 for identifying a step event according to an embodiment of the present specification. At block 210, a first signal segment and a second signal segment are acquired in a first time window and a second time window in an acceleration signal stream, respectively. The acceleration signal stream is collected by an acceleration sensor associated with a mobile user, and the first time window is shorter than the second time window. For more information on collecting the first signal segment and the second signal segment, see Figure 3 .
[0030] Figure 3 A block diagram 300 is shown of a process for processing an acceleration signal stream based on two time windows according to an embodiment of the present specification. Figure 3 , an acceleration signal stream 330 is shown, wherein the horizontal axis represents the frames in the acceleration signal stream 330, and the vertical axis represents the amplitude of the acceleration. The acceleration signal stream 330 can be collected from an acceleration sensor (e.g., an accelerometer 132 equipped in the user's terminal device). When the user walks, the acceleration sensor may continuously collect acceleration and output the acceleration signal stream 330. The acceleration sensor can collect signals at a predefined frequency, and the frequency can be adjusted based on the sensor type. In one example, the frequency may be 50 Hz, which means that the sensor collects 50 frames per second. In another example, the frequency may be another value.
[0031] A first time window 310 (indicated by a shaded block) and a second time window 320 (indicated by a blank block) are defined, and the first time window 310 is shorter than the second time window 320. A first signal segment 312 and a second signal segment 322 are respectively obtained from an acceleration signal stream 330 in the first time window 310 and the second time window 320. The first signal segment 312 is a part of the acceleration signal stream 330 in the first time window 310, and the second signal segment 322 is a part of the acceleration signal stream 330 in the second time window 320.
[0032] During user movement, the acceleration amplitudes may vary between frames in the acceleration signal stream 330. Typically, changes in short-term windows are more dramatic than changes in long-term windows. Therefore, the first signal segment 312 and the second signal segment 322 may involve different amplitude changes, which may help determine a step event.
[0033] In one embodiment of the present specification, the first time window 310 may be within the second time window 320. Figure 3 In the example shown, the first time window 310 is located in the middle of the second time window 320, but the first time window 310 may be located at any position. In another embodiment, the first time window 310 may be at the beginning or end of the second time window 320, or even outside the second time window 320. For example, the first time window 310 and the second time window 320 may start or end at the same time. In one embodiment, the first time window 310 and the second time window 320 may have a length of 20 frames and 100 frames, respectively. In another example, the length of the first time window 310 and the second time window 320 may be set to other values and may be represented in another format (e.g., 0.2 seconds and 1 second).
[0034] Understandably, Figure 3 Only the situation related to a certain time point during the user's movement is described. When the user walks, the first time window 310 and the second time window 320 can move forward along the acceleration signal stream 330, and more signal segments can be obtained from each movement of the two time windows. Since the first time window 310 is included in the second time window 320, the second signal segment 322 may include more acceleration information near the first time window 310. Therefore, comparing the two signal segments can help to more effectively identify the amplitude change caused by the step event.
[0035] After describing the detailed information about obtaining the first signal segment 312 and the second signal segment 322, return to Figure 2 In the embodiment, the first signal segment 312 and the second signal segment 322 are processed. Figure 2At block 220 in FIG. 1 , first amplitude features and second amplitude features of the first time window 310 and the second time window 320 are determined based on the first signal segment 312 and the second signal segment 322, respectively. The first amplitude feature represents the amplitude level in the first signal segment 312. For more information, see Figure 4 Get.
[0036] Figure 4 A block diagram 400 of a process for determining a deviation according to an embodiment of the present specification is shown. A first amplitude feature 412 may be determined based on an average value of the first signal segment 312. Assume that the first signal segment 312 includes n1 frames, and at i th The amplitude at the frame is expressed as The first amplitude feature 412 can be expressed based on Formula 1 as shown below.
[0037]
[0038] in, represents the first amplitude feature 412 of the first time window 310, n1 represents the number of frames included in the first time window 310, represents i in the first signal segment 312 th The amplitude of the frame.
[0039] The second amplitude characteristic 422 may be determined in a similar manner based on Formula 2 as shown below.
[0040]
[0041] in, represents the second amplitude feature 422 of the second time window 320, n2 represents the number of frames included in the second window 320, represents the i in the second signal segment 322 th The amplitude of the frame.
[0042] It is understood that the above formulas 1 and 2 are only examples for determining the first amplitude feature 412 and the second amplitude feature 422. Alternatively and / or in addition thereto, the first amplitude feature 412 and the second amplitude feature 422 may be determined based on an average value of the square of the amplitude, or based on another formula that may reflect the corresponding amplitude in each time window.
[0043] For ease of description, the end frame can be identified by using a frame to represent the first amplitude feature 412 and the second amplitude feature 422. Assume that in the acceleration signal stream 330, the first time window 310 and the second time window 320 are both within j th The first time window 310 and the second time window 320 can both be referred to as j thThe first time window and the second time window of the frame, and the first amplitude feature 412 and the second amplitude feature 422 may be referred to as j th First amplitude characteristic and second amplitude characteristic of a frame. In addition, the first amplitude characteristic 412 and the second amplitude characteristic 422 may be compared so that a deviation 430 therebetween may be determined.
[0044] Reference again Figure 2 At block 230, a step event of the user is identified based on the deviation 430 between the first amplitude feature 412 and the second amplitude feature 422. In one embodiment of the present specification, the deviation is also frame-dependent, and j can be determined based on the difference between the first amplitude feature 412 and the second amplitude feature 422 according to Formula 3: th Deviation at frame.
[0045]
[0046] Among them, dev j represents the acceleration signal flow 330 th Frame Deviation 430, and Represents j th Continuing with the above example, when the first time window 310 and the second time window 320 have the same end frame, th The frame may be an end frame.
[0047] It is to be understood that the above formula 3 is only an example of determining the deviation 430. Alternatively and / or in addition thereto, the deviation 430 may be determined according to any one of the following formulas 4 and 5.
[0048]
[0049]
[0050] In Formulas 4 and 5, the meanings of the symbols are the same as those in Formula 3, and the specific contents are omitted.
[0051] Since the change in the first time window 310 may be more drastic than the change in the second time window 320, a step event can be easily identified based on the deviation 430. In one embodiment of the present specification, if the deviation 430 exceeds the threshold deviation, a step event can be identified in j th The step event is determined at the frame, and Equation 6 can be used to calculate j in the acceleration signal stream 330. th The step event is identified at the frame, wherein the threshold deviation can be determined empirically.
[0052]
[0053] in, Indicates whether the j in the acceleration signal stream 330 is based on the deviation 430 th The step event is determined at the frame, dev j represents the acceleration signal flow 330 th Frame Deviation 430,TH dev Represents the threshold deviation.
[0054] Since the deviation 430 exists between the first amplitude feature 412 and the second amplitude feature 422 in the same acceleration signal stream affected by the same noise and deviation, the noise and deviation have little effect on the deviation 430, thereby more reliably identifying step events. Compared with the existing PDR method based on peak detection and zero point detection, the present specification can reduce the influence of noise and deviation, thereby improving the accuracy and operability of identifying step events.
[0055] It is understood that the above formula 6 is only an example of directly identifying a step event based on the deviation 430 associated with a single time point when the user is walking. In other examples of this specification, a step event can be further determined based on the deviation determined in other ways. In one embodiment of this specification, the first time window 310 and the second time window 320 can be moved forward along the acceleration signal stream 330 respectively. Then, the step strength can be determined based on the accumulation of multiple deviations at multiple time points when the user is walking. For more details, please refer to Figure 5 .
[0056] Figure 5 A block diagram 500 is shown of a process for determining a step strength associated with a first time window and a second time window movement according to an embodiment of the present specification. Figure 5 Only the movement of the first time window 310 is illustrated, and the movement of the second time window 320 is similar and therefore omitted. As the user walks, more acceleration signal streams will be obtained, and the first time window 310 may move forward from the first time point 520 to the second time point 530, as shown by arrow 510. Among them, the first time window 310 may move forward one or more frames at a time in the acceleration signal stream 330.
[0057] Assuming that the first time window 310 and the second time window 320 have the same end frame, the end frame may cover a group of frames during the motion. Therefore, the step strength for a group of frames can be determined. Specifically, a first group of signal segments can be obtained within the first time window 310 during the motion, and similarly, a second group of signal segments can be obtained within the second time window 320. In addition, the deviations associated with the group of frames can be summed to determine the step strength.
[0058] In one embodiment of the present specification, the first set of amplitude features and the second set of amplitude features can be determined based on the first set of signal segments and the second set of signal segments, respectively. Since the first time window 310 and the second time window 320 move together, the deviation of each frame during the motion can be determined. Assuming that the motion covers a set of m frames, the k frames in the set can be determined. th At this point, the sum of a set of deviations between the first set of amplitude features and the second set of amplitude features can be determined according to the following formula 7.
[0059]
[0060] Among them, intensity j represents the step strength of a group of frames, which is j in the acceleration signal stream 330 th The frame ends when m is the number of frames in the group of frames. dev k Indicates that k th The frame deviation, the dev k Based on k th The frame-related first signal segment and the second signal segment are determined according to any one of Formulas 3 to 5.
[0061] It is understood that the above formula 7 is only an example of determining the step strength. In another example implementation of the present specification, the step strength can be determined according to any one of the following formulas 8 to 11.
[0062]
[0063]
[0064]
[0065]
[0066] The symbols in Formulas 8 to 11 have the same meanings as those in Formula 7, and Δt represents a sampling interval of the acceleration signal stream 330 .
[0067] Through the above-mentioned embodiment, when determining a step event when the user is walking, the deviation related to a group of frames within a period of time is taken into account, and the continuous change of the amplitude of the acceleration signal stream 330 can be monitored to identify the step event. Therefore, the recognition error caused by a single deviation related to a single time point can be reduced, and the accuracy and operability of step event recognition can be further enhanced.
[0068] In one embodiment of the present specification, a step event may be determined based on a comparison result between the step strength and the threshold strength according to Formula 12, wherein the threshold strength may be determined based on historical experience.
[0069]
[0070] in, Indicates whether the acceleration signal flow 330 is based on j th The step intensity of the frame determines the step event, intensity j Represents the acceleration signal flow 330 th Frame-dependent step strength, TH intensity Represents the threshold intensity.
[0071] In one embodiment of the present specification, if the step strength is lower than the threshold strength, the first time window 310 and the second time window 320 may be moved forward by another frame to obtain a new step strength of a new set of frames including more frames. If the step strength of the set of frames exceeds the threshold strength, a step event is identified (e.g., at j th Once a step event is determined, the set of frames may be reset starting from the frame after the set of frames. At this point, the first time window 310 and the second time window 320 may be continuously moved forward along the acceleration signal stream 330 to identify further step events. For more details on step intensity, refer to Figure 6 .
[0072] Figure 6 A block diagram 600 is shown for determining a step strength curve based on an acceleration signal stream according to an embodiment of the present specification. Figure 6 , the horizontal axis represents frames in the acceleration signal stream 330, and the vertical axis represents the step strength determined based on the above formula. Typically, the strength of the two legs of a user may be different, so the peak value of one leg may be different from the peak value of the other leg. The curve of the step strength shows a periodic pattern, where the star icons (such as peak point 610 and peak point 620) represent peaks in the step strength, and the dot icons represent non-peaks in the step strength. Figure 6 In FIG. 6 , the frames between two consecutive peak points 610 and 620 can be identified as a step window 630 of a step event. Additionally and / or in addition, valleys in step intensity can also be used to identify step events.
[0073] It is important to understand that Figure 6 The step intensity curves in the example are only examples, and the curves determined for other users may show different patterns. For example, the curves of other users may show larger peaks and higher frequencies. Through the above embodiments, deviations related to duration can be considered to identify step events. Therefore, the user's long-term behavioral habits can be monitored to reduce errors caused by accidents.
[0074] In one embodiment of the present specification, the above methods for identifying step events can be combined. For example, identification based on a single deviation and step strength can be combined to enhance identification. Specifically, according to the following formula 13, j in the acceleration signal stream 330 th A frame identifies a step event.
[0075]
[0076] in, represents j in the acceleration signal stream 330 th The final result of identifying step events at frame, represents the result determined based on Formula 6, represents the result determined based on formula 12. Through the above embodiment, both the single deviation and the step strength can be considered when identifying a step event. Therefore, the error caused by the accident can be further reduced.
[0077] The above paragraphs describe details about identifying step events. The identified step events may then be further validated based on any acceleration amplitude and frequency constraints of the acceleration signal stream 330. Figure 7 , Figure 7 A process block diagram 700 of determining acceleration amplitude according to an embodiment of the present specification is shown. Generally, an acceleration sensor can collect signals in three-dimensional space, so the acceleration amplitude of a frame in the acceleration signal stream 330 can be determined using the amplitudes in the x, y, and z dimensions.
[0078] like Figure 7 As shown, j in the acceleration signal flow 330 th At the frame, acceleration 710 is related to the x, y and z coordinates, so j can be determined by the magnitude x 712, the magnitude y 714 and the magnitude z 716 based on the following formula 14: th The magnitude of acceleration at the frame.
[0079]
[0080] Among them, a j Represents the acceleration signal flow 330 th Frame-related acceleration amplitude, amplitude_x j 、amplitude_y j and amplitude_z j Represents the magnitude in the x, y, and z coordinates, respectively.
[0081] In addition, the step event can be verified based on the comparison result between the acceleration amplitude and the threshold amplitude of the following formula 15, where the threshold amplitude can be determined based on experience.
[0082]
[0083] in, Indicates whether the acceleration signal flow 330 is based on j th The acceleration amplitude of the frame determines the step event, a j Represents the acceleration signal flow 330 th Frame-dependent acceleration magnitude, TH amplitude Represents the threshold amplitude.
[0084] According to the above formula 15, if it is determined that the acceleration amplitude at a certain frame of the stepping event exceeds the threshold amplitude, the stepping event can be verified. Through this embodiment, the recognition of the stepping event can be more accurate.
[0085] In one embodiment of the present specification, the identification of a single deviation, step strength, and acceleration amplitude can be combined to further enhance the identification. Specifically, according to the following formula 16, j in the acceleration signal stream 330 is th A step event can be determined at the frame.
[0086]
[0087] in, Indicates whether the acceleration signal stream 330 is in j th The final result of the step event is determined at the frame. represents the result determined based on Formula 6, represents the result determined based on formula 12, Indicates whether the step event is verified based on Formula 15. Through the above embodiments, the accuracy and operability of step event recognition can be further enhanced.
[0088] In one embodiment of the present specification, a step event can be verified based on a frequency limit. The frequency limit can be determined based on historical experience. Typically, historical experience may show that a common walking frequency is one to three steps per second. If the frequency exceeds the frequency limit, a warning can be provided. Assuming that the frequency of the step event is 2 steps per second, the step event can be verified. If the frequency is 5 steps per second, the step event cannot be verified and a warning will be output. Through the above embodiment, a determined step event can be verified based on common sense of the frequency. Therefore, a more reliable step event identification can be provided.
[0089] It is understood that determining step events is only the beginning of indoor navigation. Once step events are determined, the step length associated with the step event can be obtained. For more information on step length determination, refer to Figure 8 . Figure 8A process block diagram 800 for determining a step length according to an embodiment of the present specification is shown. In one embodiment of the present specification, a machine learning model may be constructed to determine the step length. Figure 8 In the example, the sample data set may include an acceleration signal stream 810 collected from a reference user and a step length 830 of the reference user, and may be used to train a step length model 820 .
[0090] In one embodiment of the present specification, the step length model 820 represents a polynomial relationship between a step length of a reference user among multiple reference users, an extreme value, an average value, and a frequency of an acceleration signal stream, wherein the acceleration signal stream is collected by an acceleration sensor associated with the reference user. For example, the step length model can be determined according to the following formula 17.
[0091]
[0092] Among them, Length step represents a step size, a, b, c, d and u represent hyperparameters, and They respectively represent the minimum, maximum and average values of the amplitude of the acceleration signal stream within the determined step window, f represents the walking frequency associated with the step event, m represents the number of frames contained in the step window, and ΔT represents the sampling interval of the acceleration signal stream 330.
[0093] Through the above embodiment, the polynomial association can be easily trained. In one embodiment of this specification, Length step , The values of f, m and Δt are used to train the step length model 820. After the step length model 820 is successfully trained, the acceleration signal stream 330 can be simply processed and then input into the step length model 820 to determine the step length.
[0094] To obtain the user's step length, the extreme values (including the maximum and minimum values) within the step window associated with the step event can be determined from the acceleration signal stream 330, the average value of the step window can be determined, and the frequency of the step event can be determined. In addition, the step length can be determined based on the step length model 820, the extreme values, the average value, and the frequency. In other words, the acceleration signal stream 330 can be processed to extract the step length associated with the Length step , f, m and Δt related parameters. Next, the extracted parameters can be input into the step length model 820, and then the step length can be output.
[0095] It is understandable that the above formula 17 is only an example of a step length model. In other embodiments, based on various types of machine learning techniques, the step length model 820 can be represented in other forms other than polynomial correlation.
[0096] In one embodiment of the present specification, the user's behavior pattern can be considered when determining step events and / or determining step length. For example, step patterns can be classified into walking, strolling, stationary and swinging modes. Therefore, various models can be trained based on the above behavior patterns to obtain more accurate step events and related step lengths. In one example of the present specification, the direction of movement related to the determined step event can be determined. Thus, the user's speed and trajectory can be determined.
[0097] In one embodiment of the present specification, the speed of the user can be determined based on the step length and the duration associated with the step length. Alternatively, in addition to this, the speed can be determined based on multiple step lengths and multiple durations. For example, the length sum can be calculated based on the lengths of multiple step lengths, and the time sum can be calculated based on multiple durations. Then, the speed can be determined based on the length sum and the time.
[0098] Having described how to identify step events and determine the step length associated with a step event, the following reference Fig. 9 for details about determining the user's direction of motion. Fig. 9 A schematic diagram 900 is shown of an environment in which embodiments of the present specification may be implemented. Fig. 9 In the example, a user 910 carries a terminal device 920 in his / her pocket or in his / her hand. However, a motion direction 912 of the user 910 may be different from a device direction 922 of the terminal device 920. Typically, there may be an angle difference 930 between the motion direction 912 and the device direction 922.
[0099] Previously, methods for determining the user's motion direction have been proposed. Device direction 922 can be determined by a dedicated sensor in terminal device 920, and device direction 922 is generally regarded as motion direction 912. However, device direction 922 and motion direction 912 are not always the same, and angle difference 930 may also change during motion. Therefore, how to detect the motion direction 912 of user 910 becomes a focus.
[0100] In order to at least partially solve the above problems and other potential problems, a new method and device for determining a motion direction are provided. According to an embodiment of the present specification, a deviation degree is defined to represent the deviation between the motion direction 912 of the user 910 and the actual device direction of the terminal device 920. If the deviation degree is lower than a threshold degree, the motion direction 912 can be determined based on the device direction 922. Otherwise, the motion direction 912 can be estimated by machine learning technology.
[0101] refer to Fig.10 , to briefly describe this manual. Fig.10FIG. 1 shows a process block diagram 1000 for determining a user's motion direction according to an embodiment of the present specification. Fig.10 As shown, the sensor 130 may provide a signal stream 1010. The sensor 130 may include an accelerometer 132 for collecting an acceleration signal stream and a gyroscope 134 for collecting an orientation signal stream. The device orientation 922 of the terminal device 920 may be obtained from the signal stream 1010 collected from the sensor 130 equipped in the terminal device 920.
[0102] In addition, a deviation degree 1020 is determined based on the signal stream 1010. The larger the deviation degree 1010 is, the larger the angle difference 930 may be. A threshold degree 1022 may be preset based on experience, and then the deviation degree 1020 may be compared with the threshold degree 1022 to obtain a comparison result 1024. Based on the comparison result 1024, a direction may be selected from the device direction 922 and the estimated motion direction 1030 as the motion direction 912.
[0103] Through the above embodiment, the deviation degree 1020 can measure whether the motion direction 912 of the user 910 is consistent with the actual device direction of the terminal device 920. Only when the two directions are consistent with each other, the motion direction 912 can be determined based on the device direction 922. Compared with the solution of directly using the device direction 922 as the motion direction 912, the motion direction 912 can be determined more accurately and reliably.
[0104] refer to Fig.11 , to describe the embodiments of this specification in detail. Fig.11 A flow chart of a method 1100 for determining a user motion direction according to an embodiment of the present specification is shown. At block 1110, a device direction 922 of a terminal device 920 is obtained based on at least one signal stream collected from a terminal device 920 carried by a mobile user. In one embodiment of the present specification, the terminal device 920 may be equipped with an accelerometer 132 and a gyroscope 134. Therefore, the at least one signal stream may include an acceleration signal stream collected by the accelerometer 132 and a direction signal stream collected by the gyroscope 134.
[0105] For more details on determining device orientation 922, see Fig.12 . Fig.12 A process block diagram 1200 for determining the direction of user motion according to an embodiment of the present specification is shown. The device direction 922 can be determined from the signal stream 1010, and the signal stream 1010 includes the acceleration signal stream 330 and the direction signal stream 1230. The direction signal stream 1230 can be represented by the angular velocity collected from the gyroscope 134. In the embodiments of the present specification, there is no limitation on the method of obtaining the device direction 922. Instead, a variety of known and / or future developed methods can be used.
[0106] In one example, the device orientation 922 can be determined based on the IMU orientation. Alternatively, a machine learning model can be established that characterizes the association between the device orientation of the reference terminal device and the acceleration signal stream and the orientation signal stream collected from the reference terminal device. After the machine learning model is trained, the acceleration signal stream 330 and the orientation signal stream 1230 can be input into the model to obtain the device orientation 922.
[0107] In addition, refer to Fig.11 , a deviation degree 1020 may be determined. At block 1120, the deviation degree 1020 is determined based on at least one signal stream 1010. The deviation degree 1020 represents the deviation between the motion direction 912 of the user 910 and the actual device direction of the terminal device 920. In one example of the present specification, the deviation degree 1020 may be determined by machine learning technology. Fig.12 As shown, a machine learning model 1210 may be provided to determine parameters related to the motion direction 912. The machine learning model 1210 may include a deviation model 1220 and a direction model 1240 for determining the deviation degree 1020.
[0108] In one embodiment of the present specification, the deviation 1020 may be related to the angle difference. th The deviation degree 1020 at the frame can be expressed according to the following formula 18.
[0109] DevDegree i =|β i | Formula 18
[0110] Among them, DevDegree i Represents i in signal stream 1010 th Deviation at frame 1020, β i Representative th The angle difference at the frame.
[0111] Among them, Fig.12 The deviation model 1220 in estimates the angle difference. The deviation model 1220 can characterize the association between the angle difference collected by the reference user and the signal stream collected from the terminal device carried by the reference user. The angle difference refers to the angle difference between the direction of motion of the reference user and the actual device direction of the reference user's terminal device. In general, the deviation degree 1020 may be proportional to the angle difference and increase as the angle difference increases. It is understood that this specification does not limit the method of establishing a machine learning model. In one example, the deviation 1220 can be constructed based on Resnet modeling, and ultimately a fully connected layer can be used to predict the angle difference during motion.
[0112] A sample data set of a reference user may be collected to train the deviation model 1220. The sample data set may include a plurality of samples, each sample including parameters related to one reference user. For example, each sample may include an angle difference, an acceleration signal stream, and a direction signal stream collected during the movement of the reference user. In addition, the sample data set may be used to train the deviation model 1220 so that the trained deviation model 1220 may characterize the association between the angle difference and the signal stream. Next, the acceleration signal stream 330 and the direction signal stream 1230 of the user 910 may be processed and then input into the deviation model 1220 to obtain the angle difference.
[0113] Through the above-mentioned embodiments, historical experience on the correlation between angle differences and signal streams can be used to train the deviation model 1220. In turn, the deviation model 1220 can provide reliable knowledge for estimating the angle differences during the movement of the user 910.
[0114] In one embodiment of the present specification, the deviation 1020 may also be associated with the estimated motion direction 1030 of the user 910 and the device direction 922. th The frame deviation 1020 can be determined based on the following formula 19.
[0115] DevDegree i =|β i -(θ i -α i )| Formula 19
[0116] Among them, DevDegree i Represents i in signal stream 1010 th Frame deviation 1020, β i Indicates i th Frame angle difference, θ i Representative th The estimated motion direction of the frame, α i Representative th Through the above embodiment, the deviation degree 1020 also takes into account the influence of the motion direction and the device direction, so a more accurate deviation degree 1020 can be obtained.
[0117] A direction model 1240 may be constructed to provide an estimated motion direction 1030. The direction model 1240 may be constructed based on a (Long Term Memory, LSTM) architecture to estimate the motion direction. The 2D vectors of the sin() and cos() functions associated with each frame in the signal stream 1010 and the motion directions collected from the reference user may be used to train the direction model 1240.
[0118] In training the direction model 1240, a sample data set related to the reference user may be collected. The sample data set may include a plurality of samples, each sample being related to a reference user. Each sample may include the actual direction of motion of the reference user, as well as an acceleration signal stream and a direction signal stream collected during the motion of the reference user. In addition, the sample data set may be used to train the direction model 1240 so that the trained direction model 1240 may characterize the association between the direction of motion and the signal stream. Then, the acceleration signal stream 330 and the direction signal stream 1230 from the user 910 may be received and input into the direction model 1240 to obtain the estimated direction of motion 1030.
[0119] Through the above-mentioned embodiments, historical experience on the correlation between the motion direction and the signal stream can be used to train the direction model 1240. In turn, the direction model 1240 can provide reliable knowledge to estimate the motion direction 910 during the user's motion.
[0120] It is important to understand that Fig.12 Only the process of processing the signal stream 1010 through the deviation model 1220 and the direction model 1240 in the machine learning model 1210 is described. In another embodiment, the machine learning model 1210 can adopt a different architecture. For example, a new model characterizes the association between the deviation degree and the signal stream. In this case, the process of determining the deviation degree 1020 based on the above formula may become an internal program of the new model. In this case, the signal stream 1010 can be directly input into the new model to obtain the corresponding deviation degree.
[0121] It is understandable that during the movement of the user 910, the movement directions of the two step events may be different, and therefore, the direction model 1240 may be trained based on the step events. Therefore, the step signal segment may be extracted from the signal stream of the sample data set based on the step event. Among them, the step event may be identified according to the method 300 described in the previous paragraph, and the first signal segment and the second signal segment may be obtained from the first time window and the second time window in the acceleration signal stream of the reference user, respectively. Alternatively and / or in addition to this, the step event may be determined according to other methods.
[0122] At this point, each sample in the sample data set may be associated with multiple step events and include step signal segments and motion directions corresponding to each step event. Then, the direction model 1240 can be trained based on the step events to characterize the association between the motion direction and signal segments of the step events. Once the direction model 1240 is successfully trained, the step signal segments can be extracted from the acceleration signal stream 330 and then input into the direction model 1240 to obtain an estimated motion direction.
[0123] In order to extract the step signal segment from the acceleration signal stream 330, the first signal segment and the second signal segment can be obtained respectively, and the extracted signal segment can be used to identify the step event. Specifically, the step event can be identified by the method 300, and then the step window associated with the step event can be determined. For more detailed information on extracting the step signal segment from the signal stream 1010, please refer to Fig.13 .
[0124] Fig.13 A block diagram 1300 of a step window associated with a user's step event according to an embodiment of the present specification is shown. Fig.13 In the embodiment, the acceleration signal stream 330 and the direction signal stream 1230 are collected at the same time, so the method 300 based on the step window 1330 detected by the acceleration signal stream 330 is also applicable to the direction signal stream 1230. The segments of the step window 1330 in the acceleration signal stream 330 and the direction signal stream 1230 can be respectively input into the direction model 1240 to obtain the movement direction corresponding to the determined step event. Through the above embodiment, the movement direction of each step event can be determined, so the accuracy and operability can be further improved.
[0125] It is understandable that the speed of user 910 is also an important factor in motion. The greater the speed, the greater the impact on the trajectory deviation of user 910. For example, even if the angle difference is small, when user 910 moves quickly, the trajectory deviation may reach a larger value. Although the angle difference is large, if the user walks very slowly and almost remains still, the trajectory deviation may be low. Therefore, in some embodiments of the present specification, the deviation degree 1020 may also be associated with the speed of user 910. Specifically, i in signal stream 1010 th The frame deviation 1020 can be determined based on Formula 20 as shown below.
[0126] DevDegree i =v i ×|β i -(θ i -α i )| Formula 20
[0127] Among them, DevDegree i Represents i in signal flow 1010 th Frame deviation 1020, v i Representative th Speed of framework user 910, beta i Indicates i th Frame angle difference, θ i Indicates i th The estimated motion direction of the frame, α i Indicates i thThe device direction of the frame. It can be understood that the deviation 1020 is a scalar value, so the speed v i May contain only the value of velocity without regard to direction.
[0128] In this embodiment, the speed can be determined according to the method described in the above paragraph. Alternatively, the speed can be obtained from a machine learning model. For example, the deviation model 1220 can be modified to also include the association between the speed of the reference user and the signal flow. Then, the speed of the user 910 can be obtained based on the deviation model 1220 and the signal flow 1010 of the user 910. Using the above formula 20, the speed of the user can also be considered when determining the deviation degree 1020, so that a more reliable and accurate deviation degree 1020 can be obtained.
[0129] After the deviation degree 1020 is determined, the motion direction 912 can be determined based on the comparison result between the deviation degree 1020 and the threshold degree 1022. Fig.11 At block 1130, based on the determination result that the deviation degree 1020 is lower than the threshold degree 1022, the motion direction 912 is determined based on the device direction 922. It can be appreciated that a lower deviation degree may indicate that the motion direction 912 is relatively consistent with the device direction 922. Therefore, the device direction 922 may be directly used as the motion direction 912. In this way, the potential error caused by the deviation between the motion direction and the device direction may be effectively reduced.
[0130] In one example of the present specification, if the deviation degree 1020 exceeds the threshold degree 1022, the motion direction 912 is determined based on the estimated motion direction 1030. At this time, since the device direction 922 is significantly different from the actual motion direction, the estimated motion direction 1030 obtained from the direction model 1240 can be used as the motion direction 912. Since the estimated motion direction 1030 is based on the correct historical knowledge contained in the direction model 1240, the estimated motion direction 1030 can be very close to the actual motion direction, thereby improving the accuracy of motion determination.
[0131] Although the above paragraphs describe multiple embodiments of the process of determining step events, determining step lengths, and determining motion directions, these embodiments can be combined to form another embodiment. For example, based on the above embodiments, user motion including both speed and direction can be determined, and then a trajectory can be obtained.
[0132] In one embodiment of the present specification, the above method 300 and method 1100 may be repeated, so that the trajectory of the user 910 may be obtained. Fig.14 A block diagram 1400 is shown for determining a user's trajectory according to an embodiment of the present specification. Fig.14, three locations in a user trajectory are shown, where user 910 may take a first step at location 1410. The above method 300 may be used to identify the first step, and the above method 1100 may be used to determine the direction of motion for the first step. Assuming the degree of deviation exceeds a threshold degree, the direction of motion 1412 is set as the estimated direction of motion for the first step. Based on the step length determined by the above method 300 and the direction of motion 1412, a location 1420 is determined.
[0133] At position 1420, user 910 may take a second step in another direction. Assuming that the deviation of the second step also exceeds the threshold, motion direction 1422 is also set as the estimated motion direction, and then user 910 arrives at position 1430. In addition, user 910 may take a third step. Assuming that the deviation of the third step is lower than the threshold, motion direction 1432 is set as the device direction. Through the above embodiments, the trajectory of indoor navigation can be determined.
[0134] According to an embodiment of the present specification, the above-mentioned indoor navigation embodiment can be combined with outdoor navigation. For example, two navigation modes can be provided in the navigator 110, wherein the GPS sensor can be used in the outdoor navigation mode, and the acceleration and direction sensor can be used to support indoor navigation.
[0135] Although the embodiments of the present specification are described with a terminal device as an example processing device, the embodiments may also be executed on a general processing device. Fig.15 A device block diagram 1500 for implementing one or more embodiments of the present specification is shown. It should be understood that the device 1500 is not intended to limit the scope or features of the present specification, and the embodiments can be implemented in various general or special purpose computer environments.
[0136] As shown, device 1500 includes at least one processing unit (or processor) 1510 and a memory 1520. Processing unit 1510 executes computer executable instructions and can be a real or virtual processor. In a multi-processing system, multiple processing units execute computer executable instructions to increase processing power. Memory 1520 can be volatile memory (e.g., registers, cache, RAM), non-volatile memory (e.g., ROM, EEPROM, flash memory), or some combination thereof.
[0137] exist Fig.15In the example shown, the device 1500 further includes a memory 1530, one or more input devices 1540, one or more output devices 1550, and one or more communication interfaces 1560. An interconnection mechanism (not shown), such as a bus, controller, or network, interconnects the components of the device 1500. Typically, operating system software (not shown) provides an operating environment for other software executed in the device 1500 and coordinates the activities of the device 1500 components.
[0138] Memory 1530 may be removable or non-removable and may also include computer-readable storage media such as a flash drive, a disk, or any other medium that can be used to store information and is accessible in device 1500. Input device 1540 may be one or more of a variety of different input devices. For example, input device 1540 may be a user device including a mouse, a keyboard, a trackball, etc. Input device 1540 may implement one or more natural user interface technologies, such as voice recognition or touch and stylus recognition. As other examples, input device 1540 may include a scanning device; a network adapter; or another device that provides input to device 1500. Output device 1550 may be a display, a printer, a speaker, a network adapter, or other device that provides output from device 1500. Input device 1540 and output device 1550 may be combined into a single system or device, such as a touch screen or a virtual reality system.
[0139] The communication interface 1560 can communicate with another computing entity via a communication medium. In addition, the functions of the device 1500 components can be implemented in a single computer or multiple computers that can communicate via a communication interface. Therefore, the device 1500 can operate in a network environment using logical connections to one or more other servers, network PCs, or other general network nodes. By way of example only, the communication medium includes wired or wireless network technology.
[0140] According to one embodiment of the present specification, the navigator 110 can be configured on the device 1500 to identify step events, determine the step length and movement direction of the user. In addition, the navigator 110 can provide the user's speed and trajectory.
[0141] For descriptive purposes only, some examples of embodiments are listed below.
[0142] According to one embodiment of the present specification, a computer-implemented method is provided for indoor navigation. The method includes: acquiring a first signal segment and a second signal segment in a first time window and a second time window in an acceleration signal stream, respectively, the acceleration signal stream is collected by an acceleration sensor associated with a mobile user, and the first time window is shorter than the second time window; determining a first amplitude feature and a second amplitude feature of the first time window and the second time window respectively based on the first signal segment and the second signal segment; and identifying a step event of the user based on a deviation between the first amplitude feature and the second amplitude feature.
[0143] According to one embodiment of the present specification, the first time window is within the second time window and has the same end time as the second time window.
[0144] According to an embodiment of the present specification, determining the first amplitude feature includes: determining the first amplitude feature based on an average value of the first signal segment.
[0145] According to one embodiment of the present specification, determining a step event includes: determining a deviation based on a difference between a first amplitude feature and a second amplitude feature; and identifying a step event based on a determination result that the deviation exceeds a threshold deviation.
[0146] According to one embodiment of the present specification, determining a step event further includes: moving a first time window and a second time window forward respectively along the acceleration signal stream; determining a step strength associated with the movement of the first time window and the second time window based on a first group of signal segments and a second group of signal segments acquired during the movement; and identifying a step event based on a determination result that the step strength exceeds a threshold strength.
[0147] According to one embodiment of the present specification, determining the step strength includes: determining a first set of amplitude features and a second set of amplitude features based on the first set of signal segments and the second set of signal segments, respectively; and obtaining a sum of a set of deviations between the first set of amplitude features and the second set of amplitude features.
[0148] According to one embodiment of the present specification, the method further includes: determining the acceleration amplitude of each frame in the acceleration signal stream based on the measurement values of multiple dimensions of the acceleration signal stream; and verifying the step event based on the determination result that the acceleration amplitude of a frame of the identified step event exceeds the threshold amplitude.
[0149] According to an embodiment of the present specification, the method further includes: verifying the step event based on a determination result that the frequency of the step event is within a frequency limit range.
[0150] According to an embodiment of the present specification, the method further includes: determining a step length associated with a step event based on a step length model, wherein the step length model characterizes a correlation between a step length of a reference user and an acceleration signal stream collected by an acceleration sensor carried by the reference user.
[0151] According to one embodiment of the present specification, a method for determining a step length includes: identifying an extreme value within a step window associated with a step event from an acceleration signal stream; determining an average value of the step window; and determining the step length based on a step length model, the extreme value, the average value, and the frequency of the step event.
[0152] According to one embodiment of the present specification, the step length model characterizes a polynomial relationship between a step length, an extreme value, an average value, and a frequency of an acceleration signal stream of one of the reference users, wherein the acceleration signal stream is collected by an acceleration sensor associated with the reference user.
[0153] According to one embodiment of the present specification, the method further includes: obtaining a direction signal stream related to the user and collected by a direction sensor; determining a movement direction related to the step event based on the acceleration signal stream and the direction signal stream; and determining the user's trajectory based on the movement direction and the step length.
[0154] According to one embodiment of the present specification, this is an electronic device for indoor navigation. The device includes: a processing unit; and a memory, the memory is connected to the processing unit and stores instructions executed by the processing unit, when the processing unit executes the instructions, the memory causes the device to perform the following operations: respectively obtain a first signal segment and a second signal segment in a first time window and a second time window in an acceleration signal stream, the acceleration signal stream is collected by an acceleration sensor associated with a mobile user, and the first time window is shorter than the second time window; respectively determine a first amplitude feature and a second amplitude feature of the first time window and the second time window based on the first signal segment and the second signal segment; and identify a step event of the user based on the deviation between the first amplitude feature and the second amplitude feature.
[0155] According to one embodiment of the present specification, the first time window is within the second time window and has the same end event as the second time window.
[0156] According to an embodiment of the present specification, determining the first amplitude feature includes: determining the first amplitude feature based on an average value of the first signal segment.
[0157] According to an embodiment of the present specification, determining a step event includes: determining a deviation based on a difference between a first amplitude feature and a second amplitude feature; and determining the step event based on a determination result that the deviation exceeds a threshold deviation.
[0158] According to one embodiment of the present specification, determining a step event further includes: moving a first time window and a second time window forward respectively along the acceleration signal stream; determining a step strength associated with the movement of the first time window and the second time window based on a first group of signal segments and a second group of signal segments acquired during the movement; and identifying a step event based on the step strength exceeding a threshold strength.
[0159] According to one embodiment of the present specification, determining the step strength includes: determining a first set of amplitude features and a second set of amplitude features based on the first set of signal segments and the second set of signal segments, respectively; and obtaining a sum of a set of deviations between the first set of amplitude features and the second set of amplitude features.
[0160] According to one embodiment of the present specification, the method further includes: determining the acceleration amplitude of each frame in the acceleration signal stream based on the measurement values of multiple dimensions of the acceleration signal stream; and verifying the step event based on the determination result that the acceleration amplitude of a frame of the identified step event exceeds the threshold amplitude.
[0161] According to an embodiment of the present specification, the method further includes: verifying the step event based on a determination result that the frequency of the step event is within a frequency limit range.
[0162] According to an embodiment of the present specification, the method further includes: determining a step length associated with a step event based on a step length model, wherein the step length model characterizes a correlation between a step length of a reference user and an acceleration signal stream collected by an acceleration sensor carried by the reference user.
[0163] According to one embodiment of the present specification, a method for determining a step length includes: identifying an extreme value within a step window associated with a step event from an acceleration signal stream; determining an average value of the step window; and determining the step length based on a step length model, the extreme value, the average value, and the frequency of the step event.
[0164] According to one embodiment of the present specification, the step length model characterizes a polynomial relationship between a step length, an extreme value, an average value, and a frequency of an acceleration signal stream of one of the reference users, wherein the acceleration signal stream is collected by an acceleration sensor associated with the reference user.
[0165] According to one embodiment of the present specification, the method further includes: obtaining a direction signal stream related to the user and collected by a direction sensor; determining a movement direction related to the step event based on the acceleration signal stream and the direction signal stream; and determining the user's trajectory based on the movement direction and the step length.
[0166] According to one implementation of the present specification, a computer program product is provided for indoor navigation. The computer program product includes a computer-readable storage medium containing program instructions, and when the program instructions are executed by an electronic device, the electronic device executes a method for indoor navigation.
[0167] According to one embodiment of the present specification, a computer-readable storage medium is provided for indoor navigation, wherein the medium contains program instructions, and the program instructions are executed by an electronic device so that the electronic device executes an indoor navigation method.
[0168] According to one embodiment of the present specification, a computer-implemented method is provided for indoor navigation. The method includes: obtaining a device direction of a terminal device carried by a mobile user based on at least one signal stream collected from the terminal device; determining a deviation degree based on the at least one signal stream, the deviation degree representing a deviation between the user's motion direction and the actual device direction of the terminal device; and determining a motion direction based on the device direction based on a determination result that the deviation degree is lower than a threshold degree.
[0169] According to one embodiment of the present specification, determining the degree of deviation includes: obtaining an estimated direction of movement of a user based on at least one signal stream; obtaining an estimated angle difference between the direction of movement and an actual device direction; and determining the degree of deviation based on the device direction, the estimated direction of movement, and the estimated angle difference.
[0170] According to an embodiment of the present specification, the method further includes: determining the movement direction based on the estimated movement direction according to a determination result that the deviation degree exceeds a threshold degree.
[0171] According to one embodiment of the present specification, obtaining an estimated motion direction includes: obtaining a direction model, the direction model characterizing the association between the motion direction of a reference user and a signal stream collected from a terminal device of the reference user; and obtaining the estimated motion direction based on the direction model and at least one signal stream of the user.
[0172] According to one embodiment of the present specification, obtaining the estimated motion direction further includes: identifying a step window associated with a user's step event in at least one signal stream; and obtaining the estimated motion direction based on the direction model and the step signal segment within the step window in the signal stream.
[0173] According to an embodiment of the present specification, at least one signal stream includes an acceleration signal stream acquired by an acceleration sensor of the terminal device and a direction signal stream acquired by a direction sensor of the terminal device.
[0174] According to one embodiment of the present specification, identifying a step event includes: acquiring a first signal segment and a second signal segment in a first time window and a second time window in an acceleration signal stream, respectively; and identifying a step event based on a comparison result of the first signal segment and the second signal segment.
[0175] According to one embodiment of the present specification, obtaining an estimated angle difference includes: obtaining a deviation model, the deviation model characterizing the association between an angle difference of a reference user and a signal stream collected from a terminal device of the reference user, one of the angle differences being an angle difference between a movement direction of one of the reference users and an actual device direction of the terminal device of the reference user; and, based on the deviation model and at least one signal stream of the user, obtaining the estimated angle difference.
[0176] According to one implementation of the present specification, determining the degree of deviation further includes: determining a movement speed of the user based on at least one signal stream; and determining the degree of deviation based on the movement speed, the device direction, the estimated movement direction, and the estimated angle difference.
[0177] According to an embodiment of the present specification, the method further includes: determining a trajectory of the user based on the movement direction and the movement speed.
[0178] According to an implementation of the present specification, an electronic device is provided for indoor navigation. The device includes: a processing unit; a memory connected to the processing unit and storing instructions executed by the processing unit, and when the processing unit executes the instructions, the device is directed to perform operations including: obtaining a device direction of a terminal device based on at least one signal stream collected from a terminal device carried by a mobile user; determining a deviation degree based on at least one signal stream, the deviation degree representing a deviation between a user's motion direction and an actual device direction of the terminal device; and determining a motion direction based on the device direction according to a determination result that the deviation degree is lower than a threshold degree.
[0179] According to one embodiment of the present specification, determining the degree of deviation includes: obtaining an estimated direction of movement of a user based on at least one signal stream; obtaining an estimated angle difference between the direction of movement and an actual device direction; and determining the degree of deviation based on the device direction, the estimated direction of movement, and the estimated angle difference.
[0180] According to an embodiment of the present specification, the operation further includes: determining the moving direction based on the estimated moving direction according to a determination result that the deviation degree exceeds a threshold degree.
[0181] According to one embodiment of the present specification, obtaining an estimated motion direction includes: obtaining a direction model, the direction model characterizing the association between the motion direction of a reference user and a signal stream collected from a terminal device of the reference user; and obtaining the estimated motion direction based on the direction model and at least one signal stream of the user.
[0182] According to one embodiment of the present specification, obtaining the estimated motion direction further includes: identifying a step window associated with a user's step event in at least one signal stream; and obtaining the estimated motion direction based on the direction model and the step signal segment within the step window in the signal stream.
[0183] According to an embodiment of the present specification, at least one signal stream includes an acceleration signal stream acquired by an acceleration sensor in the terminal device, and a direction signal stream acquired by a direction sensor in the terminal device.
[0184] According to one embodiment of the present specification, identifying a step event includes: acquiring a first signal segment and a second signal segment in a first time window and a second time window in an acceleration signal stream, respectively; and identifying a step event based on a comparison result of the first signal segment and the second signal segment.
[0185] According to one embodiment of the present specification, obtaining an estimated angle difference includes: obtaining a deviation model, the deviation model characterizing the association between an angle difference of a reference user and a signal stream collected from a terminal device of the reference user, one of the angle differences being an angle difference between a movement direction of one of the reference users and an actual device direction of the terminal device of the reference user; and, based on the deviation model and at least one signal stream of the user, obtaining the estimated angle difference.
[0186] According to one implementation of the present specification, determining the degree of deviation further includes: determining a movement speed of the user based on at least one signal stream; and determining the degree of deviation based on the movement speed, the device direction, the estimated movement direction, and the estimated angle difference.
[0187] According to one embodiment of the present specification, the operation further includes: determining a trajectory of the user based on the movement direction and the movement speed.
[0188] According to one embodiment of the present specification, a computer program product is provided for indoor navigation. The computer program product includes a computer-readable storage medium containing program instructions, and the program instructions are executed by an electronic device to enable the electronic device to perform a method for indoor navigation.
[0189] According to one embodiment of the present specification, a computer-readable storage medium is provided, wherein the storage medium contains program instructions, and the program instructions are executed by an electronic device to enable the electronic device to perform an indoor navigation method.
[0190] The embodiments of the present specification may further include one or more computer program products tangibly stored on a non-transitory machine-readable medium and including machine-executable instructions. When the instructions are executed on an electronic device, the electronic device performs one or more of the above processes.
[0191] In general, various embodiments may be implemented in hardware or special purpose circuits, software, logical operations, or any combination thereof. Certain embodiments may be implemented in hardware, while other embodiments may be implemented in firmware or software, which may be executed by a controller, microprocessor, or other computing device. Although various embodiments of this specification are illustrated and described by block diagrams, flow charts, or some other graphical representation, it is understood that the modules, devices, systems, techniques, or methods described herein may be implemented, as non-limiting examples, in hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controllers, or other computing devices, or any combination thereof.
[0192] In the context of this specification, a machine-readable medium may be any tangible medium that may contain or store a program used or associated with an instruction execution system, device, or apparatus. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or apparatus, or any suitable combination thereof. More specific examples of machine-readable storage media include an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination thereof.
[0193] The computer program code for executing the method of the present specification can be written in one or more or any combination of programming languages. These computer program codes can be provided to a processor of a general-purpose computer, a special-purpose computer or other programmable data processing device so that when the program code is executed by the computer or other programmable data processing device, the functions or operations specified in the flowchart and / or block diagram to be implemented can be implemented. The program code can be executed entirely on the computer, as a stand-alone software package, partly on the computer, partly on a remote computer or entirely on a remote computer or server.
[0194] In addition, although operations are depicted in a particular order, it should not be understood as requiring that the operations be performed in the particular order shown or in a sequential order, or that all of the operations described be performed, in order to achieve the desired results. In some cases, multitasking and parallel processing may be more advantageous. Similarly, although the above discussion contains details of several specific embodiments, it should not be interpreted as a limitation on the scope of any disclosure or the scope that may be claimed, but rather as a description of the specific functions of a specific embodiment of a specific disclosure. Certain functions described separately in the context of independent embodiments in this specification may also be implemented in combination in a single embodiment. Conversely, the various functions described in the context of a single embodiment may also be implemented separately in multiple embodiments or in any suitable combination.
[0195] When read in conjunction with the accompanying drawings, various modifications and applications of the above embodiments of this specification will be apparent to those skilled in the art from the above description. Any and all modifications will still fall within the scope of the non-limiting and exemplary embodiments of this specification. In addition, other implementations related to this specification will be readily apparent to those skilled in the art, and the above description and the introduction of the accompanying drawings teach these related embodiments. Therefore, it is to be understood that the embodiments of this specification are not limited to the specific embodiments disclosed, and modifications and other embodiments are intended to be included within the scope of the claims. Although specific terms are used herein, they are used only in a general and descriptive sense, and not for the purpose of limitation.
Claims
1. A computer-implemented method comprising: Acquire a first signal segment and a second signal segment in a first time window and a second time window in an acceleration signal stream, respectively, wherein the acceleration signal stream is collected by an acceleration sensor associated with a mobile user, the first time window is shorter than the second time window; the first time window is within the second time window and has the same end time as the second time window; Determine first amplitude characteristics and second amplitude characteristics of the first time window and the second time window respectively based on the first signal segment and the second signal segment; as well as A step event of the user is identified based on a deviation between the first amplitude feature and the second amplitude feature.
2. The method according to claim 1, characterized in that Determining the first amplitude characteristic includes: The first amplitude characteristic is determined based on an average value of the first signal segment.
3. The method according to claim 1, characterized in that Identifying the step event includes: determining the deviation based on a difference between the first amplitude characteristic and the second amplitude characteristic; and The step event is identified based on a determination that the deviation exceeds a threshold deviation.
4. The method according to claim 3, characterized in that Identifying the step event further comprises: Moving the first time window and the second time window forward respectively along the acceleration signal stream; determining a step strength associated with movement of the first time window and the second time window based on a first set of signal segments and a second set of signal segments acquired during the movement; and The step event is identified based on a determination that the step intensity exceeds a threshold intensity.
5. The method according to claim 4, characterized in that Determining the step strength includes: determining a first set of amplitude features and a second set of amplitude features based on the first set of signal segments and the second set of signal segments, respectively; and A sum of a set of deviations between the first set of amplitude features and the second set of amplitude features is obtained.
6. The method according to claim 1, characterized in that The method further comprises: Determining the acceleration amplitude of each frame in the acceleration signal stream based on the measured values of multiple dimensions of the acceleration signal stream; and The step event is validated based on a determination that an acceleration magnitude of one frame of the identified step event exceeds a threshold magnitude.
7. The method according to claim 1, characterized in that The method further comprises: Based on a determination that the frequency of the step event is within the frequency limit, the step event is verified.
8. The method according to claim 1, characterized in that The method further comprises: A step length associated with the step event is determined based on a step length model, wherein the step length model represents a correlation between a step length of a reference user and an acceleration signal stream collected by an acceleration sensor carried by the reference user.
9. The method according to claim 8, characterized in that Determining the step size includes: identifying, from the acceleration signal stream, an extreme value within a step window associated with the step event; determining a mean value of the step window; and The step size is determined based on the step size model, the extreme value, the average value, and the frequency of the step events.
10. The method according to claim 9, characterized in that The step length model characterizes a polynomial relationship between a step length, an extreme value, an average value, and a frequency of an acceleration signal stream of one of the reference users, wherein the acceleration signal stream is collected by an acceleration sensor associated with the reference user.
11. The method according to claim 1, characterized in that: Further including: Acquire a direction signal stream associated with the user and collected by a direction sensor; determining a direction of motion associated with the step event based on the acceleration signal stream and the direction signal stream; as well as A trajectory of the user is determined based on the motion direction and step length.
12. An electronic device comprising: Processing unit; as well as A memory connected to the processing unit and storing instructions executed by the processing unit, wherein when the processing unit executes the instructions, the memory causes the device to perform the following operations: Acquire a first signal segment and a second signal segment in a first time window and a second time window in an acceleration signal stream, respectively, wherein the acceleration signal stream is collected by an acceleration sensor associated with a mobile user, the first time window is shorter than the second time window; the first time window is within the second time window and has the same end time as the second time window; Determine first amplitude characteristics and second amplitude characteristics of the first time window and the second time window respectively based on the first signal segment and the second signal segment; as well as A step event of the user is identified based on a deviation between the first amplitude feature and the second amplitude feature.
13. The device according to claim 12, characterized in that Determining the first amplitude characteristic includes: The first amplitude characteristic is determined based on an average value of the first signal segment.
14. The device according to claim 12, characterized in that Identifying the step event includes: determining the deviation based on a difference between the first amplitude characteristic and the second amplitude characteristic; and The step event is identified based on a determination that the deviation exceeds a threshold deviation.
15. The device according to claim 14, characterized in that Identifying the step event further comprises: Moving the first time window and the second time window forward respectively along the acceleration signal stream; determining a step strength associated with movement of the first time window and the second time window based on a first set of signal segments and a second set of signal segments acquired during the movement; and The step event is identified based on the step intensity exceeding a threshold intensity.
16. The device according to claim 15, characterized in that Determining the step strength includes: determining a first set of amplitude features and a second set of amplitude features based on the first set of signal segments and the second set of signal segments, respectively; and A sum of a set of deviations between the first set of amplitude features and the second set of amplitude features is obtained.
17. The device according to claim 12, characterized in that The instructions further include: Determining the acceleration amplitude of each frame in the acceleration signal stream based on the measured values of multiple dimensions of the acceleration signal stream; and The step event is validated based on a determination that an acceleration magnitude of one frame of the identified step event exceeds a threshold magnitude.
18. The device according to claim 12, characterized in that The instructions further include: Based on a determination that the frequency of the step event is within the frequency limit, the step event is verified.
19. The device according to claim 12, characterized in that The instructions further include: A step length associated with the step event is determined based on a step length model, wherein the step length model represents a correlation between a step length of a reference user and an acceleration signal stream collected by the acceleration sensor carried by the reference user.
20. The device according to claim 19, characterized in that Determining the step size includes: identifying, from the acceleration signal stream, an extreme value within a step window associated with the step event; determining a mean value of the step window; and The step size is determined based on the step size model, the extreme value, the average value, and the frequency of the step events.
21. The device according to claim 20, characterized in that The step length model characterizes a polynomial relationship between a step length, an extreme value, an average value, and a frequency of an acceleration signal stream of one of the reference users, wherein the acceleration signal stream is collected by an acceleration sensor associated with the reference user.
22. The device according to claim 12, characterized in that The instructions further include: Acquire a direction signal stream associated with the user and collected by a direction sensor; determining a direction of motion associated with the step event based on the acceleration signal stream and the direction signal stream; and A trajectory of the user is determined based on the motion direction and step length.
23. A computer program product, comprising a computer-readable storage medium containing program instructions, wherein the program instructions are executed by an electronic device to cause the electronic device to perform the method according to any one of claims 1 to 11.
24. A computer-readable storage medium, the storage medium comprising program instructions, wherein the program instructions can be executed by an electronic device to enable the electronic device to perform the method according to any one of claims 1 to 11.
Citation Information
Patent Citations
Step counting method and terminal
CN106441350A
Positioning method and device and mobile terminal
CN109470238A