Video Object Detection
By designing the object detection and propagation circuit in the video processor, using optical flow to estimate the object position, and establishing a propagation pool, the problem of high computational complexity in deep learning object detection on embedded devices is solved, and efficient real-time video object detection is achieved.
Patent Information
- Application Number
- CN201980016242.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-10-11
- Filing Date
- 2019-03-21
- Publication Date
- 2025-01-21
- Estimated Expiration
- 2039-03-21
AI Technical Summary
When the prior art implements deep learning object-based detection on embedded devices that process videos in real time, the calculation complexity is high and it is difficult to meet the needs of real-time detection.
By designing an object detection circuit and an object propagation circuit in the video processor, selecting points of interest located at the relative vertices of the object rectangle, determining the optical flow of each interest point, and estimating the position of the object in subsequent video frames based on the optical flow, establishing Object propagation pooling to improve detection efficiency.
Achieve the accuracy of object detection of SSD at lower calculation complexity (about 80 times), which improves the performance of real -time video object detection.
Smart Images

Figure CN111801706B_ABST
Abstract
Description
Background Art
[0001] Object detection is an important problem in computer vision. In order to analyze the behavior and motion of objects in a scene, a video processing system should reliably detect objects from video data. Detecting objects involves determining the location and scale of the objects. Various analytical applications are based on determining the location and scale of objects in a scene. For example, object detection is a necessary prerequisite for object tracking, as the tracker must be initialized with the location and scale of the object.
[0002] Advanced driver assistance systems (ADAS) and autonomous driving systems rely on object detection to determine the location of objects in the vehicle's operating environment. ADAS actions can include alerting the driver of a detected object or assuming control of the vehicle to avoid the detected object. Summary of the invention
[0003] A visual processor includes an object detection circuit and an object propagation circuit. The object detection circuit is configured to detect an object in a first video frame. The object propagation circuit is configured to select a first point of interest of the object. The first point of interest is set in a first region of interest located at a first corner of a frame surrounding the object. The object propagation circuit is also configured to select a second point of interest of the object. The second point of interest is set in a second region of interest located at a second corner of a frame surrounding the object. The second corner is diagonally opposite to the first corner. The object propagation circuit is also configured to determine a first optical flow of the first point of interest and determine a second optical flow of the second point of interest. The object propagation circuit is also configured to estimate the position of the object in the second video frame by determining the position of the first point of interest in the second video frame based on the first optical flow and determining the position of the second point of interest in the second video frame based on the second optical flow.
[0004] A method for video object detection includes detecting an object in a first video frame. Selecting a first interest point of the object. The first interest point is disposed in a first interest region located at a first corner of a frame surrounding the object. Selecting a second interest point of the object. The second interest point is disposed in a second interest region located at a second corner of a frame surrounding the object. The second corner is diagonally opposite the first corner. Determining a first optical flow of the first interest point. Determining a second optical flow of the second interest point. Estimating a position of the object in the second video frame by determining a position of the first interest point in the second video frame based on the first optical flow and determining a position of the second interest point in the second video frame based on the second optical flow.
[0005] A video system includes a camera and a video processor. The camera is configured to capture an image of an operating environment. The video processor is coupled to the camera and configured to receive a video frame from the camera, detect an object in a first video frame of the video frame. The video processor is also configured to define a frame around the object, define a first region of interest at a first corner of the frame, identify a first plurality of points of interest in the first region, select a first point of interest from the first plurality of points of interest, and determine a first optical flow of the first point of interest. The video processor is also configured to define a second region of interest at a second corner of the frame, identify a second plurality of points of interest in the second region, select a second point of interest from the second plurality of points of interest, and determine a second optical flow of the second point of interest. The second corner is diagonally opposite to the first corner. The video processor is also configured to estimate a position of the object in the second video frame by determining a position of the first point of interest in the second video frame based on the first optical flow and determining a position of the second point of interest in the second video frame based on the second optical flow. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] Figure 1 A block diagram of an example system for processing video images according to the present specification is shown.
[0007] Figure 2 A flow chart of an example method for object detection according to the present specification is shown.
[0008] Figure 3 The selection of interest points based on the optical flow of objects detected by a video processing system according to the present specification is shown.
[0009] Figure 4A and Figure 4B Selection of points of interest based on epipolar inspection of objects detected by a video processing system according to the present description is shown.
[0010] Figure 5A and Figure 5B Object pooling via optical flow propagation in accordance with the present specification is shown.
[0011] Fig. 6A , Figure 6B and Figure 6C The conditions for object propagation by optical flow according to the present specification are shown.
[0012] Fig. 7A and Figure 7B Suppression of objects propagated by optical flow based on conditional non-maximum suppression according to the present specification is shown.
[0013] Figure 8 A block diagram of an example system-on-chip suitable for implementing object propagation via optical flow in accordance with the present description is shown. DETAILED DESCRIPTION
[0014] In this specification, the term "coupled" or "coupled" refers to an indirect or direct wired or wireless connection. Thus, if a first device is coupled to a second device, the connection may be through a direct connection or through an indirect connection via other devices and connections. Additionally, in this specification, the expression "based on" means "based at least in part on". Thus, if X is based on Y, then X may be a function of Y and any other factors.
[0015] The use of deep learning has greatly improved the detection and recognition of objects in videos. However, the computational complexity required to implement deep learning makes it challenging to implement on embedded devices that process video in real time. The implementation of deep learning-based object detection, particularly for object detection in embedded devices, such as single frame detectors (SSDs), is helpful, but still requires significantly more computing power than most embedded devices.
[0016] The video processing apparatus and method described herein provide object detection accuracy similar to SSD with significantly lower computational complexity (e.g., 80 times). An embodiment selects a point of interest in each of two regions of interest associated with a detected object. The regions of interest are located at opposite vertices of a rectangle that bounds the object. An optical flow is determined for each point of interest, and a position of the object in a subsequent video frame is determined based on the optical flow of the point of interest. A pool of detected objects propagated using optical flow is maintained. All detected objects less than a selected age in the pool are propagated. Detected objects having a detection confidence score above a first confidence threshold are added to the pool. If the propagated object overlaps with an object having a detection confidence score below the first threshold, the detected object is propagated based on the optical flow.
[0017] Figure 1 A block diagram of an example video processing system 100 for processing video images according to the present specification is shown. The video processing system 100 includes one or more cameras 102 and a video processor 104. The camera 102 can capture visible light or infrared images at a frame rate and resolution suitable for object detection in a specific application. For example, the video processing system 100 can be applied in an advanced driver assistance system (ADAS) or an autonomous driving system to detect objects in the operating environment of the vehicle. In such applications, the camera 102 can operate at a resolution of 0.5 to 8 megapixels or higher at 60 frames per second, 30 frames per second, or other suitable rates. The camera 102 can be coupled to the video processor 104 via a camera serial interface (e.g., MIPI CSI-2) specified by the Mobile Industry Processor Interface Alliance or other interfaces suitable for passing video data to the processor.
[0018] The video processor 104 is an instruction execution device that is suitable for detecting objects and performing other operations based on the video data received from the camera 102. For example, in an ADAS implementation, the video processor 104 may be a system-on-chip (SoC) of the TDA2 series produced by Texas Instruments. The video processor 104 may include any number and type of sub-processors. Various implementations of the video processor 104 may include one or more general-purpose microprocessor cores, and / or one or more general-purpose coprocessor cores, and / or one or more digital signal processor cores, and / or one or more hardware video accelerator cores, and one or more vision engine cores to manipulate the video data received from the camera 102 and control the camera 102 and other components of the video processing system 100 (e.g., video display, vehicle control system, etc.). An implementation of the video processor 104 may also include a memory and an interface for storing video data to be processed and instructions to be executed by various processor cores included in the video processor 104, and the interface for accessing the memory and communicating with other devices outside the video processor 104.
[0019] The video processor 104 includes an object detection circuit 106 and an object propagation circuit 108. The object detection circuit 106 and the object propagation circuit 108 may be implemented by one or more processor cores of the video processor 104 that execute instructions stored in a memory of the video processor 104. The object detection circuit 106 analyzes the video frames received from the camera 102 and detects objects in each frame. A confidence value (i.e., a detection confidence score) is assigned to each object detection, which represents the likelihood that the detected object is present in the video frame. For example, a detection confidence score in the range of 0.4 to 0.6 may indicate a good confidence that the detected object is present in the video frame. Examples of the object detection circuit 106 may implement SSD, Faster R-CNN (Regional Scheme + Convolutional Neural Network), or other object detection architectures.
[0020] The object propagation circuit 108 estimates the position of an object detected in a previous video frame in a current video frame. The object propagation circuit 108 analyzes the optical flow of the points of interest of the object in the previous video frame, and propagates the object from the previous video frame to the current video frame by applying the determined optical flow to the object. Implementations of the object propagation circuit 108 provide improved object detection by associating the propagated position of the object with the object detection, which would otherwise remain unidentified due to low detection confidence (e.g., a detection confidence score in the range of 0.3 to 0.5). Therefore, the object propagation circuit 108 detects the presence of objects in the video frame that might otherwise not be detected, and the object propagation circuit 108 provides improved detection with lower computational complexity compared to other algorithms that provide similar detection performance.
[0021] Figure 2 A flow chart of an example method 200 for object detection according to the present specification is shown. Although depicted sequentially for convenience, at least some of the actions shown may be performed in a different order and / or in parallel. In addition, some embodiments may only perform some of the actions shown. The operations of method 200 may be performed by embodiments of video processor 104 and / or video processing system 100.
[0022] In block 202, camera 102 captures images in video frames of an operating environment of video processing system 100. Object detection circuitry 106 processes the video frames to detect objects.
[0023] In block 204 , for each object detected in the video frame by the object detection circuitry 106 , the object propagation circuitry 108 identifies points of interest in two regions of interest of the object. Figure 3 An object 302 detected by the object detection circuit 106 is shown. The object 302 is bounded by a rectangle 300. The object propagation circuit 108 identifies an area at a first corner 312 of the rectangle 300 as a first region of interest 304, and identifies an area at a second corner 314 of the rectangle 300 as a second region of interest 308. The first corner 312 is diagonally opposite the second corner 314. Within the region of interest 304 and the region of interest 308, the object propagation circuit 108 identifies a plurality of points of interest. The points of interest may be identified by points (e.g., pixels) located on edges or at corners identified in the region of interest 304. For example, the object propagation circuit 108 may identify points having edge or corner scores exceeding a threshold as points of interest. In the region of interest 304, the object propagation circuit 108 identifies a point of interest 306A, a point of interest 306B, a point of interest 306C, a point of interest 306D, and a point of interest 306E. In the region of interest 308 , the object propagation circuitry 108 identifies a point of interest 310A, a point of interest 310B, a point of interest 310C, a point of interest 310D, and a point of interest 310E.
[0024] After identifying multiple points of interest in the region of interest, the object propagation circuit 108 selects a point of interest from the multiple points of interest in each region of interest. In order to select a single point of interest in each region of interest, the object propagation circuit 108 determines the optical flow of each identified point of interest. Points of interest that exhibit poor optical flow are excluded from consideration. For example, points of interest with optical flow that takes objects out of the frame, causes objects to be occluded, etc. can be considered to have poor optical flow. In the region of interest 304, point of interest 306A is identified as having poor optical flow, and in the region of interest 308, point of interest 310A is identified as having poor optical flow. Therefore, point of interest 306A will not be selected as a point of interest in the region of interest 304, and point of interest 310A will not be selected as a point of interest in the region of interest 308.
[0025] In block 206, because rectangle 300 also contains part of the background in addition to object 302, object propagation circuit 108 also determines whether each interest point is part of object 302 or part of the background. Interest points that are not part of object 302 are excluded from consideration for being selected as an interest point in the region of interest. Figure 4A and Figure 4B Detected objects 402 arranged within rectangle 400 are shown. Figure 4A Various components of the background included within rectangle 400 are shown, and some of those components may indicate edges or corners within region of interest 404 or region of interest 40. For each point of interest in region of interest 404 and region of interest 408, object propagation circuitry 108 performs an epipolar check using two images captured at different times by camera 102. Object propagation circuitry 108 computes a fundamental matrix for object 402. Using the fundamental matrix, object propagation circuitry 108 computes epipolar lines. Any point of interest that has an optical flow that ends away from an epipolar line is considered part of the background or a different object and is excluded from consideration for selection as a point of interest in the region of interest.
[0026] In block 208, for the interest points that have good optical flow and are considered as points of detected objects, the object propagation circuit 108 selects the interest point that is close to (i.e., has the smallest distance to) the anchor point (i.e., the corner closest to the region of interest) as one of the interest points in the region of interest. Figure 3 , if interest point 306B, interest point 306C, interest point 306D, and interest point 306E have good optical flow and pass the epipolar check, then object propagation circuitry 108 selects interest point 306B as one of the interest points in region of interest 304 because interest point 306B is closest to corner 312. Similarly, if interest point 310B, interest point 310C, interest point 310D, and interest point 310E have good optical flow and pass the epipolar check, then object propagation circuitry 108 selects interest point 310B as one of the interest points in region of interest 308 because interest point 310B is closest to corner 314. Figure 4B , the object propagation circuitry 108 selects the point of interest 410 as one of the points of interest in the region of interest 404 and selects the point of interest 412 as one of the points of interest in the region of interest 408 .
[0027] The object propagation circuit 108 maintains a pool of objects to propagate based on the optical flow. In block 210, the object identified in block 202 is added to the pool. The identified object may be added to the pool if the detection confidence score assigned to the object by the object detection circuit 106 indicates a good confidence that the detected object is present in the video frame. For example, the object may be added to 500 if the detection confidence score assigned to the object by the object detection circuit 106 exceeds a confidence threshold (e.g., the threshold is in the range of 0.4 to 0.6). Figure 5A and Figure 5B Object pooling 500 via optical flow propagation in accordance with the present specification is shown. Figure 5A A pool 500 is shown, where the pool 500 includes an object 502, an object 504, and an object 506. The pool 500 can be stored in a memory of the video processor 104. The pool 500 can include any number of objects. When a new object is detected, the detected object is added to the pool 500. When an object is added to the pool 500, a life time value is assigned to the object. For example, when an object is added to the pool, a life time of 0.5 seconds, 1 second, etc. can be assigned to each object. When the life time expires, the object can be deleted from the pool 500. During the life time of an object in the pool 500, the object can be propagated in each new video frame (i.e., the position of the object is estimated).
[0028] In block 212, objects stored in pool 500 are propagated. Figure 5B The propagation of objects in pool 500 in subsequent video frames is shown. The optical flow of two interest points identified in each object is applied to estimate the location of the object by applying the optical flow to the anchor points of the box surrounding the object (i.e., the vertices of the region of interest). Figure 5B , object 502 is propagated to position 512 based on optical flows 503A and 503B. Object 504 is propagated to position 514 based on optical flows 505A and 505B. Object 506 is propagated to position 516 based on optical flows 507A and 507B.
[0029] In an embodiment of the object detection circuit 106, if the video processor 104 detects an object with a medium detection confidence score in a video frame and the detected object overlaps with the propagated object, the object in the pool 500 may be propagated. The medium detection confidence score indicates a lower confidence than a good detection confidence score for adding the object to the pool 500. For example, a good detection confidence score may be 0.4 or higher, while a medium detection confidence score may be at least 0.2 and lower than 0.4.
[0030] Fig. 6A , Figure 6B and Figure 6CAn example of object propagation based on overlap with a newly detected object having at least a medium detection confidence score in accordance with the present specification is shown. If a newly detected object having at least a medium detection confidence score overlaps with the estimated position of an object in pool 500 and the intersection over union (IoU) exceeds an overlap threshold, the object in pool 500 is propagated to the estimated position. Fig. 6A , the position of object 602 has been estimated based on the optical flow of the interest points of object 602. Object 604 has been detected in the current frame with a detection confidence score of 0.3 (a medium detection confidence score), and object 606 has been detected in the current frame with a detection confidence score of 0.4 (a medium or good detection confidence score). However, since there is no overlap between object 602 and either object 604 or object 606, object propagation circuitry 108 will not propagate object 602 in the current video frame, and object 602 may be deleted from pool 500.
[0031] exist Figure 6B , the position of object 602 has been estimated based on the optical flow of the interest points of object 602. Object 608 has been detected in the current frame with a detection confidence score of 0.3 (a medium detection confidence score), and object 610 has been detected in the current frame with a detection confidence score of 0.4 (a medium or good detection confidence score). There is no overlap between object 602 and object 610, and the IoU of object 602 and object 608 is less than the overlap threshold. Therefore, object propagation circuit 108 will not propagate object 602 in the current video frame, and object 602 can be deleted from pool 500.
[0032] exist Figure 6C , the position of object 602 has been estimated based on the optical flow of the interest points of object 602. Object 612 has been detected in the current frame with a detection confidence score of 0.3 (a medium detection confidence score), and object 614 has been detected in the current frame with a detection confidence score of 0.4 (a medium or good detection confidence score). Object 602 overlaps with both object 612 and object 614. The IoU of object 602 and object 614 is less than the overlap threshold, and therefore the propagation of object 602 will not be triggered. The IoU of object 602 and object 612 exceeds the overlap threshold. Based on the overlap of objects 602 and 612, the object propagation circuit 108 propagates object 602 in the current video frame, and object 602 remains in the pool 500.
[0033] In an embodiment of the object propagation circuit 108, if in the current video frame, an object in the pool 500 is propagated and detected by the object detection circuit 106, the optical flow-based object propagation may result in multiple detections of the same object. The object propagation circuit 108 applies a conditional non-maximum suppression (NMS) operation to avoid such multiple detections. If the overlap of two instances of an object is above a predetermined threshold (e.g., 0.5), the conditional NMS suppresses the older of the two instances of the object, regardless of the detection confidence scores of the two detected objects. In the object propagation circuit 108, the optical flow-based propagated object will always be older than the newly detected object and will always be suppressed in favor of the newly detected object.
[0034] Fig. 7A and Figure 7B FIG. 4 shows the suppression of objects propagated by optical flow based on conditional NMS according to the present specification. Fig. 7A , propagated object 702 has a detection confidence score of 0.6, and the newly detected instance of object 704 has a detection confidence score of 0.8. Because object 702 is older than object 704, object propagation circuitry 108 applies conditional NMS to suppress object 702, and object 702 may be removed from pool 500. Under these conditions, conditional NMS produces the same results as NMS that relies on the detection confidence score to select which object instance to suppress.
[0035] exist Figure 7B , propagated object 710 has a detection confidence score of 0.8, and the newly detected instance of object 708 has a detection confidence score of 0.6. Object propagation circuitry 108 applies conditional NMS to suppress object 710. Although the detection confidence score of object 708 is lower than the detection confidence score of object 710, object 710 is older than object 708, which causes object propagation circuitry 108 to suppress object 710 in favor of object 708, and object 710 may be deleted from pool 500. Under these conditions, conditional NMS produces different results than NMS that relies on the detection confidence score to select which object instance to suppress.
[0036] return Figure 2 In block 214 , the object propagation circuit 108 removes objects from the pool 500 whose life time has expired or whose overlap with the newly detected object does not reach at least a predetermined IoU threshold amount.
[0037] Figure 8An example of a SoC 800 is shown, which is an implementation of the processor video processor 104. The SoC 800 includes one or more general purpose processor (GPP) cores 802, one or more digital signal processor (DSP) cores 806, one or more vision processor cores 812, and one or more processing accelerator cores 804 coupled via a high-speed interconnect 820. The processing accelerator cores 804 include several hardware accelerators that are configured to perform various processing operations on incoming images received from the camera 102. The vision processor core 812 is a vector processor tuned for computer vision processing (such as gradient calculation, orientation merging, histogram normalization, etc.). Such computer vision processing can use the pre-processed output of the processing accelerator 804. The GPP core 802 hosts an operating system and provides overall control of the operation of the SoC 800, including scheduling pre-processing tasks performed by 804. The DSP core 806 provides support for computer vision processing (such as object detection and classification, object propagation, etc.).
[0038] SoC 800 also includes a DMA controller 816, a camera interface 818, a display management component 810, an on-chip random access memory (RAM) 814 (e.g., a computer-readable medium), and various input / output (I / O) peripherals 822, all of which are coupled to processor cores 802, 804, 806, and 812 via a high-speed interconnect 820. In addition, some embodiments of SoC 800 for automotive applications include a safety component 824 that includes safety-related functions to enable compliance with automotive safety requirements. Such functions may include CRC (cyclic redundancy check) on data, clock comparators for drift detection, error signals, windowed watchdog timers, and support for self-testing of the SoC 800 for damage and failures.
[0039] Modifications may be made in the described embodiments, and other embodiments are possible, within the scope of the claims.
Claims
1. A video processor, comprising: an object detection circuit configured to detect an object in a first video frame; as well as An object propagation circuit configured to: selecting a first interest point of the object from a first set of interest points based on a first optical flow associated with the first interest point of the object, the first interest point being disposed in a first interest region located at a first corner of a box surrounding the object; selecting a second interest point of the object from a second set of interest points based on a second optical flow associated with a second interest point of the object, the second interest point being disposed in a second interest region located at a second corner of the frame surrounding the object, wherein the second corner is diagonally opposite to the first corner; as well as The position of the object in the second video frame is estimated by determining the position of the first interest point in the second video frame based on the first optical flow and determining the position of the second interest point in the second video frame based on the second optical flow.
2. The video processor of claim 1 , wherein the object propagation circuit is configured to: identifying a plurality of points of interest in the first area of interest; determining whether each of the interest points is part of the object; and One of the interest points that is determined to be a part of the object and has a minimum distance to the first corner is selected as the first interest point.
3. The video processor of claim 1 , wherein the object propagation circuit is configured to: identifying a plurality of points of interest in the first area of interest; determining the optical flow of each of the interest points; and Based on the optical flows of the interest points, one of the interest points is selected as the first interest point.
4. The video processor of claim 1 , wherein the object propagation circuit is configured to: Maintaining a pool of objects to propagate; and Each object in the pool is assigned a life time value during which the position of the object is estimated in each video frame. 5 . The video processor of claim 4 , wherein the object propagation circuit is configured to add the detected object to the pool based on a detection confidence value assigned to the detected object exceeding a first threshold.
6. A video processor according to claim 4, wherein the object propagation circuit is configured to remove the detected object from the pool based on the overlap of the detected object at the estimated position of the object detected in a given video frame with a second object detected in the given video frame being less than a predetermined overlap threshold.
7. A video processor according to claim 1, wherein the object is a first object, and the object propagation circuit is configured to suppress the first object at an estimated position of the first object in the second video frame in response to an object detected in the second video frame overlapping the object by at least a predetermined amount; wherein a detection confidence score of the object detected in the second video frame is lower than a detection confidence score of the first object.
8. A method for video object detection, comprising: detecting an object in a first video frame; selecting a first interest point of the object from a first set of interest points based on a first optical flow associated with the first interest point of the object, the first interest point being disposed in a first interest region located at a first corner of a box surrounding the object; selecting a second interest point of the object from a second set of interest points based on a second optical flow associated with a second interest point of the object, the second interest point being disposed in a second interest region located at a second corner of the frame surrounding the object, wherein the second corner is diagonally opposite to the first corner; as well as The position of the object in the second video frame is estimated by determining the position of the first interest point in the second video frame based on the first optical flow and determining the position of the second interest point in the second video frame based on the second optical flow.
9. The method according to claim 8, further comprising: identifying a plurality of points of interest in the first area of interest; determining whether each of the interest points is part of the object; and One of the interest points that is determined to be a part of the object and has a minimum distance to the first corner is selected as the first interest point.
10. The method according to claim 8, further comprising: identifying a plurality of points of interest in the first area of interest; determining an optical flow for each of the interest points; and Based on the optical flows of the interest points, one of the interest points is selected as the first interest point.
11. The method according to claim 8, further comprising: A pool of objects to be propagated is maintained; and each object in the pool is assigned a life time value during which a position of the object is estimated in each video frame.
12. The method according to claim 11, further comprising: The detected object is added to the pool based on a detection confidence value assigned to the detected object exceeding a first threshold.
13. The method according to claim 11, further comprising: The detected object is deleted from the pool based on an overlap of the detected object at its estimated position in a given video frame with a second object detected in the given video frame being less than a predetermined overlap threshold.
14. The method of claim 8, wherein the object is a first object, and the method further comprises: Suppressing the first object at an estimated position of the first object in the second video frame in response to an object detected in the second video frame overlapping the object by at least a predetermined amount; wherein a detection confidence score of the object detected in the second video frame is lower than a detection confidence score of the first object.
15. A video system comprising: a camera configured to capture images of an operating environment; a video processor coupled to the camera, the video processor being configured to: receiving a video frame from the camera; detecting an object in a first video frame of the video frames; defining a box surrounding the object; defining a first region of interest at a first corner of the frame; identifying a first plurality of points of interest in the first area of interest; selecting a first point of interest from the first plurality of points of interest based on a first optical flow associated with the first point of interest of the object; defining a second region of interest at a second corner of the frame, wherein the second corner is diagonally opposite the first corner; identifying a second plurality of points of interest in the second area of interest; selecting a second point of interest from the second plurality of points of interest based on a second optical flow associated with a second point of interest of the object; as well as The position of the object in the second video frame is estimated by determining the position of the first interest point in the second video frame based on the first optical flow and determining the position of the second interest point in the second video frame based on the second optical flow.
16. The video system of claim 15, wherein the video processor is configured to: determining whether each of the first plurality of interest points is part of the object by performing an epipolar check; and selecting, as the first interest point, an interest point among the first plurality of interest points that is part of the object and has a minimum distance to the first corner of the frame; determining whether each of the second plurality of interest points is part of the object by performing an epipolar check; and An interest point among the second plurality of interest points that is part of the object and has a minimum distance to the second corner of the frame is selected as the second interest point.
17. A video system according to claim 15, wherein the video processor is configured to: maintain a pool of objects to be propagated; and assign a life time value to each object in the pool, during which the position of the object is estimated in each video frame.
18. The video system of claim 17, wherein the video processor is configured to add the detected object to the pool based on a detection confidence value assigned to the detected object exceeding a first threshold.
19. A video system according to claim 17, wherein the video processor is configured to remove the detected object from the pool based on the overlap of the detected object at the estimated position of the object detected in a given video frame with a second object detected in the given video frame being less than a predetermined overlap threshold.
20. A video system according to claim 15, wherein the object is a first object, and the video processor is configured to suppress the first object at an estimated position of the first object in the second video frame in response to a second object detected in the second video frame overlapping the first object by at least a predetermined amount; wherein a detection confidence score of the object detected in the second video frame is lower than a detection confidence score of the first object.
Citation Information
Patent Citations
Traffic flow statistic and violation detection method based on surveillance video processing
CN103116987A