WO2021233266A1 - 边缘检测方法和装置、电子设备和存储介质 - Google Patents

边缘检测方法和装置、电子设备和存储介质 Download PDF

Info

Publication number
WO2021233266A1
WO2021233266A1 PCT/CN2021/094204 CN2021094204W WO2021233266A1 WO 2021233266 A1 WO2021233266 A1 WO 2021233266A1 CN 2021094204 W CN2021094204 W CN 2021094204W WO 2021233266 A1 WO2021233266 A1 WO 2021233266A1
Authority
WO
WIPO (PCT)
Prior art keywords
boundary
line
lines
reference boundary
target
Prior art date
Application number
PCT/CN2021/094204
Other languages
English (en)
French (fr)
Inventor
徐青松
李青
Original Assignee
杭州睿琪软件有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 杭州睿琪软件有限公司 filed Critical 杭州睿琪软件有限公司
Priority to US17/609,413 priority Critical patent/US20220319012A1/en
Publication of WO2021233266A1 publication Critical patent/WO2021233266A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/42Global feature extraction by analysis of the whole pattern, e.g. using frequency domain transformations or autocorrelation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local 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/457Local 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/48Extraction of image or video features by mapping characteristic values of the pattern into a parameter space, e.g. Hough transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/412Layout analysis of documents structured with printed lines or input boxes, e.g. business forms or tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20048Transform domain processing
    • G06T2207/20061Hough transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Definitions

  • the present disclosure relates to an edge detection method, an edge detection device, electronic equipment, and a non-transitory computer-readable storage medium.
  • the objects can be business cards, test papers, test sheets, documents, etc.
  • the photographed image not only contains the object, but also inevitably contains the external environment where the object is located.
  • the part of the image corresponding to the external environment is redundant for identifying the relevant information of the object in the image. Therefore, when the image is processed to obtain the relevant information of the object in the image, it is necessary to detect the edge of the object from the image in order to The object is extracted from the image according to the edge of the object.
  • At least one embodiment of the present disclosure provides an edge detection method, which includes: processing an input image to obtain a line drawing of gray-scale contours in the input image, wherein the input image includes an object with an edge, and the line The image includes multiple lines; the multiple lines are merged to obtain multiple reference boundary lines; the input image is processed through the first boundary region recognition model to obtain multiple lines corresponding to the object with edges.
  • Boundary regions for each of the multiple reference boundary lines, compare the reference boundary line with the multiple boundary regions, and calculate that the reference boundary line belongs to the multiple boundary regions
  • the number of pixels is used as the score of the reference boundary line to determine the scores corresponding to the multiple reference boundary lines one-to-one; according to the multiple reference boundary lines, the scores and the results
  • the multiple boundary regions determine multiple target boundary lines; and the edges of the object with edges in the input image are determined according to the multiple determined target boundary lines.
  • the reference boundary line is compared with the multiple boundary regions, and the pixels on the reference boundary line belonging to the multiple boundary regions are calculated
  • the number of, as the result of the reference boundary line includes: determining a boundary area matrix according to the multiple boundary areas; extending the reference boundary line to obtain an extended reference boundary line; and according to the extended reference boundary line Determine the line matrix with reference to the boundary line; compare the line matrix with the boundary area matrix, and calculate the number of pixels belonging to the boundary area matrix on the extended reference boundary line as the reference boundary line The result of, wherein the line matrix and the boundary region matrix have the same size.
  • determining a line matrix according to the extended reference boundary line includes: corresponding position information of pixels in the extended reference boundary line to an image In the matrix; the value of the pixel corresponding to the extended reference boundary line in the image matrix is set to a first value, and the pixel corresponding to the extended reference boundary line in the image matrix is set outside The value of the pixel points of is set to the second value, thereby forming the line matrix.
  • multiple target boundary lines are determined according to the multiple reference boundary lines, the scores of the multiple reference boundary lines, and the multiple boundary regions
  • the method includes: respectively converting the plurality of boundary regions into a plurality of straight line groups, wherein the plurality of straight line groups correspond to the plurality of boundary areas one-to-one, and each straight line group in the plurality of straight line groups includes at least A straight line; calculating a plurality of average slopes corresponding to the plurality of straight line groups one-to-one; calculating the slopes of the plurality of reference boundary lines respectively; for the i-th reference boundary line among the plurality of reference boundary lines, judge Whether the difference between the slope of the i-th reference boundary line and the average slope of the plurality of average slopes corresponding to the i-th reference boundary line is higher than a first slope threshold, where i is a positive integer, i Less than or equal to the number of the plurality of reference boundary lines; in response to the difference between the
  • the multiple boundary regions include a first boundary region, a second boundary region, a third boundary region, and a fourth boundary region
  • the multiple reference boundaries includes a first reference boundary line group corresponding to the first boundary area, a second reference boundary line group corresponding to the second boundary area, a third reference boundary line group corresponding to the third boundary area,
  • the fourth reference boundary line group corresponding to the fourth boundary area the method further includes: responding to the sum and the slope of all reference boundary lines in the selected reference boundary line group among the plurality of reference boundary lines The differences in the average slopes corresponding to the selected reference boundary line group are all higher than the first slope threshold, wherein the selected reference boundary line group is the first reference boundary line group or the first reference boundary line group.
  • a reference boundary line group or the third reference boundary line group or the fourth reference boundary line group obtaining a selected boundary area corresponding to the selected reference boundary line group, wherein the selected The boundary area is the first boundary area or the second boundary area or the third boundary area or the fourth boundary area; the selected boundary area is determined according to the line group corresponding to the selected boundary area The middle line of the straight line group corresponding to the boundary area is determined as the target boundary line corresponding to the selected boundary area.
  • determining the plurality of target boundary lines according to the plurality of intermediate target boundary lines includes: regarding the first of the plurality of intermediate target boundary lines k intermediate target boundary lines, the coincidence degree of the k-th intermediate target boundary line is judged to determine whether the k-th intermediate target boundary line is a target boundary line, wherein the k-th intermediate target boundary
  • the line coincidence judgment includes: calculating the pixels of the kth intermediate target boundary line that fall into the boundary area corresponding to the kth intermediate target boundary line and all pixels of the kth intermediate target boundary line Where k is a positive integer, k is less than or equal to the number of the plurality of intermediate target boundary lines; determining whether the ratio is greater than or equal to a ratio threshold; in response to the ratio being greater than or equal to the ratio threshold, determining the first
  • the k intermediate target boundary lines are target boundary lines, and the coincidence degree judgment is performed on the plurality of intermediate target boundary lines to determine the plurality of target boundary lines; in response to
  • respectively converting the multiple boundary regions into multiple straight line groups includes: using Hough transform to respectively convert the multiple boundary regions into the Multiple straight line groups.
  • processing the input image to obtain a line drawing of the gray contour in the input image includes: processing the input image through an edge detection algorithm To obtain a line drawing of the gray-scale contour in the input image.
  • processing an input image to obtain a line drawing of a gray-scale contour in the input image includes: processing the input image through a second boundary region recognition model The image is processed to obtain the multiple boundary regions; the multiple boundary regions are processed by an edge detection algorithm to obtain a line drawing of the gray contour in the input image.
  • the multiple reference boundary lines are divided into multiple reference boundary line groups corresponding to the multiple boundary regions one-to-one, and the multiple reference boundary lines
  • Each reference boundary line group in the line group includes at least one reference boundary line
  • merging the multiple lines to obtain the multiple reference boundary lines includes: processing similar lines in the multiple lines Merge to obtain a plurality of initial merged line groups, wherein the plurality of initial merged line groups correspond to the plurality of boundary regions one-to-one, and each initial merged line group of the plurality of initial merged line groups includes at least one Initial merging lines; determining a plurality of boundary connecting lines according to the plurality of initial merging line groups, wherein the plurality of boundary connecting lines correspond to the plurality of boundary regions in a one-to-one correspondence, and the plurality of boundary connecting lines correspond to all the boundary connecting lines.
  • the plurality of initial merged line groups also have a one-to-one correspondence; the plurality of boundary regions are respectively converted into a plurality of straight line groups, wherein the plurality of straight line groups correspond to the plurality of boundary regions one-to-one, and the plurality of Each straight line group in the straight line group includes at least one straight line; calculating a plurality of average slopes corresponding to the plurality of straight line groups one-to-one; calculating the slopes of the plurality of boundary connecting lines respectively; for the plurality of boundary connecting lines To determine whether the difference between the slope of the b1-th boundary connecting line and the average slope of the plurality of average slopes corresponding to the b1-th boundary connecting line is higher than the second slope Threshold, where b1 is a positive integer, and b1 is less than or equal to the number of the plurality of boundary connecting lines; responding to the difference between the slope of the b1-th boundary connecting line and the average slope corresponding to the b1-th boundary connecting line The value is lower than
  • combining similar lines in the plurality of lines to obtain a plurality of initial combined line groups includes: acquiring a plurality of the plurality of lines Long lines, wherein each long line in the plurality of long lines is a line whose length exceeds a length threshold; according to the plurality of long lines, a plurality of combined line groups are obtained, wherein, in the plurality of combined line groups Each combined line group includes at least two successively adjacent long lines, and the angle between any two adjacent long lines in each combined line group is less than an angle threshold; Each combined line group in the combined line group is combined, and each long line in the combined line group is sequentially combined to obtain an initial combined line corresponding to the combined line group, and the multiple combined line groups are respectively combined The processing determines the initial merged line in the plurality of initial merged line groups.
  • determining a plurality of boundary connecting lines according to the plurality of initial merging line groups includes: for the b2th of the plurality of initial merging line groups The initial merged line group, and the initial merged lines in the b2-th initial merged line group are sorted according to the arrangement direction of the initial merged lines in the b2-th initial merged line group to determine the b2-th initial merged line group The first initial merged line and the last initial merged line in the line group; the start point of the first initial merged line and the end point of the last initial merged line are connected to obtain the b2th initial merged line Set the corresponding boundary connecting lines to determine the plurality of boundary connecting lines, wherein b2 is a positive integer, and b2 is less than or equal to the number of the plurality of initial combined line groups.
  • the edge detection method provided by an embodiment of the present disclosure further includes: obtaining multiple intersection points of the multiple target boundary lines, and performing projection transformation on the multiple intersection points and the regions determined by the multiple target boundary lines To obtain a front view of the object with edges in the input image.
  • At least one embodiment of the present disclosure further provides an edge detection device, including: an acquisition module configured to process an input image to obtain a line drawing of gray contours in the input image, wherein the input image includes For edge objects, the line drawing includes multiple lines; a merging module configured to merge the multiple lines to obtain multiple reference boundary lines; a recognition module configured to recognize the model through the first boundary area The input image is processed to obtain multiple boundary regions corresponding to the object with edges; the score calculation module is configured to calculate the reference boundary line for each of the multiple reference boundary lines The boundary line is compared with the plurality of boundary areas, and the number of pixels belonging to the plurality of boundary areas on the reference boundary line is calculated as the result of the reference boundary line to determine the comparison with the plurality of reference boundary lines.
  • an acquisition module configured to process an input image to obtain a line drawing of gray contours in the input image, wherein the input image includes For edge objects, the line drawing includes multiple lines
  • a merging module configured to merge the multiple lines to obtain multiple reference boundary lines
  • a recognition module configured to recognize the
  • a plurality of scores corresponding to a boundary line a first determination module configured to determine a plurality of target boundary lines according to the plurality of reference boundary lines, the plurality of scores, and the plurality of boundary regions; second determination The module is configured to determine the edge of the object with the edge according to the determined boundary lines of the multiple targets.
  • the score calculation module performs comparison of the reference boundary line with the multiple boundary regions, and calculates that the reference boundary line belongs to the multiple boundary regions.
  • the score calculation module is configured to: determine a boundary area matrix according to the multiple boundary areas; extend the reference boundary line to Obtain the extended reference boundary line; determine a line matrix according to the extended reference boundary line; compare the line matrix with the boundary area matrix, and calculate that the extended reference boundary line belongs to the boundary area
  • the number of pixels in the matrix is used as the result of the reference boundary line, wherein the line matrix and the boundary area matrix have the same size.
  • the first determination module executes based on the multiple reference boundary lines, the scores of the multiple reference boundary lines, and the multiple boundary regions, When determining multiple target boundary lines, the first determining module is configured to: respectively convert the multiple boundary regions into multiple straight line groups, wherein the multiple straight line groups and the multiple boundary regions are one-to-one Correspondingly, each straight line group in the plurality of straight line groups includes at least one straight line; calculating a plurality of average slopes corresponding to the plurality of straight line groups one-to-one; calculating the slopes of the plurality of reference boundary lines respectively; The i-th reference boundary line among the plurality of reference boundary lines, and the difference between the slope of the i-th reference boundary line and the average slope corresponding to the i-th reference boundary line among the plurality of average slopes is determined Is higher than the first slope threshold, where i is a positive integer, i is less than or equal to the number of the multiple reference boundary lines; in response to the
  • the multiple boundary regions include a first boundary region, a second boundary region, a third boundary region, and a fourth boundary region
  • the multiple reference boundaries includes a first reference boundary line group corresponding to the first boundary area, a second reference boundary line group corresponding to the second boundary area, a third reference boundary line group corresponding to the third boundary area
  • the first determining module is further configured to: respond to all reference boundaries in the selected reference boundary line group among the plurality of reference boundary lines The difference between the slope of the line and the average slope corresponding to the selected reference boundary line group is higher than the first slope threshold, wherein the selected reference boundary line group is the first reference boundary line Group or the second reference boundary line group or the third reference boundary line group or the fourth reference boundary line group; acquiring the selected boundary area corresponding to the selected reference boundary line group, wherein, The selected boundary area is the first boundary area, the second boundary area, the third boundary area, or the fourth boundary area;
  • the first determining module when the first determining module executes the determination of the multiple target boundary lines based on the multiple intermediate target boundary lines, the first determining module Is configured to: for the k-th intermediate target boundary line among the plurality of intermediate target boundary lines, perform a coincidence degree judgment on the k-th intermediate target boundary line to determine whether the k-th intermediate target boundary line Is a target boundary line, wherein, judging the degree of coincidence of the kth intermediate target boundary line includes: calculating the value of the kth intermediate target boundary line that falls within the boundary area corresponding to the kth intermediate target boundary line The ratio of pixels to all the pixels of the k-th intermediate target boundary line, where k is a positive integer, and k is less than or equal to the number of the plurality of intermediate target boundary lines; judging whether the ratio is greater than or equal to a ratio threshold; In response to the ratio being greater than or equal to the ratio threshold, determining that the k-th intermediate target boundary line is a target
  • the multiple reference boundary lines are divided into multiple reference boundary line groups corresponding to the multiple boundary regions one-to-one, and the multiple reference boundaries
  • Each reference boundary line group in the line group includes at least one reference boundary line
  • the merging module is configured to: Similar lines in the plurality of lines are merged to obtain a plurality of initial merged line groups, wherein the plurality of initial merged line groups correspond to the plurality of boundary regions in a one-to-one correspondence, and the plurality of initial merged line groups are Each initial merging line group includes at least one initial merging line; according to the multiple initial merging line groups, multiple boundary connecting lines are determined, wherein the multiple boundary connecting lines correspond to the multiple boundary regions in a one-to-one correspondence , The plurality of boundary connecting lines and the plurality of initial merged line groups are also in one-to-one correspondence; the plurality of boundary regions are respectively converted into a pluralit
  • each straight line group in the plurality of straight line groups includes at least one straight line; a plurality of average slopes corresponding to the plurality of straight line groups one-to-one are calculated; Slope; for the b1-th boundary connecting line of the plurality of boundary connecting lines, determine the slope of the b1-th boundary connecting line and the average of the plurality of average slopes corresponding to the b1-th boundary connecting line Whether the slope difference is higher than the second slope threshold, where b1 is a positive integer, and b1 is less than or equal to the number of the plurality of boundary connecting lines; in response to the sum of the slopes of the b1th boundary connecting lines and the b1th The difference between the average slopes corresponding to the boundary connecting lines is lower than or equal to the second slope threshold, and the initial merged line in the initial merged line group corresponding to the b1-th boundary connecting line and the b1-th boundary connecting line As the reference boundary line in the reference
  • At least one embodiment of the present disclosure provides an electronic device, including a processor and a memory, where the memory is used to store computer-readable instructions; The steps of the method described.
  • At least one embodiment of the present disclosure provides a non-transitory computer-readable storage medium, wherein the computer-readable storage medium is used for non-transitory storage of computer-readable instructions, and the computer-readable instructions are executed by a processor When realizing the steps of the method described in any of the above embodiments.
  • FIG. 1 is a schematic flowchart of an edge detection method provided by at least one embodiment of the present disclosure
  • FIGS. 2A-2C are schematic diagrams of an input image provided by an embodiment of the present disclosure.
  • 3A-3C are schematic diagrams of another input image provided by an embodiment of the present disclosure.
  • FIG. 4 is a schematic diagram of a line merging process provided by an embodiment of the present disclosure.
  • FIG. 5 is a schematic block diagram of an edge detection device provided by at least one embodiment of the present disclosure.
  • FIG. 6 is a schematic block diagram of an electronic device provided by at least one embodiment of the present disclosure.
  • FIG. 7 is a schematic diagram of a non-transitory computer-readable storage medium provided by at least one embodiment of the present disclosure.
  • FIG. 8 is a schematic diagram of a hardware environment provided by at least one embodiment of the present disclosure.
  • At least one embodiment of the present disclosure provides an edge detection method, an edge detection device, an electronic device, and a non-transitory computer-readable storage medium.
  • the edge detection method includes: processing an input image to obtain a line drawing of gray contours in the input image, wherein the input image includes objects with edges, and the line drawing includes multiple lines; and the multiple lines are merged to Obtain multiple reference boundary lines; process the input image through the first boundary area recognition model to obtain multiple boundary areas corresponding to objects with edges; for each of the multiple reference boundary lines, the reference boundary The line is compared with multiple boundary areas, and the number of pixels belonging to multiple boundary areas on the reference boundary line is calculated as the score of the reference boundary line to determine the multiple scores corresponding to the multiple reference boundary lines one-to-one; Multiple reference boundary lines, multiple scores, and multiple boundary regions are determined to determine multiple target boundary lines; the edges of objects with edges in the input image are determined according to the determined multiple target boundary lines.
  • the line drawing of the gray contour in the input image is first obtained, the similar lines in the line drawing are merged to obtain multiple reference boundary lines, and at the same time, the pre-trained first boundary is passed.
  • the region recognition model processes the input image to obtain multiple boundary regions corresponding to the object, and then determines the score of each reference boundary line according to the number of pixels belonging to multiple boundary regions for each reference boundary line. Refer to the scores of the boundary lines and multiple boundary areas to determine multiple target boundary lines, and then determine objects with edges according to the multiple target boundary lines (ie, objects in the input image, such as business cards, test papers, test sheets, documents, etc.) The edges in the input image.
  • the reference boundary line is obtained from the input image, and the boundary area is recognized in combination with machine learning, so as to jointly determine the target boundary line of the object with the edge in the input image, which can quickly locate the object with the edge in the input image.
  • the position of the edge realizes the edge detection of the object with the edge in the input image, and also improves the accuracy of the edge detection.
  • the edge detection method provided by the embodiment of the present disclosure can be applied to the edge detection device provided by the embodiment of the present disclosure, and the edge detection device can be configured on an electronic device.
  • the electronic device may be a personal computer, a mobile terminal, etc.
  • the mobile terminal may be a hardware device such as a mobile phone or a tablet computer.
  • Fig. 1 is a schematic flowchart of an edge detection method provided by at least one embodiment of the present disclosure
  • Figs. 2A-2C are schematic diagrams of an input image provided by an embodiment of the present disclosure
  • Figs. 3A-3C are an implementation of the present disclosure The example provides a schematic diagram of another input image.
  • the edge detection method provided by an embodiment of the present disclosure includes steps S10 to S15.
  • step S10 the input image is processed to obtain a line drawing of the gray contour in the input image.
  • the input image includes objects with edges
  • the line drawing includes multiple lines
  • the line drawing is a grayscale image.
  • the input image is an image obtained by a user taking a photo of an object
  • the object may be, for example, business cards, test papers, test forms, documents, invoices, and so on.
  • the input image may be an image obtained by taking a photo of a test sheet; as shown in FIG. 3A, in some embodiments, the input image may be an image obtained by taking a photo of a business card.
  • the shape of the object to be recognized in the input image may be a regular shape such as a rectangle, or it may be an irregular shape. As shown in Fig. 2A and Fig. 2B, the shape of the test sheet and the shape of the business card are both rectangular. It is worth noting that in the present disclosure, "the shape of the object” means the general shape of the object. For example, when the shape of the object is a rectangle, each side of the rectangle may not be a straight line segment, but in the input image It may be a line segment with a small wave shape, a zigzag shape, etc.
  • the shape of the input image may also be a rectangle or the like.
  • the shape and size of the input image can be set by the user according to the actual situation.
  • the input image can be an image taken by a digital camera or a mobile phone, and the input image can be a grayscale image or a color image.
  • the input image may be an original image directly collected by an image collecting device, or an image obtained after preprocessing the original image.
  • the edge detection method may further include an operation of preprocessing the input image. Preprocessing can eliminate irrelevant information or noise information in the input image, so as to better process the input image.
  • step S10 may include: processing the input image through an edge detection algorithm to obtain a line drawing of gray contours in the input image.
  • the input image can be processed by an edge detection algorithm based on OpenCV to obtain a line drawing of the gray contour in the input image.
  • OpenCV is an open source computer vision library.
  • Edge detection algorithms based on OpenCV include Sobel, Scarry, Canny, Laplacian, Prewitt, Marr-Hildresh, scharr and many other algorithms.
  • the Canny edge detection algorithm is used in this embodiment.
  • the Canny edge detection algorithm is a multi-stage algorithm, that is, the Canny edge detection algorithm consists of multiple steps.
  • the Canny edge detection algorithm includes: 1.
  • Image noise reduction Gaussian Filter to smooth the image; 2. Calculate the image gradient: use the first-order partial derivative finite difference to calculate the gradient amplitude and direction; 3. Non-maximum suppression: perform non-maximum suppression on the gradient amplitude; 4. Threshold screening: use Double threshold algorithm detects and connects edges.
  • step S10 may include: processing the input image through the second boundary region recognition model to obtain multiple boundary regions; processing the multiple boundary regions through the edge detection algorithm to obtain the gray contours in the input image Line drawing.
  • multiple boundary regions are processed by an edge detection algorithm to obtain a line drawing of gray contours in the input image, including: processing multiple boundary regions to obtain multiple boundary region labeling boxes;
  • the detection algorithm processes multiple boundary regions labeled boxes, and obtains a line drawing of gray contours in the input image.
  • the second boundary region recognition model can be implemented using machine learning technology and run on a general-purpose computing device or a dedicated computing device, for example.
  • the second boundary region recognition model is a neural network model obtained by pre-training.
  • the second boundary region recognition model can be implemented using a neural network such as a deep convolutional neural network (DEEP-CNN).
  • DEEP-CNN deep convolutional neural network
  • the input image is input into the second boundary region recognition model, and the second boundary region recognition model can recognize the edges of objects with edges in the input image to obtain multiple boundary regions (that is, the boundaries of the objects). mask area); Then, the multiple identified boundary areas are labeled to determine multiple boundary area labeling boxes.
  • multiple boundary areas can be circumscribed by a rectangular box to label multiple boundary areas; finally, edge detection is used Algorithms (for example, the Canny edge detection algorithm, etc.) process the multiple marked boundary area marking boxes to obtain a line drawing of the gray contour in the input image.
  • Algorithms for example, the Canny edge detection algorithm, etc.
  • the edge detection algorithm only needs to perform edge detection on the marked border area label frame, and does not need to perform edge detection on the entire input image, thereby reducing the amount of calculation and improving the processing speed.
  • the boundary area labeling box marks a part of the input image.
  • step S10 may further include: performing binarization processing on the input image to obtain a binarized image of the input image; filtering out noise lines in the binarized image, so as to obtain a grayscale contour in the input image Line drawing.
  • corresponding filtering rules can be preset to filter out various line segments and various relatively small lines in the binary image, for example, to obtain a line drawing of the gray contour in the input image.
  • the line drawing is a binarized graph, and contour line segments are searched in the binarized graph, and these contour line segments are processed to obtain the boundary line of the final object, that is, input
  • the image is binarized in order to obtain the contour lines in the input image.
  • the line drawing can be contour lines with various character shapes.
  • the line drawing does not necessarily include only line segments.
  • the line drawing not only includes lines at the edge of the object, but may also include various line segments inside the object. Various line segments outside the object, etc.
  • each small line segment in the line drawing is in the form of an array.
  • each line segment is composed of the coordinate value of the pixel point corresponding to the starting point and the pixel point corresponding to the end point. The coordinate value is determined.
  • step S11 multiple lines are merged to obtain multiple reference boundary lines.
  • multiple reference boundary lines may be divided into multiple reference boundary line groups in one-to-one correspondence with multiple boundary regions (described in detail below), and each of the multiple reference boundary line groups includes at least one reference boundary line group. Refer to the boundary line.
  • step S11 may include: merging similar lines in a plurality of lines to obtain a plurality of initial merged line groups, wherein the plurality of initial merged line groups correspond to a plurality of boundary regions in a one-to-one manner, and the plurality of initial Each initial merging line group in the merging line group includes at least one initial merging line; according to the multiple initial merging line groups, multiple boundary connecting lines are determined, wherein the multiple boundary connecting lines correspond to the multiple boundary regions one-to-one, and more The boundary connecting lines also correspond to the multiple initial merged line groups one-to-one; the multiple boundary regions are respectively converted into multiple straight line groups, wherein the multiple straight line groups correspond to the multiple boundary areas one-to-one, and the multiple straight line groups Each straight line group in includes at least one straight line; calculates multiple average slopes corresponding to multiple straight line groups one-to-one; calculates the slopes of multiple boundary connecting lines separately; for the b1th boundary connecting line among the multiple boundary connecting lines , Determine whether the difference between the slope
  • the difference between the average slopes corresponding to the b1 boundary connecting lines is higher than the second slope threshold, and the initial merged line in the initial merge line group corresponding to the b1 boundary connecting line is taken as the boundary area corresponding to the b1 boundary connecting line Refer to the reference boundary lines in the boundary line group, and perform the above operations on multiple boundary connecting lines respectively, thereby determining multiple reference boundary lines.
  • the range of the second slope threshold may be 0-20 degrees, for example, 0-10 degrees.
  • the second slope threshold may be 5 degrees, 15 degrees, and so on.
  • the difference between the two slopes means the difference between the inclination angles corresponding to the two slopes.
  • the inclination angle corresponding to the slope of the b1th boundary connecting line can represent the angle between the b1th boundary connecting line with respect to a given direction (for example, the horizontal direction or the vertical direction), and the inclination angle corresponding to the average slope can be Represents the angle between the straight line determined based on the average slope and the given direction.
  • the inclination angle of the b1-th boundary connecting line (for example, the first inclination angle) and the inclination angle corresponding to the average slope of the b1-th boundary connecting line among the plurality of average slopes (for example, the second inclination angle) can be calculated.
  • the b1th boundary connecting line is not used as a reference boundary line; and if the first inclination angle and the second inclination angle The difference between the angles is lower than the second slope threshold, then the b1-th boundary connecting line can be used as a reference boundary line.
  • step S11 the similar lines in the multiple lines are merged to obtain multiple initial merged line groups, including: acquiring multiple long lines in the multiple lines, where each long line in the multiple long lines is Lines whose length exceeds the length threshold; according to multiple long lines, multiple combined line groups are obtained, where each combined line group in the multiple combined line groups includes at least two successively adjacent long lines, and each combined line The angle between any two adjacent long lines in the group is less than the angle threshold; for each combined line group in the multiple combined line groups, each long line in the combined line group is merged in turn to obtain the The initial merged lines corresponding to the merged line group are merged respectively on the multiple merged line groups to obtain the initial merged lines in the multiple initial merged line groups.
  • the number of all initial merging lines included in the multiple initial merging line groups is the same as the number of multiple merging line groups, and all the initial merging lines included in the multiple initial merging line groups correspond to the multiple merging line groups one-to-one. It should be noted that after the initial merged line corresponding to the merged line group is obtained based on the merged line group, the boundary area corresponding to the initial merged line can be determined based on the position of the initial merged line, thereby determining the initial merged line to which the initial merged line belongs. Combine groups of lines.
  • the long line in the line drawing refers to the line whose length exceeds the length threshold among the multiple lines in the line drawing.
  • a line with a length exceeding 2 pixels is defined as a long line, that is, the length threshold is 2.
  • the embodiments of the present disclosure include but are not limited to each pixel. In other embodiments, the length threshold may also be 3 pixels, 4 pixels, and so on. Only the long lines in the line drawing are obtained for subsequent merging, and some shorter lines in the line drawing are not considered. This can avoid the interference of lines inside and outside the object when merging the lines. For example, you can remove the text inside the object Corresponding lines to graphics, other objects outside the object, etc.
  • the combined line group can be obtained in the following manner: first select a long line T1, and then start from the long line T1, and sequentially determine whether the included angle between two adjacent long lines is less than the angle threshold.
  • the angle between a long line T2 and the long line adjacent to the long line T2 is not less than the angle threshold, you can add all the long lines T1, T2, and T1 to the long line T2.
  • Long lines that are adjacent in turn form a combined line group.
  • repeat the above process that is, starting from the long line adjacent to the long line T2, sequentially determine whether the angle between two adjacent long lines is less than the angle threshold, and so on, until all the long lines are traversed, and the result is Multiple combined line groups.
  • two adjacent long lines means two physically adjacent long lines, that is, there are no other long lines between the two adjacent long lines.
  • the initial merged line is multiple lines longer than the long line.
  • FIG. 4 is a schematic diagram of a line merging process provided by an embodiment of the disclosure.
  • the first long line A is selected first, and it is determined whether the angle between the long line A and the long line B adjacent to the long line A is less than the angle threshold.
  • the angle between B is less than the angle threshold, it means that the long line A and the long line B belong to the same combined line group, and then continue to determine the angle between the long line B and the long line C adjacent to the long line B Whether it is less than the angle threshold, if the angle between the long line B and the long line C is also less than the angle threshold, it means that the long line C, the long line B and the long line A belong to the same combined line group, and then continue to judge the long line The angle between C and the long line D adjacent to the long line C. If the angle between the long line C and the long line D is also less than the angle threshold, it means that the long line D, the long line C, the long line B and the long line Line A belongs to the same combined line group.
  • long line A, long line B, long line C, and long line D can be combined as one
  • the line group for example, the combined line group composed of the long line A, the long line B, the long line C, and the long line D can be the first combined line group.
  • the long line E it is determined whether the included angle between two adjacent long lines is less than the angle threshold, so that the long line G, the long line H, the long line I, and the long line J belong to a combined line group.
  • the combined line group consisting of long line G, long line H, long line I, and long line J can be the second combined line group
  • long line M, long line N, and long line O also belong to one combined line group, for example
  • the combined line group composed of the long line M, the long line N, and the long line O can be the third combined line group.
  • a long line can be arbitrarily selected from a plurality of long lines, for example, a long line D, and the long line adjacent to the long line D includes a long line C and a long line E, then the long line is judged to be long Whether the angle between the line D and the long line C is less than the angle threshold, judge whether the angle between the long line D and the long line E is less than the angle threshold, because the angle between the long line D and the long line C is less than the angle threshold , The long line D and the long line C belong to the same combined line group.
  • the long line D and the long line E belong to different combined line groups, and then, On the one hand, you can continue to determine the angle between other long lines that are adjacent to each other from the long line C, so as to determine other long lines that belong to the same combined line group as the long line D. In addition, you can also determine other combined line groups. ; On the other hand, starting from the long line E, the angle between other long lines that are adjacent to each other can be judged to determine other combined line groups.
  • long line A, long line B, long line C, and long line D belong to a combined line group
  • long line G, long line H, long line I, and long line J belong to a combined line group
  • the long line M, the long line N, and the long line O also belong to a combined line group.
  • the value of the angle threshold may be set according to actual conditions.
  • the range of the angle threshold may be 0-20 degrees, for example, 0-10 degrees.
  • the angle threshold may be 5 degrees, 15 degrees, and so on.
  • merging two long lines refers to averaging the slopes of the two long lines to obtain the average value of the slopes.
  • the average value of the slopes is the slope of the merged line.
  • the merging of two long lines is calculated based on the array form of two long lines.
  • the two long lines are the first long line and the second long line, and the merging of the two long lines means that the first long line is combined.
  • the starting point of the line (that is, the line segment head) and the end point of the second long line (that is, the end of the line segment) are directly connected to form a new longer line, that is, in the coordinate system corresponding to the line drawing, the first long line
  • the starting point and the end point of the second long line are directly connected in a straight line to obtain the merged line.
  • the coordinate value of the pixel point corresponding to the starting point of the first long line is taken as the coordinate value of the pixel point corresponding to the starting point of the merged line
  • the first The coordinate value of the pixel point corresponding to the end point of the two long lines is used as the coordinate value of the pixel point corresponding to the end point of the merged line.
  • the coordinate value of the pixel point corresponding to the start point of the merged line and the pixel point corresponding to the end point of the merged line form an array of merged lines and store the array.
  • the long lines in each combined line group are sequentially combined to obtain the corresponding initial combined line.
  • the long line A, long line B, long line C, and long line D in the first combined line group are sequentially combined to obtain the initial combined line corresponding to the combined line group. For example, first, you can combine the long line The line A and the long line B are merged to obtain the first merged line. Then, the first merged line and the long line C are merged to obtain the second merged line. Then, the second merged line is merged with the long line D to obtain the first merged line.
  • the initial merged line 1 corresponding to a merged line group.
  • the long lines in the second combined line group are combined to obtain the initial combined line 2 corresponding to the second combined line group
  • the long lines in the third combined line group are combined to obtain the The initial merged line 3 corresponding to the third merged line group.
  • step S11 determining multiple boundary connecting lines according to the multiple initial merging line groups, including: for the b2-th initial merging line group in the multiple initial merging line groups, according to the initial merging line group in the b2-th initial merging line group
  • the arrangement direction of the merged lines sorts the initial merged lines in the b2th initial merged line group to determine the first initial merged line and the last initial merged line in the b2th initial merged line group; the first initial merged line
  • the start point of the merged line and the end point of the last initial merged line are connected to obtain the boundary connecting line corresponding to the b2th initial merged line group, and the above operations are performed on multiple initial merged line groups respectively to determine multiple boundary connecting lines.
  • b2 is a positive integer, and b2 is less than or equal to the number of multiple initial combined line groups.
  • a certain initial merged line group includes initial merged lines 1, 2, 3, the initial merged lines 1, 2, and 3 are roughly arranged along the first direction. Sort 1, 2, and 3 to determine that the first initial merged line in the initial merged line group is the initial merged line 1, and the last initial merged line is the initial merged line 3. Then, the starting point of the initial merged line 1 and The end points of the initial merged line 3 are connected to obtain the boundary connecting line 12 corresponding to the initial merged line group.
  • the initial merging line group corresponding to the boundary connecting line 12 and the boundary connecting line 12 is used as the reference boundary line in the reference boundary line group corresponding to the boundary area corresponding to the boundary connecting line 12.
  • the reference boundary line in the reference boundary line group includes the boundary connection Line 12 and the initial merged lines 1, 2, 3; if the difference between the slope of the boundary connecting line 12 and the average slope corresponding to the boundary connecting line 12 is higher than the second slope threshold, the initial merged line group corresponding to the boundary connecting line 12
  • the initial merging lines ie, the initial merging lines 1, 2, and 3) in, are used as the reference boundary lines in the reference boundary line group corresponding to the boundary area corresponding to the boundary connecting line 12.
  • the reference boundary lines in the reference boundary line group include Initially merge lines 1, 2, 3.
  • an initial merged line group includes only one initial merged line, then the first initial merged line in the initial merged line group is the same as the last initial merged line, that is, the initial merged line is the initial merged line.
  • the first initial merged line in the merged line group serves as the last initial merged line in the initial merged line group.
  • the first direction may be a horizontal direction or a vertical direction.
  • Multiple reference boundary lines can also be stored in the form of an array.
  • interference lines include text and graphics inside the object, other objects outside the object, etc.
  • the corresponding lines are obtained after merging. Long lines, these interference lines will be removed according to subsequent processing and rules.
  • step S12 the input image is processed by the first boundary region recognition model to obtain multiple boundary regions corresponding to objects with edges.
  • the first boundary region recognition model can be implemented using machine learning technology and run on a general-purpose computing device or a dedicated computing device, for example.
  • the first boundary region recognition model is a neural network model obtained by pre-training.
  • the first boundary region recognition model can be implemented using a neural network such as a deep convolutional neural network (DEEP-CNN).
  • DEEP-CNN deep convolutional neural network
  • the first boundary region recognition model and the second boundary region recognition model may be the same model.
  • the first boundary region recognition model is established through machine learning training.
  • the first boundary region recognition model can be obtained through the following process: labeling each image sample in the image sample set to label the object in each image sample The boundary line area, the inner area and the outer area of, and the neural network is trained through the image sample set after the annotation processing to obtain the first boundary area recognition model.
  • the first boundary region recognition model established through machine learning training recognizes the input image, which can identify the boundary area, the inner area (that is, the area where the object is located), and the outer area (that is, the outer area of the object) in the input image. , So as to obtain each boundary area of the input image.
  • the edge contour in the boundary area is relatively thick.
  • the shape of the object may be a rectangle, and the number of boundary regions may be 4, that is, the input image is recognized through the first boundary region recognition model, so that four boundary regions corresponding to the four sides of the rectangle can be obtained. .
  • the plurality of boundary areas includes a first boundary area, a second boundary area, a third boundary area, and a fourth boundary area.
  • the first boundary area may represent the area corresponding to the boundary line a1
  • the second boundary area may represent the area corresponding to the boundary line a2
  • the third boundary area may represent the area corresponding to the boundary line a3.
  • the fourth boundary area may represent the area corresponding to the boundary line a4; in other embodiments, as shown in FIG.
  • the first boundary area may represent the area corresponding to the boundary line b1
  • the second boundary area may Represents the area corresponding to the boundary line b2
  • the third boundary area may represent the area corresponding to the boundary line b3
  • the fourth boundary area may represent the area corresponding to the boundary line b4.
  • the boundary area of the object in the input image is recognized through the first boundary area recognition model, and then, the target boundary line is determined from multiple reference boundary lines based on the boundary area, which can remove the misidentified interference line. For example, lines falling into the middle of a business card or document, lines in the middle of a table, etc.
  • step S13 for each of the multiple reference boundary lines, the reference boundary line is compared with the multiple boundary regions, and the pixel points belonging to the multiple boundary regions are calculated on the reference boundary line.
  • the number is used as the score of the reference boundary line, and the above-mentioned processing is performed on the multiple reference boundary lines respectively to determine the multiple scores corresponding to the multiple reference boundary lines one-to-one.
  • step S13 the reference boundary line is compared with multiple boundary areas, and the number of pixels belonging to the multiple boundary areas on the reference boundary line is calculated as the result of the reference boundary line, including: determining the boundary based on the multiple boundary areas Area matrix; extend the reference boundary line to obtain the extended reference boundary line; determine the line matrix according to the extended reference boundary line; compare the line matrix with the boundary area matrix, and calculate that the extended reference boundary line belongs to the boundary area The number of pixels in the matrix is used as the reference boundary line score.
  • the boundary area matrix is determined in the following way: the position information of the pixels of the multiple boundary areas is mapped to the entire boundary image matrix, the values of the pixel locations of the multiple boundary areas in the boundary image matrix are set to the first value, and the The values of the positions of the multiple pixels outside the boundary area are set to the second value, thereby forming a boundary area matrix.
  • the first numerical value and the second numerical value represent grayscale values.
  • the size of the boundary area matrix can be the same as the size of the image matrix corresponding to the input image. For example, if the size of the input image is 1024 ⁇ 1024 pixels, the image matrix corresponding to the input image is a 1024 ⁇ 1024 matrix, and the boundary area matrix is also a 1024 ⁇ 1024 matrix.
  • the first pre-fill matrix can be set according to the size of the image matrix, and the values of the first pre-fill matrix can be filled according to the positions of the multiple boundary regions corresponding to the first pre-fill matrix.
  • the multiple boundary regions correspond to the first pre-fill matrix.
  • the value of the pixel at the position in the pre-filled matrix is set to the first value, for example, the first value is 255.
  • the value of the pixel at other positions than the positions corresponding to the multiple boundary regions The value is set to a second value, for example, the second value is 0, thereby forming a boundary region matrix.
  • the following exemplarily provides a boundary area matrix, which is a 10 ⁇ 10 matrix.
  • the positions of pixels with a value of 255 are connected to form multiple boundary areas. For example, all pixels with a value of 255 located in the first row and the second row form a boundary area.
  • one boundary area matrix may be obtained based on multiple boundary areas; and multiple boundary area matrices corresponding to multiple boundary areas may be obtained respectively according to multiple boundary areas.
  • the line matrix and the boundary area matrix have the same size.
  • the number of pixels on the reference boundary line that belong to the boundary area corresponding to the reference boundary line can be calculated as the score of the reference boundary line.
  • the reference boundary line can be combined with the reference boundary line. The boundary area matrix corresponding to the boundary area corresponding to the boundary line is compared to obtain the result of the reference boundary line.
  • Determining the line matrix according to the extended reference boundary line includes: corresponding the position information of the pixel points in the extended reference boundary line to the image matrix; setting the value of the pixel points in the image matrix corresponding to the extended reference boundary line Is the first value, and the values of pixels other than the pixels corresponding to the extended reference boundary line in the image matrix are set to the second value, thereby forming a line matrix.
  • each reference boundary line When determining the performance of each reference boundary line, first, for each reference boundary line, the reference boundary line is extended, and the line matrix corresponding to the reference boundary line is determined according to the extended reference boundary line; The line matrix is compared with the boundary area matrix, that is, how many pixels on the extended reference boundary line belong to the boundary area matrix, and the number of pixels belonging to the boundary area matrix on the extended reference boundary line is calculated as the reference boundary Line grades.
  • the line matrix can be determined in the following way: the second pre-fill matrix can be set according to the size of the image matrix; the extended reference boundary line is redrawn, and the position information of the pixels in the redrawn line corresponds to the second pre-fill In the matrix, the value of the pixel at the position of the redrawn line in the second pre-filled matrix is set to the first value, and the value of the pixel at the position other than the position of the redrawn line is set to the second value, thereby forming The line matrix corresponding to the reference boundary line.
  • the formation of the line matrix is similar to the formation of the boundary region matrix, and will not be repeated here. It should be noted that the image matrix represents the pixel matrix corresponding to the input image.
  • each extended reference boundary line needs to be formed as actual line data.
  • Each extended reference boundary line can be re-created, for example, with a line width of 2 pixels. Draw, so as to obtain the coordinate value of the pixel corresponding to each extended reference boundary line, and then fill the second pre-fill matrix with values according to the coordinate value of the pixel corresponding to each extended reference boundary line to obtain Line matrix. For example, the value of the pixel at the position corresponding to the extended reference boundary line in the second pre-filled matrix is set to 255, and the value of the pixel at the remaining positions other than the position corresponding to the extended reference boundary line is set to 0.
  • the line matrix formed by an extended reference boundary line is as follows. By comparing the line matrix with the boundary area matrix, it can be seen that 7 pixels on the extended reference boundary line fall into the boundary area In the matrix, the result of the reference boundary line is 7.
  • step S14 multiple target boundary lines are determined according to multiple reference boundary lines, multiple scores, and multiple boundary regions. After determining the scores of each reference boundary line, multiple target boundary lines are determined from the multiple reference boundary lines according to the scores of each reference boundary line.
  • step S14 determining multiple target boundary lines according to multiple reference boundary lines, multiple results, and multiple boundary regions includes: respectively converting the multiple boundary regions into multiple straight line groups; calculating the same as the multiple straight line groups One corresponding multiple average slopes; calculate the slopes of multiple reference boundary lines separately; for the i-th reference boundary line among the multiple reference boundary lines, determine the slope of the i-th reference boundary line and the number of average slopes.
  • the difference of the average slopes corresponding to i reference boundary lines is higher than the first slope threshold, where i is a positive integer and i is less than or equal to the number of multiple reference boundary lines; in response to the sum of the slopes of the i-th reference boundary line and The difference of the average slope corresponding to the i-th reference boundary line is less than or equal to the first slope threshold, the i-th reference boundary line is determined to be the target reference boundary line, and the above operations are performed on multiple reference boundary lines respectively, so as to obtain from multiple reference boundary lines.
  • the range of the first slope threshold may be 0-20 degrees, for example, 0-10 degrees.
  • the first slope threshold may be 5 degrees, 15 degrees, and so on.
  • the first slope threshold and the second slope threshold may be the same or different, which is not limited in the embodiment of the present disclosure.
  • Each reference boundary line corresponds to only one average slope. As shown in Figure 2, if the first boundary area represents the area corresponding to the boundary line a1, and a certain reference boundary line represents the reference boundary line corresponding to the boundary line a1, then the certain The average slope corresponding to each reference boundary line is the average slope determined according to the straight line group corresponding to the first boundary area.
  • the multiple straight line groups correspond to the multiple boundary regions one-to-one, and each straight line group in the multiple straight line groups includes at least one straight line.
  • respectively converting the multiple boundary regions into multiple straight line groups includes: using Hough transform to respectively convert the multiple boundary regions into multiple straight line groups. It should be noted that other methods may also be used to convert the boundary region into a straight line group, which is not limited in this embodiment.
  • the multiple intermediate target boundary lines include a first intermediate target boundary line group corresponding to the first boundary area, a second intermediate target boundary line group corresponding to the second boundary area, and a third intermediate target boundary line corresponding to the third boundary area Group, the fourth intermediate target boundary line group corresponding to the fourth boundary area.
  • the number of the multiple target boundary lines is 4, and includes a target boundary line corresponding to the first boundary area, a target boundary line corresponding to the second boundary area, and a target boundary line corresponding to the third boundary area. , The target boundary line corresponding to the fourth boundary area.
  • the multiple intermediate target boundary lines The scores are sorted, the middle target boundary line with the highest score in the first middle target boundary line group is taken as the target boundary line corresponding to the first boundary area, and the middle target boundary line with the highest score in the second middle target boundary line group is taken as the and The target boundary line corresponding to the second boundary area; the middle target boundary line with the highest score in the third middle target boundary line group is taken as the target boundary line corresponding to the third boundary area; the fourth middle target boundary line group is the highest score
  • the intermediate target boundary line serves as the target boundary line corresponding to the fourth boundary area.
  • the multiple reference boundary lines include a first reference boundary line group corresponding to the first boundary area, a second reference boundary line group corresponding to the second boundary area, a third reference boundary line group corresponding to the third boundary area, and a first reference boundary line group corresponding to the third boundary area.
  • the fourth reference boundary line group corresponding to the four boundary regions.
  • the edge detection method provided by the embodiment of the present disclosure further includes: responding to the slopes of all reference boundary lines in the selected reference boundary line group among the plurality of reference boundary lines and the average slope corresponding to the selected reference boundary line group. The differences are all higher than the first slope threshold; the selected boundary area corresponding to the selected reference boundary line group is obtained; according to the line group corresponding to the selected boundary area, the center line of the line group corresponding to the selected boundary area is determined , Determine the center line as the target boundary line corresponding to the selected boundary area.
  • the target boundary corresponding to the first boundary area may be determined based on the line group corresponding to the first boundary area String. Provided that there is no contradiction, the above description of the first boundary area is also applicable to the second boundary area, the third boundary area, and the fourth boundary area.
  • the selected reference boundary line group is any one of the first reference boundary line group, the second reference boundary line group, the third reference boundary line group, and the fourth reference boundary line group.
  • the selected boundary area is any one of the first boundary area, the second boundary area, the third boundary area, and the fourth boundary area.
  • the selected reference boundary line group is the first reference boundary line group
  • the selected boundary area is the first boundary area
  • the selected reference boundary line group is the second reference boundary line group
  • the boundary area is the second boundary area
  • when the selected reference boundary line group is the third reference boundary line group, the selected boundary area is the third boundary area
  • the selected reference boundary line group is the fourth reference boundary line Group, the selected boundary area is the fourth boundary area.
  • determining the midline of the straight line group corresponding to the selected boundary area includes: averaging the coordinate values of the multiple starting points of the multiple straight lines in the straight line group, To determine the coordinate value of the starting point of the midline; average the coordinate values of the multiple end points of the multiple straight lines in the straight line group to determine the coordinate value of the end point of the midline, thereby determining the midline of the straight line group.
  • determining the midline of the straight line group corresponding to the selected boundary area according to the straight line group corresponding to the selected boundary area includes: selecting L straight lines whose length is greater than a certain threshold among the plurality of straight lines in the straight line group (For example, 10 straight lines); average the coordinate values of the L starting points of the L straight lines to determine the coordinate values of the starting point of the midline; average the coordinate values of the L end points of the L straight lines to determine the end point of the midline The coordinate values of, thus determine the center line of the L straight lines.
  • step S14 determining multiple intermediate target boundary lines according to the scores of the reference boundary lines corresponding to the multiple target reference boundary lines, including: taking the target reference boundary line of the multiple target reference boundary lines whose scores are greater than the score threshold as the intermediate target borderline.
  • the performance threshold can be preset by the user according to the actual situation.
  • step S14 determining multiple target boundary lines according to the multiple intermediate target boundary lines, including: for the kth intermediate target boundary line among the multiple intermediate target boundary lines, perform the coincidence degree on the kth intermediate target boundary line Judgment to determine whether the k-th intermediate target boundary line is the target boundary line.
  • the coincidence degree judgment is performed on the boundary line of the intermediate target to determine the boundary line of the target, thereby the accuracy of the boundary line of the obtained target can be improved, and the edge of the determined object can be more accurate.
  • Judging the coincidence degree of the k-th intermediate target boundary line includes: calculating the pixels of the k-th intermediate target boundary line that fall into the boundary area corresponding to the k-th intermediate target boundary line and all pixels of the k-th intermediate target boundary line Point ratio, where k is a positive integer, k is less than or equal to the number of multiple intermediate target boundary lines; judge whether the ratio is greater than or equal to the ratio threshold; in response to the ratio being greater than or equal to the ratio threshold, determine the kth intermediate target boundary line as the target boundary Line, the coincidence degree of multiple intermediate target boundary lines is judged to determine multiple target boundary lines; in response to the ratio being less than the ratio threshold, the kth intermediate target boundary line is deleted, and the multiple intermediate target boundary lines except the kth Any intermediate target boundary line outside the intermediate target boundary line (for example, the (k+1)th intermediate target boundary line) is judged for the degree of coincidence.
  • the ratio threshold may be 80%. Determine the ratio of pixels in each intermediate target boundary line that fall into the boundary area corresponding to the intermediate target boundary line and all pixels in each intermediate target boundary line. If the ratio is less than 80%, it means the percentage of the intermediate target boundary line The coincidence is not good, so the intermediate target boundary line is abandoned. When the proportions corresponding to all intermediate target boundary lines are less than the proportion threshold, the line segment between the intersection of the input image and the extension line of the adjacent determined target boundary line is directly selected as the target boundary line. For example, as shown in FIG.
  • the input image and the two second boundary lines of the extension line of the target boundary line corresponding to the second boundary area can be determined.
  • An intersection point determine the two second intersection points of the extension line of the target boundary line corresponding to the input image and the fourth boundary area, for example, take the first intersection point and the two second intersection points on the lower side of the input image among the two first intersection points
  • the line segment located between the second intersection points on the lower side of the input image is used as the target boundary line corresponding to the third boundary area.
  • step S15 the edges of the objects with edges in the input image are determined according to the determined multiple target boundary lines.
  • each target boundary line corresponds to a boundary area of the object in the input image
  • the multiple target boundary lines constitute the edge of the object.
  • the input image shown in Figure 2A the edge of the object in the input image is composed of the four longer lines in Figure 2B, namely the target boundary lines a1, a2, a3, a4; the input image shown in Figure 3A, the input image
  • the edge of the object is composed of the four longer lines in FIG. 3B, namely the target boundary lines b1, b2, b3, and b4.
  • the edge detection method further includes: obtaining multiple intersection points of multiple target boundary lines, and performing projection transformation on the multiple intersection points and regions determined by the multiple target boundary lines to obtain a front view of the object in the input image.
  • Projective transformation is to project a picture to a new viewing plane (Viewing Plane), also called Projective Mapping. Since the real shape of the object in the input image obtained by taking a photo has changed in the input image, that is, geometric distortion has occurred. In the input image shown in FIG. 2A, the shape of the test sheet is originally rectangular, but the shape of the test sheet in the input image has changed, and the shape of the test sheet becomes a parallelogram.
  • the projective transformation of the area where the object in the input image is located can transform the area where the object is located in the input image from a parallelogram to a rectangle, that is, the area where the object is located in the input image is corrected, thereby removing the influence of geometric distortion, and obtaining the input image Front view of the object.
  • the projection transformation is to process the pixels to obtain the front view according to the space projection conversion coordinates, which will not be repeated here.
  • the input image shown in Figure 2A, the front view of the object in the final input image (ie the test sheet) is shown in Figure 2C; the input image shown in Figure 3A, the object in the final input image (ie the business card)
  • the front view of) is shown in Figure 3C.
  • FIG. 5 is a schematic block diagram of an edge detection device provided by at least one embodiment of the present disclosure.
  • the edge detection device 500 may include: an acquisition module 501, a merging module 502, an identification module 503, a score calculation module 504, a first determination module 505, and a second determination module 506.
  • the acquiring module 501 is configured to process the input image to obtain a line drawing of the gray contour in the input image.
  • the input image includes objects with edges, and the line drawing includes multiple lines.
  • the merging module 502 is configured to merge multiple lines to obtain multiple reference boundary lines.
  • the recognition module 503 is configured to process the input image through the first boundary region recognition model to obtain multiple boundary regions corresponding to objects with edges.
  • the score calculation module 504 is configured to compare the reference boundary line with the multiple boundary regions for each of the multiple reference boundary lines, and calculate the number of pixels belonging to the multiple boundary regions on the reference boundary line, As the score of the reference boundary line, multiple scores corresponding to the multiple reference boundary lines one-to-one are determined.
  • the first determining module 505 is configured to determine multiple target boundary lines based on multiple reference boundary lines, multiple achievements, and multiple boundary regions.
  • the second determining module 506 is configured to determine the edge of the object with the edge according to the determined multiple target boundary lines.
  • the score calculation module 504 is configured to: determine a boundary area matrix according to multiple boundary areas; extend the reference boundary line to obtain the extended reference boundary line; determine the line matrix according to the extended reference boundary line; combine the line matrix with the boundary area The matrix is compared, and the number of pixels belonging to the boundary area matrix on the extended reference boundary line is calculated as the result of the reference boundary line.
  • the line matrix has the same size as the boundary region matrix.
  • the first determining module 505 when the first determining module 505 performs the operation of determining multiple target boundary lines based on the multiple reference boundary lines, the scores of the multiple reference boundary lines, and the multiple boundary regions, the first determining module 505 is configured to : Convert multiple boundary areas into multiple straight line groups respectively, where multiple straight line groups correspond to multiple boundary areas one-to-one, and each straight line group in the multiple straight line groups includes at least one straight line; calculation is related to multiple straight line groups One-to-one corresponding multiple average slopes; calculate the slopes of multiple reference boundary lines separately; for the i-th reference boundary line among the multiple reference boundary lines, determine the slope of the i-th reference boundary line and the multiple average slopes Whether the difference in the average slope corresponding to the i-th reference boundary line is higher than the first slope threshold, where i is a positive integer, and i is less than or equal to the number of multiple reference boundary lines; in response to the slope sum of the i-th reference boundary line The difference of the average slope corresponding to the i-
  • the plurality of boundary regions includes a first boundary region, a second boundary region, a third boundary region, and a fourth boundary region
  • the plurality of reference boundary lines includes a first reference boundary line group corresponding to the first boundary region.
  • the first determining module 505 is further configured to respond to the difference between the slopes of all the reference boundary lines in the selected reference boundary line group among the plurality of reference boundary lines and the average slope corresponding to the selected reference boundary line group Are higher than the first slope threshold, where the selected reference boundary line group is the first reference boundary line group or the second reference boundary line group or the third reference boundary line group or the fourth reference boundary line group;
  • the reference boundary line group corresponds to the selected boundary area, where the selected boundary area is the first boundary area or the second boundary area or the third boundary area or the fourth boundary area; according to the straight line corresponding to the selected boundary area Group, determine the center line of the line group corresponding to the selected boundary area, and determine the center line as the target boundary line corresponding to the selected boundary area.
  • the first determining module 505 determines multiple target boundary lines based on the multiple intermediate target boundary lines
  • the first determining module 505 is configured to: for the kth intermediate target boundary line among the multiple intermediate target boundary lines Target boundary line, the coincidence degree of the k-th intermediate target boundary line is judged to determine whether the k-th intermediate target boundary line is the target boundary line.
  • Judging the coincidence degree of the k-th intermediate target boundary line includes: calculating the pixels of the k-th intermediate target boundary line that fall into the boundary area corresponding to the k-th intermediate target boundary line and all pixels of the k-th intermediate target boundary line Point ratio, where k is a positive integer, k is less than or equal to the number of multiple intermediate target boundary lines; judge whether the ratio is greater than or equal to the ratio threshold; in response to the ratio being greater than or equal to the ratio threshold, determine the kth intermediate target boundary line as the target boundary Therefore, multiple target boundary lines are determined; in response to the ratio being less than the ratio threshold, delete the kth intermediate target boundary line, and continue to check any of the multiple intermediate target boundary lines except the kth intermediate target boundary line The boundary line of the intermediate target is used to judge the coincidence degree.
  • the acquiring module 501 when the acquiring module 501 performs processing on the input image to obtain a line drawing of the gray contour in the input image, the acquiring module 501 is configured to process the input image through the second boundary region recognition model to obtain Multiple boundary regions; multiple boundary regions are processed to obtain multiple boundary region labeling boxes; multiple boundary region labeling boxes are processed by edge detection algorithms to obtain a line drawing of gray contours in the input image.
  • the multiple reference boundary lines are divided into multiple reference boundary line groups in one-to-one correspondence with the multiple boundary regions, and each reference boundary line group in the multiple reference boundary line groups includes at least one reference boundary line.
  • the merging module 502 performs merging processing of multiple lines to obtain multiple reference boundary lines
  • the merging module 502 is configured to merge similar lines in the multiple lines to obtain multiple initial merged line groups, wherein Each initial merged line group in the multiple initial merged line groups includes at least one initial merged line; according to the multiple initial merged line groups, multiple boundary connecting lines are determined, Among them, multiple boundary connecting lines correspond to multiple boundary regions one-to-one, and multiple boundary connecting lines correspond to multiple initial merged line groups one-to-one;
  • the multiple boundary regions are converted into multiple straight line groups respectively, among which, multiple The straight line group corresponds to multiple boundary regions one to one, and each straight line group in the multiple straight line groups includes at least one straight line; calculates multiple average slopes corresponding to multiple straight line groups one-to-one; calculates the slopes of multiple boundary
  • the acquisition module 501, the merging module 502, the recognition module 503, the score calculation module 504, the first determination module 505, and/or the second determination module 506 include codes and programs stored in a memory; the processor can execute The code and program implement some or all of the functions of the acquisition module 501, the merging module 502, the recognition module 503, the score calculation module 504, the first determination module 505, and/or the second determination module 506 as described above.
  • the acquisition module 501, the merging module 502, the recognition module 503, the score calculation module 504, the first determination module 505, and/or the second determination module 506 may be dedicated hardware devices to implement the acquisition module 501, the merging module described above.
  • the acquisition module 501, the merging module 502, the recognition module 503, the score calculation module 504, the first determination module 505, and/or the second determination module 506 may be one circuit board or a combination of multiple circuit boards to implement the above The functions described.
  • the one circuit board or the combination of multiple circuit boards may include: (1) one or more processors; (2) one or more non-transitory memories connected to the processors; and (3) The firmware stored in the memory executable by the processor.
  • the acquisition module 501 is used to implement step S10 shown in FIG. 1
  • the merging module 502 is used to implement step S11 shown in FIG. 1
  • the identification module 503 is used to implement step S12 shown in FIG. 504 is used to implement step S13 shown in FIG. 1
  • the first determination module 505 is used to implement step S14 shown in FIG. 1
  • the second determination module 506 is used to implement step S15 shown in FIG. 1. Therefore, for the specific description of the functions that can be implemented by the acquisition module 501, the merging module 502, the recognition module 503, the score calculation module 504, the first determination module 505, and the second determination module 506, please refer to FIG. 1 in the embodiment of the above-mentioned edge detection method. The relevant descriptions of steps S10-S15 shown are not repeated here.
  • the edge detection device can achieve similar technical effects as the foregoing edge detection method, and will not be repeated here.
  • FIG. 6 is a schematic block diagram of an electronic device provided by at least one embodiment of the present disclosure.
  • the electronic device includes a processor 601, a communication interface 602, a memory 603, and a communication bus 604.
  • the processor 601, the communication interface 602, and the memory 603 communicate with each other through the communication bus 604, and components such as the processor 601, the communication interface 602, and the memory 603 may also communicate through a network connection.
  • the present disclosure does not limit the types and functions of the network here. It should be noted that the components of the electronic device shown in FIG. 6 are only exemplary and not restrictive. According to actual application requirements, the electronic device may also have other components.
  • the memory 603 is used for non-transitory storage of computer-readable instructions.
  • the processor 601 is used to implement the edge detection method according to any of the foregoing embodiments when executing computer-readable instructions.
  • the edge detection method and related explanation content please refer to the above-mentioned embodiment of the edge detection method, which will not be repeated here.
  • edge detection method implemented by the processor 601 executing the computer-readable instructions stored in the memory 603 are the same as the implementations mentioned in the foregoing method embodiments, and will not be repeated here.
  • the communication bus 604 may be a Peripheral Component Interconnection Standard (PCI) bus or an Extended Industry Standard Architecture (EISA) bus or the like.
  • PCI Peripheral Component Interconnection Standard
  • EISA Extended Industry Standard Architecture
  • the communication bus can be divided into address bus, data bus, control bus and so on. For ease of representation, only one thick line is used in the figure, but it does not mean that there is only one bus or one type of bus.
  • the communication interface 602 is used to implement communication between the electronic device and other devices.
  • the processor 601 and the memory 603 may be provided on the server side (or the cloud).
  • the processor 601 may control other components in the electronic device to perform desired functions.
  • the processor 601 may be a central processing unit (CPU), a network processing unit (NP), a tensor processor (TPU), or a graphics processing unit (GPU) and other devices with data processing capabilities and/or program execution capabilities; it may also be Digital signal processor (DSP), application specific integrated circuit (ASIC), field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic device, discrete hardware component.
  • the central processing unit (CPU) can be an X86 or ARM architecture.
  • the memory 603 may include any combination of one or more computer program products, and the computer program product may include various forms of computer-readable storage media, such as volatile memory and/or non-volatile memory.
  • Volatile memory may include random access memory (RAM) and/or cache memory (cache), for example.
  • Non-volatile memory may include, for example, read only memory (ROM), hard disk, erasable programmable read only memory (EPROM), portable compact disk read only memory (CD-ROM), USB memory, flash memory, etc.
  • ROM read only memory
  • EPROM erasable programmable read only memory
  • CD-ROM portable compact disk read only memory
  • USB memory flash memory, etc.
  • One or more computer-readable instructions may be stored on the computer-readable storage medium, and the processor 601 may run the computer-readable instructions to implement various functions of the electronic device.
  • Various application programs and various data can also be stored in the storage medium.
  • the electronic device may further include an image acquisition component.
  • the image acquisition component is used to acquire the input image of the object.
  • the memory 603 is also used to store input images.
  • the image acquisition component may be a camera of a smart phone, a camera of a tablet computer, a camera of a personal computer, a lens of a digital camera, or even a webcam.
  • the input image may be an original image directly collected by the image obtaining component, or an image obtained after preprocessing the original image.
  • Preprocessing can eliminate irrelevant information or noise information in the original image, so as to better process the input image.
  • the preprocessing may include, for example, processing of data augmentation, image scaling, gamma correction, image enhancement, or noise reduction filtering on the original image.
  • FIG. 7 is a schematic diagram of a non-transitory computer-readable storage medium provided by at least one embodiment of the present disclosure.
  • one or more computer-readable instructions 701 may be stored non-transitory on the storage medium 700.
  • the computer-readable instructions 701 are executed by a processor, one or more steps in the edge detection method described above can be executed.
  • the storage medium 700 may be applied to the above-mentioned electronic device.
  • the storage medium 700 may include a memory 603 in the electronic device.
  • Fig. 8 shows a schematic diagram of a hardware environment provided by at least one embodiment of the present disclosure.
  • the electronic device provided in the present disclosure can be applied to the Internet system.
  • the computer system provided in FIG. 8 can be used to implement the edge detection apparatus and/or electronic equipment involved in the present disclosure.
  • Such computer systems may include personal computers, laptops, tablet computers, mobile phones, personal digital assistants, smart glasses, smart watches, smart rings, smart helmets, and any smart portable devices or wearable devices.
  • the specific system in this embodiment uses a functional block diagram to explain a hardware platform including a user interface.
  • This kind of computer equipment can be a general purpose computer equipment or a special purpose computer equipment. Both types of computer equipment can be used to implement the edge detection apparatus and/or electronic equipment in this embodiment.
  • the computer system can implement any of the currently described components that implement the information required for edge detection.
  • a computer system can be realized by a computer device through its hardware device, software program, firmware, and their combination.
  • FIG. 7 only one computer device is drawn in FIG. 7, but the related computer functions described in this embodiment to realize the information required for edge detection can be implemented by a group of similar platforms in a distributed manner. Distribute the processing load of the computer
  • the computer system may include a communication port 250, which is connected to a network that realizes data communication.
  • a computer system can send and receive information and data through the communication port 250, that is, the communication port 250 can realize the communication between the computer system and the computer system.
  • Other electronic devices perform wireless or wired communication to exchange data.
  • the computer system may also include a processor group 220 (ie, the processor described above) for executing program instructions.
  • the processor group 220 may be composed of at least one processor (for example, a CPU).
  • the computer system may include an internal communication bus 210.
  • the computer system may include different forms of program storage units and data storage units (ie, the memory or storage medium described above), such as a hard disk 270, a read only memory (ROM) 230, and a random access memory (RAM) 240, which can be used for storage Various data files used for computer processing and/or communication, and possible program instructions executed by the processor group 220.
  • the computer system may also include an input/output component 260, which is used to implement input/output data flow between the computer system and other components (for example, the user interface 280, etc.).
  • the following devices can be connected to the input/output component 260: including input devices such as touch screens, touch pads, keyboards, mice, cameras, microphones, accelerometers, gyroscopes, etc.; including, for example, liquid crystal displays (LCD), speakers, vibrators, etc.
  • the output device including storage devices such as tapes, hard disks, etc.; and communication interfaces.
  • FIG. 8 shows a computer system with various devices, it should be understood that the computer system is not required to have all the devices shown, and instead, the computer system may have more or fewer devices.

