Object tracking method, apparatus, and computer readable medium

By processing video images captured by cameras in parallel on edge devices, extracting image features and camera identifiers, the latency problem of cloud servers is solved, and real-time tracking of target objects is achieved.

CN114255259BActive Publication Date: 2025-12-05SIEMENS (CHINA) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202011005730.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-09-23
Publication Date
2025-12-05
Estimated Expiration
2040-09-23

AI Technical Summary

Technical Problem

Existing video surveillance technology, when tracking the movement trajectory of a target object, results in high network bandwidth consumption and severe cloud server latency due to the real-time acquisition of video images by cameras and their uploading to cloud servers, making it difficult to guarantee real-time performance.

Method used

Video images captured by cameras are processed in parallel on edge devices. By extracting image features and camera identifiers, the motion trajectory of the target object can be determined, avoiding the need to upload video images to cloud servers.

Benefits of technology

It enables rapid local processing of image features and time information, reduces network transmission requirements, and ensures real-time tracking of target objects.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114255259B_ABST
    Figure CN114255259B_ABST
Patent Text Reader

Abstract

The application provides an object tracking method, device and computer readable medium, the object tracking method comprises: acquiring video images collected by at least two cameras in a parallel manner, and acquiring a first image from the video images according to pre-acquired sample image features, the sample image features are image features of an object to be tracked, and the first image is an image comprising a target object; extracting image features of the target object in each first image; determining at least two second images from the first images, the target object in the second image is the object to be tracked; acquiring a camera identifier and time information corresponding to each second image; and determining a motion trajectory of the object to be tracked according to the camera identifier and the time information corresponding to each second image. The scheme can ensure the real-time tracking of the target object.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the field of video monitoring technology, and in particular to an object tracking method, device and computer readable medium. BACKGROUND

[0002] In the fields of traffic management, intelligent factory and security, tracking the motion trajectory of a target object usually needs video monitoring technology. For example, in the field of security, the motion trajectory of a target vehicle or a target person is determined by image analysis on video images collected by multiple cameras.

[0003] Currently, when tracking the motion trajectory of a target object by using video monitoring technology, video images including the target object are collected by multiple cameras, and then the video images collected by each camera are uploaded to a cloud server, and the cloud server performs image analysis on the video images to determine the motion trajectory of the target object.

[0004] For the above method of tracking the motion trajectory of a target object, since each camera needs to collect video images in real time and upload all the collected video images to the cloud server, a large amount of network transmission bandwidth is required to transmit the video images to the cloud server, resulting in a large delay in receiving the video images by the cloud server, and the motion trajectory of the target object cannot be tracked in time, so that the real-time tracking of the target object cannot be guaranteed. SUMMARY

[0005] Therefore, the object tracking method, device and computer readable medium provided by the present application can guarantee the real-time tracking of a target object.

[0006] In a first aspect, an object tracking method is provided, comprising:

[0007] acquiring video images collected by at least two cameras in a parallel manner, and acquiring a first image from the video images according to pre-acquired sample image features, wherein the sample image features are image features of a to-be-tracked object, the first image is an image including a target object, and the target object and the to-be-tracked object have at least one matching image feature;

[0008] extracting image features of the target object in each first image;

[0009] determining at least two second images from the first images, wherein the target object in the second image is the to-be-tracked object;

[0010] acquire camera identifier and time information corresponding to each second image, wherein the camera identifier corresponding to one second image is used to indicate the camera of the video image where the second image is located, and the time information corresponding to one second image is used to indicate the time of the video image where the second image is located;

[0011] determine the motion track of the object to be tracked according to the camera identifier and the time information corresponding to each second image.

[0012] In a second aspect, the present application further provides an object tracking device, comprising:

[0013] a first image acquisition module, configured to acquire video images collected by at least two cameras in a parallel manner, and acquire first images from the video images according to pre-acquired sample image features, wherein the sample image features are image features of an object to be tracked, and the first images are images including a target object, and the target object has at least one matched image feature with the object to be tracked;

[0014] an image feature extraction module, configured to extract image features of the target object in each first image;

[0015] a second image determination module, configured to determine at least two second images from the first images, wherein the target object in the second images is the object to be tracked;

[0016] an identifier information acquisition module, configured to acquire camera identifier and time information corresponding to each second image, wherein the camera identifier corresponding to one second image is used to indicate the camera of the video image where the second image is located, and the time information corresponding to one second image is used to indicate the time of the video image where the second image is located;

[0017] a motion track determination module, configured to determine the motion track of the object to be tracked according to the camera identifier and the time information corresponding to each second image.

[0018] In a third aspect, the present application further provides another object tracking device, comprising at least one memory and at least one processor;

[0019] the at least one memory, configured to store machine readable programs;

[0020] the at least one processor, configured to call the machine readable programs and execute the method provided in the first aspect.

[0021] In a fourth aspect, the present application further provides a computer readable medium, wherein the computer readable medium stores computer instructions, and the computer instructions make the processor execute the method provided in the first aspect when the processor executes the computer instructions.

[0022] According to the technical solutions provided in the first aspect to the fourth aspect, when tracking an object, at least two video images captured by cameras can be acquired in parallel, a first image can be acquired from the video images according to a pre-acquired sample image feature, and at least two second images can be determined from the first images by extracting image features of a target object in each first image. After obtaining camera identifiers and time information corresponding to each second image, the motion trajectory of the object to be tracked can be determined according to the camera identifiers and the time information corresponding to the second images. The object tracking method can be applied to an edge device. Since the object tracking method can be applied to an edge device, after each camera captures a video image in real time, the captured video images no longer need to be uploaded to a cloud server, and a large amount of network transmission bandwidth is no longer needed to transmit the video images to the cloud server. That is, the extraction and processing of the video images captured by each camera can be completed locally, the problem of large delay of the cloud server when receiving the video images is solved, and the motion trajectory of the target object can be tracked in a timely manner, thereby ensuring the real-time tracking of the target object.

[0023] In the first possible implementation, in combination with any of the above aspects, when at least two second images are determined from the first images, at least two third images can be first determined from the second images, and at least two second images can be then determined from the third images. The at least two second images can be determined in the following manner:

[0024] At least two third images are determined from the first images, where the similarity between the image features of the target object in the third images and the sample image features is greater than a preset first similarity threshold.

[0025] At least two second images are determined from the third images, where the similarity between the image features of the target object in different second images is greater than a preset second similarity threshold.

[0026] In the embodiments of the present application, at least two third images are first determined from the first images, where the similarity between the image features of the target object in the third images and the sample image features is greater than a preset first similarity threshold. At least two second images are then determined from the third images, where the similarity between the image features of the target object in different second images is greater than a preset second similarity threshold. That is, at least two second images are determined by using at least two computing resources, which reduces the tension of the computing resources when at least two second images are directly determined from the first images. Thus, at least two third images can be quickly determined from the first images.

