AutoHotkey 有完善的 PaddleOCR 库,没必要借助其他软件。不过我不看好 PaddleOCR,性能不行,经过这么多迭代,识别耗时仍旧以秒计,毫无进步。
如果图片文件夹固定,不如监听文件夹,然后将识别结果保存到 sql,这就又摆脱了 Everything。
建议1:使用 hiroi-sora/RapidOCR-json: OCR离线图片文字识别命令行windows程序,以JSON字符串形式输出结果基于 。 (github.com) 来代替PaddleOCR,PaddleOCR的姐妹项目,速度比PaddleOCR快
建议2:可以通过AHK直接调用命令行直接生成json,将输出索引直接存在软件运行目录,不需要复制txt文本
目前我在尝试使用ahk调用rapidOCR-json,但是遇到了中文路径需要转ACSII码传入的问题,欢迎大家提供好的解决方案
使用了TheArkive的库来获取命令行输出, TheArkive/CLSAK_AHK: AutoHotkey library for CLI handling, capturing, and interaction (github.com)
#Include <TheArkive_CliSAK>
RapidOCRtoJSON("D:\Downloads\RapidOCR-json\sample.png",&response)
MsgBox response
RapidOCRtoJSON(target,&response) {
execPath:=GetFullPathName("..\lib\RapidOcr\RapidOcr_json.exe")
modelsPath:=GetFullPathName("..\lib\RapidOcr\models")
cmd:=string(execPath " --models=" modelsPath " --imagePath=" . target)
response:=""
If (IsObject(response))
response.close(), response := ""
response:=CliData(cmd)
return response
}
输出:
OCR init completed.
{"code":100,"data":[{"box":[[389,24],[1042,29],[1041,69],[389,64]],"score":0.9671138644218444,"text":"使用说明·下载地å€Â·æ›´æ–°æ—¥å¿—·æ交Bug"},{"box":[[16,142],[527,142],[527,171],[16,171]],"score":0.9444133419739572,"text":"·å…费:本项目所有代ç å¼€æºï¼Œå®Œå…¨å…费。"},{"box":[[18,195],[527,195],[527,220],[18,220]],"score":0.9390283132854261,"text":"·方便:解压å³ç”¨ï¼Œç¦»çº¿è¿è¡Œï¼Œæ— 需网络。"}]}
因为ahk是半路入门,不太熟练,尝试后遇到的两个问题:
- 输入的文件不能含中文,需要解决路径转ACSII的问题
- 输出的文字包含了中文,要避免输出是乱码
============
目前搜集到的一些材料:
- AutohotkeyV1的JSON库中,有对字符串的unicode或ascii的处理,GitHub - cocobelgica/AutoHotkey-JSON: JSON module for AutoHotkey
- RunAny中,有对字符串转换的功能, RunAny/huiZz_Text.ahk · hui-Zz/RunAny (github.com)
- Powershell,中文转换ASCII的方法, PowerShell中汉字与ASCII码相互转换(cnblogs.com)
============
我用Autohotkey V2的strsplit()和ord()来逐字转换时,得出结果跟Powershell或在线转换结果不一样
function asc($param) {
$rtn = ''
$list = $param -split ''
foreach ($char in $list)
{
if($char -ne '')
{
$rtn = $rtn + ("\u" + ("{0:x}" -f [int]([char]$char)))
}
}
return $rtn
}
asc("样例")
\u6837\u4f8b
name:=StrSplit("样例","")
AscName := ""
for k in name{
asc := Ord(k)
AscName:= AscName '&#' asc ';'
MsgBox AscName
}
AscName:='样例'
希望能全盘搜索,再加上每当有新图片储存时,自动识别
我用Umi-OCR v1.3.4将图片识别后,在点击“案记索图”的“收集”后对应文件的.txt文件没有移动过去。(路径我已经配置过了)
盲猜是因为你修改了setting.ini的编码格式
我按照这些操作设置,最后ctrl+alt+f搜索的时候出了问题。
1.大部分情况下,ctrl+alt+f搜索之后everything没有任何动静;
2.偶尔,ctrl+alt+f搜索之后显示“未找到匹配的txt文件——在文件夹‘……’未找到包含关键词xx的文件。
求解…
everything版本不一样?
我用的 V1.4.1.1022 (x64)
我也考虑了everything版本的问题,
原本我使用的是1.4.1.895,
然后我又去官网下载了最新的1.4.1.1024版本试了一下。
都是一样的反应,无法使用。
(小吐槽:昨天在手机记账app导入账单方面出了问题,问官方,也是操作上没问题但就是导入失败,然后官方发开发人员微信给我。。。这几天有点麻了〒▽〒…)
(顺带一提,
检索图片文字,我主要是用来搜索我做的思维导图,
下午我又尝试了一些别的方法,发现文字识别的精准度有点低…(实际搜索效果不尽人意)
然后我把思维导图的原文件以pdf导出,用Adobe Acrobat来检索文字,
发现可以对多个文件同时检索,算是解决了我的需求,而且精准度也很高。)
所以如果不太好排查我这边的问题,我还是打算放弃了案记索图了(;´д`)ゞ…
(挺折腾的唉…)
思维导图应该都是文本格式应该能搜索到才对,我没用EV但我用TextSeek,不过图片搜索我还是没找到好的方法解决
我和上面某个网友一样,案记输入后everything没有反应
试试管理员权限运行
希望能实现楼上好多人提到的,直接调用命令行版本进行全盘识别这样一条龙的整合工具,挺需要这样的工具,而且对umi的效果也是验证过非常好的,谢谢