首页 > 解决方案 > 使用 tensorflowjs 进行文本检测

问题描述

我想只使用 tensorfow.js 或 opencv.js 在图像中进行文本检测,我已经在 keras 上构建了一个 EAST 模型并转换为 tensorflowjs 模型

任何人都可以帮我解决这个问题,任何资源都会很棒

谢谢。

标签: tensorflow.jstensorflowjs-converter

解决方案


因此,最初您需要下载 East freeze 模型,然后使用以下命令将其转换为 tensorflow.js 模型

tensorflowjs_converter --input_format=tf_frozen_model --output_node_names='feature_fusion/Conv_7/Sigmoid,feature_fusion/concat_3' /path_to_model  /path_to_where_you_want_save_converted_model.

接下来在获取输入图像并加载模型后,下面的代码将检测文本是否存在

 $("#predict-button").click(async function () {
        let image = $("#selected-image").get(0);
        let tensor = tf.browser.fromPixels(image)
            .resizeNearestNeighbor([640, 320])
            .expandDims(0);
            

    tensor = tf.cast(tensor, 'float32')
    const [output1, output2] = await model.predict(tensor);
    const data1 = await output1.data();
    const data2 = await output2.data();

由于东部模型给出了两个输出,即分数和几何。所以这里 data1 将给出几何图形(我忽略了它,因为我的最终目标是检测文本是否存在而不是本地化它)并且 data2 将给出分数。

接下来,我设置了 0.5 的阈值来区分文本是否存在。如果概率大于 0.5,则文本存在,如果小于 0.5,则文本不存在于文本中。

注意:现在,我跳过了预处理步骤(调整大小除外),他们从输入图像的 RGB 值中减去平均 RGB 值。


推荐阅读