[0027] In the second possible implementation, in combination with the first possible implementation described above, when determining the at least two third images from the respective first images and determining the at least two second images from the respective third images, both can be determined in a parallel manner. Specifically, the third images and the second images can be determined in the following manner:

[0028] at least two parallel first processes are created, such that different first processes perform the operation of determining the third image for different first images: if the similarity of the image feature of the target object in the first image to the sample image feature is greater than a first similarity threshold, the first image is determined as the third image;

[0029] at least two parallel second processes are created, such that different second processes perform the operation of determining the second image for different third images: if the similarity of the image feature of the target object in the different third image to the preset second similarity threshold is greater than the preset second similarity threshold, the third image is determined as the second image.

[0030] In the embodiments of the present application, by creating at least two parallel first processes, such that different first processes perform the operation of determining the third image for different first images, it is beneficial to reduce the time used to determine the third image, thereby facilitating to ensure the real-time performance of tracking the target object; similarly, by creating at least two parallel second processes, such that different second processes perform the operation of determining the second image for different third images, it is beneficial to reduce the time used to determine the second image, thereby facilitating to ensure the real-time performance of tracking the target object.

[0031] In the third possible implementation, in any of the aspects described above, when acquiring the first image from the video image according to the pre-acquired sample image feature, the video image can be cached in a message queue first, and then the first image is acquired from the video image cached in the message queue. Specifically, the first image can be acquired in the following manner:

[0032] cache the acquired video images in a first message queue created in advance in sequence;

[0033] when the number of the video images cached in the first message queue reaches a preset first number threshold, perform in a parallel manner by at least two threads: acquire the first image from the respective video images cached in the first message queue according to the pre-acquired sample image feature.

[0034] In the embodiment of the present application, the acquired video images are sequentially cached in the first message queue created in advance, so that the video images can be prevented from being lost due to system downtime or the like; when the number of the video images cached in the first message queue reaches the preset first number threshold, the first images are acquired from the video images cached in the first message queue in a parallel manner by at least two threads, so that the video images exceeding the first number threshold are no longer processed, thereby preventing the computing resources from being exhausted; and the first images are acquired in a parallel manner by at least two threads, so that the speed of processing the video images is improved, thereby facilitating the real-time tracking of the target object.

[0035] In the fourth possible implementation, in any of the above aspects, when extracting the image features of the target object in each first image, the first image can be cached in a message queue first, and then the image features of the target object are extracted from the first image cached in the message queue. The image features of the target object can be extracted in the following manner:

[0036] The acquired first images are sequentially cached in a second message queue created in advance;

[0037] When the number of the first images cached in the second message queue reaches a preset second number threshold, extracting the image features of the target object in each first image cached from the second message queue is performed in a parallel manner by at least two threads.

[0038] In the embodiment of the present application, the acquired first images are sequentially cached in the second message queue created in advance, so that the first images can be prevented from being lost due to system downtime or the like; when the number of the first images cached in the second message queue reaches the preset second number threshold, the image features of the target object are extracted from the first images cached in the second message queue in a parallel manner by at least two threads, so that the first images exceeding the second number threshold are no longer processed, thereby preventing the computing resources from being exhausted; and the image features of the target object are extracted in a parallel manner by at least two threads, so that the speed of processing the first images is improved, thereby facilitating the real-time tracking of the target object.

[0039] In the fifth possible implementation, in any of the above aspects, when determining the motion trajectory of the object to be tracked according to the camera identifier and the time information corresponding to each second image, the camera identifier and the time information corresponding to each second image can be cached in a message queue first, and then the motion trajectory of the object to be tracked is determined according to the camera identifier and the time information corresponding to each second image cached in the message queue. The motion trajectory of the object to be tracked can be determined in the following manner:

[0040] The camera identifier and the time information corresponding to each second image are sequentially cached into a third message queue created in advance;

[0041] When the camera identifier and the time information cached in the third message queue reach a preset third quantity threshold, at least two threads are used to determine the motion trajectory of the object to be tracked in a parallel manner according to the camera identifier and the time information cached in the third message queue.

[0042] In the embodiment of the application, the camera identifier and the time information corresponding to each second image are sequentially cached into a third message queue created in advance, so that the camera identifier and the time information corresponding to each second image can be prevented from being lost due to system downtime or the like. When the number of the camera identifier and the time information corresponding to each second image cached in the third message queue reaches a preset third quantity threshold, at least two threads are used to determine the motion trajectory of the object to be tracked in a parallel manner according to the camera identifier and the time information cached in the third message queue, so that the camera identifier and the time information corresponding to each second image exceeding the third quantity threshold are no longer processed, thereby preventing the computing resources from being exhausted. Moreover, the motion trajectory of the object to be tracked is determined in a parallel manner using at least two threads, so that the speed of processing the camera identifier and the time information corresponding to each second image is improved, thereby being beneficial to ensuring the real-time performance of tracking the target object.

[0043] In the sixth possible implementation manner, in combination with any one of the above aspects, the first possible implementation manner, the second possible implementation manner, the third possible implementation manner, the fourth possible implementation manner or the fifth possible implementation manner, the camera that collects the object to be tracked can also be determined according to the camera identifier corresponding to each second image. Specifically, the camera that collects the object to be tracked can be determined in the following manner:

[0044] The query instruction is received from a user visualization platform, where the query instruction is used to query the camera that collects the video image including the object to be tracked;

[0045] The camera identifier corresponding to each second image is sent to the user visualization platform, so that the user visualization platform determines the camera that collects the object to be tracked.

[0046] In the embodiment of the present application, if the user wants to determine only the camera which collects the to-be-tracked object, the user can send a query instruction through one or more external user visualization platforms, and in response to the query instruction and after obtaining the camera identifier corresponding to each second image, the camera identifier corresponding to each second image can be sent to the user visualization platform which sends the query instruction, so that the user visualization platform can determine the camera which collects the to-be-tracked object according to the camera identifier. BRIEF DESCRIPTION OF DRAWINGS

[0047] Figure 1 is a flowchart of an object tracking method provided by an embodiment of the present application;

[0048] Figure 2 is a flowchart of a second image determination method provided by an embodiment of the present application;

[0049] Figure 3 is a flowchart of another object tracking method provided by an embodiment of the present application;

[0050] Figure 4 is a schematic diagram of an object tracking device provided by an embodiment of the present application;

[0051] Figure 5 is a schematic diagram of another object tracking device provided by an embodiment of the present application;

[0052] Figure 6 is a schematic diagram of still another object tracking device provided by an embodiment of the present application;

[0053] Figure 7 is a schematic diagram of an object tracking device provided by an embodiment of the present application, which includes three message queue buffer units;

[0054] Figure 8 is a schematic diagram of an object tracking device provided by an embodiment of the present application, which includes a query instruction receiving module;

