WO2018003212A1 - 物体検出装置及び物体検出方法 - Google Patents

物体検出装置及び物体検出方法 Download PDF

Info

Publication number
WO2018003212A1
WO2018003212A1 PCT/JP2017/012397 JP2017012397W WO2018003212A1 WO 2018003212 A1 WO2018003212 A1 WO 2018003212A1 JP 2017012397 W JP2017012397 W JP 2017012397W WO 2018003212 A1 WO2018003212 A1 WO 2018003212A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
scale
cnn
window
pedestrian
Prior art date
Application number
PCT/JP2017/012397
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 クラリオン株式会社
Publication of WO2018003212A1 publication Critical patent/WO2018003212A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis

Definitions

  • the present invention relates to detection of a pedestrian using a convolutional neural network (CNN) and machine learning therefor.
  • CNN convolutional neural network
  • a sliding window generator is used for this purpose.
  • the sliding window generator slides windows of various sizes on the frame, cuts out small images from slightly shifted positions, and generates a large number of small images.
  • recognition processing is performed by inputting a small image with a uniform size.
  • a plurality of pedestrian candidates detected by the identification unit are collected by non-maximum suppression (NMS) processing.
  • NMS non-maximum suppression
  • Non-Patent Documents 1 and 2 describe detection methods for pedestrians and the like using a plurality of CNNs in cascade.
  • Patent Documents 1, 2, and 3 describe face recognition methods using a plurality of CNNs.
  • Non-Patent Documents 3 and 5 describe a method in which the entire frame is input to the CNN and processed without using the sliding window generator as described above.
  • Non-Patent Document 5 describes a method of detecting objects from an image generated by performing a sliding window process on a feature map of CNN and collecting them by non-maximum suppression processing.
  • Non-Patent Document 4 discloses a technique using a detector that uses a different feature detector each time an object is detected from a frame, that is, every time an pedestrian is doubled. .
  • human-programmed (handmade) feature detectors are used, rather than deep learning in which feature detectors are acquired by learning.
  • the first problem is to increase the speed and real time of the convolutional neural network for detecting pedestrians. There are the following two factors that hinder the performance improvement.
  • the multi-layer neural network has a problem that it takes enormous calculation time. In deep learning, high recognition performance can be obtained more easily by using a larger network.
  • the second problem is to eliminate the discrepancy between learning in window units and detection in frame units.
  • learning is performed for each window generated by the sliding window process, but even if good results are obtained in this learning, good results are obtained in frame-by-frame detection. Often not.
  • window-based score One reason for the difference between the window-based score and the frame-based score is that several hundred to 10,000 windows are generated from one frame, and if false positives are detected in them, they are added. There is. For example, if false positives are detected in 0.1% of these windows, an average of 1 false positive per frame will be detected if there are 1000 windows, which is difficult to put into practical use. There was a problem. For this reason, it is said that false positives in window units need to be 10 -4 or less.
  • the handmade feature extractors that have been used in the past, only those that use the HOG (histogram of oriented gradient) feature satisfy this condition.
  • Another cause of the difference between the window-based performance and the frame-based performance is the extreme difference between the pedestrian image and its appearance frequency given as a positive example during training, and the pedestrian image and its appearance frequency that appear at the time of detection ( It is considered that there is a difference of 3 digits or more).
  • class imbalance problem Such a problem that there is an extreme difference in frequency for each class of data is called class imbalance problem.
  • ⁇ Pedestrian images with size, position, and background images are given during training, but what kind of images appear during detection is unknown.
  • a pedestrian may appear cut at the edge of the image or may appear with various other objects.
  • positive cases and negative cases appear in a one-to-one ratio or a ratio close thereto, but in detection, there are many cases that appear only at a frequency of 0.1% or less.
  • the third issue is the difficulty of learning due to the complexity of the network and data.
  • the behavior of a large-scale neural network is complex, and the data that it tries to learn and detect is diverse and complex. These complexities make learning neural networks difficult.
  • the large-scale CNN often used in recent research has a complicated process, even though it uses a repetitive structure and is relatively simple in structure. It is not easy to learn.
  • Various guidelines for training have been proposed, but the content is not necessarily scientific, and learning of a large-scale CNN is very difficult in engineering.
  • the diversity and complexity of data particularly with regard to detection of pedestrians, pedestrians of various sizes, shapes, and colors are often included in images for detecting pedestrians.
  • the fourth problem is to improve the recognition rate when detecting low-resolution pedestrians.
  • the low recognition rate in the conventional pedestrian detection method is that the effective method at high resolution is not always effective for detecting pedestrians in low-resolution images, and a method to compensate for it has also been developed. This is because there is not.
  • HOG histogram-of-oriented-gradient
  • the present invention has been made in view of the above problems, and an object thereof is to speed up the detection of a specific object (pedestrian) using a convolutional neural network.
  • the present invention is an object detection apparatus for detecting a specific object from an input image, wherein a plurality of neurons that input an image in which pixels are arranged and perform a convolution calculation on the pixels on the image, A feature extraction unit that outputs a feature map by laminating one or more layers of a neural network including a pooling neuron that calculates one value from the output of the neuron, and a feature map output from the feature extraction unit.
  • a sliding window unit that inputs and executes a sliding window process to output a plurality of feature map windows, and inputs the feature map window to determine whether or not a specific object is included in the feature map window
  • a first detection module that includes an identification unit, and a second input that receives the output of the first detection module.
  • the output module is cascade-connected, and the second detection module calculates a single value from the plurality of neurons that input the image and perform a convolution calculation on the pixels on the image, and the output of the plurality of neurons.
  • a feature extraction unit that outputs one or more layers of a neural network including a pooling neuron to output a feature map, and whether the feature map is input and whether a specific object is included in the feature map
  • the following four effects can be obtained in detecting pedestrians. That is, first, detection of a specific object (pedestrian) using a convolutional neural network is accelerated and can be processed in real time, and can be mounted on a vehicle-mounted system. Secondly, since the discrepancy between learning in window units and detection in frame units is reduced, the recognition rate in detecting pedestrians is improved. Thirdly, the structure of the neural network is simplified, and the processing targets of the individual neural networks constituting the ensemble are limited, so that learning is facilitated. Fourth, the recognition rate when detecting a pedestrian from a low resolution image is improved.
  • the pedestrian detection unit 702 that is the main part of the pedestrian detection system 700 shown in FIG. 7 is referred to as a “CNN ensemble detector”.
  • CNN ensemble detector the entire pedestrian detection system will be described first, followed by a description of the configuration and detection process of the CNN ensemble detector, and a learning method.
  • FIG. 7 describes the configuration of a pedestrian detection system 700 mounted on a vehicle 701.
  • video cameras 711, 712, 713, and 714 are used to photograph the front, side, and rear of a vehicle 701 (not included in the pedestrian detection system 700).
  • the display and alarm unit 703 operates. That is, the presence of a pedestrian is displayed on a display or the like, or a warning is issued by voice.
  • the video cameras 711, 712, 713, and 714 have fisheye lenses and shoot around the vehicle 701.
  • FIG. 9 is a block diagram illustrating an example of a hardware configuration of the pedestrian detection system 700.
  • the hardware of the pedestrian detection system 700 includes a CPU 11 that performs arithmetic processing, a GPU 12 that mainly performs floating-point arithmetic, a memory 13 that stores programs and data, a storage 14 that stores programs and data, and a CPU 11. It includes an interface 15 for connecting devices, an input / output device 16 connected via the interface 15, and video cameras 711 to 714 connected via the interface 15.
  • the pedestrian detection program 7021 is loaded into the memory 13 and is executed by the CPU 11 and the GPU 12.
  • the CPU 11 and the GPU 12 function as a CNN ensemble detector described later.
  • the input / output device 16 includes, for example, a display and a touch panel.
  • the configuration of the CNN ensemble detector and the detection process will be described.
  • the CNN ensemble detector 100 is configured by using CNNs (111 to 113, 121 to 123, 131 to 133) in an ensemble as shown in FIG.
  • the overall configuration is described first, and then the processing configuration for each scale (1 to 3) 101 to 103 and the configuration within the scale are described.
  • the CNN ensemble detector 100 includes three scales divided into one octave unit, that is, a scale 1 (101), a scale 2 (102), and a scale 3 (103). Each scale has one or more stages (here, three stages, In other words, the scale 1 (101) has 111, 112, 113, the scale 2 (102) has 121, 122, 123, and the scale 3 (103) has 131, 132, 133) cascades.
  • the performance may be improved if the number of scales and cascades is larger.
  • the pedestrian information detected from the image is collected by a processing unit called non-maximum suppression (NMS) 140 (aggregation unit). That is, the overlapping detection results are combined into one from the output of the detection module for each scale.
  • NMS non-maximum suppression
  • Most conventional deep learning uses one large-scale neural network, which is suitable (and can be made faster) for massively parallel architectures consisting of billions of elements such as the cranial nervous system.
  • a configuration such as the CNN ensemble detector 100 incorporating a conventional control structure is more suitable for a parallel architecture including 10 million units of arithmetic elements such as a GPU.
  • the input image 141 is first rescaled, and the scale 2 (102) handles the image 142 having half the vertical and horizontal pixels, and the scale 3 (103) handles the image 143 having the vertical and horizontal pixels of 1/4. Further, the input image 141 is input to the scale 1 (101) as it is. In the illustrated example, the number of pixels of the input image 141 is 1280 ⁇ 448.
  • Each CNN handles an image with a window size of 32 pixels wide and 64 pixels high during learning, that is, the learning image is 32 ⁇ 64.
  • the entire frame is input, and at least at the first stage of each scale, it is divided into windows within the CNN.
  • the input image 141 of the original size is input on the scale 1 (101), the entire half size of the original size is input on the scale 2 (102), and the entire frame of the original size is input on the scale 3 (103).
  • One scale handles images in the range of 1 octave. That is, in each scale, a pedestrian image having a height of approximately 33 to 64 pixels in the size after rescaling is handled (actually, the size of the bounding box included in the learning image is 33 to 64, not the pedestrian height).
  • an input unit that distributes the input image 141 to each scale 1 to 3 is provided in front of each scale 1 to 3 (101 to 103), and the input unit is provided for each scale 1 to 3.
  • a rescale unit for changing the size of the input image 141 is included.
  • the target since the target is to set the recognition rate of pedestrian images of 50 pixels or higher to 90% or higher, it is not necessary to detect pedestrian images of 32 pixels or less in height. In other words, it is excluded from learning. Moreover, although the whole image of a pedestrian having a height of 257 pixels cannot be detected (it does not fit in a window 3 ⁇ 256 of a scale 3), it aims to detect it by a texture or the like.
  • images are classified into three scales only by the size of the bounding box at the time of learning.
  • images for learning can be classified by resolution.
  • image recognition there are images having the same image size but different resolutions. In other words, the image size is large but the resolution may be low due to differences in the focal length of the lens.
  • image recognition with resizing the difference in resolution is more important than the difference in size.
  • the images may be classified according to the spatial frequency range.
  • the scales 1 to 3 (101 to 103) of the CNN ensemble detector 100 handle the input images 141 to 143 in which the number of samples is increased (oversampling) by resizing as follows.
  • the ensemble detector 100 resizes the input image 141 (left end) to three scales.
  • Scale 1 (101) handles the original size
  • scale 2 (102) reduces the number of vertical and horizontal pixels to 1/2
  • scale 3 (103) resizes the vertical and horizontal pixels to 1/4.
  • the CNN ensemble detector 100 aims at real-time processing, an area where no pedestrian is considered to exist in each scale is excluded from the detection range.
  • the frame size of the input image 141 is set to 1280 ⁇ 448.
  • the image size after rescaling is 320 ⁇ 112.
  • the detection range is limited to a range of 1280 ⁇ 256 in the upper part of the drawing, so that the image size after rescaling is 640 ⁇ 128.
  • the detection range is limited to the upper 1280 ⁇ 192 range in the figure, so the image size is 1280 ⁇ 192.
  • the CNN that is each element of the cascade is the full-screen CNN 210 shown in FIG. 2B or the window CNN 200 shown in FIG. 2A, and both act as filters for windows that are candidates for pedestrian images.
  • full screen CNNs 111, 121, and 131 are configured by full screen CNN 210 shown in FIG. 2B
  • CNNs 112, 113, 122, 123, 132, and 133 are configured by window CNN 200 shown in FIG. 2A.
  • the first stage full screen CNN 111, 121, 131
  • all the windows of the frame to be processed are candidates, but in the latter stage, windows that are not candidates in the previous stage need not be processed. Since it is necessary to process all parts of the input images 141, 142, and 143 frames in the first stage, adopting the full-screen CNN 210 with no overlap in the convolution calculation suppresses the calculation amount and speeds up the processing. However, if the full screen CNN is used in the subsequent stage, all parts of the frame are processed, resulting in useless calculation.
  • the process of adopting the window CNN 200 in the subsequent stage is accelerated.
  • a process of dividing a frame into windows just before the second stage is performed, and necessary ones may be selected and used from all of the following stages. This process is similar to the sliding window process, but it is not necessary to cut out the window that has been dropped from the candidate in the first stage.
  • the stage is constituted by the full screen CNN 210, there is an advantage that the calculation time becomes constant.
  • CNN is optimized independently for each of scales 1 to 3 (101 to 103) to improve the detection performance of pedestrian images and reduce processing time. That is, by changing the number of filters and the total number of connected neurons for each of scales 1 to 3 (101 to 103) and performing different learning for each scale 1 to 3 (101 to 103) and using different weights, it is more optimal. Results can be obtained.
  • the number of filters is 8, 11, 11 (8 in the first stage convolution layer of CNN, 11 in the second and third stage convolution layers), and scale 2 (102), In 3 (103), the number of filters can be 16, 22, and 22.
  • scale 1 (101) is considered to have fewer features to be detected.
  • a plurality of cascaded CNNs can be optimized for each stage.
  • the same number of filters is used in all stages, but they need not be the same.
  • the processing speed can be increased by reducing the scale of the first stage CNN.
  • the ratio of the second and subsequent stages to the entire processing time is low, it is possible to increase the scale and improve the recognition performance.
  • the detection results of each scale 1 to 3 are finally collected by the NMS 140.
  • NMS 140 There are various methods for NMS 140, but when processing for each scale 1 to 3 can sufficiently reduce false positives (up to 10-4 ), each simple greedy method (eg greedy algorithm) Images of pedestrians detected on scales 1 to 3 can be collected (overlapping detection results are combined into one) and output as determination results. This embodiment is premised on that it can be processed by such a known or well-known method.
  • each CNN As the CNN used in the CNN ensemble detector 100, there is no functional change regardless of which of the full-screen CNN 210 (first detection module) and the window CNN 200 (second detection module) described below is used. At least the first stage of each scale 1 to 3 uses the full screen CNN 210 to improve the processing speed. However, depending on the conditions, the processing speed may be improved using the window CNN 200.
  • the feature of the method of using the full screen CNN 210 is that the CNN to be used can be switched depending on the conditions. Hereinafter, the configuration of these CNNs will be described.
  • a CNN (hereinafter referred to as a window CNN) 200 includes a feature extraction unit (convolution unit) 201 and an identification unit (all coupling unit) 203 as shown in FIG. 2A.
  • the feature extraction unit 201 is composed of a single-layer or multi-layer (6 layers in FIG. 2A) neural network in which neurons that perform convolution calculations and neurons that perform pooling are combined, and a feature map ( Feature map) is output.
  • the identification unit 203 is configured by a neural network including a layer formed by all connected neurons and an output layer formed by logistic regression.
  • the feature extraction unit 201 and the neurons in the entire connection layer use a polygonal line function ReLU (rectified linear unit) as a threshold function (activation function).
  • ReLU rectified linear unit
  • the output will be a real number between 0 and 1, so the threshold value should be determined and quantized to 0 (no pedestrian detected) or 1 (pedestrian detected).
  • the threshold value can be set to 0.5, for example, but the sensitivity can be adjusted by using different values.
  • a known or well-known CNN is composed of a feature extraction unit (convolution unit) 201 and an identification unit 203 as shown in FIG. 2A, and both perform processing in units of windows. Then, the CNN for full screen batch processing (full screen CNN 210) is used.
  • the full screen CNN includes a feature extraction unit (convolution unit) 211, a sliding window unit 212, and an identification unit (all coupling unit) 213.
  • the feature extraction unit 211 includes a neural network including a plurality of neurons that perform convolution calculations for pixels on an input image and a pooling neuron that aggregates one value from the outputs of the plurality of neurons.
  • the sliding window unit 212 receives the feature map output from the feature extraction unit 211, executes a sliding window process, and generates and outputs a plurality of feature map windows.
  • the identification unit 213 inputs a feature map window from the sliding window unit 212 and determines whether or not an image of a pedestrian (or a specific object) is included in the feature map window.
  • the entire frame of the input image 141 is input to the feature extraction unit 211, and the feature map output from the feature extraction unit 211 is input to the sliding window unit 212 to generate a large number of windows. Input to 213.
  • the new frame (feature map window) is generated from the original frame by the sliding window process
  • the same result as that inputted to the known or well-known CNN can be outputted from the identification unit 213.
  • Full-screen CNN 210 or window CNN 200 inputs the entire frame (here, a size of 640 ⁇ 480) as shown in FIG. 2B.
  • the feature extraction unit 211 of the full-screen CNN used in this embodiment is composed of the following layers, and differs only in the number of filters (number of kernels) and weight (the number of layers, filter size, pooling method, and the like) Whether or not can be changed).
  • ⁇ Convolution layer 1 filter size is 5 ⁇ 5
  • Pooling layer 1 Performs reduction by maximum pooling (max pooling) of 1 ⁇ 2 each in length and width.
  • ⁇ Convolution layer 2 Filter size is 3 ⁇ 3 Pooling layer 2: Performs reduction by maximum pooling (max pooling) of 1 ⁇ 2 each in length and width.
  • ⁇ Convolution layer 3 Filter size is 3 ⁇ 3 Pooling layer 3: Performs reduction by maximum pooling (max pooling) of 1 ⁇ 2 each in vertical and horizontal directions.
  • the sliding window unit 212 inputs a full-screen feature map (Feature Map in the figure) output from the pooling layer, and a 2 ⁇ 6 size window (when the window size of the corresponding window CNN is 32 ⁇ 64)
  • a plurality of images (window feature maps) having a size of 2 ⁇ 6 are output while sliding each pixel vertically and horizontally.
  • the size of this window is equal to the size of the feature map input by all connected layers of the window CNN having the same parameters (number of layers, filter size, pooling) as above (see FIG. 1).
  • each full-screen CNN 210 is composed of the following two layers.
  • the first layer is a fully connected layer and consists of 50 or 30 neurons. Each neuron is input from the entire window feature map.
  • the window size is 32 ⁇ 64 and the configuration of the feature extraction unit 211 is as described above, the size of the feature map input to the total connection layer is 2 ⁇ 6 as shown in FIG. 2B.
  • the second layer is an output layer and consists of neurons that calculate one or two logistic regressions. Each neuron is connected to all neurons in the total connection layer.
  • the output from the output layer is one real value from 0 to 1 (or two real values whose sum is exactly 1).
  • the amount of sliding window calculation can be further reduced. However, this increases the amount of slide on the original image and decreases the amount of information in the feature map. If the original image is larger, it is better to further reduce it, but if the original image is smaller, it is considered better to reduce the reduction rate by reducing the number of pooling.
  • CNN selection in CNN ensemble detector design When designing the CNN ensemble detector 100, it is necessary to determine the CNN to be used from the full screen CNN 210 and the window CNN 200 as follows. As described above, in the first stage of each scale of the CNN ensemble detector 100, the use of the full-screen CNN 210 can reduce the amount of calculation and increase the processing speed. Select CNN 200 or full screen CNN 210.
  • the use of the window CNN 200 can reduce the processing amount and increase the speed.
  • the detection result of each stage is represented by a bit map (the logistic regression output is quantized to 0 or 1), and the logical product (and) thereof is taken (see FIG. 3A). ). Therefore, instead of cascading the detection results, all the full screens CNN can be executed in parallel to obtain a logical product.
  • 3A describes a method of executing the cascade of scale 1 (101), scale 2 (102) or scale 3 (103) in FIG. 1 using three full screens CNN 311, 312, 313.
  • the full screen CNN1 (311) inputs the frame 321 and outputs the output image, that is, the feature map 322, and the full screen CNN1 (312) inputs the frame 321 and outputs the output image, that is, the feature map 323,
  • the CNN 3 (313) receives the frame 321 and outputs an output image, that is, a feature map 323.
  • the feature map is expressed as a two-dimensional array of real values from 0 to 1, but in the logical product process 314, this is an integer value of 0 or 1 depending on whether it is less than a threshold value (0.5 in this embodiment). And calculate the product.
  • the result (two-dimensional array consisting of values 0 and 1) is the detection result 351.
  • a result can be calculated by a real value product, a minimum value function, or another multi-input monotonically increasing function instead of an integer value product.
  • the above method is effective for hardware with a high degree of parallelism, but the conventional method can reduce the calculation time by cascading. In other words, if the candidates can be sufficiently narrowed down in the first stage, it is only necessary to process the narrowed candidates by using the window CNN 200 in the second and subsequent stages, so that the amount of calculation can be reduced.
  • candidates are cut out as windows, and the array is passed to the second and subsequent stages (see FIG. 3B).
  • the position of the window to be cut out is equal to the position output by the sliding window unit 212.
  • FIG. 3B a method of executing the cascade of scale 1 (101), scale 2 (102) or scale 3 (103) in FIG. 1 using one full screen CNN 311 and two windows CNN 333 and 334 is described. is doing.
  • the full screen CNN1 receives the frame 321 and outputs an output image, that is, a feature map 322.
  • a window (where a pedestrian image is detected from the frame 321 and the feature map 322).
  • a window array 341 including only windows exceeding the threshold value is generated.
  • This window array 341 is a one-dimensional array unlike a feature map (two-dimensional array).
  • the window CNN2 (repetitive processing) 333 inputs this window array 341, and outputs a window array 342 composed only of windows (windows exceeding the threshold value) in which pedestrian images are detected.
  • this window array 342 is the same as that of the window array 341, but the number of elements decreases because the window CNN 2333 performs filtering.
  • Window CNN3 (repetitive processing) 334 inputs this arrangement and outputs a pedestrian detection result 351.
  • the window CNN3 can output the result as an array in the same manner as the window CNN2 (333).
  • the detection result two-dimensional array of values 0 to 1) corresponding to the feature map is output. The same results as in FIG. 3A are obtained.
  • window generation 331, window CNN2 (333), and window CNN3 (334) the output value by logistic regression is stored together with the detected image as an element of the window array, and the calculation result by the product of each output value or the group length increasing function is stored in window CNN3.
  • the detection result 351 of the same real value as that in FIG. You can When a plurality of CNN cascade detectors having different scale numbers (a portion excluding NMS) are cascaded, the preceding feature map is resized to match the size of the subsequent feature map. Thereby, the above array calculation (logical product processing 314) can be performed across a plurality of CNN cascade detectors.
  • scale 1 (101)
  • the amount of calculation is suppressed as much as possible.
  • scale 2 (102) has an image area and window number of about 1/4
  • scale 3 (103) has about 1/16. It is.
  • the reason why the number of windows decreases in proportion to the area of the image is that sliding is performed by 8 pixels on the input image reduced in the sliding window processing.
  • the target false positives ratio (in window units) in the CNN output is about 0.2% in the first stage, about 0.05% up to the second stage, and 0.01% (10 ⁇ 4 ) in all stages. It is as follows.
  • At least the first stage CNN inputs the entire frame, calculates a feature map reduced to 1/8 in both length and width, and then divides it into windows (sliding window). As a result, as described above, there is no duplication of the convolution calculation, and the calculation amount of the sliding window is reduced.
  • the second and subsequent CNNs if the pedestrian image candidates can be sufficiently narrowed down in the first stage as in the above guideline, use of the window CNN200 rather than the full-screen CNN210 reduces unnecessary calculations. Speeded up.
  • the detection results in the scale and the detection results of the multiple scales are integrated by a non-maximum suppression (NMS) process (140).
  • NMS non-maximum suppression
  • the maximum likelihood window (the window having an output value closest to 1 in the CNN) is selected, and this processing is called non-maximum suppression.
  • the determination is made based on whether the area of the overlapping window is half or more of the area of the window. If the overlap is less than half, it is determined that there are a plurality of pedestrians.
  • the simple NMS 140 since a window having a high likelihood is given priority, if the windows are sorted in the order of likelihood, it can be processed in a greedy manner. However, in order for the NMS 140 to be performed smoothly, the number of false positives needs to be sufficiently small in the processing of each scale 1 to 3. Otherwise, the detected pedestrian image will be integrated with false positives. Therefore, if false positives cannot be sufficiently reduced before NMS 140, it becomes necessary to perform more complicated NMS 140 that depends on the processing method and context (information about the pedestrian and the like). As the context processing, it is possible to simultaneously detect a vehicle that is easy to detect from a pedestrian image, and to perform the NMS 140 after subtracting the vehicle detection result from the detection result of the pedestrian image.
  • the pedestrian detection system 700 of the present embodiment shows an example in which the situation around the vehicle is photographed by video cameras (hereinafter referred to as fisheye cameras) 711 to 714 having four fisheye lenses. ing.
  • the left and right are mainly distorted downward, and the image of a small pedestrian appears only at the top in the center (a).
  • the front of the vehicle is shown below the image. Since the CNN ensemble detector 100 performs different processing for each of the scales 1 to 3, it is desired to correct only the distortion without enlarging or reducing this image as much as possible. Also, I want to omit unnecessary parts in the image. Therefore, in the CNN ensemble detector 100 of the present embodiment, the following processing is performed instead of performing known or well-known fisheye correction.
  • the CNN ensemble detector 100 cuts the image as shown in FIGS. 5A to 5C, slides in the vertical direction, and “perspective conversion” ( Perform a combination of enlargement / reduction).
  • the CNN ensemble detector 100 first cuts out a belt-like image having a height of 448 (56 ⁇ 8) from a fisheye camera image (FIG. 5A), and sets the left and right sides of the cut-out image upward. Lift to fix it to a rectangle.
  • the reason why the height of the image is set to 448 (pixels) is that the central portion of the image is slightly cut by this, but the other portions are almost maintained.
  • the CNN ensemble detector 100 performs conversion by reducing the left and right of the upper part of the image by the perspective conversion of OpenCV (Open Source ⁇ ⁇ ⁇ ⁇ Computer ⁇ ⁇ Vision Library) and extending the left and right of the lower part.
  • OpenCV Open Source ⁇ ⁇ ⁇ ⁇ Computer ⁇ ⁇ Vision Library
  • the area where a pedestrian having a height of about 64 (pixels) appears is not substantially enlarged or reduced.
  • the left and right pedestrian images in the image are slightly narrower in width, but can be input to the CNN ensemble detector 100 to detect the pedestrian image.
  • a frame (input image 141) input to the CNN ensemble detector 100 when detecting a pedestrian image may include a plurality of pedestrian images. However, since it is necessary to perform complicated processing only by detecting an image of one pedestrian, it is considered that the recognition rate can be improved by detecting the images separately for each person as much as possible.
  • a frame is divided into small images called windows to perform learning or detection.
  • an image is input to the CNNs 210 and 200 in units of frames, but learning is performed in units of windows.
  • learning or detection is possible because the full-screen CNN 210 used for detection is functionally equivalent to a combination of a sliding window and detection by the window-based CNN 200.
  • the CNN ensemble detector 100 includes a plurality of CNNs 210 and 200, but each CNN 210 and 200 trains independently. This training uses window-sized images.
  • the window size used in this training is 32 ⁇ 64 (32 pixels wide, 64 pixels high).
  • the image data set is composed of the same number of positive examples (images) and negative examples (images) (the ratio of the positive examples and the negative examples can be shifted from 1: 1, but the basis is 1: 1).
  • the negative cases are much more common in the frame, but if the appearance frequency is unbalanced during training, the recall of the detector obtained by learning decreases (that is, the pedestrian image is difficult to detect). Therefore, the same number is basically used. A method for generating positive examples and negative examples will be described later.
  • a training data set (teaching data) set and a validation data set).
  • the evaluation is performed every time the image of the training data set is used for training (every 1 epoch).
  • 1 epoch may be used as a learning step of machine learning.
  • the second verification data set is created by collecting a frame including an image that is the basis of the verification data set (first verification data set), and the second verification data set is displayed on the entire screen during verification. Input to CNN 210 to evaluate the result.
  • the full-screen CNN 210 is trained in a window unit, that is, using a training CNN that inputs an image of a window size in the same manner as the CNN 200. That is, a training data set in which positive examples and negative examples of window sizes are mixed is generated, and iterative learning is performed. However, every time it repeats, it performs verification for each frame using the detection CNN that inputs the entire screen together with verification for each window in the learning of CNN 200 (verification using a test data set for window size).
  • the parameters of the full screen CNN 210 are evaluated by applying a multi-objective optimization method based on those results.
  • the learning CNN and the detection CNN have different input image sizes, but the weight and bias sets used are the same. That is, the parameters of the feature extraction units 211 and 201 to be learned are filters, and do not depend on the input image size. In addition, since the same identification unit 213 is used in both neural networks, the parameters are the same.
  • the main difference between the window cut out from the second verification data set and the image included in the first verification data set is an image including a pedestrian image, that is, a correct image.
  • the example is generated from the bounding box, and the ratio of the number of positive examples to the number of negative examples is 1: 1, whereas in the former, an image including a pedestrian image is also generated from the window, and walking There are far more images that do not contain the person's image.
  • multi-objective optimization may be performed not only on the frame application result Ep but also on the window application result Ew.
  • a weight w is added when adding. That is, w ⁇ Ep + (1 ⁇ w) Ew can be used, but since the optimum value of the weight is not yet known, a simple sum (that is, a weight of 0.5) is currently used. Note that it is necessary to avoid such a selection because a neural network that always answers that there is no pedestrian even when the weight is 0.5 may be selected.
  • the evaluation result En may be calculated as follows.
  • the results of the scales 1 to 3 of the CNN ensemble detector 100 for each window obtained by dividing the frame are obtained. These results are summarized by the NMS 140, which summarizes both intra-scale and inter-scale results. Here, only one scale needs to be evaluated, but this is achieved by inputting only one scale result at the NMS 140.
  • the window containing the detected pedestrian image and the bounding box on the original frame are compared and evaluated, and the evaluation result may be En.
  • the area of the window containing the detected pedestrian image and the area of the bounding box on the original frame (the union) is less than three times the area of the overlap (the intersection)
  • an image of a pedestrian is detected. This value may be calculated for all bounding boxes to calculate the detection rate, and this may be used as the evaluation result En.
  • the value “3 times” is used in the above. However, in many cases, “3 times” is used instead of “2 times”. This is because the detection is performed in a rough unit, so that “2 times” cannot be accurately evaluated.
  • the verification of the CNN ensemble detector 100 does not determine the back propagation learning process, but only calculates and stores the best CNN (parameter set) obtained by learning. Therefore, when the verification result deteriorates due to learning (such as when overfitting), it is set in an appropriate direction.
  • the frame-related evaluations that is, Ep and En
  • the values are output when the evaluation is performed in window units, and the experimenter can refer to the values. That is, the experimenter can refer to this value and adjust the CNN parameters so that the difference between the evaluation in frame units and the evaluation in window units is reduced.
  • adjustable parameters there are parameters that determine the structure of the CNN and parameters for generating positive examples and negative examples, which will be described later.
  • the structural parameters of CNN are the number of layers of convolution layers, the number of pooling, the number of filters, etc.
  • parameters for generating positive and negative examples there are resize numbers and blank spaces around resize There is a way of filling (such as the brightness when using the same gray scale and extending the periphery of the image).
  • Data set generation for training In order to train each CNN (210, 200) constituting the CNN ensemble detector 100, it is necessary to generate and train a suitable image data set. In each training, a training data set and a verification data set are prepared as image data sets. The training data set and the verification data set are stored in the storage 14 shown in FIG. 9, and the learning process can be executed by the CPU 11 and the GPU 12 by loading a learning control program (not shown) into the memory 13. .
  • the training data set is composed of the same number of positive and negative examples, but in this embodiment, 200,000 are basically prepared for each. In both cases, a color image is converted into a gray scale image and used. This section describes how to generate these positive and negative examples.
  • the positive example is generated using a data set of an image including a video and a still image in which the position of a pedestrian image is recorded as annotation data.
  • a data set for example, a Caltech Pedestrian Dataset is known.
  • the bounding box data surrounding the pedestrian appearing in the video image is stored in the annotation file.
  • the basic positive example generation method is as follows.
  • the bounding box part (with the size of the ratio of vertical 2 and horizontal 1 in the figure) is cut out from the video or still image that is the basis of the training data set, and the unified size (32 x 64) Resize to
  • the training data can be generated by a computer (not shown).
  • the training data annotation file describes whether or not the pedestrian is occluded by other objects, it is considered better to include the hidden pedestrian as a positive example.
  • Scale 1 (101) uses pedestrian images with a bounding box height of 32 to 63 (pixels), and scale 2 (102) uses a bounding box height of 64 to 127 (pixels). Use things.
  • the feature extractor is learned without dividing the size.
  • the feature extraction units 211 and 201 are not generated by the deep learning in which the sizes are divided in this way. That is, in the detection of pedestrian images based on conventional deep learning, pedestrian images of all scales are simultaneously learned by one neural network.
  • the ratio of the adjacent scales 1 to 3 is 2 (1 octave), and the scales are 3 types (1 times, 2 times, 4 times).
  • the number of scales is larger. For example, values such as 1.1 and 1.25 have been used as the scale ratio. Increasing the number of scales improves the recognition rate but increases the computation time.
  • the number of scales can also be increased in the CNN cascade detector, but the scale ratio should be 2 in order to shorten the calculation time.
  • the scale ratio is increased in this way, the size range of the pedestrian image to be handled in one scale is expanded, and thus the feature extraction units 211 and 201 need to be devised.
  • Many previous studies on CNN use multiple scales and instead use only pedestrian image sizes that are trained close to the window size (or resize close to the window size). ing).
  • the same pedestrian image is resized into several types and all of them are used.
  • the pedestrian image is set to “single size” in this way, accurate learning or detection will be difficult when the scale is in octave units, and countermeasures will be required. is there.
  • a single-size image is used as teacher data, the discrepancy between the frame unit and the window unit may increase, making learning difficult.
  • a plurality of pedestrian image sizes are used. That is, after adding a flipped image to the pedestrian image acquired from the pedestrian image data set, each image is further resized to four different sizes and learned as a positive example.
  • the maximum size resized so that the image in the bounding box fits in a 32 ⁇ 64 window is used as a positive example.
  • the maximum size 801 of the pedestrian image is used as a reference, 20.75 times (802), 20.5 times (803), 20.25 times (804).
  • a size image is also used as a positive example (ie reduced images of four different sizes up to half the window size).
  • the increase of positive examples has the following two effects. 1) By dividing one octave into 4 or more, a network with better accuracy (few false positives) can be obtained with a relatively high probability by continuous training. This tendency changes relatively slowly depending on the number of divisions. That is, even if the number of divisions is set to 6, 8, etc., the same effect can be obtained.
  • the number of positive examples is relatively limited, especially to compensate for the limited number of cases when learning is performed for each of scales 1 to 3.
  • the main reason for scaling the pedestrian image in this example is to eliminate the divergence between the frame unit and the window unit.
  • a small number of scales are used in this example, If the area where the image is detected is the entire window of each scale, it is not known in which part of the window the distant pedestrian image appears, and the distance to the pedestrian image is only known in rough scale units.
  • the size of the pedestrian image is known more accurately at the time of generating the positive example (that is, the height of the pedestrian image reduced to 2 S times can be 64 ⁇ 2 S ).
  • the approximate position of the detected pedestrian image can be determined.
  • classification can be performed by providing eight classes (Class 0 to Class 7 in the figure) as shown in FIG.
  • class 0 400
  • class of pedestrians of 1 times size is class 1 (401). 2
  • 6 classes are defined according to their positions.
  • the size and position of the pedestrian images are output by classification into these 8 classes. Can be obtained as Pedestrian images with a size of 2 0.75 times and 2 0.25 times can be classified in the same manner. In particular, with respect to a pedestrian image with a size of 2 0.25 times, the number of classes It will be difficult to detect pedestrian images.
  • the number of classes is limited to about 7 classes, 20.75 times pedestrian images are classified into the same class as 1 times pedestrian images, and 20.25 times pedestrian images are 2
  • One effective method is to limit the number of classes to 8 by classifying the images into 0.5 classes of pedestrian images. It may be better to increase the number of classes slightly than 8 by changing the classification method.
  • a method is described in which resizing is not performed during learning but is performed during detection. That is, instead of resizing the image during learning and learning the 8 types as shown in FIG. 4, only one type of image is learned without performing resizing during learning, and each window other than 400Class 0 in FIG. An image obtained by deleting the black-painted portion from each image is generated, enlarged to the same window size as the original image, and detection is performed by operating the window CNN for each image. The position of the pedestrian is specified based on which of these images gives the maximum output during NMS.
  • This method has the advantage that false negatives can be suppressed because the amount of background unrelated to the pedestrian can be suppressed during learning.
  • the Caltech pedestrian data set is also annotated as to whether it is an occluded pedestrian for each bounding box, but in this example, images of pedestrians hidden during the generation of positive examples are also excluded. do not do. This is because it is considered that a better result can be obtained by inserting a hidden pedestrian. The effect of learning a hidden pedestrian will be described later.
  • the negative example is generated using a video of a pedestrian dataset for each scale.
  • the basic negative example generation method the initial negative example generation method, that is, the first negative example generation method of the cascade when using bagging described later, and boosting described later, boosting is used.
  • the negative example generation method after the second stage of the cascade will be described in order.
  • One or a cascaded full screen CNN 210 can be used to generate negative examples. As shown in FIG. 6, the position of the window to be used is determined from the output of the bounding box and the full-screen CNN 210, and a negative example is cut out from the original frame accordingly to obtain a unified size (32 ⁇ 64).
  • a negative example is cut out from a position that does not reach the bounding box and where the CNN detects a pedestrian image (ie, a position where false positive is detected).
  • the output of the CNN is not referred to, and it is only necessary to cut out from an arbitrary position without a bounding box.
  • the position where the negative example is cut out may be determined at random within the range satisfying the above condition.
  • the selected negative example is used as it is for learning, overfitting is likely to occur. Therefore, instead of using the original size, it is resized randomly within a range of ⁇ 5%. That is, if learning or verification is performed without resizing, the error tends to become zero at the time of verification. Therefore, even when the enlargement is unnecessary, the negative example is slightly resized and used.
  • the negative example used in the first stage of each scale 1 to 3 of the CNN ensemble detector 100 that is, the initial negative example is generated from a range that does not use the output of the CNN, that is, does not affect the bounding box.
  • a huge negative example is generated. Therefore, in the generation of the initial negative example, frames are used every 30 frames, and a negative example is selected by a random number.
  • the number of positive and negative examples should be the same, and supervised data is created by combining 200,000 images.
  • the image size used in this embodiment is 32 ⁇ 64 for all scales 1 to 3, but different image sizes can be used for each scale 1 to 3. It is also possible to use different image sizes for each cascade stage. The method for generating the learning data after the cascade will be described in the next section.
  • the learning is performed by the back propagation learning method using the window CNN 200.
  • Learning can be performed by a learning method such as stochastic gradient descent method (SGD).
  • the CNN ensemble detector 100 uses a CNN cascade for the following purposes or reasons.
  • the use of the cascade of the feature extraction units 211 and 201 is to improve the recognition rate as compared with the case of using them alone.
  • its use is a measure against unbalanced datasets (the frequency of pedestrian appearance is extremely low).
  • the first method is bagging (bootstrap aggregation).
  • Bagging a plurality of filters (hereinafter referred to as detectors) are selected or generated using one training data set (initial data set).
  • the optimum combination is selected from a plurality of detectors or the optimum set of parameters is calculated.
  • the second method is boosting.
  • Boosting training is performed by generating different training data sets for each stage. In the first stage, training is performed using randomly selected negative examples, but in the second stage, training is performed by increasing the weight of data that could not be processed correctly until the first stage. That is, those that can be processed correctly in the previous stage are deleted from the training data set, or the weight in the evaluation during learning is set low.
  • the positive population used in both stages is basically the same.
  • the method of collecting and using such a difficult negative example is called hard negative mining or bootstrapping, but various methods have been proposed. There are various ways to boosting.
  • bagging is more robust because all detectors have the ability to handle all windows, but it is disadvantageous in performance because it must support a wider input class than boosting detectors. it is conceivable that. In boosting, it is not necessary to detect the window that is shaken off by the detector up to the previous stage, so it seems to be advantageous in terms of performance, but a weak point appears when the window that is expected to be shaken up to the previous stage is not dropped It is thought that the robustness is lacking.
  • bagging can be generated in parallel because multiple detectors can be trained independently. Even when the CNN ensemble detector 100 is configured, a plurality of CNNs can be generated in parallel. However, in boosting, learning is performed using the detectors up to the previous stage, so sequential processing is required, and learning takes more time than bagging.
  • detectors acquired by learning can be used in cascade in both bagging and boosting, but they can also be used in parallel.
  • the detectors When the detectors are used in cascade, it is not necessary to process the window that has been shaken up to the previous stage, but when using the detectors in parallel, all the detectors process all the inputs, which is a wasteful calculation. Arise. However, the same result can be obtained by combining all outputs (and taking).
  • parallel processing is faster, but when hardware parallelism is low, it is slower.
  • the main purpose of using the cascade of CNN (210, 200) in the CNN ensemble detector 100 is to improve the detection accuracy of pedestrian images, ie to reduce false positives.
  • the first two stages are configured by bagging (that is, two CNNs are generated from training by an initial data set), and their weights and biases are used. And boosting to configure the third stage.
  • the ensemble learning method using a genetic algorithm (GA) or the ensemble learning method combining GA and back propagation learning is performed once or multiple times using the same training data set, and a plurality of obtained results
  • An ensemble can be generated by the CNN.
  • the optimal solution based on one optimization function can be selected.
  • a plurality of solutions based on a single optimization function or a plurality of solutions based on a plurality of optimization functions are used. Select a solution.
  • only one optimization function can be used in one trial, or a plurality of optimization functions can be used together.
  • CNNs that are inferior in any of them are discarded, and the optimal CNN is proliferated or mutated in any of them.
  • the CNN is generated by a combination of bagging and boosting.
  • the method is as follows (or a combination thereof).
  • a cascade is formed by selecting several ways from among a set of (a set of), and a cascade (combination) with a good result of evaluating all data sets is selected.
  • the ensemble can be generated by the ensemble learning method using GA as described above or the ensemble learning method combining GA and back propagation learning.
  • the former cascade C1 is applied to the data set, and an image that the cascade C1 erroneously detects as a pedestrian is collected and set as a negative example (the method of CNN generation by bagging is as described above).
  • a training data set is generated by combining the negative examples (only) with the same number of positive examples, and the latter (C2) is learned using the training data set.
  • a conventional CNN learning method may be used as it is.
  • the recall rate decreases.
  • the number of cascade stages should be the minimum number that provides the required accuracy.
  • the CNN to be used for the cascade should be selected not only with high accuracy but also with a good recall, and when combining, a combination that minimizes the drop in recall should be selected.
  • the first method for improving the recall is as follows. You must decide whether to use boosting or bagging for cascading (you will need to start over if the result is not good), which will change the data set used for training, The method of learning does not change when using. Learning is performed using the data set, and the generated cascade is verified (evaluated) for each epoch. CNNs with good accuracy and (estimated) recall are accumulated as candidates, and those to be used for the cascade after learning are selected from the obtained candidates. As an accuracy index, use the ratio of false positives (the ratio of windows that detected pedestrians that do not have pedestrians), and as an index of recall, walk among windows that have pedestrians in the range to be detected. The percentage of those who did not detect the person is used. However, it should be noted that the former does not depend on the scale, but the latter may be detected on other scales.
  • FIG. 10A is an example in which the learning result of the first stage of the cascade is plotted
  • FIG. 10B is an example in which the learning result of the second stage of the cascade is plotted. That is, FIG. 10B shows an evaluation result by the generated two-stage cascade.
  • the CNN estimated to be optimal is circled, it cannot be determined whether it is actually optimal unless the cascades are comprehensively configured and compared, so other CNNs estimated to be close to optimal It would be good to complete the cascade and compare.
  • FIG. 10B there are CNNs that have a lower accuracy than the CNN estimated to be optimal but have a low miss rate, but the CNN is not selected because it aims to improve the recall rate.
  • 10A and 10B may be plotted together with a plurality of training results with different initial values. If a large number of trials (training) are performed, the probability of obtaining a good CNN increases. Such trials are repeated for each stage of the cascade and stopped when the required performance is obtained. If both the accuracy and recall target cannot be met, the process returns to the previous stage or the first stage to calculate a better CNN.
  • the second method for improving the recall is as follows.
  • Boosting in principle can improve not only the accuracy but also the recall, so it is not currently done, but the method is described below. That is, not only can false positives be reduced by boosting, but false negatives can be reduced by boosting.
  • the negative example was exchanged during boosting, that is, when learning the CNN in the latter stage of the cascade, and the same positive example as when boosting was not used was used.
  • the positive example is exchanged.
  • the negative example can be the same as when boosting is not used.
  • an image including the positive example is given to the first-stage full screen CNN 210 in units of frames, and a positive example that could not be detected (a positive example that becomes false negative) is acquired as a “difficult positive example”. To do.
  • the method for calculating false negatives is the same as the frame-by-frame evaluation in the above embodiment.
  • the CNN (N2) obtained by training with this training data set is used in the cascade.
  • the cascade is configured as follows.
  • the window determined by the preceding CNN (N1) that no pedestrians are present is input.
  • full-screen CNN 210 the portion of CNN (N2) determined that CNN (N1) has a pedestrian is output as it is (takes "or").
  • the window that CNN (N1) erroneously determines that the pedestrian is absent is picked up by CNN (N2) and added to the window including the pedestrian.
  • CNN (N2) the full screen CNN 210 is used as the CNN (N2), the output of the CNN (N1) is basically “or” as described above, but the CNN (N1) and the CNN (N2) are thus used. If you give the same weight, false positives may increase.
  • the "difficult positive example” obtained by the above method was generated together with the original positive example and the same number of negative examples.
  • a method is also conceivable in which the CNN trained by the training data set is replaced with CNN (N1) and used (the first stage is replaced). This method is a kind of bootstrapping. This method has the advantage that it can be used as it is without complicating the cascade structure.
  • the first method is to use CNN (210, 200) in the ensemble.
  • the pedestrian detection system 700 is configured by an ensemble (combination) of a plurality of CNNs (210, 200).
  • a plurality of CNNs (210, 200) are used in cascade, and different CNNs are used for each scale (pedestrian size) 1 to 3.
  • Most of the conventional examples in which pedestrian images are detected using CNN (210, 200) use only one neural network, so the calculation time is enormous and it is not easy to learn. It is thought that it was difficult to recognize low-resolution pedestrians because a large-scale network was required, could not handle diverse and complex data.
  • the first problem among the first problems that is, the problem of enormous calculation time of the neural network can be solved as follows. That is, instead of using one huge network, a plurality of small networks may be used in an ensemble.
  • the calculation time can be shortened by stopping the operation (or reducing the number of executions).
  • the use of small networks in cascade reduces the amount of computation because the number of pedestrian image candidates handled in the second and subsequent stages of the cascade is reduced, resulting in higher speed than operating the entire large network. Is done.
  • the second problem that is, the difference between learning in window units and detection in frame units, particularly the problem of integrating false positives.
  • the second problem that is, the difference between learning in window units and detection in frame units, particularly the problem of integrating false positives.
  • the problem of divergence between the appearance frequencies of positive and negative cases can be solved because the appearance frequency approaches one-to-one at the latter stage of the cascade.
  • the problem of the complexity of a large-scale network which is a part of the third problem, can be solved by using a small-scale network as an ensemble. That is, if a plurality of networks are combined, an engineering method for configuring a complex system by combining components can be used, so that the above problem can be solved. On the other hand, even if the inside of a large-scale network is structured, they are not parts in the conventional engineering sense, and therefore the engineering combination method cannot be applied.
  • the division of labor is carried out so as to handle only some of the many characteristics of data, and a plurality of such networks are used (by divide-and-conquer). What is necessary is just to comprise a system.
  • the difficulty in recognizing the low-resolution pedestrian which is the fourth problem, can be solved as follows. That is, learning and detection can be made relatively easy by limiting the size of the pedestrian's image to a low resolution for learning and detection.
  • the second method to be combined is a method of inputting the entire frame to the convolutional neural network.
  • the third method to be combined is a verification method during learning that combines frame performance and window performance.
  • learning is performed for each window as in the conventional CNN.
  • the difference between the window unit and the frame unit can be reduced by performing the validation in the frame unit every time the learning of one time (epoch) is completed.
  • the second problem is solved as follows. First, as described above, the calculation is speeded up because the overlapping convolution calculation is not performed. Second, if the pooling process is performed in the feature extraction unit, the feature map is smaller than the original frame, so the time required for the sliding window process is shortened and the speed is increased.
  • the neural network is implemented by software.
  • the neural network may be implemented by hardware.
  • the neural network is configured by hardware such as FPGA (Field Programmable Gate Array). You may do it.
  • the present invention is not limited to this, and a specific type of object is input from the input image.
  • the present invention can be applied to an object detection device for detection.
  • this invention is not limited to the above-mentioned Example, Various modifications are included.
  • the above-described embodiments are described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described.
  • a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment.
  • any of the additions, deletions, or substitutions of other configurations can be applied to a part of the configuration of each embodiment, either alone or in combination.
  • each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
  • each of the above-described configurations, functions, and the like may be realized by software by the processor interpreting and executing a program that realizes each function.
  • Information such as programs, tables, and files for realizing each function can be stored in a memory, a hard disk, a recording device such as an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD.
  • control lines and information lines indicate what is considered necessary for the explanation, and not all the control lines and information lines on the product are necessarily shown. Actually, it may be considered that almost all the components are connected to each other.

