游乐游手机版
首页/AI教程/文章详情

开源免费全本地运行的视觉模型Next.JS系统

时间:2026-05-28 17:41
Seven 视觉模型项目介绍 今天想跟大家聊一个很有意思的开源项目——Seven视觉模型。说白了,这是一个完全跑在浏览器里的实时目标检测系统,不需要云端AI接口,一切推理都在本地完成。 1 项目概述 这个项目的核心思路很简单:打开浏览器,调用摄像头,然后在本地就完成目标检测和告警。它用Next j

Seven 视觉模型项目介绍

今天想跟大家聊一个很有意思的开源项目——Seven视觉模型。说白了,这是一个完全跑在浏览器里的实时目标检测系统,不需要云端AI接口,一切推理都在本地完成。

1. 项目概述

这个项目的核心思路很简单:打开浏览器,调用摄像头,然后在本地就完成目标检测和告警。它用Next.js、React、TypeScript、MediaPipe Object Detector、EfficientDet-Lite0和MySQL构建,主要实现的功能包括摄像头实时画面采集、目标检测、威胁等级配置、告警截图、截图管理、历史记录和摄像头配置等。

绕来绕去,最核心的一个点就是——目标检测不依赖云端AI接口,而是在浏览器端通过MediaPipe WASM加载本地模型完成推理。这样一来,既减少了服务端压力,也避免了摄像头画面上传到第三方平台,隐私性有保障。

项目使用的目标检测模型是:MediaPipe Object Detector + EfficientDet-Lite0,模型文件存放在public/models/efficientdet_lite0_uint8.tflite

2. 项目技术栈

整体采用前后端一体化架构,页面和接口都由Next.js统一提供。前端UI用Ant Design搭建,目标检测逻辑全部跑在浏览器端,数据持久化则交给了MySQL。看下核心依赖就知道了:

// package.json 中的核心依赖
{
  "dependencies": {
    "@mediapipe/tasks-vision": "0.10.34",
    "antd": "^6.3.6",
    "mysql2": "^3.22.2",
    "next": "16.2.4",
    "react": "19.2.5",
    "react-dom": "19.2.5"
  }
}

具体来说,项目主要用到了这些技术:

  • Next.js App Router:负责页面路由和API Routes
  • React Hooks:管理摄像头状态、检测状态和页面交互
  • TypeScript:提供类型约束
  • Ant Design:构建后台管理界面
  • MediaPipe Object Detector:实现浏览器端目标检测
  • EfficientDet-Lite0:轻量级目标检测模型
  • MySQL:保存威胁配置、截图、历史记录和摄像头配置

3. 系统功能模块

系统主要分为五个页面,结构很清晰:

/ 实时视觉分析首页
/history 历史记录
/threats 威胁管理
/snapshots 截图管理
/cameras 摄像头管理

components/AppShell.tsx中,项目通过导航菜单把这些页面统一组织起来,方便快速切换。

首页主要负责实时检测,其他页面则用于管理和查看数据。这样一来,整个系统不仅能检测目标,还能完成告警的完整闭环。

4. 浏览器摄像头采集

摄像头采集这块,项目用的是浏览器原生的MediaDevices.getUserMedia API,相关逻辑封装在hooks/useObjectDetector.ts中。

具体设置是这样的:

  • audio: false:只读取视频,不碰音频
  • facingMode: "environment":移动端优先使用后置摄像头
  • widthheight:期望摄像头输出1280x720
  • playsInline:提升移动端Safari兼容性,避免视频全屏播放

如果用户拒绝摄像头权限,项目会根据浏览器返回的异常类型展示对应的错误提示。比如权限被拒时提示“请允许摄像头访问”,没找到设备时提示“确认设备已连接”,设备被占用时提示“可能正在被其他应用占用”——这些都是很贴心的用户体验设计。

5. MediaPipe 模型加载

目标检测模型通过MediaPipe Tasks Vision在浏览器端加载。这里有个关键点:项目使用动态导入,避免服务端渲染阶段去访问浏览器API,否则会报错。

