WO2022172341A1 - 物体検出装置、方法、及びプログラム - Google Patents

物体検出装置、方法、及びプログラム Download PDF

Info

Publication number
WO2022172341A1
WO2022172341A1 PCT/JP2021/004839 JP2021004839W WO2022172341A1 WO 2022172341 A1 WO2022172341 A1 WO 2022172341A1 JP 2021004839 W JP2021004839 W JP 2021004839W WO 2022172341 A1 WO2022172341 A1 WO 2022172341A1
Authority
WO
WIPO (PCT)
Prior art keywords
frame
unit
detection
index
target frame
Prior art date
Application number
PCT/JP2021/004839
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/004839 priority Critical patent/WO2022172341A1/ja
Priority to JP2022581061A priority patent/JPWO2022172341A1/ja
Priority to EP21925595.7A priority patent/EP4293611A1/en
Priority to US18/275,786 priority patent/US20240119605A1/en
Publication of WO2022172341A1 publication Critical patent/WO2022172341A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/215Motion-based segmentation
    • 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
    • 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
    • G06T7/248Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Definitions

  • the disclosed technology relates to an object detection device, an object detection method, and an object detection program.
  • CNN convolutional neural network
  • SSD Single Shot MultiBox Detector, Non-Patent Document 1
  • YOLO You Only Look Once
  • v3 Non-Patent Document 2
  • an input image is input to a CNN, which is an object detection model, and regions representing objects included in the input image are detected. If the input image contains multiple objects, a region is detected for each object.
  • the attribute of an object is the type of object such as a car, a person, a dog, or the like.
  • Non-Patent Document 3 In addition, in key frames, object detection is performed by CNN, in other frames, the feature map of the middle layer of CNN is predicted from the key frame by motion compensation, and for the layers after that, normal processing of CNN is performed. proposed (Non-Patent Document 3).
  • Non-Patent Document 3 has the problem that the amount of processing in the latter half of the CNN is large.
  • the motion compensation of the feature map does not work effectively for moving images with many small changes in motion, and the accuracy and efficiency of object detection decrease.
  • the disclosed technology has been made in view of the above points, and aims to improve efficiency without reducing accuracy in object detection for moving images.
  • a first aspect of the present disclosure is an object detection apparatus, in which each frame of a moving image including a plurality of frames is set as a target frame, and a motion vector is calculated over the entire target frame with reference to a reference frame.
  • a determination unit that determines whether the index is equal to or greater than a threshold; a first detection unit that detects an area indicating an object from the target frame using an object detection model when the index is equal to or greater than the threshold; a second detection unit for detecting a region on the target frame obtained by correcting the position of the region detected in the reference frame using the motion vector when the position of the region detected in the reference frame is less than a threshold; an output unit for outputting information on the area and information on the area detected by the second detection unit.
  • a second aspect of the present disclosure is an object detection method, wherein a calculation unit treats each frame of a moving image including a plurality of frames as a target frame, and detects motion based on a reference frame throughout the target frame.
  • a vector is calculated, and an index indicating the magnitude of change between the key frame and the target frame, which is represented using the motion vector, is calculated, and the determination unit determines whether the index calculated by the calculation unit is a first detection unit that detects an area indicating an object from the target frame using an object detection model if the index is equal to or greater than the threshold;
  • 2 a detection unit detects an area on the target frame obtained by correcting the position of the area detected in the reference frame using the motion vector when the index is less than the threshold; It is a method of outputting information on the area detected by the first detection unit and information on the area detected by the second detection unit.
  • a third aspect of the present disclosure is an object detection program, which is a program for causing a computer to function as each part of the above object detection device.
  • FIG. 1 is a block diagram showing an example of a functional configuration of an object detection device according to a first embodiment
  • FIG. FIG. 4 is a diagram for explaining a method of detecting an area indicating an object from a target frame using a reference frame and motion vectors
  • 4 is a flowchart showing the flow of object detection processing in the first embodiment
  • FIG. 6 is a block diagram showing an example of the functional configuration of an object detection device according to a second embodiment
  • FIG. FIG. 4 is a diagram for explaining generation of partial images and reduced images
  • 9 is a flowchart showing the flow of object detection processing in the second embodiment
  • 9 is a flowchart showing the flow of object detection processing in the second embodiment
  • the object detection apparatus calculates a motion vector for each frame of a moving image to be subjected to object detection, and uses the motion vector to calculate an index indicating the magnitude of change between frames. If the index is large, the object detection device performs object detection using the object detection model, and if not, corrects and outputs the position information of the object detection result of the reference frame used as the basis for calculating the motion vector. As a result, efficient processing is realized while avoiding deterioration in object detection accuracy due to appearance of new objects and deformation of objects.
  • FIG. 1 is a block diagram showing the hardware configuration of the object detection device 10 according to the first embodiment.
  • the object detection device 10 includes a CPU (Central Processing Unit) 11, a ROM (Read Only Memory) 12, a RAM (Random Access Memory) 13, a storage 14, an input unit 15, a display unit 16, and communication It has an I/F (Interface) 17 .
  • Each component is communicatively connected to each other via a bus 19 .
  • the CPU 11 is a central processing unit that executes various programs and controls each part. That is, the CPU 11 reads a program from the ROM 12 or the storage 14 and executes the program using the RAM 13 as a work area. The CPU 11 performs control of each configuration and various arithmetic processing according to programs stored in the ROM 12 or the storage 14 .
  • the ROM 12 or storage 14 stores an object detection program for executing object detection processing, which will be described later.
  • the ROM 12 stores various programs and various data.
  • the RAM 13 temporarily stores programs or data as a work area.
  • the storage 14 is composed of storage devices such as HDD (Hard Disk Drive) and SSD (Solid State Drive), and stores various programs including an operating system and various data.
  • the input unit 15 includes a pointing device such as a mouse and a keyboard, and is used for various inputs.
  • the display unit 16 is, for example, a liquid crystal display, and displays various information.
  • the display unit 16 may employ a touch panel system and function as the input unit 15 .
  • the communication I/F 17 is an interface for communicating with other devices.
  • the communication uses, for example, a wired communication standard such as Ethernet (registered trademark) or FDDI, or a wireless communication standard such as 4G, 5G, or Wi-Fi (registered trademark).
  • FIG. 2 is a block diagram showing an example of the functional configuration of the object detection device 10.
  • the object detection apparatus 10 has, as a functional configuration, an input unit 21, a calculation unit 22, a reference frame buffer 23, a motion vector buffer 24, a determination unit 25, and an image formation unit 26. have.
  • the object detection device 10 has a first detection section 27, a second detection section 28, a detection result buffer 29, and an output section 30 as functional configurations.
  • Each functional configuration is realized by the CPU 11 reading out an object detection program stored in the ROM 12 or the storage 14, developing it in the RAM 13, and executing it.
  • the input unit 21 receives a moving image input to the object detection device 10, and sequentially outputs each frame constituting the moving image as an input image to the calculating unit 22 and the image forming unit 26 in chronological order of the moving image.
  • the frame of the frame number n is described as "frame n".
  • the input unit 21 sets the frame n as the target frame.
  • the calculation unit 22 receives the target frame output from the input unit 21 and calculates a motion vector for the entire target frame, that is, for the entire input image based on the reference frame stored in the reference frame buffer 23 .
  • the reference frame buffer 23 stores a reference frame which is a frame preceding the target frame in chronological order and serves as a reference when the motion vector is calculated by the calculation unit 22 .
  • the reference frame is the frame immediately preceding the target frame, that is, the reference frame for frame n is frame n ⁇ 1.
  • the calculation unit 22 performs a motion search between the target frame and the reference frame, and calculates a motion vector field V(n) represented by a motion vector for each block obtained by dividing the entire target frame (frame n).
  • a block is a minimum unit area for obtaining a motion vector. For example, it may be a block having sx pixels in the horizontal direction and sy pixels in the vertical direction.
  • a method of motion search conventionally known methods such as a method using block matching and a method using gradients may be used, and the method is not limited in the first embodiment.
  • the calculator 22 stores the calculated motion vector field V(n) in the motion vector buffer 24 .
  • the calculation unit 22 also calculates an index indicating the magnitude of change between the key frame and the target frame, which is expressed using motion vectors.
  • a key frame is a frame that is the closest to the target frame, among the frames for which object detection is performed by the object detection model in the first detection unit 27, which will be described later.
  • the calculation unit 22 calculates the error between the target frame and the motion-compensated prediction image generated using the reference frame and the calculated motion vector field as an index between the reference frame and the target frame.
  • An index indicating the magnitude of motion compensation prediction error may be calculated.
  • the calculating unit 22 may calculate the sum of absolute prediction difference values sad(n) of the entire target frame (frame n) as the prediction error of motion compensation, for example, shown in the following equation (1).
  • I (c, n, x, y) is the pixel value of channel c at coordinates (x, y) in the image of frame n
  • mvx (x, y) and mvy (x, y) are , represent the x and y components of the motion vector at the in-image coordinates (x, y) of frame n.
  • channel c corresponds to each component.
  • x and y are integer values, but mvx(x,y) and mvy(x,y) can take decimal values.
  • the in-image coordinates of the arguments of I( ) are decimal, existing fractional pixel interpolation techniques may be applied.
  • the sum of absolute prediction difference values Correction may be made to suppress sad(n) below a predetermined threshold.
  • the calculation unit 22 may calculate an index indicating the magnitude of variation in motion vectors in the entire target frame as the index between the reference frame and the target frame.
  • the calculation unit 22 may calculate, for example, the sum of difference absolute values diff(n) of the motion vector components shown in the following equation (2) as an index indicating the variation of the motion vector.
  • sx and sy are the number of pixels in the horizontal direction and the number of pixels in the vertical direction of the minimum unit block for which the motion vector is to be obtained, as described above. That is, the sum of absolute differences diff(n) shown in equation (2) is the sum of the absolute values of the differences between the x and y components of the motion vectors of horizontally and vertically adjacent blocks.
  • the calculation unit 22 uses the cumulative value of the index calculated for each frame from the key frame to the target frame (hereinafter referred to as “cumulative index”) as an index for comparison with a threshold value by the determination unit 25 described later. calculate. Specifically, the calculator 22 calculates a cumulative index sad_act of sad(n) and a cumulative index diff_ac of diff(n). Calculation unit 22 outputs the calculated cumulative index to determination unit 25 .
  • the calculation unit 22 stores the frame n in the reference frame buffer 23 in order to use it as a reference frame when the frame n+1 becomes the target frame.
  • the determination unit 25 receives the cumulative index output from the calculation unit 22 and determines whether or not the cumulative index is equal to or greater than a predetermined threshold. Specifically, when sad_ac is equal to or greater than the threshold TH_sad or diff_ac is equal to or greater than the threshold TH_diff, the determination unit 25 determines that the cumulative index is equal to or greater than the threshold. On the other hand, when sad_ac is less than the threshold TH_sad and diff_ac is less than the threshold TH_diff, the determination unit 25 determines that the cumulative index is less than the threshold.
  • the determination unit 25 determines that the change between the key frame and the target frame is large, and sends the object detection processing to the first detection unit 27 that performs object detection using the object detection model. output a detection instruction to instruct
  • the determination unit 25 determines that the change between the key frame and the target frame is small, skips the object detection by the object detection model, corrects the past detection result, and detects the object.
  • a detection instruction is output to the second detection unit 28 that performs detection.
  • the determination unit 25 initializes the cumulative indexes (sad_ac and diff_ac) calculated by the calculation unit 22, that is, sets them to zero.
  • the image forming unit 26 receives the target frame output from the input unit 21 , resizes it to a size that can be input to the object detection model of the first detection unit 27 , and outputs it to the first detection unit 27 .
  • the first detection unit 27 When the first detection unit 27 receives the detection instruction output from the determination unit 25, the first detection unit 27 receives the target frame output from the image forming unit 26, and uses the object detection model to detect the area indicating the object from the target frame. To detect.
  • the object detection model may be, for example, a model using CNN such as SSD or YOLO.
  • the first detection unit 27 uses the object detection model to detect each of the regions representing a plurality of objects included in the target frame. Then, for each of the detected areas, the first detection unit 27 obtains the attributes of the object indicated by the image of the area, the reliability of the detection result, the rectangle information representing the position and size of the detected area in the target frame, and the like. It outputs to the output unit 30 as the detection result of the object detection.
  • the second detection unit 28 Upon receiving the detection instruction output from the determination unit 25, the second detection unit 28 detects an area on the target frame by correcting the position of the area detected in the reference frame using the motion vector. Specifically, the second detection unit 28 acquires the detection result of the reference frame stored in the detection result buffer 29 . Then, as shown in FIG. 3, the second detection unit 28 stores the motion vector of the coordinates (position information) of the target frame corresponding to the central coordinates of the rectangle information of each object detected in the reference frame, in the motion vector buffer 24 . Get from Then, the second detection unit 28 detects a rectangle whose central coordinates are the coordinates on the target frame corresponding to the position corrected by the acquired motion vector for the central coordinates of the rectangle in the reference frame. A rectangle of the same size is detected from the target frame.
  • the center coordinates of the rectangle detected in the reference frame are (x, y), and the motion vectors for the coordinates (x, y) of the target frame are (mvx(x, y), mvy( x, y)).
  • the second detection unit 28 sets the post-correction central coordinates of the target frame to (x+mvx(x, y), y+mvy(x, y)).
  • the motion vector (mvx(x, y), mvy(x, y)) is the motion vector at the in-image coordinates (x, y) of the target frame. is different from the motion vector at the in-image coordinates (x, y) of . Therefore, there is a possibility that the position of the rectangle detected in the target frame will be shifted. Therefore, the second detection unit 28 may refer again to the motion vector for the coordinates (x+mvx(x, y), y+mvy(x, y)) of the target frame and perform additional correction such as replacement.
  • the second detection unit 28 calculates and stores the average value of a plurality of motion vectors in the neighborhood, and stores the average value (mvx(x, y), mvy(x, y)) may be used instead.
  • the second detection unit 28 acquires rectangle information representing the position and size of the area (rectangle) detected based on the center coordinates after correction using the motion vector. Further, the second detection unit 28 acquires from the detection result buffer 29 the attribute of the object, the reliability of the detection result, and the like for the corresponding area detected in the reference frame. The second detection unit 28 collects these pieces of information and outputs them to the output unit 30 as a detection result of object detection in the target frame.
  • the output unit 30 receives and outputs the detection result output from the first detection unit 27 or the detection result output from the second detection unit 28 . Further, the output unit 30 stores the detection result of the frame n in the detection result buffer 29 for reference when the frame n+1 becomes the target frame.
  • FIG. 4 is a flowchart showing the flow of object detection processing by the object detection device 10.
  • the CPU 11 reads out an object detection program from the ROM 12 or the storage 14, develops it in the RAM 13, and executes it, thereby performing object detection processing.
  • the object detection process is an example of the object detection method of the present disclosure.
  • step S101 the CPU 11, as the input unit 21, sets to 0 a variable n indicating the frame number of each frame constituting the moving image.
  • step S102 the CPU 11 uses the input unit 21 to set the moving image frame n as the target frame.
  • step S104 the CPU 11 causes the input unit 21 to set the frame n-1 as the reference frame.
  • step S105 the CPU 11, as the calculation unit 22, performs a motion search between the frame n and the frame n-1, and calculates a motion vector represented by a motion vector for each block obtained by dividing the entire image of the frame n. Calculate the field V(n). Then, the CPU 11 , acting as the calculator 22 , stores the calculated motion vector field V(n) in the motion vector buffer 24 .
  • step S106 the CPU 11, as the calculation unit 22, uses the motion vector to calculate, for example, sad ( n), and diff(n) shown in equation (2).
  • step S107 the CPU 11, as the calculation unit 22, adds sad(n) calculated in step S106 to sad_ac, and adds diff(n) to diff_ac, thereby Calculate the cumulative index. Then, the CPU 11 , acting as the calculation unit 22 , outputs the calculated cumulative index to the determination unit 25 .
  • step S108 the CPU 11, as the determination unit 25, determines whether sad_ac is less than the threshold TH_sad and diff_ac is less than the threshold TH_diff.
  • the process proceeds to step S109, and when sad_ac ⁇ TH_sad or diff_ac ⁇ TH_diff, the process proceeds to step S110.
  • step S ⁇ b>109 the CPU 11 serves as the determination section 25 and outputs a detection instruction to the second detection section 28 . Then, the CPU 11, as the second detection unit 28, detects the area on the frame n by correcting the position of the area detected in the frame n ⁇ 1 using the motion vector. Further, the CPU 11, as the second detection unit 28, outputs the detection result including the attribute of the object, the reliability, the rectangle information, etc. for each region detected from the frame n to the output unit 30, and proceeds to step S112. .
  • step S ⁇ b>110 the CPU 11 serves as the determination section 25 and outputs a detection instruction to the first detection section 27 . Further, the CPU 11 , as the image forming unit 26 , resizes the frame n to a size that can be input to the object detection model of the first detection unit 27 and outputs the resized image to the first detection unit 27 . Then, the CPU 11, as the first detection unit 27, receives the frame n output from the image forming unit 26, and uses the object detection model to detect the area indicating the object from the frame n. Further, the CPU 11, as the first detection unit 27, outputs detection results including object attributes, reliability, rectangle information, etc., to the output unit 30 for each area detected from the frame n.
  • step S111 the CPU 11, as the determination unit 25, initializes sad_ac and diff_ac, which are cumulative indices calculated by the calculation unit 22, to 0, and proceeds to step S112.
  • step S112 the CPU 11, as the output unit 30, receives and outputs the detection result output in step S109 or S110. Further, the CPU 11 , as the output unit 30 , stores the detection result of the frame n in the detection result buffer 29 .
  • step S113 the CPU 11, as the input unit 21, increments n by 1 and returns to step S102.
  • the object detection apparatus uses each frame of a moving image including a plurality of frames as a target frame, and calculates a motion vector based on a reference frame over the entire target frame. do.
  • the object detection device also calculates an index indicating the magnitude of change between the key frame and the target frame, which is expressed using motion vectors.
  • a key frame is a frame closest to the target frame among the frames in which object detection is performed using the object detection model. Then, when the index is equal to or greater than a predetermined threshold, the object detection device detects an area indicating the object from the target frame using the object detection model.
  • the object detection device detects the area on the target frame by correcting the position of the area detected in the reference frame using the motion vector. Then, the object detection device outputs a detection result including object attributes, reliability, rectangle information, etc., for the area detected by any of the detection methods.
  • the object detection apparatus can improve efficiency without degrading accuracy in object detection for moving images.
  • the object detection apparatus integrates the object detection result of each partial image obtained by dividing the frame into a plurality of parts and the object detection result of the reduced image obtained by reducing the entire frame, that is, divides and synthesizes the frame.
  • object detection using the object detection apparatus according to the second embodiment uses an index indicating the magnitude of change between the key frame and the target frame, as in the first embodiment. It is determined whether or not to skip object detection processing using an object detection model.
  • the same reference numerals are given to the same configurations as those of the object detection device 10 according to the first embodiment, and detailed description thereof will be omitted.
  • the hardware configuration of the object detection device according to the second embodiment is the same as the hardware configuration of the object detection device 10 according to the first embodiment shown in FIG. 1, so the description is omitted.
  • FIG. 5 is a block diagram showing an example of the functional configuration of an object detection device 210 according to the second embodiment.
  • the object detection device 210 includes, as a functional configuration, an input unit 221, a calculation unit 222, a reference frame buffer 23, a motion vector buffer 24, a determination unit 225, and a partial image generation unit 226A. , and a reduced image generator 226B.
  • the object detection device 210 has a first detection section 227, a second detection section 228, a detection result buffer 29, and an output section 230 as functional configurations.
  • Each functional configuration is realized by the CPU 11 reading out an object detection program stored in the ROM 12 or the storage 14, developing it in the RAM 13, and executing it.
  • the functional configuration of the object detection device 210 according to the second embodiment and the functional configuration of the object detection device 10 according to the first embodiment have the same functional configurations that have the same last two digits of the numerals. A detailed description of the contents is omitted.
  • the input unit 221 outputs frame n of the moving image as a target frame to each of the calculation unit 222, the partial image generation unit 226A, and the reduced image generation unit 226B.
  • the partial image generation unit 226A outputs each generated partial image m to the corresponding partial image detection unit 227-m.
  • partial image 1 is output to partial image detection section 227-1
  • partial image 2 is output to partial image detection section 227-2
  • partial image 3 is output to partial image detection section 227-3
  • partial image 4 is output to the partial image detection unit 227-4.
  • the reduced image generation unit 226B generates a reduced image (chain line) by reducing the entire target frame, and outputs it to the reduced image detection unit 227B.
  • the calculation unit 222 calculates the motion vector field V(n) for the target frame (frame n) with reference to the reference frame, like the calculation unit 22 in the first embodiment. In addition, the calculation unit 222 calculates the portion of the target frame corresponding to each of the partial images m generated by the partial image generation unit 226A (hereinafter referred to as “portion m”) in the same manner as the calculation unit 22 in the first embodiment. A cumulative index is calculated by a similar method. Specifically, the calculation unit 222 calculates sad(n,m) and diff(n,m) as indices indicating the magnitude of change between the reference frame and the target frame from the portion m of the target frame. Also, for each portion m of the target frame, sad_ac(m) and diff_ac(m) are calculated as cumulative indexes indicating the magnitude of change between the key frame and the target frame.
  • the determination unit 225 determines whether or not the cumulative index is equal to or greater than the threshold for each portion m in the same method as the determination unit 25 in the first embodiment. If the cumulative index of the portion m is equal to or greater than the threshold value, the determination unit 225 outputs a detection instruction instructing object detection processing to the partial image detection unit 227-m corresponding to the partial image m. Specifically, when sad_ac(1) ⁇ TH_sad or diff_ac(1) ⁇ TH_diff, determination section 225 outputs a detection instruction to partial image detection section 227-1. If sad_ac(2) ⁇ TH_sad or diff_ac(2) ⁇ TH_diff, determination section 225 outputs a detection instruction to partial image detection section 227-2.
  • determination section 225 If sad_ac(3) ⁇ TH_sad or diff_ac(3) ⁇ TH_diff, determination section 225 outputs a detection instruction to partial image detection section 227-3. If sad_ac(4) ⁇ TH_sad or diff_ac(4) ⁇ TH_diff, determination section 225 outputs a detection instruction to partial image detection section 227-4. On the other hand, when the cumulative index of portion m is less than the threshold, determination unit 225 outputs a detection instruction for portion m to second detection unit 228 .
  • the determination unit 225 outputs a detection instruction to the second detection unit 228 for a certain number of parts m from the lowest sad(n,m) or diff(n,m) in order to level the processing amount. may In this case, the determination section 225 outputs a detection instruction to the corresponding partial image detection section 227-m of the first detection section 227 for the remaining portion m.
  • Each detection unit included in the first detection unit 227 uses an object detection model to detect an area indicating an object from a partial image m or a reduced image, similarly to the first detection unit 27 in the first embodiment.
  • Output detection results including attributes, reliability, rectangle information, etc. That is, the detection result for the partial image m is output from the partial image detection unit 227-m to which the detection instruction is output.
  • the reduced image detection unit 227B outputs the detection result of the reduced image for each frame. It should be noted that, regarding the rectangular information, information converted into the in-image coordinates of the target frame is output for both the partial image m and the reduced image.
  • the second detection unit 228 detects an area on the part m of the target frame, which is obtained by correcting the position of the area detected in the reference frame for the part m for which the detection instruction is output from the determination unit 225 using the motion vector. do. Specifically, the second detection unit 228 acquires the detection result of the reference frame stored in the detection result buffer 29, like the second detection unit 28 in the first embodiment. Then, the second detection unit 228 obtains from the motion vector buffer 24 the motion vector for the coordinates (position information) of the portion m of the target frame corresponding to the center coordinates of the rectangle information of each object detected in the portion m of the reference frame. get.
  • the second detection unit 228 identifies the coordinates on the portion m of the target frame corresponding to the position obtained by correcting the center coordinates of the rectangle in the reference frame by the acquired motion vector.
  • the second detection unit 228 detects a rectangle centered at the specified coordinates and having the same size as the rectangle in the reference frame from the portion m of the target frame.
  • the second detection unit 28 does not perform processing such as correcting the position of the rectangle so as not to exceed the range of the portion m, and assumes that the rectangle was not detected from the portion m of the target frame. can be processed.
  • FIG. For example, the determination unit 225 outputs detection instructions to the partial image detection units 227-1 and 227-2 for the portions 1 and 2, and outputs detection instructions to the second detection unit 228 for the portions 3 and 4. Suppose it is output.
  • the output unit 230 acquires the detection result of the partial image 1 from the partial image detection unit 227-1, acquires the detection result of the partial image 2 from the partial image detection unit 227-2, and acquires the detection result of the partial image 2 from the second detection unit 228.
  • the detection results of partial image 3 and partial image 4 are acquired.
  • the output unit 230 acquires the detection result of the reduced image output from the reduced image detection unit 227B.
  • Each detection result includes detection results for a plurality of areas detected from each image, ie, a plurality of objects.
  • the output unit 230 deletes the detection result of the partial image when it is determined that the detection result of the reduced image and the detection result of the partial image are the detection results of the same object. Specifically, the output unit 230 determines the positions of the regions included in the detection result of the reduced image and the region included in the detection result of any of the partial images m, where the attributes of the objects match each other. It is determined whether or not there is a corresponding positional relationship on the frame. For example, the output unit 230 may determine that the two areas have a corresponding positional relationship on the target frame when the degree of overlap between the areas having the same object attributes is equal to or greater than a predetermined threshold TH_S1.
  • the output unit 230 calculates the overlapping area of the regions included in the detection result of the reduced image and the region included in the detection result of the partial image m, where the attributes of the object match each other, as the detection result of the reduced region.
  • a value obtained by dividing by the area of the region included in may be calculated as the degree of redundancy.
  • the area of each region and the overlapping area are calculated based on the rectangle information of each region. Note that the rectangle information of each area is converted into coordinate values within the image coordinates of the target frame, as described above.
  • the output unit 230 deletes the detection result for the corresponding region from the detection result for the partial image m.
  • each of the multiple partial images includes the detection results of the divided regions. Therefore, in order to delete all of these as being common to one of the detection results included in the reduced image, the detection result of the corresponding area is deleted from the detection result of the partial image m instead of the detection result of the reduced image. .
  • the method for determining whether or not to delete an area from the detection result of the partial image m is not limited to the above example.
  • the output unit 230 sets the ratio of the area of the area included in the detection result of the reduced image and the area of the area included in the detection result of the partial image m for which the degree of redundancy is equal to or greater than the threshold TH_S1. It is determined whether or not it is equal to or greater than the threshold TH_S2.
  • the output unit 230 may delete the detection result of the corresponding area from the detection result of the partial image m when this determination condition is satisfied.
  • the area of the reduced image and the partial The degree of overlap with each of the multiple regions of the image may exceed the threshold TH_S1.
  • the threshold TH_S1 not only the positional correspondence between the area included in the reduced image and the area included in the partial image but also the size of the area is determined to be the same. This prevents erroneous deletion of the detection result of the area included in the .
  • the output unit 230 may delete the detection result of the area included in the partial image m by the following determination, in addition to the above determination using the degree of redundancy and the degree of redundancy and area ratio. Specifically, the output unit 230 determines whether an area having an object attribute that does not match any of the object attributes of all areas included in the reduced image detection result is included in the partial image m detection result. determine whether or not If the partial image m includes a region where the attribute of the object does not match any attribute, the output unit 230 determines whether a value obtained by dividing the area of the region by the area of the target frame is equal to or greater than a predetermined threshold TH_S3.
  • the output unit 230 deletes the detection result of the corresponding area from the detection results of the area included in the partial image m. This eliminates erroneous detection due to the feature amount of the object being divided and extracted in one partial image m since the area showing one object exists across a plurality of partial images.
  • the output unit 230 puts together the detection results of the partial image m remaining after the above processing and the reduced image and outputs them as a final detection result.
  • FIG. 7 and 8 are flowcharts showing the flow of object detection processing by the object detection device 210.
  • FIG. The CPU 11 reads out an object detection program from the ROM 12 or the storage 14, develops it in the RAM 13, and executes it, thereby performing object detection processing.
  • the same step numbers are assigned to the same processes as the object detection process (FIG. 4) in the first embodiment, and detailed description thereof is omitted.
  • step S203 When the motion vector field V(n) of frame n is calculated through steps S104 and S105, the process proceeds to step S201.
  • step S201 the CPU 11, as the calculation unit 222, calculates sad(n,m) and diff(n,m) as indices indicating the magnitude of change between the reference frame and the target frame for each portion m of the frame n. calculate.
  • step S202 the CPU 11, as the calculation unit 222, adds sad(n,m) calculated in step S201 to sad_ac(m) for each portion m of the frame n, and obtains diff(n,m) to diff_ac(m).
  • the calculation unit 222 calculates the cumulative index from the key frame to the target frame.
  • the CPU 11, as the calculation unit 222 outputs the calculated cumulative index to the determination unit 225, and proceeds to step S204 (FIG. 8).
  • step S203 the CPU 11, as the determination section 225, outputs a detection instruction to each of the partial image detection sections 227-m. Further, the CPU 11, as the partial image generation unit 226A, generates partial images 1 to mmax from the frame n, and outputs them to the corresponding partial image detection units 227-m. mmax is the maximum number of partial images, which is "4" here. That is, partial image 1, partial image 2, partial image 3, and partial image 4 are generated. Then, CPU 11, as each of partial image detection units 227-m, receives partial image m output from partial image generation unit 226A, and uses the object detection model to detect an area indicating an object from partial image m.
  • the CPU 11 as the partial image detection unit 227-m, outputs the detection result including the attribute of the object, the reliability, the rectangle information, etc. for each area detected from the partial image m to the output unit 230, and step S211. (Fig. 8).
  • step S204 the CPU 11, as the determination unit 225, sets 1 to the variable m indicating the number of the partial image.
  • step S205 the CPU 11, as the determination unit 225, determines whether sad_ac(m) is less than the threshold TH_sad and diff_ac(m) is less than the threshold TH_diff. If sad_ac(m) ⁇ TH_sad and diff_ac(m) ⁇ TH_diff, go to step S206. If sad_ac(m) ⁇ TH_sad or diff_ac(m) ⁇ TH_diff, go to step S207.
  • step S206 the CPU 11, as the determination section 225, outputs a detection instruction instructing the second detection section 228 to detect the object in the portion m. Then, the CPU 11, as the second detection unit 228, detects the area on the portion m of the frame n by correcting the position of the area detected in the frame n ⁇ 1 using the motion vector. Further, the CPU 11, as the second detection unit 228, outputs the detection result including the attribute of the object, the reliability, the rectangle information, etc. for each region detected from the portion m of the frame n to the output unit 230, and step S209. Move to
  • step S207 the CPU 11, as the determination section 225, outputs a detection instruction to the partial image detection section 227-m. Further, the CPU 11, as the partial image generation section 226A, generates a partial image m from the frame n and outputs it to the partial image detection section 227-m. Then, the CPU 11, as the partial image detection unit 227-m, receives the partial image m output from the partial image generation unit 226A, and uses the object detection model to detect the area indicating the object from the partial image m. Furthermore, the CPU 11, as the partial image detection unit 227-m, outputs detection results including object attributes, reliability, rectangle information, etc., to the output unit 230 for each area detected from the partial image m.
  • step S208 the CPU 11, as the determination unit 225, initializes sad_ac(m) and diff_ac(m), which are the cumulative indices calculated by the calculation unit 222, to 0, and proceeds to step S209.
  • step S209 the CPU 11, as the determination unit 225, increments m by one.
  • step S210 the CPU 11, as the determination unit 225, determines whether or not m exceeds mmax. If m>mmax, the process proceeds to step S211, and if m ⁇ mmax, the process returns to step S205.
  • step S211 the CPU 11, as the reduced image generation unit 226B, generates a reduced image by reducing the entire frame n, and outputs it to the reduced image detection unit 227B. Then, the CPU 11, as the reduced image detection unit 227B, uses the object detection model to detect the area indicating the object from the reduced image, and outputs the detection result including the attribute, reliability, rectangle information, etc. of the object.
  • step S212 the CPU 11, as the output unit 230, receives the detection results output in steps S206, S207, and S211, and deletes the common detection results to obtain the reduced image detection results and the partial images. Integrate the detection result of m.
  • step S ⁇ b>112 the CPU 11 outputs the detection result integrated in step S ⁇ b>212 as the final detection result of the frame n and stores it in the detection result buffer 29 as the output unit 230 .
  • the object detection apparatus uses the object detection model to detect the target frame by using the object detection model when the index calculated using the motion vector is equal to or greater than the threshold.
  • object detection when the index is less than the threshold, the object detection device detects the area on the target frame by correcting the position of the area detected in the reference frame using the motion vector.
  • the object detection device executes processing of index calculation, threshold determination, and object detection for each partial image. Also, the object detection device detects an object from a reduced image obtained by reducing the target frame using an object detection model, and integrates the detection result of the reduced image and the detection result of the partial image.
  • the object detection apparatus according to the second embodiment can improve efficiency without lowering accuracy in object detection for moving images. Further, the object detection apparatus according to the second embodiment divides the target frame into partial images and executes various processes, thereby detecting an area using the detection result of the reference frame for each part with little change in motion. can be performed, and efficiency can be further improved. Furthermore, the object detection apparatus according to the second embodiment integrates the detection results of the reduced image and the partial image, so that objects that are relatively small in size relative to the target frame and that are difficult to extract when reduced, and , both relatively large objects across multiple sub-images can be detected. Therefore, the object detection apparatus according to the second embodiment can perform efficient object detection without lowering the accuracy of object detection even when a high-definition moving image is targeted.
  • the first detection section includes the partial image detection section and the reduced image detection section.
  • the first detection section may include only the partial image detection section. Even in this case, it is possible to improve the efficiency by performing area detection using the detection result of the reference frame for each portion where the change in motion is small.
  • At least one partial image detection unit may be provided, and a detection instruction for a partial image determined by the determination unit to perform object detection using the object detection model may be output to the partial image generation unit.
  • a detection instruction for a partial image determined by the determination unit to perform object detection using the object detection model may be output to the partial image generation unit.
  • only the partial image that is the target of the detection instruction may be output from the partial image generation section to the partial image detection section.
  • object detection using an object detection model is skipped when both the cumulative values of the motion compensation prediction difference absolute value sum sad and the motion vector component difference absolute value sum diff are less than a threshold.
  • Object detection using the object detection model may be skipped when any one index is less than a threshold.
  • one index using sad and diff such as the product or weighted sum of sad and diff, is less than a threshold
  • object detection using the object detection model may be skipped.
  • indices other than sad and diff may be used as indices indicating the magnitude of change between the key frame and the target frame.
  • the present invention is not limited to this. Note that if the reference frame is the key frame, which is the most recent frame in which the object detection is performed by the object detection model, the process of accumulating indices as in each of the above embodiments is unnecessary.
  • the object detection processing executed by the CPU by reading the software (program) in each of the above embodiments may be executed by various processors other than the CPU.
  • the processor is a PLD (Programmable Logic Device) whose circuit configuration can be changed after manufacturing, such as an FPGA (Field-Programmable Gate Array), and an ASIC (Application Specific Integrated Circuit) to execute specific processing.
  • a dedicated electric circuit or the like which is a processor having a specially designed circuit configuration, is exemplified.
  • the object detection processing may be executed by one of these various processors, or by a combination of two or more processors of the same or different type (for example, multiple FPGAs and a combination of CPU and FPGA). etc.).
  • the hardware structure of these various processors is, more specifically, an electric circuit in which circuit elements such as semiconductor elements are combined.
  • each functional configuration (each part in FIGS. 2 and 5) described in each of the above embodiments is realized by a dedicated circuit, and multiple dedicated circuits operate in parallel within an LSI (Large-Scale Integration). It is good also as a structure which carries out.
  • part of the functional configuration may be implemented by a dedicated circuit, and other functional configurations may be implemented by the CPU reading and executing software (program).
  • the CPU in the LSI may execute the processing of the functional configuration with a small amount of processing such as the determination unit and the second detection unit in each of the above embodiments, and the other portions may be applied to a dedicated circuit. .
  • the object detection processing program has been pre-stored (installed) in the ROM 12 or the storage 14, but the present invention is not limited to this.
  • Programs are stored in non-transitory storage media such as CD-ROM (Compact Disk Read Only Memory), DVD-ROM (Digital Versatile Disk Read Only Memory), and USB (Universal Serial Bus) memory.
  • CD-ROM Compact Disk Read Only Memory
  • DVD-ROM Digital Versatile Disk Read Only Memory
  • USB Universal Serial Bus
  • Each frame of a moving image including a plurality of frames is defined as a target frame, a motion vector is calculated with reference to a reference frame over the entire target frame, and a key frame is represented using the motion vector.
  • calculating an index indicating the magnitude of change from the target frame Determine whether the calculated index is equal to or greater than a predetermined threshold, detecting an area indicating an object from the target frame using an object detection model when the index is equal to or greater than the threshold; detecting an area on the target frame obtained by correcting the position of the area detected in the reference frame using the motion vector when the index is less than the threshold;
  • An object detection device configured to output information about the area detected from the target frame.
  • a non-transitory recording medium storing a computer-executable program for executing object detection processing,
  • the object detection process includes Each frame of a moving image including a plurality of frames is defined as a target frame, a motion vector is calculated with reference to a reference frame over the entire target frame, and a key frame is represented using the motion vector.
  • a non-transitory recording medium including outputting information of the area detected from the target frame.