[0055] Figure 9 is an application scenario diagram of an object tracking device provided by an embodiment of the present application;

[0056] Figure 10 is a schematic diagram of an object tracking device provided by an embodiment of the present application, which includes a memory and a processor.

[0057] LIST OF REFERENCE NUMERALS

[0058] 101-105, 201-202, 301-306: method steps

[0059] 41: first image acquisition module 42: image feature extraction module 43: second image determination module

[0060] 44: identification information acquisition module 45: motion trajectory determination module 431: third image determination unit

[0061] 432: second image determination unit 4311: first process execution subunit 4321: second process execution subunit

[0062] 411: first message queue cache unit 412: first message queue execution unit 421: second message queue cache unit

[0063] 422: second message queue execution unit 451: third message queue cache unit 452: third message queue execution unit

[0064] 46: query instruction receiving module 47: camera identifier sending module 100: object tracking device

[0065] 200: camera 300: user visualization platform 11: image analysis module

[0066] 12: interaction module 48: memory 49: processor

[0067] 400: object tracking device DETAILED DESCRIPTION

[0068] As described previously, when tracking the motion trajectory of a target object by using video monitoring technology, video images including the target object are captured by multiple cameras, and then the video images captured by each camera are uploaded to a cloud server, and the cloud server analyzes the video images to determine the motion trajectory of the target object. Since each camera needs to capture video images in real time and upload all the captured video images to the cloud server, a large amount of network transmission bandwidth is required to transmit the video images to the cloud server, resulting in a large delay in receiving the video images by the cloud server, and the motion trajectory of the target object cannot be tracked in time, so that the real-time tracking of the target object is difficult to guarantee.

[0069] In the embodiment of the present application, when the object tracking is performed, the analysis of the video image can be completed in the edge device, so that after the video image is collected by each camera in real time, the collected video image does not need to be uploaded to the cloud server, and a large network transmission bandwidth is not needed to transmit the video image to the cloud server, that is, the video image collected by each camera can be extracted and processed locally, the problem that the cloud server has a large delay when receiving the video image is solved, so that the motion track of the target object can be tracked in time, thereby ensuring the real-time tracking of the target object.

[0070] The object tracking method and device provided by the embodiment of the present application will be described in detail below with reference to the accompanying drawings.

[0071] As shown in Figure 1 The embodiment of the present application provides an object tracking method, which can include the following steps:

[0072] Step 101: acquiring the video images collected by at least two cameras in a parallel manner, and acquiring a first image from the video images according to a pre-acquired sample image feature, wherein the sample image feature is an image feature of a to-be-tracked object, the first image is an image including a target object, and the target object has at least one matched image feature with the to-be-tracked object;

[0073] Step 102: extracting the image feature of the target object in each first image;

[0074] Step 103: determining at least two second images from the first images, wherein the target object in the second image is the to-be-tracked object;

[0075] Step 104: acquiring the camera identifier and time information corresponding to each second image, wherein the camera identifier corresponding to a second image is used to indicate the camera that collects the video image in which the second image is located, and the time information corresponding to a second image is used to indicate the time at which the video image in which the second image is located is collected;

[0076] Step 105: determining the motion track of the to-be-tracked object according to the camera identifier and time information corresponding to each second image.

[0077] In the embodiment of the present application, when tracking the object, at least two video images captured by the cameras can be acquired in parallel, then a first image is acquired from the video images according to the sample image features acquired in advance, and then at least two second images are determined from the first images by extracting image features of the target object in each first image, and after the camera identifier and time information corresponding to each second image are acquired, the motion track of the object to be tracked is determined according to the camera identifier and time information corresponding to each second image. The above object tracking method can be applied to the edge device. Since the above object tracking method can be applied to the edge device, after the video images are captured by the cameras in real time, the captured video images do not need to be uploaded to the cloud server, and a large amount of network transmission bandwidth is no longer needed to transmit the video images to the cloud server, that is, the extraction and processing of the video images captured by the cameras can be completed locally, solving the problem that the cloud server has a large delay when receiving the video images, so that the motion track of the target object can be tracked in time, thereby ensuring the real-time tracking of the target object.

[0078] In addition, at least two video images captured by the cameras are acquired in parallel, which is beneficial to reduce the time for acquiring the video images, thereby ensuring the real-time tracking of the target object.

[0079] It can be understood that the above edge device is used for edge computing service, wherein the edge computing refers to providing the nearest end service in proximity to the object or data source by using network, computing, storage and application capabilities; in a certain sense, the edge computing can be regarded as a complement or pre-processing of the cloud computing. In the embodiment of the present application, the edge device can be connected with the external camera through a cable, or at least part of the modules in the edge device can be integrated in the external camera, and the configuration mode of the edge device is not limited here. Optionally, the edge device can be a switch, a gateway or an industrial computer.

[0080] In the embodiments of the present application, in the process of determining the at least two second images from the video images, the first image can be obtained from each video image, i.e., the video image is preprocessed to determine the first image including the target object, wherein the target object has at least one matched image feature with the object to be tracked, so as to reduce the tension of the computing resources and facilitate the rapid determination of the second image. It can be understood that the target object has at least one matched image feature with the object to be tracked, for example, the object to be tracked is a person, and the image features (i.e., sample image features) of the object to be tracked include facial features, action features and clothing features, etc. (i.e., facial, action and clothing) feature dimensions, and at least one image feature of the facial features, the action features and the clothing features of the target object matches one image feature of the sample image features. "Matching" here can be understood as the similarity of the same feature dimension features of the object to be tracked and the target object being greater than a preset similarity threshold.

[0081] Optionally, in the object tracking method shown in the above embodiment, in the process of determining the at least two second images from the first images, the at least two third images can be determined from the second images, and the at least two second images can be determined from the third images. For example, as shown in the following embodiment, the at least two second images can be determined by the following method: Figure 1 Figure 2 Optionally, in the object tracking method shown in the above embodiment, in the process of determining the at least two second images from the first images, the at least two third images can be determined from the second images, and the at least two second images can be determined from the third images. For example, as shown in the following embodiment, the at least two second images can be determined by the following method:

[0082] Step 201: determining at least two third images from each first image, wherein the similarity of the image features of the target object in the third image to the sample image features is greater than a preset first similarity threshold;

[0083] Step 202: determining at least two second images from each third image, wherein the similarity of the image features of the target object in different second images is greater than a preset second similarity threshold.

[0084] ​In this embodiment of the invention, during the process of determining at least two second images from each first image, since the target object in the second image is the object to be tracked, determining the second image requires precise image feature comparison, which undoubtedly increases the strain on computing resources, thus hindering the rapid determination of the second image. Therefore, it is advisable to first determine at least two third images from each first image, wherein the similarity between the image features of the target object in the third image and the features of the sample image is greater than a preset first similarity threshold; then, at least two second images are determined from each third image, wherein the similarity between the image features of the target object in different second images is greater than a preset second similarity threshold. That is, by utilizing at least two computing resources to determine the second image, the strain on computing resources when directly determining at least two second images from each first image is reduced, thus enabling the rapid determination of at least two third images from each first image.

