一次直播和图像识别技术应用的探索之旅

背景

Think Better

很多行业都在“卷”,作为金融科技行业的信也,也不例外。除了卷云计算、大数据和人工智能这些非常有深度的技术以外,信也向着技术融合创新的方向逐步探索,做得更好一些,为用户提供更好的价值,才是卷的目的。

起因

在金融科技行业的业务场景中,有一个比较常见的业务就是”授信“,例如给用户提高额度,那么就需要用户提交一些资料,来证明其还款能力,以提高授信额度。常见有的:提交车辆信息、税务记录、工资卡流水记录或学历认证等等。一般在产品功能设计中,给用户提供上传截图的功能,获取相应的资料,再通过风控系统与业务系统的核验,以满足业务流程的需   要。某些业务场景在对反欺诈诉求要求比较高的情况下,人工介入审核资料也是比较普遍的做法,但实际上,这是一个“斗智斗勇”的过程,因为收集到的资料很有可能是不是用户本人或是 PS  过的,很难保证真实性。在传统的业务模式中,风控系统的成本很高,上传多张截图并进行后续识别认证,用户体验也不是太好。

一个思考就来了:怎么能够降低风控成本,提升用户体验?

仔细想来,前面说的过程实际上就是一个“静态”的资料提交审核过程。这种“静态”的过程是个黑盒,一是无法得知用户获取资料的过程信息,二是资料获取后,难以进行违规操作的检测,避免造假。

如果整个过程中,有“一个人”在指导用户操作,并且全程检测呢?

用一个“程序”去看直播

将静态过程转变为动态过程

前面提到的老流程,是黑盒,难以实时风控策略,如果设计一套系统,让程序像一个人一样,从一开始就介入,指导着用户   现场操作,并全程录制并检测违规操作,那么就可以大大提高用户体验,增强反欺诈能力。思考这个程序的功能,可以得出,其须有识别和录制的功能:

  1. 用户操作的整个过程,可以使用屏幕直播推流的技术,让这个程序从一开就看到用户的屏幕,并记录整个过程
  2. 程序可以通过语音,告诉用户应该如何操作,跳转到哪个网页或者打开哪个 App
  3. 当用户达到指定的页面的时候,程序则可以将业务系统需要的信息截取保存下来
  4. 这个程序必须聪明点儿,它看着直播,还得能看懂直播,必须能仔细观察,看到哪些行为是违规的,理解力则依赖:图像识别技术

直播的选型与实践

主流直播的技术方向有两个:

  1. RTMP+CDN
  2. RTC+SD-RTN

特点

RTC

RTMP

用途

实时通信,如实时音视频通话、实时消息传递

实时媒体流传输,如直播、点播

特点

RTC

RTMP

传输方式

使用 UDP(User Datagram Protocol)传输

使用 TCP(Transmission Control Protocol)传输

延迟

低延迟,通常在数百毫秒以下

相对较高的延迟,通常在数秒钟左右

适用场景

实时互动应用,如视频会议、在线游戏

直播平台、视频点播平台

编码支持

支持多种音视频编码格式,如 VP8、H.264、Opus 等

支持多种音视频编码格式,如 H.264、AAC 等

扩展性

支持扩展性较强,可以通过插件或自定义开发功能

部分支持扩展性,但相对较为有限

安全性

支持端到端的加密和安全传输

支持基本的加密功能,但安全性较低

设备兼容性

兼容性较好,支持在不同设备和平台上使用

兼容性较好,但在某些设备和平台上可能存在兼容性问题

开发成本

相对较高的开发成本,需要处理实时音视频传输的复杂性

相对较低的开发成本,易于集成和使用

实时性

较高的实时性,适用于对实时性要求较高的场景

相对较高的实时性,但在网络条件不理想时可能出现缓冲和延迟

选型一般要考虑使用场景,直播的场景一般为一个主播推流,上万人观看,但我们这个场景稍微不同,是一个程序在 “看”,没有其他观众,并且对实时性要求较高,所以 RTC 是首选。

一个 RTC 的数据包数据格式如下:

RTC   在移动网络下,最大的挑战是弱网或断网下的稳定性表现,发生卡顿和中断会影响用户体验。解决这类问题,业内一般使用多链路传输技术,例如苹果的 MPTCP(Multi-Path TCP) ,在手机网络切换 Wifi 和蜂窝网络或网络网络丢包较高的情况发生时,多链路的使用,可以大大增强稳定性。但这种技术也带来了高功耗和高流量。那么使用 弱网冗余传输 来就可以优化这种情况,即在 RTC 检测到弱网环境下才开启双链路的传输。

