当前位置: 首页 > article >正文

rk3588 上运行smolvlm-realtime-webcam,将视频转为文字描述

smolvlm-realtime-webcam 是一个开源项目,结合了轻量级多模态模型 SmolVLM 和本地推理引擎 llama.cpp,能够在本地实时处理摄像头视频流,生成自然语言描述, 开源项目地址

https://github.com/ngxson/smolvlm-realtime-webcamhttps://github.com/ngxson/smolvlm-realtime-webcam需要依赖https://github.com/ggml-org/llama.cpp/releases/tag/b5581https://github.com/ggml-org/llama.cpp/releases/tag/b5581但是问题来了,如果直接下载现成的llama-b5581-bin-ubuntu-arm64.zip ,

下载命令资源后会提示
Illegal instruction

需要自己编译一下https://github.com/ggml-org/llama.cpp 才可以在rk3588上运行

Build llama.cpp locallyThe main product of this project is the llama library. Its C-style interface can be found in include/llama.h.The project also includes many example programs and tools using the llama library. The examples range from simple, minimal code snippets to sophisticated sub-projects such as an OpenAI-compatible HTTP server.To get the Code:git clone https://github.com/ggml-org/llama.cpp
cd llama.cppThe following sections describe how to build with different backends and options.
CPU BuildBuild llama.cpp using CMake:sudo apt install curl
sudo apt install libcurl4-openssl-dev
cmake -B build
cmake --build build --config Release

在rk3588上大约要编译个十来分钟,算是大工程了。最后生成的文件在

/build/bin中

运行试一下,要用代理下载哦

export http_proxy=http://你的代理IP:端口
export https_proxy=http://你的代理IP:端口
./llama-server -hf ggml-org/SmolVLM-500M-Instruct-GGUF

最后出现

 

就表示成功了,这时运行,https://github.com/ngxson/smolvlm-realtime-webcam.git 工程中的index.html就会打开摄像头

 另外这个缺省的模型对中文不太友好,可以换成 中文的,但是速度就不太行了,推荐在有gpu的情况下使用。

# Gemma 3
(tool_name) -hf ggml-org/gemma-3-4b-it-GGUF
(tool_name) -hf ggml-org/gemma-3-12b-it-GGUF
(tool_name) -hf ggml-org/gemma-3-27b-it-GGUF# SmolVLM
(tool_name) -hf ggml-org/SmolVLM-Instruct-GGUF
(tool_name) -hf ggml-org/SmolVLM-256M-Instruct-GGUF
(tool_name) -hf ggml-org/SmolVLM-500M-Instruct-GGUF
(tool_name) -hf ggml-org/SmolVLM2-2.2B-Instruct-GGUF
(tool_name) -hf ggml-org/SmolVLM2-256M-Video-Instruct-GGUF
(tool_name) -hf ggml-org/SmolVLM2-500M-Video-Instruct-GGUF# Pixtral 12B
(tool_name) -hf ggml-org/pixtral-12b-GGUF# Qwen 2 VL
(tool_name) -hf ggml-org/Qwen2-VL-2B-Instruct-GGUF
(tool_name) -hf ggml-org/Qwen2-VL-7B-Instruct-GGUF# Qwen 2.5 VL
(tool_name) -hf ggml-org/Qwen2.5-VL-3B-Instruct-GGUF
(tool_name) -hf ggml-org/Qwen2.5-VL-7B-Instruct-GGUF
(tool_name) -hf ggml-org/Qwen2.5-VL-32B-Instruct-GGUF
(tool_name) -hf ggml-org/Qwen2.5-VL-72B-Instruct-GGUF# Mistral Small 3.1 24B (IQ2_M quantization)
(tool_name) -hf ggml-org/Mistral-Small-3.1-24B-Instruct-2503-GGUF# InternVL 2.5 and 3
(tool_name) -hf ggml-org/InternVL2_5-1B-GGUF
(tool_name) -hf ggml-org/InternVL2_5-4B-GGUF
(tool_name) -hf ggml-org/InternVL3-1B-Instruct-GGUF
(tool_name) -hf ggml-org/InternVL3-2B-Instruct-GGUF
(tool_name) -hf ggml-org/InternVL3-8B-Instruct-GGUF
(tool_name) -hf ggml-org/InternVL3-14B-Instruct-GGUF# Llama 4 Scout
(tool_name) -hf ggml-org/Llama-4-Scout-17B-16E-Instruct-GGUF# Moondream2 20250414 version
(tool_name) -hf ggml-org/moondream2-20250414-GGUF

