从每个类别的置信度列表中生成可能的图像验证码解决方案

我有一个使用对象检测来解决验证码的YOLOV5模型。它返回的列表格式为:

<object-class> <x> <y> <width> <height> <confidence>

对于每个类别的检测都是如此。

示例:

输入:

1

输出:

[[['7l', 0.19, '0.443182', '0.104895', '0.431818', '0.972055'], ['4l', 0.33, '0.534091', '0.104895', '0.431818', '0.965045'], ['5l', 0.6, '0.238636', '0.118881', '0.431818', '0.974508'], ['9l', 0.92, '0.659091', '0.104895', '0.409091', '0.879532'], ['0l', 0.93, '0.659091', '0.0979021', '0.363636', '0.651053']]]

如你所见,类别9l和0l具有相同的值,这意味着模型对一个对象有两个答案。

我如何将这个列表拆分为两个可能的列表,如下所示:

7l 4l 5l 9l7l 4l 5l 0l


回答:

首先,你可以将数据转换为字典

{'0.443182': ['7l'], '0.534091': ['4l'], '0.238636': ['5l'], '0.659091': ['9l', '0l']}

接下来只获取值

[['7l'], ['4l'], ['5l'], ['9l', '0l']]

最后使用 itertools.product(['7l'], ['4l'], ['5l'], ['9l', '0l']) 来生成

('7l', '4l', '5l', '9l')('7l', '4l', '5l', '0l')

完整的工作代码。

因为标准字典不一定保持顺序,所以我使用 OrderedDict()

import collectionsimport itertoolsdata = [[['7l', 0.19, '0.443182', '0.104895', '0.431818', '0.972055'], ['4l', 0.33, '0.534091', '0.104895', '0.431818', '0.965045'], ['5l', 0.6, '0.238636', '0.118881', '0.431818', '0.974508'], ['9l', 0.92, '0.659091', '0.104895', '0.409091', '0.879532'], ['0l', 0.93, '0.659091', '0.0979021', '0.363636', '0.651053']]]#converted = {}converted = collections.OrderedDict()for item in data[0]:    class_ = item[0]    x      = item[2]    #if x not in converted:    #    converted[x] = []    #converted[x].append(class_)    converted.setdefault(x, []).append(class_)        print('converted:', converted)values = list(converted.values())print('values:', values)products = list(itertools.product(*values))print('products:', products)for item in products:    print('item:', "".join(item))

结果:

converted: OrderedDict([('0.443182', ['7l']), ('0.534091', ['4l']), ('0.238636', ['5l']), ('0.659091', ['9l', '0l'])])values: [['7l'], ['4l'], ['5l'], ['9l', '0l']]products: [('7l', '4l', '5l', '9l'), ('7l', '4l', '5l', '0l')]item: 7l4l5l9litem: 7l4l5l0l

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注