一种图像处理方法和系统
文献发布时间:2023-06-19 10:51:07
技术领域
本发明属于图像处理技术领域,尤其涉及一种图像处理方法和系统。
背景技术
伴随着图像处理技术的飞速发展,推动了图像识别技术的产生和发展,并逐渐成为人工智能领域中重要的组成部分,并广泛地运用于面部识别、指纹识别、医疗诊断等等领域中,发挥重要作用。图像识别是人工智能的一个重要领域,是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对像的技术。一般工业使用中,采用工业相机拍摄图片,然后再利用软件根据图片灰阶差做进一步识别处理。
但在具体应用实践中,特别识别除了要弄清识别的对象具有是什么样的物体外,还应该明确其所在的的位置和姿态。随着图像清晰度越来越高,图像像素点越来越多,图像越来越大,识别场景越来越复杂,待处理图片越来越多,对于图像识别引擎的算力以及带宽压力越来越大,目前现有技术中对于待识别处理图像的特征抓取不够精准,识别效率不高,导致对硬件带宽的需求无法缓解,因此,亟需一种可以加快图像识别效率和提高图像识别精准度的图像处理方法和系统。
发明内容
本发明的目的在于克服上述现有技术存在的不足,提供一种图像处理方法和系统,解决了现有技术中在图像的识别处理过程中,特征抓取不够精准、识别效率不高的问题,克服对硬件带宽的需求高的缺陷。
为了实现上述目的,第一方面,本发明提供一种图像处理方法,包括以下步骤:
步骤S1:获取待处理图像,对所述待处理图像执行第一转换处理,得到灰度图;
步骤S2:根据自定义的有效像素阈值threshold1,对所述灰度图执行第一点图处理,得到第一点图point_image1,所述点图point_image1中每个像素点数值为0或1;
步骤S3:对所述第一点图point_image1执行第二点图处理,得到第二点图point_image2,所述第二点图处理包括根据自定义的第一block区域,对所述第一点图point_image1落在第一block区域内的像素窗口进行像素点数值的累加,得到窗口累加值add_value。
进一步地,在步骤S1中,所述待处理图像包括全景图和背景图,所述全景图和背景图均为ARGB格式,所述第一转换处理包括将所述全景图和背景图通过图片差值模块处理得到前景图,所述前景图格式为ARGB,再将所述前景图通过灰度图转换模块处理得到灰度图。
进一步地,在步骤S2中,所述第一点图处理包括将所述灰度图中每个像素点逐一与所述有效像素阈值threshold1进行比较,若所述灰度图中的像素点的像素值大于所述有效像素阈值threshold1,则所述像素点取值为1,否则像素点取值为0。
进一步地,在步骤S3中,所述第一block区域包括1×1~16×16之间任一种大小配置的block size,所述第一block区域按设定方向在所述第一点图point_image1上滑动取值,对所述第一点图point_image1落在第一block区域内的像素窗口进行像素点数值的累加,对像素窗口取值为1或者0的像素点数值进行累加,得到窗口累加值add_value,根据自定义的区域阈值threshold2,对所述窗口累加值add_value与所述区域阈值threshold2进行比较,若窗口累加值add_value大于区域阈值threshold2,则所述像素窗口对应的区域取值为1,否则像素窗口对应的区域取值为0,得到第二点图point_image2。
进一步地,在对所述像素窗口对应的区域进行取值时,将落在所述像素窗口的第一点图point_image1的若干个像素点压缩成一个像素点,并对所述压缩后的像素点进行取值为1或0。
进一步地,所述第一block区域在所述第一点图point_image1上进行取值时,按垂直和/或水平的方向进行滑动,且所述第一block区域的滑动步进距离为所述第一block区域的长度和/或高度。
进一步地,当所述第一block区域配置为1×1大小的block size时,对所述第二点图point_image2进行至少一层卷积池化操作,得到对应层的卷积池化图像结果,其中,自定义第二block区域,所述第二block区域按设定方向在所述第二点图point_image2上滑动取值,对所述第二点图point_image2落在第二block区域内的像素窗口进行计算,若像素窗口内包括至少1个取值为1的像素点,则所述第二block区域覆盖区域内取值为1。
进一步地,在多层卷积池化操作中,根据输入的卷积池化操作层数,将每一层卷积池化操作对应输出的卷积池化图像结果保存至缓存模块,以供下一层卷积池化操作调用,若第二block区域覆盖区域内的取值为1,则证明此区域在上一层卷积池化操作中输出图像像素有效,并继续输出至下一层卷积池化操作中,否则输出无效值。
第二方面,本发明提供一种应用于上述图像处理方法的系统,包括:
图片差值模块,所述图片差值模块被配置为获取待处理图像,并处理得到前景图,所述前景图格式为ARGB;
灰度图转换模块,所述灰度图转换模块被配置为将所述前景图处理成灰度图;
第一点图处理模块,所述第一点图处理模块被配置为对所述灰度图执行第一点图处理、并得到第一点图point_image1,其中所述第一点图处理包括将所述灰度图中每个像素点逐一与有效像素阈值threshold1进行比较,若所述灰度图中的像素点的像素值大于所述有效像素阈值threshold1,则所述像素点取值为1,否则像素点取值为0,其中所述有效像素阈值threshold1为自定义数值;
第二点图处理模块,所述第二点图处理模块被配置为对所述第一点图point_image1执行第二点图处理、并得到第二点图point_image2,其中所述第二点图处理包括根据自定义的第一block区域,对所述第一点图point_image1落在第一block区域内的像素窗口进行像素点数值的累加,得到窗口累加值add_value。
进一步地,还包括:
卷积池化运算模块,所述卷积池化运算模块被配置为当所述第一block区域配置为1×1大小的block size时,对所述第二点图point_image2进行至少一层卷积池化操作,得到对应层的卷积池化图像结果,其中,自定义第二block区域,所述第二block区域按设定方向在所述第二点图point_image2上滑动取值,对所述第二点图point_image2落在第二block区域内的像素窗口进行计算;
缓存模块,所述缓存模块被配置为保存每一层卷积池化操作对应输出的卷积池化图像结果,并将所述卷积池化图像结果供下一层卷积池化操作调用。
本发明的有益效果:
本发明提供的一种图像处理方法和系统,用点图对应实际图像的方式,对点图进行多层卷积池化操作,进行多层卷积特征提取,对于每一层卷积池化操作对应输出的卷积池化图像结果再供下一层卷积池化操作调用,以较小的运算量来识别每一层卷积池化图像结果中有效像素点,大大加快了卷积特征提取的速度以及对于核的算力需求,同时大大节省了带宽。
本发明在进行卷积池化操作中,可自定义第二block区域,根据不同的图像场景可任意设置第二block区域的大小进行全面的区域搜索,以找到图像中符合识别要求的图像区域,从而提取对应像素值输入给后续图像处理模块。
本发明能在高清大图像中有效捕捉到待识别图像内符合要求的待识别目标或者锁定图像中符合需求的图像区域,以去除冗余图像信息,保留有效数据输入,大大减少冗余信息计算,减少不必要的运算量,以达到加速图像识别速度,提高图像识别精准度,降低图像处理模块的算力压力,降低芯片总线带宽压力,提高芯片运算效率,提升图像处理模块性能表现。
附图说明
利用附图对本发明作进一步说明,但附图中的实施例不构成对本发明的任何限制,对于本领域的普通技术人员,在不付出创造性劳动的前提下,还可以根据以下附图获得其它的附图。
图1是本实施例1提供的一种图像处理方法的流程框架简要示意图。
图2是本实施例1提供的一种图像处理方法中步骤S3的流程框架示意图。
图3是本实施例1提供的一种图像处理方法中卷积池化操作的运算示意图。
图4是本实施例2提供的一种图像处理系统的示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
实施例1:
参照图1至图2,本实施例提供一种图像处理方法,包括以下步骤:
步骤S1:获取待处理图像,对待处理图像执行第一转换处理,得到灰度图;
步骤S2:根据自定义的有效像素阈值threshold1,对灰度图执行第一点图处理,得到第一点图point_image1,第一点图point_image1中每个像素点数值为0或1;
步骤S3:对第一点图point_image1执行第二点图处理,得到第二点图point_image2,第二点图处理包括根据自定义的第一block区域,对第一点图point_image1落在第一block区域内的像素窗口进行像素点数值的累加,得到窗口累加值add_value。
需要说明的是,在将待处理图像处理成灰度图后,根据实际应用场景,自定义一个有效像素阈值threshold1,将灰度图中的每个像素点逐一与此有效像素阈值threshold1进行比较,得到第一点图point_image1,且此第一点图point_image1跟原待处理图像相比,像素个数不变,但是将像素点转换成像素值仅为0或1的第一点图point_image1;然后,在第一点图point_image1上,根据自定义的第一block区域,选取对应的像素窗口,对像素窗口内的像素点进行数值累加,得到窗口累加值add_value,并生成第二点图point_image2,通过适应性地自定义第一block区域,经过多次像素点转换,将原来的高像素的待处理图像,转换成以自定义第一block区域为单位区域的统一的像素点数值,提高图像处理效率。
在本实施例中,在步骤S1中,待处理图像包括全景图和背景图,全景图和背景图均为ARGB格式,第一转换处理包括将全景图和背景图通过图片差值模块处理得到前景图,前景图格式为ARGB,再将前景图通过灰度图转换模块处理得到灰度图。
在本实施例中,在步骤S2中,第一点图处理包括将灰度图中每个像素点逐一与有效像素阈值threshold1进行比较,若灰度图中的像素点的像素值大于有效像素阈值threshold1,则像素点取值为1,否则像素点取值为0。其中,有效像素阈值threshold1可根据实际应用情况进行取值调整,通过此步骤,将原待处理图像处理成像素个数不变,但像素点数值仅为0或1的第一点图point_image1。
参照图2,在本实施例中,在步骤S3中,第一block区域包括1×1~16×16之间任一种大小配置的block size,即第一block区域有256种大小不同的block size,此blocksize为矩形窗口,当然地,根据实际情况可以选择比此block size范围更大的第一block区域;第一block区域按设定方向在第一点图point_image1上滑动取值,每滑动一次,对第一点图point_image1落在第一block区域内的像素窗口进行像素点数值的累加,即对像素窗口取值为1或者0的像素点数值进行累加,得到窗口累加值add_value,此窗口累加值add_value即对应此第一block区域内的像素窗口的累加值,根据自定义的区域阈值threshold2,对窗口累加值add_value与区域阈值threshold2进行比较,若窗口累加值add_value大于区域阈值threshold2,则像素窗口对应的区域取值为1,否则像素窗口对应的区域取值为0,得到第二点图point_image2,此第二点图point_image2是一张全新的像素值仅为0或者1的点图。
其中,第一block区域每滑动一次,即进行一次像素窗口的像素点数值累加,并作一次与区域阈值threshold2的比较,当设定好第一block区域的大小后,最终生成的第二点图point_image2形成了以第一block区域为最小单元的像素点图,在此第一block区域对应的像素窗口中的取值仅为1或0,需要注意的是,在对像素窗口对应的区域进行取值时,将落在像素窗口的第一点图point_image1的若干个像素点压缩成一个像素点,如第一block区域大小为10×10,即在此第一block区域对应的像素窗口中包含有100个像素点,将此窗口中的100个像素点压缩成一个像素点,经压缩后的此像素点的取值只能为1或0,在此例子中,即为将原待处理图像压缩100倍,提高处理运算效率,保留有效数据输入,大大减少冗余信息计算。
作为一种实施方式,第一block区域在第一点图point_image1上进行取值时,按垂直和/或水平的方向进行滑动,且第一block区域的滑动步进距离为第一block区域的长度和/或高度。即第一block区域每次滑动,都是以第一block区域的长度和/或高度为步进距离的,相邻多个第一block区域之间无覆盖的区域,相对独立。
因此,根据第一block区域大小的不同,作为一种实施方式,当第一block区域未配置成1×1大小的block size时,在此第一block区域的滑动取值过程中,在步骤S3后未进行其他任何操作输出,在此配置下,适用于对图像进行区域扫描,并根据实际图像场景需要选择第一block区域的合适block size大小,对图像进行区域有效像素捕捉。
参照图3,作为另一种实施方式,当第一block区域配置为1×1大小的block size时,由于此时得到的第二点图point_image2与处理前的图像一致,包含的信息也与处理前的图像一致,则可进行卷积池化操作:对第二点图point_image2进行至少一层卷积池化操作,得到对应层的卷积池化图像结果,其中,自定义第二block区域,第二block区域按设定方向在第二点图point_image2上滑动取值,对第二点图point_image2落在第二block区域内的像素窗口进行计算,若像素窗口内包括至少1个取值为1的像素点,则第二block区域覆盖区域内取值为1。
需要说明的是,针对第二点图point_image2进行卷积池化操作,可支持第二block区域的block size窗口与真实卷积运算的block size大小一致,并且支持第二点图point_image2加pad/stride,且pad/stride大小应该与真实卷积池化配置值相同,那也就意味着此处的第二block区域在第二点图point_image2上滑动时的步进距离是可以小于blocksize的高度和宽度的,即第二block区域在滑动过程中是存在覆盖的,由于本发明中的卷积池化操作是对第二点图point_image2进行运算的,那么对于不同block size窗口的第二block区域,只要落在第二block区域内的像素点存在1,则该第二block区域所覆盖区域取1,否则取0。
参照图3,优选地,在实际运算中,卷积池化操作对于图片的运算处理,存在多层卷积池化操作。即对于同一块输入图片,即第二点图point_image2,每进行完一次卷积池化操作后形成新的对应层的卷积池化图像结果,对于此卷积池化图像结果,还可能会进行下一层的卷积池化操作。如此重复,在进行多层卷积池化操作后,以提取图像特征值,这种方法适用于复杂图像特征值提取,以提高识别精度。因此为了适应此种实际处理需求,卷积池化操作的层数可根据实际需要来自定义输入,进而进行相应次数的卷积池化操作,且将每一层卷积池化操作对应输出的卷积池化图像结果保存至缓存模块,以供下一层卷积池化操作调用。
在本实施例中,每一层卷积池化操作的输出结果可作为对应上一层卷积池化操作输出图像的选择条件。即若第二block区域覆盖区域内的取值为1,则证明此区域在上一层卷积池化操作中输出图像像素有效,并继续输出至下一层卷积池化操作中,否则输出无效值,也就意味着当前输出像素点不参与运算,直接输出下一位置处图像像素点参与判决。
实施例2:
参照图4,本实施例2提供一种应用于实施例1中图像处理方法的系统,包括:
图片差值模块,图片差值模块被配置为获取待处理图像,并处理得到前景图,前景图格式为ARGB;更具体地,图片差值模块获取全景图和背景图,全景图和背景图均为ARGB格式,任意大小,并对此两张图片处理成一张格式为ARGB的前景图;
灰度图转换模块,灰度图转换模块被配置为将前景图处理成灰度图;
第一点图处理模块,第一点图处理模块被配置为对灰度图执行第一点图处理、并得到第一点图point_image1,其中第一点图处理包括将灰度图中每个像素点逐一与有效像素阈值threshold1进行比较,若灰度图中的像素点的像素值大于有效像素阈值threshold1,则像素点取值为1,否则像素点取值为0,其中有效像素阈值threshold1为自定义数值;
第二点图处理模块,第二点图处理模块被配置为对第一点图point_image1执行第二点图处理、并得到第二点图point_image2,其中第二点图处理包括根据自定义的第一block区域,对第一点图point_image1落在第一block区域内的像素窗口进行像素点数值的累加,得到窗口累加值add_value。第二点图处理模块对第一点图point_image1执行第二点图处理过程中,第一block区域包括1×1~16×16之间任一种大小配置的block size,第一block区域按设定方向在第一点图point_image1上滑动取值,对第一点图point_image1落在第一block区域内的像素窗口进行像素点数值的累加,对像素窗口取值为1或者0的像素点数值进行累加,得到窗口累加值add_value,根据自定义的区域阈值threshold2,对窗口累加值add_value与区域阈值threshold2进行比较,若窗口累加值add_value大于区域阈值threshold2,则像素窗口对应的区域取值为1,否则像素窗口对应的区域取值为0,得到第二点图point_image2。
在第一block区域配置为1×1大小的block size的情况下,本图像处理系统还包括:
卷积池化运算模块,卷积池化运算模块被配置为当第一block区域配置为1×1大小的block size时,对第二点图point_image2进行至少一层卷积池化操作,得到对应层的卷积池化图像结果,其中,自定义第二block区域,第二block区域按设定方向在第二点图point_image2上滑动取值,对第二点图point_image2落在第二block区域内的像素窗口进行计算,若像素窗口内包括至少1个取值为1的像素点,则第二block区域覆盖区域内取值为1,其中第二block区域的滑动步进距离可小于第二block区域的长度和/或高度;
缓存模块,缓存模块被配置为保存每一层卷积池化操作对应输出的卷积池化图像结果,并将卷积池化图像结果供下一层卷积池化操作调用。
实施例3:
本实施例3提供一种电子设备,包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现实施例1中的图像处理方法。
实施例4:
本实施例4提供一种计算机可读存储介质,其上存储有计算机指令,其特征在于,计算机指令被处理器执行时实现实施例1中图像处理方法的步骤。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
相对于现有技术,本发明提供的一种图像处理方法和系统,用点图对应实际图像的方式,对点图进行多层卷积池化操作,进行多层卷积特征提取,对于每一层卷积池化操作对应输出的卷积池化图像结果再供下一层卷积池化操作调用,以较小的运算量来识别每一层卷积池化图像结果中有效像素点,大大加快了卷积特征提取的速度以及对于核的算力需求,同时大大节省了带宽。
本发明在进行卷积池化操作中,可自定义第二block区域,根据不同的图像场景可任意设置第二block区域的大小进行全面的区域搜索,以找到图像中符合识别要求的图像区域,从而提取对应像素值输入给后续图像处理模块。
本发明能在高清大图像中有效捕捉到待识别图像内符合要求的待识别目标或者锁定图像中符合需求的图像区域,以去除冗余图像信息,保留有效数据输入,大大减少冗余信息计算,减少不必要的运算量,以达到加速图像识别速度,提高图像识别精准度,降低图像处理模块的算力压力,降低芯片总线带宽压力,提高芯片运算效率,提升图像处理模块性能表现。
最后需要强调的是,本发明不限于上述实施方式,以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
- 信息处理装置、信息处理方法、控制装置、控制系统、控制方法、断层合成图像捕获装置、X射线成像装置、图像处理装置、图像处理系统、图像处理方法和计算机程序
- 图像处理设备,图像处理系统,图像捕获系统,图像处理方法和记录介质