[0085] In determining at least two third images from each first image, for example, the object to be tracked is a person. The image features of the object to be tracked include features in feature dimensions such as facial features, action features, and clothing features (i.e., facial, action, and clothing features). In each of the first images that have already been selected, the third images with a similarity greater than a preset first similarity threshold with the features of the sample images are further selected from the image features in all feature dimensions. For example, the image features (i.e., facial features, action features, and clothing features) of the target object in the third image have a similarity greater than 90% with the features of the sample images. That is, the facial features of the target object in the third image have a similarity greater than 90% with the facial features of the object to be tracked, the action features of the target object in the third image have a similarity greater than 90% with the action features of the object to be tracked, and the clothing features of the target object in the third image have a similarity greater than 90% with the clothing features of the object to be tracked.

[0086] In determining at least two second images from each third image, cluster analysis can be used to determine whether the image features of the target object in the different second images match (i.e., whether they are greater than a preset second similarity threshold). If they are greater than the preset second similarity threshold (e.g., 90% or higher), it can be proven that the target object in the second images captured from different cameras is the same target object, and thus the target object can be identified as the object to be tracked.

[0087] Optionally, in Figure 2 Based on the second image determination method shown, both determining at least two third images from each first image and determining at least two second images from each third image can be done in parallel. Specifically, the third and second images can be determined in the following way:

[0088] Create at least two parallel first processes, such that different first processes execute for different first images: if the similarity between the image features of the target object in the first image and the features of the sample image is greater than a first similarity threshold, then the first image is determined as the third image;

[0089] Create at least two parallel second processes, such that different second processes execute for different third images: if the similarity of the image features of the target object in different third images is greater than a preset second similarity threshold, then the third image is identified as the second image.

[0090] In this embodiment of the invention, using a single process to determine the third image is not conducive to reducing the time required for determining the third image, thus hindering the real-time tracking of the target object. Similarly, using a single process to determine the second image is not conducive to reducing the time required for determining the second image, thus hindering the real-time tracking of the target object. Therefore, increasing the number of operation processes can be considered to further ensure the real-time tracking of the target object. For example, by creating at least two parallel first processes, each performing the operation to determine the third image for different first images, the time required to determine the third image is reduced, thus ensuring the real-time tracking of the target object. Similarly, by creating at least two parallel second processes, each performing the operation to determine the second image for different third images, the time required to determine the second image is reduced, thus ensuring the real-time tracking of the target object.

[0091] Optionally, in Figure 1 Based on the object tracking method shown, when retrieving the first image from the video image according to the pre-acquired sample image features, the video image can be cached in a message queue first, and then the first image can be retrieved from the cached video images in the message queue. Specifically, the first image can be retrieved in the following way:

[0092] Each acquired video image is sequentially cached into a pre-created first message queue;

[0093] When the number of video images cached in the first message queue reaches a preset first quantity threshold, at least two threads execute in parallel: based on the pre-acquired sample image features, the first image is retrieved from each video image cached in the first message queue.

[0094] In the embodiment of the present application, if the video images are directly processed, when the system crashes, a part of the video images can be lost, which is not conducive to the object tracking. Therefore, to prevent the loss of video images, the video images can be cached in the message queue first. For example, the obtained video images are sequentially cached in the first message queue created in advance, so that the video images can be prevented from being lost due to system crashes or the like.

[0095] In the embodiment of the present application, if the video images cached in the first message queue are continuously processed, the computing resources can be exhausted, which can increase the time for processing the video images, and thus can be not conducive to the real-time tracking of the target object. Therefore, to prevent the computing resources from being exhausted, the number of the video images cached in the first message queue can be threshold-set. For example, when the number of the video images cached in the first message queue reaches a preset first number threshold (for example, 5), the first images are obtained from the video images cached in the first message queue in a parallel manner by at least two threads, so that the video images exceeding the first number threshold can be prevented from being processed, and thus the computing resources can be prevented from being exhausted; and the first images can be obtained in a parallel manner by at least two threads, which can improve the speed of processing the video images, and thus can be conducive to ensuring the real-time tracking of the target object. In some embodiments, the first message queue can be a FIFO (First Input First Output) queue, and of course can be other types of queues.

[0096] Optionally, based on the object tracking method shown in Figure 1 In the embodiment of the present application, when the image features of the target object in each first image are extracted, the first images can be cached in the message queue first, and then the image features of the target object are extracted from the first images cached in the message queue. The image features of the target object can be extracted in the following manner:

[0097] The obtained first images are sequentially cached in the second message queue created in advance.

[0098] When the number of the first images cached in the second message queue reaches a preset second number threshold, the image features of the target object in each first image cached in the second message queue are extracted in a parallel manner by at least two threads.

[0099] In this embodiment of the invention, if the first image is processed directly, a portion of the first image may be lost if the system crashes, which is detrimental to object tracking. Therefore, to prevent the loss of the first image, it is advisable to cache the first image in a message queue. For example, each acquired first image can be cached sequentially in a pre-created second message queue, thus preventing the first image from being lost due to system crashes or other reasons.

[0100] In this embodiment of the invention, if the first images cached in the second message queue are processed continuously, it will exhaust computing resources, increasing the processing time for the first images and thus hindering the real-time tracking of the target object. Therefore, to prevent the exhaustion of computing resources, a threshold can be set for the number of first images cached in the second message queue. For example, when the number of first images cached in the second message queue reaches a preset second threshold (e.g., 5), at least two threads are used in parallel to extract the image features of the target object from each of the first images cached in the second message queue. This prevents the processing of first images exceeding the second threshold, thus preventing the exhaustion of computing resources. Furthermore, using at least two threads in parallel to extract the image features of the target object can improve the processing speed of the first images, thereby helping to ensure the real-time tracking of the target object. In some implementations, the second message queue can be a FIFO (First Input First Output) queue, or other types of queues.

[0101] Optionally, in Figure 1 Based on the object tracking method shown, when determining the motion trajectory of the object to be tracked according to the camera identifier and time information corresponding to each second image, the camera identifier and time information corresponding to each second image can be cached in a message queue first. Then, the motion trajectory of the object to be tracked can be determined according to the camera identifier and time information corresponding to each second image cached in the message queue. Specifically, the motion trajectory of the object to be tracked can be determined in the following way:

[0102] The camera identifier and time information corresponding to each acquired second image are sequentially cached into a pre-created third message queue;

[0103] When the camera identifier and time information cached in the third message queue reach a preset third threshold, at least two threads execute in parallel to determine the motion trajectory of the object to be tracked based on the camera identifier and time information cached in the third message queue.