另外,还需要使用 FFMPEG 来当做看的“眼睛”。但很遗憾,FFMPEG 并不支持直接对 RTC 视频流的读取,那么就必须将 RTC 转换为 RTMP 协议,因为 RTMP 在大规模观看的时候需要启用 CDN 网络来进行分发,而 RTC 转 RTMP 在服务端侧完成内网转发,则避免了这个问题,FFMPEG 在使用的过程中类似于如下命令:

ffmpeg -i "rtmp://boliu.koofenqi.com/koo-tuiliu-test/testneo?auth_key=1684307737-0-0- 52941de184ba86a371f8fd36d030b723" -vframes 1 -r 1 -q:v 2

拿到视频流信息则可以交给识别部分来让程序理解当前屏幕上的内容。这部分的流程如下图:

识别技术的实践

当源源不断得到屏幕的视频画面的时候,如何识别当前的画面是目标页面或者是存在违规行为的画面,那么有两种实现思路:

  1. OCR 图像转换为文本,使用正则表达式来达到检测目标文本特征或异常文本特征
  2. 利用特征提取技术,识别图像中是否存在目标元素特征

OCR  技术有一个问题:即页面较为复杂的时候,文本转换时间不可控,不太满足实时性的要求。那么利用体征提取技术, 则可以避免此类问题的发生。

在此种图像识别技术方案下,一般分为如下子任务:

  • (a)Image Classification图像分类,用于识别画面中元素的类别(如:bottle、cup、cube)
  • (b)Object Localization: 目标检测,用于检测图像中每个元素的类别,并准确标出它们的位置。
  • © Semantic Segmentation图像语义分割,用于标出图像中每个像素点所属的类别,属于同一类别的像素点用一个颜色标识。
  • (d) Instance Segmentation实例分割,值得注意的是,(b)中的目标检测任务只需要标注出物体位置,而(d) 中的实例分割任务不仅要标注出物体位置,还需要标注出物体的外形轮廓。

当预设目标页面的元素出现,则可将图像的语义转换为置信度、风险度等结果输出给程序,进行业务判定。

这个“程序”有点普通但也有点意思

一个流程引擎,支援业务流程的执行

这个程序像一个引导用户做流程的业务员一样,那么它具备以下功能:

  1. 熟悉各种业务流程,按照业务流程的规定,进行业务流程的执行
  2. 一直维持着与客户端的通讯
  3. 指挥客户端、直播服务、图像识别服务、反欺诈服务进行协调工作

那么这个程序实际上就是一个流程引擎,在整个流程引擎的架构设计中,需要考虑如下几个方面:

  • 长连接性能指标,例如:
  • 吞吐(Thoughput) >= 1000
  • Latency <= 100ms
  • Concurrent >= 500
  • Error Rate <= 1%
  • 保证安全性
  • websocket 握手令牌校验
  • 消息体二进制编码
  • 流程适配性强
  • 业务节点配置化
  • 客户端预置指令模块化
  • 全程做到实时监控
  • websocket 通讯监控
  • 流程执行监控
  • 客户端异常监控
  • 服务异常监控
  • 客户端兼容性达标
  • iOS/Android/HarmonyOS 兼容覆盖
  • 主流机型兼容覆盖
  • 各种网络异常兼容覆盖
  • 稳定性强
  • 业务单元执行异常恢复
  • 网络通讯异常恢复
  • 客户端与服务端的系统异常恢复

整个流程引擎的架构设计如下:

在前面,流程引擎维持与客户端的通讯,使用 websocket 长连接服务。一个典型的长连接服务如下图:

在安全性方面,使用令牌技术,在  websocket  连接发起的时候,检测令牌是否有效,避免非法客户端的连接,并且数据传输防止信息泄露,通讯的数据包使用二进制流,那么在编码方面,选用  protocolbuf,来实现客户端与服务端的传输数据的序列化和反序列化。

多技术的融合应用达到的效果

一套 WebSokcet/RTC/FFMEPG/ImageRecognition 的技术组合

将这些技术进行融合以后,例如需要用户通过自己的机动车信息来提升额度的话,就可以这样完成:

  1. 用户手机通过 websocket 连接上服务端
  2. 流程引擎启动,指引客户端发起屏幕 RTC 推流
  3. 根据业务流程配置,使用 FFMPEG 处理屏幕视频画面
  4. 图像识别服务将画面进行标定与检测,确认业务信息的截取
  5. 服务端对整个视频画面进行录制保存
  6. 流程引擎时时刻刻执行反欺诈策略,检测用户操作是否存在违规和欺诈行为