Abstract

算出部(22)が、複数のフレームを含む動画像の各フレームを対象フレームとし、対象フレームの全体に亘って、参照フレームを基準とした動きベクトルを算出すると共に、動きベクトルを用いて表される、キーフレームと対象フレームとの間の変化の大きさを示す指標を算出し、判定部(25)が、算出された指標が予め定められた閾値以上か否かを判定し、第1検出部(27)が、指標が閾値以上の場合に、物体検出モデルを用いて、対象フレームから物体を示す領域を検出し、第2検出部(28)が、指標が閾値未満の場合に、参照フレームにおいて検出された領域の位置を、動きベクトルを用いて補正した対象フレーム上の領域を検出し、出力部(30)が、第1検出部(27)により検出された領域の情報、及び第2検出部(28)により検出された領域の情報を出力する。

Description

物体検出装置、方法、及びプログラム
 開示の技術は、物体検出装置、物体検出方法、及び物体検出プログラムに関する。
 近年、畳み込みニューラルネット渡辺(Convolution Neural Network、以下「CNN」という)による物体検出手法が普及している。例えば、SSD(Single Shot MultiBox Detector、非特許文献1)、YOLO(You Only Look Once)v3(非特許文献2)等の手法が知られている。これらの方法では、入力画像を物体検出モデルであるCNNに入力し、入力画像に含まれる物体を示す領域を検出する。入力画像に複数の物体が含まれる場合には、物体毎に領域が検出される。そして、これらの方法では、検出した領域の画像が示す物体の属性、検出結果の信頼度、画像内における検出した領域の位置及び大きさを表す矩形情報等を、物体検出の検出結果として出力することが一般的である。なお、物体の属性とは、車、人、犬等の物体の種別である。これらの手法を動画像(映像)に適用する場合、動画像に含まれる全てのフレームに対して、物体検出の処理を繰り返す必要があり、処理量が多くなるという課題がある。
 これに対し、CNNによる物体検出を行うフレームと、その結果に基づいて物体を追跡(トラッキング)するフレームとに分けることで、全てのフレームでCNNによる物体検出を行う場合より、処理量を削減しつつ類似の効果を得ようとする方法が存在する。
 また、キーフレームではCNNによる物体検出を行い、それ以外のフレームではCNNの途中層の特徴マップをキーフレームから動き補償で予測し、それ以降の層については、CNNの通常の処理を行う手法が提案されている(非特許文献3)。
