V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
PYHII
V2EX  ›  分享发现

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

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

    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 倍。
    shuxhan
        5
    shuxhan  
       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:00
    @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 信息在云端。通过文字搜索的时候,云端返回图片标签信息,然后本地根据标签信息找到本地图片。

    (如果配合抓包,应该就比较清晰了)
    lovedoing
        11
    lovedoing  
       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   ·   实用小工具   ·   3360 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:27 · PVG 18:27 · LAX 02:27 · JFK 05:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.