人脸关键点检测输出详解

python inference.py --img /home/ailab/ai_code/Face/FaceLandmark1000/data/20230719091829.jpg
FaceBoxesV2ORT Running Device: CPU, Available Providers: ['CPUExecutionProvider']
Model Loaded From: /home/ailab/ai_code/Face/torchlm/torchlm/runtime/ort/assets/faceboxesv2-640x640.onnx
Input Name: img, Input Shape: [1, 3, 640, 640] Output Names: ['loc', 'conf'], Output Shapes: [[1, 8525, 4], [1, 8525, 2]]
PIPNetORT Running Device: CPU, Available Providers: ['CPUExecutionProvider']
Model Loaded From: /home/ailab/Downloads/pipnet_resnet18.onnx
Input Name: img, Input Shape: [1, 3, 256, 256] Output Names: ['outputs_cls', 'outputs_x', 'outputs_y', 'outputs_nb_x', 'outputs_nb_y'], Output Shapes: [[1, 98, 8, 8], [1, 98, 8, 8], [1, 98, 8, 8], [1, 980, 8, 8], [1, 980, 8, 8]]

第一个模型:

输入图像的形状是 [1, 3, 640, 640],代表有1张图像(batch size为1),每张图像有3个颜色通道(RGB),图像的大小为 640x640 像素。

模型的输出包含两个部分:'loc' 和 'conf',每个部分的输出形状分别为:[1, 8525, 4] 和 [1, 8525, 2]。

  1. 'loc': 这部分可能表示每个预测框的位置信息。8525可能代表预测框的数量,4可能代表每个预测框的坐标信息,通常会包含左上角和右下角的坐标,或者是中心点的坐标加上宽高。

  2. 'conf': 这部分可能表示每个预测框的置信度信息,或者是类别信息。8525同样代表预测框的数量,2可能代表每个预测框属于某个类别的概率。

  1. Input Name: img, Input Shape: [1, 3, 640, 640]:表示输入到模型的是一个图像,形状为[1, 3, 640, 640],即1张图像,每张有3个颜色通道(RGB),尺寸为640x640像素

  2. Output Names: ['loc', 'conf'], Output Shapes: [[1, 8525, 4], [1, 8525, 2]]:模型的输出包括两部分。'loc'输出是预测的关键点的位置,形状为[1, 8525, 4],这意味着模型一共预测了8525个关键点,每个关键点有4个坐标值(通常是边界框的左上角和右下角的坐标)。'conf'是预测的关键点的置信度,形状为[1, 8525, 2],这可能表示每个关键点有两个可能的类别,模型为每个类别提供了一个置信度。

  3. meanface_lms != self.num_lms, 845 != 98 So, we will skip this setup for PIPNet meanface.Please check and setup meanface carefully beforerunning PIPNet ...:这是一个警告,表示提供的meanface的关键点数量(meanface_lms=845)与模型预期的关键点数量(num_lms=98)不一致,因此模型跳过了PIPNet的meanface设置

  4. PIPNetORT Running Device: CPU, Available Providers: ['CPUExecutionProvider']:这表示模型正在使用CPU设备进行推理,可用的执行提供者包括CPUExecutionProvider。

  5. Model Loaded From: /home/ailab/Downloads/pipnet_resnet18.onnx:这表示模型从给定的路径加载了一个ONNX模型。

  6. Input Name: img, Input Shape: [1, 3, 256, 256] Output Names: ['outputs_cls', 'outputs_x', 'outputs_y', 'outputs_nb_x', 'outputs_nb_y'], Output Shapes: [[1, 98, 8, 8], [1, 98, 8, 8], [1, 98, 8, 8], [1, 980, 8, 8], [1, 980, 8, 8]]:这表示模型的输入是一张256x256像素的RGB图像,输出包括关键点的类别('outputs_cls'),关键点的x和y坐标('outputs_x'和'outputs_y'),以及关键点的邻居的x和y坐标('outputs_nb_x'和'outputs_nb_y')。

[[1, 98, 8, 8], [1, 98, 8, 8], [1, 98, 8, 8], [1, 980, 8, 8], [1, 980, 8, 8]] 这些参数代表什么

ChatGPT

模型的输出形状为[[1, 98, 8, 8], [1, 98, 8, 8], [1, 98, 8, 8], [1, 980, 8, 8], [1, 980, 8, 8]],分别对应输出的名字:['outputs_cls', 'outputs_x', 'outputs_y', 'outputs_nb_x', 'outputs_nb_y'],根据通常的实践,这些输出可能代表以下含义:

  1. 'outputs_cls':这是模型对98个关键点的分类输出,形状为[1, 98, 8, 8],通常,这可能表示每个关键点有8x8=64个可能的位置,模型为每个位置提供了一个分类的输出。

  2. 'outputs_x'和'outputs_y':这些输出提供了关键点的坐标,形状为[1, 98, 8, 8]。这可能表示模型对每个关键点的x和y坐标分别提供了8x8=64个可能的位置的预测。

  3. 'outputs_nb_x'和'outputs_nb_y':这些输出表示关键点的邻居的坐标,形状为[1, 980, 8, 8]。这可能表示模型对每个关键点的邻居的x和y坐标分别提供了8x8=64个可能的位置的预测。

这只是根据输出的形状和常见的实践进行推测的可能的解释,具体的含义可能会根据模型的实现和使用的方法有所不同。你可以查阅模型的文档或源代码以获取更准确的信息。

猜你喜欢

转载自blog.csdn.net/sinat_37574187/article/details/131851276