Low power visual tracking systems
Abstract
Systems, methods, and non-transitory media are provided for low-power visual tracking systems. An example method can include receiving one or more images captured by each image sensor system from a set of image sensor systems on a first device, the one or more images capturing a set of patterns on a second device, wherein the first device has lower power requirements than the second device, the set of patterns having a predetermined configuration on the second device; determining, from the one or more images captured by each image sensor system, a set of pixels corresponding to the set of patterns on the second device; determining, based on the set of pixels corresponding to the set of patterns, a location and relative pose in space of each pattern; and determining, based on the location and relative pose of each pattern, a pose of the first device relative to the second device.

Term
No projected expiry on record.
- Priority
- Filed
- Published
- Today
30 claims: 3 independent, 27 dependent
- 1一種方法,包括: 接收由第一設備上的至少一個圖像感測器系統捕捉的一個或多個圖像,所述一個或多個圖像捕捉在第二設備上具有預定配置的圖案集,其中所述第一設備與所述第二設備相比具有較低的功率要求; 根據由所述至少一個圖像感測器系統捕捉的所述一個或多個圖像來確定與所述第二設備上的所述圖案集相對應的像素集; 基於與所述第二設備上的所述圖案集相對應的所述像素集來確定來自所述圖案集的每一圖案在空間中的位置和相對姿態;以及 基於來自所述圖案集的每一圖案在空間中的所述位置和所述相對姿態來確定所述第一設備相對於所述第二設備的姿態。
- 2如請求項1所述的方法,其中所述至少一個圖像感測器系統包括圖像感測器系統集,並且其中確定所述第一設備相對於所述第二設備的姿態是進一步基於所述第一設備上的所述圖像感測器系統集的預定的相對位置和取向的。
- 3如請求項2所述的方法,進一步包括: 確定空間中與由所述圖像感測器系統集捕捉的場景相關聯的一個或多個點的三維(3D)坐標;以及 基於所述圖像感測器系統集的預定的相對位置和取向以及空間中的所述一個或多個點的所述3D坐標來確定所述第一設備上的所述圖像感測器系統集的相對3D姿態,其中所述第一設備相對於所述第二設備的姿態是進一步基於所述第一設備上的所述圖像感測器系統集的所述相對3D姿態的。
- 4如請求項1所述的方法,其中所述第一設備相對於所述第二設備的姿態包括六自由度(6DoF)姿態,並且其中所述圖案集的所述預定配置包括以下至少一者:每一圖案在所述第二設備上的相對位置、每一圖案在所述第二設備上的相對取向、每一圖案的形狀、每一圖案的大小、每一圖案的特性、以及所述圖案集的佈置。
- 5如請求項1所述的方法,其中確定來自所述圖案集的每一圖案在空間中的位置和相對姿態包括: 通過旋轉空間中與對應於所述圖案集的所述像素集相對應的3D坐標來確定所述圖案集的3D取向,所述3D坐標是相對於參考3D坐標來旋轉的;以及 通過平移空間中與對應於所述圖案集的所述像素集相對應的所述3D坐標來確定所述圖案集的3D位置,所述3D坐標是相對於所述參考3D坐標來平移的。
- 6如請求項5所述的方法,其中每一圖案的相對姿態是基於所述圖案集的所述3D取向和所述圖案集的所述3D位置的,並且其中每一圖案的位置包括來自所述圖案集的所述3D位置的相應3D位置。
- 7如請求項1所述的方法,其中確定所述第一設備相對於所述第二設備的姿態進一步包括確定所述第二設備相對於所述第一設備的姿態,其中所述第一設備的姿態包括第一6DoF姿態並且所述第二設備的姿態包括第二6DoF姿態。
- 8如請求項1所述的方法,其中所述第一設備包括手控制器設備並且所述第二設備包括頭戴式顯示設備。
- 9如請求項1所述的方法,其中所述至少一個圖像感測器系統包括低功率圖像感測器系統,並且其中所述圖案集中的每一圖案在紅外頻譜和可見光頻譜中的至少一者中是可見的。
- 10如請求項1所述的方法,其中所述圖案集中的至少一個圖案包括經編碼機器可讀資訊,所述經編碼機器可讀資訊包括以下至少一者:與所述至少一個圖案相關聯的位置資訊、與所述至少一個圖案相關聯的識別符、唯一碼、設置、以及關於與所述第一設備和所述第二設備中的至少一者上主存的延展實境應用相關聯的用戶賬戶的資訊。
- 11如請求項1所述的方法,其中確定與所述第二設備上的所述圖案集相對應的所述像素集包括: 基於由所述至少一個圖像感測器系統捕捉的所述一個或多個圖像來檢測來自所述第二設備上的所述圖案集的每一圖案;以及 標識來自所述圖案集的每一圖案中的一個或多個點,所述一個或多個點與來自所述像素集的一個或多個像素相對應, 其中確定每一圖案在空間中的位置和相對姿態是基於每一圖案中的所述一個或多個點的。
- 12如請求項1所述的方法,其中確定與所述第二設備上的所述圖案集相對應的所述像素集包括: 基於由所述至少一個圖像感測器系統捕捉的所述一個或多個圖像來檢測來自所述第二設備上的所述圖案集的每一圖案; 對於每一圖案,檢測較小的內部圖案;以及 標識每一較小的內部圖案中的一個或多個點,所述一個或多個點與來自所述像素集的一個或多個像素相對應, 其中確定每一圖案在空間中的位置和相對姿態是基於每一較小的內部圖案中的所述一個或多個點的。
- 13如請求項1所述的方法,其中確定所述第一設備相對於所述第二設備的姿態包括確定所述第一設備相對於所述第二設備的6DoF姿態以及所述第二設備相對於所述第一設備的6DoF姿態,所述方法進一步包括: 基於由所述至少一個圖像感測器系統捕捉的一個或多個附加圖像來檢測所述一個或多個附加圖像中捕捉的對象上的一個或多個附加圖案; 確定所述一個或多個附加圖像中與所述對象上的所述一個或多個附加圖案相對應的一個或多個像素;以及 基於所述一個或多個像素來確定所述對象相對於所述第一設備的6DoF姿態和所述第二設備的6DoF姿態中的至少一者的附加6DoF姿態。
- 14如請求項13所述的方法,其中所述對象包括牆、顯示設備、視頻遊戲控制台、家具、電器、或家庭用品。
- 15一種裝置,包括 : 記憶體;以及 耦合至所述記憶體的一個或多個處理器,所述一個或多個處理器被配置成: 接收由所述裝置上的至少一個圖像感測器系統捕捉的一個或多個圖像,所述一個或多個圖像捕捉在一設備上具有預定配置的圖案集,其中所述裝置與所述設備相比具有較低的功率要求; 根據由所述至少一個圖像感測器系統捕捉的所述一個或多個圖像來確定與所述設備上的所述圖案集相對應的像素集; 基於與所述設備上的所述圖案集相對應的所述像素集來確定來自所述圖案集的每一圖案在空間中的位置和相對姿態;以及 基於來自所述圖案集的每一圖案在空間中的所述位置和所述相對姿態來確定所述裝置相對於所述設備的姿態。
- 16如請求項15所述的裝置,其中所述至少一個圖像感測器系統包括圖像感測器系統集,並且其中確定所述裝置相對於所述第二設備的姿態是進一步基於所述裝置上的所述圖像感測器系統集的預定的相對位置和取向的。
- 17如請求項16所述的裝置,所述一個或多個處理器被配置成: 確定空間中與由所述圖像感測器系統集捕捉的場景相關聯的一個或多個點的三維(3D)坐標;以及 基於所述圖像感測器系統集的預定的相對位置和取向以及空間中的所述一個或多個點的3D坐標來確定所述圖像感測器系統集的相對3D姿態,其中所述裝置相對於所述設備的姿態是進一步基於所述圖像感測器系統集的所述相對3D姿態的。
- 18如請求項15所述的裝置,其中所述裝置相對於所述設備的姿態包括六自由度(6DoF)姿態,並且其中所述圖案集的所述預定配置包括以下至少一者:每一圖案在所述設備上的相對位置、每一圖案在所述設備上的相對取向、每一圖案的形狀、每一圖案的大小、每一圖案的特性、以及所述圖案集的佈置。
- 19如請求項15所述的裝置,其中確定來自所述圖案集的每一圖案在空間中的位置和相對姿態包括: 通過旋轉空間中與對應於所述圖案集的所述像素集相對應的3D坐標來確定所述圖案集的3D取向,所述3D坐標是相對於參考3D坐標來旋轉的;以及 通過平移空間中與對應於所述圖案集的所述像素集相對應的所述3D坐標來確定所述圖案集的3D位置,所述3D坐標是相對於所述參考3D坐標來平移的。
- 20如請求項19所述的裝置,其中每一圖案的相對姿態是基於所述圖案集的所述3D取向和所述圖案集的所述3D位置的,並且其中每一圖案的位置包括來自所述圖案集的所述3D位置的相應3D位置。
- 21如請求項15所述的裝置,其中確定所述裝置相對於所述設備的姿態進一步包括確定所述設備相對於所述裝置的姿態,其中所述裝置的姿態包括第一6DoF姿態並且所述設備的姿態包括第二6DoF姿態。
- 22如請求項15所述的裝置,其中所述裝置是手控制器設備並且所述設備是頭戴式顯示設備。
- 23如請求項15所述的裝置,其中所述至少一個圖像感測器系統包括低功率圖像感測器系統,並且其中所述圖案集中的每一圖案在紅外頻譜和可見光頻譜中的至少一者中是可見的。
- 24如請求項15所述的裝置,其中所述圖案集中的至少一個圖案包括經編碼機器可讀資訊,所述經編碼機器可讀資訊包括以下至少一者:與所述至少一個圖案相關聯的位置資訊、與所述至少一個圖案相關聯的識別符、唯一碼、設置、以及關於與所述裝置和所述設備中的至少一者上主存的延展實境應用相關聯的用戶賬戶的資訊。
- 25如請求項15所述的裝置,其中確定與所述設備上的所述圖案集相對應的所述像素集包括: 基於由所述至少一個圖像感測器系統捕捉的所述一個或多個圖像來檢測來自所述設備上的所述圖案集的每一圖案;以及 標識來自所述圖案集的每一圖案中的一個或多個點,所述一個或多個點與來自所述像素集的一個或多個像素相對應, 其中確定每一圖案在空間中的位置和相對姿態是基於每一圖案中的所述一個或多個點的。
- 26如請求項15所述的裝置,其中確定與所述設備上的所述圖案集相對應的所述像素集包括: 基於由所述至少一個圖像感測器系統捕捉的所述一個或多個圖像來檢測來自所述設備上的所述圖案集的每一圖案; 對於每一圖案,檢測較小的內部圖案;以及 標識每一較小的內部圖案中的一個或多個點,所述一個或多個點與來自所述像素集的一個或多個像素相對應, 其中確定每一圖案在空間中的位置和相對姿態是基於每一較小的內部圖案中的所述一個或多個點的。
- 27如請求項15所述的裝置,其中確定所述裝置相對於所述設備的姿態包括確定所述裝置相對於所述設備的6DoF姿態以及所述設備相對於所述裝置的6DoF姿態,所述一個或多個處理器被配置成: 基於由所述至少一個圖像感測器系統捕捉的一個或多個附加圖像來檢測所述一個或多個附加圖像中捕捉的對象上的一個或多個附加圖案; 確定所述一個或多個附加圖像中與所述對象上的所述一個或多個附加圖案相對應的一個或多個像素;以及 基於所述一個或多個像素來確定所述對象相對於所述第一設備的6DoF姿態和所述設備的6DoF姿態中的至少一者的附加6DoF姿態。
- 28如請求項27所述的裝置,其中所述對象包括牆、顯示設備、視頻遊戲控制台、家具、電器、或家庭用品。
- 29如請求項15所述的裝置,其中所述裝置是行動設備。
- 30一種非暫態計算機可讀儲存媒體,包括: 儲存在其上的指令,所述指令在由一個或多個處理器執行時致使所述一個或多個處理器: 接收由第一設備上的至少一個圖像感測器系統捕捉的一個或多個圖像,所述一個或多個圖像捕捉在第二設備上具有預定配置的圖案集,其中所述第一設備與所述第二設備相比具有較低的功率要求; 根據由所述至少一個圖像感測器系統捕捉的所述一個或多個圖像來確定與所述第二設備上的所述圖案集相對應的像素集; 基於與所述第二設備上的所述圖案集相對應的所述像素集來確定來自所述圖案集的每一圖案在空間中的位置和相對姿態;以及 基於來自所述圖案集的每一圖案在空間中的所述位置和所述相對姿態來確定所述第一設備相對於所述第二設備的姿態。
Independent claims30
154 paragraphs in 1 section, as filed
Low Power Vision Tracking System
LOW POWER VISUAL TRACKING SYSTEMS
The present disclosure generally relates to visual tracking systems for extended reality and other applications.
Pose estimation can be used in a variety of applications such as extended reality (eg, virtual reality, augmented reality, mixed reality, etc.), computer vision, and robotics to determine objects and/or devices relative to targets (such as scenes, humans, the position and orientation of another object and/or another device). Gesture information can be used to manage interactions between an object/device and a scene, a human, another object, and/or another device. For example, a robot's pose (eg, position and orientation) can be used to allow the robot to manipulate objects or avoid collisions with objects while moving around the scene. As another example, the relative poses of a user-worn device and a device controller may be used to provide an extended reality experience to the user, wherein the device controller's pose and movement are tracked and rendered on the user-worn device . However, the computational complexity of the pose estimation system can impose significant power and resource demands and can be a limiting factor in various applications. The computational complexity of pose estimation can also limit the performance and scalability of tracking and localization applications that rely on pose information.
Systems, methods, and computer-readable media for low-power visual tracking for extended reality and other applications are disclosed. According to at least one example, a method for low power visual tracking for extended reality and other applications is provided. The method may include receiving one or more images captured by at least one image sensor system on the first device, the one or more images captured on the second device having a set of patterns in a predetermined configuration, wherein The first device has lower power requirements than the second device; the set of pixels corresponding to the set of patterns on the second device is determined from one or more images captured by the at least one image sensor system determining, based on the set of pixels corresponding to the set of patterns on the second device, the position and relative pose in space of each pattern from the set of patterns; and based on the position in space and the relative pose of each pattern from the set of patterns relative pose to determine the pose of the first device relative to the second device.
According to at least one example, an apparatus for low power visual tracking for extended reality and other applications is provided. The device may include: memory; and one or more processors coupled to the memory, the one or more processors configured to: receive an image captured by at least one image sensor system on the device or images, the one or more images capturing a set of patterns having a predetermined configuration on a device, wherein the device has lower power requirements compared to the device; according to the at least one image sensor one or more images captured by the system to determine the set of pixels corresponding to the set of patterns on the device; determine that each pattern from the set of patterns is in space based on the set of pixels corresponding to the set of patterns on the device and determine the pose of the device relative to the device based on the position and relative pose in space of each pattern from the set of patterns.
According to at least one example, a non-transitory computer readable medium for low power visual tracking for extended reality and other applications is provided. The non-transitory computer-readable medium may include instructions stored thereon that, when executed by one or more processors, cause the one or more processors to: receive at least one image from the first device like one or more images captured by the sensor system, the one or more images capturing a set of patterns with a predetermined configuration on a second device, wherein the first device has lower power requirements than the second device determining a set of pixels corresponding to the set of patterns on the second device from one or more images captured by the at least one image sensor system; based on the set of pixels corresponding to the set of patterns on the second device to determine the position and relative pose in space of each pattern from the set of patterns; and determine the pose of the first device relative to the second device based on the position and relative pose in space of each pattern from the set of patterns.
According to at least one example, an apparatus for low power visual tracking for extended reality and other applications is provided. The device may include means for receiving one or more images captured by at least one image sensor system on the first device, the one or more images captured on the second device having a predetermined a set of patterns configured, wherein the first device has lower power requirements than the second device; determining the pattern on the second device from one or more images captured by the at least one image sensor system a set of pixels corresponding to the set; determining the position and relative pose in space of each pattern from the set of patterns based on the set of pixels corresponding to the set of patterns on the second device; and based on each pattern from the set of patterns Position and relative pose in space to determine the pose of the first device relative to the second device.
In some examples of the above-described methods, apparatuses (apparatuses), and non-transitory computer-readable storage media, the at least one image sensor system may include a set of image sensor systems, and the first apparatus is determined relative to the second The pose of the device (or device relative to the device) is further based on the predetermined relative position and orientation of the image sensor system set.
In some aspects, the above-described methods, apparatuses (apparatuses), and non-transitory computer-readable storage media may include determining a three-dimensional (3D) point in space associated with one or more points in space associated with a scene captured by a set of image sensor systems. ) coordinates; and determining the set of image sensor systems on the first device (or device) based on the predetermined relative position and orientation of the set of image sensor systems and the 3D coordinates of the one or more points in space The relative 3D pose of , wherein the pose of the first device (or device) relative to the second device is further based on the relative 3D pose of the set of image sensor systems on the first device (or device).
In some examples, the pose of the first device (or device) relative to the second device includes a six degrees of freedom (6DoF) pose, and the predetermined configuration of the pattern set includes: the relative position of each pattern on the second device, each pattern The relative orientation of the patterns on the second device, the shape of each pattern, the size of each pattern, the characteristics of each pattern, and/or the arrangement of the pattern sets.
In some cases, determining the position and relative pose in space of each pattern from the pattern set includes determining a 3D orientation of the pattern set by rotating 3D coordinates in space corresponding to the set of pixels corresponding to the pattern set, the 3D the coordinates are rotated relative to the reference 3D coordinates; and the 3D position of the pattern set is determined by translating the 3D coordinates in space corresponding to the set of pixels corresponding to the pattern set, the 3D coordinates being translated relative to the reference 3D coordinates . In some examples, the relative pose of each pattern may be based on the 3D orientation of the pattern set and the 3D position of the pattern set, and the position of each pattern includes a corresponding 3D position from the 3D position of the pattern set.
In some aspects, determining the pose of the first device (or apparatus) relative to the second device further comprises determining the pose of the second device relative to the first device (or apparatus), wherein the pose of the first device (or apparatus) includes the first The 6DoF posture and the posture of the second device includes the second 6DoF posture.
In some examples, the first device (or apparatus) may include a hand controller device and the second device may include a head mounted display device.
In some examples, the at least one image sensor system may comprise a low power image sensor system, and each pattern in the pattern set is visible in the infrared spectrum and/or the visible light spectrum.
In some aspects, at least one pattern in the set of patterns includes encoded machine-readable information including: location information associated with the at least one pattern, an identifier associated with the at least one pattern, a unique code, settings, and/or information about the user account associated with the extended reality application hosted on the first device (or device) and/or the second device.
In some aspects, determining the set of pixels corresponding to the set of patterns on the second device includes detecting a pixel set from the set of patterns on the second device based on one or more images captured by the at least one image sensor system each pattern; and identifying one or more points in each pattern from the set of patterns, the one or more points corresponding to one or more pixels from the set of pixels, wherein the location of each pattern in space is determined and relative poses are based on the one or more points in each pattern.
In some aspects, determining the set of pixels corresponding to the set of patterns on the second device includes detecting a pixel set from the set of patterns on the second device based on one or more images captured by the at least one image sensor system each pattern; for each pattern, detecting smaller inner patterns; and identifying one or more points in each smaller inner pattern that are associated with one or more pixels from the pixel set; Correspondingly, where the location and relative pose of each pattern in space are determined based on the one or more points in each of the smaller internal patterns.
In some examples, determining the pose of the first device (or apparatus) relative to the second device includes determining a 6DoF pose of the first device (or apparatus) relative to the second device and the second device relative to the first device (or apparatus) 6DoF stance. In some aspects, the above-described methods, apparatuses (apparatuses), and non-transitory computer-readable storage media may include detecting the one or more additional images captured by the at least one image sensor system based on the one or more additional images. one or more additional patterns on the object captured in the additional image; determining one or more pixels in the one or more additional images corresponding to the one or more additional patterns on the object; and based on the one or multiple pixels to determine an additional 6DoF pose of the object relative to at least one of the 6DoF pose of the first device (or device) and the 6DoF pose of the second device. In some examples, the object may include a wall, a display device, a video game console, furniture, appliances, or household items.
In some aspects, the apparatus (apparatus) described above may include one or more sensors. In some aspects, the apparatus (device) described above may comprise a mobile device. In some examples, the above-mentioned apparatus (device) may include a hand controller, a mobile phone, a wearable device, a display device, a mobile computer, a head-mounted device, and/or a camera.
This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended solely for use in determining the scope of the claimed subject matter. The subject matter should be understood by reference to the appropriate portions of the entire specification of this patent, any or all drawings, and each claim.
The foregoing and other features and embodiments will become more apparent upon reference to the following specification, the scope of the claims, and the accompanying drawings.
Certain aspects and embodiments of the present disclosure are provided below. Some of these aspects and embodiments may be applied independently, and some of them may be applied in combination, as will be apparent to those skilled in the art. In the following description, for the purposes of explanation, specific details are set forth in order to provide a thorough understanding of various embodiments of the present application. It will be apparent, however, that various embodiments may be practiced without these specific details. The drawings and descriptions are not intended to be limiting.
The following description provides example embodiments only, and is not intended to limit the scope, applicability, or configuration of the present disclosure. Rather, the following description of example embodiments will provide those skilled in the art with an enabling description for implementing example embodiments. It should be understood that various changes can be made in the function and arrangement of elements without departing from the spirit and scope of the application as set forth in the appended claims.
As previously mentioned, the computational complexity of the pose estimation system can impose significant power and resource demands and can be a limiting factor in various applications. The computational complexity of pose estimation can also limit the performance and scalability of tracking and localization applications that rely on pose information. For example, the computational complexity of visual and inertial tracking, localization, and pose estimation algorithms can be useful for applications involving tracking, localization, and pose estimation (such as extended reality (eg, virtual reality, augmented reality, mixed reality, etc.), games, and robotics) The devices used in impose large power and resource demands. Such power and resource requirements are driven by the recent implementation of such technologies in mobile and wearable devices and by making these devices smaller, lighter, and more comfortable (eg, by reducing the heat emitted by the device) for longer periods of wear trend intensified.
To illustrate, extended reality (XR) devices such as head mounted devices (eg, head mounted displays (HMD), smart glasses, etc.) generally rely on higher power components to track their relative to other items (eg, other devices, objects, humans, obstacles, etc.) pose (eg, their relative three-dimensional (3D) positions and orientations). Such tracking may include six degrees of freedom (DoF) tracking, which involves tracking translational movement (eg, forward/backward or surge, up/down or heave, and left/right or sway) and rotational movement (eg, pitch, yaw, and roll) along the x, y, and z axes, and can be computationally intensive. Additionally, higher power components for 6DoF tracking may include, for example, high resolution cameras, higher power processors, and bright light emitting diode (LED) illuminators in the visible and/or infrared (IR) spectrum.
The higher power consumption and computational intensity of 6DoF tracking can limit the battery life of devices used in 6DoF tracking applications. Additionally, higher power consumption devices used in 6DoF applications (including XR devices such as headsets) generally consume more power than auxiliary devices such as hand controllers used in conjunction with higher power consumption devices. This is due, at least in part, to display and graphics computations typically performed by higher power consumption devices. As a result, the batteries of higher power consuming devices often drain faster than the batteries of their auxiliary devices.
The present disclosure describes systems, methods, and computer-readable media for lower power visual tracking in XR and other applications. The lower power visual tracking techniques presented herein can reduce battery consumption and improve battery life of devices used in 6DoF tracking applications, such as XR devices. In some examples, the techniques herein can offload some or all of the 6DoF tracking tasks typically performed by higher power consumption devices to auxiliary devices used with higher power consumption devices. Auxiliary devices can utilize low-power vision/camera and processing components to perform 6DoF tracking tasks at lower power consumption rates, thereby increasing the battery life of higher power consuming devices that typically drain faster than the auxiliary device's battery life.
For example, in some cases, instead of using a higher powered LED assembly on the auxiliary device and a high-resolution camera on the higher power consumption device to calculate the relative pose of the auxiliary device and the higher power consumption device, the auxiliary device may implement Lower power cameras to perform 6DoF tracking and offload associated power consumption from higher power consumption devices. The higher power consumption device can implement a unique pattern printed on the device that the lower power camera on the auxiliary device can use to identify the relative pose of the auxiliary device and the higher power consumption device. Auxiliary devices can take advantage of the lower power capabilities of lower power cameras and a hardware accelerated object detection framework to detect unique patterns printed on higher power consumption devices.
Auxiliary devices can utilize the unique patterns on higher power devices as fiducial markers for 6DoF tracking. For example, a lower power camera on an auxiliary device may use the detected pattern as a fiducial marker for identifying the relative pose of the auxiliary device and the higher power consumption device. In some cases, the auxiliary device may perform 3D triangulation on a sparse set of fiducial points detected from unique patterns in the higher power consumption device to identify the relative poses of the auxiliary device and the higher power consumption device. The auxiliary device is thereby able to identify the relative pose of the auxiliary device to the higher power consumption device at a lower power consumption rate, and reduce the power usage of the higher power consumption device. In some examples, 6DoF tracking may be performed entirely (or nearly entirely) at the auxiliary device, thereby limiting the amount of information transferred between the auxiliary device and higher power consumption devices and thus reducing transmission costs and bandwidth requirements.
The lower power vision tracking techniques herein can be implemented in a variety of use cases and applications. For example, lower power visual tracking techniques can be implemented in XR applications, robotics applications, autonomous system applications, gaming applications, and the like. To illustrate, in some examples, lower power visual tracking techniques may be implemented by autonomous robotic vacuum cleaners to perform path planning and localization based on relative pose calculations; lower power visual tracking techniques may be implemented by autonomous vehicles to perform instantaneous (or near- achieve higher tracking, mapping and planning performance in real time; lower power vision tracking technology can be implemented by game controllers connected to TV-based consoles; lower power vision tracking technology can be achieved by connecting to headsets Hand controller implementation for display (HMD) and more.
In one non-limiting illustrative example, lower power visual tracking techniques may be implemented in 6DoF or 3DoF XR applications. The term Extended Reality (XR) can cover Augmented Reality (AR), Virtual Reality (VR), Mixed Reality (MR), etc. Each of these forms of XR allows users to experience or interact with an immersive virtual environment or content. To provide a realistic XR experience, XR technology generally aims to integrate virtual content with the physical world, and often involves matching relative poses and movements of objects and devices. This may involve computing devices, relative poses of objects, and/or a map of the real-world environment in order to match the relative positions and movements of devices, objects, and/or real-world environments, and anchor content to the real-world in a convincing manner Environment. Relative pose information can be used to match virtual content to user-perceived motion and spatiotemporal states of devices, objects, and real-world environments.
As follows, the lower power visual tracking techniques herein will be described in the context of XR. It should be noted, however, that the lower power visual tracking techniques herein may be implemented in a wide variety of other applications, such as, for example, robotics applications, autonomous driving or navigation applications, gaming systems and controllers, and the like, as previously explained. Accordingly, for illustrative purposes, XR is provided throughout as a non-limiting example application of the lower power visual tracking techniques herein.
The techniques of the present invention will be described in the following disclosure as follows. Discussion begins with a description of example systems and techniques for providing lower power visual tracking and pose estimation, as illustrated in FIGS. 1-6 . A description of an example method for providing lower power visual tracking and pose estimation follows, as illustrated in FIG. 7 . The discussion concludes with a description of an example computing device architecture including example hardware components suitable for performing lower power visual tracking and associated operations, as illustrated in FIG. 8 . The present disclosure now turns to FIG. 1 .
1 is a diagram illustrating an example environment for lower power visual tracking. In this example, the environment may include primary processing system 100 and secondary system 150 . In some cases, primary processing system 100 may include a higher power consumption system that includes higher power components and/or implements higher power and/or complexity operations, while secondary system 150 may include a lower power consumption system that Include lower power components and/or enable lower power and/or complexity operations.
In some cases, primary processing system 100 and secondary system 150 may include tools for integrating relative pose information (eg, the position and orientation of primary processing system 100 and secondary system 150 relative to each other) for use in visual tracking application(s) or (s) separate devices for use cases. For example, primary processing system 100 and secondary system 150 may comprise separate devices that are used in combination in a visual tracking application to provide one or more functionality that utilizes the relative poses of primary processing system 100 and secondary system 150 . By way of example and not limitation, visual tracking applications may include XR applications, robotics applications, autonomous driving or navigation applications, gaming applications, and the like.
In some examples, main processing system 100 may include electronic devices configured to use information about the relative poses of main processing system 100 and auxiliary system 150 to provide one or more functionalities, such as XR functionality, gaming functionality, autonomous driving or navigation functionality, computer vision functionality, robotics functionality, etc. For example, in some cases, primary processing system 100 may be an XR device (eg, a head-mounted display, heads-up display device, smart glasses, smart television system, etc.) and/or a gaming console, while auxiliary system 150 may be is a controller (eg, hand controller, remote controller, input device, external control device, etc.) for interacting with the host processing system 100 and/or content provided by the host processing system 100 .
As another example, in some cases, primary processing system 100 may be a robotic device (eg, a robot, autonomous system, robotic tool or assembly, etc.), while secondary system 150 may be used to generate vision implemented by primary processing system 100 External devices that track information (eg, controllers, tracking nodes, etc.). For purposes of illustration and description, the main processing system 100 and the auxiliary system 150 will be described in the following disclosure as an XR device and a hand controller, respectively. However, as mentioned above, in other examples, primary processing system 100 and secondary system 150 may include other types of equipment.
In the illustrative example shown in FIG. 1, main processing system 100 may include one or more computing components 110, fiducial markers 120A-N (collectively "120"), image sensor 125, an extended reality engine 130 , one or more computer vision models 132 , an image processing engine 134 and a rendering engine 136 . In some examples, the main processing system 100 may also include other sensors and/or components, such as, by way of example and not limitation, gyroscopes, accelerometers, inertial measurement units (IMUs), radar, light detection and ranging (LIDAR) ) sensors, audio sensors, light emitting diode (LED) devices, storage devices, caches, communication interfaces, displays, memory devices, etc.
Additionally, in the illustrative example shown in FIG. 1 , auxiliary system 150 may include image sensor system 152 , accelerometer 154 , gyroscope, tracking engine 158 , and network 160 . In some examples, auxiliary system 150 may also include other sensors and/or components, such as, by way of example and not limitation, IMUs, radars, LIDARs, audio sensors, LED devices, storage devices, caches, communication interfaces, memory devices, etc. Example architectures and example hardware components that may be implemented by primary processing system 100 and/or secondary system 150 are further described below with reference to FIG. 8 . It should be noted that the components shown in FIG. 1 with respect to primary processing system 100 and secondary system 150 are merely illustrative examples provided for illustration purposes only, and that in other examples, primary processing system 100 and/or secondary system 150 may include More or fewer components than those shown in Figure 1.
The main processing system 100 may be a single computing device or part of multiple computing devices or implemented by a single computing device or multiple computing devices. In some examples, the main processing system 100 may be part of an electronic device (or electronic devices), such as a camera system (eg, digital camera, IP camera, video camera, security camera, etc.), telephony system (eg, smart telephones, cellular phones, conference systems, etc.), laptop or notebook computers, tablet computers, set-top boxes, smart TVs, display devices, game consoles, XR devices (such as HMDs, drones, computers in vehicles) , IoT (Internet of Things) devices, smart wearable devices, or any other suitable electronic device(s). In some implementations, one or more computing components 110, fiducial markers 120, image sensors 125, extended reality engine 130, one or more computer vision models 132, image processing engine 134, and rendering engine 136 may are part of the same computing device.
For example, in some cases, one or more computing components 110, fiducial markers 120, image sensors 125, extended reality engine 130, one or more computer vision models 132, image processing engine 134, and rendering engine 136 may be incorporated into camera systems, smartphones, laptops, tablets, smart wearables, XR devices (such as HMDs), IoT devices, gaming systems, and/or any other computing device. However, in some implementations, computing components 110 , fiducial markers 120 , image sensors 125 , extended reality engine 130 , one or more computer vision models 132 , image processing engine 134 , and/or rendering engine 136 One or more of the can be part of or implemented by two or more separate computing devices.
Similarly, auxiliary system 150 may be part of or implemented by a single computing device or multiple computing devices. In some examples, auxiliary system 150 may be part of an electronic device (or electronic devices), such as a smartphone, laptop or notebook computer, tablet computer, controller (eg, hand controller, remote controller, external control devices, input devices, etc.), IoT devices, smart wearable devices, or any other suitable electronic device(s). In some implementations, image sensor system 152, accelerometer 154, gyroscope 156, tracking engine 158, and computer vision model 160 may be part of the same computing device.
For example, in some cases, image sensor system 152, accelerometer 154, gyroscope 156, tracking engine 158, and computer vision model 160 may be integrated into controllers, smartphones, laptops, tablets, In smart wearables, IoT devices, and/or any other computing devices. However, in some implementations, one or more of image sensor system 152, accelerometer 154, gyroscope, tracking engine 158, and/or one or more computer vision models 160 may be two or more Part of a separate device or implemented by two or more separate devices.
By way of example and not limitation, one or more computing components 110 of main processing system 100 may include central processing unit (CPU) 112, graphics processing unit (GPU) 114, digital signal processor (DSP) 116, and/or image signals Processor (ISP) 118. The main processing system 100 may use one or more computing components 110 to perform various computing operations, such as, for example, extended reality operations (eg, tracking, positioning, pose estimation, mapping, content anchoring, content rendering, etc.), graphing Image/video processing, graphics rendering, machine learning, data processing, modeling, computing, and/or any other operations. In the example shown in FIG. 1 , one or more computing components 110 implement an extended reality (XR) engine 130 , an image processing engine 134 and a rendering engine 136 . In other examples, one or more computing components 110 may also implement one or more other processing engines. Additionally, the XR engine 130 may implement one or more computer vision models 132 configured to perform XR operations such as tracking, localization, pose estimation, mapping, content anchoring, and the like.
The operations of XR engine 130 , one or more computer vision models 132 , image processing engine 134 , and rendering engine 136 (as well as any other processing engines) may be implemented by any of one or more computing components 110 . In one illustrative example, operations of rendering engine 136 may be implemented by GPU 114, operations of XR engine 130, one or more computer vision models 132, image processing engine 134, and/or one or more other processing engines may be implemented by CPU 112, DSP 116 and/or ISP 118 implementation. In some examples, the operations of XR engine 130 , one or more computer vision models 132 , and image processing engine 134 may be implemented by ISP 118 . In other examples, the operation of XR engine 130 , one or more computer vision models 132 and/or image processing engine 134 may be controlled by CPU 112 , DSP 116 , ISP 118 and/or a combination of CPU 112 , DSP 116 and ISP 118 accomplish.
In some cases, one or more computing components 110 may include other electronic circuits or hardware, computer software, firmware, or any combination thereof to perform any of the operations described herein. Furthermore, in some examples, one or more computing components 110 may include more or fewer computing components than those shown in FIG. 1 . Indeed, CPU 112, GPU 114, DSP 116, and ISP 118 are merely illustrative examples provided for illustration purposes.
The host processing system 100 may include fiducial markers 120A-120N (collectively "120") printed, displayed, etched, configured, attached, and/or provided on the exterior/exterior of the host processing system 100. In some cases, the fiducial markers 120 may be located on the main processing system 100 at some known locations and/or at some known distances relative to each other. In some cases, fiducial markers 120 may have one or more of the same or different predetermined sizes, shapes, and/or configurations. The number, relative location, relative distance, size, shape, and/or configuration of fiducial markers 120 may vary in different examples, as described further below. Additionally, fiducial markers 120 may include patterns, program code, encoded data, and/or objects that may be detected and analyzed by image sensors 152 on assistance system 150 to identify pose information, as described further below. In some cases, the fiducial marker 120 may be visible in the visible light spectrum and/or the infrared spectrum.
The fiducial marker 120 may comprise a specific pattern directly on the host processing system 100 or a specific pattern (eg, attached, affixed, provided, etc.) on an object or material on the host processing system 100 . For example, in some cases, the fiducial marker 120 may comprise a patterned sticker (or adhesive element or material). As another example, the fiducial markers 120 may include patterns etched, designed, overlaid, or printed on the host processing system 100 . As another example, the fiducial marker 120 may comprise a patterned film, object, covering or material.
Image sensor 125 may include any image and/or video sensor or capture device, such as a digital camera sensor, a video camera sensor, a smartphone camera sensor, an electronic device such as a television or image/video capture devices on computers, cameras, etc.). In some cases, image sensor 125 may be part of a camera or computing device such as a digital camera, video camera, IP camera, smart phone, smart television, gaming system, etc. Additionally, in some cases, image sensor 125 may include multiple image sensors, such as rear and front sensor devices, and may be a dual camera or other multi-camera assembly (eg, including two part of one camera, three cameras, four cameras, or other number of cameras).
In some examples, image sensor 125 may represent or include one or more low-power image sensor systems, such as image sensor system 152 described below with respect to auxiliary system 150 . Image sensor 125 may capture image and/or video material (eg, raw images and/or video material). In some cases, image sensor 125 may detect or identify encoded information in a pattern or object, as described further below with respect to image sensor system 152 on auxiliary system 150 .
In some examples, image sensor 125 may capture image material and generate frames based on the image material and/or provide the image material or frames to XR engine 130 , image processing engine 1334 , and/or rendering engine 136 for processing. Frames may include video frames or still images of a video sequence. A frame may include an array of pixels representing a scene. For example, a frame may be a red-green-blue (RGB) frame with red, green, and blue components per pixel; a luminance, Red chroma, blue chroma (YCbCr) frames; or any other suitable type of color or monochrome picture.
In some examples, XR engine 130 and/or one or more computer vision models 132 may be based on data from image sensor 125, image sensor system 152, accelerometer 154, gyroscope 156, tracking engine 158, and/or or data from one or more sensors (such as IMUs, accelerometers, gyroscopes, etc.) on the main processing system 100 to perform XR processing operations. For example, in some cases, XR engine 130 and/or one or more computer vision models 132 may perform tracking, localization, pose estimation, mapping, and/or content anchoring operations.
In some examples, image processing engine 134 may perform image processing operations based on data from image sensor 125 and/or image sensor system 152 . In some cases, image processing engine 134 may perform image processing operations such as, for example, filtering, demosaicing, scaling, color correction, color transformation, segmentation, noise reduction filtering, spatial filtering, artifact correction, and the like. Rendering engine 136 may obtain image material generated and/or processed by computing component 110, image sensor 125, XR engine 130, one or more computer vision models 132, and/or image processing engine 134, and render Video and/or image frames for presentation on a display device.
In some cases, the image sensor system 152 on the auxiliary system 150 may include a low power imaging system or an always-on computer vision camera system. For example, each image sensor system may include an image sensor and one or more low-power processors for processing image data captured by the image sensor. In some cases, each image sensor system may include one or more image processing, computer vision, and/or other processing algorithms. For example, in some cases, image sensor system 132 may include or implement tracking engine 158 and/or computer vision model 160 and perform pose estimation, as described further herein. As further described herein, in some examples, the image sensor system 152 may detect the fiducial markers 120 on the primary processing system 100 and estimate the fiducials of the secondary system 150 and the primary processing system 100 based on the detected fiducial markers 120 . relative attitude.
Tracking engine 158 may implement one or more algorithms for tracking and estimating the relative pose of auxiliary system 150 and main processing system 100 . In some examples, tracking engine 158 may receive image data captured by image sensor system 152 and perform pose estimation to calculate the relative pose of auxiliary system 150 and main processing system 100 based on the received image data. In some cases, tracking engine 158 may implement computer vision model 160 to calculate the relative pose of auxiliary system 150 and main processing system 100 . In some examples, tracking engine 158 and/or computer vision model 160 may be implemented by image sensor system 152 . For example, each image sensor system may implement a tracking engine and computer vision model for performing pose estimation as described herein. In other examples, tracking engine 158 and/or computer vision model 160 may be implemented by auxiliary system 150 separate from image sensor system 152 .
Accelerometer 154 may detect acceleration of auxiliary system 150 and generate acceleration measurements based on the detected acceleration. The gyroscope 156 may detect and measure the orientation and angular velocity of the assistance system 150 . For example, gyroscope 156 may be used to measure pitch, roll, and yaw of assist system 150 . In some examples, image sensor system 152 and/or tracking engine 158 may use measurements obtained by accelerometer 154 and gyroscope 156 to calculate the relative pose of auxiliary system 150 and main processing system 100, as described further herein . For example, the image sensor system 152 can detect the position of the fiducial marker 120 and the main processing system 100, and the image sensor system 152 and/or the tracking engine 158 can use the detected position of the fiducial marker 120 and data from the The measurements of accelerometer 154 and gyroscope 156 are used to calculate the attitude of auxiliary system 150 relative to main processing system 100 .
Although primary processing system 100 and secondary system 150 are shown as including certain components, one of ordinary skill in the art will appreciate that primary processing system 100 and secondary system 150 may include more or fewer components than those shown in FIG. . For example, in some instances, primary processing system 100 and/or secondary system 150 may also include one or more other memory devices (eg, RAM, ROM, cache, etc.), one or more networking interfaces (eg, wired and/or wireless communication interface, etc.), one or more display devices, caches, storage devices, and/or other hardware or processing devices not shown in FIG. 1 . Illustrative examples of computing devices and hardware components that may be implemented by primary processing system 100 and/or secondary system 150 are described below with reference to FIG. 8 .
2 illustrates an example view of auxiliary system 150 and main processing system 100 in an example use case for detecting the pose of auxiliary system 150 relative to main processing system 100 using image sensor system 152 on auxiliary system 150 200. In this example, auxiliary system 150 represents a hand controller (such as a ring controller) used in combination with main processing system 100 to provide an XR experience. Also, in this example, the main processing system 100 represents a wearable XR device such as an HMD. It should be noted, however, that hand controllers and wearable devices are used herein as illustrative examples for illustrative purposes, and that in other examples, auxiliary system 150 and/or main processing system 100 may include or represent other devices, such as For example, other types of controllers, gaming systems, smart wearables, IoT devices, sensor systems, smart TVs, etc.
Similarly, for illustrative and illustrative purposes, the auxiliary system 150 and main processing system 100 described herein with reference to FIGS. 3A-7 will be described in the following disclosure as including or representing an example hand controller and an example wearable XR device, respectively (eg HMD). It should be noted, however, that the hand controller and wearable XR device are merely illustrative examples for illustration purposes, and that in other examples, the auxiliary system 150 and/or the main processing system 100 described herein with reference to FIGS. 3A-7 may Include or represent other devices such as, for example, other types of controllers, gaming systems, smart wearables, IoT devices, sensor systems, smart televisions, and the like.
As illustrated, auxiliary system 150 may include image sensor systems 152A- 152N (collectively "152") that may be used in image sensing of fiducial markers (eg, 120 ) on main processing system 100 These fiducial markers are detected while within the field of view (FoV) of the detector system 152 . The auxiliary system 150 may use the image sensor systems 152A-152N to detect fiducial markers, identify the relative position of one or more of the fiducial markers, and use this information to estimate the auxiliary system 150 relative to the main processing system 100 gesture.
For example, when the fiducial marker is within the FoV of at least one image sensor system (eg, image sensor systems 152A, 152B, 152C, 152D, 152E, 152F, 152G-152N), the at least one image The sensor system can capture an image of the fiducial marker and use the captured image to detect the position/positioning of the one or more fiducial markers. Similarly, when multiple fiducial markers are within the FoV of one or more image sensor systems (eg, image sensor systems 152A, 152B, 152C, 152D, 152E, 152F, 152G-152N), The one or more image sensor systems can capture images of the plurality of fiducial markers and use the captured images to detect relative positions/positionings of the plurality of fiducial markers.
In some examples, image sensor system 152 and/or auxiliary system 150 may use the detected relative positions/locations of fiducial markers on main processing system 100 to calculate the pose of auxiliary system 150 relative to main processing system 100 . For example, when a fiducial marker on primary processing system 100 is on an image sensor system (eg, image sensor systems 152A, 152B, 152C, 152D, 152E, 152F, 152G through 152N) on secondary system 150 While within the FoV, those image sensor systems can capture images of the fiducial markers. The auxiliary system 150 and/or the image sensor system may use the captured images to detect fiducial markers and determine their relative position/location in 3D space. The relative position/positioning of the fiducial markers may be used by the image sensor system and/or the auxiliary system 150 to calculate the pose of the auxiliary system 150 relative to the main processing system 100 .
In some examples, the auxiliary system 150 may track the 6DoF status of the auxiliary system 150 relative to the main processing system 100 when the fiducial markers are within the FoV of the multiple image sensor systems. In some cases, the auxiliary system 150 may track a subset of the 6DoF states of the auxiliary system 150 relative to the main processing system 100 when the fiducial markers are within the FoV of only one image sensor system. In some cases, when the fiducial markers are not within the FoV of any image sensor system, the assistance system 150 may use the accelerometer 154 and the gyroscope 156 to obtain inertial measurements of the assistance system 150 and use the inertial measurements to track Status of the auxiliary system 150 .
Instead of using the image sensor system 152 on the auxiliary system 150 (which may have low power consumption) to track the pose of the auxiliary system 150 based on fiducial markers on the main processing system 100 Higher power components, capable of tracking the attitude of the assistance system 150 with lower power consumption. Thus, such a strategy can conserve power in the main processing system 100, which typically has higher power components and therefore higher power requirements and/or more limited battery life.
Although example view 200 illustrates a single auxiliary system 150, it should be noted that other examples may include multiple auxiliary systems. For example, in some cases, two auxiliary systems (eg, including auxiliary system 150 and another auxiliary system), such as two hand controllers, may be used in combination with main processing system 100 to track each auxiliary system relative to the main processing system The corresponding pose of the system 100 . A single assistance system 150 is provided herein as an illustrative example for illustrative purposes only.
FIG. 3A is a diagram illustrating an example use case 300 for tracking a 6DoF gesture of the auxiliary system 150 and/or the main processing system 100 . In this example, fiducial markers 320A and 320B on main processing system 100 are within the FoV of image sensor systems 152A, 152B through 152N (where N is a value greater than or equal to 0), and the image sensors Systems 152A, 152B-152N may capture image data (eg, one or more images or frames) of fiducial markers 320A and 320B on main processing system 100 . Image sensor systems 152A, 152B-152N and/or auxiliary system 150 may perform object detection to detect fiducial markers 320A and 320B within the FoV of image sensor systems 152A, 152B-152N.
Each of fiducial markers 320A and 320B may include a particular pattern(s) that may be detected by image sensor systems 152A, 152B-152N. The detected patterns of fiducial markers 320A and 320B can be used to identify the location of fiducial markers 320A and 320B. When both of image sensor systems 152A, 152B-152N detect the same pattern (eg, fiducial markers 320A and 320B), assist system 150 may triangulate the three-dimensional (3D) positions of fiducial markers 320A and 320B . The auxiliary system 150 may use the 3D positions of the fiducial markers 120A-120N and the relative poses of the fiducial markers 320A and 320B to identify the 6DoF pose of the auxiliary system 150 relative to the main processing system 100 . In some examples, auxiliary system 150 may use the 3D positions of fiducial markers 320A and 320B and the relative poses of fiducial markers 320A and 320B to identify the 6DoF pose of main processing system 100 relative to auxiliary system 150 .
Furthermore, in some examples, as more fiducial markers are detected and/or as more image sensor systems detect the same fiducial marker (or fiducial markers), calculating The more accurate and robust the attitude information can be. For example, if additional image sensor systems are capable of detecting one or more of fiducial markers 320A and 320B and/or if image sensor systems 152A, 152B through 152N (and/or additional image sensing The auxiliary system 150 can use the additional fiducial marker data to increase the accuracy of the calculated pose information.
In FIG. 3A, fiducial markers 320A and 320B 0N are printed on the front side of main processing system 100 and are shown as having a particular circular configuration. It should be noted, however, that other examples may implement different numbers, arrangements, shapes, sizes, structures, designs and/or configurations of fiducial markers. For example, in some cases, the main processing system 100 may have more or fewer fiducial markers printed on the front, top, and/or sides of the main processing system 100, and the fiducial markers may have the same or different shapes , size, pattern, structure, design and/or configuration. In some cases, the fiducial markers printed on the primary processing system 100 may be oriented in a particular configuration that allows for the distinction between left and right in situations where the secondary system 150 or primary processing system 100 is twisted upside down or otherwise rotated position.
FIG. 3B is a diagram illustrating another example use case 320 for tracking gesture information for the assistance system 150 and/or the main processing system 100 . In this example, fiducial markers 320A and 320B are only within the FoV of image sensor system 152A. Image sensor system 152A may capture image data (eg, one or more images or frames) of fiducial markers 320A and 320B, and auxiliary system 150 and/or image sensor system 152A may perform object detection to detect fiducial markers 320A and 320B within the FoV of image sensor system 152A.
As previously mentioned, each of fiducial markers 320A and 320B may include a particular pattern, which may be detected by image sensor system 152A. When image sensor system 152A detects fiducial markers 320A and 320B, auxiliary system 150 (or image sensor system 152A) may triangulate the 3D positions of fiducial markers 320A and 320B. Auxiliary system 150 (or image sensor system 152A) may then use the 3D positions of fiducial markers 320A and 320B and their relative poses to identify at least a portion or subset of the 6DoF state of auxiliary system 150 relative to main processing system 100 . In some examples, auxiliary system 150 (or image sensor system 152A) may similarly use the 3D positions of fiducial markers 320A and 320B and their relative poses to identify the 6DoF state of main processing system 100 relative to auxiliary system 150 . at least a portion or a subset.
FIG. 3C is a diagram illustrating an example use case 340 for tracking a 6DoF gesture of the auxiliary system 150 and/or the main processing system 100 . In this example, fiducial markers 320C through 320F (shown in FIG. 3C as fiducial markers 320C, 320D, 320E, and 320F) are implemented on auxiliary system 150, while image sensor systems 152A and 152N are implemented on the main processing system 100 . Additionally, the fiducial markers 320C-320F are within the FoV of the image sensor systems 152A, 152B-152N on the main processing system 100. Image sensor systems 152A, 152B-152N may capture image data (eg, one or more images or frames) of fiducial markers 320C-320F, and host processing system 100 and/or image sensor system 152A and/or 152B may run object detection to detect fiducial markers 320C-320F within the FoV of image sensor systems 152A, 152B-152N.
Image sensor systems 152A, 152B-152N may detect specific patterns depicted in fiducial markers 320C-320F to identify the relative positions/locations of fiducial markers 320C-320F. When both of image sensor systems 152A, 152B-152N detect the same pattern (eg, fiducial markers 320C-320F), main processing system 100 may triangulate the 3D positions of fiducial markers 320C-320F. Main processing system 100 may then use the 3D positions of fiducial markers 320C-320F and the relative poses of fiducial markers 320C-320F to identify the 6DoF pose of auxiliary system 150 relative to main processing system 100. In some examples, the main processing system 100 may also use the 3D positions of the fiducial markers 320C-320F and their relative poses to identify the 6DoF pose of the auxiliary system 150 relative to the main processing system 100 .
In some cases, the number of fiducial markers on auxiliary system 150 and the number of image sensor systems on main processing system 100 that detect the same fiducial marker(s) may affect the attitude information calculated by main processing system 100 accuracy and robustness, as it can increase or decrease the amount of reference data points used to calculate attitude information and/or the amount of data points associated with calculated attitude information. Additionally, in some cases, the fiducial markers printed on the auxiliary system 150 may be oriented in a particular configuration that allows for differentiation in situations where the auxiliary system 150 or main processing system 100 is twisted upside down or otherwise rotated Positioning left and right.
3D is a diagram illustrating an example use case 360 for tracking marked objects based on fiducial markers 320G and 320N. In this example, fiducial markers 320G and 320N are printed on target 362 for use in identifying and tracking target 362 during an XR experience, game, or or another tracking-based application. In some cases, the user may place or print fiducial markers 320G and 320N on target 362 . In other cases, target 362 may be designed with fiducial markers 320G and 320N or may implement fiducial markers 320G and 320N. For example, fiducial markers 320G and 320N may be etched, printed, or configured on target 362 when target 362 is configured or fabricated.
Target 362 may include any object or item to be tracked. For example, objects 362 may include game consoles, televisions, environmental objects, furniture, walls, doors, computers, appliances, appliances, appliances, tools, and the like. Furthermore, target 362 may include any number, size, shape, arrangement, structure, design and/or configuration of fiducial markers.
The fiducial markers 320G and 320N on the target 362 are shown within the FoV of the image sensor systems 152A, 152B through 152N on the main processing system 100 . Image sensor systems 152A, 152B-152N may capture image data (eg, one or more images or frames) of fiducial markers 320G and 320N, and host processing system 100 and/or image sensor system 152A and/or 152B may run object detection to detect fiducial markers 320G and 320N within the FoV of image sensor systems 152A, 152B-152N.
Image sensor systems 152A, 152B-152N may detect specific patterns on fiducial markers 320G and 320N to identify the location of fiducial markers 320G and 320N. When both of image sensor systems 152A, 152B-152N detect the same pattern (eg, fiducial markers 320G and 320N), main processing system 100 may triangulate the 3D positions of fiducial markers 320G and 320N. The host processing system 100 may then use the 3D positions of the fiducial markers 320G and 320N and the relative poses of the fiducial markers 320G and 320N to identify the 6DoF pose of the target 362 relative to the host processing system 100 . In some examples, the host processing system 100 may also use the 3D positions of the fiducial markers 320G and 320N and their relative poses to identify the 6DoF pose of the host processing system 100 relative to the target 362 .
FIG. 4A illustrates an example configuration 400 of fiducial markers. In this example, fiducial markers 420A and 420B are shaped as patterned rings. It should be noted, however, that in other examples, fiducial markers 420A and 420B may have any other shape, such as, for example, square, triangle, rectangle, octagon, and the like.
The pattern within the ring may have any shape, configuration, arrangement, character and/or design. Furthermore, the patterns within the fiducial markers 420A and 420B (eg, circular rings) may be based on any feature, element, characteristic or item visible in the IR and/or visible light spectrum. For example, these patterns may include colors, lines, letters, symbols, codes, textures, etchings, non-uniformities, substances, images, lighting (eg, in the visible or IR spectrum), backlighting (eg, in the visible or IR spectrum) , lighting from external or ambient sources (e.g. IR floodlight in the environment), etc.
The image sensor system 152 may analyze the image data capturing the fiducial markers 420A and 420B and detect within the image data based on the pattern (and/or one or more points in the pattern) of the fiducial markers 420A and 420B. The fiducial markers 420A and 420B. In some examples, object detection by image sensor system 152 may provide bounding boxes 402A and 402B around fiducial markers 420A and 420B. Bounding boxes 402A and 402B may represent and/or may be used to identify the relative positioning of fiducial markers 420A and 420B.
FIG. 4B illustrates another example configuration 410 of fiducial markers. In this example, fiducial markers 420C-420G are machine-readable barcodes, such as quick response (QR) codes with square patterns 412 , 414 and 416 . Each of the machine-readable barcodes can encode information such as location information, positioning information (eg, left versus right, etc.), identifiers, trackers, user information, device information, game information, XR Information, application information, metadata, text, video game information (eg, player information, game play elements, etc.), settings information, and/or any other type of information. For example, a machine-readable barcode may encode a unique code for each player in a multi-player game setting.
An image sensor system (eg, 152 ) on the auxiliary system (eg, 150 ) can detect the fiducial markers to detect their relative positioning. In some examples, the image sensor system on the auxiliary system can read the machine-readable barcodes in the fiducial markers 420C-420G to detect the information encoded in the machine-readable barcodes to determine the location and location of the fiducial markers. /or any other data from encoded information. In some examples, the image sensor system may detect the square patterns 412, 414, and 416 in the fiducial markers 420C-420G at greater distances than the machine-readable barcode to allow the image sensor system to detect even when the The location of the fiducial marker and/or the information associated with the fiducial marker can also be calculated with the reading of the machine readable barcode.
FIG. 4C illustrates another example configuration of a fiducial marker 420N. In this example, fiducial marker 420N includes outer pattern 430 and inner pattern 432 . In this example, outer pattern 430 is a circular ring and inner pattern 432 is an inner circular ring. It should be noted, however, that in other examples, the outer pattern 430 and/or the inner pattern 432 may have any other shape, such as, for example, a square, a triangle, a rectangle, an octagon, and the like.
In some examples, outer pattern 430 and/or inner pattern 432 may have any shape, configuration, arrangement, characteristics and/or design. Furthermore, the outer pattern 430 and/or the inner pattern 432 may be based on any feature, element or item visible in the IR and/or visible light spectrum. For example, outer pattern 430 and/or inner pattern 432 may include colors, lines, letters, symbols, codes, textures, etchings, non-uniformities, substances, images, lighting (eg, in the visible or IR spectrum), backlighting (eg, in the visible or IR spectrum) , visible light or IR spectrum) etc.
In some cases, internal pattern 432 may be used to provide more accurate positioning of fiducial marker 420N. For example, internal pattern 432 may be used as a landmark for repeatedly and/or precisely locating specific point(s) on fiducial marker 420N. In some cases, the image sensor system (eg, 152 ) used to detect the fiducial marker 420N may implement adaptive striding to improve its efficiency. As a result, the bounding box around the fiducial marker 420N detected by the image sensor system may not always be precisely or accurately centered on the fiducial marker 420N, which may affect the accuracy of the triangulation. For example, the bounding box around the fiducial marker 420N may be away or off by several pixels, which may affect the accuracy of the triangulation.
In some examples, to improve the accuracy of keypoint localization within fiducial markers, the image sensor system (eg, 152 ) may run fast and coarse object detection on the entire pattern (eg, outer pattern 430 ). After detecting the outer pattern 430 based on fast and coarse object detection, the image sensor system may run a fine-grained search for the inner pattern 432 within the detection window associated with the outer pattern 430 . This may also improve the positioning accuracy of the inner pattern 432 relative to the image sensor system at larger orientations. In some examples, this two-stage localization algorithm may be supported by robust training for larger orientations. In some cases, such a two-stage localization algorithm may also utilize a fail-branch mechanism (eg, conditional branching in machine learning object detection) for multi-object detection of image sensor systems.
5 illustrates an example reference line 502 projected between fiducial markers 520A and 520B and used for pose transitions between the reference pattern and the observed pattern. Reference line 502 may join (and/or may be projected across) two or more points on fiducial markers 520A and 520B. In this example, reference line 502 joins the centers of fiducial markers 520A and 520B. The reference position of the reference line 502 may be calculated based on a reference coordinate system (eg, X, Y, Z coordinate system) in 3D space, such as a world or homogeneous coordinate system. Additionally, the observed location of reference line 502 may be determined based on images captured by image sensor system 152 . The observed position may be determined relative to an image coordinate system (eg, a coordinate system associated with images captured by image sensor system 152).
In some examples, the reference position of reference line 502 may be compared to the observed position of reference line 502 to calculate the pose of fiducial markers 520A and 520B and/or to improve pose estimation accuracy when calculating the pose of fiducial markers 520A and 520B sex. In some examples, the reference position of reference line 502 and the observed position of reference line 502 may be used to translate the observed poses of fiducial markers 520A and 520B relative to the reference poses of fiducial markers 520A and 520B, as referenced below Figure 6 is further described. In some examples, a coordinate plane projected from and/or projected between the reference position of reference line 502 and the observed position of reference line 502 may be used Relative distances and/or angles between (eg, X, Y, Z coordinate planes) to translate the observed pose of the reference line 502 relative to the reference pose of the reference line 502 . The translated pose of reference line 502 may be used to determine the relative pose of the pattern associated with reference line 502 .
6 is a diagram illustrating an example pose transition 600 between a reference pattern (eg, reference fiducial markers 520A and 520B) and an observed pattern (eg, observed fiducial markers 520A and 520B). In some cases, the observed patterns can include patterns detected in images captured via the image sensor system 152, and the reference patterns can include patterns relative to a reference coordinate system (eg, world coordinates or a homogeneous coordinate system). ) to determine the pattern.
In the example shown in FIG. 6, a translational transition 602 between an observed position 606 of a reference line (eg, reference line 502) and a reference position 604 of the reference line is calculated to determine the actual, absolute and/or estimated reference line position. The translational transition 602 may be calculated based on the reference position 604 of the reference line and the observed position 606 of the reference line. In some cases, the translational transition 602 may be based on a projection of the reference position 604 from the reference line and the observed position 606 of the reference line along the X, Y, and Z axes. In some examples, the projection may reflect the difference between the reference position 604 of the reference line and the observed position 606 .
For example, one or more points from reference location 604 (or one or more points in reference location 604 ) and observed location 606 (or one or more points in observed location 606 ) may be compared along the X-axis, Y-axis, and Z-axis Projection of axes to translate or restore the position of the reference line. In some cases, projection may be used to perform translational transformations 602 along the X, Y, and Z axes between the reference position 604 of the reference line and the observed position 606 of the reference line.
In some examples, the reference location 604 of the reference line may be a known or calculated location of the reference line (and/or one or more points of the reference line). In some cases, the reference position (depicted along the X-axis) of the reference line 604 may be calculated by triangulating one or more points of the reference line from the reference frame and/or the coordinate system. In some cases, such triangulation may utilize knowledge about the relative configuration and/or location of patterns associated with the reference line, such as the reference pattern and the observed pattern (eg, fiducial markers 520A and 520B) Information. In some cases, the observed location 606 of the reference line may be observed from the image(s) in which the reference line was captured (eg, images obtained via one or more image sensor systems 152 ) and/or The position of the calculated reference line (and/or one or more points of the reference line).
Additionally, the reference orientation 612 of the reference line (depicted along the Y, X, and Z axes, respectively) can be calculated from the reference line by recovering and estimating the rotation angles 620, 622, 624 of the reference line along the X, Y, and Z axes. Rotational transition 610 between the observed orientations of the lines. Rotation angles 620, 622, 624 may be calculated based on projections 614, 616, and 618 generated along the X, Y, and Z axes for the observed orientation of the reference line and/or the reference orientation 612 of the reference line. For example, the rotation angle 620 of the reference line along the X-axis may be calculated based on the projection 614 along the X-axis from the reference orientation 612 . Similarly, the rotation angle 622 of the reference line along the Y axis can be calculated based on the projection 616 along the Y axis from the reference orientation 612 . Finally, the rotation angle 624 of the reference line along the Z axis can be calculated based on the projection 618 along the Z axis from the reference orientation 612 .
In some examples, the rotation angles 620, 622, and 624 may be used to estimate or restore the orientation of the reference line. Additionally, in some examples, the point(s) connecting the projections 614, 616, and 618 along the X, Y, and Z axes may be used to calculate the rotation angles 620, 622, and 624 of the reference line and/or the orientation of the reference line .
Translation transition 602 and rotational transition 610 may be used to perform a pose transition 600 between the pose of the reference pattern associated with the reference line and the observed pose of the observed pattern associated with the reference line. In some examples, pose transition 600 may be used to estimate a relative pose of a reference pattern associated with a reference line (eg, reference fiducial markers 520A and 520B) and an observed pose of an observed pattern associated with the reference line (eg, observed patterns of fiducial markers 520A and 520B), which may reflect the relative position and orientation of a reference pattern (eg, fiducial markers 520A and 520B) and the observed pattern. In some examples, the relative 6DoF poses of the auxiliary system 150 and the main processing system 100 may be calculated based on the relative poses of the reference pattern and the observed pattern.
In some examples, the 3D position of a cluster of patterns (eg, fiducial markers 520A and 520B) observed by image sensor system 152 , the relative pose of the cluster of patterns, and image sensor system 152 The relative 6DoF poses of auxiliary system 150 and main processing system 100 are calculated by triangulating the calibrated relative positions of . In some cases, image sensor system 152 on auxiliary system 150 may capture images or frames of reference lines (and/or associated patterns and/or points thereon), and may use these images or frame, estimate the relative 6DoF pose of the auxiliary system 150 and the main processing system 100 by calculating the relative transition between the pose of the auxiliary system 150 and the pose of the main processing system 100 (and/or the pattern or fiducial markers 520A and 520B) and/or or exercise. In some examples, the pose of the host processing system 100 may be calculated based on the pose transition 600, as previously explained.
In some examples, the two or more image sensor systems 152 on the auxiliary system 150 may capture the fiducial markers (eg, two or more of the fiducial markers) on the primary processing system 100 images or frames, and the relative 6DoF poses of the auxiliary system 150 and main processing system 100 may be calculated using the pixel positions in the images or frames corresponding to points in the fiducial markers captured in these images or frames. For example, the 6DoF poses of two or more image sensor systems 152 may be calibrated relative to each other. Two or more image sensor systems 152 may capture images or frames of the same set of fiducial markers (eg, 520A and 520B) on the main processing system 100, and detect the same as those captured in these images or frames. The pixel corresponding to the point in the fiducial marker. The position of the point in the fiducial marker can be triangulated based on those pixels corresponding to the point in the fiducial marker. The triangulated positions of the points corresponding to the pixels can be used to calculate the 3D position and relative pose of the fiducial markers. The 3D position and relative pose of the fiducial markers may reflect the 3D position and pose of the host processing system 100 associated with the fiducial markers. Thus, the 3D positions and relative poses of the fiducial markers can be used along with the relative poses of the two or more image sensor systems 152 to estimate the relative 6DoF poses of the auxiliary system 150 and the main processing system 100 .
Having disclosed example systems, components, and concepts, the present disclosure now turns to an example method 700 for estimating the relative pose of an auxiliary system (eg, 150 ) and a main processing system (eg, 100 ), as shown in FIG. 7 . The steps outlined herein are non-limiting examples provided for illustrative purposes, and may be implemented in any combination thereof, including removing, adding, or modifying combinations of certain steps.
At block 702 , the method 700 may include receiving one or more images captured by each image sensor system from a set (eg, 152 ) of image sensor systems on a first device (eg, auxiliary system 150 ) image. The one or more images may capture a set of patterns (eg, 120A-120N) on a second device (eg, main processing system 100). In some examples, a pattern set may be a fiducial marker containing one or more patterns. Furthermore, the pattern set may be visible in the infrared spectrum or the visible spectrum.
The pattern set may have a predetermined configuration on the second device. By way of example and not limitation, the predetermined configuration of the pattern set may include: the relative position of each pattern on the second device, the relative orientation of each pattern on the second device, the shape of each pattern, the size of each pattern, The characteristics of each pattern, and/or the arrangement of pattern sets. In some examples, one or more patterns from the pattern set may include encoded machine-readable information, as shown in Figure 4B. The encoded machine-readable information encoded in the pattern may include location information associated with the pattern, an identifier associated with the pattern, a unique code, settings, information about a user account associated with the XR application hosted on the second device (eg, players in the game, user profiles, etc.).
In some cases, the first device may have lower power requirements than the second device. For example, the first device may consume lower power and/or have lower power components than the second device. In some examples, the first device may be a hand controller device and the second device may be a head mounted display (HMD). In other examples, the first device may be any other type of controller, auxiliary device, or lower power device, while the second device may be any other type of higher power device, wearable XR device, or the like. Furthermore, in some cases, each image sensor system in the set of image sensor systems may be a low power image sensor system, as previously explained.
In some cases, each image sensor system can capture at least one image of at least one pattern. In some cases, two or more image sensor systems may each capture one or more images of the same pattern. In some examples, the set of image sensor systems may represent all image sensor systems on the first device. In other examples, the set of image sensor systems may represent a subset of all image sensor systems on the first device. For example, a set of image sensor systems may represent a subset of image sensor systems capable of capturing images of one or more patterns in the set of patterns from their particular pose and/or angle. In other words, the set of image sensor systems may represent a subset of image sensor systems on the first device that have one or more patterns within their FoV when the one or more images are captured.
In some cases, the number of image sensor systems that capture images of one or more patterns may vary as the relative pose of the image sensor systems and the set of patterns on the second device change because the relative Such changes in attitude may add or remove one or more patterns to or from the FoV of the image sensor system. In fact, one or more patterns from the pattern set on the second device can sometimes be within the FoV of all image sensor systems on the first device, which will allow all image sensing on the first device The sensor system captures images of one or more patterns, while at other times some or all of the pattern set may be on only one, two or more, or even none of the image sensor systems on the first device within the FoV. In some cases, if none of the patterns in the pattern set are within the FoV of any image sensor system on the first device, the auxiliary device and/or the main processing system may use data from the corresponding sensor (eg, IMU, gyro accelerometers, accelerometers, etc.) to calculate or track attitude information.
At block 704, the method 700 may include determining a set of pixels corresponding to the set of patterns on the second device from the one or more images captured by each image sensor system. For example, each image captured by the image sensor system may capture one or more patterns. Thus, an image may include pixels corresponding to one or more points in one or more patterns. The image sensor system can detect one or more patterns and one or more points in the one or more patterns. The image sensor system may then identify one or more pixels in the image (eg, within the image) that correspond (eg, represent, capture, delineate, etc.) to one or more points in the one or more patterns pixel location). One or more pixels in the image (and their pixel positions) can be used to estimate the position and/or pose of one or more patterns associated with one or more points corresponding to the pixels, as further described herein.
At block 706, the method 700 may include determining a location and relative pose in space (eg, in 3D space) of each pattern from the pattern set based on the set of pixels corresponding to the pattern set on the second device. For example, as previously explained, each image captured by the image sensor system may capture one or more patterns. Pixels in the image that correspond to one or more points in one or more patterns can be identified and used to estimate the position and/or pose of the one or more patterns. In some cases, the location of a pixel within the image can be used to triangulate a point in the pattern captured by the image that corresponds to the pixel. As another example, each pixel from the pattern set may be estimated by comparing, triangulating, and/or using the position of each pixel within the image captured by the image sensor system set and corresponding to each point in the pattern set. 3D position and orientation of a pattern. The relative 6DoF pose of each pattern can also be calculated using the 3D position and orientation of each pattern.
In some examples, the location of each pixel (eg, coordinates and/or points associated with the pixel) corresponding to points in the pattern may be along one or more planes (eg, along one of the image coordinate systems) or axes) are projected to a point in the pattern and compared to the projection of the point in the pattern from a reference coordinate system (e.g., a world or homogeneous coordinate system) to determine the 3D location of the point in the pattern . In some cases, the positions of the points in the pattern within the image (and/or the image coordinate system) may be translated relative to the positions of the points in the reference coordinate system to determine the 3D positions of the points in the pattern.
Furthermore, in some cases, the orientation of the points in the pattern within the image (and/or the image coordinate system) may be rotated relative to the orientation of the points in the reference coordinate system to determine the 3D orientation of the points in the pattern. The 3D positions and orientations of points in the pattern can be used to estimate the 6DoF pose of the pattern. Furthermore, the 3D positions and orientations of individual points in the pattern set can be used to estimate the relative 6DoF pose of the pattern set. The relative 6DoF pose of the pattern set may also be used to determine the 6DoF pose of the main processing system 100 and/or the auxiliary system 150, as described further herein.
In some cases, determining the position and relative pose in space of each pattern from the pattern set may include: by rotating 3D coordinates in space corresponding to the set of pixels corresponding to the pattern set (eg, X coordinate, Y coordinate, Z coordinate) to determine the 3D orientation of the pattern set, and the 3D position of the pattern set by translating the 3D coordinates in space corresponding to the set of pixels corresponding to the pattern set. In some examples, the 3D coordinates can be rotated relative to the reference 3D coordinates, and the 3D coordinates can be translated relative to the reference 3D coordinates. Furthermore, in some examples, the relative pose of each pattern may be based on the 3D orientation of the pattern set and the 3D position of the pattern set. Likewise, the location of each pattern may include, for example, a corresponding 3D location from the 3D locations of the pattern set.
In some aspects, determining the set of pixels corresponding to the set of patterns may include detecting each pattern from the set of patterns on the second device based on one or more images captured by each image sensor, and identifying One or more points in each pattern from the pattern set. The one or more points identified in each pattern may correspond to one or more pixels from the set of pixels. Furthermore, as previously mentioned, the position and relative pose of each pattern in space may be determined based on the one or more points in each pattern.
In other aspects, determining the set of pixels corresponding to the set of patterns may include detecting each pattern from the set of patterns on the second device based on one or more images captured by each image sensor, for each pattern A pattern to detect smaller interior patterns and to identify one or more points in each smaller interior pattern. The one or more points may correspond to one or more pixels from the set of pixels, and the position and relative pose of each pattern in space may be based on the one or more points in each smaller inner pattern.
At block 708, the method 700 may include determining a pose of the first device relative to the second device based on the position in space and the relative pose of each pattern from the set of patterns. For example, the 6DoF pose of each pattern can be used to determine the 6DoF pose of the second device (eg, main processing system 100 ) and/or the relative 6DoF pose of the first device (eg, auxiliary system 150 ). In some cases, the 6DoF poses of the second device (eg, main processing system 100 ) and the first device (eg, auxiliary system 150 ) may be calculated relative to each other to obtain relative 6DoF poses of the first and second devices. In some examples, the relative 6DoF gestures of the first device and the second device may be used to coordinate and/or correlate the movement, gestures, interactions, representations, etc. of the first device and the second device in an XR experience, such as at An XR game running on the second device, an XR shopping application running on the second device, an XR modeling application running on the second device, an XR medical application running on the second device, and the like. In some examples, the relative 6DoF poses of the first device and the second device may be used to perform various tracking and positioning based operations such as, for example, collision avoidance, navigation, mapping, interaction with real world objects, autonomous device operations or tasks etc.
In some cases, the pose of the first device relative to the second device may be further determined based on a predetermined relative position and orientation of the set of image sensor systems on the first device. For example, the image sensor system on the first device can be configured on the first device at a particular distance, orientation, location, separation angle, and the like. This information may be known and used to determine their relative pose at the first device. The relative pose of the image sensor system on the first device can be used as an additional addition for calculating the position and relative pose in space of each pattern from the pattern set and/or the pose of the first device relative to the second device parameter.
In some examples, method 700 may include determining 3D coordinates of one or more points in space associated with a scene (eg, a scene in one or more images) captured by a set of image sensor systems, And a relative 3D pose of the set of image sensor systems on the first device is determined based on the predetermined relative position and orientation of the set of image sensor systems and the 3D coordinates of the one or more points in space. In some examples, the pose of the first device relative to the second device may be further based on the relative 3D pose of the set of image sensors on the first device. Furthermore, in some cases, the relative 3D pose of the image sensor system set may be, for example, a relative 6DoF pose in 3D space.
In some aspects, determining the pose of the first device relative to the second device may include determining the pose of the second device relative to the first device. The pose of the first device and the pose of the second device may be, for example, a relative 6DoF pose.
In some aspects, method 700 can include detecting, based on one or more additional images captured by one or more image sensor systems from an image sensor set, in the one or more additional images capturing one or more additional patterns on the object, determining one or more pixels in the one or more additional images that correspond to the one or more additional patterns on the object, and based on the one or more pixels to determine an additional 6DoF pose of the object relative to the 6DoF pose of the first device and/or the 6DoF pose of the second device. In some cases, the object may be, for example, a wall, a display device, a video game console, furniture, appliances, household items, and the like.
In some examples, method 700 may be performed by one or more computing devices or apparatuses. In one illustrative example, method 700 may be performed by primary processing system 100 and/or secondary system 150 shown in FIG. 1 and/or one or more computing devices having computing device architecture 800 shown in FIG. 8 . In some cases, such a computing device or apparatus may include a processor, microprocessor, microcomputer, or other component of the device configured to perform the steps of method 700 . In some examples, such computing devices or apparatuses may include one or more sensors configured to capture image material. For example, computing devices may include smart phones, head mounted displays, mobile devices, or other suitable devices. In some examples, such computing devices or apparatuses may include cameras configured to capture one or more images or videos. In some cases, such computing devices may include a display for displaying images. In some examples, one or more sensors and/or cameras are separate from the computing device, in which case the computing device receives the sensed data. Such computing devices may further include a network interface configured to communicate data.
Components of a computing device may be implemented in circuitry. For example, each component may include and/or may use electronic circuits or other electronic hardware (which may include one or more programmable electronic circuits (eg, microprocessor, graphics processing unit (GPU), digital signal processor (DSP) ), a central processing unit (CPU), and/or other suitable electronic circuitry)), and/or may include and/or may be implemented using computer software, firmware, or any combination thereof, to perform the various functions described herein. operate. The computing device may further include a display (as an example of or in addition to an output device), a network interface configured to communicate and/or receive data, any combination thereof, and/or other component(s). The network interface may be configured to communicate and/or receive Internet Protocol (IP) based data or other types of data.
Method 700 is illustrated as a logic flow diagram whose operations represent sequences of operations that can be implemented in hardware, computer instructions, or a combination thereof. In the context of computer instructions, operations represent computer-executable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, etc. that perform particular functions or implement particular types of data. The order in which the operations are described is not intended to be construed as limiting, and any number of the operations described may be combined in any order and/or performed in parallel to implement the processes.
Additionally, method 700 can be performed under the control of one or more computer systems configured with executable instructions, and can be implemented as code (eg, executable instructions, a or more computer programs, or one or more applications), executed by hardware, or a combination thereof. As mentioned above, the program code may be stored on a computer-readable or machine-readable storage medium, eg, in the form of a computer program comprising a plurality of instructions executable by one or more processors. Computer-readable or machine-readable storage media may be non-transitory.
8 illustrates an example computing device architecture 800 of an example computing device that may implement the various techniques described herein. For example, computing device architecture 800 may implement at least some portions of main processing system 100 shown in FIG. 1 and perform ToF signal processing operations as described herein. The components of computing device architecture 800 are shown in electrical communication with each other using connections 805, such as bus bars. Example computing device architecture 800 includes a processing unit (CPU or processor) 810 and coupling various computing device components including computing device memory 815 such as read only memory (ROM) 820 and random access memory (RAM) 825 Computing device connection 805 to processor 810 .
Computing device architecture 800 may include a cache directly connected to processor 810 , proximate processor 810 , or a high-speed memory integrated as part of processor 810 . Computing device architecture 800 may copy data from memory 815 and/or storage device 830 to cache 812 for fast access by processor 810 . In this way, the cache can provide a performance boost, which avoids delays while the processor 810 is waiting for data. These and other modules may control or be configured to control processor 810 to perform various actions. Other computing device memory 815 may also be used. Memory 815 may include many different types of memory with different performance characteristics. The processor 810 may include any general purpose processor and hardware or software services stored in the storage device 830 and configured to control the processor 810, as well as special purpose processors (where software instructions are incorporated into the processor design). The processor 810 may be a self-contained system containing multiple cores or processors, buses, memory controllers, caches, and the like. Multicore processors can be symmetric or asymmetric.
To enable user interaction with computing device architecture 800, input device 845 may represent any number of input mechanisms, such as a microphone for speech, a touch screen for gesture or graphical input, a keyboard, a mouse, motion input, speech, etc. Wait. Output device 835 may also be one or more of a variety of output mechanisms known to those skilled in the art, such as a display, projector, television, speaker device. In some instances, a multimodal computing device may enable a user to provide multiple types of input to communicate with computing device architecture 800 . Communication interface 840 may generally govern and manage user input and computing device output. There are no limitations to operating on any particular hardware arrangement, and thus the underlying features here can be easily replaced to obtain improved hardware or firmware arrangements as they are developed.
Storage device 830 is non-volatile memory and can be a hard disk or other type of computer-readable medium that can store data that can be accessed by a computer, such as magnetic tapes, flash memory cards, solid state memory devices, digital versatile disks, cassettes Disk, random access memory (RAM) 825, read only memory (ROM) 820, or a mixture thereof. The storage device 830 may include software, program code, firmware, etc. for controlling the processor 810 . Other hardware or software modules are contemplated. Storage device 830 may be connected to computing device connection 805 . In one aspect, a hardware module that performs a particular function may include software components stored in a computer-readable medium coupled with the necessary hardware components (such as processor 810, connections 805, output devices 835, etc.) to perform the function.
The term "computer-readable medium" includes, but is not limited to, portable or non-portable storage devices, optical storage devices, and various other media capable of storing, containing, or carrying instruction(s) and/or data. Computer-readable media may include non-transitory media in which data may be stored and which do not include carrier waves and/or transient electronic signals that propagate wirelessly or through wired connections. Examples of non-transitory media may include, but are not limited to, magnetic disks or tapes, optical storage media such as compact disks (CDs) or digital versatile disks (DVDs), flash memory, memory, or memory devices. A computer-readable medium may have stored thereon program code and/or machine-executable instructions, which may represent procedures, functions, subroutines, programs, routines, subroutines, modules, software packages, classes, or instructions , data structures, or any combination of program statements. A code segment may be coupled to another code segment or hardware circuit by passing and/or receiving information, data, arguments, parameters or memory contents. Information, arguments, parameters, data, etc. may be communicated, forwarded, or transmitted via any suitable means, including memory sharing, message passing, token passing, network transmission, and the like.
In some embodiments, computer-readable storage devices, media, and memories may include wired or wireless signals including bitstreams and the like. However, when referred to, non-transitory computer-readable storage media expressly exclude media such as energy, carrier signals, electromagnetic waves, and the signals themselves.
In the above description, specific details are provided to provide a thorough understanding of the embodiments and examples provided herein. However, one of ordinary skill in the art will understand that these embodiments may be practiced without these specific details. For clarity, in some instances, the techniques of this disclosure may be presented as including various functional blocks, which include devices, device components, steps or routines in methods implemented in software or a combination of hardware and software. Additional components may be used in addition to those shown in the figures and/or described herein. For example, circuits, systems, networks, processes, and other components may be shown in block diagram form as components in order to avoid obscuring the embodiments in unnecessary detail. In other instances, well-known circuits, procedures, algorithms, structures and techniques may be shown without necessary detail in order to avoid obscuring the embodiments.
Various embodiments may be described above as processes or methods depicted as flowcharts, flowchart illustrations, data flow diagrams, block diagrams, or block diagrams. Although a flowchart may describe the operations as a sequential process, many of the operations may be performed in parallel or concurrently. Additionally, the order of operations can be rearranged. The process is terminated when its operations are complete, but the process may have additional steps not included in the figures. A procedure may correspond to a method, function, procedure, subroutine, subroutine, or the like. When a procedure corresponds to a function, its termination may correspond to the function returning to the caller function or to the main function.
Processes and methods according to the above-described examples may be implemented using computer-executable instructions stored or otherwise available from a computer-readable medium. The instructions may include, for example, instructions and data that cause or otherwise configure a general purpose computer, special purpose computer or processing device to perform a certain function or group of functions. Portions of the computer resources used are accessible over the network. Computer-executable instructions may be, for example, binary files, intermediate format instructions (such as assembly language), firmware, source code. Examples of computer-readable media that may be used to store instructions, information used and/or created during methods according to the described examples include magnetic or optical disks, flash memory, USB provided with non-volatile memory devices, networked storage devices, etc.
Devices implementing the various processes and methods in accordance with these disclosures may include hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof, and may employ any of a variety of form factors. When implemented in software, firmware, middleware, or microcode, program code or program code segments (eg, a computer program product) for performing the necessary tasks can be stored in a computer-readable or machine-readable medium. The processor can perform necessary tasks. Typical examples of form factors include: laptop computers, smart phones, mobile phones, tablet devices, or other small form factor personal computers, personal digital assistants, rack-mounted devices, self-contained devices, and the like. The functionality described herein may also be implemented with peripherals or add-in cards. As a further example, such functionality may also be implemented on circuit boards among different chips or different processes executing on a single device.
Instructions, media for communicating those instructions, computing resources for executing them, and other structures for supporting such computing resources are example means for providing the functionality described in this disclosure.
In the foregoing description, various aspects of the application are described with reference to specific embodiments thereof, but those skilled in the art will recognize that the application is not limited thereto. Thus, while illustrative embodiments of the present application have been described in detail herein, it is to be understood that the various inventive concepts may be embodied and employed in various other ways and that the scope of the appended claims is not intended to be construed to include such modifications, unless restricted by the prior art. The various features and aspects of the above applications can be used alone or in combination. Furthermore, the various embodiments may be utilized in any number of environments and applications beyond those described herein without departing from the broader spirit and scope of this specification. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. For illustrative purposes, the methods are described in a particular order. It should be appreciated that in alternative embodiments, the methods may be performed in a different order than described.
One of ordinary skill in the art will appreciate that the less than ("<") and greater than (">") symbols or terms used herein may be used with less than or equal to (">") symbols or terms, respectively. <img file="TW202201178A_D0001.tif" />) and greater than or equal to (" <img file="TW202201178A_D0002.tif" />) symbol instead without departing from the scope of this specification.
Where components are described as being "configured" to perform certain operations, the operations may be performed, for example, by designing electronic circuits or other hardware, by programming programmable electronic circuits (eg, microprocessors, or other suitable electronic circuits), or any combination thereof, to achieve such a configuration.
The phrase "coupled to" means that any component is physically connected, directly or indirectly, to another component, and/or any component is directly or indirectly in communication with another component (eg, through a wired or wireless connection and/or other suitable the communication interface to that other component).
Claims language or other language that states "at least one" of the set and/or "one or more" of the set indicates that a member of the set or members of the set (in any combination) satisfy the request item. For example, claim language that recites "at least one of A and B" or "at least one of A or B" means A, B, or A and B. In another example, claim term language that recites "at least one of A, B, and C" or "at least one of A, B, or C" means A, B, C, or A and B, or A and C, or B and C, or A and B and C. The language of the set "at least one of" and/or the set "one or more of" does not limit the set to the items recited in the set. For example, claim language that recites "at least one of A and B" or "at least one of A or B" may mean A, B, or A and B, and may additionally include statements not included in A and B Items enumerated in the collection.
The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the examples disclosed herein can be implemented as electronic hardware, computer software, firmware, or combinations thereof. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the specific application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
The techniques described herein can also be implemented in electronic hardware, computer software, firmware, or any combination thereof. These techniques may be implemented in any of a variety of devices, such as general purpose computers, wireless communication device handsets, or integrated circuit devices having a variety of uses including applications in wireless communication device handsets and other devices. Any features described as modules or components may be implemented together in an integrated logic device or separately as discrete but interoperable logic devices. If implemented in software, the techniques may be implemented, at least in part, by a computer-readable data storage medium comprising program code comprising instructions that, when executed, perform the methods, algorithms, and/or operations described above one or more of. The computer-readable data storage medium may form part of a computer program product, which may include packaging materials. Computer-readable media may include memory or data storage media such as random access memory (RAM) (such as synchronous dynamic random access memory (SDRAM)), read only memory (ROM), non-volatile random Access memory (NVRAM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Flash Memory, Magnetic or Optical Data Storage Media, etc. These techniques may additionally or alternatively be implemented at least in part by computer-readable communication media that carry or convey program code in the form of instructions or data structures that can be accessed, read, and/or executed by a computer, such as A propagating signal or wave.
The code may be executed by a processor, which may include one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGA), or other equivalent integrated or discrete logic circuitry. Such processors may be configured to perform any of the techniques described in this disclosure. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, eg, a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Accordingly, the term "processor," as used herein may refer to any of the foregoing structures, any combination of the foregoing structures, or any other structure or apparatus suitable for implementing the techniques described herein.
<p>100: System <br /> 110: Computational Components <br /> 120A~120N: fiducial markers <br /> 125: Image Sensor <br /> 130: Extended Reality Engine <br /> 132: Computer Vision Models <br /> 134: Image processing engine <br /> 136: Rendering Engine <br /> 150: Auxiliary system <br /> 152: Image Sensor System <br /> 152A~152N: Image Sensor System <br /> 154: Accelerometer <br /> 156: Gyroscope <br /> 158: Tracking Engine <br /> 160: Neural Networks <br /> 200: view <br /> 300: Use Case <br /> 320A~320N: fiducial markers <br /> 340: Use Cases <br /> 360: Use Cases <br /> 362: Target <br /> 400: Example configuration <br /> 402A: Bounding Box <br /> 402B: Bounding Box <br /> 410: Example Configuration <br /> 412: Square Pattern <br /> 414: Square Pattern <br /> 416: Square Pattern <br /> 420C~420N: base standard <br /> 430: External Pattern <br /> 432: Internal Pattern <br /> 502: Example Reference Line <br /> 520A~520B: Benchmark standard markers <br /> 600: Attitude change <br /> 602: Translation Shift <br /> 604: Reference position <br /> 606: Location <br /> 610: Rotation Transformation <br /> 612: Reference Orientation <br /> 614: Projection <br /> 616: Projection <br /> 618: Projection <br /> 624: Rotation angle <br /> 700: Example method <br /> 702: Box <br /> 704: Box <br /> 706: Box <br /> 708: Box <br /> 800: Device Architecture <br /> 805: connect <br /> 810: Processor <br /> 812: Cache <br /> 815: Memory <br /> 835: Output device <br /> 830: Storage Devices <br /> 840: Communication interface <br /> 845: input device </p>
For the purpose of describing the manner in which the various advantages and features of the present disclosure may be obtained, a more specific description of the above principles will be presented by reference to specific embodiments of the above principles which are illustrated in the accompanying drawings. Understanding that these drawings depict only example embodiments of the disclosure and are not to be considered limiting of its scope, the principles herein are described and explained with an additional level of specificity and detail through the use of the accompanying drawings in which:
1 is a simplified block diagram illustrating an example environment for lower power visual tracking in accordance with some examples of the present disclosure;
2 illustrates an example of an auxiliary system and a main processing system in an example use case for detecting the pose of an auxiliary system relative to a main processing system using an image sensor system on the auxiliary system, according to some examples of the present disclosure view;
3A is a diagram illustrating an example use case for tracking a six degrees of freedom (6DoF) pose of an auxiliary system and/or a main processing system, according to some examples of the present disclosure;
3B is a diagram illustrating another example use case for tracking gesture information for the assistance system 150 and/or the main processing system, in accordance with some examples of the present disclosure;
3C is a diagram illustrating an example use case for tracking a 6DoF gesture of an auxiliary system and/or a main processing system in accordance with some examples of the present disclosure;
3D is a diagram illustrating an example use case for tracking marked objects based on fiducial markers, according to some examples of the present disclosure;
4A-C illustrate example configurations of fiducial markers according to some examples of the present disclosure;
5 illustrates example reference lines projected between fiducial markers and used for pose transitions between reference patterns and observed patterns, according to some examples of the present disclosure;
6 is a diagram illustrating an example pose transition between a reference pattern and an observed pattern according to some examples of the present disclosure;
7 is a flowchart illustrating an example method for estimating the relative pose of an auxiliary system and a main processing system, according to some examples of the present disclosure; and
8 illustrates an example computing device architecture in accordance with some examples of the present disclosure.
<bio-deposit />
<sequence-list-text />
16 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| TWI867727B | Cited by | Taiwan Province of China | Examiner |
22 members in 5 offices
Priority claims9
| Document | Office | Kind | Date |
|---|---|---|---|
| 202041015116 | India | A | |
| 202041015116 | India | A | |
| 16904446 | United States of America | – | |
| 202016904446 | United States of America | A | |
| 202016904446 | United States of America | A | |
| 202016904466 | United States of America | A | |
| 202016904446 | – | – | – |
| IN202041015116 | – | – | – |
| US202016904446 | – | – | – |
Members22
| Document | Office | Kind | |
|---|---|---|---|
| US2021314248A1 | United States of America | A1 | |
| US2021314252A1 | United States of America | A1 | |
| US2021314253A1 | United States of America | A1 | |
| US2021314268A1 | United States of America | A1 | |
| US2021314277A1 | United States of America | A1 | |
| US2021314415A1 | United States of America | A1 | |
| US2021314423A1 | United States of America | A1 | |
| WO2021206789A1 | World Intellectual Property Organization (WIPO) | A1 | |
| US11212356B2 | United States of America | B2 | |
| TW202201178AThis record | Taiwan Province of China | A | |
| US11277331B2 | United States of America | B2 | |
| US11368387B2 | United States of America | B2 | |
| US11438257B2 | United States of America | B2 | |
| EP4078908A1 | European Patent Office (EPO) | A1 | |
| CN115398864A | China | A | |
| US11528219B2 | United States of America | B2 | |
| US11743172B2 | United States of America | B2 | |
| US11792112B2 | United States of America | B2 | |
| US2024015097A1 | United States of America | A1 | |
| EP4078908B1 | European Patent Office (EPO) | B1 | |
| EP4078908C0 | European Patent Office (EPO) | C0 | |
| EP4589927A2 | European Patent Office (EPO) | A2 |
Numbers
- Publication
- 202201178
- Publication, DOCDB
- 202201178
- Publication, EPODOC
- TW202201178
- Application
- 110115188
- Application, DOCDB
- 110115188
- Application, EPODOC
- TW202110115188
Titles3
- English
- LOW POWER VISUAL TRACKING SYSTEMS
- Chinese
- 低功率視覺追蹤系統
- English
- Low Power Vision Tracking System
Classification
- CPC, 48
- G06T7/73
- G06T2207/20084
- G06T2207/30204
- G06T2207/30244
- H04L41/0806
- H04L41/0894
- H04L41/0895
- H04L41/122
- H04L41/40
- H04L41/5054
- H04L43/0805
- H04L43/20
- H04L45/037
- H04L45/0377
- H04L45/38
- H04L45/745
- H04L47/125
- H04L47/2441
- H04L63/0272
- H04L67/04
- H04L67/142
- H04L67/51
- H04L67/563
- H04L67/63
- G06F3/012
- G06F3/0346
- H04N23/60
- G06T2207/10048
- H04N23/90
- H04L12/4633
- H04L12/4662
- H04L41/0654
- H04L45/04
- H04L45/12
- H04L45/20
- H04L45/24
- H04L45/30
- H04L45/306
- H04L45/586
- H04L45/741
- H04L47/2408
- H04L47/825
- H04L49/20
- H04L49/70
- H04L63/164
- H04L63/306
- H04L67/1004
- H04L67/146
- IPC, 7
- G06F3 01
- G06K9 00
- H04L45 02
- H04L45 122
- H04L45 24
- H04L45 586
- H04L45 74