WO2023062754A1 - 物体追跡処理装置、物体追跡処理方法及び非一時的なコンピュータ可読媒体 - Google Patents

物体追跡処理装置、物体追跡処理方法及び非一時的なコンピュータ可読媒体 Download PDF

Info

Publication number
WO2023062754A1
WO2023062754A1 PCT/JP2021/037921 JP2021037921W WO2023062754A1 WO 2023062754 A1 WO2023062754 A1 WO 2023062754A1 JP 2021037921 W JP2021037921 W JP 2021037921W WO 2023062754 A1 WO2023062754 A1 WO 2023062754A1
Authority
WO
WIPO (PCT)
Prior art keywords
tracking
group
similar
tracked
person
Prior art date
Application number
PCT/JP2021/037921
Other languages
English (en)
French (fr)
Inventor
智史 山崎
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to PCT/JP2021/037921 priority Critical patent/WO2023062754A1/ja
Publication of WO2023062754A1 publication Critical patent/WO2023062754A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments

Definitions

  • the present disclosure relates to an object tracking processing device, an object tracking processing method, and a non-transitory computer-readable medium.
  • Patent Document 1 describes a system that detects an object appearing in a video and tracks the same object over successive frames (MOT (Multi Object Tracking)).
  • MOT Multi Object Tracking
  • Patent Document 1 since the same object is determined based on the non-spatiotemporal similarity of the object, a tracking result that is contrary to spatiotemporal constraints is obtained, and the tracking accuracy is reduced.
  • An object of the present disclosure is to provide an object tracking processing device, an object tracking processing method, and a non-transitory computer-readable medium that can improve the tracking accuracy of an object appearing in a video in view of the above problems. .
  • An object tracking processing apparatus of the present disclosure includes an object grouping processing unit that calculates at least one similar object group including at least one object similar to a tracked object based on at least a feature amount of the tracked object; and an object tracking unit that assigns a tracking ID for identifying an object belonging to the similar object group to the object.
  • the object tracking processing method of the present disclosure includes an object grouping processing step of calculating at least one similar object group including at least one object similar to the object to be tracked based on at least the feature amount of the object to be tracked; and an object tracking step of assigning a tracking ID for identifying the object to an object belonging to the similar object group.
  • Another object tracking processing method of the present disclosure includes steps of detecting an object to be tracked in the frame and a feature amount of the object to be tracked each time a frame constituting an image is input; calculating at least one similar object group including at least one object similar to the tracked object based on at least the feature quantity of the detected tracked object by referring to the section; a step of storing the position of the detected object to be tracked, the detection time of the object, the feature amount of the object, and a group ID identifying the group to which the object belongs in the object feature amount storage unit; storing the position of the detected object to be tracked, the detection time of the object, and a group ID identifying the group to which the object belongs in an object group information storage unit; , referring to the object group information storage unit, and executing a batch process of assigning a tracking ID identifying an object to an object belonging to the similar object group.
  • a non-transitory computer-readable medium of the present disclosure is an object grouping process of calculating at least one similar object group including at least one object similar to a tracked object based on at least a feature amount of the tracked object. and an object tracking step of assigning a tracking ID for identifying the object to an object belonging to the similar object group.
  • an object tracking processing device an object tracking processing method, and a non-transitory computer-readable medium that can improve the tracking accuracy of an object appearing in a video.
  • FIG. 1 is a schematic configuration diagram of an object tracking processing device 1;
  • FIG. 4 is a flowchart of an example of the operation of the object tracking processing device 1;
  • FIG. 3 is an image diagram of the first stage of processing executed by the object tracking processing device 1;
  • FIG. 5 is an image diagram of a second stage of processing executed by the object tracking processing device 1;
  • 2 is a block diagram showing the configuration of an object tracking processing device 1 according to a second embodiment;
  • FIG. 4 is a flowchart of processing for grouping objects detected by the object detection unit 10.
  • FIG. FIG. 5 is an image diagram of a process of grouping objects detected by the object detection unit 10;
  • FIG. 5 is an image diagram of a process of grouping objects detected by the object detection unit 10;
  • Each of the object tracking units 50A to 50C performs in parallel a process of assigning a tracking ID for identifying an object to an object belonging to a similar object group (similar object group different from each other).
  • It is a figure representing. 4 is a flowchart of processing for assigning a tracking ID for identifying an object to an object belonging to a similar object group calculated by the object grouping processing unit 20.
  • FIG. 10 is an image diagram of a process of assigning a tracking ID for identifying an object to an object belonging to a similar object group calculated by the object grouping processing unit 20; It is an example of a matrix (table) used in the process of assigning a tracking ID for identifying an object to an object belonging to the similar object group calculated by the object grouping processing unit 20 . It is a hardware configuration example of the object tracking processing device 1 (information processing device).
  • FIG. 1 is a schematic configuration diagram of the object tracking processing device 1.
  • FIG. 1 is a schematic configuration diagram of the object tracking processing device 1.
  • an object tracking processing device 1 calculates at least one similar object group including at least one object similar to the object to be tracked based on at least the feature amount of the object to be tracked.
  • a grouping processing unit 20 and an object tracking unit 50 that assigns tracking IDs to objects belonging to a similar object group are provided.
  • FIG. 2 is a flowchart of an example of the operation of the object tracking processing device 1.
  • the object grouping processing unit 20 calculates at least one similar object group including at least one object similar to the tracked object based on at least the feature amount of the tracked object (step S1).
  • the object tracking unit 50 assigns tracking IDs to objects belonging to the similar object group (step S2).
  • Embodiment 1 it is possible to improve the accuracy of tracking an object appearing in a video.
  • the object tracking processing device 1 is a device that detects all objects appearing in a single image and tracks the same object across successive frames (MOT (Multi Object Tracking)).
  • a single image refers to an image input from one camera 70 (see FIG. 12) or one image file (not shown).
  • a frame is an individual frame (hereinafter also referred to as an image) that constitutes a single video.
  • the object tracking processing device 1 executes two stages of processing.
  • FIG. 3A is an image diagram of the first stage of processing executed by the object tracking processing device 1.
  • FIG. 3A is an image diagram of the first stage of processing executed by the object tracking processing device 1.
  • the object tracking processing device 1 executes processing (online processing) of detecting a tracked object in a frame and classifying the detected tracked object into similar object groups.
  • This processing is processing that utilizes the non-spatiotemporal similarity of objects.
  • FIG. 3A shows that as a result of performing the first-stage processing on frames 1 to 3, each tracked object (persons U1 to U4) is classified into three similar object groups G1 to G3. .
  • FIG. 3B is an image diagram of the second-stage processing executed by the object tracking processing device 1.
  • the object tracking processing device 1 assigns, for each similar object group classified by the first stage of processing, a tracking ID that identifies the object to an object belonging to the similar object group (batch processing ). At that time, the object tracking processing device 1 utilizes spatio-temporal similarity to determine the same object. (see the rectangular frame drawn by the dotted line in FIG. 3B). This processing is processing using spatio-temporal similarity.
  • FIG. 4 is a block diagram showing the configuration of the object tracking processing device 1 according to the second embodiment.
  • the object tracking processing device 1 includes an object detection unit 10, an object grouping processing unit 20, an object feature amount information storage unit 30, an object group information storage unit 40, an object tracking unit 50, an object tracking information storage unit. 60.
  • the object detection unit 10 executes processing for detecting a tracked object (the position of the tracked object) in a frame that constitutes a single image and the feature amount of the tracked object.
  • This processing is online processing that is executed each time a frame is input.
  • This processing is realized by executing predetermined image processing on the frame.
  • Various existing algorithms can be used as the predetermined image processing.
  • the object detected by the object detection unit 10 is, for example, a moving object (moving object) such as a person, a vehicle, or a motorcycle. An example in which the object detected by the object detection unit 10 is a person will be described below.
  • a feature amount is an object feature amount (ReID), and is data with which a similarity score between two objects can be calculated by comparison.
  • ReID object feature amount
  • the position of the object detected by the object detection unit 10 is, for example, coordinates of a rectangular frame surrounding the object detected by the object detection unit 10 .
  • the feature amount of an object detected by the object detection unit 10 is, for example, the feature amount of a person's face or the feature amount of a person's skeleton.
  • the object detection unit 10 may be built in the camera 70 (see FIG. 12), or may be provided outside the camera 70 .
  • the object grouping processing unit 20 refers to the object feature amount information storage unit 30, and based on at least the feature amount of the tracked object, identifies at least one similar object including at least one object similar to the tracked object. Execute processing to calculate an object group. At that time, the object grouping processing unit 20 uses the non-spatiotemporal similarity of objects (for example, similarity of facial feature data or similarity of human feature data) to are classified into similar object groups (clustering). This processing is online processing that is executed each time the object detection unit 10 detects an object. As clustering algorithms, data clustering/grouping techniques based on similarity to data over a wide time interval, such as DBSCAN, k-means, and agglomerative clustering can be used.
  • the object grouping processing unit 20 refers to the object feature amount information storage unit 30 and searches for similar objects similar to the object detected by the object detection unit 10 . At that time, all stored in the object feature amount information storage unit 30 (for example, feature amounts for all frames) may be searched, or a part stored in the object feature amount information storage unit 30 (for example, , and feature amounts for 500 frames stored within 30 seconds from the current time) may be searched.
  • all stored in the object feature amount information storage unit 30 for example, feature amounts for all frames
  • a part stored in the object feature amount information storage unit 30 for example, and feature amounts for 500 frames stored within 30 seconds from the current time
  • the object grouping processing unit 20 assigns the group ID of the similar object to the object detected by the object detection unit 10. Specifically, the object grouping processing unit 20 stores the position of the object, the detection time of the object, the feature amount of the object, and the group ID that identifies the similar object group to which the object belongs to the object feature amount information storage unit 30. Store. If no similar object is retrieved, a newly numbered group ID is assigned.
  • the object feature amount information storage unit 30 stores, for each object detected by the object detection unit 10, the position of the object, the detection time of the object, the feature amount of the object, and the group ID assigned to the object. . Since the object feature amount information storage unit 30 is frequently accessed by the object grouping processing unit 20, it is desirable that it be a storage device (memory or the like) that can be read and written at high speed.
  • the object group information storage unit 40 stores information about objects belonging to similar object groups. Specifically, the object group information storage unit 40 stores, for each object detected by the object detection unit 10, the position of the object, the detection time of the object, and the group ID that identifies the similar object group to which the object belongs. be done. Note that the object group information storage unit 40 may further store the feature amount of the object. Since the object group information storage unit 40 is accessed less frequently than the object feature amount information storage unit 30, it does not have to be a storage device (such as a memory) that can be read and written at high speed. For example, the object group information storage unit 40 may be a hard disk device.
  • the object tracking unit 50 executes a process of assigning a tracking ID for identifying an object to an object belonging to the similar object group calculated by the object grouping processing unit 20.
  • a tracking ID is an identifier assigned to the same object over successive frames.
  • This processing is batch processing of a time cycle (time cycle) that is executed each time a predetermined time (for example, 5 minutes) elapses.
  • This batch processing is a process of acquiring information on objects belonging to updated similar object groups from the object group information storage unit 40 and assigning tracking IDs to objects belonging to the similar object groups based on the acquired information. .
  • the object tracking unit 50 utilizes the spatio-temporal similarity to determine the same object, for example, the overlap between the detected position of the object and the predicted position of the tracked object, and the online detection based on IoU (Intersection over Union). track.
  • the Hungarian method can be used.
  • the Hungarian method is an algorithm that calculates the cost from the degree of overlap between the predicted positions of the detected object and the tracked object, and determines the allocation that minimizes the cost.
  • the Hungarian method will be discussed further below. Note that this algorithm is not limited to the Hungarian method, and other algorithms such as the greedy method can also be used. It should be noted that not only the spatio-temporal similarity but also the non-spatio-temporal similarity may be used in the same object determination by the object tracking unit 50 .
  • Each object tracking unit 50 executes in parallel a process of assigning a tracking ID for identifying an object to an object belonging to a similar object group (one similar object group different from each other) that each object tracking unit 50 is in charge of.
  • the process of allocating tracking IDs for identifying the objects to objects belonging to the similar object groups is executed in parallel. can be done.
  • the tracking ID assigned by the object tracking unit 50 is stored in the object tracking information storage unit 60.
  • the object tracking information storage unit 60 stores, for each object, the position of the object, the detection time of the object, and the group ID that identifies the similar object group to which the object belongs. Since the object tracking information storage unit 60 is accessed less frequently than the object feature amount information storage unit 30, it does not have to be a storage device (such as a memory) that can be read and written at high speed.
  • the object tracking information storage unit 60 may be a hard disk device.
  • FIG. 5 is a flowchart of processing for grouping objects detected by the object detection unit 10.
  • FIG. 6 and 7 are image diagrams of processing for grouping objects detected by the object detection unit 10.
  • FIG. 5 is a flowchart of processing for grouping objects detected by the object detection unit 10.
  • FIG. 6 and 7 are image diagrams of processing for grouping objects detected by the object detection unit 10.
  • frames forming a single image captured by the camera 70 are sequentially input to the object detection unit 10 .
  • frame 1, frame 2, frame 3, it is assumed that frame 1, frame 2, frame 3, .
  • nothing is stored in the object feature amount information storage unit 30, the object group information storage unit 40, and the object tracking information storage unit 60 at first.
  • the following processing is executed for each frame (each time a frame is input).
  • the object detection unit 10 detects an object to be tracked in the frame 1 (image), and detects (calculates) the feature amount of the object to be tracked. (Step S10).
  • frame 1 an image including persons U1 to U4
  • persons U1 to U4 in frame 1 are detected as objects to be tracked (step S100), and the detection It is assumed that the feature amounts of each of the persons U1 to U4 are detected.
  • the object grouping processing unit 20 refers to the object feature amount information storage unit 30 for each object detected in step S10, and searches for similar objects having a similarity score higher than the threshold 1 (step S11).
  • Threshold 1 is a threshold representing the lower limit of the similarity score.
  • all stored in the object feature amount information storage unit 30 for example, feature amounts for all frames
  • a part stored in the object feature amount information storage unit 30 for example, , and feature amounts for 500 frames stored within 30 seconds from the current time
  • deterioration of the freshness of the feature amount is suppressed by making a part (for example, the feature amount of 500 frames stored within 30 seconds from the present time) stored in the object feature amount information storage unit 30 the search target. can do.
  • step S100 For example, for the person U1 detected in step S10 (step S100), similar objects are not retrieved even if the process of step S11 is executed. This is because nothing is stored in the object feature amount information storage unit 30 at this point (see step S101 in FIG. 6).
  • the object grouping processing unit 20 determines whether or not the number of similar objects in the search results in step S11 is equal to or greater than threshold 2 (step S12).
  • Threshold 2 is a threshold representing the lower limit of the number of similar objects.
  • step S12 determines whether the person U1 detected in step S10 is a person U1 detected in step S10 is a person U1 detected in step S10. Even if the process of step S11 is executed, no similar object is retrieved, so the determination result of step S12 is No.
  • the object grouping processing unit 20 numbers the group ID (for example, 1) of the new object (person U1) for the person U1 detected in step S10 (step S13), and this numbered group
  • the ID and related information position of person U1, detection time of person U1 are associated with each other and stored in the object group information storage unit 40 (step S14, step S102 in FIG. 6).
  • the object grouping processing unit 20 associates the group ID numbered in step S13 and related information (the position of the person U1, the detection time of the person U1, the feature amount of the person U1) with each other, and stores the object feature amount information storage unit 30. (see step S103 in FIG. 6).
  • step S10 when the process of step S11 is executed, the person U1 is searched as a similar object. This is because the group ID of the person U1 and related information (the position of the person U1, the detection time of the person U1, the feature amount of the person U1) are stored in the object feature amount information storage unit 30 at this point (FIG. 6). (see step S104). Therefore, the determination result of step S12 is Yes (when the threshold value 2 is 0).
  • the object grouping processing unit 20 determines whether or not all similar objects in the search results in step S11 have the same group ID (step S15).
  • step S10 Regarding the person U2 detected in step S10, the similar objects (person U1) in the search results in step S11 all have the same group ID, so the determination result in step S15 is Yes.
  • the object grouping processing unit 20 sets the group ID of the similar object (person U1) detected in step S11 and related information (position of person U2, detection time of person U2). ) are associated with each other and stored in the object group information storage unit 40 (step S14, step S105 in FIG. 6). Further, the object grouping processing unit 20 associates the group ID of the similar object (person U1) detected in step S11 and related information (the position of person U1, the detection time of person U1, the feature amount of person U1) with each other to group the object. Stored in the feature amount information storage unit 30 (see step S106 in FIG. 6).
  • step S10 for the person U3 detected in step S10, even if the process of step S11 is executed, no similar object is retrieved, so the determination result of step S12 is No.
  • the object grouping processing unit 20 numbers the group ID (for example, 2) of the new object (person U3) for the person U3 detected in step S10 (step S13), and the numbered group
  • the ID and related information (the position of the person U3, the detection time of the person U3) are associated with each other and stored in the object group information storage unit 40 (step S14, step S108 in FIG. 6).
  • the object grouping processing unit 20 associates the group ID numbered in step S13 and related information (the position of the person U3, the detection time of the person U3, the feature amount of the person U3) with each other, and stores the object feature amount information storage unit 30. (see step S109 in FIG. 6).
  • step S10 For the person U4 detected in step S10, even if the process of step S11 is executed, similar objects are not retrieved, so the determination result of step S12 is No.
  • the object grouping processing unit 20 numbers the group ID (for example, 3) of the new object (person U4) for the person U4 detected in step S10 (step S13), and this numbered group
  • the ID and related information (the position of the person U4, the detection time of the person U4) are associated with each other and stored in the object group information storage unit 40 (step S14, step S111 in FIG. 6).
  • the object grouping processing unit 20 associates the group ID numbered in step S13 and related information (the position of the person U4, the detection time of the person U4, the feature amount of the person U4) with each other, and stores the object feature amount information storage unit 30. (not shown).
  • the object detection unit 10 detects an object to be tracked in frame 2 (image), and executes processing for detecting (calculating) the feature amount of the object to be tracked. (Step S10).
  • frame 2 (an image including persons U1 to U4) is input, and persons U1 to U4 in frame 2 are detected as objects to be tracked (step S200). It is assumed that the feature amounts of each of the persons U1 to U4 are detected.
  • the object grouping processing unit 20 refers to the object feature amount information storage unit 30 for each object detected in step S10, and searches for similar objects having a similarity score higher than the threshold 1 (step S11).
  • Threshold 1 is a threshold representing the lower limit of the similarity score.
  • all stored in the object feature amount information storage unit 30 for example, feature amounts for all frames
  • a part stored in the object feature amount information storage unit 30 for example, , and feature amounts for 500 frames stored within 30 seconds from the current time
  • deterioration of the freshness of the feature amount is suppressed by making a part (for example, the feature amount of 500 frames stored within 30 seconds from the present time) stored in the object feature amount information storage unit 30 the search target. can do.
  • step S200 For example, for person U1 detected in step S10 (step S200), when the process of step S11 is executed, persons U1 and U2 are searched as similar objects.
  • the object feature amount information storage unit 30 stores the group ID of person U1 and related information (position of person U1, detection time of person U1, feature amount of person U1) and group ID of person U2 and related information (person This is because the position of U2, the detection time of person U2, the feature amount of person U2) are stored (see step S201 in FIG. 6). Therefore, the determination result of step S12 is Yes (when the threshold value 2 is 0).
  • the object grouping processing unit 20 determines whether or not all similar objects in the search results in step S11 have the same group ID (step S15).
  • step S10 Regarding the person U1 detected in step S10 (step S200), the similar objects (persons U1 and U2) in the search results in step S11 all have the same group ID, so the determination result in step S15 is Yes.
  • the object grouping processing unit 20 sets the group ID of the similar objects (persons U1 and U2) detected in step S11 and related information (the position of person U1). , detection time of the person U1) are associated with each other and stored in the object group information storage unit 40 (step S14, step S202 in FIG. 6). Further, the object grouping processing unit 20 associates the group IDs of the similar objects (persons U1 and U2) detected in step S11 and related information (position of person U1, detection time of person U1, feature amount of person U1). and stores it in the object feature amount information storage unit 30 (see step S203 in FIG. 7).
  • step S11 If the similar objects (persons U1, U2, and U3) retrieved in step S11 do not all have the same group ID, for example, the group ID of person U1 is 1, the group ID of person U2 is 2, and the group ID of person U2 is 2.
  • the determination result of step S15 is No.
  • the object grouping processing unit 20 executes processing for integrating group IDs. Specifically, the object grouping processing unit 20 integrates the group IDs of the search results, and stores the integrated group IDs in the object group information storage unit 40 (step S16).
  • the object grouping processing unit 20 obtains the integrated group ID and related information (the position of the person U1, the person U1 detection time) are associated with each other and stored in the object group information storage unit 40 (step S14).
  • the object grouping processing unit 20 stores the integrated group ID and related information (the position of the person U1, the detection time of the person U1, the feature amount of the person U1) in the object feature amount information storage unit 30 in association with each other. The same is true for the persons U2 and U3.
  • step S200 when the process of step S11 is executed, persons U1 and U2 are searched as similar objects.
  • the object feature amount information storage unit 30 stores the group ID of person U1 and related information (position of person U1, detection time of person U1, feature amount of person U1) and group ID of person U2 and related information (person This is because the position of U2, the detection time of person U2, the feature amount of person U2) are stored (see step S204 in FIG. 7). Therefore, the determination result of step S12 is Yes (when the threshold value 2 is 0).
  • the object grouping processing unit 20 determines whether or not all similar objects in the search results in step S11 have the same group ID (step S15).
  • step S10 Regarding the person U2 detected in step S10 (step S200), the similar objects (persons U1 and U2) in the search results in step S11 all have the same group ID, so the determination result in step S15 is Yes.
  • the object grouping processing unit 20 sets the group ID of the similar objects (persons U1 and U2) detected in step S11 and related information (the position of person U2). , the detection time of the person U2) are associated with each other and stored in the object group information storage unit 40 (step S14, step S205 in FIG. 7). In addition, the object grouping processing unit 20 associates the group IDs of the similar objects (persons U1 and U2) detected in step S11 and related information (position of person U2, detection time of person U2, feature amount of person U2). and stores it in the object feature amount information storage unit 30 (see step S206 in FIG. 7).
  • step S200 when the process of step S11 is executed, the person U3 is searched as a similar object. This is because the group ID of the person U3 and related information (the position of the person U3, the detection time of the person U3, the feature amount of the person U3) are stored in the object feature amount information storage unit 30 at this point (FIG. 7). (see step S207). Therefore, the determination result of step S12 is Yes (when the threshold value 2 is 0).
  • the object grouping processing unit 20 determines whether or not all similar objects in the search results in step S11 have the same group ID (step S15).
  • step S10 Regarding the person U3 detected in step S10 (step S200), the similar objects (person U3) in the search results in step S11 all have the same group ID, so the determination result in step S15 is Yes.
  • the object grouping processing unit 20 determines the group ID of the similar object (person U3) detected in step S11 and related information (the position of the person U3, the person detection time of U3) are associated with each other and stored in the object group information storage unit 40 (step S14, step S208 in FIG. 7). In addition, the object grouping processing unit 20 associates the group ID of the similar object (person U3) detected in step S11 and related information (the position of person U3, the detection time of person U3, the feature amount of person U3) with each other to create an object group. Stored in the feature amount information storage unit 30 (see step S209 in FIG. 7).
  • step S200 when the process of step S11 is executed, the person U4 is searched as a similar object. This is because the group ID of the person U4 and related information (the position of the person U4, the detection time of the person U4, the feature amount of the person U4) are stored in the object feature amount information storage unit 30 at this point (FIG. 7). (see step S210). Therefore, the determination result of step S12 is Yes (when the threshold value 2 is 0).
  • the object grouping processing unit 20 determines whether or not all similar objects in the search results in step S11 have the same group ID (step S15).
  • step S10 Regarding the person U4 detected in step S10 (step S200), the similar objects (person U4) found in the search results in step S11 all have the same group ID, so the determination result in step S15 is Yes.
  • the object grouping processing unit 20 sets the group ID of the similar object (person U4) detected in step S11 and related information (the position of the person U4, the person detection time of U4) are associated with each other and stored in the object group information storage unit 40 (step S14, step S211 in FIG. 7).
  • the object grouping processing unit 20 associates the group ID of the similar object (person U4) detected in step S11 and related information (position of person U4, time of detection of person U4, feature amount of person U4) with each other to create an object group. Stored in the feature amount information storage unit 30 (not shown).
  • the group ID and related information of each object detected in step S10 are stored in the object feature amount information storage unit 30 and the object group information storage unit 40 every moment. To go.
  • FIG. 5 An example has been described above in which the processing of the flowchart shown in FIG. 5 is executed for each successive frame such as frame 1, frame 2, frame 3, . . . , but the present invention is not limited to this.
  • the processing of the flowchart shown in FIG. 5 may be executed for each of the frames that are skipped by one (or a plurality of frames) such as frame 1, frame 3, frame 5, and so on. This makes it possible to improve throughput.
  • the process of assigning a tracking ID for identifying the object to the object belonging to the similar object group calculated by the object grouping processing unit 20 (second stage process) will be described. This processing is executed by the object tracking unit 50 .
  • the same number of object tracking units 50 as the similar object groups calculated by the object grouping processing unit 20 exist (the same number of object groups are generated). For example, when three similar object groups are formed as a result of executing the processing of the flowchart in FIG. 5, three object tracking units 50A to 50C are present (generated) as shown in FIG. In FIG. 8, each of the object tracking units 50A to 50C executes in parallel a process of allocating a tracking ID for identifying an object to an object belonging to a similar object group (similar object group different from each other). It shows how it is.
  • the object tracking unit 50A executes a process of assigning tracking IDs for identifying objects to objects (here, persons U1 and U2) belonging to a first similar object group (here, a similar object group with a group ID of 1). .
  • the object tracking unit 50B executes a process of assigning a tracking ID for identifying an object (here, person U3) belonging to a second similar object group (here, a similar object group with a group ID of 2).
  • the object tracking unit 50C executes a process of assigning a tracking ID for identifying the object to the object (here, person U4) belonging to the third similar object group (here, the similar object group whose group ID is 3). These processes are executed in parallel.
  • FIG. 9 is a flowchart of processing for assigning a tracking ID for identifying an object to an object belonging to the similar object group calculated by the object grouping processing unit 20.
  • FIG. 10 is an image diagram of a process of assigning a tracking ID for identifying an object to an object belonging to the similar object group calculated by the object grouping processing unit 20.
  • Updated means that when the same group ID and related information as the group ID already stored in the object group information storage unit 40 are additionally stored, a new group ID and related information are added to the object group information storage unit 40. This includes the case where the process of step S16 (the process of integrating the group IDs) is executed and the process result is stored in the object group information storage unit 40 (step S14). Note that if there is no update, the process of the flowchart shown in FIG. 9 is not executed even after a predetermined period of time (for example, 5 minutes) has passed.
  • a predetermined period of time for example, 5 minutes
  • the object tracking unit 50A unassigns the tracking ID of the object group information acquired in step S20 (step S21).
  • step S24 the object tracking unit 50A determines whether or not the next frame exists.
  • the determination result of step S24 is Yes.
  • the object tracking unit 50A determines whether the current frame (frame to be processed) is frame 1 (step S25).
  • the determination result in step S25 is Yes.
  • the object tracking unit 50A predicts the position of the assigned tracked object in the next frame, taking into consideration the current position of the object (step S26).
  • the object tracking unit 50A predicts the positions in the next frame (frame 2) of each of the persons U1 and U2 who belong to the similar object group whose group ID is 1 in frame 1 (first frame).
  • this prediction algorithm for example, one disclosed in https://arxiv.org/abs/1602.00763 (code: https://github.com/abewley/sort, GPL v3) can be used.
  • the positions of two rectangular frames A1 and A2 drawn by dotted lines in frame 2 in FIG. 10 are predicted as the predicted positions of persons U1 and U2.
  • the object tracking unit 50A assigns new tracking IDs to objects that are not assigned or whose cost is higher than threshold 3 (step S27).
  • Threshold 3 is a threshold representing the upper limit of the cost calculated from the overlap of the object regions and the object similarity.
  • step S24 the object tracking unit 50A determines whether or not the next frame exists.
  • the determination result of step S24 is Yes.
  • the object tracking unit 50A determines whether the current frame (frame to be processed) is frame 1 (step S25).
  • the determination result in step S25 is No.
  • the object tracking unit 50A acquires all the object information of the current frame (frame 2) and the predicted positions of the objects (people U1, U2) tracked up to the previous frame (frame 1) (step S28).
  • the positions of two rectangular frames A1 and A2 drawn by dotted lines in frame 2 in FIG. shall be
  • the object tracking unit 50 assigns the tracking ID of the tracked object to the current object by the Hungarian method using the object area overlap and the object similarity as cost functions (step S29). For example, the cost is calculated from the degree of overlap between the predicted positions of the detected object and the tracked object, and the allocation that minimizes the cost is determined.
  • FIG. 11 is an example of a matrix (table) used in the process of assigning tracking IDs for identifying objects belonging to similar object groups calculated by the object grouping processing unit 20 .
  • "Detection 1", “Detection 2", “Tracking 1", and “Tracking 2" in this matrix have the following meanings.
  • the two rectangular frames A1 and A2 drawn with dotted lines in frame 2 represent the predicted positions of the objects (people U1 and U2) predicted in the previous frame (frame 1).
  • One of the two rectangular frames A1 and A2 represents “tracking 1" and the other represents "tracking 2".
  • two rectangular frames A3 and A4 drawn with solid lines in frame 2 represent the positions of the objects (people U1 and U2) detected in the current frame (frame 2).
  • One of the two rectangular frames A3 and A4 represents “detection 1" and the other represents “detection 2".
  • the matrix (table) shown in FIG. 11 is a 2 ⁇ 2 matrix, it is not limited to this, and may be an N1 ⁇ N2 matrix other than 2 ⁇ 2 depending on the number of objects.
  • N1 and N2 is an integer of 1 or more.
  • 0.5 described at the intersection of “tracking 1” and “detection 1” is the predicted position representing “tracking 1” (one rectangular frame A1 drawn with a dotted line in frame 2 in FIG. 10) and This is a numerical value obtained by subtracting the degree of overlap (overlapping area)/2 with the position representing "detection 1" (one rectangular frame A3 drawn with a solid line in frame 2 in FIG. 10) from 1.0.
  • this number is 0, it means that both positions completely overlap, and when it is 1, it means that both positions do not overlap at all.
  • a smaller value (closer to 0) indicates a higher degree of overlap between the two positions, and a larger value (closer to 1) indicates a smaller degree of overlap between the two positions.
  • the object tracking unit 50A predicts the position of the assigned tracked object in the next frame, taking into consideration the current position of the object (step S26).
  • the object tracking unit 50A predicts the positions in the next frame (frame 3) of each of the persons U1 and U2 who belong to the similar object group whose group ID is 1 in frame 2.
  • the positions of two rectangular frames A5 and A6 drawn by dotted lines in frame 3 in FIG. 10 are predicted as the predicted positions of the persons U1 and U2.
  • the object tracking unit 50A assigns new tracking IDs to objects that are not assigned or whose cost is higher than threshold 3 (step S27).
  • Threshold 3 is a threshold representing the upper limit of the cost calculated from the overlap of the object regions and the object similarity.
  • step S26 is not executed.
  • step S24 the object tracking unit 50A determines whether or not the next frame exists.
  • the determination result of step S24 is Yes.
  • the object tracking unit 50A determines whether the current frame (frame to be processed) is frame 1 (step S25).
  • the determination result in step S25 is No.
  • the object tracking unit 50A acquires all object information in the current frame (frame 3) and the predicted positions of the objects (people U1 and U2) tracked up to the previous frame (frame 2) (step S28).
  • the positions of two rectangular frames A5 and A6 drawn by dotted lines in frame 3 in FIG. 10 are acquired as predicted positions of objects (people U1 and U2). shall be
  • the object tracking unit 50A assigns the tracking ID of the tracked object to the current object by the Hungarian method using the object area overlap and the object similarity as cost functions (step S29).
  • the object tracking unit 50A determines the allocation that minimizes the cost (high degree of overlap). Specifically, the object tracking unit 50A assigns the tracking ID of "tracking 1" with the lowest cost as the tracking ID of detection 1 (for example, person U1). In this case, the object tracking unit 50A associates the assigned tracking ID and related information (the position of the person U1, the detection time of the person U1) with each other and stores them in the object tracking information storage unit 60 for the person U1.
  • the object tracking unit 50A assigns the tracking ID of "tracking 2" with the lowest cost as the tracking ID of detection 2 (for example, person U2). In this case, the object tracking unit 50A associates the assigned tracking ID and related information (the position of the person U2, the detection time of the person U2) with each other and stores them in the object tracking information storage unit 60 for the person U2.
  • FIG. 12 is a block diagram showing a hardware configuration example of the object tracking processing device 1 (information processing device).
  • the object tracking processing device 1 is an information processing device such as a server including a processor 80, a memory 81, a storage device 82, and the like.
  • a server may be a physical machine or a virtual machine.
  • one camera 70 is connected to the object tracking processing device 1 via a communication line (for example, the Internet).
  • the processor 80 functions as the object detection unit 10, the object grouping processing unit 20, and the object tracking unit 50 by executing software (computer program) read from a memory 81 such as a RAM. These functions may be implemented in one server, or may be distributed and implemented in a plurality of servers. Even when distributed and implemented in a plurality of servers, the processing of each of the above flowcharts can be realized by the plurality of servers communicating with each other via a communication line (for example, the Internet). A part or all of these functions may be realized by hardware.
  • a communication line for example, the Internet
  • the processor 80 may be, for example, a microprocessor, MPU (Micro Processing Unit), or CPU (Central Processing Unit).
  • MPU Micro Processing Unit
  • CPU Central Processing Unit
  • a processor may include multiple processors.
  • the memory 81 is configured by a combination of volatile memory and nonvolatile memory.
  • the memory may include storage remotely located from the processor.
  • the processor may access memory through an I/O interface, not shown.
  • the storage device 82 is, for example, a hard disk device.
  • the memory is used to store software modules.
  • the processor can perform processing such as the object tracking processing device described in the above embodiments.
  • the object feature amount information storage unit, the object group information storage unit, and the object tracking information storage unit may be provided in one server, or may be distributed among a plurality of servers.
  • a frequently appearing person in near-real time can be obtained.
  • discovery can be realized. For example, by referring to the object tracking information storage unit 60, it is possible to easily find an object (for example, a person) that frequently appears in a specific place for a specific period. For example, it is possible to list the top 20 people who have frequently visited the office in the last seven days from the present.
  • tracking loss can be improved by matching the same object over a wide range of frames and times.
  • object tracking that considers spatiotemporal similarity requires sequential processing in chronological order. Therefore, it is impossible to improve the throughput by parallelizing the processing for each input.
  • a tracking ID for identifying the object is assigned to the object belonging to the similar object group. Processing can be performed in parallel. This makes it possible to improve throughput. That is, by minimizing the sequential processing portion in chronological order in the overall processing flow, it is possible to improve the throughput by parallelizing most of the processing.
  • tracking only by non-spatial similarity causes erroneous tracking that violates spatio-temporal constraints and degrades tracking accuracy.
  • the second embodiment by executing the two-step processing as described above, it is possible to improve the accuracy of tracking an object that appears in the video.
  • Non-transitory computer-readable media include various types of tangible storage media.
  • Examples of non-transitory computer-readable media include magnetic recording media (eg, floppy disks, magnetic tapes, hard disk drives), magneto-optical recording media (eg, magneto-optical disks).
  • Further examples of non-transitory computer readable media include CD-ROMs (Read Only Memory), CD-Rs, and CD-R/Ws.
  • Further examples of non-transitory computer-readable media include semiconductor memory.
  • the semiconductor memory includes, for example, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, and RAM (Random Access Memory).
  • the program may also be delivered to the computer on various types of transitory computer readable medium.
  • Examples of transitory computer-readable media include electrical signals, optical signals, and electromagnetic waves.
  • Transitory computer-readable media can deliver the program to the computer via wired channels, such as wires and optical fibers, or wireless channels.
  • Reference Signs List 1 ... Object tracking processing device 10
  • Object detection unit 20 ...
  • Object grouping processing unit 30 ...
  • Object feature amount information storage unit 40 ...
  • Object group information storage unit 50 (50A to 50B).
  • Object tracking unit 60 ...
  • Object tracking information storage unit 70 ... camera 80 ; processor 81 ... memory 82 ... storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