代码逻辑也很清晰:WASM文件从/mediapipe/wasm加载,检测模型从/models/efficientdet_lite0_uint8.tflite加载。runningMode: "VIDEO"表示使用视频流检测模式,maxResults: 20表示最多返回20个检测结果,scoreThreshold: 0.45表示置信度低于0.45的目标会被过滤掉。

为了让模型文件和WASM文件自动准备好,项目还提供了一个脚本,安装依赖后执行npm run prepare:mediapipe就能搞定。

6. 实时检测与节流处理

目标检测不能每一帧都执行,否则浏览器主线程压力太大了。因此项目设置了检测间隔:DETECTION_INTERVAL_MS = 700,也就是每700ms对当前视频帧执行一次目标检测。

检测启动后,通过setInterval周期性执行推理。这样既能保持实时感,又不会让浏览器资源占用过高,算是性能和体验之间一个不错的平衡点。

7. 检测结果处理

MediaPipe返回的检测结果会被转换成项目内部统一的数据结构。这里面有几个关键字段:

  • label:模型原始标签,比如personcarknife
  • displayName:中文显示名称,比如汽车
  • score:置信度
  • box:目标框坐标,使用百分比表示,便于在响应式视频区域上绘制

项目内置了一份英文标签到中文名称的映射,放在一个常量对象里。目标框坐标会被转换成百分比,这样在页面上绘制检测框时,只需要设置CSS百分比定位,省去了很多麻烦。

8. 威胁等级配置

项目支持为不同目标设置威胁等级,等级分为nonelowmediumhighcritical五种。

默认威胁配置写在lib/db.ts中,比如:

  • 行人:中等威胁,检测到人员进入监控区域
  • 车辆:低威胁,检测到车辆经过
  • 刀具:严重威胁,高危告警
  • 手机:无威胁

首页检测到目标后,会根据数据库中的威胁配置判断是否需要告警。如果目标被启用,并且威胁等级不是none,系统就会把它视为告警目标。

9. 告警提醒

当检测到威胁目标时,系统会弹出告警通知,显示威胁信息、等级和置信度。为了避免同一个目标连续重复提醒,项目使用lastNoticeRef保存上次提醒时间,同一类威胁目标在6秒内不会重复弹出提醒——这个细节做得挺到位。

10. 告警截图生成

系统检测到威胁目标时,会使用Canvas截取当前视频帧,然后在截图上绘制目标框和文字。截图顶部还会添加上告警信息和时间戳,看起来就很像一个完整的告警证据。

最后,截图会被转换为Base64并提交到后端保存。项目也设置了截图冷却时间,默认12秒,避免连续保存过多截图。

11. 历史记录管理

项目不仅记录某一帧的检测结果,还会记录目标进入和离开的时间。每当画面中间出现新的目标,就创建一条历史记录;当目标从画面中消失时,系统会更新该记录的离开时间和最高置信度。后端会根据进入时间和离开时间计算停留时长,这样就能知道某个目标在画面里待了多久。

12. 数据库连接与建表

数据库连接逻辑位于lib/db.ts,使用的是MySQL连接池。数据库名为vision_analysis_system,项目启动接口时会自动创建数据库和表。

数据库表包括:

  • threat_configs:威胁配置
  • threat_snapshots:威胁截图
  • system_events:系统事件
  • cameras:摄像头配置
  • detection_records:检测记录

同时项目也提供了独立的SQL文件database/vision_analysis_system.sql,可以通过命令行手动导入。

13. 后端 API 设计

项目使用Next.js API Routes实现后端接口,前端页面和后端接口都在同一个Next.js项目中。比如截图接口位于app/api/snapshots/route.ts,保存截图时前端向/api/snapshots发送POST请求,后端接收后写入MySQL。这种设计让部署和维护都变得很简单。

14. 页面与响应式设计

界面使用Ant Design组件搭建,通过全局CSS实现深色科技风格。页面整体分为顶部导航、实时视频区域和右侧信息区域。桌面端使用左右布局,视频画面占主要区域;手机端则按内容自然向下排列,变成单列布局。这样既能保证电脑端的大画面体验,又能适配手机端的浏览习惯。