Abstract

本发明公开一种边缘检测方法、边缘检测装置、电子设备和非瞬时性计算机可读存储介质。边缘检测方法包括:对输入图像进行处理,以得到输入图像中灰度轮廓的线条图,其中,输入图像包括具有边缘的对象,线条图包括多条线条;将多条线条进行合并处理,以得到多条参考边界线;通过第一边界区域识别模型对输入图像进行处理,得到与对象对应的多个边界区域;针对每一条参考边界线,将参考边界线与多个边界区域进行对比,计算参考边界线上属于多个边界区域的像素点的个数,作为参考边界线的成绩,以确定与多条参考边界线一一对应的多个成绩;根据多条参考边界线、多个成绩和多个边界区域,确定多条目标边界线;根据多条目标边界线确定对象的边缘。

Description

边缘检测方法和装置、电子设备和存储介质 技术领域
本公开涉及一种边缘检测方法、边缘检测装置、电子设备和非瞬时性计算机可读存储介质。
背景技术
目前,人们经常对物体(例如,物体可以为名片、试卷、化验单、文档等)进行拍照,并希望对拍照得到的图像进行相应处理以获得图像中的物体的相关信息。然而,拍照得到的图像中不仅包含物体,同时还不可避免地包含物体所在的外部环境。而图像中的外部环境对应的部分对于识别图像中物体的相关信息而言是多余的,因此,在对图像进行处理以获得图像中物体的相关信息时,需要从图像中检测物体的边缘,以便根据物体的边缘将物体从图像中提取出来。
发明内容
本公开至少一实施例提供一种边缘检测方法,包括:对输入图像进行处理,以得到所述输入图像中灰度轮廓的线条图,其中,所述输入图像包括具有边缘的对象,所述线条图包括多条线条;将所述多条线条进行合并处理,以得到多条参考边界线;通过第一边界区域识别模型对所述输入图像进行处理,得到与所述具有边缘的对象对应的多个边界区域;针对所述多条参考边界线中的每一条参考边界线,将所述参考边界线与所述多个边界区域进行对比,计算所述参考边界线上属于所述多个边界区域的像素点的个数,作为所述参考边界线的成绩,以确定与所述多条参考边界线一一对应的多个成绩;根据所述多条参考边界线、所述多个成绩和所述多个边界区域,确定多条目标边界线;根据确定的所述多条目标边界线确定所述具有边缘的对象在所述输入图像中的边缘。
可选的,在本公开一实施例提供的边缘检测方法中,将所述参考边界线与所述多个边界区域进行对比,计算所述参考边界线上属于所述多个边界区 域的像素点的个数,作为所述参考边界线的成绩,包括:根据所述多个边界区域确定边界区域矩阵;将所述参考边界线进行延长以得到延长后的参考边界线;根据所述延长后的参考边界线确定线条矩阵;将所述线条矩阵与所述边界区域矩阵进行对比,计算所述延长后的参考边界线上属于所述边界区域矩阵的像素点的个数,作为所述参考边界线的成绩,其中,所述线条矩阵与所述边界区域矩阵的大小相同。
可选的,在本公开一实施例提供的边缘检测方法中,根据所述延长后的参考边界线确定线条矩阵包括:将所述延长后的参考边界线中的像素点的位置信息对应到图像矩阵中;将所述图像矩阵中对应于所述延长后的参考边界线的像素点的值设置为第一数值,将所述图像矩阵中的所述延长后的参考边界线对应的像素点以外的像素点的值设置为第二数值,从而形成所述线条矩阵。
可选的,在本公开一实施例提供的边缘检测方法中,根据所述多条参考边界线、所述多条参考边界线的成绩和所述多个边界区域,确定多条目标边界线,包括:分别将所述多个边界区域转换为多个直线组,其中,所述多个直线组与所述多个边界区域一一对应,所述多条直线组中的每个直线组包括至少一条直线;计算与所述多个直线组一一对应的多个平均斜率;分别计算所述多条参考边界线的斜率;针对所述多条参考边界线中的第i条参考边界线,判断所述第i条参考边界线的斜率和所述多个平均斜率中与所述第i条参考边界线对应的平均斜率的差值是否高于第一斜率阈值,其中,i为正整数,i小于等于所述多条参考边界线的数量;响应于所述第i条参考边界线的斜率和与所述第i条参考边界线对应的平均斜率的差值低于等于所述第一斜率阈值,确定所述第i条参考边界线为目标参考边界线,从而从所述多条参考边界线中确定多条目标参考边界线;根据所述多条目标参考边界线对应的参考边界线的成绩,确定多条中间目标边界线;根据所述多条中间目标边界线,确定所述多条目标边界线。
可选的,在本公开一实施例提供的边缘检测方法中,所述多个边界区域包括第一边界区域、第二边界区域、第三边界区域和第四边界区域,所述多条参考边界线包括与所述第一边界区域对应的第一参考边界线组、与所述第 二边界区域对应的第二参考边界线组、与所述第三边界区域对应的第三参考边界线组、与所述第四边界区域对应的第四参考边界线组,所述方法还包括:响应于所述多条参考边界线中的被选中的参考边界线组中的所有参考边界线的斜率和与所述被选中的参考边界线组对应的平均斜率的差值均高于所述第一斜率阈值,其中,所述被选中的参考边界线组为所述第一参考边界线组或所述第二参考边界线组或所述第三参考边界线组或所述第四参考边界线组;获取与所述被选中的参考边界线组对应的被选中的边界区域,其中,所述被选中的边界区域为所述第一边界区域或所述第二边界区域或所述第三边界区域或所述第四边界区域;根据所述被选中的边界区域对应的直线组,确定所述被选中的边界区域对应的直线组的中线,确定所述中线作为所述被选中的边界区域对应的目标边界线。
可选的,在本公开一实施例提供的边缘检测方法中,根据所述多条中间目标边界线,确定所述多条目标边界线,包括:针对所述多条中间目标边界线中的第k条中间目标边界线,对所述第k条中间目标边界线进行重合度判断,以确定所述第k条中间目标边界线是否为目标边界线,其中,对所述第k条中间目标边界线进行重合度判断包括:计算所述第k条中间目标边界线的落入所述第k条中间目标边界线对应的边界区域的像素点和所述第k条中间目标边界线的所有像素点的比例,其中,k为正整数,k小于等于所述多条中间目标边界线的数量;判断所述比例是否大于等于比例阈值;响应于所述比例大于等于所述比例阈值,确定所述第k条中间目标边界线为目标边界线,对所述多条中间目标边界线进行所述重合度判断以确定所述多条目标边界线;响应于所述比例小于所述比例阈值,删除所述第k条中间目标边界线,并继续对所述多条中间目标边界线中除了所述第k条中间目标边界线之外的任一中间目标边界线进行所述重合度判断。
可选的,在本公开一实施例提供的边缘检测方法中,分别将所述多个边界区域转换为多个直线组,包括:利用霍夫变换分别将所述多个边界区域转换为所述多个直线组。
可选的,在本公开一实施例提供的边缘检测方法中,对输入图像进行处理,以得到所述输入图像中灰度轮廓的线条图,包括:通过边缘检测算法对 所述输入图像进行处理,获得所述输入图像中灰度轮廓的线条图。
可选的,在本公开一实施例提供的边缘检测方法中,对输入图像进行处理,以得到所述输入图像中灰度轮廓的线条图,包括:通过第二边界区域识别模型对所述输入图像进行处理,得到所述多个边界区域;通过边缘检测算法对所述多个边界区域进行处理,获得所述输入图像中灰度轮廓的线条图。
可选的,在本公开一实施例提供的边缘检测方法中,所述多条参考边界线被划分为与所述多个边界区域一一对应多个参考边界线组,所述多个参考边界线组中的每个参考边界线组包括至少一条参考边界线,将所述多条线条进行合并处理,以得到所述多条参考边界线,包括:将所述多条线条中相似的线条进行合并,得到多个初始合并线条组,其中,所述多个初始合并线条组与所述多个边界区域一一对应,所述多个初始合并线条组中的每个初始合并线条组包括至少一条初始合并线条;根据所述多个初始合并线条组,确定多条边界连接线条,其中,所述多条边界连接线条与所述多个边界区域一一对应,所述多条边界连接线条与所述多个初始合并线条组也一一对应;分别将所述多个边界区域转换为多个直线组,其中,所述多个直线组与所述多个边界区域一一对应,所述多条直线组中的每个直线组包括至少一条直线;计算与所述多个直线组一一对应的多个平均斜率;分别计算所述多条边界连接线条的斜率;针对所述多条边界连接线条中的第b1条边界连接线条,判断所述第b1条边界连接线条的斜率和所述多个平均斜率中与所述第b1条边界连接线条对应的平均斜率的差值是否高于第二斜率阈值,其中,b1为正整数,b1小于等于所述多条边界连接线条的数量;响应于所述第b1条边界连接线条的斜率和与所述第b1条边界连接线条对应的平均斜率的差值低于等于所述第二斜率阈值,将所述第b1条边界连接线条和所述第b1条边界连接线条对应的初始合并线条组中的初始合并线条作为所述第b1条边界连接线条对应的边界区域对应的参考边界线组中的参考边界线,响应于所述第b1条边界连接线条的斜率和与所述第b1条边界连接线条对应的平均斜率的差值高于所述第二斜率阈值,将所述第b1条边界连接线条对应的初始合并线条组中的初始合并线条作为所述第b1条边界连接线条对应的边界区域对应的参考边界线组中的参考边界线,从而确定所述多条参考边界线。
可选的,在本公开一实施例提供的边缘检测方法中,将所述多条线条中相似的线条进行合并,得到多个初始合并线条组,包括:获取所述多条线条中的多条长线条,其中,所述多条长线条中的每条长线条为长度超过长度阈值的线条;根据所述多条长线条,获取多个合并线条组,其中,所述多个合并线条组中的每个合并线条组包括至少两个依次相邻的长线条,且每个所述合并线条组中的任意相邻的两个长线条之间的夹角均小于角度阈值;针对所述多个合并线条组中的每个合并线条组,将所述合并线条组中的各个长线条依次进行合并以得到与所述合并线条组对应的初始合并线条,分别对所述多个合并线条组进行合并处理以确定所述多个初始合并线条组中的初始合并线条。
可选的,在本公开一实施例提供的边缘检测方法中,根据所述多个初始合并线条组,确定多条边界连接线条,包括:针对所述多个初始合并线条组中的第b2个初始合并线条组,按照所述第b2个初始合并线条组中的初始合并线条的排列方向对所述第b2个初始合并线条组中的初始合并线条进行排序,以确定所述第b2个初始合并线条组中的第一条初始合并线条和最后一条初始合并线条;将所述第一条初始合并线条的起点和所述最后一条初始合并线条的终点连接,以得到所述第b2个初始合并线条组对应的边界连接线条,从而确定所述多条边界连接线条,其中,b2为正整数,b2小于等于所述多个初始合并线条组的数量。
可选的,本公开一实施例提供的边缘检测方法还包括:获得所述多条目标边界线的多个交点,对所述多个交点和所述多条目标边界线确定的区域进行投影变换,得到所述输入图像中的所述具有边缘的对象的正视图。
本公开至少一实施例还提供一种边缘检测装置,包括:获取模块,被配置为对输入图像进行处理,以得到所述输入图像中灰度轮廓的线条图,其中,所述输入图像包括具有边缘的对象,所述线条图包括多条线条;合并模块,被配置为将所述多条线条进行合并处理,以得到多条参考边界线;识别模块,被配置为通过第一边界区域识别模型对所述输入图像进行处理,得到与所述具有边缘的对象对应的多个边界区域;成绩计算模块,被配置为针对所述多条参考边界线中的每一条参考边界线,将所述参考边界线与所述多个边界区 域进行对比,计算所述参考边界线上属于所述多个边界区域的像素点的个数,作为所述参考边界线的成绩,以确定与所述多条参考边界线一一对应的多个成绩;第一确定模块,被配置为根据所述多条参考边界线、所述多个成绩和所述多个边界区域,确定多条目标边界线;第二确定模块,被配置为根据确定的所述多条目标边界线确定所述具有边缘的对象的边缘。
可选的,在本公开一实施例提供的边缘检测装置中,所述成绩计算模块执行将所述参考边界线与所述多个边界区域进行对比,计算所述参考边界线上属于所述多个边界区域的像素点的个数,作为所述参考边界线的成绩时,所述成绩计算模块被配置为:根据所述多个边界区域确定边界区域矩阵;将所述参考边界线进行延长以得到延长后的参考边界线;根据所述延长后的参考边界线确定线条矩阵;将所述线条矩阵与所述边界区域矩阵进行对比,计算所述延长后的参考边界线上属于所述边界区域矩阵的像素点的个数,作为所述参考边界线的成绩,其中,所述线条矩阵与所述边界区域矩阵的大小相同。
可选的,在本公开一实施例提供的边缘检测装置中,所述第一确定模块执行根据所述多条参考边界线、所述多条参考边界线的成绩和所述多个边界区域,确定多条目标边界线时,所述第一确定模块被配置为:分别将所述多个边界区域转换为多个直线组,其中,所述多个直线组与所述多个边界区域一一对应,所述多条直线组中的每个直线组包括至少一条直线;计算与所述多个直线组一一对应的多个平均斜率;分别计算所述多条参考边界线的斜率;针对所述多条参考边界线中的第i条参考边界线,判断所述第i条参考边界线的斜率和所述多个平均斜率中与所述第i条参考边界线对应的平均斜率的差值是否高于第一斜率阈值,其中,i为正整数,i小于等于所述多条参考边界线的数量;响应于所述第i条参考边界线的斜率和与所述第i条参考边界线对应的平均斜率的差值低于等于所述第一斜率阈值,确定所述第i条参考边界线为目标参考边界线,从而从所述多条参考边界线中确定多条目标参考边界线;根据所述多条目标参考边界线对应的参考边界线的成绩,确定多条中间目标边界线;根据所述多条中间目标边界线,确定所述多条目标边界线。
可选的,在本公开一实施例提供的边缘检测装置中,所述多个边界区域 包括第一边界区域、第二边界区域、第三边界区域和第四边界区域,所述多条参考边界线包括与所述第一边界区域对应的第一参考边界线组、与所述第二边界区域对应的第二参考边界线组、与所述第三边界区域对应的第三参考边界线组、与所述第四边界区域对应的第四参考边界线组,所述第一确定模块还被配置为:响应于所述多条参考边界线中的被选中的参考边界线组中的所有参考边界线的斜率和与所述被选中的参考边界线组对应的平均斜率的差值均高于所述第一斜率阈值,其中,所述被选中的参考边界线组为所述第一参考边界线组或所述第二参考边界线组或所述第三参考边界线组或所述第四参考边界线组;获取与所述被选中的参考边界线组对应的被选中的边界区域,其中,所述被选中的边界区域为所述第一边界区域或所述第二边界区域或所述第三边界区域或所述第四边界区域;根据所述被选中的边界区域对应的直线组,确定所述被选中的边界区域对应的直线组的中线,确定所述中线作为所述被选中的边界区域对应的目标边界线。
可选的,在本公开一实施例提供的边缘检测装置中,所述第一确定模块执行根据所述多条中间目标边界线,确定所述多条目标边界线时,所述第一确定模块被配置为:针对所述多条中间目标边界线中的第k条中间目标边界线,对所述第k条中间目标边界线进行重合度判断,以确定所述第k条中间目标边界线是否为目标边界线,其中,对所述第k条中间目标边界线进行重合度判断包括:计算所述第k条中间目标边界线的落入所述第k条中间目标边界线对应的边界区域的像素点和所述第k条中间目标边界线的所有像素点的比例,其中,k为正整数,k小于等于所述多条中间目标边界线的数量;判断所述比例是否大于等于比例阈值;响应于所述比例大于等于所述比例阈值,确定所述第k条中间目标边界线为目标边界线,对所述多条中间目标边界线进行所述重合度判断以确定所述多条目标边界线;响应于所述比例小于所述比例阈值,删除所述第k条中间目标边界线,并继续对所述多条中间目标边界线中除了所述第k条中间目标边界线之外的任一中间目标边界线进行所述重合度判断。
可选的,在本公开一实施例提供的边缘检测装置中,所述多条参考边界线被划分为与所述多个边界区域一一对应多个参考边界线组,所述多个参考 边界线组中的每个参考边界线组包括至少一条参考边界线,所述合并模块执行将所述多条线条进行合并处理,以得到多条参考边界线时,所述合并模块被配置为:将所述多条线条中相似的线条进行合并,得到多个初始合并线条组,其中,所述多个初始合并线条组与所述多个边界区域一一对应,所述多个初始合并线条组中的每个初始合并线条组包括至少一条初始合并线条;根据所述多个初始合并线条组,确定多条边界连接线条,其中,所述多条边界连接线条与所述多个边界区域一一对应,所述多条边界连接线条与所述多个初始合并线条组也一一对应;分别将所述多个边界区域转换为多个直线组,其中,所述多个直线组与所述多个边界区域一一对应,所述多条直线组中的每个直线组包括至少一条直线;计算与所述多个直线组一一对应的多个平均斜率;分别计算所述多条边界连接线条的斜率;针对所述多条边界连接线条中的第b1条边界连接线条,判断所述第b1条边界连接线条的斜率和所述多个平均斜率中与所述第b1条边界连接线条对应的平均斜率的差值是否高于第二斜率阈值,其中,b1为正整数,b1小于等于所述多条边界连接线条的数量;响应于所述第b1条边界连接线条的斜率和与所述第b1条边界连接线条对应的平均斜率的差值低于等于所述第二斜率阈值,将所述第b1条边界连接线条和所述第b1条边界连接线条对应的初始合并线条组中的初始合并线条作为所述第b1条边界连接线条对应的边界区域对应的参考边界线组中的参考边界线,响应于所述第b1条边界连接线条的斜率和与所述第b1条边界连接线条对应的平均斜率的差值高于所述第二斜率阈值,将所述第b1条边界连接线条对应的初始合并线条组中的初始合并线条作为所述第b1条边界连接线条对应的边界区域对应的参考边界线组中的参考边界线,从而确定所述多条参考边界线。
本公开至少一实施例提供一种电子设备,包括处理器和存储器,所述存储器用于存储计算机可读指令;所述处理器用于执行所述计算机可读指令时,实现上述任一实施例所述的方法的步骤。
本公开至少一实施例提供一种非瞬时性计算机可读存储介质,其中,所述计算机可读存储介质用于非暂时性地存储有计算机可读指令,所述计算机可读指令被处理器执行时实现上述任一实施例所述的方法的步骤。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为本公开至少一实施例提供的一种边缘检测方法的示意性流程图;
图2A-2C为本公开一实施例提供的一种输入图像的示意图;
图3A-3C为本公开一实施例提供的另一种输入图像的示意图;
图4为本公开一实施例提供的一种线条合并过程的示意图;
图5为本公开至少一实施例提供的一种边缘检测装置的示意性框图;
图6为本公开至少一实施例提供的一种电子设备的示意性框图;
图7为本公开至少一实施例提供的一种非瞬时性计算机可读存储介质的示意图;
图8为本公开至少一实施例提供的一种硬件环境的示意图。
具体实施方式
为了使得本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则 该相对位置关系也可能相应地改变。为了保持本公开实施例的以下说明清楚且简明,本公开省略了部分已知功能和已知部件的详细说明。
本公开至少一实施例提供一种边缘检测方法、边缘检测装置、电子设备和非瞬时性计算机可读存储介质。该边缘检测方法包括:对输入图像进行处理,以得到输入图像中灰度轮廓的线条图,其中,输入图像包括具有边缘的对象,线条图包括多条线条;将多条线条进行合并处理,以得到多条参考边界线;通过第一边界区域识别模型对输入图像进行处理,得到与具有边缘的对象对应的多个边界区域;针对多条参考边界线中的每一条参考边界线,将参考边界线与多个边界区域进行对比,计算参考边界线上属于多个边界区域的像素点的个数,作为参考边界线的成绩,以确定与多条参考边界线一一对应的多个成绩;根据多条参考边界线、多个成绩和多个边界区域,确定多条目标边界线;根据确定的多条目标边界线确定具有边缘的对象在输入图像中的边缘。
在本公开实施例提供的边缘检测方法中,首先获得输入图像中灰度轮廓的线条图,将线条图中相似的线条进行合并以得到多条参考边界线,同时还通过预先训练的第一边界区域识别模型对输入图像进行处理,得到与对象对应的多个边界区域,然后针对每一条参考边界线属于多个边界区域的像素点的个数,确定每一条参考边界线的成绩,接着,根据参考边界线的成绩和多个边界区域,确定多条目标边界线,进而根据多条目标边界线确定具有边缘的对象(即,输入图像中对象,例如,名片、试卷、化验单、文档等)在输入图像中的边缘。在该边缘检测方法中,根据输入图像获得参考边界线,结合机器学习识别边界区域,从而共同确定输入图像中的具有边缘的对象的目标边界线,能够快速定位输入图像中的具有边缘的对象的边缘的位置,实现了对输入图像中的具有边缘的对象的边缘检测,此外,还提高了边缘检测的准确性。
本公开实施例提供的边缘检测方法可应用于本公开实施例提供的边缘检测装置,该边缘检测装置可被配置于电子设备上。该电子设备可以是个人计算机、移动终端等,该移动终端可以是手机、平板电脑等硬件设备。
下面结合附图对本公开的实施例进行详细说明,但是本公开并不限于这 些具体的实施例。
图1为本公开至少一实施例提供的一种边缘检测方法的示意性流程图;图2A-2C为本公开一实施例提供的一种输入图像的示意图;图3A-3C为本公开一实施例提供的另一种输入图像的示意图。
如图1所示,本公开的一实施例提供的边缘检测方法包括步骤S10至S15。首先,步骤S10,对输入图像进行处理,以得到输入图像中灰度轮廓的线条图。
例如,输入图像包括具有边缘的对象,线条图包括多条线条,线条图为灰度图。
例如,输入图像为用户对某一对象进行拍照所得的图像,对象例如可以是名片、试卷、化验单、文档、发票等。如图2A所示,在一些实施例中,输入图像可以为对化验单进行拍照所得的图像;如图3A所示,在一些实施例中,输入图像可以是对名片进行拍照所得的图像。
输入图像中的待识别的对象的形状可以为矩形等规则形状,也可以为不规则形状。如图2A和图2B所示,化验单的形状和名片的形状均为矩形。值得注意的是,在本公开中,“对象的形状”表示对象的大体形状,例如,当对象的形状为矩形时,该矩形的每个条边可能并不是一条直线段,而在输入图像中可能是具有细小的波浪形、锯齿形等形状的线段。
输入图像的形状也可以为矩形等。输入图像的形状和尺寸等可以由用户根据实际情况自行设定。
输入图像可以为通过数码相机或手机拍摄的图像,输入图像可以为灰度图像,也可以为彩色图像。例如,输入图像可以为图像采集装置直接采集到的原始图像,也可以是对原始图像进行预处理之后获得的图像。例如,为了避免输入图像的数据质量、数据不均衡等对于对象边缘检测的影响,在处理输入图像前,该边缘检测方法还可以包括对输入图像进行预处理的操作。预处理可以消除输入图像中的无关信息或噪声信息,以便于更好地对输入图像进行处理。
在一些实施例中,步骤S10可以包括:通过边缘检测算法对输入图像进行处理,获得输入图像中灰度轮廓的线条图。例如,可以通过基于OpenCV的边缘检测算法对输入图像进行处理,以获得输入图像中灰度轮廓的线条图。 OpenCV为一种开源计算机视觉库,基于OpenCV的边缘检测算法包括Sobel、Scarry、Canny、Laplacian、Prewitt、Marr-Hildresh、scharr等多种算法。例如,本实施例中采用Canny边缘检测算法,Canny边缘检测算法是一个多阶段的算法,即Canny边缘检测算法由多个步骤构成,例如,Canny边缘检测算法包括:1、图像降噪:用高斯滤波器平滑图像;2、计算图像梯度:用一阶偏导有限差分计算梯度幅值和方向;3、非极大值抑制:对梯度幅值进行非极大值抑制;4、阈值筛选:用双阈值算法检测和连接边缘。
在另一些实施例中,步骤S10可以包括:通过第二边界区域识别模型对输入图像进行处理,得到多个边界区域;通过边缘检测算法对多个边界区域进行处理,获得输入图像中灰度轮廓的线条图。
在本实施例中,通过边缘检测算法对多个边界区域进行处理,获得输入图像中灰度轮廓的线条图,包括:对多个边界区域进行处理,以得到多个边界区域标注框;通过边缘检测算法对多个边界区域标注框进行处理,获得输入图像中灰度轮廓的线条图。
第二边界区域识别模型可以采用机器学习技术实现并且例如运行在通用计算装置或专用计算装置上。该第二边界区域识别模型为预先训练得到的神经网络模型。例如,第二边界区域识别模型可以采用深度卷积神经网络(DEEP-CNN)等神经网络实现。在一些实施例中,将输入图像输入第二边界区域识别模型,第二边界区域识别模型可以识别出输入图像中的具有边缘的对象的边缘,以得到多个边界区域(即对象的各个边界的mask区域);然后,将识别出的多个边界区域标注出来,从而确定多个边界区域标注框,例如,可以对多个边界区域外接矩形框,以标注多个边界区域;最后,利用边缘检测算法(例如,Canny边缘检测算法等)对标注出的多个边界区域标注框进行处理,以得到输入图像中灰度轮廓的线条图。在本实施例中,边缘检测算法仅需要对标注出的边界区域标注框进行边缘检测,而不需要对整个输入图像进行边缘检测,从而可以减少计算量,提升处理速度。需要说明的是,边界区域标注框标注的是输入图像中的部分区域。
在一些实施例中,步骤S10还可以包括:对输入图像进行二值化处理,以得到输入图像的二值化图像;滤除二值化图像中的噪声线条,从而获得输 入图像中灰度轮廓的线条图。例如,可以预先设定相应的滤除规则,以滤除二值化图像中的例如对象内部的各种线段和各种比较小的线条等,从而得到输入图像中灰度轮廓的线条图。
在本公开的实施例中,实际上,线条图为二值化图,在二值化图中寻找轮廓线段,对这些轮廓线段进行处理来获取最终的对象的边界线,也就是说,将输入图像进行二值化以便获取输入图像中的轮廓线。在本公开中,线条图中可以为具有各种字符形状的轮廓线,线条图不一定只包括线段,此外,线条图不仅包括对象的边缘的线条,也可能包括对象的内部的各种线段、对象的外部的各种线段等。
通过上述边缘检测算法对图2A所示的输入图像进行处理后,可以得到如图2B所示的灰度轮廓的线条图;通过上述边缘检测算法对图3A所示的输入图像进行处理后,可以得到如图3B所示的灰度轮廓的线条图。
在灰度轮廓的线条图中,多条线条实际上是一段一段很小的线段,输入图像的对象的边界线线条实际上也被分为一段一段很小的线段,因此需要将相似的线条连接起来,并进行后续处理以得到对象的边界线线条。在实际应用中,线条图中各个小线段的表现形式是数组的形式,在整个线条图对应的坐标系中,每个线段都是由起点对应的像素点的坐标值和终点对应的像素点的坐标值确定的。
接下来,如图1所示,在步骤S11,将多条线条进行合并处理,以得到多条参考边界线。
例如,多条参考边界线可以被划分为与多个边界区域(下面将会详细描述)一一对应多个参考边界线组,多个参考边界线组中的每个参考边界线组包括至少一条参考边界线。
在一些实施例中,步骤S11可以包括:将多条线条中相似的线条进行合并,得到多个初始合并线条组,其中,多个初始合并线条组与多个边界区域一一对应,多个初始合并线条组中的每个初始合并线条组包括至少一条初始合并线条;根据多个初始合并线条组,确定多条边界连接线条,其中,多条边界连接线条与多个边界区域一一对应,多条边界连接线条与多个初始合并线条组也一一对应;分别将多个边界区域转换为多个直线组,其中,多个直 线组与所述多个边界区域一一对应,多条直线组中的每个直线组包括至少一条直线;计算与多个直线组一一对应的多个平均斜率;分别计算多条边界连接线条的斜率;针对多条边界连接线条中的第b1条边界连接线条,判断第b1条边界连接线条的斜率和多个平均斜率中与第b1条边界连接线条对应的平均斜率的差值是否高于第二斜率阈值,其中,b1为正整数,b1小于等于多条边界连接线条的数量;响应于第b1条边界连接线条的斜率和与第b1条边界连接线条对应的平均斜率的差值低于等于第二斜率阈值,将第b1条边界连接线条和第b1条边界连接线条对应的初始合并线条组中的初始合并线条作为第b1条边界连接线条对应的边界区域对应的参考边界线组中的参考边界线,响应于第b1条边界连接线条的斜率和与第b1条边界连接线条对应的平均斜率的差值高于第二斜率阈值,将第b1条边界连接线条对应的初始合并线条组中的初始合并线条作为第b1条边界连接线条对应的边界区域对应的参考边界线组中的参考边界线,分别对多条边界连接线条进行上述操作,从而确定多条参考边界线。
在一些实施例中,第二斜率阈值的范围可以为0-20度,例如,0-10度。例如,第二斜率阈值可以为5度、15度等。
值得注意的是,在本公开的实施例中,“两个斜率的差值”表示两个斜率对应的倾斜角度之间的差值。例如,第b1条边界连接线条的斜率对应的倾斜角度可以表示第b1条边界连接线条相对于给定方向(例如,水平方向或竖直方向)之间的夹角,平均斜率对应的倾斜角度可以表示基于该平均斜率确定的直线与该给定方向之间的夹角。例如,可以计算第b1条边界连接线条的倾斜角度(例如,第一倾斜角度)和多个平均斜率中与第b1条边界连接线条对应的平均斜率对应的倾斜角度(例如,第二倾斜角度),若该第一倾斜角度和第二倾斜角度之间的差值高于等于第二斜率阈值,则该第b1条边界连接线条不作为参考边界线;而若该第一倾斜角度和第二倾斜角度之间的差值低于第二斜率阈值,则该第b1条边界连接线条可以作为参考边界线。
需要说明的是,关于直线组、平均斜率和边界区域等将在后面描述,在此不作赘述。
在步骤S11中,将多条线条中相似的线条进行合并,得到多个初始合并 线条组,包括:获取多条线条中的多条长线条,其中,多条长线条中的每条长线条为长度超过长度阈值的线条;根据多条长线条,获取多个合并线条组,其中,多个合并线条组中的每个合并线条组包括至少两个依次相邻的长线条,且每个合并线条组中的任意相邻的两个长线条之间的夹角均小于角度阈值;针对多个合并线条组中的每个合并线条组,将合并线条组中的各个长线条依次进行合并以得到与合并线条组对应的初始合并线条,分别对多个合并线条组进行合并处理以得到多个初始合并线条组中的初始合并线条。
多个初始合并线条组所包括的所有初始合并线条的数量与多个合并线条组的数量相同,且多个初始合并线条组所包括的所有初始合并线条与多个合并线条组一一对应。需要说明的是,在基于合并线条组得到该合并线条组对应的初始合并线条之后,基于该初始合并线条的位置可以确定该初始合并线条所对应的边界区域,从而确定该初始合并线条所属的初始合并线条组。
需要说明的是,在本公开的实施例中,“相似的线条”表示两个线条之间的夹角小于角度阈值。
在本实施例中,线条图中的长线条指的是线条图中的多条线条中的长度超过长度阈值的线条,例如将长度超过2个像素的线条定义为长线条,即长度阈值为2个像素,本公开的实施例包括但不限于此,在另一些实施例中,长度阈值也可以为3个像素、4个像素等。仅获取线条图中的长线条进行后续合并处理,而不考虑线条图中的一些较短的线条,这样可以在合并线条时避免对象内部和对象外部的线条干扰,例如,可以去除对象内部的文字和图形、对象外部的其它对象等的对应的线条。
在本实施例中,可以通过以下方式获取合并线条组:首先选择一个长线条T1,然后从该长线条T1开始,依次判断两条相邻长线条之间的夹角是否小于角度阈值,若判断出某一长线条T2和与该长线条T2相邻的长线条之间的夹角不小于角度阈值时,则可以将长线条T1、长线条T2和长线条T1到长线条T2之间的所有依次相邻的长线条组成一个合并线条组。接着,重复上述过程,即从与该长线条T2相邻的长线条开始,依次判断两条相邻长线条之间的夹角是否小于角度阈值,依次类推,直到遍历完所有长线条,从而得到多个合并线条组。需要说明的是,“两条相邻长线条”表示两条在物理位置上相 邻的长线条,即该两条相邻长线条之间不存在其他的长线条。
初始合并线条为多条比长线条更长的线条。
图4为本公开一实施例提供的一种线条合并过程的示意图。
下面以图4为例,对上述获取合并线条组的过程进行说明。在一个实施例中,例如,首先选择第一个长线条A,判断该长线条A和与长线条A相邻的长线条B之间的夹角是否小于角度阈值,若长线条A和长线条B之间的夹角小于角度阈值,则表示长线条A和长线条B是属于同一个合并线条组,然后,继续判断长线条B和与长线条B相邻的长线条C之间的夹角是否小于角度阈值,若长线条B和长线条C之间的夹角也小于角度阈值,则表示长线条C、长线条B和长线条A均属于同一个合并线条组,接着,继续判断长线条C和与长线条C相邻的长线条D之间的夹角,若长线条C和长线条D之间的夹角也小于角度阈值,表示长线条D、长线条C、长线条B和长线条A均属于同一个合并线条组,接着,继续判断长线条D和与长线条D相邻的长线条E之间的夹角,若长线条D和长线条E之间的夹角大于或等于角度阈值,则表示长线条E与长线条A/B/C/D不属于同一个合并线条组,到此为止,可以将长线条A、长线条B、长线条C、长线条D作为一个合并线条组,例如,长线条A、长线条B、长线条C、长线条D组成的合并线条组可以为第一个合并线条组。然后,再从长线条E开始依次判断两条相邻长线条之间的夹角是否小于角度阈值,从而可以得到长线条G、长线条H、长线条I、长线条J属于一个合并线条组,例如,长线条G、长线条H、长线条I、长线条J组成的合并线条组可以为第二个合并线条组,长线条M、长线条N、长线条O也属于一个合并线条组,例如,长线条M、长线条N、长线条O组成的合并线条组可以为第三个合并线条组。
在另一个实施例中,首先,可以从多条长线条中任意选择一个长线条,例如,长线条D,与该长线条D相邻的长线条包括长线条C和长线条E,则判断长线条D和长线条C之间的夹角是否小于角度阈值,判断长线条D和长线条E之间的夹角是否小于角度阈值,由于长线条D和长线条C之间的夹角小于角度阈值,则长线条D和长线条C属于同一个合并线条组,由于长线条D和长线条E之间的夹角大于角度阈值,则长线条D和长线条E属于不同的 合并线条组,然后,一方面,可以继续从长线条C开始判断依次相邻的其它长线条之间的夹角,从而确定与长线条D属于同一个合并线条组的其它长线条,此外,还可以确定其他合并线条组;另一方面,可以从长线条E开始判断依次相邻的其它长线条之间的夹角,从而确定其他合并线条组。以此类推,最终,也可确定长线条A、长线条B、长线条C、长线条D属于一个合并线条组,长线条G、长线条H、长线条I、长线条J属于一个合并线条组,长线条M、长线条N、长线条O也属于一个合并线条组。
例如,相邻两条长线条之间的夹角θ通过以下公式计算:
Figure PCTCN2021094204-appb-000001
其中,
Figure PCTCN2021094204-appb-000002
分别表示相邻两条长线条的向量。例如,角度阈值的数值可以根据实际情况进行设置,例如,在一些实施例中,角度阈值的范围可以为0-20度,例如,0-10度。例如,角度阈值可以为5度、15度等。
例如,合并两个长线条指的是将两个长线条的斜率求平均,以得到斜率平均值,此斜率平均值为合并后线条的斜率。在实际应用中,两个长线条合并是根据两个长线条的数组形式进行计算,例如,两个长线条分别为第一长线条和第二长线条,合并两个长线条表示将第一长线条的起点(即线段头)和第二长线条的终点(即线段尾)直接连接形成一个新的更长的线条,也就是说,在线条图对应的坐标系中,将第一长线条的起点和第二长线条的终点直接直线连接,以得到合并后线条,例如,将第一长线条的起点对应的像素点的坐标值作为合并后线条的起点对应的像素点的坐标值,将第二长线条的终点对应的像素点的坐标值作为合并后线条的终点对应的像素点的坐标值,最后,将合并后线条的起点对应的像素点的坐标值和合并后线条的终点对应的像素点的坐标值形成合并后线条的数组并存储该数组。将每一个合并线条组中的各个长线条依次进行合并,从而得到对应的初始合并线条。
如图4所示,将第一个合并线条组中的长线条A、长线条B、长线条C、长线条D依次合并得到该合并线条组对应的初始合并线条,例如,首先,可以将长线条A与长线条B合并以得到第一合并线条,然后,将第一合并线条与长线条C合并以得到第二合并线条,接着,将第二合并线条与长线条D合 并,从而得到该第一个合并线条组对应的初始合并线条1。同理,对第二个合并线条组中的各个长线条进行合并以得到与第二个合并线条组对应的初始合并线条2,对第三个合并线条组中的各个长线条进行合并以得到与第三个合并线条组对应的初始合并线条3。合并各个合并线条组之后,还有长线条E、长线条F、长线条K、长线条L没有被合并。
在步骤S11中,根据多个初始合并线条组,确定多条边界连接线条,包括:针对多个初始合并线条组中的第b2个初始合并线条组,按照第b2个初始合并线条组中的初始合并线条的排列方向对第b2个初始合并线条组中的初始合并线条进行排序,以确定第b2个初始合并线条组中的第一条初始合并线条和最后一条初始合并线条;将第一条初始合并线条的起点和最后一条初始合并线条的终点连接,以得到第b2个初始合并线条组对应的边界连接线条,分别对多个初始合并线条组执行上述操作,从而确定多条边界连接线条。
例如,b2为正整数,b2小于等于多个初始合并线条组的数量。
如图4所示,若某个初始合并线条组包括初始合并线条1、2、3,初始合并线条1、2、3大致上沿第一方向排列,由此,沿第一方向对初始合并线条1、2、3进行排序,从而可以确定该初始合并线条组中第一条初始合并线条为初始合并线条1,最后一条初始合并线条为初始合并线条3,然后,将初始合并线条1的起点和初始合并线条3的终点连接,以得到该初始合并线条组对应的边界连接线条12。例如,若边界连接线条12的斜率和与该边界连接线条12对应的平均斜率的差值低于等于第二斜率阈值,将该边界连接线条12和边界连接线条12对应的初始合并线条组中的初始合并线条(即初始合并线条1、2、3)作为边界连接线条12对应的边界区域对应的参考边界线组中的参考边界线,此时,参考边界线组中的参考边界线包括边界连接线条12和初始合并线条1、2、3;若边界连接线条12的斜率和与边界连接线条12对应的平均斜率的差值高于第二斜率阈值,将边界连接线条12对应的初始合并线条组中的初始合并线条(即初始合并线条1、2、3)作为边界连接线条12对应的边界区域对应的参考边界线组中的参考边界线,此时,参考边界线组中的参考边界线包括初始合并线条1、2、3。
需要说明的是,若某个初始合并线条组仅包括一条初始合并线条,则该 初始合并线条组中的第一条初始合并线条和最后一条初始合并线条相同,即该初始合并线条即作为该初始合并线条组中的第一条初始合并线条,又作为该初始合并线条组中的最后一条初始合并线条。
第一方向可以为水平方向,也可以为竖直方向。
多条参考边界线也可以采用数组的形式进行存储。
在多条初始合并线条中不仅存在参考边界线,还存在一些较长的干扰线条,例如,干扰线条包括对象内部的文字和图形、对象外部的其它物体等对应的线条经过合并处理后得到的较长线条,这些干扰线条会根据后续的处理和规则进行去除。
如图1所示,在步骤S12,通过第一边界区域识别模型对输入图像进行处理,得到与具有边缘的对象对应的多个边界区域。
在本实施例中,第一边界区域识别模型可以采用机器学习技术实现并且例如运行在通用计算装置或专用计算装置上。该第一边界区域识别模型为预先训练得到的神经网络模型。例如,第一边界区域识别模型可以采用深度卷积神经网络(DEEP-CNN)等神经网络实现。第一边界区域识别模型和第二边界区域识别模型可以为同一个模型。
首先,通过机器学习训练来建立第一边界区域识别模型,第一边界区域识别模型可以通过如下过程训练得到:对图像样本集中的每个图像样本进行标注处理,以标注出每个图像样本中对象的边界线区域、内部区域和外部区域;以及通过经过标注处理的图像样本集,对神经网络进行训练,以得到第一边界区域识别模型。
例如,通过机器学习训练建立的第一边界区域识别模型识别输入图像,可以识别出输入图像中的边界线区域、内部区域(即对象所在区域)和外部区域(即对象的外部区域)3个部分,从而获取输入图像的各个边界区域,此时,边界区域中的边缘轮廓较粗。例如,在一些实施例中,对象的形状可以为矩形,边界区域的数量可以为4,即通过第一边界区域识别模型识别输入图像,从而可以得到与矩形的四条边分别对应的四个边界区域。
在一些实施例中,多个边界区域包括第一边界区域、第二边界区域、第三边界区域和第四边界区域。在一些实施例中,如图2A所示,第一边界区域 可以表示与边界线a1对应的区域,第二边界区域可以表示与边界线a2对应的区域,第三边界区域可以表示与边界线a3对应的区域,第四边界区域可以表示与边界线a4对应的区域;在另一些实施例中,如图3A所示,第一边界区域可以表示与边界线b1对应的区域,第二边界区域可以表示与边界线b2对应的区域,第三边界区域可以表示与边界线b3对应的区域,第四边界区域可以表示与边界线b4对应的区域。
可以理解的是,首先,通过第一边界区域识别模型来识别输入图像中的对象的边界区域,然后,基于边界区域从多条参考边界线中确定目标边界线,可以去除误识别的干扰线条,例如落入名片或者文档中间的线条、表格中间的线条等。
如图1所示,在步骤S13,针对多条参考边界线中的每一条参考边界线,将参考边界线与多个边界区域进行对比,计算参考边界线上属于多个边界区域的像素点的个数,作为参考边界线的成绩,分别对多条参考边界线进行上述处理,以确定与多条参考边界线一一对应的多个成绩。
在步骤S13中,将参考边界线与多个边界区域进行对比,计算参考边界线上属于多个边界区域的像素点的个数,作为参考边界线的成绩,包括:根据多个边界区域确定边界区域矩阵;将参考边界线进行延长以得到延长后的参考边界线;根据延长后的参考边界线确定线条矩阵;将线条矩阵与边界区域矩阵进行对比,计算延长后的参考边界线上属于边界区域矩阵的像素点的个数,作为参考边界线的成绩。
边界区域矩阵通过以下方式确定:将多个边界区域的像素点的位置信息对应到整个边界图像矩阵中,将边界图像矩阵中的多个边界区域的像素点所在位置的值设置第一数值、将多个边界区域以外的像素点所在位置的值设置为第二数值,从而形成边界区域矩阵。需要说明的是,第一数值和第二数值表示灰阶值。
边界区域矩阵的尺寸可以与输入图像对应的图像矩阵的尺寸相同,例如,若输入图像的大小为1024×1024像素,则输入图像对应的图像矩阵为1024×1024的矩阵,那么边界区域矩阵也是一个1024×1024的矩阵。例如,可以按照图像矩阵的尺寸设置第一预填充矩阵,根据多个边界区域对应到第一预 填充矩阵中的位置来对第一预填充矩阵进行值的填充,多个边界区域对应到第一预填充矩阵中的位置的像素点的值设定为第一数值,例如,第一数值为255,在第一预填充矩阵中,多个边界区域对应的位置之外的其他位置的像素点的值设定为第二数值,例如,第二数值为0,从而形成边界区域矩阵。
下面示例性的提供一个边界区域矩阵,该边界区域矩阵为10×10矩阵,在该边界区域矩阵中,值为255的像素点的位置连接起来即为多个边界区域。例如,位于第一行和第二行中的所有值为255的像素点组成一个边界区域。
Figure PCTCN2021094204-appb-000003
需要说明的是,在本公开的实施例中,可以根据多个边界区域得到一个边界区域矩阵;也可以根据多个边界区域分别得到与多个边界区域一一对应的多个边界区域矩阵。
例如,线条矩阵与边界区域矩阵的大小相同。
需要说明的是,在计算参考边界线的成绩时,可以计算该参考边界线上属于该参考边界线对应的边界区域的像素点的个数作为该参考边界线的成绩。此外,在对多个边界区域进行处理以分别得到与多个边界区域一一对应的多个边界区域矩阵的情况下,对于某条参考边界线,可以将该条参考边界线和与该条参考边界线对应的边界区域对应的边界区域矩阵进行比对,以得到该条参考边界线的成绩。
值得注意的是,在计算参考边界线的成绩时,也可以不设置边界区域矩阵,而是直接将参考边界线与对应的边界区域进行对比,以确定参考边界线上属于对应的边界区域的像素点的个数,该像素点的个数即为参考边界线的成绩。
根据延长后的参考边界线确定线条矩阵包括:将延长后的参考边界线中的像素点的位置信息对应到图像矩阵中;将图像矩阵中对应于延长后的参考边界线的像素点的值设置为第一数值,将图像矩阵中的延长后的参考边界线对应的像素点以外的像素点的值设置为第二数值,从而形成线条矩阵。
在确定各条参考边界线的成绩时,首先,针对每一条参考边界线,将该参考边界线进行延长,根据延长后的参考边界线确定与该参考边界线对应的线条矩阵;然后,将该线条矩阵与边界区域矩阵进行对比,即判断延长后的参考边界线上有多少像素点属于边界区域矩阵,计算延长后的参考边界线上属于边界区域矩阵的像素点的个数,作为该参考边界线的成绩。
线条矩阵可以按照以下方式确定:可以按照图像矩阵的尺寸设置第二预填充矩阵;对延长后的参考边界线进行重新绘制,将重新绘制的线条中的像素点的位置信息对应到第二预填充矩阵中,将第二预填充矩阵中重新绘制的线条所在位置的像素点的值设置为第一数值、重新绘制的线条所在位置以外的其他位置的像素点的值设置为第二数值,从而形成参考边界线对应的线条矩阵。线条矩阵的形成方式与边界区域矩阵的形成方式类似,在此不作赘述。需要说明的是,图像矩阵表示输入图像对应的像素矩阵。
需要说明的是,由于参考边界线是以数组的形式存储的,即存储参考边界线的起点的坐标值和终点的坐标值,对参考边界线进行延长后,在存储延长后的参考边界线时,存储延长后的参考边界线的起点的坐标值和终点的坐标值形成数组。因此,在将参考边界线与边界区域矩阵进行对比之前,需要将每条延长后的参考边界线形成为实际线条数据,可以将每条延长后的参考边界线例如按照线宽为2个像素进行重新绘制,从而获得每条延长后的参考边界线对应的像素点的坐标值,进而根据每条延长后的参考边界线对应的像素点的坐标值对第二预填充矩阵进行值的填充,从而得到线条矩阵。例如,将第二预填充矩阵中与延长后的参考边界线对应的位置的像素点的值设为255,将延长后的参考边界线对应的位置之外的其余位置的像素点的值设为0。
将线条矩阵与边界区域矩阵进行对比来判断参考边界线中落入到边界区域矩阵里面的像素点的数量,即判断线条矩阵与边界区域矩阵中有多少相同位置的像素点具有相同的第一数值(例如,255),从而计算参考边界线的成 绩。也就是说,若线条矩阵中位于第j1行第j2列的像素点的值和边界区域矩阵中位于第j1行第j2列的像素点的值均为255,则表示参考边界线上的位于第j1行第j2列的像素点落入到边界区域矩阵中。j1和j2均为正整数。
在本实施例中,一条延长后的参考边界线形成的线条矩阵如下所示,通过将该线条矩阵与边界区域矩阵进行对比可知延长后的参考边界线上有7个像素点落入到边界区域矩阵里面,从而得到该参考边界线的成绩为7。
Figure PCTCN2021094204-appb-000004
如图1所示,在步骤S14,根据多条参考边界线、多个成绩和多个边界区域,确定多条目标边界线。确定各条参考边界线的成绩之后,根据各个参考边界线的成绩,从多条参考边界线中确定多条目标边界线。
在步骤S14中,根据多条参考边界线、多个成绩和多个边界区域,确定多条目标边界线,包括:分别将多个边界区域转换为多个直线组;计算与多个直线组一一对应的多个平均斜率;分别计算多条参考边界线的斜率;针对多条参考边界线中的第i条参考边界线,判断第i条参考边界线的斜率和多个平均斜率中与第i条参考边界线对应的平均斜率的差值是否高于第一斜率阈值,其中,i为正整数,i小于等于多条参考边界线的数量;响应于第i条参考边界线的斜率和与第i条参考边界线对应的平均斜率的差值低于等于第一斜率阈值,确定第i条参考边界线为目标参考边界线,分别对多条参考边界线进行上述操作,从而从多条参考边界线中确定多条目标参考边界线;根据多条目标参考边界线对应的参考边界线的成绩,确定多条中间目标边界线;根据 多条中间目标边界线,确定多条目标边界线。
在一些实施例中,第一斜率阈值的范围可以为0-20度,例如,0-10度。例如,第一斜率阈值可以为5度、15度等。例如,第一斜率阈值和第二斜率阈值可以相同,也可以不同,本公开的实施例对此不作限定。
每条参考边界线仅对应一个平均斜率,如图2所示,若第一边界区域表示与边界线a1对应的区域,某条参考边界线表示与边界线a1对应的参考边界线,则该某条参考边界线对应的平均斜率为根据与第一边界区域对应的直线组确定的平均斜率。
多个直线组与多个边界区域一一对应,多条直线组中的每个直线组包括至少一条直线。
在一些实施例中,分别将多个边界区域转换为多个直线组包括:利用霍夫变换分别将多个边界区域转换为多个直线组。需要说明的是,也可以采用其它方式将边界区域转换为直线组,本实施例对此不作限定。
多条中间目标边界线包括与第一边界区域对应的第一中间目标边界线组、与第二边界区域对应的第二中间目标边界线组、与第三边界区域对应的第三中间目标边界线组、与第四边界区域对应的第四中间目标边界线组。
在一些实施例中,多条目标边界线的数量为4,且包括与第一边界区域对应的目标边界线、与第二边界区域对应的目标边界线、与第三边界区域对应的目标边界线、与第四边界区域对应的目标边界线。
根据参考边界线的斜率和基于机器学习确定的多个边界区域确定平均斜率,可以确定斜率的差值高于第一斜率阈值的多条中间目标边界线;然后,将多条中间目标边界线的成绩进行排序,将第一中间目标边界线组中成绩最高的中间目标边界线作为与第一边界区域对应的目标边界线,将第二中间目标边界线组中成绩最高的中间目标边界线作为与第二边界区域对应的目标边界线;将第三中间目标边界线组中成绩最高的中间目标边界线作为与第三边界区域对应的目标边界线;将第四中间目标边界线组中成绩最高的中间目标边界线作为与第四边界区域对应的目标边界线。
多条参考边界线包括与第一边界区域对应的第一参考边界线组、与第二边界区域对应的第二参考边界线组、与第三边界区域对应的第三参考边界线 组、与第四边界区域对应的第四参考边界线组。
本公开实施例提供的边缘检测方法还包括:响应于多条参考边界线中的被选中的参考边界线组中的所有参考边界线的斜率和与被选中的参考边界线组对应的平均斜率的差值均高于第一斜率阈值;获取与被选中的参考边界线组对应的被选中的边界区域;根据被选中的边界区域对应的直线组,确定被选中的边界区域对应的直线组的中线,确定中线作为被选中的边界区域对应的目标边界线。
以第一边界区域为例,若多条中间目标边界线不包括与第一边界区域对应的中间目标边界线,则可以基于第一边界区域对应的直线组确定与第一边界区域对应的目标边界线。在不矛盾的情况下,上述对第一边界区域的描述也适用于第二边界区域、第三边界区域和第四边界区域。
被选中的参考边界线组为第一参考边界线组、第二参考边界线组、第三参考边界线组和第四参考边界线组中任意一个。类似地,被选中的边界区域为第一边界区域、第二边界区域、第三边界区域和第四边界区域中任意一个。例如,当被选中的参考边界线组为第一参考边界线组,则被选中的边界区域为第一边界区域;当被选中的参考边界线组为第二参考边界线组,则被选中的边界区域为第二边界区域;当被选中的参考边界线组为第三参考边界线组,则被选中的边界区域为第三边界区域;当被选中的参考边界线组为第四参考边界线组,则被选中的边界区域为第四边界区域。
在一些实施例中,根据被选中的边界区域对应的直线组,确定被选中的边界区域对应的直线组的中线,包括:将直线组中的多条直线的多个起点的坐标值进行平均,以确定中线的起点的坐标值;将直线组中的多条直线的多个终点的坐标值进行平均,以确定中线的终点的坐标值,由此,确定该直线组的中线。
在另一些实施例中,根据被选中的边界区域对应的直线组,确定被选中的边界区域对应的直线组的中线,包括:选择直线组中的多条直线中长度大于一定阈值的L条直线(例如,10条直线);根据L条直线的L个起点的坐标值进行平均,以确定中线的起点的坐标值;将L条直线的L个终点的坐标值进行平均,以确定中线的终点的坐标值,由此确定L条直线的中线。
在步骤S14中,根据多条目标参考边界线对应的参考边界线的成绩,确定多条中间目标边界线,包括:将多条目标参考边界线中成绩大于成绩阈值的目标参考边界线作为中间目标边界线。例如,成绩阈值可以由用户根据实际情况预设。
在步骤S14中,根据多条中间目标边界线,确定多条目标边界线,包括:针对多条中间目标边界线中的第k条中间目标边界线,对第k条中间目标边界线进行重合度判断,以确定第k条中间目标边界线是否为目标边界线。对中间目标边界线进行重合度判断,以确定目标边界线,由此可以提高得到的目标边界线的准确性,使确定的对象的边缘更加精确。
对第k条中间目标边界线进行重合度判断包括:计算第k条中间目标边界线的落入第k条中间目标边界线对应的边界区域的像素点和第k条中间目标边界线的所有像素点的比例,其中,k为正整数,k小于等于多条中间目标边界线的数量;判断比例是否大于等于比例阈值;响应于比例大于等于比例阈值,确定第k条中间目标边界线为目标边界线,对多条中间目标边界线进行重合度判断以确定多条目标边界线;响应于比例小于比例阈值,删除第k条中间目标边界线,并继续对多条中间目标边界线中除了第k条中间目标边界线之外的任一中间目标边界线(例如,第(k+1)条中间目标边界线)进行重合度判断。
在一些实施例中,比例阈值可以为80%。确定每条中间目标边界线中落入中间目标边界线对应的边界区域内像素点和每条中间目标边界线中各所有像素点的比例,如果比例小于80%,则表示该中间目标边界线的重合度不好,从而放弃该中间目标边界线。当所有中间目标边界线对应的比例都小于比例阈值,则直接选取输入图像和相邻已确定的目标边界线的延长线交点之间的线段作为目标边界线。例如,如图2A所示,当无法确定第三边界区域(对应于边界线a3)对应的目标边界线,则可以确定输入图像和第二边界区域对应的目标边界线的延长线的两个第一交点,确定输入图像和第四边界区域对应的目标边界线的延长线的两个第二交点,例如,将两个第一交点中位于输入图像下侧的第一交点和两个第二交点中位于输入图像下侧的第二交点之间的线段作为第三边界区域对应的目标边界线。
最后,如图1所示,在步骤S15,根据确定的多条目标边界线确定具有边缘的对象在输入图像中的边缘。
在确定多条目标边界线后,由于每条目标边界线均对应输入图像中的对象的一个边界区域,因此多条目标边界线构成了对象的边缘。如图2A所示的输入图像,输入图像中对象的边缘由图2B中的四个较长线条即目标边界线a1、a2、a3、a4构成;如图3A所示的输入图像,输入图像中对象的边缘由图3B中的四个较长线条即目标边界线b1、b2、b3、b4构成。
在一些实施例中,边缘检测方法还包括:获得多条目标边界线的多个交点,对多个交点和多条目标边界线确定的区域进行投影变换,得到输入图像中的对象的正视图。
每两条相邻的目标边界线相交得到一个交点,各个交点和各个目标边界线共同限定了输入图像中的对象所在的区域。投影变换(Perspective Transformation)是将图片投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。由于拍照所得的输入图像中,对象的真实形状在输入图像中发生了变化,即产生了几何畸变。如图2A所示的输入图像,化验单的形状本来为矩形,但是输入图像中化验单的形状发生了变化,化验单的形状变为了平行四边形。因此,对输入图像中对象所在的区域进行投影变换,可以将输入图像中对象所在区域由平行四边形变换为矩形,即将输入图像中对象所在的区域转正,从而去除几何畸变的影响,得到输入图像中对象的正视图。投影变换是根据空间投影换算坐标来将像素进行处理获取正视图的,在此不作赘述。如图2A所示的输入图像,最终获取的输入图像中的对象(即化验单)的正视图如图2C所示;如图3A所示的输入图像,最终获取的输入图像中对象(即名片)的正视图如图3C所示。
本公开至少一实施例还提供一种边缘检测装置,图5为本公开至少一实施例提供的一种边缘检测装置的示意性框图。
如图5所示,边缘检测装置500可以包括:获取模块501、合并模块502、识别模块503、成绩计算模块504、第一确定模块505和第二确定模块506。
在本实施例中,获取模块501被配置为对输入图像进行处理,以得到输入图像中灰度轮廓的线条图。输入图像包括具有边缘的对象,线条图包括多 条线条。
合并模块502被配置为将多条线条进行合并处理,以得到多条参考边界线。
识别模块503被配置为通过第一边界区域识别模型对输入图像进行处理,得到与具有边缘的对象对应的多个边界区域。
成绩计算模块504被配置为针对多条参考边界线中的每一条参考边界线,将参考边界线与多个边界区域进行对比,计算参考边界线上属于多个边界区域的像素点的个数,作为参考边界线的成绩,以确定与多条参考边界线一一对应的多个成绩。
第一确定模块505被配置为根据多条参考边界线、多个成绩和多个边界区域,确定多条目标边界线。
第二确定模块506被配置为根据确定的多条目标边界线确定具有边缘的对象的边缘。
在一些实施例中,成绩计算模块504执行将参考边界线与多个边界区域进行对比,计算参考边界线上属于多个边界区域的像素点的个数,作为参考边界线的成绩的操作时,成绩计算模块504被配置为:根据多个边界区域确定边界区域矩阵;将参考边界线进行延长以得到延长后的参考边界线;根据延长后的参考边界线确定线条矩阵;将线条矩阵与边界区域矩阵进行对比,计算延长后的参考边界线上属于边界区域矩阵的像素点的个数,作为参考边界线的成绩。例如,线条矩阵与所述边界区域矩阵的大小相同。
在一些实施例中,第一确定模块505执行根据多条参考边界线、多条参考边界线的成绩和多个边界区域,确定多条目标边界线的操作时,第一确定模块505被配置为:分别将多个边界区域转换为多个直线组,其中,多个直线组与多个边界区域一一对应,多条直线组中的每个直线组包括至少一条直线;计算与多个直线组一一对应的多个平均斜率;分别计算多条参考边界线的斜率;针对多条参考边界线中的第i条参考边界线,判断第i条参考边界线的斜率和多个平均斜率中与第i条参考边界线对应的平均斜率的差值是否高于第一斜率阈值,其中,i为正整数,i小于等于多条参考边界线的数量;响应于第i条参考边界线的斜率和与第i条参考边界线对应的平均斜率的差值低 于等于第一斜率阈值,确定第i条参考边界线为目标参考边界线,从而从多条参考边界线中确定多条目标参考边界线;根据多条目标参考边界线对应的参考边界线的成绩,确定多条中间目标边界线;根据多条中间目标边界线,确定多条目标边界线。
在一些实施例中,多个边界区域包括第一边界区域、第二边界区域、第三边界区域和第四边界区域,多条参考边界线包括与第一边界区域对应的第一参考边界线组、与第二边界区域对应的第二参考边界线组、与第三边界区域对应的第三参考边界线组、与第四边界区域对应的第四参考边界线组。
第一确定模块505还被配置为:响应于多条参考边界线中的被选中的参考边界线组中的所有参考边界线的斜率和与被选中的参考边界线组对应的平均斜率的差值均高于第一斜率阈值,其中,被选中的参考边界线组为第一参考边界线组或第二参考边界线组或第三参考边界线组或第四参考边界线组;获取与被选中的参考边界线组对应的被选中的边界区域,其中,被选中的边界区域为第一边界区域或第二边界区域或第三边界区域或第四边界区域;根据被选中的边界区域对应的直线组,确定被选中的边界区域对应的直线组的中线,确定中线作为被选中的边界区域对应的目标边界线。
在一些实施例中,第一确定模块505执行根据多条中间目标边界线,确定多条目标边界线时,第一确定模块505被配置为:针对多条中间目标边界线中的第k条中间目标边界线,对第k条中间目标边界线进行重合度判断,以确定第k条中间目标边界线是否为目标边界线。
对第k条中间目标边界线进行重合度判断包括:计算第k条中间目标边界线的落入第k条中间目标边界线对应的边界区域的像素点和第k条中间目标边界线的所有像素点的比例,其中,k为正整数,k小于等于多条中间目标边界线的数量;判断比例是否大于等于比例阈值;响应于比例大于等于比例阈值,确定第k条中间目标边界线为目标边界线,由此确定多条目标边界线;响应于比例小于比例阈值,删除第k条中间目标边界线,并继续对多条中间目标边界线中除了第k条中间目标边界线之外的任一中间目标边界线进行重合度判断。
在一些实施例中,获取模块501执行对输入图像进行处理,以得到输入 图像中灰度轮廓的线条图时,获取模块501被配置为:通过第二边界区域识别模型对输入图像进行处理,得到多个边界区域;对多个边界区域进行处理,以得到多个边界区域标注框;通过边缘检测算法对多个边界区域标注框进行处理,获得输入图像中灰度轮廓的线条图。
在一些实施例中,多条参考边界线被划分为与多个边界区域一一对应多个参考边界线组,多个参考边界线组中的每个参考边界线组包括至少一条参考边界线。合并模块502执行将多条线条进行合并处理,以得到多条参考边界线时,合并模块502被配置为:将多条线条中相似的线条进行合并,得到多个初始合并线条组,其中,多个初始合并线条组与多个边界区域一一对应,多个初始合并线条组中的每个初始合并线条组包括至少一条初始合并线条;根据多个初始合并线条组,确定多条边界连接线条,其中,多条边界连接线条与多个边界区域一一对应,多条边界连接线条与多个初始合并线条组也一一对应;分别将多个边界区域转换为多个直线组,其中,多个直线组与多个边界区域一一对应,多条直线组中的每个直线组包括至少一条直线;计算与多个直线组一一对应的多个平均斜率;分别计算多条边界连接线条的斜率;针对多条边界连接线条中的第b1条边界连接线条,判断第b1条边界连接线条的斜率和多个平均斜率中与第b1条边界连接线条对应的平均斜率的差值是否高于第二斜率阈值,其中,b1为正整数,b1小于等于多条边界连接线条的数量;响应于第b1条边界连接线条的斜率和与第b1条边界连接线条对应的平均斜率的差值低于等于第二斜率阈值,将第b1条边界连接线条和第b1条边界连接线条对应的初始合并线条组中的初始合并线条作为第b1条边界连接线条对应的边界区域对应的参考边界线组中的参考边界线,响应于第b1条边界连接线条的斜率和与第b1条边界连接线条对应的平均斜率的差值低于第二斜率阈值,将第b1条边界连接线条对应的初始合并线条组中的初始合并线条作为第b1条边界连接线条对应的边界区域对应的参考边界线组中的参考边界线,从而确定多条参考边界线。
在本实施例中,获取模块501、合并模块502、识别模块503、成绩计算模块504、第一确定模块505和/或第二确定模块506包括存储在存储器中的代码和程序;处理器可以执行该代码和程序以实现如上所述的获取模块501、 合并模块502、识别模块503、成绩计算模块504、第一确定模块505和/或第二确定模块506的一些功能或全部功能。例如,获取模块501、合并模块502、识别模块503、成绩计算模块504、第一确定模块505和/或第二确定模块506可以是专用硬件器件,用来实现如上所述的获取模块501、合并模块502、识别模块503、成绩计算模块504、第一确定模块505和/或第二确定模块506的一些或全部功能。例如,获取模块501、合并模块502、识别模块503、成绩计算模块504、第一确定模块505和/或第二确定模块506可以是一个电路板或多个电路板的组合,用于实现如上所述的功能。在本申请实施例中,该一个电路板或多个电路板的组合可以包括:(1)一个或多个处理器;(2)与处理器相连接的一个或多个非暂时的存储器;以及(3)处理器可执行的存储在存储器中的固件。
需要说明的是,获取模块501用于实现图1所示的步骤S10,合并模块502用于实现图1所示的步骤S11,识别模块503用于实现图1所示的步骤S12,成绩计算模块504用于实现图1所示的步骤S13,第一确定模块505用于实现图1所示的步骤S14,第二确定模块506用于实现图1所示的步骤S15。从而关于获取模块501、合并模块502、识别模块503、成绩计算模块504、第一确定模块505和第二确定模块506能够实现的功能的具体说明可以参考上述边缘检测方法的实施例中图1所示的步骤S10-S15的相关描述,重复之处不再赘述。此外,边缘检测装置可以实现与前述边缘检测方法相似的技术效果,在此不再赘述。
本公开至少一实施例还提供一种电子设备,图6为本公开至少一实施例提供的一种电子设备的示意性框图。
如图6所示,电子设备包括处理器601、通信接口602、存储器603和通信总线604。处理器601、通信接口602、存储器603通过通信总线604实现相互通信,处理器601、通信接口602、存储器603等组件之间也可以通过网络连接进行通信。本公开对网络的类型和功能在此不作限制。应当注意,图6所示的电子设备的组件只是示例性的,而非限制性的,根据实际应用需要,该电子设备还可以具有其他组件。
在本实施例中,存储器603用于非瞬时性地存储计算机可读指令。处理 器601用于执行计算机可读指令时,实现根据上述任一实施例所述的边缘检测方法。关于该边缘检测方法的各个步骤的具体实现以及相关解释内容可以参见上述边缘检测方法的实施例,在此不作赘述。
处理器601执行存储器603上所存放的计算机可读指令而实现的边缘检测方法的其他实现方式,与前述方法实施例部分所提及的实现方式相同,这里也不再赘述。
通信总线604可以是外设部件互连标准(PCI)总线或扩展工业标准结构(EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口602用于实现电子设备与其他设备之间的通信。
处理器601和存储器603可以设置在服务器端(或云端)。
处理器601可以控制电子设备中的其它组件以执行期望的功能。处理器601可以是中央处理器(CPU)、网络处理器(NP)、张量处理器(TPU)或者图形处理器(GPU)等具有数据处理能力和/或程序执行能力的器件;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。中央处理元(CPU)可以为X86或ARM架构等。
存储器603可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机可读指令,处理器601可以运行所述计算机可读指令,以实现电子设备的各种功能。在存储介质中还可以存储各种应用程序和各种数据等。
在一些实施例中,电子设备还可以包括图像获取部件。图像获取部件用于获得对象的输入图像。存储器603还用于存储输入图像。
图像获取部件可以是智能手机的摄像头、平板电脑的摄像头、个人计算机的摄像头、数码照相机的镜头、或者甚至可以是网络摄像头。
在本实施例中,输入图像可以是图像获取部件直接采集到的原始图像,也可以是对原始图像进行预处理之后获得的图像。预处理可以消除原始图像中的无关信息或噪声信息,以便于更好地对输入图像进行处理。预处理例如可以包括对原始图像进行图像扩充(Data Augment)、图像缩放、伽玛(Gamma)校正、图像增强或降噪滤波等处理。
关于电子设备执行边缘检测的过程的详细说明可以参考边缘检测方法的实施例中的相关描述,重复之处不再赘述。
图7为本公开至少一实施例提供的一种非瞬时性计算机可读存储介质的示意图。例如,如图7所示,在存储介质700上可以非暂时性地存储一个或多个计算机可读指令701。例如,当计算机可读指令701由处理器执行时可以执行根据上文所述的边缘检测方法中的一个或多个步骤。
该存储介质700可以应用于上述电子设备中,例如,该存储介质700可以包括电子设备中的存储器603。
关于存储介质700的说明可以参考电子设备的实施例中对于存储器的描述,重复之处不再赘述。
图8示出了本公开至少一实施例提供的一种硬件环境的示意图。本公开提供的电子设备可以应用在互联网系统。
利用图8中提供的计算机系统可以实现本公开中涉及的边缘检测装置和/或电子设备。这类计算机系统可以包括个人电脑、笔记本电脑、平板电脑、手机、个人数码助理、智能眼镜、智能手表、智能指环、智能头盔及任何智能便携设备或可穿戴设备。本实施例中的特定系统利用功能框图解释了一个包含用户界面的硬件平台。这种计算机设备可以是一个通用目的的计算机设备,或一个有特定目的的计算机设备。两种计算机设备都可以被用于实现本实施例中的边缘检测装置和/或电子设备。计算机系统可以实施当前描述的实现边缘检测所需要的信息的任何组件。例如:计算机系统能够被计算机设备通过其硬件设备、软件程序、固件以及它们的组合所实现。为了方便起见,图7中只绘制了一台计算机设备,但是本实施例所描述的实现边缘检测所需 要的信息的相关计算机功能是可以以分布的方式、由一组相似的平台所实施的,分散计算机系统的处理负荷。
如图8所示,计算机系统可以包括通信端口250,与之相连的是实现数据通信的网络,例如,计算机系统可以通过通信端口250发送和接收信息及数据,即通信端口250可以实现计算机系统与其他电子设备进行无线或有线通信以交换数据。计算机系统还可以包括一个处理器组220(即上面描述的处理器),用于执行程序指令。处理器组220可以由至少一个处理器(例如,CPU)组成。计算机系统可以包括一个内部通信总线210。计算机系统可以包括不同形式的程序储存单元以及数据储存单元(即上面描述的存储器或存储介质),例如硬盘270、只读存储器(ROM)230、随机存取存储器(RAM)240,能够用于存储计算机处理和/或通信使用的各种数据文件,以及处理器组220所执行的可能的程序指令。计算机系统还可以包括一个输入/输出组件260,输入/输出组件260用于实现计算机系统与其他组件(例如,用户界面280等)之间的输入/输出数据流。
通常,以下装置可以连接输入/输出组件260:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置;包括例如磁带、硬盘等的存储装置;以及通信接口。
虽然图8示出了具有各种装置的计算机系统,但应理解的是,并不要求计算机系统具备所有示出的装置,可以替代地,计算机系统可以具备更多或更少的装置。
对于本公开,还有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)为了清晰起见,在用于描述本发明的实施例的附图中,层或结构的厚度和尺寸被放大。可以理解,当诸如层、膜、区域或基板之类的元件被称作位于另一元件“上”或“下”时,该元件可以“直接”位于另一元件“上”或“下”,或者可以存在中间元件。
(3)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组 合以得到新的实施例。
以上所述仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。