Wei Liu, et.al., "SSD: Single Shot MultiBox Detector", ECCV2016 J. Redomon, et.al., "YOLOv3: An Incremental Improvement", https://arxiv.org/abs/1804.02767 M.Buckler, et.al., "EVA2: Exploiting Temporal Redundancy In Live Computer Vision", ISCA2018
 しかし、CNNによる物体検出を行うフレームと、その結果に基づいて物体を追跡するフレームとに分ける手法では、追跡のみを行うフレームにおいて新たな物体が出現した場合に、その新たな物体を検出できない、という課題がある。
 また、非特許文献3に記載の手法では、CNNの後半層の処理量が大きいという問題がある。また、非特許文献3に記載の手法では、動きの細かな変化が多い動画像に対しては、特徴マップの動き補償が有効に機能せず、物体検出の精度や効率が低下する、という課題がある。
 また、より高精細な動画像に対する物体検出をリアルタイムで処理したい場合など、動画像の各フレームに対する物体検出を、精度を低下させることなく、より効率的に行う手法が求められている。
 開示の技術は、上記の点に鑑みてなされたものであり、動画像に対する物体検出において、精度を低下させることなく、効率を向上させることを目的とする。
 本開示の第1態様は、物体検出装置であって、複数のフレームを含む動画像の各フレームを対象フレームとし、前記対象フレームの全体に亘って、参照フレームを基準とした動きベクトルを算出すると共に、前記動きベクトルを用いて表される、キーフレームと前記対象フレームとの間の変化の大きさを示す指標を算出する算出部と、前記算出部により算出された指標が、予め定められた閾値以上か否かを判定する判定部と、前記指標が前記閾値以上の場合に、物体検出モデルを用いて、前記対象フレームから物体を示す領域を検出する第1検出部と、前記指標が前記閾値未満の場合に、前記参照フレームにおいて検出された領域の位置を、前記動きベクトルを用いて補正した前記対象フレーム上の領域を検出する第2検出部と、前記第1検出部により検出された前記領域の情報、及び前記第2検出部により検出された前記領域の情報を出力する出力部と、を含む。
 本開示の第2態様は、物体検出方法であって、算出部が、複数のフレームを含む動画像の各フレームを対象フレームとし、前記対象フレームの全体に亘って、参照フレームを基準とした動きベクトルを算出すると共に、前記動きベクトルを用いて表される、キーフレームと前記対象フレームとの間の変化の大きさを示す指標を算出し、判定部が、前記算出部により算出された指標が、予め定められた閾値以上か否かを判定し、第1検出部が、前記指標が前記閾値以上の場合に、物体検出モデルを用いて、前記対象フレームから物体を示す領域を検出し、第2検出部が、前記指標が前記閾値未満の場合に、前記参照フレームにおいて検出された領域の位置を、前記動きベクトルを用いて補正した前記対象フレーム上の領域を検出し、出力部が、前記第1検出部により検出された前記領域の情報、及び前記第2検出部により検出された前記領域の情報を出力する方法である。
 本開示の第3態様は、物体検出プログラムであって、コンピュータを、上記の物体検出装置の各部として機能させるためのプログラムである。
 開示の技術によれば、動画像に対する物体検出において、精度を低下させることなく、効率を向上させることができる。
