[go: up one dir, main page]

WO2014182156A1 - A system and method for detecting an object - Google Patents

A system and method for detecting an object Download PDF

Info

Publication number
WO2014182156A1
WO2014182156A1 PCT/MY2014/000083 MY2014000083W WO2014182156A1 WO 2014182156 A1 WO2014182156 A1 WO 2014182156A1 MY 2014000083 W MY2014000083 W MY 2014000083W WO 2014182156 A1 WO2014182156 A1 WO 2014182156A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
image blocks
priority level
blocks
size
Prior art date
Application number
PCT/MY2014/000083
Other languages
French (fr)
Inventor
Binti Mohd Tahir Shahirina
Kandasamy A/L Karuppiah Ettikan
Peng Shen Ong
Yoong Choon Chang
Chee Pun Ooi
Original Assignee
Mimos Berhad
Multimedia University
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 Mimos Berhad, Multimedia University filed Critical Mimos Berhad
Publication of WO2014182156A1 publication Critical patent/WO2014182156A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/254Analysis of motion involving subtraction of images
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30232Surveillance

Definitions

  • the present invention relates to a system and method for image processing. More particularly, the present invention relates to a system and method for detecting an object in a video by predicting motion of the object.
  • moving object detection and tracking are used for visual based fall detection, intrusion detection, traffic monitoring, vehicle navigation, and etc.
  • moving object detection and tracking requires large amount of computation resources to check all pixels in current and previous video frames to determine motion of an object.
  • Such computation resources need to compute correlation or convolution on the video frames at high resolution.
  • processing time of the object detection is closely related to the computation resources, wherein a slower computation resources cause a delay in detecting and tracking the object as the computation resources needs to sequentially compute one frame at a time. This is not viable for detecting and tracking a moving object in real time.
  • US Patent Publication No. 2009/0245586 discloses an image processing apparatus and method for real-time motion detection, wherein motion information of currently input image is extracted and processed in real time using a hardware based method rather than a software based method.
  • the image processing method includes receiving and sub-sampling a current image and a plurality of previous images, performing census transform on each of the sub- sampled images to obtain a census vector, calculating and comparing correlation values between the current image and the plurality of previous images based on the census vector and detecting a region having highest correlation, and tracking positions of pixels corresponding to the region having the highest correlation to detect motion information in the images.
  • Such apparatus and method may still present a delay in continuously tracking and detecting moving object as it needs to process one frame and correlate it with the previous frames before processing the next frame. There is also a risk of losing critical details in the images as the images have to be sub-sampled before further processing. Besides that, as every single pixel needs to be processed, the resources and power of the apparatus may not be efficiently utilized especially when there is minimal motion of the object detected.
  • the present invention provides to a system (1000) for detecting an object.
  • the system (1000) comprises an image acquisition module (1100) for acquiring video frames, a buffering module (1200) for temporarily storing the video frames, a preprocessor (1300) for performing pre-processing functions on the video frames, a main processor (1600) for performing foreground detection, foreground grouping, morphological process and noise filtering, and an object feature extracting module (1700) for extracting features of the object.
  • the system (1000) is characterised in that it further includes an image sub-segmenting module (1400) for dividing a frame into multiple image blocks of equal size by using predicted information; an image sub-segment module (1500) for selecting the image blocks to be processed by the main processor (1600) and labelling each selected image block with a priority level to define the sequence of processing; a predictive module (1800) for estimating size and location of the object for the following frame based on features of the object retrieved; and an object and priority evaluator (1900) for adjusting priority level of the selected image block.
  • an image sub-segmenting module (1400) for dividing a frame into multiple image blocks of equal size by using predicted information
  • an image sub-segment module (1500) for selecting the image blocks to be processed by the main processor (1600) and labelling each selected image block with a priority level to define the sequence of processing
  • a predictive module (1800) for estimating size and location of the object for the following frame based on features of the object retrieved
  • the image sub-segmenting module (1400) includes a sub-segment size calculator (1410) for determining the size of each block; and an image divider (1420) for dividing a frame into multiple blocks based on the size determined by the sub-segment size calculator (1410).
  • the image sub-segment selecting module (1500) includes an image blocks identifying and prioritizing unit (1510) for identifying the image blocks having border regions and interior regions and labelling the identified blocks with priority level; an object appearance blocks identifier (1520) for selecting the image blocks based on the predicted information; and an image overlapped checker (1530) for removing duplicated image blocks selected by the image blocks identifying and prioritizing unit (1510) and the object appearance blocks identifier (1520).
  • the image blocks identifying and prioritizing unit (1510) further includes a border blocks identifier (1511) for identifying image blocks having border regions; an interior block identifier (1512) for identifying image blocks having interior regions; and an image blocks priority labeller (1513) for labelling a priority level for each identified image blocks based on priority level for each region as determined by the object frequency and priority evaluator (1900).
  • the object frequency and priority evaluator (1900) comprises an object entry counter (1910) for determining frequency of an object entering into the video frames through each border region; and a region priority labelling unit (1920) for adjusting the priority level for each border region.
  • the present invention also provides a method for detecting an object.
  • the method is characterised by the steps of acquiring video frames; performing a series of image pre-processing functions; buffering the pre-processed video frames; performing pre-processing functions to the buffered video frames; retrieving user defined parameters and system parameters, wherein the user defined parameters relates to information of the border and interior regions in the frames and the system parameters relates to information on the available resources of a system; dividing each frame into multiple image blocks of equal size by using predicted information; selecting the image blocks to be processed, wherein each selected block is labelled with a priority level to define the sequence of processing; performing foreground detection, foreground grouping, morphological process and noise filtering on each selected image block in sequence as defined by its priority level; extracting features of the object in each selected image block; adjusting the priority level of the selected image blocks; and estimating size and location of the object for the following frame based on features of the object retrieved from a current frame.
  • the step of dividing each frame into multiple image blocks includes retrieving the system parameter values and predicted information; determining the size of each image block; retrieving a frame; and dividing the frame into multiple image blocks based on the determined size.
  • the step of determining the size of each image block suitably includes determining maximum block size based on the allocated memory for each processing element; determining minimum block size based on video resolution and the object size; and determining an optimum block size based on number of processing elements.
  • the step of selecting the image blocks includes performing selection based on user defined regions and predicted information; and combining the selected image blocks and removing duplicated selection of image blocks based on user defined regions and predicted information.
  • the step of performing selection based on user defined regions further includes retrieving the image blocks, border region information, and interior region information; identifying the image blocks having the border regions; identifying the image blocks having the interior regions; retrieving the priority level for each region; and labelling the priority level for each identified image blocks based on the priority level for each region.
  • the step of performing selection based on predicted information further includes retrieving predicted information; and selecting the image blocks based on the predicted information, wherein the selected image blocks have the highest possibility to locate the object of interest based on the predicted information.
  • the step of adjusting the priority level of the selected image blocks includes determining whether the system (1000) is running for the first time and whether the system (1000) has been reset; retrieving pre-defined priority level for each region if the system (1000) is running for the first time or the system (1000) has been reset; determining whether an object has been detected; retrieving previously defined priority level if there is no object detected; retrieving features of the object if an object has been detected; retrieving information relating to the border regions and interior regions; identifying the region from which the object entered into the frame based on its location information; increasing count value for the identified region by one; determining the region with the highest number of object entered; reducing priority level of all regions having a priority level higher than the identified region by one; and setting the priority level of the identified region to the highest priority level.
  • FIG. 1 shows a block diagram of a system (1000) for detecting an object according to an embodiment of the present invention.
  • FIG. 2 shows a block diagram of an image sub-segmenting module (1400) of the system (1000) of FIG. 1.
  • FIG. 3 shows a block diagram of an image sub-segment selecting module (1500) of the system (1000) of FIG. 1.
  • FIG. 4 shows a block diagram of an object frequency and priority evaluator (1900) of the system (1000) of FIG. 1.
  • FIGS. 5(a-b) show exemplary video frames of an object detected by the system (1000) of FIG. 1.
  • FIGS. 6(a-b) show exemplary video frames of an object entering the video frames.
  • FIG. 7 shows a block diagram of a surveillance system (2000) integrated with the system (1000) of FIG. 1.
  • FIG. 8 shows a flowchart of a method for detecting an object according to an embodiment of the present invention.
  • FIG. 9 shows a flowchart of sub-steps of segmenting a frame into multiple blocks of the method of FIG. 8.
  • FIG. 10 shows a flowchart of sub-steps of selecting image blocks of the method of FIG. 8.
  • FIG. 11(a-b) show flowcharts of sub-steps of adjusting the priority level of the selected image blocks of the method of FIG. 8.
  • FIG. 1 there is shown a system (1000) for detecting an object according to an embodiment of the present invention.
  • the system (1000) provides a fast detection of a moving object in a video.
  • the system (1000) reduces the amount of computations needed in detecting and tracking the moving object by predicting the motion of the object in the following frames.
  • the system (1000) is able to focus on computing a portion of the frame where the object has been predicted to be in.
  • the system (1000) comprises of an image acquisition module (1100), a buffering module (1200), a pre-processor (1300), an image sub-segmenting module (1400), an image sub-segment selecting module (1500), a main processor (1600), an object feature extracting module (1700), a predictive module (1800) and an object and priority evaluator (1900).
  • the image acquisition module (1100) is used to acquire video frames from either an imaging sensor or a multi-port memory. Moreover, the image acquisition module (1100) is used to conduct a series of image pre-processing functions such as, but not limited to data format conversion, high-pass or low-pass filtering, white balancing, contrast adjustment and/or any other functions known in the art to enhance the image data of the video frames.
  • image pre-processing functions such as, but not limited to data format conversion, high-pass or low-pass filtering, white balancing, contrast adjustment and/or any other functions known in the art to enhance the image data of the video frames.
  • the buffering module (1200) is used to temporarily store the video frames from the image acquisition module (1100) for processing.
  • the buffering module (1200) includes one or more banks of memory for temporarily storing the frames.
  • the buffering module is connected to the image acquisition module (1100) and the preprocessor (1300).
  • the pre-processor (1300) is used perform pre-processing functions to the frames extracted from the buffering module (1200).
  • Such pre-processing functions can either be the same image pre-processing functions as conducted by the image acquisition module (1100), or a partial of the image pre-processing functions as conducted by the image acquisition module (1100), or totally different functions from the image pre-processing functions conducted by the image acquisition module (1100) such as image conversion, image smoothing, edge detection and edge enhancement.
  • the image sub-segmenting module (1400) is used to divide a frame into multiple blocks of equal size by using predicted information provided by the predictive module (1800).
  • the frame is equally divided into multiple blocks so that each processing element (PE) of the main processor (1600) receives the same amount of data and thus, each PE would require similar processing time which reduces the need for synchronization between each PE.
  • the size of each block in a frame is similar, the size of each block in one frame may be differ from the size of each block in another frame as the size of each block depends on the predicted information for each frame.
  • the image sub-segmenting module (1400) is connected to the pre-processor (1300), the predictive module (1800) and the image sub- segment selecting module (1500).
  • the image sub-segmenting module (1400) includes a sub-segment size calculator (1410) and an image divider (1420).
  • the sub-segment size calculator (1410) is used to determine the size of each block so that the minimum number image blocks are able to cover the object detection and to reduce number of PEs required to process the image blocks.
  • the size of each block is determined based on system parameters such as image resolution and allocated memory size for each PE and predicted information such as the object's size and location.
  • the maximum block size is determined based on the allocated memory for each PE; the minimum block size is determined based on the video resolution and detected object size; and the optimum size is determined based on the number of PEs and the value is expected to be in between the minimum and maximum block size.
  • the image divider (1420) is used to retrieve a frame and divide the frame into multiple blocks having the size determined by the sub-segment size calculator (1410).
  • FIGS. 5(a-b) show exemplary video frames segmented into image blocks. In FIG. 5a, an object is covered by four image blocks whereas the object in FIG. 5b is covered by only one image block.
  • each block is wisely calculated based on the size and location of the object, the amount of data required to detect the object can be minimized. For instance, the size of each image sub- blocks (30) of FIG. 5a can be made smaller so that despite more image blocks are needed to cover the object, each sub-block actually consists of less data and the total amount of data needed to cover the object can be reduced.
  • the image sub-segment selecting module (1500) is used to select the blocks to be processed by the main processor (1600) with the objective of reducing the redundancy of the image data. Each selected block is labelled with a priority level to define the sequence of processing. As shown in FIG. 3, the image sub-segment selecting module (1500) comprises of an image blocks identifying and prioritizing unit (1510), an object appearance blocks identifier (1520), and an image overlapped checker (1530).
  • each frame there are two different types of regions which include border regions and interior regions.
  • the border regions cover the border of the scene and possess high possibility of an object entering the scene captured by the frames.
  • the interior regions cover the entry point location within the frames such as doors, windows, lifts and etc.
  • the frame has four border regions (10a, 10b, 10c, and 10d) while another frame as shown in FIG. 6b has one interior region (20) which is the location of a door within the frame.
  • the border and interior regions are subjective to changes depending on the field of view of the imaging sensor capturing the frames.
  • the border regions in FIG. 6a can be the left and top borders (10a, 10b) only.
  • the image blocks identifying and prioritizing unit (1510) is used to identify the blocks in the frame that contain the border regions and interior regions and also to label those identified blocks with priority level.
  • the image blocks identifying and prioritizing unit (1510) further includes a border blocks identifier (1511), an interior block identifier (1512) and an image blocks priority labeller (1513).
  • the border blocks identifier (1511) is used to identify the blocks that contain the border regions. For instance, with reference to FIG. 5a, image blocks 30a, 30b, 30c, 30d and 30e are identified as containing the border regions, wherein the border regions are left and top borders (10a, 10b) only.
  • the interior blocks identifier (1512) is used to identify the image blocks that contain the interior regions. For instance, with reference to FIG.
  • block 30f is identified as containing an interior region (20). Based on the identified blocks from the border blocks identifier (1511) and the interior block identifier (1512), the image blocks priority labeller (1513) retrieves and labels the priority level based on the priority level for each region as determined by the object frequency and priority evaluator (1900).
  • the object appearance blocks identifier (1520) is used to select blocks based on the predicted information provided by the predictive module (1800).
  • the object appearance blocks identifier (1520) maps the predicted location of a moving object to the image blocks of the current frame and thereon, selects the image blocks having the predicted location of the moving object.
  • the selected image blocks should have the highest possibility to locate the object of interest based on the predicted information.
  • the image overlapped checker (1530) is used to find and remove duplicated image blocks selected by both image blocks identifying and prioritizing unit (1510) and object appearance blocks identifier (1520). In particular, if the image blocks identifying and prioritizing unit (1510) and the object appearance blocks identifier (1520) select the same image block, the image overlapped checker (1530) eliminates the duplication of the selected image block by removing the image block selected by either the image blocks identifying and prioritizing unit (1510) or the object appearance blocks identifier (1520) while retaining the selected image block from the other.
  • the main processor ( 600) includes multiple processing elements or PEs (not shown), wherein the processing element are configured to perform foreground detection, foreground grouping, morphological process, noise filtering and/or any other image processing functions on the selected image blocks as defined by its priority level.
  • the processing element performs the image processing functions in parallel, wherein one processing element performs image processing function on one selected image block while another processing element image processing function performs on another selected image block at the same time.
  • the processing elements are created by routing configurable logics to perform the image processing functions.
  • the main processor (1600) is connected to the image sub-segment selecting module (1500) and the object feature extracting module (1700).
  • the object feature extracting module (1700) is used to detect moving objects in each selected image block and thereon, extract features of each moving object detected.
  • the extracted features include centre of mass, width, height, and the number of pixels covered, spatial coordinates and any other information which could be useful in representing the object. Those features are stored in a memory.
  • the predictive module (1800) is configured to estimate size and location of the object for the following frame based on features of the object retrieved from the current frame by the object feature extracting module (1700).
  • the features retrieved from the current frame include size, location, trajectory and etc.
  • the predictive module (1800) is connected to the image sub-segmenting module (1400), the image sub-segment selecting module (1500) and the object feature extracting module (1700).
  • the object frequency and priority evaluator (1900) is used to adjust the priority level of the selected image block.
  • the object frequency and priority evaluator (1900) is connected to the object feature extracting module (1700) and the image sub-segment selecting module (1500).
  • the object frequency and priority evaluator (1900) comprises an object entry counter (1910) and a region priority labelling unit (1920).
  • the object entry counter (1910) is used to determine the frequency of an object entering into the frames through each border region. For instance, by referring to FIG. 6a, if an object enters into the frames through a first border region (10a), the object entry counter (1910) increases the count value for the first border region (10a) by one. If the count value exceeds a predefined threshold, the count value is reset to a new value with their combination preserving the current priority arrangement of each region. This is to avoid the counter values from overflowing due to the limited number of bits allocated.
  • the region priority labelling unit (1920) is used to adjust the priority level for each border region.
  • the priority level for each border region is initially predefined based on any algorithm known in the art or any random number generation.
  • the region priority labelling unit (1920) adjusts the predefined priority level of each border region based on the frequency of objects entering from each border region of the frames. As an example, by referring to FIG. 6a, if the first border region (10a) has the highest number of objects entering into the frames, the first border region (10a) is set to the highest priority level, whereas the other border regions (10b, 10c, 10d) that have a higher predefined priority level than the first border region (10a) is reduced by one. Referring now to FIG. 7, there is shown an exemplary implementation of the system (1000) of FIG.
  • the surveillance system (2000) comprises of a user input module (2100) for manually configure the surveillance system (2000); a power sensor (2200) to monitor the power status of the surveillance system (2000); an image sensor (2300) to capture a video of a scene; a processor (2400) to coordinate the processes of each component in the surveillance system (2000); a reconfigurable hardware (2500) to conduct the image processing; a display (2600) to view the results; a configuration file storage (2700) to store a hardware configuration file which includes logic configurations, number of processing elements, allocated memories for each PE, pre-initialized values and etc.; a multi-port memory (2800) to store image data and to serve as a shared memory among the operating components.
  • a user input module for manually configure the surveillance system (2000)
  • a power sensor (2200) to monitor the power status of the surveillance system (2000)
  • an image sensor (2300) to capture a video of a scene
  • a processor (2400) to coordinate the processes of each component in the surveillance system (2000)
  • the system (1000) of FIG. 1 is integrated in the reconfigurable hardware (2500).
  • the system (1000) retrieves video frames from either the image sensor (2300) or the multi-port memory (2800), and the hardware configuration file from the configuration file storage (2700). Thereon, the system (1000) performs object detection and tracking on the retrieved frames and outputs the results on the display (2600).
  • the image acquisition module (1100) acquires video frames.
  • the image acquisition module (1100) also performs a series of image pre-processing functions such as, but not limited to data format conversion, high-pass or low-pass filtering, white balancing, contrast adjustment and/or any other functions known in the art to enhance the image data of the video frames.
  • the video frames are then buffered by the buffering module (1200).
  • the pre-processor (1300) performs pre-processing functions to the frames extracted from the buffering module (1200).
  • Such pre-processing functions can either be the same image pre-processing functions as conducted by the image acquisition module (1100), or a partial of the image pre-processing functions as conducted by the image acquisition module (1100), or totally different functions from the image pre-processing functions as conducted by the image acquisition module ( 100).
  • user defined parameters and system parameters are retrieved, wherein the user defined parameters relates to information of the border and interior regions in the frames while the system parameters relates to information on the available resources of the system such as the memory capacity, image resolution, number of PEs and etc.
  • the image sub-segmenting module (1400) divides each frame into multiple blocks of equal size by using predicted information provided by the predictive module (1800). Although the size of each block in a frame is similar, the size of each block in one frame may be differ from the size of each block in another frame as the size of each block depends on the predicted information for each frame.
  • the sub-steps of dividing each frame into multiple blocks are shown in FIG. 9. The sub-steps are initiated by retrieving the system parameter values such as the image resolution and allocated memory size for each processing element and retrieving predicted information such as the object size and location as in sub-step 202.
  • the sub-segment size calculator (1410) determines the size of each block by determining maximum block size based on the allocated memory for each PE, determining the detected object size and the minimum block size based on the video resolution, and determining the optimum size based on the number of PEs.
  • the optimum size block is in between the minimum and maximum block size and it is stored in the memory as in sub-step 206.
  • the sub-segment size calculator (1410) determines the maximum block size by dividing the frame into 4 image blocks with 76,800 pixels for each block, wherein each block would occupy 614,400 bits of memory in each PE as it is a grayscale image (8 bits per pixel).
  • the system (1000) must not occupy all memory in each PE as other processes may occupy the memory.
  • the sub-segment size calculator (1410) determines the detected object size which is 200 pixels in width (0.3125 of total width) and 300 pixels in height (0.625 of total height).
  • the sub- segment size calculator (1410) also determines the minimum block size by dividing into 16 image blocks with 19,200 pixels for each block, wherein each block would occupy 153,600 bits of memory in each PE. This is determined to be the optimal minimum size of the image block as any size smaller causes heavy work load in stitching the detected object since the object is large. Based on the determined maximum and minimum block sizes, the sub-segment size calculator (1410) determines the optimum size block to be 160 by 120 pixels so that all PEs are occupied and thus, increases the speed for image processing. Based on the optimum size block, the image divider (1420) retrieves a frame and divides the frame into multiple image blocks as in sub-steps 208 and 210. The image blocks are then stored in the memory as in sub-step 212.
  • the image sub-segment selecting module (1500) selects the image blocks to be processed by the main processor (1600). Each selected block is labelled with a priority level to define the sequence of processing.
  • FIG. 10 there is shown the sub-steps of selecting the image blocks.
  • the selection of image blocks is done by performing selection based on user defined regions (sub- steps 402 to 414) and selection based on predicted information (sub-steps 304 to 306) concurrently.
  • the selection based on predicted information is initiated with the object appearance blocks identifier (1520) retrieves the predicted information from the predictive module (1800) and thereon, the object appearance blocks identifier (1520) selects image blocks based on the predicted information as in sub-steps 304 and 306.
  • the selected image blocks should have the highest possibility to locate the object of interest based on the predicted information.
  • the selection based on user defined regions is initiated with the image blocks identifying and prioritizing unit (1510) retrieves the image blocks, border region information, and interior region information as in sub-steps 402 to 404,.
  • the border blocks identifier (1511) identifies the blocks with the border regions
  • the interior blocks identifier (1512) identifies the blocks with the interior regions.
  • the image blocks priority labeller (1513) retrieves and labels the priority level based on the priority level for each region as determined by the object frequency and priority evaluator (1900) as in sub-steps 412 and 414.
  • the image overlapped checker (1530) combines the selected image blocks and removes overlapping image blocks as in step 308.
  • the main processor (1600) performs foreground detection, foreground grouping, morphological process and noise filtering on each selected image block in sequence as defined by its priority level.
  • the object feature extracting module (1700) extracts features of the object in each selected image block.
  • the extracted features include centre of mass, width, height, and the number of pixels covered, spatial coordinates and any other information which could be useful in representing the object. Those features are stored in a memory.
  • the object frequency and priority evaluator (1900) adjusts the priority level of the selected image blocks.
  • FIGS. 11(a-b) show the sub-steps of adjusting the priority level of the selected image blocks.
  • the object frequency and priority evaluator (1900) initially determines whether the system (1000) is running for the first time and also whether the system (1000) has been reset. If the system (1000) is running for the first time or the system (1000) has been reset, the region priority labelling unit (1920) retrieves the pre-defined priority level for each region (decision 502 and sub-step 520). Otherwise, the object frequency and priority evaluator (1900) determines whether an object has been detected.
  • the region priority labelling unit (1920) retrieves the previously defined priority level (decision 504 and sub-step 518). However, if an object has been detected, the object entry counter (1910) retrieves the features of the object as extracted by the object feature extracting unit (1700) as in decision 504 and sub-step 506. Thereon, the information relating to the border regions and interior regions are retrieved as in sub-step 508. In sub-step 510, the object entry counter (1910) locates from which region the object entered into the frame based on its location information. Once the region has been identified, the object entry counter (1910) increases the count value for that particular region by one as in sub-step 512.
  • the region priority labelling unit (1920) adjusts the priority level of each region based on the counter value of each region as shown by the flowchart in FIG. 11 b. Referring to FIG. 11 b, as in sub-step 602, the region priority labelling unit (1920) determines the region with the highest number of object entered. Thereon, as in sub-step 604, the region priority labelling unit (1920) reduces priority level of all regions having a priority level higher than the region identified by the object entry counter (1910) by one.
  • the priority level of the identified region is then set to the highest priority level by the region priority labelling unit (1920) as in sub-step 606.
  • the predictive module (1800) estimates size and location of the object for the following frame based on features of the object retrieved from the current frame.
  • the features retrieved from the current frame include size, location, trajectory and etc. If no object has been detected, default information of the object is retrieved.

