发现微信的聊天记录居然可以通过文字来搜索图片,好奇这个功能咋实现的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
PYHII
V2EX    分享发现

发现微信的聊天记录居然可以通过文字来搜索图片,好奇这个功能咋实现的?

  •  
  •   PYHII 2022-09-22 09:42:57 +08:00 4457 次点击
    这是一个创建于 1161 天前的主题,其中的信息可能已经有所发展或是发生改变。
    首先老旧 iPhone 不支持 io 自带的文字扫描;

    1.是图片上传到微信服务器的时候它识别完加上这个图片的一下标签信息再返回到本地。后续搜索通过这些标签来搜索的吗?
    2.还是图片就在本地,当用户搜索的时候,微信再一遍遍的识别?
    3.或者是微信保存在服务器了,通过云端再返回回来的?
    19 条回复    2022-09-23 01:52:11 +08:00
    yukiww233
        1
    yukiww233  
       2022-09-22 09:54:45 +08:00
    微信 /qq 都会对上传的图片 /视频做 ocr 和物体识别,
    大概是识别都做了,就废物利用吧
    Morriaty
        2
    Morriaty  
       2022-09-22 10:26:21 +08:00
    1. 微信的聊天搜索一定是客户端实现的,要是做成服务端,太湖之光超级计算机来都搞不定。

    2. 具体实现的话,我曾经一直认为调服务端 ocr 接口,本地存文字结果是个比较合理的猜想。但随着微信 apk 越来越大,我现在很怀疑是 ocr 模型(甚至是更直接的 text2image 端到端模型)存在本地了。
    learningman
        3
    learningman  
       2022-09-22 10:42:15 +08:00 via Android
    @Morriaty 服务端实现为啥不能,整个腾讯就只能有一台服务器吗,上集群啊
    Exdui
        4
    Exdui  
       2022-09-22 10:51:10 +08:00
    @learningman 集群也要钱,OCR 成本太高了,比鉴黄 /政高 N 倍。
    QUC062IzY3M1Y6dg
        5
    QUC062IzY3M1Y6dg  
       2022-09-22 10:52:46 +08:00
    会不会是给微信客户端塞了一套机器学习 doge
    SenLief
        6
    SenLief  
       2022-09-22 10:55:05 +08:00 via iPhone   1
    我怀疑是本地做的,微信已经非常庞大了,所以极有可能是本地 ocr 的。
    AS4694lAS4808
        7
    AS4694lAS4808  
       2022-09-22 11:08:47 +08:0
    @Morriaty 现在预训练好的简单 OCR 模型放到手机上也能运行,我司有类似 2B 产品,本地就能搞。一些手机 OS 的相册也能本地运行,然后文字搜索。

    @PYHII 一般会首先识别物体类型,根据置信度选择保存哪些,然后再 OCR 识别文字,供全文搜索。
    BMAO
        8
    BMAO  
       2022-09-22 11:39:36 +08:00 via iPhone
    现在几十 G 的聊天记录,之前没开这个功能,现在才开的话。他是现在检索并 OCR 一遍存下来?还是实时呢?实时的话就厉害了。
    Morriaty
        9
    Morriaty  
       2022-09-22 12:01:21 +08:00
    @learningman 就微信这体量的聊天记录,几万个集群都扛不住啊
    saucerman8
        10
    saucerman8  
       2022-09-22 12:10:20 +08:00   3
    1. 搜索速度如此快,很显然不是搜索的时候才去 ocr 识别,而是在上传图片时就进行了 ocr 。
    2. 联网时才可以通过文字搜索图片,断网后搜索失效,证明文字或者标签信息保存在云端。

    猜测:每次上传图片就进行了 ocr ,然后保存了 ocr 信息在云端。通过文字搜索的时候,云端返回图片标签信息,然后本地根据标签信息找到本地图片。

    (如果配合抓包,应该就比较清晰了)
    JsonNode
        11
    JsonNode  
       2022-09-22 12:41:41 +08:00   1
    SteveRogers
        12
    SteveRogers  
       2022-09-22 12:55:00 +08:00 via iPhone
    @learningman 一定是本地实现的,服务器的海量投入、完全没必要、发动群众利用群众才是成本最低的
    xz410236056
        13
    xz410236056  
       2022-09-22 13:54:40 +08:00
    @Morriaty #2 客户端使用的机器学习模型是低精度的,也用不了多少 M 。几十 M 足够识别了
    27149
        14
    27149  
       2022-09-22 14:09:04 +08:00
    本地 OCR 模型,识别了以后索引存在本地。识别的时机应该是本地队列,微信在前台的时候。好处是微信多数时候都在前台。队列应该有个顺序,比如单聊>群>静音群这样。
    natforum
        15
    natforum  
       2022-09-22 14:48:48 +08:00
    被扫描过只能说明你的所有个人隐私信息已经透明公开了
    zhang77555
        16
    zhang77555  
       2022-09-22 16:07:11 +08:00
    你上传的图片微信都是要检查敏感词的, 识别的数据顺便存一下也不麻烦
    cjpjxjx
        17
    cjpjxjx  
       2022-09-22 16:25:16 +08:00
    钉钉也可以了
    Seanfuck
        18
    Seanfuck  
       2022-09-22 16:31:24 +08:00
    识别肯定是服务器做,有些特殊图片,时间不同,发送的结果也不同的(刚开始能发出去,过一阵子私发也发不出去)。小程序上传图片 /文字到自己服务器也是要先调用他们的接口识别一下的。
    bao3
        19
    bao3  
       2022-09-23 01:52:11 +08:00 via iPhone
    现在我知道了,别说 Apple 6G 内存了,我估计 Apple 16G 内存都不够微信塞的……
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2426 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 15:42 PVG 23:42 LAX 07:42 JFK 10:42
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86