15. 项目总结

Seven视觉模型是一个前后端一体化的浏览器端实时目标检测系统。它通过MediaPipe Object Detector和EfficientDet-Lite0模型在浏览器中完成本地推理,完全不依赖云端AI接口。系统不仅实现了摄像头画面检测,还扩展了威胁等级配置、告警截图、历史记录、截图管理和摄像头管理等完整功能。

从技术实现上看,项目结合了浏览器摄像头API、WebAssembly本地推理、React Hooks状态管理、Canvas截图绘制、Next.js API Routes和MySQL数据持久化。整体结构清晰,很适合作为计算机视觉、前端AI、智能监控和本地化目标检测方向的学习项目或毕业设计项目。

项目的核心价值在于:用普通浏览器就能完成实时视觉分析,不需要专门客户端,也不需要付费云端AI服务。部署简单、成本较低、隐私性好、扩展性强——这几个特点让它在一众监控方案中显得很特别。

来源:https://juejin.cn/post/7631160059813838848
上一篇阿里云OpenClaw成本断崖降,年费等于本地一月,免费Token不限量 下一篇AI智能数学家教一对一高效在线辅导
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
GPT Workspace通过GPT-5强化Google Workspace,文档表格邮件创作效率与智能化提升
AI教程 · 2026-05-29

GPT Workspace通过GPT-5强化Google Workspace,文档表格邮件创作效率与智能化提升

GPT Workspace 产品介绍:GPT-5 如何增强 Google Workspace 工作效率 如果你每天都在使用 Google Workspace 进行文档撰写、表格处理、邮件沟通和演示制作,一定深有体会:大量重复性的办公任务耗费了宝贵的时间。现在,GPT Workspace 将 GPT-

AI助手提升年终总结与周报效率的精准营销策略
AI教程 · 2026-05-29

AI助手提升年终总结与周报效率的精准营销策略

适合需求:在信息爆炸的时代,企业所承受的竞争压力几乎覆盖了所有维度,其中营销领域尤为令人困扰。无论是撰写年终总结还是生成周报,精准的营销策略已成为不可或缺的需求——没有谁愿意在庞杂的数据中迷失方向。当我们复盘营销活动时,总会思考:过去哪些数字营销策略真正发挥了效果?哪些内容营销策略有待改进?然而实际

Afri Studio 非洲创意工作室
AI教程 · 2026-05-29

Afri Studio 非洲创意工作室

Afri Studio是什么先来聊聊Afri Studio——它是Afri AI团队推出的一款AI媒体创作工作室,目标很明确:把原本高高在上的智能技术拉下神坛,让普通用户也能轻松生成高质量的文本、图像、音频等内容。换句话说,这是一个面向内容创作者、博主、营销人员、艺术家的“AI工具箱”,帮你高效搞定

Geniea专注Midjourney提示词优化提升创意生成效率
AI教程 · 2026-05-29

Geniea专注Midjourney提示词优化提升创意生成效率

Geniea产品详解:Midjourney提示优化工具Geniea是一款专注于Midjourney提示词优化的智能平台,致力于帮助创作者快速生成高质量且富有创意的提示方案。无论您需要电影镜头、食品摄影还是汽车广告等场景的提示词,只需输入简单指令,系统便会自动输出优化后的提示文本,大幅提升创作效率。提

幼儿园大班毕业典礼方案PPT AI轻松制作精彩回顾
AI教程 · 2026-05-29

幼儿园大班毕业典礼方案PPT AI轻松制作精彩回顾

使用情景 每年毕业季来临之际,幼儿园大班毕业典礼的筹备工作,总是牵动着众多老师、家长和孩子们的心弦。这不仅仅是一场简单的活动,更是孩子们人生中首个重要的成长仪式,标志着他们告别幼儿时光、迈向新阶段的里程碑。对于家长而言,这也是一次充满感怀的“毕业”,意味着一段陪伴旅程的暂时落幕。 如何让这场典礼既温