返回 AI 产品项目

AI PRODUCT PROJECT / 03

Aussie EcoLens野生动物媒体 AI 处理链路

问题

一张野生动物照片上传后,不该只是被存起来。系统还要判断它有没有重复、生成方便浏览的缩略图、从视频里抽出关键帧,再识别物种并把结果写回目录。我的工作,是把这些零散能力接成一条能持续运行的链路。

Monash 学生项目全链路独立搭建AWS + OCI · Multi-cloud曾完成线上部署

项目范围

从登录、上传,到识别、检索和通知。

我完成了 React 前端、Cognito 登录、文件去重、图片与视频处理、两阶段识别、DynamoDB 索引、查询与标签管理、物种订阅,以及 AWS 到 OCI 的审计链路。本页重点拆解媒体处理与 ML Pipeline。

我搭的链路

先处理文件,再让模型判断。

01

文件预检

浏览器先计算 SHA-256。若文件已经存在,直接返回已有记录,不再重复上传和推理。

02

介质处理

图片保持比例生成压缩缩略图;视频按 1 fps 抽帧,避免把整段视频一次塞给模型。

03

目标检测

MegaDetector v5a 先找出画面里的动物,减少背景和无关区域对分类的干扰。

04

物种分类

SpeciesNet 再判断物种;阈值、冷启动和逐帧任务都被单独处理。

05

结果入库

把文件信息和标签写入 DynamoDB 的 Files / TagIndex,让后面的检索可以直接使用。

处理约束

每一步都写清输入、判断和输出。

环节输入关键判断输出 / 证据
01文件预检SHA-256 文件摘要命中已有文件时,停止重复上传与推理已有文件与标签记录
02视频处理视频文件按 1 fps 拆成独立帧任务抽帧任务
03目标检测图片 / 视频帧先由 MegaDetector v5a 定位动物区域动物候选框
04物种分类动物候选区域再由 SpeciesNet 判断物种物种标签
05跨云审计AWS 业务事件将审计 JSON 写入 OCI Object Storage可追溯的跨云记录

产品判断

为什么不让一个模型从头做到尾?

01

先去重

重复文件如果继续上传,会重复占用存储、推理时间和用户等待。把去重放在最前面,是最便宜也最确定的一次判断。

02

检测与分类分开

第一步回答“画面里有没有动物、在哪儿”,第二步再回答“它是什么”。链路更容易定位错误,也能分别调整阈值。

03

视频按帧处理

1 fps 是覆盖率与计算成本之间的取舍。每一帧独立分发,即使个别任务失败,也不必让整段视频重跑。

04

模型可以替换

模型版本放在 DynamoDB 指针里。换模型时更新指针即可,不需要跟着改代码、重新部署整条链路。

运行证据

主链路在 AWS,审计记录落到 OCI。

前两张图证明上传、去重和标签目录确实跑过;第三张图能看到 OCI Object Storage 中持续写入的审计 JSON。多云不是架构图上的两个框,而是 AWS 处理业务、OCI 留下跨云记录。

Aussie EcoLens 识别到重复视频并跳过上传
01重复文件:返回已有标签,不再上传
Aussie EcoLens 新图片上传进度
02新文件:通过校验后上传并进入处理链路
OCI Object Storage 中的 Aussie EcoLens 审计记录
03OCI 辅助链路:audit 目录持续收到跨云审计 JSON

完整系统

从上传一张照片,到搜到识别结果。

前端负责登录、上传、搜索和订阅;AWS 承接文件存储、媒体处理、模型推理和索引;OCI 留下跨云审计记录。用户从上传一张照片开始,最后能搜到识别结果,也能订阅关心的物种。

Aussie EcoLens 多云无服务器架构图

复盘

模型识别出来,只是产品链路的中点。

这次项目让我真正关心的,不只是模型能不能给出一个标签,而是重复文件要不要再跑、视频怎样拆才不会拖垮任务、失败能不能局部重试、模型升级会不会牵动整套系统。把这些选择想清楚,AI 才从一次推理变成一个可以继续使用的产品。