您现在的位置是:主页 > news > 大岭山仿做网站/怎么创建域名

大岭山仿做网站/怎么创建域名

admin2025/6/3 0:21:06news

简介大岭山仿做网站,怎么创建域名,做网站的流程视频教程,聚来宝网站建设nb-iot该项目探讨了如何将机器学习应用于物联网。 更详细地说,作为物联网平台,我们将使用Android Things ;作为机器学习引擎,我们将使用Google TensorFlow 。 如今,机器学习是物联网中最有趣的技术主题之一。 为了给机…

大岭山仿做网站,怎么创建域名,做网站的流程视频教程,聚来宝网站建设nb-iot该项目探讨了如何将机器学习应用于物联网。 更详细地说,作为物联网平台,我们将使用Android Things ;作为机器学习引擎,我们将使用Google TensorFlow 。 如今,机器学习是物联网中最有趣的技术主题之一。 为了给机…
nb-iot

nb-iot

该项目探讨了如何将机器学习应用于物联网。 更详细地说,作为物联网平台,我们将使用Android Things ;作为机器学习引擎,我们将使用Google TensorFlow 。 如今,机器学习是物联网中最有趣的技术主题之一。 为了给机器学习一个简单的定义,可以用Wikipedia定义:

机器学习是计算机科学的一个领域,它使计算机系统能够“学习”(即逐步提高特定任务的性能)数据,而无需进行明确的编程。

换句话说,在训练步骤之后,即使系统没有专门针对结果进行编程,也可以预测结果。 另一方面,我们都知道物联网和连接设备的概念。 最有前途的主题之一是如何将机器学习应用于物联网,构建专家系统,以便有可能开发一种能够“学习”的系统。 而且,它使用此知识来控制和管理物理对象。

在机器学习和物联网应用中产生重要价值的领域有几个,仅举几个有趣的领域,它们是:

  • 工业物联网(IIoT)的预测性维护
  • 消费物联网,通过机器赚钱可以使设备智能化,从而适应我们的习惯

在本教程中,我们想探索如何使用Android Things和TensorFlow将机器学习应用于IoT。 这个Android Things IoT项目背后的基本思想是探索如何构建能够识别一些基本形状(如箭头)并以此方式控制机器人方向的机器人汽车。 我们已经介绍了如何使用Android Things构建机器人汽车,因此建议您在开始该项目之前先阅读本教程。

这个机器学习和物联网项目涵盖以下主要主题:

  • 如何使用Docker设置TensorFlow环境
  • 如何训练TensorFlow系统
  • 如何将TensorFlow与Android Things集成
  • 如何使用TensorFlow结果控制机器人车

该项目源自Android Things TensorFlow图像分类器。

让我们开始吧!

如何在Tensorflow中创建图像分类器

在开始之前,有必要安装和配置TensorFlow环境。 我不是机器学习专家,所以我需要快速找到可用的东西,以便我们构建TensorFlow图像分类器。 因此,我们可以使用Docker运行TensorFlow的映像。 按着这些次序:

  1. 克隆TensorFlow存储库:
    git clone https://github.com/tensorflow/tensorflow.git
    cd /tensorflow
    git checkout v1.5.0
  2. 创建一个目录( /tf-data ),该目录将保存我们在项目期间将使用的所有文件。
  3. 运行Docker:
    docker run -it \
    --volume /tf-data:/tf-data \
    --volume /tensorflow:/tensorflow \
    --workdir /tensorflow tensorflow/tensorflow:1.5.0 bash

    使用此命令,我们运行交互式TensorFlow环境,并安装一些在项目期间将使用的目录

如何训练TensorFlow

在Android Things系统能够识别图像之前,必须训练TensorFlow引擎,以便它可以构建其模型。 为此,有必要收集多个图像。 如前所述,我们想使用箭头来控制Android Things机器人车,以便我们必须至少收集四种箭头类型:

  • 向上箭头
  • 向下箭头
  • 左箭头
  • 右箭头

要训​​练系统,必须创建具有这四个不同图像类别的“知识基础”。 在/tf-data创建一个名为images的目录,并在其下创建四个子目录,这些子目录分别为:

  • 向上箭头
  • 下箭头
  • 左箭头
  • 右箭头

现在是时候寻找图像了。 我使用过Google图片搜索,但是您也可以使用其他方法。 为了简化图片下载过程,您应该安装一个Chrome插件,只需单击一下即可下载所有图片。 不要忘记下载更多图像,这是训练过程,即使创建模型的时间可能会增加。

打开浏览器,然后开始寻找四个图像类别:

我为每个类别下载了80张图像。 不在乎图像扩展。

一旦所有类别都有其图像,请按照以下步骤操作(在Docker界面中):

python /tensorflow/examples/image_retraining/retrain.py \ 
--bottleneck_dir=tf_files/bottlenecks \
--how_many_training_steps=4000 \
--output_graph=/tf-data/retrained_graph.pb \
--output_labels=/tf-data/retrained_labels.txt \
--image_dir=/tf-data/images

可能需要一些时间,因此请耐心等待。 最后,您应该在/tf-data文件夹中有两个文件:

  1. retrained_graph.pb
  2. retrained_labels.txt

第一个文件包含TensorFlow训练过程的结果,而第二个文件包含与我们的四个图像类别相关的标签。

如何测试Tensorflow模型

如果要测试模型以检查一切是否正常,可以使用以下命令:

