CN111598074A - 边缘检测方法和装置、电子设备和存储介质 - Google Patents
边缘检测方法和装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN111598074A CN111598074A CN202010436507.7A CN202010436507A CN111598074A CN 111598074 A CN111598074 A CN 111598074A CN 202010436507 A CN202010436507 A CN 202010436507A CN 111598074 A CN111598074 A CN 111598074A
- Authority
- CN
- China
- Prior art keywords
- boundary
- line
- lines
- reference boundary
- boundary line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003708 edge detection Methods 0.000 title claims abstract description 100
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000012545 processing Methods 0.000 claims abstract description 48
- 239000011159 matrix material Substances 0.000 claims description 111
- 230000004044 response Effects 0.000 claims description 30
- 230000015654 memory Effects 0.000 claims description 28
- 238000004422 calculation algorithm Methods 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 11
- 230000009466 transformation Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 9
- 238000002372 labelling Methods 0.000 description 9
- 238000010801 machine learning Methods 0.000 description 6
- 238000007781 pre-processing Methods 0.000 description 6
- 238000012549 training Methods 0.000 description 6
- 238000012935 Averaging Methods 0.000 description 4
- 230000002035 prolonged effect Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 230000001629 suppression Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013434 data augmentation Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000009533 lab test Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/22—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/12—Edge-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/42—Global feature extraction by analysis of the whole pattern, e.g. using frequency domain transformations or autocorrelation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/457—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by analysing connectivity, e.g. edge linking, connected component analysis or slices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/48—Extraction of image or video features by mapping characteristic values of the pattern into a parameter space, e.g. Hough transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation 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/751—Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
- G06V30/41—Analysis of document content
- G06V30/412—Layout analysis of documents structured with printed lines or input boxes, e.g. business forms or tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20048—Transform domain processing
- G06T2207/20061—Hough transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
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也属于一个合并线条组。
例如,相邻两条长线条之间的夹角θ通过以下公式计算:
例如,合并两个长线条指的是将两个长线条的斜率求平均,以得到斜率平均值,此斜率平均值为合并后线条的斜率。在实际应用中,两个长线条合并是根据两个长线条的数组形式进行计算,例如,两个长线条分别为第一长线条和第二长线条,合并两个长线条表示将第一长线条的起点(即线段头)和第二长线条的终点(即线段尾)直接连接形成一个新的更长的线条,也就是说,在线条图对应的坐标系中,将第一长线条的起点和第二长线条的终点直接直线连接,以得到合并后线条,例如,将第一长线条的起点对应的像素点的坐标值作为合并后线条的起点对应的像素点的坐标值,将第二长线条的终点对应的像素点的坐标值作为合并后线条的终点对应的像素点的坐标值,最后,将合并后线条的起点对应的像素点的坐标值和合并后线条的终点对应的像素点的坐标值形成合并后线条的数组并存储该数组。将每一个合并线条组中的各个长线条依次进行合并,从而得到对应的初始合并线条。
例如,如图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的像素点组成一个边界区域。
需要说明的是,在本公开的实施例中,可以根据多个边界区域得到一个边界区域矩阵;也可以根据多个边界区域分别得到与多个边界区域一一对应的多个边界区域矩阵。
例如,线条矩阵与边界区域矩阵的大小相同。
需要说明的是,在计算参考边界线的成绩时,可以计算该参考边界线上属于该参考边界线对应的边界区域的像素点的个数作为该参考边界线的成绩。此外,在对多个边界区域进行处理以分别得到与多个边界区域一一对应的多个边界区域矩阵的情况下,对于某条参考边界线,可以将该条参考边界线和与该条参考边界线对应的边界区域对应的边界区域矩阵进行比对,以得到该条参考边界线的成绩。
值得注意的是,在计算参考边界线的成绩时,也可以不设置边界区域矩阵,而是直接将参考边界线与对应的边界区域进行对比,以确定参考边界线上属于对应的边界区域的像素点的个数,该像素点的个数即为参考边界线的成绩。
例如,根据延长后的参考边界线确定线条矩阵包括:将延长后的参考边界线中的像素点的位置信息对应到图像矩阵中;将图像矩阵中对应于延长后的参考边界线的像素点的值设置为第一数值,将图像矩阵中的延长后的参考边界线对应的像素点以外的像素点的值设置为第二数值,从而形成线条矩阵。
例如,在确定各条参考边界线的成绩时,首先,针对每一条参考边界线,将该参考边界线进行延长,根据延长后的参考边界线确定与该参考边界线对应的线条矩阵;然后,将该线条矩阵与边界区域矩阵进行对比,即判断延长后的参考边界线上有多少像素点属于边界区域矩阵,计算延长后的参考边界线上属于边界区域矩阵的像素点的个数,作为该参考边界线的成绩。
例如,线条矩阵可以按照以下方式确定:可以按照图像矩阵的尺寸设置第二预填充矩阵;对延长后的参考边界线进行重新绘制,将重新绘制的线条中的像素点的位置信息对应到第二预填充矩阵中,将第二预填充矩阵中重新绘制的线条所在位置的像素点的值设置为第一数值、重新绘制的线条所在位置以外的其他位置的像素点的值设置为第二数值,从而形成参考边界线对应的线条矩阵。线条矩阵的形成方式与边界区域矩阵的形成方式类似,在此不作赘述。需要说明的是,图像矩阵表示输入图像对应的像素矩阵。
需要说明的是,由于参考边界线是以数组的形式存储的,即存储参考边界线的起点的坐标值和终点的坐标值,对参考边界线进行延长后,在存储延长后的参考边界线时,存储延长后的参考边界线的起点的坐标值和终点的坐标值形成数组。因此,在将参考边界线与边界区域矩阵进行对比之前,需要将每条延长后的参考边界线形成为实际线条数据,可以将每条延长后的参考边界线例如按照线宽为2个像素进行重新绘制,从而获得每条延长后的参考边界线对应的像素点的坐标值,进而根据每条延长后的参考边界线对应的像素点的坐标值对第二预填充矩阵进行值的填充,从而得到线条矩阵。例如,将第二预填充矩阵中与延长后的参考边界线对应的位置的像素点的值设为255,将延长后的参考边界线对应的位置之外的其余位置的像素点的值设为0。
例如,将线条矩阵与边界区域矩阵进行对比来判断参考边界线中落入到边界区域矩阵里面的像素点的数量,即判断线条矩阵与边界区域矩阵中有多少相同位置的像素点具有相同的第一数值(例如,255),从而计算参考边界线的成绩。也就是说,若线条矩阵中位于第j1行第j2列的像素点的值和边界区域矩阵中位于第j1行第j2列的像素点的值均为255,则表示参考边界线上的位于第j1行第j2列的像素点落入到边界区域矩阵中。j1和j2均为正整数。
例如,一条延长后的参考边界线形成的线条矩阵如下所示,通过将该线条矩阵与边界区域矩阵进行对比可知延长后的参考边界线上有7个像素点落入到边界区域矩阵里面,从而得到该参考边界线的成绩为7。
例如,如图1所示,在步骤S14,根据多条参考边界线、多个成绩和多个边界区域,确定多条目标边界线。确定各条参考边界线的成绩之后,根据各个参考边界线的成绩,从多条参考边界线中确定多条目标边界线。
例如,在步骤S14中,根据多条参考边界线、多个成绩和多个边界区域,确定多条目标边界线,包括:分别将多个边界区域转换为多个直线组;计算与多个直线组一一对应的多个平均斜率;分别计算多条参考边界线的斜率;针对多条参考边界线中的第i条参考边界线,判断第i条参考边界线的斜率和多个平均斜率中与第i条参考边界线对应的平均斜率的差值是否高于第一斜率阈值,其中,i为正整数,i小于等于多条参考边界线的数量;响应于第i条参考边界线的斜率和与第i条参考边界线对应的平均斜率的差值低于等于第一斜率阈值,确定第i条参考边界线为目标参考边界线,分别对多条参考边界线进行上述操作,从而从多条参考边界线中确定多条目标参考边界线;根据多条目标参考边界线对应的参考边界线的成绩,确定多条中间目标边界线;根据多条中间目标边界线,确定多条目标边界线。
例如,在一些实施例中,第一斜率阈值的范围可以为0-20度,例如,0-10度。例如,第一斜率阈值可以为5度、15度等。例如,第一斜率阈值和第二斜率阈值可以相同,也可以不同,本公开的实施例对此不作限定。
例如,每条参考边界线仅对应一个平均斜率,如图2A所示,若第一边界区域表示与边界线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还用于存储输入图像。
例如,图像获取部件可以是智能手机的摄像头、平板电脑的摄像头、个人计算机的摄像头、数码照相机的镜头、或者甚至可以是网络摄像头。
例如,输入图像可以是图像获取部件直接采集到的原始图像,也可以是对原始图像进行预处理之后获得的图像。预处理可以消除原始图像中的无关信息或噪声信息,以便于更好地对输入图像进行处理。预处理例如可以包括对原始图像进行图像扩充(DataAugment)、图像缩放、伽玛(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任一项所述的方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010436507.7A CN111598074B (zh) | 2020-05-21 | 2020-05-21 | 边缘检测方法和装置、电子设备和存储介质 |
PCT/CN2021/094204 WO2021233266A1 (zh) | 2020-05-21 | 2021-05-17 | 边缘检测方法和装置、电子设备和存储介质 |
US17/609,413 US20220319012A1 (en) | 2020-05-21 | 2021-05-17 | Edge detection method and device, electronic apparatus and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010436507.7A CN111598074B (zh) | 2020-05-21 | 2020-05-21 | 边缘检测方法和装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111598074A true CN111598074A (zh) | 2020-08-28 |
CN111598074B CN111598074B (zh) | 2023-07-07 |
Family
ID=72183910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010436507.7A Active CN111598074B (zh) | 2020-05-21 | 2020-05-21 | 边缘检测方法和装置、电子设备和存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220319012A1 (zh) |
CN (1) | CN111598074B (zh) |
WO (1) | WO2021233266A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111951290A (zh) * | 2019-05-16 | 2020-11-17 | 杭州睿琪软件有限公司 | 一种图像中物体的边缘检测方法及装置 |
CN112542007A (zh) * | 2020-11-30 | 2021-03-23 | 福州外语外贸学院 | 一种金融取款间危险目标检测方法及*** |
CN112634235A (zh) * | 2020-12-24 | 2021-04-09 | 深圳艾灵网络有限公司 | 产品图像的边界检测方法和电子设备 |
CN112700413A (zh) * | 2020-12-30 | 2021-04-23 | 广东德诚大数据科技有限公司 | 答题卡异常检测方法、装置、电子设备及存储介质 |
CN113240077A (zh) * | 2021-04-27 | 2021-08-10 | 瀚博半导体(上海)有限公司 | 一种张量处理方法和*** |
CN113573137A (zh) * | 2021-07-01 | 2021-10-29 | 厦门美图之家科技有限公司 | 视频画布边界检测方法、***、终端设备及存储介质 |
WO2021233266A1 (zh) * | 2020-05-21 | 2021-11-25 | 杭州睿琪软件有限公司 | 边缘检测方法和装置、电子设备和存储介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116128877B (zh) * | 2023-04-12 | 2023-06-30 | 山东鸿安食品科技有限公司 | 一种基于温度检测的排汽回收智能监测*** |
CN116703898B (zh) * | 2023-08-03 | 2023-10-20 | 山东优奭趸泵业科技有限公司 | 一种精密机械轴承端面的质量检测方法 |
CN116740653A (zh) * | 2023-08-14 | 2023-09-12 | 山东创亿智慧信息科技发展有限责任公司 | 一种配电箱运行状态监测方法及*** |
CN117593539B (zh) * | 2024-01-18 | 2024-04-19 | 杭州安脉盛智能技术有限公司 | 一种图像边缘特征提取方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109325930A (zh) * | 2018-09-12 | 2019-02-12 | 苏州优纳科技有限公司 | 边界缺陷的检测方法、装置及检测设备 |
CN110427932A (zh) * | 2019-08-02 | 2019-11-08 | 杭州睿琪软件有限公司 | 一种识别图像中多个票据区域的方法及装置 |
CN110428414A (zh) * | 2019-08-02 | 2019-11-08 | 杭州睿琪软件有限公司 | 一种识别图像中票据数量的方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6555211B2 (ja) * | 2016-08-15 | 2019-08-07 | Jfeスチール株式会社 | 二次元画像のエッジ抽出方法 |
US10127670B2 (en) * | 2016-09-27 | 2018-11-13 | Xactware Solutions, Inc. | Computer vision systems and methods for detecting and modeling features of structures in images |
CN111951290B (zh) * | 2019-05-16 | 2023-11-03 | 杭州睿琪软件有限公司 | 一种图像中物体的边缘检测方法及装置 |
WO2021023111A1 (zh) * | 2019-08-02 | 2021-02-11 | 杭州睿琪软件有限公司 | 一种识别图像中票据数量、多个票据区域的方法及装置 |
CN111275139B (zh) * | 2020-01-21 | 2024-02-23 | 杭州大拿科技股份有限公司 | 手写内容去除方法、手写内容去除装置、存储介质 |
CN111598074B (zh) * | 2020-05-21 | 2023-07-07 | 杭州睿琪软件有限公司 | 边缘检测方法和装置、电子设备和存储介质 |
-
2020
- 2020-05-21 CN CN202010436507.7A patent/CN111598074B/zh active Active
-
2021
- 2021-05-17 US US17/609,413 patent/US20220319012A1/en active Pending
- 2021-05-17 WO PCT/CN2021/094204 patent/WO2021233266A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109325930A (zh) * | 2018-09-12 | 2019-02-12 | 苏州优纳科技有限公司 | 边界缺陷的检测方法、装置及检测设备 |
CN110427932A (zh) * | 2019-08-02 | 2019-11-08 | 杭州睿琪软件有限公司 | 一种识别图像中多个票据区域的方法及装置 |
CN110428414A (zh) * | 2019-08-02 | 2019-11-08 | 杭州睿琪软件有限公司 | 一种识别图像中票据数量的方法及装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111951290A (zh) * | 2019-05-16 | 2020-11-17 | 杭州睿琪软件有限公司 | 一种图像中物体的边缘检测方法及装置 |
CN111951290B (zh) * | 2019-05-16 | 2023-11-03 | 杭州睿琪软件有限公司 | 一种图像中物体的边缘检测方法及装置 |
WO2021233266A1 (zh) * | 2020-05-21 | 2021-11-25 | 杭州睿琪软件有限公司 | 边缘检测方法和装置、电子设备和存储介质 |
CN112542007A (zh) * | 2020-11-30 | 2021-03-23 | 福州外语外贸学院 | 一种金融取款间危险目标检测方法及*** |
CN112634235A (zh) * | 2020-12-24 | 2021-04-09 | 深圳艾灵网络有限公司 | 产品图像的边界检测方法和电子设备 |
CN112700413A (zh) * | 2020-12-30 | 2021-04-23 | 广东德诚大数据科技有限公司 | 答题卡异常检测方法、装置、电子设备及存储介质 |
CN113240077A (zh) * | 2021-04-27 | 2021-08-10 | 瀚博半导体(上海)有限公司 | 一种张量处理方法和*** |
CN113240077B (zh) * | 2021-04-27 | 2022-04-05 | 瀚博半导体(上海)有限公司 | 一种张量处理方法和*** |
CN113573137A (zh) * | 2021-07-01 | 2021-10-29 | 厦门美图之家科技有限公司 | 视频画布边界检测方法、***、终端设备及存储介质 |
CN113573137B (zh) * | 2021-07-01 | 2023-08-08 | 厦门美图之家科技有限公司 | 视频画布边界检测方法、***、终端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021233266A1 (zh) | 2021-11-25 |
CN111598074B (zh) | 2023-07-07 |
US20220319012A1 (en) | 2022-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111598074B (zh) | 边缘检测方法和装置、电子设备和存储介质 | |
CN112348815B (zh) | 图像处理方法、图像处理装置以及非瞬时性存储介质 | |
CN110414507B (zh) | 车牌识别方法、装置、计算机设备和存储介质 | |
CN110060237B (zh) | 一种故障检测方法、装置、设备及*** | |
CN111951290B (zh) | 一种图像中物体的边缘检测方法及装置 | |
CN110427932B (zh) | 一种识别图像中多个票据区域的方法及装置 | |
US11823358B2 (en) | Handwritten content removing method and device and storage medium | |
CN109479082B (zh) | 图象处理方法及装置 | |
EP3563345B1 (en) | Automatic detection, counting, and measurement of lumber boards using a handheld device | |
CN107545223B (zh) | 图像识别方法及电子设备 | |
CN108074237B (zh) | 图像清晰度检测方法、装置、存储介质及电子设备 | |
US20120257822A1 (en) | Image processing apparatus, image processing method, and computer readable medium | |
CN113688846B (zh) | 物体尺寸识别方法、可读存储介质及物体尺寸识别*** | |
US11216905B2 (en) | Automatic detection, counting, and measurement of lumber boards using a handheld device | |
CN110598703A (zh) | 一种基于深度神经网络的ocr识别方法及装置 | |
CN111222507A (zh) | 数字式仪表读数的自动识别方法、计算机可读存储介质 | |
CN112419207A (zh) | 一种图像矫正方法及装置、*** | |
JP6542230B2 (ja) | 投影ひずみを補正するための方法及びシステム | |
CN114674826A (zh) | 基于布匹的视觉检测方法及检测*** | |
JP2018137636A (ja) | 画像処理装置及び画像処理プログラム | |
CN111507252A (zh) | 人体跌倒检测装置、方法、电子终端及存储介质 | |
CN113870190B (zh) | 竖直线条检测方法、装置、设备及存储介质 | |
CN111753832B (zh) | 图像处理方法、图像处理装置、电子设备和存储介质 | |
CN114387165A (zh) | 图像处理方法、图像处理装置、电子设备、存储介质 | |
CN113840135A (zh) | 色偏检测方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |