一种图片采集方法、装置、设备和介质

专利类型 发明公开 法律事件 公开; 实质审查;
专利有效性 实质审查 当前状态 实质审查
申请号 CN202411816389.7 申请日 2024-12-11
公开(公告)号 CN119767056A 公开(公告)日 2025-04-04
申请人 天津中科曙光存储科技有限公司; 申请人类型 企业
发明人 苏作新; 海杰; 鲁现辉; 张鹏; 何强; 第一发明人 苏作新
权利人 天津中科曙光存储科技有限公司 权利人类型 企业
当前权利人 天津中科曙光存储科技有限公司 当前权利人类型 企业
省份 当前专利权人所在省份:天津市 城市 当前专利权人所在城市:天津市滨海新区
具体地址 当前专利权人所在详细地址:天津市滨海新区华苑产业区(环外)海泰华科大街15号3层 邮编 当前专利权人邮编:300000
主IPC国际分类 H04N21/262 所有IPC国际分类 H04N21/262H04N21/4402H04N21/239H04N21/437H04L47/10H04L47/215
专利引用数量 0 专利被引用数量 0
专利权利要求数量 10 专利文献类型 A
专利代理机构 北京同达信恒知识产权代理有限公司 专利代理人 李琴;
摘要 本 申请 涉及工业 数据处理 技术领域,尤其涉及一种图片采集方法、装置、设备和介质,用以提升 数据采集 端的存储资源利用率。其中,方法包括:获取数据池中待处理的至少一个工业图片;对于每个工业图片,将该工业图片压缩至目标压缩率后,加载至内存;根据当前的网络限速值设置令牌桶的令牌更新速度,令牌更新速度和网络限速值呈正相关;根据令牌更新速度控制每次从内存中读取的工业图片的大小,以控制将工业图片上传至存储端的上传速度。
权利要求

1.一种图片采集方法,其特征在于,所述方法包括:
获取数据池中待处理的至少一个工业图片;
对于每个工业图片,将所述工业图片压缩至目标压缩率后,加载至内存;
根据当前的网络限速值设置令牌桶的令牌更新速度,所述令牌更新速度和所述网络限速值呈正相关;
根据所述令牌更新速度控制每次从内存中读取的工业图片的大小,以控制将所述工业图片上传至存储端的上传速度。
2.如权利要求1所述的方法,其特征在于,所述将所述工业图片压缩至目标压缩率后,加载至内存,包括:
若所述工业图片达到所述目标压缩率,则将所述工业图片直接加载至内存;
若所述工业图片未达到所述目标压缩率,且质量压缩次数未达到质量压缩上限,则对所述工业图片进行质量压缩,直至所述工业图片达到所述目标压缩率后,将所述工业图片加载至内存;
若所述工业图片未达到所述目标压缩率,且质量压缩次数达到质量压缩上限,则对所述工业图片进行分辨率压缩,直至所述工业图片达到所述目标压缩率或者分辨率压缩次数达到分辨率压缩上限后,将所述工业图片加载至内存。
3.如权利要求2所述的方法,其特征在于,对所述工业图片进行第n次质量压缩,包括:
获取所述工业图片当前的第一质量,并根据所述第一质量和所述目标压缩率,通过第一反馈控制算法获得期望的第二质量;其中,n为正整数;当n=1时,所述第一质量,是对原始的工业图片进行信息采样得到的;当n>1时,所述第一质量,是对所述工业图片进行第n‑
1次质量压缩处理时获得的第二质量;
根据所述第二质量,对所述工业图片进行第n次质量压缩处理。
4.如权利要求2所述的方法,其特征在于,对所述工业图片进行第m次分辨率压缩,包括:
获取所述工业图片当前的第一分辨率,并根据所述第一分辨率和所述目标压缩率,通过第二反馈控制算法获得期望的第二分辨率;其中,m为正整数;当m=1时,所述第一分辨率,是对原始的工业图片进行信息采样得到的;当m>1时,所述第一分辨率,是对所述工业图片进行第m‑1次分辨率压缩处理时获得的第二分辨率;
根据所述第二分辨率,对所述工业图片进行第m次分辨率压缩处理。
5.如权利要求1所述的方法,其特征在于,所述当前的网络限速值是动态获取的。
6.如权利要求1~5任一项所述的方法,其特征在于,所述根据所述令牌更新速度控制单位时间内从内存中读取的工业图片的大小,包括:
在每个单位读取时刻时,向所述令牌桶中添加第一数量的令牌,其中,所述单位读取时刻是根据预设步长对预设单位时间划分得到的;所述第一数量为:所述预设步长与所述令牌更新速度的乘积;
从所述令牌桶中获取第二数量的令牌,并根据所述第二数量,从所述内存中读取相应大小的工业图片;其中,所述第二数量为:所述令牌桶当前所包含的令牌的数量。
7.一种图片采集装置,其特征在于,包括:
获取单元,用于获取数据池中待处理的至少一个工业图片;
压缩单元,用于对于每个工业图片,将所述工业图片压缩至目标压缩率后,加载至内存;
令牌桶配置单元,用于根据当前的网络限速值设置令牌桶的令牌更新速度,所述令牌更新速度和所述网络限速值呈正相关;
读取单元,根据所述令牌更新速度控制每次从内存中读取的工业图片的大小,以控制将所述工业图片上传至存储端的上传速度。
8.一种电子设备,其特征在于,其包括处理器和存储器,其中,所述存储器存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1~6中任一所述方法的步骤。
9.一种计算机可读存储介质,其特征在于,其包括计算机程序,当所述计算机程序在电子设备上运行时,所述计算机程序用于使所述电子设备执行权利要求1~6中任一所述方法的步骤。
10.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序存储在计算机可读存储介质中;当电子设备的处理器从所述计算机可读存储介质读取所述计算机程序时,所述处理器执行所述计算机程序,使得所述电子设备执行权利要求1~6中任一所述方法的步骤。

说明书全文

一种图片采集方法、装置、设备和介质

技术领域

[0001] 本申请涉及工业数据处理技术领域,尤其涉及一种图片采集方法、装置、设备和介质。

背景技术

