分享好友 最新动态首页 最新动态分类 切换频道
【飞桨AI实战】基于PP-OCR和ErnieBot的字幕提取和智能视频问答
2024-12-09 05:48
【飞桨AI实战】基于PP-OCR和ErnieBot的字幕提取和智能视频问答 问答

本次分享将带领大家从 0 到 1 完成一个基于 OCR 和 LLM 的视频字幕提取和智能视频问答项目,通过 OCR 实现视频字幕提取,采用 ErnieBot 完成对视频字幕内容的理解,并回答相关问题,最后采用 Gradio 搭建应用。本项目旨在帮助初学者快速搭建入门级 AI 应用,并分享开发过程中遇到的一些坑,希望对感兴趣的同学提供一点帮助。

背景

光学字符识别(Optical Character Recognition,简称 OCR)是一种将图像中的文字转换为机器编码文本的过程。通常一个 OCR 任务的处理流程如下图所示

而视频字幕提取就是对视频中的每帧图像提取出其中的字幕文字。

大语言模型(LLM,Large Language Model)是一种先进的自然语言处理技术,当前主流的 LLM 包括 GPTs、百度文心一言、阿里通义千问、字节豆包等,而 ErnieBot 正是基于百度文心一言的智能体框架。基于提取的视频字幕,借助 LLM 强大的语义理解能力,我们可以完成很多有意思的任务,比如让 LLM 帮我们提取视频的关键信息,甚至是基于视频回答我们的问题,减轻当前大模型常见的“幻觉”-胡说八道,比如下面这张图

目标

  • 掌握如何用 paddlepaddle 深度学习框架搭建一个文本识别模型
  • 掌握文本识别模型架构的设计原理以及构建流程
  • 掌握如何利用已有框架快速搭建应用,满足实际应用需求

本次实验将采用 AI Studio 实训平台中的免费 GPU 资源,在平台注册账号后,点击创建项目-选择 NoteBook 任务,然后添加数据集,如下图所示,完成项目创建。启动环境可以自行选择 CPU 资源 or GPU 资源,创建任务每天有 8 点免费算力,推荐大家使用 GPU 资源进行模型训练,这样会大幅减少模型训练时长。

创建项目的方式有两种

  • 一是在 AI Studio 实训平台参考如下方式,新建项目。
  • 二是直接 fork 一个平台上的已有项目,比如本次实验,可以选择【飞桨 AI 实战】实验 6-基于 PP-OCR 和 ErnieBot 的智能视频问答的最新版本,然后点击 fork,成功后会在自己账户下新建一个项目副本,其中已经挂载了源项目自带的数据集和本次项目用到的核心代码。

为了快速跑通项目流程,建议直接 fork 源项目。

核心代码在: 文件夹下

背景:CRNN 是较早被提出也是目前工业界应用较多的文本识别方法。本节将详细介绍如何基于 PaddleOCR 完成 CRNN 文本识别模型的搭建、训练、评估和预测。数据集采用 CaptchaDataset 中文本识别部分的 9453 张图像,其中前 8453 张图像在本案例中作为训练集,后 1000 张则作为测试集。

1.1 数据准备

step 1:解压缩数据

 

step 2: 准备数据部分代码

 

可视化结果如下

1.2 模型构建

本次实验我们将采用最简单的网络架构来搭建 CRNN 网络 并构建损失函数 CTCLoss

step 1: 搭建 CRNN 网络

 

step 2: 定义损失函数 CTCLoss

 

1.3 模型训练

编写训练脚本 如下,主要是定义好数据集、模型,配置训练相关参数

 

训练过程如下图所示

1.4 模型预测

编写预测脚本

 

调用模型预测函数:得到生成图像的可视化结果

核心代码在: 文件夹下

2.1 环境准备

本项目主要用到了以下安装包,可以采用 一键安装。

 

2.2 需求分析