Landscapes

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

Abstract

The present invention relates to a system and method for detecting an object. The system and method reduce the amount of computations needed in detecting and tracking the moving object by predicting the motion of the object in the following frames. Thus, the system (1000) is able to focus on computing a portion of the frame where the object has been predicted to be in. The system (1000) comprises of an image acquisition module (1100), a buffering module (1200), a pre-processor (1300), an image sub-segmenting module (1400), an image sub-segment module (1500), a main processor (1600), an object feature extracting module (1700), a predictive module (1800) and an object and priority evaluator (1900).

Description

A SYSTEM AND METHOD FOR DETECTING AN OBJECT
FIELD OF INVENTION
The present invention relates to a system and method for image processing. More particularly, the present invention relates to a system and method for detecting an object in a video by predicting motion of the object.
BACKGROUND OF THE INVENTION
In video monitoring systems, moving object detection and tracking are used for visual based fall detection, intrusion detection, traffic monitoring, vehicle navigation, and etc. However, moving object detection and tracking requires large amount of computation resources to check all pixels in current and previous video frames to determine motion of an object. Such computation resources need to compute correlation or convolution on the video frames at high resolution.
Moreover, processing time of the object detection is closely related to the computation resources, wherein a slower computation resources cause a delay in detecting and tracking the object as the computation resources needs to sequentially compute one frame at a time. This is not viable for detecting and tracking a moving object in real time.
In regard to this, US Patent Publication No. 2009/0245586 discloses an image processing apparatus and method for real-time motion detection, wherein motion information of currently input image is extracted and processed in real time using a hardware based method rather than a software based method. The image processing method includes receiving and sub-sampling a current image and a plurality of previous images, performing census transform on each of the sub- sampled images to obtain a census vector, calculating and comparing correlation values between the current image and the plurality of previous images based on the census vector and detecting a region having highest correlation, and tracking positions of pixels corresponding to the region having the highest correlation to detect motion information in the images.
However, such apparatus and method may still present a delay in continuously tracking and detecting moving object as it needs to process one frame and correlate it with the previous frames before processing the next frame. There is also a risk of losing critical details in the images as the images have to be sub-sampled before further processing. Besides that, as every single pixel needs to be processed, the resources and power of the apparatus may not be efficiently utilized especially when there is minimal motion of the object detected.
Therefore, there is a need to provide a system and method for detecting an object that address the above mentioned drawbacks. SUMMARY OF INVENTION
The present invention provides to a system (1000) for detecting an object. The system (1000) comprises an image acquisition module (1100) for acquiring video frames, a buffering module (1200) for temporarily storing the video frames, a preprocessor (1300) for performing pre-processing functions on the video frames, a main processor (1600) for performing foreground detection, foreground grouping, morphological process and noise filtering, and an object feature extracting module (1700) for extracting features of the object. Moreover, the system (1000) is characterised in that it further includes an image sub-segmenting module (1400) for dividing a frame into multiple image blocks of equal size by using predicted information; an image sub-segment module (1500) for selecting the image blocks to be processed by the main processor (1600) and labelling each selected image block with a priority level to define the sequence of processing; a predictive module (1800) for estimating size and location of the object for the following frame based on features of the object retrieved; and an object and priority evaluator (1900) for adjusting priority level of the selected image block.
Preferably, the image sub-segmenting module (1400) includes a sub-segment size calculator (1410) for determining the size of each block; and an image divider (1420) for dividing a frame into multiple blocks based on the size determined by the sub-segment size calculator (1410).
Preferably, the image sub-segment selecting module (1500) includes an image blocks identifying and prioritizing unit (1510) for identifying the image blocks having border regions and interior regions and labelling the identified blocks with priority level; an object appearance blocks identifier (1520) for selecting the image blocks based on the predicted information; and an image overlapped checker (1530) for removing duplicated image blocks selected by the image blocks identifying and prioritizing unit (1510) and the object appearance blocks identifier (1520). Moreover, the image blocks identifying and prioritizing unit (1510) further includes a border blocks identifier (1511) for identifying image blocks having border regions; an interior block identifier (1512) for identifying image blocks having interior regions; and an image blocks priority labeller (1513) for labelling a priority level for each identified image blocks based on priority level for each region as determined by the object frequency and priority evaluator (1900).
Preferably, the object frequency and priority evaluator (1900) comprises an object entry counter (1910) for determining frequency of an object entering into the video frames through each border region; and a region priority labelling unit (1920) for adjusting the priority level for each border region.
The present invention also provides a method for detecting an object. The method is characterised by the steps of acquiring video frames; performing a series of image pre-processing functions; buffering the pre-processed video frames; performing pre-processing functions to the buffered video frames; retrieving user defined parameters and system parameters, wherein the user defined parameters relates to information of the border and interior regions in the frames and the system parameters relates to information on the available resources of a system; dividing each frame into multiple image blocks of equal size by using predicted information; selecting the image blocks to be processed, wherein each selected block is labelled with a priority level to define the sequence of processing; performing foreground detection, foreground grouping, morphological process and noise filtering on each selected image block in sequence as defined by its priority level; extracting features of the object in each selected image block; adjusting the priority level of the selected image blocks; and estimating size and location of the object for the following frame based on features of the object retrieved from a current frame.
Preferably, the step of dividing each frame into multiple image blocks includes retrieving the system parameter values and predicted information; determining the size of each image block; retrieving a frame; and dividing the frame into multiple image blocks based on the determined size. The step of determining the size of each image block suitably includes determining maximum block size based on the allocated memory for each processing element; determining minimum block size based on video resolution and the object size; and determining an optimum block size based on number of processing elements.
Preferably, the step of selecting the image blocks includes performing selection based on user defined regions and predicted information; and combining the selected image blocks and removing duplicated selection of image blocks based on user defined regions and predicted information. Moreover, the step of performing selection based on user defined regions further includes retrieving the image blocks, border region information, and interior region information; identifying the image blocks having the border regions; identifying the image blocks having the interior regions; retrieving the priority level for each region; and labelling the priority level for each identified image blocks based on the priority level for each region. Moreover, the step of performing selection based on predicted information further includes retrieving predicted information; and selecting the image blocks based on the predicted information, wherein the selected image blocks have the highest possibility to locate the object of interest based on the predicted information. Preferably, the step of adjusting the priority level of the selected image blocks includes determining whether the system (1000) is running for the first time and whether the system (1000) has been reset; retrieving pre-defined priority level for each region if the system (1000) is running for the first time or the system (1000) has been reset; determining whether an object has been detected; retrieving previously defined priority level if there is no object detected; retrieving features of the object if an object has been detected; retrieving information relating to the border regions and interior regions; identifying the region from which the object entered into the frame based on its location information; increasing count value for the identified region by one; determining the region with the highest number of object entered; reducing priority level of all regions having a priority level higher than the identified region by one; and setting the priority level of the identified region to the highest priority level. BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention.
FIG. 1 shows a block diagram of a system (1000) for detecting an object according to an embodiment of the present invention.
FIG. 2 shows a block diagram of an image sub-segmenting module (1400) of the system (1000) of FIG. 1.
FIG. 3 shows a block diagram of an image sub-segment selecting module (1500) of the system (1000) of FIG. 1. FIG. 4 shows a block diagram of an object frequency and priority evaluator (1900) of the system (1000) of FIG. 1.
FIGS. 5(a-b) show exemplary video frames of an object detected by the system (1000) of FIG. 1.
FIGS. 6(a-b) show exemplary video frames of an object entering the video frames.
FIG. 7 shows a block diagram of a surveillance system (2000) integrated with the system (1000) of FIG. 1.
FIG. 8 shows a flowchart of a method for detecting an object according to an embodiment of the present invention.
FIG. 9 shows a flowchart of sub-steps of segmenting a frame into multiple blocks of the method of FIG. 8.
FIG. 10 shows a flowchart of sub-steps of selecting image blocks of the method of FIG. 8. FIG. 11(a-b) show flowcharts of sub-steps of adjusting the priority level of the selected image blocks of the method of FIG. 8.
DESCRIPTION OF THE PREFFERED EMBODIMENT
A preferred embodiment of the present invention will be described herein below with reference to the accompanying drawings. In the following description, well known functions or constructions are not described in detail since they would obscure the description with unnecessary detail. Referring to FIG. 1 , there is shown a system (1000) for detecting an object according to an embodiment of the present invention. The system (1000) provides a fast detection of a moving object in a video. Moreover, the system (1000) reduces the amount of computations needed in detecting and tracking the moving object by predicting the motion of the object in the following frames. Thus, the system (1000) is able to focus on computing a portion of the frame where the object has been predicted to be in. The system (1000) comprises of an image acquisition module (1100), a buffering module (1200), a pre-processor (1300), an image sub-segmenting module (1400), an image sub-segment selecting module (1500), a main processor (1600), an object feature extracting module (1700), a predictive module (1800) and an object and priority evaluator (1900).
The image acquisition module (1100) is used to acquire video frames from either an imaging sensor or a multi-port memory. Moreover, the image acquisition module (1100) is used to conduct a series of image pre-processing functions such as, but not limited to data format conversion, high-pass or low-pass filtering, white balancing, contrast adjustment and/or any other functions known in the art to enhance the image data of the video frames.
The buffering module (1200) is used to temporarily store the video frames from the image acquisition module (1100) for processing. The buffering module (1200) includes one or more banks of memory for temporarily storing the frames. The buffering module is connected to the image acquisition module (1100) and the preprocessor (1300). The pre-processor (1300) is used perform pre-processing functions to the frames extracted from the buffering module (1200). Such pre-processing functions can either be the same image pre-processing functions as conducted by the image acquisition module (1100), or a partial of the image pre-processing functions as conducted by the image acquisition module (1100), or totally different functions from the image pre-processing functions conducted by the image acquisition module (1100) such as image conversion, image smoothing, edge detection and edge enhancement. The image sub-segmenting module (1400) is used to divide a frame into multiple blocks of equal size by using predicted information provided by the predictive module (1800). The frame is equally divided into multiple blocks so that each processing element (PE) of the main processor (1600) receives the same amount of data and thus, each PE would require similar processing time which reduces the need for synchronization between each PE. Although the size of each block in a frame is similar, the size of each block in one frame may be differ from the size of each block in another frame as the size of each block depends on the predicted information for each frame. The image sub-segmenting module (1400) is connected to the pre-processor (1300), the predictive module (1800) and the image sub- segment selecting module (1500).
As shown in FIG. 2, the image sub-segmenting module (1400) includes a sub-segment size calculator (1410) and an image divider (1420). The sub-segment size calculator (1410) is used to determine the size of each block so that the minimum number image blocks are able to cover the object detection and to reduce number of PEs required to process the image blocks. The size of each block is determined based on system parameters such as image resolution and allocated memory size for each PE and predicted information such as the object's size and location. At one circumstances, the maximum block size is determined based on the allocated memory for each PE; the minimum block size is determined based on the video resolution and detected object size; and the optimum size is determined based on the number of PEs and the value is expected to be in between the minimum and maximum block size. The image divider (1420) is used to retrieve a frame and divide the frame into multiple blocks having the size determined by the sub-segment size calculator (1410). FIGS. 5(a-b) show exemplary video frames segmented into image blocks. In FIG. 5a, an object is covered by four image blocks whereas the object in FIG. 5b is covered by only one image block. Thus, if the size of each block is wisely calculated based on the size and location of the object, the amount of data required to detect the object can be minimized. For instance, the size of each image sub- blocks (30) of FIG. 5a can be made smaller so that despite more image blocks are needed to cover the object, each sub-block actually consists of less data and the total amount of data needed to cover the object can be reduced.
The image sub-segment selecting module (1500) is used to select the blocks to be processed by the main processor (1600) with the objective of reducing the redundancy of the image data. Each selected block is labelled with a priority level to define the sequence of processing. As shown in FIG. 3, the image sub-segment selecting module (1500) comprises of an image blocks identifying and prioritizing unit (1510), an object appearance blocks identifier (1520), and an image overlapped checker (1530).
In each frame, there are two different types of regions which include border regions and interior regions. The border regions cover the border of the scene and possess high possibility of an object entering the scene captured by the frames. The interior regions cover the entry point location within the frames such as doors, windows, lifts and etc. As shown in FIG. 6a, the frame has four border regions (10a, 10b, 10c, and 10d) while another frame as shown in FIG. 6b has one interior region (20) which is the location of a door within the frame. The border and interior regions are subjective to changes depending on the field of view of the imaging sensor capturing the frames. For instance, the border regions in FIG. 6a can be the left and top borders (10a, 10b) only.
The image blocks identifying and prioritizing unit (1510) is used to identify the blocks in the frame that contain the border regions and interior regions and also to label those identified blocks with priority level. The image blocks identifying and prioritizing unit (1510) further includes a border blocks identifier (1511), an interior block identifier (1512) and an image blocks priority labeller (1513). The border blocks identifier (1511) is used to identify the blocks that contain the border regions. For instance, with reference to FIG. 5a, image blocks 30a, 30b, 30c, 30d and 30e are identified as containing the border regions, wherein the border regions are left and top borders (10a, 10b) only. The interior blocks identifier (1512) is used to identify the image blocks that contain the interior regions. For instance, with reference to FIG. 5b, block 30f is identified as containing an interior region (20). Based on the identified blocks from the border blocks identifier (1511) and the interior block identifier (1512), the image blocks priority labeller (1513) retrieves and labels the priority level based on the priority level for each region as determined by the object frequency and priority evaluator (1900).
The object appearance blocks identifier (1520) is used to select blocks based on the predicted information provided by the predictive module (1800). In particular, the object appearance blocks identifier (1520) maps the predicted location of a moving object to the image blocks of the current frame and thereon, selects the image blocks having the predicted location of the moving object. Thus, the selected image blocks should have the highest possibility to locate the object of interest based on the predicted information.
The image overlapped checker (1530) is used to find and remove duplicated image blocks selected by both image blocks identifying and prioritizing unit (1510) and object appearance blocks identifier (1520). In particular, if the image blocks identifying and prioritizing unit (1510) and the object appearance blocks identifier (1520) select the same image block, the image overlapped checker (1530) eliminates the duplication of the selected image block by removing the image block selected by either the image blocks identifying and prioritizing unit (1510) or the object appearance blocks identifier (1520) while retaining the selected image block from the other.
The main processor ( 600) includes multiple processing elements or PEs (not shown), wherein the processing element are configured to perform foreground detection, foreground grouping, morphological process, noise filtering and/or any other image processing functions on the selected image blocks as defined by its priority level. The processing element performs the image processing functions in parallel, wherein one processing element performs image processing function on one selected image block while another processing element image processing function performs on another selected image block at the same time. Suitably, the processing elements are created by routing configurable logics to perform the image processing functions. The main processor (1600) is connected to the image sub-segment selecting module (1500) and the object feature extracting module (1700).
The object feature extracting module (1700) is used to detect moving objects in each selected image block and thereon, extract features of each moving object detected. The extracted features include centre of mass, width, height, and the number of pixels covered, spatial coordinates and any other information which could be useful in representing the object. Those features are stored in a memory. The predictive module (1800) is configured to estimate size and location of the object for the following frame based on features of the object retrieved from the current frame by the object feature extracting module (1700). The features retrieved from the current frame include size, location, trajectory and etc. The predictive module (1800) is connected to the image sub-segmenting module (1400), the image sub-segment selecting module (1500) and the object feature extracting module (1700).
The object frequency and priority evaluator (1900) is used to adjust the priority level of the selected image block. The object frequency and priority evaluator (1900) is connected to the object feature extracting module (1700) and the image sub-segment selecting module (1500).
As shown in FIG. 4, the object frequency and priority evaluator (1900) comprises an object entry counter (1910) and a region priority labelling unit (1920). The object entry counter (1910) is used to determine the frequency of an object entering into the frames through each border region. For instance, by referring to FIG. 6a, if an object enters into the frames through a first border region (10a), the object entry counter (1910) increases the count value for the first border region (10a) by one. If the count value exceeds a predefined threshold, the count value is reset to a new value with their combination preserving the current priority arrangement of each region. This is to avoid the counter values from overflowing due to the limited number of bits allocated.
The region priority labelling unit (1920) is used to adjust the priority level for each border region. The priority level for each border region is initially predefined based on any algorithm known in the art or any random number generation. The region priority labelling unit (1920) adjusts the predefined priority level of each border region based on the frequency of objects entering from each border region of the frames. As an example, by referring to FIG. 6a, if the first border region (10a) has the highest number of objects entering into the frames, the first border region (10a) is set to the highest priority level, whereas the other border regions (10b, 10c, 10d) that have a higher predefined priority level than the first border region (10a) is reduced by one. Referring now to FIG. 7, there is shown an exemplary implementation of the system (1000) of FIG. 1 as a subsystem of a surveillance system (2000). The surveillance system (2000) comprises of a user input module (2100) for manually configure the surveillance system (2000); a power sensor (2200) to monitor the power status of the surveillance system (2000); an image sensor (2300) to capture a video of a scene; a processor (2400) to coordinate the processes of each component in the surveillance system (2000); a reconfigurable hardware (2500) to conduct the image processing; a display (2600) to view the results; a configuration file storage (2700) to store a hardware configuration file which includes logic configurations, number of processing elements, allocated memories for each PE, pre-initialized values and etc.; a multi-port memory (2800) to store image data and to serve as a shared memory among the operating components. The system (1000) of FIG. 1 is integrated in the reconfigurable hardware (2500). The system (1000) retrieves video frames from either the image sensor (2300) or the multi-port memory (2800), and the hardware configuration file from the configuration file storage (2700). Thereon, the system (1000) performs object detection and tracking on the retrieved frames and outputs the results on the display (2600).
Referring to FIG. 8, there is shown a flowchart of a method for detecting an object by using the system (1000) of FIG. 1. Initially, as in step 102, the image acquisition module (1100) acquires video frames. The image acquisition module (1100) also performs a series of image pre-processing functions such as, but not limited to data format conversion, high-pass or low-pass filtering, white balancing, contrast adjustment and/or any other functions known in the art to enhance the image data of the video frames. The video frames are then buffered by the buffering module (1200). In step 104, the pre-processor (1300) performs pre-processing functions to the frames extracted from the buffering module (1200). Such pre-processing functions can either be the same image pre-processing functions as conducted by the image acquisition module (1100), or a partial of the image pre-processing functions as conducted by the image acquisition module (1100), or totally different functions from the image pre-processing functions as conducted by the image acquisition module ( 100). In step 106, user defined parameters and system parameters are retrieved, wherein the user defined parameters relates to information of the border and interior regions in the frames while the system parameters relates to information on the available resources of the system such as the memory capacity, image resolution, number of PEs and etc.
In step 108, the image sub-segmenting module (1400) divides each frame into multiple blocks of equal size by using predicted information provided by the predictive module (1800). Although the size of each block in a frame is similar, the size of each block in one frame may be differ from the size of each block in another frame as the size of each block depends on the predicted information for each frame. The sub-steps of dividing each frame into multiple blocks are shown in FIG. 9. The sub-steps are initiated by retrieving the system parameter values such as the image resolution and allocated memory size for each processing element and retrieving predicted information such as the object size and location as in sub-step 202. Thereon, as in sub-step 204, the sub-segment size calculator (1410) determines the size of each block by determining maximum block size based on the allocated memory for each PE, determining the detected object size and the minimum block size based on the video resolution, and determining the optimum size based on the number of PEs. The optimum size block is in between the minimum and maximum block size and it is stored in the memory as in sub-step 206. For instance, considering a grayscale frame having a resolution size of 640 by 480 pixels, and the system (1000) having 16 PEs with each PE allocated with 1 ,000,000 bits of memory; the sub-segment size calculator (1410) determines the maximum block size by dividing the frame into 4 image blocks with 76,800 pixels for each block, wherein each block would occupy 614,400 bits of memory in each PE as it is a grayscale image (8 bits per pixel). The system (1000) must not occupy all memory in each PE as other processes may occupy the memory. Thereon, the sub-segment size calculator (1410) determines the detected object size which is 200 pixels in width (0.3125 of total width) and 300 pixels in height (0.625 of total height). The sub- segment size calculator (1410) also determines the minimum block size by dividing into 16 image blocks with 19,200 pixels for each block, wherein each block would occupy 153,600 bits of memory in each PE. This is determined to be the optimal minimum size of the image block as any size smaller causes heavy work load in stitching the detected object since the object is large. Based on the determined maximum and minimum block sizes, the sub-segment size calculator (1410) determines the optimum size block to be 160 by 120 pixels so that all PEs are occupied and thus, increases the speed for image processing. Based on the optimum size block, the image divider (1420) retrieves a frame and divides the frame into multiple image blocks as in sub-steps 208 and 210. The image blocks are then stored in the memory as in sub-step 212.
In step 110, the image sub-segment selecting module (1500) selects the image blocks to be processed by the main processor (1600). Each selected block is labelled with a priority level to define the sequence of processing. Referring to FIG. 10, there is shown the sub-steps of selecting the image blocks. The selection of image blocks is done by performing selection based on user defined regions (sub- steps 402 to 414) and selection based on predicted information (sub-steps 304 to 306) concurrently. The selection based on predicted information is initiated with the object appearance blocks identifier (1520) retrieves the predicted information from the predictive module (1800) and thereon, the object appearance blocks identifier (1520) selects image blocks based on the predicted information as in sub-steps 304 and 306. The selected image blocks should have the highest possibility to locate the object of interest based on the predicted information. On the other hand, the selection based on user defined regions is initiated with the image blocks identifying and prioritizing unit (1510) retrieves the image blocks, border region information, and interior region information as in sub-steps 402 to 404,. Thereon, as in sub-steps 408 and 410, the border blocks identifier (1511) identifies the blocks with the border regions and the interior blocks identifier (1512) identifies the blocks with the interior regions. Based on the identified blocks, the image blocks priority labeller (1513) retrieves and labels the priority level based on the priority level for each region as determined by the object frequency and priority evaluator (1900) as in sub-steps 412 and 414. Based on the selection based on user defined regions and predicted information, the image overlapped checker (1530) combines the selected image blocks and removes overlapping image blocks as in step 308.
In step 112, the main processor (1600) performs foreground detection, foreground grouping, morphological process and noise filtering on each selected image block in sequence as defined by its priority level. In step 114, the object feature extracting module (1700) extracts features of the object in each selected image block. The extracted features include centre of mass, width, height, and the number of pixels covered, spatial coordinates and any other information which could be useful in representing the object. Those features are stored in a memory.
In step 116, the object frequency and priority evaluator (1900) adjusts the priority level of the selected image blocks. FIGS. 11(a-b) show the sub-steps of adjusting the priority level of the selected image blocks. Referring to FIG. 11a, the object frequency and priority evaluator (1900) initially determines whether the system (1000) is running for the first time and also whether the system (1000) has been reset. If the system (1000) is running for the first time or the system (1000) has been reset, the region priority labelling unit (1920) retrieves the pre-defined priority level for each region (decision 502 and sub-step 520). Otherwise, the object frequency and priority evaluator (1900) determines whether an object has been detected. If there is no object detected, the region priority labelling unit (1920) retrieves the previously defined priority level (decision 504 and sub-step 518). However, if an object has been detected, the object entry counter (1910) retrieves the features of the object as extracted by the object feature extracting unit (1700) as in decision 504 and sub-step 506. Thereon, the information relating to the border regions and interior regions are retrieved as in sub-step 508. In sub-step 510, the object entry counter (1910) locates from which region the object entered into the frame based on its location information. Once the region has been identified, the object entry counter (1910) increases the count value for that particular region by one as in sub-step 512. If the count value of the particular region exceeds a predefined threshold, the count value is reset with the ratio preserved as in decision 514 and sub-step 516. Thereon, as in sub-step 522, the region priority labelling unit (1920) adjusts the priority level of each region based on the counter value of each region as shown by the flowchart in FIG. 11 b. Referring to FIG. 11 b, as in sub-step 602, the region priority labelling unit (1920) determines the region with the highest number of object entered. Thereon, as in sub-step 604, the region priority labelling unit (1920) reduces priority level of all regions having a priority level higher than the region identified by the object entry counter (1910) by one. The priority level of the identified region is then set to the highest priority level by the region priority labelling unit (1920) as in sub-step 606. In step 118, the predictive module (1800) estimates size and location of the object for the following frame based on features of the object retrieved from the current frame. The features retrieved from the current frame include size, location, trajectory and etc. If no object has been detected, default information of the object is retrieved.
While embodiments of the invention have been illustrated and described, it is not intended that these embodiments illustrate and describe all possible forms of the invention. Rather, the words used in the specifications are words of description rather than limitation and various changes may be made without departing from the scope of the invention.

