WO2014123583A1 - Image processor with edge selection functionality - Google Patents
Image processor with edge selection functionality Download PDFInfo
- Publication number
- WO2014123583A1 WO2014123583A1 PCT/US2013/056770 US2013056770W WO2014123583A1 WO 2014123583 A1 WO2014123583 A1 WO 2014123583A1 US 2013056770 W US2013056770 W US 2013056770W WO 2014123583 A1 WO2014123583 A1 WO 2014123583A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- image
- edge
- pixel
- edges
- segment
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/457—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by analysing connectivity, e.g. edge linking, connected component analysis or slices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/12—Edge-based segmentation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
Definitions
- the field relates generally to image processing, and more particularly to processing of edges detected in one or more images.
- a wide variety of different techniques are known for detecting edges in images. Such techniques generally produce acceptable results when applied to high-resolution images, such as photographs or other two-dimensional (2D) images produced by a digital camera.
- high-resolution images such as photographs or other two-dimensional (2D) images produced by a digital camera.
- 2D images such as photographs or other two-dimensional (2D) images produced by a digital camera.
- 3D images generated by depth imagers such as structured light (SL) cameras or time of flight (ToF) cameras. These depth images are often low-resolution images and typically include highly noisy and blurred edges.
- Conventional edge detection techniques generally do not perform well when applied to depth images. For example, these conventional techniques may either miss important edges in a given depth image or locate multiple spurious edges along with the important edges. The resulting detected edges are of poor quality and therefore undermine the effectiveness of subsequent image processing operations such as feature extraction, pattern identification, gesture recognition, object recognition and tracking.
- an image processing system comprises an image processor configured to perform an edge detection operation on a first image to obtain a second image, to identify particular edges of the second image that exhibit at least a specified reliability, and to generate a third image comprising the particular edges and excluding other edges of the second image.
- the first image in given embodiment may comprise a depth image generated by a depth imager
- the second image may comprise an edge image generated by applying the edge detection operation to the depth image
- the third image may comprise a modified edge image having only the particular edges that exhibit at least the specified reliability.
- Other embodiments of the invention include but are not limited to methods, apparatus, systems, processing devices, integrated circuits, and computer-readable storage media having computer program code embodied therein. Brief Description of the Drawings
- FIG. 1 is a block diagram of an image processing system comprising an image processor with edge selection functionality in one embodiment.
- FIG. 2 is a flow diagram of an exemplary process for identifying reliable edges in an edge image using the image processor of the FIG. 1 system.
- FIGS. 3, 4 A and 4B show examples of identified edge segments in portions of an edge image.
- FIGS. 4A and 4B are also collectively referred to herein as FIG. 4.
- FIG. 5 is a flow diagram of another exemplary process for identifying reliable edges in an edge image using the image processor of the FIG. 1 system. Detailed Description
- Embodiments of the invention will be illustrated herein in conjunction with exemplary image processing systems that include image processors or other types of processing devices and implement techniques for generating edge images having reliable edges. It should be understood, however, that embodiments of the invention are more generally applicable to any image processing system or associated device or technique that involves processing of edges in one or more images.
- FIG. 1 shows an image processing system 100 in an embodiment of the invention.
- the image processing system 100 comprises an image processor 102 that receives images from one or more image sources 105 and provides processed images to one or more image destinations 107.
- the image processor 102 also communicates over a network 104 with a plurality of processing devices 106.
- image source(s) 105 and image destination(s) 107 are shown as being separate from the processing devices 106 in FIG. 1, at least a subset of such sources and destinations may be implemented as least in part utilizing one or more of the processing devices 106. Accordingly, images may be provided to the image processor 102 over network 104 for processing from one or more of the processing devices 106. Similarly, processed images may be delivered by the image processor 102 over network 104 to one or more of the processing devices 106. Such processing devices may therefore be viewed as examples of image sources or image destinations.
- a given image source may comprise, for example, a 3D imager such as an SL camera or a ToF camera configured to generate depth images, or a 2D imager configured to generate grayscale images, color images, infrared images or other types of 2D images.
- a 3D imager such as an SL camera or a ToF camera configured to generate depth images
- a 2D imager configured to generate grayscale images, color images, infrared images or other types of 2D images.
- Another example of an image source is a storage device or server that provides images to the image processor 102 for processing.
- a given image destination may comprise, for example, one or more display screens of a human-machine interface of a computer or mobile phone, or at least one storage device or server that receives processed images from the image processor 102.
- the image source(s) 105 and image destination(s) 107 are shown as being separate from the image processor 102 in FIG. 1, the image processor 102 may be at least partially combined with at least a subset of the one or more image sources and the one or more image destinations on a common processing device.
- a given image source and the image processor 102 may be collectively implemented on the same processing device.
- a given image destination and the image processor 102 may be collectively implemented on the same processing device.
- the image processor 102 is configured to perform an edge detection operation on a first image from a given image source in order to obtain a second image, to identify particular edges of the second image that exhibit at least a specified reliability, and to generate a third image comprising the particular edges and excluding other edges of the second image.
- the image processor 102 as illustrated in FIG. 1 includes a preprocessing module 110, an edge detection module 1 12 and an edge selection module 1 14.
- the edge detection module 1 12 is configured to perform the edge detection operation on the first image supplied by a given image source
- the edge selection module 114 is configured to identify the particular edges of the second image that exhibit at least the specified reliability.
- the preprocessor module 110 is assumed to be coupled or otherwise arranged between the given image source and an input of the edge detection module 1 12, and is configured to apply preprocessing operations such as denoising and equalization to the first image before that image is subject to the edge detection operation in the edge detection module 112.
- the first image in given embodiment may comprise a depth image generated by a depth imager such as an SL camera or a ToF camera
- the second image may comprise an edge map or other type of edge image generated by applying the edge detection operation to the depth image in edge detection module 1 12
- the third image may comprise a modified edge image having only the particular edges that are selected by the edge selection module 114 as exhibiting at least the specified reliability.
- Other types and arrangements of images may be received, processed and generated in other embodiments.
- modules shown in image processor 102 in the FIG. 1 embodiment can be varied in other embodiments. For example, in other embodiments two or more of these modules may be combined into a lesser number of modules.
- An otherwise conventional image processing integrated circuit or other type of image processing circuitry suitably modified to perform processing operations as disclosed herein may be used to implement at least a portion of one or more of the modules 110, 1 12 and 114 of image processor 102.
- edge selection module 1 14 will be described in greater detail below in conjunction with the flow diagrams of FIGS. 2 and 5. Each of these flow diagrams illustrates a different process for identifying reliable edges in an edge image provided by the edge detection module 112.
- a modified edge image having only the particular edges that exhibit at least the specified reliability as generated by the image processor 102 may be subject to additional processing operations in the image processor 102, such as, for example, feature extraction, pattern identification, gesture recognition, object recognition and tracking.
- a modified edge image having only the particular edges that exhibit at least the specified reliability as generated by the image processor 102 may be provided to one or more of the processing devices 106 over the network 104.
- One or more such processing devices may comprise respective image processors configured to perform the above-noted subsequent operations such as feature extraction, pattern identification, gesture recognition, object recognition and tracking.
- the processing devices 106 may comprise, for example, computers, mobile phones, servers or storage devices, in any combination. One or more such devices also may include, for example, display screens or other user interfaces that are utilized to present images generated by the image processor 102.
- the processing devices 106 may therefore comprise a wide variety of different destination devices that receive processed image streams from the image processor 102 over the network 104, including by way of example at least one server or storage device that receives one or more processed image streams from the image processor 102.
- the image processor 102 may be at least partially combined with one or more of the processing devices 106.
- the image processor 102 may be implemented at least in part using a given one of the processing devices 106.
- a computer or mobile phone may be configured to incorporate the image processor 102 and possibly a given image source.
- the image source(s) 105 may therefore comprise cameras or other imagers associated with a computer, mobile phone or other processing device.
- the image processor 102 may be at least partially combined with one or more image sources or image destinations on a common processing device.
- the image processor 102 in the present embodiment is assumed to be implemented using at least one processing device and comprises a processor 120 coupled to a memory 122.
- the processor 120 executes software code stored in the memory 122 in order to control the performance of image processing operations.
- the image processor 102 also comprises a network interface 124 that supports communication over network 104.
- the processor 120 may comprise, for example, a microprocessor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a central processing unit (CPU), an arithmetic logic unit (ALU), a digital signal processor (DSP), or other similar processing device component, as well as other types and arrangements of image processing circuitry, in any combination.
- ASIC application-specific integrated circuit
- FPGA field-programmable gate array
- CPU central processing unit
- ALU arithmetic logic unit
- DSP digital signal processor
- the memory 122 stores software code for execution by the processor 120 in implementing portions of the functionality of image processor 102, such as portions of modules 1 10, 1 12 and 114.
- a given such memory that stores software code for execution by a corresponding processor is an example of what is more generally referred to herein as a computer-readable medium or other type of computer program product having computer program code embodied therein, and may comprise, for example, electronic memory such as random access memory (RAM) or read-only memory (ROM), magnetic memory, optical memory, or other types of storage devices in any combination.
- the processor may comprise portions or combinations of a microprocessor, ASIC, FPGA, CPU, ALU, DSP or other image processing circuitry.
- embodiments of the invention may be implemented in the form of integrated circuits.
- identical die are typically formed in a repeated pattern on a surface of a semiconductor wafer.
- Each die includes an image processor or other image processing circuitry as described herein, and may include other structures or circuits.
- the individual die are cut or diced from the wafer, then packaged as an integrated circuit.
- One skilled in the art would know how to dice wafers and package die to produce integrated circuits.
- Integrated circuits so manufactured are considered embodiments of the invention.
- the particular configuration of image processing system 100 as shown in FIG. 1 is exemplary only, and the system 100 in other embodiments may include other elements in addition to or in place of those specifically shown, including one or more elements of a type commonly found in a conventional implementation of such a system.
- the image processing system 100 is implemented as a video gaming system or other type of gesture-based system that processes image streams in order to recognize user gestures.
- the disclosed techniques can be similarly adapted for use in a wide variety of other systems requiring a gesture-based human-machine interface, and can also be applied to applications other than gesture recognition, such as machine vision systems in robotics and other industrial applications.
- FIG. 2 an exemplary process is shown for identifying reliable edges in an edge image in the image processing system 100 of FIG. 1.
- the FIG. 2 process is assumed to be implemented by the image processor 102 using its edge selection module 1 14.
- the process in this embodiment includes steps 200 through 212. It is assumed in this embodiment that an input image received in the image processor 102 from an image source 105 is a distorted image, such as a depth map or other depth image from a depth imager.
- step 200 preprocessing is applied to the input image in order to generate a grayscale image G.
- the preprocessing may involve operations such as, for example, denoising, equalization, etc.
- the grayscale image G in the present embodiment is an example of what is more generally referred to herein as a "first image.”
- an edge detection operation is performed on the grayscale image G in order to obtain an edge image E.
- the edge image E in the present embodiment is an example of what is more generally referred to herein as a "second image.”
- Any of a wide variety of known edge detection techniques may be applied to generate the edge image E in step 202. Examples of such edge detection techniques are disclosed in, for example, J. Canny, "A computational approach to edge detection," IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. PAMI-8, Issue 6, pp. 679-698, November 1986; R. Kimmel and A.M. Bruckstein, “On regularized Laplacian zero crossings and other optimal edge integrators," International Journal of Computer Vision, 53(3):225-243, 2003; and W.K.
- any associated edge detection threshold should be set sufficiently low so as to ensure retention of important edges, as the subsequent processing to be described will ensure rejection of unreliable edges.
- image as used herein is intended to be broadly construed, and in the context of the edge image E may comprise, for example, an edge map or other set of pixel information characterizing detected edges.
- edge is also intended to be broadly construed, so as to encompass, for example, a set of pixels in a given image that are associated with a transition between part of a periphery of an imaged object and other portions of the image.
- step 204 certain edges in the edge image E may be optionally rejected as being of insufficient size.
- an edge segmentation operation is applied to the edge image E after optional rejection of any undersized edges in step 304.
- the first edge segment ESi on the left includes filled corner positions, while the second edge segment ES 2 on the right includes non-filled corner positions.
- Numerous other types of edge segments may be generated in step 206.
- edge segments in other embodiments may be more than one pixel in thickness.
- the edge segmentation operation may be characterized as splitting a branched edge graph into elementary curve segments such that each element segment includes no branching.
- Each segment is characterized by its starting pixel s n , ending pixel e n and number of adjacent pixels, if any, between the starting and ending pixels such that there are no gaps between s n and e n , there is no branching between s n and e n , and the length of a curve segment is greater than or equal to two pixels but has no upper bound other than that implied by the image resolution.
- this type of edge segmentation operation may be implemented using the following steps:
- the located edge pixel has exactly one immediate neighbor white pixel, mark the located edge pixel as a starting pixel s n and move along the edge in the only possible direction, visiting each pixel. If the located edge pixel has two or more immediate neighbor white pixels, move along the corresponding edges in each of the possible directions and visit each pixel.
- the different possible directions represent respective branches, and to avoid branch overlapping only one of the branches should be considered as having the originally located edge pixel as its starting pixel s n . Movement along an edge stops once the corresponding edge segment ends or branches into two or more directions. In both cases, the edge pixel at which movement stops is considered either a starting or ending pixel. A given edge segment is completely acquired once its starting and ending pixels are identified.
- Visited edge pixels should be recorded or otherwise marked in order to allow edge segments to be fully characterized as their respective ending pixels are identified. This recording or marking also helps to avoid the possibility that a given edge pixel may be included two or more times in the same edge segment, as in the case of a looped edge.
- steps 1 and 2 Repeat steps 1 and 2 until there are no longer any non-isolated edge pixels left in the edge image E. Thus, steps 1 and 2 are repeated until all non-isolated edge pixels in E are either erased or considered part of one of the edge segments.
- edge segments that have fewer than a designated number of edge pixels. This is similar to the optional edge rejection performed in step 204, but is applied to identified edge segments. It can help to reduce the complexity of subsequent steps 208, 210 and 212 of the FIG. 2 process, but edges that are presented by multiple small segments will be lost, possibly leading to degraded performance in some circumstances.
- edge image E is already configured in such a manner that it provides edge segments having properties the same as or similar to the above-described edge segments ES stretch, the edge segmentation operation of step 206 may be eliminated.
- edge segment neighborhoods are defined for the respective edge segments ES n .
- the neighborhoods in this embodiment comprise respective immediate vicinities, although other types of vicinities may be used in other embodiments.
- the neighborhoods are therefore considered an example of what are more generally referred to herein as "vicinities" of the respective edge segments.
- edge segment neighborhoods may be defined in step 208.
- neighborhoods are determined for respective edge segments based on edge loop closing, using the following steps:
- the "nearest" white pixel may be determined using Euclidean distance, Manhattan distance, or other types of distance measures.
- step 2 Repeat step 2 for one or more of the edge segments until no additional unconnected starting or ending pixels are available.
- the two exemplary edge segments ESi and ES 2 of FIG. 4A form one such closed edge loop, with the connecting straight line segments being denoted by shaded pixels.
- one straight line segment of two shaded pixels connects an intermediate white pixel of ESi to starting pixel s 2 of ES 2
- another straight line segment of two shaded pixels connects starting pixel si of ES] to ending pixel e 2 of ES 2 .
- hanging ends of each edge segment are connected to the nearest white pixel in the other segment.
- edges embracing large regions can appear. If this is the case, estimated edge reliability statistics may vary significantly, leading to spreading of properties from one edge segment part to another edge segment part within the same segment.
- This situation can be addressed by applying an additional pixel connection rule as follows. After performing steps 2 and 3, connect two white pixels from the same or different edge segments with a straight line segment if and only if the two white pixels are separated by at most DJoin black pixels along the shortest path, and both white pixels are either separated from one another by more than D_disjoin white pixels along the same edge segment or belong to different edge segments.
- FIG. 4B The result of application of this additional pixel connecting rule to the closed edge loop of FIG. 4A is illustrated in FIG. 4B.
- an additional straight line segment of one shaded pixel connects ending pixel ei of ESi to an intermediate white pixel of ESi .
- the parameter DJoin determines the number of additional edge segment loops that will appear, and the higher its value, the more detailed the closed loop decomposition will be, which tends to make better localized edge segments available for subsequent processing. Values of DJoin in the range of about 1 to 5 set a reasonable compromise between computational complexity and edge quality for low-resolution images.
- a fast filling algorithm such as a flood fill or quick fill algorithm.
- Each set of filled adjacent regions represents a set of pixels that will be used for statistics gathering for the corresponding edge segment in step 210.
- edge segments that are connected together in step 2 may share one or more of the same filled regions. Accordingly, in order to reduce the computational complexity associated with region filling, each such shared region can be filled once and then all edge segments which share that region can be identified and will share the corresponding statistics gathered in step 210. Also, in the course of edge segment connection, one segment can be split into two or more parts by connection of its intermediate pixels to starting or ending pixels of other segments.
- this neighborhood definition example exhibits a higher computational complexity than the other neighborhood definition examples to be described below, it also provides increased edge verification confidence because it involves statistical sampling over larger neighborhoods of pixels for each edge segment.
- neighborhoods are determined for respective edge segments based on a maximal vicinity radius parameter, using the following steps:
- R v is a positive integer denoting vicinity radius. The larger the vicinity radius R v , the more pixels will be included in the neighborhoods defined for the respective edge segments.
- step 2 For each extended edge segment from step 1 , locate all pixels on each side of the extended edge segment that are situated not farther than R v from the edge segment ES n prior to the step 1 extension and not farther than the first white pixel met while extending the edge segment.
- edge segment extension in this example facilitates the determination of appropriate neighborhoods encompassing both sides of each edge segment. Its computational complexity is significantly reduced relative to that of the previous example, but for typical depth images it can provide a comparable amount of edge verification confidence.
- neighborhoods are determined for respective edge segments based on a maximal vicinity distance along a sliding perpendicular line, using the following step:
- at each pixel of the edge segment construct a perpendicular line to a current tangent line of the edge segment, move along the perpendicular line in both directions to a distance of up to D v pixels or until a white pixel is met, and join all visited pixels to the neighborhood for the edge segment.
- the resulting neighborhood resembles a strip of pixels of width 2D V and the edge itself is situated in the middle of the strip.
- this third example also utilizes a single positive integer parameter, in this case the maximal vicinity distance D v , and accordingly produces a neighborhood similar to that produced in the previous example.
- the larger the vicinity distance D v the more pixels will be included in the neighborhoods defined for the respective edge segments.
- This example has a computational complexity that is less than that of the first and second examples above, but again for typical depth images it can provide a comparable amount of edge verification confidence.
- the term "vicinity" as used herein is intended to be more broadly construed than the exemplary neighborhoods described in conjunction with the previous examples.
- the vicinity for a given edge segment may more generally comprise, although again by way of example, subsets of pixels lying on respective sides of a closed edge curve with the subsets being completely separated from one another by the corresponding edge.
- a wide variety of different techniques may be used to select and weight vicinity pixels for use in obtaining level statistics as described below, and a particular one of these techniques may be determined for use in a given application by taking into account factors such as computational complexity and desired edge verification confidence.
- step 210 the grayscale image G at the output of the preprocessing step 200 and the edge segment neighborhoods defined in step 208 are utilized to obtain level statistics for the edge segments.
- grayscale level statistics are gathered over two-sided edge segment vicinities. As will be described in greater detail below, this may involve, for example, estimating local grayscale level parameters on both sides of every edge segment.
- the level statistics may therefore comprise information such as two-sided lateral mean-like values and associated variance estimates for the respective edge segments.
- the grayscale level may be representative of depth or distance, brightness, temperature, density or other physical attributes of objects in an imaged scene, depending upon the specific nature of the image G. It should be noted in this regard that the term "depth” is intended to be broadly construed so as to encompass distance measures.
- the integral grayscale level MG p (n, s) can be defined in a variety of different ways, including as a median value: or as a generalized mean: f 1 M(n,s) where M(n,s) denotes the total number of pixels in the vicinity determined in step 208 for the corresponding edge segment, p ⁇ 1 denotes a distance metric space parameter, and g m (n,s) denotes pixel grayscale level.
- M(n,s) denotes the total number of pixels in the vicinity determined in step 208 for the corresponding edge segment
- p ⁇ 1 denotes a distance metric space parameter
- g m (n,s) denotes pixel grayscale level.
- the generalized mean above reduces to a simple arithmetic mean MG, ⁇ n,s) .
- an edge segment may be designated as unreliable and discarded, because it does not divide two geometrical regions of different integral grayscale level. For example, both sides of such an edge segment may belong to the same object in an imaged scene and therefore should not be separated by an edge, Conversely, a noticeable difference in integral grayscale levels for different sides of the edge segment indicates a step-like transition of image grayscale level and related object properties across the boundary defined by the edge segment. Such an edge segment may be designated as reliable and accepted.
- possible level statistics indicative of the reliability of edge segment ES n can be based on the difference between MG p (n,l) and MG p (n,2) .
- This difference can be expressed in a number of different ways, including, for example, as a simple arithmetical difference: a normalized arithmetical difference: MG p ( ⁇ , ⁇ ) + MG p ( «,2)
- Another level statistic may comprise a grayscale level variance.
- a grayscale level variance can be defined as follows:
- such a weighted estimate can treat vicinity pixels nearer to the edge segment as having a higher importance, as follows:
- level outliers can be suppressed as follows:
- parameter r sets the sharpness of the outlier suppression function
- exemplary level smoothers can be combined together to operate as a bilateral filter.
- a conventional bilateral filter can be used, as will be appreciated by those skilled in the art.
- Yet another level statistic can be based on the degree to which estimated levels depart from lower or upper bounds of a particular dynamic range.
- the levels may be subject to noise and underflow on one side of an edge segment or saturation and overflow on the other side of the edge segment.
- the values inside the range show more statistical confidence, as indicated in the following:
- saturation_level denotes the top of the dynamic range
- noise_level denotes the bottom of the dynamic range.
- the values are not measured accurately due to physical limitations of the imager.
- level statistics that may be gathered for the various edge segments in step 210. It should be noted that statistics based on the level difference AMG(n) across the edge segment are generally more important in determining reliability of the edge segment than the other statistics such as var ⁇ , ⁇ ) and value ⁇ onfidence ⁇ ,.?) . The latter two statistics may be used, for example, to determine relevance of a given edge segment that has been identified as reliable using statistics based on the level difference AMG(n) . Numerous other types of level statistics can be used in other embodiments, including statistics based on various types of image information levels other than grayscale levels.
- an accept or discard decision is generated for each of the edge segments based on the level statistics determined in step 210 and a specified threshold value.
- the threshold value in this embodiment establishes a particular reliability, which may be viewed as an example of what is more generally referred to herein as a "specified reliability.”
- a given such specified reliability may denote a reliability value at or above which edge pixels are accepted and below which edge pixels are discarded.
- specified reliabilities for edges herein may encompass various threshold-based reliability measures. Numerous other types of specified reliabilities may be used in other embodiments.
- the threshold value utilized in step 212 may be a unit-less normalized value such as 0 ⁇ threshold ⁇ 1 , or another value such as min(G) ⁇ threshold ⁇ max(G) which is based on respective minimum and maximum grayscale values of image G.
- edge segment ES n may involve comparing the corresponding level difference AMG(n) to a threshold, possibly utilizing a particular one of the following rules or combinations of two or more of these rules:
- FIG. 2 process can be pipelined in a straightforward manner. For example, at least a portion of steps 208, 210 and 212 can be performed in parallel for different edge segments identified in step 206, thereby reducing the overall latency of the process for a given input image, and facilitating implementation of the described techniques in real-time image processing applications. Also, vector processing in firmware can be used to accelerate portions of the process, such as the statistics gathering in step 210.
- the accepted edge segments in step 212 collectively represent a set of reliable edges that are permitted to remain in a modified edge image provided by the image processor 102.
- this modified edge image may be further processed in the image processor 102, or supplied to another processing device 106 or image destination 107.
- Each of the accepted edge segments may have an associated confidence estimate given by its associated level statistics or information derived therefrom.
- FIG. 5 illustrates another exemplary process for identifying reliable edges in an edge image in the FIG. 1 image processing system.
- the FIG. 5 process is assumed to be implemented by the image processor 102 using its edge selection module 114.
- the process in this embodiment includes steps 500 through 508.
- Steps 500 and 502 are respective preprocessing and edge detection steps that correspond generally to respective steps 200 and 202 in FIG. 2, and may be implemented in substantially the same manner as previously described.
- step 504 a separable linear filtering operation is applied to the grayscale image G and a normalized pseudo-gradient (NPG) is then generated from the resulting filtered grayscale image.
- NPG normalized pseudo-gradient
- the separable linear filtering as applied to a given pixel G(i,j) of the grayscale image G in the present embodiment may be configured to utilize 2L neighboring pixels along image height and width to obtain unidimensional linear sum-like and difference-like finite estimates, as follows:
- gx(i, j) G(i, j - 3) + G(i, j - 2) + G ⁇ i, + G(i, j + + G(i, j + 2) + G(i, j + 3)
- gy(i, j) G(i - 3, j) + G(i - 2, j) + G(i - 1, j) + G(i + + G(i + 2, j) + G(i + 3, j)
- dx(i, j) -GO, j - 3) - G(i, j - 2) - G(r, + G(/, 7 + 1) + G(i, j + 2) + G(i, j + 3)
- dy ⁇ i, j) -G(i - 3, j) - G(i - 2, j) - G(
- the exemplary separable linear filters described above are separable in x and y, which helps to reduce the computational burden.
- other embodiments can use a wide variety of other types of filters, and those filters can include non- separable and non-linear filters of various types.
- the NPG can be generated in the following manner. For each pair of estimates gx(i, j) and gy(i, j) , find a corresponding level:
- the level determination can be simplified as follows:
- gm(i, j) (gx(i, j)" + gy(i, j)" ) Up .
- the present embodiment utilizes a characteristic property of images provided by SL or ToF cameras or other types of depth imagers. More particularly, in such depth imagers, the distance measurement uncertainty is typically a function of the distance to an imaged object. Let the distance measurement uncertainty as a function of distance G(i,j) be denoted DV ⁇ G(i, j)) . For typical SL cameras, the following holds due to their use of triangulation to determine distance: while typical ToF cameras are characterized by slower accuracy loss:
- the present embodiment utilizes this characteristic property of images provided by SL or ToF cameras or other types of depth imagers in generating the NPG in step 504.
- the NPG can be defined using the distance measurement uncertainty dependence DV(G(i, j)) as follows:
- This exemplary non-negative valued NPG(i, j) operates in a manner similar to a matched filter, in that it suppresses the impact of unreliable data regions and amplifies the impact of reliable data regions. It should be understood, however, that other NPGs may be used in other embodiments.
- an edge mask is generated based on the above-described NPG.
- the NPG is first smoothed using a rotation-invariant 2D low-pass filter (LPF) such as, for example, a 2D Gaussian filter.
- LPF rotation-invariant 2D low-pass filter
- the smoothed NPG is then pixel-wise compared to a positive-valued constant importance threshold. All pixels in NPG ⁇ -) below the threshold are marked as black and all pixels above the threshold are marked as white:
- step 508 the edge mask determined in step 506 is applied to the edge image E. More particularly, unreliable edges are eliminated in this step by pixel-wise mask application as follows: where and in this context is the logical operator.
- the output of the FIG. 5 process is a set of reliable edges that are permitted to remain in a modified edge image provided by the image processor 102. Again, this modified edge image may be further processed in the image processor 102, or supplied to another processing device 106 or image destination 107.
- the FIG. 5 process uses a localized pixel-based approach to determine whether or not a given edge pixel is part of a reliable edge.
- This approach utilizes localized statistics, typically involving relatively few neighboring pixels, in order to distinguish less precise edges associated with less important background objects from better defined edges associated with more important foreground objects.
- the edge reliability decision in the FIG. 5 process is made not for an edge segment as a whole as in the FIG. 2 process but is instead made separately for each of the edge pixels.
- the FIG. 5 process takes into account the particular manner in which distance measurement uncertainty varies as a function of distance for the imager that provides the input image.
- a number of simplifications can be made in the FIG. 5 process. For example, if the edge image E is already configured in such a manner that it provides edge segments having properties the same as or similar to the above-described edge segments ES n , that information can be provided to step 504 to facilitate determination of appropriate neighboring pixels for each edge pixel. Also, various operations in the FIG. 5 process can be pipelined in a straightforward manner. For example, different mask regions can be separately computed and applied in parallel with one another in steps 504, 506 and 508.
- Embodiments of the invention provide particularly efficient techniques for identifying reliable edges in an image. For example, these tecliniques can provide significantly improved edge images relative to conventional edge detection techniques that generally produce poor quality detected edges for certain types of images such as depth images from SL or ToF cameras or other types of depth imagers. Moreover, reliable edges are provided using the techniques disclosed herein without the cost and complexity of excessive parameter tuning that is often required for conventional edge detection operations.
- reliable edge images provided in embodiments of the invention significantly enhance the effectiveness of subsequent image processing operations that utilize such edge images, including, for example, feature extraction, pattern identification, gesture recognition, object recognition and tracking.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
Description
Claims
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020157021153A KR20150115774A (en) | 2013-02-05 | 2013-08-27 | Image processor with edge selection functionality |
| CN201380003822.9A CN104813343A (en) | 2013-08-27 | 2013-08-27 | Image processor with edge selection functionality |
| CA2847120A CA2847120A1 (en) | 2013-02-05 | 2013-08-27 | Image processor with edge selection functionality |
| JP2015555990A JP2016505185A (en) | 2013-02-05 | 2013-08-27 | Image processor having edge selection function |
| US14/237,072 US9373053B2 (en) | 2013-02-05 | 2013-08-27 | Image processor with edge selection functionality |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| RU2013104895/08A RU2013104895A (en) | 2013-02-05 | 2013-02-05 | PROCESSOR OF IMAGES WITH FUNCTIONALITY OF CHOICE OF CIRCUITS |
| RU2013104895/07 | 2013-02-05 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2014123583A1 true WO2014123583A1 (en) | 2014-08-14 |
Family
ID=51300032
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2013/056770 Ceased WO2014123583A1 (en) | 2013-02-05 | 2013-08-27 | Image processor with edge selection functionality |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US9373053B2 (en) |
| JP (1) | JP2016505185A (en) |
| KR (1) | KR20150115774A (en) |
| RU (1) | RU2013104895A (en) |
| TW (1) | TW201432620A (en) |
| WO (1) | WO2014123583A1 (en) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9373053B2 (en) | 2013-02-05 | 2016-06-21 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Image processor with edge selection functionality |
| CN107328469A (en) * | 2017-08-18 | 2017-11-07 | 无锡北斗星通信息科技有限公司 | Verification platform for multifunctional oil and gas vehicles |
| CN107527096A (en) * | 2017-08-18 | 2017-12-29 | 无锡北斗星通信息科技有限公司 | A kind of method for verifying oil gas car |
| US11341615B2 (en) * | 2017-09-01 | 2022-05-24 | Sony Corporation | Image processing apparatus, image processing method, and moving body to remove noise in a distance image |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP6345224B1 (en) * | 2016-12-19 | 2018-06-20 | 株式会社Pfu | Image processing apparatus, rectangle detection method, and computer program |
| KR102584522B1 (en) * | 2016-12-27 | 2023-10-05 | 한화비전 주식회사 | Image processing device and image enhancing method |
| US10504283B2 (en) | 2018-03-16 | 2019-12-10 | Here Global B.V. | Method and apparatus for regularizing building footprints using taxicab distance |
| TWI807627B (en) * | 2022-02-07 | 2023-07-01 | 大陸商星宸科技股份有限公司 | Image edge detecting method and image edge processing device |
| CN117314944A (en) * | 2023-09-28 | 2023-12-29 | 腾讯科技(深圳)有限公司 | Image processing method and related equipment |
| CN119223819B (en) * | 2024-12-03 | 2025-02-18 | 山东新凌志检测技术有限公司 | Performance analysis and detection method for lithium battery carbon cathode material of new energy automobile |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6778698B1 (en) * | 1999-06-11 | 2004-08-17 | Pts Corporation | Method and apparatus for digital image segmentation |
| US20050074140A1 (en) * | 2000-08-31 | 2005-04-07 | Grasso Donald P. | Sensor and imaging system |
| US7003161B2 (en) * | 2001-11-16 | 2006-02-21 | Mitutoyo Corporation | Systems and methods for boundary detection in images |
| US20100054622A1 (en) * | 2008-09-04 | 2010-03-04 | Anchor Bay Technologies, Inc. | System, method, and apparatus for smoothing of edges in images to remove irregularities |
| US20110001008A1 (en) * | 2009-07-02 | 2011-01-06 | Airbus Operations | Aircraft floor of optimized compactness |
| US20120281872A1 (en) * | 2011-05-03 | 2012-11-08 | Microsoft Corporation | Detecting an interest point in an image using edges |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5767978A (en) * | 1997-01-21 | 1998-06-16 | Xerox Corporation | Image segmentation system |
| TWI381717B (en) * | 2008-03-31 | 2013-01-01 | Univ Nat Taiwan | Method of processing partition of dynamic target object in digital video and system thereof |
| KR100951254B1 (en) * | 2008-07-18 | 2010-04-02 | 삼성전기주식회사 | Image sharpening enhancer |
| TWI332453B (en) * | 2008-07-21 | 2010-11-01 | Univ Nat Defense | The asynchronous photography automobile-detecting apparatus and method thereof |
| US20110081087A1 (en) * | 2009-10-02 | 2011-04-07 | Moore Darnell J | Fast Hysteresis Thresholding in Canny Edge Detection |
| CN102404594B (en) | 2011-10-31 | 2014-02-12 | 庞志勇 | Method of converting 2D to 3D based on image edge information |
| RU2013104895A (en) | 2013-02-05 | 2014-08-10 | ЭлЭсАй Корпорейшн | PROCESSOR OF IMAGES WITH FUNCTIONALITY OF CHOICE OF CIRCUITS |
-
2013
- 2013-02-05 RU RU2013104895/08A patent/RU2013104895A/en not_active Application Discontinuation
- 2013-08-27 JP JP2015555990A patent/JP2016505185A/en not_active Withdrawn
- 2013-08-27 US US14/237,072 patent/US9373053B2/en active Active
- 2013-08-27 WO PCT/US2013/056770 patent/WO2014123583A1/en not_active Ceased
- 2013-08-27 KR KR1020157021153A patent/KR20150115774A/en not_active Ceased
- 2013-09-23 TW TW102134161A patent/TW201432620A/en unknown
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6778698B1 (en) * | 1999-06-11 | 2004-08-17 | Pts Corporation | Method and apparatus for digital image segmentation |
| US20050074140A1 (en) * | 2000-08-31 | 2005-04-07 | Grasso Donald P. | Sensor and imaging system |
| US7003161B2 (en) * | 2001-11-16 | 2006-02-21 | Mitutoyo Corporation | Systems and methods for boundary detection in images |
| US20100054622A1 (en) * | 2008-09-04 | 2010-03-04 | Anchor Bay Technologies, Inc. | System, method, and apparatus for smoothing of edges in images to remove irregularities |
| US20110001008A1 (en) * | 2009-07-02 | 2011-01-06 | Airbus Operations | Aircraft floor of optimized compactness |
| US20120281872A1 (en) * | 2011-05-03 | 2012-11-08 | Microsoft Corporation | Detecting an interest point in an image using edges |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9373053B2 (en) | 2013-02-05 | 2016-06-21 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Image processor with edge selection functionality |
| CN107328469A (en) * | 2017-08-18 | 2017-11-07 | 无锡北斗星通信息科技有限公司 | Verification platform for multifunctional oil and gas vehicles |
| CN107527096A (en) * | 2017-08-18 | 2017-12-29 | 无锡北斗星通信息科技有限公司 | A kind of method for verifying oil gas car |
| CN107328469B (en) * | 2017-08-18 | 2018-05-18 | 梁丽珠 | Multifunctional oil gas vehicle verification platform |
| CN107527096B (en) * | 2017-08-18 | 2018-08-28 | 余佩佩 | A method of verification oil gas vehicle |
| US11341615B2 (en) * | 2017-09-01 | 2022-05-24 | Sony Corporation | Image processing apparatus, image processing method, and moving body to remove noise in a distance image |
Also Published As
| Publication number | Publication date |
|---|---|
| TW201432620A (en) | 2014-08-16 |
| US20150220804A1 (en) | 2015-08-06 |
| KR20150115774A (en) | 2015-10-14 |
| JP2016505185A (en) | 2016-02-18 |
| RU2013104895A (en) | 2014-08-10 |
| US9373053B2 (en) | 2016-06-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9373053B2 (en) | Image processor with edge selection functionality | |
| US9305360B2 (en) | Method and apparatus for image enhancement and edge verification using at least one additional image | |
| TWI800692B (en) | System for disparity estimation and method for disparity estimation of system | |
| KR102144994B1 (en) | Method for decreasing noise of image and image processing apparatus using thereof | |
| CN108122208B (en) | Image processing apparatus and method for foreground mask correction for object segmentation | |
| US9589319B2 (en) | Method, system and apparatus for forming a high resolution depth map | |
| US9384411B2 (en) | Image processor with edge-preserving noise suppression functionality | |
| US9292928B2 (en) | Depth constrained superpixel-based depth map refinement | |
| US9947077B2 (en) | Video object tracking in traffic monitoring | |
| CN104813343A (en) | Image processor with edge selection functionality | |
| WO2014189484A1 (en) | Technologies for increasing the accuracy of depth camera images | |
| Lo et al. | Joint trilateral filtering for depth map super-resolution | |
| CN105556568A (en) | Geodesic saliency using background priors | |
| CN111598088B (en) | Target detection method, device, computer equipment and readable storage medium | |
| CN111161299B (en) | Image segmentation method, storage medium and electronic device | |
| US20160247284A1 (en) | Image processor with multi-channel interface between preprocessing layer and one or more higher layers | |
| CN110765875A (en) | Method, equipment and device for detecting boundary of traffic target | |
| Lo et al. | Depth map super-resolution via Markov random fields without texture-copying artifacts | |
| CN109087347B (en) | Image processing method and device | |
| CN109961422B (en) | Determination of contrast values for digital images | |
| CN108234826B (en) | Image processing method and device | |
| WO2021134031A1 (en) | Systems and methods for depth estimation | |
| Chang et al. | Superpixel-based large displacement optical flow | |
| CA2847120A1 (en) | Image processor with edge selection functionality | |
| CN113012055A (en) | Image scene enhancement method, device, terminal and storage medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WWE | Wipo information: entry into national phase |
Ref document number: 14237072 Country of ref document: US |
|
| ENP | Entry into the national phase |
Ref document number: 2847120 Country of ref document: CA Kind code of ref document: A |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13874339 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2015555990 Country of ref document: JP Kind code of ref document: A |
|
| ENP | Entry into the national phase |
Ref document number: 20157021153 Country of ref document: KR Kind code of ref document: A |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 13874339 Country of ref document: EP Kind code of ref document: A1 |