物体追跡処理装置(1)であって、追跡対象の物体の少なくとも特徴量に基づいて、当該追跡対象の物体に類似する少なくとも1つの物体を含む少なくとも1つの類似物体グループを算出する物体グルーピング処理部(20)と、前記類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる物体追跡部(50)と、を備える。これにより、映像中で出現する物体の追跡精度を向上させることができる。

Description

物体追跡処理装置、物体追跡処理方法及び非一時的なコンピュータ可読媒体
 本開示は、物体追跡処理装置、物体追跡処理方法及び非一時的なコンピュータ可読媒体に関する。
 映像中で出現する物体を検出し、次々刻々のフレームに跨って同一の物体を追跡(MOT(Multi Object Tracking))するシステムが例えば特許文献1に記載されている。
国際公開第2021/140966号公報
 しかしながら、特許文献1においては、物体の非時空間的な類似性により同一物体を判定する構成であるため、時空間的に制約に反した追跡結果がでてしまい、追跡精度が低下するという課題がある。
 本開示の目的は、上述した課題を鑑み、映像中で出現する物体の追跡精度を向上させることができる物体追跡処理装置、物体追跡処理方法及び非一時的なコンピュータ可読媒体を提供することにある。
 本開示の物体追跡処理装置は、追跡対象の物体の少なくとも特徴量に基づいて、当該追跡対象の物体に類似する少なくとも1つの物体を含む少なくとも1つの類似物体グループを算出する物体グルーピング処理部と、前記類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる物体追跡部と、を備える。
 本開示の物体追跡処理方法は、追跡対象の物体の少なくとも特徴量に基づいて、当該追跡対象の物体に類似する少なくとも1つの物体を含む少なくとも1つの類似物体グループを算出する物体グルーピング処理ステップと、前記類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる物体追跡ステップと、を備える。
 本開示の別の物体追跡処理方法は、映像を構成するフレームが入力されるごとに、当該フレーム中の追跡対象の物体及び当該追跡対象の物体の特徴量を検出するステップと、物体特徴量記憶部を参照することにより、前記検出された追跡対象の物体の少なくとも前記特徴量に基づいて、当該追跡対象の物体に類似する少なくとも1つの物体を含む少なくとも1つの類似物体グループを算出するステップと、前記検出された追跡対象の物体について、当該物体の位置、当該物体の検出時刻、当該物体の特徴量、当該物体が属するグループを識別するグループIDを前記物体特徴量記憶部に格納するステップと、前記検出された追跡対象の物体について、当該物体の位置、当該物体の検出時刻、当該物体が属するグループを識別するグループIDを物体グループ情報記憶部に格納するステップと、予め定められた周期ごとに、前記物体グループ情報記憶部を参照し、前記類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てるバッチ処理を実行するステップと、を備える。
 本開示の非一時的なコンピュータ可読媒体は、追跡対象の物体の少なくとも特徴量に基づいて、当該追跡対象の物体に類似する少なくとも1つの物体を含む少なくとも1つの類似物体グループを算出する物体グルーピング処理ステップと、前記類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる物体追跡ステップと、をコンピュータに実行させるためのプログラムを記録した非一時的なコンピュータ可読媒体である。
 本開示により、映像中で出現する物体の追跡精度を向上させることができる物体追跡処理装置、物体追跡処理方法及び非一時的なコンピュータ可読媒体を提供することができる。