Abstract

入力された画像から特定の物体を検出する物体検出装置であって、入力された画像上の画素について畳みこみ計算を行う複数のニューロンと、複数のニューロンの出力から1個の値を計算するプーリングニューロンとを含むニューラルネットワークを、1層以上積層して特徴マップを出力する特徴抽出部と、特徴抽出部から出力される特徴マップを入力してスライディング・ウィンドウ処理を実行して複数の特徴マップウィンドウを出力するスライディング・ウィンドウ部と、特徴マップウィンドウを入力して特徴マップウィンドウ内に特定の物体が含まれるか否かを判定する識別部と、を含む第1の検出モジュールと、前記第1の検出モジュールの出力を入力とする特徴抽出部と識別部を含む第2の検出モジュールをカスケード接続する。

Description

物体検出装置及び物体検出方法 参照による取り込み
 本出願は、平成28年(2016年)6月30日に出願された日本出願である特願2016-130878の優先権を主張し、その内容を参照することにより、本出願に取り込む。
 本発明は、たたみこみニューラルネットワーク(CNN:Convolutional Neural Network) を使用した歩行者の検出とそのための機械学習に関する。
 近年、多層ニューラルネットワークによる音声、画像などの認識に関する研究、いわゆる深層学習の研究が活性化している。この活性化は、第1に従来は学習させることが困難だった4層以上の多層(深層)ニューラルネットワークを、auto-encoderという機構を使用して学習させる方法が開発されたことと、第2に、たたみこみニューラルネット(CNN)による音声や画像の認識率が大きく向上したことなどによっている。
 静止画あるいはビデオのフレームから歩行者を検出するためには、まずフレームから候補を切り出す必要がある。そのために使用されるのがスライディング・ウィンドウ生成器である。スライディング・ウィンドウ生成器はフレーム上でさまざまなサイズのウィンドウをスライドさせて、少しずつずれた位置から小画像を切り出し、多数の小画像を生成する。画像認識にCNNを使用するときは、サイズが揃えられた小画像を入力して認識処理を行う。識別部において検出された複数の歩行者の候補はnon-maximum suppression(NMS)処理によってまとめられる。
 非特許文献1および2には複数のCNNをカスケードにして使用する歩行者等の検出法が記述されている。また、特許文献1、2、3には複数のCNNを使用した顔認識の方法が記述されている。さらに、非特許文献3、5には上記のようなスライディング・ウィンドウ生成器を使用せず、フレーム全体をCNNに入力して処理する方法が記述されている。特に、非特許文献5にはCNNの特徴マップにスライディング・ウィンドウ処理を行って生成した画像からオブジェクトを検出し、non-maximum suppression処理によってまとめる方法が記述されている。
 また非特許文献4においては、フレームから物体を検出するときに、1オクターブ、すなわち歩行者のサイズが2倍になるごとに、異なる特徴検出器を使用する検出器を用いる技術が開示されている。ここでは、特徴検出器を学習によって獲得する深層学習によるのではなく、人間がプログラムした(手作りの)特徴検出器を使用している。
