捕获训练图像
Survey123 智能属性可使用图像分类模型根据模型在图像中检测到的对象提取值。
要创建图像分类模型,您需要大量图像来标识您需要模型识别的各类要素。 您需要标识两类:停车标志和限速标志。
对于道路标志,每个类应该有大约 500 个图像。 可以接受同一标志的多张照片(具有不同的照明、角度以及与对象的距离)。 不同的照明、角度以及与对象照片的距离将增强模型,从而提高预测的精度、置信度和接受度。
注:
创建具有最高精度和置信度的模型需要多次迭代以及测试和实验。 本教程将提供工作流和框架,用于演示在外业创建图像分类模型所需的步骤。 要生成适合在生产环境中使用的模型,可能需要更多迭代和测试图像。
创建并发布调查
首先,您将使用 Survey123 Connect 创建一个调查,以捕获图像、标志类型并为每条记录分配唯一 ID。
- 下载 SignImageCollection .xlsx 文件。
- 启动 ArcGIS Survey123 Connect。
注:
如果您没有 ArcGIS Survey123 Connect,可以从 Microsoft Store 或 Survey123 产品页面进行下载。 运行安装程序并按照其步骤安装程序。
- 在功能区中,单击菜单按钮,然后单击登录。
- 使用 ArcGIS 凭据进行登录。
如果您没有组织帐户,请参阅软件访问权限选项。
- 将已下载的 .xlsx 文件拖动到 Survey123 Connect 调查库中。
- 完成导入后,单击确定。
- 查看调查问题。
标志图像问题包含一个照相机按钮,以供用户使用其移动设备附加图像。 您将使用此调查收集图像以训练模型。
- 单击发布。
- 在发布 SignImageCollection 窗口中,单击发布调查。
随即将该调查以及所有相关的要素服务和表单项目发布到您的 ArcGIS 组织。
- 完成发布后,单击确定。
- 在侧菜单中,单击更多操作按钮。 单击管理 Survey123 网站。
在新的浏览器窗口中,已发布的调查将打开至 Survey123 网站中的概览页面。 要允许其他人使用此调查,您需要将其与组织共享。
- 在功能区中,单击协作。
- 在共享调查选项卡中,对于可向此调查提交数据的用户,选择我的组织成员,然后单击保存。
随即显示共享调查窗口。
- 在共享调查窗口中,单击保存。
您现在已创建一个调查以采集可用于训练图像分类模型的图像。
您可以与同事共享调查,并开始采集各种道路标志,包含在不同光线条件下,从不同角度和距离拍摄的照片。 种类和示例越多,则生成的模型能够更好地预测它所观察到的内容。 对于要分类的每种图像类别,包含大约 500 个图像。
- 关闭 Survey123 Connect。
使用调查
发布调查后,即可将其下载到您的移动设备上并使用该调查。
如果您无法捕获本地区中街道标志的照片,则可以使用为本教程创建的示例地理数据库继续下一部分,并跳过这些步骤。
- 在您的移动设备上,打开 Survey123 外业应用程序。
注:
如果您没有 Survey123 外业应用程序,请转至 Google Play、App Store、Microsoft Store 或 Survey123 产品页面。 如果从产品页面下载,在 ArcGIS Survey123 外业应用程序下,单击您的计算机或设备操作系统的下载链接。 运行下载的安装程序并按照其说明安装外业应用程序。
- 点击使用 ArcGIS Online 登录。 登录到 ArcGIS 组织帐户。
注:
如果您在使用 ArcGIS Enterprise,点击管理 ArcGIS 连接,然后登录 ArcGIS Enterprise 环境。
应用程序将打开到我的 Survey123 页面。 要采集调查的记录,您需要下载该调查。
- 点击下载调查。
注:
如果已将调查下载到设备上,要下载新调查,点击菜单按钮,然后选择下载调查。
下载调查页面将显示已与您的组织共享的所有调查。
- 在搜索栏中,键入 SignImageCollection。 在搜索结果中,找到 SignImageCollection 调查,然后点击下载。
调查将被下载到您的设备。
- 下载调查后,请点击后退箭头以返回到调查库。
SignImageCollection 调查将显示在调查图库中。
- 点击 SignImageCollection 调查。 在调查内容页面上,点击采集。
- 对于标志图像问题,点击照相机按钮。
注:
相机按钮包含从文件添加照片或使用设备相机采集照片的选项。 如果您无法现场测试调查,则可以使用此示例图像集。 打开计算机上的照片,然后使用您的设备拍摄计算机屏幕上的图像照片。
- 拍摄停车或限速标志的照片。
- 对于标志类型问题,选择停车标志或限速标志,具体取决于已拍摄的标志。
- 点击提交按钮。
如果您的设备处于在线状态,则系统将提示您选择以下选项:立即发送、继续此调查或保存在发件箱中。
- 选择立即发送。
继续拍摄停车和限速标志的照片,直到您至少为每个标志提交了 500 张照片为止。 尝试添加从不同方向、不同角度和不同照明条件下拍摄的照片。
照片越多,则意味着经过训练的模型越好,以及精确标识标志的成功率越高。
注:
如果您无法捕获本地区中街道标志的照片,则可以使用为本教程创建的示例地理数据库。 以下步骤将介绍如何使用您自己的数据或者示例地理数据库来训练模型。
您现在拥有构建图像分类模型所需的输入数据。
训练模型
接下来,您将使用 ArcGIS Notebooks 创建影像分类模型。 您将需要创建具有高级附加 GPU 功能的笔记本。 此功能每小时使用 30 个配额。
或者,您可以在本地下载并使用引用的笔记本,但您必须确保拥有合适的硬件。
注:
如果您对学习如何使用 ArcGIS Notebooks 为 ArcGIS 编写 Python 代码感兴趣,请完成入门教程您好,Notebook!。 如果您看到下载按钮,但未看到打开笔记本按钮,则您可能尚未登录。 登录后,如果无法访问打开笔记本按钮,则未针对笔记本用途启用您的账户。 请联系组织的 ArcGIS 管理员以访问 Notebooks。
您可能还对了解 Python 与 ArcGIS Notebooks 教程系列中提供的其他 Notebook 教程感兴趣。
在 ArcGIS Notebooks 中为组织启用 ArcGIS Online 指南可能对之前未启用 ArcGIS Notebooks 的管理员非常有用。
设置 ArcGIS Notebooks
首先,您将在 ArcGIS Notebooks 中创建一个笔记本。 如果您无法访问 ArcGIS Notebooks,则可以下载经过训练的模型,以在本教程的下一部分中使用。
- 下载 SignImageClassificationModel 笔记本。
- 通过将您的姓名缩写添加到 .ipynb 文件中来重命名下载的文件。
ArcGIS 组织中的项目名称必须唯一。 如果您组织中的其他人已完成本教程,则可能已上传具有默认名称的笔记本文件。
- 如有必要,请登录到您的 ArcGIS 组织。
- 在功能区上,单击内容选项卡。
- 单击新建项目。
- 拖动或浏览到您的 .ipynb 文件并将其添加到新建项目窗口。
- 在新建项目窗口中,设置以下参数:
- 对于标题,键入 Sign Image Collection Model_(YourName)。
- 对于文件夹,选择或创建合适的工程文件夹。
- 对于标签,键入 SignImageCollectionModel。
- 对于摘要,键入 Sign Image Collection Model。
- 单击保存。
随即创建该项目并显示其详细信息页面。
- 在详细信息页面,单击设置选项卡。
- 对于 Notebook Runtime,选择 ArcGIS Notebook Python 3 Advanced with GPU support – 9.0。
- 单击保存。
- 单击概览选项卡。
- 单击打开笔记本。
笔记本文本中包含运行笔记本和创建模型文件的说明。
- 完成笔记本中的步骤,然后返回到本教程。
笔记本步骤包括:
- 设置环境
- 从要素图层下载训练图像
- 训练模型
- 测试模型(可选)
注:
笔记本的设计允许其使用提供的数据运行。 必须遵循笔记本内介绍的步骤,尤其是在系统指示重新启动内核时更是如此。
如果您已采集自己的图像,则可以更改笔记本中引用的项目 ID,以根据您自己的图像创建模型。
下载模型结果
在成功完成笔记本后,将生成一个文件包。 您将下载这些文件以包含在您的测试调查中。
- 在 ArcGIS Notebooks 中,选择文件。
- 浏览至 /arcgis/home/tmp/fa40cf680eb4436daf4109b887b52b30/models/
注:
默认名称基于笔记本运行日期。 您的文件名将与上述图像不同。
- 下载 .zip 文件。
注:
如果您未对模型进行训练,您可以下载模型以在本教程的下一部分中使用。
- 将 .zip 文件的内容提取到计算机中的适当位置。
您已下载要在 Survey123 外业应用程序中用于自动识别限速和停车标志的图像分类模型输出文件。
测试模型
接下来,您需要将图像分类模型文件添加至调查以识别限速和停车标志。
理想情况下,您应该在现场测试此调查,但如果不能,或者附近没有速度和停车标志,您也可以在计算机上使用照片来模拟此测试。
创建并发布调查
首先,您将使用 Survey123 Connect 创建一个调查,该调查将使用已创建的模型文件将图像分类为停车标志或限速标志。
- 下载 SignImageClassificationModelTesting .xlsx 文件。
- 启动 Survey123 Connect。 如有必要,请登录 ArcGIS 组织帐户。
- 将已下载的 .xlsx 文件拖动到调查库中。
将创建名为 SignImageClassificationModelTesting 的新调查。
- 完成导入后,请单击确定。
- 在侧面菜单上,单击文件。
将显示与 SignImageClassificationModelTesting 调查有关的所有文件。 您的调查具有 media 文件夹。 您需要将之前下载的文件夹中的两个模型文件复制粘贴到 media 文件夹中。
- 打开包含模型输出的文件夹。 找到并复制文件扩展名为 .emd 和 .tflite 的模型文件。
注:
这两个文件的名称基于笔记本的运行日期。 您的文件名将与上述图像不同。
.emd 和 .tflite 用于支持调查使用移动设备照相机检测限速和停车标志。
- 返回到调查的 SignImageClassificationModelTesting 文件夹。 打开 media 文件夹,然后将 .emd 和 .tflite 文件粘贴到 media 文件夹中。
- 关闭文件浏览器窗口并返回 Survey123 Connect。
新调查具有以下特征:
- 标志图像问题的外观与 Survey123 中的正常照相机按钮相同,但是它将使用您在调查中包含的模型来解释所捕获照片的内容。
- 标志类型问题将自动检查在照片中检测到的标志类型。
- 是否正确问题允许用户验证照相机是否成功。
您可以随时发布调查。
- 在侧菜单中,单击发布。
- 在发布 Publish SignImageClassificationModelTesting 窗口中,单击发布调查。
Survey123 Connect 可将内容发布至您的 ArcGIS 组织。 发布可能会花费比平时更长的时间,因为需要在调查中包含图像分类文件。
- 完成发布后,单击确定。
- 在侧菜单上,单击更多操作按钮,然后选择在 Survey123 网站中管理。
已发布调查随即打开至 Survey123 网站中的概览页面。 要允许其他人使用此调查,您需要将其与组织共享。
- 在功能区中,单击协作。
- 在共享调查选项卡中,对于可向此调查提交数据的用户,选择我的组织成员。 单击保存。
- 在共享调查窗口中,单击保存。
现在,您已创建一个调查以测试图像分类模型。
下一步是使用调查来测试模型。 您将通过在不同光照条件下、从不同的角度和距离进行拍照来测试模型的精度。 成功测试的种类越多,则共享这些模型时的置信度越高。
使用调查
发布调查后,即可将其下载到移动设备上。 您可以到户外拍摄停车和限速标志的照片。
注:
如果您无法现场测试调查,则可以使用此示例图像集。 打开计算机上的照片,然后使用您的设备拍摄计算机屏幕上的图像照片。
- 打开您移动设备上的 Survey123 外业应用程序。
- 如有必要,请登录到您的 ArcGIS 组织。
应用程序将打开并显示我的 Survey123 页面。 要采集调查的记录,您需要下载该调查。
- 点击菜单按钮,然后选择下载调查。
下载调查页面将显示已与您的组织共享的所有调查。
- 在搜索栏中,输入 SignImageClassificationModelTesting。 在搜索结果中,找到 SignImageClassificationModelTesting 调查,然后点击下载。
调查将被下载到您的设备。
- 调查下载完成后,点击后退箭头以返回到调查库。
- 点击 SignImageClassificationModelTesting 调查。 在调查内容页面上,点击采集。
- 对于标志图像问题,点击照相机按钮。
- 拍摄停车或限速标志的照片。
照相机预览将在屏幕顶部显示分类(停车或限速)和置信度值。
在采集图像后,将返回调查页面。 标志类型问题将自动更新为与相机预览中所显示的值相同的值。 调查中包含的模型文件已完成此图像分类。
接下来,您将需要验证智能属性结果。
- 如果模型正确地预测了标志类型,则对于是否正确问题,点击是。 否则,点击否。
- 点击提交按钮。
如果您的设备处于在线状态,则系统将提示您选择以下选项:立即发送、继续此调查或保存在发件箱中。
- 点击立即发送。
- 继续拍摄停车和限速标志的照片,直到您至少为每个标志提交了 10 张照片为止。
现在,您已使用照相机对包含停车标志或限速标志的照片进行分类。 如果您对结果感到满意,则可以在任何调查中使用这些模型文件以识别停车标志或限速标志。 如果您对结果不满意,则可能需要再次训练模型。
请考虑以下选项以提高模型的质量:
- 检查用于训练模型的图像。
- 确保标志位于图像的中间,并在必要时进行裁剪。
- 确保您拥有各种照明、角度以及与对象照片的距离。
- 通过增大轮数(迭代次数)继续训练数据,直到验证损失 (valid_loss) 和训练损失 (train_loss) 小于1。 建议针对每个训练将轮数增大 5。
您可以在教程库中找到更多教程。