物体追跡処理装置1の概略構成図である。 物体追跡処理装置1の動作の一例のフローチャートである。 物体追跡処理装置1が実行する1段階目の処理のイメージ図である。 物体追跡処理装置1が実行する2段階目の処理のイメージ図である。 実施形態2にかかる物体追跡処理装置1の構成を示すブロック図である。 物体検出部10が検出した物体をグルーピングする処理のフローチャートである。 物体検出部10が検出した物体をグルーピングする処理のイメージ図である。 物体検出部10が検出した物体をグルーピングする処理のイメージ図である。 各々の物体追跡部50A~50Cが、各々が担当する類似物体グループ(互いに異なる1つの類似物体グループ)に属する物体に当該物体を識別する追跡IDを割り当てる処理を並列的に実行している様子を表す図である。 物体グルーピング処理部20が算出した類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる処理のフローチャートである。 物体グルーピング処理部20が算出した類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる処理のイメージ図である。 物体グルーピング処理部20が算出した類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる処理において用いられる行列(表)の例である。 物体追跡処理装置1(情報処理装置)のハードウェア構成例である。
 (実施形態1)
 まず、図1を用いて、実施形態1の物体追跡処理装置1の構成例について説明する。
 図1は、物体追跡処理装置1の概略構成図である。
 図1に示すように、物体追跡処理装置1は、追跡対象の物体の少なくとも特徴量に基づいて、当該追跡対象の物体に類似する少なくとも1つの物体を含む少なくとも1つの類似物体グループを算出する物体グルーピング処理部20と、類似物体グループに属する物体に追跡IDを割り当てる物体追跡部50と、を備える。
 次に、上記物体追跡処理装置1の動作の一例について説明する。
 図2は、物体追跡処理装置1の動作の一例のフローチャートである。
 まず、物体グルーピング処理部20が、追跡対象の物体の少なくとも特徴量に基づいて、当該追跡対象の物体に類似する少なくとも1つの物体を含む少なくとも1つの類似物体グループを算出する(ステップS1)。
 次に、物体追跡部50が、類似物体グループに属する物体に追跡IDを割り当てる(ステップS2)。
 以上説明したように、実施形態1によれば、映像中で出現する物体の追跡精度を向上させることができる。
 これは、フレーム中の追跡対象の物体を検出し、当該検出された追跡対象の物体を類似物体グループに分類する処理(非時空間的な類似性を利用した処理)、及びこの分類された類似物体グループごとに、当該類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる処理(空間的な類似性を利用した処理)の二段階の処理を実行することによるものである。すなわち、広範なフレーム・時間を対象にした同一物体の照合と時空間的な類似性の考慮を両立することで高い追跡精度を実現することができる。
 (実施形態2)
 以下、本開示の実施形態2として、物体追跡処理装置1について詳細に説明する。実施形態2は、実施形態1を具体的にした実施形態である。
 まず、物体追跡処理装置1の概要について説明する。
 物体追跡処理装置1は、単一映像中で出現するすべての物体を検出し、次々刻々のフレームに跨って同一の物体を追跡(MOT(Multi Object Tracking))する装置である。単一映像とは、1つのカメラ70(図12参照)又は1つの映像ファイル(図示せず)から入力される映像をいう。フレームとは、単一映像を構成する個々のフレーム(以下、画像とも呼ぶ)をいう。
 物体追跡処理装置1は、二段階の処理を実行する。
 図3Aは、物体追跡処理装置1が実行する1段階目の処理のイメージ図である。
 物体追跡処理装置1は、1段階目の処理として、フレーム中の追跡対象の物体を検出し、当該検出された追跡対象の物体を類似物体グループに分類する処理(オンライン処理)を実行する。この処理は、物体の非時空間的な類似性を利用した処理である。図3Aは、フレーム1~3に対して1段階目の処理が実行された結果、各々の追跡対象の物体(人物U1~U4)が3つの類似物体グループG1~G3に分類されたことを表す。
 図3Bは、物体追跡処理装置1が実行する2段階目の処理のイメージ図である。
 物体追跡処理装置1は、2段階目の処理として、1段目の処理により分類された類似物体グループごとに、当該類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる処理(バッチ処理)を実行する。その際、物体追跡処理装置1は、時空間的な類似性を利用して、同一物体判定する処理、例えば、物体の検出位置(図3B中の実線で描いた矩形の枠参照)と追跡物体の予測位置(図3B中の点線で描いた矩形の枠参照)の重なり、IoU(Intersection over Union)に基づくオンライン追跡を行う。この処理は、時空間的な類似性を利用した処理である。
 以上のように二段階の処理を実行することにより、物体の非時空間的な類似性又は時空間的な類似性のいずれか一方を利用した処理では実現することができない高い追跡精度を実現することができる。また、追跡対象の物体を類似物体グループに分類することにより、この類似物体グループごとに、当該類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる処理を並列的に実行することができる。これにより、スループットの向上を実現することができる。
 次に、物体追跡処理装置1の詳細について説明する。
 図4は、実施形態2にかかる物体追跡処理装置1の構成を示すブロック図である。
 図4に示すように、物体追跡処理装置1は、物体検出部10、物体グルーピング処理部20、物体特徴量情報記憶部30、物体グループ情報記憶部40、物体追跡部50、物体追跡情報記憶部60を備えている。
 物体検出部10は、単一映像を構成するフレーム中の追跡対象の物体(追跡対象の物体の位置)及び当該追跡対象の物体の特徴量を検出する処理を実行する。この処理は、フレームが入力されるごとに実行されるオンライン処理である。この処理は、フレームに対して所定の画像処理を実行することにより実現される。所定の画像処理としては、既存の各種アルゴリズムを用いることができる。物体検出部10が検出する物体は、例えば、人物、車両、自動二輪車等の移動体(移動物体)である。以下、物体検出部10が検出する物体が人物である例について説明する。特徴量とは、物体特徴量(ReID)で、比較することで2つの物体間の類似度スコアを算出できるデータをいう。物体検出部10が検出する物体の位置は、例えば、物体検出部10が検出した物体を囲む矩形の枠の座標である。物体検出部10が検出する物体の特徴量は、例えば、人物の顔の特徴量、人物の骨格の特徴量である。物体検出部10は、カメラ70(図12参照)に内蔵されていてもよいし、カメラ70外部に設けられていてもよい。
 物体グルーピング処理部20は、物体特徴量情報記憶部30を参照することにより、追跡対象の物体の少なくとも特徴量に基づいて、当該追跡対象の物体に類似する少なくとも1つの物体を含む少なくとも1つの類似物体グループを算出する処理を実行する。その際、物体グルーピング処理部20は、物体の非時空間的な類似性(例えば、顔特徴データの類似性又は人型特徴データの類似性)を利用して、物体検出部10が検出した物体を類似物体グループに分類する処理(クラスタリング)を実行する。この処理は、物体検出部10が物体を検出するごとに実行されるオンライン処理である。クラスタリングアルゴリズムとしては、広範な時間間隔でのデータとの類似性に基づくデータクラスタリング・グルーピング技術、例えば、DBSCAN、k-means、凝集型クラスタリングを用いることができる。
 具体的には、物体グルーピング処理部20は、物体特徴量情報記憶部30を参照し、物体検出部10が検出した物体に類似する類似物体を検索する。その際、物体特徴量情報記憶部30に記憶されている全て(例えば、全フレーム分の特徴量)を検索対象としてもよいし、物体特徴量情報記憶部30に格納されている一部(例えば、現時点から30秒以内に格納された500フレーム分の特徴量)を検索対象としてもよい。
 上記検索の結果、類似物体が検索された場合、物体グルーピング処理部20は、物体検出部10が検出した物体に当該類似物体のグループIDを割り当てる。具体的には、物体グルーピング処理部20は、当該物体の位置、当該物体の検出時刻、当該物体の特徴量、当該物体が属する類似物体グループを識別するグループIDを物体特徴量情報記憶部30に格納する。なお、類似物体が検索されない場合、新規に採番されたグループIDが割り当てられる。
 物体特徴量情報記憶部30には、物体検出部10が検出した物体ごとに、当該物体の位置、当該物体の検出時刻、当該物体の特徴量、当該物体に割り当てられたグループIDが格納される。物体特徴量情報記憶部30は、物体グルーピング処理部20から頻繁にアクセスされるため、高速に読み書きできる記憶装置(メモリ等)であるのが望ましい。
 物体グループ情報記憶部40には、類似物体グループに属する物体に関する情報が格納される。具体的には、物体グループ情報記憶部40には、物体検出部10が検出した物体ごとに、当該物体の位置、当該物体の検出時刻、当該物体が属する類似物体グループを識別するグループIDが格納される。なお、物体グループ情報記憶部40には、さらに、当該物体の特徴量が格納されてもよい。物体グループ情報記憶部40は、物体特徴量情報記憶部30と比べ、頻繁にアクセスされないため、高速に読み書きできる記憶装置(メモリ等)でなくてもよい。例えば、物体グループ情報記憶部40は、ハードディスク装置であってもよい。
 物体追跡部50は、物体グルーピング処理部20が算出した類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる処理を実行する。追跡IDとは、次々刻々のフレームに跨って同一の物体に割り当てられる識別子をいう。この処理は、予め定められた時間(例えば、5分)が経過するごとに実行される時間周期(時刻周期)のバッチ処理である。このバッチ処理は、物体グループ情報記憶部40から更新があった類似物体グループに属する物体に関する情報を取得し、当該取得した情報に基づいて、類似物体グループに属する物体に追跡IDを割り当てる処理である。その際、物体追跡部50は、時空間的な類似性を利用して、同一物体判定する処理、例えば、物体の検出位置と追跡物体の予測位置の重なり、IoU(Intersection over Union)に基づくオンライン追跡を行う。このアルゴリズムとしては、例えば、ハンガリアン法を用いることができる。ハンガリアン法は、検出物体と追跡物体の予測位置の重なり度などからコストを算出、コスト最小となる割当を決定するアルゴリズムである。ハンガリアン法についてはさらに後述する。なお、このアルゴリズムとしては、ハンガリアン法に限らず、他のアルゴリズム、例えば、貧欲法を用いることもできる。なお、物体追跡部50の同一物体判定では時空間的な類似性だけでなく非時空間的な類似性を利用してもよい。
 物体追跡部50は、物体グルーピング処理部20が算出した類似物体グループと同数存在する(同数生成される)。各々の物体追跡部50は、各々が担当する類似物体グループ(互いに異なる1つの類似物体グループ)に属する物体に当該物体を識別する追跡IDを割り当てる処理を並列的に実行する。このように、本実施形態においては、物体グルーピング処理部20が複数の類似物体グループを算出した場合、類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる処理を並列的に実行することができる。なお、類似物体グループに属する物体は、1つの場合もあるし、複数の場合もある。例えば、図3Aにおいては、類似物体グループG1には二人の人物U1、U2が属しており、類似物体グループG2には一人の人物U3が属しており、類似物体グループG3には一人の人物U4が属している。
 物体追跡情報記憶部60には、物体追跡部50が割り当てた追跡IDが格納される。具体的には、物体追跡情報記憶部60には、物体ごとに、当該物体の位置、当該物体の検出時刻、当該物体が属する類似物体グループを識別するグループIDが格納される。物体追跡情報記憶部60は、物体特徴量情報記憶部30と比べ、頻繁にアクセスされないため、高速に読み書きできる記憶装置(メモリ等)でなくてもよい。例えば、物体追跡情報記憶部60は、ハードディスク装置であってもよい。
 次に、物体追跡処理装置1の動作例として、類似人型をグルーピングする処理(1段階目の処理)について説明する。
 図5は、物体検出部10が検出した物体をグルーピングする処理のフローチャートである。図6、図7は、物体検出部10が検出した物体をグルーピングする処理のイメージ図である。
 以下、前提として、物体検出部10には、カメラ70(図12参照)により撮像された単一映像を構成するフレームが逐次入力されているものとする。例えば、物体検出部10には、フレーム1、フレーム2、フレーム3・・・がこの順に順次入力されているものとする。また、物体特徴量情報記憶部30、物体グループ情報記憶部40、物体追跡情報記憶部60には、当初、何も記憶されていないものとする。
 以下の処理は、フレームごとに(フレームが入力されるごとに)実行される。
 まず、フレーム1が入力された場合の処理について説明する。
 まず、物体検出部10は、フレーム1が入力されると、当該フレーム1(画像)中の追跡対象の物体を検出し、当該追跡対象の物体の特徴量を検出(算出)する処理を実行する(ステップS10)。
 ここでは、図6に示すように、フレーム1(人物U1~U4を含む画像)が入力され、追跡対象の物体として、当該フレーム1中の人物U1~U4が検出され(ステップS100)、当該検出された人物U1~U4それぞれの特徴量が検出されたものとする。
 次に、物体グルーピング処理部20は、ステップS10で検出された物体ごとに、物体特徴量情報記憶部30を参照し、閾値1よりも高い類似度スコアを持つ類似物体を検索する(ステップS11)。閾値1は、類似度スコアの下限を表す閾値である。その際、物体特徴量情報記憶部30に記憶されている全て(例えば、全フレーム分の特徴量)を検索対象としてもよいし、物体特徴量情報記憶部30に格納されている一部(例えば、現時点から30秒以内に格納された500フレーム分の特徴量)を検索対象としてもよい。なお、物体特徴量情報記憶部30に格納されている一部(例えば、現時点から30秒以内に格納された500フレーム分の特徴量)を検索対象とすることにより、特徴量の鮮度劣化を抑制することができる。
 例えば、ステップS10(ステップS100)で検出された人物U1については、ステップS11の処理を実行しても、類似物体は検索されない。この時点で、物体特徴量情報記憶部30には何も記憶されていないためである(図6中のステップS101参照)。
 次に、物体グルーピング処理部20は、ステップS11での検索結果の類似物体数が閾値2以上であるか否かを判定する(ステップS12)。閾値2は、類似物体数の下限を表す閾値である。
 ステップS10で検出された人物U1については、ステップS11の処理を実行しても、類似物体は検索されないため、ステップS12の判定結果がNoとなる。
 この場合、物体グルーピング処理部20は、ステップS10で検出された人物U1については、新しい物体(人物U1)のグループID(例えば、1)を採番し(ステップS13)、この採番されたグループID及び関連情報(人物U1の位置、人物U1の検出時刻)を互いに関連付けて物体グループ情報記憶部40に格納する(ステップS14、図6中のステップS102)。また、物体グルーピング処理部20は、ステップS13で採番されたグループID及び関連情報(人物U1の位置、人物U1の検出時刻、人物U1の特徴量)を互いに関連付けて物体特徴量情報記憶部30に格納する(図6中のステップS103参照)。
 一方、ステップS10で検出された人物U2については、ステップS11の処理を実行すると、類似物体として人物U1が検索される。この時点で、物体特徴量情報記憶部30には人物U1のグループID及び関連情報(人物U1の位置、人物U1の検出時刻、人物U1の特徴量)が格納されているためである(図6中のステップS104参照)。そのため、ステップS12の判定結果がYesとなる(閾値2が0の場合)。
 この場合、物体グルーピング処理部20は、ステップS11での検索結果の類似物体は全て同じグループIDか否かを判定する(ステップS15)。
 ステップS10で検出された人物U2については、ステップS11での検索結果の類似物体(人物U1)は全て同じグループIDであるため、ステップS15の判定結果がYesとなる。
 この場合、物体グルーピング処理部20は、ステップS10で検出された人物U2については、ステップS11で検出された類似物体(人物U1)のグループID及び関連情報(人物U2の位置、人物U2の検出時刻)を互いに関連付けて物体グループ情報記憶部40に格納する(ステップS14、図6中のステップS105)。また、物体グルーピング処理部20は、ステップS11で検出された類似物体(人物U1)のグループID及び関連情報(人物U1の位置、人物U1の検出時刻、人物U1の特徴量)を互いに関連付けて物体特徴量情報記憶部30に格納する(図6中のステップS106参照)。
 一方、ステップS10で検出された人物U3については、ステップS11の処理を実行しても、類似物体は検索されないため、ステップS12の判定結果がNoとなる。
 この場合、物体グルーピング処理部20は、ステップS10で検出された人物U3については、新しい物体(人物U3)のグループID(例えば、2)を採番し(ステップS13)、この採番されたグループID及び関連情報(人物U3の位置、人物U3の検出時刻)を互いに関連付けて物体グループ情報記憶部40に格納する(ステップS14、図6中のステップS108)。また、物体グルーピング処理部20は、ステップS13で採番されたグループID及び関連情報(人物U3の位置、人物U3の検出時刻、人物U3の特徴量)を互いに関連付けて物体特徴量情報記憶部30に格納する(図6中のステップS109参照)。
 同様に、ステップS10で検出された人物U4については、ステップS11の処理を実行しても、類似物体は検索されないため、ステップS12の判定結果がNoとなる。
 この場合、物体グルーピング処理部20は、ステップS10で検出された人物U4については、新しい物体(人物U4)のグループID(例えば、3)を採番し(ステップS13)、この採番されたグループID及び関連情報(人物U4の位置、人物U4の検出時刻)を互いに関連付けて物体グループ情報記憶部40に格納する(ステップS14、図6中のステップS111)。また、物体グルーピング処理部20は、ステップS13で採番されたグループID及び関連情報(人物U4の位置、人物U4の検出時刻、人物U4の特徴量)を互いに関連付けて物体特徴量情報記憶部30に格納する(図示せず)。
 次に、フレーム1以降のフレーム(例えば、フレーム2)が入力された場合の処理について説明する。
 まず、物体検出部10は、フレーム2が入力されると、当該フレーム2(画像)中の追跡対象の物体を検出し、当該追跡対象の物体の特徴量を検出(算出)する処理を実行する(ステップS10)。
 ここでは、図7に示すように、フレーム2(人物U1~U4を含む画像)が入力され、追跡対象の物体として、当該フレーム2中の人物U1~U4が検出され(ステップS200)、当該検出された人物U1~U4それぞれの特徴量が検出されたものとする。
 次に、物体グルーピング処理部20は、ステップS10で検出された物体ごとに、物体特徴量情報記憶部30を参照し、閾値1よりも高い類似度スコアを持つ類似物体を検索する(ステップS11)。閾値1は、類似度スコアの下限を表す閾値である。その際、物体特徴量情報記憶部30に記憶されている全て(例えば、全フレーム分の特徴量)を検索対象としてもよいし、物体特徴量情報記憶部30に格納されている一部(例えば、現時点から30秒以内に格納された500フレーム分の特徴量)を検索対象としてもよい。なお、物体特徴量情報記憶部30に格納されている一部(例えば、現時点から30秒以内に格納された500フレーム分の特徴量)を検索対象とすることにより、特徴量の鮮度劣化を抑制することができる。
 例えば、ステップS10(ステップS200)で検出された人物U1については、ステップS11の処理を実行すると、類似物体として人物U1、U2が検索される。この時点で、物体特徴量情報記憶部30には人物U1のグループID及び関連情報(人物U1の位置、人物U1の検出時刻、人物U1の特徴量)及び人物U2のグループID及び関連情報(人物U2の位置、人物U2の検出時刻、人物U2の特徴量)が格納されているためである(図6中のステップS201参照)。そのため、ステップS12の判定結果がYesとなる(閾値2が0の場合)。
 この場合、物体グルーピング処理部20は、ステップS11での検索結果の類似物体は全て同じグループIDか否かを判定する(ステップS15)。
 ステップS10(ステップS200)で検出された人物U1については、ステップS11での検索結果の類似物体(人物U1、U2)は全て同じグループIDであるため、ステップS15の判定結果がYesとなる。
 この場合、物体グルーピング処理部20は、ステップS10(ステップS200)で検出された人物U1については、ステップS11で検出された類似物体(人物U1、U2)のグループID及び関連情報(人物U1の位置、人物U1の検出時刻)を互いに関連付けて物体グループ情報記憶部40に格納する(ステップS14、図6中のステップS202)。また、物体グルーピング処理部20は、ステップS11で検出された類似物体(人物U1、U2)のグループID及び関連情報(人物U1の位置、人物U1の検出時刻、人物U1の特徴量)を互いに関連付けて物体特徴量情報記憶部30に格納する(図7中のステップS203参照)。
 なお、仮に、ステップS11での検索結果の類似物体(人物U1、U2、U3)が全て同じグループIDでない場合、例えば、人物U1のグループIDが1で、人物U2のグループIDが2で、人物U3のグループIDが3の場合、ステップS15の判定結果がNoとなる。この場合、物体グルーピング処理部20は、グループIDを統合する処理を実行する。具体的には、物体グルーピング処理部20は、検索結果のグループIDを統合し、統合された後のグループIDを物体グループ情報記憶部40に格納する(ステップS16)。例えば、物体グルーピング処理部20は、グループIDが2の類似物体グループに属する全ての人物(ここでは、人物U2)及びグループIDが3の類似物体グループに属する全ての人物(ここでは、人物U3)をグループID=1に変更する。
 これにより、処理途中で誤って別の類似物体グループ(データクラスタ)に分類されていた人物(データ)を同一の類似物体グループに統合することができる。
 このように、グループIDを統合する処理が実行された場合、物体グルーピング処理部20は、ステップS10で検出された人物U1については、統合されたグループID及び関連情報(人物U1の位置、人物U1の検出時刻)を互いに関連付けて物体グループ情報記憶部40に格納する(ステップS14)。また、物体グルーピング処理部20は、統合されたグループID及び関連情報(人物U1の位置、人物U1の検出時刻、人物U1の特徴量)を互いに関連付けて物体特徴量情報記憶部30に格納する。人物U2、U3についても同様である。
 同様に、ステップS10(ステップS200)で検出された人物U2については、ステップS11の処理を実行すると、類似物体として人物U1、U2が検索される。この時点で、物体特徴量情報記憶部30には人物U1のグループID及び関連情報(人物U1の位置、人物U1の検出時刻、人物U1の特徴量)及び人物U2のグループID及び関連情報(人物U2の位置、人物U2の検出時刻、人物U2の特徴量)が格納されているためである(図7中のステップS204参照)。そのため、ステップS12の判定結果がYesとなる(閾値2が0の場合)。
 この場合、物体グルーピング処理部20は、ステップS11での検索結果の類似物体は全て同じグループIDか否かを判定する(ステップS15)。
 ステップS10(ステップS200)で検出された人物U2については、ステップS11での検索結果の類似物体(人物U1、U2)は全て同じグループIDであるため、ステップS15の判定結果がYesとなる。
 この場合、物体グルーピング処理部20は、ステップS10(ステップS200)で検出された人物U2については、ステップS11で検出された類似物体(人物U1、U2)のグループID及び関連情報(人物U2の位置、人物U2の検出時刻)を互いに関連付けて物体グループ情報記憶部40に格納する(ステップS14、図7中のステップS205)。また、物体グルーピング処理部20は、ステップS11で検出された類似物体(人物U1、U2)のグループID及び関連情報(人物U2の位置、人物U2の検出時刻、人物U2の特徴量)を互いに関連付けて物体特徴量情報記憶部30に格納する(図7中のステップS206参照)。
 同様に、ステップS10(ステップS200)で検出された人物U3については、ステップS11の処理を実行すると、類似物体として人物U3が検索される。この時点で、物体特徴量情報記憶部30には人物U3のグループID及び関連情報(人物U3の位置、人物U3の検出時刻、人物U3の特徴量)が格納されているためである(図7中のステップS207参照)。そのため、ステップS12の判定結果がYesとなる(閾値2が0の場合)。
 この場合、物体グルーピング処理部20は、ステップS11での検索結果の類似物体は全て同じグループIDか否かを判定する(ステップS15)。
 ステップS10(ステップS200)で検出された人物U3については、ステップS11での検索結果の類似物体(人物U3)は全て同じグループIDであるため、ステップS15の判定結果がYesとなる。
 この場合、物体グルーピング処理部20は、ステップS10(ステップS200)で検出された人物U3については、ステップS11で検出された類似物体(人物U3)のグループID及び関連情報(人物U3の位置、人物U3の検出時刻)を互いに関連付けて物体グループ情報記憶部40に格納する(ステップS14、図7中のステップS208)。また、物体グルーピング処理部20は、ステップS11で検出された類似物体(人物U3)のグループID及び関連情報(人物U3の位置、人物U3の検出時刻、人物U3の特徴量)を互いに関連付けて物体特徴量情報記憶部30に格納する(図7中のステップS209参照)。
 同様に、ステップS10(ステップS200)で検出された人物U4については、ステップS11の処理を実行すると、類似物体として人物U4が検索される。この時点で、物体特徴量情報記憶部30には人物U4のグループID及び関連情報(人物U4の位置、人物U4の検出時刻、人物U4の特徴量)が格納されているためである(図7中のステップS210参照)。そのため、ステップS12の判定結果がYesとなる(閾値2が0の場合)。
 この場合、物体グルーピング処理部20は、ステップS11での検索結果の類似物体は全て同じグループIDか否かを判定する(ステップS15)。
 ステップS10(ステップS200)で検出された人物U4については、ステップS11での検索結果の類似物体(人物U4)は全て同じグループIDであるため、ステップS15の判定結果がYesとなる。
 この場合、物体グルーピング処理部20は、ステップS10(ステップS200)で検出された人物U4については、ステップS11で検出された類似物体(人物U4)のグループID及び関連情報(人物U4の位置、人物U4の検出時刻)を互いに関連付けて物体グループ情報記憶部40に格納する(ステップS14、図7中のステップS211)。また、物体グルーピング処理部20は、ステップS11で検出された類似物体(人物U4)のグループID及び関連情報(人物U4の位置、人物U4の検出時刻、人物U4の特徴量)を互いに関連付けて物体特徴量情報記憶部30に格納する(図示せず)。
 なお、フレーム2以降のフレームについても、フレーム2に対するのと同様の処理が実行される。
 上記フローチャート1に記載の処理が実行されることにより、時々刻々と、ステップS10で検出された各物体のグループID及び関連情報が物体特徴量情報記憶部30及び物体グループ情報記憶部40に格納されていく。
 以上、上記図5に記載のフローチャートの処理を、フレーム1、フレーム2、フレーム3・・・のように連続するフレームそれぞれに対して実行する例について説明したが、これに限らない。例えば、上記図5に記載のフローチャートの処理を、フレーム1、フレーム3、フレーム5・・・のように1(又は複数)飛びのフレームそれぞれに対して実行してもよい。これにより、スループットの向上を実現することができる。
 次に、物体追跡処理装置1の動作例として、物体グルーピング処理部20が算出した類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる処理(2段階目の処理)について説明する。この処理は、物体追跡部50が実行する。
 物体追跡部50は、物体グルーピング処理部20が算出した類似物体グループと同数存在する(同数生成される)。例えば、上記図5のフローチャートの処理を実行した結果、3つの類似物体グループが形成された場合、図8に示すように、3つの物体追跡部50A~50Cが存在する(生成される)。図8は、各々の物体追跡部50A~50Cが、各々が担当する類似物体グループ(互いに異なる1つの類似物体グループ)に属する物体に当該物体を識別する追跡IDを割り当てる処理を並列的に実行している様子を表す。
 物体追跡部50Aは、第1類似物体グループ(ここでは、グループIDが1の類似物体グループ)に属する物体(ここでは、人物U1、U2)に当該物体を識別する追跡IDを割り当てる処理を実行する。物体追跡部50Bは、第2類似物体グループ(ここでは、グループIDが2の類似物体グループ)に属する物体(ここでは、人物U3)に当該物体を識別する追跡IDを割り当てる処理を実行する。物体追跡部50Cは、第3類似物体グループ(ここでは、グループIDが3の類似物体グループ)に属する物体(ここでは、人物U4)に当該物体を識別する追跡IDを割り当てる処理を実行する。これらの処理は、並列的に実行される。
 以下、代表して、物体追跡部50Aが第1類似物体グループ(グループIDが1の類似物体グループ)に属する物体(ここでは、人物U1、U2)に当該物体を識別する追跡IDを割り当てる処理について説明する。
 図9は、物体グルーピング処理部20が算出した類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる処理のフローチャートである。図10は、物体グルーピング処理部20が算出した類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる処理のイメージ図である。
 まず、予め定められた時間(例えば、5分)が経過すると、物体追跡部50Aは、更新があったグループID(ここでは、グループID=1。以下同様)を持つ全ての類似物体の物体グループ情報(グループID及びその関連情報)を物体グループ情報記憶部40から取得する(ステップS20)。
 「更新があった」とは、物体グループ情報記憶部40に格納済みのグループIDと同じグループID及び関連情報が追加格納された場合、物体グループ情報記憶部40に新しいグループID及び関連情報が追加格納された場合をいい、上記ステップS16の処理(グループIDを統合する処理)が実行されその処理結果が物体グループ情報記憶部40に格納された場合(ステップS14)も含む。なお、更新がなかった場合、予め定められた時間(例えば、5分)が経過しても図9に記載のフローチャートの処理は実行されない。
 次に、物体追跡部50Aは、ステップS20で取得した物体グループ情報の追跡IDを未割当にする(ステップS21)。
 次に、物体追跡部50Aは、次フレームが存在するか否かを判定する(ステップS24)。ここでは、次フレーム(フレーム2)が存在するため、ステップS24の判定結果がYesとなる。
 次に、物体追跡部50Aは、現フレーム(処理対象フレーム)はフレーム1か否かを判定する(ステップS25)。ここでは、現フレーム(処理対象フレーム)がフレーム1(最初のフレーム)であるため、ステップS25の判定結果がYesとなる。
 次に、物体追跡部50Aは、割当された追跡物体では物体の現在位置も加味して次フレームでの位置を予測する(ステップS26)。
 例えば、物体追跡部50Aは、フレーム1(最初のフレーム)中のグループIDが1の類似物体グループに属する人物U1、U2それぞれの次フレーム(フレーム2)での位置を予測する。この予測のアルゴリズムとしては、例えば、https://arxiv.org/abs/1602.00763  (code: https://github.com/abewley/sort, GPL v3)に開示されているものを用いることができる。ここでは、人物U1、U2の予測位置として、図10中、フレーム2中の点線で描いた2つの矩形の枠A1、A2の位置が予測されたものとする。
 次に、物体追跡部50Aは、割当がない又はコストが閾値3より高い物体には新しい追跡IDを採番する(ステップS27)。閾値3は、物体領域の重なりと物体類似度で算出されるコストの上限を表す閾値である。
 ここでは、フレーム1(最初のフレーム)中のグループIDが1の類似物体グループに属する人物U1は追跡IDが未割り当てであるため、物体追跡部50Aは、人物U1について、新しい追跡ID(例えば、1)を採番し(ステップS27)、この採番された新しい追跡ID(=1)及び関連情報(人物U1の位置、人物U1の検出時刻)を互いに関連付けて物体追跡情報記憶部60に格納する。同様に、フレーム1(最初のフレーム)中のグループIDが1の類似物体グループに属する人物U2は追跡IDが未割り当てであるため、物体追跡部50Aは、人物U2について、新しい追跡ID(例えば、2)を採番し(ステップS27)、この採番された新しい追跡ID(=2)及び関連情報(人物U2の位置、人物U2の検出時刻)を互いに関連付けて物体追跡情報記憶部60に格納する。
 次に、物体追跡部50Aは、次フレームが存在するか否かを判定する(ステップS24)。ここでは、次フレーム(フレーム2)が存在するため、ステップS24の判定結果がYesとなる。
 次に、物体追跡部50Aは、現フレーム(処理対象フレーム)はフレーム1か否かを判定する(ステップS25)。ここでは、現フレーム(処理対象フレーム)がフレーム2であるため、ステップS25の判定結果がNoとなる。
 次に、物体追跡部50Aは、現フレーム(フレーム2)の全ての物体情報及び前フレーム(フレーム1)まで追跡していた物体(人物U1、U2)の予測位置を取得する(ステップS28)。ここでは、物体(人物U1、U2)の予測位置として、図10中、フレーム2中の点線で描いた2つの矩形の枠A1、A2の位置(ステップS26で予測された位置)が取得されたものとする。
 次に、物体追跡部50は、物体領域の重なりと物体類似度をコスト関数としたハンガリアン法により追跡物体の追跡IDを現在物体に割り当てる(ステップS29)。例えば、検出物体と追跡物体の予測位置の重なり度などからコストを算出、コスト最小となる割当を決定する。
 ここで、ハンガリアン法により追跡物体の追跡IDを現在物体に割り当てる処理の具体例について説明する。
 この処理においては、図11に示す行列(表)が用いられる。図11は、物体グルーピング処理部20が算出した類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる処理において用いられる行列(表)の例である。この行列中の「検出1」、「検出2」、「追跡1」、「追跡2」は、次の意味である。
 すなわち、図10中、フレーム2中の点線で描いた2つの矩形の枠A1、A2は前フレーム(フレーム1)において予測された物体(人物U1、U2)の予測位置を表す。この2つの矩形の枠A1、A2のうち一方が「追跡1」を表し、他方が「追跡2」を表す。
 また、図10中、フレーム2中の実線で描いた2つの矩形の枠A3、A4は現フレーム(フレーム2)において検出された物体(人物U1、U2)の位置を表す。この2つの矩形の枠A3、A4のうち一方が「検出1」を表し、他方が「検出2」を表す。
 なお、図11に示す行列(表)は、2×2の行列であるが、これに限らず、物体の数によっては、2×2以外のN1×N2の行列となることもある。N1、N2はそれぞれ1以上の整数である。
 図11に示す行列(表)に記載の数値(以下、コストとも呼ぶ)は、次の意味である。
 例えば「追跡1」と「検出1」の交差する箇所に記載の0.5は、「追跡1」を表す予測位置(図10中フレーム2中の点線で描いた一方の矩形の枠A1)と「検出1」を表す位置(図10中フレーム2中の実線で描いた一方の矩形の枠A3)との重なり度(重なり領域)/2を1.0から減じることにより得られる数値である。この数値は、0のとき両位置が完全に重なっていることを表し、1のとき両位置が全く重なっていないことを表す。また、この数値は、小さいほど(0に近いほど)、両位置の重なり度が大きいことを表し、逆に、大きいほど(1に近いほど)、両位置の重なり度が小さいことを表す。図11に示す行列(表)に記載の他の数値(0.9、0.1)についても同様である。
 図11に示す行列(表)の場合、物体追跡部50Aは、コスト最小となる(重なり度が大きい)割り当てを決定する。具体的には、物体追跡部50Aは、検出1(例えば、人物U1)の追跡IDとして、コストが最小となる(コストが0.5となる)「追跡1」の追跡IDを割り当てる。この場合、物体追跡部50Aは、人物U1について、この割り当てた追跡ID(=1)及び関連情報(人物U1の位置、人物U1の検出時刻)を互いに関連付けて物体追跡情報記憶部60に格納する。
 一方、物体追跡部50Aは、検出2(例えば、人物U2)の追跡IDとして、コストが最小となる(コストが0.1となる)「追跡2」の追跡IDを割り当てる。この場合、物体追跡部50Aは、人物U2について、この割り当てた追跡ID(=2)及び関連情報(人物U2の位置、人物U2の検出時刻)を互いに関連付けて物体追跡情報記憶部60に格納する。
 次に、物体追跡部50Aは、割当された追跡物体では物体の現在位置も加味して次フレームでの位置を予測する(ステップS26)。
 例えば、物体追跡部50Aは、フレーム2中のグループIDが1の類似物体グループに属する人物U1、U2それぞれの次フレーム(フレーム3)での位置を予測する。ここでは、人物U1、U2の予測位置として、図10中、フレーム3の点線で描いた2つの矩形の枠A5、A6の位置が予測されたものとする。
 次に、物体追跡部50Aは、割当がない又はコストが閾値3より高い物体には新しい追跡IDを採番する(ステップS27)。閾値3は、物体領域の重なりと物体類似度で算出されるコストの上限を表す閾値である。
 ここでは、フレーム2中のグループIDが1の類似物体グループに属する人物U1、U2は追跡IDが割り当て済みであり、かつ、コストが閾値3より低いため、ステップS26の処理は実行されない。
 次に、物体追跡部50Aは、次フレームが存在するか否かを判定する(ステップS24)。ここでは、次フレーム(フレーム3)が存在するため、ステップS24の判定結果がYesとなる。
 次に、物体追跡部50Aは、現フレーム(処理対象フレーム)はフレーム1か否かを判定する(ステップ S25)。ここでは、現フレーム(処理対象フレーム)がフレーム3であるため、ステップS25の判定結果がNoとなる。
 次に、物体追跡部50Aは、現フレーム(フレーム3)の全ての物体情報及び前フレーム(フレーム2)まで追跡していた物体(人物U1、U2)の予測位置を取得する(ステップS28)。ここでは、物体(人物U1、U2)の予測位置として、図10中、フレーム3中の点線で描いた2つの矩形の枠A5、A6の位置(ステップS26で予測された位置)が取得されたものとする。
 次に、物体追跡部50Aは、物体領域の重なりと物体類似度をコスト関数としたハンガリアン法により追跡物体の追跡IDを現在物体に割り当てる(ステップS29)。
 すなわち、上述したとおり、物体追跡部50Aは、コスト最小となる(重なり度が大きい)割り当てを決定する。具体的には、物体追跡部50Aは、検出1(例えば、人物U1)の追跡IDとして、コストが最小となる「追跡1」の追跡IDを割り当てる。この場合、物体追跡部50Aは、人物U1について、この割り当てた追跡ID及び関連情報(人物U1の位置、人物U1の検出時刻)を互いに関連付けて物体追跡情報記憶部60に格納する。
 一方、物体追跡部50Aは、検出2(例えば、人物U2)の追跡IDとして、コストが最小となる「追跡2」の追跡IDを割り当てる。この場合、物体追跡部50Aは、人物U2について、この割り当てた追跡ID及び関連情報(人物U2の位置、人物U2の検出時刻)を互いに関連付けて物体追跡情報記憶部60に格納する。
 以上の処理は、次フレームが存在しなくなるまで(ステップS24:No)繰り返し実行される。
 次に、上述した実施の形態2において説明した物体追跡処理装置1(情報処理装置)のハードウェア構成例を説明する。図12は、物体追跡処理装置1(情報処理装置)のハードウェア構成例を表すブロック図である。
 図12に示すように、物体追跡処理装置1は、プロセッサ80、メモリ81、記憶装置82等を備えるサーバ等の情報処理装置である。サーバは、物理マシンであってもよいし、仮想マシンであってもよい。また、物体追跡処理装置1には、1つのカメラ70が通信線(例えば、インターネット)を介して接続されている。
 プロセッサ80は、RAM等のメモリ81から読み出されるソフトウェア(コンピュータプログラム)実行することにより、物体検出部10、物体グルーピング処理部20、物体追跡部50として機能する。これら機能は、一つのサーバに実装してもよいし、複数のサーバに分散して実装してもよい。複数のサーバに分散して実装した場合であっても、複数のサーバが通信線(例えば、インターネット)を介して互いに通信することにより、上記各フローチャートの処理を実現することができる。なお、これら機能の一部又は全部は、ハードウェアにより実現してもよい。
 また、物体追跡部50は物体グルーピング処理部20が分割した類似物体グループと同数存在する(同数生成される)が、各々の物体追跡部50は、一つのサーバに実装してもよいし、複数のサーバに分散して実装してもよい。複数のサーバに分散して実装した場合であっても、複数のサーバが通信線(例えば、インターネット)を介して互いに通信することにより、上記各フローチャートの処理を実現することができる。
 プロセッサ80は、例えば、マイクロプロセッサ、MPU(Micro Processing Unit)、又はCPU(Central Processing Unit)であってもよい。プロセッサは、複数のプロセッサを含んでもよい。
 メモリ81は、揮発性メモリ及び不揮発性メモリの組み合わせによって構成される。メモリは、プロセッサから離れて配置されたストレージを含んでもよい。この場合、プロセッサは、図示されていないI/Oインタフェースを介してメモリにアクセスしてもよい。
 記憶装置82は、例えば、ハードディスク装置である。
 図11の例では、メモリは、ソフトウェアモジュール群を格納するために使用される。プロセッサは、これらのソフトウェアモジュール群をメモリから読み出して実行することで、上述の実施形態において説明された物体追跡処理装置等の処理を行うことができる。
 物体特徴量情報記憶部、物体グループ情報記憶部、物体追跡情報記憶部は、一つのサーバに設けられていてもよいし、複数のサーバに分散して設けられていてもよい。
 以上説明したように、実施形態2によれば、映像中で出現する物体の追跡精度を向上させることができる。
 これは、フレーム中の追跡対象の物体を検出し、当該検出された追跡対象の物体を類似物体グループに分類する処理(非時空間的な類似性を利用した処理)、及びこの分類された類似物体グループごとに、当該類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる処理(空間的な類似性を利用した処理)の二段階の処理を実行することによるものである。すなわち、広範なフレーム・時間を対象にした同一物体の照合と時空間的な類似性の考慮を両立することで高い追跡精度を実現することができる。
 また、実施形態2によれば、物体グルーピング処理部20が算出した類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる処理(バッチ処理)を実行することにより、準リアルタイムでの頻出人物発見を実現することができる。例えば、物体追跡情報記憶部60を参照することにより、特定の期間、特定の場所に頻出した物体(例えば、人物)を容易に発見することができる。例えば、現在から直近7日間にオフィスに頻出した人物Top20を列挙することができる。
 また、実施形態2によれば、次の効果を奏する。
 すなわち、物体の追跡ではカメラ画角からの障害物による遮蔽などで検出漏れ・追跡逃しが発生する。これに対して、実施形態2によれば、追跡逃しは、広範なフレーム・時間を対象に同一物体の照合により改善し得る。
 また、時空間的な類似性を考慮した物体追跡には、時系列順序での逐次処理が求められる。そのため入力単位での処理並列化によるスループット向上が不可能である。これに対して、実施形態2によれば、追跡対象の物体を類似物体グループに分類することにより、この類似物体グループごとに、当該類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる処理を並列的に実行することができる。これにより、スループットの向上を実現することができる。すなわち、全体処理フローにおいて時系列順序での逐次処理部分を最小化することで、大部分の処理の並列化によるスループット向上を実現することができる。
 一方で非空間的な類似性のみでの追跡では、時空間的な制約に反した誤追跡が発生し、追跡精度が劣化する。これに対して、実施形態2によれば、上記のように二段階の処理を実行することにより、映像中で出現する物体の追跡精度を向上させることができる。
 上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)を含む。さらに、非一時的なコンピュータ可読媒体の例は、CD-ROM(Read Only Memory)、CD-R、CD-R/Wを含む。さらに、非一時的なコンピュータ可読媒体の例は、半導体メモリを含む。半導体メモリは、例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
  なお、本開示は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。また、本開示は、それぞれの実施の形態を適宜組み合わせて実施されてもよい。