Claims

1. A system (1000) for detecting an object comprising:
a) an image acquisition module (1100) for acquiring video frames, b) a buffering module (1200) for temporarily storing the video frames, c) a pre-processor (1300) for performing pre-processing functions on the video frames,
d) a main processor (1600) for performing image processing functions, and
e) an object feature extracting module (1700) for extracting features of the object; wherein the system (1000) is characterised in that it further includes:
f) an image sub-segmenting module (1400) for dividing a frame into multiple image blocks of equal size by using predicted information; g) an image sub-segment selecting module (1500) for selecting the image blocks to be processed by the main processor (1600) and labelling each selected image block with a priority level to define the sequence of processing;
h) a predictive module (1800) for estimating size and location of the object for the following frame based on features of the object retrieved; and
i) an object and priority evaluator (1900) for adjusting priority level of the selected image block.
The system (1000) as claimed in claim 1 , wherein the main processor (1600) includes multiple processing elements for performing image processing functions on the selected image blocks from the image sub-segment selecting module (1500). 3. The system (1000) as claimed in claim 1 , wherein the image sub-segmenting module (1400) includes:
a) a sub-segment size calculator (1410) for determining the size of each block; and
b) an image divider (1420) for dividing a frame into multiple blocks based on the size determined by the sub-segment size calculator (1410). The system (1000) as claimed in claim 1 , wherein the image sub-segment selecting module (1500) includes:
a) an image blocks identifying and prioritizing unit (1510) for identifying the image blocks having border regions and interior regions and labelling the identified blocks with priority level;
b) an object appearance blocks identifier (1520) for selecting the image blocks based on the predicted information; and
c) an image overlapped checker (1530) for removing duplicated image blocks selected by the image blocks identifying and prioritizing unit ( 510) and the object appearance blocks identifier (1520).
The system (1000) as claimed in claim 4, wherein the image blocks identifying and prioritizing unit (1510) further includes:
a) a border blocks identifier (1511) for identifying image blocks having border regions;
b) an interior block identifier (1512) for identifying image blocks having interior regions; and
c) an image blocks priority labeller (1513) for labelling a priority level for each identified image blocks based on priority level for each region as determined by the object frequency and priority evaluator (1900).
The system (1000) as claimed in claim 1 , wherein the object frequency and priority evaluator (1900) comprising:
a) an object entry counter (1910) for determining frequency of an object entering into the video frames through each border region; and b) a region priority labelling unit (1920) for adjusting the priority level for each border region.
A method for detecting an object is characterised by the steps of:
a) acquiring video frames;
b) performing a series of image pre-processing functions;
c) buffering the pre-processed video frames;
d) performing pre-processing functions to the buffered video frames; e) retrieving user defined parameters and system parameters, wherein the user defined parameters relates to information of the border and interior regions in the frames and the system parameters relates to information on the available resources of a system;
f) dividing each frame into multiple image blocks of equal size by using predicted information;
g) selecting the image blocks to be processed, wherein each selected block is labelled with a priority level to define the sequence of processing;
h) performing foreground detection, foreground grouping, morphological process and noise filtering on each selected image block in sequence as defined by its priority level;
i) extracting features of the object in each selected image block;
j) adjusting the priority level of the selected image blocks; and k) estimating size and location of the object for the following frame based on features of the object retrieved from a current frame.
The method as claimed in claim 7, wherein the step of dividing each frame into multiple image blocks includes the steps of:
a) retrieving the system parameter values and predicted information; b) determining the size of each image block;
c) retrieving a frame; and
d) dividing the frame into multiple image blocks based on the determined size.
The method as claimed in claim 8, wherein the step of determining the size of each image block includes the steps of:
a) determining maximum block size based on the allocated memory for each processing element;
b) determining minimum block size based on video resolution and the object size; and
c) determining an optimum block size based on number of processing elements. The method as claimed in claim 7, wherein the step of selecting the image blocks includes the steps of:
a) performing selection based on user defined regions and predicted information; and
b) combining the selected image blocks and removing duplicated selection of image blocks based on user defined regions and predicted information. 1. The method as claimed in claim 10, wherein the step of performing selection based on user defined regions includes the steps of:
a) retrieving the image blocks, border region information, and interior region information;
b) identifying the image blocks having the border regions;
c) identifying the image blocks having the interior regions;
d) retrieving the priority level for each region; and
e) labelling the priority level for each identified image blocks based on the priority level for each region.
The method as claimed in claim 10, wherein the step of performing selection based on predicted information includes the steps of:
a) retrieving predicted information; and
b) selecting the image blocks based on the predicted information, wherein the selected image blocks have the highest possibility to locate the object of interest based on the predicted information.
The method as claimed in claim 7, wherein the step of adjusting the priority level of the selected image blocks includes the steps of:
a) determining whether the system (1000) is running for the first time and whether the system (1000) has been reset;
b) retrieving pre-defined priority level for each region if the system (1000) is running for the first time or the system (1000) has been reset;
c) determining whether an object has been detected;
d) retrieving previously defined priority level if there is no object detected; e) retrieving features of the object if an object has been detected; f) retrieving information relating to the border regions and interior regions;
g) identifying the region from which the object entered into the frame based on its location information;
h) increasing count value for the identified region by one;
i) determining the region with the highest number of object entered; j) reducing priority level of all regions having a priority level higher than the identified region by one; and
k) setting the priority level of the identified region to the highest priority level.
PCT/MY2014/000083 2013-05-08 2014-04-28 A system and method for detecting an object WO2014182156A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
MYPI2013700746A MY184711A (en) 2013-05-08 2013-05-08 A system and method for detecting an object
MYPI2013700746 2013-05-08

