人脸检测模型性能对比指南

在挑选模型时,了解其在特定数据上的表现至关重要,但往往难以获得。像mAP(平均精度均值)这样的指标可以帮助了解模型在数据集上的表现,但它们只能给出模型在数据集图像上表现的一个大致概念。

本指南将介绍如何使用基准数据集和监督工具来比较Roboflow Universe上的两个人脸检测模型的性能。

步骤1:寻找评估数据集

假设想要检测人脸,并希望模型能在各种场景下表现良好。为此,可以在Universe中搜索一个训练有素的目标检测模型,并拥有大量图像。为了评估模型在多种设置下的表现,最好使用一个大型、通用、多样化的数据集,如COCO。在这个例子中,将使用一个仅限于人脸的COCO子集的Universe数据集。

可选:创建自己的评估数据集。如果想评估模型在自己的使用案例中的表现,可以尝试创建自己的数据集,而不是训练它,看看是否有现成的模型可以为工作。例如,可以从想要部署模型的地方捕获大约一百张图像或视频,然后将图像上传到Roboflow。可以快速标注它们,甚至可以让Autodistill为标注图像。一旦图像被标注,可以添加和修改预处理和增强,然后生成一个版本。创建版本后,可以继续按照本指南进行,但将评估数据集下载细节替换为自己的项目以下载项目。

步骤2:评估模型性能

一旦有了模型和评估数据集,就可以测试模型并使用监督工具的mAP基准测试功能为两个模型产生mAP。

首先,将导入roboflow和supervision包。

!pip install supervision roboflow

下载评估数据集。现在,将下载评估数据集,并使用DetectionDataset.from_coco()方法将其导入监督。

from roboflow import Roboflow rf = Roboflow(api_key="**YOUR API KEY HERE**") project = rf.workspace("shreks-swamp").project("coco-dataset-limited--person-only") dataset = project.version(1).download("coco")

要在自己的数据集上进行此操作,请点击Universe上任何目标检测数据集上的“下载此数据集”按钮,并以COCO格式导出。

设置模型

现在可以相互测试模型。首先,将测试Universe上人脸检测模型的顶级结果。

api_key = "YOUR API KEY HERE" project_id = "people-detection-o4rdr" rf = Roboflow(api_key) project = rf.workspace().project(project_id) model = project.version(1).model

然后,设置一个回调函数,以便监督可以运行模型对抗评估数据集中的图像。

def callback(image_path,ground_truth): image = cv2.imread(image_path) result = model.predict(image_path, confidence=10, overlap=30).json() sv_result = sv.Detections.from_inference(result) bounding_box_annotator = sv.BoundingBoxAnnotator() annotated_frame = bounding_box_annotator.annotate(scene=image, detections=sv_result) bounding_box_annotator = sv.BoundingBoxAnnotator() annotated_frame = bounding_box_annotator.annotate(scene=image, detections=ground_truth) sv.plot_image(image=image, size=(3, 3)) return sv_result

现在通过将模型传递给监督的基准测试来计算数据集的模型mAP。

mean_average_precision = sv.MeanAveragePrecision.benchmark(dataset = sv_dataset, callback = callback)

可以看到,尽管他们的模型页面上列出了很高的mAP,但其表现非常差,mAP仅为12.77%。接下来,将比较另一个模型,即Roboflow自己的精选人脸检测模型。可以通过完成刚刚所做的相同过程,但通过修改第一步中的project_id来评估该模型。

探索计算机视觉中的实际效果是一个挑战,但通过这个过程,评估了两个模型的性能,发现其中一个模型对使用案例无效。评估数据集让能够确定模型在实际使用中的有效性,而无需在野外测试它们。过程还允许比较无限数量的模型,以找到最适合使用案例的模型。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485