物体検出装置のハードウェア構成を示すブロック図である。 第1実施形態に係る物体検出装置の機能構成の例を示すブロック図である。 参照フレーム及び動きベクトルを用いて、対象フレームから物体を示す領域を検出する方法を説明するための図である。 第1実施形態における物体検出処理の流れを示すフローチャートである。 第2実施形態に係る物体検出装置の機能構成の例を示すブロック図である。 部分画像及び縮小画像の生成を説明するための図である。 第2実施形態における物体検出処理の流れを示すフローチャートである。 第2実施形態における物体検出処理の流れを示すフローチャートである。
 以下、開示の技術の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
<第1実施形態>
 第1実施形態に係る物体検出装置は、物体検出の対象となる動画像のフレーム毎に動きベクトルを算出すると共に、動きベクトルを用いて、フレーム間の変化の大きさを示す指標を算出する。そして、物体検出装置は、指標が大きい場合は、物体検出モデルによる物体検出を行い、そうでない場合は、動きベクトル算出の基準とした参照フレームの物体検出結果の位置情報を補正して出力する。これにより、新たな物体の出現や物体の変形に対する物体検出の精度の低下を回避しつつ、効率的な処理を実現する。
 図1は、第1実施形態に係る物体検出装置10のハードウェア構成を示すブロック図である。図1に示すように、物体検出装置10は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、ストレージ14、入力部15、表示部16、及び通信I/F(Interface)17を有する。各構成は、バス19を介して相互に通信可能に接続されている。
 CPU11は、中央演算処理ユニットであり、各種プログラムを実行したり、各部を制御したりする。すなわち、CPU11は、ROM12又はストレージ14からプログラムを読み出し、RAM13を作業領域としてプログラムを実行する。CPU11は、ROM12又はストレージ14に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。本実施形態では、ROM12又はストレージ14には、後述する物体検出処理を実行するための物体検出プログラムが格納されている。
 ROM12は、各種プログラム及び各種データを格納する。RAM13は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ14は、HDD(Hard Disk Drive)、SSD(Solid State Drive)等の記憶装置により構成され、オペレーティングシステムを含む各種プログラム及び各種データを格納する。
 入力部15は、マウス等のポインティングデバイス、及びキーボードを含み、各種の入力を行うために使用される。
 表示部16は、例えば、液晶ディスプレイであり、各種の情報を表示する。表示部16は、タッチパネル方式を採用して、入力部15として機能してもよい。
 通信I/F17は、他の機器と通信するためのインタフェースである。当該通信には、例えば、イーサネット(登録商標)若しくはFDDI等の有線通信の規格、又は、4G、5G、若しくはWi-Fi(登録商標)等の無線通信の規格が用いられる。
 次に、物体検出装置10の機能構成について説明する。図2は、物体検出装置10の機能構成の例を示すブロック図である。図2に示すように、物体検出装置10は、機能構成として、入力部21と、算出部22と、参照フレームバッファ23と、動きベクトルバッファ24と、判定部25と、画像形成部26とを有する。さらに、物体検出装置10は、機能構成として、第1検出部27と、第2検出部28と、検出結果バッファ29と、出力部30とを有する。各機能構成は、CPU11がROM12又はストレージ14に記憶された物体検出プログラムを読み出し、RAM13に展開して実行することにより実現される。
 入力部21は、物体検出装置10に入力された動画像を受け付け、動画像を構成する各フレームを入力画像として、動画像の時系列順に算出部22及び画像形成部26の各々へ順次出力する。ここでは、動画像に含まれる各フレームに、先頭から順に、n=0,1,2,・・・のフレーム番号が付与されているものとする。以下では、フレーム番号nのフレームを「フレームn」と表記する。入力部21は、フレームnを対象フレームとして設定する。
 算出部22は、入力部21から出力された対象フレーム受け付け、対象フレームの全体に亘って、すなわち入力画像全体について、参照フレームバッファ23に記憶された参照フレームを基準とした動きベクトルを算出する。参照フレームバッファ23には、対象フレームよりも時系列順に前のフレームであって、算出部22により動きベクトルを算出する際の基準となる参照フレームが記憶される。以下では、参照フレームを、対象フレームの直前のフレームとする場合、すなわち、フレームnの参照フレームはフレームn-1である場合について説明する。
 算出部22は、具体的には、対象フレームと参照フレームとの間で動き探索を行い、対象フレーム(フレームn)全体を分割したブロック毎の動きベクトルで表される動きベクトル場V(n)を算出する。ブロックとは、動きベクトルを求める最小単位の領域であり、例えば、横方向画素数sx、縦方向画素数syのブロックとしてよい。また、動き探索の手法としては、ブロックマッチングを用いた手法、勾配を用いた手法等、従来既知の手法を用いてよく、第1実施形態において、その手法は限定しない。算出部22は、算出した動きベクトル場V(n)を動きベクトルバッファ24に記憶する。
 また、算出部22は、動きベクトルを用いて表される、キーフレームと対象フレームとの間の変化の大きさを示す指標を算出する。キーフレームは、後述する第1検出部27において、物体検出モデルにより物体検出が行われたフレームのうち、対象フレームの直近のフレームである。具体的には、算出部22は、まず、参照フレームと対象フレーム間の指標として、参照フレームと、算出した動きベクトル場とを用いて生成される動き補償予測画像と、対象フレームとの誤差である、動き補償の予測誤差の大きさを示す指標を算出してよい。算出部22は、動き補償の予測誤差として、例えば下記(1)式に示す、対象フレーム(フレームn)全体の予測差分絶対値和sad(n)を算出してよい。