当这样一个融合多种技术方案的探索落地以后,便诞生了可以满足各个业务场景使用的 _ 推流认证平台 _。

目前,* 推流认证平台  *正服务于一些对风险要求较高的流程中,该平台可以让用户不再手动操作繁琐的流程,只需要听着语音点一点,平台将自动获取资料,完成后续流程。

这样的多技术融合的探索,是一种有意思也有相当业务价值的尝试!

探索的脚步永不停歇

未来,将会有更多有意思有价值的探索持续进行,创新的源泉来自热衷思考,敢实践,不怕失败的解决各种问题。展望未来,后期还有更多可以持续优化创新的地方:

  1. 业务流程引擎使用 webassembly 技术,形成安全的二进制程序,结合边缘网络(Edge  Network),实现离线的流程执行
  2. 图像识别采用卷积神经网络,训练更优秀的识别模型,为风险识别提供更多的基础能力
  3. 使用移动端的机器学习技术,利用手机本身的 AI 算力,加载图像识别模型,进一步缩短业务流程时间

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/448030.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

掼蛋的牌型与规律(下篇)

一、三不带 一般出三不带有几种情况&#xff1a;没有对子配、对子和三张数量不匹配、对子成了三连对、对子太大。作为发牌方&#xff0c;首发三不带可以迷惑对手。三不带打出来很难处理&#xff0c;如果接了三不带可能就会将小对子留下&#xff0c;不接又不甘心让对方继续有出牌…

pip 和conda 更换镜像源介绍

1、前言 很多深度学习的项目免不了安装库文件、配置环境等等&#xff0c;如果利用官方提供的连接&#xff0c;网速很慢&#xff0c;而且很容易download掉。 所以配置好了虚拟环境&#xff0c;将pip换源属实重要 常见的国内镜像源有清华、中科大、阿里等等... 这里建议用中科…

力扣每日一题 找出数组的第 K 大和 小根堆 逆向思维(TODO:二分+暴搜)

Problem: 2386. 找出数组的第 K 大和 文章目录 思路复杂度&#x1f496; 小根堆&#x1f496; TODO&#xff1a;二分 暴搜 思路 &#x1f468;‍&#x1f3eb; 灵神题解 复杂度 时间复杂度: 添加时间复杂度, 示例&#xff1a; O ( n ) O(n) O(n) 空间复杂度: 添加空间复杂…

​如何防止网络攻击?

应对不同类型网络攻击的最佳途径是“知己”、“知彼”&#xff0c;在了解它们的工作原理、能够识别其手段、方法及意图的前提下&#xff0c;找出针对性的应对文案。今天&#xff0c;就为大家总结以下防止不同类型网络攻击的有效方法&#xff0c;希望无论是对个人、还是企业和组…

计算机网络—以太网接口和链路配置

目录 1.拓扑图 2.以太网交换机基础配置 3.配置手动模式的链路聚合 4.配置静态 LACP 模式的链路聚合 5.配置文件 1.拓扑图 2.以太网交换机基础配置 华为交换机接口默认开启了自协商功能&#xff0c;需要手动配置S1与 S2上G0/0/9和G0/0/10接口的速率。 首先修改交换机的设…

C# 中 Replace 字符串操作方法

在 C# 中&#xff0c;Replace 是一个字符串操作方法&#xff0c;用于替换字符串中的指定字符或子字符串。它接受两个参数&#xff1a;要查找和替换的字符串。Replace 方法在源字符串中查找所有匹配的字符或子字符串&#xff0c;并用指定的替换字符串进行替换。 下面是 Replace…

POS 之 最终确定性

Gasper Casper 是一种能将特定区块更新为 最终确定 状态的机制&#xff0c;使网络的新加入者确信他们正在同步规范链。当区块链出现多个分叉时&#xff0c;分叉选择算法使用累计投票来确保节点可以轻松选择正确的分叉。 最终确定性 最终确定性是某些区块的属性&#xff0c;意味…

蜂窝物联智慧大棚整体解决方案

一、项目背景 温室大棚在不适宜植物生长的季节&#xff0c;能提供生育期和增加产量&#xff0c;多用于低温季节喜温蔬菜、花卉、林木等植物栽培或育苗等。因此对种植作物生长环境的要求要精确的多。 大多数农户加温、浇水、通风等&#xff0c;全凭感觉。人感觉冷了就加温&…

部署wordpress项目

