CN117011532A - 图像处理方法、装置、设备、存储介质及程序产品 - Google Patents
图像处理方法、装置、设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN117011532A CN117011532A CN202211165052.5A CN202211165052A CN117011532A CN 117011532 A CN117011532 A CN 117011532A CN 202211165052 A CN202211165052 A CN 202211165052A CN 117011532 A CN117011532 A CN 117011532A
- Authority
- CN
- China
- Prior art keywords
- image
- boundary
- offset
- pixel
- point
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 37
- 238000003860 storage Methods 0.000 title claims abstract description 20
- 238000012545 processing Methods 0.000 claims abstract description 120
- 238000000034 method Methods 0.000 claims abstract description 45
- 238000004590 computer program Methods 0.000 claims abstract description 14
- 230000008569 process Effects 0.000 claims description 23
- 230000015654 memory Effects 0.000 claims description 22
- 230000009191 jumping Effects 0.000 claims description 20
- 238000012804 iterative process Methods 0.000 claims description 12
- 230000010354 integration Effects 0.000 claims description 10
- 238000005070 sampling Methods 0.000 claims description 7
- 230000006399 behavior Effects 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 abstract description 20
- 238000013473 artificial intelligence Methods 0.000 abstract description 8
- 238000001514 detection method Methods 0.000 description 44
- 230000002159 abnormal effect Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 20
- 238000010801 machine learning Methods 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 14
- 238000013178 mathematical model Methods 0.000 description 9
- 230000007547 defect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000000605 extraction Methods 0.000 description 5
- 230000001174 ascending effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000003064 k means clustering Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 238000003384 imaging method Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 239000002537 cosmetic Substances 0.000 description 2
- 238000003708 edge detection Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 239000011358 absorbing material Substances 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000919 ceramic Substances 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 239000002023 wood Substances 0.000 description 1
Classifications
-
- 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/28—Quantising the image, e.g. histogram thresholding for discrimination between background and foreground patterns
-
- 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
-
- 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/762—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/07—Target detection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
Abstract
本申请提供了一种图像处理方法、装置、设备、存储介质及计算机程序产品,可应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景;方法包括:对待处理图像进行二值化处理,得到二值化图像;将二值化图像在至少一个方向上进行一个偏移量的偏移处理,得到各方向上的偏移图像;针对各方向上的偏移图像,将二值化图像中与偏移图像中第二像素点存在差异的第一像素点作为目标对象的候选边界点;针对各方向,对方向上的候选边界点进行拟合,得到目标对象在方向上的子边界;对各方向上的子边界进行整合,得到待处理图像中目标对象的对象边界,该对象边界用于供对目标对象进行检测;通过本申请,能够提高图像中对象的边界的识别效率和识别准确性。
Description
技术领域
本申请涉及信息处理技术领域,尤其涉及一种图像处理方法、装置、设备、存储介质及计算机程序产品。
背景技术
人工智能(AI,Artificial Intelligence)是计算机科学的一个综合技术,通过研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术是一门综合学科,涉及领域广泛,例如自然语言处理技术以及机器学习/深度学习等几大方向,随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
图像处理也是人工智能的一个重要应用方向。相关技术中,通常采用机器学习模型来识别图像中目标(即对象)的边界。但是,1)需要额外引入机器学习模型的推理时间,使得边界的识别时间较长,速度较慢;2)通过机器学习模型提取边界框来识别,准确性上可能额外引入了不确定性(如容易出现模型预测结果错误导致边界识别不准确、或者没有识别到边界等情况),导致边界识别准确度不够。
发明内容
本申请实施例提供一种图像处理方法、装置、设备、存储介质及计算机程序产品,能够提高图像中对象的边界的识别效率和识别准确性。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种图像处理方法,包括:
对包括目标对象的待处理图像进行二值化处理,得到二值化图像;
将所述二值化图像在至少一个方向上进行一个偏移量的偏移处理,得到各所述方向上的偏移图像;
针对各所述方向上的偏移图像,将所述二值化图像中各第一像素点与所述偏移图像中相应位置处的第二像素点进行比较,得到比较结果,并
基于所述比较结果,将所述二值化图像中与所述偏移图像中第二像素点存在差异的第一像素点,作为所述目标对象的候选边界点;
针对各所述方向,对所述方向上的候选边界点进行拟合,得到所述目标对象在所述方向上的子边界;
对各所述方向上的子边界进行整合,得到所述待处理图像中所述目标对象的对象边界,所述对象边界,用于供对所述目标对象进行检测。
上述方案中,当所述候选边界点的数量为多个时,所述基于所述比较结果,将所述二值化图像中与所述偏移图像中第二像素点存在差异的第一像素点,作为所述目标对象的候选边界点之后,所述方法还包括:
对多个所述候选边界点进行聚类处理,得到至少一个聚类簇,每个所述聚类簇包括至少一个所述候选边界点;
从所述至少一个聚类簇中选取满足条件的目标聚类簇,并将所述目标聚类簇包括的候选边界点作为第一候选边界点;
所述针对各所述方向,对所述方向上的候选边界点进行拟合,得到所述目标对象在所述方向上的子边界,包括:
针对各所述方向,对所述方向上的所述第一候选边界点进行拟合,得到所述目标对象在所述方向上的子边界。
上述方案中,所述从所述至少一个聚类簇中选取满足条件的目标聚类簇,包括:
获取各所述聚类簇中所包括的候选边界点的边界点数量,并将所述边界点数量满足数量条件的聚类簇作为所述目标聚类簇;或者,
获取所述至少一个聚类簇中任意两个聚类簇之间的簇间距离,并将所述簇间距离满足距离条件的聚类簇作为所述目标聚类簇。
上述方案中,所述方向上的候选边界点的数量为多个,所述对所述方向上的候选边界点进行拟合,得到所述目标对象在所述方向上的子边界,包括:
从所述方向上的多个候选边界点中,采样得到多个第二候选边界点,并对所述多个第二候选边界点进行直线拟合,得到相应的直线;
确定各所述候选边界点与所述直线之间的距离,并确定所述距离低于距离阈值的候选边界点的边界点数量;
循环执行上述操作,直至迭代过程结束;
确定多次迭代过程所对应的边界点数量中的最大边界点数量,并确定对应所述最大边界点数量的目标迭代过程所得到的目标直线;
将所述目标直线确定为所述目标对象在所述方向上的子边界。
上述方案中,当所述方向上的子边界包括左子边界、右子边界、上子边界和下子边界时,所述对各所述方向上的子边界进行整合,得到所述待处理图像中所述目标对象的对象边界,包括:
确定所述左子边界对应的直线、与所述上子边界对应的直线间的直线交点的第一坐标,并
确定所述右子边界对应的直线、与所述下子边界对应的直线间的直线交点的第二坐标;
基于各所述方向上的子边界对应的直线,结合所述第一坐标和所述第二坐标,得到所述待处理图像中所述目标对象的对象边界。
上述方案中,所述对各所述方向上的子边界进行整合,得到所述待处理图像中所述目标对象的对象边界之后,所述方法还包括:
确定所述对象边界是否满足所述目标对象的边界异常条件;
当所述对象边界满足所述边界异常条件时,输出异常提示信息,所述异常提示信息,用于提示所述目标对象存在异常。
本申请实施例还提供一种图像处理装置,包括:
二值化模块,用于对包括目标对象的待处理图像进行二值化处理,得到二值化图像;
偏移模块,用于将所述二值化图像在至少一个方向上进行一个偏移量的偏移处理,得到各所述方向上的偏移图像;
比较模块,用于针对各所述方向上的偏移图像,将所述二值化图像中各第一像素点与所述偏移图像中相应位置处的第二像素点进行比较,得到比较结果,并基于所述比较结果,将所述二值化图像中与所述偏移图像中第二像素点存在差异的第一像素点,作为所述目标对象的候选边界点;
拟合模块,用于针对各所述方向,对所述方向上的候选边界点进行拟合,得到所述目标对象在所述方向上的子边界;
整合模块,用于对各所述方向上的子边界进行整合,得到所述待处理图像中所述目标对象的对象边界,所述对象边界,用于供对所述目标对象进行检测。
上述方案中,所述二值化模块,还用于获取所述待处理图像中各像素点的像素值;将所述像素值超过像素阈值的像素点作为第三像素点,并将所述像素值不超过所述像素阈值的像素点作为第四像素点;将所述第三像素点的像素灰度值确定为第一灰度值,并将所述第四像素点的像素灰度值确定为第二灰度值,以得到所述二值化图像。
上述方案中,所述二值化模块,还用于针对所述待处理图像中各所述像素点,分别执行如下处理:获取所述像素点分别在红R、绿G、蓝B颜色通道上的通道像素值;将多个所述颜色通道上的通道像素值进行平均处理,得到平均处理结果,并将所述平均处理结果作为所述像素点的像素值。
上述方案中,所述偏移模块,还用于按照第一偏移方向,将所述二值化图像在横向方向上进行一个像素点的偏移处理,得到所述横向方向上的偏移图像;以及,按照第二偏移方向,将所述二值化图像在竖向方向上进行一个像素点的偏移处理,得到所述竖向方向上的偏移图像。
上述方案中,所述比较模块,还用于针对所述二值化图像中各所述第一像素点,分别执行如下处理:确定第一像素点的像素值与所述偏移图像中相应位置处的第二像素点的像素值之间的像素值差值;当所述像素值差值不为0时,得到所述第一像素点与所述偏移图像中相应位置处的第二像素点存在差异的比较结果。
上述方案中,所述比较模块,还用于按照从左到右的偏移方向,将所述二值化图像在横向方向上进行一个偏移量的偏移处理,得到所述横向方向上的偏移图像;所述比较模块,还用于将所述像素值差值大于0的第一像素点,作为所述目标对象的左侧候选边界点,并将所述像素值差值小于0的第一像素点,作为所述目标对象的右侧候选边界点;所述拟合模块,还用于对所述横向方向上的左侧候选边界点进行拟合,得到所述目标对象在所述横向方向上的左侧子边界,并对所述横向方向上的右侧候选边界点进行拟合,得到所述目标对象在所述横向方向上的右侧子边界。
上述方案中,所述比较模块,还用于按照从上到下的偏移方向,将所述二值化图像在竖向方向上进行一个偏移量的偏移处理,得到所述竖向方向上的偏移图像;所述比较模块,还用于将所述像素值差值大于0的第一像素点,作为所述目标对象的上方候选边界点,并将所述像素值差值小于0的第一像素点,作为所述目标对象的下方候选边界点;所述拟合模块,还用于对所述竖向方向上的上方候选边界点进行拟合,得到所述目标对象在所述竖向方向上的上方子边界,并对所述竖向方向上的下方候选边界点进行拟合,得到所述目标对象在所述竖向方向上的下方子边界。
上述方案中,当所述候选边界点的数量为多个时,所述比较模块,还用于对多个所述候选边界点进行聚类处理,得到至少一个聚类簇,每个所述聚类簇包括至少一个所述候选边界点;从所述至少一个聚类簇中选取满足条件的目标聚类簇,并将所述目标聚类簇包括的候选边界点作为第一候选边界点;所述拟合模块,还用于针对各所述方向,对所述方向上的所述第一候选边界点进行拟合,得到所述目标对象在所述方向上的子边界。
上述方案中,所述比较模块,还用于获取各所述聚类簇中所包括的候选边界点的边界点数量,并将所述边界点数量满足数量条件的聚类簇作为所述目标聚类簇;或者,获取所述至少一个聚类簇中任意两个聚类簇之间的簇间距离,并将所述簇间距离满足距离条件的聚类簇作为所述目标聚类簇。
上述方案中,当所述候选边界点的数量为多个,且所述方向为横向方向时,所述比较模块,还用于从所述二值化图像的第一行第一像素点开始,执行如下处理:针对待扫描的当前行,按照第一扫描方向,从所述当前行的第一个第一像素点开始,对所述当前行的第一像素点依次进行扫描;当扫描到多个所述候选边界点中的一个候选边界点时,将扫描到的候选边界点,作为所述横向方向上的候选边界点;确定距离所述当前行为预设行步进值的目标行是否存在;若所述目标行存在,从所述当前行跳转至所述目标行,以将所述目标行作为所述待扫描的当前行,并循环执行上述操作;若所述目标行不存在,执行结束操作。
上述方案中,当所述候选边界点的数量为多个,且所述方向为竖向方向时,所述比较模块,还用于从所述二值化图像的第一列第一像素点开始,执行如下处理:针对待扫描的当前列,按照第二扫描方向,从所述当前列的第一个第一像素点开始,对所述当前列的第一像素点依次进行扫描;当扫描到多个所述候选边界点中的一个候选边界点时,将扫描到的候选边界点,作为所述竖向方向上的候选边界点;确定距离所述当前列为预设列步进值的目标列是否存在;若所述目标列存在,从所述当前列跳转至所述目标列,以将所述目标列作为所述待扫描的当前列,并循环执行上述操作;若所述目标列不存在,执行结束操作。
上述方案中,所述方向上的候选边界点的数量为多个,所述拟合模块,还用于从所述方向上的多个候选边界点中,采样得到多个第二候选边界点,并对所述多个第二候选边界点进行直线拟合,得到相应的直线;确定各所述候选边界点与所述直线之间的距离,并确定所述距离低于距离阈值的候选边界点的边界点数量;循环执行上述操作,直至迭代过程结束;确定多次迭代过程所对应的边界点数量中的最大边界点数量,并确定对应所述最大边界点数量的目标迭代过程所得到的目标直线;将所述目标直线确定为所述目标对象在所述方向上的子边界。
上述方案中,当所述方向上的子边界包括左子边界、右子边界、上子边界和下子边界时,所述整合模块,还用于确定所述左子边界对应的直线、与所述上子边界对应的直线间的直线交点的第一坐标,并确定所述右子边界对应的直线、与所述下子边界对应的直线间的直线交点的第二坐标;基于各所述方向上的子边界对应的直线,结合所述第一坐标和所述第二坐标,得到所述待处理图像中所述目标对象的对象边界。
上述方案中,所述整合模块,还用于确定所述对象边界是否满足所述目标对象的边界异常条件;当所述对象边界满足所述边界异常条件时,输出异常提示信息,所述异常提示信息,用于提示所述目标对象存在异常。
本申请实施例还提供一种电子设备,包括:
存储器,用于存储计算机可执行指令;
处理器,用于执行所述存储器中存储的计算机可执行指令时,实现本申请实施例提供的图像处理方法。
本申请实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令被处理器执行时,实现本申请实施例提供的图像处理方法。
本申请实施例还提供一种计算机程序产品,包括计算机程序或计算机可执行指令,所述计算机程序或计算机可执行指令被处理器执行时,实现本申请实施例提供的图像处理方法。
本申请实施例具有以下有益效果:
首先对包括目标对象的待处理图像进行二值化处理,得到二值化图像;然后,将二值化图像在至少一个方向上进行一个偏移量的偏移处理,得到各方向上的偏移图像;再针对各方向上的偏移图像,将二值化图像中各第一像素点与偏移图像中相应位置处的第二像素点进行比较,得到比较结果,并基于比较结果,将二值化图像中与偏移图像中第二像素点存在差异的第一像素点,作为目标对象的候选边界点;从而针对各方向,对方向上的候选边界点进行拟合,得到目标对象在方向上的子边界;最后对各方向上的子边界进行整合,得到待处理图像中目标对象的对象边界。如此,无需通过机器学习模型即可实现图像中对象的边界的识别,避免引入模型训练时长和推理时长,能够提高图像中对象的边界的识别速度和识别效率;同时还避免出现模型预测结果出错的问题,能够提高图像中对象的边界的识别准确性;而该对象边界可以用于供对目标对象进行检测,进一步还能够提高目标对象检测的检测效率和检测准确性。
附图说明
图1是本申请实施例提供的图像处理系统100的架构示意图;
图2是本申请实施例提供的实施图像处理方法的电子设备500的结构示意图;
图3是本申请实施例提供的图像处理方法的流程示意图;
图4是本申请实施例提供的二值化图像的示意图;
图5是本申请实施例提供的左侧第一候选边界点的示意图;
图6是本申请实施例提供的横向方向上的左侧候选边界点的示意图;
图7是本申请实施例提供的横向方向上的候选边界点的示意图;
图8是本申请实施例提供的竖向方向上的候选边界点的示意图;
图9是本申请实施例提供的左侧子边界所对应直线的示意图;
图10是本申请实施例提供的目标对象的对象边界的示意图;
图11是本申请实施例提供的图像处理方法的流程示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)响应于,用于表示所执行的操作所依赖的条件或状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
2)感兴趣区域(ROI,Region of interest):在机器视觉和图像处理中,ROI是从待处理图像中以方框、圆、椭圆、不规则多边形等方式勾勒出的需要处理的区域,ROI是图像处理过程中所关注的重点,通过圈定ROI可以减少图像处理的时间,增加图像处理的精度。
3)边界框(Bounding box):即上述对象边界,在对象检测里,通常使用边界框来描述该对象的位置。在一些示例中,边界框可以是矩形框,可以由矩形框左上角顶点的坐标(x1,y1)、以及右下角顶点的坐标(x2,y2)确定。
本申请实施例提供一种图像处理方法、装置、设备、存储介质及计算机程序产品,能够提高图像中对象的边界的识别效率和识别准确性。
下面说明本申请实施例提供的图像处理方法的实施场景。参见图1,图1是本申请实施例提供的图像处理系统100的架构示意图,为实现支撑一个示例性应用,终端400通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线或有线链路实现数据传输。
终端400,用于响应于针对待处理图像的图像处理指令,发送图像处理请求至服务器200;服务器200,用于接收终端400发送的图像处理请求;响应于图像处理请求,对包括目标对象的待处理图像进行二值化处理,得到二值化图像;将所述二值化图像在至少一个方向上进行一个偏移量的偏移处理,得到各所述方向上的偏移图像;针对各所述方向上的偏移图像,将所述二值化图像中各第一像素点与所述偏移图像中相应位置处的第二像素点进行比较,得到比较结果,并基于所述比较结果,将所述二值化图像中与所述偏移图像中第二像素点存在差异的第一像素点,作为所述目标对象的候选边界点;针对各所述方向,对所述方向上的候选边界点进行拟合,得到所述目标对象在所述方向上的子边界;对各所述方向上的子边界进行整合,得到所述待处理图像中所述目标对象的对象边界;基于对象边界,对目标对象进行检测,得到检测结果,并返回检测结果至终端400;终端400,用于接收检测结果并显示,以供用户查看。
在一些实施例中,本申请实施例提供的图像处理方法可以由各种电子设备实施,例如,可以由终端单独实施,也可以由服务器单独实施,也可以由终端和服务器协同实施。例如终端独自执行本申请实施例提供的图像处理方法,或者,终端向服务器发送图像处理请求,服务器根据接收的图像处理请求执行本申请实施例提供的图像处理方法。本申请实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。
在一些实施例中,本申请实施例提供的实施图像处理的电子设备可以是各种类型的终端设备或服务器。其中,服务器(例如服务器200)可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统。终端(例如终端400)可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能语音交互设备(例如智能音箱)、智能家电(例如智能电视)、智能手表、车载终端等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例对此不做限制。
在一些实施例中,本申请实施例提供的图像处理方法可以借助于云技术(CloudTechnology)实现,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、以及应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源。作为示例,服务器(例如服务器200)还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
在一些实施例中,终端或服务器可以通过运行计算机程序来实现本申请实施例提供的图像处理方法,举例来说,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,Application),即需要在操作系统中安装才能运行的程序;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
在一些实施例中,多个服务器可组成为一区块链,而服务器为区块链上的节点,区块链中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。其中,本申请实施例提供的图像处理方法所相关的数据(例如待处理图像、二值化图像、偏移图像、目标对象的候选边界点、目标对象的对象边界、目标对象在各方向上的子边界,等等)可保存于区块链上。
下面说明本申请实施例提供的实施图像处理方法的电子设备。参见图2,图2是本申请实施例提供的实施图像处理方法的电子设备500的结构示意图。以电子设备500为图1所示的服务器为例,本申请实施例提供的实施图像处理方法的电子设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统540。
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器550可以是可移除的,不可移除的或其组合。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。存储器550包括易失性存储器或非易失性存储器,也可包括易失性存储器和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random AccessMemory)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。
在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他电子设备,示例性的网络接口520包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
在一些实施例中,本申请实施例提供的图像处理装置可以采用软件方式实现,图2示出了存储在存储器550中的图像处理装置553,其可以是程序和插件等形式的软件,包括以下软件模块:二值化模块5531、偏移模块5532、比较模块5533、拟合模块5534和整合模块5535,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分,将在下文中说明各个模块的功能。
下面说明本申请实施例提供的图像处理方法。在一些实施例中,本申请实施例提供的图像处理方法可以由各种电子设备实施,例如,可以由终端单独实施,也可以由服务器单独实施,也可以由终端和服务器协同实施。以服务器实施为例,参见图3,图3是本申请实施例提供的图像处理方法的流程示意图,本申请实施例提供的图像处理方法包括:
步骤101:服务器对包括目标对象的待处理图像进行二值化处理,得到二值化图像。
在实际应用中,由于通过机器学习模型进行图像中对象检测(比如检测图像中产品(即对象)的外观是否合格、是否有缺陷)时,对于待处理图像的尺寸较为敏感,大尺寸图像不仅会导致检测速度变慢,还会导致目标检测不准确。因此,可以提前通过对待处理图像进行ROI的识别,将对象的有效区域(即ROI)识别出来,以在后续的对象检测过程中,仅对对象的有效区域进行检测,从而提高对象检测速度和对象检测精度。
在进行对象的有效区域(即ROI)识别时,实际是识别待处理图像中对象的对象边界,该对象边界所包围的区域即为对象的有效区域。在本申请实施例中,提供一种识别待处理图像中对象的对象边界的方法,下面将进行详细说明。在本申请实施例中,服务器进行对象边界识别时,首先对包括目标对象的待处理图像进行二值化处理,得到二值化图像。
在一些实施例中,服务器可通过如下方式对包括目标对象的待处理图像进行二值化处理,得到二值化图像:获取待处理图像中各像素点的像素值;将像素值超过像素阈值的像素点作为第三像素点,并将像素值不超过像素阈值的像素点作为第四像素点;将第三像素点的像素灰度值确定为第一灰度值,并将第四像素点的像素灰度值确定为第二灰度值,以得到二值化图像。
在一些实施例中,服务器可通过如下方式获取待处理图像中各像素点的像素值:针对待处理图像中各像素点,分别执行如下处理:获取像素点分别在红R、绿G、蓝B颜色通道上的通道像素值;将多个颜色通道上的通道像素值进行平均处理,得到平均处理结果,并将平均处理结果作为像素点的像素值。
在实际应用中,首先获取像素点分别在红R、绿G、蓝B颜色通道上的通道像素值,然后将多个颜色通道上的通道像素值进行平均处理,得到平均处理结果,并将平均处理结果作为像素点的像素值。在进行二值化处理时,可以预先设置像素阈值,从而在获取到待处理图像中各像素点的像素值后,将各像素点的像素值与该像素阈值进行比较,从而将像素值超过像素阈值的像素点作为第三像素点,并将第三像素点的像素灰度值确定为第一灰度值(如255),还将像素值不超过像素阈值的像素点作为第四像素点,并将第四像素点的像素灰度值确定为第二灰度值(如0)。如此,得到待处理图像的二值化图像。作为示例,参见图4,图4是本申请实施例提供的二值化图像的示意图。这里,该二值化图像中包括像素灰度值为255的像素点、以及像素灰度值为0的像素点。
步骤102:将二值化图像在至少一个方向上进行一个偏移量的偏移处理,得到各方向上的偏移图像。
在步骤102中,该偏移量可以是预先设置的,该偏移量可以是一个像素点;该方向可以包括横向方向和竖向方向;在偏移处理时,可以按照预设的偏移方向进行偏移处理,比如在横向方向上,偏移方向可以是从左向右、从右向左;在竖向方向上,偏移方向可以是从上向下、从下向上。即,服务器可通过如下方式将二值化图像在至少一个方向上进行一个偏移量的偏移处理,得到各方向上的偏移图像:按照第一偏移方向(如从左向右),将二值化图像在横向方向上进行一个像素点的偏移处理,得到横向方向上的偏移图像;以及,按照第二偏移方向(如从上向下),将二值化图像在竖向方向上进行一个像素点的偏移处理,得到竖向方向上的偏移图像。
步骤103:针对各方向上的偏移图像,将二值化图像中各第一像素点与偏移图像中相应位置处的第二像素点进行比较,得到比较结果,并基于比较结果,将二值化图像中与偏移图像中第二像素点存在差异的第一像素点,作为目标对象的候选边界点。
在步骤103中,在得到各方向上的偏移图像后,针对各方向上的偏移图像,分别执行如下处理:将二值化图像中各第一像素点与偏移图像中相应位置处的第二像素点进行比较,得到比较结果,并基于比较结果,将二值化图像中与偏移图像中第二像素点存在差异的第一像素点,作为目标对象的候选边界点。在一些实施例中,服务器可通过如下方式将二值化图像中各第一像素点与偏移图像中相应位置处的第二像素点进行比较,得到比较结果:针对二值化图像中各第一像素点,分别执行如下处理:确定第一像素点的像素值与偏移图像中相应位置处的第二像素点的像素值之间的像素值差值;当像素值差值不为0时,得到第一像素点与偏移图像中相应位置处的第二像素点存在差异的比较结果;当像素值差值为0时,得到第一像素点与偏移图像中相应位置处的第二像素点不存在差异的比较结果。从而,基于比较结果,将二值化图像中与偏移图像中第二像素点存在差异的第一像素点,作为目标对象的候选边界点。
在实际应用中,当确定目标对象的候选边界点后,如果该候选边界点的数量为多个,则还可以进一步从多个候选边界点中筛选得到部分候选边界点,以减少后续处理的计算量,提高计算速度,减低计算资源的浪费。如此,当候选边界点的数量为多个时,在基于比较结果,将二值化图像中与偏移图像中第二像素点存在差异的第一像素点,作为目标对象的候选边界点之后,服务器可通过如下方式再次对候选边界点进行筛选:对多个候选边界点进行聚类处理,得到至少一个聚类簇,该每个聚类簇包括至少一个候选边界点;从至少一个聚类簇中选取满足条件的目标聚类簇,并将目标聚类簇包括的候选边界点作为第一候选边界点;相应的,针对各方向,服务器可通过如下方式对方向上的候选边界点进行拟合,得到目标对象在方向上的子边界:针对各方向,对方向上的第一候选边界点进行拟合,得到目标对象在方向上的子边界。
在实际应用中,该多个候选边界点包括左侧候选边界点、右侧候选边界点、上方候选边界点、以及下方候选边界点。当各侧的候选边界点的数量均为多个时,可以分别对各测的候选边界点进行上述处理,即针对各侧的多个候选边界点分别执行如下处理:对该侧的多个候选边界点进行聚类处理,得到至少一个聚类簇,该每个聚类簇包括至少一个候选边界点;从至少一个聚类簇中选取满足条件的目标聚类簇,并将目标聚类簇包括的候选边界点作为该侧的第一候选边界点;相应的,针对各方向,服务器可通过如下方式对方向上的候选边界点进行拟合,得到目标对象在方向上的子边界:针对各方向,对方向上的该侧的第一候选边界点进行拟合,得到目标对象在方向上位于该侧的子边界,如上边界、下边界、左边界和右边界。
作为示例,参见图5,图5是本申请实施例提供的左侧第一候选边界点的示意图,这里,如图5中(1)所示,为对左侧候选边界点进行聚类处理得到的聚类簇,包括簇1、簇2、簇3以及簇4;如图5中(2)所示,从多个聚类簇中选择满足条件的目标聚类簇,即簇1和簇3。
在一些实施例中,服务器可通过如下方式从至少一个聚类簇中选取满足条件的目标聚类簇:获取各聚类簇中所包括的候选边界点的边界点数量,并将边界点数量满足数量条件的聚类簇作为目标聚类簇;或者,获取至少一个聚类簇中任意两个聚类簇之间的簇间距离,并将簇间距离满足距离条件的聚类簇作为目标聚类簇。示例性地,该聚类处理可以采用K-means聚类算法实现:采用K-means聚类算法需提前指定聚类得到的聚类簇的数量m,该数量m可以由目标对象的外形形态决定,例如,m=2n+1(n为目标对象的突出部分的数量),即,仅有1处突出部分可以将m设置为3,有2处突出部分可以将m设置为5。当从多个聚类簇中选取满足条件的目标聚类簇时,1)可以从多个聚类簇中选取簇间距离较接近的(n+1)个聚类簇(比如簇间距离低于距离阈值(n+1)个聚类簇、簇间距离升序排序靠前的(n+1)个聚类簇),作为目标聚类簇。如,仅有1处突出部分(n=1)可以将m设置为3,并在聚类之后取2个簇间距离相近的聚类簇作为目标聚类簇;有2处突出部分(n=2)可以将m设置为5,并在聚类之后取3个簇间距离相近的聚类簇作为目标聚类簇。2)还可以从多个聚类簇中,选取候选边界点的边界点数量满足数量条件(如边界点数量大于数量阈值的若干聚类簇、或者边界点数量升序排序靠前的若干聚类簇)作为目标聚类簇。
在实际应用中,当确定目标对象的候选边界点后,如果该候选边界点的数量为多个,则还可以进一步从多个候选边界点中筛选得到部分候选边界点,以减少后续处理的计算量,提高计算速度,减低计算资源的浪费。如此,在一些实施例中,当候选边界点的数量为多个,且方向为横向方向时,当基于比较结果,将二值化图像中与偏移图像中第二像素点存在差异的第一像素点,作为目标对象的候选边界点之后,服务器可通过如下方式再次对候选边界点进行筛选:从二值化图像的第一行第一像素点开始,执行如下处理:针对待扫描的当前行,按照第一扫描方向,从当前行的第一个第一像素点开始,对当前行的第一像素点依次进行扫描;当扫描到多个候选边界点中的一个候选边界点时,将扫描到的候选边界点,作为横向方向上的候选边界点;确定距离当前行为预设行步进值的目标行是否存在;若目标行存在,从当前行跳转至目标行,以将目标行作为待扫描的当前行,并循环执行上述操作;若目标行不存在,执行结束操作。
在实际应用中,该多个候选边界点在横向方向上包括左侧候选边界点、以及右侧候选边界点。针对确定了候选边界点集的二值化图像,从第1行第一像素点开始,在当前行内,从左向右扫描每个第一像素点,当扫描到候选边界点时,将扫描到的候选边界点,作为横向方向上的左侧候选边界点;并确定距离当前行为预设行步进值(如10行)的目标行是否存在;若目标行存在,从当前行跳转至目标行,以将目标行作为待扫描的当前行,并循环执行上述操作;若目标行不存在,执行结束操作。如此,得到目标对象在横向方向上的左侧候选边界点。作为示例,参见图6,图6是本申请实施例提供的横向方向上的左侧候选边界点的示意图。
针对确定了候选边界点集的二值化图像,从第1行第一像素点开始,在当前行内,从左向右扫描每个第一像素点,当扫描到候选边界点时,将扫描到的候选边界点,作为横向方向上的右侧候选边界点;并确定距离当前行为预设行步进值(如10行)的目标行是否存在;若目标行存在,从当前行跳转至目标行,以将目标行作为待扫描的当前行,并循环执行上述操作;若目标行不存在,执行结束操作。如此,得到目标对象在横向方向上的右侧候选边界点。
在实际应用中,当确定目标对象的候选边界点后,如果该候选边界点的数量为多个,则还可以进一步从多个候选边界点中筛选得到部分候选边界点,以减少后续处理的计算量,提高计算速度,减低计算资源的浪费。如此,在一些实施例中,当候选边界点的数量为多个,且方向为竖向方向时,当基于比较结果,将二值化图像中与偏移图像中第二像素点存在差异的第一像素点,作为目标对象的候选边界点之后,服务器可通过如下方式再次对候选边界点进行筛选:针对待扫描的当前列,按照第二扫描方向,从当前列的第一个第一像素点开始,对当前列的第一像素点依次进行扫描;当扫描到多个候选边界点中的一个候选边界点时,将扫描到的候选边界点,作为竖向方向上的候选边界点;确定距离当前列为预设列步进值的目标列是否存在;若目标列存在,从当前列跳转至目标列,以将目标列作为待扫描的当前列,并循环执行上述操作;若目标列不存在,执行结束操作。
在实际应用中,该多个候选边界点在横向方向上包括上方候选边界点、以及下方候选边界点。针对确定了候选边界点集的二值化图像,从第1列第一像素点开始,在当前列内,从上向下扫描每个第一像素点,当扫描到候选边界点时,将扫描到的候选边界点,作为竖向方向上的上方候选边界点;并确定距离当前列为预设列步进值(如10列)的目标列是否存在;若目标列存在,从当前列跳转至目标列,以将目标列作为待扫描的当前列,并循环执列上述操作;若目标列不存在,执列结束操作。如此,得到目标对象在竖向方向上的上方候选边界点。
针对确定了候选边界点集的二值化图像,从第1列第一像素点开始,在当前列内,从下向上扫描每个第一像素点,当扫描到候选边界点时,将扫描到的候选边界点,作为竖向方向上的下方候选边界点;并确定距离当前列为预设列步进值(如10列)的目标列是否存在;若目标列存在,从当前列跳转至目标列,以将目标列作为待扫描的当前列,并循环执列上述操作;若目标列不存在,执列结束操作。如此,得到目标对象在竖向方向上的下方候选边界点。
步骤104:针对各方向,对方向上的候选边界点进行拟合,得到目标对象在方向上的子边界。
在一些实施例中,服务器可通过如下方式将二值化图像在至少一个方向上进行一个偏移量的偏移处理,得到各方向上的偏移图像:按照从左到右的偏移方向,将二值化图像在横向方向上进行一个偏移量的偏移处理,得到横向方向上的偏移图像;相应的,服务器可通过如下方式基于比较结果,将二值化图像中与偏移图像中第二像素点存在差异的第一像素点,作为目标对象的候选边界点:将像素值差值(如灰度值差值)大于0的第一像素点,作为目标对象的左侧候选边界点,并将像素值差值小于0的第一像素点,作为目标对象的右侧候选边界点;相应的,服务器可通过如下方式对方向上的候选边界点进行拟合,得到目标对象在方向上的子边界:对横向方向上的左侧候选边界点进行拟合,得到目标对象在横向方向上的左侧子边界,并对横向方向上的右侧候选边界点进行拟合,得到目标对象在横向方向上的右侧子边界。
在实际应用中,按照从左到右的偏移方向,将二值化图像在横向方向上进行一个像素点的偏移,得到横向方向上的偏移图像;针对二值化图像中各第一像素点,将第一像素点的像素灰度值与该偏移图像中相应位置处的第二像素点的像素灰度值作差,得到灰度值差值;将不为0的灰度值差值所对应的目标第一像素点确定为目标对象在横向方向上的多个候选边界点。相应的,确定灰度值差值为正数值(如255)的第一像素点为左侧候选边界点,确定灰度值差值为负数值(如-255)的第一像素点为右侧候选边界点。作为示例,参见图7,图7是本申请实施例提供的横向方向上的候选边界点的示意图。这里,该横向方向上的候选边界点包括左侧候选边界点、和右侧候选边界点。
相应的,在对方向上的候选边界点进行拟合时,对横向方向上的左侧候选边界点进行拟合,得到目标对象在横向方向上的左侧子边界,并对横向方向上的右侧候选边界点进行拟合,得到目标对象在横向方向上的右侧子边界。
在一些实施例中,服务器可通过如下方式将二值化图像在至少一个方向上进行一个偏移量的偏移处理,得到各方向上的偏移图像:按照从上到下的偏移方向,将二值化图像在竖向方向上进行一个偏移量的偏移处理,得到竖向方向上的偏移图像;相应的,服务器可通过如下方式基于比较结果,将二值化图像中与偏移图像中第二像素点存在差异的第一像素点,作为目标对象的候选边界点:将像素值差值(如灰度值差值)大于0的第一像素点,作为目标对象的上方候选边界点,并将像素值差值小于0的第一像素点,作为目标对象的下方候选边界点;相应的,服务器可通过如下方式对方向上的候选边界点进行拟合,得到目标对象在方向上的子边界:对竖向方向上的上方候选边界点进行拟合,得到目标对象在竖向方向上的上方子边界,并对竖向方向上的下方候选边界点进行拟合,得到目标对象在竖向方向上的下方子边界。
在实际应用中,按照从上到下的偏移方向,将二值化图像在竖向方向上进行一个像素点的偏移,得到竖向方向上的偏移图像;针对二值化图像中各第一像素点,将第一像素点的像素灰度值与该偏移图像中相应位置处的第二像素点的像素灰度值作差,得到灰度值差值;将不为0的灰度值差值所对应的目标第一像素点(即差异像素点)确定为目标对象在竖向方向上的多个候选边界点。其中,确定灰度值差值为正数值(如255)的第一像素点为上方候选边界点,确定灰度值差值为负数值(如-255)的第一像素点为下方候选边界点。作为示例,参见图8,图8是本申请实施例提供的竖向方向上的候选边界点的示意图。这里,该竖向方向上的候选边界点包括上方候选边界点、和下方候选边界点。
相应的,在对方向上的候选边界点进行拟合时,对竖向方向上的上方候选边界点进行拟合,得到目标对象在竖向方向上的上方子边界,并对竖向方向上的下方候选边界点进行拟合,得到目标对象在竖向方向上的下方子边界。
在一些实施例中,方向上的候选边界点的数量为多个,服务器可通过如下方式对方向上的候选边界点进行拟合,得到目标对象在方向上的子边界:从方向上的多个候选边界点中,采样得到多个第二候选边界点,并对多个第二候选边界点进行直线拟合,得到相应的直线;确定各候选边界点与直线之间的距离,并确定距离低于距离阈值的候选边界点的边界点数量;循环执行上述操作,直至迭代结束;确定多次迭代过程所对应的边界点数量中的最大边界点数量,并确定对应最大边界点数量的目标迭代过程所得到的目标直线;将目标直线确定为目标对象在方向上的子边界。
在实际应用中,该方向包括横向方向和竖向方向,该横向方向上包括左侧子边界和右侧子边界,该竖向方向上包括上方子边界和下方子边界。针对横向方向,可以对该横向方向上的左侧候选边界点进行拟合处理,得到目标对象在横向方向上的左侧子边界,以及对该横向方向上的右侧候选边界点进行拟合处理,得到目标对象在横向方向上的右侧子边界。针对竖向方向,可以对该竖向方向上的上方候选边界点进行拟合处理,得到目标对象在竖向方向上的上方子边界,以及对该竖向方向上的下方候选边界点进行拟合处理,得到目标对象在竖向方向上的下方子边界。
而针对各侧的候选边界点均可以采用以下方式进行拟合,得到相应的子边界:从该侧的多个候选边界点中,采样得到多个第二候选边界点,并对多个第二候选边界点进行直线拟合,得到相应的直线;确定各候选边界点与直线之间的距离,并确定距离低于距离阈值的候选边界点的边界点数量;循环执行上述操作,直至迭代结束;确定多次迭代过程所对应的边界点数量中的最大边界点数量,并确定对应最大边界点数量的目标迭代过程所得到的目标直线;将目标直线确定为目标对象在该侧的子边界。作为示例,参见图9,图9是本申请实施例提供的左侧子边界所对应直线的示意图。
步骤105:对各方向上的子边界进行整合,得到待处理图像中目标对象的对象边界。
其中,该对象边界,用于供对目标对象进行检测。
在实际应用中,当方向上的子边界包括左子边界、右子边界、上子边界和下子边界时,服务器可通过如下方式对各方向上的子边界进行整合,得到待处理图像中目标对象的对象边界:确定左子边界对应的直线、与上子边界对应的直线间的直线交点的第一坐标,并确定右子边界对应的直线、与下子边界对应的直线间的直线交点的第二坐标;基于各方向上的子边界对应的直线,结合第一坐标和第二坐标,得到待处理图像中目标对象的对象边界。
当计算得到目标对象的多个子边界(包括上边界、下边界、左边界和右边界)分别对应的数学模型(y=kx+b)后,通过两线交点计算并输出左上角交点的第一坐标、以及右下角交点的第二坐标,同时输出四条子边界对应的直线的斜率和截距,即y=kx+b中的k和b。从而基于输出的左上角交点第一的坐标、右下角交点的第二坐标、四条子边界所对应直线的斜率和截距,得到目标对象的对象边界,即bounding box。作为示例,参见图10,图10是本申请实施例提供的目标对象的对象边界的示意图,该对象边界为矩形边界框。
在另外一些实施例中,还可以确定左子边界对应的直线、与下子边界对应的直线间的直线交点的第三坐标,并确定右子边界对应的直线、与上子边界对应的直线间的直线交点的第四坐标;基于各方向上的子边界对应的直线,结合第三坐标和第四坐标,得到待处理图像中目标对象的对象边界。
在一些实施例中,当对各方向上的子边界进行整合,得到待处理图像中目标对象的对象边界之后,服务器可确定对象边界是否满足目标对象的边界异常条件;当对象边界满足边界异常条件时,输出异常提示信息,异常提示信息,用于提示目标对象存在异常。
在实际应用中,还可以根据对象边界对目标对象进行检测。具体地,当k和b的值超出预设范围时,则给出异常告警,此时不再输入后续目标对象检测模型中,从而提升检测的速度和召回率。其中,该异常告警可能指示目标对象的外形异常,比如对于矩形的目标对象来说,上下边界(或者左右边界)的k差异超过差异阈值,则该目标对象可能存在外形异常的问题。该异常告警还可能指示目标对象的位姿异常,比如对于矩形的目标对象来说,上下边界(或者左右边界)的k超过预设区间,则该目标对象可能位姿异常,比如摆放倾斜。
应用本申请上述实施例,首先对包括目标对象的待处理图像进行二值化处理,得到二值化图像;然后,将二值化图像在至少一个方向上进行一个偏移量的偏移处理,得到各方向上的偏移图像;再针对各方向上的偏移图像,将二值化图像中各第一像素点与偏移图像中相应位置处的第二像素点进行比较,得到比较结果,并基于比较结果,将二值化图像中与偏移图像中第二像素点存在差异的第一像素点,作为目标对象的候选边界点;从而针对各方向,对方向上的候选边界点进行拟合,得到目标对象在方向上的子边界;最后对各方向上的子边界进行整合,得到待处理图像中目标对象的对象边界。如此,无需通过机器学习模型即可实现图像中对象的边界的识别,避免引入模型训练时长和推理时长,能够提高图像中对象的边界的识别速度和识别效率;同时还避免出现模型预测结果出错的问题,能够提高图像中对象的边界的识别准确性;而该对象边界可以用于供对目标对象进行检测,进一步还能够提高目标对象检测的检测效率和检测准确性。
下面将以目标对象的对象边界为矩形边界(矩形边界框)为例,说明本申请实施例在一个实际的应用场景中的示例性应用。首先对本申请实施例涉及的名词进行解释,包括:
1)感兴趣区域(ROI,Region of interest):在机器视觉和图像处理中,ROI是从待处理图像中以方框、圆、椭圆、不规则多边形等方式勾勒出的需要处理的区域,ROI是图像处理过程中所关注的重点,通过圈定ROI可以减少图像处理的时间,增加图像处理的精度。
2)边界框(Bounding box):在目标(或称对象)检测里,通常使用边界框来描述目标的位置。在一些示例中,边界框可以是矩形框,可以由矩形框左上角顶点的坐标(x1,y1)、以及右下角顶点的坐标(x2,y2)确定。
由于通过机器学习进行图像中目标检测时,对于输入图像的尺寸较为敏感,大尺寸图像不仅会导致检测速度变慢,还会导致目标检测不准确。因此,可以提前通过对输入图像进行ROI的识别,将目标的有效区域(即ROI)裁剪并提取出来,以在后续的目标检测过程中,仅对目标的有效区域进行检测,从而提高目标检测速度和目标检测精度。相关技术中,通常采用机器学习模型来提取目标的边界框(边界框所包围区域即为目标的有效区域)以实现ROI提取。但是,该方案1)需要额外引入机器学习模型的推理时间,使得ROI的提取时间较长,降低了目标检测速度,还可能会压缩后续目标检测的可用时间,降低了目标检测精度;2)通过机器学习模型提取边界框来实现ROI提取,准确性上也可能额外引入了不确定性(如容易出现模型ROI预测错误、没有提取到ROI等情况),从而丧失了ROI提取的必要性;3)即使可以采用简单的机器学习模型能够减少推理时长,但是效果不佳,基本处于不可用的状态。
基于此,本申请实施例提供一种图像处理方法,以至少解决上述存在的问题。在本申请实施例中,(1)通过图像二值化模块,对包括目标对象的待处理图像进行二值化处理,得到二值化图像,以实现对目标对象所对应的前景和背景的粗略划分;(2)通过偏移作差模块,对二值化图像进行处理,以获取目标对象的对象边界的候选边界点,该候选边界点的数量为多个,可以记作候选边界点集;(3)通过网格化模块,采用网格化的方式从候选边界点集中选择部分候选边界点,以将候选边界点集转化为稀疏候选边界点集,从而提升计算效率;(4)通过聚类模块,对稀疏候选边界点集进行聚类,得到多个聚类簇(每个聚类簇包括多个候选边界点),并从多个聚类簇中选取满足条件的目标聚类簇,从而仅将目标聚类簇包括的多个候选边界点作为目标对象的边界点集,以将目标对象的突出部分(如位于目标对象主体上的一个凸起角)筛除;(5)通过拟合模块,对边界点集中的边界点进行直线拟合,得到目标对象的多个子边界(包括上边界、下边界、左边界和右边界),具体可以是通过随机抽样一致性(RA NSAC,Random Sample Consensus)算法,将边界点集中的异常边界点筛除,以拟合得到多条直线作为子边界;(6)通过边界整合模块,对目标对象的多个子边界进行整合,得到待处理图像中目标对象的对象边界,该对象边界所包围的区域即为待处理图像中目标对象的有效区域(即待处理图像中的ROI)。
接下来对本申请实施例提供的图像处理方法进行详细说明。参见图11,图11是本申请实施例提供的图像处理方法的流程示意图,包括:
步骤201,通过图像二值化模块,对包括目标对象的待处理图像进行二值化处理,得到二值化图像。
在实际应用中,由于目标对象(如制造的工业产品:显示面板、木地板、机器零件等)本身可能具有多种颜色和表面纹理,可能会对目标对象的边界识别带来不必要的影响。因此,为了保证待处理图像的前景区域(即目标对象本体)和背景区域(如放置目标对象的区域)的区分度,可以在待处理图像的前期成像阶段,将目标对象本体和背景区域的对比度尽可能调大。也即,通过光照的调整,将目标对象本体尽可能高亮过曝,而背景区域尽可能采用吸光的材料制造,并涂黑以防止不必要的反射。
针对包括目标对象的待处理图像,对待处理图像进行二值化处理,得到二值化图像。在实际应用中,(1)获取待处理图像中各像素点分别在R、G、B三个通道的通道像素值;(2)针对各像素点,将该像素点在三个通道的通道像素值进行求和平均处理,得到各像素点的平均像素值,以得到待处理图像的单通道灰度图;(3)将平均像素值大于像素值阈值的像素点的像素灰度值设为极大值(255),把平均值不大于像素值阈值的像素点的像素灰度值设为极小值(0),从而将单通道灰度图转化为黑白二值图像,以实现图像二值化。其中,0代表黑色(最暗),255代表白色(最亮)。参见图4,图4是本申请实施例提供的二值化图像的示意图。这里,该二值化图像中包括像素灰度值为255的像素点、以及像素灰度值为0的像素点。
在实际应用中,图像二值化的理想效果是目标对象主体呈现一致的白色,而背景区域呈现一致的黑色。但是受限于成像、干扰等多种因素,一般而言,背景区域中会存在白色噪点,目标对象主体中也可能存在黑色噪点。因此,图像二值化可以作为区分目标对象主体和背景区域的粗略划分。
在另外一些实施例中,图像二值化模块还可以采用固定阈值二值化和自适应阈值二值化(如OTSU二值化)实现。
步骤202,通过偏移作差模块,将二值化图像分别在横向方向和竖向方向进行一个像素点的偏移,以基于偏移得到的偏移图像,确定各个方向上目标对象的多个候选边界点(可记作候选边界点集)。
示例性地,按照从左到右的偏移方向,将二值化图像在横向方向上进行一个像素点的偏移,得到横向方向上的偏移图像;针对二值化图像中各第一像素点,将第一像素点的像素灰度值与该偏移图像中相应位置处的第二像素点的像素灰度值作差,得到灰度值差值;将不为0的灰度值差值所对应的目标第一像素点(即差异像素点)确定为目标对象在横向方向上的多个候选边界点。其中,确定正数值(255)的灰度值差值所对应的第一像素点为左侧候选边界点,确定负数值(-255)的灰度值差值所对应的第一像素点为右侧候选边界点。参见图7,图7是本申请实施例提供的横向方向上的候选边界点的示意图。这里,该横向方向上的候选边界点包括左侧候选边界点、和右侧候选边界点。
示例性地,按照从上到下的偏移方向,将二值化图像在竖向方向上进行一个像素点的偏移,得到竖向方向上的偏移图像;针对二值化图像中各第一像素点,将第一像素点的像素灰度值与该偏移图像中相应位置处的第二像素点的像素灰度值作差,得到灰度值差值;将不为0的灰度值差值所对应的目标第一像素点(即差异像素点)确定为目标对象在竖向方向上的多个候选边界点。其中,确定正数值(255)的灰度值差值所对应的第一像素点为上方候选边界点,确定负数值(-255)的灰度值差值所对应的第一像素点为下方候选边界点。参见图8,图8是本申请实施例提供的竖向方向上的候选边界点的示意图。这里,该竖向方向上的候选边界点包括上方候选边界点、和下方候选边界点。
在实际应用中,步骤202中得到的候选边界点包括:目标对象主体的边界点、目标对象主体内部的噪声边界点(即二值化图像中所显示的目标主体内部的黑色噪点)、以及目标对象主体外部(即背景区域)的噪声边界点(即二值化图像中所显示的目标主体外部的白色噪点)。
在另外一些实施例中,偏移作差模块还可以采用传统的边缘检测算法(如Canny边缘检测)实现。
步骤203,通过网格化模块,将候选边界点集转化为稀疏候选边界点集。
针对确定了候选边界点集的二值化图像,从第1行像素点开始,在当前行内,从左向右扫描每个像素点,当扫描到正数值(255)所对应的目标候选边界点时,保存该目标候选边界点的坐标至暂存区内,并从当前行以目标步进值(如step=10)跳转至目标行(如从第1行跳转至第11行),并针对目标行进入下一次扫描。依次类推,直至扫描至最后1行,并将扫描得到的所有目标候选边界点作为稀疏候选边界点集中的左侧稀疏候选边界点。参见图6,图6是本申请实施例提供的横向方向上的左侧第候选边界点的示意图。
针对确定了候选边界点集的二值化图像,从第1行像素点开始,在当前行内,从右向左扫描每个像素点,当扫描到负数值(-255)所对应的目标候选边界点时,保存该目标候选边界点的坐标至暂存区内,并从当前行以目标步进值(如step=10)跳转至目标行(如从第1行跳转至第11行),并针对目标行进入下一次扫描。依次类推,直至扫描至最后1行,并将扫描得到的所有目标候选边界点作为稀疏候选边界点集中的右侧稀疏候选边界点。
针对确定了候选边界点集的二值化图像,从第1列像素点开始,在当前列内,从上向下扫描每个像素点,当扫描到正数值(255)所对应的目标候选边界点时,保存该目标候选边界点的坐标至暂存区内,并从当前列以目标步进值(如step=10)跳转至目标列(如从第1列跳转至第11列),并针对目标列进入下一次扫描。依次类推,直至扫描至最后1列,并将扫描得到的所有目标候选边界点作为稀疏候选边界点集中的上方稀疏候选边界点。
针对确定了候选边界点集的二值化图像,从第1列像素点开始,在当前列内,从下向上扫描每个像素点,当扫描到负数值(-255)所对应的目标候选边界点时,保存该目标候选边界点的坐标至暂存区内,并从当前列以目标步进值(如step=10)跳转至目标列(如从第1列跳转至第11列),并针对目标列进入下一次扫描。依次类推,直至扫描至最后1列,并将扫描得到的所有目标候选边界点作为稀疏候选边界点集中的下方稀疏候选边界点。
如此,能够减少计算量,step越大计算速度越快,但是ROI定位的精度将会受到影响,可以根据经验值选取合适的step。
在另外一些实施例中,网格化模块还可以通过随机采样点集的策略实现。
步骤204,通过聚类模块,对稀疏候选边界点集进行聚类处理,得到多个聚类簇(每个聚类簇包括多个候选边界点),并选取满足条件的目标聚类簇,将目标聚类簇包括的多个候选边界点作为目标对象的边界点集。
这里,目标对象可能不是理想的矩形,可能包括正常突出部分(属于目标对象本身,如位于目标对象主体上的一个凸起角)。为防止目标对象的突出部分的边界影响到目标对象主体的定位,可以将正常突出部分的候选边界点进行滤除,只留下目标对象主体部分的候选边界点。
在实际应用中,稀疏候选边界点集包括左侧稀疏候选边界点集、右侧稀疏候选边界点集、上方稀疏候选边界点集、下方稀疏候选边界点集。需要说明的是,步骤204是针对稀疏候选边界点集包括的上下左右四个稀疏候选边界点集分别进行处理。具体地,针对每个稀疏候选边界点集:对稀疏候选边界点集进行聚类处理,得到多个聚类簇,每个聚类簇包括多个候选边界点,然后从多个聚类簇中选取满足条件的目标聚类簇,并将多个聚类簇中除目标聚类簇之外的其他聚类簇所包括的候选边界点滤除,以将目标对象的突出部分(如位于目标对象的主体上的一个凸起角)的候选边界点滤除。
示例性地,该聚类处理可以采用K-means聚类算法实现:采用K-means聚类算法需提前指定聚类得到的聚类簇的数量m,该数量m可以由目标对象的外形形态决定,例如,m=2n+1(n为目标对象的突出部分的数量),即,仅有1处突出部分可以将m设置为3,有2处突出部分可以将m设置为5。当从多个聚类簇中选取满足条件的目标聚类簇时,1)可以从多个聚类簇中选取簇间距离较接近的(n+1)个聚类簇(比如簇间距离低于距离阈值(n+1)个聚类簇、簇间距离升序排序靠前的(n+1)个聚类簇),作为目标聚类簇。如,仅有1处突出部分(n=1)可以将m设置为3,并在聚类之后取2个簇间距离相近的聚类簇作为目标聚类簇;有2处突出部分(n=2)可以将m设置为5,并在聚类之后取3个簇间距离相近的聚类簇作为目标聚类簇。2)还可以从多个聚类簇中,选取候选边界点的边界点数量满足数量条件(如边界点数量大于数量阈值的若干聚类簇、或者边界点数量升序排序靠前的若干聚类簇)作为目标聚类簇。
作为示例,参见图5,图5是本申请实施例提供的左侧第一候选边界点的示意图,这里,如图5中(1)所示,为对左侧候选边界点进行聚类处理得到的聚类簇,包括簇1、簇2、簇3以及簇4;如图5中(2)所示,从多个聚类簇中选择满足条件的目标聚类簇,即簇1和簇3。
在实际应用中,步骤204是可选的,比如,当稀疏候选边界点集中的异常点少于异常点数量阈值时,可以省略步骤204。其中,异常点为距离目标对象边界超过距离阈值(比如10个像素点)的候选边界点。
在另外一些实施例中,聚类模块可以采用各种聚类算法(如层次聚类,K-Means,DBSCAN等)实现。
步骤205,通过拟合模块,对边界点集中的边界点进行直线拟合,得到目标对象的多个子边界(包括上边界、下边界、左边界和右边界)。
在实际应用中,可以通过RANSAC算法,将边界点集中的异常边界点筛除,以拟合得到多条直线作为子边界。其中,RANSAC算法是采用迭代的方式,从一组包含离群的被观测数据中估算出数学模型的参数,是一种鲁棒的、只由正常点集来计算数学模型、能够排除异常值干扰的算法。RANSAC算法包含两个重要的参数:每轮迭代产生数学模型时所采样的点(e),迭代次数(i)。
在实际应用中,边界点集同样包括上边界点集、下边界点集、左边界点集和右边界点集。步骤205也是针对边界点集包括的上下左右四个边界点集分别进行处理。具体地,针对每个边界点集:1)从边界点集中随机采样多个边界点作为拟合点集;2)对拟合点集包括的多个边界点进行直线拟合,得到直线数学模型(y=kx+b);3)计算边界点集中各边界点到该直线的距离,将距离低于距离阈值的边界点作为正常边界点,并记录正常边界点的数量;4)重复执行以上步骤1)-3),直至迭代结束;5)比较每次迭代中正常边界点的数量,将正常边界点最多时所拟合得到的直线数学模型,作为目标对象的子边界对应的数学模型,以基于该数学模型,计算对象边界。参见图9,图9是本申请实施例提供的左侧子边界所对应直线的示意图。
在另外一些实施例中,拟合模块还可以通过简单的线性回归、利用神经网络进行回归来实现。
步骤206,通过边界整合模块,对目标对象的多个子边界进行整合,得到待处理图像中目标对象的对象边界。
当计算得到目标对象的多个子边界(包括上边界、下边界、左边界和右边界)分别对应的数学模型(y=kx+b)后,通过两线交点计算并输出左上角交点的坐标、以及右下角交点的坐标,同时输出四条子边界的斜率和截距,即y=kx+b中的k和b。从而基于输出的左上角交点的坐标、右下角交点的坐标、四条子边界所对应直线的斜率和截距,得到目标对象的对象边界,即bounding box。作为示例,参见图10,图10是本申请实施例提供的目标对象的对象边界的示意图,该对象边界为矩形边界框。
此外,在步骤206中,还可以根据对象边界对目标对象进行检测。具体地,当k和b的值超出预设范围时,则给出异常告警,此时不再输入后续目标对象检测模型中,从而提升检测的速度和召回率。其中,该异常告警可能指示目标对象的外形异常,比如对于矩形的目标对象来说,上下边界(或者左右边界)的k差异超过差异阈值,则该目标对象可能存在外形异常的问题。该异常告警还可能指示目标对象的位姿异常,比如对于矩形的目标对象来说,上下边界(或者左右边界)的k超过预设区间,则该目标对象可能位姿异常,比如摆放倾斜。
接下来对本申请实施例提供的图像处理方法的应用场景进行说明。在工业制造场景中,常用机器学习等新兴技术对产品(即上述目标对象)的外观部分进行质检工作,保证产品的一致性、良品率、安全性,实现产线质检的全自动化。为了识别产品更精细的外观缺陷问题,成像阶段常产生高分辨率的图像作为下游外观缺陷检测模型的输入。由于通过机器学习进行图像中目标检测时,对于输入图像的尺寸较为敏感,大尺寸图像不仅会导致检测速度变慢,还会导致目标检测不准确。因此,可以提前通过对输入图像进行ROI的识别,将产品的有效区域(即ROI)裁剪并提取出来,以在后续的产品外观缺陷检测过程中,仅对产品的有效区域进行检测,从而提高产品检测速度和产品检测精度。
基于此,产品的边界框(边界框所包围区域即为产品的有效区域)的精确提取的场景主要为下游任务(即产品外观缺陷检测任务)的前置预处理,其应用场景可以包括:1)产品主体提取:在整张图像中提取需要处理的产品,过滤掉背景或其他零部件的影响,将产品主体部分送入下游任务中进一步处理。2)目标对齐:在通过硬件(如产品夹取器)夹取的场景下,可以针对硬件机台预设产品的默认边界框,然后在实际夹取目标产品的过程中,提取目标产品的目标边界框,当目标边界框与默认边界框存在偏移时,可以通过硬件机台对硬件进行自动微调,以通过调整后的硬件进行该目标产品的夹取。如此,能够将目标的边界框在各个不同产品上进行对齐,方便后续硬件进行夹取等操作。3)缺陷粗分类:在获取产品的边界框后,可以与产品的正常样品的参数进行交叉比对,如果长度、斜率等参数与正常样品偏差过大或者不一致时,则可以判定该产品为问题产品,无需进行下游任务,直接作为不合格产品处理。需要说明的是,该产品可以是a)液晶显示面板、OLED面板;b)瓷砖、木地板;c)电池电芯;d)方盒、方瓶;e)车牌、门牌;f)矩形零件;等等。
应用本申请上述实施例,1)提高ROI识别的准确性和速度;2)结构明晰,各个处理模块均有较好的泛化能力,可实施性强;3)推理速度远低于深度算法在GPU中的运算速度,节约时间,为后续缺陷检测模块的优化保留了巨大的时间空余;4)由于参数少且运行高效、稳定可控,既能够适应多种机台和制造场景,还能够为下游检测模型节约出了更多的时间去优化检测准确率,从而大大提高工业智能制造中的可用性;5)生成的边界稳定且准确,算法逻辑清晰,稳定可控,每一步的运算结果均可以进行可视化查看,方便在算法工作异常时快速定位问题;6)生成的边界和实物的拟合精确度高,可用于长度、斜率等边距测量工作。
可以理解的是,在本申请实施例中,涉及到用户信息等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
下面继续说明本申请实施例提供的图像处理装置553的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器550的图像处理装置553中的软件模块可以包括:二值化模块5531,用于对包括目标对象的待处理图像进行二值化处理,得到二值化图像;偏移模块5532,用于将所述二值化图像在至少一个方向上进行一个偏移量的偏移处理,得到各所述方向上的偏移图像;比较模块5533,用于针对各所述方向上的偏移图像,将所述二值化图像中各第一像素点与所述偏移图像中相应位置处的第二像素点进行比较,得到比较结果,并基于所述比较结果,将所述二值化图像中与所述偏移图像中第二像素点存在差异的第一像素点,作为所述目标对象的候选边界点;拟合模块5534,用于针对各所述方向,对所述方向上的候选边界点进行拟合,得到所述目标对象在所述方向上的子边界;整合模块5535,用于对各所述方向上的子边界进行整合,得到所述待处理图像中所述目标对象的对象边界,所述对象边界,用于供对所述目标对象进行检测。
在一些实施例中,所述二值化模块5531,还用于获取所述待处理图像中各像素点的像素值;将所述像素值超过像素阈值的像素点作为第三像素点,并将所述像素值不超过所述像素阈值的像素点作为第四像素点;将所述第三像素点的像素灰度值确定为第一灰度值,并将所述第四像素点的像素灰度值确定为第二灰度值,以得到所述二值化图像。
在一些实施例中,所述二值化模块5531,还用于针对所述待处理图像中各所述像素点,分别执行如下处理:获取所述像素点分别在红R、绿G、蓝B颜色通道上的通道像素值;将多个所述颜色通道上的通道像素值进行平均处理,得到平均处理结果,并将所述平均处理结果作为所述像素点的像素值。
在一些实施例中,所述偏移模块5532,还用于按照第一偏移方向,将所述二值化图像在横向方向上进行一个像素点的偏移处理,得到所述横向方向上的偏移图像;以及,按照第二偏移方向,将所述二值化图像在竖向方向上进行一个像素点的偏移处理,得到所述竖向方向上的偏移图像。
在一些实施例中,所述比较模块5533,还用于针对所述二值化图像中各所述第一像素点,分别执行如下处理:确定第一像素点的像素值与所述偏移图像中相应位置处的第二像素点的像素值之间的像素值差值;当所述像素值差值不为0时,得到所述第一像素点与所述偏移图像中相应位置处的第二像素点存在差异的比较结果。
在一些实施例中,所述比较模块5533,还用于按照从左到右的偏移方向,将所述二值化图像在横向方向上进行一个偏移量的偏移处理,得到所述横向方向上的偏移图像;所述比较模块5533,还用于将所述像素值差值大于0的第一像素点,作为所述目标对象的左侧候选边界点,并将所述像素值差值小于0的第一像素点,作为所述目标对象的右侧候选边界点;所述拟合模块5534,还用于对所述横向方向上的左侧候选边界点进行拟合,得到所述目标对象在所述横向方向上的左侧子边界,并对所述横向方向上的右侧候选边界点进行拟合,得到所述目标对象在所述横向方向上的右侧子边界。
在一些实施例中,所述比较模块5533,还用于按照从上到下的偏移方向,将所述二值化图像在竖向方向上进行一个偏移量的偏移处理,得到所述竖向方向上的偏移图像;所述比较模块5533,还用于将所述像素值差值大于0的第一像素点,作为所述目标对象的上方候选边界点,并将所述像素值差值小于0的第一像素点,作为所述目标对象的下方候选边界点;所述拟合模块5534,还用于对所述竖向方向上的上方候选边界点进行拟合,得到所述目标对象在所述竖向方向上的上方子边界,并对所述竖向方向上的下方候选边界点进行拟合,得到所述目标对象在所述竖向方向上的下方子边界。
在一些实施例中,当所述候选边界点的数量为多个时,所述比较模块5533,还用于对多个所述候选边界点进行聚类处理,得到至少一个聚类簇,每个所述聚类簇包括至少一个所述候选边界点;从所述至少一个聚类簇中选取满足条件的目标聚类簇,并将所述目标聚类簇包括的候选边界点作为第一候选边界点;所述拟合模块5534,还用于针对各所述方向,对所述方向上的所述第一候选边界点进行拟合,得到所述目标对象在所述方向上的子边界。
在一些实施例中,所述比较模块5533,还用于获取各所述聚类簇中所包括的候选边界点的边界点数量,并将所述边界点数量满足数量条件的聚类簇作为所述目标聚类簇;或者,获取所述至少一个聚类簇中任意两个聚类簇之间的簇间距离,并将所述簇间距离满足距离条件的聚类簇作为所述目标聚类簇。
在一些实施例中,当所述候选边界点的数量为多个,且所述方向为横向方向时,所述比较模块5533,还用于从所述二值化图像的第一行第一像素点开始,执行如下处理:针对待扫描的当前行,按照第一扫描方向,从所述当前行的第一个第一像素点开始,对所述当前行的第一像素点依次进行扫描;当扫描到多个所述候选边界点中的一个候选边界点时,将扫描到的候选边界点,作为所述横向方向上的候选边界点;确定距离所述当前行为预设行步进值的目标行是否存在;若所述目标行存在,从所述当前行跳转至所述目标行,以将所述目标行作为所述待扫描的当前行,并循环执行上述操作;若所述目标行不存在,执行结束操作。
在一些实施例中,当所述候选边界点的数量为多个,且所述方向为竖向方向时,所述比较模块5533,还用于从所述二值化图像的第一列第一像素点开始,执行如下处理:针对待扫描的当前列,按照第二扫描方向,从所述当前列的第一个第一像素点开始,对所述当前列的第一像素点依次进行扫描;当扫描到多个所述候选边界点中的一个候选边界点时,将扫描到的候选边界点,作为所述竖向方向上的候选边界点;确定距离所述当前列为预设列步进值的目标列是否存在;若所述目标列存在,从所述当前列跳转至所述目标列,以将所述目标列作为所述待扫描的当前列,并循环执行上述操作;若所述目标列不存在,执行结束操作。
在一些实施例中,所述方向上的候选边界点的数量为多个,所述拟合模块5534,还用于从所述方向上的多个候选边界点中,采样得到多个第二候选边界点,并对所述多个第二候选边界点进行直线拟合,得到相应的直线;确定各所述候选边界点与所述直线之间的距离,并确定所述距离低于距离阈值的候选边界点的边界点数量;循环执行上述操作,直至迭代过程结束;确定多次迭代过程所对应的边界点数量中的最大边界点数量,并确定对应所述最大边界点数量的目标迭代过程所得到的目标直线;将所述目标直线确定为所述目标对象在所述方向上的子边界。
在一些实施例中,当所述方向上的子边界包括左子边界、右子边界、上子边界和下子边界时,所述整合模块5535,还用于确定所述左子边界对应的直线、与所述上子边界对应的直线间的直线交点的第一坐标,并确定所述右子边界对应的直线、与所述下子边界对应的直线间的直线交点的第二坐标;基于各所述方向上的子边界对应的直线,结合所述第一坐标和所述第二坐标,得到所述待处理图像中所述目标对象的对象边界。
在一些实施例中,所述整合模块5535,还用于确定所述对象边界是否满足所述目标对象的边界异常条件;当所述对象边界满足所述边界异常条件时,输出异常提示信息,所述异常提示信息,用于提示所述目标对象存在异常。
应用本申请上述实施例,首先对包括目标对象的待处理图像进行二值化处理,得到二值化图像;然后,将二值化图像在至少一个方向上进行一个偏移量的偏移处理,得到各方向上的偏移图像;再针对各方向上的偏移图像,将二值化图像中各第一像素点与偏移图像中相应位置处的第二像素点进行比较,得到比较结果,并基于比较结果,将二值化图像中与偏移图像中第二像素点存在差异的第一像素点,作为目标对象的候选边界点;从而针对各方向,对方向上的候选边界点进行拟合,得到目标对象在方向上的子边界;最后对各方向上的子边界进行整合,得到待处理图像中目标对象的对象边界。如此,无需通过机器学习模型即可实现图像中对象的边界的识别,避免引入模型训练时长和推理时长,能够提高图像中对象的边界的识别速度和识别效率;同时还避免出现模型预测结果出错的问题,能够提高图像中对象的边界的识别准确性;而该对象边界可以用于供对目标对象进行检测,进一步还能够提高目标对象检测的检测效率和检测准确性。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该电子设备执行本申请实施例提供的图像处理方法。
本申请实施例还提供一种计算机可读存储介质,其中存储有计算机可执行指令,当计算机可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的图像处理方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EP ROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,计算机可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,计算机可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,HyperText Markup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,计算机可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (15)
1.一种图像处理方法,其特征在于,所述方法包括:
对包括目标对象的待处理图像进行二值化处理,得到二值化图像;
将所述二值化图像在至少一个方向上进行一个偏移量的偏移处理,得到各所述方向上的偏移图像;
针对各所述方向上的偏移图像,将所述二值化图像中各第一像素点与所述偏移图像中相应位置处的第二像素点进行比较,得到比较结果,并
基于所述比较结果,将所述二值化图像中与所述偏移图像中第二像素点存在差异的第一像素点,作为所述目标对象的候选边界点;
针对各所述方向,对所述方向上的候选边界点进行拟合,得到所述目标对象在所述方向上的子边界;
对各所述方向上的子边界进行整合,得到所述待处理图像中所述目标对象的对象边界,所述对象边界,用于供对所述目标对象进行检测。
2.如权利要求1所述的方法,其特征在于,所述对包括目标对象的待处理图像进行二值化处理,得到二值化图像,包括:
获取所述待处理图像中各像素点的像素值;
将所述像素值超过像素阈值的像素点作为第三像素点,并将所述像素值不超过所述像素阈值的像素点作为第四像素点;
将所述第三像素点的像素灰度值确定为第一灰度值,并将所述第四像素点的像素灰度值确定为第二灰度值,以得到所述二值化图像。
3.如权利要求2所述的方法,其特征在于,所述获取所述待处理图像中各像素点的像素值,包括:
针对所述待处理图像中各所述像素点,分别执行如下处理:
获取所述像素点分别在红R、绿G、蓝B颜色通道上的通道像素值;
将多个所述颜色通道上的通道像素值进行平均处理,得到平均处理结果,并将所述平均处理结果作为所述像素点的像素值。
4.如权利要求1所述的方法,其特征在于,所述将所述二值化图像在至少一个方向上进行一个偏移量的偏移处理,得到各所述方向上的偏移图像,包括:
按照第一偏移方向,将所述二值化图像在横向方向上进行一个像素点的偏移处理,得到所述横向方向上的偏移图像;
以及,按照第二偏移方向,将所述二值化图像在竖向方向上进行一个像素点的偏移处理,得到所述竖向方向上的偏移图像。
5.如权利要求1所述的方法,其特征在于,所述将所述二值化图像中各第一像素点与所述偏移图像中相应位置处的第二像素点进行比较,得到比较结果,包括:
针对所述二值化图像中各所述第一像素点,分别执行如下处理:
确定第一像素点的像素值与所述偏移图像中相应位置处的第二像素点的像素值之间的像素值差值;
当所述像素值差值不为0时,得到所述第一像素点与所述偏移图像中相应位置处的第二像素点存在差异的比较结果。
6.如权利要求5所述的方法,其特征在于,所述将所述二值化图像在至少一个方向上进行一个偏移量的偏移处理,得到各所述方向上的偏移图像,包括:
按照从左到右的偏移方向,将所述二值化图像在横向方向上进行一个偏移量的偏移处理,得到所述横向方向上的偏移图像;
所述基于所述比较结果,将所述二值化图像中与所述偏移图像中第二像素点存在差异的第一像素点,作为所述目标对象的候选边界点,包括:
将所述像素值差值大于0的第一像素点,作为所述目标对象的左侧候选边界点,并将所述像素值差值小于0的第一像素点,作为所述目标对象的右侧候选边界点;
所述对所述方向上的候选边界点进行拟合,得到所述目标对象在所述方向上的子边界,包括:
对所述横向方向上的左侧候选边界点进行拟合,得到所述目标对象在所述横向方向上的左侧子边界,并对所述横向方向上的右侧候选边界点进行拟合,得到所述目标对象在所述横向方向上的右侧子边界。
7.如权利要求5所述的方法,其特征在于,所述将所述二值化图像在至少一个方向上进行一个偏移量的偏移处理,得到各所述方向上的偏移图像,包括:
按照从上到下的偏移方向,将所述二值化图像在竖向方向上进行一个偏移量的偏移处理,得到所述竖向方向上的偏移图像;
所述基于所述比较结果,将所述二值化图像中与所述偏移图像中第二像素点存在差异的第一像素点,作为所述目标对象的候选边界点,包括:
将所述像素值差值大于0的第一像素点,作为所述目标对象的上方候选边界点,并将所述像素值差值小于0的第一像素点,作为所述目标对象的下方候选边界点;
所述对所述方向上的候选边界点进行拟合,得到所述目标对象在所述方向上的子边界,包括:
对所述竖向方向上的上方候选边界点进行拟合,得到所述目标对象在所述竖向方向上的上方子边界,并对所述竖向方向上的下方候选边界点进行拟合,得到所述目标对象在所述竖向方向上的下方子边界。
8.如权利要求1所述的方法,其特征在于,当所述候选边界点的数量为多个时,所述基于所述比较结果,将所述二值化图像中与所述偏移图像中第二像素点存在差异的第一像素点,作为所述目标对象的候选边界点之后,所述方法还包括:
对多个所述候选边界点进行聚类处理,得到至少一个聚类簇,每个所述聚类簇包括至少一个所述候选边界点;
从所述至少一个聚类簇中选取满足条件的目标聚类簇,并将所述目标聚类簇包括的候选边界点作为第一候选边界点;
所述针对各所述方向,对所述方向上的候选边界点进行拟合,得到所述目标对象在所述方向上的子边界,包括:
针对各所述方向,对所述方向上的所述第一候选边界点进行拟合,得到所述目标对象在所述方向上的子边界。
9.如权利要求1所述的方法,其特征在于,当所述候选边界点的数量为多个,且所述方向为横向方向时,所述基于所述比较结果,将所述二值化图像中与所述偏移图像中第二像素点存在差异的第一像素点,作为所述目标对象的候选边界点之后,所述方法还包括:
从所述二值化图像的第一行第一像素点开始,执行如下处理:
针对待扫描的当前行,按照第一扫描方向,从所述当前行的第一个第一像素点开始,对所述当前行的第一像素点依次进行扫描;
当扫描到多个所述候选边界点中的一个候选边界点时,将扫描到的候选边界点,作为所述横向方向上的候选边界点;
确定距离所述当前行为预设行步进值的目标行是否存在;
若所述目标行存在,从所述当前行跳转至所述目标行,以将所述目标行作为所述待扫描的当前行,并循环执行上述操作;
若所述目标行不存在,执行结束操作。
10.如权利要求1所述的方法,其特征在于,当所述候选边界点的数量为多个,且所述方向为竖向方向时,所述基于所述比较结果,将所述二值化图像中与所述偏移图像中第二像素点存在差异的第一像素点,作为所述目标对象的候选边界点之后,所述方法还包括:
从所述二值化图像的第一列第一像素点开始,执行如下处理:
针对待扫描的当前列,按照第二扫描方向,从所述当前列的第一个第一像素点开始,对所述当前列的第一像素点依次进行扫描;
当扫描到多个所述候选边界点中的一个候选边界点时,将扫描到的候选边界点,作为所述竖向方向上的候选边界点;
确定距离所述当前列为预设列步进值的目标列是否存在;
若所述目标列存在,从所述当前列跳转至所述目标列,以将所述目标列作为所述待扫描的当前列,并循环执行上述操作;
若所述目标列不存在,执行结束操作。
11.如权利要求1所述的方法,其特征在于,所述方向上的候选边界点的数量为多个,所述对所述方向上的候选边界点进行拟合,得到所述目标对象在所述方向上的子边界,包括:
从所述方向上的多个候选边界点中,采样得到多个第二候选边界点,并对所述多个第二候选边界点进行直线拟合,得到相应的直线;
确定各所述候选边界点与所述直线之间的距离,并确定所述距离低于距离阈值的候选边界点的边界点数量;
循环执行上述操作,直至迭代过程结束;
确定多次迭代过程所对应的边界点数量中的最大边界点数量,并确定对应所述最大边界点数量的目标迭代过程所得到的目标直线;
将所述目标直线确定为所述目标对象在所述方向上的子边界。
12.一种图像处理装置,其特征在于,所述装置包括:
二值化模块,用于对包括目标对象的待处理图像进行二值化处理,得到二值化图像;
偏移模块,用于将所述二值化图像在至少一个方向上进行一个偏移量的偏移处理,得到各所述方向上的偏移图像;
比较模块,用于针对各所述方向上的偏移图像,将所述二值化图像中各第一像素点与所述偏移图像中相应位置处的第二像素点进行比较,得到比较结果,并基于所述比较结果,将所述二值化图像中与所述偏移图像中第二像素点存在差异的第一像素点,作为所述目标对象的候选边界点;
拟合模块,用于针对各所述方向,对所述方向上的候选边界点进行拟合,得到所述目标对象在所述方向上的子边界;
整合模块,用于对各所述方向上的子边界进行整合,得到所述待处理图像中所述目标对象的对象边界,所述对象边界,用于供对所述目标对象进行检测。
13.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储计算机可执行指令;
处理器,用于执行所述存储器中存储的计算机可执行指令时,实现权利要求1至11任一项所述的图像处理方法。
14.一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令被处理器执行时,实现权利要求1至11任一项所述的图像处理方法。
15.一种计算机程序产品,包括计算机程序或计算机可执行指令,其特征在于,所述计算机程序或计算机可执行指令被处理器执行时,实现权利要求1至11任一项所述的图像处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211165052.5A CN117011532A (zh) | 2022-09-23 | 2022-09-23 | 图像处理方法、装置、设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211165052.5A CN117011532A (zh) | 2022-09-23 | 2022-09-23 | 图像处理方法、装置、设备、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117011532A true CN117011532A (zh) | 2023-11-07 |
Family
ID=88560644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211165052.5A Pending CN117011532A (zh) | 2022-09-23 | 2022-09-23 | 图像处理方法、装置、设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117011532A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117369557A (zh) * | 2023-11-29 | 2024-01-09 | 徐州盈胜微半导体有限公司 | 集成电路温度控制系统和方法 |
-
2022
- 2022-09-23 CN CN202211165052.5A patent/CN117011532A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117369557A (zh) * | 2023-11-29 | 2024-01-09 | 徐州盈胜微半导体有限公司 | 集成电路温度控制系统和方法 |
CN117369557B (zh) * | 2023-11-29 | 2024-05-28 | 徐州盈胜微半导体有限公司 | 集成电路温度控制系统和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110502985B (zh) | 表格识别方法、装置及表格识别设备 | |
EP3806064A1 (en) | Method and apparatus for detecting parking space usage condition, electronic device, and storage medium | |
CN111768409B (zh) | 基于人工智能的箱式结构检测方法及装置 | |
CN110008917B (zh) | 基于表格理解的继电保护装置定值单数据的故障检测方法 | |
CN106203454A (zh) | 证件版式分析的方法及装置 | |
CN117011532A (zh) | 图像处理方法、装置、设备、存储介质及程序产品 | |
CN112330597A (zh) | 一种图像差异检测方法、装置及计算机设备 | |
CN110602446A (zh) | 垃圾回收提醒方法、系统及存储介质 | |
CN113902740A (zh) | 图像模糊程度评价模型的构建方法 | |
CN106651803B (zh) | 户型数据的识别方法及装置 | |
CN113554610A (zh) | 一种光伏组件运行状态检测方法及其应用装置 | |
CN107784644B (zh) | 一种不相溶液体分界面的确定方法及装置 | |
CN116310889A (zh) | 无人机环境感知数据的处理方法、控制终端以及存储介质 | |
CN116631003A (zh) | 基于p&id图纸的设备识别方法、装置、存储介质及电子设备 | |
CN108268813B (zh) | 一种车道偏离预警方法、装置及电子设备 | |
CN116993654A (zh) | 摄像头模组缺陷检测方法、装置、设备、存储介质及产品 | |
CN115512098A (zh) | 一种桥梁电子化巡检系统及巡检方法 | |
CN110751618B (zh) | 一种漂浮物检测方法、装置及电子设备 | |
CN114240924A (zh) | 一种基于数字化技术的电网设备质量评估方法 | |
CN113362227A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN112464928B (zh) | 数字式表计读数识别方法、装置、设备及存储介质 | |
CN114627114B (zh) | 产品缺陷严重程度测量方法及系统及装置及介质 | |
CN113096119B (zh) | 晶圆缺陷分类的方法、装置、电子设备以及存储介质 | |
CN110010019B (zh) | 一种装配led屏的控制方法及装置 | |
CN113706556B (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 |