[0104] In the embodiment of the present application, if the camera identifier and the time information corresponding to each second image are directly processed, when the system is down, a part of the camera identifier and the time information may be lost, which is not conducive to object tracking. Therefore, in order to prevent the loss of a part of the camera identifier and the time information, the camera identifier and the time information corresponding to each second image can be cached in the message queue first. For example, the camera identifier and the time information corresponding to each second image obtained are sequentially cached in the third message queue created in advance, so that the camera identifier and the time information corresponding to each second image can be prevented from being lost due to system downtime or the like.

[0105] In the embodiment of the present application, if the camera identifier and the time information corresponding to each second image cached in the third message queue are continuously processed, the computing resources will be exhausted, which will increase the time for processing the camera identifier and the time information corresponding to each second image, and thus the real-time performance of tracking the target object will be adversely affected. Therefore, in order to prevent the computing resources from being exhausted, the number of the camera identifier and the time information corresponding to each second image cached in the first message queue can be threshold set. For example, when the number of the camera identifier and the time information corresponding to each second image cached in the third message queue reaches a third number threshold (for example, 5), the motion trajectory of the object to be tracked is determined according to the camera identifier and the time information corresponding to each second image cached in the third message queue by at least two threads in a parallel manner, so that the camera identifier and the time information corresponding to each second image exceeding the third number threshold are no longer processed, thereby preventing the computing resources from being exhausted; and the motion trajectory of the object to be tracked is determined by at least two threads in a parallel manner, which can also improve the speed of processing the camera identifier and the time information corresponding to each second image, thereby being conducive to ensuring the real-time performance of tracking the target object. In some embodiments, the third message queue can be a FIFO (First Input First Output) queue, and of course it can also be other types of queues.

[0106] Optionally, on the basis of the object tracking method shown in Figure 1 On the basis of the object tracking method shown in the above, the camera that captures the object to be tracked can also be determined according to the camera identifier corresponding to each second image. Specifically, the camera that captures the object to be tracked can be determined by the following way:

[0107] The query instruction from a user visualization platform is received, wherein the query instruction is used to query the camera that captures the video image including the object to be tracked;

[0108] send the camera identifiers corresponding to the second images to the user visualization platform, so that the user visualization platform determines the camera that captures the to-be-tracked object.

[0109] In the embodiment of the present application, in addition to determining the motion track of the to-be-tracked object, the location where the to-be-tracked object appears can also be determined. For example, if the user wants to determine only the camera that captures the to-be-tracked object, the user can issue a query instruction through one or more external user visualization platforms. In response to the query instruction and after obtaining the camera identifiers corresponding to the second images, the camera identifiers corresponding to the second images can be sent to the user visualization platform that issues the query instruction, so that the user visualization platform can determine the camera that captures the to-be-tracked object according to the camera identifiers.

[0110] The object tracking method provided by the embodiment of the present application will be further described in detail below, taking the to-be-tracked object as a person and the sample image features of the to-be-tracked object including the face feature, the action feature and the clothing feature as an example, as shown in FIG. 1, the method can include the following steps: Figure 3

[0111] Step 301: obtaining a first image from the video images.

[0112] In this step, when the user needs to determine whether there is a to-be-tracked object in the video images captured by at least two cameras, first, a first image is obtained from the video images according to the sample image features obtained in advance. The sample image features are the image features of the to-be-tracked object, and the first image is an image including a target object, and the target object has at least one matching image feature with the to-be-tracked object.

[0113] For example, when the user needs to determine whether there is X (X represents a person as the to-be-tracked object) in the video images captured by at least two cameras, first, a first image is obtained from the video images according to the sample image features obtained in advance, wherein the sample image features include three feature dimensions of image features, namely the face feature, the action feature and the clothing feature.

[0114] If the similarity of the image feature of at least one feature dimension of the target object in a video image to the sample image features is greater than a preset similarity threshold (for example, 60%), the video image can be determined as the first image.

[0115] Step 302: extracting the image features of the target object in each first image.

[0116] ​In this step, the image features of the target object in each first image can be extracted by using a deep neural network (DNN). Specifically, the deep neural network can be a convolutional neural network (CNN).

[0117] Step 303: determining at least two third images from each first image.

[0118] In this step, in each first image that has been screened, the third image is further screened from the image features in all feature dimensions, and the similarity of the third image to the sample image features is greater than a preset first similarity threshold.

[0119] For example, the similarity of the image features (i.e., facial features, action features, and clothing features) of the target object in the third image to the sample image features is greater than 90%, i.e., the similarity of the facial features of the target object in the third image to the facial features of the target object to be tracked is greater than 90%, the similarity of the action features of the target object in the third image to the action features of the target object to be tracked is greater than 90%, and the similarity of the clothing features of the target object in the third image to the clothing features of the target object to be tracked is greater than 90%.

[0120] Step 304: determining at least two second images from each third image.

[0121] In this step, whether the image features of the target object in different second images match (i.e., greater than a preset second similarity threshold) is determined by clustering analysis.

[0122] For example, if the similarity is greater than a preset second similarity threshold (e.g., 90% or higher), it can be proved that the target object in the second images captured from different cameras is the same target object, i.e., the target object can be determined to be the target object to be tracked.

[0123] Step 305: determining the motion trajectory of the target object to be tracked according to the camera identifier and the time information corresponding to each second image.

[0124] In this step, the camera identifier can not only indicate the camera that captures the video image in which the second image is located, but also indicate the geographic location information of the camera. Here, it can be understood that the geographic location information of each camera has a one-to-one correspondence or mapping relationship with the respective camera identifier, so that the geographic location information of the camera can be obtained by obtaining the camera identifier. According to the chronological order of the time information, the geographic location information of different cameras is sorted, so that the motion trajectory of the target object to be tracked can be obtained.

[0125] For example, the first camera where the determined second image is located is in A area and the time information of collecting the second image is October 1, 2010, the second camera where the determined second image is located is in B area and the time information of collecting the second image is September 10, 2010, the third camera where the determined second image is located is in C area and the time information of collecting the second image is October 5, 2010, and the fourth camera where the determined second image is located is in D area and the time information of collecting the second image is October 2, 2010. According to the order of the time information, the motion track of the object to be tracked is B-A-D-C after the geographical position information of different cameras is sorted.

[0126] For example, the first camera where the determined second image is located is in A1 of A area and the time information of collecting the second image is 8:00 on October 1, 2010, the second camera where the determined second image is located is in A2 of A area and the time information of collecting the second image is 4:00 on October 1, 2010, the third camera where the determined second image is located is in B area and the time information of collecting the second image is 2:00 on October 1, 2010, and the fourth camera where the determined second image is located is in C area and the time information of collecting the second image is 10:00 on October 1, 2010. According to the order of the time information, the motion track of the object to be tracked is A(A1)-C-B-A(A2) after the geographical position information of different cameras is sorted. That is, the motion track of the object to be tracked can be accurately determined by the camera identifier and the time information of the camera where the second image is located, and if the time information is not collected, the motion track of the object to be tracked cannot be accurately determined, and only the place where the object to be tracked appears can be determined.

[0127] Step 306: sending the camera identifier corresponding to each second image to the user visualization platform.

[0128] In this step, before sending the camera identifier corresponding to each second image to the user visualization platform, the user can send a query instruction through the user visualization platform, and the query instruction is used to query the camera collecting the video image including the object to be tracked.

[0129] For example, as described in step 305, the camera identifier used to represent A, B, C and D areas or the camera identifier used to represent A(A1), A(A2), B and C areas can be sent to the user visualization platform according to the query instruction, and the user visualization platform can be a smart phone, a tablet computer, a desktop computer, a notebook computer and the like.

[0130] For example, as described in step 305, the camera identifier used to represent A, B, C and D areas or the camera identifier used to represent A(A1), A(A2), B and C areas can be sent to the user visualization platform according to the query instruction, and the user visualization platform can be a smart phone, a tablet computer, a desktop computer, a notebook computer and the like. Figure 4As shown, one embodiment of the present invention provides an object tracking device 100, comprising:

[0131] A first image acquisition module 41 is used to acquire video images captured by at least two cameras 200 in parallel, and to acquire a first image from the video images based on pre-acquired sample image features, wherein the sample image features are image features of the object to be tracked, the first image is an image including the target object, and the target object and the object to be tracked have at least one matching image feature.

[0132] An image feature extraction module 42 is used to extract image features of the target object in each first image;

[0133] A second image determination module 43 is used to determine at least two second images from each of the first images, wherein the target object in the second image is the object to be tracked;

[0134] An identification information acquisition module 44 is used to acquire the camera identification and time information corresponding to each second image, wherein the camera identification corresponding to a second image is used to indicate the camera that captured the video image in which the second image is located, and the time information corresponding to a second image is used to indicate the time when the video image in which the second image is located was captured.

[0135] A motion trajectory determination module 45 is used to determine the motion trajectory of the object to be tracked based on the camera identifier and time information corresponding to each second image.

[0136] In this embodiment of the invention, the first image acquisition module 41 can be used to perform step 101 in the above method embodiment, the image feature extraction module 42 can be used to perform step 102 in the above method embodiment, the second image determination module 43 can be used to perform step 103 in the above method embodiment, the identification information acquisition module 44 can be used to perform step 104 in the above method embodiment, and the motion trajectory determination module 45 can be used to perform step 105 in the above method embodiment.

[0137] Optionally, in Figure 4 Based on the object tracking device shown, such as Figure 5 As shown, the second image determination module 43 includes:

[0138] A third image determination unit 431 is used to determine at least two third images from each of the first images, wherein the similarity between the image features of the target object in the third image and the features of the sample image is greater than a preset first similarity threshold.

[0139] a second image determining unit 432, configured to determine at least two second images from the third images, wherein the similarity of the image features of the target object in different second images is greater than a preset second similarity threshold.

[0140] Optionally, based on the object tracking apparatus as shown in Figure 5 as shown in the figure, the third image determining unit 431 comprises: Figure 6

[0141] a first process executing sub-unit 4311, configured to create at least two parallel first processes, so that different first processes execute the following for different first images: if the similarity of the image features of the target object in the first image and the sample image features is greater than a first similarity threshold, the first image is determined as a third image;

[0142] the second image determining unit 432 comprises:

[0143] a second process executing sub-unit 4321, configured to create at least two parallel second processes, so that different second processes execute the following for different third images: if the similarity of the image features of the target object in different third images is greater than a preset second similarity threshold, the third image is determined as a second image.

[0144] Optionally, based on the object tracking apparatus as shown in Figure 6 as shown in the figure, the first image obtaining module 41 comprises: Figure 7

[0145] a first message queue buffering unit 411, configured to sequentially buffer the obtained video images into a first message queue created in advance;

[0146] a first message queue executing unit 412, configured to execute the following in a parallel manner through at least two threads when the number of the video images buffered in the first message queue reaches a preset first number threshold: obtaining a first image from the video images buffered in the first message queue according to the sample image features obtained in advance.

[0147] Optionally, based on the object tracking apparatus as shown in Figure 6 as shown in the figure, the image feature extracting module 42 comprises: Figure 7

[0148] a second message queue buffering unit 421, configured to sequentially buffer the obtained first images into a second message queue created in advance;

[0149] ​​​A second message queue execution unit 422 is configured to, when the number of the first images cached in the second message queue reaches a preset second quantity threshold, execute, in a parallel manner through at least two threads, extraction of the image features of the target object from each of the first images cached in the second message queue.

[0150] Optionally, based on the object tracking device shown in any one of Figure 6 as shown, the motion trajectory determination module 45 includes: Figure 7

[0151] A third message queue caching unit 451 is configured to sequentially cache the camera identifiers and the time information corresponding to the second images in a third message queue created in advance.

[0152] A third message queue execution unit 452 is configured to, when the camera identifiers and the time information cached in the third message queue reaches a preset third quantity threshold, execute, in a parallel manner through at least two threads, determination of the motion trajectory of the object to be tracked according to the camera identifiers and the time information cached in the third message queue.

[0153] Optionally, based on the object tracking device shown in any one of Figure 4 to Figure 7 as shown, the object tracking device 100 further includes: Figure 8

[0154] A query instruction receiving module 46 is configured to receive a query instruction from a user visualization platform, where the query instruction is used to query the camera that collects the video image including the object to be tracked.

[0155] A camera identifier sending module 47 is configured to send the camera identifiers corresponding to the second images to the user visualization platform, so that the user visualization platform determines the camera that collects the object to be tracked.

[0156] An application scenario of the object tracking device will be introduced below.

[0157] As shown in Figure 9 , in the application scenario, there are at least two cameras 200, an object tracking device 100, and at least one user visualization platform 300. The object tracking device 100 and the user visualization platform 300 can be communicatively connected through a network, which can include various connection types, such as wired, wireless communication links, or optical fiber cables, etc. A user can use the user visualization platform 300 to interact with the object tracking device 100 through the network to receive or send messages, etc.

[0158] In Figure 9 ​​In the shown application scenario, the number of cameras 200 is four, and each camera 200 is connected with a first image acquisition module 41. The first image acquisition module 41 can be embedded with a deep neural network to pre-process the video image and obtain the first image. Alternatively, two or more cameras 200 can be connected to one first image acquisition module 41, and one first image acquisition module 41 can also be integrated in one camera 200. When the first image acquisition module 41 is not integrated in the camera 200, it can exist in the form of an edge device, such as a gateway, a switch, etc.

