2. 使用预训练的 OpenVINO 模型

在本教程中,你将学习如何用预先训练好的模型实时检测面部,就算用低算力的树莓派也能做到。 我们将向您介绍 OpenVINO 模型库,以及如何从该库中运行模型。

preview

如果您想了解有关 OpenVINO、Open Model Zoo 以及如何在本地将 OpenVINO 模型转换为 .blob 的更多信息, 请查看我们的 本地 OpenVINO 模型转换

2.1. 运行 DepthAI 默认模型

你可以直接修改 depthai.py 文件来进行 binding, 或者你可以简单地传递参数给它,让它运行你想运行的模型。

为了简单起见,我们选择后者,简单地传递参数,让 DepthAI 运行 face-detection-retail-0004 而不是默认运行的模型。

在切换到使用 face-detection-retail-0004 之前,还有一小步。 在这里,我们将只传递在运行 python3 depthai_demo.py 时默认运行的神经网络,从而确保我们操作无误:

python3 depthai_demo.py -dd

然后运行一个典型的演示 MobileNetv2 SSD 物体检测器,该检测器基于 PASCAL 2007 VOC 的类进行训练,这些类包括: - 人:人 - 动物:鸟、猫、牛、狗、马、羊 - 交通工具:飞机、自行车、船、公共汽车、汽车、摩托车、火车 - 室内:酒瓶、椅子、餐桌、盆栽、沙发、电视/显示器

我在我的笔记本电脑上运行了这个,OAK-D 放在我的桌子上,随机向上指向 - 它可以识别出我的笔记本电脑屏幕的一角并正确地将其识别为 tvmonitor:

laptop

2.2. 运行模型

在验证完之后,让我们继续尝试其他模型,首先是 face-detection-retail-0004.

要使用这个模型,只需用 -cnn 标志指定要运行的模型名称,如下所示:

python3 depthai_demo.py -dd -cnn face-detection-retail-0004

这将下载编译的 face-detection-retail-0004 NN 模型并使用它在颜色帧上运行推理(检测人脸):

face

就这么简单。 当然,用你的脸代替我的。

如果你想尝试其他模型,只需浏览 这里 然后按他们的名字运行,就像上面一样。

现在花一些时间来试用模型。 例如,您可以检查模型可以检测到您的脸部的距离:

face face

在第二张图片中,你可以看到我在一个很背光的环境下, 这是人脸检测(和其他特征检测)的主要挑战之一。 在这种情况下,很可能会限制可以检测到脸部的最大范围。 根据上面的测试,对于50%的置信度阈值,此范围似乎约为6米/20英尺。 你可以通过降低模型的置信度阈值 (从 0.5 这里 降低)来获得更长的范围,但代价是增加了误报的可能性。

另一个限制因素是,这是一个相对低分辨率的模型(300x300像素),所以远处的人脸就特别小。 因此,让我们尝试另一种使用更高分辨率的人脸检测模型。

2.3. 尝试其他模型

我们走过的流程也适用于我们代码库中 (这部分 的其他预训练对象检测模型),其中包括:

  • 零售业的人脸检测 (face-detection-retail-0004)

  • 用于驾驶辅助的面部检测 (face-detection-adas-0001)

  • 面部特征点检测, 简单 (landmarks-regression-retail-0009)

  • 面部特征点检测,高级 (facial-landmarks-35-adas-0002)

  • 情绪识别 (emotions-recognition-retail-0003)

  • 用于驾驶辅助的行人检测 (pedestrian-detection-adas-0002)

  • 零售环境下的人员检测 (person-detection-retail-0013)

  • 用于驾驶辅助的车辆检测 (vehicle-detection-adas-0002)

  • 车辆和车牌检测 (vehicle-license-plate-detection-barrier-0106)

  • Yolo - 一般物体检测(yolo-v3)

  • tiny Yolo - 一般物体检测(tiny-yolo-v3)

您可以在 -cnn 参数后简单地指定这些模型中的任何一个。

我们可以试试 face-detection-adas-0001, 它的目的是检测车辆驾驶室内的人脸。 (ADAS 是 Advanced Driver-Assistance Systems 的缩写, 表示高级驾驶辅助系统)。

python3 depthai_demo.py -dd -cnn face-detection-adas-0001
face

因此,尽管具有较高的分辨率,但该模型实际上具有较短的检测距离(相对较小的模型来说)。 为什么这么说呢? 可能是因为它的目的是在车辆的驾驶室中使用,所以经过有意训练只能检测近距离的人脸。 (例如,您不想检测经过的汽车中的人脸。)

2.4. 空间AI–用3D定位增强模型的功能

默认情况下,DepthAI 被设置为返回完整的 3D 位置。 所以在上面的命令中,我们实际上是用 -dd (或 --disableDepth)指定它不计算。

因此,让我们运行同样的命令,但省略这一行,以便返回(并显示)3D 结果:

python3 depthai_demo.py -cnn face-detection-adas-0001
face

在这里,您可以找到我杯子的 3D 位置!

你可以选择其他模型,改变标签,然后完成了 – 获得你关心的类的实时 3D 位置。

试用该功能,并在 discuss.luxonis.com 上分享您想出的演示(特别是如果您制造的机器人会跟踪您的猫),如果遇到任何问题,请在我们的 Github 上对我们进行ping操作。

如果您在这些文档中发现任何错误,请告诉我们,我们会及时更正!页面下方有我们的联系方式,在此表示感谢!!!

有疑问?

我们很乐意为您提供代码或其他问题的帮助。

我们的联系方式

OAK QQ群
QQ

OAK视觉人工智能俱乐部

群号:280844897

加微信邀请入群
WeChat

微信号:13951940532

关注微信公众号:OAK视觉人工智能开发
欢迎到淘宝选购
taobao
OAK中国官方淘宝店

还可以通过我们发布的视频和文章了解OAK