惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
C
Check Point Blog
博客园_首页
B
Blog
D
Docker
U
Unit 42
量子位
I
InfoQ
有赞技术团队
有赞技术团队
Martin Fowler
Martin Fowler
GbyAI
GbyAI
L
LangChain Blog
云风的 BLOG
云风的 BLOG
博客园 - Franky
美团技术团队
T
The Blog of Author Tim Ferriss
阮一峰的网络日志
阮一峰的网络日志
月光博客
月光博客
Vercel News
Vercel News
Recent Announcements
Recent Announcements
雷峰网
雷峰网
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
Google DeepMind News
Google DeepMind News

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
把照片回忆放在桌面:文字是最美的标签 - 少数派
2023-11-17 · via 少数派

入选 App Store 的本周编辑推荐

在上周,「识图 App」入选了 App Store 的本周编辑推荐,真好啊!感谢 App Store 官方给这款小工具的认可。

App Store 的本周编辑推荐

新版更新:把温馨回忆放在桌面

在上一篇介绍「识图 App」的文章里,尝试解决我们日常在使用 iOS 系统相簿和照片里面的最高频的场景,如何快速地找到照片,通过文字、时间、地点的不同组合可以精确地定位到我们想找的那张照片,或分享给朋友、或收藏起来:
 

但是,除了用文字去搜索之外,我们还怎么能发掘我们照片里的宝藏呢?相信我们大家都拍了许多的照片,有那些美美的自拍照,有和恋人当时牵手的摸样,有和家人在一起的温馨瞬间,有曾到过另一座城市的随手抓拍,有猫猫狗狗的呆呆萌萌,甚至还有那些回不去的时光。如果,我们能把相框放在手机桌面,每次点亮屏幕,都能看到那些差点被遗忘的老照片,或许能给我们带来一点点温暖,让回忆的阳光洒到今天。

如果只是桌面相框,iOS 系统自带的 ”回忆 Widget“ 就能满足需求,但是只是照片,我们常常会忘了是在哪里拍的,在什么时候拍的,甚至忘记了照片里的内容。而文字,是照片最美的标签,如果在展示照片的同时,也能自动配上文字,会不会更有温度呢,更感人呢。所以「识图 」尝试给图片配上最优美的文字,并支持在桌面添加小组件,就像这样:

如果您的手机升级到了 iOS 17,也可以添加「识图 」锁屏小组件。大箭同学有个闲置的 iPhone 手机,他用「识图 Widget 」把它改造成了一个电子相框:

配文:照片的最美标签

我们想给照片配上最优美的文字,希望「识图 」能看懂照片的内容,能用文字把照片的内容进行总结、提炼和修饰,希望那些文字能打动人心,能给你的照片打上最美的标签。

给宠物配文

这只可爱的狗狗是宋老师家的,名字叫 Hard,别看他照片里很是乖巧,拆家的时候能把宋老师气的双手发抖。这两张照片是上周六宋老师带他踏秋时候拍的,第一张照片配文 “笑逐颜开” 用来形容狗狗的表情确实令人惊艳,因为通常这个词用来形容人的开心。而第二张照片的配文更是绝妙,一个 “傲” 字把狗狗的状态准确刻画了出来,而 “秋叶黄” 也抓到了季节。

给事件配文

今年五月,妹妹结婚,照片分别拍摄于婚礼现场和新娘子的婚房。「识图 」从上千张的照片中推荐了这两张,我们看第一张的配文 “花香萦绕的婚礼现场”,AI 大模型确实正确地识别出来了场所是 “婚礼现场”,而且能营造出欢喜氛围用 "花香萦绕"。再看第二个配文"闺阁佳人共庆瑞祥",依然准确描述了是女孩子的房间是 “闺阁”,新娘子和伴娘们是 “佳人”,而“瑞祥”也恰当好处的表达了婚礼的祝福。

风景与人物

对于风景和人物照片,「识图 」同样体现出来了强大的图片内容识别和文字生成能力。它即能够识别出来第一张照片拍摄的地点是海边由 "赏海景",也能分辨出来花朵的颜色由 "橙黄橘绿"。如果你喜欢识图的配文,可以点击 "分享" 按钮,方便分享给朋友或者自己收藏。如果想找这张照片的原图,可点击 "个人收藏" 按钮,之后便可到手机的 “个人收藏” 相簿方便地找到原图。

我们如何实现配文功能

隐私问题