[0002] 随着智能制造技术推进,工业生产环境中每天会堆积大量的热图片数据,这些数据会存放到每条生产线上的数据池中,通过人工每天定时将这些数据上传到存储端,然而,这个过程中存在数据丢失和数据泄漏的问题。
[0003] 为了应对这一问题,可以使用数据采集器把生产环境中的数据上传到存储,然而,在实际生产过程中,由于网络带宽的限制或不稳定,数据采集器在上传过程中会面临带宽资源的竞争,从而影响上传效率。
[0004] 相关技术中,通过限制线程数的方式对图片数据的上传请求限速,限制数据采集器任务的线程数,相当于是限制上传数据的输入/输出操作每秒(Input/Output Operations Per Second,IOPS),进而导致了数据生产的速度大于数据上传的速度,最终导致数据堆积在数据采集器的内存中,无法及时上传至存储端。
[0005] 很显然,上述方式忽略了数据采集端的存储容量不足的问题,在数据大批量生产的时候会出现存储资源不足,进而导致数据丢失或者数据生产瘫痪的情况。
[0006] 综上所述,如何提升数据采集端的存储资源利用率,已成为亟待解决的技术难题。发明内容
[0007] 本申请实施例提供一种图片采集方法、装置、电子设备和存储介质,用以数据采集端的存储资源利用率。
[0008] 本申请实施例提供的一种图片采集方法,包括:
[0009] 获取数据池中待处理的至少一个工业图片;
[0010] 对于每个工业图片,将所述工业图片压缩至目标压缩率后,加载至内存;
[0011] 根据当前的网络限速值设置令牌桶的令牌更新速度,所述令牌更新速度和所述网络限速值呈正相关;
[0012] 根据所述令牌更新速度控制每次从内存中读取的工业图片的大小,以控制将所述工业图片上传至存储端的上传速度。
[0013] 可选的,若所述工业图片达到所述目标压缩率,则将所述工业图片直接加载至内存;
[0014] 若所述工业图片未达到所述目标压缩率,且质量压缩次数未达到质量压缩上限,则对所述工业图片进行质量压缩,直至所述工业图片达到所述目标压缩率后,将所述工业图片加载至内存;
[0015] 若所述工业图片未达到所述目标压缩率,且质量压缩次数达到质量压缩上限,则对所述工业图片进行分辨率压缩,直至所述工业图片达到所述目标压缩率或者分辨率压缩次数达到分辨率压缩上限后,将所述工业图片加载至内存。
[0016] 通过上述过程,能够确保工业图片在达到目标压缩率后再加载到内存,避免了内存的过度占用。采用质量压缩(优先保证图片视觉质量)与分辨率压缩(在质量压缩上限后进一步减小图片大小)的分阶段处理方式,可以根据图片的实际情况动态调整压缩方式,提高了处理灵活性和效率。质量压缩能够保持图片的关键信息,而在达到质量压缩上限后,转向分辨率压缩以进一步优化图片大小,从而节省带宽和存储资源。
[0017] 可选的,对所述工业图片进行第n次质量压缩,包括:
[0018] 获取所述工业图片当前的第一质量,并根据所述第一质量和所述目标压缩率,通过第一反馈控制算法获得期望的第二质量;其中,n为正整数;当n=1时,所述第一质量,是对原始的工业图片进行信息采样得到的;当n>1时,所述第一质量,是对所述工业图片进行第n‑1次质量压缩处理时获得的第二质量;
[0019] 根据所述第二质量,对所述工业图片进行第n次质量压缩处理。
[0020] 通过上述过程,可以在多次质量压缩中逐步逼近目标压缩率,从而有效控制图片的压缩效果和质量损失。在每次质量压缩时,通过第一反馈控制算法对当前图片质量进行评估,并根据目标压缩率调整压缩目标,确保图片在保证足够质量的前提下逐步减小其文件大小。当n=1时,第一质量来自于原始图片,而当n>1时,第一质量是基于前一次压缩结果获得的质量,确保每次压缩都能够精准地控制图片的质量和大小。该方法能够在多次压缩过程中保持图片的视觉效果,并逐步实现目标压缩率,避免因过度压缩导致图片质量的不可接受的损失。
[0021] 可选的,对所述工业图片进行第m次分辨率压缩,包括:
[0022] 获取所述工业图片当前的第一分辨率,并根据所述第一分辨率和所述目标压缩率,通过第二反馈控制算法获得期望的第二分辨率;其中,m为正整数;当m=1时,所述第一分辨率,是对原始的工业图片进行信息采样得到的;当m>1时,所述第一分辨率,是对所述工业图片进行第m‑1次分辨率压缩处理时获得的第二分辨率;
[0023] 根据所述第二分辨率,对所述工业图片进行第m次分辨率压缩处理。
[0024] 通过上述过程,可以在多次分辨率压缩中逐步调整图片的分辨率,以实现目标压缩率。每次分辨率压缩时,通过第二反馈控制算法评估当前图片的分辨率,并根据目标压缩率调整压缩目标,确保图片的分辨率逐步降低的同时,尽可能保持图片的可用性和视觉效果。当m=1时,第一分辨率来源于原始工业图片,而当m>1时,第一分辨率是基于前一次分辨率压缩后的结果。该方法能够有效地控制每次分辨率压缩后的图片质量,避免过度压缩导致图片失真,同时逐步逼近目标压缩率,确保最终图片的分辨率适配所需的传输和存储需求。
[0025] 可选的,所述当前的网络限速值是动态获取的。
[0026] 通过上述过程,能够根据网络限速值调整令牌桶的容量和令牌更新速度。由于网络限速值是动态获取的,可以根据当前的网络限速值情况自动调整令牌桶的参数。当网络限速值较低时,令牌桶的容量和令牌更新速度会相应降低,从而限制数据采集器的读取速率,避免占用过多的带宽,保持网络的稳定性;当网络限速值较高时,令牌桶的容量和更新速度会增加,允许数据采集器以更高的速率读取数据,从而提高上传效率。
[0027] 可选的,在每个单位读取时刻时,向所述令牌桶中添加第一数量的令牌,其中,所述单位读取时刻是根据预设步长对预设单位时间划分得到的;所述第一数量为:所述预设步长与所述令牌更新速度的乘积;
[0028] 从所述令牌桶中获取第二数量的令牌,并根据所述第二数量,从所述内存中读取相应大小的工业图片;其中,所述第二数量为:所述令牌桶当前所包含的令牌的数量。
[0029] 通过上述过程,通过令牌桶机制实现对读取图片速率的控制,从而间接控制上传文件的速率。令牌桶根据预设的令牌更新速度和单位时间内的步长,动态地向令牌桶添加令牌。数据采集器根据令牌桶中剩余的令牌数量,决定每次从内存中读取的数据量,进而控制读取速率。通过这种方式,读取速率和上传速率得以同步限制,从而保证了网络限速值的自动调控,避免了带宽过度占用或浪费,确保了数据传输的平稳进行。
[0030] 本申请实施例提供的一种图片采集装置,包括:
[0031] 获取单元,用于获取数据池中待处理的至少一个工业图片;
[0032] 压缩单元,用于对于每个工业图片,将所述工业图片压缩至目标压缩率后,加载至内存;
[0033] 令牌桶配置单元,用于根据当前的网络限速值设置令牌桶的令牌更新速度,所述令牌更新速度和所述网络限速值呈正相关;
[0034] 读取单元,根据所述令牌更新速度控制每次从内存中读取的工业图片的大小,以控制将所述工业图片上传至存储端的上传速度。
[0035] 本申请实施例提供一种计算机可读存储介质,其包括计算机程序,当所述计算机程序在电子设备上运行时,所述计算机程序用于使所述电子设备执行上述任意一种图片采集方法的步骤。
[0036] 本申请实施例提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中;当电子设备的处理器从计算机可读存储介质读取所述计算机程序时,所述处理器执行所述计算机程序,使得所述电子设备执行上述任意一种图片采集方法的步骤。
[0037] 本申请有益效果如下:
[0038] 本申请实施例提供了一种图片采集方法、装置、电子设备和存储介质。首先,本申请通过数据采集器从数据池中获取待处理的工业图片,自动化地采集需要上传的数据,避免了人工干预,从而提高了数据采集的效率。其次,这些工业图片通过压缩机制进行处理,压缩确保了工业图片文件的体积控制,使得上传过程中不会因为文件过大而占用过多带宽或存储资源,从而有效地减少了数据采集端存储资源的压,避免了因文件过大导致的数据堆积问题。
[0039] 最后,内存中的工业图片可以进入后续读取流程并上传到存储端。具体的,本申请通过设定与网络限速值相匹配的令牌更新速度,令牌桶生成令牌的数量随着网络限速值的变化调整,从而控制图片读取速度,进而控制数据采集器上传存储端的速度,避免了因网络限速值波动或存储资源不足导致的上传速度不稳定或数据堆积问题。
[0040] 总结来说,本申请通过图片压缩结合令牌桶算法动态控制工业图片读取速度,进而控制上传速度,提升了数据采集端的存储资源利用率,应对数据堆积问问题,并提高了图片上传的效率。
[0041] 本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