sad(n)=Σ_cΣ_xΣ_y|I(c,n,x,y)
 -I(c,n-1,x-mvx(x,y),y-mvy(x,y))|
                        ・・・(1)
 (1)式において、I(c,n,x,y)は、フレームnの画像内座標(x,y)のチャネルcの画素値、mvx(x,y)及びmvy(x,y)は、フレームnの画像内座標(x,y)における動きベクトルのx成分及びy成分を表す。チャネルcは、例えば、物体検出装置10に入力された動画像が、RGBの3成分からなる場合は、その各成分に相当する。また、x及びyは整数値であるが、mvx(x,y)及びmvy(x,y)は小数値を取り得る。I()の引数の画像内座標が小数の場合、既存の小数画素補間手法を適用してよい。また、フレームnに含まれるノイズや動きベクトルの精度誤差の影響が支配的になることを回避するために、フレームnのブロック毎の分散や隣接画素間差分等を元に、予測差分絶対値和sad(n)を予め定めた閾値未満に抑圧するように補正してもよい。
 また、算出部22は、参照フレームと対象フレーム間の指標として、対象フレーム全体における動きベクトルのばらつきの大きさを示す指標を算出してよい。算出部22は、動きベクトルのばらつきを示す指標として、例えば下記(2)式に示す、動きベクトル成分の差分絶対値和diff(n)を算出してよい。
diff(n)
=Σ_xΣ_y{|mvx(x,y)-mvx(x+sx,y)|
       +|mvx(x,y)-mvx(x,y+sy)|
       +|mvy(x,y)-mvy(x+sx,y)|
       +|mvy(x,y)-mvy(x,y+sy)|}
                          ・・・(2)
 (2)式において、sx及びsyは、上述したように、動きベクトルを求める最小単位のブロックの横方向画素数及び縦方向画素数である。すなわち、(2)式に示す差分絶対値和diff(n)は、横方向及び縦方向に隣接するブロック同士の動きベクトルのx成分及びy成分の差分の絶対値の和である。
 また、算出部22は、キーフレームから対象フレームまでの各フレームについて算出した上記の指標の累積値(以下、「累積指標」という)を、後述する判定部25で閾値と比較するための指標として算出する。具体的には、算出部22は、sad(n)の累積指標sad_act、及びdiff(n)の累積指標diff_acを算出する。算出部22は、算出した累積指標を判定部25へ出力する。
 また、算出部22は、フレームnを、フレームn+1が対象フレームとなった際の参照フレームとして用いるために、参照フレームバッファ23に記憶する。
 判定部25は、算出部22から出力された累積指標を受け取り、累積指標が、予め定められた閾値以上か否かを判定する。具体的には、判定部25は、sad_acが閾値TH_sad以上、又はdiff_acが閾値TH_diff以上の場合には、累積指標が閾値以上であると判定する。一方、判定部25は、sad_acが閾値TH_sad未満、かつdiff_acが閾値TH_diff未満の場合には、累積指標が閾値未満であると判定する。
 判定部25は、累積指標が閾値以上の場合には、キーフレームと対象フレーム間の変化が大きいと判断し、物体検出モデルを用いた物体検出を行う第1検出部27へ、物体検出の処理を指示する検出指示を出力する。一方、判定部25は、累積指標が閾値未満の場合には、キーフレームと対象フレーム間の変化が小さいと判断し、物体検出モデルによる物体検出をスキップし、過去の検出結果を補正して物体検出を行う第2検出部28へ検出指示を出力する。判定部25は、第1検出部27へ検出指示を出力した場合、算出部22で算出されている累積指標(sad_ac及びdiff_ac)を初期化、すなわち0にする。
 画像形成部26は、入力部21から出力された対象フレームを受け取り、第1検出部27の物体検出モデルへ入力可能なサイズにリサイズし、第1検出部27へ出力する。
 第1検出部27は、判定部25から出力された検出指示を受け取った場合に、画像形成部26から出力された対象フレームを受け取り、物体検出モデルを用いて、対象フレームから物体を示す領域を検出する。物体検出モデルは、例えば、SSDやYOLO等のCNNを利用したモデルとしてよい。具体的には、第1検出部27は、物体検出モデルを用いて、対象フレームに含まれる複数の物体を示す領域の各々を検出する。そして、第1検出部27は、検出した領域の各々について、領域の画像が示す物体の属性、検出結果の信頼度、対象フレーム内における検出した領域の位置及び大きさを表す矩形情報等を、物体検出の検出結果として、出力部30へ出力する。
 第2検出部28は、判定部25から出力された検出指示を受け取った場合に、参照フレームにおいて検出された領域の位置を、動きベクトルを用いて補正した、対象フレーム上の領域を検出する。具体的には、第2検出部28は、検出結果バッファ29に記憶されている参照フレームの検出結果を取得する。そして、第2検出部28は、図3に示すように、参照フレームにおいて検出された各物体の矩形情報の中心座標に対応する対象フレームの座標(位置情報)についての動きベクトルを動きベクトルバッファ24から取得する。そして、第2検出部28は、参照フレームにおける矩形の中心座標を、取得した動きベクトルの分補正した位置に対応する対象フレーム上の座標を中心座標とする矩形であって、参照フレームにおける矩形と同サイズの矩形を、対象フレームから検出する。例えば、図3に示すように、参照フレームで検出された矩形の中心座標が(x,y)、対象フレームの座標(x,y)についての動きベクトルが(mvx(x,y),mvy(x,y))であるとする。この場合、第2検出部28は、対象フレームにおける補正後の中心座標を(x+mvx(x,y),y+mvy(x,y))とする。
 なお、厳密には、図3に示すとおり、動きベクトル(mvx(x,y),mvy(x,y))は、対象フレームの画像内座標(x,y)における動きベクトルであり、参照フレームの画像内座標(x,y)における動きベクトルとは異なる。そのため、対象フレームにおいて検出される矩形の位置にずれが生じる可能性がある。そこで、第2検出部28は、対象フレームの座標(x+mvx(x,y),y+mvy(x,y))についての動きベクトルを再度参照して置き換えるなどの追加補正を行ってもよい。また、第2検出部28は、動きベクトルの局所的なばらつきの影響を緩和するために、近傍の複数の動きベクトルの平均値を計算して保存しておき、その値を(mvx(x,y),mvy(x,y))の代わりに用いてもよい。
 第2検出部28は、動きベクトルを用いた補正後の中心座標に基づいて検出した領域について、その領域(矩形)の位置及び大きさを表す矩形情報を取得する。また、第2検出部28は、検出結果バッファ29から、参照フレームで検出された対応する領域についての物体の属性、及び検出結果の信頼度等を取得する。第2検出部28は、これらの情報をまとめて、対象フレームにおける物体検出の検出結果として、出力部30へ出力する。
 出力部30は、第1検出部27から出力された検出結果、又は第2検出部28から出力された検出結果を受け取り、出力する。また、出力部30は、フレームnの検出結果を、フレームn+1が対象フレームとなった際に参照するために、検出結果バッファ29に記憶する。
 次に、物体検出装置10の作用について説明する。図4は、物体検出装置10による物体検出処理の流れを示すフローチャートである。CPU11がROM12又はストレージ14から物体検出プログラムを読み出して、RAM13に展開して実行することにより、物体検出処理が行なわれる。なお、物体検出処理は、本開示の物体検出方法の一例である。
 ステップS101で、CPU11は、入力部21として、動画像を構成する各フレームのフレーム番号を示す変数nを0に設定する。次に、ステップS102で、CPU11は、入力部21として、動画像のフレームnを対象フレームに設定する。次に、ステップS103で、CPU11は、入力部21として、nが0より大きいか否かを判定する。n>0の場合には、ステップS104へ移行し、n=0の場合には、ステップS110へ移行する。ステップS104では、CPU11は、入力部21として、フレームn-1を参照フレームに設定する。
 次に、ステップS105で、CPU11は、算出部22として、フレームnとフレームn-1との間で動き探索を行い、フレームnの画像全体を分割したブロック毎の動きベクトルで表される動きベクトル場V(n)を算出する。そして、CPU11は、算出部22として、算出した動きベクトル場V(n)動きベクトルバッファ24に記憶する。
 次に、ステップS106で、CPU11は、算出部22として、動きベクトルを用いて、フレームn-1とフレームnとの間の変化の大きさを示す指標として、例えば(1)式に示すsad(n)、及び(2)式に示すdiff(n)を算出する。
 次に、ステップS107で、CPU11は、算出部22として、上記ステップS106で算出したsad(n)をsad_acに加算し、diff(n)をdiff_acに加算することにより、キーフレームから対象フレームまでの累積指標を算出する。そして、CPU11は、算出部22として、算出した累積指標を判定部25へ出力する。
 次に、ステップS108で、CPU11は、判定部25として、sad_acが閾値TH_sad未満、かつdiff_acが閾値TH_diff未満か否かを判定する。sad_ac<TH_sad、かつdiff_ac<TH_diffの場合には、ステップS109へ移行し、sad_ac≧TH_sad、又はdiff_ac≧TH_diffの場合には、ステップS110へ移行する。
 ステップS109では、CPU11は、判定部25として、第2検出部28に検出指示を出力する。そして、CPU11は、第2検出部28として、フレームn-1において検出された領域の位置を、動きベクトルを用いて補正した、フレームn上の領域を検出する。また、CPU11は、第2検出部28として、フレームnから検出した領域の各々について、物体の属性、信頼度、矩形情報等を含む検出結果を、出力部30へ出力し、ステップS112へ移行する。
 一方、ステップS110では、CPU11は、判定部25として、第1検出部27に検出指示を出力する。また、CPU11は、画像形成部26として、フレームnを、第1検出部27の物体検出モデルへ入力可能なサイズにリサイズし、第1検出部27へ出力する。そして、CPU11は、第1検出部27として、画像形成部26から出力されたフレームnを受け取り、物体検出モデルを用いて、フレームnから物体を示す領域を検出する。さらに、CPU11は、第1検出部27として、フレームnから検出した領域の各々について、物体の属性、信頼度、矩形情報等を含む検出結果を、出力部30へ出力する。
 次に、ステップS111で、CPU11は、判定部25として、算出部22で算出されている累積指標であるsad_ac及びdiff_acを初期化、すなわち0にし、ステップS112へ移行する。
 ステップS112では、CPU11は、出力部30として、上記ステップS109又はS110で出力された検出結果を受け取り、出力する。また、CPU11は、出力部30として、フレームnの検出結果を検出結果バッファ29に記憶する。
 次に、ステップS113で、CPU11は、入力部21として、nを1インクリメントして、ステップS102に戻る。
 以上説明したように、第1実施形態に係る物体検出装置は、複数のフレームを含む動画像の各フレームを対象フレームとし、対象フレームの全体に亘って、参照フレームを基準とした動きベクトルを算出する。また、物体検出装置は、動きベクトルを用いて表される、キーフレームと対象フレームとの間の変化の大きさを示す指標を算出する。キーフレームは、物体検出モデルを用いて物体検出が行われたフレームのうち、対象フレームの直近のフレームである。そして、物体検出装置は、指標が、予め定められた閾値以上の場合に、物体検出モデルを用いて、対象フレームから物体を示す領域を検出する。一方、物体検出装置は、指標が閾値未満の場合に、参照フレームにおいて検出された領域の位置を、動きベクトルを用いて補正した対象フレーム上の領域を検出する。そして、物体検出装置は、何れかの検出方法で検出された領域について、物体の属性、信頼度、矩形情報等を含む検出結果を出力する。これにより、第1実施形態に係る物体検出装置は、動画像に対する物体検出において、精度を低下させることなく、効率を向上させることができる。
