基于合成数据的文本定位实现【OpenCV】

news2024/11/25 9:47:54

数据是目前深度学习的主要限制因素。 好的数据很难获得。 收集和标记数据是一项艰苦的体力劳动。 这是昂贵、耗时且困难的。

AI获胜者并不是有最好算法的人,而是有最多数据的人。 -安德鲁·吴

此问题的一个“次优”解决方案是以编程方式生成合成数据。 合成数据无疑不如真实世界的数据。 然而,在缺乏或缺乏真实数据的情况下,它是最好的选择。

本文是用OpenCV编程生成合成数据,更简单的方法是用 UnrealSynth这个基于UE5开发的合成数据生成器,效果更逼真,而且无需编程:

在这里插入图片描述

https://tools.nsdt.cloud/UnrealSynth

1、项目介绍

在本文中,我将使用 detectorron2 构建一个对象检测模型,用于检测招牌上的英语和阿拉伯语文本。

通常,要构建多类对象检测模型,每个类需要大约 300 个训练图像。 通过批量下载图像并手动标记它们来创建这样的数据集大约需要 6 小时的手动工作。 这可能会给我们带来最好的结果。 出于实验目的,我决定不采用这种方法。 相反,我以编程方式创建一个合成数据集。

合成数据集包括带有一些英语或阿拉伯语文本的矩形或圆形“标志板”,随机放置在背景图像上。 文本的边界框坐标也可用于每个图像。
在这里插入图片描述

2、模型训练方法

我的模型训练方法如下:

  • 创建包含阿拉伯语和英语文本的图像和边界框坐标的综合数据集。
  • 在合成数据集上训练 Faster RCNN 模型
  • 收集一些现实生活中的英语和阿拉伯语标牌示例并评估模型

3、合成数据集的生成

创建合成数据集涉及的步骤如下:

  • 选择招牌形状
  • 选择阿拉伯语和英语短语 — 随机选择 1-4 个单词并组成短语
  • 创建招牌 - 选择招牌上的字体、文本位置
  • 选择纹理——在招牌上叠加纹理
  • 选择背景图片
  • 选择比例、旋转、将图像放置在背景上

在这里插入图片描述
经过以上步骤得到的结果图像如下所示:
在这里插入图片描述

3、用合成数据训练R-CNN

Facebook 的 detectorron2 包可用于快速训练和评估对象检测模型。 查看 github 上的 训练脚本以了解完整实施。

4、评估训练好的R-CNN模型

在一些真实图像上评估模型:
在这里插入图片描述

对于这个小型评估来说,这似乎做得相当不错。

尽管合成数据明显是粗糙的、仓促拼凑的并且明显是假的,但该模型仍然设法从中学习基本的文本本地化。 它能够检测我们测试的真实图像中的文本并正确对它们进行分类。

请注意,我没有遵循任何科学方法来确保这些结果的公正性或统计相关性。 这不是一项学术研究,只是一个实践记录。 通常,合成数据用于增强和平衡现实生活数据集,而不是取代它们。

完整代码可以在我的 github 上找到。


原文链接:基于合成数据的文本定位 — BimAnt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1161473.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【腾讯云HAI域探秘】搭建一个永不宕机的本地SD文本生成图像应用--喂饭级高性能应用HAI部署stable diffusion webui 一键文生图

目录 一、高性能应用服务HAI产品 Stable Diffusion Webui部署思路二、一键启动Stable Diffusion WebUI 推理三、使用 HAI JupyterLab连接 进行 StableDiffusion API 的部署四、使用本地IDE实现私服Web端一键文生图五、使用腾讯云Cloud Studio 快速云上开发六、高性能应用服务H…

C++设计模式_23_Command 命令模式

我们将Command 和Visitor归为“行为变化”模式。 Command 命令模式与函数对象十分类似,但在C主流框架中,函数对象(function object)应用的更为广泛。 文章目录 1. “行为变化”模式1.1 典型模式 2. 动机( Motivation )3. 模式定义…

Java调用GDAL实现融合有相同字段属性的多边形矢量数据的一种方法

目录 一、写在文章前 二、实现思路 三、实现过程 1.打开矢量数据 2.生成融合结果 3.不融合不相邻的几何图形 4.融合后的几何图形写入到新的图层 5.融合的效果 四、完整的示例 一、写在文章前 如下图所示,融合(dissolve)具有相同字段属…

Linux中搭建coturn服务器

1、下载coturn源码 git clone https://github.com/coturn/coturn.git2、进入到coturn路径下,执行一下命令。 ./configure出现以下错误: 问题1:ERROR: OpenSSL Crypto development libraries are not installed properly in required locati…

浅谈安科瑞无线测温产品在南非某变电站的应用

摘要:随着电力工业的发展,对设备的安全性、可靠性要求越来越高。在这种条件下,高压设备的无线测温系统应运而生。这种技术是将内置电池或电流感应和无线发射模块的测温传感器安装于各测温点,由于其体积小,且无需任何接…

CHS零壹视频恢复程序监控版/海康版/大华版深入扫描功能演示

安防文件系统是一种嵌入式文件系统,一般情况下监控版程序扫描会基于文件系统进行扫描,如果想更深入的扫描一些数据建议开启深入扫描功能,具体方法如下: 适用版本:监控版/海康版/大华版/专业版/高级版 作用:舍弃嵌入式文件系统直…

手机端抓包流程

一.Charles 抓包 1.创建模拟器 2.配置证书 3.打开开发者工具中的usb调试 4.下载xposed安装 5.安装模块 破解app反代理 使用XposedJustTrustMe突破SSL Pinning验证_justtrustme模块官网-CSDN博客 配置流程 手机APP数据包抓包分析_socksdroid下载-CSDN博客 二.HttpCanary抓…

【CIO人物展】申菱环境CIO吴斌:制造业智能化转型,从3个“三”开始

吴斌 本文由申菱环境CIO吴斌投递并参与《2023中国数智化转型升级优秀CIO》榜单/奖项评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 近日,苏州市举办了苏州市智能制造生态大会暨苏州市智能制造产业联盟第二届二次会员大会,苏州市工信局副局长万资…

【观察】从口袋到云端全景式AI创新,联想“全栈智能”再升级

知名科技杂志《连线》创始主编凯文凯利曾预测:“在未来的 100 年里,人工智能将超越任何一种人工力量,将人类引领到一个前所未有的时代。” 确实如此,犹如历史上蒸汽机、电力、计算机和互联网等通用技术一样,近20年来&a…

哪个女人不是在事业和家庭间走钢丝?

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 小黑 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 姝琦Midjourney 产品统筹 / bobo 场地支持 / 声湃轩天津录音间 这是一场因2023年诺贝尔经济学奖获得者克劳迪娅戈尔丁著作《事业还是家庭?女性追求平等的百年…

12 _ 排序(下):如何用快排思想在O(n)内查找第K大元素?

上一节我讲了冒泡排序、插入排序、选择排序这三种排序算法,它们的时间复杂度都是O(n2),比较高,适合小规模数据的排序。这里会介绍两种时间复杂度为O(nlogn)的排序算法,归并排序和快速排序。这两种排序算法适合大规模的数据排序,比上一节讲的那三种排序算法要更常用。 归并…

PDF 表单直接保存到您的文档中--TX Text Control

TX Text Control .NET Server for ASP.NET Document Viewer 32.0.2 允许用户保存包含已填写表单字段的文档,从而更轻松地协作和共享信息。 TX Text Control .NET Server for ASP.NET 是一个适用于 ASP.NET 和 ASP.NET Core 的综合服务器端文档处理库。功能包括 PDF …

5.2 用户数据报协议UDP

思维导图: 课程笔记:5.2 用户数据报协议UDP 5.2.1 UDP概述 一、UDP基本概念 无连接协议:UDP是一个简单的面向数据报的传输层协议,不需要在数据传输前建立连接,故减少开销和延迟。复用/分用:UDP允许多个应…

记录rider编辑器快速文档 中英文显示的问题

起初是不同的项目里快速文档一个项目显示中文 一个项目显示英文 搞了很久不知道哪里的原因 偶然灵机一动,点开了下面docs.microsoft.com的地址进去一看 发现一个是4.6的文档 一个是4.6.1的文档 所以去项目属性里 切换了framework的版本. 然后汉化就好了 纯属强迫症,而且…

shell script 学习案例

或许进度最快的方法就是先抄袭,在改进,哈哈。学习下各个案例吧 第一:写过程序的都知道,第一个学的就是输出"Hello World!",那么学习shell也是一样,上案例 因为有脚本文件,所有同时 开了两个终端…

13 _ 线性排序:如何根据年龄给100万用户数据排序?

前两节中,着重分析了几种常用排序算法的原理、时间复杂度、空间复杂度、稳定性等。这节,将讲三种时间复杂度是O(n)的排序算法:桶排序、计数排序、基数排序。因为这些排序算法的时间复杂度是线性的,所以我们把这类排序算法叫作线性排序(Linear sort)。之所以能做到线性的时…

光刻机之父林本坚发声,中国芯片可自主研发5纳米,美国拦不住

外媒报道指早已退休的台积电前研发副总林本坚接受采访的时候表示,美国无法阻止中国研发先进工艺,还认为中国可以利用现有设备研发更先进的5纳米工艺,他的表态让外媒相当吃惊。 林本坚如此说法在中国的华为研发出相当于7纳米工艺的麒麟9000S之…

Linux常用命令——chfn命令

在线Linux命令查询工具 chfn 用来改变finger命令显示的信息 补充说明 chfn命令用来改变finger命令显示的信息。这些信息都存放在/etc目录里的passwd文件里。若不指定任何选项&#xff0c;则chfn命令会进入问答式界面。 语法 chfn(选项)(参数)选项 -f<真实姓名>或-…

玩转硬件之Micro:bit的玩法(三)——计步器

随着技术的发展&#xff0c;现在智能手机和智能手表已经走进千家万户&#xff0c;所以大家对于计步器可能不陌生&#xff0c;计步器是一种用于计算行走步数的装置。它通常是一个小型电子设备&#xff0c;可以佩戴在身体上&#xff0c;如腕带、腰带或口袋中。计步器通过感应人体…

代码随想录算法训练营第四十一天丨 动态规划part04

01背包理论基础 见连接&#xff1a;代码随想录 416. 分割等和子集 思路 01背包问题 背包问题&#xff0c;大家都知道&#xff0c;有N件物品和一个最多能背重量为W 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解…