[0042] 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0043] 图1为本申请实施例的应用场景示意图;
[0044] 图2本申请实施例提供的一种图片采集方法的实施流程图
[0045] 图3为本申请实施例中的一种工业图片压缩的实施流程图;
[0046] 图4为本申请实施例提供的一种通过令牌桶读取图片的示意图;
[0047] 图5为本申请实施例提供的一种图片采集方法的总体流程图;
[0048] 图6为本申请实施例中的一种图片采集装置的结构示意图;
[0049] 图7为本申请实施例中的一种电子设备的组成结构示意图。

具体实施方式

[0050] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请技术方案保护的范围。
[0051] 以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0052] 如图1所示,其为本申请实施例的应用场景示意图。该应用场景图中包括数据池110、数据采集器120和存储端130。
[0053] 其中,数据池用来集中存储生产线上的工业图片数据,方便数据采集器从中获取待处理的图片;数据采集器用来从数据池中获取图片数据,数据采集器首先将待上传的图片数据加载到内存中,内存起到暂存作用,提供快速的数据访问和处理。当图片数据准备好后,数据采集器会将其放入缓冲区中。缓冲区的作用是作为一个临时存储区域,数据采集器可以将图片数据从内存传输到缓冲区,再根据网络限速值限制或上传速率控制将数据上传至存储端;存储端用来接收、存储和管理上传的数据,确保数据的长期保存和便捷访问。该存储端可以是基于云存储架构的,工业图片数据可以在云环境中进行存储和管理。云存储可以确保数据的长期保存和随时调取。
[0054] 下面结合上述描述的应用场景,参考附图来描述本申请示例性实施方式提供的图片采集方法,需要注意的是,上述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。
[0055] 参阅图2所示,为本申请实施例提供的一种图片采集方法的实施流程图,以数据采集器为执行主体为例,该方法的具体实施流程如下:
[0056] S21:获取数据池中待处理的至少一个工业图片;
[0057] 在工业生产环境中,生产线上的摄像头持续拍摄产品,生成大量的热图片数据集。热图片是指在生产过程中实时捕获的工业图像,这些工业图片通常包含产品的状态、外观等关键信息,能够反映出生产过程中的变化或异常。热图片具有实时性和频繁更新的特点,通常在生产线持续运作时不断生成,并且包含大规模的、未经过滤的工业图像数据。
[0058] 热图片会被存放在每条生产线对应的数据池中。数据池作为一个集中存储区域,用于存放所有待处理的工业图片数据,确保数据的集中管理和及时处理。数据采集器会持续监测数据池中的新增图片数据,并定期检测数据池的更新情况,以便尽快发现并处理这些新产生的图片数据。
[0059] 在获取待处理的工业图片时,数据采集器会从数据池中提取待处理的工业图片数据,整理并打包这些图片信息,准备进行下一步的处理操作。
[0060] S22:对于每个工业图片,将该工业图片压缩至目标压缩率后,加载至内存。
[0061] 在本申请实施例中,对于每个工业图片,分析该工业图片是否达到目标压缩率;其中:若该工业图片达到目标压缩率,则将该工业图片直接加载至内存;若该工业图片未达到目标压缩率,则对该工业图片进行至少一次压缩,直至压缩后的工业图片达到目标压缩率或者压缩次数达到上限,并将压缩后的工业图片加载至内存。
[0062] 其中,压缩率指压缩后的工业图片和原始工业图片的大小的比值,即压缩后的图片大小与原始图片大小之比。目标压缩率指预定希望达到的压缩率,表示期望压缩后的图片大小与原始图片大小之间的比率。例如,目标压缩率为50%表示期望将图片大小压缩到原来的一半。
[0063] 此处需要说明的是,目标压缩率可以根据多个因素设置,包括但不限于存储空间、传输带宽、图像内容复杂度以及应用需求。在存储空间受限或网络限速值较低的情况下,目标压缩率可以设置较低,例如50%或更低,来减小文件大小。而在一些对图像质量有较高要求的应用场景中,目标压缩率可能会设置较高,例如80%或90%,以确保压缩后图像的视觉质量不会有太大损失。总的来说,目标压缩率的设置是根据具体应用场景的需求来决定的,对于具体的目标压缩率的设置,本申请不作具体限定。
[0064] 压缩次数的上限是指在图片处理过程中,允许对同一张图片进行的最大压缩次数,简称压缩次数上限,在本申请实施例中,压缩次数上限包括两个方面:质量压缩上限和分辨率压缩上限。
[0065] 其中,质量压缩上限是指在进行图片质量压缩时,最多允许进行的压缩次数。质量压缩一般会减少图片的细节和精度,因此设置压缩次数上限是为了避免过度压缩,导致图片的可读性和关键视觉信息丢失。
[0066] 图片质量压缩指的是通过减少图片的色彩信息、亮度信息或其他视觉细节来降低图片的质量,从而减小图片文件的大小。
[0067] 分辨率压缩上限是指在进行图片分辨率压缩时,允许的最大压缩次数。分辨率压缩会降低图片的分辨率,从而减少图片的大小,但过度压缩可能会导致图片模糊或丢失重要细节。
[0068] 图片分辨率压缩指的是通过减少图片的像素数(即图片的宽度和高度)来降低图片的分辨率,从而减小图片文件的大小。
[0069] 在本申请实施例中,数据采集器接收到数据池中待处理的至少一个工业图片后,将这些图片传递给数据采集器的图片处理模。图片处理模块的作用是首先分析每张工业图片是否已达到目标压缩率。
[0070] 对于一张工业图片,若该工业图片当前已满足目标压缩率,则直接将该图片加载至内存,以便进行后续处理和上传。
[0071] 若该工业图片未能达到目标压缩率,图片处理模块将对该工业图片进行压缩操作,直至压缩后的工业图片达到目标压缩率或达到压缩次数的上限。压缩操作的目的是通过降低图片的文件大小,减少上传过程中对带宽的占用,同时避免图片过大导致的存储资源浪费。
[0072] 在本申请实施例中,数据采集器的图片处理模块通过对每张工业图片进行压缩操作,确保这些图片达到目标压缩率,从而有效管理图片的大小并优化带宽和存储资源的使用。
[0073] 处理过程的关键在于首先通过质量压缩,若质量压缩无法有效减小图片的大小,则再通过分辨率压缩来进一步压缩图片。质量压缩优先于分辨率压缩的原因在于,质量压缩主要是通过去除不太显著的细节或降低色彩精度来减小文件大小,同时保持图片的分辨率不变,因此能够在不影响图片清晰度的情况下最大程度地减小图片的体积。
[0074] 如果直接进行分辨率压缩,图片的清晰度会下降,特别是对于一些需要较高分辨率的工业图片,可能会丧失重要信息。因此,先进行质量压缩可以在不影响图片细节的前提下,尽量减小文件大小。只有在质量压缩达到上限或效果不明显时,才会进行分辨率压缩,后者通过降低图片的像素尺寸来进一步压缩图片文件大小,但同时也会影响图片的清晰度和细节,因此通常是作为最后的手段来使用。
[0075] 下面对数据采集器的图片处理模块的压缩过程进行具体叙述,如图3所示,其为本申请实施例中的一种工业图片压缩的实施流程图。具体的步骤如下:
[0076] S30:获取至少一个工业图片,对于每个工业图片,分别执行如下步骤S31~S37:
[0077] S31:分析该工业图片是否达到目标压缩率,如果是,则执行S32,否则,执行S33。
[0078] 此处需要说明的是,每次进行质量压缩或分辨率压缩时,工业图片的文件大小和质量会发生变化,但其核心视觉信息(如产品形状、颜色、识别信息等)不会发生实质性变化。
[0079] 在S31中,具体是分析当前最新的工业图片,对于初始工业图片,数据采集器会根据其原始大小进行分析,若已达到目标压缩率,直接加载至内存进行上传。若未达到目标压缩率,则进入下一步压缩过程。当工业图片经过压缩后,再次进入S31步骤进行分析时,分析的实际上是已经经过压缩的图片,即最新的工业图片,而不是原始的工业图片。
[0080] S32:若该工业图片达到目标压缩率,则将该工业图片加载至内存。
[0081] S33:若该工业图片未达到目标压缩率,分析质量压缩次数是否达到质量压缩上限,如果是,则执行S35,否则,执行S34。
[0082] S34:若质量压缩次数未达到质量压缩上限,则对该工业图片进行一次质量压缩,并返回至S31。
[0083] 此处需要说明的是,质量压缩次数的初始值为0,每次进行一次质量压缩时,质量压缩次数会加1。在执行质量压缩操作时,数据采集器会首先分析当前图片,若未达到目标压缩率,则进行一次质量压缩,并将质量压缩次数加1。S35:若质量压缩次数达到质量压缩上限,则分析质量压缩次数是否达到分辨率压缩上限,如果是,则执行S36,否则,执行S37。
[0084] S36:若分辨率压缩次数达到分辨率压缩上限,将该工业图片加载至内存。
[0085] S37:若分辨率压缩次数未达到分辨率压缩上限,则对该工业图片进行分辨率压缩,每分辨率压缩一次,返回至S31步骤。
[0086] 同上述质量压缩,在S37中,分辨率压缩次数的初始值为0,每次进行一次分辨率压缩时,分辨率压缩次数会加1。在执行分辨率压缩操作时,若图片未达到目标压缩率且质量压缩已达到上限,则进行一次分辨率压缩,并将分辨率压缩次数加1。
[0087] 下面将对质量压缩和分辨率压缩的过程进行详细介绍。
[0088] 对该工业图片进行第n次质量压缩时的步骤如下:
[0089] 获取该工业图片当前的第一质量,并根据第一质量和目标压缩率,通过第一反馈控制算法获得期望的第二质量;其中,n为正整数;当n=1时,第一质量,是对原始的工业图片进行信息采样得到的;当n>1时,第一质量,是对该工业图片进行第n‑1次质量压缩处理时获得的第二质量。
[0090] 根据第二质量,对该工业图片进行第n次质量压缩处理。
[0091] 其中,第一质量指当前工业图片的质量,第二质量指经过反馈调整后的目标质量,表示希望达到的压缩后的质量平。
[0092] 具体的,当该工业图片将要进行第一次质量压缩时,第一质量是通过对原始工业图片进行信息采样获得的;当对该工业图片将要进行后续质量压缩处理时,第n(n>1)次质量压缩处理时的第一质量,是第n‑1次质量压缩处理时(即上一次质量压缩)获得的第二质量。
[0093] 在一种可选的实施方式中,从数据池中获取一个工业图片,记为原始工业图片A0,A0的大小是10MB,目标压缩率为50%,希望压缩后的图片大小为原始大小的50%,即5M,当前的压缩率为:
[0094] R0=A0/A0=100%。
[0095] 经过S31步骤的分析,原始工业图片A0的压缩率未达到目标压缩率,则进入S33步骤,分析质量压缩次数是否达到质量压缩上限。
[0096] 在一种可选实施方式中,设定的质量压缩上限f为3次。也就是说,每张图片最多可以进行3次质量压缩,此处需要说明的是,质量压缩次数是根据图像内容的复杂性、预期的视觉质量、用途需求以及存储或传输要求来决定的,即具体次数由实际应用需求决定,3次只是一个简单举例,对于具体的质量压缩次数,本申请对此不作具体限定。
[0097] 该工业图片A0的压缩次数为0次,即n=0,未达到质量压缩上限,则跳转S34的步骤,对该工业图片A0进行质量压缩。
[0098] 在对该工业图片进行第1次质量压缩时,对该工业图片A0进行信息采样,获得该工业图片的大小和第一质量Q0。
[0099] 其中,信息采样是指其中,信息采样是指在压缩过程开始之前,通过对图片内容和质量进行初步的评估,获取图片的文件大小以及当前的质量数值。
[0100] 经过信息采样后,假设获得该工业图片A0的第一质量Q0为95。
[0101] 然后根据第一质量Q0=95和目标压缩率R=50%,通过第一反馈算法获得期望的A0的第二质量Q1。
[0102] 在本申请实施例中,第一反馈算法公式如公式1:
[0103]
[0104] 其中,Q2是期望的第二质量,Q1是第一质量,即每次压缩开始之前的质量),e(t)是当前压缩率与目标压缩率与之间的误差, 是误差e(t)的累积, 是误差e(t)的变化率。
[0105] Kp、Ki和Kd分别是PID智能控制算法的比例系数、积分系数和微分系数。比例系数用于根据当前的误差值来调整期望的第二质量,比例项Kpe(t)用于缩小当前误差对压缩率的影响。积分系数用于计算误差的累积值,即历史误差的总和,积分项 可以有效地消除长期的累积误差,确保期望的第二质量逐渐趋向理想值。微分系数用于根据误差的变化速率(即误差的变化速度)来进行调整。微分项 有助于减小误差波动,提前预测误差趋势,并对即将发生的变化作出反应。
[0106] 此处需要说明的是,第一反馈算法是为了根据当前的误差调节目标质量,从而不断逼近目标压缩率。PID算法作为第一反馈算法的一个示例,可以通过调整质量来逐步优化图片的压缩效果。本申请以PID算法为例,第一反馈算法还可以是其他反馈控制算法,例如PI算法、PD算法等,只要能够根据误差、误差的累积和误差的变化速率来调整目标质量,均可作为有效的第一反馈算法。具体的第一反馈算法可以根据应用需求和具体的系统特性进行选择和调整。
[0107] 对于第一反馈算法,本申请对此不作具体限定,这意味着在实际应用中,可以根据不同的系统需求和压缩策略,采用不同的控制算法,而PID只是一个示例。
[0108] 仍以目标压缩率R=50%,A0的大小是10MB,A0的第一质量Q0为95为例,压缩率误差e(0)=50%‑100%=‑50%,在一种可选的实施方式中,使用以下PID控制参数,比例系数Kp等于0.5、积分系数Ki等于0.1、微分系数Kd等于0.2,根据公式1,此时A0的第二质量Q1的计算方式如下:
[0109] 比例项P=0.5×误差‑50,等于‑25,在第一次压缩之前,积分项的初值为0,当前误差为‑50%,则积分项为0.1×(‑50)=‑5,在第一次计算时误差变化率为0(没有历史数据),所以微分项为0,则Q1=95+(‑25)+(‑5)+0=95‑30=65,根据A0的第二质量65对原始工业图片A0进行压缩,获得压缩后的工业图片A1。
[0110] 对该工业图片A1进行信息采样后获得A1的大小,例如A1的大小为6.84MB,然后将A1输入如图3所示的S31步骤,分析该工业图片A1是否达到目标压缩率,当前的压缩率为68.4%,仍然没有达到目标压缩率,进入S33步骤,分析质量压缩次数是否达到质量压缩上限,仍以质量压缩上限为3次为例,此时n=1,小于f,则可以进行第二次质量压缩。
[0111] 对该工业图片进行第二次质量压缩时,该工业图片为对原始工业图片A0压缩后的工业图片A1,A1的第一质量为Q1,即进行第一次质量压缩时获得的第二质量。
[0112] 根据Q1为65和目标压缩率50%,通过第一反馈算法获得期望的A1的第二质量Q2,仍以上述为例,A1的第二质量Q2的计算过程如下:
[0113] 比例项:P=0.5·(‑18.4)=‑9.2
[0114] 积分项:积分项是前一次的误差的累积,误差为‑50%+‑18.4%,则I=0.1·(‑50+‑18.4)=0.1·(‑68.4)=‑6.84
[0115] 微分项:D等于
[0116] 则A1的第二质量Q2等于55.28
[0117] 可对A1按照第二质量Q2进行质量压缩,获得压缩后的工业图片A2。
[0118] 对该工业图片A2进行信息采样后获得A2的大小,例如A2的大小为5.82MB,然后将A2输入如图3所示的S31步骤,分析该工业图片A2是否达到目标压缩率,当前的压缩率为58.2%,仍然没有达到目标压缩率,进入S33步骤,分析质量压缩次数是否达到质量压缩上限,仍以质量压缩上限为3次为例,此时n=2,小于f,则可以进行第三次质量压缩。
[0119] 进行第三次质量压缩的计算过程如上述所示,此处不再一一陈列,此时的误差=50%‑58.2%=‑8.2%,比例项P=0.5·(‑8.2)=‑4.1,积分项=0.1·(‑50+‑18.4+‑8.2)=0.1·(‑76.6)=‑7.66, 得出工业图片A2的第二质
量Q2等于45.56,按照第二质量Q2对该工业图片A2进行压缩,获得压缩后的该工业图片A3,若经过信息采样后,该工业图片A3达到目标压缩率,将压缩后的该工业图片加载到内存。若在该次压缩之后,该工业图片A3仍未达到目标压缩率,进入S33步骤,分析质量压缩次数是否达到质量压缩上限,仍以质量压缩上限为3次为例,此时n=3,小于f,则达到质量压缩上限,进入分辨率压缩步骤。
[0120] 对该工业图片进行第m次分辨率压缩时的步骤如下:
[0121] 获取该工业图片当前的第一分辨率,并根据第一分辨率和目标压缩率,通过第二反馈控制算法获得期望的第二分辨率;其中,m为正整数;当m=1时,第一分辨率,是对原始的工业图片进行信息采样得到的;当m>1时,第一分辨率,是对该工业图片进行第m‑1次分辨率压缩处理时获得的第二分辨率;
[0122] 根据第二分辨率,对该工业图片进行第m次分辨率压缩处理。
[0123] 其中,第一分辨率指当前工业图片的分辨率,当该工业图片将要进行第一次分辨率压缩时,第一分辨率是通过对未经过分辨压缩时的工业图片进行信息采样获得的,当对该工业图片将要进行第n次分辨率压缩处理时,第一分辨率是进行第n‑1次分辨率压缩处理时(即上一次分辨率压缩)获得的第二分辨率。第二分辨率指经过反馈调整后的目标分辨率,表示希望达到的压缩后的分辨率水平。
[0124] 第二反馈控制算法如下:
[0125]
[0126] 此处需要说明的是,第二反馈算法的参数的含义同上述第一反馈算法,但第二反馈算法是为了获得目标压缩率下期望的分辨率。具体来说,第二反馈算法用于根据目标压缩率来调整图像的分辨率,以达到目标压缩率要求。在此过程中,比例系数、积分系数和微分系数的设置可以与第一反馈算法相同,也可以根据具体的分辨率调整需求进行不同的设置。第二反馈算法的核心目的是通过调整图像分辨率来进一步压缩图片的文件大小,从而满足目标压缩率。与第一反馈算法主要通过质量调整来压缩图片不同,第二反馈算法则主要通过分辨率压缩来实现目标压缩率。具体来说,第二反馈算法会计算当前分辨率与期望分辨率之间的误差,并根据该误差动态调整分辨率,最终使图片的压缩率符合预定目标。
[0127] 在一种可选的实施方式中,仍以上述工业图片为例,此时该工业图片为A3,该工业图片A3仍未达到目标压缩率,且达到质量压缩上限,即进入S37步骤,对该工业图片A3进行分辨率压缩。
[0128] 对A3进行一次分辨率压缩,获得大小为8MB,第一分辨率为1920x1080,压缩率不满足目标压缩率50%(目标大小为5MB)。此时,假设分辨率压缩上限为5次,此时的分辨率压缩次数为1次,未达到分辨率压缩上限,进入下一步,对该工业图片A3继续进行分辨率压缩。
[0129] 然后,根据第一压缩率C1=95%,目标压缩率R=50%,通过第二反馈算法获得期望的A3的第二分辨率C2。以比例系数Kp=0.6、积分系数Ki=0.1和微分系数Kd=0.2为例,计算如下:
[0130] 误差=目标压缩率‑当前压缩率=50%‑95%=‑45
[0131] 比例项=0.6·(‑45)=‑27
[0132] 积分项为=0.1·(‑45)=‑4.5
[0133] 微分项=0.2·0=0,通过第二反馈算法得到的期望分辨率C2为:‑31.5[0134] 假设第一分辨率为1920x1080(宽度1920像素,高度1080像素)。根据反馈算法计算出来的反馈值(这里用一个比例来表示调整的程度),可以调整分辨率。
[0135] 首先,计算第二分辨率的期望比例,第二分辨率比例=100%+反馈值[0136] =100%+(‑31.5%)=68.5,因此,期望的第二分辨率比例为68.5%,即图像的分辨率应该降到68.5%。假设第一分辨率为1920x1080,我们可以计算第二分辨率的具体像素值:第二分辨率宽度=1920×0.685=1319像素,第二分辨率高度
[0137] =1080×0.685=740像素
[0138] 因此,期望的第二分辨率为1319x740像素,表示在进行分辨率压缩后,图像的分辨率应降至1319x740。
[0139] 根据此分辨率,即可对工业图片A3进行分辨率压缩,获得分辨率压缩后的工业图片A4,然后将A4输入如图3所示的S31步骤,分析该工业图片A4是否达到目标压缩率,若当前的压缩率为51.2%,仍然没有达到目标压缩率,进入S35步骤,分析分辨率压缩次数是否达到质量压缩上限,仍以分辨率压缩上限k为5次为例,此时n=1,小于分辨率压缩上限,则可以进行第二次分辨率压缩,进行第二次分辨率压缩的计算方式如上,此处不再一一重复,若分辨率压缩后经过S31的分析后达到目标压缩率,则将该工业图片Ak加载至内存,m是达到目标压缩率的分辨率压缩次数,还有一种情况是经过分辨率压缩上限k之后,仍未达到目标压缩率,则将工业图片Am加载至内存,即S36的步骤。
[0140] 通过上面的质量压缩和分辨率压缩,解决了直接上传原图时造成的网络限速值消耗问题,进而提升了上传对象的IOPS,避免了数据堆积的情况。在上传图片文件之前,采用高质量压缩方法,不仅能够保留图片的关键信息,还减少了网络限速值的占用,从而提升了上传速度,解决了热数据堆积问题。
[0141] 上述的过程通过质量压缩和分辨率压缩,图片在加载到内存前已被有效减小,避免了网络限速值的过度消耗,接下来,将介绍如何控制从内存读取的图片大小,确保上传速率与网络限速值匹配。
[0142] S23:根据当前的网络限速值设置令牌桶的令牌更新速度,令牌更新速度和网络限速值呈正相关。
[0143] 其中,令牌桶是一种流量控制算法,用于管理网络带宽的使用。令牌桶的工作原理是:定期向“桶”中加入一定数量的“令牌”,每个令牌代表可以上传一定大小的数据。上传数据时,需要先从令牌桶中取出足够数量的令牌。如果令牌不足,数据上传会被延迟或暂时停止,直到桶中有足够的令牌为止。
[0144] 在本申请实施例中,令牌桶的令牌更新速度与网络限速值呈正相关关系。网络限速值用来限制上传速率,网络限速值可以根据网络带宽实时调整,网络带宽是网络传输数据的最大能力,当网络带宽较大时,可以支持更高的限速值,反之,当带宽较小时,限速值也需要相应降低以避免网络拥堵。网络限速值可以通过实时检测当前网络带宽进行动态调整,例如当网络带宽因其他设备使用而波动时,实时更新限速值,以合理利用带宽资源,保证传输效率和稳定性。当网络限速值较高时,令牌桶中的令牌会以较快的速度生成,从而更快地上传数据。反之,若网络限速值较低,令牌更新的速度会较慢,上传速率会相应减缓,避免因过高的上传速率导致网络拥堵或带宽超限。
[0145] 也就是说,在上传图片时,数据采集器根据当前的网络带宽设置令牌桶的令牌更新速度。每当数据采集器准备上传图片时,它会根据令牌桶中的令牌数量来决定上传的数据量。令牌桶中有足够的令牌时,数据采集器可以按预定的速率上传图片;如果令牌不足,上传将被暂时暂停,等待令牌的更新,确保上传速率不会超过网络带宽的承载能力。
[0146] 在一种可选的实施方式中,若网络限速非常低,例如网络带宽仅为1字节/秒,且令牌桶的更新速度为1字节/秒,步长为50ms时,在每个单位读取时刻向令牌桶添加的令牌数将是0.05字节,这相当于无法生成一个完整的令牌,因为每个令牌代表1字节数据,这意味着每50ms内不会向令牌桶添加足够的令牌,令牌桶将无法进行数据读取。此时,令牌桶中的令牌数量仍为0,读取操作无法进行。因此,上传任务将进入“等待”状态,直到令牌桶内有足够的令牌进行读取。
[0147] 在本申请实施例中,数据采集器从内存中读取图片数据。读取操作通常是由多线程并发处理的,但通过令牌桶限制,将根据令牌桶中的可用令牌数量来控制每次读取的图片长度。每当令牌桶中有足够的令牌时,数据采集器才能从内存中读取指定长度的图片数据并将其存入缓冲区。令牌的数量会随着时间的流逝而更新,令牌更新速度与网络限速值、系统负载等因素相关。只有令牌桶中有足够的令牌时,数据采集器才能继续读取数据,确保读取操作的速率不会超出带宽限制。
[0148] 当数据读取完成并存储到缓冲区后,接下来的任务是将缓冲区中的数据上传至存储端。在这一阶段,上传速度受到令牌桶读取速度的限制。
[0149] 下面将对数据采集器控制每次从内存中读取的工业图片的大小的过程进行具体说明:
[0150] 首先,根据当前的网络限速值设置令牌桶的容量和令牌更新速度。当前的网络限速值是动态获取的,这意味着会根据实时的网络限速值情况自动调整令牌桶的参数。为了确保网络上传和下载的速率与带宽状况匹配,令牌桶的容量和更新速度会随着网络限速值的变化进行调整。
[0151] 在一种可选的实施方式中,网络限速值也可以由用户根据使用场景手动设置(例如通过Web界面)。用户设置后,会实时获取该值并将其应用到令牌桶机制中,自动计算并调整令牌桶的容量和令牌更新速度。这种方式使得用户可以根据具体的应用需求灵活控制上传速率。
[0152] 例如,假设用户设置的网络限速值为2MB/s,那么令牌桶的更新速度将被设置为每秒钟更新2MB的数据。每个令牌代表1字节的数据,因此每秒钟更新2,048,000个令牌。同时,令牌桶的容量也会调整为可以容纳2MB的数据量,以保证在高峰时段能够处理较大的数据传输。再例如,如果实时获取到的网络限速值为5MB/s,那么会根据这个实时带宽值,自动调整令牌更新速度为每秒更新5MB的数据,即每秒钟更新5,120,000个令牌。而令牌桶的容量也将增加到5MB,以便更好地匹配网络限速值需求,避免因令牌不足导致上传延迟。
[0153] 这种调整机制不仅保证了上传速率与实时带宽相匹配,还能有效应对网络波动或带宽变化,确保数据传输的稳定性和流畅性。
[0154] 上述过程介绍了在读取前对于令牌桶初始值的设置,下面将介绍具体的读取过程。
[0155] S24:根据令牌更新速度控制每次从内存中读取的工业图片的大小,以控制将工业图片上传至存储端的上传速度。
[0156] 在每个单位读取时刻时,向令牌桶中添加第一数量的令牌,其中,单位读取时刻是根据预设步长对预设单位时间划分得到的;第一数量为:预设步长与令牌更新速度的乘积;
[0157] 从令牌桶中获取第二数量的令牌,并根据第二数量,从内存中读取相应大小的工业图片;其中,第二数量为:令牌桶当前所包含的令牌的数量。
[0158] 其中,预设步长是指在每个预设时间单位内,划分的固定时间间隔。例如,在每秒钟内,如果预设步长为50ms,则每秒内的时间被划分为多个50ms的小单位,每个单位读取时刻都会在这些时间点进行令牌桶的更新操作。预设时间单位是指基本单位时间。在一种可选的实施方式中,预设时间单位是1秒,即每1秒钟为一个周期。在该周期内,按照预设步长(如50ms)进行多次更新。
[0159] 单位读取时刻是指在每个预设的单位时间内,按照预设步长进行时间点划分,每个时刻都会执行令牌桶的更新操作。单位读取时刻是每个预设单位时间内的多个固定时间点,在一种可选的实施方式中,以毫秒为单位。例如,第1秒内的单位读取时刻为第0ms、第50ms、第100ms、第150ms……,第2秒内的单位读取时刻为第0ms、第50ms、第100ms、第
150ms……这些读取时刻是固定的,并且时间间隔(如50ms)是恒定的。
[0160] 第一数量指每个单位读取时刻添加的令牌数,在每个单位读取时刻,会根据令牌更新速度向令牌桶中添加一定数量的令牌。第一数量表示每个单位读取时刻添加的令牌数量。第二数量是指在每个单位读取时刻,从令牌桶中获取的令牌数量。第二数量决定了每次读取操作从内存中获取的数据量。第二数量即令牌桶当前所包含的令牌数量。因此,每次从令牌桶中获取的令牌数(即读取数据的大小)是动态变化的。会根据令牌桶中当前令牌的数量来控制每次读取的数据量。
[0161] 在一种可选的实施方式中,令牌桶的容量为1MB,即1024×1024=1048576字节,令牌更新速度为1MB/秒,单位读取时刻为50ms,
[0162] 参阅图4,其为本申请实施例提供的一种通过令牌桶读取图片的示意图,令牌桶的初始容量为1MB,即令牌桶一开始可以容纳1048576个的令牌。此时,令牌桶已满。
[0163] 在第1秒:
[0164] 第0ms:令牌桶的初始容量为1MB(即1,048,576个令牌),此时令牌桶已满,包含1MB的令牌,此时令牌桶已经准备好进行读取操作。由于令牌桶已满,数据采集器可以立即从令牌桶中读取1MB的数据。此时,从令牌桶中消耗1,048,576个令牌,令牌桶中的令牌数量归零。
[0165] 第50ms:令牌桶中添加0.05MB(即51,200个令牌),根据令牌更新速度(1MB/秒),令牌桶在50ms内会更新第一数量为0.05MB字节个令牌即51,200个令牌,也就是说,令牌桶的当前令牌数量是0.05MB,相当于51,200个令牌,数据采集器可以从令牌桶中读取0.05MB的数据。此时,从令牌桶中消耗第二数量为51,200个令牌,令牌桶中的令牌数量归零。
[0166] 以此类推,此处不再一一赘述。
[0167] 在第2秒:
[0168] 第0ms:令牌桶中再次添加0.05MB(即51,200个令牌),根据令牌更新速度,令牌桶在100ms内会更新第二数量为0.05MB(即51,200个令牌)。此时,令牌桶的当前令牌数量为0.05MB,相当于51,200个令牌,数据采集器可以从令牌桶中读取0.05MB的数据。此时,从令牌桶中消耗51,200个令牌,令牌桶中的令牌数量归零。
[0169] 只有在第1秒的第50ms时,第一数量(即令牌更新的数量)不等于第二数量(即从令牌桶读取的数据量)。原因是,在第0ms时令牌桶已满,数据采集器可以立即读取1MB的完整数据,这意味着从令牌桶中消耗了全部的令牌,而接下来的令牌桶更新是按照预设的令牌更新速度进行的,因此在第50ms时,令牌更新的数量(第一数量)小于令牌桶中剩余的令牌数(第二数量)。这不同于后续的时刻,在每个单位时间内,第一数量和第二数量会保持一致,即更新速度和读取数据的大小保持一致。
[0170] 通过上述过程,通过令牌桶限制读取图片的长度,从而控制从数据采集器到存储端上传图片的速率。
[0171] 参阅图5所示,其为本申请实施例提供的一种图片采集的实施流程图。如图5所示,整体流程包括从工业图片的获取、处理、压缩到最终的上传处理的各个环节。
[0172] 首先,工业图片通过数据采集器从数据池中获取并进入初步压缩阶段。在这一阶段,图片通过质量压缩算法进行处理,目标是减少图片体积并提高传输效率,同时尽可能保留图片的关键信息。如果压缩后的图片未达到预定的目标压缩率,则继续进行质量压缩,直到满足压缩要求或者达到质量压缩次数的限制。如果质量压缩次数达到上限而图片仍未达到目标压缩率,则转入分辨率压缩阶段,对图片进行降分辨率处理以进一步减少文件大小,直到达到目标压缩率或分辨率压缩次数达到上限。
[0173] 接下来,处理后的图片被加载至内存中,准备进行图片读取操作。在上传之前,通过令牌桶机制控制数据读取的速度,从而限制每次上传操作的数据量,确保上传速率与网络限速值状况相匹配。令牌桶根据预设的令牌更新速度和网络限速值动态调整令牌的数量,只有当令牌数量足够时,才会从内存中读取相应大小的图片并上传。如果网络限速值较低,令牌桶更新速度减慢,从而减少每次上传的数据量,这样可以避免网络过载和带宽浪费。读取过程将图片数据从内存传输到缓冲区,再从缓冲区上传至目标存储端,确保上传过程平稳进行。如果令牌桶中的令牌不足,会进入等待状态,直到令牌桶内积累足够的令牌,才继续进行上传操作。
[0174] 通过这一系列的步骤,整个图片采集、处理和上传过程能够高效、稳定地进行,同时动态调整上传速率以应对不同网络环境,保障网络限速值的合理利用,避免带宽过载,确保数据传输的流畅性和可靠性。
[0175] 基于相同的发明构思,本申请实施例还提供一种图片采集装置600。如图6所示,其为本申请实施例中的一种图片采集装置的结构示意图,可以包括:
[0176] 获取单元601,用于获取数据池中待处理的至少一个工业图片;
[0177] 压缩单元602,用于对于每个工业图片,将该工业图片压缩至目标压缩率后,加载至内存;
[0178] 令牌桶配置单元603,用于根据当前的网络限速值设置令牌桶的令牌更新速度,令牌更新速度和网络限速值呈正相关;
[0179] 读取单元604,根据令牌更新速度控制每次从内存中读取的工业图片的大小,以控制将工业图片上传至存储端的上传速度。
[0180] 可选的,压缩单元602具体用于:
[0181] 若该工业图片达到目标压缩率,则将该工业图片直接加载至内存;
[0182] 若该工业图片未达到目标压缩率,且质量压缩次数未达到质量压缩上限,则对该工业图片进行质量压缩,直至该工业图片达到目标压缩率后,将该工业图片加载至内存;
[0183] 若该工业图片未达到目标压缩率,且质量压缩次数达到质量压缩上限,则对该工业图片进行分辨率压缩,直至该工业图片达到目标压缩率或者分辨率压缩次数达到分辨率压缩上限后,将该工业图片加载至内存。
[0184] 可选的,对该工业图片进行第n次质量压缩,压缩单元602具体用于:
[0185] 获取该工业图片当前的第一质量,并根据第一质量和目标压缩率,通过第一反馈控制算法获得期望的第二质量;其中,n为正整数;当n=1时,第一质量,是对原始的工业图片进行信息采样得到的;当n>1时,第一质量,是对该工业图片进行第n‑1次质量压缩处理时获得的第二质量;
[0186] 根据第二质量,对该工业图片进行第n次质量压缩处理。
[0187] 可选的,对该工业图片进行第m次分辨率压缩,压缩单元602具体用于:
[0188] 获取该工业图片当前的第一分辨率,并根据第一分辨率和目标压缩率,通过第二反馈控制算法获得期望的第二分辨率;其中,m为正整数;当m=1时,第一分辨率,是对原始的工业图片进行信息采样得到的;当m>1时,第一分辨率,是对该工业图片进行第m‑1次分辨率压缩处理时获得的第二分辨率;
[0189] 根据第二分辨率,对该工业图片进行第m次分辨率压缩处理。
[0190] 可选的,当前的网络限速值是动态获取的。
[0191] 可选的,读取单元604具体用于:
[0192] 在每个单位读取时刻时,向令牌桶中添加第一数量的令牌,其中,单位读取时刻是根据预设步长对预设单位时间划分得到的;第一数量为:预设步长与令牌更新速度的乘积;
[0193] 从令牌桶中获取第二数量的令牌,并根据第二数量,从内存中读取相应大小的工业图片;其中,第二数量为:令牌桶当前所包含的令牌的数量。
[0194] 为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本申请时可以把各模块(或单元)的功能在同一个或多个软件硬件中实现。
[0195] 本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。
[0196] 在介绍了本申请示例性实施方式的图片采集方法和装置之后,接下来,介绍根据本申请的另一示例性实施方式的电子设备。
[0197] 所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
[0198] 与上述方法实施例基于同一发明构思,本申请实施例中还提供了一种电子设备。在一种实施例中,该电子设备可以是数据采集器,如图1所示的数据采集器120。在该实施例中,电子设备的结构可以如图7所示,包括存储器701,通讯模块703以及一个或多个处理器
702。
[0199] 存储器701,用于存储处理器702执行的计算机程序。存储器701可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。
[0200] 存储器701可以是易失性存储器(volatile memory),例如随机存取存储器(random‑access memory,RAM);存储器701也可以是非易失性存储器(non‑volatile memory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid‑state drive,SSD);或者存储器701是能够用于携带或存储具有指令或数据结构形式的期望的计算机程序并能够由计算机存取的任何其他介质,但不限于此。存储器701可以是上述存储器的组合。
[0201] 处理器702,可以包括一个或多个中央处理单元(central processing unit,CPU)或者为数字处理单元等等。处理器702,用于调用存储器701中存储的计算机程序时实现上述图片采集方法。
[0202] 通讯模块703用于与终端设备和其他服务器进行通信。
[0203] 本申请实施例中不限定上述存储器701、通讯模块703和处理器702之间的具体连接介质。本申请实施例在图7中以存储器701和处理器702之间通过总线704连接,总线704在图7中以粗线描述,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线704可以分为地址总线数据总线、控制总线等。为便于描述,图7中仅用一条粗线描述,但并不描述仅有一根总线或一种类型的总线。
[0204] 存储器701中存储有计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于实现本申请实施例的图片采集方法。处理器702用于执行上述的图片采集方法,如图2所示。
[0205] 在一些可能的实施方式中,本申请提供的图片采集方法的各个方面还可以实现为一种程序产品的形式,其包括计算机程序,当程序产品在电子设备上运行时,计算机程序用于使电子设备执行本说明书上述描述的根据本申请各种示例性实施方式的图片采集方法中的步骤,例如,电子设备可以执行如图2或图3中所示的步骤。
[0206] 应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
[0207] 此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0208] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用计算机程序的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0209] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序命令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序命令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的命令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0210] 尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
[0211] 显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
QQ群二维码
意见反馈