<第2実施形態>
 次に、第2実施形態について説明する。第2実施形態に係る物体検出装置は、フレームを複数に分割した各部分画像の物体検出結果と、フレーム全体を縮小した縮小画像の物体検出結果との統合、すなわち、フレームの分割と合成とを用いた物体検出を行う。第2実施形態に係る物体検出装置は、その中の部分画像毎の物体検出の処理において、第1実施形態と同様に、キーフレームと対象フレーム間の変化の大きさを示す指標を用いて、物体検出モデルを用いた物体検出の処理をスキップするか否かを判定する。
 なお、第2実施形態に係る物体検出装置において、第1実施形態に係る物体検出装置10と同様の構成については、同一符号を付して詳細な説明を省略する。また、第2実施形態に係る物体検出装置のハードウェア構成は、図1に示す第1実施形態に係る物体検出装置10のハードウェア構成と同様であるため、説明を省略する。
 まず、第2実施形態に係る物体検出装置の機能構成について説明する。図5は、第2実施形態に係る物体検出装置210の機能構成の例を示すブロック図である。図5に示すように、物体検出装置210は、機能構成として、入力部221と、算出部222と、参照フレームバッファ23と、動きベクトルバッファ24と、判定部225と、部分画像生成部226Aと、縮小画像生成部226Bとを有する。さらに、物体検出装置210は、機能構成として、第1検出部227と、第2検出部228と、検出結果バッファ29と、出力部230とを有する。さらに、第1検出部227は、部分画像検出部227-m(m=1,2,3,4)と、縮小画像検出部227Bとを有する。各機能構成は、CPU11がROM12又はストレージ14に記憶された物体検出プログラムを読み出し、RAM13に展開して実行することにより実現される。
 なお、第2実施形態に係る物体検出装置210の機能構成と、第1実施形態に係る物体検出装置10の機能構成とで、符号の数字の末尾2桁が共通する機能構成同士において、共通する内容については、詳細な説明を省略する。
 入力部221は、動画像のフレームnを対象フレームとして、算出部222、部分画像生成部226A、及び縮小画像生成部226Bの各々へ出力する。
 部分画像生成部226Aは、対象フレームを複数の部分に分割した複数の部分画像を生成する。例えば、部分画像生成部226Aは、図6上図に示すように、対象フレームの左上、右上、左下、及び右下に位置する互いに重複した4つの部分をそれぞれ抽出する。そして、部分画像生成部226Aは、抽出したそれぞれの部分を、部分画像1(実線)、部分画像2(破線)、部分画像3(点線)、及び部分画像4(一点鎖線)として生成する。部分画像m(ここでは、m=1,2,3,4)のmは部分画像の番号である。なお、部分画像生成部226Aが生成する部分画像の数は図6の例に限定されない。
 部分画像生成部226Aは、生成した各部分画像mを、それぞれ対応する部分画像検出部227-mへ出力する。ここでは、部分画像1は部分画像検出部227-1へ出力され、部分画像2は部分画像検出部227-2へ出力され、部分画像3は部分画像検出部227-3へ出力され、部分画像4は部分画像検出部227-4へ出力されるものとする。
 縮小画像生成部226Bは、図6下図に示すように、対象フレーム全体を縮小した縮小画像(二点鎖線)を生成し、縮小画像検出部227Bへ出力する。
 算出部222は、第1実施形態における算出部22と同様に、対象フレーム(フレームn)について、参照フレームを基準とした動きベクトル場V(n)を算出する。また、算出部222は、部分画像生成部226Aで生成される部分画像mの各々に対応した、対象フレームの部分(以下、「部分m」という)それぞれについて、第1実施形態における算出部22と同様の方法により、累積指標を算出する。具体的には、算出部222は、対象フレームの部分mから、参照フレームと対象フレーム間の変化の大きさを示す指標として、sad(n,m)及びdiff(n,m)を算出する。また、対象フレームの部分m毎に、キーフレームと対象フレーム間の変化の大きさを示す累積指標として、sad_ac(m)及びdiff_ac(m)を算出する。
 判定部225は、部分m毎に、第1実施形態における判定部25と同様の方法で、累積指標が閾値以上か否かを判定する。判定部225は、部分mの累積指標が閾値以上の場合には、部分画像mに対応する部分画像検出部227-mへ、物体検出の処理を指示する検出指示を出力する。具体的には、判定部225は、sad_ac(1)≧TH_sad、又はdiff_ac(1)≧TH_diffの場合には、部分画像検出部227-1へ検出指示を出力する。また、判定部225は、sad_ac(2)≧TH_sad、又はdiff_ac(2)≧TH_diffの場合には、部分画像検出部227-2へ検出指示を出力する。また、判定部225は、sad_ac(3)≧TH_sad、又はdiff_ac(3)≧TH_diffの場合には、部分画像検出部227-3へ検出指示を出力する。また、判定部225は、sad_ac(4)≧TH_sad、又はdiff_ac(4)≧TH_diffの場合には、部分画像検出部227-4へ検出指示を出力する。一方、判定部225は、部分mの累積指標が閾値未満の場合には、第2検出部228へ、部分mについての検出指示を出力する。
 なお、判定部225は、処理量を平準化するために、sad(n,m)又はdiff(n,m)が下位から一定数の部分mについて、第2検出部228へ検出指示を出力してもよい。この場合、判定部225は、残りの部分mについては、第1検出部227の対応する部分画像検出部227-mに検出指示を出力する。
 第1検出部227に含まれる各検出部は、第1実施形態における第1検出部27と同様に、物体検出モデルを用いて、部分画像m又は縮小画像から物体を示す領域を検出し、物体の属性、信頼度、矩形情報等を含む検出結果を出力する。すなわち、検出指示が出力された部分画像検出部227-mから、部分画像mについての検出結果が出力される。また、縮小画像検出部227Bについては、フレーム毎に、縮小画像についての検出結果が出力される。なお、矩形情報については、部分画像m及び縮小画像のいずれの場合も、対象フレームの画像内座標に変換された情報が出力されるものとする。
 第2検出部228は、判定部225から検出指示が出力された部分mについて、参照フレームにおいて検出された領域の位置を、動きベクトルを用いて補正した、対象フレームの部分m上の領域を検出する。具体的には、第2検出部228は、第1実施形態における第2検出部28と同様に、検出結果バッファ29に記憶されている参照フレームの検出結果を取得する。そして、第2検出部228は、参照フレームの部分mにおいて検出された各物体の矩形情報の中心座標に対応する対象フレームの部分mの座標(位置情報)についての動きベクトルを動きベクトルバッファ24から取得する。そして、第2検出部228は、参照フレームにおける矩形の中心座標を、取得した動きベクトルの分補正した位置に対応する対象フレームの部分m上の座標を特定する。第2検出部228は、特定した座標を中心座標とする矩形であって、参照フレームにおける矩形と同サイズの矩形を、対象フレームの部分mから検出する。
 なお、位置を補正した矩形が対象フレームの部分mの範囲を超える場合には、その矩形が他の部分mから検出できる可能性が高い。この場合、第2検出部28は、部分mの範囲を超えないように矩形の位置を補正する等の処理を行うことなく、対象フレームの部分mからは該当の矩形が検出されなかったものとして処理してよい。
 出力部230は、第1検出部227の検出結果と、第2検出部228の検出結果とを統合して、対象フレームについての検出結果を出力すると共に、検出結果バッファ29に記憶する。具体的には、出力部230は、部分画像検出部227-m、及び第2検出部228から、部分画像m(m=1,2,3,4)の検出結果を取得する。例えば、判定部225により、部分1及び部分2については部分画像検出部227-1、227-2の各々に検出指示が出力され、部分3及び部分4については第2検出部228に検出指示が出力されたとする。この場合、出力部230は、部分画像検出部227-1から部分画像1の検出結果を取得し、部分画像検出部227-2から部分画像2の検出結果を取得し、第2検出部228から部分画像3及び部分画像4の検出結果を取得する。さらに、出力部230は、縮小画像検出部227Bから出力された縮小画像の検出結果を取得する。各検出結果には、各画像から検出された複数の領域、すなわち複数の物体についての検出結果が含まれる。
 そして、出力部230は、縮小画像の検出結果と部分画像の検出結果とで、同一の物体についての検出結果であると判断される場合に、部分画像の検出結果を削除する。具体的には、出力部230は、縮小画像の検出結果に含まれる領域と、部分画像mのいずれかの検出結果に含まれる領域とで、物体の属性が一致する領域同士の位置が、対象フレーム上で対応する位置関係にあるか否かを判定する。例えば、出力部230は、物体の属性が一致する領域同士の重複度が予め定めた閾値TH_S1以上の場合に、両領域が、対象フレーム上で対応する位置関係にあると判定してよい。
 例えば、出力部230は、縮小画像の検出結果に含まれる領域と、部分画像mの検出結果に含まれる領域とで、物体の属性が一致する領域同士が重複する面積を、縮小領域の検出結果に含まれる領域の面積で除算した値を重複度として算出してよい。各領域の面積及び重複する面積は、各領域の矩形情報に基づいて算出される。なお、各領域の矩形情報は、上述のように、対象フレームの画像座標内の座標値に変換されている。出力部230は、算出した重複度が、予め定めた閾値TH_S1以上の場合には、部分画像mの検出結果から、該当の領域についての検出結果を削除する。なお、複数の部分画像にまたがるように存在する物体については、複数の部分画像の各々に領域が分割されて検出結果が含まれている。そのため、これら全てを、縮小画像に含まれる検出結果の1つと共通するものとして削除するため、縮小画像の検出結果ではなく、部分画像mの検出結果から該当の領域の検出結果を削除している。
 なお、部分画像mの検出結果から領域を削除するか否かの判定方法は、上記の例に限定されない。例えば、出力部230は、上記の重複度が閾値TH_S1以上、かつ縮小画像の検出結果に含まれる領域の面積と、部分画像mの検出結果に含まれる領域の面積との比が、予め定められた閾値TH_S2以上か否かを判定する。出力部230は、この判定条件を満たす場合に、部分画像mの検出結果から該当の領域の検出結果を削除してもよい。縮小画像に含まれる領域のサイズが、対象フレームのサイズに対して比較的大きく、その領域と物体の属性が一致する領域が部分画像mに複数存在する場合には、縮小画像の領域と、部分画像の複数の領域の各々との重複度が閾値TH_S1を超える場合がある。このような場合を考慮して、縮小画像に含まれる領域と、部分画像に含まれる領域との位置関係の対応だけでなく、領域のサイズも同等か否かを判定することにより、部分画像mに含まれる領域の検出結果を誤って削除することを防止するものである。
 また、例えば、出力部230は、上記の重複度、及び重複度と面積比とを用いた判定に加え、以下の判定により、部分画像mに含まれる領域の検出結果を削除してもよい。具体的には、出力部230は、縮小画像の検出結果に含まれる全ての領域の各々の物体の属性のいずれとも一致しない物体の属性を有する領域が、部分画像mの検出結果に含まれるか否かを判定する。出力部230は、物体の属性がいずれとも一致しない領域が部分画像mに存在する場合、その領域の面積を、対象フレームの面積で除算して得られる値が、予め定められた閾値TH_S3以上か否かを判定する。出力部230は、得られた値が閾値TH_S3以上の場合、部分画像mに含まれる領域の検出結果から、該当の領域の検出結果を削除する。これにより、1つの物体を示す領域が複数の部分画像にまたがって存在したため、物体の特徴量が分割されて1つの部分画像mで抽出されたことによる誤検出を排除する。
 出力部230は、上記処理後に残った部分画像m、及び縮小画像の各々の検出結果をまとめて、最終的な検出結果として出力する。
 次に、物体検出装置210の作用について説明する。図7及び図8は、物体検出装置210による物体検出処理の流れを示すフローチャートである。CPU11がROM12又はストレージ14から物体検出プログラムを読み出して、RAM13に展開して実行することにより、物体検出処理が行なわれる。なお、第2実施形態における物体検出処理において、第1実施形態における物体検出処理(図4)と同一の処理については、同一のステップ番号を付して詳細な説明を省略する。
 ステップS101及びS102を経て、ステップS103でn=0と判定されると、ステップS203へ移行する。また、ステップS104~S105を経て、フレームnの動きベクトル場V(n)が算出されると、ステップS201へ移行する。
 ステップS201では、CPU11は、算出部222として、フレームnの部分m毎に、参照フレームと対象フレーム間の変化の大きさを示す指標として、sad(n,m)及びdiff(n,m)を算出する。
 次に、ステップS202で、CPU11は、算出部222として、フレームnの部分m毎に、上記ステップS201で算出したsad(n,m)をsad_ac(m)に加算し、diff(n,m)をdiff_ac(m)に加算する。これにより、算出部222は、キーフレームから対象フレームまでの累積指標を算出する。そして、CPU11は、算出部222として、算出した累積指標を判定部225へ出力し、ステップS204(図8)へ移行する。
 ステップS203では、CPU11は、判定部225として、部分画像検出部227-mの各々に検出指示を出力する。また、CPU11は、部分画像生成部226Aとして、フレームnから部分画像1~mmaxを生成し、対応する部分画像検出部227-mへ出力する。mmaxは、部分画像の番号の最大値であり、ここでは「4」である。すなわち、部分画像1、部分画像2、部分画像3、及び部分画像4が生成される。そして、CPU11は、部分画像検出部227-mの各々として、部分画像生成部226Aから出力された部分画像mを受け取り、物体検出モデルを用いて、部分画像mから物体を示す領域を検出する。さらに、CPU11は、部分画像検出部227-mとして、部分画像mから検出した領域の各々について、物体の属性、信頼度、矩形情報等を含む検出結果を、出力部230へ出力し、ステップS211(図8)へ移行する。
 ステップS204(図8)では、CPU11は、判定部225として、部分画像の番号を示す変数mに1を設定する。
 次に、ステップS205で、CPU11は、判定部225として、sad_ac(m)が閾値TH_sad未満、かつdiff_ac(m)が閾値TH_diff未満か否かを判定する。sad_ac(m)<TH_sad、かつdiff_ac(m)<TH_diffの場合には、ステップS206へ移行し、sad_ac(m)≧TH_sad、又はdiff_ac(m)≧TH_diffの場合には、ステップS207へ移行する。
 ステップS206では、CPU11は、判定部225として、第2検出部228に、部分mの物体検出を指示する検出指示を出力する。そして、CPU11は、第2検出部228として、フレームn-1において検出された領域の位置を、動きベクトルを用いて補正した、フレームnの部分m上の領域を検出する。また、CPU11は、第2検出部228として、フレームnの部分mから検出した領域の各々について、物体の属性、信頼度、矩形情報等を含む検出結果を、出力部230へ出力し、ステップS209へ移行する。
 一方、ステップS207では、CPU11は、判定部225として、部分画像検出部227-mに検出指示を出力する。また、CPU11は、部分画像生成部226Aとして、フレームnから部分画像mを生成し、部分画像検出部227-mに出力する。そして、CPU11は、部分画像検出部227-mとして、部分画像生成部226Aから出力された部分画像mを受け取り、物体検出モデルを用いて、部分画像mから物体を示す領域を検出する。さらに、CPU11は、部分画像検出部227-mとして、部分画像mから検出した領域の各々について、物体の属性、信頼度、矩形情報等を含む検出結果を、出力部230へ出力する。
 次に、ステップS208で、CPU11は、判定部225として、算出部222で算出されている累積指標であるsad_ac(m)及びdiff_ac(m)を初期化、すなわち0にし、ステップS209へ移行する。
 ステップS209では、CPU11は、判定部225として、mを1インクリメントする。次に、ステップS210で、CPU11は、判定部225として、mがmmaxを超えたか否かを判定する。m>mmaxの場合には、ステップS211へ移行し、m≦mmaxの場合には、ステップS205に戻る。
 ステップS211では、CPU11は、縮小画像生成部226Bとして、フレームn全体を縮小した縮小画像を生成し、縮小画像検出部227Bへ出力する。そして、CPU11は、縮小画像検出部227Bとして、物体検出モデルを用いて、縮小画像から物体を示す領域を検出し、物体の属性、信頼度、矩形情報等を含む検出結果を出力する。
 次に、ステップS212で、CPU11は、出力部230として、上記ステップS206、S207、及びS211で出力された検出結果を受け取り、共通する検出結果を削除することにより、縮小画像の検出結果と部分画像mの検出結果とを統合する。次に、ステップS112で、CPU11は、出力部230として、上記ステップS212で統合した検出結果を、フレームnの最終的な検出結果として出力すると共に、検出結果バッファ29に記憶する。
 以上説明したように、第2実施形態に係る物体検出装置は、第1実施形態と同様に、動きベクトルを用いて算出される指標が閾値以上の場合に、物体検出モデルを用いて、対象フレームの物体検出を行う。一方、物体検出装置は、指標が閾値未満の場合に、参照フレームにおいて検出された領域の位置を、動きベクトルを用いて補正した対象フレーム上の領域を検出する。この際、物体検出装置は、部分画像毎に指標の算出、閾値判定、及び物体検出の処理を実行する。また、物体検出装置は、対象フレームを縮小した縮小画像から、物体検出モデルを用いて物体検出を行い、縮小画像の検出結果と部分画像の検出結果とを統合する。これにより、第1実施形態と同様に、第2実施形態に係る物体検出装置は、動画像に対する物体検出において、精度を低下させることなく、効率を向上させることができる。また、第2実施形態に係る物体検出装置は、対象フレームを部分画像に分割して各種処理を実行することにより、動きの変化が少ない部分毎に、参照フレームの検出結果を用いた領域の検出を行うことができ、より効率を向上させることができる。さらに、第2実施形態に係る物体検出装置は、縮小画像と部分画像とで検出結果を統合することで、縮小した場合に抽出が困難となる、対象フレームに対する大きさが比較的小さい物体、及び、複数の部分画像にまたがる比較的大きい物体の両方を検出可能になる。そのため、第2実施形態に係る物体検出装置は、高精細な動画像を対象とする場合であっても、物体検出の精度を低下させることなく、効率的な物体検出を行うことができる。
 なお、第2実施形態では、第1検出部として、部分画像検出部及び縮小画像検出部を含む場合について説明したが、部分画像検出部のみを含む構成としてもよい。この場合でも、動きの変化が少ない部分毎に、参照フレームの検出結果を用いた領域の検出を行うことによる効率の向上を実現することができる。
 また、第2実施形態では、生成される部分画像毎に部分画像検出部を設ける場合について説明したが、これに限定されない。少なくとも1つの部分画像検出部を設けておき、判定部により、物体検出モデルによる物体検出を行うと判定された部分画像についての検出指示を部分画像生成部に出力するようにしてもよい。この場合、検出指示の対象である部分画像のみを部分画像生成部から部分画像検出部に出力するようにすればよい。
 また、上記各実施形態では、動き補償の予測差分絶対値和sad及び動きベクトル成分の差分絶対値和diffの累積値の両方が閾値未満の場合に、物体検出モデルを用いた物体検出をスキップする場合について説明したが、これに限定されない。いずれか一方の指標が閾値未満の場合に、物体検出モデルを用いた物体検出をスキップするようにしてもよい。また、sad及びdiffの積や重み付き和等、sad及びdiffを用いた1つの指標が閾値未満の場合に、物体検出モデルを用いた物体検出をスキップするようにしてもよい。さらに、キーフレームと対象フレーム間の変化の大きさを示す指標として、sad及びdiff以外の指標を用いてもよい。
 また、上記各実施形態では、参照フレームを対象フレームの直前のフレームとする場合について説明したが、これに限定されない。なお、参照フレームを、物体検出モデルによる物体検出が行われた直近のフレームであるキーフレームとする場合には、上記各実施形態のように、指標を累積する処理は不要である。
 なお、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した物体検出処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、物体検出処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
 より具体的には、上記各実施形態で説明した各機能構成(図2及び図5の各部)をそれぞれ専用回路で実現し、LSI(Large-Scale Integration)内部で複数の専用回路が並列で動作する構成としてもよい。また、一部の機能構成については専用回路で実現し、他の機能構成については、CPUがソフトウェア(プログラム)を読み込んで実行することで実現されるようにしてもよい。例えば、上記各実施形態における判定部や第2検出部のような処理量が少ない機能構成の処理については、LSI内のCPUが実行し、その他の部分は専用回路を適用するようにしてもよい。
 また、上記各実施形態では、物体検出処理プログラムがROM12又はストレージ14に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の非一時的(non-transitory)記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
 以上の実施形態に関し、さらに以下の付記を開示する。
 (付記項1)
 メモリと、
 前記メモリに接続された少なくとも1つのプロセッサと、
 を含み、
 前記プロセッサは、
 複数のフレームを含む動画像の各フレームを対象フレームとし、前記対象フレームの全体に亘って、参照フレームを基準とした動きベクトルを算出すると共に、前記動きベクトルを用いて表される、キーフレームと前記対象フレームとの間の変化の大きさを示す指標を算出し、
 算出された指標が、予め定められた閾値以上か否かを判定し、
 前記指標が前記閾値以上の場合に、物体検出モデルを用いて、前記対象フレームから物体を示す領域を検出し、
 前記指標が前記閾値未満の場合に、前記参照フレームにおいて検出された領域の位置を、前記動きベクトルを用いて補正した前記対象フレーム上の領域を検出し、
 前記対象フレームから検出された前記領域の情報を出力する
 ように構成されている物体検出装置。
 (付記項2)
 物体検出処理を実行するようにコンピュータによって実行可能なプログラムを記憶した非一時的記録媒体であって、
 前記物体検出処理は、
 複数のフレームを含む動画像の各フレームを対象フレームとし、前記対象フレームの全体に亘って、参照フレームを基準とした動きベクトルを算出すると共に、前記動きベクトルを用いて表される、キーフレームと前記対象フレームとの間の変化の大きさを示す指標を算出し、
 算出された指標が、予め定められた閾値以上か否かを判定し、
 前記指標が前記閾値以上の場合に、物体検出モデルを用いて、前記対象フレームから物体を示す領域を検出し、
 前記指標が前記閾値未満の場合に、前記参照フレームにおいて検出された領域の位置を、前記動きベクトルを用いて補正した前記対象フレーム上の領域を検出し、
 前記対象フレームから検出された前記領域の情報を出力する
 ことを含む非一時的記録媒体。