要实现根据照片的内容来生成优美的文字,目前的技术在手机端纯离线去做,还几乎不可能完成。因为要让图生文的 AI 大模型跑在手机上无论对手机硬件还是模型本身都是不小的挑战。纯离线方案行不通的话,我们就想尝试半离线的方案,一部分在手机上做,一部分在云端做。

值得明确说明的是,「识图 」十分尊重用户的隐私,在任何情况下都不会把用户的照片上传到云端,这也是我们实现照片配文(图生文)要遵循的基本原则:

不上传照片到云端

把大象放进冰箱

要把大象放进冰箱,拢共分为三步:

1、通过「识图 App」本地的推荐算法找到最值得回味的照片回忆;

2、在本地通过大模型计算照片的图片特征(image embeddings),并上传到云端;

3、云端的大模型根据图片的特征,生成照片的配文(文字);

提取图片特征

「识图 App」在手机端使用 image encoder 离线计算图片特征。从 OpenAI 开源的 CLIP 项目中,我们把视觉侧的基于 Transformer 架构的 ViT-B/16 的 imager encoder 单独拆分了出来,嵌入到了「识图 App」的安装包里面,size 大概是 150M 左右。对于想进行图生文操作的照片,在手机侧本地「识图」经过 ViT-B/16 image encoder 的计算,计算这张图片的特征向量(image features)。

图片的特征向量(image features)是一个 (1, 196, 768) 三维数组,如示例:

# Image Features(1*196*768)
[
  [
    [-0.7495, 0.2676, ..., -0.5010],
    [-0.3372, 0.2209, ..., -0.4490],
    [-0.7695, 0.1975, ..., -0.8037],
    ...,
    [-0.2617, -0.1320, ..., -0.5288],
    [-0.6738, 0.0533, ..., -0.7158],
    [-0.6689, 0.0749, ..., -1.1162]
  ]
]

识图只会把计算过的图片的特征向量上传到云端的服务器,借由大模型的能力来生成和图片内容想符合的文字。图片特征向量的计算过程如下(x1, x2 表示图片的尺寸,y 表示图片的颜色模式):

# 图片预处理
img = Image.open(f"{image_path}/{image_name}").resize((x1, x2)).convert(y)
# 调用 image encoder 生成特征向量
img_features = image_ml.predict({'image': img})

通过上传图片的特征向量,而不是上传原图,充分保护了用户的隐私。因为通过图片的特征向量是无法还原出原图的。

生成文字

当「识图 App」把待生成文字的照片的图片特征向量上传到云端之后,面临的下一个任务是如何把矩阵表示的图片特征转换成文字。最终影响我们的技术方案的选择包含以下原则:

  • 此架构的输入不需要图片原图,可以通过图片的特征向量即可生成文字;
  • 此架构的输出文字能够尽量全面、尽量从多维度客观描述图片的内容;
  • 在图生文效果可接受的范围内,对 CPU/GPU 计算资源尽可能少;

在一众的图生文技术架构中, 比如  Flamingo、BLIP、 BLIP-2、MiniGPT-4和LENS等等。经过数次技术调研、实验和验证,我们最终采用了目前在大型多模态模型(LMM)的 11 个基准上达到 SOTA 的 LLaVA 架构(Large Language and Vision Assistant),一个能够进行视觉和语言多模态转换的模型。有兴趣的童鞋,这里是论文链接:

LLaVA 架构在自然指令遵循和视觉推理能力方面表现出了令人印象深刻的结果。同时也适用于不同的下游任务和领域,包括区域级和像素级理解、生物医学助理、图像生成、对抗性研究。如下图,在 LLaVA 的架构中,Z_v 是我们通过识图客户端的 vision encoder 计算出的图片特征向量,经过一个可训练的投影矩阵 W 将 Z_v 转换为语言嵌入标记 H_v,这些标记具有与语言模型中的单词嵌入空间相同的维度。

LLaVA network architecture

自训练大模型

在 Language Model 这一层我们没有找到合适的大模型,受限于为了满足「识图 App」特殊的运行时需求和可生成更简洁、优美的配文,我们不得不自己训练了「识图 」专属 LLM 大模型:XSmart-bear7b,用来把图片的特征向量最终生成生动的文字。这只可爱的白熊是我们自训练大模型的图标(也是由大模型生成)。

XSmart-bear7b

告一段落

随着「识图  App」发布了第二个版本,基于照片的搜索和推荐可能稍微会稍微告一段落。让工具回归工具,让「识图 」更懂你的照片!