深度学习-电极的检测功能

时间:2020-09-25 16:07:28

标签: javascript tensorflow deep-learning tesseract tensorflow.js

我正在开发一个应用程序,该应用程序必须仅用2或3张照片来检测电线杆的所有可见特征,

检测杆的类型及其特征:

pole 1

pole 2

在雕刻上阅读有用的文字(并非所有文字都是必需的):

Engraving 1

Engraving 2

我必须直接在浏览器中检测到它,因此我打算在前端使用tensorflow.js。

1-应该创建一个新模型还是训练一个预训练模型?我应该为这种图像使用什么预训练模型。

2-是否可以检测电缆的数量及其类型?

3-对于雕刻部分,大多数情况下,即使对于人眼来说,文本也不可读。可以训练tesseract来阅读这篇文章吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

在处理非常小的数据集时,您可以同时执行以下两项操作:

  1. 扩充数据集,即从您拥有的数据集中人为创建更多图像的方法很多。 Keras拥有ImageDataGenerator来做到这一点。

  2. 使用带有迁移学习功能的预训练模型,例如MobileNetV2。使用预训练的模型有很多帮助,因为它已经学习了图像数据集中的许多功能,并将这些知识转移到您当前正在使用的数据集中。有关如何操作的更多详细信息,请参见here

对于模型,您需要使用其中两个。

  1. 第一个将用于检测电线杆及其周围的电缆。根据电线杆和电缆的边界框裁剪图像,并相应地标记它们(您必须手工标记它们,这样过程会很繁琐)。

  2. 第二个将用于检测两极雕刻。裁剪杆的图像以仅包括雕刻部分,并自己标记数据。您可以使用与上述关于扩充和转移学习的两个步骤相同的公式。

最后,要执行OCR,您可以使用Tesseract JS,它具有可以链接的api。

模型架构:

输入张量->用于检测电线杆和电缆的模型->电线杆的裁剪的图像->用于检测文字雕刻的模型->雕刻的雕刻的图像->在雕刻上执行OCR。

您可以从极点上修剪雕刻,以提高模型的准确性。如果您不这样做,而只是在两极上执行,那么它将表现不佳。

在移动设备上进行操作时,请不要忘记对模型进行量化以提高移动设备的性能。