CN113467914B - 一种提升图像缺陷检测软件处理效率的方法 - Google Patents
一种提升图像缺陷检测软件处理效率的方法 Download PDFInfo
- Publication number
- CN113467914B CN113467914B CN202110774396.5A CN202110774396A CN113467914B CN 113467914 B CN113467914 B CN 113467914B CN 202110774396 A CN202110774396 A CN 202110774396A CN 113467914 B CN113467914 B CN 113467914B
- Authority
- CN
- China
- Prior art keywords
- image
- thread
- processing
- sub
- algorithm
- 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.)
- Active
Links
- 230000007547 defect Effects 0.000 title claims abstract description 20
- 238000000034 method Methods 0.000 title claims abstract description 16
- 238000012544 monitoring process Methods 0.000 claims abstract description 20
- 230000007717 exclusion Effects 0.000 claims description 3
- 230000008676 import Effects 0.000 claims description 2
- 238000001514 detection method Methods 0.000 abstract description 7
- 230000008569 process Effects 0.000 abstract description 5
- 230000000903 blocking effect Effects 0.000 abstract description 3
- 230000007246 mechanism Effects 0.000 abstract description 2
- 238000005516 engineering process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Processing (AREA)
Abstract
本发明涉及一种提升图像缺陷检测软件处理效率的方法,在主线程中建立一个监视子线程循环判断图像缓存区是否存在数据,然后当主线程将图像数据压入图像缓存区时,监视子线程遵循先进先出原则取出单个图像数据后创建处理子线程进行处理。在处理子线程中,根据预先的配方设置创立相应算法个数的算法子线程,利用CPU自适应时间片资源调度准则多算法并行处理当前图像,所有算法处理完成后汇总数据。本发明充分利用CPU多核处理机制,修改传统图像缺陷检测阻塞式处理逻辑为多线程并行处理逻辑;在不需要提升计算机硬件配置的情况下,提高图像缺陷检测软件处理效率。
Description
技术领域
本发明涉及视觉图像检测处理技术领域,尤其是一种提升图像缺陷检测软件处理效率的方法。
背景技术
印刷品表面在印刷过程中,由于来料、操作、工艺、环境等各种因素的影响,容易产生各种各样复杂的缺陷,因此需要多种缺陷检测算法进行检测。
传统的处理逻辑是获取到图像数据后,以阻塞的方式对该图像数据依次使用不同的缺陷检测算法进行缺陷检测,所有算法检测完成后进行最终的汇总,才允许下一张图像的处理。按照此逻辑,为了提高软件处理效率,一方面只能通过提升计算机硬件配置,另一方面就是使用当前面检测算法检测到缺陷时后面算法不处理这个逻辑。上面两种传统处理逻辑的改进方式要么提高了成本,要么不能充分暴露所有的缺陷。
发明内容
本发明要解决的技术问题是:提供一种提升图像缺陷检测软件处理效率的方法,解决图像缺陷检测软件处理效率提升的问题。
本发明解决其技术问题所采用的技术方案是:一种提升图像缺陷检测软件处理效率的方法,包括以下步骤,
1)输入图像数据,根据计算机CPU核心数及内存空间,创建合适大小的图像缓存区;
2)创建用于循环判断图像缓存区是否存在图像数据的监视子线程;
3)主线程获取到图像数据后,往图像缓存区导入图像数据;
4)当检测到图像缓存区存在图像时,监视子线程依次取出图像并创建独立的处理子线程进行处理;
5)处理子线程根据预先设置的算法个数创建相应数量的算法子线程进行并行处理,所有算法处理完成后汇总数据。
进一步的说,本发明所述的步骤2)中,包括创建CPU核心数量的读写互斥锁并依次与相关缓存进行绑定;所述的监视子线程每循环监视不同缓存区时即使用相应的读锁。
再进一步的说,本发明所述的步骤3)中,按照不同缓存区使用相应写锁;如果已经存在监视子线程的读操作,则等读操作完成后再进行写操作。
再进一步的说,本发明所述的步骤4)中,监视子线程遵循“先进先出”准则循环从图像缓存区中抓取图像数据。
再进一步的说,本发明所述的步骤5)中,算法子线程的开启数量根据配方文件预先设置好,然后在当前图像内存中增加算法完成计数标志,每完成一个算法该计数加一,当标志数量与算法子线程数量一致时即认为针对当前图像的所有处理算法均已完成,然后进行最终的汇总。
本发明在主线程中建立一个监视子线程循环判断图像缓存区是否存在数据,然后当主线程将图像数据压入图像缓存区时,监视子线程遵循先进先出原则取出单个图像数据后创建处理子线程进行处理。在处理子线程中,根据预先的配方设置创立相应算法个数的算法子线程,利用CPU自适应时间片资源调度准则多算法并行处理当前图像,所有算法处理完成后汇总数据。
本发明的有益效果是,解决了背景技术中存在的缺陷,充分利用CPU多核处理机制,修改传统图像缺陷检测阻塞式处理逻辑为多线程并行处理逻辑;在不需要提升计算机硬件配置的情况下,提高图像缺陷检测软件处理效率。
附图说明
图1是本发明的方法流程示意图。
具体实施方式
现在结合附图和优选实施例对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。
如图1所示的一种提升图像缺陷检测软件处理效率的方法,包括以下步骤,首先,输入图像数据,然后,
1.根据计算机CPU核心数及内存空间,创建合适大小的图像缓存区。图像缓存区大小一般设置为CPU核心数与单个图像内存的乘积;
2.创建循环判断图像缓存区是否存在图像数据的“监视子线程”。为避免缓存区内存读写冲突,创建CPU核心数量的“读写”互斥锁依次与相关缓存进行绑定,“监视子线程”每循环监视不同缓存区时即使用相应的“读”锁。其中,互斥锁是指保证任一时刻只能有一个线程访问该内存区域的对象;
3.当主线程获取到图像数据后,往图像缓存区导入图像数据。主线程往图像缓存区导入图像数据时,按照不同缓存区使用相应“写”锁,即在同一时刻在此缓存区只存在“写”操作,如果已经存在“监视子线程”的“读”操作,则等“读”操作完成后再进行“写”操作;
4.当检测到图像缓存区存在图像时,“监视子线程”依次取出图像并创建独立的“处理子线程”进行处理。“监视子线程”遵循“先进先出”准则循环从图像缓存区中抓取图像数据,开启相应的“处理子线程”。其中,在读取图像数据时,“监视子线程”使用相应缓存区的“读”锁,即在同一时刻在此缓存区只存在“读”操作,如果已经存在“写”锁则等“写”操作完成后再进行“读”。否则,只有等当前的“读”操作完成后,才允许下一个“写”操作;
5.在“处理子线程”处理时,会根据预先设置的算法个数创建相应数量的“算法子线程”进行并行处理,所有算法处理完成后汇总数据。“算法子线程”的开启数量会根据配方文件预先设置好,然后会在当前图像内存中增加算法完成计数标志,每完成一个算法该计数加一,当标志数量与“算法子线程”数量一致时即认为针对当前图像的所有处理算法均已完成,然后进行最终的汇总。
以上说明书中描述的只是本发明的具体实施方式,各种举例说明不对本发明的实质内容构成限制,所属技术领域的普通技术人员在阅读了说明书后可以对以前所述的具体实施方式做修改或变形,而不背离发明的实质和范围。
Claims (1)
1.一种提升图像缺陷检测软件处理效率的方法,其特征在于:包括以下步骤,
1)输入图像数据,根据计算机CPU核心数及内存空间,创建合适大小的图像缓存区;图像缓存区大小设置为CPU核心数与单个图像内存的乘积;
2)创建用于循环判断图像缓存区是否存在图像数据的监视子线程;
包括创建CPU核心数量的读写互斥锁并依次与相关缓存进行绑定;所述的监视子线程每循环监视不同缓存区时即使用相应的读锁;互斥锁保证任一时刻只能有一个线程访问该内存区域的对象;
3)主线程获取到图像数据后,往图像缓存区导入图像数据;
主线程往图像缓存区导入图像数据时,按照不同缓存区使用相应写锁,即在同一时刻在此缓存区只存在写操作;如果已经存在监视子线程的读操作,则等读操作完成后再进行写操作;
4)当检测到图像缓存区存在图像时,监视子线程依次取出图像并创建独立的处理子线程进行处理;
监视子线程遵循“先进先出”准则循环从图像缓存区中抓取图像数据,开启相应的处理子线程;其中,在读取图像数据时,监视子线程使用相应缓存区的读锁,即在同一时刻在此缓存区只存在读操作,如果已经存在写锁则等写操作完成后再进行读;否则,只有等当前的读操作完成后,才允许下一个写操作;
5)处理子线程根据预先设置的算法个数创建相应数量的算法子线程进行并行处理,所有算法处理完成后汇总数据;
算法子线程的开启数量根据配方文件预先设置好,然后在当前图像内存中增加算法完成计数标志,每完成一个算法该计数加一,当标志数量与算法子线程数量一致时即认为针对当前图像的所有处理算法均已完成,然后进行最终的汇总。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110774396.5A CN113467914B (zh) | 2021-07-08 | 2021-07-08 | 一种提升图像缺陷检测软件处理效率的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110774396.5A CN113467914B (zh) | 2021-07-08 | 2021-07-08 | 一种提升图像缺陷检测软件处理效率的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113467914A CN113467914A (zh) | 2021-10-01 |
CN113467914B true CN113467914B (zh) | 2024-06-14 |
Family
ID=77879387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110774396.5A Active CN113467914B (zh) | 2021-07-08 | 2021-07-08 | 一种提升图像缺陷检测软件处理效率的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113467914B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101551771A (zh) * | 2009-05-08 | 2009-10-07 | 中兴通讯股份有限公司 | 一种监视远程数据库运行状态的方法及*** |
CN107479961A (zh) * | 2017-08-28 | 2017-12-15 | 湖南友哲科技有限公司 | 基于计算机多线程多核显微镜细胞图像快速扫描处理方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6088044A (en) * | 1998-05-29 | 2000-07-11 | International Business Machines Corporation | Method for parallelizing software graphics geometry pipeline rendering |
CA2640884C (en) * | 2006-07-20 | 2010-02-23 | Optosecurity Inc. | Methods and systems for use in security screening, with parallel processing capability |
CN1995995B (zh) * | 2006-12-07 | 2010-05-12 | 华南理工大学 | 大型铸件缺陷检测的控制方法 |
US9235769B2 (en) * | 2012-03-15 | 2016-01-12 | Herta Security, S.L. | Parallel object detection method for heterogeneous multithreaded microarchitectures |
CN104063835B (zh) * | 2014-04-02 | 2017-04-12 | 中国人民解放军第二炮兵指挥学院 | 一种卫星遥感图像实时并行处理***及处理方法 |
US10776167B2 (en) * | 2016-09-19 | 2020-09-15 | Texas Instruments Incorporated | Bandwidth controlled data synchronization for image and vision processor |
CN109493318A (zh) * | 2018-10-09 | 2019-03-19 | 广东仙童智能机器人科技有限公司 | 一种图像并行处理方法、装置和计算机存储介质 |
CN109756709A (zh) * | 2018-12-28 | 2019-05-14 | 北京工业大学 | 一种红外全景监控软件中的性能提升方法 |
CN110443791B (zh) * | 2019-08-02 | 2023-04-07 | 西安工程大学 | 一种基于深度学习网络的工件检测方法及其检测装置 |
-
2021
- 2021-07-08 CN CN202110774396.5A patent/CN113467914B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101551771A (zh) * | 2009-05-08 | 2009-10-07 | 中兴通讯股份有限公司 | 一种监视远程数据库运行状态的方法及*** |
CN107479961A (zh) * | 2017-08-28 | 2017-12-15 | 湖南友哲科技有限公司 | 基于计算机多线程多核显微镜细胞图像快速扫描处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113467914A (zh) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1857927A2 (en) | Method and system for enhanced thread synchronization and coordination | |
EP3080702B1 (en) | Techniques for detecting race conditions | |
US20170061304A1 (en) | Three-dimensional chip-based regular expression scanner | |
JPS58142458A (ja) | 共通母線利用検出制御回路及び共通母線利用検出制御方法 | |
US20130263095A1 (en) | Controlling asynchronous call return | |
CN106980477B (zh) | 一种卫星序列图像中点目标实时检测与跟踪***及方法 | |
CN102064977A (zh) | 基于gpu的高速网络报文内容检测方法 | |
TWI439925B (zh) | 內嵌式系統及其執行緒與緩衝區管理方法 | |
CN107273080B (zh) | 一种基于多线程的移动端图片渲染方法及装置 | |
CN103020003A (zh) | 面向多核程序确定性重演的内存竞争记录装置及其控制方法 | |
WO2015009267A1 (en) | Techniques for controlling use of locks | |
CN113467914B (zh) | 一种提升图像缺陷检测软件处理效率的方法 | |
CN107885650A (zh) | 一种程序调试方法及*** | |
US7337274B2 (en) | Computer and control method | |
CN104123177A (zh) | 一种无锁的多线程数据同步方法 | |
TW201206165A (en) | Image testing method of image pickup device and image testing device using the same | |
US9691117B2 (en) | External validation of graphics pipelines | |
CN112732462B (zh) | 基于netmap网卡驱动防止网卡重启的方法 | |
JP4712863B2 (ja) | アドレス排他制御システムおよびアドレス排他制御方法 | |
CN111414337B (zh) | 一种文件读取方法、装置、计算设备及存储介质 | |
WO2014120606A1 (en) | Systems and methods for processing an image | |
CN103718158B (zh) | 多处理器*** | |
US20200133703A1 (en) | Sharing data by a virtual machine | |
CN107193661B (zh) | 面向多核处理器确定性重演的优化分段式内存竞争记录***及其方法 | |
AU2014277851A1 (en) | Detecting a gap between text columns from text line fragments |
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 |