米国特許第8345921号明細書 米国特許第8761446号明細書 米国特許第9104914号明細書
Anelia Angelova、Alex Krizhevsky、and Vincent Vanhoucke、"Pedestrian Detection with a Large-field-of-View Deep Network"、IEEE International Conference on Robotics and Automation (ICRA 2015)、May 2015、 Anelia Angelova、Alex Krizhevsky、Vincent Vanhoucke、Abhijit Ogale、Dave Ferguson、"Real-time Pedestrian Detection with Deep Network Cascades"、research.google.com Pierre Sermanet, David Eigen, Xiang Zhang, Michael Mathieu, Rob Fergus, Yann LeCun、"OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks"、arXiv preprint arXiv:1312。6229、2013 Piotr Dollar、Serge Belongie、Pietro Perona、"The Fastest Pedestrian Detector in the West"、2010 Shaoqing Ren, Kaiming He, Ross Girshick, Jian Sun、"Faster R-CNN: Towards Real-time Object Detection with Region Proposal Network"、arXiv:1506. 01497v3、2016
 深層学習に基づいて歩行者等の物体(以下「歩行者」とだけ記述する)を検出するために解決しなければならない主要な4つの課題について以下に述べる。
 第1の課題は、歩行者の検出におけるたたみこみニューラルネットワークの高速化および実時間化である。性能向上を妨げる要因として次の2点がある。第1に、多層のニューラルネットワークは膨大な計算時間がかかるという問題がある。深層学習においては、より大規模なネットワークを使用することによって、より容易に高い認識性能を得ることができる。
 そのため、画像分類などにおいてもCNNに関しても多段かつ多数のフィルタを持つネットワークが使用されている。しかし、ニューラルネットワークの規模を拡大すると計算時間が膨大になり、歩行者の検出においてはGraphical Processing Unit(GPU)などで高い並列度の計算を行っても実時間では検出できない。したがって、特に車載用の処理システムでは実用にするのが難しいという問題がある。
 第2に、スライディング・ウィンドウ処理がもたらす計算時間の爆発の問題を解決しなければならない。CNNに限らず、ビデオ画像などからの歩行者や物体を検出する処理においては、1枚のフレームからスライディング・ウィンドウ処理によって重なりがある多数のウィンドウが生成され、ウィンドウ単位で学習や検出が行われる。CNNは1回の処理にも時間がかかるが、これによってたたみこみ計算が冗長になって、検出に更に膨大な時間がかかり、実用化は妨げられる。
 第2の課題はウィンドウ単位の学習とフレーム単位の検出の乖離を無くすことである。ビデオ画像などからの歩行者や物体の検出においてはスライディング・ウィンドウ処理によって生成されるウィンドウごとに学習を行うが、この学習において好成績が得られても、フレーム単位での検出においてはよい成績がえられないことが多い。
 歩行者の検出に限らず、また、またニューラルネットワークに限らず、ビデオ画像などからの物体検出においてはウィンドウ単位の学習結果とフレーム単位での検出結果とに大きな乖離がある。歩行者の検出においてよい成績を得るには、この問題を解決する必要がある。
 ウィンドウ単位の成績とフレーム単位の成績が異なるひとつの原因は、1個のフレームから数100個~1万個程度のウィンドウが生成され、それらにおいてfalse positivesが検出されると、それが加算されることにある。例えば、これらのウィンドウのうち0.1%においてfalse positive が検出されると、1000個のウィンドウがあればフレームあたり平均1個のfalse positiveが検出されることになり、実用化するのは難しい、という問題があった。そのため、ウィンドウ単位でのfalse positivesは10-4以下にする必要があるといわれている。従来使用されてきている手作りの特徴抽出器の中でこの条件を満たすのはHOG(histogram of oriented gradient)特徴を使用するものだけである。
 ウィンドウ単位の成績とフレーム単位の成績が異なるもうひとつの原因は、訓練時に正例として与える歩行者の画像やその出現頻度と、検出時に現れる歩行者の画像やその出現頻度との極端な違い(3桁以上の違い)にあると考えられる。このようにデータのクラスごとに頻度に極端な違いがある問題はclass imbalance problemと呼ばれる。
 訓練時にはサイズ、位置、背景画像が管理された歩行者の画像が与えられるのに対して、検出時にはどのような画像が出現するか分からない。歩行者は画像の端に切断されて現れるかもしれないし、他のさまざまな物体とともに出現するかもしれない。また、訓練時には、正例と負例は1対1またはそれに近い比率で出現するが、検出時には0.1%以下の頻度でしか出現しない事例が多い。
 このようなウィンドウ単位の画像とフレーム単位の画像との違いのため、歩行者の検出のウィンドウごとの成績とフレームごとの成績との関係はほとんど無関係に見える場合すらある。この乖離を埋める方法を開発することが必要である。
 第3の課題はネットワークとデータの複雑さによる学習の困難さである。大規模なニューラルネットワークのふるまいは複雑であり、それによって学習させて検出しようとしているデータも多様で複雑である。これらの複雑さはニューラルネットワークの学習を困難なものにしている。
 まずネットワークの複雑さに関していえば、最近の研究においてよく使用される大規模なCNNは、たとえ反復構造が使われて構造的には比較的単純であっても、その処理内容は複雑であり、学習させるのは容易でない。訓練のためのさまざまな指針が提案されているが、その内容は必ずしも科学的ではなく、大規模なCNNの学習は工学的には非常な困難がある。また、データの多様さや、複雑さについて、特に歩行者の検出に関していえば、歩行者を検出するべき画像には、さまざまなサイズ、形状、色彩の歩行者が含まれていることが多い。
 また、歩行者を検出する画像には背景としてもさまざまな画像が含まれている。しかも、前章においてのべたように歩行者が出現しない画像の方が数桁、多い。このような多様で複雑なデータを1個のCNNによって扱うには、それが大規模であるにせよ小規模であるにせよ、困難があると考えられる。
 第4の課題は低解像度の歩行者を検出する際の認識率向上である。従来の歩行者検出法において認識率が低かったのは、低解像度の画像での歩行者の検出に関しては高解像度のときに有効な方法が必ずしも有効ではなく、またそれを補う方法も開発されていないためである。
 高解像度の画像ではhistogram of oriented gradient(HOG)とよばれる特徴量が歩行者または物体の検出にもっとも有効である。しかし、HOG特徴においてはヒストグラムという統計的な方法を使用するため、分析の際に解像度が低下する。そのため、低解像度の歩行者の検出においてはHOGはあまり有効でなく、他にも有力な方法は知られていない。
 そこで本発明は、上記問題点に鑑みてなされたもので、たたみこみニューラルネットワークを使用した特定の物体(歩行者)の検出を高速化することを目的とする。
 本発明は、入力された画像から特定の物体を検出する物体検出装置であって、画素が配列された画像を入力し、前記画像上の画素について畳みこみ計算を行う複数のニューロンと、前記複数のニューロンの出力から1個の値を計算するプーリングニューロンとを含むニューラルネットワークを、1層または複数層積層して特徴マップを出力する特徴抽出部と、前記特徴抽出部から出力される特徴マップを入力してスライディング・ウィンドウ処理を実行して複数の特徴マップウィンドウを出力するスライディング・ウィンドウ部と、前記特徴マップウィンドウを入力して前記特徴マップウィンドウ内に特定の物体が含まれるか否かを判定する識別部と、を含む第1の検出モジュールと、前記第1の検出モジュールの出力を入力とする第2の検出モジュールをカスケード接続し、前記第2の検出モジュールは、前記画像を入力し、前記画像上の画素について畳みこみ計算を行う複数のニューロンと、前記複数のニューロンの出力から1個の値を計算するプーリングニューロンとを含むニューラルネットワークを、1層または複数層積層して特徴マップを出力する特徴抽出部と、前記特徴マップを入力して前記特徴マップ内に特定の物体が含まれるか否かを判定する識別部と、を含む。
 本発明によれば、歩行者の検出において次の4つの効果がえられる。すなわち、第1にたたみこみニューラルネットワークを使用した特定の物体(歩行者)の検出が高速化され実時間で処理できるようになり、車両搭載システムへの実装も可能になる。第2にウィンドウ単位の学習とフレーム単位の検出との乖離が減少するため、歩行者の検出における認識率が向上する。第3にニューラルネットワークの構造が単純化され、アンサンブルを構成する個々のニューラルネットの処理対象も限定されるため、学習が容易になる。第4に低解像度の画像から歩行者を検出する際の認識率が向上する。
