npm 包 object-detection 使用教程

阅读时长 6 分钟读完

前言

现代社会中,计算机视觉技术得到了越来越广泛的应用,其中的 object detection 技术更是常常涉及各个领域。目前,已经有很多的 object detection 开源框架可供选择,但是要实现一个 object detection 的应用还是需要借助很多工具和调试。

近些年来引入了很多基于 JavaScript/TypeScript 的 object detection 库, 通过将这些库打包成 npm 包,我们可以很方便地在我们的项目中使用它们,这些库包括 object-detectionface-api.js 等,它们都允许我们更加便捷地实现 object detection 的功能。

本篇文章中,我们会给出一篇实现 object detection 的教程,通过介绍 object-detection 库的使用来为想要学习这方面知识的读者提供指导和帮助。

介绍

object-detection 是一款基于 tensorflowobject detection 库。

有了它,在不使用任何网络的情况下,我们就可以轻松地为我们的应用程序添加 object detection 的功能,它在浏览器中运行的时候只会使用CPU进行计算,同时还支持在 Node.js 中使用 GPU 计算来获得更快的计算速度。

object-detection 的特点如下:

  • 支持多种模型训练方式:包括从头开始训练以及基于预训练模型进行的微调;

  • 支持多种体系结构:包括 SSD,FasterRCNN (更多的框架正在不断添加中)。

  • 支持多种数据格式:包括 TensorFlow.js models,TensorFlow SavedModels,TensorFlow frozen models,以及 TensorFlow checkpoints,

  • 支持 Node.js 和浏览器

在本文中,我们将演示如何使用 object-detection 来识别一张图片中的人脸,并且思考如何将它应用在实际项目中去。

安装

首先,在项目的根目录下,打开终端并运行以下命令来安装 object-detection :

解析代码

在安装 object-detection 之后,我们还需要安装一些其他必要的库: tfjs(TensorFlow 神经网络库) 和 tfjs-backend-cpu(CPU 后端)。

这些库都已经准备好了,现在就可以开始写代码了。

首先,我们需要在我们的代码中引入 object-detection

下一步, 我们需要创建一个新的 ObjectDetection 实例。

-- -------------------- ---- -------
----- --------------- - --- -----------------
  ------ ------------------------
  -- --------- ---------------------------------------------------------
  -- ------ ---------------------
  -- -------------------- ------
  -- --------------------- ------
  -- ------------- -----
  ------ -----
--

这里我们选择的是 ssd_mobilenet_v1_coco 模型,这是一个轻型的神经网络,它可以在 CPU 上高效地运行,同时在 COCO 数据集上训练良好。这个模型的主要优点在于它能够以实时的速度运行,同时还能够在检测中提供相对准确的结果。

如果你想用你自己的模型来替换 ssd_mobilenet_v1_coco,只需要修改配置对象的相关值就可以了,同时记得同时修改其自带的 weight!

然后,我们需要调用 initialize 方法来初始化模型:

在模型初始化之后,我们就可以使用 detect 方法来检测图像中的物体。我们需要先传入图像的 url 地址,检测完成后我们会获得检测结果的数组。

示例代码

下面是一段完整的示例代码。

-- -------------------- ---- -------
------ --------------- ---- -------------------

----- -------- ----- -
  --- -
    ----- --------------- - --- -----------------
      ------ ------------------------
      -- --------- ---------------------------------------------------------
      -- ------ ---------------------
      -- -------------------- ------
      -- --------------------- ------
      -- ------------- -----
      ------ -----
    ---

    ----- -----------------------------

    ----- ---------- - ----- --------------------------------------------

    ------------------------
  - ----- ------- -
    ---------------------
  -
-

------

总结

在这篇文章中,我们介绍了如何使用 object-detection 库来识别一张图片中的物体。通过这个例子,我们可以发现 object-detection 非常强大、灵活,并且易于使用。

当然,这只是一篇介绍性的文章,我们只是碰触了这个库的表面,如果你想在开发中应用这个库,还需要进一步学习和了解它的更多特点和能力。

不管如何,有了这篇文章的指导,使用 object-detection 库去实现一些真正有用的应用已经变得异常的容易。希望这篇文章可以对读者有所帮助,祝大家都可以找到好的应用!

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005681481e8991b448e436d

纠错
反馈