Claims (21)

  1. 一种边缘检测方法,其特征在于,包括:
    对输入图像进行处理,以得到所述输入图像中灰度轮廓的线条图,其中,所述输入图像包括具有边缘的对象,所述线条图包括多条线条;
    将所述多条线条进行合并处理,以得到多条参考边界线;
    通过第一边界区域识别模型对所述输入图像进行处理,得到与所述具有边缘的对象对应的多个边界区域;
    针对所述多条参考边界线中的每一条参考边界线,将所述参考边界线与所述多个边界区域进行对比,计算所述参考边界线上属于所述多个边界区域的像素点的个数,作为所述参考边界线的成绩,以确定与所述多条参考边界线一一对应的多个成绩;
    根据所述多条参考边界线、所述多个成绩和所述多个边界区域,确定多条目标边界线;
    根据确定的所述多条目标边界线确定所述具有边缘的对象在所述输入图像中的边缘。
  2. 根据权利要求1所述的边缘检测方法,其特征在于,将所述参考边界线与所述多个边界区域进行对比,计算所述参考边界线上属于所述多个边界区域的像素点的个数,作为所述参考边界线的成绩,包括:
    根据所述多个边界区域确定边界区域矩阵;
    将所述参考边界线进行延长以得到延长后的参考边界线;
    根据所述延长后的参考边界线确定线条矩阵;
    将所述线条矩阵与所述边界区域矩阵进行对比,计算所述延长后的参考边界线上属于所述边界区域矩阵的像素点的个数,作为所述参考边界线的成绩,其中,所述线条矩阵与所述边界区域矩阵的大小相同。
  3. 根据权利要求2所述的边缘检测方法,其特征在于,根据所述延长后的参考边界线确定线条矩阵包括:
    将所述延长后的参考边界线中的像素点的位置信息对应到图像矩阵中;
    将所述图像矩阵中对应于所述延长后的参考边界线的像素点的值设置为 第一数值,将所述图像矩阵中的所述延长后的参考边界线对应的像素点以外的像素点的值设置为第二数值,从而形成所述线条矩阵。
  4. 根据权利要求1所述的边缘检测方法,其特征在于,根据所述多条参考边界线、所述多条参考边界线的成绩和所述多个边界区域,确定多条目标边界线,包括:
    分别将所述多个边界区域转换为多个直线组,其中,所述多个直线组与所述多个边界区域一一对应,所述多个直线组中的每个直线组包括至少一条直线;
    计算与所述多个直线组一一对应的多个平均斜率;
    分别计算所述多条参考边界线的斜率;
    针对所述多条参考边界线中的第i条参考边界线,判断所述第i条参考边界线的斜率和所述多个平均斜率中与所述第i条参考边界线对应的平均斜率的差值是否高于第一斜率阈值,其中,i为正整数,i小于等于所述多条参考边界线的数量;
    响应于所述第i条参考边界线的斜率和与所述第i条参考边界线对应的平均斜率的差值低于等于所述第一斜率阈值,确定所述第i条参考边界线为目标参考边界线,从而从所述多条参考边界线中确定多条目标参考边界线;
    根据所述多条目标参考边界线对应的参考边界线的成绩,确定多条中间目标边界线;
    根据所述多条中间目标边界线,确定所述多条目标边界线。
  5. 根据权利要求4所述的边缘检测方法,其特征在于,所述多个边界区域包括第一边界区域、第二边界区域、第三边界区域和第四边界区域,所述多条参考边界线包括与所述第一边界区域对应的第一参考边界线组、与所述第二边界区域对应的第二参考边界线组、与所述第三边界区域对应的第三参考边界线组、与所述第四边界区域对应的第四参考边界线组,
    所述边缘检测方法还包括:
    响应于所述多条参考边界线中的被选中的参考边界线组中的所有参考边界线的斜率和与所述被选中的参考边界线组对应的平均斜率的差值均高于所述第一斜率阈值,其中,所述被选中的参考边界线组为所述第一参考边界线 组或所述第二参考边界线组或所述第三参考边界线组或所述第四参考边界线组;
    获取与所述被选中的参考边界线组对应的被选中的边界区域,其中,所述被选中的边界区域为所述第一边界区域或所述第二边界区域或所述第三边界区域或所述第四边界区域;
    根据所述被选中的边界区域对应的直线组,确定所述被选中的边界区域对应的直线组的中线,确定所述中线作为所述被选中的边界区域对应的目标边界线。
  6. 根据权利要求4所述的边缘检测方法,其特征在于,根据所述多条中间目标边界线,确定所述多条目标边界线,包括:
    针对所述多条中间目标边界线中的第k条中间目标边界线,对所述第k条中间目标边界线进行重合度判断,以确定所述第k条中间目标边界线是否为目标边界线,
    其中,对所述第k条中间目标边界线进行重合度判断包括:
    计算所述第k条中间目标边界线的落入所述第k条中间目标边界线对应的边界区域的像素点和所述第k条中间目标边界线的所有像素点的比例,其中,k为正整数,k小于等于所述多条中间目标边界线的数量;
    判断所述比例是否大于等于比例阈值;
    响应于所述比例大于等于所述比例阈值,确定所述第k条中间目标边界线为目标边界线,对所述多条中间目标边界线进行所述重合度判断以确定所述多条目标边界线;
    响应于所述比例小于所述比例阈值,删除所述第k条中间目标边界线,并继续对所述多条中间目标边界线中除了所述第k条中间目标边界线之外的任一中间目标边界线进行所述重合度判断。
  7. 根据权利要求4所述的边缘检测方法,其特征在于,分别将所述多个边界区域转换为多个直线组,包括:
    利用霍夫变换分别将所述多个边界区域转换为所述多个直线组。
  8. 根据权利要求1-7任一项所述的边缘检测方法,其特征在于,对输入图像进行处理,以得到所述输入图像中灰度轮廓的线条图,包括:
    通过边缘检测算法对所述输入图像进行处理,获得所述输入图像中灰度轮廓的线条图。
  9. 根据权利要求1-7任一项所述的边缘检测方法,其特征在于,对输入图像进行处理,以得到所述输入图像中灰度轮廓的线条图,包括:
    通过第二边界区域识别模型对所述输入图像进行处理,得到所述多个边界区域;
    通过边缘检测算法对所述多个边界区域进行处理,获得所述输入图像中灰度轮廓的线条图。
  10. 根据权利要求1-7任一项所述的边缘检测方法,其特征在于,所述多条参考边界线被划分为与所述多个边界区域一一对应多个参考边界线组,所述多个参考边界线组中的每个参考边界线组包括至少一条参考边界线,
    将所述多条线条进行合并处理,以得到所述多条参考边界线,包括:
    将所述多条线条中相似的线条进行合并,得到多个初始合并线条组,其中,所述多个初始合并线条组与所述多个边界区域一一对应,所述多个初始合并线条组中的每个初始合并线条组包括至少一条初始合并线条;
    根据所述多个初始合并线条组,确定多条边界连接线条,其中,所述多条边界连接线条与所述多个边界区域一一对应,所述多条边界连接线条与所述多个初始合并线条组也一一对应;
    分别将所述多个边界区域转换为多个直线组,其中,所述多个直线组与所述多个边界区域一一对应,所述多个直线组中的每个直线组包括至少一条直线;
    计算与所述多个直线组一一对应的多个平均斜率;
    分别计算所述多条边界连接线条的斜率;
    针对所述多条边界连接线条中的第b1条边界连接线条,判断所述第b1条边界连接线条的斜率和所述多个平均斜率中与所述第b1条边界连接线条对应的平均斜率的差值是否高于第二斜率阈值,其中,b1为正整数,b1小于等于所述多条边界连接线条的数量;
    响应于所述第b1条边界连接线条的斜率和与所述第b1条边界连接线条对应的平均斜率的差值低于等于所述第二斜率阈值,将所述第b1条边界连接 线条和所述第b1条边界连接线条对应的初始合并线条组中的初始合并线条作为所述第b1条边界连接线条对应的边界区域对应的参考边界线组中的参考边界线,
    响应于所述第b1条边界连接线条的斜率和与所述第b1条边界连接线条对应的平均斜率的差值高于所述第二斜率阈值,将所述第b1条边界连接线条对应的初始合并线条组中的初始合并线条作为所述第b1条边界连接线条对应的边界区域对应的参考边界线组中的参考边界线,从而确定所述多条参考边界线。
  11. 根据权利要求10所述的边缘检测方法,其特征在于,将所述多条线条中相似的线条进行合并,得到多个初始合并线条组,包括:
    获取所述多条线条中的多条长线条,其中,所述多条长线条中的每条长线条为长度超过长度阈值的线条;
    根据所述多条长线条,获取多个合并线条组,其中,所述多个合并线条组中的每个合并线条组包括至少两个依次相邻的长线条,且每个所述合并线条组中的任意相邻的两个长线条之间的夹角均小于角度阈值;
    针对所述多个合并线条组中的每个合并线条组,将所述合并线条组中的各个长线条依次进行合并以得到与所述合并线条组对应的初始合并线条,分别对所述多个合并线条组进行合并处理以确定所述多个初始合并线条组中的初始合并线条。
  12. 根据权利要求10所述的边缘检测方法,其特征在于,根据所述多个初始合并线条组,确定多条边界连接线条,包括:
    针对所述多个初始合并线条组中的第b2个初始合并线条组,按照所述第b2个初始合并线条组中的初始合并线条的排列方向对所述第b2个初始合并线条组中的初始合并线条进行排序,以确定所述第b2个初始合并线条组中的第一条初始合并线条和最后一条初始合并线条;
    将所述第一条初始合并线条的起点和所述最后一条初始合并线条的终点连接,以得到所述第b2个初始合并线条组对应的边界连接线条,从而确定所述多条边界连接线条,
    其中,b2为正整数,b2小于等于所述多个初始合并线条组的数量。
  13. 根据权利要求1-7任一项所述的边缘检测方法,其特征在于,还包括:
    获得所述多条目标边界线的多个交点,对所述多个交点和所述多条目标边界线确定的区域进行投影变换,得到所述输入图像中的所述具有边缘的对象的正视图。
  14. 一种边缘检测装置,其特征在于,包括:
    获取模块,被配置为对输入图像进行处理,以得到所述输入图像中灰度轮廓的线条图,其中,所述输入图像包括具有边缘的对象,所述线条图包括多条线条;
    合并模块,被配置为将所述多条线条进行合并处理,以得到多条参考边界线;
    识别模块,被配置为通过第一边界区域识别模型对所述输入图像进行处理,得到与所述具有边缘的对象对应的多个边界区域;
    成绩计算模块,被配置为针对所述多条参考边界线中的每一条参考边界线,将所述参考边界线与所述多个边界区域进行对比,计算所述参考边界线上属于所述多个边界区域的像素点的个数,作为所述参考边界线的成绩,以确定与所述多条参考边界线一一对应的多个成绩;
    第一确定模块,被配置为根据所述多条参考边界线、所述多个成绩和所述多个边界区域,确定多条目标边界线;
    第二确定模块,被配置为根据确定的所述多条目标边界线确定所述具有边缘的对象的边缘。
  15. 根据权利要求14所述的边缘检测装置,其特征在于,所述成绩计算模块执行将所述参考边界线与所述多个边界区域进行对比,计算所述参考边界线上属于所述多个边界区域的像素点的个数,作为所述参考边界线的成绩时,所述成绩计算模块被配置为:
    根据所述多个边界区域确定边界区域矩阵;
    将所述参考边界线进行延长以得到延长后的参考边界线;
    根据所述延长后的参考边界线确定线条矩阵;
    将所述线条矩阵与所述边界区域矩阵进行对比,计算所述延长后的参考边界线上属于所述边界区域矩阵的像素点的个数,作为所述参考边界线的成 绩,其中,所述线条矩阵与所述边界区域矩阵的大小相同。
  16. 根据权利要求14所述的边缘检测装置,其特征在于,所述第一确定模块执行根据所述多条参考边界线、所述多条参考边界线的成绩和所述多个边界区域,确定多条目标边界线时,所述第一确定模块被配置为:
    分别将所述多个边界区域转换为多个直线组,其中,所述多个直线组与所述多个边界区域一一对应,所述多个直线组中的每个直线组包括至少一条直线;
    计算与所述多个直线组一一对应的多个平均斜率;
    分别计算所述多条参考边界线的斜率;
    针对所述多条参考边界线中的第i条参考边界线,判断所述第i条参考边界线的斜率和所述多个平均斜率中与所述第i条参考边界线对应的平均斜率的差值是否高于第一斜率阈值,其中,i为正整数,i小于等于所述多条参考边界线的数量;
    响应于所述第i条参考边界线的斜率和与所述第i条参考边界线对应的平均斜率的差值低于等于所述第一斜率阈值,确定所述第i条参考边界线为目标参考边界线,从而从所述多条参考边界线中确定多条目标参考边界线;
    根据所述多条目标参考边界线对应的参考边界线的成绩,确定多条中间目标边界线;
    根据所述多条中间目标边界线,确定所述多条目标边界线。
  17. 根据权利要求16所述的边缘检测装置,其特征在于,所述多个边界区域包括第一边界区域、第二边界区域、第三边界区域和第四边界区域,所述多条参考边界线包括与所述第一边界区域对应的第一参考边界线组、与所述第二边界区域对应的第二参考边界线组、与所述第三边界区域对应的第三参考边界线组、与所述第四边界区域对应的第四参考边界线组,
    所述第一确定模块还被配置为:
    响应于所述多条参考边界线中的被选中的参考边界线组中的所有参考边界线的斜率和与所述被选中的参考边界线组对应的平均斜率的差值均高于所述第一斜率阈值,其中,所述被选中的参考边界线组为所述第一参考边界线组或所述第二参考边界线组或所述第三参考边界线组或所述第四参考边界线 组;
    获取与所述被选中的参考边界线组对应的被选中的边界区域,其中,所述被选中的边界区域为所述第一边界区域或所述第二边界区域或所述第三边界区域或所述第四边界区域;
    根据所述被选中的边界区域对应的直线组,确定所述被选中的边界区域对应的直线组的中线,确定所述中线作为所述被选中的边界区域对应的目标边界线。
  18. 根据权利要求16所述的边缘检测装置,其特征在于,所述第一确定模块执行根据所述多条中间目标边界线,确定所述多条目标边界线时,所述第一确定模块被配置为:
    针对所述多条中间目标边界线中的第k条中间目标边界线,对所述第k条中间目标边界线进行重合度判断,以确定所述第k条中间目标边界线是否为目标边界线,
    其中,对所述第k条中间目标边界线进行重合度判断包括:
    计算所述第k条中间目标边界线的落入所述第k条中间目标边界线对应的边界区域的像素点和所述第k条中间目标边界线的所有像素点的比例,其中,k为正整数,k小于等于所述多条中间目标边界线的数量;
    判断所述比例是否大于等于比例阈值;
    响应于所述比例大于等于所述比例阈值,确定所述第k条中间目标边界线为目标边界线,对所述多条中间目标边界线进行所述重合度判断以确定所述多条目标边界线;
    响应于所述比例小于所述比例阈值,删除所述第k条中间目标边界线,并继续对所述多条中间目标边界线中除了所述第k条中间目标边界线之外的任一中间目标边界线进行所述重合度判断。
  19. 根据权利要求14所述的边缘检测装置,其特征在于,所述多条参考边界线被划分为与所述多个边界区域一一对应多个参考边界线组,所述多个参考边界线组中的每个参考边界线组包括至少一条参考边界线,
    所述合并模块执行将所述多条线条进行合并处理,以得到多条参考边界线时,所述合并模块被配置为:
    将所述多条线条中相似的线条进行合并,得到多个初始合并线条组,其中,所述多个初始合并线条组与所述多个边界区域一一对应,所述多个初始合并线条组中的每个初始合并线条组包括至少一条初始合并线条;
    根据所述多个初始合并线条组,确定多条边界连接线条,其中,所述多条边界连接线条与所述多个边界区域一一对应,所述多条边界连接线条与所述多个初始合并线条组也一一对应;
    分别将所述多个边界区域转换为多个直线组,其中,所述多个直线组与所述多个边界区域一一对应,所述多个直线组中的每个直线组包括至少一条直线;
    计算与所述多个直线组一一对应的多个平均斜率;
    分别计算所述多条边界连接线条的斜率;
    针对所述多条边界连接线条中的第b1条边界连接线条,判断所述第b1条边界连接线条的斜率和所述多个平均斜率中与所述第b1条边界连接线条对应的平均斜率的差值是否高于第二斜率阈值,其中,b1为正整数,b1小于等于所述多条边界连接线条的数量;
    响应于所述第b1条边界连接线条的斜率和与所述第b1条边界连接线条对应的平均斜率的差值低于等于所述第二斜率阈值,将所述第b1条边界连接线条和所述第b1条边界连接线条对应的初始合并线条组中的初始合并线条作为所述第b1条边界连接线条对应的边界区域对应的参考边界线组中的参考边界线,
    响应于所述第b1条边界连接线条的斜率和与所述第b1条边界连接线条对应的平均斜率的差值低于所述第二斜率阈值,将所述第b1条边界连接线条对应的初始合并线条组中的初始合并线条作为所述第b1条边界连接线条对应的边界区域对应的参考边界线组中的参考边界线,从而确定所述多条参考边界线。
  20. 一种电子设备,其特征在于,包括处理器和存储器,
    其中,所述存储器用于存储计算机可读指令;
    所述处理器用于执行所述计算机可读指令时,实现权利要求1-13任一所述的边缘检测方法的步骤。
  21. 一种非瞬时性计算机可读存储介质,其特征在于,所述计算机可读存储介质用于非暂时性地存储有计算机可读指令,所述计算机可读指令被处理器执行时实现权利要求1-13任一项所述的边缘检测方法的步骤。