本発明の実施例を示し、CNNアンサンブル検出器の構成の一例を示すブロック図である。 本発明の実施例を示し、ウィンドウCNNの構成の一例を示すブロック図である。 本発明の実施例を示し、全画面CNNの構成の一例を示すブロック図である。 本発明の実施例を示し、全画面CNNのカスケードの各段の出力の扱いを示す図である。 本発明の実施例を示し、全画面CNNからウィンドウCNNのカスケードの各段の出力の扱いを示す図である。 本発明の実施例を示し、スケール内での歩行者サイズと位置の認識のための分類を示す図である。 本発明の実施例を示し、魚眼カメラの画像の処理を示す図である。 本発明の実施例を示し、画像フレームからのCNN訓練用の正例および負例の生成方法を示す図である。 本発明の実施例を示し、歩行者検出システムの一例を示すブロック図である。 本発明の実施例を示し、歩行者画像のサイズの分類を示す図である。 本発明の実施例を示し、歩行者検出システムのハードウェアの構成の一例を示すブロック図である。 本発明の実施例を示し、CNNの精度指標と再現率指標を示すグラフである。 本発明の実施例を示し、CNNの精度指標と再現率指標を示すグラフである。
 以下、本発明の実施形態を添付図面に基づいて説明する。
 本実施例においては、図7に示す歩行者検出システム700の主要部分である歩行者検出部702を「CNNアンサンブル検出器」と呼ぶ。以下、まず歩行者検出システムの全体を説明し、つづいてCNNアンサンブル検出器の構成と検出の処理を記述し、さらに学習の方法を記述する。
 <歩行者検出システムの構成>
 図7に車両701に搭載された歩行者検出システム700の構成を記述する。このシステムにおいては、ビデオカメラ711、712、713、714によって車両701(歩行者検出システム700には含まれない)の前方および側方または後方を撮影し、その画像に含まれる歩行者がコンピュータのハードウェアとソフトウェアとによって構成される歩行者検出部702によって検出されると、表示及び警報部703が稼働する。すなわち、歩行者の存在をディスプレイ等によって表示するか、音声により警報を発する。
 なお、後述するように、ビデオカメラ711、712、713、714は魚眼レンズを有し、車両701の周囲を撮影する。
 図9は、歩行者検出システム700のハードウェアの構成の一例を示すブロック図である。歩行者検出システム700のハードウェアは、演算処理を行うCPU11と、主に浮動小数点の演算を行うGPU12と、プログラムやデータを保持するメモリ13と、プログラムやデータを格納するストレージ14と、CPU11とデバイスを接続するインタフェース15と、インタフェース15を介して接続された入出力装置16と、インタフェース15を介して接続されたビデオカメラ711~714と、を含む。
 メモリ13には、歩行者検出プログラム7021がロードされてCPU11及びGPU12によって実行される。CPU11及びGPU12は、後述のCNNアンサンブル検出器として機能する。入出力装置16は、例えば、ディスプレイとタッチパネル等で構成される。
 <CNNアンサンブル検出器による検出の方法>
 以下、CNNアンサンブル検出器の構成と検出の処理について説明する。
(CNNアンサンブル検出器の構成)
 この実施例においては図1のようにCNN(111~113、121~123、131~133)をアンサンブルで使用してCNNアンサンブル検出器100を構成する。この節においてはまずその全体構成を記述し、その後、スケール(1~3)101~103ごとの処理構成およびスケール内の構成について記述する。
 ((全体構成))
 図1を使用してこの実施例の全体構成すなわちCNNアンサンブル検出器100の構成を説明する。CNNアンサンブル検出器100は1オクターブ単位に分割された3つのスケールすなわちスケール1(101)、スケール2(102)、スケール3(103)から構成され、各スケールは1段以上(ここでは3段、すなわちスケール1(101)においては111、112、113、スケール2(102)においては121、122、123、スケール3(103)においては131、132、133)のCNNのカスケードによって構成される。
 スケール数及びカスケード数はより多い方が性能向上を図れる可能性がある。スケールごとの処理を行った後、画像から検出された歩行者の情報をnon-maximum suppression(NMS)140(集約部)という処理部によってまとめる。すなわち、スケールごとの検知モジュールの出力から重複する検知結果を1個にまとめる。従来の深層学習の大半においては1個の大規模なニューラルネットワークを使用していたが、これは脳神経系のような億単位の要素からなる超並列アーキテクチャに適した(より高速化できる)方法であり、GPUのような千・万単位の演算要素からなる並列アーキテクチャにおいては従来型の制御構造を取り入れたCNNアンサンブル検出器100のような構成の方が適していると考えられる。
 ((スケールごとの処理構成))
 画像はスケール(1~3)101~103ごとに、すなわち検出するべき歩行者の画像をサイズ範囲ごとに処理するが、いずれのスケールにおいてもリスケールによって同一サイズにして扱うことができる。
 入力画像141はまずリスケールされ、スケール2(102)においては縦横の画素数がそれぞれ半分の画像142と、スケール3(103)においては縦横の画素数がそれぞれ1/4の画像143を扱う。また、入力画像141は、そのままスケール1(101)へ入力される。図示の例では、入力画像141の画素数は1280×448の例を示す。
 各CNNは学習時には幅32ピクセル、高さ64ピクセルというウィンドウ・サイズの画像を扱う、すなわち学習画像は32×64である。しかし、歩行者の画像の検出時にはフレーム全体を入力し、各スケールの少なくとも初段においてはCNN内でウィンドウに分割する。
 すなわち、スケール1(101)においては原寸の入力画像141を、スケール2(102)においては原寸の半分のサイズ、スケール3(103)においては原寸の1/4のサイズのフレーム全体を入力する。また、ひとつのスケールは1オクターブ(2倍)の範囲の画像を扱う。すなわち、各スケールにおいて、リスケール後のサイズで高さがほぼ33~64ピクセルの範囲の歩行者の画像を扱う(実際は歩行者の高さではなく学習画像に含まれるbounding boxのサイズが33~64ピクセルなので、歩行者の画像の高さにはばらつきが生じる)。なお、図示はしないが、各スケール1~3(101~103)の前段には、入力画像141を各スケール1~3に分配する入力部を有し、入力部は各スケール1~3毎に入力画像141のサイズをそれぞれ変更するリスケール部を含む。
 リスケール前でいえば、スケール1(最小スケール)101においては33~64ピクセル、スケール2(102)においては65~128ピクセル、スケール3(最大スケール)103においては129ピクセル以上の歩行者の画像を扱う。ただし、学習画像として使用するbounding boxのサイズをずらした方がよい場合もある。例えば、スケール1(101)において使用するサイズを49~80ピクセルとする方がよい場合もある。
 本実施例では、高さ50ピクセル以上の歩行者の画像の認識率を90%以上にすることを目標にしているため、高さ32ピクセル以下の歩行者の画像は検出しなくてもよいことにして、学習対象から外している。また、高さ257ピクセル以上の歩行者の画像はその全体を検出することができない(スケール3のウィンドウ128×256に収まらない)が、テクスチャなどによって検出することを目指している。
 ただし、入力画像141をリスケールせずにスケールごとに異なるサイズの画像を扱うことも可能であり、またリスケール後のサイズがスケールごとに異なるように決めることもできる。大きなスケールの画像の方が微細な特徴が存在すると考えられるので、スケール2(102)以上ではスケール1(101)より大きな画像をCNNに入力した方が利点がある可能性がある。さらに、上記の実施例においてはスケール数を一定にしているのに対して、検知の途中でスケール数を変更することもできる。すなわち、図1のCNNカスケード検出器からNMSを除いた部分をカスケードさせることもできる。このとき、カスケードの2段目以降は後述する全画面CNNとし、入力された全画面を変更させたスケール数に併せてあらたにリスケールしてから処理する。
 上記の方法においては、学習時にbounding boxのサイズだけで画像を3つのスケールに分類したが、学習用の画像を解像度によって分類することもできる。画像認識においては画像のサイズが同一でも解像度が異なるものがある。すなわち、レンズの焦点距離などの違いにより、画像のサイズは大きいが解像度が低い場合がある。リサイズを伴う画像認識においてはサイズの違いより解像度の違いの方がより重要だと考えられる。解像度による分類のためには画像を解析する必要があり、計算時間が増加するためトレードオフがある。しかし、解像度を揃えることの方がより重要であれば、空間周波数範囲などによって画像を分類すればよい。
 一方、歩行者の検出時にはCNNアンサンブル検出器100の各スケール1~3(101~103)において、次のようなリサイズによってサンプル数を増加させた(oversamplingした)入力画像141~143を扱う。
 まず、アンサンブル検出器100は、入力画像141(左端)を3つのスケールにリサイズする。スケール1(101)では元のサイズで扱い、スケール2(102)では縦横の画素数をそれぞれ1/2とし、スケール3(103)では縦横の画素数をそれぞれ1/4にリサイズする。
 さらに、CNNアンサンブル検出器100は、実時間処理を目指しているため、それぞれのスケールにおいて歩行者が存在しないと考えられる領域は検出範囲から外す。例えば図1においては入力画像141のフレームサイズを1280×448としているが、このときスケール3(103)においてはその全体を使用するため、リスケール後の画像サイズは320×112となる。また、スケール2(102)においては検出範囲を図中上部の1280×256の範囲に限定するため、リスケール後の画像サイズは640×128となる。さらに、スケール1(101)においては検出範囲を図中上部の1280×192の範囲に限定するため、画像サイズは1280×192となる。
 ((スケール内のカスケード構成))
 カスケードの各要素であるCNNは、図2Bに示す全画面CNN210または図2Aに示すウィンドウCNN200であり、いずれも歩行者の画像の候補であるウィンドウのフィルタとして作用する。図1の構成では、全画面CNN111、121、131が図2Bに示す全画面CNN210で構成され、CNN112、113、122、123、132、133が図2Aに示すウィンドウCNN200で構成される。
 初段(全画面CNN111、121、131)においては処理するべきフレームのすべてのウィンドウが候補だが、後段においては前段で候補から外れたウィンドウは処理しなくてよい。初段においては入力画像141、142、143フレームのすべての部分を処理する必要があるため、たたみこみ計算に重複のない全画面CNN210を採用することで計算量を抑制し、処理が高速化される。しかし、後段に全画面CNNを使用するとフレームのすべての部分を処理することになるので、無駄な計算が生じる。
 そのため、初段において十分に候補を絞り込めるときは、後段にはウィンドウCNN200を採用する処理が高速化される。図1の例では、2段目の直前においてフレームをウィンドウに分割する処理を行い、以下のすべての段でそれらのウィンドウの中から必要なものを選択して使用すればよい。この処理はスライディング・ウィンドウ処理に近いが、初段で候補から落とされた部分はウィンドウの切り出しを行う必要がない。
 ただし、初段で検出される候補数は入力画像141、142、143に依存するため、後段をウィンドウCNN200によって構成するとウィンドウ数が一定せず計算時間が安定しないという欠点が生じるのに対して、全段を全画面CNN210によって構成すると計算時間が一定になるという利点がある。
 CNNはスケール1~3(101~103)ごとに独立して最適化し、歩行者の画像の検出性能の向上と処理時間の短縮を図る。すなわち、スケール1~3(101~103)ごとにフィルタ数や全結合ニューロン数を変化させ、スケール1~3(101~103)ごとに異なる学習を行って異なるウェイトを使用することにより、より最適化された結果を得ることができる。
 例えば、スケール1(101)においてはフィルタ数を8、11、11(CNNの初段のたたみこみ層で8個、2段目および3段目のたたみこみ層において11個)とし、スケール2(102)、3(103)においてはフィルタ数を16、22、22とすることができる。
 スケール1(101)のフィルタ数をスケール2(102)、3(103)より少なくする理由は、第1にスケール1(101)の方が検出するべき特徴の数が少ないと考えられること。また、第2に経験的にフィルタ数が異なるCNNをカスケードする方が検出性能を向上させることができること、さらに第3にスケール1のCNNの規模をおさえて高速化することが全体の高速化により寄与することである。カスケードするCNNの順序を変更しても検知結果に変化はないが、処理時間は変化するため、順序を変更して最適化することができる。フィルタ数がすくないCNNを先頭におくことでCNNの処理時間は減少するが、一方で順序変更によって通常はフィルタ性能が低下するすなわち絞りこみが緩くなるため、比較して選択すればよい。
 さらに、カスケードされた複数のCNNは段ごとに最適化することができる。現在は全段で同一のフィルタ数を使用しているが、同一である必要はない。初段で十分に絞り込める場合は、初段のCNNの規模を抑えた方が処理の高速化につながる。逆に、2段目以降は全体の処理時間に占める割合が低いので、規模を拡大して認識性能を向上させることが可能である。
 ((全スケールの統合))
 図1に記述したように、最後に各スケール1~3の検出結果をNMS140によってまとめる。NMS140にはさまざまな方法があるが、スケール1~3ごとの処理において十分に(10-4まで)false positivesを減少させることができるときは単純でgreedyな方法(例えば、greedy algorithm)によって、各スケール1~3で検出した歩行者の画像をまとめ(重複する検知結果を1個に集約し)、判定結果として出力することができる。本実施例はこのような公知または周知の方法によって処理できることを前提としている。
 (各CNNの構成)
 CNNアンサンブル検出器100において使用するCNNとして、以下に説明する全画面CNN210(第1の検出モジュール)とウィンドウCNN200(第2の検出モジュール)のどちらを使用しても機能的には変わらない。少なくとも各スケール1~3の初段は全画面CNN210を使用することによって処理速度が向上するが、条件によってはウィンドウCNN200を使用した方が処理速度が向上することもある。このように条件によって使用するCNNを切り替えることができるのが、この全画面CNN210を使用する方法の特徴である。以下、これらのCNNの構成について説明する。
 ((ウィンドウCNNの構成))
 CNN(以下ウィンドウCNNと呼ぶ)200は、図2Aに示すように特徴抽出部(たたみこみ部)201と、識別部(全結合部)203から構成される。特徴抽出部201はたたみこみ(convolution)計算を行うニューロンと、とプーリング(pooling)を行うニューロンとを結合した1層または多層(図2Aにおいては計6層)のニューラルネットワークによって構成され、特徴マップ(Feature map)を出力する。
 また、識別部203は全結合ニューロンによる層とlogistic regressionなどによる出力層とからなるニューラルネットワークによって構成される。特徴抽出部201および全結合層のニューロンは、しきい関数(活性化関数)として折線関数ReLU(rectified linear unit)を使用している。
 出力層にlogistic regressionを使用すると出力は0~1の実数になるので、しきい値を決めて0(歩行者非検出)か1(歩行者検出)に量子化すればよい。しきい値は、例えば、0.5に設定することができるが、異なる値を使用することにより感度調整することが可能である。
 ((全画面CNNの構成))
 前記第1の課題におけるたたみこみ計算の重複をなくすには、CNNに入力する前にスライディング・ウィンドウ処理を行うのをやめてフレーム全体をCNNに入力すればよい。すなわち、公知または周知のCNN(ウィンドウCNN200)は図2Aに示すように特徴抽出部(たたみこみ部)201と識別部203とで構成され、いずれもウィンドウ単位の処理を行うが、本実施例においてはて全画面一括処理用のCNN(全画面CNN210)を使用する。
 全画面CNNは、図2Bに示すように、特徴抽出部(たたみこみ部)211と、スライディング・ウィンドウ部212と、識別部(全結合部)213から構成される。すなわち、特徴抽出部211は、入力された画像上の画素について畳みこみ計算を行う複数のニューロンと、複数のニューロンの出力から1個の値を集約演算するプーリングニューロンとを含むニューラルネットワークを、1層または複数層積層して複数の特徴マップ(Feature maps)を出力する。
 スライディング・ウィンドウ部212は、特徴抽出部211から出力される特徴マップを入力してスライディング・ウィンドウ処理を実行して複数の特徴マップウィンドウを生成して出力する。識別部213は、スライディング・ウィンドウ部212から特徴マップウィンドウを入力して特徴マップウィンドウ内に歩行者(または特定の物体)の画像が含まれるか否かを判定する。
 まず、特徴抽出部211に入力画像141のフレーム全体を入力し、特徴抽出部211から出力された特徴マップ上をスライディング・ウィンドウ部212に入力して多数のウィンドウを生成し、各ウィンドウを識別部213に入力する。
 これによって、元のフレームをスライディング・ウィンドウ処理によって新たなウィンドウ(特徴マップウィンドウ)を生成してから、上記公知または周知のCNNに入力したときと同じ結果を識別部213から出力することができる。
 全画面CNN210またはウィンドウCNN200は図2Bに示すようにフレーム全体(ここでは640×480のサイズ)を入力する。この実施形態において使用する全画面CNNの特徴抽出部211は、次の各層から構成され、フィルタ数(カーネル数)とウェイトだけが異なる(層の数やフィルタ・サイズ、プーリングの方法やそれを行うかどうかなどの点は変更することが可能である)。