Publications (1)

Publication Number Publication Date
WO2014182156A1 true WO2014182156A1 (en) 2014-11-13

Family

ID=51261195

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/MY2014/000083 WO2014182156A1 (en) 2013-05-08 2014-04-28 A system and method for detecting an object

Country Status (2)

Country Link
MY (1) MY184711A (en)
WO (1) WO2014182156A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110097583A (en) * 2018-01-31 2019-08-06 腾讯科技(深圳)有限公司 Picture screening technique and device
CN112347875A (en) * 2020-10-26 2021-02-09 清华大学 Method and device for edge cooperative target detection based on area division
CN117314975A (en) * 2023-11-24 2023-12-29 四川迪晟新达类脑智能技术有限公司 Tracking target loss recapturing method based on model reasoning in low-computational-force environment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6298144B1 (en) * 1998-05-20 2001-10-02 The United States Of America As Represented By The National Security Agency Device for and method of detecting motion in an image
US20090245586A1 (en) 2008-03-31 2009-10-01 Sungkyunkwan University Foundation For Corporate Collaboration Image processing apparatus and method for real-time motion detection
FR2951571A1 (en) * 2009-10-16 2011-04-22 Cecilia Leroy Garnier Device for monitoring e.g. car in residential premise and alerting e.g. monitoring staff, has processing module to process and parcel received images such that operator determines parts of images to be implemented under surveillance

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6298144B1 (en) * 1998-05-20 2001-10-02 The United States Of America As Represented By The National Security Agency Device for and method of detecting motion in an image
US20090245586A1 (en) 2008-03-31 2009-10-01 Sungkyunkwan University Foundation For Corporate Collaboration Image processing apparatus and method for real-time motion detection
FR2951571A1 (en) * 2009-10-16 2011-04-22 Cecilia Leroy Garnier Device for monitoring e.g. car in residential premise and alerting e.g. monitoring staff, has processing module to process and parcel received images such that operator determines parts of images to be implemented under surveillance

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
R. CANALS ET AL: "A biprocessor-oriented vision-based target tracking system", IEEE TRANSACTIONS ON INDUSTRIAL ELECTRONICS, vol. 49, no. 2, 1 April 2002 (2002-04-01), pages 500 - 506, XP055147158, ISSN: 0278-0046, DOI: 10.1109/41.993283 *
SCHUCHTER A ET AL: "Fast motion estimation approaches for surveillance-type videos in an inter-frame JPEG 2000-based adaptive video coding system", IET IMAGE PROCESSING, IET, UK, vol. 6, no. 1, 1 February 2012 (2012-02-01), pages 31 - 42, XP006042086, ISSN: 1751-9659, DOI: 10.1049/IET-IPR.2009.0055 *
SINGH A ET AL: "Multicore DSP implementation of adaptive correlation tracker", TENCON 2008 - 2008, TENCON 2008. IEEE REGION 10 CONFERENCE, IEEE, PISCATAWAY, NJ, USA, 19 November 2008 (2008-11-19), pages 1 - 6, XP031414513, ISBN: 978-1-4244-2408-5 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110097583A (en) * 2018-01-31 2019-08-06 腾讯科技(深圳)有限公司 Picture screening technique and device
CN110097583B (en) * 2018-01-31 2022-07-22 腾讯科技(深圳)有限公司 Picture screening method and device
CN112347875A (en) * 2020-10-26 2021-02-09 清华大学 Method and device for edge cooperative target detection based on area division
CN117314975A (en) * 2023-11-24 2023-12-29 四川迪晟新达类脑智能技术有限公司 Tracking target loss recapturing method based on model reasoning in low-computational-force environment
CN117314975B (en) * 2023-11-24 2024-01-26 四川迪晟新达类脑智能技术有限公司 Tracking target loss recapturing method based on model reasoning in low-computational-force environment