1…物体追跡処理装置
10…物体検出部
20…物体グルーピング処理部
30…物体特徴量情報記憶部
40…物体グループ情報記憶部
50(50A~50B)…物体追跡部
60…物体追跡情報記憶部
70…カメラ
80…プロセッサ
81…メモリ
82…記憶装置

Claims (8)

  1.  追跡対象の物体の少なくとも特徴量に基づいて、当該追跡対象の物体に類似する少なくとも1つの物体を含む少なくとも1つの類似物体グループを算出する物体グルーピング処理部と、
     前記類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる物体追跡部と、を備える物体追跡処理装置。
  2.  前記類似物体グループに属する物体に関する情報を格納する物体グループ情報記憶部をさらに備え、
     前記物体追跡部は、予め定められた周期ごとに、バッチ処理を行い、
     前記バッチ処理は、前記物体グループ情報記憶部から更新があった前記類似物体グループに属する物体に関する情報を取得し、当該取得した情報に基づいて、前記類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる処理である請求項1に記載の物体追跡処理装置。
  3.  前記物体追跡部は、前記類似物体グループごとに設けられ、
     各々の前記物体追跡部は、各々が担当する類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる処理を並列的に実行する請求項1又は2に記載の物体追跡処理装置。
  4.  前記物体追跡部が割り当てた前記追跡IDが格納される物体追跡情報記憶部をさらに備える請求項1から3のいずれか1項に記載の物体追跡処理装置。
  5.  映像を構成する各々のフレーム中の前記追跡対象の物体及び当該追跡対象の物体の特徴量を検出する物体検出部と、
     前記物体検出部が検出した物体ごとに、当該物体の位置、当該物体の検出時刻、当該物体の特徴量、当該物体に割り当てられたグループIDを格納する物体特徴量記憶部と、をさらに備え、
     前記物体グルーピング処理部は、前記物体特徴量記憶部の一部又は全部を参照することにより、前記追跡対象の物体の少なくとも特徴量に基づいて、当該追跡対象の物体に類似する少なくとも1つの物体を含む少なくとも1つの類似物体グループを算出する請求項1から4のいずれか1項に記載の物体追跡処理装置。
  6.  追跡対象の物体の少なくとも特徴量に基づいて、当該追跡対象の物体に類似する少なくとも1つの物体を含む少なくとも1つの類似物体グループを算出する物体グルーピング処理ステップと、
     前記類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる物体追跡ステップと、を備える物体追跡処理方法。
  7.  映像を構成するフレームが入力されるごとに、当該フレーム中の追跡対象の物体及び当該追跡対象の物体の特徴量を検出するステップと、
     物体特徴量記憶部を参照することにより、前記検出された追跡対象の物体の少なくとも前記特徴量に基づいて、当該追跡対象の物体に類似する少なくとも1つの物体を含む少なくとも1つの類似物体グループを算出するステップと、
     前記検出された追跡対象の物体について、当該物体の位置、当該物体の検出時刻、当該物体の特徴量、当該物体が属するグループを識別するグループIDを前記物体特徴量記憶部に格納するステップと、
     前記検出された追跡対象の物体について、当該物体の位置、当該物体の検出時刻、当該物体が属するグループを識別するグループIDを物体グループ情報記憶部に格納するステップと、
     予め定められた周期ごとに、前記物体グループ情報記憶部を参照し、前記類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てるバッチ処理を実行するステップと、を備える物体追跡処理方法。
  8.  追跡対象の物体の少なくとも特徴量に基づいて、当該追跡対象の物体に類似する少なくとも1つの物体を含む少なくとも1つの類似物体グループを算出する物体グルーピング処理ステップと、
     前記類似物体グループに属する物体に当該物体を識別する追跡IDを割り当てる物体追跡ステップと、をコンピュータに実行させるためのプログラムを記録した非一時的なコンピュータ可読媒体。