・たたみこみ層1:フィルタ・サイズは5×5
・プーリング層1:縦横それぞれ1/2の最大プーリング(max pooling)による縮小を行う。
・たたみこみ層2:フィルタ・サイズは3×3
・プーリング層2:縦横それぞれ1/2の最大プーリング(max pooling)による縮小を行う。
・たたみこみ層3:フィルタ・サイズは3×3
・プーリング層3:縦横それぞれ1/2の最大プーリング(max pooling)による縮小を行う。
 スライディング・ウィンドウ部212はプーリング層から出力される全画面特徴マップ(図中Feature Maps)を入力し、(対応するウィンドウCNNのウィンドウ・サイズが32×64のときは)2×6のサイズのウィンドウを縦横に1ピクセルずつスライドしながら2×6のサイズの複数の画像(ウィンドウ特徴マップ)を出力する。このウィンドウのサイズは、上記と同一のパラメタ(層数、フィルタサイズ、プーリング)を持つウィンドウCNNの全結合層が入力する特徴マップのサイズに等しい(図1参照)。
 また、各全画面CNN210の識別部213は次の2層から構成される。第1の層は全結合層であり、50個または30個のニューロンから構成される。各ニューロンはウィンドウ特徴マップの全体から入力する。ウィンドウ・サイズが32×64、特徴抽出部211の構成が上記のとおりであるときは、図2Bに示したように全結合層に入力する特徴マップのサイズは2×6となる。
 第2の層は出力層であり、1個または2個のlogistic regressionを計算するニューロンから構成される。いずれのニューロンも全結合層のすべてのニューロンと結合される。出力層からの出力は1個の0~1の実数値(または和がちょうど1になる2個の実数値)となる。
 縦横1/8に縮小された全画面特徴マップ上で2×6のウィンドウを1ピクセルずつスライドさせることは、原画像(入力画像141)において32×64のウィンドウを8ピクセルずつスライドさせることに相当する。したがって、各特徴マップウィンドウからの入力を処理した識別部の出力は、対応する原画像上の8ピクセルずつずれたウィンドウを公知または周知のCNNによって処理した結果を配列したものと一致する。
 ((全画面CNNの利点))
 上記のように、公知または周知のCNNを全画面CNN210に置き換えることによって機能には変化がないが、次のような2つの利点が生じる。第1に、従来の方法(ウィンドウCNN200)においては重なりのある複数のウィンドウからの計算において冗長なたたみこみ計算が行われるが、この方法によって冗長な計算を削減できる。また第2に、従来の方法(公知または周知のスライディング・ウィンドウ)と較べてこの方法においては縦横それぞれ1/8の画像上でスライディング・ウィンドウの計算を行うため、その計算量をはるかに減少させることができる。
 また、プーリングによって画像をさらに縮小させればスライディング・ウィンドウの計算量をさらに減少させることができる。しかし、それによって原画像上でのスライド量が増加し、特徴マップの情報量が減少するため、必ずしも適切ではない。原画像がより大きければさらに縮小させた方がよいが、原画像がより小さいときはプーリングの回数を減らして縮小率を抑える方がよいと考えられる。
 (CNNアンサンブル検出器の設計におけるCNNの選択)
 CNNアンサンブル検出器100を設計する際には、全画面CNN210とウィンドウCNN200のうちから、使用するCNNを次のように決める必要がある。上記のようにCNNアンサンブル検出器100の各スケールの初段においては全画面CNN210を使用することによって計算量の削減と処理の高速化が可能になるが、2段目以降においては必要に応じてウィンドウCNN200または全画面CNN210を選択する。
 すなわち、初段の全画面CNN210において十分に候補を絞ることができるときは、ウィンドウCNN200を使用した方が処理量が減少し、高速化することができる。
 全画面CNN210を使用するときは、各段の検出結果をビットマップで表現し、(logistic regressionの出力を0または1に量子化し)、それらの論理積(and)をとればよい(図3A参照)。したがって、検出結果はカスケードにする代わりにすべての全画面CNNを並列に実行させて論理積をとるようにすることができる。
 図3Aにおいては図1におけるスケール1(101)、スケール2(102)またはスケール3(103)のカスケードを3個の全画面CNN311、312、313を使用して実行する方法を記述している。
 すなわち、全画面CNN1(311)はフレーム321を入力して出力画像すなわち特徴マップ322を出力し、全画面CNN1(312)はフレーム321を入力して出力画像すなわち特徴マップ323を出力し、全画面CNN3(313)はフレーム321を入力して出力画像すなわち特徴マップ323を出力する。
 特徴マップは0~1の実数値の2次元配列として表現されるが、論理積処理314においてはこれをしきい値(本実施例では0.5)未満か否かで0、1の整数値に変換し、その積を算出する。その結果(0、1の値からなる2次元配列)が検出結果351である。
 ただし、NMS140においては複数の検出結果をその値の大小によってソートするため、論理積処理314において入力するそれぞれの実数値に関して単調増加(正確には単調非減少)の関数を使用することが望ましい。そのため、整数値の積の代わりに実数値の積や最小値関数や他の多入力の単調増加関数によって結果(関数値)を算出することができる。
 上記の方法は並列度の高いハードウェアにおいては有効だが、従来ではカスケードにする方が計算時間を削減できる。すなわち、初段において候補を十分に絞り込むことができれば、2段目以降はウィンドウCNN200を使用することによって、絞り込まれた候補だけを処理すればよくなるので計算量を削減できる。
 このときは、初段の実行後に候補をウィンドウとして切り出し、その配列を2段目以降に渡せばよい(図3B参照)。切り出すウィンドウの位置はスライディング・ウィンドウ部212が出力する位置と等しい。図3Bにおいては図1におけるスケール1(101)、スケール2(102)またはスケール3(103)のカスケードを1個の全画面CNN311と2個のウィンドウCNN333、334を使用して実行する方法を記述している。
 すなわち、全画面CNN1(311)はフレーム321を入力して出力画像すなわち特徴マップ322を出力するが、ウィンドウ生成331においてフレーム321と特徴マップ322から、歩行者の画像が検出された部分のウィンドウ(しきい値をこえたウィンドウ)だけからなるウィンドウ配列341を生成する。
 このウィンドウ配列341は特徴マップ(2次元配列)とは異なり1次元の配列である。ウィンドウCNN2(の繰り返し処理)333はこのウィンドウ配列341を入力して、歩行者の画像を検出したウィンドウ(しきい値を超えたウィンドウ)だけからなるウィンドウ配列342を出力する。
 このウィンドウ配列342の構造はウィンドウ配列341と同じだが、ウィンドウCNN2333がフィルタリングを行うため、要素数は減少する。ウィンドウCNN3(の繰り返し処理)334はこの配列を入力して、歩行者の検出結果351を出力する。ウィンドウCNN3はウィンドウCNN2(333)と同様に結果を配列として出力することもできるが、図3Bにおいては特徴マップに対応した検出結果(0~1の値の2次元配列)を出力することにより、図3Aと同一の結果を得ている。
 ウィンドウ生成331、ウィンドウCNN2(333)、ウィンドウCNN3(334)においてウィンドウ配列の要素として検出画像とともにlogistic regressionによる出力値をあわせて保存し、各出力値の積もしくは団長増加関数による計算結果をウィンドウCNN3(334)における処理の最後に算出することによって、ウィンドウCNN2(333)およびウィンドウCNN3(334)の両方でしきい値をこえた部分に関しては出力値として図3Aと同一の実数値の検出結果351をえることができる。なお、スケール数が異なる複数のCNNカスケード検出器(からNMSを除いた部分)をカスケードさせる場合には、前段の特徴マップを後段の特徴マップのサイズにあうようにリサイズする。これにより、複数のCNNカスケード検出器にまたがって上記の配列計算(論理積処理314)を行うことができる。
 ((CNNアンサンブル検出器の処理))
 ここまではCNNアンサンブル検出器100の構造を中心に説明してきたが、ここではCNNアンサンブル検出器100で行われる処理を中心として説明する。CNNアンサンブル検出器100においては、スケール1~3ごとに処理を分割し、各スケール1~3でCNNをカスケードで使用することにより、比較的単純で高速なCNNによって、高い検出率が実現される。以下、全スケールの処理の概観、各スケール内の処理、各スケールを統合する処理について、順に述べる。
 第1に全スケールの処理を概観する。スケール1(101)においては計算量をできるだけおさえるが、それでもスケール1の計算の比率がたかいため、さらに最適化する必要がある。すなわち、スケール1(101)は画像サイズにおいてもウィンドウ数においても最大であり、スケール2(102)は画像の面積およびウィンドウ数が約1/4、スケール3(103)はそれらが約1/16である。ウィンドウ数が画像の面積に比例して減少するのは、スライディング・ウィンドウ処理において縮小した入力画像上で8ピクセルずつスライドさせているからである。
 第2に各スケール内の処理について説明する。カスケードの各段でfalse positivesをフィルタすることにより、false positivesを減少させる(目標値10-4以下)が、その際にtrue positivesはできるだけ落とさないようにする。各段の再現率(true positivesをひろう確率)をr、r、…rとすると、カスケード全体の再現率rは、