本项目主要需要完成两个功能: 和 。

  • 中文视频能提取出其中的字幕
  • 英文视频能自动生成中文字幕
  • 生成 SRT 格式的字幕文件
  • 将字幕文件内嵌到视频中去

  • 提取视频中的关键信息,完成视频摘要
  • 根据字幕信息,回答用户针对视频的提问
  • 根据字幕信息,定位关键信息对应的时间片段

2.2 核心功能实现

2.2.1 基于 PP-OCR 完成字幕提取

采用 opencv 读取视频中的图片,引入 paddleocr 包实现图片中的字幕提取,同时记录时间信息,为了快速完成 demo 展示,这里采用每秒抽取一帧图像,且只用图像底部包含字幕的部分进行文字识别,核心代码如下

 

2.2.2 基于 百度翻译API 完成字幕翻译

为了帮助大家对原版英文视频的理解,可以将原始的英文字幕翻译成中文,这里选择直接调用 百度翻译API,开发者每个月都有一定的免费额度。注意将其中的 换成你自己的。

 

2.2.3 生成 SRT 格式的字幕文件

视频文件中最简单、最常见的外挂字幕格式是SRT(SubRip Text)。SRT字幕通常以srt作为后缀,作为外挂字幕,多数主流播放器都支持直接加载并显示SRT字幕。通常每个字幕段有四部分构成

  • 字幕序号:从 1 开始(而不是 0
  • 字幕显示的起始时间
    • 格式为
  • 字幕内容(可多行
  • 空白行(表示本字幕段的结束

一个简单的例子如下

 

让我们编写代码将提取的字幕改写成 SRT 格式的字幕文件

 

2.2.4 基于 moviepy 实现视频拼接

注意 moviepy 实现视频拼接需要安装 imagemagick。在 AIStudio 的 Linux 环境中没有 sudo 权限,因此无法安装 imagemagick,如果要实现视频拼接,需要大家移步到自己本地电脑运行。Linux 下一键安装 imagemagick

 

如果 imagemagick 安装没问题,那么就可以实现将翻译后的中文字幕添加到视频中。这里给出示例代码实现

 

2.2.5 基于 ErnieBot 实现视频问答

ERNIE Bot 为开发者提供了便捷接口,可以轻松调用文心大模型的文本创作、通用对话、语义向量及AI作图等基础功能。

这里仅使用通用对话接口,你只需要将、和准备就可以了,示例代码如下

 

注意这里的可以在 AIStudio 的个人中心获取(如下图所示,每个新用户都有免费额度。

2.3 Gradio前端界面实现

本次实验同样还是基于 Gradio 搭建一个简单的前端应用,将上述实现的功能集成进来。具体界面逻辑如下

 

在 AIStudio 的云环境中启动应用

 

 

下面介绍两种方式

方式一

参考 AIStudio 的项目服务部署官方文档,采用url拼接的方式:。

举个例子:比如我的Codelab地址是

那么在浏览器中打开如下链接即可访问你启动的 Gradio 应用

方式二

为此,我们选择在 Codelab 的 Notebook 界面中进行前端展示。在Notebook 界面中进行前端展示,需要格式的文件,为此可以将复制一份命名为,如下图所示

这里有几点坑,大家注意避开

  • 在 demo.launch()中不要指定 8080 端口
  • 如果依然出现上述 css 文件加载不出来,导致界面显示有问题,换一台开发机试试吧,笔者亲测有效。
  • 需要在初始 python 环境中安装项目依赖包,因为是在下面这个python环境中启动的

此外,还可以选择在本地 Linux 环境中运行项目,完美避开上述各种坑。

至此,我们共同走完了一个完整的视频问答项目,从基础的动手跑通 CRNN 文本识别任务,再到应用开发和部署,旨在帮助初学者快速入门 OCR 相关技术并搭建一个简单的应用。

最新文章
seo优化推广如何 SEO优化推广效果与策略解析
SEO优化推广如何:掌握数字时代的营销利器在当今数字化迅猛发展的时代,企业的在线可见性和品牌影响力变得至关重要SEO(搜索引擎优化)作为一种有效的数字营销策略,不仅能够帮助企业在竞争激烈的市场中脱颖而出,还能带来持续、稳定的流量
宁波SEO服务热线汇总,助力网站快速提升排名抢占市场优势
宁波SEO厂商电话一览,为您提供专业SEO服务,助您快速提升网站排名,抢占市场先机。涵盖多家知名SEO公司,详尽联系方式,让您轻松选择,高效优化网站,助力企业发展。随着互联网的快速发展,企业对网络营销的需求日益增长,SEO(搜索引擎优
Python开发QQ聊天机器人——Yes酱的部署与调教
Yes酱是一个会发s图的群管理机器人,基于 go-cqhttp,使用OneBot标准的插件开发的一个机器人,支持以下功能:发送setu/猫猫图返回一张涩图/猫猫图检测关键字禁言私聊调教对话本文主要参考了其官方博客,结合Yes酱的github和go-cqhttp的gith
2024 (图文)Yoast SEO插件使用教程,详细设置步骤
  Yoast SEO是著排名第一的。插件有Yoast SEO(免费)和Yoast SEO Premium(付费)有两个版本  Yoast SEO可以完美地在所有类型的网站或上实现SEO相关的设置。可帮助您编写更好的且经过优化的内容让搜索引擎收录。该插件的免费版本还具
EyouCms(易优企业建站系统) 官网版 v3.5.6
EyouCms(易优企业建站系统)官方版是一款十分受欢迎的企业内容管理软件。EyouCms(易优企业建站系统)最新版支持文章的「发布、删除、移动、复制、排序、推荐、置顶、隐藏、显示」操作。EyouCms(易优企业建站系统)官方版支持设置每篇文章的「
【技术】全站仪测量使用方法及坐标计算,一步一步讲解!
全站仪常规注意事项:在使用本仪器之前, 要把各种注意事项烂熟于心,务必检查并确认该仪器各项功能运行正常。1、不要将仪器直接对准太阳将仪器直接对准太阳会严重伤害眼睛。若仪器的物镜直接对准太阳, 也会损坏仪器。2、将仪器架设到脚架
宅家新姿势—威联通NAS安装套件版Emby搭建家庭影音服务器
创作立场声明:最近一直在折腾威联通的NAS,也折腾出了一些小心得,网上关于威联通系统的相关教程较少,所以新的一年,准备开一个新系列,写写威联通系统的介绍、配置技巧等,是分享也是记录。在阿文菌等各位大佬的影响下开始研究Emby这款
【原创】解锁社交媒体SEO:获取海量流量的密钥
  在当今数字化时代,社交媒体已成为人们日常生活的重要组成部分,同时也是企业和个人获取流量、提高品牌知名度的重要渠道。社交媒体SEO(搜索引擎优化)作为一种优化社交媒体平台的方法,旨在提高网站在搜索引擎和社交媒体上的排名和流量
AI文案创作神器:让你的营销更有感染力
在快节奏的互联网时代,营销信息的传递速度超乎想象,但要让你的内容在众多信息中脱颖而出,并非易事。一篇优秀的营销文案不仅仅要传达产品信息,更要打动人心,引发共鸣。而今,AI技术的崛起为文案创作注入了新的活力,句无忧——这款集违
如何有效利用百度购买关键词排名提升网站流量
青衣网络-www.ra0.cn:如何有效利用百度购买关键词排名提升网站流量目录:1. 理解百度关键词购买机制2. 确定目标关键词的策略3. 关键词竞价与优化技巧4. 监控和调整关键词表现5. 避免常见错误和陷阱6. 结语正文:理解百度关键词购买机制在
相关文章
推荐文章
发表评论
0评