作者 : Ramakant Joshi, Shekar Tippur, Anand Iyer
发布时间 : 2023年2月20日
来源 :
企业在确保产品符合生产标准和避免潜在品牌声誉损害时,常常会进行质量控制。随着传感器成本的降低和连接性的提高,各行业正在采用实时图像分析来检测质量问题。与此同时,人工智能(AI)的进步使得先进的自动化成为可能,能够降低整体成本和项目时间,并制造出准确的缺陷检测结果。在这些技术逐渐成熟的背景下,基于 AI 的检查在工厂环境之外的应用越来越普遍。
本文描述了我们的 SOLVED(Solar Roving Eye Detector)项目,该项目利用机器学习(ML)通过 来识别损坏的太阳能面板,并及时警告操作员采取纠正措施。
随着太阳能使用的增加,检测面板损坏的需求也在上升。采用 AWS 管理的 AI服务比人工检查太阳能面板或定制开发的生产应用程序更简单、更具成本效益。客户可以直接从现场捕获并处理视频,并在不需要建立专业数据科学团队的情况下构建有效的计算机视觉模型。这一点可以广泛应用于不同行业的用例,例如检测风力涡轮机、手机塔、汽车零部件及其他现场设备的缺陷。
构建于已有的服务能力之上,已针对数百万张跨类别图像进行了训练,以识别其中的对象和场景。用户只需将一小部分训练图像(通常不超过几百张)上传至控制台。解决方案将自动加载和检查训练数据,选择合适的 ML 算法,训练模型并提供模型性能指标。然后,用户可以通过 Amazon Rekognition Custom Labels API将自定义模型集成到应用程序中。
本文将介绍在 Builders Fair 上展出的 SOLVED 项目,将涵盖以下内容:
在开始之前,请查看该解决方案的以下前提条件:
SOLVED 项目利用机器学习识别损坏的太阳能面板,涉及以下四个步骤:
系统架构如图 1 所示。

让我们逐步回顾该用例中的每个步骤。
SOLVED 项目的数据获取层由持续的视频流组成,视频是随着移动的巡检车经过一片太阳能面板时捕获的。
我们使用一辆装有 Raspberry Pi 的 Freenove 4WD 智能小车,安装的摄像头在移动过程中捕获视频。我们在 Pi 上安装了 ,并将实时视频流传送至名为 reinventbuilder2021 的 Kinesis 视频流。
图 2 显示了 reinventbuilder2021 的 Kinesis 视频流设置窗口。

要开始流式传输,请按照以下步骤操作。
bash export AWS_DEFAULT_REGION="us-east-1" export AWS_ACCESS_KEY_ID="xxxxx" export AWS_SECRET_ACCESS_KEY="yyyyy" export AWS_SESSION_TOKEN="zzzzz"
bash cd ~/amazon-kinesis-video-streams-producer-sdk-cpp/build ./kvs_gstreamer_sample reinventbuilder2021
图 3 显示了视频流控制台,包括媒体回放选项。

