WO2019244536A1 - 物体追跡装置、物体追跡システム、および物体追跡方法 - Google Patents
物体追跡装置、物体追跡システム、および物体追跡方法 Download PDFInfo
- Publication number
- WO2019244536A1 WO2019244536A1 PCT/JP2019/019899 JP2019019899W WO2019244536A1 WO 2019244536 A1 WO2019244536 A1 WO 2019244536A1 JP 2019019899 W JP2019019899 W JP 2019019899W WO 2019244536 A1 WO2019244536 A1 WO 2019244536A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- annotation
- image
- unit
- angle
- annotation target
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
Definitions
- the present invention relates to a technology for tracking an object.
- Patent Document 1 is a background art of this technical field. According to the publication, as a method of adding an annotation to a fish-eye image, a fish-eye image is obtained, a transformed image is generated by performing a perspective projection transformation of the fish-eye image, the transformed image is presented to a processor, and the transformed Accepts the input of annotation information about the annotation given to the image, converts the coordinate information of the annotation in the converted image included in the input annotation information into the coordinates in the fisheye image, and converts the converted annotation information into There is disclosed a technique of recording as annotation information in a fisheye image.
- the main use of the object tracking system is, for example, tracking of a person.
- an image is acquired from an imaging device, a person is detected in the acquired image, and the detected person is associated with the detected person in an image acquired at another time.
- the tracking device performs the linking, it is preferable that the orientation and range of the person region can be correctly detected in order to calculate the similarity in the image of each region where the person is detected.
- a human or an analyzer analyzes the tracking result output by the object tracking system, it is preferable that the direction and range of the person region can be correctly detected in order to facilitate the analysis.
- the tracking device can correctly detect the direction and range of the region of the object.
- the annotation method is an annotation method for a fisheye image.
- the fish-eye image is subjected to perspective projection conversion, and the annotation is performed on the image after the perspective projection conversion. After that, the added annotation data is inversely converted into the annotation on the fisheye image.
- the direction and range of the detection target object can be correctly annotated even in a fisheye image.
- the detection result of the object is used for linking the detection result and analyzing the tracking result, and it is preferable that the detection result can be detected in the correct direction and range in all regions on the image. . Therefore, there is room for improvement in the annotation method for the object tracking.
- an object of the present invention is to provide a technique for tracking an object with high accuracy.
- the object tracking device is preferably configured such that an angle of an annotation target area for annotating an object in an annotation target image acquired from the captured image is determined based on a parameter of the imaging device that captures the captured image.
- An angle calculation unit to calculate, acquire the image of the annotation target, and based on the angle and the image of the annotation target region of the object in the image, an annotation creating unit that generates an annotation target region of the object,
- An object tracking comprising: a learning unit that learns a correspondence relationship between the image and the annotation target region by updating a parameter necessary for detecting the object based on an angle of the annotation target region. It is configured as a device.
- the present invention preferably captures a captured image, an imaging device that transmits the captured image to a tracking device, and, based on parameters of the imaging device, acquired from the captured image received from the imaging device.
- An angle calculation unit that calculates the angle of the annotation target area for annotating the object in the image of the annotation target, and obtains the image of the annotation target, based on the angle of the annotation target area of the object in the image and the image.
- An annotation creating unit that generates an annotation target area of the object, and updating parameters necessary for detecting the object based on an angle of the annotation target area, thereby obtaining a correspondence between the image and the annotation target area.
- a learning unit for learning the relationship, and the tracking device comprising: That it is configured as an object tracking system.
- the present invention is also understood as the object tracking method performed by the object tracking device and the object tracking system.
- an object can be tracked with high accuracy. Other effects will be described in each embodiment.
- ⁇ ⁇ Notations such as “first”, “second”, and “third” in this specification and the like are used to identify components, and do not necessarily limit the number or order. Also, numbers for identifying components are used for each context, and numbers used in one context do not necessarily indicate the same configuration in another context. Also, this does not prevent a component identified by a certain number from having the function of a component identified by another number.
- an object tracking system an example in which a person is tracked and an omnidirectional camera is used as an imaging device will be described.
- the camera does not need to be an omnidirectional camera, and may be a BOX camera or any other camera that can calculate the direction of an object from internal parameters and external parameters of the camera.
- the tracking target does not need to be a person, and may be any as long as the direction can be calculated from the position where the object is reflected on the imaging device.
- FIG. 1 is a diagram showing a configuration example used in the present embodiment.
- the object tracking system 1 of the present embodiment includes a plurality of omnidirectional cameras 100, an input device 101, a display device 102, and a tracking device 103.
- the tracking device 103 includes an image data storage unit 104, an annotation creation unit 105, an annotation storage unit 106, a camera parameter storage unit 107, an angle calculation unit 108, a learning unit 109, a learning result storage unit 110, a detection unit 111, and a detection string. It comprises an attaching section 112, a tracking result accumulating section 113, and a tracking result display section 114.
- each block will be described.
- the omnidirectional camera 100 is an imaging device for capturing an image of a monitoring target area.
- the omnidirectional camera 100 continuously captures the monitoring target, and transmits the captured image to the tracking device 103.
- the tracking of the object is performed by the tracking device 103, but a method of tracking the object in the omnidirectional camera 100 is also possible.
- the input device 101 is a device that receives an input from a user.
- the input device 101 is, for example, a mouse, a keyboard, or a touch panel integrated with the display device 102.
- the user uses the input device 101 to input camera parameters and annotations, or to operate the tracking device such as starting and ending tracking.
- the display device 102 is a device that displays the display data generated by the tracking device 103.
- the display device 102 is, for example, a liquid crystal display or a projector.
- the user creates an annotation and checks the tracking result based on the information displayed on the display device 102.
- the tracking device 103 is a computer that creates annotation data, learns for tracking an object, and tracks an object. Hereinafter, each block in the tracking device 103 will be described.
- the image data storage unit 104 receives and stores the image data transmitted from the omnidirectional camera 100.
- the image data storage unit 104 is, for example, a hard disk drive, a solid state drive, or an SD card.
- the image data storage unit 104 may store the image as received from the omnidirectional camera 100, or may compress and store the received image.
- a target image is read from the image data storage unit 104 by each block.
- the annotation creation unit 105 creates annotation data necessary for learning for detecting a person.
- the annotation creation unit 105 reads an image to be annotated from the image data storage unit 104, and receives an annotation input from a user via the input device 101. Further, the annotation creating unit 105 reads out past annotation data from the annotation storage unit 106.
- the annotation data input by the user and the past annotation data are transmitted to the angle calculation unit 108, and the angle of each annotation (that is, the angle of the annotation target area) is received from the angle calculation unit 108.
- the annotation creation unit 105 draws annotation information (for example, the position and size of each person area to be annotated) on the image read from the image storage unit 104 based on the annotation data and the angle corresponding to each annotation. Then, it transmits to the display device 102.
- the annotation creation unit 105 transmits the annotation data including the image in which the annotation information is drawn to the annotation storage unit 106.
- the annotation storage unit 106 stores the created annotation data.
- the annotation storage unit 106 includes, for example, a storage device similar to the image data storage unit 104.
- past annotation data is read from the annotation accumulation unit 106 by the annotation creation unit 105, and the annotation data created by the annotation creation unit 105 is accumulated in the annotation accumulation unit 106.
- the learning unit 109 reads out annotation data from the annotation storage unit 106.
- the camera parameter storage unit 107 stores internal parameters of the camera and external parameters of the camera.
- the camera parameter storage unit 107 includes, for example, a storage device similar to the image data storage unit 104.
- the camera parameter storage unit 107 stores camera parameters received from the user via the input device 101.
- the angle calculation unit calculates the angle of the annotation
- the camera parameters stored in the camera parameter storage unit 107 are read by the angle calculation unit.
- the learning unit 109 performs learning for enabling human detection.
- the learning unit 109 reads an image to be learned from the image data storage unit 104 and reads annotation data corresponding to the image from the annotation storage unit 106 during learning. Further, the learning unit 109 transmits the annotation data to the angle calculation unit 108 and receives the angle of the annotation from the angle calculation unit 108, so that the learning considering the angle can be performed.
- the learning unit 109 learns the correspondence between the image and the annotation, and generates parameters necessary for detecting a person.
- the parameter is, for example, a weight parameter of the neural network.
- the parameters generated by the learning are transmitted to the learning result accumulation unit 110.
- the learning result accumulation unit 110 receives and stores the parameters of the learning result generated by the learning unit 109.
- the learning result accumulating unit 110 includes, for example, the same storage device as the image data accumulating unit 104.
- the stored parameters are read out by the detection unit 111 when the person tracking is executed.
- the detection unit 111 detects a person on the image.
- the detection unit 111 reads parameters obtained by learning from the learning result accumulation unit 110 when performing person tracking.
- the detection unit 111 reads the detection target image from the image data storage unit 104, and detects a person on the image using the parameters obtained from the learning result storage unit 110.
- the detection unit 111 transmits the detection result to the detection association unit 112 as detection data.
- the detection association unit 112 associates the detection result of the same person with the detection result of each image included in the detection data received from the detection unit 111. Specifically, upon receiving the detection target image and the detection data from the detection unit 111, the detection tying unit 112 transmits the detection data to the angle calculation unit 108, and calculates the detection data based on the detection data from the angle calculation unit 108. Received annotation angle. The detection linking unit 112 determines a person area based on the detection data and the angle of the annotation, and extracts a feature amount. The detection association unit 112 associates the two with each other using, for example, the extracted feature amount and position information. The detection linking unit 112 transmits the linking result and the detection data to the tracking result storage unit 113.
- the tracking result storage unit 113 stores the detection data and the linking result.
- the tracking result accumulating unit 113 includes, for example, a storage device similar to the image data accumulating unit 104.
- the tracking result accumulating unit 113 accumulates the detection data that has been linked from the detection linking unit 112.
- the data to be stored are, for example, an ID that links detection data of the same person, an ID of a detected image, a detection time, coordinates of a detection result, and a size of the detected person.
- the tracking result display unit 114 creates display data for displaying the tracking result read from the tracking result storage unit 113.
- the tracking result display unit 114 reads the tracking result from the tracking result accumulation unit 113, transmits the read tracking result to the angle calculation unit 108, and transmits the annotation angle from the angle calculation unit 108.
- the tracking result display unit 114 reads an image corresponding to the tracking result from the image data storage unit 104, and draws the tracking result on the image read from the image data storage unit 104 based on the read tracking result and the angle of the annotation. And create display data.
- the tracking result display unit 114 transmits the created display data to the display device 102.
- the annotation creation unit 105, the learning unit 109, the detection unit 111, the detection association unit 112, and the tracking result display unit 114 are configured such that a control unit configured by an arithmetic device such as a CPU (Central Processing Unit) executes a program. Thereby, the functions of these units are realized. For example, the control unit loads programs and modules for realizing the functions of the annotation creation unit 105, the learning unit 109, the detection unit 111, the detection association unit 112, and the tracking result display unit 114 into a memory (not shown). Execute.
- a control unit configured by an arithmetic device such as a CPU (Central Processing Unit) executes a program.
- the control unit loads programs and modules for realizing the functions of the annotation creation unit 105, the learning unit 109, the detection unit 111, the detection association unit 112, and the tracking result display unit 114 into a memory (not shown). Execute.
- the above program may be downloaded from a network to a tracking device via a network interface (not shown), loaded on a memory, and executed by the control unit.
- a reading device that reads and writes information from and to a portable computer-readable storage medium such as a CD (Compact Disk) or a DVD (Digital Versatile Disk)
- the data is directly loaded onto the memory from the storage medium. May be executed by the control unit.
- the program may be recorded in the form of a file that can be installed or executed on a computer in the storage medium and provided or distributed.
- the program may be stored on a computer connected to a communication network and provided or distributed by being downloaded via the network.
- FIG. 2 is a diagram showing a flow of annotation creation used in the present embodiment. The flow of annotation creation will be described below.
- step 200 creation of an annotation is started by a user's annotation start operation.
- the annotation creation unit 105 acquires an image to be annotated from the image data storage unit 104.
- a method of selecting a target image for example, there is a method in which the input device 101 receives designation of an ID of a target image from a user and instructs the annotation creating unit 105 of the ID of the designated image.
- the annotation creation unit 105 acquires past annotation data for the specified annotation target image from the annotation accumulation unit 106.
- There is a method of associating an image with an annotation for example, by holding an image ID as annotation data and linking the image to the image.
- the annotation data to be acquired includes, for example, annotation information indicating the coordinates of the person and the size of the person.
- the annotation creating unit 105 acquires all pieces of annotation information corresponding to the image ID.
- the annotation creation unit 105 transmits the annotation data acquired in step 202 to the angle calculation unit 108.
- the data to be transmitted includes, for example, annotation information indicating the coordinates (x foot , y foot ) on the image, with the human area being the annotation target area as an annotation being surrounded by a rectangle, and the center of the bottom of the rectangle being the foot of the person. It is.
- the angle calculation unit 108 acquires camera parameters from the camera parameter storage unit 107.
- the camera parameters to be acquired include, for example, the installation height h, the pitch angle ⁇ , the roll angle ⁇ , the yaw angle ⁇ , and the camera center coordinates (x center , y center ) of the omnidirectional camera 100.
- Internal parameters related to settings unique to the omnidirectional camera 100 such as external parameters related to the environment and parameters along the camera model (for example, parameters for correcting distortion of a person) are included.
- step 205 the angle calculation unit 108 calculates the angle of the annotation based on the annotation data received in step 203 and the camera parameters received in step 204.
- the calculation of the angle is performed by, for example, the following method. The coordinates and angles appearing in the description are shown in FIG.
- the angle calculation unit 108 converts the coordinates (x foot , y foot ) as the annotation information included in the received annotation data into world coordinates (X foot , Y foot) using the external parameters and the internal parameters of the omnidirectional camera 100. , 0).
- a calibration method of the omnidirectional camera 100 is used.
- the angle calculation unit 108 sets the vertical coordinates (X foot , Y foot , H) for the world coordinates (X foot , Y foot , 0) obtained by the conversion. This H should be sufficiently far from 0, and it is not necessary to obtain specific coordinates such as the coordinates of the head of a person.
- the angle calculation unit 108 converts the world coordinates (X foot , Y foot , H) into the coordinates (x h , y h ) on the image using the external parameters and the internal parameters.
- an angle ⁇ formed by a straight line connecting the two coordinates (x foot , y foot ) and (x h , y h ) and a straight line perpendicular to the coordinate is the angle to be obtained.
- step 206 the angle calculation unit 108 transmits the annotation angle calculated in step 205 to the annotation creation unit 105.
- the annotation creating unit 105 draws a rectangle on the image to be annotated based on the annotation data acquired in step 202 and the angle of the annotation received in step 206.
- a rectangle for example, if the annotation information included in the annotation data is the center coordinates and size of the person, calculate the coordinates of the four corners of the rectangle from the center coordinates and size, and rotate each coordinate based on the angle. Then, a method of connecting the rotated coordinates by line segments is used.
- the annotation creation unit 105 transmits the annotation data including the rectangle-drawn image created in step 207 to the display device 102.
- the user checks the image displayed on the display device 102, and adds, corrects, or deletes the annotation data via the input device 101. For example, the user performs a drag operation of the mouse to add or modify the annotation data.
- step 209 the user determines whether to end or continue the annotation creation. For example, the input device 101 outputs that the drag operation received from the user for creating the annotation has been completed.
- the annotation creation unit 105 determines whether or not the completion has been received. If it is determined that the completion has been received (step 209; Yes), the annotation creation unit 105 determines that the user has completed the annotation creation, and proceeds to step 212. move on. On the other hand, when it is determined that the completion has not been received (step 209; No), the annotation creating unit 105 determines that the user is continuing the annotation creation, and proceeds to step 210.
- step 210 when the annotation creating unit 105 determines that the user is continuing the annotation creation, the input device 101 continuously receives the input of the annotation data from the user via the input device 101.
- An example of a method for inputting annotation data is a method in which a user inputs a human area in a rectangular shape.
- step 211 the input device 101 transmits the annotation data input by the user in step 210 to the annotation creating unit 105.
- the annotation creating unit 105 Upon receiving the annotation data, the annotation creating unit 105 outputs the annotation data in which the image to be annotated is associated with the ID of the image, as in step 202. Thereafter, step 203 is started again, and the annotation creating unit 105 calculates the angle of the annotation and draws and displays the annotation result.
- This cycle may be executed once after the user finishes inputting one piece of annotation data, or may be executed in real time even while the user is inputting the annotation data.
- the user can check the annotation data in consideration of the angle at that time, and the annotation work becomes easy.
- step 212 when the annotation creating unit 105 determines that the user has finished creating the annotation, the annotation creating unit 105 outputs the annotation data at that time and transmits it to the annotation storing unit 106.
- the creation of the annotation data is performed in the same manner as in steps 202 and 211.
- step 213 the annotation creation unit 105 stores the created annotation data in the annotation accumulation unit 106.
- the storage of the annotation data in steps 212 and 213 in this embodiment is performed at the end of the annotation creation, steps 212 and 213 may be executed and saved each time one annotation is created.
- step 214 the annotation creation unit 105 ends the annotation creation.
- the direction in which a person is reflected is calculated from the internal parameters and external parameters of the camera, and the direction and range of the person are correctly annotated. That is, the angle calculation unit 108 calculates the angle of the annotation target area for annotating an object in the image of the annotation target acquired from the captured image based on the parameters of the omnidirectional camera 100 that captures the captured image, An image to be annotated is acquired, the annotation creation unit 105 generates an annotation target region of the object based on the angle of the annotation target region of the object in the image and the image, and the learning unit 109 determines the angle of the annotation target region. The correspondence between the image and the annotation target area is learned by updating the parameters necessary for detecting the object based on. By adopting this method, when learning the object detection, the learning unit 109 learns an appropriate range as the target object, so that the detection accuracy is improved.
- FIG. 3 is a diagram showing a learning flow used in the present embodiment. The learning flow will be described below.
- step 300 learning is started by a user's learning start operation.
- the learning unit 109 acquires an image to be learned from the image data storage unit 106.
- the number of sheets to be acquired may be one or a plurality.
- the learning unit 109 obtains the annotation data for the learning target image obtained in step 301 from the annotation storage unit 106.
- the learning unit 109 transmits the ID of the image to be learned to the annotation storage unit 106, and outputs the annotation data including the ID of the image from the annotation storage unit 106. There is a way to search.
- Steps 303 to 306 are the same as steps 203 to 206 in the annotation creation flow shown in FIG. 2, and the learning unit 109 transmits the data and receives the angle of the annotation, instead of the annotation creation unit 105. Further, for example, when the learning unit 109 extracts the image feature amount by the convolution operation, the data transmitted in step 303 is the coordinates for performing the convolution.
- the learning unit 109 updates parameters necessary for human detection based on the angle of the annotation received from the angle calculation unit 108.
- a method of updating the parameters for example, there is a method of rotating the kernel in the convolution operation based on the angle of the annotation received from the angle calculation unit 108.
- a method of calculating convolution at coordinates (x c , y c ) on an image will be described below using a 3 ⁇ 3 kernel. If the pixel value at coordinates (x, y) is I (x, y) and the center of the 3 ⁇ 3 kernel is (0, 0) and the kernel is k (x, y), the output of the convolution c out (x c , y c ) is as follows.
- the pixel is calculated using a method such as Bilinear interpolation. Complete the value. With this calculation, the value of the kernel is updated.
- the learning unit 109 determines whether to end or continue the learning.
- the learning unit 109 may interrupt learning according to an instruction received from the user by the input device 101, or the user may determine the number of times of learning in advance and determine whether the learning unit 109 has reached the number of times. Thus, the end of the learning may be determined.
- step 309 when the learning unit 109 determines that the learning is to be ended (step 308; Yes), the learning unit 109 transmits the learned parameters to the learning result accumulation unit 110. On the other hand, when the learning unit 109 determines that learning is to be continued (Step 308; No), the learning unit 109 returns to Step 301 and repeats the subsequent processing.
- step 310 the learning unit 109 stores the parameters in the learning result storage unit 110.
- step 311 the learning unit 109 ends the learning.
- the learning in the present embodiment is learning in which each position on the image takes an appropriate angle into the position.
- the same feature amount can be extracted with the same kernel even if a person appears in a different direction.
- the learning unit 109 is a Convolutional neural network, the detection accuracy of the detector is improved by rotating the kernel to limit the Receptive field to a correct range.
- FIG. 4 is a diagram showing a tracking flow used in the present embodiment. The following describes the tracking flow.
- step 400 tracking is started by a user's tracking start operation.
- the detecting unit 111 receives the learned parameter updated in step 307 from the learning result accumulating unit 110.
- the detection unit detects a person using the parameters.
- the parameters are, for example, the kernel and bias of the Convolutional neural network.
- step 402 the detection unit 111 acquires an image to be detected from the image storage unit 106. While the tracking is continued, the detection unit 111 sequentially acquires images continuously captured by the omnidirectional camera 100.
- the detection unit 111 detects a person.
- the detection unit 111 includes, for example, a Convolutional neural network, and includes, as a detection result, coordinates indicating a position of a person, a width and a height indicating a size of the person, and a reliability indicating whether the detection area is a person. Output detection data.
- the detection unit 111 transmits the detection result to the detection data detection association unit 112 including the detection result.
- the detection data transmitted by the detection unit 111 includes, for example, the coordinates and size of the image to be detected and the detected person on the image, and the reliability indicating whether the detection area is a person.
- Steps 405 to 408 are the same as steps 203 to 206 in the annotation creation flow in FIG. 2, and the detection linking unit 112 performs transmission of data and reception of the angle of the annotation, instead of the annotation creation unit 105.
- the detection data transmitted in step 405 is, for example, the coordinates of a person detected by the detection unit 111.
- the coordinates rather than the feet of the person, since the center coordinates of the person, detecting matching section 112, a world coordinate after conversion by using a mean height h ave a person, (X body, Y body, h ave / 2) and approximate the z-axis direction.
- the detection linking unit 112 determines a person region using the detection data received from the detection unit 111 and the angle of the annotation received from the angle calculation unit 108, and calculates the feature amount of the region.
- the feature amount extraction method for example, a person area is represented by a rectangle from the detection data and the angle, and the feature amount in the rectangle is extracted.
- the feature amount may be calculated using a color histogram or an image gradient histogram, or may be extracted using a feature amount extraction method using a machine learning method.
- the detection associating unit 112 associates the detected data of the current frame with the detected data of the frame at another past time.
- the linking for example, the Euclidean distance of the coordinates of the detection result is calculated, the detection data having a short Euclidean distance is linked, or the Euclidean distance of the feature amount extracted in step 409 is calculated, and the Euclid distance is detected. There is a way to link data.
- the detection linking unit 112 transmits the linking result of the detection data to the tracking result storage unit 113.
- the detection association unit 112 associates, for example, the detection data with an image ID and stores the detection data.
- the detection linking unit 112 stores the linking result of the detection data in the tracking result storage unit 113 as tracking data.
- the detection associating unit 112 determines whether to end or continue the tracking. According to the instruction received by the input device 101 from the user, the detection tying unit 112 may suspend the tracking, or the time to be tracked by the user may be determined in advance, and whether the detection tying unit 113 has reached the time. The end of the tracking may be determined by determining whether or not the tracking is completed.
- step 414 when the detection associating unit 112 determines that the tracking is to be interrupted (step 413; Yes), the tracking ends. On the other hand, when it is not determined that the tracking is to be interrupted (Step 413; No), the detection linking unit 112 returns to Step 402 and repeats the subsequent processing.
- the direction and range of the person are correctly determined using the detection result output from the detection unit 111 and the angle calculated by the angle calculation unit 108, and the feature amount is extracted.
- this method it is possible to suppress the influence of features other than the person such as the background on the feature amount, and to correctly extract the feature amount of the person.
- the accuracy of the detection linking is improved, and the tracking accuracy is improved.
- FIG. 5 is a diagram showing a flow of tracking result display used in the present embodiment. Hereinafter, the flow of the tracking result display will be described.
- step 500 the display of the tracking result is started by the user's tracking result display start operation.
- step 501 the tracking result display unit 114 acquires an image of a tracking result display target.
- the tracking result display unit 114 acquires the tracking data from the tracking result storage unit 113.
- the acquired tracking data includes, as tracking results, for example, coordinates representing the position of the person, width and height representing the size, the person ID, and the image ID to be detected.
- Steps 503 to 506 are the same as steps 405 to 408 in the tracking flow of FIG. 4.
- the data transmission and the reception of the angle of the annotation are performed by the tracking result display unit 114 instead of the detection association unit 112.
- the tracking result display unit 114 acquires the tracking result included in the tracking data in step 501 using the tracking data received from the tracking result storage unit 113 and the angle of the annotation received from the angle calculation unit 108. Draw on the tracking target image.
- the tracking result display unit 114 creates a rectangle having the width and height of the tracking result around the coordinates of the tracking result, and rotates the tracking result from the vertical direction by the angle of the tracking result.
- step 508 the tracking result display unit 114 transmits the image created in step 507 to the display device 102.
- step 509 the display device 102 displays the tracking result to the user.
- the tracking result display unit 114 determines whether to end or continue displaying the tracking result. According to an instruction received by the input device 101 from the user, the tracking result display unit 114 may interrupt the display of the tracking result, or the user may determine in advance the time for displaying the tracking result, and the tracking result display unit 114 The end of the tracking result display may be determined by determining whether or not the time has been reached.
- step 511 the tracking result display unit 114 ends the tracking result display.
- the orientation and range of the person are correctly determined using the tracking result stored in the tracking result storage unit 113 and the angle of the annotation calculated by the angle calculation unit 108, and provided to the user. .
- this method for example, when a person is cut out and displayed, it is possible to reduce the proportion of the background area reflected. Also, by cutting out the person region and rotating the region based on the angle of the tracking result, all the people can be displayed vertically upward, and the visibility when the user searches for the person is improved.
- FIG. 6 is an example of a data storage method of the camera parameter storage unit 107 used in the present embodiment.
- the camera parameter accumulation unit 107 accumulates, for each omnidirectional camera 100, as a camera parameter 600, external parameters such as a camera installation height, pan, tilt, and roll angles at the time of installation, and internal parameters different for each camera. deep.
- the angle calculation unit 108 calculates the angle at which the person appears using these parameters. When this data accumulation method is used, a complicated calculation is performed every time an angle is obtained, so that the processing amount increases. However, the amount of data to be accumulated decreases, and the capacity required for data accumulation can be reduced. .
- FIG. 7 shows another example of the data storage method of the camera parameter storage unit 107 used in the present embodiment.
- the camera parameter storage unit 107 stores, for each omnidirectional camera 100, as a camera parameter 700, a correspondence relationship between an angle with respect to coordinates calculated in advance using external parameters and internal parameters, and coordinates. In this method, it is necessary to accumulate angles corresponding to all coordinates, so that the amount of data to be accumulated increases. However, since the angle calculation unit 108 outputs angles using this correspondence, The angle can be obtained only once by referring to the memory, and the amount of processing can be reduced.
- FIG. 8 is an explanatory diagram 801 illustrating a display screen 800 for creating an annotation and a situation around the camera that matches the display screen 800 according to the present embodiment.
- the annotation creation for example, the user draws a rectangle in the person area using the input device 101, and annotates the position and size of the person.
- the annotation creating unit 105 creates an annotation without perspective transformation of the image of the omnidirectional camera 100, so that distortion due to the transformation does not occur, and the annotation can be created correctly in the entire area. Accordingly, the learning unit 109 can correctly perform learning in the entire region of the image, and the detection unit 111 can perform correct detection in the entire region.
- the detection of an object in consideration of an internal parameter or an external parameter of a camera the detection of an object in consideration of an image peculiar to a fisheye camera, or the detection of an object in which a detection learning device and an image gradient are combined
- the orientation and range of the object can be correctly determined.
- an example of an object tracking system an example in which a person is tracked and an omnidirectional camera is used as an imaging device will be described.
- the omnidirectional camera is installed so that the pan and tilt become 0 degrees.
- the track target need not be a person.
- FIG. 9 is an example of a data storage method of the camera parameter storage unit 107 used in the present embodiment.
- the camera parameter storage unit 107 stores the coordinates of the camera lens center on the image as the camera parameter 900 for each omnidirectional camera 100.
- the calculation method of the angle in the angle calculation unit 108 will be described below.
- the coordinates and angles appearing in the description are shown in FIG.
- the angle ⁇ that forms a straight line connecting (x, y) and (x c , y c ) as a vertical straight line Has the following relationship:
- the present embodiment is a method for simplifying the calculation of the angle in a situation where the pan and tilt are 0 degrees using the omnidirectional camera 100. If the angle calculation method of the present embodiment is used, only the coordinates of the camera lens center on the image need be stored as camera parameters, and the necessary parameters can be easily obtained in advance. Be a small amount. In addition, the processing amount is reduced as compared with the method of calculating the angle from the internal parameters and external parameters of the camera.
- FIG. 10 shows a display screen for creating an annotation in the present embodiment.
- the display screen 1000 is not perspective-transformed as in the first embodiment.
- the annotation creating unit 105 creates an annotation without perspective transformation of the image of the omnidirectional camera 100, so that distortion due to the transformation does not occur, and the annotation can be created correctly in the entire area. Accordingly, the learning unit 109 can correctly perform learning in the entire region of the image, and the detection unit 111 can perform correct detection in the entire region. Further, in the first embodiment, when the angle calculation unit 108 calculates the angle, the average height is used instead of the actual height of the person, and an error occurs in the angle. In the present embodiment, the center coordinates of the rectangle are used. Therefore, the angle error generated in the first embodiment does not occur.
- the object tracking system an example in which an aircraft is tracked and a BOX camera is used as an imaging device will be described.
- the object to be tracked and the imaging device need only be able to calculate the angle of the object from the image gradient of the object.
- FIG. 11 is a diagram showing a configuration example used in the present embodiment.
- the tracking device 103 of the object tracking system in FIG. The tracking device 1100 is different from the tracking device 103 in that the annotation creating unit 105 is changed to the annotation creating unit 1101, the camera parameter storing unit 107 is changed to the image gradient storing unit 1102, and the angle calculating unit 108 is changed to the angle calculating unit 1103. .
- the modified blocks will be described below.
- the ⁇ annotation creating unit 1101 calculates image gradients of the aircraft to be tracked at various angles.
- the annotation creating unit 1101 transmits the calculated image gradient to the image gradient accumulating unit 1102.
- the image gradient accumulating unit 1102 stores information on the image gradient of the object created by the annotation creating unit 1101.
- the stored image gradient is read from the angle calculation unit 1103 at the time of angle calculation.
- the angle calculation unit 1103 reads the image gradient from the image gradient accumulation unit 1102 at the time of angle calculation, and calculates the angle by comparing the image gradient with the image gradient to be calculated.
- the calculated angle is transmitted to the annotation creating unit 1101, the detection tying unit 112, and the tracking result display unit 114, as in the first embodiment, and is used for annotation creation, detection tying, and display of the tracking result.
- FIG. 12 is a diagram showing a flow of creating image gradient data for angle calculation used in the present embodiment. The flow of creating image gradient data will be described below.
- step 1200 the creation of image gradient data is started by a user's image gradient data creation start operation.
- the annotation creating unit 1101 acquires an image of the tracking target object from the image data storage unit 104.
- the acquired image is, for example, an image obtained by cutting out the object to be detected in the same direction (for example, an image of an aircraft facing in the same direction).
- the annotation creating unit 1101 calculates the image gradient of the image obtained by cutting out the target object.
- the method of calculating the image gradient is, for example, Histogramistof gradient.
- step 1203 the annotation creating unit 1101 rotates the image of the target object by a fixed angle.
- step 1204 the annotation creating unit 1101 determines whether the image has been rotated once by the image rotation in step 1203.
- the process returns to step 1202, and calculates the image gradient of the rotated image.
- the annotation creating unit 1101 determines that the image has made one rotation (step 1204; Yes)
- the process proceeds to the next step.
- step 1205 the annotation creating unit 1101 sends the calculated image gradient to the image gradient accumulating unit.
- the calculated image gradient and the rotation angle of the image used at the time of calculation are transmitted in combination.
- step 1206 the image gradient accumulating unit 1102 stores the combination of the angle and the image gradient received from the annotation creating unit 1101.
- step 1207 the annotation creating unit 1101 ends the creation of the image gradient data.
- the present embodiment is a method of calculating an angle using an image gradient in tracking an object in which the direction of the object can be easily calculated from the image gradient. With this method, it is not necessary to collect the camera installation parameters required in the first embodiment. Further, there is no restriction on the installation condition as in the second embodiment, and the angle can be calculated in various conditions.
- FIG. 13 is an example of a data storage method of the image gradient storage unit 1102 used in the present embodiment.
- the image gradient accumulating unit 1102 stores, as image gradient data 1300, Histogram of gradient in association with an image angle, a histogram index, and a histogram value at the time of image gradient calculation.
- this storage method is used, the combination of the angle and the image gradient can be easily extracted, and the angle calculation unit 108 can easily calculate the angle from the image gradient.
- FIG. 14 is an explanatory diagram 1401 showing a display screen 1400 for creating an annotation and a method of calculating an angle from an image gradient in the present embodiment.
- the annotation creation for example, the user draws a rectangle in the aircraft area using the input device 101, and annotates the position and size of the aircraft.
- the annotation creation unit 1101 calculates an image gradient for a region R surrounded by a rectangle.
- the annotation creating unit 1101 acquires a combination of an angle and an image gradient from the image gradient accumulating unit 1102, and compares a region surrounded by a rectangle with the image gradient acquired from the image gradient accumulating unit 1102.
- the annotation creating unit 1101 calculates, for example, the Euclidean distance of the image gradient histogram, and sets the angle corresponding to the image gradient histogram having the closest Euclidean distance to the angle of the object.
- the annotation is not perspective-transformed as in the case of the first and second embodiments.
- the annotation creation without performing the perspective projection transformation of the image of the omnidirectional camera 100, the distortion due to the transformation does not occur, and the annotation can be created correctly in the entire region.
- the learning unit 109 can correctly perform learning in the entire region of the image, and the detection unit 111 can perform correct detection in the entire region.
- the object tracking system as an example of the object tracking system, a case will be described in which a person is tracked, and a detector that calculates a deviation from a reference rectangle is used in the learning unit and the detection unit.
- the object to be tracked need not be a person, but may be anything as long as the size of the object can be determined based on the position of the object in the camera image.
- FIG. 15 is a diagram showing a configuration example used in the present embodiment.
- the object tracking system 3 of the present embodiment is such that the tracking device 103 of the object tracking system in FIG.
- the tracking device 1500 is different from the tracking device 103 in that a size calculation unit 1501 is added.
- the modified size calculator will be described below.
- the size calculation unit 1501 calculates the size of the person reflected on the camera from the camera parameters or the generated annotation data. For example, when camera parameters are used, the size calculation unit 1501 converts the coordinates on the image into world coordinates in the same manner as the conversion of the coordinates on the image and the world coordinates in step 205 in the angle calculation, and The relationship between the coordinates on the image and the size of the person can be calculated by acquiring world coordinates representing the size of the person using the average height and average width of the person and returning the coordinates to the coordinates on the image.
- the size calculation unit 1501 formulates the correspondence between the position and the size of the annotation region in the image included in the annotation data by linear regression, and calculates the coordinates of the image and the person. A size relationship can be calculated.
- the size calculation unit 1501 receives the coordinates on the image from the learning unit 109 and the detection association unit 112, and transmits the corresponding size.
- FIG. 16 is a diagram showing a learning flow used in the present embodiment.
- steps 1600 and 1601 are added to the learning flow in FIG. 3 of the first embodiment.
- each step will be described.
- step 1600 the learning unit 109 acquires the size at each coordinate on the image from the size calculation unit 1501.
- step 1601 the learning unit 109 sets a reference rectangle at each coordinate based on the size obtained from the size calculation unit 1501. The learning unit 109 performs learning using the reference rectangle.
- the learning according to the present embodiment is a method of adaptively changing the reference rectangle when the learning unit 109 performs learning according to the position of the image.
- the learning unit 109 sets a reference rectangle at each position in advance, and the detector 111 estimates a deviation from the reference rectangle.
- learning is performed so that the detector 111 can correctly estimate this deviation.
- the reference rectangle is set to have a fixed size regardless of the position.
- the deviation from the reference rectangle increases depending on the position, and estimation becomes difficult.
- the reference rectangle according to the position as in the present embodiment, the deviation from the estimated reference rectangle is reduced, and the detection accuracy is improved.
- FIG. 17 is a diagram showing a tracking flow used in the present embodiment.
- steps 1700 and 1701 are added to the tracking flow in FIG. 4 of the first embodiment.
- each step will be described.
- step 1700 the detection associating unit 112 obtains the size at each coordinate on the image from the size calculation unit 1501.
- the detection linking unit 112 determines the reliability of the feature amount by comparing the size of the detection data with the size obtained from the size calculation unit 1501.
- the reliability is used, for example, for determining whether to use a feature amount for detection tying at the time of detection tying, and for weighting the feature amount when using for detection tying.
- the object is correctly reflected by comparing the relationship between the position and the size calculated by the size calculating unit 1501 with the relationship between the position and the size of the detection data by the detection tying unit 112. Is determined, and the reliability of the feature amount is determined.
- the size of the object reflected by the camera can be determined to some extent by the position. If the size deviates from the determined size, it can be determined that the object is not correctly reflected. If the object is not correctly reflected, the feature amount cannot be correctly acquired, and thus the reliability is set low. By determining the reliability of the feature amount in this way, the accuracy of detection tying can be improved.
- the present invention is not limited to the above-described embodiment, and includes various modifications.
- the above-described embodiments have been described in detail in order to explain the present invention in an easy-to-understand manner, and are not necessarily limited to those having all the described configurations.
- a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of one embodiment can be added to the configuration of another embodiment.
- control lines and information lines indicate those which are considered necessary for explanation, and do not necessarily indicate all control lines and information lines on a product. In fact, it may be considered that almost all components are interconnected.
- Object tracking system 100 Omnidirectional camera 101 Input device 102 Display device 103, 1100, 1500 Tracking device 104 Image data storage unit 105, 1101 Annotation creation unit 106 Annotation storage unit 107 Camera parameter storage unit 108, 1103 Angle calculation Unit 109 learning unit 110 learning result accumulation unit 111 detection unit 112 detection association unit 113 tracking result accumulation unit 114 tracking result display unit 1102 image gradient accumulation unit 1501 size calculation unit
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Image Analysis (AREA)
- Closed-Circuit Television Systems (AREA)
Abstract
撮像画像を撮像する撮像装置のパラメータに基づいて、撮像画像の中から取得されたアノテーション対象の画像内の物体をアノテーションするアノテーション対象領域の角度を算出する角度計算部と、アノテーション対象の画像を取得し、画像内の物体のアノテーション対象領域の角度と画像とに基づいて、物体のアノテーション対象領域を生成するアノテーション作成部と、アノテーション対象領域の角度に基づいて、物体の検出に必要なパラメータの更新を行うことにより、画像とアノテーション対象領域の対応関係を学習する学習部と、を備える。
Description
本発明は、物体を追跡する技術に関する。
本技術分野の背景技術として、特許文献1がある。該公報には、魚眼画像へのアノテーション付与方法として、魚眼画像を取得し、魚眼画像を透視投影変換した変換画像を生成し、変換画像を処理者に提示し、処理者から、変換画像に付与されるアノテーションに関するアノテーション情報の入力を受け付け、入力されたアノテーション情報に含まれる、変換画像でのアノテーションの座標情報を、魚眼画像での座標に変換し、変換後のアノテーション情報を、魚眼画像におけるアノテーション情報として記録する技術が開示されている。
物体追跡システムの主な用途として、例えば人物の追跡がある。人物の追跡では、撮像装置から画像を取得し、取得した画像において人物の検出を行い、別時間に取得した画像において検出された人物と紐付けを行う。追跡装置が紐付けを行う際には、人物を検出した各領域の画像における類似度を計算するため、人物領域の向きおよび範囲を正しく検出できていることが好ましい。また、物体追跡システムが出力した追跡結果を人間や分析装置が分析する場合において、分析を容易にするために、人物領域の向きおよび範囲を正しく検出できていることが好ましい。もちろん、人物以外の物体を追跡する場合においても、追跡装置は物体の領域の向きおよび範囲を正しく検出できていることが好ましい。
前記特許文献1では、物体を検出するために機械学習を用いており、学習用データ作成におけるアノテーション手法が記載されている。当該アノテーション手法は魚眼画像におけるアノテーション手法である。アノテーションの際に、まず魚眼画像を透視投影変換し、透視投影変換後の画像でアノテーションを行う。その後、付与されたアノテーションデータを魚眼画像上のアノテーションに逆変換する。この方法を用いることで、魚眼画像においても検出対象の物体の向きおよび範囲を正しくアノテーションできる。しかし、この方法では、透視投影変換後に歪みが多くなる領域において、アノテーションは困難である。これにより、アノテーションが困難な領域における学習は不正確になり、検出器が出力する物体の向きや範囲は不正確なものとなる。前記のように、追跡装置においては、物体の検出結果は、検出結果の紐付けや追跡結果の分析のために用いられ、画像上の全領域において正しい向きおよび範囲で検出できていることが好ましい。従って、物体追跡のためのアノテーション手法としては、当該アノテーション手法には改善の余地がある。
そこで、本発明は、高精度に物体を追跡する技術の提供を目的とする。
本発明にかかる物体追跡装置は、好ましくは、撮像画像を撮像する撮像装置のパラメータに基づいて、前記撮像画像の中から取得されたアノテーション対象の画像内の物体をアノテーションするアノテーション対象領域の角度を算出する角度計算部と、前記アノテーション対象の画像を取得し、前記画像内の物体のアノテーション対象領域の角度と前記画像とに基づいて、前記物体のアノテーション対象領域を生成するアノテーション作成部と、前記アノテーション対象領域の角度に基づいて、前記物体の検出に必要なパラメータの更新を行うことにより、前記画像と前記アノテーション対象領域の対応関係を学習する学習部と、を備えることを特徴とする物体追跡装置として構成される。
また、本発明は、好ましくは、撮像画像を撮像し、前記撮像画像を追跡装置に送信する撮像装置と、前記撮像装置のパラメータに基づいて、前記撮像装置から受信した撮像画像の中から取得されたアノテーション対象の画像内の物体をアノテーションするアノテーション対象領域の角度を算出する角度計算部と、前記アノテーション対象の画像を取得し、前記画像内の物体のアノテーション対象領域の角度と前記画像とに基づいて、前記物体のアノテーション対象領域を生成するアノテーション作成部と、前記アノテーション対象領域の角度に基づいて、前記物体の検出に必要なパラメータの更新を行うことにより、前記画像と前記アノテーション対象領域の対応関係を学習する学習部と、を備えた前記追跡装置と、を備えることを特徴とする物体追跡システムとして構成される。
また、本発明は、好ましくは、上記物体追跡装置、上記物体追跡システムで行われる物体追跡方法としても把握される。
本発明の一態様によれば、高精度に物体を追跡することができる。それ以外の効果については、各実施例で述べる。
以下、実施の形態について、図面を用いて詳細に説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
以下に説明する発明の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、重複する説明は省略することがある。
本明細書等における「第1」、「第2」、「第3」などの表記は、構成要素を識別するために付するものであり、必ずしも、数または順序を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
図面等において示す各構成の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面等に開示された位置、大きさ、形状、範囲などに限定されない。
本明細書において単数形で表される構成要素は、特段文脈で明らかに示されない限り、複数形を含むものとする。
本実施形態では、物体追跡システムの一例として、人物の追跡を行い、撮像装置に全方位カメラを用いる例を説明する。なお、カメラは全方位カメラである必要はなく、BOXカメラなど、カメラの内部パラメータおよび外部パラメータから物体の向きを計算可能なものであればよい。また、追跡対象は人物である必要はなく、物体が撮像装置に映る位置から向きを計算可能なものであればよい。
図1は、本実施形態で用いられる構成例を示す図である。図に示すように本実施形態の物体追跡システム1は、複数の全方位カメラ100、入力装置101、表示装置102、追跡装置103を有して構成される。また、追跡装置103は、画像データ蓄積部104、アノテーション作成部105、アノテーション蓄積部106、カメラパラメータ蓄積部107、角度計算部108、学習部109、学習結果蓄積部110、検出部111、検出紐付け部112、追跡結果蓄積部113、追跡結果表示部114で構成される。以下で各ブロックについて説明する。
全方位カメラ100は、監視対象領域を撮影するための撮像装置である。全方位カメラ100は、監視対象を継続的に撮影し、撮影した画像を追跡装置103に送信する。本実施例では、物体の追跡を追跡装置103で実施しているが、物体の追跡を全方位カメラ100内で実施する方法も可能である。
入力装置101は、ユーザーからの入力を受け付ける装置である。入力装置101は、例えば、マウスやキーボード、あるいは表示装置102と一体となったタッチパネルである。ユーザーは、入力装置101を用いてカメラパラメータやアノテーションの入力、あるいは追跡の開始や終了などの追跡装置の操作を行う。
表示装置102は、追跡装置103が生成した表示データを表示する装置である。表示装置102は、例えば、液晶ディスプレイやプロジェクタである。ユーザーは、表示装置102に表示される情報により、アノテーションの作成や追跡結果の確認を行う。
追跡装置103は、アノテーションデータの作成や物体追跡のための学習、物体の追跡を行うコンピュータである。以下で追跡装置103内の各ブロックについて説明する。
画像データ蓄積部104は、全方位カメラ100から送信された画像データを受信し、保存する。画像データ蓄積部104は、例えば、ハードディスクドライブやソリッドステートドライブ、あるいはSDカードである。画像を保存する際には、画像データ蓄積部104は、全方位カメラ100から受け取ったままの画像を保存してもよいし、受け取った画像を圧縮して保存してもよい。アノテーション作成時や学習時、検出時、追跡結果表示時に、対象の画像が、画像データ蓄積部104から各ブロックにより読み出される。
アノテーション作成部105は、人物検出を行うための学習に必要なアノテーションデータの作成を行う。アノテーション作成部105は、アノテーション対象の画像を画像データ蓄積部104から読み出し、入力装置101を介してユーザーからアノテーションの入力を受け付ける。また、アノテーション作成部105は、アノテーション蓄積部106から過去のアノテーションデータを読み出す。前記のユーザーから入力されたアノテーションデータおよび過去のアノテーションデータを角度計算部108に送信し、角度計算部108から各アノテーションの角度(すなわち、アノテーション対象領域の角度)を受信する。アノテーション作成部105は、前記のアノテーションデータおよび各アノテーションに対応する角度を基にアノテーション情報(例えば、アノテーションするそれぞれの人物領域の位置や大きさ)を前記の画像蓄積部104から読み出した画像に描画し、表示装置102に送信する。アノテーション作成部105は、アノテーション作成が終了したら、アノテーション情報を描画した画像を含むアノテーションデータをアノテーション蓄積部106に送信する。
アノテーション蓄積部106は、作成されたアノテーションデータの蓄積を行う。アノテーション蓄積部106は、例えば、画像データ蓄積部104と同様の記憶装置から構成される。アノテーション作成時に、アノテーション作成部105により、アノテーション蓄積部106から過去のアノテーションデータが読み出され、アノテーション作成部105が作成したアノテーションデータが、アノテーション蓄積部106に蓄積される。また、学習時には、学習部109により、アノテーション蓄積部106からアノテーションデータが読み出される。
カメラパラメータ蓄積部107は、カメラの内部パラメータやカメラの外部パラメータを保存する。カメラパラメータ蓄積部107は、例えば、画像データ蓄積部104と同様の記憶装置から構成される。カメラパラメータ蓄積部107は、入力装置101を介してユーザーから受け付けられたカメラパラメータを蓄積する。角度計算部108がアノテーションの角度を計算する際に、カメラパラメータ蓄積部107が保存したカメラパラメータが、角度計算部108により読み出される。
学習部109は、人物検出を可能にするための学習を行う。学習部109は、学習の際に、画像データ蓄積部104から学習対象の画像を読み出し、アノテーション蓄積部106から当該画像に対応するアノテーションデータを読み出す。また、学習部109は、角度計算部108にアノテーションデータを送信し、角度計算部108からアノテーションの角度を受け取ることで、角度を考慮した学習を行うことができる。学習部109は、画像とアノテーションの対応関係を学習し、人物検出に必要なパラメータを生成する。パラメータとは、例えば、ニューラルネットワークの重みパラメータである。学習により生成されたパラメータは、学習結果蓄積部110に送信される。
学習結果蓄積部110は、学習部109が生成した学習結果のパラメータを受信し、保存する。学習結果蓄積部110は、例えば、画像データ蓄積部104と同様の記憶装置から構成される。保存したパラメータは、人物追跡実行時に、検出部111により読み出される。
検出部111は、画像上の人物を検出する。検出部111は、人物追跡実行時に、学習結果蓄積部110から、学習により得られたパラメータを読み出す。検出部111は、検出対象画像を画像データ蓄積部104から読み出し、前記学習結果蓄積部110から取得したパラメータを用いて画像上の人物を検出する。検出部111は、検出が完了すると、検出結果を検出データとして検出紐付け部112に送信する。
検出紐付け部112は、検出部111から受信した上記検出データに含まれる各画像の検出結果において、同一人物の検出結果を紐付ける。具体的には、検出紐付け部112は、検出部111から検出対象の画像と検出データを受信すると、当該検出データを角度計算部108に送信し、角度計算部108から検出データに基づいて算出されたアノテーションの角度を受信する。検出紐付け部112は、検出データおよびアノテーションの角度を基に人物の領域を決定し、特徴量を抽出する。検出紐付け部112は、例えば、抽出した特徴量や位置情報を用いて両者を紐付けする。検出紐付け部112は、紐付けの結果や検出データを追跡結果蓄積部113に送信する。
追跡結果蓄積部113は、検出データおよび紐付け結果を保存する。追跡結果蓄積部113は、例えば、画像データ蓄積部104と同様の記憶装置から構成される。追跡結果蓄積部113は、検出紐付け部112から紐付けが完了した検出データを蓄積する。保存するデータは、例えば、同一人物の検出データを紐付けるIDや、検出した画像のID、検出時刻、検出結果の座標、検出した人物の大きさである。追跡結果を確認する際に、蓄積された追跡結果が、追跡結果表示部114により読み出される。
追跡結果表示部114は、追跡結果蓄積部113から読み出した追跡結果を表示するための表示データを作成する。追跡結果表示部114は、ユーザーが追跡結果を確認する際に、追跡結果蓄積部113から追跡結果を読み出し、読み出した追跡結果を角度計算部108に送信し、角度計算部108からアノテーションの角度を受信する。また、追跡結果表示部114は、追跡結果に対応する画像を画像データ蓄積部104から読み出し、読み出した追跡結果およびアノテーションの角度を基に、画像データ蓄積部104から読み出した画像に追跡結果を描画し、表示データを作成する。追跡結果表示部114は、作成した表示データを表示装置102に送信する。
アノテーション作成部105、学習部109、検出部111、検出紐付け部112、追跡結果表示部114は、例えば、CPU(Central Processing Unit)等の演算装置から構成された制御部がプログラムを実行することにより、これらの各部の機能が実現される。例えば、制御部は、アノテーション作成部105、学習部109、検出部111、検出紐付け部112、追跡結果表示部114の各機能を実現するためのプログラムやモジュールを、図示しないメモリにロードして実行する。
上記プログラムは、図示しないネットワークインタフェースを介してネットワークから追跡装置にダウンロードされ、メモリ上にロードされて、制御部により実行されるようにしてもよい。また、CD(Compact Disk)やDVD(Digital Versatile Disk)等の可搬性を有するコンピュータで読み取り可能な記憶媒体に対して情報を読み書きする読書装置を介して、当該記憶媒体からメモリ上に直接ロードされ、制御部により実行されるようにしてもよい。さらには、上記プログラムを、コンピュータにインストール可能な形式又は実行可能な形式のファイルで上記記憶媒体に記録して提供したり、配布してもよい。さらには、上記プログラムを、通信ネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供したり、配布してもよい。
図2は、本実施形態で用いられるアノテーション作成のフローを示す図である。以下でアノテーション作成のフローについて説明する。
ステップ200では、ユーザーのアノテーション開始操作により、アノテーションの作成を開始する。
ステップ201では、アノテーション作成部105が、アノテーション対象となる画像を画像データ蓄積部104から取得する。対象となる画像の選択には、例えば、入力装置101が、ユーザーから対象となる画像のIDの指定を受け付けて、指定された画像のIDをアノテーション作成部105に指示する方法がある。
ステップ202では、アノテーション作成部105が、上記指定されたアノテーション対象の画像に対する過去のアノテーションデータを、アノテーション蓄積部106から取得する。画像とアノテーションとの対応付けは、例えば、アノテーションデータとして画像IDを保持しておき、画像と紐付ける方法がある。取得するアノテーションデータには、例えば、人物の座標や人物の大きさを示すアノテーション情報が含まれる。一枚の画像に対して複数のアノテーション情報がある場合には、アノテーション作成部105は、当該画像IDに対応する全てのアノテーション情報を取得する。
ステップ203では、アノテーション作成部105は、ステップ202で取得したアノテーションデータを角度計算部108に送信する。送信するデータには、例えば、アノテーションとしてアノテーション対象領域である人物領域を矩形で囲い、矩形の底辺中心を人物の足元として、その画像上の座標(xfoot, yfoot)を示すアノテーション情報が含まれる。
ステップ204では、角度計算部108が、カメラパラメータ蓄積部107からカメラパラメータを取得する。取得するカメラパラメータには、例えば、全方位カメラ100の設置高さhやピッチ角α、ロール角β、ヨー角γ、カメラのレンズ中心座標(xcenter, ycenter)といった全方位カメラ100の設置環境に関する外部パラメータ、カメラモデルに沿ったパラメータ(例えば、人物の歪を修正するためのパラメータ)といった全方位カメラ100に固有の設定に関する内部パラメータが含まれる。
ステップ205では、角度計算部108が、ステップ203で受信したアノテーションデータおよびステップ204で受信したカメラパラメータに基づいて、アノテーションの角度を計算する。角度の計算には、例えば以下の方法で行う。説明に出てくる座標や角度は図8に示す。
まず、角度計算部108は、受信したアノテーションデータに含まれるアノテーション情報である座標(xfoot, yfoot)を、全方位カメラ100の外部パラメータおよび内部パラメータを用いて世界座標(Xfoot, Yfoot, 0)に変換する。変換には、例えば、全方位カメラ100のキャリブレーション手法を用いる。角度計算部108は、変換して得られた世界座標(Xfoot, Yfoot, 0)に対して、垂直上方向の座標(Xfoot, Yfoot, H)を設定する。このHは、0から十分離れていればよく、人物の頭の座標など特定の座標を得る必要はない。角度計算部108は、世界座標(Xfoot, Yfoot, H)に対して、外部パラメータおよび内部パラメータを用いて、画像上の座標(xh, yh)に変換する。図8において、二つの座標(xfoot, yfoot)と(xh, yh)を結んだ直線と垂直な直線のなす角度θが求める角度である。
ステップ206では、角度計算部108は、ステップ205で計算したアノテーションの角度をアノテーション作成部105に送信する。
ステップ207では、アノテーション作成部105が、ステップ202で取得したアノテーションデータと、ステップ206で受信したアノテーションの角度とに基づいて、アノテーション対象の画像に矩形を描画する。矩形の描画には、例えば、アノテーションデータに含まれるアノテーション情報が人物の中心座標と大きさである場合、中心座標と大きさから矩形の四隅の座標を計算し、各座標を角度に基づいて回転し、回転した座標を線分で結ぶ方法を用いる。
ステップ208では、アノテーション作成部105が、ステップ207で作成した矩形描画済みの画像を含むアノテーションデータを表示装置102に送信する。ユーザーは、表示装置102に表示された画像を確認し、入力装置101を介してアノテーションデータの追加や修正、削除を行う。例えば、ユーザーは、マウスのドラッグ操作を行って、アノテーションデータの追加や修正を行う。
ステップ209では、アノテーション作成を終了するか続行するかをユーザーが決定する。例えば、入力装置101が、ユーザーからアノテーション作成のために受け付けたドラッグ操作が終了した旨を出力する。アノテーション作成部105は、当該終了した旨を受け取ったか否かを判定し、当該終了した旨を受け取ったと判定した場合(ステップ209;Yes)、ユーザーがアノテーション作成を終了したと判断し、ステップ212に進む。一方、アノテーション作成部105は、当該終了した旨を受け取っていないと判定した場合(ステップ209;No)、ユーザーがアノテーション作成を続行していると判断し、ステップ210に進む。
ステップ210では、アノテーション作成部105が、ユーザーがアノテーション作成を続行していると判定した場合に、入力装置101は、引き続き、ユーザーから入力装置101を介してアノテーションデータの入力を受け付ける。アノテーションデータの入力は、例えば、ユーザーが人物領域を矩形で入力する方法がある。
ステップ211では、入力装置101が、ステップ210でユーザーから入力されたアノテーションデータをアノテーション作成部105に送信する。アノテーション作成部105は、当該アノテーションデータを受信すると、ステップ202の場合と同様に、アノテーション対象の画像と、当該画像のIDとを紐付けしたアノテーションデータを出力する。その後、再びステップ203が開始し、アノテーション作成部105は、アノテーションの角度の計算とアノテーション結果の描画および表示を行う。
このサイクルは、ユーザーが一つのアノテーションデータの入力を終えてから一回実行されてもよいし、ユーザーがアノテーションデータを入力途中であってもリアルタイムにサイクルを実行してもよい。ユーザーの入力途中にリアルタイムで処理を実行することで、ユーザーはその時点での角度を考慮したアノテーションデータを確認することができ、アノテーション作業が容易になる。
ステップ212では、アノテーション作成部105が、ユーザーがアノテーション作成を終了したと判定した場合、その時点でのアノテーションデータを出力し、アノテーション蓄積部106に送信する。アノテーションデータの作成については、ステップ202、ステップ211と同様の方法で行われる。
ステップ213では、アノテーション作成部105は、アノテーション蓄積部106に、作成したアノテーションデータを保存する。本実施形態におけるステップ212およびステップ213によるアノテーションデータの保存は、アノテーション作成終了の時点で行われるが、一つのアノテーションを作成する毎にステップ212およびステップ213を実行し、保存してもよい。
ステップ214では、アノテーション作成部105は、アノテーション作成を終了する。
本実施形態のアノテーション作成は、人物が映る方向をカメラの内部パラメータおよび外部パラメータから計算して、人物の向きおよび範囲を正しくアノテーションする。すなわち、角度計算部108が、撮像画像を撮像する全方位カメラ100のパラメータに基づいて、撮像画像の中から取得されたアノテーション対象の画像内の物体をアノテーションするアノテーション対象領域の角度を算出し、アノテーション対象の画像を取得し、アノテーション作成部105が、画像内の物体のアノテーション対象領域の角度と画像とに基づいて、物体のアノテーション対象領域を生成し、学習部109が、アノテーション対象領域の角度に基づいて、物体の検出に必要なパラメータの更新を行うことにより、画像とアノテーション対象領域の対応関係を学習する。この方法をとることによって、物体検出の学習を行う際に、学習部109が適切な範囲を対象物体として学習するため、検出精度が向上する。
図3は、本実施形態で用いられる学習のフローを示す図である。以下で学習のフローについて説明する。
ステップ300では、ユーザーの学習開始操作により、学習を開始する。
ステップ301では、学習部109が、画像データ蓄積部106から学習対象となる画像を取得する。取得する枚数は、一枚でもよいし、複数枚でもよい。
ステップ302では、学習部109が、アノテーション蓄積部106からステップ301で取得した学習対象の画像に対するアノテーションデータを取得する。画像とアノテーションデータの紐付けを行うには、例えば、学習部109が、学習対象の画像のIDをアノテーション蓄積部106に送信し、アノテーション蓄積部106の中から当該画像のIDを含むアノテーションデータを検索する方法がある。
ステップ303からステップ306は、図2のアノテーション作成フローにおけるステップ203からステップ206と同様であり、データの送信およびアノテーションの角度の受信をアノテーション作成部105ではなく、学習部109が行う。また、例えば、学習部109が畳み込み演算により画像特徴量を抽出する場合、ステップ303で送信されるデータは畳み込みを行う座標である。
ステップ307では、学習部109が、角度計算部108から受信したアノテーションの角度に基づいて、人物検出に必要なパラメータの更新を行う。パラメータの更新方法として、例えば、畳み込み演算におけるカーネルを、角度計算部108から受信したアノテーションの角度に基づいて回転させる方法がある。以下で3×3のカーネルを用いて、画像上の座標(xc, yc)における畳み込みの計算方法を説明する。座標(x, y)におけるピクセル値をI(x, y)、3×3のカーネルの中心を(0, 0)としてカーネルをk(x, y)とすると畳み込みの出力cout(xc, yc)は以下のようになる。
ここで、(x, y)を(xc, yc)を中心として角度θ回転させた座標を(xr(θ, xc, yc, x, y), yr(θ, xc, yc, x, y))とすると、カーネルを回転させた畳み込みの出力は以下のようになる。
ただし、座標(xr(θ, xc, yc, x, y), yr(θ, xc, yc, x, y))が整数でない場合、Bilinear interpolationなどの手法を用いて画素値を補完する。この計算により、カーネルの値を更新する。
ステップ308では、学習部109は、学習を終了するか続行するかを判定する。ユーザーから入力装置101が受け付けた指示に従って、学習部109が学習を中断してもよいし、予めユーザーが学習回数を決定しておき、学習部109が当該回数に達したか否かを判定することにより、学習の終了を判断してもよい。
ステップ309では、学習部109が、学習を終了すると判定した場合(ステップ308;Yes)、学習したパラメータを学習結果蓄積部110に送信する。一方、学習部109は、学習を続行すると判定した場合(ステップ308;No)、ステップ301に戻り、以降の処理を繰り返す。
ステップ310では、学習部109は、学習結果蓄積部110に上記パラメータを保存する。
ステップ311では、学習部109は、学習を終了する。
本実施形態の学習は、画像上の各位置において、その位置に適切な角度を考慮した学習である。角度を考慮した学習を行うことによって、例えば、畳み込み演算で画像特徴量を抽出した場合、人物が異なる方向に映っていたとしても、同一のカーネルで同一の特徴量を抽出することができる。また、学習部109がConvolutional neural networkである場合、カーネルを回転させてReceptive fieldを正しい範囲に限定することによって、検出器の検出精度が向上する。
図4は、本実施形態で用いられる追跡のフローを示す図である。以下で追跡のフローについて説明する。
ステップ400では、ユーザーの追跡開始操作により、追跡を開始する。
ステップ401では、検出部111が、学習結果蓄積部110から、ステップ307で更新された学習済みパラメータを受け取る。検出部はこのパラメータを用いて人物の検出を行う。パラメータは、例えば、Convolutional neural networkのカーネルやバイアスである。
ステップ402では、検出部111が、検出対象となる画像を画像蓄積部106から取得する。追跡を継続している間、検出部111は、全方位カメラ100により連続的に撮影された画像を順次取得する。
ステップ403では、検出部111が、人物の検出を行う。検出部111は、例えば、Convolutional neural networkで構成され、検出結果として人物の位置を表す座標と、人物の大きさを表す幅および高さ、検出領域が人物であるかどうかを表す信頼度を含む検出データを出力する。
ステップ404では、検出部111が、検出した結果を含む検出データ検出紐付け部112に送信する。検出部111が送信する検出データは、例えば、検出対象の画像と検出した人物の画像上の座標と大きさ、検出領域が人物であるかどうかを表す信頼度を含む。 ステップ405からステップ408は、図2のアノテーション作成フローにおけるステップ203からステップ206と同様であり、データの送信およびアノテーションの角度の受信を、アノテーション作成部105ではなく、検出紐付け部112が行う。また、ステップ405で送信される検出データは、例えば、検出部111が検出した人物の座標である。この座標は、人物の足元ではなく、人物の中心座標となるため、検出紐付け部112は、変換後の世界座標を人物の平均身長haveなどを用いて、(Xbody, Ybody, have/2)とz軸方向を近似する。
ステップ409では、検出紐付け部112が、検出部111から受信した検出データおよび角度計算部108から受信したアノテーションの角度を用いて、人物領域を決定し、領域の特徴量を計算する。特徴量の抽出方法は、例えば、検出データと角度から人物の領域を矩形で表し、矩形内の特徴量を抽出する。特徴量の計算には色ヒストグラムや画像勾配ヒストグラムを用いてもよいし、機械学習手法を用いた特徴量抽出を用いてもよい。
ステップ410では、検出紐付け部112は、現在のフレームにおける検出データと、過去の別時間におけるフレームの検出データとを紐付ける。紐付けには、例えば、検出結果の座標のユークリッド距離を計算し、ユークリッド距離が近い検出データを紐付けたり、ステップ409で抽出された特徴量のユークリッド距離を計算して、ユークリッド距離が近い検出データを紐付けたりする方法がある。
ステップ411では、検出紐付け部112は、検出データの紐付け結果を追跡結果蓄積部113に送信する。検出データの紐付け結果は、例えば、検出データに含まれる同一人物に同一のIDを割り当て、人物IDとして保存する方法がある。また、検出データがどの画像のものであるかを識別するため、検出紐付け部112は、例えば、検出データに画像IDを紐付けて保存しておく。
ステップ412では、検出紐付け部112は、追跡結果蓄積部113に、検出データの紐付け結果を追跡データとして保存する。
ステップ413では、検出紐付け部112は、追跡を終了するか続行するかを判定する。ユーザーから入力装置101が受け付けた指示に従って、検出紐付け部112が追跡を中断してもよいし、予めユーザーが追跡する時間を決定しておき、検出紐付け部113が当該時間に達したか否かを判定することにより、追跡の終了を判断してもよい。
ステップ414では、検出紐付け部112は、追跡を中断すると判定した場合(ステップ413;Yes)、追跡を終了する。一方、検出紐付け部112は、追跡を中断すると判定しない場合(ステップ413;No)、ステップ402に戻り、以降の処理を繰り返す。
本実施形態の追跡は、検出部111が出力する検出結果および角度計算部108により計算される角度を用いて人物の向きおよび範囲を正しく決定し、特徴量を抽出する。この方法を用いることによって、特徴量に背景など人物以外の影響が入ることを抑制し、人物の特徴量を正しく抽出できるようになる。その結果、検出紐付けの精度が向上し、追跡精度が向上する。
図5は、本実施形態で用いられる追跡結果表示のフローを示す図である。以下で追跡結果表示のフローについて説明する。
ステップ500では、ユーザーの追跡結果表示開始操作により、追跡結果の表示を開始する。
ステップ501では、追跡結果表示部114が、追跡結果表示対象の画像を取得する。
ステップ502では、追跡結果表示部114が、追跡結果蓄積部113から追跡データを取得する。取得する追跡データには、追跡結果として、例えば、人物の位置を表す座標や大きさを表す幅と高さ、人物ID、検出対象となった画像IDが含まれる。
ステップ503からステップ506は、図4の追跡フローにおけるステップ405からステップ408と同様であり、データの送信およびアノテーションの角度の受信を、検出紐付け部112ではなく、追跡結果表示部114が行う。
ステップ507では、追跡結果表示部114が、追跡結果蓄積部113から受信した追跡データおよび角度計算部108から受信したアノテーションの角度を用いて、追跡データに含まれる追跡結果を、ステップ501で取得した追跡対象画像に描画する。追跡結果の表示には、例えば、追跡結果表示部114は、追跡結果の座標を中心とし、追跡結果の幅と高さを持つ矩形を作成し、垂直方向から追跡結果の角度だけ回転させて追跡対象画像に描画する。また、人物IDに基づいて矩形の色を変化させ、異なる人物の識別を容易にする方法がある。
ステップ508では、追跡結果表示部114が、ステップ507で作成した画像を表示装置102に送信する。
ステップ509では、表示装置102が、追跡結果をユーザーに表示する。
ステップ510では、追跡結果表示部114は、追跡結果の表示を終了するか続行するかを判定する。ユーザーから入力装置101が受け付けた指示に従って、追跡結果表示部114が追跡結果の表示を中断してもよいし、予めユーザーが追跡結果を表示する時間を決定しておき、追跡結果表示部114が当該時間に達したか否かを判定することにより、追跡結果表示の終了を判断してもよい。
ステップ511では、追跡結果表示部114は、追跡結果表示を終了する。
本実施形態の追跡結果表示は、追跡結果蓄積部113が保存している追跡結果および角度計算部108により計算されるアノテーションの角度を用いて人物の向きおよび範囲を正しく決定し、ユーザーに提供する。この方法により、例えば、人物を切り出して表示する場合、背景領域の映りこむ割合を減少させることができる。また、人物領域を切り出し、追跡結果の角度に基づいて領域を回転させることで、全ての人物を垂直上向きに表示することが可能となり、ユーザーが人物を探す際の視認性が向上する。
図6は、本実施形態で用いられるカメラパラメータ蓄積部107のデータ蓄積方法の一例である。カメラパラメータ蓄積部107は、全方位カメラ100ごとに、カメラパラメータ600として、カメラの設置高さや設置時のパン、チルト、ロールの角度などの外部パラメータ、およびカメラ毎に異なる内部パラメータを蓄積しておく。角度計算部108は、これらのパラメータを用いて人物の映る角度を計算する。このデータ蓄積方法を用いると、角度を求める際に毎回複雑な計算を行うため処理量が多くなるが、蓄積しておくデータが少量になり、データの蓄積に必要な容量を削減することができる。
図7は、本実施形態で用いられるカメラパラメータ蓄積部107のデータ蓄積方法の他の一例である。カメラパラメータ蓄積部107は、全方位カメラ100ごとに、カメラパラメータ700として、予め外部パラメータおよび内部パラメータを用いて計算された座標に対する角度と、座標との対応関係を蓄積しておく。この方法では、全ての座標に対して対応する角度を蓄積しておく必要があるため、蓄積しておくデータは多くなるが、角度計算部108は、この対応関係を用いて角度を出力するので、メモリの参照一回で角度を求めることができ、処理量を減らすことができる。
図8は、本実施形態における、アノテーション作成の表示画面800および表示画面800と一致するカメラ周囲の状況を示す説明図801である。アノテーション作成では、例えば、ユーザーが入力装置101を用いて人物領域に矩形を描画し、人物の位置および大きさをアノテーションする。アノテーション作成部105は、全方位カメラ100の画像を透視投影変換することなくアノテーション作成を行うことにより、変換による歪みが発生せず、全領域で正しくアノテーション作成ができる。これにより、学習部109は、画像の全領域で正しく学習を行うことができ、検出部111は、全領域で正しい検出を行うことができる。
このように、実施例1では、カメラの内部パラメータや外部パラメータを考慮した物体の検出、魚眼カメラ特有の映り方を考慮した物体の検出、あるいは検出学習器と画像勾配を組み合わせた物体の検出により物体の向きおよび範囲を正しく決定することができる。
本実施形態では、物体追跡システムの一例として、人物の追跡を行い、撮像装置に全方位カメラを用いる例を説明する。全方位カメラは、パンおよびチルトが0度となるように設置されている。追跡対象は人物である必要はない。
図9は、本実施形態で用いられるカメラパラメータ蓄積部107のデータ蓄積方法の一例である。カメラパラメータ蓄積部107は、全方位カメラ100ごとに、カメラパラメータ900として、カメラのレンズ中心の画像上の座標を蓄積しておく。
角度計算部108における角度の計算方法を以下で説明する。説明に出てくる座標や角度は図10に示す。カメラパラメータに蓄積されているカメラのレンズ中心の画像上の座標を(xc, yc)とする。アノテーションにおいて、例えば人物領域を矩形で選択する場合、矩形の中心座標を(x, y)とすると、(x, y)と(xc, yc)を結ぶ直線が垂直な直線となす角θは、以下の関係がある。
本実施形態は、全方位カメラ100を用いて、パンおよびチルトが0度となるような状況において、角度の計算を簡略化する方法である。本実施形態の角度計算方法を用いれば、カメラパラメータとしてカメラのレンズ中心の画像上の座標のみを蓄積しておけばよく、事前に必要なパラメータの取得が容易になり、蓄積しておくデータは少量になる。また、カメラの内部パラメータと外部パラメータから角度を算出する方法と比較して、処理量が少なくなる。
図10は、本実施形態における、アノテーション作成の表示画面を示す。表示画面1000は、実施例1と同様に、透視投影変換されていない。アノテーション作成部105は、全方位カメラ100の画像を透視投影変換することなくアノテーション作成を行うことにより、変換による歪みが発生せず、全領域で正しくアノテーション作成ができる。これにより、学習部109は、画像の全領域で正しく学習を行うことができ、検出部111は、全領域で正しい検出を行うことができる。また、実施例1では、角度計算部108が角度を計算する際に人の実際の身長ではなく、平均身長を用いており、角度に誤差が生じるが、本実施形態では矩形の中心座標を用いるだけなので、実施例1で生じる角度の誤差は生じない。
本実施形態では、物体追跡システムの一例として、航空機の追跡を行い、撮像装置にBOXカメラを用いる例を説明する。追跡する物体および撮像装置は、物体の画像勾配から物体の角度が計算可能であるものであればよい。
図11は、本実施形態で用いられる構成例を示す図である。図に示すように本実施形態の物体追跡システム2は、図1における物体追跡システムの追跡装置103が追跡装置1100となったものである。追跡装置1100は、追跡装置103と比較して、アノテーション作成部105がアノテーション作成部1101に、カメラパラメータ蓄積部107が画像勾配蓄積部1102に、角度計算部108が角度計算部1103に変更された。以下で変更された各ブロックについて説明する。
アノテーション作成部1101は、追跡対象である航空機の様々な角度における画像勾配を計算する。アノテーション作成部1101は、計算した画像勾配を、画像勾配蓄積部1102に送信する。
画像勾配蓄積部1102は、アノテーション作成部1101で作成された物体の画像勾配の情報を保存する。保存された画像勾配は、角度計算の際に、角度計算部1103から読み出される。
角度計算部1103は、角度計算の際に画像勾配蓄積部1102から画像勾配を読み出し、角度計算対象の画像勾配と比較して角度を計算する。計算された角度は、実施例1と同様にアノテーション作成部1101や検出紐付け部112、追跡結果表示部114に送信され、アノテーション作成や検出紐付け、追跡結果の表示に利用される。
図12は、本実施形態で用いられる角度計算のための画像勾配データ作成のフローを示す図である。以下で画像勾配データ作成のフローについて説明する。
ステップ1200では、ユーザーの画像勾配データ作成開始操作により、画像勾配データの作成を開始する。
ステップ1201では、アノテーション作成部1101が、追跡対象の物体の画像を画像データ蓄積部104から取得する。取得する画像は、例えば、検出対象の物体が同一方向に切り出された画像(例えば、同じ方向に向いている航空機の画像)である。
ステップ1202では、アノテーション作成部1101が、対象物体を切り出した画像の画像勾配を計算する。画像勾配の計算方法は、例えば、Histogram of gradientがある。
ステップ1203では、アノテーション作成部1101は、対象物体の画像を一定角度回転させる。
ステップ1204では、アノテーション作成部1101が、ステップ1203の画像回転により画像が一回転したかどうかを判定する。アノテーション作成部1101は、画像がまだ一回転していないと判定した場合(ステップ1204;No)、ステップ1202に戻り、回転させた画像の画像勾配を計算する。一方、アノテーション作成部1101は、画像がまだ一回転したと判定した場合(ステップ1204;Yes)、次のステップに進む。
ステップ1205では、アノテーション作成部1101が、計算した画像勾配を画像勾配蓄積部に送信する。送信する際には、計算した画像勾配と計算時に使用した画像の回転角度を組み合わせて送信する。
ステップ1206では、画像勾配蓄積部1102がアノテーション作成部1101から受け取った角度と画像勾配の組み合わせを保存する。
ステップ1207では、アノテーション作成部1101は、画像勾配データ作成を終了する。
本実施形態は、物体の向きが画像勾配から容易に計算できる物体の追跡において、画像勾配を用いて角度の計算を行う方法である。この方法を用いると、実施例1で必要であったカメラの設置パラメータの収集を行う必要がない。また、実施例2のような設置状況の制約はなく、様々な状況で角度を計算することができる。
図13は、本実施形態で用いられる画像勾配蓄積部1102のデータ蓄積方法の一例である。画像勾配蓄積部1102は、画像勾配データ1300として、Histogram of gradientを画像勾配計算時の画像の角度、ヒストグラムインデックス、ヒストグラムの値を対応付けて保存している。この保存方法を用いると、角度と画像勾配の組み合わせを容易に抽出可能であり、角度計算部108が画像勾配から角度を計算することが容易になる。
図14は、本実施形態における、アノテーション作成の表示画面1400および画像勾配から角度を計算する方法を示す説明図1401である。アノテーション作成では、例えば、ユーザーが入力装置101を用いて航空機領域に矩形を描画し、航空機の位置および大きさをアノテーションする。アノテーション作成部1101は、矩形で囲まれた領域Rに対して画像勾配を計算する。アノテーション作成部1101は、画像勾配蓄積部1102から角度と画像勾配の組み合わせを取得し、矩形で囲まれた領域と画像勾配蓄積部1102から取得した画像勾配の比較を行う。アノテーション作成部1101は、例えば、画像勾配ヒストグラムのユークリッド距離を計算し、ユークリッド距離が最も近い画像勾配ヒストグラムに対応する角度を物体の角度とする。
本実施形態における、アノテーション作成は、実施例1や実施例2と同様に、透視投影変換されていない。全方位カメラ100の画像を透視投影変換することなくアノテーション作成を行うことにより、変換による歪みが発生せず、全領域で正しくアノテーション作成ができる。これにより、学習部109は画像の全領域で正しく学習を行うことができ、検出部111は全領域で正しい検出を行うことができる。
本実施形態では、物体追跡システムの一例として、人物の追跡を行い、学習部および検出部に基準矩形からのずれを計算する検出器を用いる場合について説明する。追跡する物体は人物である必要はなく、カメラ画像に映る物体の位置により、物体の大きさが決定できるものであればなんでもよい。
図15は、本実施形態で用いられる構成例を示す図である。図に示すように本実施形態の物体追跡システム3は、図1における物体追跡システムの追跡装置103が追跡装置1500となったものである。追跡装置1500は、追跡装置103と比較して、大きさ計算部1501が追加された。以下で変更された大きさ計算部について説明する。
大きさ計算部1501は、カメラパラメータあるいは作成されたアノテーションデータからカメラに映る人物の大きさを計算する。例えば、カメラパラメータを用いる場合、大きさ計算部1501は、角度計算におけるステップ205の画像上の座標と世界座標の変換と同様にして、画像上の座標を世界座標に変換し、世界座標上で人物の平均身長や平均幅を用いて人物の大きさを表す世界座標を取得し、画像上の座標に戻すことによって、画像上の座標と人物の大きさの関係を計算することができる。その他に、例えば、アノテーションデータを用いる場合、大きさ計算部1501は、アノテーションデータに含まれる画像内のアノテーション領域の位置と大きさの対応関係を線形回帰により定式化し、画像上の座標と人物の大きさの関係を計算することができる。大きさ計算部1501は、学習部109や検出紐付け部112から画像上の座標を受信し、対応する大きさを送信する。
図16は、本実施形態で用いられる学習のフローを示す図である。本実施形態における学習のフローは、実施例1の図3における学習フローに、ステップ1600とステップ1601が追加されている。以下で各ステップについて説明する。
ステップ1600では、学習部109が、大きさ計算部1501から画像上の各座標における大きさを取得する。
ステップ1601では、学習部109は、大きさ計算部1501から取得した大きさを基に、各座標における基準矩形を設定する。学習部109は、この基準矩形を用いて学習を行う。
本実施形態の学習は、学習部109が学習を行う際の基準矩形を画像の位置によって適応的に変化させる手法である。基準矩形を用いた物体の検出では、学習部109は、予め各位置に基準矩形を設定し、検出器111は、基準矩形からのずれを推定する。学習では、検出器111がこのずれを正しく推定できるように学習させる。一般的に、基準矩形は位置によらず一定の大きさで設定する。しかし、画像上の物体は位置によって大きさが変化するため、一定の大きさの矩形を用いると、位置によって基準矩形からのずれが大きくなり、推定が困難になる。しかし、本実施形態のように位置によって基準矩形を適応的に設定することで、推定する基準矩形からのずれは小さくなり、検出精度が向上する。
図17は、本実施形態で用いられる追跡のフローを示す図である。本実施形態における追跡のフローは、実施例1の図4における追跡フローに、ステップ1700とステップ1701が追加されている。以下で各ステップについて説明する。
ステップ1700では、検出紐付け部112が、大きさ計算部1501から画像上の各座標における大きさを取得する。
ステップ1701では、検出紐付け部112が、検出データの大きさと大きさ計算部1501から取得した大きさを比較することで、特徴量の信頼度を決定する。信頼度は、例えば、検出紐付けの際に、検出紐付けに特徴量を用いるかどうかの判定や、検出紐付けに用いる場合の特徴量の重み付けに用いられる。
本実施形態の追跡は、検出紐付け部112が、大きさ計算部1501により計算した位置と大きさの関係と、検出データの位置と大きさの関係を比較することにより、物体が正しく映っているかを判定し、特徴量の信頼度を決定する。追跡対象が特定の物体であり、カメラが固定位置に設置されている場合、カメラに映る物体の大きさは位置によりある程度決定することができる。決定された大きさから逸脱している場合、物体が正しく映っていないと判断できる。物体が正しく映っていない場合、特徴量は正しく取得できないため、信頼度を低く設定する。このようにして特徴量の信頼度を決定することにより、検出紐付けの精度を向上できる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成は、それらの一部又は全部が、ハードウェアで構成されても、プロセッサでプログラムが実行されることにより実現されるように構成されてもよい。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
1、2、3 物体追跡システム
100 全方位カメラ
101 入力装置
102 表示装置
103、1100、1500 追跡装置
104 画像データ蓄積部
105、1101 アノテーション作成部
106 アノテーション蓄積部
107 カメラパラメータ蓄積部
108、1103 角度計算部
109 学習部
110 学習結果蓄積部
111 検出部
112 検出紐付け部
113 追跡結果蓄積部
114 追跡結果表示部
1102 画像勾配蓄積部
1501 大きさ計算部
100 全方位カメラ
101 入力装置
102 表示装置
103、1100、1500 追跡装置
104 画像データ蓄積部
105、1101 アノテーション作成部
106 アノテーション蓄積部
107 カメラパラメータ蓄積部
108、1103 角度計算部
109 学習部
110 学習結果蓄積部
111 検出部
112 検出紐付け部
113 追跡結果蓄積部
114 追跡結果表示部
1102 画像勾配蓄積部
1501 大きさ計算部
Claims (11)
- 撮像画像を撮像する撮像装置のパラメータに基づいて、前記撮像画像の中から取得されたアノテーション対象の画像内の物体をアノテーションするアノテーション対象領域の角度を算出する角度計算部と、
前記アノテーション対象の画像を取得し、前記画像内の物体のアノテーション対象領域の角度と前記画像とに基づいて、前記物体のアノテーション対象領域を生成するアノテーション作成部と、
前記アノテーション対象領域の角度に基づいて、前記物体の検出に必要なパラメータの更新を行うことにより、前記画像と前記アノテーション対象領域の対応関係を学習する学習部と、
を備えることを特徴とする物体追跡装置。 - 請求項1に記載の物体追跡装置であって、
前記アノテーション対象領域の特徴量を抽出し、抽出した前記特徴量に基づいて、前記アノテーション対象の画像を紐付けする検出紐付け部と、
紐付けられた前記アノテーション対象の画像を表示部に出力する追跡結果表示部と、
を備えることを特徴とする物体追跡装置。 - 請求項1に記載の物体追跡装置であって、
前記角度計算部は、前記撮像装置のパラメータとして、あらかじめ蓄積された、前記撮像装置の設置環境に関する外部パラメータと、前記撮像装置に固有の設定に関する内部パラメータとに基づいて、前記アノテーション対象領域の角度を計算する、
ことを特徴とする物体追跡装置。 - 請求項1に記載の物体追跡装置であって、
前記角度計算部は、あらかじめ蓄積された、前記アノテーション対象の画像における前記撮像装置のレンズ中心座標に基づいて、前記アノテーション対象領域の角度を計算する、
ことを特徴とする物体追跡装置。 - 請求項1に記載の物体追跡装置であって、
前記角度計算部は、あらかじめ蓄積された、前記アノテーション対象の画像の勾配に基づいて、前記アノテーションの角度を計算する、
ことを特徴とする物体追跡装置。 - 請求項1に記載の物体追跡装置であって、
前記学習部は、畳み込み演算により前記アノテーション対象領域の特徴量を抽出し、前記畳み込み演算におけるカーネルを、前記角度計算部により計算された前記アノテーション対象領域の角度に基づいて回転させることにより、前記パラメータを更新する、
ことを特徴とする物体追跡装置。 - 請求項2に記載の物体追跡装置であって、
前記アノテーション対象の画像上の位置と大きさの関係を計算する大きさ計算部を備え、
前記学習部は、前記大きさ計算部が計算した位置と大きさの関係に基づいて基準領域を設定し、
前記検出紐付け部は、前記基準領域に基づいて、前記抽出する前記アノテーション対象領域の特徴量の信頼度を決定することを特徴とする、
ことを特徴とする物体追跡装置。 - 請求項7に記載の物体追跡装置であって、
前記大きさ計算部は、前記アノテーション作成部が生成した前記アノテーション領域の位置と大きさの対応関係に基づいて、前記アノテーション対象の画像上の座標と物体の大きさの関係を計算する、
ことを特徴とする物体追跡装置。 - 請求項7に記載の物体追跡装置であって、
前記大きさ計算部は、前記撮像装置の設置環境に関する外部パラメータと、前記撮像装置に固有の設定に関する内部パラメータとに基づいて、前記位置と大きさの関係を計算する、
ことを特徴とする物体追跡装置。 - 撮像画像を撮像し、前記撮像画像を追跡装置に送信する撮像装置と、
前記撮像装置のパラメータに基づいて、前記撮像装置から受信した撮像画像の中から取得されたアノテーション対象の画像内の物体をアノテーションするアノテーション対象領域の角度を算出する角度計算部と、
前記アノテーション対象の画像を取得し、前記画像内の物体のアノテーション対象領域の角度と前記画像とに基づいて、前記物体のアノテーション対象領域を生成するアノテーション作成部と、
前記アノテーション対象領域の角度に基づいて、前記物体の検出に必要なパラメータの更新を行うことにより、前記画像と前記アノテーション対象領域の対応関係を学習する学習部と、を備えた前記追跡装置と、
を備えることを特徴とする物体追跡システム。 - アノテーション作成部が、撮像画像の中からアノテーション対象の画像を取得し、
角度計算部が、前記撮像画像を撮像する撮像装置のパラメータに基づいて、前記アノテーション対象の画像内の物体をアノテーションするアノテーション対象領域の角度を算出し、
前記アノテーション作成部が、前記画像内の物体のアノテーション対象領域の角度と前記画像とに基づいて、前記物体のアノテーション対象領域を生成し、
学習部が、前記アノテーション対象領域の角度に基づいて、前記物体の検出に必要なパラメータの更新を行うことにより、前記画像と前記アノテーション対象領域の対応関係を学習する、
ことを特徴とする物体追跡方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018118868A JP7028729B2 (ja) | 2018-06-22 | 2018-06-22 | 物体追跡装置、物体追跡システム、および物体追跡方法 |
JP2018-118868 | 2018-06-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019244536A1 true WO2019244536A1 (ja) | 2019-12-26 |
Family
ID=68983599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/019899 WO2019244536A1 (ja) | 2018-06-22 | 2019-05-20 | 物体追跡装置、物体追跡システム、および物体追跡方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7028729B2 (ja) |
WO (1) | WO2019244536A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7192582B2 (ja) * | 2019-03-11 | 2022-12-20 | オムロン株式会社 | 物体追跡装置および物体追跡方法 |
JP7459927B2 (ja) * | 2020-03-19 | 2024-04-02 | 日本電気株式会社 | 画像処理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013001941A1 (ja) * | 2011-06-27 | 2013-01-03 | 日本電気株式会社 | 物体検知装置、物体検知方法および物体検知プログラム |
JP2017045474A (ja) * | 2016-11-18 | 2017-03-02 | 株式会社ニコン | 電子機器 |
JP2017151281A (ja) * | 2016-02-25 | 2017-08-31 | 株式会社リコー | 画像表示システム、情報処理装置、プログラム |
JP2018097766A (ja) * | 2016-12-16 | 2018-06-21 | クラリオン株式会社 | 画像処理装置、外界認識装置 |
-
2018
- 2018-06-22 JP JP2018118868A patent/JP7028729B2/ja active Active
-
2019
- 2019-05-20 WO PCT/JP2019/019899 patent/WO2019244536A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013001941A1 (ja) * | 2011-06-27 | 2013-01-03 | 日本電気株式会社 | 物体検知装置、物体検知方法および物体検知プログラム |
JP2017151281A (ja) * | 2016-02-25 | 2017-08-31 | 株式会社リコー | 画像表示システム、情報処理装置、プログラム |
JP2017045474A (ja) * | 2016-11-18 | 2017-03-02 | 株式会社ニコン | 電子機器 |
JP2018097766A (ja) * | 2016-12-16 | 2018-06-21 | クラリオン株式会社 | 画像処理装置、外界認識装置 |
Also Published As
Publication number | Publication date |
---|---|
JP7028729B2 (ja) | 2022-03-02 |
JP2019220073A (ja) | 2019-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10810734B2 (en) | Computer aided rebar measurement and inspection system | |
JP4349367B2 (ja) | 物体の位置姿勢を推定する推定システム、推定方法および推定プログラム | |
US9519968B2 (en) | Calibrating visual sensors using homography operators | |
JP6428266B2 (ja) | 色補正装置、色補正方法および色補正用プログラム | |
JP2019028843A (ja) | 人物の視線方向を推定するための情報処理装置及び推定方法、並びに学習装置及び学習方法 | |
US20150262346A1 (en) | Image processing apparatus, image processing method, and image processing program | |
JP4951498B2 (ja) | 顔画像認識装置、顔画像認識方法、顔画像認識プログラムおよびそのプログラムを記録した記録媒体 | |
US10692291B2 (en) | Apparatus, method, and medium for generating a 3D model of a finger using captured image | |
US10249058B2 (en) | Three-dimensional information restoration device, three-dimensional information restoration system, and three-dimensional information restoration method | |
CN110926330A (zh) | 图像处理装置和图像处理方法 | |
US10586099B2 (en) | Information processing apparatus for tracking processing | |
JP6331270B2 (ja) | 情報処理システム、情報処理方法及びプログラム | |
WO2019244536A1 (ja) | 物体追跡装置、物体追跡システム、および物体追跡方法 | |
JP2016123044A (ja) | 被写体追跡装置、その制御方法およびプログラム | |
JP6541070B2 (ja) | 3次元情報復元装置及び3次元情報復元方法 | |
KR101868740B1 (ko) | 파노라마 이미지 생성 방법 및 장치 | |
JP2018036770A (ja) | 位置姿勢推定装置、位置姿勢推定方法、及び位置姿勢推定プログラム | |
JP7118729B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP2019012359A (ja) | 情報処理装置、プログラム及び情報処理方法 | |
JP2018093423A (ja) | 画像処理プログラム、画像処理装置および画像処理方法 | |
US11216961B2 (en) | Aligning digital images by selectively applying pixel-adjusted-gyroscope alignment and feature-based alignment models | |
JP2019106008A (ja) | 推定装置、推定方法、及び推定プログラム | |
JP2020098575A (ja) | 画像処理装置、画像処理方法、及び画像処理プログラム | |
JP2006113832A (ja) | ステレオ画像処理装置およびプログラム | |
JP2012027617A (ja) | パターン識別装置、パターン識別方法及びプログラム |
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: 19822697 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 10.03.2021) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19822697 Country of ref document: EP Kind code of ref document: A1 |