PCT/JP2021/037921 2021-10-13 2021-10-13 物体追跡処理装置、物体追跡処理方法及び非一時的なコンピュータ可読媒体 WO2023062754A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/037921 WO2023062754A1 (ja) 2021-10-13 2021-10-13 物体追跡処理装置、物体追跡処理方法及び非一時的なコンピュータ可読媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/037921 WO2023062754A1 (ja) 2021-10-13 2021-10-13 物体追跡処理装置、物体追跡処理方法及び非一時的なコンピュータ可読媒体

Publications (1)

Publication Number Publication Date
WO2023062754A1 true WO2023062754A1 (ja) 2023-04-20

Family

ID=85987642

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/037921 WO2023062754A1 (ja) 2021-10-13 2021-10-13 物体追跡処理装置、物体追跡処理方法及び非一時的なコンピュータ可読媒体

Country Status (1)

Country Link
WO (1) WO2023062754A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004046647A (ja) * 2002-07-12 2004-02-12 Univ Waseda 動画像データに基づく移動物体追跡方法及び装置
JP2016219004A (ja) * 2015-05-18 2016-12-22 ゼロックス コーポレイションXerox Corporation 一般物体提案を用いる複数物体の追跡
JP2018201161A (ja) * 2017-05-29 2018-12-20 株式会社東芝 移動体追跡装置、移動体追跡方法およびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004046647A (ja) * 2002-07-12 2004-02-12 Univ Waseda 動画像データに基づく移動物体追跡方法及び装置
JP2016219004A (ja) * 2015-05-18 2016-12-22 ゼロックス コーポレイションXerox Corporation 一般物体提案を用いる複数物体の追跡
JP2018201161A (ja) * 2017-05-29 2018-12-20 株式会社東芝 移動体追跡装置、移動体追跡方法およびプログラム

