在这篇文章中,我们将探讨如何使用 Luminoth 库来检测图片或视频中的对象。Luminoth 是一个开源的 计算机视觉 库,使用 Python 构建,基于 TensorFlow 和 Sonnet。这个库由 Tryolabs开发。你可以在这里了解更多关于 Luminoth 及其其他项目的信息:
1. 谷歌网络安全证书 - 快速进入网络安全职业轨道。
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持你在 IT 领域的组织
Tryolabs 是一个机器学习和数据科学咨询公司,帮助公司构建和实施定制的解决方案…](https://tryolabs.com/)
Sonnet 是一个基于 TensorFlow 的神经网络库。Luminoth 是一个相对较新的库,处于 alpha 质量发布阶段。我们将展示如何使用 Luminoth 检测图像中的对象,如下图所示。
安装
我们可以通过快速的 pip 安装命令安装 Luminoth:
pip3 install luminoth
Luminoth 提供了我们可以使用的预训练检查点。然而,也可以调整我们自己的数据集并进行训练。让我们深入了解一下。
这个库的美妙之处在于它使对象检测的工作变得简单。让我们通过这个图像来进行一个简单的示例。
为了做到这一点,我们首先需要启动终端。预测图像中的对象相对简单。然而,在我们开始做预测之前,我们需要下载一个检查点,以便我们能有一致的起点。Luminoth 提供了一个lumi
命令,我们将用它来完成大部分操作。
管理检查点可以通过lumi checkpoint
命令完成,该命令将下载预训练模型,我们将使用这些模型进行预测。这是一个巨大的优势——训练图像识别模型需要很长时间和大量计算能力。然而,也可以使用云基础设施(Google Cloud、AWS 等)进行自己的训练。
lumi checkpoint refresh
现在我们来查看已下载的检查点。这可以通过lumi checkpoint list
命令完成。
lumi checkpoint list
我们可以清楚地看到我们有两个检查点:
-
Faster R-CNN w/COCO—一个基于 Faster R-CNN 模型训练的物体检测模型。使用 COCO 数据集。
-
SSD w/Pascal VOC—一个基于单次多框检测器(SSD)模型训练的物体检测模型。使用 Pascal 数据集。
现在我们将使用 Luminoth 的命令行界面来预测上面展示的图像中的物体。
lumi predict bike.jpg
该命令以 JSON 格式输出预测结果。
你我都能同意,这个输出至少在视觉上并不令人满意。幸运的是,Luminoth 的团队提供了一种将图像中的物体作为标签输出的方式。
为此,我们首先创建一个名为predictions
的目录,用于存放 JSON 输出和预测图像。记住我们仍在终端中操作。
mkdir predictions
完成后,我们可以运行将进行预测并返回带标签物体的图像的命令。
lumi predict bike.jpg -f predictions/objects.json -d predictions/
这个命令可能需要几分钟时间来运行。完成后,我们将在预测文件夹中看到下面的输出。
我们可以看到,它预测图像中的物体是摩托车,准确率高达 100%。它还能够预测到栅栏后面的汽车。很酷,对吧?
Luminoth 还允许我们使用特定的检查点运行预测。我们可以使用Fast
检查点并进行测试。我们可以通过其 ID 或别名来实现。
lumicheckpoint info fast
或
lumicheckpoint info aad6912e94d9
让我们使用这个检查点来预测摩托车图像中的物体。
lumi predict bike.jpg --checkpoint fast -f predictions/objects.json -d predictions/
我们将得到一个提示,下载本地检查点,当下载完成后,预测将会发生。我们看到它能够预测摩托车,但无法识别栅栏后面的汽车。
Luminoth 允许我们在网页界面上进行这些预测。要打开网页界面,请运行以下命令。
lumi server web
然后访问localhost:5000/
以访问网页界面。
我们只需在计算机上浏览一张图像,然后点击提交按钮。我们可以调整概率阈值。提高阈值会减少预测的图像数量,但概率更高,降低阈值则会增加预测的图像数量,但概率较低。
我们还可以利用这个库在视频中检测对象。这一过程将根据计算机的处理能力花费一段时间。
lumi predict traffic.mp4 -f predictions/objects.json -d predictions/
结论
市面上有很多计算机视觉工具。Luminoth 的独特之处在于其易于实现。它还提供了可以直接使用的训练模型。要了解更多关于此库的信息,请查看官方 文档。
如果你刚刚开始学习机器学习或者想要提升技能,这本书非常适合你。](https://leanpub.com/introductorytutorialsformachinelearning)
个人简介: 德里克·姆维提 是数据分析师、作家和导师。他致力于在每项任务中取得优异成绩,并且是 Lapid Leaders Africa 的导师。
原文。已获许可转载。
相关:
-
深度学习中的 PyTorch 入门
-
如何在计算机视觉中做到所有事情
-
比较 TensorFlow 中的 MobileNet 模型