python scripts.label_image \
--graph=/tf-data/retrained-graph.pb \
--image=/tf-data/images/[category]/[image_name.jpg]

优化模型

在我们在Android Things项目中使用此TensorFlow模型之前,有必要对其进行优化:

python /tensorflow/python/tools/optimize_for_inference.py \
--input=/tf-data/retrained_graph.pb \
--output=/tf-data/opt_graph.pb \
--input_names="Mul" \
--output_names="final_result"

这就是我们拥有的模型。 我们将使用此模型将机器学习应用于IoT,或更详细地将Android Things与TensorFlow集成在一起。 目标是将智能识别功能应用于Android Things应用,以识别箭头图像并做出React,从而控制机器人的行车方向。

如果您想了解有关TensorFlow以及如何生成模型的更多详细信息,请参阅官方文档和本教程。

如何使用Android Things和TensorFlow将机器学习应用于IoT

一旦TensorFlow数据模型准备就绪,我们就可以进行下一步:如何将Android Things与TensorFlow集成。 为此,我们可以将该任务分为两个步骤:

  1. 硬件部分,我们将电机和其他外围设备连接到Android Things板
  2. 实施应用

Android Things示意图

在深入探讨如何连接外设之前,这是此Android Things项目中使用的组件的列表:

  1. Android Things开发板(Raspberry Pi 3)
  2. 树莓派相机
  3. 一个LED
  4. LN298N双H桥(用于控制电动机)
  5. 具有两个轮子的机器人汽车底盘

我不会再介绍如何使用Android Things控制电机,因为我们在上一篇文章中已经介绍过。

在原理图下方:

在上图中,未显示相机。 最终结果是:

使用TensorFlow实施Android Things应用

最后一步是实现Android Things应用。 为此,我们可以重用Github中可用的示例TensorFlow图像分类器。 开始之前,请克隆Github存储库,以便您可以修改源代码。

此Android Things应用与原始应用不同,因为:

  1. 它不使用按钮启动相机来捕获图像
  2. 它使用不同的模型
  3. 当LED停止闪烁时,它会使用闪烁的LED来通知相机将拍摄照片
  4. 当TensorFlow检测到图像时(箭头),它将控制电动机。 此外,在从步骤3开始循环之前,它会打开电动机5秒钟。

要处理闪烁的LED,请使用以下代码:

private Handler blinkingHandler = new Handler();
private Runnable blinkingLED = new Runnable() {@Overridepublic void run() {try {// If the motor is running the app does not start the camif (mc.getStatus())return ;Log.d(TAG, "Blinking..");mReadyLED.setValue(!mReadyLED.getValue());if (currentValue <= NUM_OF_TIMES) {currentValue++;blinkingHandler.postDelayed(blinkingLED, BLINKING_INTERVAL_MS);}else {mReadyLED.setValue(false);currentValue = 0;mBackgroundHandler.post(mBackgroundClickHandler);}} catch (IOException e) {e.printStackTrace();}}
};

当LED停止闪烁时,应用程序将捕获图像。

现在必须集中精力于如何根据检测到的图像来控制电动机。 修改方法:

@Override
public void onImageAvailable(ImageReader reader) {final Bitmap bitmap;try (Image image = reader.acquireNextImage()) {bitmap = mImagePreprocessor.preprocessImage(image);}final List<Classifier.Recognition> results = mTensorFlowClassifier.doRecognize(bitmap);Log.d(TAG, "Got the following results from Tensorflow: " + results);// Check the resultif (results == null || results.size() == 0) {Log.d(TAG, "No command..");blinkingHandler.post(blinkingLED);return ;}Classifier.Recognition rec = results.get(0);Float confidence = rec.getConfidence();Log.d(TAG, "Confidence " + confidence.floatValue());if (confidence.floatValue() < 0.55) {Log.d(TAG, "Confidence too low..");blinkingHandler.post(blinkingLED);return ;}String command = rec.getTitle();Log.d(TAG, "Command: " + rec.getTitle());if (command.indexOf("down") != -1)mc.backward();else if (command.indexOf("up") != -1)mc.forward();else if (command.indexOf("left") != -1)mc.turnLeft();else if (command.indexOf("right") != -1)mc.turnRight();
}

在这种方法中,TensorFlow返回与所捕获图像匹配的可能标签后,应用程序会将结果与可能的方向进行比较,从而控制电机。

最后,是时候使用开始时创建的模型了。 复制资产文件夹下的opt_graph.pbreatrained_labels.txt替换现有文件。

打开Helper.java并修改以下几行:

public static final int IMAGE_SIZE = 299;
private static final int IMAGE_MEAN = 128;
private static final float IMAGE_STD = 128;
private static final String LABELS_FILE = "retrained_labels.txt";
public static final String MODEL_FILE = "file:///android_asset/opt_graph.pb";
public static final String INPUT_NAME = "Mul";
public static final String OUTPUT_OPERATION = "output";
public static final String OUTPUT_NAME = "final_result";

运行该应用程序,并向相机显示箭头,并查看结果,玩得开心。 机器人汽车必须按照所示箭头移动。

概要

在本教程的最后,我们发现了如何使用Android Things和TensorFlow将机器学习应用于IoT。 我们可以使用图像控制机器人汽车,并根据显示的图像移动机器人汽车。

翻译自: https://www.javacodegeeks.com/2018/03/apply-machine-learning-iot-using-android-things-tensorflow.html

nb-iot