使用下面的模型就可以返回中文了 

 llama-server -hf ggml-org/Qwen2.5-VL-3B-Instruct-GGUF

smolvlm-realtime-webcam 是一个开源项目,结合了轻量级多模态模型 SmolVLM 和本地推理引擎 llama.cpp,能够在本地实时处理摄像头视频流,生成自然语言描述。 


🧠 项目概述

  • 实时图像理解:通过调用摄像头,项目将捕获的图像发送到本地运行的 llama.cpp 服务器,使用 SmolVLM 模型进行处理,返回对图像的自然语言描述。

  • 轻量级部署:SmolVLM 模型参数量在 256M 到 500M 之间,设计上优化了计算效率,适合在资源受限的设备上运行。

  • 本地运行,无需联网:所有处理均在本地完成,增强了隐私保护,降低了部署门槛 


🚀 实际用途

  1. 辅助视觉障碍者:为视力受限人士提供实时的环境描述,增强其独立性。

  2. 智能家居监控:识别家中异常情况,如宠物行为、火灾迹象等,提升家庭安全。

  3. 教育与学习:在教学中实时描述实验过程或自然现象,增强学习体验。

  4. 工业质量控制:在生产线上实时检测产品缺陷,提高生产效率。

  5. 机器人视觉系统:为机器人提供实时环境理解,提升其自主导航和操作能力。


🌈 创意扩展

  • 实时字幕生成:为视频或直播内容生成实时字幕,提升可访问性。

  • 个性化虚拟助手:结合语音识别和图像理解,创建更智能的个人助手。

  • 增强现实(AR)应用:在 AR 设备中实时识别和标注现实世界中的物体,增强用户体验。

  • 艺术创作工具:将实时图像描述转化为诗歌或故事,激发创作灵感。

  • 环境数据收集:在野外部署设备,实时记录和描述自然环境变化,用于科研。


🔧 快速上手

  1. 安装 llama.cpp:按照官方指南编译并运行 llama.cpp。

  2. 下载 SmolVLM 模型:获取适用于 llama.cpp 的 SmolVLM 模型文件。

  3. 运行服务器:启动 llama.cpp 服务器,并加载 SmolVLM 模型。

  4. 启动前端界面:打开项目中的 index.html 文件,连接摄像头,开始实时描述。


该项目展示了在本地设备上实现实时多模态 AI 应用的可能性,为边缘计算和隐私保护提供了新的解决方案。

http://www.lryc.cn/news/2400770.html

相关文章:

  • 某航参数逆向及设备指纹分析
  • SQL思路解析:窗口滑动的应用
  • Rust 学习笔记:Box<T>
  • C# 从 ConcurrentDictionary 中取出并移除第一个元素
  • 操作系统学习(十三)——Linux
  • NLP学习路线图(二十二): 循环神经网络(RNN)
  • 每日一C(1)C语言的内存分布
  • Photoshop使用钢笔绘制图形
  • 应用层协议:HTTP
  • 复习——C++
  • SPI通信协议(软件SPI读取W25Q64)
  • PostgreSQL-基于PgSQL17和11版本导出所有的超表建表语句
  • JavaWeb:前后端分离开发-部门管理
  • ArcGIS计算多个栅格数据的平均栅格
  • 字节开源FlowGram:AI时代可视化工作流新利器
  • 如何选择合适的分库分表策略
  • (LeetCode 每日一题)3403. 从盒子中找出字典序最大的字符串 I (贪心+枚举)
  • GPIO的内部结构与功能解析
  • Python训练打卡Day42
  • 深度学习中的负采样
  • php7+mysql5.6单用户中医处方管理系统V1.0
  • Java 大视界 — Java 大数据在智能安防视频监控中的异常事件快速响应与处理机制
  • 智慧物流园区整体解决方案
  • 审批流程管理系统开发记录:layui前端交互的实践
  • 【会员专享数据】1960—2023年我国省市县三级逐年降水量数据(Shp/Excel格式)
  • 2025年精通MVCC
  • 硬路由与软路由
  • OpenCV C++ 心形雨动画
  • Fullstack 面试复习笔记:Java 基础语法 / 核心特性体系化总结
  • 安卓Compose实现鱼骨加载中效果