r=r…r
となる。
 したがって、全体で必要な再現率(0.9以上)を得るためには、各CNNには高い再現率が算出される。CNNの出力における目標とする(ウィンドウ単位の)false positivesの割合は、初段において0.2%程度で、2段目までで0.05%程度、全段で0.01%(10-4)以下である。
 少なくとも初段のCNNはフレーム全体を入力し、縦横それぞれ1/8に縮小された特徴マップを計算してからウィンドウに分割(sliding window)する。これにより、既に述べたように、たたみこみ計算の重複がなくなり、スライディング・ウィンドウの計算量が減少する。2段目以降のCNNは、上記の目安のように初段において十分に歩行者の画像の候補を絞ることができていれば、全画面CNN210よりウィンドウCNN200を使用するほうが無駄な計算が減少するので高速化される。
 第3に全スケールの統合処理について説明する。スケール内の複数の検出結果および複数のスケールの検出結果はnon-maximum suppression(NMS)処理(140)によって統合する。統合処理が必要になる理由は、1人の歩行者が複数のウィンドウに現れ、複数回、検出されることがあるからである。
 重なりのあるウィンドウのそれぞれで歩行者の画像が検出されているとき、適切な仮定に基づいて検出した歩行者の画像が1人なのか否かを判定し、1人のときはいずれかのウィンドウを選択する。本実施例では最大尤度のウィンドウ(CNNにおいては1にもっとも近い出力値を持つウィンドウ)を選択するため、この処理はnon-maximum suppressionと呼ばれる。
 複数のウィンドウに現れる歩行者の画像が1人なのか複数なのかを判定するには、例えば、ウィンドウが重なっている部分の面積が、ウィンドウの面積の半分以上であるか否かで判定する。重なりが半分未満であれば複数の歩行者が存在すると判定する。
 上記のような単純なNMS140においては、尤度が大きいウィンドウを優先するため、ウィンドウを尤度順にソートしておけばgreedyに処理することができる。ただし、NMS140が円滑に行われるためには各スケール1~3の処理においてfalse positivesが十分に少ない必要がある。そうでなければ、検出した歩行者の画像がfalse positivesと統合されてしまう。したがって、NMS140の前にfalse positivesを十分に減少させることができなければ、処理方法や文脈(歩行者周辺の情報など)に依存する、より複雑なNMS140を行う必要が生じる。文脈処理としては、歩行者の画像より検出するのが容易な車両の検出を同時に行い、歩行者の画像の検出結果から車両の検出結果を差し引いてから上記のNMS140を行うことができる。
 ((魚眼カメラ画像の入力))
 本実施例において検出時に魚眼カメラ画像を入力する際の処理法について記述する。図7で示したように、本実施例の歩行者検出システム700では、車両の周囲の状況を4つの魚眼レンズを有するビデオカメラ(以下、魚眼カメラとする)711~714で撮影する例を示している。
 魚眼カメラによって水平方向を撮影するとき、図5に示す画像の例においては左右は主に下方に歪み、サイズの小さな歩行者の画像は中央部では上部だけに現れる(a)。また、画像の下方には車両前部が映る。CNNアンサンブル検出器100においてはスケール1~3ごとに異なる処理を行うため、この画像をできるだけ拡大または縮小せずに歪みだけ補正したい。また、画像の中で無駄な部分は省きたい。そのため、本実施例のCNNアンサンブル検出器100では、公知または周知の魚眼補正を行う代わりに、次のような処理を行う。
 上記のような魚眼カメラで撮影した画像に対して、CNNアンサンブル検出器100は、図5の(a)~(c)に示すような画像のカット、縦方向のスライドと"遠近変換"(拡大・縮小)を組み合わせた変換を実施する。
 すなわち、CNNアンサンブル検出器100は、まず魚眼カメラの画像(図5(a))から高さ448(56×8)の扇形に近い帯状の画像を切り出して、切り出した画像の左右を上に持ち上げて長方形に修正する。なお、画像の高さを448(ピクセル)としたのは、これによって画像の中央部は少し削られるが、それ以外はほぼ維持されるからである。
 この変換だけで中央の歩行者はほぼ正しい形になるが、図5(b)に示すように左右の歩行者が傾く。そこで、CNNアンサンブル検出器100は、図5(b)に示すようにOpenCV(Open Source Computer Vision Library)の遠近変換などによって画像上部の左右を縮め、下部の左右を伸ばす変換を実施する。なお、本実施例では高さ64(ピクセル)程度の歩行者が現れる領域において、ほぼ拡大・縮小が無いようにした。この変換の後も画像中の左右の歩行者の画像はやや幅が狭くなるが、このままCNNアンサンブル検出器100に入力することにより歩行者の画像を検出することができる。
 [CNNアンサンブル検出器の学習法]
 以下、CNNアンサンブル検出器100を学習させ、特徴抽出部201、211等を自動構成するための方法を記述する。
 (フレーム単位評価を伴うウィンドウ単位の訓練)
 歩行者の画像の検出の際にCNNアンサンブル検出器100へ入力するフレーム(入力画像141)には複数の歩行者の画像が含まれ得る。しかし、1人の歩行者の画像を検出するだけでも複雑な処理が必要であるから、これをできるだけ1人ずつに分離して検出することによって認識率を向上させることができると考えられる。
 そのため、公知または周知の歩行者検出法においてはフレームをウィンドウとよばれる小さな画像に分割して学習または検出を行う。この実施例における検出法は画像をフレーム単位でCNN210、200に入力するが、学習はウィンドウ単位で行う。このような学習または検出が可能なのは、検出に使用する全画面CNN210が機能的には、スライディング・ウィンドウとウィンドウ単位のCNN200による検出の組み合わせと等しいからである。
 CNNアンサンブル検出器100は複数のCNN210、200によって構成されるが、各CNN210、200は独立して訓練する。この訓練においてはウィンドウ・サイズの画像を使用する。この訓練において使用するウィンドウ・サイズは32×64(横32ピクセル、縦64ピクセル)である。
 画像データセットは同数の正例(画像)と負例(画像)とで構成する(正例と負例の比率を1対1からずらすことは可能だが、基本は1対1である)。フレームへの出現は負例のほうがはるかに多いが、訓練時にはこのように出現頻度がアンバランスだと学習によって得られる検出器の再現率が低下する(すなわち、歩行者の画像が検出されにくくなる)ため、同数を基本とする。正例、負例の生成の方法は後述するが、例えばそれぞれ20万個ずつ用意する。
 ニューラルネットワークの学習の際に、本実施例では、訓練用データ(教師データ)セットと、検証用(validation)データセットの2種類のデータセットを用意する(これに加えてテスト用データセットが使用されることもある)。そして、訓練用データセットの画像を1回使用して訓練するごとに(1 epochごとに)評価を行う。なお、1 epochを機械学習の学習ステップとしてもよい。
 そして最良の評価が得られたCNNのウェイトとバイアスを保存する。しかし、歩行者の画像の検出においてはウィンドウ・サイズの検証用データセットによる評価を行ってよい成績をえても、その結果得られたCNN(ウェイト、バイアス)をフレームに適用してもよい成績が得られるとは限らない。むしろ、学習が進んでよりよい検証結果が得られても、フレームに適用した場合の成績は悪化することが多い。
 実験の結果、検証用データセットにおいては、誤差が1%以下になっても、フレームに適用するとそこから切り出されたウィンドウのうち半数以上から存在しない歩行者の画像が検出される場合があることが分かっている(後述)。
 この問題を解決するため、1つのepochの訓練を行うごとに、フレームに適用して結果を評価する。前記検証用データセット(第1の検証用データセット)の元になった画像を含むフレームを収集して第2の検証用データセットを作成し、検証時には第2の検証用データセットを全画面CNN210に入力してその結果を評価する。
 すなわち、この方法においても従来のCNNにおけるのと同様に学習はウィンドウごとに行うが、1回(epoch)の学習が終了するたびにフレーム単位での検証(validation)を行うことによって、ウィンドウ単位とフレーム単位との乖離を減少させることができる。
 全画面CNN210はCNN200と同様にウィンドウ単位で、すなわちウィンドウ・サイズの画像を入力する訓練用CNNを使用して学習させる。すなわち、ウィンドウ・サイズの正例と負例を混合した訓練用データセットを生成して、反復学習を行う。しかし、反復するごとにCNN200の学習におけるウィンドウ単位の検証(ウィンドウ・サイズのテスト・データセットを使用した検証)と併せて全画面を入力する検出用CNNを使用してフレーム単位の検証を行い、それらの結果による多目的最適化の手法を適用して全画面CNN210のパラメタを評価する。
 フレーム単位の評価結果を得る際には、訓練しているスケールに関する評価結果だけを取得すればよい。すなわち、1個のカスケードだけを使用すればよい(訓練中のCNN だけでなく、そのカスケードの全段のCNNを使用する)。このカスケードから得られるfalse positivesの割合(FPPI)をEpとする。
 学習用CNNと検出用CNNは入力される画像サイズは異なるが、使用するウェイトとバイアスのセットは同一である。すなわち、学習するべき特徴抽出部211、201のパラメタはフィルタであり、入力画像サイズにはよらない。また、どちらのニューラルネットワークにおいても同一の識別部213を使用するため、そのパラメタは同一である。
 第2の検証用データセットから切り出されるウィンドウと、前記第1の検証用データセットに含まれる画像との主な違いは、後述するように、後者においては歩行者の画像を含む画像、すなわち正例がbounding boxから生成されている上、正例の数と負例の数との比が1対1であるに対して、前者においては歩行者の画像を含む画像もウィンドウから生成され、歩行者の画像を含まない画像のほうがはるかに多いことである。
 この違いのため、第1の検証用データセットと第2の検証用データセットの評価結果は乖離する。この解決策においては後者を使用することによってこの乖離を減少させ、検出時のfalse positivesを減少させる。
 ただし、フレームに適用して得られたfalse positivesに関する結果Epだけで評価するとfalse negativesが増加するので、ウィンドウへの適用結果Ewも併せた評価が必要である。すなわち、結果Epだけで評価すると、極端な場合にはウィンドウ内に歩行者の画像が存在してもすべて不在と答えるニューラルネットワークが選択される。
 これは、歩行者の画像が存在するウィンドウは1%以下の低い確率となる場合が多いので、このようなニューラルネットワークのほうが高い評価を受けるからである。この問題を解決するには、フレームへの適用結果Epだけでなく、ウィンドウへの適用結果Ewも併せて多目的最適化を行えばよい。
 もっとも簡単な方法は両者の評価値を加算した値=Ep+Ewによって評価することである。また、加算する際にウェイトwを付加する。すなわち、w×Ep+(1-w)Ewとすることもできるが、ウェイトの最適値はまだ分かっていないため、現在は単純な和(すなわち0.5のウェイト)を使用している。なお、ウェイトが0.5でも常に歩行者が不在と答えるニューラルネットワークが選択されることもあるので、このような選択を避ける必要がある。
 また、フレームに関する評価に関しても、false positivesに関する評価結果だけでなく、false negativesに関する評価結果Enを併せたほうがよい場合もある。すなわち、評価結果Ewはフレームにおけるfalse negativesを直接に評価した値ではないため、Ewだけ評価に加えてもfalse negativesに関する最適化が成功するとは限らない。評価結果Enを加えることによって、この最適化がよりよく実現できる場合がある。この評価結果Enは次のように算出すればよい。
 フレームを評価する際にはフレームを分割して得られた各ウィンドウ関するCNNアンサンブル検出器100の各スケール1~3の結果が得られる。これらの結果はNMS140によってまとめられるが、NMS140においては、スケール内とスケール間の両方の結果がまとめられる。ここでは1個のスケールだけを評価すればよいが、それはNMS140において1個のスケールの結果だけを入力することによって実現される。
 このNMS140の処理を行った後に、検出された歩行者の画像を含むウィンドウと、元のフレーム上のbounding boxとを比較して評価し、その評価結果をEnとすればよい。例えば、検出された歩行者の画像を含むウィンドウの面積と元のフレーム上のbounding boxの面積の両者を併せた(和集合の)面積が両者の重なりの(積集合の)面積の3倍以下であるとき、歩行者の画像が検出されたとする。全bounding boxについてこの値を算出して検出率を算出し、それを評価結果Enとすればよい。
 この検出の際に使用するパラメタとして上記では「3倍」という値を使用したが、このような場合に使用されることが多い「2倍」でなく「3倍」としているのは、オクターブという荒い単位での検出を行っているため、「2倍」では的確に評価できないからである。
 ただし、CNNアンサンブル検出器100の検証は、逆伝搬学習の処理を決めるわけではなく、学習によって得られた最善のCNN(パラメタ・セット)を算出して保存するだけである。したがって、学習によって検証結果が悪化していくとき(過剰適応(overfitting)しているときなど)にそれを適切な方向にする。
 あるいは悪化をとめることはできない。すなわち、上記のようにフレーム単位の評価を行うようにしても、逆伝搬学習においてはフレームの評価は反映されないため、学習が進むにつれてフレーム単位の評価が低下しやすく、その対策が必要である。検証以外の方法によって少なくとも確率的に学習がよい方向にむかうようにする必要がある。そのための方法として有力なのが後述のoversamplingである。また、上記の対策として正例および負例をそれぞれ多様化させて増加させることが有効な場合があるので、その例を後述する。
 また、1個のCNNについてフレーム単位とウィンドウ単位の評価の乖離を減少させることができないとき、遺伝的アルゴリズム(GA)を使用することが対策となり得る。
 なお、フレームに関する評価すなわちEpおよびEnは、上記のように評価関数に入れることはせず、ウィンドウ単位の評価の際にその値を出力し、実験者がその値を参考にすることができる。すなわち、実験者はこの値を参照して、フレーム単位の評価とウィンドウ単位の評価との乖離が減少するようにCNNのパラメタを調整することができる。
 上記乖離が減少すれば、評価結果Ep、Enのいずれか、あるいは両方を評価関数に入れなくても、これらの値を改善させることができる。調整可能なパラメタとしてはCNNの構造を決めているパラメタや後述する正例・負例の生成におけるパラメタがある。CNNの構造パラメタの中には、たたみこみ層の層数や、プーリングの回数や、フィルタ数などがあり、正例・負例の生成のパラメタの中にはリサイズ数やリサイズ時の周囲の空白の埋め方(同一のグレースケールを使用する際の明るさや画像の周囲を延長することなど)がある。
 (訓練のためのデータセット生成)
 CNNアンサンブル検出器100を構成する各CNN(210、200)を訓練するには、それぞれに適した画像データセットを生成して訓練する必要がある。それぞれの訓練において、画像データセットとして訓練用データセットと検証用データセットとを用意する。なお、訓練用データセットと検証用データセットは、図9に示したストレージ14に格納しておき、学習処理は図示しない学習制御プログラムをメモリ13にロードしてCPU11及びGPU12によって実行することができる。
 訓練用データセットは同数の正例と負例とで構成されるが、この実施例においては基本的にそれぞれ20万個用意する。いずれもカラー画像をグレースケール画像に変換して使用している。この節においてはこれらの正例、負例の生成法について述べる。
 ((正例の生成))
 正例は歩行者の画像の位置が注釈データとして記録されたビデオや静止画を含む画像のデータセットを使用して生成する。このようなデータセットの例として、例えば、Caltech歩行者データセット(Caltech Pedestrian Dataset)が知られている。Caltech歩行者データセットにおいては、ビデオの画像に現れる歩行者を囲むbounding boxのデータが注釈ファイルに格納されている。以下、第1に基本的な正例の生成法について述べ、第2に歩行者の画像のスケーリングの方法とその応用としてのスケール内での歩行者の画像のサイズと位置の認識法、そして第3にocclusionの扱いについて述べる。
 第1に、基本的な正例の生成法は以下のとおりである。訓練用データセットの元となるビデオや静止画から、図6のようにbounding boxの部分(図中縦2、横1の割合のサイズとする)を切り出し、統一されたサイズ(32×64)にリサイズする。なお、訓練用データの生成は、図示しない計算機で行うことができる。
 訓練用データの注釈ファイルには歩行者が他の物体に隠れて(occluded)いるかどうかが記述されているときは、隠れた歩行者も正例に入れるほうが成績がよいと考えられるため、当該画像データを正例として使用する。Caltech歩行者データセットに含まれるビデオを学習用とテスト用に分け、学習用のビデオから訓練用および検証用の正例を生成する。
 第2に、歩行者の画像のスケーリングについて述べる。各CNN(210、200)の訓練に使用する歩行者サイズは、既に述べたように、スケール1~3毎に異なる範囲にしている。スケール1(101)においてはbounding boxの高さが32から63(ピクセル)までの歩行者の画像を使用し、スケール2(102)においてはbounding boxの高さが64から127(ピクセル)までのものを使用する。
 ただし、既に述べたように学習用の画像として使用するbounding boxのサイズをずらしたほうがよい場合もある。例えば、スケール1(101)において使用するサイズを49~80(ピクセル)とするほうがよい場合もある。Caltech歩行者データセットのように高さが128(ピクセル)以上の歩行者の画像はわずかしか出現しないときは、スケール3(103)において、高さが128(ピクセル)未満のもの(例えば高さ96(ピクセル)以上のもの)も含めて訓練に必要なデータ数を確保する。
 このように訓練用データで歩行者の画像のサイズ範囲を限定するのは、第3の課題である学習の困難を減少させてよりよい認識率を得るとともに、第4の課題である低解像度の画像で歩行者が認識できるようにするためである。歩行者の画像サイズによって認識に使用するべき特徴に違いがあるため、この限定によって認識率を高めることができると考えられる。
 すなわち、画像のサイズが小さい歩行者に関しては形状以外に特徴がないと考えられるし、顔の構成要素、すなわち目鼻だちなどは利用できない。しかし、画像のサイズが大きければテクスチャを利用することができ、顔の構成要素を利用することができると考えられる。サイズの異なる画像をまぜて学習させると、このようなサイズ固有の特徴が薄まるため、認識率が低下すると考えられる。
 歩行者の画像の検出に関する従来方法の中にはサイズを分けて検出しているものはあったが、従来方法においてはサイズを分けずに特徴抽出器の学習を行っていた。また、このようにサイズを分けた深層学習によって特徴抽出部211、201を生成してはいなかった。すなわち、従来の深層学習にもとづく歩行者の画像の検出においては、すべてのスケールの歩行者の画像を同時にひとつのニューラルネットに学習させていた。
 この実施例においては、隣接するスケール1~3の比を2(1オクターブ)とし、スケールを3種類(1倍、2倍、4倍)にしている。従来の歩行者の画像の検出法の多くにおいてスケール数はこれより多い。例えばスケール比として1.1、1.25などの値が使用されてきた。スケール数を増加させると認識率は向上するが、計算時間は増加する。
 CNNカスケード検出器においてもスケール数を増加させることができるが、計算時間短縮のためにはスケール比を2にするのが良い。このようにスケール比を大きくすると、ひとつのスケールにおいて扱うべき歩行者の画像のサイズ範囲が広がるため、特徴抽出部211、201に工夫が必要になる。CNNに関する従来の研究の多くにおいては、多数のスケールを使用し、その代わりに学習させる歩行者の画像のサイズとしてウィンドウ・サイズに近いものだけを使用している(あるいはウィンドウ・サイズ近くにリサイズしている)。
 これに対してこの実施例においては同一の歩行者の画像を数種類にリサイズして、そのすべてを使用する。深層学習を使用する方法において、このように歩行者の画像を「単一サイズ」にすると、スケールがオクターブ単位のときは正確な学習または検出が困難になり、対策が必要になると考えられるからである。
 教師データとして単一サイズの画像を採用すると、フレーム単位とウィンドウ単位の乖離が拡大して学習が困難になることがある。本実施例では、その解決策として歩行者の画像のサイズを複数にしている。すなわち、歩行者の画像のデータセットから取得した歩行者の画像に左右反転(flip)させた画像を加えた上、それぞれさらに4種類のサイズにリサイズして正例として学習させる。
 すなわち、bounding box内の画像がちょうど32×64のウィンドウに収まるようにリサイズした最大サイズを正例として使用する。そして、図8に図示したように、歩行者の画像の最大サイズ801を基準として、その20.75倍(802)、20.5倍(803)、20.25倍(804)のサイズの画像を併せて(すなわち、ウィンドウ・サイズの半分までの4種類のサイズの縮小画像を)正例として使用している。
 画像を縮小すると周囲に空白ができるが、画像の最外周の値を単純に延長して埋めることができる。また、灰色で埋めることもできる。また、4種類の代わりに2種類、あるいは他の選択をすることも可能である。また、サイズは固定にする代わりに乱数によって選択することも可能である。
 このように正例を増加(oversample)させることによって、単一サイズの歩行者の画像を使用したときには学習によってウィンドウ単位の認識率が向上してもフレーム単位の性能はむしろ悪化する(負の相関がある)ことがあるのが、フレーム単位の性能も向上するようになる(相関が正になる)。
 具体的には、正例の増加により次の2つの効果がある。
 1)1オクターブを4以上に分割することにより、継続的な訓練によってよりよい精度をもつ(false positives が少ない)ネットワークを比較的たかい確率で獲得することができる。この傾向は分割数によって比較的緩やかに変化する。すなわち、分割数を6、8などとしても、同様の効果を得ることができる。
 2)1オクターブを6分割すると、継続的な訓練によってよりよい再現率をもつ(false negativesが少ない)ネットワークを比較的たかい確率で獲得することができる。分割数を4あるいは8とするとこのようなネットワークが獲得できる頻度はあきらかに低下した。すなわち、(5分割や7分割はまだ実験していないが)6分割が最適である。これらの結果から、分割数は6が最適だと考えられる。
 このように正例を増加させるとフレーム単位とウィンドウ単位の乖離が減少する理由は2つあると考えられる。第1に、CNNアンサンブル検出器100での検出時にはさまざまなサイズの歩行者の画像が現れるため、歩行者の画像サイズが統一されていると、様々なサイズに対応できないと考えられるが、リサイズした歩行者の画像を加えることにより、画像の範囲内で多様なサイズの歩行者を学習させることができる。
 第2に、正例の数が比較的限られているのを、特にスケール1~3ごとの学習を行う場合にはそれが限られるのを補うためでもある。
 最後に、歩行者の画像のスケーリングの応用としての歩行者のサイズおよび位置の認識法について述べる。本実施例において歩行者の画像のスケーリングを行った主な理由は、フレーム単位とウィンドウ単位の乖離をなくすことであるが、この実施例においては少数のスケールを使用しているため、歩行者の画像を検出した領域を各スケールのウィンドウ全体とすると、遠方の歩行者の画像がウィンドウの中のどの部分に現れたかがわからず、また歩行者の画像までの距離も荒いスケール単位でしか分からない。
 しかし、正例を生成する時点で歩行者の画像のサイズはより正確に分かっている(すなわち、2倍に縮小した歩行者の画像の高さは64×2とすることができる)し、縮小した歩行者を画像の中のどの位置に置くかによって、検出する歩行者の画像のおよその位置を判定することができる。
 第1の代替実施例として、図4のように8個のクラス(図中Class0~Class7)を設けて分類することができる。この分類においては、歩行者が存在しないクラスをクラス0(400)とし、1倍サイズの歩行者のクラスをクラス1(401)としている。20.5倍のサイズの歩行者の画像に関しては、その位置に従って6個のクラスを定義する。
 すなわち、横方向に2分類、縦方向に3分類する(クラス2、3、4、5、6、7)。このような分類を可能にするため,学習時に図4のような8種類(原画像1枚につき8枚ずつ)の画像をその分類(クラス)を教師情報として学習させる。ここでは画像サイズとの関係により、学習させる歩行者の画像に9ピクセルのスライディングをほどこしている。スライディング・ウィンドウにおけるスライド量は8ピクセルなので、スライド量はほぼそれに近い。
 歩行者の画像の検出の際には単純な検出の(すなわち出力値として0か1かだけをえる)代わりにこれら8クラスへの分類を行うことによって、歩行者の画像のサイズと位置を出力として得ることができる。20.75倍および20.25倍のサイズの歩行者の画像についても同様にクラス分けすることができるが、特に、20.25倍の歩行者の画像については、細かく分類するとクラス数が膨大になり、歩行者の画像の検出を困難にすると考えられる。
 したがって、クラス数は7クラス程度に抑え、20.75倍の歩行者の画像は1倍の歩行者の画像と同一クラスに分類し、20.25倍のサイズの歩行者の画像は20.5倍の歩行者の画像の6クラスに分類することにより、クラス数を8に抑えるのがひとつの有力な方法である。分類の方法を変更することにより、クラス数を8よりやや増加させたほうがよい可能性もある。
 第2の代替実施例として、学習時にはリサイズせず、検出時にリサイズする方法を記述する。すなわち,学習時に画像をリサイズして図4のような8種類を学習させるかわりに、学習時にはリサイズをおこなわずに1種類の画像だけを学習させ、検知時にウィンドウごとに図4の400Class 0 以外の各画像から黒塗りの部分を削除した画像を生成してそれを原画像とおなじウィンドウ・サイズに拡大し、それぞれの画像についてウィンドウCNNを動作させて検知を行う。NMSの際にこれらの画像のうちのいずれから最大の出力をえたかによって歩行者の位置を特定する。この方法は学習時に歩行者に無関係な背景の量をおさえることができるため、false negatives をおさえることができるという利点がある。
 第3に、正例におけるocclusionの扱いについて述べる。Caltech歩行者データセットにはbounding boxごとに隠れた(occluded)歩行者であるかどうかも注釈がついているが、本実施例においては、正例の生成の際に隠れた歩行者の画像も除外しない。これは、隠れた歩行者を入れたほうがよい結果が得られると考えられるためである。隠れた歩行者を学習させたことによる効果については後述する。
 ((負例の生成))
 負例も正例と同様に、スケールごとに歩行者データセットのビデオを使用して生成する。以下、基本的な負例生成法、初期負例の生成法、すなわち後述するbaggingを使用するとき、および後述するboostingを使用するときのカスケードの1段目の負例生成法、boostingを使用するときのカスケードの2段目以降の負例生成法について、順に説明する。
 第1に、基本的な負例生成法について説明する。1個またはカスケードにした全画面CNN210を使用して負例を生成することができる。図6に示すように、bounding boxと全画面CNN210の出力から使用するウィンドウの位置を決め、それに従って元のフレームから負例を切り出し、統一サイズ(32×64)にする。
 すなわち、bounding boxにかからない位置であって、CNNが歩行者の画像を検出した位置(すなわちfalse positiveが検出された位置)から負例を切り出す。ただし、boostingを行わないときはCNNの出力を参照せず、bounding boxのない任意の位置から切り出せばよい。CNNの出力を参照しないとき、あるいはfalse positivesが多数存在するときは、負例を切り出す位置は上記の条件を満たす範囲でランダムに決めればよい。
 選択した負例をそのまま学習に使用すると過剰適応(overfitting)が生じやすくなるため、元のサイズで使用する代わりに±5%の範囲でランダムにリサイズする。すなわち、リサイズせずに学習または検証を行うと検証時に誤差が0になりやすいため、前記拡大が不要なときも負例をわずかにリサイズして使用する。
 学習データと検証データの重複(完全な重複および部分的な重複)を慎重に避ければこのような現象を避けることができると考えられるが、リサイズするほうが問題を容易に解決することができる。
 次に、負例が不足するときと、ウィンドウ単位の性能とフレーム単位の性能とが乖離するときの対策について述べる。False positivesが十分に少ない場合は、False positivesと判定されたデータをすべて収集しても負例が不足する可能性がある。2~3フレームおきにフレームを使用した上、必要に応じて負例を増加(oversample)させる。負例を増加させる方法としてはリサイズ(主に拡大)および左右反転(flip)を使用することができる。
 このように負例を増加させることによって、学習によってウィンドウ単位の認識率が向上してもフレーム単位の性能はむしろ悪化していた(負の相関があった)ものが、フレーム単位の性能も向上するようになる(相関が正になる)。
 第2に、初期負例の生成法について述べる。CNNアンサンブル検出器100の各スケール1~3の初段で使用する負例、すなわち初期負例は、CNNの出力を使用せずに、すなわちbounding boxにかからない範囲から生成する。このデータセットのすべてのフレームを使用すると膨大な負例が生成されるため、初期負例の生成においては30フレームおきにフレームを使用し、さらに乱数によって負例を選択している。Bounding boxのないフレームだけから負例を生成する方法と、Bounding boxがあってもそれにかからない範囲からも生成する方法とがある。
 第3に、boostingを使用するときのカスケードの2段目以降の負例の生成法について述べる。CNNアンサンブル検出器100の各スケール1~3の2段目以降のCNNにおいて後述するboostingを行うときは、そのCNNの訓練に使用する負例を生成する際に、前段の出力を参照する。
 すなわち、負例の生成に使用するCNN(前段までのCNNカスケードに対応)が歩行者と判定したウィンドウのうちBounding boxと重ならないものすなわちfalse positiveだけを(困難な)負例として生成する。
 (スケールごとの学習)
 CNNアンサンブル検出器100においては学習、検出の両方をスケール1~3ごとに分けて行う。学習においては既に記述したようにBounding boxのサイズによって正例を複数のスケールに分類し、同一スケールの負例と併せてスケールごとの訓練用データを生成する。
 正例と負例は同数とするのが基本であり、基本的に両者を20万画像ずつ併せて教師つきデータを作成する。この実施例において使用する画像サイズはすべてのスケール1~3において32×64であるが、スケール1~3ごとに異なる画像サイズを使用することができる。また、カスケードの段ごとに異なる画像サイズを使用することも可能である。カスケードの後段の学習データの生成法に関しては次節において述べる。
 歩行者の検出に全画面CNN210を使用するときも、学習においてはウィンドウCNN200を使用し、逆伝搬学習法によって学習させる。確率的勾配降下法(stochastic gradient descent method、SGD)などの学習法によって学習させることができる。
 既に記述したように、全画像を1回学習させるごとに、すなわち1つのepochごとに検証用データによる評価とフレーム単位の評価の両方を行って、その和(損失関数)が最小のものを保存する。
 ただし、検出用のCNNを構成する際には、必ずしも最後に算出した最小値に対応するウェイトとバイアスのセットを使用するとは限らない。特に、次節において述べるカスケードを構成する際には最後のセットが最善とは限らないので、途中で得られたセットも試して、カスケードとして使用するのに最適な組み合わせを算出する。その詳細は次節において述べる。
 (カスケードの構成法)
 CNNアンサンブル検出器100においては、次のような目的あるいは理由によってCNNのカスケードを使用する。すなわち、特徴抽出部211、201のカスケードを使用するのは単独で使用する場合より認識率を向上させることである。しかし、さらにその使用はデータセットのアンバランスさ(歩行者の出現頻度が極端に低い)への対策だということができる。
 以下、基本となる2種類のカスケードの構成方法およびCNNアンサンブル検出器100におけるその組み合わせ方と結果について、順に述べる。
 ((2つの基本構成法baggingとboosting))
 複数の特徴抽出部211、201のアンサンブルによってCNNアンサンブル検出器100を構成するための代表的な方法として次の2つがあるが、これらを組み合わせてカスケードを構成する。
 第1の方法はbagging(bootstrap aggregating)である。Baggingにおいては、ひとつの訓練用データセット(初期データセット)を使用して複数のフィルタ(以下、検出器)を選択または生成する。手作りの特徴検出器を使用するときは、複数の検出器の中から最適な組み合わせを選択したり、最適なパラメタの組を算出する。
 ただし、本来のbaggingにおいては、ひとつの初期データセットからサンプリングによって異なる訓練用データセットをフィルタ毎に生成するが、この実施例で使用した方法においては確率的な方法を使用しているため、同一の訓練用データセットから複数の異なるフィルタを生成することができるため、同一のデータセットを使用している。この実施例においてはCNNのアンサンブルを使用するので、遺伝的アルゴリズム(GA)を使用して異なるウェイトやバイアスを持つ複数のCNNを生成する。
 第2の方法はboostingである。Boostingにおいては、1段ごとに異なる訓練用データセットを生成して学習する。初段はランダムに選択した負例を使用して訓練するが、後段は前段までが正しく処理できなかったデータのウェイトを重くして訓練する。すなわち、前段で正しく処理できるものは訓練用データセットから削除するか、学習時の評価におけるウェイトを低く設定する。いずれの段においても使用する正例の母集団は基本的に同じである。このように困難な負例を収集及び使用する方法はhard negative miningあるいはbootstrappingと呼ばれているが、さまざまな方法が提案されている。Boostingにもさまざまな方法がある。
 これらの方法のうちbaggingはすべての検出器がすべてのウィンドウを処理できる能力を有するため、よりロバストであるが、boostingによる検出器より広範な入力クラスに対応しなければならないため性能上は不利だと考えられる。Boostingにおいては前段までの検出器で振るい落とされるウィンドウを検出する必要がないため、性能上は有利になると考えられるが、前段までで振るい落とされることが期待されるウィンドウが落とされないときには弱点が現れ、ロバスト性が欠けると考えられる。
 学習の際、baggingにおいては複数の検出器を独立して学習させることができるため、並列に生成することができる。CNNアンサンブル検出器100を構成するときも複数のCNNを並列に生成することができる。しかし、boostingにおいては前段までの検出器を使用して学習を行うため、逐次処理が必要であり、baggingより学習に手間がかかる。
 歩行者の画像の検出の際は、bagging、boostingのいずれにおいても、学習によって獲得された検出器をカスケードで使用することもできるが、並列に使用することも可能である。検出器をカスケードで使用するときは前段までで振るい落とされたウィンドウは処理する必要がないが、検出器を並列で使用するときはすべての検出器がすべての入力を処理するので無駄な計算が生じる。しかし、すべての出力をまとめる(andをとる)ことによって同一の結果を得ることができる。並列度の高いハードウェアを使用することができるときは並列処理を行った方が高速になるが、ハードウェアの並列度が低いときはかえって低速になる。
 ((CNNアンサンブル検出器における精度向上のためのカスケード構成法))
 CNNアンサンブル検出器100においてCNN(210、200)のカスケードを使用する主な目的は、歩行者の画像の検出精度を向上させること、すなわちfalse positivesを減少させることである。
 CNNアンサンブル検出器100の構成例として、本実施例においては、最初の2段をbaggingによって構成し(すなわち初期データセットによる訓練から2個のCNNを生成し)、それらのウェイトとバイアスを使用してboostingを行って3段目を構成する。遺伝的アルゴリズム(GA)を使用したアンサンブル学習法またはGAと逆伝搬学習を組み合わせたアンサンブル学習法によって1回または同一の訓練用データセットを使用した複数回学習を行い、その結果として得られる複数個のCNNによりアンサンブルを生成することができる。
 GAを使用する場合、ひとつの最適化関数に基づく最適な解だけを選択することができるが、本実施例ではひとつの最適化関数に基づく複数の解、または複数の最適化関数に基づく複数の解を選択する。複数の最適化関数によってGAを実施するとき、1回の試行では1個だけの最適化関数を使用することもでき、複数の最適化関数を併せて使用することもできる。また、複数の最適化関数を同時に使用する場合は、そのいずれに関しても劣位にあるCNNを廃棄し、いずれかに関して最適なCNNを増殖または変異させる。
 上記のように2段のCNNのカスケードあるいは並列処理によって目標の認識率を得ることができないときは、3段以上の構成をとることによって目標に近づくことができる。本実施例においては、CNNはbaggingとboostingの組み合わせによって生成する。その方法は以下の2とおり(またはその組み合わせ)である。
 第1に、baggingによってカスケードを生成するときは、同一の訓練用データセットの全体またはそこから選択したデータを使用した複数回の学習によって得られた最善またはそれに準じる数個のCNN(ウェイトおよびバイアスのセット)の中から何通りかを選択してカスケードを構成し、全データセットを評価した結果がよいカスケード(組み合わせ)を選択する。
 あるいは、上記のようにGAを使用したアンサンブル学習法またはGAと逆伝搬学習を組み合わせたアンサンブル学習法によってアンサンブルを生成することができる。
 第2に、1個のCNNまたはbaggingによって生成したCNNのカスケード(C1とする)の後にさらにboostingによって生成したCNNをカスケードする(C2とする)ときは、次のようにする。
 まず前者のカスケードC1をデータセットに適用して、カスケードC1が歩行者として誤検出する画像を収集して負例とする(baggingによるCNN生成の方法は前記とおりである)。その負例(だけ)に同数の正例を併せて訓練用データセットを生成し、この訓練用データセットを使用して後者(C2)を学習させる。このときはboostingの結果として生成するCNN(C2)は、1個だけでよいので、従来のCNNの学習法をそのまま使用すればよい。
 ただし、カスケードを構成する際に精度向上だけを考慮すると再現率は低下する。特に、カスケード段数を増加させると再現率が低下するため、カスケード段数は必要な精度が得られる最小の段数とするべきである。また、カスケードに使用するCNNとしては精度だけでなく再現率のよいものを選択し、組み合わせの際にも再現率低下が最小限になるくみあわせを選択するべきである。
 ((CNNアンサンブル検出器における再現率向上のためのカスケード構成法))
 歩行者検知においてboostingを使用するおもな目的は歩行者検知の精度を向上させることだが、単純に精度向上だけを目指してカスケード段数を増加させると再現率が低下する。すなわち、検知されない歩行者が増加する。それをできるだけ防止するため、すなわち再現率を向上させるカスケード構成を生成するために次の2つの方法のうちのいずれかをとることができる。
 再現率を向上させるための第1の方法は次のとおりである。カスケード構成のためにboostingを使用するかbaggingを使用するかはあらかじめ決めなければならない(その結果が良好でなければやりなおす必要がある)し、それによって学習に使用するデータセットは変化するが、いずれを使用する場合も学習の方法はかわらない。そのデータセットを使用して学習させ、生成されたカスケードを1つのepochごとに検証する(評価する)。精度および(推定)再現率がよいCNNを候補として蓄積し、得られた候補の中から学習後にカスケードに使用するものを選択する。精度の指標としてはfalse positivesの割合(歩行者を検出したウィンドウのうち歩行者が存在しないものの割合)を使用し、再現率の指標としては検出するべき範囲の歩行者が存在するウィンドウのうち歩行者を検出しなかったものの割合を使用する。ただし、前者はスケールに依存しないが、後者は他のスケールにおいて検出される可能性もあることに注意が必要である。
 この選択においてはこれらのCNNの精度指標と再現率指標を図10A、図10Bのようにプロットし、下方にある1個または数個を選択する。図10Aはカスケード1段目の学習結果をプロットした例であり、図10Bはカスケード2段目の学習結果をプロットした例である。すなわち、図10Bは生成された2段のカスケードによる評価結果である。最適と推定されるCNNを丸印で囲んでいるが、実際に最適であるかどうかはカスケードを網羅的に構成して比較しなければわからないため、最適に近いと推定される他のCNNについてもカスケードを完成させて比較するのがよいと考えられる。図10Bにおいては最適と推定したCNNより精度は低いがmiss rateの低いCNNも存在するが、再現率を向上させることを目的としているのでこのようなCNNは選択していない。
 図10A、図10Bのグラフには初期値が異なる複数の訓練結果をあわせてプロットすればよい。多数の試行(訓練)を行えばそれだけよいCNNが得られる確率が高まる。カスケードの段ごとにこのような試行を繰り返し、必要な性能が得られたところで停止する。精度と再現率の目標を共に満たすことができなければ、前段または初段まで戻って、よりよいCNNを算出する。
 再現率を向上させるための第2の方法は次のとおりである。Boostingは原理的には精度だけでなく再現率もあわせて向上させることができるため、現在は行っていないが、以下、その方法について述べる。すなわち、boostingによってfalse positivesを減少させるだけでなく、false negativesをboostingによって減少させることができる。ここではこのようにboostingによってfalse negativesを減少させる方法を記述する。ただし、この方法によって再現率と精度の両方を任意に向上させられるわけではなく、現実的には精度向上を優先すると再現率の向上は困難だと考えられる。
 上記実施例においては、boostingの際、すなわちカスケードの後段のCNNの学習の際に負例だけを交換し、正例としてはboostingを使用しないときと同一のものを使用していた。しかし、この変形例においては正例を交換する。負例はboostingを使用しないときと同一のものを使用することができる。
 この新しい正例の生成においては、初段の全画面CNN210に正例を含む画像をフレーム単位で与え、検出できなかった正例(false negativeとなった正例)を「困難な正例」として取得する。
 False negativesを算出する方法は、上記実施例におけるフレーム単位の評価と同じである。このようにして得られた困難な正例を必要に応じてリサイズや左右反転などの方法で増量し、また必要に応じて元の正例と混合し、さらに同数の負例と混合することによって訓練用データセットを生成する。
 この訓練用データセットによって訓練して得られたCNN(N2とする)をカスケードにおいて使用する。ただし、カスケードを構成する際にはfalse positivesを減少するためのカスケードとは違って、次のようにカスケードを構成する。
 上記のboostingによって得られたCNNには前段のCNN(N1とする)が歩行者が存在しないと判定したウィンドウを入力する。CNN(N2)として全画面CNN210を使用する際には、CNN(N2)の出力の中でCNN(N1)が歩行者が有ると判定した部分はそのまま出力する("or"をとる)。
 前段が不在と判断したウィンドウの中から、CNN(N1)が誤って歩行者が不在と判断したウィンドウをCNN(N2)によって拾い出し、歩行者を含むウィンドウに加える。CNN(N2)として全画面CNN210を使用する際には、上記のように基本的にはCNN(N1)の出力と"or"をとるが、このようにCNN(N1)とCNN(N2)に同じウェイトをあたえるとfalse positivesが増加する恐れがある。
 このため、CNN(N1)のウェイト(w1)よりCNN(N2)のウェイト(1-w1)を下げる(w1>0.5とする)のがよいと考えられる。すなわち、ある特定のウィンドウ(特徴マップ)に関するCNN(N1)、CNN(N2)の出力結果をo1、o2とするとき、