Similar Documents

Publication Publication Date Title
JP6853379B2 (ja) 対象人物の検索方法および装置、機器、プログラム製品ならびに媒体
CN107545256B (zh) 一种结合时空和网络一致性的摄像机网络行人重识别方法
US20120237081A1 (en) Anomalous pattern discovery
WO2019080411A1 (zh) 电子装置、人脸图像聚类搜索方法和计算机可读存储介质
JP2017033547A (ja) 情報処理装置及びその制御方法及びプログラム
US20150205995A1 (en) Personal recognition apparatus that performs personal recognition using face detecting function, personal recognition method, and storage medium
US11379993B2 (en) Image processing apparatus, image processing method, and storage medium
CN114581491B (zh) 一种行人轨迹跟踪方法、系统及相关装置
US11748989B2 (en) Enhancing detection of occluded objects in a multiple object detection system
US20210319226A1 (en) Face clustering in video streams
JP2018045302A (ja) 情報処理装置、情報処理方法及びプログラム
CN113962326A (zh) 聚类方法、装置、设备及计算机存储介质
WO2023062754A1 (ja) 物体追跡処理装置、物体追跡処理方法及び非一時的なコンピュータ可読媒体
JP6565661B2 (ja) 画像処理システム、画像類似判定方法および画像類似判定プログラム
CN111104541A (zh) 一种高效的人脸图片检索方法及装置
CN112948613B (zh) 图像增量聚类方法、系统、介质及装置
JP7133085B2 (ja) データベース更新方法及び装置、電子機器、並びにコンピュータ記憶媒体
US10997398B2 (en) Information processing apparatus, authentication system, method of controlling same, and medium
US11074696B2 (en) Image processing device, image processing method, and recording medium storing program
Nechyba et al. Pittpatt face detection and tracking for the clear 2007 evaluation
CN114937246A (zh) 一种行人识别方法、电子设备及存储介质
Kawanishi et al. Trajectory ensemble: Multiple persons consensus tracking across non-overlapping multiple cameras over randomly dropped camera networks
WO2022185569A1 (ja) 映像解析システム、及び映像解析方法
JP2022112831A (ja) 顔追跡装置およびプログラム
Maheswari An effective foreground segmentation using adaptive region based background modelling

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21960612

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2023553826

Country of ref document: JP

Kind code of ref document: A