PCT/CN2021/094204 2020-05-21 2021-05-17 边缘检测方法和装置、电子设备和存储介质 WO2021233266A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/609,413 US20220319012A1 (en) 2020-05-21 2021-05-17 Edge detection method and device, electronic apparatus and storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010436507.7 2020-05-21
CN202010436507.7A CN111598074B (zh) 2020-05-21 2020-05-21 边缘检测方法和装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
WO2021233266A1 true WO2021233266A1 (zh) 2021-11-25

Family

ID=72183910

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/094204 WO2021233266A1 (zh) 2020-05-21 2021-05-17 边缘检测方法和装置、电子设备和存储介质

Country Status (3)

Country Link
US (1) US20220319012A1 (zh)
CN (1) CN111598074B (zh)
WO (1) WO2021233266A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116740653A (zh) * 2023-08-14 2023-09-12 山东创亿智慧信息科技发展有限责任公司 一种配电箱运行状态监测方法及系统

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111951290B (zh) * 2019-05-16 2023-11-03 杭州睿琪软件有限公司 一种图像中物体的边缘检测方法及装置
CN111598074B (zh) * 2020-05-21 2023-07-07 杭州睿琪软件有限公司 边缘检测方法和装置、电子设备和存储介质
CN112542007A (zh) * 2020-11-30 2021-03-23 福州外语外贸学院 一种金融取款间危险目标检测方法及系统
CN112634235A (zh) * 2020-12-24 2021-04-09 深圳艾灵网络有限公司 产品图像的边界检测方法和电子设备
CN112700413B (zh) * 2020-12-30 2022-12-09 广东德诚大数据科技有限公司 答题卡异常检测方法、装置、电子设备及存储介质
CN113240077B (zh) * 2021-04-27 2022-04-05 瀚博半导体(上海)有限公司 一种张量处理方法和系统
CN113573137B (zh) * 2021-07-01 2023-08-08 厦门美图之家科技有限公司 视频画布边界检测方法、系统、终端设备及存储介质
CN116128877B (zh) * 2023-04-12 2023-06-30 山东鸿安食品科技有限公司 一种基于温度检测的排汽回收智能监测系统
CN116703898B (zh) * 2023-08-03 2023-10-20 山东优奭趸泵业科技有限公司 一种精密机械轴承端面的质量检测方法
CN117593539B (zh) * 2024-01-18 2024-04-19 杭州安脉盛智能技术有限公司 一种图像边缘特征提取方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018028713A (ja) * 2016-08-15 2018-02-22 Jfeスチール株式会社 二次元画像のエッジ抽出方法
CN110427932A (zh) * 2019-08-02 2019-11-08 杭州睿琪软件有限公司 一种识别图像中多个票据区域的方法及装置
CN110428414A (zh) * 2019-08-02 2019-11-08 杭州睿琪软件有限公司 一种识别图像中票据数量的方法及装置
CN111598074A (zh) * 2020-05-21 2020-08-28 杭州睿琪软件有限公司 边缘检测方法和装置、电子设备和存储介质
CN111951290A (zh) * 2019-05-16 2020-11-17 杭州睿琪软件有限公司 一种图像中物体的边缘检测方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109325930B (zh) * 2018-09-12 2021-09-28 苏州优纳科技有限公司 边界缺陷的检测方法、装置及检测设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018028713A (ja) * 2016-08-15 2018-02-22 Jfeスチール株式会社 二次元画像のエッジ抽出方法
CN111951290A (zh) * 2019-05-16 2020-11-17 杭州睿琪软件有限公司 一种图像中物体的边缘检测方法及装置
CN110427932A (zh) * 2019-08-02 2019-11-08 杭州睿琪软件有限公司 一种识别图像中多个票据区域的方法及装置
CN110428414A (zh) * 2019-08-02 2019-11-08 杭州睿琪软件有限公司 一种识别图像中票据数量的方法及装置
CN111598074A (zh) * 2020-05-21 2020-08-28 杭州睿琪软件有限公司 边缘检测方法和装置、电子设备和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116740653A (zh) * 2023-08-14 2023-09-12 山东创亿智慧信息科技发展有限责任公司 一种配电箱运行状态监测方法及系统

