SYSTEMS AND METHODS TO CORRECT A VEHCILE INDUCED CHANGE OF DIRECTION
20170277280 · 2017-09-28
Assignee
Inventors
Cpc classification
G02B2027/0183
PHYSICS
G06F3/011
PHYSICS
G06F3/0346
PHYSICS
G02B27/0179
PHYSICS
International classification
G06F3/0346
PHYSICS
Abstract
A method to correct for a vehicle induced change of direction in an electronic device is described. The method comprises determining a first center pose of the electronic device, and determining when a motion of the electronic device is caused by a vehicle. At least one key point within a scene can be tracked, using a sensor in conjunction with computer vision operating on a processor, to determine a second center pose. It is then determined whether the second center pose is within a tolerance with respect to the first center pose; and the second center pose is adjusted when there is a difference between the second center pose and the first center pose.
Claims
1. A method to correct for a vehicle induced change of direction in an electronic device, comprising: determining a first center pose of the electronic device; determining when a motion of the electronic device is caused by a vehicle; tracking, using a sensor in conjunction with computer vision operating on a processor, at least one key point within a scene to determine a second center pose; determining whether the second center pose is within a tolerance with respect to the first center pose; and adjusting the second center pose when there is a difference between the second center pose and the first center pose.
2. The method of claim 1 wherein determining when a motion of the electronic device is caused by a vehicle comprises determining when a vehicle is following an intended path.
3. The method of claim 2 further comprising determining when a turn in imminent, wherein the tracking the at least one key point is performed when the turn is imminent.
4. The method of claim 1 wherein determining when a motion of the electronic device is caused by a vehicle comprises evaluating a GPS signal.
5. The method of claim 1 wherein determining when a motion of the electronic device is caused by a vehicle comprises determining when a turning of the electronic device is cause by a turning of the vehicle.
6. The method of claim 5 further comprising determining whether a rate of change of the turning of the vehicle is within a tolerance.
7. The method of claim 6 wherein determining when a motion of the electronic device is caused by a vehicle comprises performing an accumulation filtering of a plurality of HMD poses.
8. An electronic device, comprising: a display; a sensor configured to track at least one key point within a scene; a processor coupled to the display and the sensor, the processor configured to: determine when a motion of the electronic device is caused by a vehicle; track, using the sensor in conjunction with computer vision operating on the processor, the at least one key point within the scene to determine a second center pose; determines whether the second center pose is within a tolerance with respect to a first center pose; and adjust the second center pose when there is a difference between the second center pose and the first center pose.
9. The electronic device of claim 8 wherein the determination when a motion of the electronic device is caused by a vehicle comprises determining when a vehicle is following an intended path.
10. The electronic device of claim 9 wherein the processor is further configured to determine when a turn is imminent, and perform tracking the at least one key point when the turn is determined to be imminent.
11. The electronic device of claim 8 wherein the determination when a motion of the electronic device is caused by a vehicle comprises evaluating a GPS signal.
12. The electronic device of claim 8 wherein the determination when a motion of the electronic device is caused by a vehicle comprises determining when a turning of the electronic device is cause by a turning of the vehicle.
13. The electronic device of claim 12 wherein the processor further configured to determine whether a rate of change of the turning of the vehicle is within a tolerance.
14. The electronic device of claim 13 wherein the determination when a motion of the electronic device is caused by a vehicle comprises performing an accumulation filtering of a plurality of HMD poses.
15. A non-transitory computer-readable storage medium having data stored therein representing instructions executable by a processor to perform a method comprising: determining a first center pose of the electronic device; determining when a motion of the electronic device is caused by a vehicle; tracking, using a sensor in conjunction with computer vision operating on a processor, at least one key point within a scene to determine a second center pose; determining whether the second center pose is within a tolerance with respect to the first center pose; and adjusting the second center pose when there is a difference between the second center pose and the first center pose.
16. The non-transitory computer-readable storage medium of claim 15 wherein determining when a motion of the electronic device is caused by a vehicle comprises determining when a vehicle is following an intended path.
17. The non-transitory computer-readable storage medium of claim 16 further comprising determining when a turn in imminent, wherein the tracking the at least one key point is performed when the turn is imminent.
18. The non-transitory computer-readable storage medium of claim 15 wherein determining when a motion of the electronic device is caused by a vehicle comprises evaluating a GPS signal.
19. The non-transitory computer-readable storage medium of claim 15 wherein determining when a motion of the electronic device is caused by a vehicle comprises determining when a turning of the electronic device is cause by a turning of the vehicle.
20. The non-transitory computer-readable storage medium of claim 19 further comprising determining whether a rate of change of the turning of the vehicle is within a tolerance.
21. The non-transitory computer-readable storage medium of claim 20 wherein determining when a motion of the electronic device is caused by a vehicle comprises performing an accumulation filtering of a plurality of HMD poses.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
DETAILED DESCRIPTION
[0021] While the specification includes claims defining the features of one or more implementations of the invention that are regarded as novel, it is believed that the circuits and methods will be better understood from a consideration of the description in conjunction with the drawings. While various circuits and methods are disclosed, it is to be understood that the circuits and methods are merely exemplary of the inventive arrangements, which can be embodied in various forms. Therefore, specific structural and functional details disclosed within this specification are not to be interpreted as limiting, but merely as a basis for the claims and as a representative basis for teaching one skilled in the art to variously employ the inventive arrangements in virtually any appropriately detailed structure. Further, the terms and phrases used herein are not intended to be limiting, but rather to provide an understandable description of the circuits and methods.
[0022] HMD devices typically use an onboard computer or mobile device to render virtual and augmented scenes, but rely on the sensors in the HMD or mobile device for head orientation tracking. That is, such devices do not employ external sensors for head positional tracking. This arrangement can be a problem when traveling in a vehicle and the vehicle changes direction. In the virtual world, the scene will change direction because the HMD believes that a user is turning their head, when in fact, the vehicle is turning. To address this problem, a potential change of direction can be detected, and computer vision (CV) techniques can be employed to compensate for the erroneous information that is generated by the vehicle's change in direction. If available, Global Positioning System (GPS) information and path information can be used to predict and refine when to employ the CV techniques.
[0023] More particularly, CV techniques can be optimized for azimuth position detection. Further, procedures can be set-up to determine when to employ the CV techniques. If GPS information and path information are available, that information can be used to augment prediction and tracking of a turn event. In addition, vehicle movement information associated with a route can also be recorded for reuse or sharing with other HMD users. CV techniques can be employed to measure visual cues that are not part of the vehicle to augment tracking of a turn event. In one embodiment, CV, GPS, and path information are employed to create a VR experience whose movements are tied to the vehicle's movement. Embodiments can also be used in augmented reality (AR) or mixed reality (MR) systems.
[0024]
[0025]
[0026] An attachment element 208 may be used to secure the portable electronic device 206 to the control unit 204. The attachment element 208 may include a connector mechanism (e.g., microUSB, USB type C, lightning connector, etc.). The attachment element may further include a mechanism to hold the portable electronic device to the HMD. Examples of such mechanisms may include clips, clamps, removable covers, etc. The portable electronic device could be for example a smart phone or other type of wireless communication device having a display. A camera 210, which may be a part of the portable electronic device 206, allows the head-mounted electronic device to function as a virtual reality (VR) device or an augmented reality (AR) device using the camera to pass-through images of the surrounding environment. The HMD may also comprise user interface elements, shown here as a track pad 212 and a control button 214, which may allow a selection operation that depends upon the mode of operation of the HMD.
[0027] While an electronic device having a display viewable by a user is shown in
[0028]
[0029]
[0030] The processor circuit 402 may also be coupled to a memory 408 that allows storing information related to various frames of an image, or resulting digital images associated with an AR or a VR image. The memory 408 could be implemented as a part of the processor circuit 402, or could be implemented in addition to any cache memory of the processor, as is well known. The memory 408 could include any type of memory, such as a solid-state drive (SSD), Flash memory, Read Only Memory (ROM) or any other memory element that provides long term memory, where the memory could be any type of internal memory of the electronic drive or external memory accessible by the electronic device. The processor 402 could implement open CV software tools or other suitable software tools stored on the memory and accessible by the processor for enabling computer vision. A user interface 410, which may be separate from the display, or which may be a part of, or responsive to, the display, is also shown. The user interface 410 may comprise both graphical and physical user interface elements, where the graphical user interface may comprise a touch screen display implemented as display 406, which may be used before the HMD is attached to the head. The physical user interface may comprise elements that allow providing data or other information to the electronic device, such as the touchpad 212 and the control button 214, or other elements such as a microphone, a mouse, or a keypad, where the mouse or keypad could be a wired or wireless device for example. The processor circuit 402 may also be coupled to other elements that receive inputs or allow for the capturing of a digital image or displaying an AR or VR image. For example, a motion sensor, such as an inertial measurement unit (IMU) 412, can provide various information related to the motion or orientation of the device 400. The IMU 412 could include an accelerometer and a gyroscope for example. The processor circuit 402 may also receive input by way of an input/output (I/O) port 414 or a transceiver 416 coupled to an antenna 418. The I/O port 414 may be any interface element adapted to interface with external physical user interface elements, such as an external keyboard or mouse, by way of a wired or wireless connection for example. A battery 420 may be implemented to provide power to the processor and other elements of the device 400.
[0031] According to one implementation, a device 430 associated with a vehicle could provide data to or receive data from device 400. A device 430 comprises a processor circuit 432 could be implemented as a part of the vehicle in which the user of an electronic device, such as an HMD, is travelling. The processor circuit 432 could also be an ARM processor, an X86 processor, a MIPS processor, a graphics processing unit (GPU), a general purpose GPU, or any other processor configured to execute instructions stored in a memory. The processor 432 could be implemented in one or more processing devices, where the processors may be different. The processor implements an operating system (OS) that accesses software on the memory and receives various inputs, such as readings from the IMU and a sensor, such as a camera for example. The device 430 could be any type of device, or a component such as an integrated circuit of a device or system associated with a vehicle. The device 430 could comprise a GPS circuit 433 and one or more sensors 434. The sensor 434 could include a digital camera, or any portion of a digital camera, such as a lens or other image sensing element. While a single sensor is shown, it should be understood that multiple sensors and could include any type of sensor that could be used to detect key points in a scene. The sensor 434 could also be a wearable sensor separate from the device 400 and the vehicle, such as sensor associated with a smart watch or other wearable device. The processor circuit could be coupled to a display 436 for displaying a captured image, and more particularly, displaying a digital image.
[0032] The processor circuit 432 may also be coupled to a memory 438 that allows storing information. The memory 438 could be implemented as described in reference to device 400. A user interface 440, which may be separate from the display, or which may be a part of, or responsive to, the display, is also shown. The user interface 440 may comprise both graphical and physical user interface elements, where the graphical user interface may comprise a touch screen display implemented in the vehicle. The processor circuit 432 may also be coupled to other elements that receive inputs associated with the operation of the vehicle system. The device 430 may also comprise and IMU 442 associated with the vehicle. The processor circuit 432 may also receive input by way of an input/output (I/O) port 444 or a transceiver 446 coupled to an antenna 448. The I/O port 444 may be any interface element adapted to interface with external physical user interface elements by way of a wired or wireless connection for example. By way of example, path information associated with a vehicle that may be entered on a vehicle navigation system could be received at the device 400 from the device 430 associated with the vehicle to allow path information to be used to correct a vehicle induced change of direction in device 400.
[0033]
[0034] According to one implementation, a determination can be made that a motion of an electronic device is caused by a vehicle by performing an accumulation filtering of a plurality of HMD poses. That is,
[0035]
[0036] A history may also be used to implement the correction of a vehicle induced turn.
[0037]
[0038] In one embodiment, the computer vision techniques used for correcting for a vehicle induced change of direction can be turned on by default from the operating system (OS) of the electronic device, initiated by an app, or initiated by the user (e.g., initiated when the user puts the device in a particular mode, such as an airplane mode for example). Once the program is initialized, a reported center pose is provided by the OS. This reported center pose is the HMD pose when a user of the HMD is looking straight ahead. It is then determined if the HMD pose is within an offset tolerance at block 904. For example, it may be determined whether the pose is within a tolerance with respect to the reported center pose. If not, the system waits until the HMD pose is within a tolerance. That is, the system waits until the user is looking straight ahead again before selecting key points that may be used when correcting for a vehicle induced change of direction.
[0039] Visual key points in a scene or region of interest of the display of the HMD are then found at block 908. Using computer vision techniques, for example, at least one key point can be discovered and tracked within the scene. The key points can be, for example, edges of an object within the scene. When the head pose is within the tolerance, the front facing or other HMD sensors are turned on and send data at block 906. For example, the CV system on the HMD tracks specific key points in the user's environment, such as the key points on the seat in front of the passenger in
[0040] Key points can be determined to be stable once enough key points have been tracked at a high enough level of confidence and are not inconsistent with IMU data. The level of confidence can be considered high, for example, when the key points are checked multiple times (e.g., 100 times) and the key points appear in substantially the same place. By way of example, the IMU data and the key points can be considered consistent when the IMU data indicates that there was no head movement (i.e. within tolerance) and the key points are in substantially the same place (i.e. within tolerance).
[0041] An exemplary process for determining whether to implement CV techniques to correct for vehicle induced change of direction in an electronic device is shown in block 913. In particular, a change of HMD orientation is received at block 914. Spikes in head pose changes are detected at block 916. Data associated with the detected head pose changes may then be filtered and averaged to detect trending changes in an azimuthal direction of the HMD at block 918.
[0042] It is then determined, at block 920, whether a magnitude of a change is within a tolerance, based upon the change of HMD orientation at block 914 or a detected trending change in the azimuthal direction of the HMD at block 918. If the magnitude of change is not within a tolerance (i.e. the head is moving faster than would normally be associated with a turning of a vehicle), it is then determined if the rate is not within the tolerance over a set period of time at block 922. That is, if a vehicle is turning, it will likely be in the turn for an extended period of time. If the rate is not within the tolerance over the set period of time, a message will be sent to the OS to activate turn correction at block 924. By way of example, a magnitude of change can be calculated based on change of direction rate over time. If change of direction is within set tolerances, for example, between 1-3 degrees/second over 3 seconds, correction to a vehicle induced change of direction using CV techniques is invoked. This correction will continue to run until the condition is no longer true. Since we are looking for a gradual extended turn, normal head movement can be filtered out through the use of spike value filtering. Spike value filtering is a process where head pose changes in azimuth that exceeds a preset degree over time, for example, over 10 degrees per second, is tracked as a highly probable true movement of the head. All values that are tracked as highly probable are monitored such that the averaging and filtering of all these movements can still indicate a smooth movement that would fit in the vehicle direction change profile.
[0043] Alternatively, one or both of GPS data and an intended vehicle path can be received at block 926, to allow the HMD to determine whether a turn is imminent at block 928. The path information could be path information entered by a user on a smart phone, for example, or could be received from the vehicle. If a turn is imminent, a message will also be sent to the OS to activate the correction of the vehicle induced change of direction at block 924. Optionally, the OS, the application, or the user can place the application in an “always on” mode, where the CV techniques enabling the correction of a vehicle induced change of direction are constantly running regardless of change of direction. Optionally, an exception to the continuous running correction would be where the HMD is in a steady front and center state and little to no azimuth movement is detected. This exception will save on power and computing resources. A further exception could be where movement spikes are detected and the HMD returned to front and center within a set tolerance, for example, 3 seconds. It is important to note that, even if the turn correction is activated while no turning event is taking place, the azimuth changes induced by head movement will not adversely affect the operation because the CV tracking of the external reference scene will agree with the IMU data.
[0044] If GPS and path information is available, that information can be used to augment and further improve turn prediction, tracking, and accuracy. More particularly, that information can allow for a VR experience that is tied to the vehicle's movement. For example, a VR environment can use movements of the vehicles to move the user through the environment by detecting forward and lateral movements as well as changes in azimuth and elevation.
[0045] After turn correction is activated, CV techniques can be implemented to allow the correction for a vehicle induced change of direction in an electronic device, as shown in block 929. If a camera or other sensor enabling CV techniques is not activated, it will be activated at block 930. It is then determined whether a match with stored visual key points is found at block 932. If not, the remote key points are removed from storage at block 934, and the new key points are found in the scene or region of interest at block 908. If the identified key points match the stored key points, it is then determined whether the head pose is within a tolerance at block 936. If the head pose is within a tolerance, a message is sent to the OS to inactivate the turn correction at block 938. However, if the head pose is not within the tolerance at block 936, the pose is gradually corrected at block 940. That is, the error may be constantly recalculated until the error is below a tolerance. For example, the error can be slowly adjusted by 0.5° until the error is corrected.
[0046] A history associated with a change in location of a vehicle can also be maintained to allow the correction of a vehicle induced change of direction at block 941. Such a history may be beneficial if GPS information or intended vehicle path is not available. A history of locations is maintained to determine vehicle vector magnitude and direction at block 942. External non-vehicle visual data may be tracked at block 944 to estimate vehicle vector magnitude and direction, which can be included in the history maintained at block 942. The head pose can be used to isolate vehicle movement at block 946, where the head pose may be updated based upon the corrected pose at block 940. Vehicle movement data can be sent to the OS and application enabling the correction at block 948. By way of example, it should be noted that the methods of
[0047] It can therefore be appreciated that new devices for and methods of correcting for a vehicle induced change of direction through computer vision techniques have been described. It will be appreciated by those skilled in the art that numerous alternatives and equivalents will be seen to exist that incorporate the disclosed invention. As a result, the invention is not to be limited by the foregoing embodiments, but only by the following claims.