10、210  物体検出装置
11   CPU
12   ROM
13   RAM
14   ストレージ
15   入力部
16   表示部
17   通信I/F
19   バス
21、221  入力部
22、222  算出部
23   参照フレームバッファ
24   動きベクトルバッファ
25、225  判定部
26   画像形成部
226A      部分画像生成部
226B      縮小画像生成部
27、227  第1検出部
227-1~4       部分画像検出部
227B      縮小画像検出部
28、228  第2検出部
29   検出結果バッファ
30、230  出力部

Claims (8)

  1.  複数のフレームを含む動画像の各フレームを対象フレームとし、前記対象フレームの全体に亘って、参照フレームを基準とした動きベクトルを算出すると共に、前記動きベクトルを用いて表される、キーフレームと前記対象フレームとの間の変化の大きさを示す指標を算出する算出部と、
     前記算出部により算出された指標が、予め定められた閾値以上か否かを判定する判定部と、
     前記指標が前記閾値以上の場合に、物体検出モデルを用いて、前記対象フレームから物体を示す領域を検出する第1検出部と、
     前記指標が前記閾値未満の場合に、前記参照フレームにおいて検出された領域の位置を、前記動きベクトルを用いて補正した前記対象フレーム上の領域を検出する第2検出部と、
     前記第1検出部により検出された前記領域の情報、及び前記第2検出部により検出された前記領域の情報を出力する出力部と、
     を含む物体検出装置。
  2.  前記キーフレームは、前記第1検出部により前記領域が検出されたフレームのうち、前記対象フレームの直近のフレームであり、
     前記算出部は、前記キーフレームから前記対象フレームまでの各フレームで得られる前記指標の累積値を、前記判定部で前記閾値と比較するための指標として算出する
     請求項1に記載の物体検出装置。
  3.  前記指標は、前記動きベクトルを用いた動き補償の予測誤差の大きさを示す指標、及び前記動きベクトルのばらつきの大きさを示す指標の少なくとも一方である請求項1又は請求項2に記載の物体検出装置。
  4.  前記対象フレームを複数の部分に分割した複数の部分画像を生成する部分画像生成部をさらに含み、
     前記算出部は、前記部分画像毎に、前記指標を算出し、
     前記判定部は、前記部分画像毎に、前記指標が前記閾値以上か否かを判定し、
     前記第1検出部は、前記判定部により前記指標が前記閾値以上と判定された前記部分画像から、前記物体を示す領域を検出し、
     前記第2検出部は、前記判定部により前記指標が前記閾値未満と判定された前記部分画像から、前記物体を示す領域を検出し、
     前記出力部は、前記第1検出部により検出された領域と、前記第2検出部により検出された領域とを統合して、前記対象フレームにおける物体を示す領域の情報を出力する
     請求項1~請求項3の何れか1項に記載の物体検出装置。
  5.  前記対象フレーム全体を縮小した縮小画像を生成する縮小画像生成部をさらに含み、
     前記第1検出部は、さらに、前記縮小画像から前記物体を示す領域を検出する
     請求項4に記載の物体検出装置。
  6.  前記物体検出モデルは、畳み込みニューラルネットワークである請求項1~請求項5の何れか1項に記載の物体検出装置。
  7.  算出部が、複数のフレームを含む動画像の各フレームを対象フレームとし、前記対象フレームの全体に亘って、参照フレームを基準とした動きベクトルを算出すると共に、前記動きベクトルを用いて表される、キーフレームと前記対象フレームとの間の変化の大きさを示す指標を算出し、
     判定部が、前記算出部により算出された指標が、予め定められた閾値以上か否かを判定し、
     第1検出部が、前記指標が前記閾値以上の場合に、物体検出モデルを用いて、前記対象フレームから物体を示す領域を検出し、
     第2検出部が、前記指標が前記閾値未満の場合に、前記参照フレームにおいて検出された領域の位置を、前記動きベクトルを用いて補正した前記対象フレーム上の領域を検出し、
     出力部が、前記第1検出部により検出された前記領域の情報、及び前記第2検出部により検出された前記領域の情報を出力する
     物体検出方法。
  8.  コンピュータを、請求項1~請求項6の何れか1項に記載の物体検出装置の各部として機能させるための物体検出プログラム。