w1×o1+(1-w1)×o2
をカスケードの出力とすればよい。
 なお、上記のboostingはカスケードを複雑化させるため、boostingを行う代わりに、上記の方法によって取得した「困難な正例」を元の正例と併せて、さらに同数の負例を併せて生成した訓練用データセットによって訓練したCNNをCNN(N1)に置き換えて使用する(初段を交換する)方法も考えられる。この方法はbootstrappingの一種である。この方法には、カスケードの構造を複雑化することなく、元のまま使用することができるという利点がある。
 <まとめ>
 上記の4つの課題を解決するため、以下の3つの方法を組み合わせて使用する。
 第1の方法は、CNN(210、200)をアンサンブルで使用することである。本実施例では複数のCNN(210、200)のアンサンブル(組み合わせ)によって歩行者検出システム700を構成する。複数のCNN(210、200)をカスケードで使用し、またスケール(歩行者サイズ)1~3ごとに異なるCNNを使用する。CNN(210、200)を使用して歩行者の画像の検出を行った従来例の大半は1個だけニューラルネットを使用していたために、計算時間が膨大になり、学習させるのが容易でない大規模ネットワークが必要になり、多様で複雑なデータを扱いきれず、また低解像度の歩行者を認識するのが困難だったと考えられる。
 前記第1の方法を適用することにより、前記第1の課題のうちの最初の問題すなわちニューラルネットワークの計算時間の膨大さの問題は次のように解決することができる。すなわち、巨大な1個のネットワークを使用する代わりに、小規模なネットワークを複数個アンサンブルで使用するようにすればよい。
 タスクを複数のネットワークに分散させる(後述するように歩行者の画像の検出においては歩行者の画像サイズによる分散が可能である)ことにより個々のネットワークを最適化してその計算時間を短縮させる。
 また、特定のネットワークを稼働させることが不要だと分かれば、その稼働を停止させる(または実行回数を減少させる)ことにより計算時間を短縮することができる。特に、小規模なネットワークをカスケードで使用することにより、カスケードの2段目以降において扱う歩行者の画像の候補数が絞られるため計算量が減少し、巨大なネットワークの全体を稼働させるより高速化される。
 前記第1の方法を適用することにより、特にCNN(210、200)をカスケードで使用することにより、前記第2の課題すなわちウィンドウ単位の学習とフレーム単位の検出の乖離とくにfalse positivesの積算の問題は、次のように解決することができる。1個の検出器(CNN)によってfalse positivesを10-4以下にまで減少させるのは困難であり、その目標を達成するには複数の検出器をカスケードで使用し、false positivesを徐々にフィルタして10-4以下に近づけていくのが現実的な方法である。正例・負例の出現頻度の乖離の問題も、カスケードの後段においてはその出現頻度が1対1に近づくため、解決できる。
 前記第3の課題の一部である大規模ネットワークの複雑さの問題も、小規模なネットワークをアンサンブルで使用することによって解決することができる。すなわち、複数のネットワークを組み合わせるようにすれば、部品を組み合わせて複雑なシステムを構成する工学的な方法を使用することができるため、上記課題を解決できる。これに対して大規模ネットワークはその内部が構造化されていても、それらは従来の工学的な意味での部品とはならず、従って工学的な組み合わせ方法を適用することができなかった。
 前記第1の方法を適用することにより、前記第3の課題の一部であるデータの多様さ・複雑さの問題は次のように解決することができる。
 すなわち、1個のネットワークにおいてはデータが持つ多数の特徴のうちの一部だけを扱うように分業し、そのようなネットワークを複数個使用して(分割統治法(divide-and-conquer)によって)システムを構成すればよい。
 歩行者の画像の検出においては上記のようにさまざまなサイズの歩行者の画像を扱う必要があるから、歩行者の画像のスケールごとに異なるネットワークを用意して、それぞれ特定範囲のサイズの歩行者の画像だけを学習させ、分業させればよい。上記のように歩行者の画像には色彩など他の属性もあるから、それらによる分業も考えられるが、歩行者の検出においてはサイズがもっとも重要と考えられるため、まずサイズによる分業を行うことにより、扱うデータの多様さ及び複雑さを減少させることができ、問題は解決される。
 前記第1の方法を適用することにより、前記第4の課題である低解像度歩行者の認識の困難さは次のように解決することができる。すなわち、歩行者の画像のサイズを低解像度に限定して学習及び検出することにより、学習及び検出を比較的容易にすることができる。
 組み合わせるべき第2の方法は、たたみこみニューラルネットワークへのフレーム全体を入力する方法である。これにより、前記第1の課題のうちの2番目の問題はつぎのように解決される。歩行者の検出においてスライディング・ウィンドウ処理によって生成されたウィンドウをCNNによって処理するとき、計算時間がかかるたたみこみ計算が多数回重複して実行される。この冗長さをなくすことによって処理時間短縮と実時間処理が可能になる。
 組み合わせるべき第3の方法はフレーム性能とウィンドウ性能をあわせた学習時の検証法である。これにより、前記第2の課題は次のように解消または軽減される。この方法においても従来のCNNにおけるのと同様に学習はウィンドウごとにおこなう。しかし、1回(epoch)の学習が終了するたびにフレーム単位での検証(validation)を行うことによって、ウィンドウ単位とフレーム単位との乖離を減少させることができる。
 また、前記第2の課題はつぎのように解決される。第1に、すでに述べたように重複したたたみこみ計算を行わないため、計算が高速化される。第2に、特徴抽出部においてプーリング処理が行われていれば特徴マップは元のフレームよりちいさいためスライディング・ウィンドウ処理にかかる時間が短縮され、高速化される。
 また、上記実施例では、ニューラルネットワークをソフトウェアで実装する例を示したが、ニューラルネットワークをハードウェアで実装してもよく、例えば、FPGA(Field Programmable Gate Array)等のハードウェアでニューラルネットワークを構成しても良い。
 また、上記実施例では、歩行者を検出する例を示したが、これに限定されるものではなく、車両や建造物などの特定の種類の物体を認識するものであれば本発明を適用することができる。
 また、上記実施例では、車両701に搭載される歩行者検出システム700に本発明を適用する例を示したが、これに限定されるものではなく、入力された画像から特定の種類の物体を検出する物体検出装置に本発明を適用することができる。
 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
 また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
 また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆(ほとん)ど全ての構成が相互に接続されていると考えてもよい。

Claims (12)

  1.  入力された画像から特定の物体を検出する物体検出装置であって、
     画素が配列された画像を入力し、前記画像上の画素について畳みこみ計算を行う複数のニューロンと、前記複数のニューロンの出力から1個の値を計算するプーリングニューロンとを含むニューラルネットワークを、1層または複数層積層して特徴マップを出力する特徴抽出部と、
     前記特徴抽出部から出力される特徴マップを入力してスライディング・ウィンドウ処理を実行して複数の特徴マップウィンドウを出力するスライディング・ウィンドウ部と、
     前記特徴マップウィンドウを入力して前記特徴マップウィンドウ内に特定の物体が含まれるか否かを判定する識別部と、を含む第1の検出モジュールと、
     前記第1の検出モジュールの出力を入力とする第2の検出モジュールをカスケード接続し、
     前記第2の検出モジュールは、
     前記画像を入力し、前記画像上の画素について畳みこみ計算を行う複数のニューロンと、前記複数のニューロンの出力から1個の値を計算するプーリングニューロンとを含むニューラルネットワークを、1層または複数層積層して特徴マップを出力する特徴抽出部と、
     前記特徴マップを入力して前記特徴マップ内に特定の物体が含まれるか否かを判定する識別部と、を含むことを特徴とする物体検出装置。
  2.  請求項1に記載の物体検出装置であって、
     前記第1の検出モジュールに、1以上の前記第2の検出モジュールをカスケード接続した第1のスケールと、
     前記第1の検出モジュールに、1以上の前記第2の検出モジュールをカスケード接続した第2のスケールと、
     前記第1のスケールと前記第2のスケールに入力画像を入力する入力部と、
     前記第1のスケールの出力と、前記第2のスケールの出力を入力して集約する集約部と、
    を有することを特徴とする物体検出装置。
  3.  請求項2に記載の物体検出装置であって、
     前記入力部は、
     前記第1のスケールと第2のスケールでサイズの異なる入力画像を与えるリスケール部を含むことを特徴とする物体検出装置。
  4.  入力された画像から特定の物体を検出する物体検出方法であって、
     画素が配列された画像を第1の検出モジュールへ入力し、第1の検出モジュールの出力をカスケード接続された第2の検出モジュールへ入力し、
     前記第1の検出モジュールは、
     前記画像上の画素について畳みこみ計算を行う複数のニューロンと、前記複数のニューロンの出力から1個の値を計算するプーリングニューロンとを含むニューラルネットワークを、1層または複数層積層した特徴抽出部で特徴マップを出力し、
     前記特徴抽出部から出力される特徴マップを入力してスライディング・ウィンドウ処理を実行するスライディング・ウィンドウ部が、複数の特徴マップウィンドウを出力し、
     前記特徴マップウィンドウを入力する識別部が、前記特徴マップウィンドウ内に特定の物体が含まれるか否かを判定し、
     前記第2の検出モジュールは、
     前記第1の検出モジュールから出力された画像を入力し、前記画像上の画素について畳みこみ計算を行う複数のニューロンと、前記複数のニューロンの出力から1個の値を計算するプーリングニューロンとを含むニューラルネットワークを、1層または複数層積層した特徴抽出部が特徴マップを出力し、
     前記特徴マップを入力する識別部が、前記特徴マップ内に特定の物体が含まれるか否かを判定することを特徴とする物体検出方法。
  5.  請求項4に記載の物体検出方法であって、
     前記第1の検出モジュールに、1以上の前記第2の検出モジュールをカスケード接続した第1のスケールに前記画像を入力し、
     前記第1の検出モジュールに、1以上の前記第2の検出モジュールをカスケード接続した第2のスケールに前記画像を入力し、
     前記第1のスケールの出力と、前記第2のスケールの出力を入力とする集約部が、前記出力を集約することを特徴とする物体検出方法。
  6.  請求項5に記載の物体検出方法であって、
     前記第1のスケールと第2のスケールでサイズの異なる入力画像を与えることを特徴とする物体検出方法。
  7.  請求項4に記載の物体検出方法であって、
     前記特定の物体を含む画像のフレームサイズよりも小さいウィンドウ・サイズの画像に分割し、複数の第1の画像を教師データとして前記ニューラルネットワークに入力して機械学習させ、
     前記機械学習のステップごとに前記フレームサイズの複数の第2の画像をテストデータとして 前記スライディング・ウィンドウ部または前記ニューラルネットワークに入力して得られた出力により前記機械学習の結果に関する第1の評価を行い、
     前記機械学習のステップごとに前記ウィンドウ・サイズの複数の第3の画像をテストデータとして前記ニューラルネットワークに入力して前記機械学習の結果に関する第2の評価を行い、
     前記第1の評価と前記第2の評価を総合した最適化によって最適な学習結果を選択し、
     前記選択された学習結果によって前記ニューラルネットワークのウェイトを決定することを特徴とする物体検出方法。
  8.  請求項7に記載の物体検出方法であって、
     前記第1の評価としてfalse positivesに関する評価を行うことを特徴とする物体検出方法。
  9.  請求項7に記載の物体検出方法であって、
     前記第1の評価としてfalse negativesに関する評価を行うことを特徴とする物体検出方法。
  10.  請求項7に記載の物体検出方法であって、
     前記第1の画像として同一の特定の物体の画像を複数種にリサイズした画像を使用し、前記第1の評価と前記第2の評価との乖離を減少させることを特徴とする物体検出方法。
  11.  請求項5に記載の物体検出方法であって、
     前記集約部は、前記第1のスケールと前記第2のスケールが出力する検知結果から重複する結果を削除して出力することを特徴とする物体検出方法。
  12.  請求項7に記載の物体検出方法であって、
     前記第1の検出モジュールまたは第2の検出モジュールのうち少なくともひとつをboostingによって生成し、
     前記第2の検出モジュールの学習時に前記特定の物体を含まない同一の画像を複数通りにリサイズした画像を使用する ことを特徴とする物体検出方法。
