diff --git a/new/master-cv-tf-2x/11.md b/new/master-cv-tf-2x/11.md index 8f2a8954d86f6946e2561a38e9fed58ce2ad2a57..25d0241ccb6dcfb900fda74bb498c05e32a18abb 100644 --- a/new/master-cv-tf-2x/11.md +++ b/new/master-cv-tf-2x/11.md @@ -780,7 +780,7 @@ $interpreter = tf.lite.Interpreter(model_path=args.model_file) 现在,让我们执行以下步骤进行图像分类: -1. 使用文件管理器转到`image_classification`目录,即`pi/examples/lite/examples/image_classification/raspberry_pi`。 您将看到一个名为`classify_picamera.py`的文件。 现在,转到 [https://www.tensorflow.org/lite/guide/hosted_models](https://www.tensorflow.org/lite/guide/hosted_models) 并下载对象检测模型以及名为`mobilenet_v2_1.0_224.tflite`和`labels_mobilenet_v2_1.0_224.txt`的`label`文件文件夹。 将这些文件复制到`pi/examples/lite/examples/image_classification/raspberry_pi`中。 +1. 使用文件管理器转到`image_classification`目录,即`pi/examples/lite/examples/image_classification/raspberry_pi`。 您将看到一个名为`classify_picamera.py`的文件。 现在,转到[这里](https://www.tensorflow.org/lite/guide/hosted_models)并下载对象检测模型以及名为`mobilenet_v2_1.0_224.tflite`和`labels_mobilenet_v2_1.0_224.txt`的`label`文件文件夹。 将这些文件复制到`pi/examples/lite/examples/image_classification/raspberry_pi`中。 2. 接下来,使用`pi/examples/lite/examples/image_classification/raspberry_pi`使用终端转到目录并执行以下命令: @@ -795,7 +795,7 @@ $Python3 classify_picamera.py –model mobilenet_v2_1.0_224.tflite –labels lab 在 Raspberry Pi 上安装 TensorFlow lite 之后,我们现在可以执行对象检测。 按着这些次序: 1. 使用文件管理器进入对象检测目录,即`pi/examples/lite/examples/object_detection/raspberry_pi`。 您将看到一个名为`detect_picamera.py`的文件。 -2. 现在,转到 [https://www.tensorflow.org/lite/guide/hosted_models](https://www.tensorflow.org/lite/guide/hosted_models) 并下载名为`coco_ssd_mobilenet_v1_1.0_quant_2018_06_29`的对象检测模型和标签文件文件夹。 在此文件夹中,您将看到两个文件:`detect.tflite`和`labelmap.txt`。 +2. 现在,转到[这里](https://www.tensorflow.org/lite/guide/hosted_models)并下载名为`coco_ssd_mobilenet_v1_1.0_quant_2018_06_29`的对象检测模型和标签文件文件夹。 在此文件夹中,您将看到两个文件:`detect.tflite`和`labelmap.txt`。 3. 将这些文件复制到`pi/examples/lite/examples/object_detection/raspberry_pi`中。 4. 接下来,使用`pi/examples/lite/examples/object_detection/raspberry_pi`使用终端转到对象检测目录,并执行以下命令: @@ -825,7 +825,7 @@ $Python3 detect_picamera.py –model detect.tflite –labels labelmap.txt # 适用于 iPhone 的 TensorFlow Lite 转换模型 -在本节中,我们将描述如何在 iPhone 上使用 tflite 模型进行对象检测。 有关详细信息,请参阅以下 GitHub 页面上概述的步骤: [https://github.com/tensorflow/examples/tree/master/lite/examples/image_classification/ios](https://github.com/tensorflow/examples/tree/master/lite/examples/image_classification/ios) 。 +在本节中,我们将描述如何在 iPhone 上使用 tflite 模型进行对象检测。 有关详细信息,[请参阅以下 GitHub 页面上概述的步骤](https://github.com/tensorflow/examples/tree/master/lite/examples/image_classification/ios)。 本质上,该过程可以分为以下步骤: @@ -868,7 +868,7 @@ $pod install # 核心 ML -Core ML 是 Apple 的机器学习框架,该框架集成了来自 TensorFlow 等各种来源的神经网络模型,并在必要时进行了转换,然后优化了 GPU / CPU 性能以进行设备上的训练和推理,同时最大程度地减小了应用程序尺寸和功耗。 在 WWDC 2019 中引入的 Core ML 3 更新了设备上特定用户数据的神经网络模型,从而消除了设备到云的交互并最大程度地提高了用户隐私。 有关更多信息,请访问 [https://developer.apple.com/machine-learning/core-ml](https://developer.apple.com/machine-learning/core-ml) 。 Core ML 本身建立在诸如 Accelerate 和 BNNS 以及 Metal Performance Shaders 之类的低级基元之上。 所有 Core ML 模型均具有`.mlmodel`扩展名。 +Core ML 是 Apple 的机器学习框架,该框架集成了来自 TensorFlow 等各种来源的神经网络模型,并在必要时进行了转换,然后优化了 GPU / CPU 性能以进行设备上的训练和推理,同时最大程度地减小了应用程序尺寸和功耗。 在 WWDC 2019 中引入的 Core ML 3 更新了设备上特定用户数据的神经网络模型,从而消除了设备到云的交互并最大程度地提高了用户隐私。 有关更多信息,请访问[这里](https://developer.apple.com/machine-learning/core-ml)。 Core ML 本身建立在诸如 Accelerate 和 BNNS 以及 Metal Performance Shaders 之类的低级基元之上。 所有 Core ML 模型均具有`.mlmodel`扩展名。 Core ML 的核心部分是 Create ML,它是用于图像分类和对象检测的 Apple 机器学习框架。 该系统类似于 TensorFlow,但使用零编码生成模型更容易。 在 macOS 上,打开 Xcode 并输入`.mlmodel`,如以下屏幕截图所示: @@ -889,7 +889,7 @@ Core ML 的核心部分是 Create ML,它是用于图像分类和对象检测 * 最终的训练损失为 0.83,这表明结果非常好–任何低于 1 的值都应表明检测良好。 请注意,仅使用 68 张图像即可获得该图像,这表明我们不需要大量图像即可开发出良好的神经网络模型。 * 请注意,与 TensorFlow 相比,使用 Create ML 开发模型非常容易-绝对零编码,无需转换,也无需前往单独的站点即可查看图表。 一切都紧凑且易于使用。 -开发模型后,将其移植到以下用 Swift 编写的视觉框架。 它将检测带有边界框的对象: [https://developer.apple.com/documentation/vision/recognizing_objects_in_live_capture](https://developer.apple.com/documentation/vision/recognizing_objects_in_live_capture) 。 +开发模型后,将其移植到以下用 Swift 编写的视觉框架。 [它将检测带有边界框的对象](https://developer.apple.com/documentation/vision/recognizing_objects_in_live_capture)。 以下是有关应用程序开发的一些注意事项: @@ -921,20 +921,20 @@ Core ML 的核心部分是 Create ML,它是用于图像分类和对象检测 许多企业将标签工作作为其核心业务模型之一。 每个云服务提供商都与人类标签商合作,为神经网络开发工作执行准确的图像标签服务。 以下是有关在哪里可以找到第三方数据标签服务的一些信息。 请注意,此列表并不全面,因此请在此列表之外进行自己的研究,以找到适合您需求的数据标签服务: -* Google Cloud –数据标签。 有关详细信息,请转到 [https://cloud.google.com/ai-platform/data-labeling/docs](https://cloud.google.com/ai-platform/data-labeling/docs) 。 -* Amazon Sagemaker 地面真相–使用 Amazon Mechanical Turk 进行数据标记。 有关详细信息,请转到 [https://aws.amazon.com/sagemaker/groundtruth](https://aws.amazon.com/sagemaker/groundtruth) 。 -* Hive AI 数据标签服务。 有关详细信息,请转到 [https://thehive.ai](https://thehive.ai) 。 -* Cloud Factory 数据标签服务。 有关详细信息,请转到 [https://www.cloudfactory.com](https://www.cloudfactory.com) 。 +* Google Cloud –数据标签。 有关详细信息,请转到[这里](https://cloud.google.com/ai-platform/data-labeling/docs)。 +* Amazon Sagemaker 地面真相–使用 Amazon Mechanical Turk 进行数据标记。 有关详细信息,请转到[这里](https://aws.amazon.com/sagemaker/groundtruth)。 +* Hive AI 数据标签服务。 有关详细信息,请转到[这里](https://thehive.ai)。 +* Cloud Factory 数据标签服务。 有关详细信息,请转到[这里](https://www.cloudfactory.com)。 数据标记服务的成本可能会很高。 # 自动或半自动贴标 -在本节中,我们将讨论一个完全免费的自动注释工具,该工具应减少人工标记的程度。 这是英特尔的**计算机视觉注释工具**( **CVAT** )工具,它非常有前途,仅通过加载模型即可执行完整的自动注释作为起点。 您可以在 [https://software.intel.com/zh-cn/articles/computer-vision-annotation-tool-a-universal-approach-to-data-annotation](https://software.intel.com/en-us/articles/computer-vision-annotation-tool-a-universal-approach-to-data-annotation) 中找到有关该工具的更多信息。 。 +在本节中,我们将讨论一个完全免费的自动注释工具,该工具应减少人工标记的程度。 这是英特尔的**计算机视觉注释工具**( **CVAT** )工具,它非常有前途,仅通过加载模型即可执行完整的自动注释作为起点。 您可以在[这个页面](https://software.intel.com/en-us/articles/computer-vision-annotation-tool-a-universal-approach-to-data-annotation)中找到有关该工具的更多信息。 。 该工具能够为边界框,多边形和语义分段创建注释,并且还可以执行自动注释。 该工具可以将注释输出为 VOC XML,JSON TXT 或 TFRecord 文件。 这意味着,如果您使用该工具,则无需将图像转换为 TFRecord 形式–您可以直接训练神经网络。 请按照以下步骤学习如何使用该工具: -1. 执行必要的安装。 所有说明均在终端中执行,包括安装 Docker,构建 Docker 映像以及克隆 CVAT 源代码。 可以在 [https://github.com/opencv/cvat/blob/master/cvat/apps/documentation/installation.md](https://github.com/opencv/cvat/blob/master/cvat/apps/documentation/installation.md) 中找到更多信息。 +1. 执行必要的安装。 所有说明均在终端中执行,包括安装 Docker,构建 Docker 映像以及克隆 CVAT 源代码。 可以在[这个页面](https://github.com/opencv/cvat/blob/master/cvat/apps/documentation/installation.md)中找到更多信息。 2. 通过转到[这里](https://github.com/opencv/cvat/blob/master/components/tf_annotation/README.md),安装已在 coco 数据集上训练的 Faster R-CNN ResNet 初始 Atrous 模型。 3. 安装 OpenVINO 模型。 如果您使用的是 TensorFlow,则无需安装 OpenVINO 模型-只需直接转到*步骤 4* 。 但是,如果要使用 Intel Open Model Zoo 中的模型或您自己的自定义模型,[请遵循此链接上的说明](https://github.com/opencv/cvat/blob/master/cvat/apps/auto_annotation/README.md)。 4. 打开谷歌浏览器,然后输入`localhost:8080`。 这将打开 CVAT。 请注意,CVAT 当前仅可在 Google Chrome 浏览器上使用。 diff --git a/new/master-cv-tf-2x/12.md b/new/master-cv-tf-2x/12.md index 97c5493882f913dab43d634f859837116ce766ae..a92f4c2e0e6bc9c9fc6b2455f794094975e302f3 100644 --- a/new/master-cv-tf-2x/12.md +++ b/new/master-cv-tf-2x/12.md @@ -15,7 +15,7 @@ # 在 GCP 中训练对象检测器 -在前两章中,我们学习了如何设置 Google Colab 以使用 SSD,R-CNN 和 R-FCN 以及 Inception 和 MobileNet 作为骨干预训练网络来训练自定义对象检测器。 我们的网络用于检测汉堡和薯条。 在本节中,我们将学习如何使用 GCP 执行相同的任务。 您也可以在 [https://medium.com/tensorflow/training-and-serving-a-realtime-mobile-object-detector-in-30-minutes-with-cloud-中找到这项工作的详细说明。 tpus-b78971cf1193](https://medium.com/tensorflow/training-and-serving-a-realtime-mobile-object-detector-in-30-minutes-with-cloud-tpus-b78971cf1193) 。 +在前两章中,我们学习了如何设置 Google Colab 以使用 SSD,R-CNN 和 R-FCN 以及 Inception 和 MobileNet 作为骨干预训练网络来训练自定义对象检测器。 我们的网络用于检测汉堡和薯条。 在本节中,我们将学习如何使用 GCP 执行相同的任务。 您也可以在[这里](https://medium.com/tensorflow/training-and-serving-a-realtime-mobile-object-detector-in-30-minutes-with-cloud-tpus-b78971cf1193)。 我从上一篇文章开始,但是发现必须精简许多部分,并且需要添加其他详细信息才能使其在我的 Ubuntu PC 上运行。 以下小节提供了使用 GCP 训练目标探测器的分步过程。 @@ -23,7 +23,7 @@ # 在 GCP 中创建项目 -在本节中,将在 GCP 中创建一个项目。 一个项目包括账单,数据存储,API,身份验证和团队成员信息,以开始您的培训工作。 GCP 是 Google 的机器学习平台,用于存储,构建,训练和部署模型。 通过转到 [https://console.cloud.google.com](https://accounts.google.com/signin/v2/identifier?service=cloudconsole&passive=1209600&osid=1&continue=https%3A%2F%2Fconsole.cloud.google.com%2F%3Fref%3Dhttps%3A%2F%2Fwww.google.com%2F&followup=https%3A%2F%2Fconsole.cloud.google.com%2F%3Fref%3Dhttps%3A%2F%2Fwww.google.com%2F&flowName=GlifWebSignIn&flowEntry=ServiceLogin) 登录到 GCP 控制台。 +在本节中,将在 GCP 中创建一个项目。 一个项目包括账单,数据存储,API,身份验证和团队成员信息,以开始您的培训工作。 GCP 是 Google 的机器学习平台,用于存储,构建,训练和部署模型。 通过转到[这里](https://accounts.google.com/signin/v2/identifier?service=cloudconsole&passive=1209600&osid=1&continue=https%3A%2F%2Fconsole.cloud.google.com%2F%3Fref%3Dhttps%3A%2F%2Fwww.google.com%2F&followup=https%3A%2F%2Fconsole.cloud.google.com%2F%3Fref%3Dhttps%3A%2F%2Fwww.google.com%2F&flowName=GlifWebSignIn&flowEntry=ServiceLogin)登录到 GCP 控制台。 首先,使用您的 Gmail ID 和密码登录,您将看到以下控制台: @@ -33,7 +33,7 @@ # GCP 设置 -转到 [https://console.cloud.google.com](https://console.cloud.google.com/home/dashboard?project=first-site-193522) 设置 GCP 并使用您的 Gmail 帐户登录。 在上一节的屏幕快照中,有三个矩形框,它们是您需要设置的三个主要部分。 步骤概述如下: +转到[这里](https://console.cloud.google.com/home/dashboard?project=first-site-193522)设置 GCP 并使用您的 Gmail 帐户登录。 在上一节的屏幕快照中,有三个矩形框,它们是您需要设置的三个主要部分。 步骤概述如下: 1. 首先,单击“转到项目设置”,为项目命名,然后分配团队成员(如果要由多个人从事该项目)。 2. 然后,点击左侧的帐单并提供您的信用卡信息。 在撰写本文时,Google 提供了$ 300 的免费试用额度,但您仍需要提供信用卡信息。 @@ -147,7 +147,7 @@ $ gcloud projects add-iam-policy-binding $PROJECT --member serviceAccount:$ # 安装 TensorFlow 对象检测 API -现在我们已经将 Terminal 链接到存储桶和 Google Cloud 项目,下一步是将其链接到 TensorFlow 对象检测 API。 请遵循 [https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/installation.md](https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/installation.md) 提供的一组说明。 +现在我们已经将 Terminal 链接到存储桶和 Google Cloud 项目,下一步是将其链接到 TensorFlow 对象检测 API。 请遵循[这里](https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/installation.md)提供的一组说明。 前面的安装链接包含许多未在此处列出的代码行。 您将能够正确执行大多数代码。 此过程的最后两行代码描述如下: @@ -163,7 +163,7 @@ python object_detection/builders/model_builder_test.py AttributeError: module 'tensorflow' has no attribute 'contrib' ``` -即使此错误已解决,也会导致另一个与 TensorFlow 2.0 与 TensorFlow 对象检测 API 不兼容有关的错误。 因此,我们将改为描述替代路径。 另一种选择是使用 [https://github.com/tensorflow/models/tree/v1.13.0](https://github.com/tensorflow/models/tree/v1.13.0) ,类似于我们在[中使用 TensorFlow 1.15 在 Google Colab 中运行它。 第 10 章](../Text/10.html),*使用 R-CNN,SSD 和 R-FCN 进行对象检测*和[第 11 章](../Text/11.html),*在具有 CPU / GPU 优化功能的边缘设备上进行深度学习[* 。 +即使此错误已解决,也会导致另一个与 TensorFlow 2.0 与 TensorFlow 对象检测 API 不兼容有关的错误。 因此,我们将改为描述替代路径。 另一种选择是使用[这里](https://github.com/tensorflow/models/tree/v1.13.0),类似于我们在第 10 章“使用 R-CNN,SSD 和 R-FCN 进行对象检测”,和第 11 章“在具有 CPU / GPU 优化功能的边缘设备上进行深度学习”中使用 TensorFlow 1.15 在 Google Colab 中运行它。 # 准备数据集 @@ -213,9 +213,7 @@ Operation completed over 1 objects/75.0 B. 在本节中,我们将学习如何下载预训练模型的检查点文件。 检查点是模型的权重。 这些权重将被上传到 GCS 存储桶,以使用转移学习来开始训练: -1. 转到 TensorFlow Model Zoo GitHub 页面并下载适当的`model.tar`文件: - -[https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md](https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md) +1. [转到 TensorFlow Model Zoo GitHub 页面并下载适当的`model.tar`文件](https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md)。 2. 以下是我们下载的相应文件的解压缩版本: @@ -248,7 +246,7 @@ models-master/research/object-detection/samples/configs 请注意,在撰写本文时,仅在 TensorFlow 1.x 中提供了先前的目录,而在 2.x 中则没有。 因此,如果您的 PC 上安装了 TensorFlow 2.0,请使用下面讨论的替代步骤来获取`config`文件。 -或者,您可以转到 [https://github.com/tensorflow/models/tree/master/research/object_detection/samples/configs](https://github.com/tensorflow/models/tree/master/research/object_detection/samples/configs) ,然后在文本编辑器中复制`config`文件。 也可以从前面的链接下载相应的`.config`文件。 +或者,您可以转到[这里](https://github.com/tensorflow/models/tree/master/research/object_detection/samples/configs),然后在文本编辑器中复制`config`文件。 也可以从前面的链接下载相应的`.config`文件。 以下列表显示了`config`文件中需要进行的更改: @@ -292,7 +290,7 @@ $ gcloud ml-engine jobs submit training `whoami`_object_detection_eval_validatio $ gcloud ai-platform jobs describe krishkar_object_detection_1111111111 ``` -在此,末尾的数字对于您的应用程序将有所不同,并将在终端中显示出来。 键入前面的命令后,您可以在 [https://console.cloud.google.com/mlengine/jobs/xxxxx_eval_validation_1111111111?project=rcnn-trainingpack](https://console.cloud.google.com/mlengine/jobs/xxxxx_eval_validation_1111111111?project=rcnn-trainingpack) 中检查训练作业。 +在此,末尾的数字对于您的应用程序将有所不同,并将在终端中显示出来。 键入前面的命令后,您可以在[这个页面](https://console.cloud.google.com/mlengine/jobs/xxxxx_eval_validation_1111111111?project=rcnn-trainingpack)中检查训练作业。 请注意,URL 的`xxxxx`和`1111111111`部分只是示例; 您的价值将有所不同,并会在终端中显示出来。 @@ -306,7 +304,7 @@ $ gcloud ai-platform jobs describe krishkar_object_detection_1111111111 tensorboard --logdir=gs://${YOUR_GCS_BUCKET}/train ``` -运行上述命令后,如果遇到错误,例如`ValueError: Duplicate plugins for name projector`,则从 [https://raw.githubusercontent.com/tensorflow/tensorboard/master/tensorboard/复制`diagnose_tensorboard.py`作为文本文件。 tools / diagnose_tensorboard.py](https://raw.githubusercontent.com/tensorflow/tensorboard/master/tensorboard/tools/diagnose_tensorboard.py) 并将其保存到您的目录中。 +运行上述命令后,如果遇到错误,例如`ValueError: Duplicate plugins for name projector`,则从[这里](https://raw.githubusercontent.com/tensorflow/tensorboard/master/tensorboard/tools/diagnose_tensorboard.py)并将其保存到您的目录中。 2. 在终端中,转到`diagnose_tensorboard.py`的安装目录并执行以下命令: @@ -386,7 +384,7 @@ $ python diagnose_tensorboard.py $export OUTPUT_DIR=/tmp/tflite ``` -4. 然后,根据 [https://github.com/tensorflow/models/tree/master/research/object_detection/dockerfiles/android](https://github.com/tensorflow/models/tree/master/research/object_detection/dockerfiles/android) 中的描述,从 Docker 文件在终端中执行以下命令。 +4. 然后,根据[这个页面](https://github.com/tensorflow/models/tree/master/research/object_detection/dockerfiles/android)中的描述,从 Docker 文件在终端中执行以下命令。 Docker 是一种虚拟机,使开发人员可以将应用程序及其所有组件打包在一起。 对于 TensorFlow,使用 Docker 的优势是将 TensorFlow 安装与 PC 操作系统隔离。 这种隔离消除了我们之前观察到的许多与 TensorFlow 相关的错误: @@ -426,9 +424,7 @@ import numpy as np ``` -可以在以下 GitHub 链接中找到此转换的代码: - -[https://github.com/PacktPublishing/Mastering-Computer-Vision-with-TensorFlow-2.0/blob/master/Chapter12/Chapter12_Gcloud_Tensorflow_TrainedModelConvert.ipynb](https://github.com/PacktPublishing/Mastering-Computer-Vision-with-TensorFlow-2.0/blob/master/Chapter12/Chapter12_Gcloud_Tensorflow_TrainedModelConvert.ipynb) +[可以在以下 GitHub 链接中找到此转换的代码](https://github.com/PacktPublishing/Mastering-Computer-Vision-with-TensorFlow-2.0/blob/master/Chapter12/Chapter12_Gcloud_Tensorflow_TrainedModelConvert.ipynb)。 因此,总而言之,下图表示在 GCP 上训练自定义对象检测器的流程图: @@ -438,7 +434,7 @@ import numpy as np # 在 AWS SageMaker 云平台中训练对象检测器 -AWS( [https://aws.amazon.com](https://aws.amazon.com) )是用于在云中执行各种任务的 Amazon 云平台。 AWS SageMaker 是机器学习平台,用于使用 AWS 交互式平台训练和部署模型。 AWS SageMaker 与 AWS S3 存储桶进行交互以存储和检索数据。 下一节将介绍训练对象检测器的分步过程。 +[AWS](https://aws.amazon.com) 是用于在云中执行各种任务的 Amazon 云平台。 AWS SageMaker 是机器学习平台,用于使用 AWS 交互式平台训练和部署模型。 AWS SageMaker 与 AWS S3 存储桶进行交互以存储和检索数据。 下一节将介绍训练对象检测器的分步过程。 # 设置一个 AWS 账户,账单和限额 @@ -454,7 +450,7 @@ ResourceLimitExceeded AWS SageMaker 批注数据使用 JSON 格式而不是我们之前使用的`.xml`。 通过以下步骤将`.xml`文件转换为 COCO JSON 格式: -1. 从 [https://github.com/yukkyo/voc2coco](https://github.com/yukkyo/voc2coco) 下载或克隆存储库。 +1. 从[这里](https://github.com/yukkyo/voc2coco)下载或克隆存储库。 2. 克隆存储库并下载后,进入终端 `voc2coco.py` Python 文件所在的目录。 3. 创建一个名为`trainxml`的目录,其中包含所有`.xml`文件。 该目录应与`voc2coco.py`位于相同的主目录中。 @@ -470,7 +466,7 @@ $ python voc2coco.py --ann_dir trainxml --ann_ids trainlist.txt --labels clas 最终输出是`cocoformat.JSON`文件,它是所有`.xml`文件的一个组合 JSON 文件。 7. 将`COCO JSON`文件转换为单个 JSON 文件。 -8. 然后,使用`Chapter12_cocojson_AWSJSON_train.ipynb` Jupyter Notebook 将`COCO JSON`文件转换为单个 JSON 文件。 可以在 [https://github.com/PacktPublishing/Mastering-Computer-Vision-with-TensorFlow-2.0/blob/master/Chapter12/Chapter12_cocojson_AWSJSON_train.ipynb](https://github.com/PacktPublishing/Mastering-Computer-Vision-with-TensorFlow-2.0/blob/master/Chapter12/Chapter12_cocojson_AWSJSON_train.ipynb) 上找到此文件。 这是对 Amazon 提供的对象检测代码的修改。 此代码不是从 GitHub 页面获取`COCO JSON`文件,而是从本地驱动器获取上一步中创建的`cocoformat.JSON`文件,然后将其转换为生成的文件夹中的多个`.JSON`文件。 +8. 然后,使用`Chapter12_cocojson_AWSJSON_train.ipynb` Jupyter Notebook 将`COCO JSON`文件转换为单个 JSON 文件。 可以在[这个页面](https://github.com/PacktPublishing/Mastering-Computer-Vision-with-TensorFlow-2.0/blob/master/Chapter12/Chapter12_cocojson_AWSJSON_train.ipynb)上找到此文件。 这是对 Amazon 提供的对象检测代码的修改。 此代码不是从 GitHub 页面获取`COCO JSON`文件,而是从本地驱动器获取上一步中创建的`cocoformat.JSON`文件,然后将其转换为生成的文件夹中的多个`.JSON`文件。 # 将数据上传到 S3 存储桶 @@ -504,9 +500,9 @@ s3:// sample1/DEMO/s3_checkpoint/ s3:// sample1/DEMO/s3_output_location/ ``` -5. 通过 Python 笔记本( [https://console.aws.amazon.com/sagemaker/home?region=us-east-1#/notebook-instances](https://console.aws.amazon.com/sagemaker/home?region=us-east-1#/notebook-instances) )或通过培训 API 设置培训。 [https://console.aws.amazon.com/sagemaker/home?region=us-east-1#/jobs/create](https://console.aws.amazon.com/sagemaker/home?region=us-east-1#/jobs/create) )。 +5. [通过 Python 笔记本](https://console.aws.amazon.com/sagemaker/home?region=us-east-1#/notebook-instances)或通过[培训 API](https://console.aws.amazon.com/sagemaker/home?region=us-east-1#/jobs/create) 设置培训。 6. 训练结束后,输出将存储在先前代码中定义的`s3_output_location`中,作为`model.tar.gz`文件。 检查点将存储在前面代码中定义的`s3_checkpoint`位置。 -7. 下一步将是建立推理模型。 AWS 拥​​有详细的推理分步说明,可在 [https://console.aws.amazon.com/sagemaker/home?region=us-east-1#/models/create](https://console.aws.amazon.com/sagemaker/home?region=us-east-1#/models/create) 中找到 ]。 +7. 下一步将是建立推理模型。 AWS 拥​​有详细的推理分步说明,可在[这个页面](https://console.aws.amazon.com/sagemaker/home?region=us-east-1#/models/create)中找到。 # 修复培训中的一些常见故障 @@ -602,11 +598,11 @@ s3:// sample1/DEMO/s3_output_location/ # 大规模培训和包装 -TensorFlow 有一个名为`tf.distribute.Strategy`的 API,可在多个 GPU 之间分配训练。 在 [https://cloud.google.com/ai-platform/training/docs/training-at-scale](https://cloud.google.com/ai-platform/training/docs/training-at-scale) 上详细介绍了针对 Google Cloud 的大规模培训。 +TensorFlow 有一个名为`tf.distribute.Strategy`的 API,可在多个 GPU 之间分配训练。 在[这个页面](https://cloud.google.com/ai-platform/training/docs/training-at-scale)上详细介绍了针对 Google Cloud 的大规模培训。 -使用`tf.distribute.Strategy` API 涵盖了使用 TensorFlow 进行分布式培训。 使用此 API,可以使用多个 GPU 或 TPU 分发 TensorFlow 培训。 有关分布式培训的详细概述(包括示例),请访问 [https://www.tensorflow.org/guide/distributed_training](https://www.tensorflow.org/guide/distributed_training) 。 +使用`tf.distribute.Strategy` API 涵盖了使用 TensorFlow 进行分布式培训。 使用此 API,可以使用多个 GPU 或 TPU 分发 TensorFlow 培训。 有关分布式培训的详细概述(包括示例),请访问[这里](https://www.tensorflow.org/guide/distributed_training)。 -也可以在云计算引擎中设置分布式培训。 为了启用此功能,请在 GCP 中启用 Cloud Shell。 在 TensorFlow 集群中,设置一个主服务器和多个工作程序的虚拟机实例,并在每个这些计算机上执行培训作业。 有关详细信息,您可以转到 [https://cloud.google.com/solutions/running-distributed-tensorflow-on-compute-engine](https://cloud.google.com/solutions/running-distributed-tensorflow-on-compute-engine) 。 +也可以在云计算引擎中设置分布式培训。 为了启用此功能,请在 GCP 中启用 Cloud Shell。 在 TensorFlow 集群中,设置一个主服务器和多个工作程序的虚拟机实例,并在每个这些计算机上执行培训作业。 有关详细信息,您可以转到[这里](https://cloud.google.com/solutions/running-distributed-tensorflow-on-compute-engine)。 # 应用包装 @@ -679,15 +675,15 @@ def index(): # 使用 GCP 进行视觉搜索 -GCP 具有视觉 API,可以执行基于云的图像信息,包括面部检测和图像内容分析。 有关更多详细信息,请访问 [https://cloud.google.com/vision](https://cloud.google.com/vision) 。 在以下屏幕截图中查看为沙发上传的示例结果; 检测连同视觉上类似图像的几个示例一起进行: +GCP 具有视觉 API,可以执行基于云的图像信息,包括面部检测和图像内容分析。 有关更多详细信息,请访问[这里](https://cloud.google.com/vision)。 在以下屏幕截图中查看为沙发上传的示例结果; 检测连同视觉上类似图像的几个示例一起进行: ![](img/5b0384ab-24ec-41f1-acbc-c5dc5d54730d.png) 正如我们在[第 6 章](https://cdp.packtpub.com/mastering_computer_vision_with_tensorflow_2_0/wp-admin/post.php?post=34&action=edit#post_27),*中使用转移学习*进行视觉搜索时一样,对于视觉上相似的图像,必须在图像类内进行搜索。 如果图像不是来自网络,则很可能会检测到不同类别的相似视觉图像,如此处的沙发示例所示。 但是,如果图像是从网上获取的,则匹配是精确的或非常接近的。 -在上一节中,我们学习了如何使用 GCP 进行训练。 AutoML Vision 是轻松完成此任务的另一种方法。 有关详细的分步说明,请转到 [https://cloud.google.com/vision/automl/docs/quickstart](https://cloud.google.com/vision/automl/docs/quickstart) 。 +在上一节中,我们学习了如何使用 GCP 进行训练。 AutoML Vision 是轻松完成此任务的另一种方法。 有关详细的分步说明,请转到[这里](https://cloud.google.com/vision/automl/docs/quickstart)。 -要进行视觉搜索,请转到 [https://cloud.google.com/vision/product-search/docs/quickstart](https://cloud.google.com/vision/product-search/docs/quickstart) 。 +要进行视觉搜索,请转到[这里](https://cloud.google.com/vision/product-search/docs/quickstart)。 当您尝试使用 Python 脚本中的 API 时,您将需要以下内容: @@ -703,7 +699,7 @@ GCP 具有视觉 API,可以执行基于云的图像信息,包括面部检测 # 使用 AWS 进行视觉搜索 -AWS 有许多用于计算机视觉的工具。 其中,两个主要工具是 Amazon Rekognition( [https://aws.amazon.com/rekognition](https://aws.amazon.com/rekognition) )和 AWS SageMaker( [https://aws.amazon.com/sagemaker](https://aws.amazon.com/sagemaker) )。 。 访问 AWS 网站以获取更多满足您需求的工具。 AWS Rekognition 是用于图像和视频分析的基于云的**软件即服务**( **SaaS** )平台。 它具有许多功能,例如面部检测和分析,面部搜索和验证以及名人识别。 就像 Google Cloud Vision API 一样,您可以上传图像,它可以提供图像信息的详细信息,如下所示: +AWS 有许多用于计算机视觉的工具。 其中,两个主要工具是 [Amazon Rekognition](https://aws.amazon.com/rekognition) 和 [AWS SageMaker](https://aws.amazon.com/sagemaker)。访问 AWS 网站以获取更多满足您需求的工具。 AWS Rekognition 是用于图像和视频分析的基于云的**软件即服务**( **SaaS** )平台。 它具有许多功能,例如面部检测和分析,面部搜索和验证以及名人识别。 就像 Google Cloud Vision API 一样,您可以上传图像,它可以提供图像信息的详细信息,如下所示: ![](img/f1ec323c-a06f-49f0-8be7-fd520d866ed4.png) @@ -713,15 +709,15 @@ AWS 有许多用于计算机视觉的工具。 其中,两个主要工具是 Am 请注意,面部识别系统能够检测到属于同一个人的两张脸,无论有无太阳镜,它们都是从不同角度拍摄的。 -AWS Rekognition 还可以使用`boto`分析本地 PC 上的图像,如 [https://docs.aws.amazon.com/rekognition/latest/dg/images-bytes.html](https://docs.aws.amazon.com/rekognition/latest/dg/images-bytes.html) 所述。 +AWS Rekognition 还可以使用`boto`分析本地 PC 上的图像,如[这里](https://docs.aws.amazon.com/rekognition/latest/dg/images-bytes.html)所述。 -培训期间引入了 AWS SageMaker。 通过将图像转换为矢量,它也可以用于执行视觉搜索。 有关详细练习,请参阅 [https://github.com/awslabs/visual-search/blob/master/notebooks/visual-search-feature-generation.ipynb](https://github.com/awslabs/visual-search/blob/master/notebooks/visual-search-feature-generation.ipynb) 中描述的 Python 笔记本。 +培训期间引入了 AWS SageMaker。 通过将图像转换为矢量,它也可以用于执行视觉搜索。 有关详细练习,请参阅[这个页面](https://github.com/awslabs/visual-search/blob/master/notebooks/visual-search-feature-generation.ipynb)中描述的 Python 笔记本。 请注意,执行此操作的最佳方法是从 AWS SageMaker 笔记本实例运行此操作。 将此文件(在上一链接中列出)上载到 Jupyter Notebook,然后选择 MXNet Python 软件包。 引用您的 S3 存储桶并执行单元。 分析代码并将其与我们在[第 6 章](https://cdp.packtpub.com/mastering_computer_vision_with_tensorflow_2_0/wp-admin/post.php?post=34&action=edit#post_27)和*使用转移学习*的视觉搜索中学到的内容进行比较。 您将看到基本原理是相同的,只是分析是在云平台上完成的,因此它将具有在[第 6 章](https://cdp.packtpub.com/mastering_computer_vision_with_tensorflow_2_0/wp-admin/post.php?post=34&action=edit#post_27)和*中不必处理的多个身份验证级别。 使用转移学习的视觉搜索* [。](https://cdp.packtpub.com/mastering_computer_vision_with_tensorflow_2_0/wp-admin/post.php?post=27&action=edit) # 使用 Azure 进行视觉搜索 -Azure 是 Microsoft 的云机器学习平台,用于构建,管理和部署应用程序。 与 GCP 和 AWS 一样,Azure 具有许多功能,但我们对计算机视觉工作感兴趣的功能是 Azure AI 和 Azure 机器学习( [https://azure.microsoft.com/zh-cn/services/](https://azure.microsoft.com/en-us/services/) )。 在 AI 和机器学习中,与计算机视觉相关的应用程序是 Azure Bot 服务,Azure 认知搜索,Bing 图像搜索,Bing 视觉搜索和计算机视觉。 例如,如果要执行视觉搜索,请转到 [https://docs.microsoft.com/zh-cn/azure/cognitive-services/bing-visual-search/visual-search-sdk- python](https://docs.microsoft.com/en-us/azure/cognitive-services/bing-visual-search/visual-search-sdk-python) 。 +Azure 是 Microsoft 的云机器学习平台,用于构建,管理和部署应用程序。 与 GCP 和 AWS 一样,Azure 具有许多功能,但我们对计算机视觉工作感兴趣的功能是 [Azure AI 和 Azure 机器学习](https://azure.microsoft.com/en-us/services/)。 在 AI 和机器学习中,与计算机视觉相关的应用程序是 Azure Bot 服务,Azure 认知搜索,Bing 图像搜索,Bing 视觉搜索和计算机视觉。 例如,如果要执行视觉搜索,请转到[这里](https://docs.microsoft.com/en-us/azure/cognitive-services/bing-visual-search/visual-search-sdk-python)。 在 Azure 云平台中进行可视搜索的基本步骤如下: