标记检查
该摄像头安装在打印机或激光标记机之后。engiAI 可以直接从视频流读取打印的文本:它将文本分割成片段,与预定义的样本或列表进行比较,并将每个标识信息存储在数据库中,并通过网络(如浏览器、JSON 和 TCP 控制器)发送结果。
工作中的效果
`文本 按钮位于主窗口 `engiAI` 的顶部行,旁边是“退出”、“摄像头”、“触发器”、“通用模型”和“计数”按钮。 点击该按钮会打开“文本 - 识别标识”窗口。 窗口可以保持在视频上方,当窗口打开或识别功能开启时,图像区域可见。
窗口标题中包含所有标签页共有的三个元素:
- 文本识别:这是主要开关。只要未勾选,文本识别功能将处于关闭状态,不会对程序造成负担。
- 选择区域:点击并拖动视频区域的边框,使用鼠标任意按钮即可。 在区域打开时,也可以使用鼠标右键,无需点击。 清除区域:删除该区域。
- 右侧状态:等待、记录、暂停 或 根据输入信号。 它的下方显示:使用的 GPU (CUDA 或 CPU)、每秒读取的帧数,以及每帧所花费的毫秒数。
“标识”标签页:结果和与样本的比较
这是操作员的工作界面。顶部是“比较所有区域与参考样本”的模式。
语句在生产线上的分析过程:
- 记录从句子的开头开始。 如果在文字中间开始录音,则会跳过文字的末尾部分——程序会等待下一个句子的开头。
- 每个图像都根据其在图像中的位置进行排列,并且每个字母会从所有包含它的图像中获取“声音”。最终,最常出现的版本将被采用。单个图像中的随机错误(例如,图像边缘的字母被裁剪,或反射)会被相邻图像纠正——在“声音”的快速传递中,结果会更加准确。
- 结果会在整个短语通过扫描区域后立即产生,或者当在“识别”选项卡中设置的时间内没有检测到新的字符时(即扫描区域为空,系统处于静止状态)。 在结果产生后,程序会等待下一个短语的开始;紧挨在一起的短语会被分别记录。
- 程序自动确定移动方向,或从“文本来源”设置中获取。
在识别过程中,右侧的界面显示已识别的字符数:64个中40个,以及“已识别”行显示匹配百分比和已识别的文本。 识别完成后,界面会显示73% - 识别或未识别的结果。 同样的结果也会以较大的字体显示在视频上。
如果未勾选“比较区域内的所有样本”,则采用逐个处理:任何文本都按照“开头和结尾”选项卡中的规则进行记录,并可与参考样本列表进行比较。
在列表下方:控制选项
- 所有标签 / 只显示最新标签 — 这里显示多少个标签,并将它们传递给浏览器。
- 日期、时间及标识/仅标识 - 需要向浏览器传递的内容,以及需要保存为JSON格式的数据。
- ⚖ 比较 — 将每一种已完成的标识与已标记的参考样本进行比较。
- 💾 保存 JSON, 📂 上传 JSON (上传的标识作为参考样本),清除列表 — 从屏幕和浏览器中删除行,但仍保留在数据库中。
“参考样本”选项卡:包含正确的标识列表
“参考样本”在有多个不同标识(例如,不同区域、批次、客户)的情况下非常有用,需要将每个读取的标识都添加到列表中。
- 📂 下载 JSON — 从文件中读取:我们的 JSON 数据,包含字符串数组、具有“text”字段的对象,或按标识符排列的单个文本字符串。重复项将被删除。
- ✓ 勾选所有, ☐ 取消所有, 勾选每行——用于与哪些参考样本进行比较。 ✖ 清除参考样本——删除列表。
- 相似度百分比:100 表示完全匹配(不考虑空格和大小写)。低于 100 表示允许存在拼写和阅读错误。
- 如果读取结果与参考样本相似,且符合要求的百分比,则记录为参考样本的文本(原始读取结果保留在记录中)。
“开头和结尾”选项卡:标识的结尾
这些规则适用于逐个拼接模式(不使用模板),程序自行决定标识的开始和结束位置:
- 文本开始:记录开始于在指定区域读取到此文本时(例如 UTCAB)。 如果为空,则从任何文本开始。 如果文本以循环方式出现,第二个文本开始的出现将完成标识。 将文本开始包含在标识中:将其保留在结果中。
- 完成标识后的暂停,毫秒 — 完成标识后,不要记录任何内容。
- 文本结束:当阅读到这段文本时,标识即失效(例如 BY 或 2026)。
- 空白时间,毫秒 — 如果该区域内没有文本,则标识结束并保存。
- 最大持续时间 — 用于连续文本,不包含空格:每隔这么长时间,就作为一个独立的标识。 0 表示没有限制。
示例: “UTCAB” 的开始,“BY” 的结束,会记录为 “UTCAB … BY”,然后程序等待下一个 “UTCAB”。 不区分大小写的比较,相似的俄语和拉丁字母被视为相同。
“识别” 选项:区域、转弯、模型
- 图像区域,像素:X、Y坐标、区域的宽度和高度,在原始图像中精确地定义区域,无需鼠标操作。
- 在编辑区域旋转文本:如何旋转编辑区域,使文本变为水平。文本从上到下旋转为“90°逆时针”,从下到上旋转为“90°顺时针”。可以通过“视频”选项卡来旋转屏幕上的视频。
- 增大:如果将文本区域放大,则更容易阅读;“自动”功能会自动调整。
- 最低置信度,% — 那些置信度较低的行会被舍弃(例如,模糊的字母边缘)。
- 最小长度标识,符号:如果结果过短,则不会被保存。
- 示例:没有新的标记,MS 将给出结果 - 如果没有收到新的标记,需要等待多久?(传送带停止,区域为空,文本无法读取)。在收到结果后,将开始新的分析。
- 文本来源:文本是从哪个区域出现的。 “Auto” 通过分析图像,并提供辅助粘贴功能,以确保更准确。
- 使用显卡 (GPU),在 NVIDIA 上使用 CUDA 后,速度会提升很多。
- 字母和符号:标记中可能包含的内容:英语句子、只有英语句子、或任何符号;数字和空格:总是包含;符号(如点、短线、反斜杠、编号等)用勾勾表示。模型会选择允许的符号,避免出现不必要的符号,并能更准确地识别相似的符号。
- 根据词典进行匹配:如果识别出的词(长度至少为3个字符,且不是数字或代码)与词典中至少某个百分比的词相似,则将其替换为正确的词。词典包含自己的词(每行一个词),以及通过勾选选择的参考样本中的词。
在下方,您可以看到模型选择:搜索字符串(v3 - 快速,v5 - 针对显卡,更准确)和读取文本(使用键盘,拉丁字母和数字;仅限拉丁字母和数字;欧洲语言的拉丁字母;精确的服务器模型;或同时使用两种模型 - 两种模型同时读取,选择更可靠的选项)。 缺失的模型可以通过⬇ 下载按钮下载。⚖ 在当前区域比较模型按钮会通过所有选项,对当前区域的最新数据进行处理,您可以立即看到哪种模型最适合读取您的特定标识,以及需要多少毫秒。
“数据库” 选项:所有标识都存储在此
识别的每个标识都会保存在程序的数据库中,包括日期、时间、摄像头、文本和比较结果,无论屏幕上显示的内容如何。
- 📤 导出数据库(JSON) — 将所有标识信息导出到文件中,以便生成报告或导入到会计系统。
- 📥 下载数据库(标识 → 参考样本) — 从下载的文件中,只提取标识文本,这些文本将作为参考样本。 这样经过验证的变更可以作为后续使用的示例。
- 🗑 清空数据库 — 删除所有记录。
“网络”选项卡:在浏览器和 JSON 中的结果
勾选通过网络发送数据后,engiAI 将启动一个 HTTP 服务器(默认端口为 8096)。 任何连接到网络的电脑或平板电脑都可以通过普通浏览器访问包含标识信息、比较结果和参考样本的页面;无需安装任何软件。 “📋 复制”和“🌐 在浏览器中打开”按钮会从列表中获取地址。
| 地址 | 发送的内容 |
|---|---|
| / | 页面:标识、比较、参考样本、JSON |
| /api/marks | 标识:可以是全部或最新的,带有日期或不带日期(取决于窗口中的选择) |
| /api/marks?show=last&format=text | 最新的标识,以简单文本形式 |
| /api/last | 最新的标识 |
| /api/state | 当前区域的状态和文本 |
| /api/refs | 参考样本:POST /api/refs — 上传参考样本(JSON) |
| /api/export | 整个标识数据库 |
首次启动时,Windows 防火墙可能会要求您授权 engiAI,请允许其在您指定的网络中访问。
“输入”选项卡:根据控制器信号的截图
当产品到达摄像头后,通过信号(传感器、PLC、机器人)触发,请标记:识别输入信号(TCP)。engiAI 启动 TCP 服务器;每个信号都对应一个区域的图像:文本被识别、比较和存储在数据库中,与连续模式相同。
- 网络:在哪个网络适配器上等待信号(“所有网络”:在任何一个);可以手动输入 IP 地址。 端口:默认值为 8097。
- 信号:定义为“命令”。 默认值为 1:文本(如“1”、“1\r\n”)或字节 0x01。
- 通过识别文本与客户沟通:收到包含标识的字符串,在比较时,使用制表符显示 "OK" 或 "NG";"NO TEXT" 表示未找到文本,"ERROR …" 表示未找到区域或帧。
- 📸 现在的截图(验证) 类似于信号,但来自按钮。可以使用 TCP-UDP (客户端) 程序进行验证,无需控制器:地址、端口、值为“1”、“发送”。
“输入”与持续识别同时进行:如果已勾选“文本识别”,程序将继续监控传送带,并且针对每个信号进行额外的截图。
