7.1.2. AI 相册#
一、简介#
Axera 芯片本地 AI 私有云相册解决方案,通过将开源相册 Immich 深度适配至爱芯元智(Axera)边缘硬件,打造了一条完整的本地智能影像数据链路。
该方案可将搭载 AX650/AX8850 芯片的边缘设备(如 M4N-Dock 开发板、M5Stack AI Pyramid Pro 等)直接升级为隐私安全的“本地版 Google Photos”:
纯本地闭环: 部署完毕后,数据存储与 AI 推理(语义、OCR、人脸比对)可100% 本地完成,零云端依赖,满足严苛的隐私保护与离线运行需求。
芯片级加速: 深度调用 Axera NPU,为 CN-CLIP、PP-OCRv5 和 InsightFace 提供底层硬件加速,彻底释放 CPU 压力,实现海量照片毫秒级检索。
开箱即用: 依托 Immich 成熟生态,原生自带精美的 Web/App 双端界面及多用户管理体系,免二次开发,极速落地。
多维 AI 检索: 聚合人脸聚类图谱、自然语言模糊搜索及精确 OCR 文本提取,打造无死角检索体验。
极简部署: 基于 Docker 环境,灵活适配各类轻量级边缘计算盒子与开发套件,部署成本极低。
二、适用场景#
场景 |
典型需求 |
方案收益 |
|---|---|---|
家庭/极客私有云相册 |
海量照片无感备份,按人脸自动管理,要求数据绝对隐私。 |
纯本地图谱: 数据不出网,实现原画质极速备份、InsightFace 自动人脸聚类与动态足迹地图。 |
个人知识库与票据管理 |
快速找回堆积的证件照、发票、会议白板及带字截图。 |
OCR 图文提取: 利用 PP-OCRv5 精准提取文字,将静态图片转化为即搜即得的本地资料库。 |
专业影像创作者/工作室 |
在缺少标签的海量图片素材底库中,快速精准提取目标。 |
自然语言找图: 免除人工打标签,输入文字描述即可瞬间定位所需素材。 |
旅游博主与户外游记 |
旅途产生大量影像,需直观梳理行程轨迹,并方便后续向朋友或粉丝复盘分享。 |
动态足迹与共享: 自动解析图文 EXIF 坐标并在地图生成专属旅行轨迹,结合多用户与相册共享功能,轻松实现无缝的游记分享。 |
三、示例效果#
1.AI极速找图#
照片入库后,Axera 芯片的 NPU 会立即接管高负载计算。系统运行 PP-OCRv5 和 CN-CLIP 等模型,对图片进行高维特征提取与文字识别,并在本地快速建立多维向量索引数据库。网页或APP端接收到检索请求时,系统直接在索引库中进行高维空间比对。
语义检索: 响应模糊自然语言描述的匹配结果。
OCR 检索: 精准锁定包含特定文字的图片。
免除人工打标签的繁琐,以及不受网络波动影响的毫秒级毫秒级无感检索体验。
在网页端进行“穿红色衣服的小孩”、“在黑色汽车上的猫”、“savor delicious food”等中英文描述搜索
在APP端使用OCR功能,进行图片水印、变形字体的搜索
2.智能人物相册#
当导入海量照片时,系统会在后台实时运行人脸识别算法,提取面部特征并进行高维度比对。系统会自动将同一人物的影像进行聚类,并在“探索”界面中生成独立的专属图片集。用户可对该集合进行自定义命名标签,后续当带有该人物的新照片上传时,系统会自动进行特征匹配并动态将其归入对应的档案中。
全自动化的人物特征提取与高精度聚类,彻底免去繁琐的人工挑图与分类建档工作。
建立动态生长的个人影像库,新上传的照片自动触发比对规则,实现无感自动入库。
高自由度的干预机制,支持用户对自动归类进行自定义命名与手动修正,确保图谱精准度。 在“探索”界面直观管理所有人物图谱,让海量照片按人像自动井然有序,轻松构建专属的家庭成员或社交圈数字成长轨迹。
3.唤醒老照片#
针对早期单反或扫描件等缺失 GPS 信息的照片,用户可以通过界面手动填写位置信息、图片描述等信息。系统接收并处理这些自定义信息后,会直接重写底层数据库的影像属性节点,并动态下发更新至所有终端。
对照片底层元数据(地理位置、时间等)的绝对编辑与控制权。
将散落的历史图片重新赋予空间维度,瞬间融入用户的全局数字轨迹中。
即时生效、跨端同步(Web端修改,APP端地图同步刷新)的数据一致性体验。
在网页端重新编辑图片地址信息,并同步到地图中,方便快速翻阅,快速打造属于自己的“旅行足迹”
4.自动备份#
在同一网络下,移动端生成新影像资产后,Immich 客户端会实时侦测并在后台建立传输通道。照片流推入 Axera 边缘硬件后,系统瞬间完成数据落盘,并自动提取和解析文件的 EXIF 元数据(包含经纬度、时间戳、设备参数)。系统将空间坐标转化为可视化锚点,并映射至全景地图中。
安全落盘的图片/视频原文件以及系统自动生成的轻量级缩略图。
基于时间轴与地理坐标双维度构建的结构化数字资产库。
直观呈现个人运动轨迹的动态地图与区域热力分布。
APP同步相册,拍照完成后,自动同步相册数据,并将位置信息同步到地图
四、开发者接入示例#
下面是核心配置片段,用于说明开发者需要关注的关键开关。完整部署请以资源包 README 和本站安装文档为准
1.导入并启动docker#
• 加载离线 Docker 镜像包,并使用 Docker Compose 启动容器服务。
docker load -i ax-immich-server-aarch64.tar.gz
docker compose -f docker-compose.yml -f docker-compose.override.yml up -d
2.搭建ml环境并启动ml服务#
#注意安装py 3.11版本(v2.7.5 immich官方指定)
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.11
# 安装依赖
pip install -r requirements.txt
#建议选择PyAXEngine最新版本 当前最新0.1.3.rc3
pip install https://github.com/AXERA-TECH/pyaxengine/releases/download/0.1.3.rc3/axengine-0.1.3-py3-none-any.whl
#安装Wheel包
pip install immich_ml-2.7.5-py3-none-any.whl
3.选择模型并启动任务#
通过ip和端口进入网页,选择对应模型、运行任务后即可使用:
CLIP模型:ViT-L-14-336-CN__axera
人脸识别模型(默认为AXERA模型):buffalo_l_axera(AXERA)
OCR模型(默认为AXERA模型):PPOCR_v5_axera(AXERA)
五、性能评估#
Immich 服务由 Docker 中的 server/postgres/redis 与宿主机 immich_ml 组成。由于模型懒加载、运行时缓存、数据库缓存以及AX CMM 分配策略等因素,MEM与 CMM 占用会受操作影响。下面固定测试场景进行性能评估:
本次测试模拟用户日常使用流程,使用AxEngineExecutionProvider:通过 Web 页面批量上传图片,随后由系统自动完成缩略图、元数据、人脸识别、OCR、重复检测和智能搜索索引等后台处理。
测试图片:2310 张
上传方式:Web 页面手动上传
ML 模型:本地缓存加载
HF_HUB_OFFLINE=1测试模式:预热后的日常连续使用状态
1、整体处理能力#
上传2310张混合图片
阶段 |
耗时 |
处理能力 |
|---|---|---|
Web 批量上传 |
205 秒 |
约 11.3 张/秒 |
上传后后台 AI 处理 |
829 秒 |
约 2.8 张/秒 |
从开始上传到全部完成 |
1034 秒 |
约 17 分 14 秒 |
处理完成后,本批图片产生:
人脸记录:1660 条
OCR 文本记录:710 条
2、存储占用#
目录 |
占用 |
|---|---|
AXERA / Immich ML 模型缓存 |
637 MiB |
HuggingFace 缓存 |
544 KiB |
Immich 图库目录 |
585 MiB |
本次测试使用本地模型缓存运行,不依赖外网下载,适合边缘设备、内网部署和离线演示环境。
3、搜索能力#
后端搜索接口能力 使用脚本直接请求 Immich 搜索接口,分别覆盖元数据搜索
/api/search/metadata和智能语义搜索/api/search/smart。每个关键词连续执行 10 轮,第 1 轮作为首次查询参考,第 2-10 轮作为热查询统计。该指标反映服务端从接收搜索请求到返回 JSON 结果的耗时,不包含浏览器输入防抖、页面渲染、缩略图加载等前端开销。
能力项 |
测试内容 |
测试结果 |
产品化描述 |
|---|---|---|---|
中文语义搜索 |
查询“穿红色衣服的小孩” |
首次约 105 ms,热查询平均约 60 ms |
支持中文自然语言描述检索,可根据人物、颜色、衣着等复合语义查找图片。 |
英文语义搜索 |
查询“red clothes child” |
首次约 83 ms,热查询平均约 59 ms |
支持英文自然语言检索,适合中英文混合展示和国际化场景。 |
人物类搜索 |
查询“小孩 / child / 孩子” |
热查询平均约 60-63 ms |
可根据人物类别进行语义检索,适合快速查找人物相关照片。 |
颜色与衣着搜索 |
查询“红色衣服 / red shirt” |
热查询平均约 60-61 ms |
可识别图片中的颜色和衣着特征,支持更细粒度的图片查找。 |
组合条件搜索 |
查询“person in red” |
热查询平均约 59 ms |
支持人物与颜色等多条件组合描述,提升图库检索的直观性。 |
查询响应体验 |
每个关键词连续查询 10 轮 |
首次查询约 76-105 ms,热查询约 58-63 ms |
在 2310 张图片规模下,智能搜索响应保持在百毫秒级以内,适合现场演示和日常使用。 |
查询稳定性 |
中英文关键词多轮请求 |
HTTP 状态均为 200,异常数 0 |
查询接口响应稳定,连续检索过程中未出现请求失败。 |
4、推荐部署余量#
基于本轮 2310 张图片测试结果,建议产品化部署预留以下资源:
项目 |
建议值 |
说明 |
|---|---|---|
OS 内存 |
>= 3.5 GiB |
按实测总内存峰值约 2.62 GiB 增加 30% 余量 |
CMM |
>= 1.0 GiB |
按实测 CMM 峰值约 732 MiB 增加 30% 余量 |
推荐 CMM 配置 |
4 GiB |
本次测试配置余量充足,适合展示和扩展 |
模型缓存空间 |
>= 1 GiB |
当前模型缓存约 637 MiB,建议留足更新空间 |
图库空间 |
原图空间 + 30% 以上 |
缩略图、索引、派生文件会随图库增长 |