接下来,我们将有两种方式来提取视频片段。
您可以使用视频流控制台上的下载片段按钮,如图 4 所示。
删除)
作为替代,您还可以使用以下命令行脚本:
"+%FT%T+0000")
FILE_NAME=reinventbuilder-solved-$RANDOM.mp4 echo $FILE_NAMES3_PATH=s3://videoondemandsplitter-source-e6lyof9qjv1j/
aws kinesis-video-archived-media get-clip --endpoint-url $KVS_DATA_ENDPOINT \
\--stream-name reinventbuilder2021 \ \--clip-fragment-selector
"FragmentSelectorType=SERVER_TIMESTAMP,TimestampRange={StartTimestamp=$ONE_MIN_AGO,EndTimestamp=$NOW}"
\ $FILE_NAME
echo "Running get-clip for stream"
sleep 45
aws s3 cp $FILE_NAME $S3_PATH echo "copying file $FILE_NAME TO $S3_PATH" ```
提取的片段将存放在使用
创建的 Amazon S3 源文件夹中,如图 5 所示。

### **预处理**
为了处理视频,我们利用了 。该解决方案使用
对视频文件进行编码,具备以下功能:
1. 自动转码上传到 Amazon S3 的视频,以适应各种设备的播放格式。
2. 通过上传定制文件和采用不同的输入设置,自定义 MediaConvert 作业设置。
3. 将转码后的视频文件存储在目标 Amazon S3 存储桶中,并使用 CloudFront 将其交付给最终观众。
4. 提供的输出包括输入文件元数据、作业设置和输出细节,此外还生成一个包含转码后视频的单独 JSON 文件,供进一步处理。
对于我们的用例,使用该解决方案的帧捕获功能,从源视频中创建了一组缩略图。缩略图存储在 Amazon S3 桶中,与视频输出一起。
要部署此解决方案,请使用 。
### **处理与可视化**
每个训练的 ML 模型都需要高质量的训练数据。我们从公开可用的太阳能面板图像开始,这些图像被分类为“良好”或“缺陷”,我们将图像上传到 Amazon S3桶的相应文件夹中。
接下来,我们配置 ,将文件夹指示为模型训练和部署所需的标签。利用巡检车记录到的良好和损坏的太阳能面板视频,并利用这些标注的信息进行训练。视频随后通过
切分为单独的帧图像,得到了一个良好标注的数据集,用于驱动我们使用 Amazon Rekognition Custom Labels 训练的模型。
我们通过模型端点在不同地点的太阳能面板上推断出损坏情况。AWS Elemental MediaConvert 加快了训练集的策划过程,而使用 AmazonRekognition 创建模型和端点则相对简单。
如图 6 所示,我们使用了 7000 张图像的训练集,其中良好和损坏的面板各占一半。

良好面板图像示例如图 7 所示。

损坏面板图像示例如图 8 所示。

在此用例中,我们达到了90%的模型准确率。
为了可视化结果,我们采用了
提供操作员界面,以便识别损坏的面板。
图 9 展示了操作员仪表板的屏幕截图,显示了来自 Amazon Custom Labels Rekognition 模型对良好与缺陷面板的输出。

**警报**
维护团队必须被通知以便对受损面板采取纠正措施。为了生成警报,我们配置了 发送 MQTT 消息给 Philips Hue 智能灯泡,红灯表明面板受到损坏。有关
Philips Hue API 的设置,请使用 。
例如,下面的 API 更改灯泡颜色:
`http PUT https://192.xx.xx.xx/api/xxxxxxx/lights/1/state {"on":true,
"sat":254, "bri":254,"hue":20000}`
此命令将颜色更改为绿色。
`http {"on":true, "sat":254, "bri":254,"hue":1000}`
此命令则将灯泡颜色更改为红色。
我们在 Pi 上设置了一个客户端,监听 AWS IoT Core 的 MQTT 主题,并向 Philips Hue 发出 API 请求。
要将设备连接到 AWS IoT,请完成以下步骤:
1. 创建 IoT 设备、设备证书和 。AWS IoT 设备表示一个物理设备(此处指 Raspberry Pi),并包含静态设备元数据,如图 10 所示。

1. 创建设备证书以连接并进行身份验证所需,示例如图 11 所示。

1. 将 AWS IoT 策略与每个设备证书关联,用以确定设备可以访问哪些 AWS IoT 资源。在此案例中,我们赋予了 iot.* 的权限,允许设备访问所有 IoT 资源,如图 12 所示。

设备和其他客户端使用 进行身份验证,确保它们连接到正确的服务器。有关设备如何与 AWS IoT Core 进行身份验证的更多信息,请参考
。
为便于与 Philips Hue 通信,我们使用了 ,如图 13所示。
![Qhue 封装](https://d2908q
Leave a Reply