TIME SHIFT DETERMINATION UNIT AND METHOD FOR DETERMINING TIME SHIFTS
20260024308 ยท 2026-01-22
Inventors
Cpc classification
G06V10/758
PHYSICS
International classification
G06V10/74
PHYSICS
G06V10/62
PHYSICS
Abstract
Methods and system are herein provided for determining a time shift between images captured by means of different cameras. In one example, a time shift determination unit comprises a computing device comprising one or more processors and a memory, wherein the computing device is configured to determine a defined plurality of landmarks in each image of a first plurality of successive images of a defined environment captured by means of a first camera, each landmark being defined by an x-coordinate and a y-coordinate in each of the respective images, determine the defined plurality of landmarks in each image of a second plurality of successive images of the defined environment captured by means of a second camera, each landmark being defined by an x-coordinate and a y-coordinate in each of the respective images, for each image captured by means of the first camera and the second camera, determine a mean x-coordinate or a mean y-coordinate for the defined plurality of landmarks in the image, compile a first chart representing a progression of the mean x-coordinate of the defined plurality of landmarks over the first plurality of successive images, and a second chart representing a progression of the mean x-coordinate of the defined plurality of landmarks over the second plurality of successive images, or compile a first chart representing a progression of the mean y-coordinate of the defined plurality of landmarks over the first plurality of successive images, and a second chart representing a progression of the mean y-coordinate of the defined plurality of landmarks over the second plurality of successive images, determine a similarity measure of the first chart and the second chart, perform a defined number of shifts of the second chart with respect to the first chart, wherein with each shift the second chart is shifted by a defined number of images, and for each shift of the plurality of shifts determine a similarity measure of the first chart and the shifted second chart, and evaluate the determined similarity measures in order to determine a time shift between the first plurality of successive images and the second plurality of successive images.
Claims
1. A time shift determination unit, comprising: a computing device comprising one or more processors and a memory, wherein the computing device is configured to: determine a defined plurality of landmarks in each image of a first plurality of successive images of a defined environment captured by means of a first camera, each landmark being defined by an x-coordinate and a y-coordinate in each of the respective images; determine the defined plurality of landmarks in each image of a second plurality of successive images of the defined environment captured by means of a second camera, each landmark being defined by an x-coordinate and a y-coordinate in each of the respective images; for each image captured by means of the first camera and the second camera, determine a mean x-coordinate or a mean y-coordinate for the defined plurality of landmarks in the image; compile a first chart representing a progression of the mean x-coordinate of the defined plurality of landmarks over the first plurality of successive images, and a second chart representing a progression of the mean x-coordinate of the defined plurality of landmarks over the second plurality of successive images, or compile a first chart representing a progression of the mean y-coordinate of the defined plurality of landmarks over the first plurality of successive images, and a second chart representing a progression of the mean y-coordinate of the defined plurality of landmarks over the second plurality of successive images; determine a similarity measure of the first chart and the second chart; perform a defined number of shifts of the second chart with respect to the first chart, wherein with each shift the second chart is shifted by a defined number of images, and for each shift of the plurality of shifts determine a similarity measure of the first chart and the shifted second chart; and evaluate the determined similarity measures in order to determine a time shift between the first plurality of successive images and the second plurality of successive images.
2. The time shift determination unit of claim 1, wherein the computing device is configured to determine between 10 and 40 landmarks in each image.
3. The time shift determination unit of claim 1, wherein each image in the first plurality of images is assigned to a defined timestamp, and each image in the second plurality of images is assigned to a defined timestamp.
4. The time shift determination unit of claim 3, wherein the defined number of images the second chart is shifted with respect to the first chart with each of the plurality of shifts corresponds to a time lag of between 0.03 seconds and 0.08 seconds.
5. The time shift determination unit of any of claim 1, wherein the computing device is configured to perform between 190 and 380 shifts of the second chart in a first direction, and to perform between 190 and 380 shifts of the second chart in a second direction.
6. The time shift determination unit of claim 1, wherein the computing device is configured to determine the similarity measures of the first chart and the second chart by determining the Pearson correlation coefficient.
7. The time shift determination unit of claim 1, wherein the computing device is configured to evaluate the determined similarity measures by selecting the time shift related to the highest similarity measure.
8. The time shift determination unit of claim 1, wherein the computing device is further configured to: determine the defined plurality of landmarks in each image of a third plurality of successive images of the defined environment captured by means of a third camera; for each image captured by means of the third camera, determine a mean x-coordinate or a mean y-coordinate for the defined plurality of landmarks in the image; compile a third chart representing a progression of the respective mean x-coordinate or y-coordinate of the defined plurality of landmarks over the third plurality of successive images, determine a similarity measure of the first chart and the third chart; perform a defined number of shifts of the third chart with respect to the first chart, wherein with each shift the third chart is shifted by a defined number of images, and for each shift of the plurality of shifts determine a similarity measure of the first chart and the shifted third chart; and evaluate the determined similarity measures in order to determine a time shift between the first plurality of successive images and the third plurality of successive images.
9. The shift determination unit of claim 8, wherein the computing device is further configured to: determine a similarity measure of the second chart and the third chart; perform a defined number of shifts of the third chart with respect to the second chart, wherein with each shift the third chart is shifted by a defined number of images, and for each shift of the plurality of shifts determine a similarity measure of the second chart and the shifted third chart; and evaluate the determined similarity measures in order to determine a time shift between the second plurality of successive images and the third plurality of successive images.
10. The shift determination unit of claim 9, wherein the computing device is configured to evaluate the determined similarity measures by selecting a first time shift, s.sub.12, of the second chart with respect to the first chart associated with a first similarity measure, a second time shift, s.sub.13, of the third chart with respect to the first chart associated with a second similarity measure, and a third time shift, s.sub.23, of the third chart with respect to the second chart associated with a third similarity measure, wherein a sum of the first time shift, s.sub.12, and the third time shift, s.sub.23, equals the second time shift, s.sub.13.
11. A method comprising: determining a defined plurality of landmarks in each image of a first plurality of successive images of a defined environment captured by means of a first camera, each landmark being defined by an x-coordinate and a y-coordinate in each of the respective images; determining the defined plurality of landmarks in each image of a second plurality of successive images of the defined environment captured by means of a second camera, each landmark being defined by an x-coordinate and a y-coordinate in each of the respective images; for each image captured by means of the first camera and the second camera, determining a mean x-coordinate or a mean y-coordinate for the defined plurality of landmarks in the image; compiling a first chart representing a progression of the mean x-coordinate of the defined plurality of landmarks over the first plurality of successive images, and a second chart representing a progression of the mean x-coordinate of the defined plurality of landmarks over the second plurality of successive images, or compiling a first chart representing a progression of the mean y-coordinate of the defined plurality of landmarks over the first plurality of successive images, and a second chart representing a progression of the mean y-coordinate of the defined plurality of landmarks over the second plurality of successive images; determining a similarity measure of the first chart and the second chart; performing a defined number of shifts of the second chart with respect to the first chart, wherein with each shift the second chart is shifted by a defined number of images, and for each shift of the plurality of shifts determine a similarity measure of the first chart and the shifted second chart; and evaluating the determined similarity measures in order to determine a time shift between the first plurality of successive images and the second plurality of successive images.
12. The method of claim 11, further comprising determining the defined plurality of landmarks in each image of a third plurality of successive images of the defined environment captured by means of a third camera; for each image captured by means of the third camera, determining a mean x-coordinate or a mean y-coordinate for the defined plurality of landmarks in the image; compiling a third chart representing a progression of the respective mean x-coordinate or y-coordinate of the defined plurality of landmarks over the third plurality of successive images, determining a similarity measure of the first chart and the third chart; performing a defined number of shifts of the third chart with respect to the first chart, wherein with each shift the third chart is shifted by a defined number of images, and for each shift of the plurality of shifts determine a similarity measure of the first chart and the shifted third chart; and evaluating the determined similarity measures in order to determine a time shift between the first plurality of successive images and the third plurality of successive images.
13. The method of claim 12, wherein evaluating the determined similarity measures comprises selecting a first time shift, s.sub.12, of the second chart with respect to the first chart associated with a first similarity measure, a second time shift, s.sub.13, of the third chart with respect to the first chart associated with a second similarity measure, and a third time shift, s.sub.23, of the third chart with respect to the second chart associated with a third similarity measure, wherein a sum of the first time shift, s.sub.12, and the third time shift, s.sub.23, equals the second time shift, s.sub.13.
14. The method of claim 13, wherein evaluating the determined similarity measures comprises applying a branch-and-bound algorithm.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0008]
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
DETAILED DESCRIPTION
[0016] The following description relates to systems for determining time shifts between sequences of successive images captured by means of different cameras. Different applications are known which capture images of a specific environment, event or scene by means of different cameras. Images captured by means of different cameras may subsequently be stitched together, e.g., in order to provide a surround view of the respective environment, event or scene. Many applications do this in real time. However, other applications are known where images of an environment captured by means of different cameras are first stored in memory, and the stitching process will only be performed at a later point in time. In such cases, known methods for real time synchronization of the images captured by means of the different cameras are generally not suitable, as a possible time shift between the images taken by means of the different cameras is not known. The time shift determination unit herein disclosed allows to determine a time shift between sequences of successive images captured by means of different cameras, where the synchronization of the images is not done in real-time.
[0017] There is an increasing demand for systems comprising multiple cameras which capture a certain scene or environment in a single frame. The different cameras of the system are arranged at different positions in order to be able to capture a defined region of interest from different angles and/or directions, and minimize a number of blind areas. The sequences of successive images captured by the different cameras are then stored, before (optionally) being stitched together. In order to achieve good results when stitching the images, the images captured by the different cameras need to be synchronized. Synchronization may be done with comparably little effort, if the synchronization is done in real-time (during the recording of the images). If, however, the images are stored first, and synchronization is only performed at a later point in time, known methods for real-time camera synchronization usually cannot be applied. The time shift determination unit and related method disclosed herein, allow to determine a time shift between sequences of successive images captured by different cameras. This time shift may then be used to synchronize the sequences of successive images before (optionally) stitching together the images captured by the different cameras. In this way, optimal results may be achieved during the stitching process.
[0018]
[0019]
[0020] For example, a first image f11 in the first sequence of successive images captured by means of the first camera 20-1 and assigned with a first time stamp, may be captured at a first point in time. A first image f21 in the second sequence of successive images captured by means of the second camera 20-2 and assigned with the same first time stamp, may be captured at a second point in time. The second point in time may not be identical to the first point in time. This time shift may be small, e.g., several milliseconds. It is, however, also possible that time shifts in the range of up to several seconds occur. Especially when moving objects (e.g., person 110) are present in the defined environment or scene 100, or when the plurality of cameras 20-1, 20-2, 20-3 move with respect to the defined environment or scene 100 (e.g., cameras mounted on a moving object), any time shifts between respective images captured by the different cameras 20-1, 20-2, 20-3 may result in highly dissatisfactory results, when the images captured by means of the different cameras 20-1, 20-2, 20-3 are stitched together at a later point in time. If a time shift between the sequences of successive images is determined correctly, the images with the correct time stamps may be chosen from the different sequences of successive images, in order to synchronize the sequences of successive images.
[0021]
[0022] Computing device 210 may be any kind of device that includes one or more processor(s) 212 such as a system-on-a-chip (SoC). Generally, computing device 210 may be configured to coordinate the overall operation of the time shift determination unit 200. The embodiments disclosed herein contemplate any technically-feasible system configured to implement the functionality of the time shift determination unit 200 via computing device 210.
[0023] Processor(s) 212 may be any technically-feasible form of processing device configured to process data and execute program code. Processor(s) 212 could include, for example and without limitation, a system-on-chip (SoC), a central processing unit (CPU), a graphics processing unit (GPU), an application specific integrated circuit (ASIC), a digital signal processor (DSP), a field programmable gate array (PFGA), and/or the like. Processor(s) 212 may include one or more processing cores. In operation, processor(s) 212 may be a primary processor of the computing device 210, controlling and coordinating operations of other system components. For example, processor(s) 212 may be configured to execute instructions (e.g., methods, algorithms, processes, etc.) stored in memory 214.
[0024] Memory 214 stores the shift determination application 216, and may include a memory module or a collection of memory modules. Memory 214 may be non-transitory memory or other form of non-volatile memory, random access memory (RAM), or any other feasible type of memory storage system. In various embodiments, processor(s) 212 can execute the shift determination application 216 to determine a time shift between different sequences of successive images captured by means of different cameras to implement the overall functionality of the computing device 210 and, thus, to coordinate the operation of the time shift determination unit 200 as a whole. For example, sequences of successive images received by the computing device 210 may be processed by the processor(s) 212 to determine a possible time shift between the sequences. In some embodiments, shift determination application 216 may be stored and loaded into the memory 214 for execution.
[0025] A shift determination unit 200 according to embodiments of the disclosure comprises a computing device 210 comprising one or more processors 212 and a memory 214. The computing device 210 is configured to determine a defined plurality of landmarks (which may also be referred to as a set of landmarks) in each image of a first plurality of successive images of a defined environment 100 captured by means of a first camera 20-1, each landmark being defined by an x-coordinate and a y-coordinate in each of the respective images. The computing device 210 is further configured to determine the defined plurality of landmarks in each image of a second plurality of successive images of the defined environment 100 captured by means of a second camera 20-2, each landmark being defined by an x-coordinate and a y-coordinate in each of the respective images. For each image captured by means of the first camera 20-1 and the second camera 20-2, the computing device 210 then determines a mean x-coordinate or a mean y-coordinate for each of the defined plurality of landmarks in the image. The computing device 210 is further configured to compile a first chart representing a progression of the mean x-coordinate of the defined plurality of landmarks over the first plurality of successive images, and a second chart representing a progression of the mean x-coordinate of the defined plurality of landmarks over the second plurality of successive images, or compile a first chart representing a progression of the mean y-coordinate of the defined plurality of landmarks over the first plurality of successive images, and a second chart representing a progression of the mean y-coordinate of the defined plurality of landmarks over the second plurality of successive images. The computing device 210 is further configured to determine a similarity measure of the first chart and the second chart, perform a defined number of shifts of the second chart with respect to the first chart, wherein with each shift the second chart is shifted by a defined number of images, and for each shift of the plurality of shifts determine a similarity measure of the first chart and the shifted second chart, and evaluate the determined similarity measures in order to determine a time shift between the first plurality of successive images and the second plurality of successive images. This will be described in further detail in the following.
[0026] As described above, the computing device 210 is configured to receive sequences of successive images stored in an external memory 302, and/or retrieve sequences of successive images from internal memory 214. The different sequences of successive images are captured by means of different cameras. According to one example, the sequences of successive images comprise a first sequence of successive images captured by means of a first camera 20-1 and a second sequence of successive images captured by means of a second camera 20-2. Each sequence of successive images comprises a defined number of images fx1, fx2, fx3, . . . , fxn. The computing device 210 determines a defined plurality of landmarks in each image f1n of the first plurality of successive images of a defined environment 100 captured by means of the first camera 20-1, as well as in each image f2n of a second plurality of successive images of the defined environment 100 captured by means of the second camera 20-2. Each landmark is defined by an x-coordinate and a y-coordinate in each of the respective images. That is, each landmark determined in the images may relate to a specific pixel in the image.
[0027] This is schematically illustrated in
[0028] However, the same landmarks are (the same set of landmarks is) determined in each image of the different sequences of successive images. That is, if in the images f11, f12, f13, . . . , f1n of the first sequence of successive images landmarks (a set of landmarks) related to the nose and mouth of a person captured in the images are determined, the same landmarks (the same set of landmarks) related to the nose and mouth of the person are determined in the images of the second sequence of successive images. The same applies for any further sequence of successive images.
[0029] Once the defined landmarks (the set of landmarks) have been determined in each of the images f1n, f2n of the first and second sequence of successive images, a mean x-coordinate or a mean y-coordinate for each of the defined plurality of landmarks in the respective image will be determined. This will be done for each image captured by means of the first camera 20-1 and the second camera 20-2. That is, for each image f1n in the first sequence of successive images, a value is determined which represents either the mean x-coordinate or the mean y-coordinate of all of the defined landmarks in the image. These values are then used by the computing device 210 to compile a first chart representing a progression of the mean x-coordinate of the defined plurality of landmarks over the first plurality of successive images. Similarly, a second chart may be compiled representing a progression of the mean x-coordinate of the defined plurality of landmarks over the second plurality of successive images. Instead of the mean x-coordinates, the mean y-coordinates may also be used. Considering the mean y-coordinates instead of the mean x-coordinates, in some cases, may result in more precise results with respect to the determined time shift. That is, alternatively, the computing device 210 may compile a first chart representing a progression of the mean y-coordinate of the defined plurality of landmarks over the first plurality of successive images, and a second chart representing a progression of the mean y-coordinate of the defined plurality of landmarks over the second plurality of successive images.
[0030] A chart representing a progression of the mean y-coordinate of the defined plurality of landmarks (mouth and nose as described with respect to
[0031] Now referring to
[0032] Next, the computing device 210 determines a similarity measure of the first chart and the second chart. This results in one similarity measure for the different charts that have not been shifted with respect to each other. The computing device 210 then performs a defined number of shifts of the second chart with respect to the first chart, wherein with each shift the second chart is shifted by a defined number of images. For each shift of the plurality of shifts, the computing device 210 determines a similarity measure of the first chart and the shifted second chart. Each image in the first plurality of images is assigned to a defined timestamp, and each image in the second plurality of images is assigned to a defined timestamp. The defined number of images the second chart is shifted with respect to the first chart with each of the plurality of shifts may correspond to a time lag of 0.05 seconds, for example. This, however, is only an example. The number of images the second chart is shifted with respect to the first chart with each of the plurality of shifts may correspond to a time lag of less than 0.05 seconds, or even more than 0.05 second. A time lag of less than 0.05 may make the time shift determination more accurate, but also more elaborate due to an enlarged computing effort. A time lag of more than 0.05 seconds may reduce the computing effort, but may decrease the accuracy of the time shift determination. According to some examples, the number of images the second chart is shifted with respect to the first chart with each of the plurality of shifts may correspond to a time lag of between 0.01 seconds and 1 second, or between 0.03 seconds and 0.08 seconds.
[0033] The computing device 210 may be configured to perform between 190 and 380 shifts of the second chart in a first direction (corresponding to positive time shifts), and between 190 and 380 shifts of the second chart in a second direction (corresponding to negative time shifts). This, however, is only an example. A minimum number of shifts may be required in order to make sure that the correct time shift is finally determined. A time shift between the images captured by means of the different cameras 20-1, 20-2, 20-3 may generally be between several milliseconds up to several seconds. A time shift of several seconds, however, cannot be determined if a too small number of shifts of the second chart with respect to the first chart is performed. It is generally also possible that there is no time shift between the images captured by means of the different cameras, and the cameras 20-1, 20-2, 20-3 are perfectly synchronized. This may be verified by means of the time shift determination unit 200 and the method described herein.
[0034] Now referring to
[0035] The computing device 210 then continues to evaluate the determined similarity measures in order to determine a time shift between the first plurality of successive images and the second plurality of successive images. According to one example, the computing device 210 may be configured to evaluate the determined similarity measures by selecting the shift comprising the highest similarity measure. According to Pearson correlation coefficient determination, a correlation value of 1.0 would be the best possible result. A similarity value of 0.1 in this example would indicate a low similarity between the respective charts. In the example illustrated in
[0036] If more than two cameras 20-1, 20-2, 20-3 are involved, the results may be further verified. If, for example, a time shift between images captured by means of the first camera 20-1 and images captured by means of the second camera 20-2 is 5 seconds, and a time shift between images captured by means of the second camera 20-2 and images captured by means of the third camera 20-3 is 3 seconds, then the time shift between images captured by means of the first camera 20-1 and images captured by means of the third camera 20-3 is 8 seconds. That is, when for each pair of cameras a potential time shift has been identified (e.g., time shift related to the highest correlation value), the following calculation may be performed for verification:
wherein s.sub.ij is the time shift between cameras i and j, s.sub.jk is the time shift between cameras j and k, and s.sub.ik is the time shift between cameras i and k. If the identified time shifts satisfy the calculation, the results may be assumed to be true. If the identified time shifts do not satisfy the calculation, different time shifts may be chosen from the tables as exemplarily illustrated in
[0037] According to one example, in order to identify the most accurate time shifts which maximize the sum of pairwise similarities with respect to equation (1), a branch-and-bound algorithm may be applied. For each pair of cameras, the shifts of a chart with respect to another chart (see
With the highest similarity measure may be chosen first, and may be added to current empty solution
The partial solution may be iteratively enlarged by adding the shift of the respective pair of cameras having the maximum similarity measure. When enlarging the partial solution, it may be verified that the resulting partial solution is feasible with respect to equation (1). If the partial solution is not feasible, it may not be enlarged any further, and the respective branch of the branch-and-bound algorithm may be abandoned. Once all partial solutions containing the shift
with the maximum similarity measure for cameras 20-1 and 20-2 have been considered, the respective shift may be removed from a list of possible candidates for the respective pair of cameras, and enumeration may be continued. In order to speed up the enumeration, an upper bound for the current partial solution S may be used:
Where w
is the similarity measure of shift
P(S) is the pairs of cameras for which the time shift has not yet been considered, and C(i, j) is the list of candidate indexes of shifts for cameras i und j. If the upper bound for a current partial solution is less than or equal to the sum of pairwise similarities of the best solution that was determined until this point, such partial solution may be abandoned.
[0038] Once the most likely time shift between a pair of cameras, or the most likely time shifts between different pairs of cameras of a plurality of cameras have been determined, data representing the determined time shift(s) may be provided, e.g., to a synchronization unit 402 which may then use the determined time shift(s) in order to synchronize the images captured by means of the different cameras. The determined time shift(s), however, may additionally or alternatively be provided to any other unit as well, and may be used for any application for which knowledge of the time shift may be required.
[0039] Referring to
[0040] At 806, method 800 further includes, for each image captured by means of the first camera 20-1 and the second camera 20-2, determining a mean x-coordinate or a mean y-coordinate for each of the defined plurality of landmarks in the image. Method 800 may then proceed with compiling a first chart representing a progression of the mean x-coordinate of the defined plurality of landmarks over the first plurality of successive images, and a second chart representing a progression of the mean x-coordinate of the defined plurality of landmarks over the second plurality of successive images. Alternatively, at 808, method 800 may include compiling a first chart representing a progression of the mean y-coordinate of the defined plurality of landmarks over the first plurality of successive images, and a second chart representing a progression of the mean y-coordinate of the defined plurality of landmarks over the second plurality of successive images.
[0041] At 810, method 800 proceeds with determining a similarity measure of the first chart and the second chart. Subsequently, at 812, method 800 includes performing a defined number of shifts of the second chart with respect to the first chart, wherein with each shift the second chart is shifted by a defined number of images, and for each shift of the plurality of shifts determine a similarity measure of the first chart and the shifted second chart. At 814, method 800 proceeds with evaluating the determined similarity measures in order to determine a time shift between the first plurality of successive images and the second plurality of successive images. With this, method 800 ends.
[0042] The time shift determination unit herein provided is able to reliably determine a time shift between different sequences of successive images captured by means of different cameras. The determined time shift may be provided to a synchronization unit, for example. The synchronization unit may be configured to synchronize the sequences of successive images for further processing. Further processing may include stitching together images of the different sequences of successive images, e.g., to provide a surround view of a defined scene or environment. The time shift as determined by the time shift determination unit may be considered by the synchronization unit. This results in highly satisfying results, e.g., when subsequently stitching together images of the different sequences of successive images.
[0043] The following claims particularly point out certain combinations and sub-combinations regarded as novel and non-obvious. These claims may refer to an element or a first element or the equivalent thereof. Such claims should be understood to include incorporation of one or more such elements, neither requiring nor excluding two or more such elements. Other combinations and sub-combinations of the disclosed features, functions, elements, and/or properties may be claimed through amendment of the present claims or through presentation of new claims in this or a related application. Such claims, whether broader, narrower, equal, or different in scope to the original claims, also are regarded as included within the subject matter of the present disclosure.