在当前的远程办公环境下,家庭学校的需求激增,导致学校服务器因承载巨大流量而崩溃。在某些情况下,学生和教师之间可能连续几天都无法取得联系。对于这些服务器来说,最大的挑战可能是视频和图像文件。虽然单个图像文件并不会造成太大问题,但是大量图像文件的传输会迅速消耗大量带宽资源。
为了解决这一问题,一种可能的解决方案是从文档中提取文本信息,而不是通过电子方式来回传输大型图像文件,仅发送文本信息,从而减少带宽消耗。尽管市面上有许多提供自动化文档分析的服务,但想进一步探索是否可能使用定制的机器学习模型来从教科书中检测任务。目标是在保持文档中任务结构的同时,大幅减少需要传输的数据量。
面临的第一个挑战是识别页面上各个任务。数据库包含了大约1000张教科书页面的扫描图像。使用手机拍摄这些图像,并将它们上传到Roboflow平台。非常喜欢Roboflow的端到端机器学习流程,它包括标注、预处理、增强和训练等步骤,这帮助避免了不必要的导出或转换操作。在没有使用Roboflow之前,曾因错误的EXIF数据导致图像旋转异常,从而破坏了数据集。而Roboflow默认会移除EXIF数据,从而消除了这一问题。
使用Roboflow Annotate工具来标记图像。标记了任务(用粉色边界框表示)和页码(用黄色边界框表示)。在标注完成后,调整了图像的大小。为了构建一个能够更好地泛化到不同教科书布局的模型,应用了许多图像增强技术:随机翻转、色调、饱和度、曝光度和亮度调整。最初,尝试编写自定义的Python程序来实现这一点,但由于代码中的bug数量以及编写代码所需的时间,Roboflow大大加快了这一过程。
由于希望能够扩展托管模型的基础设施,探索了一些选项。首先,查看了AWS Rekognition服务,该服务按推理小时计费。由于无法预测即将到来的流量,因此这不是一个理想的选择。另一方面,微软Azure提供了一个按图像付费的服务,称为Custom Vision。Custom Vision会自动选择正确的模型,所以对它没有太多的控制权。
使用了Roboflow提供的Scaled-YOLOv4 Colab笔记本——只需要导出数据集并训练模型,无需额外编码。还尝试了苹果的Create ML应用,但发现Scaled-YOLOv4模型的表现明显更好。