项目wordpress 实验目的&#xff1a; 熟悉yum和编译安装操作 锻炼关联性思维&#xff0c;便于以后做项目 nginx 编译安装 1、安装源码包 [rootlinux-server ~]# yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel [rootlinux-server ~]# wget http://nginx.…

Android编译移植memtester,内存压测试工具

Android移植memtester&#xff1a; 大内存测试的时候&#xff0c;跑不满内存&#xff0c;可以用memtester测试 下载memtester源码&#xff1a; memtester源码下载地址4.6版本 增加Android.mk编译脚本&#xff1a; 创建memtester目录&#xff0c;解压源码到这里&#xff0c;…

蜂窝物联:智慧养猪解决方案

一、现状 随着我国养猪业的不断发展&#xff0c;一线从业人员逐渐减少&#xff0c;投资者和养殖者的收益需求却越来越高。当前&#xff0c;我国养猪业正处在转型升级的关键时期&#xff0c;环境压力巨大、资源约束趋紧、“猪周期”变化莫测等问题日益凸显。而经过非瘟之后&…

【流量变现秘籍】火爆创投圈的格行随身wifi代理有何优势!

代理创业必须注意的事项&#xff1a; 1.冷静分析项目 不要被项目方的华丽辞藻所迷惑&#xff0c;务必保持冷静&#xff0c;品牌知名度、产品质量、售后服务等方面都是需要考虑在内的&#xff0c;结合个人实际&#xff0c;深入分析项目的可行性和盈利空间。确保投入与产出的比…

安装配置Spark集群

安装Spark集群主要包括以下步骤&#xff1a; 1、下载Spark安装包&#xff0c;在各节点中安装部署spark集群 2、配置整合 3、启动并测试 下载Spark 可以从官方网站下载合适的版本。当前环境已经提供了安装包&#xff0c;存放在 /opt/software目录下。 在node1节点上安装Sp…

Vue+SpringBoot打造数字化社区网格管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、开发背景四、系统展示五、核心源码5.1 查询企事业单位5.2 查询流动人口5.3 查询精准扶贫5.4 查询案件5.5 查询人口 六、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的数字化社区网格管理系统&#xf…

【深度学习笔记】优化算法——学习率调度器

学习率调度器 &#x1f3f7;sec_scheduler 到目前为止&#xff0c;我们主要关注如何更新权重向量的优化算法&#xff0c;而不是它们的更新速率。 然而&#xff0c;调整学习率通常与实际算法同样重要&#xff0c;有如下几方面需要考虑&#xff1a; 首先&#xff0c;学习率的大…

JAVA全面基础知识(第七部分)

大家好我是程序员阿存&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款&#xff0c;项目源码以及部署相关请联系存哥&#xff0c;文末附上联系信息 。 这篇文章给大家分享的是JAVA的基础知识&#xff0c; &#x1f495;&#x1f495;作者&#xff1a;程序员阿存 &…

【spark operator】spark operator动态分配executor

背景&#xff1a; 之前在使用spark operator的时候必须指定executor的个数&#xff0c;在将任务发布到spark operator后&#xff0c;k8s会根据指定的个数启动executor&#xff0c;但是对于某些spark sql可能并不需要用到那么多executor&#xff0c;在此时executor的数量就不好…

py脚本模拟json数据,StructuredStreaming接收数据存储HDFS一些小细节 ERROR:‘path‘ is not specified

很多初次接触到StructuredStreaming 应该会写一个这样的案例 - py脚本不断产生数据写入linux本地&#xff0c; 通过hdfs dfs 建目录文件来实时存储到HDFS中 1. 指定数据schema&#xff1a; 实时json数据 2. 数据源地址&#xff1a;HDFS 3. 结果落地位置&#xff1a; HDFS …

淘宝电商产品价格官方防爬取采集设计机制,如何破?|淘宝电商API数据采集看完你也会!

在当今数字化时代&#xff0c;电商平台如淘宝已经成为人们购物的主要渠道之一。然而&#xff0c;随着电子商务的蓬勃发展&#xff0c;涌现出大量的第三方工具和应用&#xff0c;试图通过采集淘宝电商产品价格等信息来进行数据分析和竞争优势的获取。为了维护市场秩序和保护商家…

java中几种对象存储(文件存储)中间件的介绍

一、前言 在博主得到系统中使用的对象存储主要有OSS&#xff08;阿里云的对象存储&#xff09; COS&#xff08;腾讯云的对象存储&#xff09;OBS&#xff08;华为云的对象存储&#xff09;还有就是MinIO 这些玩意。其实这种东西大差不差&#xff0c;几乎实现方式都是一样&…