CN116664822B - 一种基于自动切图算法的图像目标检测方法 - Google Patents
一种基于自动切图算法的图像目标检测方法 Download PDFInfo
- Publication number
- CN116664822B CN116664822B CN202310637148.5A CN202310637148A CN116664822B CN 116664822 B CN116664822 B CN 116664822B CN 202310637148 A CN202310637148 A CN 202310637148A CN 116664822 B CN116664822 B CN 116664822B
- Authority
- CN
- China
- Prior art keywords
- picture
- axis
- detection
- pixel value
- target
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 119
- 238000005520 cutting process Methods 0.000 title claims abstract description 17
- 230000004927 fusion Effects 0.000 claims abstract description 32
- 230000011218 segmentation Effects 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims abstract description 11
- 238000000034 method Methods 0.000 claims description 32
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000012360 testing method Methods 0.000 claims description 11
- 230000001629 suppression Effects 0.000 claims description 10
- 230000000694 effects Effects 0.000 claims description 7
- 238000007781 pre-processing Methods 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000004140 cleaning Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 claims description 3
- 238000002360 preparation method Methods 0.000 claims description 3
- 230000008685 targeting Effects 0.000 claims description 3
- 238000009966 trimming Methods 0.000 claims description 3
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 235000019504 cigarettes Nutrition 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000006467 substitution reaction Methods 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/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- 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/26—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
- G06V10/267—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion by performing operations on regions, e.g. growing, shrinking or watersheds
-
- 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/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/80—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
- G06V10/809—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of classification results, e.g. where the classifiers operate on the same input data
-
- 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/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural 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
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于自动切图算法的图像目标检测方法,主要步骤如下:1)图片切分器将要检测的目标照片进行切分,将其分割成多个小图像,并对切分后的图像进行适当重叠;2)多线程并发检测装置通过将图片切分器生成的多个小图像分配给不同的线程或计算单元进行处理实现并行计算;3)识别结果融合器将多线程并发检测装置得到的结果进行汇总和整合得出识别结果,本发明通过图片切分器、多线程并发检测装置和识别结果融合器三个部分的相互协作,能够在保持现有目标检测模型不变的情况下,有效地提高目标检测的准确性和效率。此外,本发明的架构具有较强的通用性,可广泛应用于不同类型的目标检测任务和场景。
Description
技术领域
本发明属于本发明属于计算机视觉领域,尤其涉及一种基于自动切图算法的图像目标检测方法。
背景技术
本发明一种基于自动切图算法的图像目标检测方法主要应用在商品识别领域,目前这个领域采用的目标检测方法是YOLO识别器,当商品柜中摆放的商品是小目标,且摆放不对齐、拍照反光时,容易导致识别效果较差。
现阶段,因为YOLO模型采用单阶段目标检测的方法,只需提取一次特征的前提下,同时保证了良好的准确率和召回率,使得YOLO成为实战使用的最多的目标检测算法。但同时由于YOLO模型是固定输入图像通道,通常采用640*640或者1280*1280的图片尺寸输入,主流的拍照工具如大部分手机都已经达到了4k的图片尺寸,因此通常对图片进行的采用压缩方式改变图片尺寸输入,图片的压缩使得目标检测对部分小目标识别较差。若通过将模型的输入尺寸增大到4k甚至8k进行模型训练将会使得模型整体参数过于庞大而无法计算。
为解决现有商品柜中摆放小目标商品,受摆放不对齐、拍照反光等影响导致的识别效果较差、且现有YOLO识别器图片压缩方式使得目标检测对部分小目标识别较差问题,本发明提出了一种基于自动切图算法的图像目标检测方法。
发明内容
鉴于此,为解决前述现有技术存在的诸多缺点,本发明提出一种基于自动切图算法的高性能图像目标检测方法,该方法能保持模型训练尺寸为640*640或者1280*1280,在目标检测时候对输入图片进行切割分片成若干640*640小图片进行并发目标检测,最后将不同分片的检测结果进行加权融合得出识别结果。本发明可以采用JAVA编程语言实现,利用JAVA的多线程能力并发处理,保证了目标检测系统的低延时检测。
本方法的技术方案如下:
一种基于自动切图算法的图像目标检测方法,主要步骤如下:
S1)考虑目标物体的尺寸和形状,图片切分器将要检测的目标照片进行切分,将其分割成多个小图像,并对切分后的小图像进行重叠;
配置图片切分器的参数,所述参数为切分高度、切分宽度、高度重叠率、宽度重叠率;切分流程步骤如下:
S11)计算图片y轴重叠像素数:将高度重叠率与切分高度相乘,然后取整数值;
S12)计算图片x轴重叠像素数:将宽度重叠率与切分宽度相乘,然后取整数值;
S13)初始化图片y轴最大像素值为0;
S14)进行行循环:当图片y轴最大像素值小于图片高度时,执行以下步骤:
A)将图片x轴最大像素值和图片x轴最小像素值都初始化为0;
B)计算图片y轴最大像素值:将图片y轴最小像素值与切分高度相加;
C)进行列循环:当图片x轴最大像素值小于图片宽度时,执行以下步骤:
i)计算图片x轴最大像素值:将图片x轴最小像素值与切分宽度相加;
ii)如果图片y轴最大像素值大于图片高度或图片x轴最大像素值大于图片宽度,则:
a)计算切分图片x轴最大值:取图片宽度和图片x轴最大像素值的最小值;
b)计算切分图片y轴最大值:取图片高度和图片y轴最大像素值的最小值;
c)计算切分图片x轴最小值:取0和切分图片x轴最大值减去切分宽度的最大值;
d)计算切分图片y轴最小值:取0和切分图片y轴最大值减去切分高度的最大值;
e)将切分区域的坐标(xmin,ymin,xmax,ymax)添加到切分列表中;
iii)如果图片y轴最大像素值小于图片高度或图片x轴最大像素值小于图片宽度,则:将切分区域的坐标(xmin,ymin,xmax,ymax)添加到切分列表中;
iv)为下一次切分更新图片x轴最小像素值:将图片x轴最大像素值减去图片x轴重叠像素;
v)为下一次切分更新图片y轴最小像素值:将图片y轴最大像素值减去图片y轴重叠像素;
S2)多线程并发检测装置通过将图片切分器生成的多个小图像分配给不同的线程或计算单元进行处理,实现并行计算;
S3)识别结果融合器,识别结果融合器将多线程并发检测装置得到的结果进行汇总和整合,识别结果融合器采用加权融合算法得出识别结果,具体如下:
S31)识别结果融合器采用加权融合算法对图片切分阶段存在的重叠区域的检测结果进行处理以避免目标物体的重复检测;
S32)识别结果融合器对多线程并发检测装置返回的检测结果的置信度进行权衡,确保整体的目标检测效果达到最优;
S33)最后,识别结果融合器将融合后的结果输出,完成整个目标检测过程。
优选地,多线程并发检测装置将YOLO模型转译为ONNX格式;转译后的ONNX模型使用JAVA ONNX runtime加载,使用多线程并发模型,对多张分片图片同时进行检测;具体如下:
首先,创建一个固定大小的线程池,大小根据需要加载的模型数量和可用的处理器核心来设定;然后对于每一个模型,创建一个实现Callable接口的类,该类负责加载和初始化ONNX模型;然后,将这些任务提交给ExecutorService执行,并等待所有任务完成;最后从Future对象中获取加载好的模型,返回检测结果。
优选地,多线程并发检测装置通过将图片切分器生成的多个小图像分配给不同的线程或计算单元进行处理,实现并行计算;具体步骤如下:
S21)准备环境:
a.安装ONNX运行时库;
b.下载并导入适当版本的YOLO ONNX模型;
c.添加所需的Java库,所述Java库为onnxruntime或其他图像处理库;
S22)加载YOLO ONNX模型:
a.创建一个类或方法,用于加载YOLO ONNX模型文件并初始化
ONNX运行时会话;
S23)图像预处理:
a.从输入源读取图像;
b.将图像转换为YOLO模型所需的尺寸;
c.对图像进行归一化处理并准备输入张量;
S24)创建多线程任务:
a.根据需要创建线程池,用于并发执行目标检测任务;
b.将图像预处理任务分配给线程池中的工作线程;
S25)目标检测:
a.在每个工作线程中,将预处理后的图像张量输入YOLO模型;
b.解析模型输出,提取目标检测结果,包括边界框、置信度和类别;
S26)后处理:
a.应用非极大值抑制算法剔除重叠边界框和低置信度检测结果;
b.将检测结果转换回原始图像尺寸;
S27)显示或存储结果:
a.在原始图像上绘制边界框和类别标签;
b.将检测结果显示在屏幕上或将其存储到文件中;
S28)清理资源:
a.关闭ONNX运行时会话;
b.释放线程池资源。
优选地,所述步骤S31)中:加权融合算法使用非极大值抑制算法和计算交并比实现;非极大值抑制算法筛选目标检测结果中的冗余检测框,保留最具代表性的检测结果,基本步骤如下:
a)根据检测框的置信度对候选框进行降序排列;
b)选择置信度最高的检测框作为参考框,将其与其他所有检测框计算交并比;
c)移除与参考框交并比大于阈值的其他检测框;
d)从剩余的检测框中,重复步骤b)-c),直到所有检测框都被处理。
优选地,所述交并比衡量两个矩形框重叠程度,评估预测的边界框与实际边界框的相似度,
IoU的计算公式为:
IoU=(A∩B)/(A∪B)
其中,A和B分别表示两个矩形框,A∩B表示两个矩形框的交集面积,A∪B表示两个矩形框的并集面积;IoU的取值范围为0到1。
优选地,所述步骤S31)的详细识别过程如下:
3.1.1)多个切边图片识别结果的置信度和box合并;
3.1.2)把置信度最高的一个bbox作为目标,然后对比剩下bbox与目标bbox之间的交叉区域;
3.1.3)如果交叉区域大于设定的阈值,那么在剩下的bbox中去除该bbox以抑制最大重叠区域;
3.1.4)把第二置信度高的bbox作为目标,重复3.1.2)、3.1.3)。
优选地,所述多线程并发检测装置利用硬件资源获得最佳性能;所述硬件资源包括多核处理器、GPU;同时,对线程之间的同步和通信进行管理确保各个线程的检测结果汇总。
本发明采用以上技术方案与现有技术相比,具有以下有益效果:
(1)本发明通过切分图片输入原始尺寸图片,避免压缩图片。可对原尺寸图片中的小物体、反光、遮挡干扰的物体可有效识别进行识别,解决原本YOLO模型对小物件识别差的问题。
(2)本发明通过图片切分器、多线程并发检测器、加权融合计算三部分,在提升识别准确率同时保证了识别的耗时与原YOLO模型相近。
(3)本发明能够在保持现有目标检测模型不变的情况下,有效地提高目标检测的准确性和效率。此外,本发明的架构具有较强的通用性,可广泛应用于不同类型的目标检测任务和场景。
附图说明
图1是整体框架图;
图2是切分过程示意图;
图3是Java加载模型优化示意图;
具体实施方式
下面将结合附图和实施例对本发明做进一步的详细说明。
如附图1所示,本发明一种基于自动切图算法的图像目标检测方法,主要作用在目标检测的检测端,无需对已训练模型进行重新训练。整体步骤流程分为三部分:
1)图片切分器,图片切分器将要检测的目标照片进行切分。
图片切分器负责将输入的原始图像进行合理切分,将其分割成多个小图像。这样可以确保目标检测算法能够更高效地处理图像,同时减小了计算资源的需求。在进行图片切分时,需要考虑到目标物体的尺寸和形状,以便在后续的检测过程中能够获得更好的结果。此外,图片切分器还应该对切分后的图像进行适当的重叠,以避免目标物体被切割而导致检测效果下降。
图片切分器负责将要检测的目标照片进行切分。图片切分器主要配置参数为切分高度、切分宽度、高度重叠率、宽度重叠率。
图片切分器首先根据输入参数,计算重叠像素,假设输入原图尺寸为1280*1280,YOLO训练模型的输入尺寸为640*640,切分步长为320,切分过程如附图2所示;流程步骤如下:
1计算图片y轴重叠像素数:将高度重叠率与切分高度相乘,然后取整数值。
2计算图片x轴重叠像素数:将宽度重叠率与切分宽度相乘,然后取整数值。
3初始化图片y轴最大像素值为0。
4进行行循环:当图片y轴最大像素小于图片高度时,执行以下步骤:
a.将图片x轴最大像素和图片x轴最小像素都初始化为0。
b.计算图片y轴最大像素值:将图片y轴最小像素与切分高度相加。
c.进行列循环:当图片x轴最大像素小于图片宽度时,执行以下步骤:
i.计算图片x轴最大像素值:将图片x轴最小像素与切分宽度相加。
ii.如果图片y轴最大像素大于图片高度或图片x轴最大像素大于图片宽度:
1).计算切分图片x轴最大值:取图片宽度和图片x轴最大像素的最小值。
2).计算切分图片y轴最大值:取图片高度和图片y轴最大像素的最小值。
3).计算切分图片x轴最小值:取0和切分图片x轴最大值减去切分宽度的最大值。
4).计算切分图片y轴最小值:取0和切分图片y轴最大值减去切分高度的最大值。
5).将切分区域的坐标(xmin,ymin,xmax,ymax)添加到切分列表中。
iii.否则:
1).将切分区域的坐标(x_min,y_min,x_max,y_max)添加到切分列表中。
iv.为下一次切分更新图片x轴最小像素:将图片x轴最大像素减去图片x轴重叠像素。
v.为下一次切分更新图片y轴最小像素:将图片y轴最大像素减去图片y轴重叠像素。
切分后总共获得9张640*640的图片分片。
2)多线程并发检测装置,多线程并发检测装置通过将图片切分器生成的多个小图像分配给不同的线程或计算单元进行处理,实现了并行计算。这样可以显著提高目标检测的速度,尤其在处理大型图像或实时目标检测场景中具有显著优势。为了保证检测效果,多线程并发检测需要充分利用硬件资源,如多核处理器、GPU等,以获得最佳性能。同时,需要对线程之间的同步和通信进行有效管理,确保各个线程的检测结果可以顺利汇总。
将YOLO模型转译为Open Neural Network Exchange(ONNX,开放神经网络交换)格式;转译后的ONNX模型使用JAVAONNX runtime加载,使用多线程并发模型,对多张分片图片同时进行检测;
YOLO模型由Pytorch编写,训练后模型仅能运行于Python环境中。由于Python性能不佳,在切分多张图片后的识别演示无法满足使用要求。因此本发明将YOLO模型转译为Open Neural Network Exchange(ONNX,开放神经网络交换)格式,是一个用于表示深度学习模型的标准,可使模型在不同框架之间进行转移。ONNX是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型。它使得不同的人工智能框架(如Pytorch,MXNet)可以采用相同格式存储模型数据并交互。ONNX的规范及代码主要由微软,亚马逊,Facebook和IBM等公司共同开发。转译后的ONNX模型使用JAVAONNX runtime加载,使用多线程并发模型,步骤如下:
1准备环境:
a.安装ONNX运行时库。
b.下载并导入适当版本的YOLO ONNX模型。
c.添加所需的Java库,如onnxruntime和其他图像处理库。
2加载YOLO ONNX模型:
b.创建一个类或方法,用于加载YOLO ONNX模型文件并初始化ONNX运行时会话。
3图像预处理:
a.从输入源读取图像(文件、摄像头等)。
b.将图像转换为YOLO模型所需的尺寸(如416x416)。
c.对图像进行归一化处理并准备输入张量。
4创建多线程任务:
a.根据需要创建线程池,用于并发执行目标检测任务。
b.将图像预处理任务分配给线程池中的工作线程。
c.确保线程安全,以避免在并发执行过程中出现问题。
5目标检测:
a.在每个工作线程中,将预处理后的图像张量输入YOLO模型。
b.解析模型输出,提取目标检测结果,包括边界框、置信度和类别。
6后处理:
a.应用非极大值抑制(NMS)算法,以剔除重叠边界框和低置信度检测结果。
b.将检测结果转换回原始图像尺寸。
7显示或存储结果:
a.在原始图像上绘制边界框和类别标签。
b.将检测结果显示在屏幕上或将其存储到文件中。
8清理资源:
a.关闭ONNX运行时会话。
b.释放线程池资源。
3)识别结果融合器,采用加权融合算法得出识别结果;
分片结果融合器负责将多线程并发检测得到的结果进行汇总和整合。由于在图片切分阶段可能存在重叠部分,因此分片结果融合器需要对这些重叠区域的检测结果进行处理,避免目标物体的重复检测。同时,分片结果融合器还需要根据各个检测结果的置信度进行权衡,确保整体的目标检测效果达到最优。最后,分片结果融合器将融合后的结果输出,完成整个目标检测过程。
多张图片分片及原图进行识别后,会得出大量重复识别结果。加权融合算法主要使用非极大值抑制(NMS)和交并比(IOU)算法实现。非极大值抑制(NMS)非极大值抑制是一种局部最大值搜索算法,用于筛选目标检测结果中的冗余检测框。在目标检测任务中,通常会有多个候选框重叠在同一个目标物体上。NMS的目的是保留最有代表性的那个检测框,并移除其他冗余的候选框。
NMS的基本步骤如下:
a)根据检测框的置信度(confidence score)对候选框进行降序排列。
b)选择置信度最高的检测框作为参考框,将其与其他所有检测框计算交并比(IoU)。
c)移除与参考框IoU大于某个阈值的其他检测框,因为它们可能表示同一个目标物体。
d)从剩余的检测框中,重复步骤b)-c),直到所有检测框都被处理。
通过这个过程,NMS有效地消除了重复的检测框,并保留了最具代表性的检测结果。
交并比(IoU)是一种衡量两个矩形框重叠程度的指标,广泛应用于目标检测、图像分割等领域。它用于评估预测的边界框与实际边界框的相似度。IoU的计算方法是两个矩形框的交集面积与并集面积之比。
IoU的计算公式为:
IoU=(A∩B)/(A∪B)
其中,A和B分别表示两个矩形框,A∩B表示两个矩形框的交集面积,A∪B表示两个矩形框的并集面积。IoU的取值范围为0到1。当IoU值越接近1时,表示两个矩形框的重叠程度越高;当IoU值越接近0时,表示两个矩形框的重叠程度越低。
多张图片分片及原图进行识别后,会得出多个识别结果。加权融合算法使用NMS和IOU合并计算实现,其原理与YOLO检测的NMS和IOU计算相近,详细识别过程如下:
3.1)多个切边图片识别结果的置信度和box合并;
3.2)把置信度最高的一个boundingbox(bbox)作为目标,然后对比剩下bbox与目标bbox之间的交叉区域;
3.3)如果交叉区域大于设定的阈值,那么在剩下的bbox中去除该bbox(即使该bbox的置信度与目标bbox的置信度一样)—-这个操作就是抑制最大重叠区域;
3.4)把第二置信度高的bbox作为目标,重复3.2)、3.3)。
通过这三个部分的相互协作,本发明能够在保持现有目标检测模型不变的情况下,有效地提高目标检测的准确性和效率。经对比,相同的yolo模型在切图前后的提升明显,对偏向、反光、倾斜的烟盒,有明显的识别提升。此外,本发明的架构具有较强的通用性,可广泛应用于不同类型的目标检测任务和场景。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (7)
1.一种基于自动切图算法的图像目标检测方法,其特征在于,主要步骤如下:
S1)考虑目标物体的尺寸和形状,图片切分器将要检测的目标照片进行切分,将其分割成多个小图像,并对切分后的小图像进行重叠;
配置图片切分器的参数,所述参数为切分高度、切分宽度、高度重叠率、宽度重叠率;切分流程步骤如下:
S11)计算图片y轴重叠像素数:将高度重叠率与切分高度相乘,然后取整数值;
S12)计算图片x轴重叠像素数:将宽度重叠率与切分宽度相乘,然后取整数值;
S13)初始化图片y轴最大像素值为0;
S14)进行行循环:当图片y轴最大像素值小于图片高度时,执行以下步骤:
A)将图片x轴最大像素值和图片x轴最小像素值都初始化为0;
B)计算图片y轴最大像素值:将图片y轴最小像素值与切分高度相加;
C)进行列循环:当图片x轴最大像素值小于图片宽度时,执行以下步骤:
i)计算图片x轴最大像素值:将图片x轴最小像素值与切分宽度相加;
ii)如果图片y轴最大像素值大于图片高度或图片x轴最大像素值大于图片宽度,则:
a)计算切分图片x轴最大值:取图片宽度和图片x轴最大像素值的最小值;
b)计算切分图片y轴最大值:取图片高度和图片y轴最大像素值的最小值;
c)计算切分图片x轴最小值:取0和切分图片x轴最大值减去切分宽度的最大值;
d)计算切分图片y轴最小值:取0和切分图片y轴最大值减去切分高度的最大值;
e)将切分区域的坐标(xmin,ymin,xmax,ymax)添加到切分列表中;
iii)如果图片y轴最大像素值小于图片高度或图片x轴最大像素值小于图片宽度,则:将切分区域的坐标(xmin,ymin,xmax,ymax)添加到切分列表中;
iv)为下一次切分更新图片x轴最小像素值:将图片x轴最大像素值减去图片x轴重叠像素;
v)为下一次切分更新图片y轴最小像素值:将图片y轴最大像素值减去图片y轴重叠像素;
S2)多线程并发检测装置通过将图片切分器生成的多个小图像分配给不同的线程或计算单元进行处理,实现并行计算;
S3)识别结果融合器,识别结果融合器将多线程并发检测装置得到的结果进行汇总和整合,识别结果融合器采用加权融合算法得出识别结果,具体如下:
S31)识别结果融合器采用加权融合算法对图片切分阶段存在的重叠区域的检测结果进行处理以避免目标物体的重复检测;
S32)识别结果融合器对多线程并发检测装置返回的检测结果的置信度进行权衡,确保整体的目标检测效果达到最优;
S33)最后,识别结果融合器将融合后的结果输出,完成整个目标检测过程。
2.根据权利要求1所述的一种基于自动切图算法的图像目标检测方法,其特征在于,多线程并发检测装置将YOLO模型转译为ONNX格式;转译后的ONNX模型使用JAVA ONNXruntime加载,使用多线程并发模型,对多张分片图片同时进行检测;具体如下:
首先,创建一个固定大小的线程池,大小根据需要加载的模型数量和可用的处理器核心来设定;然后对于每一个模型,创建一个实现Callable接口的类,该类负责加载和初始化ONNX模型;然后,将这些任务提交给ExecutorService执行,并等待所有任务完成;最后从Future对象中获取加载好的模型,返回检测结果。
3.根据权利要求2所述的一种基于自动切图算法的图像目标检测方法,其特征在于,多线程并发检测装置通过将图片切分器生成的多个小图像分配给不同的线程或计算单元进行处理,实现并行计算;具体步骤如下:
S21)准备环境:
a.安装ONNX运行时库;
b.下载并导入适当版本的YOLO ONNX模型;
c.添加所需的Java库,所述Java库为onnxruntime或其他图像处理库;
S22)加载YOLO ONNX模型:
a.创建一个类或方法,用于加载YOLO ONNX模型文件并初始化ONNX运行时会话;
S23)图像预处理:
a.从输入源读取图像;
b.将图像转换为YOLO模型所需的尺寸;
c.对图像进行归一化处理并准备输入张量;
S24)创建多线程任务:
a.根据需要创建线程池,用于并发执行目标检测任务;
b.将图像预处理任务分配给线程池中的工作线程;
S25)目标检测:
a.在每个工作线程中,将预处理后的图像张量输入YOLO模型;
b.解析模型输出,提取目标检测结果,包括边界框、置信度和类别;
S26)后处理:
a.应用非极大值抑制算法剔除重叠边界框和低置信度检测结果;
b.将检测结果转换回原始图像尺寸;
S27)显示或存储结果:
a.在原始图像上绘制边界框和类别标签;
b.将检测结果显示在屏幕上或将其存储到文件中;
S28)清理资源:
a.关闭ONNX运行时会话;
b.释放线程池资源。
4.根据权利要求1-3任一项所述的一种基于自动切图算法的图像目标检测方法,其特征在于,所述步骤S31)中:加权融合算法使用非极大值抑制算法和计算交并比实现;非极大值抑制算法筛选目标检测结果中的冗余检测框,保留最具代表性的检测结果,基本步骤如下:
a)根据检测框的置信度对候选框进行降序排列;
b)选择置信度最高的检测框作为参考框,将其与其他所有检测框计算交并比;
c)移除与参考框交并比大于阈值的其他检测框;
d)从剩余的检测框中,重复步骤b)-c),直到所有检测框都被处理。
5.根据权利要求4所述的一种基于自动切图算法的图像目标检测方法,其特征在于,所述交并比衡量两个矩形框重叠程度,评估预测的边界框与实际边界框的相似度,
IoU的计算公式为:
IoU=(A∩B)/(A∪B)
其中,A和B分别表示两个矩形框,A∩B表示两个矩形框的交集面积,A∪B表示两个矩形框的并集面积;IoU的取值范围为0到1。
6.根据权利要求1-5任一项所述的一种基于自动切图算法的图像目标检测方法,其特征在于,所述步骤S31)的详细识别过程如下:
3.1.1)多个切边图片识别结果的置信度和box合并;
3.1.2)把置信度最高的一个bbox作为目标,然后对比剩下bbox与目标bbox之间的交叉区域;
3.1.3)如果交叉区域大于设定的阈值,那么在剩下的bbox中去除该bbox以抑制最大重叠区域;
3.1.4)把第二置信度高的bbox作为目标,重复3.1.2)、3.1.3)。
7.根据权利要求6所述的一种基于自动切图算法的图像目标检测方法,其特征在于,所述多线程并发检测装置利用硬件资源获得最佳性能;所述硬件资源包括多核处理器、GPU;同时,对线程之间的同步和通信进行管理确保各个线程的检测结果汇总。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310637148.5A CN116664822B (zh) | 2023-06-01 | 2023-06-01 | 一种基于自动切图算法的图像目标检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310637148.5A CN116664822B (zh) | 2023-06-01 | 2023-06-01 | 一种基于自动切图算法的图像目标检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116664822A CN116664822A (zh) | 2023-08-29 |
CN116664822B true CN116664822B (zh) | 2024-07-05 |
Family
ID=87714790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310637148.5A Active CN116664822B (zh) | 2023-06-01 | 2023-06-01 | 一种基于自动切图算法的图像目标检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116664822B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116993730B (zh) * | 2023-09-26 | 2023-12-15 | 四川新视创伟超高清科技有限公司 | 一种基于8k图像的裂缝检测方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102163326A (zh) * | 2010-12-22 | 2011-08-24 | 武汉沃生科学技术研究中心有限公司 | 血管超声图像中颈动脉血管内中膜的计算机自动分割和厚度均匀度分析方法 |
CN112085010A (zh) * | 2020-10-28 | 2020-12-15 | 成都信息工程大学 | 一种基于图像识别的口罩检测和部署系统及方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107146280B (zh) * | 2017-05-09 | 2020-11-17 | 西安理工大学 | 一种基于切分的点云建筑物重建方法 |
US20220207742A1 (en) * | 2020-12-30 | 2022-06-30 | United Imaging Research Institute of Innovative Medical Equipment | Image segmentation method, device, equipment and storage medium |
CN113011409A (zh) * | 2021-04-02 | 2021-06-22 | 北京世纪好未来教育科技有限公司 | 一种图像识别方法、装置、电子设备及存储介质 |
KR102535054B1 (ko) * | 2021-09-07 | 2023-05-26 | 서울대학교산학협력단 | 패치기반의 딥러닝 알고리즘을 통한 실내도면 이미지에서의 실내공간정보 자동추출방법 및 그 장치 |
CN115861756A (zh) * | 2022-12-22 | 2023-03-28 | 西安工业大学 | 基于级联组合网络的大地背景小目标识别方法 |
-
2023
- 2023-06-01 CN CN202310637148.5A patent/CN116664822B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102163326A (zh) * | 2010-12-22 | 2011-08-24 | 武汉沃生科学技术研究中心有限公司 | 血管超声图像中颈动脉血管内中膜的计算机自动分割和厚度均匀度分析方法 |
CN112085010A (zh) * | 2020-10-28 | 2020-12-15 | 成都信息工程大学 | 一种基于图像识别的口罩检测和部署系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116664822A (zh) | 2023-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11455782B2 (en) | Target detection method and apparatus, training method, electronic device and medium | |
TWI773189B (zh) | 基於人工智慧的物體檢測方法、裝置、設備及儲存媒體 | |
US11380232B2 (en) | Display screen quality detection method, apparatus, electronic device and storage medium | |
CN108229343B (zh) | 目标对象关键点检测方法、深度学习神经网络及装置 | |
CN113158909B (zh) | 基于多目标跟踪的行为识别轻量化方法、系统、设备 | |
CN111054080B (zh) | 智能检测透视外挂方法、装置、设备及其存储介质 | |
US11354889B2 (en) | Image analysis and processing pipeline with real-time feedback and autocapture capabilities, and visualization and configuration system | |
CN116664822B (zh) | 一种基于自动切图算法的图像目标检测方法 | |
CN112598045A (zh) | 训练神经网络的方法、图像识别方法及图像识别装置 | |
CN111738243A (zh) | 人脸图像的选择方法、装置、设备及存储介质 | |
CN110287125A (zh) | 基于图像识别的软件例行化测试方法及装置 | |
CN114972958B (zh) | 关键点检测方法、神经网络的训练方法、装置和设备 | |
CN115861462B (zh) | 图像生成模型的训练方法、装置、电子设备及存储介质 | |
CN114743196A (zh) | 用于文本识别的神经网络及其训练方法、文本识别的方法 | |
CN113269737A (zh) | 一种眼底视网膜动静脉血管直径计算方法及系统 | |
US11948385B2 (en) | Zero-footprint image capture by mobile device | |
CN116702835A (zh) | 神经网络推理加速方法、目标检测方法、设备及存储介质 | |
CN116310993A (zh) | 目标检测方法、装置、设备及存储介质 | |
CN113705363B (zh) | 一种特定卫星上行信号的识别方法及系统 | |
CN113343997A (zh) | 光学字符识别方法、装置、电子设备和存储介质 | |
CN112861803A (zh) | 一种图像识别方法、装置、服务器以及计算机可读存储介质 | |
CN113221961A (zh) | 一种能够缓和表达瓶颈的目标果实检测方法及系统 | |
CN114998275A (zh) | 目标对象的状态识别方法和深度学习模型的训练方法 | |
Sörös | GPU-accelerated joint 1D and 2D barcode localization on smartphones | |
CN115660064B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |