CN113467914B - 一种提升图像缺陷检测软件处理效率的方法 - Google Patents

一种提升图像缺陷检测软件处理效率的方法 Download PDF

Info

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
Application number
CN202110774396.5A
Other languages
English (en)
Other versions
CN113467914A (zh
Inventor
王岩松
和江镇
方志斌
刘果
黄浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Focusight Technology Co Ltd
Original Assignee
Focusight Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Focusight Technology Co Ltd filed Critical Focusight Technology Co Ltd
Priority to CN202110774396.5A priority Critical patent/CN113467914B/zh
Publication of CN113467914A publication Critical patent/CN113467914A/zh
Application granted granted Critical
Publication of CN113467914B publication Critical patent/CN113467914B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)处理子线程根据预先设置的算法个数创建相应数量的算法子线程进行并行处理,所有算法处理完成后汇总数据;
算法子线程的开启数量根据配方文件预先设置好,然后在当前图像内存中增加算法完成计数标志,每完成一个算法该计数加一,当标志数量与算法子线程数量一致时即认为针对当前图像的所有处理算法均已完成,然后进行最终的汇总。
CN202110774396.5A 2021-07-08 2021-07-08 一种提升图像缺陷检测软件处理效率的方法 Active CN113467914B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 西安工程大学 一种基于深度学习网络的工件检测方法及其检测装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
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