PCT/JP2021/004839 2021-02-09 2021-02-09 物体検出装置、方法、及びプログラム WO2022172341A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/JP2021/004839 WO2022172341A1 (ja) 2021-02-09 2021-02-09 物体検出装置、方法、及びプログラム
JP2022581061A JPWO2022172341A1 (ja) 2021-02-09 2021-02-09
EP21925595.7A EP4293611A1 (en) 2021-02-09 2021-02-09 Object detection device, method, and program
US18/275,786 US20240119605A1 (en) 2021-02-09 2021-02-09 Object detection device, method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/004839 WO2022172341A1 (ja) 2021-02-09 2021-02-09 物体検出装置、方法、及びプログラム

Publications (1)

Publication Number Publication Date
WO2022172341A1 true WO2022172341A1 (ja) 2022-08-18

Family

ID=82838406

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/004839 WO2022172341A1 (ja) 2021-02-09 2021-02-09 物体検出装置、方法、及びプログラム

Country Status (4)

Country Link
US (1) US20240119605A1 (ja)
EP (1) EP4293611A1 (ja)
JP (1) JPWO2022172341A1 (ja)
WO (1) WO2022172341A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117440162A (zh) * 2023-12-19 2024-01-23 齐齐哈尔医学院 一种多媒体互动教学方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015088092A (ja) * 2013-11-01 2015-05-07 富士通株式会社 移動量推定装置及び移動量推定方法
JP2020515983A (ja) * 2017-11-28 2020-05-28 シェンチェン センスタイム テクノロジー カンパニー リミテッドShenzhen Sensetime Technology Co.,Ltd 対象人物の検索方法および装置、機器、プログラム製品ならびに媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015088092A (ja) * 2013-11-01 2015-05-07 富士通株式会社 移動量推定装置及び移動量推定方法
JP2020515983A (ja) * 2017-11-28 2020-05-28 シェンチェン センスタイム テクノロジー カンパニー リミテッドShenzhen Sensetime Technology Co.,Ltd 対象人物の検索方法および装置、機器、プログラム製品ならびに媒体

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
J. REDOMON, YOLOV3: AN INCREMENTAL IMPROVEMENT, Retrieved from the Internet <URL:https://arxiv.org/abs/1804.02767>
WEI LIU, SSD: SINGLE SHOT MULTIBOX DETECTOR

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117440162A (zh) * 2023-12-19 2024-01-23 齐齐哈尔医学院 一种多媒体互动教学方法及系统
CN117440162B (zh) * 2023-12-19 2024-02-23 齐齐哈尔医学院 一种多媒体互动教学方法及系统

Also Published As

Publication number Publication date
JPWO2022172341A1 (ja) 2022-08-18
EP4293611A1 (en) 2023-12-20
US20240119605A1 (en) 2024-04-11

Similar Documents

Publication Publication Date Title
US8681870B2 (en) Motion vector detection device
US10818018B2 (en) Image processing apparatus, image processing method, and non-transitory computer-readable storage medium
JP2001251632A (ja) 動きベクトル検出方法および装置並びに動きベクトル検出プログラム
JP2005287048A (ja) 画像境界における動きベクトル検出の改良
JP2009147807A (ja) 画像処理装置
JP5471449B2 (ja) 移動領域検出装置
JP6236259B2 (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
JP2013066164A (ja) 画像処理装置、および画像処理方法、並びにプログラム
WO2022172341A1 (ja) 物体検出装置、方法、及びプログラム
US20120176536A1 (en) Adaptive Frame Rate Conversion
JP4385077B1 (ja) 動きベクトル検出装置および画像処理装置
US20130235274A1 (en) Motion vector detection device, motion vector detection method, frame interpolation device, and frame interpolation method
JP4525064B2 (ja) 動きベクトル検出装置、および動きベクトル検出方法、並びにコンピュータ・プログラム
CN106303545B (zh) 用于在帧序列中执行运动估计的数据处理系统和方法
JP2010108205A (ja) 超解像画像作成方法
JP4622265B2 (ja) 動きベクトル検出装置、および動きベクトル検出方法、並びにプログラム
JP4622264B2 (ja) 動きベクトル検出装置、および動きベクトル検出方法、並びにコンピュータ・プログラム
JP4207764B2 (ja) 動きベクトル検出装置、および動きベクトル検出方法、並びにコンピュータ・プログラム
JP7239050B2 (ja) 画像処理装置、画像処理システム、画像処理方法、および画像処理プログラム
JPH0478286A (ja) 初期偏位ベクトルを用いた動きベクトルの検出方法
JP4207763B2 (ja) 動きベクトル検出装置、および動きベクトル検出方法、並びにコンピュータ・プログラム
US20110194607A1 (en) Information Processing Device, Information Processing Method, and Program
JP3580612B2 (ja) 動画像符号化装置の動き検出装置
JP3020299B2 (ja) 動きベクトル検出装置
JP6148146B2 (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: 21925595

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022581061

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 18275786

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2021925595

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2021925595

Country of ref document: EP

Effective date: 20230911