Also Published As

Publication number Publication date
MY184711A (en) 2021-04-19

Similar Documents

Publication Publication Date Title
US20200005468A1 (en) Method and system of event-driven object segmentation for image processing
US10467458B2 (en) Joint face-detection and head-pose-angle-estimation using small-scale convolutional neural network (CNN) modules for embedded systems
US9052740B2 (en) Adaptive data path for computer-vision applications
US20210152739A1 (en) Methods and devices for capturing high-speed and high-definition videos
JP6616521B2 (en) Image processing device
US10970823B2 (en) System and method for detecting motion anomalies in video
CA2986860A1 (en) Face detection using small-scale convolutional neural network (cnn) modules for embedded systems
US10949984B2 (en) Object tracking system and method thereof
US20140022394A1 (en) Apparatus and method for tracking object
CN110059666B (en) Attention detection method and device
US9508018B2 (en) Systems and methods for object detection
CN113139419A (en) Unmanned aerial vehicle detection method and device
CN110992393B (en) Target motion tracking method based on vision
CN108229281B (en) Neural network generation method, face detection device and electronic equipment
US20230394834A1 (en) Method, system and computer readable media for object detection coverage estimation
WO2014182156A1 (en) A system and method for detecting an object
CN110799984A (en) Tracking control method, device and computer readable storage medium
KR20210008574A (en) A Real-Time Object Detection Method for Multiple Camera Images Using Frame Segmentation and Intelligent Detection POOL
US20200065979A1 (en) Imaging system and method with motion detection
EP2570962A1 (en) Video analysis
KR102589150B1 (en) Long-distance object detection system using cumulative difference image
CN110909730A (en) Imaging system for movement detection
WO2014028440A2 (en) Fast image processing for recognition objectives system
CN112434671B (en) Pedestrian snapshot optimization method and device, computer equipment and storage medium
JP2014053859A (en) Mobile object observation system

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

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

Country of ref document: EP

Kind code of ref document: A1