PCT/JP2017/012397 2016-06-30 2017-03-27 物体検出装置及び物体検出方法 WO2018003212A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016130878A JP2018005520A (ja) 2016-06-30 2016-06-30 物体検出装置及び物体検出方法
JP2016-130878 2016-06-30

Publications (1)

Publication Number Publication Date
WO2018003212A1 true WO2018003212A1 (ja) 2018-01-04

Family

ID=60786357

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/012397 WO2018003212A1 (ja) 2016-06-30 2017-03-27 物体検出装置及び物体検出方法

Country Status (2)

Country Link
JP (1) JP2018005520A (ja)
WO (1) WO2018003212A1 (ja)

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109359574A (zh) * 2018-09-30 2019-02-19 宁波工程学院 基于信道级联的广域视场行人检测方法
CN109508746A (zh) * 2018-11-16 2019-03-22 西安电子科技大学 基于卷积神经网络的脉冲星候选体识别方法
CN109544598A (zh) * 2018-11-21 2019-03-29 电子科技大学 目标跟踪方法、装置及可读存储介质
CN109741318A (zh) * 2018-12-30 2019-05-10 北京工业大学 基于有效感受野的单阶段多尺度特定目标的实时检测方法
CN109784293A (zh) * 2019-01-24 2019-05-21 苏州科达科技股份有限公司 多类目标对象检测方法、装置、电子设备、存储介质
CN110110755A (zh) * 2019-04-04 2019-08-09 长沙千视通智能科技有限公司 基于ptgan区域差距与多重分支的行人重识别检测算法及装置
CN110163042A (zh) * 2018-04-13 2019-08-23 腾讯科技(深圳)有限公司 图像识别方法及装置
WO2020051816A1 (en) * 2018-09-13 2020-03-19 Intel Corporation Condense-expansion-depth-wise convolutional neural network for face recognition
CN111095295A (zh) * 2018-01-31 2020-05-01 富士通株式会社 物体检测方法和装置
JP2020071862A (ja) * 2018-10-31 2020-05-07 株式会社東芝 コンピュータビジョンシステム及び方法
CN111382761A (zh) * 2018-12-28 2020-07-07 展讯通信(天津)有限公司 一种基于cnn的检测器、图像检测方法及终端
CN111417960A (zh) * 2018-10-18 2020-07-14 松下电器(美国)知识产权公司 信息处理装置、信息处理方法及程序
JP2020112926A (ja) * 2019-01-09 2020-07-27 川崎重工業株式会社 誤認識を抑制可能な画像認識システムおよび画像認識方法
CN111476262A (zh) * 2019-01-23 2020-07-31 斯特拉德视觉公司 利用1xH卷积的基于CNN的对象检测方法及装置
WO2020164270A1 (zh) * 2019-02-15 2020-08-20 平安科技(深圳)有限公司 基于深度学习的行人检测方法、系统、装置及存储介质
CN111612747A (zh) * 2020-04-30 2020-09-01 重庆见芒信息技术咨询服务有限公司 产品表面裂缝快速检测方法及检测系统
CN111626400A (zh) * 2019-02-28 2020-09-04 佳能株式会社 多层神经网络模型的训练和应用方法、装置及存储介质
WO2020177217A1 (zh) * 2019-03-04 2020-09-10 东南大学 基于变尺度多特征融合卷积网络的路侧图像行人分割方法
CN111931729A (zh) * 2020-09-23 2020-11-13 平安国际智慧城市科技股份有限公司 基于人工智能的行人检测方法、装置、设备及介质
CN112084886A (zh) * 2020-08-18 2020-12-15 眸芯科技(上海)有限公司 提升检测神经网络目标检测性能的方法及装置
US10922626B2 (en) 2018-03-09 2021-02-16 Qualcomm Incorporated Conditional branch in machine learning object detection
CN112585943A (zh) * 2018-08-31 2021-03-30 索尼公司 成像设备、成像系统、成像方法和成像程序
CN113191451A (zh) * 2021-05-21 2021-07-30 北京文安智能技术股份有限公司 图像数据集处理方法和目标检测模型训练方法
CN113553938A (zh) * 2021-07-19 2021-10-26 黑芝麻智能科技(上海)有限公司 安全带检测方法、装置、计算机设备和存储介质
CN113673273A (zh) * 2020-05-13 2021-11-19 北京君正集成电路股份有限公司 一种可量化的前端车辆检测网络结构的设计方法
US11394889B2 (en) 2018-10-26 2022-07-19 Panasonic Intellectual Property Management Co., Ltd. Image recognition apparatus and image recognition method
WO2024011859A1 (zh) * 2022-07-13 2024-01-18 天翼云科技有限公司 一种基于神经网络的人脸检测方法和装置
US11889177B2 (en) 2018-08-31 2024-01-30 Sony Semiconductor Solutions Corporation Electronic device and solid-state imaging device
CN113553938B (zh) * 2021-07-19 2024-05-14 黑芝麻智能科技(上海)有限公司 安全带检测方法、装置、计算机设备和存储介质

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7047498B2 (ja) * 2018-03-13 2022-04-05 富士通株式会社 学習プログラム、学習方法および学習装置
JP7096034B2 (ja) * 2018-03-28 2022-07-05 株式会社パスコ 建築物抽出システム
JP7096033B2 (ja) * 2018-03-28 2022-07-05 株式会社パスコ 建築物抽出システム
KR102102161B1 (ko) * 2018-05-18 2020-04-20 오드컨셉 주식회사 이미지 내 객체의 대표 특성을 추출하는 방법, 장치 및 컴퓨터 프로그램
JP6766844B2 (ja) * 2018-06-01 2020-10-14 株式会社デンソー 物体識別装置、移動体用システム、物体識別方法、物体識別モデルの学習方法及び物体識別モデルの学習装置
JP6951295B2 (ja) * 2018-07-04 2021-10-20 株式会社東芝 学習方法、学習装置および画像認識システム
KR102631031B1 (ko) 2018-07-27 2024-01-29 삼성전자주식회사 반도체 장치의 불량 검출 방법
JP6978986B2 (ja) * 2018-07-30 2021-12-08 株式会社トヨタシステムズ 警報システム、警報制御装置及び警報方法
CN109191498B (zh) * 2018-09-05 2021-04-02 中国科学院自动化研究所 基于动态记忆和运动感知的目标检测方法及系统
EP4276753A3 (en) 2018-09-10 2024-02-07 Kyocera Corporation Estimation device, estimation system, and estimation program
US10282864B1 (en) * 2018-09-17 2019-05-07 StradVision, Inc. Method and device for encoding image and testing method and testing device using the same
EP3726521A4 (en) * 2018-10-19 2021-11-10 Sony Group Corporation INFORMATION PROCESSING METHODS, INFORMATION PROCESSING DEVICE AND INFORMATION PROCESSING PROGRAM
US11880748B2 (en) 2018-10-19 2024-01-23 Sony Corporation Information processing apparatus, information processing method, and information processing program
CN109472309A (zh) * 2018-11-12 2019-03-15 南京烽火星空通信发展有限公司 一种x光安检机图片物体检测方法
US10740593B1 (en) * 2019-01-31 2020-08-11 StradVision, Inc. Method for recognizing face using multiple patch combination based on deep neural network with fault tolerance and fluctuation robustness in extreme situation
JP7298223B2 (ja) * 2019-03-19 2023-06-27 富士フイルムビジネスイノベーション株式会社 画像処理装置及びプログラム
JP6938698B2 (ja) * 2019-03-22 2021-09-22 ネイバー コーポレーションNAVER Corporation イメージ検索のためのマルチグローバルディスクリプタを組み合わせるフレームワーク
JP7287650B2 (ja) * 2019-03-27 2023-06-06 Necソリューションイノベータ株式会社 画像認識装置、画像認識方法、及びプログラム
CN110969156A (zh) * 2019-05-17 2020-04-07 丰疆智能科技股份有限公司 奶牛奶头检测卷积神经网络模型及其构建方法
KR102239133B1 (ko) * 2019-05-24 2021-04-12 한국생산기술연구원 영상 변환을 이용한 머신러닝 기반 결함 분류 장치 및 방법
CN110427800A (zh) * 2019-06-17 2019-11-08 平安科技(深圳)有限公司 视频物体加速检测方法、装置、服务器及存储介质
CN110333076B (zh) * 2019-06-19 2021-01-26 电子科技大学 基于CNN-Stacking的轴承故障诊断方法
CN110334228A (zh) * 2019-07-09 2019-10-15 广西壮族自治区基础地理信息中心 一种基于深度学习的互联网问题地图筛查方法
JP7402082B2 (ja) 2019-07-19 2023-12-20 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 情報処理方法及び情報処理システム
US20220292706A1 (en) * 2019-08-30 2022-09-15 Nec Corporation Object number estimation device, control method, and program
KR102340354B1 (ko) * 2020-01-03 2021-12-16 영남대학교 산학협력단 멀티 스케일 컨볼루션 필터를 이용한 객체 검출 방법
CN113435226B (zh) * 2020-03-23 2022-09-16 北京百度网讯科技有限公司 信息处理方法和装置
CN111860540B (zh) * 2020-07-20 2024-01-12 深圳大学 基于fpga的神经网络图像特征提取系统
JP7093527B2 (ja) * 2020-11-20 2022-06-30 株式会社エイシング 情報処理装置、方法、プログラム及びシステム
JP2023058319A (ja) * 2021-10-13 2023-04-25 株式会社前川製作所 食肉用の作用点演算システム、食肉加工システム、及び、食肉用の作用点演算方法
JP2024001527A (ja) * 2022-06-22 2024-01-10 株式会社Jvcケンウッド 画像認識装置および画像認識方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150347820A1 (en) * 2014-05-27 2015-12-03 Beijing Kuangshi Technology Co., Ltd. Learning Deep Face Representation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150347820A1 (en) * 2014-05-27 2015-12-03 Beijing Kuangshi Technology Co., Ltd. Learning Deep Face Representation

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CHEN, QI ET AL.: "Part-based Deep Network for Pedestrian Detection In Surveillance Videos", VISUAL COMMUNICATIONS AND IMAGE PROCESSING (VCIP, vol. 2015, 25 April 2016 (2016-04-25), XP032894063, DOI: 10.1109/VCIP.2015.7457855 *
GIRSHICK, ROSS ET AL.: "Rich feature hierarchies for accurate Object detection and semantic segmentation", 2014 IEEE CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION, 25 September 2014 (2014-09-25), pages 580 - 587, XP032649284, DOI: 10.1109/CVPR.2014.81 *
REN, SHAOQING ET AL.: "Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks", ARXIV:1506.01497V3, 6 January 2016 (2016-01-06), pages 1 - 14, XP055480920 *

Cited By (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111095295B (zh) * 2018-01-31 2021-09-03 富士通株式会社 物体检测方法和装置
CN111095295A (zh) * 2018-01-31 2020-05-01 富士通株式会社 物体检测方法和装置
US11176490B2 (en) 2018-03-09 2021-11-16 Qualcomm Incorporated Accumulate across stages in machine learning object detection
US10922626B2 (en) 2018-03-09 2021-02-16 Qualcomm Incorporated Conditional branch in machine learning object detection
CN110163042A (zh) * 2018-04-13 2019-08-23 腾讯科技(深圳)有限公司 图像识别方法及装置
CN110163042B (zh) * 2018-04-13 2023-05-30 腾讯科技(深圳)有限公司 图像识别方法及装置
CN112585943A (zh) * 2018-08-31 2021-03-30 索尼公司 成像设备、成像系统、成像方法和成像程序
US11889177B2 (en) 2018-08-31 2024-01-30 Sony Semiconductor Solutions Corporation Electronic device and solid-state imaging device
EP3846446A4 (en) * 2018-08-31 2021-10-20 Sony Group Corporation IMAGE CAPTURE DEVICE, IMAGE CAPTURE SYSTEM, IMAGE CAPTURE PROCESS AND IMAGE CAPTURE PROGRAM
CN112585943B (zh) * 2018-08-31 2022-12-27 索尼公司 成像设备、成像系统、成像方法和存储介质
US11595608B2 (en) 2018-08-31 2023-02-28 Sony Corporation Imaging apparatus, imaging system, imaging method, and imaging program including sequential recognition processing on units of readout
US11763554B2 (en) 2018-08-31 2023-09-19 Sony Corporation Imaging apparatus, imaging system, imaging method, and imaging program
US11741700B2 (en) 2018-08-31 2023-08-29 Sony Corporation Imaging apparatus, imaging system, imaging method, and imaging program
US11704904B2 (en) 2018-08-31 2023-07-18 Sony Corporation Imaging apparatus, imaging system, imaging method, and imaging program
US11823033B2 (en) 2018-09-13 2023-11-21 Intel Corporation Condense-expansion-depth-wise convolutional neural network for face recognition
WO2020051816A1 (en) * 2018-09-13 2020-03-19 Intel Corporation Condense-expansion-depth-wise convolutional neural network for face recognition
CN109359574A (zh) * 2018-09-30 2019-02-19 宁波工程学院 基于信道级联的广域视场行人检测方法
CN109359574B (zh) * 2018-09-30 2021-05-14 宁波工程学院 基于信道级联的广域视场行人检测方法
CN111417960A (zh) * 2018-10-18 2020-07-14 松下电器(美国)知识产权公司 信息处理装置、信息处理方法及程序
EP3869450A4 (en) * 2018-10-18 2021-12-08 Panasonic Intellectual Property Corporation of America INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD AND PROGRAM
US11394889B2 (en) 2018-10-26 2022-07-19 Panasonic Intellectual Property Management Co., Ltd. Image recognition apparatus and image recognition method
JP2020071862A (ja) * 2018-10-31 2020-05-07 株式会社東芝 コンピュータビジョンシステム及び方法
CN109508746A (zh) * 2018-11-16 2019-03-22 西安电子科技大学 基于卷积神经网络的脉冲星候选体识别方法
CN109544598A (zh) * 2018-11-21 2019-03-29 电子科技大学 目标跟踪方法、装置及可读存储介质
CN109544598B (zh) * 2018-11-21 2021-09-24 电子科技大学 目标跟踪方法、装置及可读存储介质
CN111382761A (zh) * 2018-12-28 2020-07-07 展讯通信(天津)有限公司 一种基于cnn的检测器、图像检测方法及终端
CN109741318A (zh) * 2018-12-30 2019-05-10 北京工业大学 基于有效感受野的单阶段多尺度特定目标的实时检测方法
CN109741318B (zh) * 2018-12-30 2022-03-29 北京工业大学 基于有效感受野的单阶段多尺度特定目标的实时检测方法
JP2020112926A (ja) * 2019-01-09 2020-07-27 川崎重工業株式会社 誤認識を抑制可能な画像認識システムおよび画像認識方法
JP7269013B2 (ja) 2019-01-09 2023-05-08 川崎重工業株式会社 誤認識を抑制可能な画像認識システムおよび画像認識方法
CN111476262B (zh) * 2019-01-23 2023-08-15 斯特拉德视觉公司 利用1xH卷积的基于CNN的对象检测方法及装置
CN111476262A (zh) * 2019-01-23 2020-07-31 斯特拉德视觉公司 利用1xH卷积的基于CNN的对象检测方法及装置
CN109784293A (zh) * 2019-01-24 2019-05-21 苏州科达科技股份有限公司 多类目标对象检测方法、装置、电子设备、存储介质
WO2020164270A1 (zh) * 2019-02-15 2020-08-20 平安科技(深圳)有限公司 基于深度学习的行人检测方法、系统、装置及存储介质
CN111626400B (zh) * 2019-02-28 2024-03-15 佳能株式会社 多层神经网络模型的训练和应用方法、装置及存储介质
CN111626400A (zh) * 2019-02-28 2020-09-04 佳能株式会社 多层神经网络模型的训练和应用方法、装置及存储介质
US11783594B2 (en) 2019-03-04 2023-10-10 Southeast University Method of segmenting pedestrians in roadside image by using convolutional network fusing features at different scales
WO2020177217A1 (zh) * 2019-03-04 2020-09-10 东南大学 基于变尺度多特征融合卷积网络的路侧图像行人分割方法
CN110110755A (zh) * 2019-04-04 2019-08-09 长沙千视通智能科技有限公司 基于ptgan区域差距与多重分支的行人重识别检测算法及装置
CN111612747B (zh) * 2020-04-30 2023-10-20 湖北煌朝智能自动化装备有限公司 产品表面裂缝快速检测方法及检测系统
CN111612747A (zh) * 2020-04-30 2020-09-01 重庆见芒信息技术咨询服务有限公司 产品表面裂缝快速检测方法及检测系统
CN113673273B (zh) * 2020-05-13 2023-05-12 北京君正集成电路股份有限公司 一种可量化的前端车辆检测网络结构的设计方法
CN113673273A (zh) * 2020-05-13 2021-11-19 北京君正集成电路股份有限公司 一种可量化的前端车辆检测网络结构的设计方法
CN112084886A (zh) * 2020-08-18 2020-12-15 眸芯科技(上海)有限公司 提升检测神经网络目标检测性能的方法及装置
CN112084886B (zh) * 2020-08-18 2022-03-15 眸芯科技(上海)有限公司 提升检测神经网络目标检测性能的方法及装置
CN111931729A (zh) * 2020-09-23 2020-11-13 平安国际智慧城市科技股份有限公司 基于人工智能的行人检测方法、装置、设备及介质
CN113191451A (zh) * 2021-05-21 2021-07-30 北京文安智能技术股份有限公司 图像数据集处理方法和目标检测模型训练方法
CN113191451B (zh) * 2021-05-21 2024-04-09 北京文安智能技术股份有限公司 图像数据集处理方法和目标检测模型训练方法
CN113553938A (zh) * 2021-07-19 2021-10-26 黑芝麻智能科技(上海)有限公司 安全带检测方法、装置、计算机设备和存储介质
CN113553938B (zh) * 2021-07-19 2024-05-14 黑芝麻智能科技(上海)有限公司 安全带检测方法、装置、计算机设备和存储介质
WO2024011859A1 (zh) * 2022-07-13 2024-01-18 天翼云科技有限公司 一种基于神经网络的人脸检测方法和装置

Also Published As

Publication number Publication date
JP2018005520A (ja) 2018-01-11

Similar Documents

Publication Publication Date Title
WO2018003212A1 (ja) 物体検出装置及び物体検出方法
JP7289918B2 (ja) 物体認識方法及び装置
US11508146B2 (en) Convolutional neural network processing method and apparatus
US9786036B2 (en) Reducing image resolution in deep convolutional networks
WO2020164282A1 (zh) 基于yolo的图像目标识别方法、装置、电子设备和存储介质
CN109918969B (zh) 人脸检测方法及装置、计算机装置和计算机可读存储介质
EP3388978B1 (en) Image classification method, electronic device, and storage medium
US9542621B2 (en) Spatial pyramid pooling networks for image processing
US11157764B2 (en) Semantic image segmentation using gated dense pyramid blocks
CN114202672A (zh) 一种基于注意力机制的小目标检测方法
WO2016054778A1 (en) Generic object detection in images
WO2018052587A1 (en) Method and system for cell image segmentation using multi-stage convolutional neural networks
CN107909026B (zh) 基于小规模卷积神经网络年龄和/或性别评估方法及系统
CN108475331A (zh) 使用来自卷积神经网络模型的多个层的特征图谱的针对包括感兴趣的对象的图像区域的候选区域
CN113469073A (zh) 一种基于轻量级深度学习的sar图像舰船检测方法及系统
CN108664981A (zh) 显著图像提取方法及装置
CN112070713A (zh) 一种引入attention机制的多尺度目标检测方法
CN114821246A (zh) 基于多层次残差网络感知和注意力机制的小目标检测方法
CN112116001A (zh) 图像识别方法、装置及计算机可读存储介质
CN114494696A (zh) 一种多尺度煤矸图像快速检测的方法、系统及装置
CN110532959B (zh) 基于双通道三维卷积神经网络的实时暴力行为检测系统
CN110349167A (zh) 一种图像实例分割方法及装置
KR20180071947A (ko) 영상 처리 장치 및 방법
US11704894B2 (en) Semantic image segmentation using gated dense pyramid blocks
CN112132207A (zh) 基于多分支特征映射目标检测神经网络构建方法

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: 17819581

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17819581

Country of ref document: EP

Kind code of ref document: A1