CN116385530B - 一种基于物联网技术的河湖漂浮物目标识别方法 - Google Patents
一种基于物联网技术的河湖漂浮物目标识别方法 Download PDFInfo
- Publication number
- CN116385530B CN116385530B CN202310641984.0A CN202310641984A CN116385530B CN 116385530 B CN116385530 B CN 116385530B CN 202310641984 A CN202310641984 A CN 202310641984A CN 116385530 B CN116385530 B CN 116385530B
- Authority
- CN
- China
- Prior art keywords
- loss
- predefined
- cameras
- target
- river
- 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
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000005516 engineering process Methods 0.000 title claims abstract description 21
- 238000001514 detection method Methods 0.000 claims abstract description 58
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims abstract description 53
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 50
- 208000034699 Vitreous floaters Diseases 0.000 claims abstract description 35
- 238000012544 monitoring process Methods 0.000 claims abstract description 28
- 238000000691 measurement method Methods 0.000 claims abstract description 14
- 238000012216 screening Methods 0.000 claims abstract description 14
- 230000008859 change Effects 0.000 claims abstract description 12
- 230000008569 process Effects 0.000 claims description 22
- 238000012549 training Methods 0.000 claims description 19
- 239000013598 vector Substances 0.000 claims description 19
- 238000004458 analytical method Methods 0.000 claims description 13
- 230000004807 localization Effects 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 10
- 238000013528 artificial neural network Methods 0.000 claims description 9
- 238000009826 distribution Methods 0.000 claims description 8
- 230000000877 morphologic effect Effects 0.000 claims description 8
- 238000005457 optimization Methods 0.000 claims description 8
- 230000011218 segmentation Effects 0.000 claims description 5
- 230000000007 visual effect Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 30
- 239000011159 matrix material Substances 0.000 description 17
- 230000001629 suppression Effects 0.000 description 9
- 230000007797 corrosion Effects 0.000 description 8
- 238000005260 corrosion Methods 0.000 description 8
- 238000000605 extraction Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 238000005530 etching Methods 0.000 description 7
- 238000003860 storage Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000004927 fusion Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000010339 dilation Effects 0.000 description 3
- 230000003628 erosive effect Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000010845 search algorithm Methods 0.000 description 2
- 240000003826 Eichhornia crassipes Species 0.000 description 1
- 241000196324 Embryophyta Species 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000001932 seasonal effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C11/00—Photogrammetry or videogrammetry, e.g. stereogrammetry; Photographic surveying
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C13/00—Surveying specially adapted to open water, e.g. sea, lake, river or canal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- 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/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
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/95—Hardware or software architectures specially adapted for image or video understanding structured as a network, e.g. client-server architectures
-
- 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
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A90/00—Technologies having an indirect contribution to adaptation to climate change
- Y02A90/30—Assessment of water resources
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Remote Sensing (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Radar, Positioning & Navigation (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Hydrology & Water Resources (AREA)
- Traffic Control Systems (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于物联网技术的河湖漂浮物目标识别方法,所述方法包括:在每个摄像头上部署初筛小目标的经过信任度权重调整后的SSD算法,当摄像头检测到小目标时将检测结果上报给边缘服务器;在边缘服务器上部署根据多个摄像头的采集图像结合判断小目标类型和位置的模型,结合不同摄像头的采集图像进行小目标判断,以及利用多角测量法计算当前小目标所在的位置;边缘服务器将计算的小目标的位置信息和水流速度信息上报至监控平台;所述监控平台预测小目标的位置变化趋势,并可视化显示;通过本发明的方法为实时、高效的河湖漂浮物监控提供了一种可行的解决方案。
Description
技术领域
本发明属于物联网技术领域,尤其涉及一种基于物联网技术的河湖漂浮物目标识别方法。
背景技术
河湖漂浮物主要包括生活垃圾、树叶、水草、水葫芦等,对水质造成严重影响。因此,对河湖漂浮物进行实时监测和清理至关重要。传统的河湖漂浮物监测方式通常依赖人工巡查,效率低且易受环境和人为因素影响。近年来,物联网技术的发展为河湖漂浮物的自动化监测提供了新的解决方案。通过部署摄像头对河湖进行实时监测,可以大大提高监测效率,降低人工成本。近年来,随着物联网技术和计算机视觉技术的迅猛发展,摄像头监控系统在各个领域得到了广泛应用。然而,在河湖漂浮物目标识别方面,现有的技术仍存在一定的局限性。例如,一些基于传统图像处理技术的方法在复杂环境下可能难以准确识别小目标,容易受到光照、水波等干扰。此外,由于河湖环境中漂浮物的分布范围较广,仅依靠单个摄像头的监测结果可能无法准确地确定漂浮物的具体位置和类型。另一方面,实时处理多摄像头采集的大量图像数据对计算资源的要求较高,可能导致监控系统的性能瓶颈。因此,研究一种基于物联网技术的河湖漂浮物目标识别方法显得尤为重要。
发明内容
针对上述背景技术中存在的缺陷,本发明提供一种基于物联网技术的河湖漂浮物目标识别方法,所述方法包括:在每个摄像头上部署初筛小目标的单激发多框探测器SSD算法,所述SSD算法是经过信任度权重调整后的SSD算法,根据所述算法将对摄像头采集的图像进行小目标检测,当所述摄像头检测到小目标时将检测结果上报给边缘服务器;在边缘服务器上部署根据多个摄像头的采集图像结合判断小目标类型和位置的模型,当所述边缘服务器接收到摄像头上报的检测到小目标的检测结果时,调用所述摄像头所在区域的多个摄像头的采集图像,结合不同摄像头的采集图像进行小目标判断;以及,所述边缘服务器判断存在小目标时,根据多个摄像头对采集图像的检测结果,利用多角测量法计算当前小目标所在的位置;所述边缘服务器将计算的小目标的位置信息和水流传感器检测的河湖断面的水流速度上报至监控平台;所述监控平台结合水流速度数据动态跟踪算法预测小目标的位置变化趋势,将小目标的检测结果、位置信息和预测结果可视化显示。
所述经过信任度权重调整后的SSD算法,在训练阶段中,根据分配的类别标签和边界框偏移量,计算每个预定义框的分类损失和定位损失,将损失乘以对应的信任度权重,得到了调整后的分类损失和定位损失,将这两个损失相加得到总损失 Total Loss',使用优化算法来最小化 Total Loss',所述优化算法根据损失函数关于模型参数的梯度来更新模型参数。
其中,所述优化算法包括随机梯度下降算法;其中,对于每个预定义框,计算其分类损失,然后将每个预定义框的分类损失乘以对应的信任度权重,该过程通过以下公式实现:Confidence Loss' = ∑ [W_i * CrossEntropyLoss(c_i, c_i^*)]。
其中:i为预定义框的索引,用于遍历所有预定义框;c_i为预测类别概率,表示模型为预定义框 i 预测的类别概率分布;c_i^*为真实类别概率,表示预定义框 i 对应的真实类别概率分布;W_i为预定义框 i 的信任度权重,表示对预定义框 i 预测的类别概率的信任程度;CrossEntropyLoss(c_i, c_i^*)为交叉熵损失,用于计算预测类别概率与真实类别概率之间的损失;Confidence Loss'为加权后的分类损失,通过将每个预定义框的分类损失乘以对应的信任度权重计算得到。
其中,对于每个预定义框,计算其定位损失,然后将每个预定义框的定位损失乘以对应的信任度权重,该过程通过以下公式实现:Localization Loss' = ∑ [W_i *SmoothL1Loss(l_i, l_i^*)]。
其中:i为预定义框的索引,用于遍历所有预定义框;l_i为预测框的坐标,表示模型为预定义框 i 预测的边界框坐标;l_i^*为真实框的坐标,表示预定义框 i 对应的真实边界框坐标;W_i为预定义框 i 的信任度权重,表示对预定义框 i 预测的边界框坐标的信任程度;SmoothL1Loss(l_i, l_i^*)为Smooth L1 损失,用于计算预测边界框坐标与真实边界框坐标之间的损失;Localization Loss'为加权后的定位损失,通过将每个预定义框的定位损失乘以对应的信任度权重计算得到;最后,将调整后的分类损失和定位损失相加,得到总损失Total Loss', Total Loss' = Confidence Loss' + Localization Loss'。
其中,将所述摄像头的采集图像分割成多个区域,根据区域距离图像中心的远近来设置信任度值;其中,最中心的区域分配最高的信任度值,最外圈区域分配最低的信任度值。
其中,训练阶段中,为每个预定义框分配与之最匹配的真实边界框,包括:计算预定义框与真实边界框之间的重叠程度IoU。IoU = (预定义框 ∩ 真实边界框) / (预定义框 ∪ 真实边界框) 。IoU 的值在 0 到 1 之间,值越大表示重叠程度越高。
设定一个 IoU 阈值,当 IoU 大于阈值时,预定义框与真实边界框之间存在匹配关系。在为预定义框分配真实边界框之后,为每个预定义框分配一个类别标签,类别标签是与之匹配的真实边界框的类别。
其中,所述经过信任度权重调整后的SSD算法,在推理阶段中,根据分类和回归的结果筛选出具有较高置信度的目标边界框,返回筛选和优化后的目标边界框,以及对应的类别标签和置信度分数。
当摄像头使用经过信任度调整的SSD算法检测到置信度高于阈值的边界框时,初筛表明该摄像头采集图像对应的区域内存在小目标。
其中,当所述边缘服务器接收到摄像头上报的检测到小目标的检测结果时,调用所述摄像头所在区域的多个摄像头的采集图像后,将多个摄像头的采集图像合成为标准图像。
其中,所述边缘服务器对合成的标准图像进行分析,以确定小目标的数量,包括:使用神经网络对标准图像进行判断是否存在小目标。使用阈值分割法对标准图像进行处理,将标准图像转换为二值图像。使用应用形态学操作消除噪声并分离相邻目标,所述形态学操作包括开运算和闭运算。使用连通组件分析确定目标数量。
其中,所述边缘服务器存储有多个摄像头的角度、焦距和河面高度,使用多角测量法计算小目标在的位置。其中,根据摄像头的角度、焦距,确定每个摄像头的视场角。使用融合后的图像中目标的像素坐标,结合摄像头的视场角和焦距,计算小目标在每个摄像头的视线方向上的距离。
利用多个摄像头的视线距离和摄像头位置信息,使用多角测量法求解小目标的位置坐标;其中,利用多个摄像头的角度、焦距和河面高度,使用多角测量法计算小目标的位置中,多个摄像头分别位于水面的不同位置且均正对水面;根据已知的摄像头的视野角、分辨率、摄像头与水面的高度,以及从目标检测算法获取目标在图像中的垂直坐标和图像高度来计算每个摄像头观测到小目标的水平距离,将多个摄像头观测到的距离构成向量;最后通过最小二乘法求解参数向量P,其中P为小目标的空间坐标,从而计算小目标的位置坐标。
其中,所述监控平台根据流速传感器提供的数据包括水流速度和河道走向,基于解析接收到的小目标位置、检测时间、计算小目标的预测位置坐标。
本发明提出了一种基于物联网技术的河湖漂浮物目标识别方法。该方法采用信任度权重调整后的SSD算法对摄像头采集的图像进行小目标检测,有效提高了目标识别的准确性。同时,通过在边缘服务器上部署多摄像头采集图像结合判断小目标类型和位置的模型,实现了对漂浮物的精确定位和分类。此外,监控平台利用水流传感器数据和动态跟踪算法对漂浮物的位置变化趋势进行预测,为河湖漂浮物的监控和管理提供了有力支持。
在物联网技术的支持下,可以将基于摄像头的河湖漂浮物监测与边缘计算和云计算相结合,以提高检测效率和精度。通过在摄像头上部署经过基于摄像头聚焦区域的信任度权重调整的SSD算法,可实现对河湖漂浮物的初步筛选。当摄像头检测到漂浮物时,将检测结果上报至边缘服务器。边缘服务器可以根据多个摄像头采集的图像,结合不同摄像头的采集图像进行小目标判断。此外,边缘服务器还可利用多角测量法,根据多个摄像头采集的图像计算漂浮物的实际位置。结合水流传感器检测的河湖断面水流速度,监控平台可以通过动态跟踪算法预测漂浮物的位置变化趋势。最终,监控平台将漂浮物的检测结果、位置信息和预测结果进行可视化显示,为河河湖漂浮物的监控与管理对于保护水资源、维护生态环境具有重要意义。
通过本发明的方法有效解决了传统技术在河湖漂浮物目标识别方面的局限性,为实时、高效的河湖漂浮物监控提供了一种可行的解决方案。
附图说明
图1:根据本发明实施例的基于物联网技术的河湖漂浮物目标识别方法的流程图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
如图1所示,本发明公开了一种基于物联网技术的河湖漂浮物目标识别方法,所述方法包括:在每个摄像头上部署初筛小目标的SSD算法,所述SSD算法经过信任度权重调整后的SSD算法,根据所述算法将对摄像头采集的图像进行小目标检测,当所述摄像头检测到小目标时将检测结果上报给边缘服务器。
在边缘服务器上部署根据多个摄像头的采集图像结合判断小目标类型和位置的模型,当所述边缘服务器接收到摄像头上报的检测到小目标的检测结果时,调用所述摄像头所在区域的多个摄像头的采集图像,结合不同摄像头的采集图像进行小目标判断。
以及,所述边缘服务器判断存在小目标时,根据多个摄像头对采集图像的检测结果,利用多角测量法计算当前小目标所在的位置。
所述边缘服务器将计算的小目标的位置信息和水流传感器检测的河湖断面的水流速度上报至监控平台。
所述监控平台结合水流速度数据动态跟踪算法预测小目标的位置变化趋势,将小目标的检测结果、位置信息和预测结果可视化显示。
本发明提出一种基于物联网技术的河湖漂浮物目标识别方法,具体有如下几个关键动作。
摄像头参数记录与区域评估:记录每个摄像头的参数,如焦距、视场角等。根据这些参数,为摄像头采集的图像中的每个区域分配一个信任度值。区域信任度值较高的认为更可能包含准确的小目标检测结果。
初筛小目标检测与信任度融合:在每个摄像头上部署初筛小目标的SSD算法,所述SSD算法经过信任度权重调整后的SSD算法,根据所述算法将对摄像头采集的图像进行小目标检测,并输出检测结果,当所述摄像头检测到小目标时将检测结果上报给边缘服务器。
边缘服务器融合判断:在边缘服务器上部署根据多个摄像头的采集图像结合判断小目标类型和位置的模型,当所述边缘服务器接收到摄像头上报的检测到小目标的检测结果时,调用所述摄像头所在区域的多个摄像头的采集图像,结合不同摄像头的采集图像进行小目标判断。
位置计算:根据多个摄像头对采集图像的检测结果,利用多角测量法计算当前较多小目标所在的位置。
水流速度预测:安装水流传感器检测河湖断面的水流速度。结合水流速度数据动态跟踪算法预测小目标的位置变化趋势。
实时监控:将检测结果、位置信息和预测结果可视化显示。
通过以上步骤和算法,可以实现对河湖漂浮物小目标的准确判断、位置计算以及预测,为解决水生态问题提供技术支持。
预定义框也称之为锚点,它们在多尺度特征图上的每个位置生成,为更详细描述本实施例,预定义框也用锚点等同表示。
SSD(Single Shot MultiBox Detector,单激发多框探测器)网络是一种物体检测方法,它通过在多尺度特征图上生成预定义框(即锚点)来进行特征提取。在训练过程中,SSD网络通过最小化损失函数来学习如何优化预定义框与实际物体边界框之间的偏移和尺寸变化。
特征提取阶段中,SSD网络会在多尺度特征图上生成预定义框,并与实际物体边界框进行匹配,以便训练网络进行物体检测。预定义框(锚点)和实际物体边界框之间的关系在于,预定义框用于预测物体的边界框,而实际物体边界框是真实的目标值。通过学习这种关系,SSD网络能够在测试阶段根据输入图像预测物体的位置和类别。
本发明的经过信任度权重调整的SSD算法与经典的SSD算法相比,对损失函数对信任度权重进行了调整,使模型在训练过程中更关注信任度较高的区域。以下是整个过程的概述。
将信任度权重整合到损失函数后的 SSD 算法的完整过程可以分为训练阶段和推理阶段。
(一)训练阶段。
1. 预处理:将输入图像进行预处理(例如,缩放、裁剪、翻转等),以增加训练数据的多样性并提高模型泛化能力。
2. 特征提取:将预处理过的图像传入 SSD 网络。网络会自动提取多尺度的特征图,并在每个特征图上生成预定义框(锚点)。
3. 匹配真实边界框:为每个预定义框分配与之最匹配的真实边界框(groundtruth),根据重叠程度(IoU)来确定匹配。为每个预定义框分配一个类别标签和一个边界框偏移量。
4. 计算损失:根据分配的类别标签和边界框偏移量,计算每个预定义框的分类损失和定位损失。然后,将损失乘以对应的信任度权重。这样就得到了调整后的分类损失和定位损失。将这两个损失相加,得到总损失 Total Loss'。
5. 模型优化:使用优化算法(如随机梯度下降、Adam 等)来最小化 Total Loss'。优化算法根据损失函数关于模型参数的梯度来更新模型参数。
6. 重复:迭代进行上述过程,直到达到设定的训练轮数或满足其他停止条件。
(二)推理阶段。
1. 预处理:将输入图像进行与训练阶段相同的预处理操作。
2. 特征提取:将预处理过的图像传入训练好的 SSD 网络,生成多尺度特征图并生成预定义框。
3. 分类和回归:在每个预定义框上执行分类操作,预测目标的类别概率分布。同时,在每个预定义框上执行回归操作,预测边界框的偏移量和尺寸变化。
4. 非极大值抑制(NMS):根据分类和回归的结果,筛选出具有较高置信度的目标边界框。使用非极大值抑制来去除重叠的预测结果,只保留最有可能的目标框。
5. 输出结果:返回筛选和优化后的目标边界框,以及对应的类别标签和置信度分数。
在训练阶段,需要根据锚点的位置调整损失函数中的信任度权重。具体来说,在计算分类损失和定位损失时,将每个锚点的损失值乘以对应的信任度权重。这样,信任度权重会影响模型在训练过程中对每个锚点的关注程度。
在推理阶段,信任度权重整合到损失函数的影响已经体现在训练好的模型参数中。因此,在推理阶段不需要显式地使用信任度权重。当使用训练好的模型对输入图像进行预测时,模型会自动在不同尺度上执行分类和回归操作,并输出边界框和置信度。然后,根据非极大值抑制和置信度阈值筛选,得到最终的检测结果。
在经过以上步骤后,将获得可信度调整后的SSD算法对小目标的初筛结果。这些结果相对于原始SSD算法更关注信任度较高的区域,从而提高模型在这些区域内检测小目标的能力。
当摄像头使用经过信任度调整的SSD算法检测到置信度高于阈值的边界框时,可以确定该区域内存在小目标。
在某一实施例中,假设摄像头采集图像的像素为1000*1000pixel,将所述图像进行分隔形成25区域,每个区域为20*20pixel,以这个为例对经过信任度权重调整的损失函数进行具体说明。
锚点(anchor)是一种预定义的边界框,它们在多尺度特征图上的每个位置生成。这些锚点的尺寸和宽高比根据实际问题和数据集进行预先定义。在物体检测任务中,锚点用于预测边界框,通过计算锚点与真实边界框之间的偏移和尺寸变化,可以得到边界框预测。
假设的SSD模型有5个特征图,像素尺寸分别为 250x250、125x125、63x63、32x32和 16x16。在每个特征图上,为每个像素生成3个宽高比的预定义框。
那么,每个特征图上的锚点数量分别为:1. 250x250: 250 * 250 * 3 = 187500;2. 125x125: 125 * 125 * 3 = 46875;3. 63x63: 63 * 63 * 3 = 11907;4. 32x32: 32* 32 * 3 = 3072;5. 16x16: 16 * 16 * 3 = 768 。
将所有特征图上的锚点数量相加,得到的锚点总数为:187500 + 46875 + 11907+ 3072 + 768 = 253122。
在选择5个特征图时,1000x1000像素的图像上会有253122个锚点。
也可以根据摄像头的计算能力和安装位置,选择其他合理的特征图尺寸,如只选择4和5对应的特征图尺寸进行小目标检测以减小设备计算压力。
在整个 1000x1000 像素的图像上生成锚点后,假设共有 N 个锚点。接下来,需要为每个生成的锚点分配一个信任度权重。
1. 首先,为每个 20x20 像素的区域分配一个信任度值。可以根据区域距离图像中心的远近来设置信任度值。例如,对于25个分割区域(共3层),可以为最中心的一个区域分配最高的信任度值(如 1.0),最外圈区域分配最低的信任度值(如 0.5),中间圈对应的区域分配中间的信任度值(如0.75)。
2. 然后,根据锚点的坐标判断其所在的 20x20 像素区域。例如,一个锚点的坐标是 (x, y),那么它所在的区域是 (x // 20, y // 20)。
3. 最后,为每个锚点分配信任度权重。可以创建一个大小为 N 的数组 W,其中W_i 是锚点 i 的信任度权重。根据锚点所在的 20x20 像素区域,将相应的信任度值分配给 W_i。
这样,就为每个锚点分配了一个信任度权重。W 的尺寸为 N,与锚点的个数相同。然后,可以将信任度权重整合到损失函数中。
下面是将信任度权重整合到损失函数中的方法。
首先,获取为每个锚点分配的信任度权重矩阵,称为信任度矩阵 W。W 的尺寸与锚点数相同。
接下来,需要将信任度权重整合到损失函数中。为了达到这个目的,可以分别调整分类损失(Confidence Loss)和定位损失(Localization Loss)。在计算每个预定义框(锚点)的分类损失和定位损失之前,需要将数据集中的真实边界框分配给预定义框。这通常是基于它们之间的重叠程度(IoU, Intersection over Union)来完成的。一旦分配完成,可以使用以下方法计算每个预定义框的分类损失和定位损失。
1. 分类损失:对于每个锚点,计算其分类损失(例如,使用交叉熵损失)。然后,将每个锚点的分类损失乘以对应的信任度权重。可以通过以下公式表示:Confidence Loss'= ∑ [W_i * CrossEntropyLoss(c_i, c_i^*)]。
其中,i:锚点(预定义框)的索引,用于遍历所有锚点。c_i:预测类别概率,表示模型为锚点 i 预测的类别概率分布。c_i^*:真实类别概率,表示锚点 i 对应的真实类别概率分布(通常是一个 one-hot 向量)。W_i:锚点 i 的信任度权重,表示对锚点 i 预测的类别概率的信任程度。CrossEntropyLoss(c_i, c_i^*):交叉熵损失,用于计算预测类别概率与真实类别概率之间的损失。Confidence Loss':加权后的分类损失,通过将每个锚点的分类损失乘以对应的信任度权重计算得到。
2. 定位损失:对于每个锚点,计算其定位损失(例如,使用 Smooth L1 损失)。然后,将每个锚点的定位损失乘以对应的信任度权重。可以通过以下公式表示:LocalizationLoss' = ∑ [W_i * SmoothL1Loss(l_i, l_i^*)]。
其中,i:锚点(预定义框)的索引,用于遍历所有锚点。l_i:预测框的坐标,表示模型为锚点 i 预测的边界框坐标(通常包括中心点坐标、宽度和高度)。l_i^*:真实框的坐标,表示锚点 i 对应的真实边界框坐标(通常包括中心点坐标、宽度和高度)。W_i:锚点 i的信任度权重,表示对锚点 i 预测的边界框坐标的信任程度。
SmoothL1Loss(l_i, l_i^*):Smooth L1 损失,用于计算预测边界框坐标与真实边界框坐标之间的损失。
Localization Loss':加权后的定位损失,通过将每个锚点的定位损失乘以对应的信任度权重计算得到。
最后,将调整后的分类损失和定位损失相加,得到总损失Total Loss', TotalLoss' = Confidence Loss' + Localization Loss'。
这种方法可以确保损失函数根据锚点位置调整信任度权重,而不会影响到算法的其他部分。这两个损失函数的加权和 (Total Loss') 用于评估模型在分类和定位任务上的性能。通过最小化 Total Loss',可以优化模型的参数并提高检测性能。
在计算了每个预定义框的分类损失和定位损失后,可以将这些损失与信任度权重结合,然后对所有预定义框进行求和,以得到总分类损失和总定位损失。接下来,将这两个损失相加,得到总损失(Total Loss'),这是模型训练期间需要优化的目标。通过最小化总损失,模型可以在分类和定位任务上取得更好的性能。
在某一实施例中,在匹配过程中,为每个预定义框分配了一个类别标签和一个边界框偏移量。这些信息将用于计算损失函数并优化模型。
在目标检测任务中,训练过程的一个重要步骤是为每个预定义框(也称为锚点)分配与之最匹配的真实边界框(ground truth)。这个过程通常称为“匹配”。
首先,需要计算预定义框与真实边界框之间的重叠程度,这通常使用 IoU(Intersection over Union)指标来衡量。IoU 的计算公式为,IoU = (预定义框 ∩ 真实边界框) / (预定义框 ∪ 真实边界框) 。
IoU 的值在 0 到 1 之间,值越大表示重叠程度越高。为了为每个预定义框分配与之最匹配的真实边界框,需要找到使 IoU 最大的那个真实边界框。通常,在这个过程中,也会设定一个 IoU 阈值(如 0.5),只有当 IoU 大于阈值时,才认为预定义框与真实边界框之间存在匹配关系。
在为预定义框分配真实边界框之后,需要为每个预定义框分配一个类别标签。类别标签就是与之匹配的真实边界框的类别。如果预定义框没有与任何真实边界框匹配(即IoU 都低于阈值),则为其分配一个“背景”类别(通常用 0 表示)。
此外,还需要计算预定义框与真实边界框之间的边界框偏移量。偏移量是一个四维向量,表示预定义框的坐标与真实边界框的坐标之间的差异。
边界框偏移量通常用以下公式表示:Δx = (x_gt - x_anchor) / w_anchor;Δy= (y_gt - y_anchor) / h_anchor;Δw = log(w_gt / w_anchor) ;Δh = log(h_gt /h_anchor) 。
其中,(x_anchor, y_anchor) 和 (w_anchor, h_anchor) 分别表示预定义框的中心坐标和宽高,(x_gt, y_gt) 和 (w_gt, h_gt) 分别表示真实边界框的中心坐标和宽高。通过这种方式计算的偏移量可以更容易地让模型学习预测边界框的位置。
在某一实施例中,选择一个深度学习框架,例如 TensorFlow、PyTorch 或 Keras。这些框架提供了丰富的工具和 API接口,可以方便地搭建、训练和优化神经网络模型。下面以 PyTorch 为例,简要描述如何实现过程:准备数据集:将图像和标注数据整理成适合框架处理的格式。在 PyTorch 中,可以通过创建一个自定义 Dataset 类。创建模型:根据SSD 的网络结构定义一个 PyTorch模型的类。在类的方法中,实现特征提取、预定义框生成、分类和回归操作。定义损失函数:实现一个函数或类,根据输入的预测结果和实际标签计算 Total Loss'。确保在计算过程中考虑信任度权重。选择优化器:实例化一个优化器对象,如 SGD优化器函数或 Adam优化器函数。将模型的参数和学习率等超参数传递给优化器。训练循环:遍历数据集,对每个批次的图像执行以下操作: a. 将图像输入模型,获取预测结果。 b. 使用损失函数计算 Total Loss'。 c. 清空优化器的梯度缓存。 d. 使用 损失计算函数计算 Total Loss' 关于模型参数的梯度。 e. 使用优化器的 step() 方法更新模型参数。重复上述步骤,直到达到预设的训练轮数或满足其他停止条件。保存模型:将训练好的模型参数保存到磁盘,以便以后进行推理或继续训练。
在某一实施例中,利用已经训练好的SSD模型实现推理过程,以Python中的库函数为例进行说明:预处理:对输入图像执行预处理操作。这通常包括缩放、裁剪和归一化等操作。预处理操作需要与训练过程中使用的相同。使用函数实现缩放、裁剪和归一化操作。特征提取:将预处理过的图像传入训练好的 SSD 网络。网络将自动提取多尺度特征图并生成预定义框。使用特征提取函数实现使用训练好的 SSD 网络提取特征。 分类和回归:在每个预定义框上执行分类操作,预测目标的类别概率分布。同时,在每个预定义框上执行回归操作,预测边界框的偏移量和尺寸变化。使用分类和回归函数实现使用 SSD 网络在预定义框上执行分类和回归操作 ,返回分类和偏移结果。非极大值抑制(NMS):根据分类和回归的结果,筛选出具有较高置信度的目标边界框。使用非极大值抑制来去除重叠的预测结果,只保留最有可能的目标框。使用nms函数实现应用非极大值抑制,返回筛选后的边界框、类别标签和置信度分数,返回滤波结果、分类结果和可信度评分结果。输出结果:将筛选和优化后的目标边界框、类别标签和置信度分数返回给调用者。
在某一实施例中,在边缘服务器上部署根据多个摄像头的采集图像结合判断小目标类型和位置的模型。其中,调用所在区域的多个摄像头的采集图像后,需要将多个摄像头的采集图像合成为标准图像。
在某一实施例中,将多个摄像头的采集图像合成为标准图像,可以采用以下步骤。
步骤s1、对于每个摄像头采集的图像,使用相应的可信度值作为权重,对图像进行去噪处理。可以使用加权平均的方式,结合区域可信度权重和图像像素值,计算新的像素值。这将有助于减轻噪声影响,并突出可信度较高的区域。
步骤s2、对于每个摄像头采集的图像,将疑似小目标周围的区域裁剪出来。这个裁剪区域的大小应大于疑似小目标的预期尺寸,以便在后续处理中进行对齐和融合。
步骤s3、对裁剪出的图像进行几何变换,以便疑似小目标在所有图像中具有相同的比例尺。这可能需要利用摄像头参数(例如焦距、位置和方向)以及小目标的位置估计来计算透视变换矩阵。应用透视变换矩阵后,所有图像中的疑似小目标将具有相同的比例尺。
步骤s4、这可能需要计算每个图像的平移向量,然后将图像移动到合适的位置。
步骤s5、对齐后的图像进行融合。这可以通过使用加权平均的方式,根据每个像素的可信度值对应的权重,对每个图像的像素值进行加权求和。这将有助于将来自不同摄像头的信息整合到一个标准图像中。
步骤s6、对合成的标准图像进行分析,以确定小目标的数量。
通过这些步骤,可以实现一个标准图像,该图像满足疑似小目标在中心区域、比例尺相同的要求,并考虑了不同摄像头采集图像的可信度。这将有助于提高小目标检测的准确性和可靠性。
对于步骤s1,使用可信度值对图像进行去噪处理。而在步骤s5,使用可信度值对齐后的图像进行融合。实际上,这两个步骤中所使用的可信度值可以不同。
在步骤s1,关注的是摄像头采集的原始图像中的噪声。此时可以使用一个基于摄像头参数、图像质量等因素计算出的可信度值。这将有助于在去噪过程中更关注摄像头采集质量较高的区域。在步骤s5,关注的是对齐后的裁剪图像的融合。此时可以使用一个基于疑似小目标检测结果的置信度、摄像头参数、图像质量等因素计算出的可信度值。这将有助于在融合过程中更关注来自检测结果置信度较高的摄像头的信息。
在某一实施例中,对于步骤s6种使用神经网络确定融合后的图像中是否存在小目标,以及使用阈值分析确定小目标的数量,可以按照以下步骤进行操作。
步骤k1,神经网络判断是否存在小目标: 使用预先训练好的神经网络(例如CNN)对融合后的图像进行分析。神经网络的输出可以是一个二分类结果,表示图像中是否存在小目标。
步骤k2,阈值分析: 如果神经网络判断图像中存在小目标,可以使用阈值分割法对融合后的图像进行处理。根据图像的特点选择合适的阈值,将图像转换为二值图像。
步骤k3,应用形态学操作(如开运算和闭运算)消除噪声并分离相邻目标。
步骤k4,使用连通组件分析确定目标数量。
步骤k5,计算小目标位置: 已知多个摄像头的角度、焦距和河面高度,可以使用多角测量法计算小目标在的位置。具体步骤如下: a. 首先,根据摄像头参数计算每个摄像头的视场角。 b. 使用融合后的图像中目标的像素坐标,结合摄像头的视场角和焦距,计算目标在每个摄像头的视线方向上的距离。 c. 利用多个摄像头的视线距离和摄像头位置信息,使用多角测量法求解目标的坐标,由于对河湖面高度的信息并不敏感,所以空间坐标可以只关注对(x,y)的二维坐标的求解,对于高度z的信息可以默认为河湖面当前高度。
在某一实施例中,假设有一个融合后的图像,神经网络已经确定其中存在小目标。现在将使用阈值分析来确定小目标的数量。以灰度图像为例,可以按照以下步骤进行操作。
步骤r1,阈值分割: 根据图像的特点,选择一个合适的阈值 T。将图像中的每个像素与阈值 T 进行比较。如果像素值大于 T,则将其设置为 1(白色),否则将其设置为 0(黑色)。这将得到一个二值图像。二值图像 B(x, y) = {1, if I(x, y)>T; 0, otherwise},其中,I(x, y) 是原始图像中的像素值,B(x, y) 是二值图像中的像素值。
步骤r2,形态学操作: 对二值图像应用形态学操作,如开运算和闭运算,以消除噪声并分离相邻目标。
a. 开运算:先进行腐蚀操作,再进行膨胀操作。 腐蚀操作:B_erode(x, y) = min(B(x+k, y+l)) 膨胀操作:B_dilate(x, y) = max(B_erode(x-k, y-l))。
b. 闭运算:先进行膨胀操作,再进行腐蚀操作。 膨胀操作:B_dilate(x, y) =max(B(x+k, y+l)) 腐蚀操作:B_erode(x, y) = min(B_dilate(x-k, y-l))。
其中,k 和 l 是结构元素的偏移量。结构元素的大小和形状取决于具体实现。
步骤r3,连通组件分析: 使用连通组件分析来确定目标数量。在二值图像中,找到所有相互连接的白色像素区域,然后为每个区域分配一个唯一的标签。可以使用例如二值图像的 4-邻域或 8-邻域连通性的搜索算法。
具体步骤如下: a. 初始化标签为 1。 b. 遍历二值图像中的所有像素。对于每个像素,如果其值为 1(白色),检查其邻居像素(例如,上、左邻居像素)。如果邻居像素也是白色,则将当前像素的标签设置为与邻居像素相同的标签。如果邻居像素都是黑色,则将当前像素的标签设置为新的标签,并将标签值加 1。 c. 完成遍历后,统计具有不同标签的区域数量,即为目标数量。
在某一实施例中,假设有一个1000x1000像素的融合后的图像,神经网络已经确定其中存在小目标。现在,将使用阈值分析来确定小目标的数量。以下是具体的步骤和数值建议。
步骤r1,阈值分割: 选择一个合适的阈值 T。这可以通过直方图分析或 Otsu 方法来确定。例如,假设选择 T = 128。将1000x1000像素图像中的每个像素与阈值 T 进行比较。如果像素值大于 T,则将其设置为 1(白色),否则将其设置为 0(黑色)。这将得到一个二值图像。
二值图像 B(x, y) = {1, if I(x, y)>T; 0, otherwise}。其中,I(x, y) 是原始图像中的像素值,B(x, y) 是二值图像中的像素值。
步骤r2,形态学操作: 对二值图像应用形态学操作,如开运算和闭运算,以消除噪声并分离相邻目标。
a. 开运算:先进行腐蚀操作,再进行膨胀操作。选择一个结构元素(例如,3x3的矩形结构元素)。腐蚀操作:B_erode(x, y) = min(B(x+k, y+l)) 膨胀操作:B_dilate(x, y)= max(B_erode(x-k, y-l))。
b. 闭运算:先进行膨胀操作,再进行腐蚀操作。选择一个结构元素(例如,3x3的矩形结构元素)。膨胀操作:B_dilate(x, y) = max(B(x+k, y+l)) 腐蚀操作:B_erode(x, y)= min(B_dilate(x-k, y-l))。
其中,B(x, y) 是输入图像中坐标为 (x, y) 的像素值。B_erode(x, y) 是腐蚀操作后图像中坐标为 (x, y) 的像素值。B_dilate(x, y) 是膨胀操作后图像中坐标为(x, y) 的像素值。k 和 l 是结构元素的偏移量,它们定义了邻域的范围。
max(B(x+k, y+l)) 表示在输入图像 B 中以 (x, y) 为中心的邻域内,找到所有像素值中的最大值。具体来说,k 和 l 是结构元素的偏移量,它们定义了邻域的范围。例如,对于一个 3x3 的矩形结构元素,k 和 l 的取值范围分别为 -1, 0, 1。在膨胀操作中,将以 (x, y) 为中心的 3x3 区域内的最大像素值作为膨胀后图像中 (x, y) 坐标处的像素值。
min(B_dilate(x-k, y-l)) 表示在经过膨胀操作后的图像 B_dilate 中以 (x,y) 为中心的邻域内,找到所有像素值中的最小值。与膨胀操作类似,k 和 l 是结构元素的偏移量,它们定义了邻域的范围。在腐蚀操作中,将以 (x, y) 为中心的 3x3 区域内的最小像素值作为腐蚀后图像中 (x, y) 坐标处的像素值。
膨胀操作会在局部邻域内找到最大值来替换中心像素值,从而使得图像中的亮区(高像素值区域)扩张;而腐蚀操作则是在局部邻域内找到最小值来替换中心像素值,使得图像中的暗区(低像素值区域)扩张。当先进行膨胀操作后再进行腐蚀操作时,这就是闭运算,用于消除图像中的小孔洞和缝隙。
步骤r3,连通组件分析: 使用连通组件分析来确定目标数量。在二值图像中,找到所有相互连接的白色像素区域,然后为每个区域分配一个唯一的标签。可以使用例如二值图像的 4-邻域或 8-邻域连通性的搜索算法。通过连通组件分析得到的目标数量是一个估计值。虽然它在很多情况下可以提供较为准确的结果,但在某些特殊情况下,例如目标过于密集、形状相似或者因为噪声而连接在一起时,它可能会产生误差。因此,得到的目标数量应当被视为一个估计值。
具体步骤如下: a. 初始化标签为 1。 b. 遍历1000x1000像素的二值图像中的所有像素。对于每个像素,如果其值为 1(白色),检查其邻居像素(例如,上、左邻居像素)。如果邻居像素也是白色,则将当前像素的标签设置为与邻居像素相同的标签。如果邻居像素都是黑色,则将当前像素的标签设置为新的标签,并将标签值加 1。 c. 完成遍历后,统计具有不同标签的区域数量,即为目标数量。
腐蚀操作:腐蚀操作是一种局部最小值滤波,它可以将图像中的亮区缩小。在腐蚀操作中,图像 B 中每个像素 (x, y) 的值取决于以该像素为中心的邻域内的最小像素值。结构元素定义了邻域的形状和大小。
膨胀操作:膨胀操作是一种局部最大值滤波,它可以将图像中的亮区扩大。在膨胀操作中,图像 B 中每个像素 (x, y) 的值取决于以该像素为中心的邻域内的最大像素值。结构元素定义了邻域的形状和大小。
闭运算:闭运算是先进行膨胀操作,再进行腐蚀操作的组合。它可以用来填充图像中的小孔和连接邻近的对象。首先,膨胀操作使得亮区变大,填充了孔洞;然后,腐蚀操作使得亮区变小,恢复了原始对象的大小。结构元素决定了操作的范围和形状。
在某一实施例中,非极大值抑制(Non-Maximum Suppression, NMS)是一种用于去除重叠预测边界框的技术。其主要步骤如下:a. 对所有预测边界框按照置信度得分(通常是分类概率)从高到低进行排序。b. 选择置信度最高的边界框作为参考边界框,将其从候选列表中移除并添加到最终结果列表中。c. 计算参考边界框与候选列表中其他边界框的重叠程度(Intersection over Union, IoU)。d. 如果某个候选边界框与参考边界框的IoU 大于预先设定的阈值(例如0.3),则认为这两个边界框重叠,并将候选边界框从候选列表中移除。e. 重复步骤b、c和d,直到候选列表为空。
这样非极大值抑制过程会保留具有较高置信度的边界框,同时去除与它们重叠的较低置信度的边界框。实现非极大值抑制时,可以使用各种编程语言和库,如Python、OpenCV等。
在某一实施例中,边缘服务器已知多个摄像头的角度、焦距和河面高度,使用多角测量法计算小目标的位置。具体步骤如下: a. 首先,根据摄像头参数确定每个摄像头的视场角。 b. 使用融合后的图像中目标的像素坐标,结合摄像头的视场角和焦距,计算目标在每个摄像头的视线方向上的距离。 c. 利用多个摄像头的视线距离和摄像头位置信息,使用多角测量法求解目标的位置坐标。
在某一实施例中,假设摄像头 A、B、C、D 分别位于水面的四个角落,摄像头的单位方向向量是垂直向下的方向,即四个摄像头均正对水面,即 Z 轴负方向。对于所有摄像头,单位方向向量都是一样的,可以表示为:d_i = (0, 0, -1)。然后组装矩阵 A 和向量 b。假设有 4 个摄像头(A、B、C、D),矩阵 A 将是一个 4x3 矩阵,每一行表示一个摄像头的单位方向向量。在这种情况下,矩阵 A 将如下所示:A = | 0 0 -1 | | 0 0 -1 | | 0 0 -1 || 0 0 -1 |;向量 b 是一个 4x1 向量,每个元素表示从摄像头到目标的视线距离。
使用如下给出的公式计算每个摄像头的视线距离:距离_A = 河面高度 / tan(视场角_A / 2 - (y_A / 图像高度_A) × 视场角_A)。
其中,距离_A:物体在河面上的水平距离。河面高度:摄像头距离河面的垂直高度。视场角_A:摄像头在垂直方向的视场角,通常由摄像头的技术规格给出。y_A:物体在摄像头捕捉的图像中的垂直坐标,通过目标检测算法计算得到。图像高度_A:摄像头捕捉的图像的垂直像素数,通常由摄像头的分辨率给出。
为了计算距离_A,需要首先了解摄像头的视场角、分辨率和距离河面的高度。视场角和分辨率可以从摄像头的技术规格中获取。视场角和分辨率通常可以从摄像头的技术规格中获取。视场角(Field of View, FOV)是指摄像头所能拍摄到的空间范围,通常由水平视场角和垂直视场角组成。这些参数在选择摄像头时通常会在产品规格书中给出。
河面高度需要在安装摄像头时进行测量(根据季节水位变化实时调整,可以通过水位传感器读取数据在边缘服务器内对应调整数值)。在目标检测算法识别出物体的位置后,可以使用物体在图像中的垂直坐标 y_A 和图像高度_A 计算出物体在河面上的水平距离。
之后,用相同的方法计算摄像头B、C、D的水平距离,距离_B = 河面高度 / tan(视场角_B / 2 - (y_B / 图像高度_B) × 视场角_B)。距离_C = 河面高度 / tan(视场角_C/ 2 - (y_C / 图像高度_C) × 视场角_C)。距离_D = 河面高度 / tan(视场角_D / 2 -(y_D / 图像高度_D) × 视场角_D)。然后,可以将这些距离放入向量 b;b = | 距离_A || 距离_B | | 距离_C | | 距离_D |。
现在,可以使用最小二乘法求解线性系统:P = argmin(||AP - b||^2)。其中 P是目标的空间坐标(x, y, z)。求解线性系统后,可以得到目标的空间坐标 P,从而计算目标的位置。
要使用最小二乘法求解线性系统 P = argmin(||AP - b||^2),可以使用以下方法:计算矩阵 A 的转置矩阵 A_transpose;计算矩阵 A_transpose 乘以矩阵 A,记作矩阵A_tA;计算矩阵 A_transpose 乘以向量 b,记作向量 A_tb;求解线性方程组 A_tA * P =A_tb,得到参数向量 P。其中,小目标由于漂浮在河湖面上,z可以默认等于河湖面当前的湖面高度,在具体求解过程中也可以对z进行简化,确定为河湖面当前的高度。
可见,利用多个摄像头的角度、焦距和河面高度,使用多角测量法计算小目标的位置,假设多个摄像头分别位于水面的不同位置且均正对水面;根据已知的摄像头的视野角、分辨率、摄像头与水面的高度,以及从目标检测算法获取目标在图像中的垂直坐标y和图像高度来计算每个摄像头观测到目标的水平距离;将多个摄像头观测到的距离构成向量;通过最小二乘法求解参数向量P,其中P为目标的空间坐标(x,y,z),通过P获得目标的空间坐标,从而计算小目标的位置。
在某一实施例中,下面对监控后台的组件和实现进行说明。后端服务器负责接收来自边缘服务器和流速传感器的数据,对数据进行处理和存储,并为前端可视化界面提供数据接口。后端服务器可以使用 Python、Node.js、Java 等编程语言实现,使用数据库(如MySQL、MongoDB 等)来存储数据。在后端服务器上,需要实现一个数据处理模块来处理来自边缘服务器和流速传感器的数据。数据处理模块需要实现以下功能:解析接收到的目标位置、检测时间和水流速度数据。根据检测时间和水流速度,计算目标的预测位置。将实时目标位置、检测时间和预测位置等信息存储到数据库中。前端可视化界面是监控后台的用户界面,可以使用 Web 技术(如 HTML、CSS 和 JavaScript)实现。前端界面需要包含以下组件:可以使用地图服务提供商的 API 实现,地图上需要显示实时目标位置、检测时间和预测位置。控制面板包含用于筛选数据、用于查看历史记录和其他操作的按钮和输入框。以及使用数据展示面板显示实时水流速度、目标位置等数据。整个监控后台的实现流程大致如下:边缘服务器和流速传感器将数据上报给后端服务器。后端服务器对数据进行处理,计算预测位置,并将相关信息存储到数据库中。前端可视化界面定期向后端服务器请求数据,并根据返回的数据更新地图上的标注和数据展示面板。通过以上实现方法,监控后台可以实时地在地图上展示目标位置、检测时间以及根据水流速度预测的目标位置。
在某一实施例中,数据处理模块需要实现以下功能: 解析接收到的目标位置、检测时间和水流速度数据,以及根据检测时间和水流速度,计算目标的预测位置。 将实时目标位置、检测时间和预测位置等信息存储到数据库中,对于预测位置只需要预测二维坐标(x,y)的坐标,而不需要预测z(z和当前水面高度是相同的)。
其中,根据检测时间和水流速度,计算目标的预测位置,包括:根据流速传感器提供的数据包括水流速度和河道走向(即河道与水平坐标系的夹角,顺时针方向为正)。以下方法进行预测:解析接收到的目标位置、检测时间、水流速度和河道走向数据。以及根据检测时间和水流速度,计算目标的预测位置: 首先,将河道走向(角度)转换为弧度:走向弧度= 河道走向 × π / 180。
根据水流速度和河道走向,计算水流速度在 x 和 y 方向上的分量:速度分量_x= 水流速度 × cos(走向弧度) 速度分量_y = 水流速度 × sin(走向弧度)。
以及根据速度分量和时间差,计算预测位置:预测位置_x = 实时位置_x + 速度分量_x × 时间差;预测位置_y = 实时位置_y + 速度分量_y × 时间差。最后将实时目标位置、检测时间和预测位置等信息存储到数据库中。通过以上方法,可以结合河道走向和流速传感器数据来预测目标位置并进行存储。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图或框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
以上介绍了本发明的较佳实施方式,旨在使得本发明的精神更加清楚和便于理解,并不是为了限制本发明,凡在本发明的精神和原则之内,所做的修改、替换、改进,均应包含在本发明所附的权利要求概括的保护范围之内。
Claims (9)
1.一种基于物联网技术的河湖漂浮物目标识别方法,所述方法包括:在每个摄像头上部署初筛小目标的单激发多框探测器SSD算法,所述SSD算法是经过信任度权重调整后的SSD算法,根据所述算法将对摄像头采集的图像进行小目标检测,当所述摄像头检测到小目标时将检测结果上报给边缘服务器;在边缘服务器上部署根据多个摄像头的采集图像结合判断小目标类型和位置的模型,当所述边缘服务器接收到摄像头上报的检测到小目标的检测结果时,调用所述摄像头所在区域的多个摄像头的采集图像,结合不同摄像头的采集图像进行小目标判断;以及,所述边缘服务器判断存在小目标时,根据多个摄像头对采集图像的检测结果,利用多角测量法计算当前小目标所在的位置;所述边缘服务器将计算的小目标的位置信息和水流传感器检测的河湖断面的水流速度上报至监控平台;所述监控平台结合水流速度数据动态跟踪算法预测小目标的位置变化趋势,将小目标的检测结果、位置信息和预测结果可视化显示;所述经过信任度权重调整后的SSD算法,在训练阶段中,根据分配的类别标签和边界框偏移量,计算每个预定义框的分类损失和定位损失,将损失乘以对应的信任度权重,得到了调整后的分类损失和定位损失,将这两个损失相加得到总损失Total Loss',使用优化算法来最小化 Total Loss',所述优化算法根据损失函数关于模型参数的梯度来更新模型参数;其中,所述优化算法包括随机梯度下降算法;其中,对于每个预定义框,计算其分类损失,然后将每个预定义框的分类损失乘以对应的信任度权重,该过程通过以下公式实现:Confidence Loss' = ∑ [W_i * CrossEntropyLoss(c_i, c_i^*)];其中:i为预定义框的索引,用于遍历所有预定义框;c_i为预测类别概率,表示模型为预定义框i预测的类别概率分布;c_i^*为真实类别概率,表示预定义框i对应的真实类别概率分布;W_i为预定义框i的信任度权重,表示对预定义框 i 预测的类别概率的信任程度;
CrossEntropyLoss(c_i, c_i^*)为交叉熵损失,用于计算预测类别概率与真实类别概率之间的损失;Confidence Loss'为加权后的分类损失,通过将每个预定义框的分类损失乘以对应的信任度权重计算得到;其中,对于每个预定义框,计算其定位损失,然后将每个预定义框的定位损失乘以对应的信任度权重,该过程通过以下公式实现:LocalizationLoss' = ∑ [W_i * SmoothL1Loss(l_i, l_i^*)];其中:i为预定义框的索引,用于遍历所有预定义框;l_i为预测框的坐标,表示模型为预定义框 i 预测的边界框坐标;
l_i^*为真实框的坐标,表示预定义框i对应的真实边界框坐标;W_i为预定义框 i 的信任度权重,表示对预定义框 i 预测的边界框坐标的信任程度;SmoothL1Loss(l_i, l_i^*)为Smooth L1 损失,用于计算预测边界框坐标与真实边界框坐标之间的损失;
Localization Loss'为加权后的定位损失,通过将每个预定义框的定位损失乘以对应的信任度权重计算得到;最后,将调整后的分类损失和定位损失相加,得到总损失TotalLoss', Total Loss' = Confidence Loss' + Localization Loss'。
2.如权利要求1所述的基于物联网技术的河湖漂浮物目标识别方法,其特征在于,将所述摄像头的采集图像分割成多个区域,根据区域距离图像中心的远近来设置信任度值;其中,最中心的区域分配最高的信任度值,最外圈区域分配最低的信任度值。
3.如权利要求1所述的基于物联网技术的河湖漂浮物目标识别方法,其特征在于,训练阶段中,为每个预定义框分配与之最匹配的真实边界框,包括:计算预定义框与真实边界框之间的重叠程度IoU;IoU = (预定义框 ∩ 真实边界框) / (预定义框 ∪ 真实边界框) ;IoU 的值在 0 到 1 之间,值越大表示重叠程度越高;设定一个 IoU 阈值,当 IoU 大于阈值时,预定义框与真实边界框之间存在匹配关系;在为预定义框分配真实边界框之后,为每个预定义框分配一个类别标签,类别标签是与之匹配的真实边界框的类别。
4.如权利要求1所述的基于物联网技术的河湖漂浮物目标识别方法,其特征在于,所述经过信任度权重调整后的SSD算法,在推理阶段中,根据分类和回归的结果筛选出具有较高置信度的目标边界框,返回筛选和优化后的目标边界框,以及对应的类别标签和置信度分数;当摄像头使用经过信任度调整的SSD算法检测到置信度高于阈值的边界框时,初筛表明该摄像头采集图像对应的区域内存在小目标。
5.如权利要求1所述的基于物联网技术的河湖漂浮物目标识别方法,其特征在于,当所述边缘服务器接收到摄像头上报的检测到小目标的检测结果时,调用所述摄像头所在区域的多个摄像头的采集图像后,将多个摄像头的采集图像合成为标准图像。
6.如权利要求5所述的基于物联网技术的河湖漂浮物目标识别方法,其特征在于,所述边缘服务器对合成的标准图像进行分析,以确定小目标的数量,包括:使用神经网络对标准图像进行判断是否存在小目标;使用阈值分割法对标准图像进行处理,将标准图像转换为二值图像;使用应用形态学操作消除噪声并分离相邻目标,所述形态学操作包括开运算和闭运算;使用连通组件分析确定目标数量。
7.如权利要求1所述的基于物联网技术的河湖漂浮物目标识别方法,其特征在于,所述边缘服务器存储有多个摄像头的角度、焦距和河面高度,使用多角测量法计算小目标的位置坐标。
8.如权利要求7所述的基于物联网技术的河湖漂浮物目标识别方法,其特征在于,根据摄像头的角度、焦距,确定每个摄像头的视场角;使用融合后的图像中目标的像素坐标,结合摄像头的视场角和焦距,计算小目标在每个摄像头的视线方向上的距离;
利用多个摄像头的视线距离和摄像头位置信息,使用多角测量法求解小目标的位置坐标;其中,利用多个摄像头的角度、焦距和河面高度,使用多角测量法计算小目标的位置坐标,多个摄像头分别位于水面的不同位置且均正对水面;根据已知的摄像头的视野角、分辨率、摄像头与水面的高度,以及从小目标检测算法获取目标在图像中的垂直坐标和图像高度来计算每个摄像头观测到小目标的水平距离,将多个摄像头观测到的距离构成向量;最后通过最小二乘法求解参数向量P,其中P为小目标的空间坐标,从而计算小目标的位置坐标。
9.如权利要求1所述的基于物联网技术的河湖漂浮物目标识别方法,其特征在于,所述监控平台根据流速传感器提供的数据包括水流速度和河道走向,基于解析接收到的小目标位置坐标、检测时间,计算小目标的预测位置坐标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310641984.0A CN116385530B (zh) | 2023-06-01 | 2023-06-01 | 一种基于物联网技术的河湖漂浮物目标识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310641984.0A CN116385530B (zh) | 2023-06-01 | 2023-06-01 | 一种基于物联网技术的河湖漂浮物目标识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116385530A CN116385530A (zh) | 2023-07-04 |
CN116385530B true CN116385530B (zh) | 2023-08-08 |
Family
ID=86961910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310641984.0A Active CN116385530B (zh) | 2023-06-01 | 2023-06-01 | 一种基于物联网技术的河湖漂浮物目标识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116385530B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112132042A (zh) * | 2020-09-24 | 2020-12-25 | 西安电子科技大学 | 基于对抗域适应的sar图像目标检测方法 |
CN114120218A (zh) * | 2021-10-29 | 2022-03-01 | 河南中光学集团有限公司 | 一种基于边缘计算的河道漂浮物监测方法 |
CN114170549A (zh) * | 2021-12-08 | 2022-03-11 | 中科计算技术西部研究院 | 一种基于深度学习的水面漂浮物检测方法 |
CN115909396A (zh) * | 2022-11-05 | 2023-04-04 | 北京化工大学 | 一种足式机器人动态目标跟踪方法 |
-
2023
- 2023-06-01 CN CN202310641984.0A patent/CN116385530B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112132042A (zh) * | 2020-09-24 | 2020-12-25 | 西安电子科技大学 | 基于对抗域适应的sar图像目标检测方法 |
CN114120218A (zh) * | 2021-10-29 | 2022-03-01 | 河南中光学集团有限公司 | 一种基于边缘计算的河道漂浮物监测方法 |
CN114170549A (zh) * | 2021-12-08 | 2022-03-11 | 中科计算技术西部研究院 | 一种基于深度学习的水面漂浮物检测方法 |
CN115909396A (zh) * | 2022-11-05 | 2023-04-04 | 北京化工大学 | 一种足式机器人动态目标跟踪方法 |
Non-Patent Citations (1)
Title |
---|
基于深度学习的水面漂浮物目标识别算法研究;徐浩;《中国优秀硕士学位论文全文数据库工程科技Ⅰ辑》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116385530A (zh) | 2023-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112766274B (zh) | 一种基于Mask RCNN算法的水尺图像水位自动读数方法及系统 | |
Tan et al. | Automatic detection of sewer defects based on improved you only look once algorithm | |
CN112308019A (zh) | 基于网络剪枝和知识蒸馏的sar舰船目标检测方法 | |
CN113378686B (zh) | 一种基于目标中心点估计的两阶段遥感目标检测方法 | |
CN113469177A (zh) | 基于深度学习的排水管道缺陷检测方法及系统 | |
JP2015069219A (ja) | 異常潮位変動検知装置、異常潮位変動検知方法、及び異常潮位変動検知プログラム | |
CN111476159A (zh) | 一种基于双角回归的检测模型训练、检测方法及装置 | |
CN112560619B (zh) | 一种基于多聚焦图像融合的多距离鸟类精准识别方法 | |
Guo et al. | Evaluation-oriented façade defects detection using rule-based deep learning method | |
CN111626349A (zh) | 一种基于深度学习的目标检测方法和系统 | |
CN115937659A (zh) | 基于Mask-RCNN的室内复杂环境下多目标检测方法 | |
Song et al. | Deformable YOLOX: detection and rust warning method of transmission line connection fittings based on image processing technology | |
CN115995058A (zh) | 基于人工智能的输电通道安全在线监测方法 | |
CN115731545A (zh) | 一种基于融合感知的电缆隧道巡检方法及装置 | |
CN114565824A (zh) | 基于全卷积网络的单阶段旋转舰船检测方法 | |
Zhang et al. | Surface defect detection of wind turbine based on lightweight YOLOv5s model | |
Yamaguchi et al. | Quantitative road crack evaluation by a U‐Net architecture using smartphone images and Lidar data | |
CN114170487A (zh) | 一种基于视觉的水面油污检测方法 | |
CN116385530B (zh) | 一种基于物联网技术的河湖漂浮物目标识别方法 | |
Albalooshi et al. | Deep belief active contours (DBAC) with its application to oil spill segmentation from remotely sensed sea surface imagery | |
CN116823838B (zh) | 高斯先验标签分配与特征解耦的海洋船舶检测方法与系统 | |
Sun | Convolutional neural network-based crack identification and detection in underwater buildings | |
CN116453010B (zh) | 基于光流rgb双路特征海洋生物目标检测方法及系统 | |
CN112927207B (zh) | 实例分割探杆检测方法及装置 | |
Ye et al. | SAM-based instance segmentation models for the automation of masonry crack detection |
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 |