Also Published As

Publication number Publication date
US20220319012A1 (en) 2022-10-06
CN111598074A (zh) 2020-08-28
CN111598074B (zh) 2023-07-07

Similar Documents

Publication Publication Date Title
WO2021233266A1 (zh) 边缘检测方法和装置、电子设备和存储介质
WO2022148192A1 (zh) 图像处理方法、图像处理装置以及非瞬时性存储介质
CN110060237B (zh) 一种故障检测方法、装置、设备及系统
CN111951290B (zh) 一种图像中物体的边缘检测方法及装置
WO2021203832A1 (zh) 文本图像中手写内容去除方法、装置、存储介质
CN110427932B (zh) 一种识别图像中多个票据区域的方法及装置
WO2021147631A1 (zh) 手写内容去除方法、手写内容去除装置、存储介质
WO2022057607A1 (zh) 识别对象边缘的方法、系统及计算机可读存储介质
WO2023284502A1 (zh) 图像处理方法、装置、设备和存储介质
US20180253852A1 (en) Method and device for locating image edge in natural background
CN110852311A (zh) 一种三维人手关键点定位方法及装置
CN112419207A (zh) 一种图像矫正方法及装置、系统
CN110807404A (zh) 基于深度学习的表格线检测方法、装置、终端、存储介质
JP6542230B2 (ja) 投影ひずみを補正するための方法及びシステム
US11216905B2 (en) Automatic detection, counting, and measurement of lumber boards using a handheld device
WO2022002002A1 (zh) 图像处理方法、图像处理装置、电子设备、存储介质
CN110598703A (zh) 一种基于深度神经网络的ocr识别方法及装置
US9483834B1 (en) Object boundary detection in an image
WO2023130966A1 (zh) 图像处理方法、图像处理装置、电子设备、存储介质
WO2018152710A1 (zh) 图像校正的方法及装置
US10970847B2 (en) Document boundary detection using deep learning model and image processing algorithms
CN111507252A (zh) 人体跌倒检测装置、方法、电子终端及存储介质
CN114170589A (zh) 一种基于nas的岩石岩性识别方法、终端设备及存储介质
US20230290112A1 (en) Information processing apparatus, non-transitory computer readable medium, and information processing method
JP7478628B2 (ja) 画像処理装置、制御方法及び制御プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21809420

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

Country of ref document: EP

Kind code of ref document: A1