非极大值抑制 (Image Analyst)

获得 Image Analyst 许可后可用。

摘要

可将使用深度学习检测对象工具的输出中的重复要素识别为后处理步骤,并创建没有重复要素的新输出。使用深度学习检测对象工具可针对同一对象(尤其是作为切片的边际效应)返回多个边界框或面。如果两个要素的重叠超过给定的最大比率,则将移除置信值较低的要素。

使用情况

  • 该工具可执行非极大值抑制算法,以删除由使用深度学习检测对象工具创建的重复对象。

  • 要素类必须具有置信度字段,且每个要素都必须具有置信值。

  • 如果要素类包含多个对象类(例如树、汽车或建筑物),则它还必须具有包含类值或类名称的字段。

  • 如果两个重叠要素的重叠比大于指定的最大重叠比,则将移除置信度较低的要素。

  • 该工具首先会分别检查每个对象类的要素类,并标记要移除的置信度较低的重复要素。随后该工具会检查所有要素,并比较不同对象类的要素。输出将是移除了检测到的重复要素的新要素类。

参数

标注说明数据类型
输入要素类

包含重叠要素或重复要素的输入要素类或要素图层。

Feature Class; Feature Layer
置信度得分字段

要素类中的字段,该字段包含将由对象检测方法输出的置信度得分。

Field
输出要素类

移除了重复要素的输出要素类。

Feature Class
类值字段
(可选)

输入要素类中的类值字段。若未指定,则工具将使用标准类值字段 ClassvalueValue。若这些字段不存在,则所有要素将被视为相同的对象类。

Field
最大重叠比
(可选)

两个重叠要素的最大重叠比。其定义为交集区域与并集区域之比。默认值为 0。

Double

NonMaximumSuppression(in_featureclass, confidence_score_field, out_featureclass, {class_value_field}, {max_overlap_ratio})
名称说明数据类型
in_featureclass

包含重叠要素或重复要素的输入要素类或要素图层。

Feature Class; Feature Layer
confidence_score_field

要素类中的字段,该字段包含将由对象检测方法输出的置信度得分。

Field
out_featureclass

移除了重复要素的输出要素类。

Feature Class
class_value_field
(可选)

输入要素类中的类值字段。若未指定,则工具将使用标准类值字段 ClassvalueValue。若这些字段不存在,则所有要素将被视为相同的对象类。

Field
max_overlap_ratio
(可选)

两个重叠要素的最大重叠比。其定义为交集区域与并集区域之比。默认值为 0。

Double

代码示例

NonMaximumSuppression 示例 1(Python 窗口)

重复对象通过 NonMaximumSupression 工具从输出中删除。

# Import system modules
import arcpy
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

NonMaximumSuppression("Detectcars1", "Confidence", r"c:\Classification.gdb\tf_detectobjects_cars_", "Class", 0.3)
NonMaximumSuppression 示例 2(独立脚本)

重复对象通过 NonMaximumSupression 工具从输出中删除。

# Import system modules
import arcpy
from arcpy.ia import *

"""
Usage: NonMaximumSuppression(in_features,confidence_score_field, 
out_features, {class_value_field}, {max_overlap_ratio})
"""

# Set local variables
in_features = "c:/classifydata/Trees.tif"
confidence_score_field = "Confidence"
out_features = "c:/detectobjects/trees.shp"
class_value_field = "Classvalue"
max_overlap_ratio = 0.2


# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# Execute 
NonMaximumSuppression(in_features,confidence_score_field, out_features, 
class_value_field, max_overlap_ratio)

相关主题