[0159] In Figure 9 In the shown application scenario, the object tracking device 100 includes two image analysis modules 11, each of which is connected with two first image acquisition modules 41. Of course, one image analysis module 11 can also be connected with one first image acquisition module 41, but generally, one image analysis module 11 can be connected with two or more first image acquisition modules 41 due to the stronger processing capability of the image analysis module 11. In addition, each image analysis module 11 is used to extract the image features of the first image and determine at least two third images from the first images. That is, one image analysis module 11 is equivalent to an image feature extraction module 42 and a third image determination unit 431. Alternatively, the image analysis module 11 can exist in the form of an edge device, such as a gateway, a switch, or an industrial computer, etc.

[0160] In Figure 9 In the shown application scenario, the object tracking device 100 further includes two second image determination units 432, each of which is connected with two image analysis modules 11, and each image analysis module 11 is also connected with two second image determination units 432, i.e., the second image determination units 432 are connected with the image analysis modules 11 in parallel, which is conducive to reducing the time for determining the second image, thereby being conducive to ensuring the real-time performance of tracking the target object. Alternatively, the second image determination unit 432 can exist in the form of an edge device, such as a gateway, a switch, or an industrial computer, etc.

[0161] In Figure 9In the application scenario shown, the object tracking device 100 further comprises an interaction module 12 connected with the two second image determination units 432 respectively, and a motion trajectory determination module 45 also connected with the two second image determination units 432 respectively. An external user visualization platform 300 can interact with the object tracking device 100 through the interaction module 12 and / or the motion trajectory determination module 45, so that the user can directly and quickly track the target object in real time through the object tracking device 100. The interaction module 12 corresponds to a query instruction receiving module 46 and a camera identification sending module 47. Alternatively, the interaction module 12 and the motion trajectory determination module 45 can exist in the form of an edge device, such as a gateway, a switch, or an industrial computer, etc.

[0162] Of course, Figure 9 The first image acquisition module 41, the image analysis module 11, the second image determination unit 432, the interaction module 12, and the motion trajectory determination module 45 in the object tracking device 100 shown can also exist in the form of an edge device, such as a gateway, a switch, or an industrial computer, etc.

[0163] As Figure 10 As shown, an embodiment of the present application provides an object tracking device 400, comprising: at least one memory 48 and at least one processor 49;

[0164] The at least one memory 48 is configured to store executable instructions;

[0165] The at least one processor 49 is coupled with the at least one memory 48, and when executing the executable instructions, is configured to:

[0166] acquire at least two video images collected by cameras in a parallel manner, and acquire a first image from the video images according to pre-acquired sample image features, wherein the sample image features are image features of a to-be-tracked object, the first image is an image including a target object, and the target object has at least one matched image feature with the to-be-tracked object;

[0167] extract image features of the target object in each first image;

[0168] determine at least two second images from the first images, wherein the target object in the second image is the to-be-tracked object;

[0169] acquire camera identification and time information corresponding to each second image, wherein the camera identification corresponding to a second image is used to indicate a camera collecting a video image in which the second image is located, and the time information corresponding to a second image is used to indicate a time of collecting a video image in which the second image is located.

[0170] According to the camera identifier and the time information corresponding to each second image, a motion trajectory of the to-be-tracked object is determined.

[0171] Optionally, based on the object tracking apparatus shown in the first aspect, the at least one processor 49 is further configured to, when executing the executable instructions: Figure 10

[0172] At least two third images are determined from the first images, wherein the image features of the target object in the third images have a similarity to the sample image features greater than a preset first similarity threshold;

[0173] At least two second images are determined from the third images, wherein the image features of the target object in different second images have a similarity greater than a preset second similarity threshold.

[0174] Optionally, based on the object tracking apparatus shown in the first aspect, the at least one processor 49 is further configured to, when executing the executable instructions: Figure 10 At least two parallel first processes are created, such that different first processes execute for different first images: if the image features of the target object in the first image have a similarity to the sample image features greater than the first similarity threshold, the first image is determined as a third image;

[0175] At least two parallel second processes are created, such that different second processes execute for different third images: if the image features of the target object in different third images have a similarity greater than a preset second similarity threshold, the third image is determined as a second image.

[0176] Optionally, based on the object tracking apparatus shown in the first aspect, the at least one processor 49 is further configured to, when executing the executable instructions:

[0177] Figure 10 The obtained video images are sequentially cached in a first message queue created in advance;

[0178] When the number of video images cached in the first message queue reaches a preset first number threshold, at least two threads are used to execute in a parallel manner: according to the sample image features obtained in advance, first images are obtained from the video images cached in the first message queue.

[0179]

[0180] Optionally, based on the object tracking apparatus shown in the first aspect, the at least one processor 49 is further configured to, when executing the executable instructions: Figure 10

[0181] ​​​​cache the acquired first images sequentially into a second message queue created in advance;

[0182] When the number of the first images cached in the second message queue reaches a preset second number threshold, execute in parallel by at least two threads: extracting image features of the target object from each of the first images cached in the second message queue.

[0183] Optionally, on the basis of the object tracking device shown in the figure, the at least one processor 49 is further configured to, when executing the executable instructions: Figure 10

[0184] cache the camera identifiers and time information corresponding to the acquired second images sequentially into a third message queue created in advance;

[0185] When the number of the camera identifiers and time information cached in the third message queue reaches a preset third number threshold, execute in parallel by at least two threads: determining the motion trajectory of the object to be tracked according to the camera identifiers and time information cached in the third message queue.

[0186] Optionally, on the basis of the object tracking device shown in the figure, the at least one processor 49 is further configured to, when executing the executable instructions: Figure 10

[0187] receive a query instruction from a user visualization platform, wherein the query instruction is used to query the camera that collects the video image including the object to be tracked;

[0188] send the camera identifiers corresponding to the second images to the user visualization platform, so that the user visualization platform determines the camera that collects the object to be tracked.

[0189] The present application also provides a computer readable medium storing instructions for causing a machine to perform the object tracking method as described herein. Specifically, a system or device equipped with a storage medium can be provided, on which a software program code realizing the functions of any one of the above embodiments is stored, and the computer (or CPU or MPU) of the system or device reads out and executes the program code stored in the storage medium.

[0190] In this case, the program code read from the storage medium itself realizes the functions of any one of the above embodiments, and therefore the program code and the storage medium storing the program code constitute a part of the present application.

[0191] ​​The storage medium for providing the program code includes floppy disks, hard disks, magneto-optical disks, optical disks (such as CD-ROM, CD-R, CD-RW, DVD-ROM, DVD-RAM, DVD-RW, DVD+RW), magnetic tapes, nonvolatile memory cards and ROMs. Alternatively, the program code can be downloaded from a server computer via a communication network.

[0192] Further, it should be understood that not only the program code read by the computer can be executed, but also the operating system or the like operating on the computer can be caused to perform part or all of the actual operation based on the instructions of the program code, thereby realizing the function of any one of the above-described embodiments.

[0193] Further, it should be understood that the program code read by the storage medium can be written into the memory provided in the expansion board inserted into the computer or the memory provided in the expansion module connected to the computer, and then part or all of the actual operation can be performed based on the instructions of the program code by the CPU or the like installed on the expansion board or the expansion module, thereby realizing the function of any one of the above-described embodiments.

[0194] It should be noted that not all the steps and modules in the above-described flowcharts and system structure diagrams are necessary, and some steps or modules can be omitted according to actual needs. The execution order of the steps is not fixed and can be adjusted according to needs. The system structure described in the above-described embodiments can be a physical structure or a logical structure, that is, some modules can be implemented by the same physical entity, or some modules can be implemented by multiple physical entities, or some modules can be implemented by some components in multiple independent devices.

[0195] In the above-described embodiments, the hardware modules can be implemented by mechanical or electrical means. For example, a hardware module can include permanent and dedicated circuitry or logic (such as a dedicated processor, FPGA or ASIC) to perform the corresponding operation. The hardware module can also include programmable logic or circuitry (such as a general-purpose processor or other programmable processor) which can be temporarily set by software to perform the corresponding operation. The specific implementation method (mechanical method, or dedicated permanent circuit, or temporarily set circuit) can be determined based on cost and time considerations.

[0196] The above has been described and illustrated in detail by the drawings and preferred embodiments, however, the present application is not limited to these disclosed embodiments, and based on the above-described embodiments, those skilled in the art can know that the code review means in the above-described different embodiments can be combined to obtain more embodiments of the present application, and these embodiments are also within the protection scope of the present application.

Claims

1. A method of object tracking, characterized by, The application is applied to an edge device, and comprises the following steps: acquiring video images collected by at least two cameras in a parallel manner, and acquiring first images from the video images according to pre-acquired sample image features, wherein the sample image features are image features of a to-be-tracked object, the first images are images including target objects, and the target objects have at least one matched image feature with the to-be-tracked object; extracting image features of the target objects in each first image; determining at least two second images from the first images, wherein the target objects in the second images are the to-be-tracked object; acquiring camera identifiers and time information corresponding to each second image, wherein the camera identifier corresponding to a second image is used to indicate a camera of a video image in which the second image is collected, and the time information corresponding to a second image is used to indicate a time of a video image in which the second image is collected; determining a motion trajectory of the to-be-tracked object according to the camera identifiers and the time information corresponding to the second images; the step of determining at least two second images from the first images comprises the following steps: determining at least two third images from the first images, wherein the similarity of the image features of the target objects in the third images to the sample image features is greater than a preset first similarity threshold; determining at least two second images from the third images, wherein the similarity of the image features of the target objects in different second images is greater than a preset second similarity threshold; the step of determining at least two third images from the first images comprises the following steps: creating at least two parallel first processes, so that different first processes perform the following operation on different first images: if the similarity of the image features of the target objects in the first image to the sample image features is greater than the first similarity threshold, the first image is determined as the third image; the step of determining at least two second images from the third images comprises the following steps: creating at least two parallel second processes, so that different second processes perform the following operation on different third images: if the similarity of the image features of the target objects in different third images is greater than the preset second similarity threshold, the third image is determined as the second image.

2. The method of claim 1, wherein, the step of acquiring first images from the video images according to pre-acquired sample image features comprises the following steps: sequentially caching the acquired video images in a pre-created first message queue; when the number of the video images cached in the first message queue reaches a preset first number threshold, performing the following operation in a parallel manner through at least two threads: acquiring first images from the video images cached in the first message queue according to the pre-acquired sample image features.

3. The method of claim 1, wherein, the step of extracting image features of the target objects in each first image comprises the following steps: sequentially caching the acquired first images in a pre-created second message queue; When the number of the first images cached in the second message queue reaches a preset second quantity threshold, extracting image features of the target object in each of the first images cached in the second message queue is performed in parallel by at least two threads.

4. The method of claim 1, wherein, The method further includes: Caching the camera identifier and the time information corresponding to each of the second images in a third message queue in sequence; When the number of the camera identifiers and the time information cached in the third message queue reaches a preset third quantity threshold, determining the motion trajectory of the object to be tracked according to the camera identifiers and the time information cached in the third message queue is performed in parallel by at least two threads.

5. The method according to any one of claims 1 to 4, characterized in that, The method further includes: Receiving a query instruction from a user visualization platform, wherein the query instruction is used to query a camera that captures a video image including the object to be tracked; Sending the camera identifier corresponding to each of the second images to the user visualization platform, so that the user visualization platform determines the camera that captures the object to be tracked.

6. Object tracking apparatus (100), characterized in that The method is applied to an edge device and includes: a first image acquisition module (41) configured to acquire video images captured by at least two cameras (200) in parallel and acquire first images from the video images according to pre-acquired sample image features, wherein the sample image features are image features of an object to be tracked, the first images are images including a target object, and the target object has at least one matching image feature with the object to be tracked; an image feature extraction module (42) configured to extract image features of the target object in each of the first images; a second image determination module (43) configured to determine at least two second images from the first images, wherein the target object in the second images is the object to be tracked; an identifier information acquisition module (44) configured to acquire a camera identifier and time information corresponding to each of the second images, wherein the camera identifier corresponding to a second image is used to indicate a camera (200) that captures a video image in which the second image is located, and the time information corresponding to the second image is used to indicate a time at which the video image in which the second image is located is captured; a motion trajectory determination module (45) configured to determine a motion trajectory of the object to be tracked according to the camera identifier and the time information corresponding to each of the second images. The second image determination module (43) includes: a third image determination unit (431) configured to determine at least two third images from the first images, wherein a similarity between an image feature of the target object in a third image and the sample image feature is greater than a preset first similarity threshold; a second image determination unit (432) configured to determine at least two second images from the third images, wherein a similarity between image features of the target object in different second images is greater than a preset second similarity threshold; The third image determining unit (431) comprises: a first process execution subunit (4311) configured to create at least two parallel first processes, so that different first processes execute the following operation for different first images: if the similarity of the image features of the target object in the first image to the sample image features is greater than a first similarity threshold, the first image is determined as a third image; The second image determining unit (432) comprises: a second process execution subunit (4321) configured to create at least two parallel second processes, so that different second processes execute the following operation for different third images: if the similarity of the image features of the target object in the different third images is greater than a preset second similarity threshold, the third image is determined as a second image.

7. An object tracking apparatus (400) characterized by, comprise: at least one memory (48) and at least one processor (49); The at least one memory (48) is configured to store a machine readable program; The at least one processor (49) is configured to invoke the machine readable program and execute the method in any one of claims 1 to 5.

8. A computer readable medium characterized by The computer readable medium stores computer instructions, and the computer instructions make the processor execute the method in any one of claims 1 to 5 when executed by the processor.

Citation Information

Patent Citations

  • Monitoring method and system, identification method and related device

    CN108600707A

  • Character tracking method, system and server

    CN111242077A