CN109309866A - 图像处理方法及装置、存储介质 - Google Patents
图像处理方法及装置、存储介质 Download PDFInfo
- Publication number
- CN109309866A CN109309866A CN201710625644.3A CN201710625644A CN109309866A CN 109309866 A CN109309866 A CN 109309866A CN 201710625644 A CN201710625644 A CN 201710625644A CN 109309866 A CN109309866 A CN 109309866A
- Authority
- CN
- China
- Prior art keywords
- client
- video
- video flowing
- local terminal
- real time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1083—In-session procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/44008—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4788—Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/858—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
- H04N21/8586—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL
Abstract
本发明公开一种图像处理方法、装置及存储介质,方法包括:在本端客户端的实时通信进程中建立与对端客户端的数据通道,通过数据通道与对端客户端传输视频流;在图像识别进程中获得实时通信进程中传输的视频流;对视频流的各视频帧进行图像检测得到各视频帧中目标对象的位置,并传输至本端客户端的页面进程;在本端客户端的页面进程中获得实时通信进程中传输的视频流,根据实时通信进程中传输的视频流进行解码和渲染,以及,在渲染的各视频帧中对应相应目标对象的位置,根据虚拟对象模型渲染虚拟对象。
Description
技术领域
本发明涉及图像技术,尤其涉及一种图像处理方法及装置、存储介质。
背景技术
增强现实(AR,Augmented Reality)是一种全新的人机交互技术,利用该技术,可以模拟真实的现场景观。AR是以交互性和构想为基本特征的计算机高级人机界面。使用者不仅能够通过虚拟现实系统感受到在客观物理世界中所经历的“身临其境”的逼真性,而且能够突破空间、时间以及其它客观限制,感受到在真实世界中无法亲身经历的体验。
随着通信网络的不断发展,AR已经逐步在网络实时通信中进行适用,例如全球广域网络(World Wide Web,Web)领域也开始尝试融入AR技术。然而,由于AR依赖的图像处理、识别技术的计算量特别大,故在网络通信的场景中难以实现决AR性能优化。
发明内容
本发明实施例提供一种图像处理方法及装置、存储介质,能够有效解决网络实时场景中AR的性能优化问题。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供一种图像处理方法,包括:
在本端客户端的实时通信进程中建立与对端客户端的数据通道,通过所述数据通道与所述对端客户端传输视频流;
在图像识别进程中获得所述实时通信进程中传输的视频流,对所述视频流的各视频帧进行图像检测,得到所述各视频帧中目标对象的位置并传输至所述本端客户端的页面进程;
在所述本端客户端的页面进程中获得所述实时通信进程中传输的视频流,根据所述实时通信进程中传输的视频流进行解码和渲染,以及,
在渲染的各视频帧中对应相应目标对象的位置,根据虚拟对象模型渲染虚拟对象。
第二方面,本发明实施例提供一种图像处理装置,包括:
实时通信进程模块,用于在本端客户端的实时通信进程中建立与对端客户端的数据通道,通过所述数据通道与所述对端客户端传输视频流;
图像识别进程模块,用于在图像识别进程中获得所述实时通信进程中传输的视频流,对所述视频流的各视频帧进行图像检测得到所述各视频帧中目标对象的位置,并传输至所述本端客户端的页面进程;
页面进程模块,用于在所述本端客户端的页面进程中获得所述实时通信进程中传输的视频流,根据所述实时通信进程中传输的视频流进行解码和渲染,以及,在渲染的各视频帧中对应相应目标对象的位置,根据虚拟对象模型渲染虚拟对象。
第三方面,本发明实施例提供一种图像处理装置,包括:
存储器,配置为存储可执行程序;
处理器,配置为通过执行所述存储器中存储的可执行程序时,实现本发明实施例所述图像处理方法。
第四方面,本发明实施例提供一种存储介质,存储有可执行程序,所述可执行程序被处理器执行时,实现本发明实施例所述图像处理方法。
本发明实施例所述图像处理方法、装置及存储介质,终端在实时通信进程中,将图像识别进程从页面进程中剥离出来,采用独立进程(即图像识别进程的)的方式进行图像识别,一方面,避免了页面进程中同时进行实时通信和图像识别导致资源占用高而出现延迟的情况,另一方面在独立于页面进程的图像识别进程中能够保证图像识别的稳定性,从而有效实现实时通信场景中虚拟显示性能优化。
附图说明
图1是本发明实施例图像处理方法的一个可选的实现流程示意图;
图2是本发明实施例提供的终端的一个可选的软硬件结构示意图;
图3是本发明实施例图像处理方法的一个可选的实现流程示意图;
图4是本发明实施例创建实时通信进程的实现流程示意图;
图5是本发明实施例图像处理方法的一个可选的实现流程示意图;
图6是本发明实施例采用焦点检测算法进行图像检测后的焦点标记图;
图7是本发明实施例根据虚拟对象模型渲染虚拟对象的显示效果图;
图8是本发明一应用示例图像处理方法的实现流程示意图;
图9是本发明实施例图像处理装置的组成结构示意图。
具体实施方式
以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
对本发明进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)客户端,本文中是指终端中用于实现网络通信的客户端,可以采用支持在终端中安装的移动应用(App)的形式,例如浏览器、社交客户端,等等,本文中客户端也称为节点(Peer)。
2)终端,支持安装客户端的电子设备,如智能手机、平板电脑和车载终端等。
3)浏览器内核,用于显示网页,并执行网页中的JavaScript(简称JS)实现网页中的交互功能,本文中所涉及的浏览器内核包括网络套件(Webkit)内核,以及以Webkit内核为基础修改形成的第三方的内核,例如QQ浏览器中集成的X5内核。
4)网络实时通信(Web RTC,Web Real-Time Communication)组件,包括在浏览器内核中实现的、用于实时通信的应用程序接口(API,Application Interface),供集成浏览器内核的客户端调用,以在客户端显示的会话页面内与其他客户端实现直连的多媒体通信如音/视频的通信功能,所谓直连的多媒体通信是指,客户端与其他客户端之间建立点对点(P2P,Peer to Peer)的链路传输多媒体数据,链路中传输的数据不需要通过第三方服务器中转,仅由链路中的分组转发设备进行数据的传输,终端也无需再安装额外的应用或插件。
5)数据通道,客户端之间建立的用于传输数据的链路,还可以包括基于链路进行多媒体数据传输的控制(如开始、中止和结束)以及服务质量(QoS,Quality of Service)的控制。当链路仅包括分组转发设备,而不包括其他的服务器(如客户端的后台服务器、中转服务器)时,客户端之间的链路称为直连链路,直连链路所承载的数据通道称为直连数据通道;当链路中传输的数据需要通过中转服务器进行中转才能从一个客户端到达另一个客户端时,客户端之间的链路称为中转链路,所承载的数据通道称为中转数据通道。
6)房间,多媒体通信的客户端形成的会话,房间是分配有唯一地址的会话,会话的页面使用如统一资源定位符(URL,Uniform Resource Locator)表示,访问房间的任一客户端都会接收到来自访问该房间的其他客户端的音/视频流。
7)特征点,也称为角点,视频帧中能够反映对象的局部特征的点,一般为多个像素的集合,以人脸图像为例,特征点可以是眼睛特征点和鼻子特征点等具有可辨识性的区域。
8)特征点检测算法,也称为角点检测算法,从视频帧中检测特征点的算法,例如,基于灰度图像的角点检测、基于二值图像的角点检测、基于轮廓曲线的角点检测。
9)AR,是一种实时地计算摄影机影像的位置及角度并加上相应图像、视频、3D模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动。
10)JavaScript,一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在标准通用标记语言(HTML)下的一个应用)网页上使用,用来给HTML网页增加动态功能。
本发明实施例提供一种图像处理方法,如图1所示,Web AR内核的技术之一就是Web页面通过Web RTC捕获视频图像。具体地,Web页面获取到视频流后,通过JavaScript语言进行图像处理,识别定位视频流中的目标物体对象。同时通过Web页面将虚拟模型动画和视频流渲染合成后播放显示,从而实现Web场景下的AR。
然而,基于如图1所示的图像处理方法来实现Web场景下的AR,主要存在如下两个问题:1)Web页面获取的视频帧,浏览器已经在渲染显示,加上Web页面图像处理本来就需要时间开销,会造成虚拟场景相对于视频画面存在延迟;2)视频流在传递到Web页面的线程渲染前,需要通过浏览器内核的拷贝、颜色格式转换等步骤,Web页面为了实现AR效果,还需要对视频流进行图像识别工作,以对特定对象实现AR效果。因此,由于AR依赖的图像处理、识别技术的计算量特别大,Web场景采用如图1所示的图像处理方法无法解决AR性能优化问题。
为了保证Web场景下对视频流中特定对象实现AR特效,本发明实施例所涉及的终端,参见图2,图2是本发明实施例提供的终端20的一个可选的软硬件结构示意图,包括硬件层21、操作系统层22、客户端23、浏览器内核24和网络实时通信接口(也称为Web RTC接口)组件27,分别进行说明。
硬件层21,包括以下结构:
存储器212,可以提供为各种形式的非易失性存储器,例如可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)等用于存储各种类型的数据以支持客户端23的操作,这些数据的示例包括:用于在客户端23上操作的任何计算机程序,如操作系统22和客户端23等;本发明实施例提供的图像处理方法可以JS文件的形式预先存储在存储器212中,或者,由客户端23中的浏览器内核24在访问房间的页面时下载至存储器212中,用于供处理器211运行客户端23时,通过客户端23中集成的浏览器内核24执行JS文件,实现本发明实施例记载的图像处理方法。
处理器211,可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,本发明实施例提供的图像处理方法的各步骤可以通过处理器211中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器211可以是通用处理器、数字信号处理器(DSP,DigitalSignal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
网络接口213,用于客户端23有线或无线方式的通信,网络接口213可以接入基于通信标准的无线网络,如WiFi、2G、3G、4G和4G的演进或它们的组合。
操作系统层22,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件层21的任务,本发明实施例中不排除使用任意类型的操作系统,包括基于Linux内核的操作系统如安卓系统,还可以包括iOS系统和类Unix系统。
客户端23,是具有网络通信需求的客户端如微信/QQ等应用程序,本发明实施例不排除终端20中运行任意类型的客户端。
客户端23用于实现客户端的具体业务逻辑,以客户端为微信为例,业务逻辑用于通过与微信后台服务器的交互,实现用户在社交平台的通信、分享等功能。
客户端23中集成有浏览器内核24,用于在客户端23中实现浏览器功能和直连的多媒体通信功能,需要指出地,虽然浏览器内核24集成于客户端23,可以理解,客户端23、网络实时通信接口组件27、浏览器内核24渲染的页面能够作为两个相互独立的实例运行,对应称为网络实时通信进程和页面进程;因此下文中客户端23与浏览器内核24的通信不应视为与图2示出的结构冲突,结合浏览器内核24的结构就上述功能分别进行说明:
1)浏览器功能
浏览器内核24中集成有两个基本的模块:页面渲染引擎25,例如可以采用网络核心(Web Core)引擎,用于在客户端23中实现网页的显示,包括加载网页的数据并渲染网页,典型的应用是包含了请求网页、加载数据、渲染网页的过程;JS解释器26,用于解释、并执行页面渲染引擎25渲染的网页中的JS,例如可以采用JavaScript(简称JS)Core引擎26,通过解释执行JS实现网页的交互功能、以及网页的增强功能,例如提交表单前先验证数据的合法性,根据客户操作实现一些页面中的动态效果,等等。
2)直连的多媒体通信功能
浏览器内核24中还集成有网络实时通信接口组件27,以向客户端23提供进行实时通信的API,当API为JS接口时,网络实时通信接口组件27可以提供为后缀名为“.js”的JS文件的软件实施方式,根据需要下发到客户端23由浏览器内核24中的JS解释器26解释执行,使得客户端23调用API能够建立与其他客户端23的数据通道,这个数据通道可以传输任何数据,而且不需要通过第三方服务器(如客户端23的后台服务器)进行中转;网络实时通信接口组件27还向客户端23提供调用终端20的外设如摄像头/麦克风的接口,采用音频/视频流在通道中传输而实现多媒体通信的功能。
举例来说,网络实时通信接口组件27中实现了三个API,分别是:
2.1)数据通道(Data Channel)接口271,供客户端23调用,封装有一系列的用于进行以下操作的方法:通过与对端客户端之间的数据通道传输音/视频流。
2.2)点对点(Peer Connection)接口272,供客户端23调用,封装了一系列的通过信令供进行多媒体通信的客户端进行以下控制参数的交换/协商的方法:
2.2.1)网络参数,包括:
2.2.1.1)客户端23的网际协议(IP,Internet Protocol)地址和端口(即客户端的宿主终端中为客户端23所分配的用于网络通信的端口),例如,当客户端23处于局域网时为局域网的IP地址和端口,当处于广域网时为广域网的网际协议(IP,Internet Protocol)地址和端口;
2.2.1.2)客户端23的带宽,即客户端23的接入网络所能提供的接入互联网时能够提供的带宽;
2.2.1.3)客户端23所处局域网或防火墙的IP地址和端口,客户端23所处局域网或防火墙的IP地址是指,局域网的网络地址转换(NAT,Network Address Translators)设备或防火墙的广域网IP地址;客户端23所处局域网或防火墙的端口是指,局域网的NAT设备或防火墙为向局域网或防火墙传入数据包而开通的端口。
2.2.2)媒体流参数,包括:音频流参数,如客户端23的媒体支持的音频的编/解码器、采样率和比特率;视频流参数,如客户端支持的视频的编/解码器、帧率、分辨率和比特率;
2.2.3)会话控制参数,用于在客户端23之间同步数据通道的状态,创建、保持、监控和关闭与对端客户端(相应地,客户端23可以称为本端客户端)之间的数据通道;
需要指出地,客户端23与对端客户端之间的数据通道可以使用基于用户数据报协议(UDP,User Datagram Protocol)的链路承载以保证数据传输效率,并可以使用DTLS保证会话的安全性,当然本文中不排除客户端之间的数据通道使用基于传输控制协议(TCP,Transmission Control Protocol)链路承载时,相应地,使用安全套接层(SSL,SecureSockets Layer)/传输层安全(TLS,Transport Layer Security)时实现数据通道的加密传输;
以上参数仅为举例,客户端23通过调用直连(Peer Connection)接口272,可以是与对端客户端之间交换会话相关的任意参数,本发明实施例不排除交换任何与会话相关的参数,例如用于实现加密通信的相关安全参数如密钥算法、服务质量(QoS,Quality ofService)参数以及需要进行加密的情况时用于协商加密密钥的安全参数如数字证书和加密算法等。
2.3)媒体流(Media Stream)接口273,供客户端23调用,封装有一系列的用于进行以下操作的方法:获得终端20通过外设如麦克风/摄像头而对应采集同步的音/视频流。
为了保证Web场景下对视频流中特定对象实现AR特效,结合如图2所示的终端的硬件架构,图3为本发明实施例提供的图像处理方法的一个可选的流程示意图,如图3所示,所述图像处理方法包括:
步骤301:在本端客户端的实时通信进程中建立与对端客户端的数据通道,通过所述数据通道与所述对端客户端传输视频流。
具体地,终端可以在自身的浏览器或者任意植入浏览器核心的App的实时通信进程中建立与对端客户端的数据通道,通过所述数据通道与所述对端客户端传输视频流。
步骤302:在图像识别进程中获得所述实时通信进程中传输的视频流,对所述视频流的各视频帧进行图像检测,得到所述各视频帧中目标对象的位置并传输至所述本端客户端的页面进程。
步骤303:在所述本端客户端的页面进程中获得所述实时通信进程中传输的视频流,根据所述实时通信进程中传输的视频流进行解码和渲染。
步骤304:在渲染的各视频帧中对应相应目标对象的位置,根据虚拟对象模型渲染虚拟对象。
根据本发明一实施方式,所述在本端客户端的实时通信进程中建立与对端客户端的数据通道,通过所述数据通道与所述对端客户端传输视频流,包括:在所述本端客户端的实时通信进程中,经由信令服务器与所述对端客户端交换携带通道类型和视频流参数(如编解码、帧率和比特率等)的信令;建立符合所述类型的数据通道,通过所述数据通道传输符合所述视频流参数的视频流。当然,在实际应用中,本端(即本端客户端)可以通过所述数据通道传输向对端客户端发送的以及接收对端客户端发送的符合所述视频流参数的视频流。
根据本发明一实施方式,所述方法还包括:在所述本端客户端的实时通信进程中,经由所述信令服务器与所述对端客户端交换携带会话控制参数的信令;根据所述会话控制参数控制与所述对端客户端之间的会话状态。
具体地,如图2所示,客户端23可以基于网络实时通信接口组件27所提供JS文件,根据需要下发到客户端23由浏览器内核24中的JS解释器26解释执行所述JS文件,以执行有关会话开始信令、会话暂停信令或会话结束信令,调用API能够控制与其他客户端23之间的会话状态,如开始会话、暂停会话或结束会话。
根据本发明一实施方式,所述方法还包括:在所述本端客户端的浏览器内核进程中访问房间的页面地址,获得页面数据;在所述浏览器内核进程中创建对应所述房间的所述页面进程,在所述页面进程中使用所述页面数据中加载并渲染所述房间的页面;在所述本端客户端的浏览器内核进程中创建对应所述房间的所述实时通信进程。
这里,需要说明的是,只要页面在浏览器中被用户关闭,那么页面进程和实时通信进程的存活期就结束。
在一应用示例中,图4为本发明实施例在所述本端客户端的浏览器内核进程中创建对应所述房间的所述实时通信进程的实现流程示意图,如图4所示,该实现流程中涉及本端客户端、对端客户端、信令/房间服务器和中转服务器,其中,信令/房间服务器是指,单独部署的信令服务器和房间服务器,当然,也可以是指将房间服务器的房间管理的功能融合到信令服务器中;针对图4示出的各个步骤进行说明。
步骤401a,本地客户端需要进行跨客户端的多媒体通信时,向房间服务器请求访问用于会话的房间。
作为示例,本端客户端中预先配置信令服务器的IP地址,预先向房间服务器请求分配房间,即可以访问房间的会话页面的地址,当本端客户端需要进行多媒体通信时,根据房间服务器分配的对应房间的会话页面的地址,向房间服务器发送访问请求。
作为示例,本端客户端需要与其他客户端进行跨客户端的多媒体通信,或者,需要向其他客户端提供跨客户端的接入支持时,向房间服务器提交必要的鉴权信息,如本地客户端的版本、登录用户的标识信息(如登录用户名称、登录用户账号等),房间服务器中配置有允许进行多媒体通信的客户端的描述信息(如客户端的类型、版本等等),根据鉴权信息鉴权成功,针对本端客户端分配房间,包括对应房间的会话页面的地址;将本地客户端定向至分配的会话页面的地址进行访问。
客户端之间进行多媒体通信的一个可能的情况是,不同类型的客户端的用户标识难以识别;针对这种情况,房间服务器对于每个申请房间或请求加入已有房间的客户端分配全局统一的序列号(ID),房间服务器维护ID与客户端类型(如客户端是微信还是QQ)、登录用户名(微信账户名、QQ账户名)的映射关系,并同步至下文记载的中转服务器和信令服务器,使得用于实现多媒体通信的各服务器使用ID即可区分不同客户端,保证后续信令/数据处理的效率。
将继续根据步骤402a对本端客户端向对端为客户端分享房间的会话页面的后续处理说明。
步骤402a,本端客户端调用本端客户端中集成的浏览器内核,根据房间服务器返回的房间的会话页面的数据,显示对应的会话页面,并通过所述浏览器内核执行会话页面中的脚本。
其中,本端客户端中集成的浏览器内核执行会话页面中的脚本,除了实现会话页面中的基本交互功能,还执行网络实时通信接口组件27的JS文件,与对端客户端交换控制参数、建立数据通道以及通过数据通道传输多媒体数据,将在下文中根据步骤403a至步骤405a、步骤406至步骤411进行说明。
步骤403a,本端客户端向信令服务器请求分配中转服务器。
在本发明可选实施例中,一个可能的情况是,本端客户端与对端客户端因为各种原因(如处于防火墙内,或配置NAT即处于局域网中)时,由于本端客户端与对端客户端不具有广域网IP地址,因而无法建立直连的TCP链路或UDP链路(以用于承载直连的数据通道);针对这种情况,有必要为本端客户端配置中转服务器,用以实现NAT/防火墙的穿透,以及,在未能实现NAT/防火墙的穿透时,经由中转服务器建立本端客户端与对端客户端之间的中转数据通道。
举例来说,借助于中转服务器为本端客户端以及对端客户端探测的NAT设备或防火墙配置的广域网IP地址和端口,本端客户端发送的数据的目的地址和目的端口,如果对应设置为对端客户端的NAT设备或防火墙的广域网IP地址和端口,那么,NAT设备或防火墙通过自身的广域网IP地址和端口、与对端客户端的局域网IP地址和端口的映射关系,可以识别出来自本端客户端的数据的目的地为对端客户端,从而实现NAT/防火墙的穿透;借助于中转服务器探测的广域网IP地址和端口尝试建立本端客户端与对端客户端之间的直连数据通道,如果失败,则通过中转服务器建立中转数据通道。
为此,步骤401a中,当本端客户端向房间服务器发送访问请求时,还可以通过执行步骤403a向信令服务器请求分配中转服务器,可以理解,步骤403a为可选执行的步骤。
另外,客户端之间进行多媒体通信的一个可能的情况是,不同类型的客户端的用户标识难以识别;针对这种情况,房间服务器对于每个申请房间或请求加入已有房间的客户端分配全局统一的序列号(ID),信令服务器维护ID与客户端类型(如客户端是微信还是QQ)、登录用户名(微信账户名、QQ账户名)的映射关系,并同步给中转服务器,使得用于实现多媒体通信的各服务器使用ID即可区分不同客户端,提升后续信令/数据处理的效率。
步骤404a,本端客户端获得信令服务器返回的中转服务器的IP地址和鉴权信息。
在本发明可选实施例中,如前步骤403a所述,当本端客户端还向信令服务器请求分配中转服务器时,信令服务器根据筛选规则(如链路最短的规则、优先保证链路QoS的规则等)选择中转服务器,将选择的中转服务器的IP地址发送给本端客户端;此外,为了避免非法客户端对中转服务器的滥用、并保证中转服务器的负载均衡,信令服务器还可以向本端客户端发送访问中转服务器的鉴权信息,包括登录中转服务器的有效时间(time),登录中转服务器的用户名(记为user)和密码(记为password),本端客户端根据鉴权信息的操作将在步骤404a说明,可以理解,步骤404a为可选执行的步骤。
步骤405a,本端客户端根据中转服务器的鉴权信息,请求中转服务器探测中本端客户端的NAT设备/防火墙的广域网IP地址和端口,并获得探测结果。
局域网中所有客户端发送到互联网中的数据包,被NAT设备发送到互联网中之前,替换为NAT设备的广域网IP地址,源端口被替换为客户端分配的端口(允许互联网中的数据传入客户端所使用的端口),NAT设备在端口映射表中记录为客户端分配的端口、以及客户端的局域网IP地址和端口,对于来自互联网的数据包,替换数据包的目的地址和端口,即替换为根据数据包的目的端口查找对应的客户端的局域网IP地址和端口,使得数据包能够在局域网中传输至对应的客户端。
防火墙的处理类似,由上可知,本端客户端与所处局域网中的其他客户端所发送的数据包,在互联网中传输时携带的源地址为相同的广域网IP地址(即NAT设备的广域网IP地址),源端口根据客户端而存在区别,NAT设备记录不同客户端与为客户端发出的源端口的映射关系,NAT设备根据传回数据包的目的端口,以及映射关系实现数据包在局域网内的分发;当本端客户端向中转服务器发送请求时,请求携带的广域网IP地址和端口为NAT设备为本端客户端分配的,返回本端客户端即可使本端客户端获知NAT设备的广域网IP地址和端口。
至此,已经说明本端客户端在与对端客户端交换控制参数、建立数据通道以及传输多媒体数据之前所执行的操作,对于对端客户端来说,当需要加入房间与本端客户端进行多媒体通信时,需要执行与前述步骤类似的处理,下面进行说明。
本端客户端与对端客户端执行控制参数交换、数据通道建立以及传输多媒体数据说明之前,对端客户端需要加入本端客户端的房间,以获得相应会话页面的JS文件,通过执行JS文件,完成控制参数交换、数据通道建立以及传输多媒体数据;下面根据步骤406、步骤401b至步骤405b,针对对端客户端访问同一房间的会话页面的实现过程进行说明,需要指出,由于本端客户端一旦获知房间的会话页面的地址,可以随时发起分享操作,因此,步骤406、步骤401b至步骤405b的执行顺序,与前述步骤401a至步骤405a之间不存在先后顺序的限制。
步骤406,本端客户端分享房间的会话页面的地址给对端客户端。
作为示例,本端客户端通过明文、二维码等形式,将房间的会话页面的地址进行分分享给对端客户端,以本端客户端为QQ客户端为例,QQ客户端的用户可以将会话页面的地址在QQ客户端中发送到其他用户的QQ客户端,或者,QQ客户端的用户调用用户本地的微信客户端的分享接口,将会话页面的地址发送到其他用户的微信客户端,分享的方式多样,不再一一说明。
步骤401b,对端客户端需要与本端客户端在房间内进行跨客户端的多媒体通信时,根据本端客户端的房间的会话页面的地址,向房间服务器请求访问房间。
作为示例,对端客户端向房间服务器提交必要的鉴权信息,如本地客户端的版本、登录用户的标识信息(如登录用户名称、登录用户账号等),房间服务器中配置有允许进行多媒体通信的客户端的描述信息(如客户端的类型、版本等等),根据鉴权信息鉴权成功,通知本端客户端对端客户端的用户加入房间,例如,根据客户端的登录用户名与客户端的全局ID的对应关系,提示当前加入房间的用户的名称,并向对端客户端将向对端客户端下发会话页面的数据以及相关的JS文件,定向对端客户端至房间的会话页面的地址进行访问。
步骤402b,对端客户端调用对端客户端中集成的浏览器内核,根据房间服务器返回的房间的会话页面的数据,显示对应的会话页面,并通过所述浏览器内核执行会话页面中的脚本。
对端客户端中集成的浏览器内核执行会话页面中的脚本,除了实现会话页面中的基本交互功能,还执行网络实时通信接口组件27的JS文件,与本端客户端交换控制参数、建立数据通道以及通过数据通道传输多媒体数据,将在下文中根据步骤408至步骤411进行说明。
步骤403b,对端客户端向信令服务器请求分配中转服务器。
在本发明可选实施例中,一个可能的情况是,如前所述,本端客户端与对端客户端因为各种原因(如处于防火墙内,或处于配置NAT的局域网中)时,有必要为本端客户端和对端客户端配置中转服务器,借助于中转服务器为本端客户端以及对端客户端探测NAT设备或防火墙的广域网IP地址和端口,尝试建立本端客户端与对端客户端之间的直连数据通道,如果失败,则通过中转服务器建立中转数据通道;为此,步骤401b中,当本端客户端向房间服务器发送访问请求时,还可以通过执行步骤403b向信令服务器请求分配中转服务器,可以理解,步骤403b为可选执行的步骤。
步骤404b,对端客户端获得信令服务器返回的中转服务器的IP地址和鉴权信息。
在本发明可选实施例中,如前步骤403b所述,当对端客户端还向信令服务器请求分配中转服务器时,信令服务器根据筛选规则(如链路最短的规则、优先保证链路QoS的规则等)选择中转服务器,将选择的中转服务器的IP地址发送给对端客户端;此外,为了避免非法客户端对中转服务器的滥用、并保证中转服务器的负载均衡,信令服务器还可以向对端客户端发送访问中转服务器的鉴权信息,包括登录中转服务器的有效time,登录中转服务器的user和password,对端客户端根据鉴权信息的操作将在步骤405b说明,可以理解,步骤405b为可选执行的步骤。
步骤405b,对端客户端根据中转服务器的鉴权信息,请求中转服务器探测对客户端的NAT设备/防火墙的广域网IP地址和端口。
与步骤405a类似,至此,已经说明对端客户端在与本端客户端交换控制参数、建立数据通道以及传输多媒体数据之前所执行的操作,下面结合后续步骤对本端客户端和对端客户端执行JS文件所执行的交换/协商控制参数、建立数据通道以及传输数据的处理进行说明。
步骤407a,本端客户端进行初始化。
步骤407b,对端客户端进行初始化。
作为示例,本端客户端和对端客户端的初始化涉及以下几个方面:1)本地音/视频流的初始化;2)初始化点连接(Peer Connection)对象,当需要传输音/视频流时,利用PeerConnection对象进行音/视频传输的相关控制;3)初始化用于创建SDP信令和Candidate信令的对象,后续在对象中填充控制信息生成携带相应控制信息的信令。
步骤408,本端客户端通过信令服务器与对端客户端交换/协商控制参数。
控制参数包括前述的网络参数、媒体流参数以及其他类型的控制参数,如QoS参数、安全参数等,通过信令机制经由信令服务器与对端客户端进行控制参数的交换,或者,可以进行控制参数的协商,分别对上述的参数的交换/协商说明。
1)媒体流参数的交换/协商
本地客户端收集自身的媒体流参数,携带在Offer SDP信令中,通过信令服务器中转发送到对端客户端,对端客户端从Offer SDP信令提取本端客户端的媒体流参数存储,并将对端客户端的媒体流参数携带在Answer Offer信令中发送给本端客户端,同样地,本端客户端从Answer Offer信令中提取对端客户端的网络参数并存储,至此完成媒体流参数的交换;
对于媒体流参数的协商而言,本端客户端将自身支持的音频编/解码的候选参数、以及自身支持的视频编/解码的候选参数,携带在Answer Offer信令中通过信令服务器发送至对端客户端,对端客户端提取出相关的参数,根据自身的能力选择使用的音频编/解码的参数、以及视频编/解码的参数,携带在Answer Offer信令中通过信令服务器发送至本端客户端,本端客户端从Answer Offer信令提取参数,至此完成媒体流参数的协商,双方使用协商的参数进行编/解码处理。
对于其他类型的控制参数,如QoS参数、安全参数等,本地客户端可以参考上述媒体流参数的交换/协商方式。
2)网络参数的交换/协商
本地客户端将自身所支持的网络参数,如本端客户端的广域网IP地址和端口(如果有)、本端客户端局域网的IP地址和端口(如果有)、NAT设备/防火墙的广域网IP地址和端口(如果有)等,携带在Candidate信令中,通过信令服务器发送到对端客户端,对端客户端从Candidate信令中提取本端客户端的网络参数并存储;同样地,对端客户端将自身配置的网络参数携带在Candidate信令中,通过信令服务器发送到本端客户端,本端客户端从Candidate信令中提取对端客户端的网络参数并存储,至此完成网络参数的交换;
对于网络参数的协商而言,本端客户端将自身支持候选的网络参数如带宽,携带在Answer Offer信令中通过信令服务器发送至对端客户端,对端客户端提取出相关的参数,根据自身的能力选择使用的音频编/解码的参数、以及视频编/解码的参数,携带在Answer Offer信令中通过信令服务器发送至本端客户端,本端客户端从Answer Offer信令提取参数,至此完成媒体流参数的协商,双方使用协商的参数进行编/解码处理。
步骤409,本端客户端通过网络参数包括的本端客户端、以及对端客户端的地址和端口,建立与对端客户端之间的数据通道。
本发明实施例所述图像处理方法,在本端客户端的实时通信进程中建立与对端客户端的数据通道,通过所述数据通道与所述对端客户端传输视频流;在图像识别进程中获得所述实时通信进程中传输的视频流,对所述视频流的各视频帧进行图像检测,得到所述各视频帧中目标对象的位置并传输至所述本端客户端的页面进程;在所述本端客户端的页面进程中获得所述实时通信进程中传输的视频流,根据所述实时通信进程中传输的视频流进行解码和渲染,以及,在渲染的各视频帧中对应相应目标对象的位置,根据虚拟对象模型渲染虚拟对象。如此,终端在Web RTC实时通信进程中,将图像识别进程从Web层面剥离出来,采用独立线程的方式进行图像识别,既能避开JavaScript语音对图像处理的性能优化问题,又能够保证图像识别的稳定性,从而有效解决Web场景下AR的性能优化问题。
为了解决Web场景下AR的性能优化问题,本发明实施例提供一种图像处理方法,如图5所示,所述方法包括:
步骤501:在本端客户端的实时通信进程中建立与对端客户端的数据通道,通过所述数据通道与所述对端客户端传输视频流;
步骤502a:在服务器的所述图像识别进程中获得所述实时通信进程中传输的视频流,对所述视频流的各视频帧进行图像检测,得到所述各视频帧中目标对象的位置;将所得到所述各视频帧中目标对象的位置传输至所述本端客户端的页面进程;
这里,本端客户端将实时通信进程中传输的视频流上传至后台服务器,从而将图像识别工作交由后台服务器进行处理。如此,本发明实施例采用将图像识别进程放到后台服务器执行,以达到不影响Web层面的其他进程,从而能够优化AR在Web上的体验。
步骤502b:在所述客户端的图像识别进程中获得所述实时通信进程中传输的视频流,对视频流的各视频帧进行图像检测,得到所述各视频帧中目标对象的位置;将所得到所述各视频帧中目标对象的位置传输至所述本端客户端的页面进程;
根据本发明一实施方式,在所述客户端的图像识别进程中获得所述实时通信进程模块传输的视频流,包括:在所述客户端的图像识别进程中开启线程;在各所述线程中,并行接收所述实时通信进程模块传输的视频流的不同视频帧。
这里,本发明实施例所述在所述客户端的图像识别进程中开启线程可以实施为开启预定数量的多个线程;所述在所述客户端的图像识别进程中开启线程还可以实施为根据所述视频流的帧率,开启数量与所述帧率符合正相关条件的线程。
根据本发明一实施方式,步骤502中所述对视频流的各视频帧进行图像检测,得到所述各视频帧中目标对象的位置,包括:对视频流的各视频帧进行图像检测,得到所述各视频帧中的图像特征;将所述图像特征与所述目标对象的图像特征匹配,得到匹配到的所述目标对象在所述各视频帧中的位置。
在一示例中,以目标对象为人脸头像为例,可以首先采用角点检测算法对视频流的各视频帧进行图像检测,得到所述各视频帧中的图像特征,如通过对眼睛特征点、鼻子特征点、嘴巴特征点等角点的检测,得到对应人脸头像的图像特征如眼睛、鼻子、嘴巴等,如图6所示。其中,图6所示的1~20表示脸部边缘特征点,21~28以及29~36对应表示用户的左眉部特征点和右眉部特征点,37~44以及88表示用户的左眼特征点,其中88为左眼瞳孔,45~51以及89表示用户的右眼特征点,其中89为右眼瞳孔特征点,53~65表示用户的鼻子特征点、66~87表示用户的嘴唇特征点。
步骤503:在所述本端客户端的页面进程中获得所述实时通信进程中传输的视频流,根据所述实时通信进程中传输的视频流进行解码和渲染,以及,在渲染的各视频帧中对应相应目标对象的位置,根据虚拟对象模型渲染虚拟对象。
在一示例中,如图7所示,以目标对象7(a)为人物头像为例,本端客户端根据虚拟对象模型7(b)渲染得到虚拟对象7(c)。
基于本发明实施例所述图像处理方法,在一应用示例中,如图8所示,图像处理方法涉及以下步骤:
步骤1,Web RTC模块采集到视频流后,将视频流拷贝一份,作为AR模块的输入。这里,需要说明的是,原来将视频流送给Web RTC模块的流程不变。
步骤2,AR模块(即图像处理模块)启动独立线程对输入的图像进行识别处理。这里,独立线程的目的是将繁重的图像处理工作从浏览器任务中独立出来,避免阻塞浏览器线程任务的执行。
步骤3,AR模块采用图像检测等算法(如角点检测算法),对视频帧进行处理,匹配到目标对象后,将目标对象在视频帧里的位置信息,输出给浏览器内核进程。
步骤4,浏览器内核进程将识别结果以消息的模式通知给Web页面进程。
步骤5,Web RTC进程通过对端客户端建立数据通道,获得对端客户端传输的视频流,传输给页面进程(通过向页面进程提供获得视频流的接口的方式),页面进程通过WebRTC进程提供的JS接口(标准接口)获取视频流,将视频流作为Video的流媒体资源进行播放;同时,页面运用识别到的目标对象的位置信息,通过调用Web GL,在已经渲染的视频流的各个视频帧中,针对目标的位置,渲染虚拟模型(虚拟对象),完成现实场景与虚拟场景的合成显示。
本发明实施例所述图像处理方法,通过在服务器或本端客户端的所述图像识别进程中获得所述实时通信进程中传输的视频流,对所述视频流的各视频帧进行图像检测,得到所述各视频帧中目标对象的位置并传输至所述本端客户端的页面进程的方式,将图像识别进程从Web层面剥离出来,采用独立线程的方式进行图像识别,既能避开JavaScript语音对图像处理的性能优化问题,又能够保证图像识别的稳定性,从而有效解决Web场景下AR的性能优化问题。
图9为本发明实施例提供的图像处理装置的组成结构示意图,如图9所示,该装置包括:
实时通信进程模块901,用于在本端客户端的实时通信进程中建立与对端客户端的数据通道,通过所述数据通道与所述对端客户端传输视频流;
图像识别进程模块902,用于在图像识别进程中获得所述实时通信进程中传输的视频流,对所述视频流的各视频帧进行图像检测,得到所述各视频帧中目标对象的位置并传输至所述本端客户端的页面进程;
页面进程模块903,用于在所述本端客户端的页面进程中获得所述实时通信进程中传输的视频流,根据所述实时通信进程中传输的视频流进行解码和渲染,以及,在渲染的各视频帧中对应相应目标对象的位置,根据虚拟对象模型渲染虚拟对象。
根据本发明一实施方式,所述图像识别进程模块902位于服务器侧或客户端侧。
根据本发明一实施方式,所述图像识别进程模块902,还用于在所述本端客户端的图像识别进程中开启线程;在各所述线程中,并行接收所述实时通信进程模块传输的视频流的不同视频帧。
根据本发明一实施方式,所述图像识别进程模块902,还用于对视频流的各视频帧进行图像检测,得到所述各视频帧中的图像特征;将所述图像特征与所述目标对象的图像特征匹配,得到匹配到的所述目标对象在所述各视频帧中的位置。
根据本发明一实施方式,如图9所示,所述装置还包括:
浏览器内核处理模块904,用于在所述本端客户端的浏览器内核进程中访问房间的页面地址,获得页面数据;在所述浏览器内核进程中创建对应所述房间的所述页面进程,在所述页面进程中使用所述页面数据中加载并渲染所述房间的页面;在所述本端客户端的浏览器内核进程中创建对应所述房间的所述实时通信进程。
实际应用中,上述实时通信进程模块901、图像识别进程模块902、页面进程模块903及其浏览器内核处理模块904的具体结构均可对应于处理器。所述处理器具体的结构可以为中央处理器(CPU,Central Processing Unit)、微处理器(MCU,Micro ControllerUnit)、数字信号处理器(DSP,Digital Signal Processing)或可编程逻辑器件(PLC,Programmable Logic Controller)等具有处理功能的电子元器件或电子元器件的集合。其中,所述处理器包括可执行代码,所述可执行代码存储在存储介质中,所述处理器可以通过总线等通信接口与所述存储介质中相连,在执行具体的各单元的对应功能时,从所述存储介质中读取并运行所述可执行代码。所述存储介质用于存储所述可执行代码的部分优选为非瞬间存储介质。
本发明实施例提供一种图像处理装置,所述图像处理装置包括:
存储器,配置为存储可执行程序;
处理器,配置为通过执行所述存储器中存储的可执行程序时,至少实现如下步骤:在本端客户端的实时通信进程中建立与对端客户端的数据通道,通过所述数据通道与所述对端客户端传输视频流;
在图像识别进程中获得所述实时通信进程中传输的视频流,对所述视频流的各视频帧进行图像检测,得到所述各视频帧中目标对象的位置并传输至所述本端客户端的页面进程;
在所述本端客户端的页面进程中获得所述实时通信进程中传输的视频流,根据所述实时通信进程中传输的视频流进行解码和渲染,以及,在渲染的各视频帧中对应相应目标对象的位置,根据虚拟对象模型渲染虚拟对象。
本发明实施例具有如下技术效果:
1)将图像识别进程从页面进程中剥离出来,采用独立进程(即图像识别进程的)的方式进行图像识别,一方面,避免了页面进程中同时进行实时通信和图像识别导致资源占用高而出现延迟的情况,另一方面在独立于页面进程的图像识别进程中能够保证图像识别的稳定性,从而有效实现实时通信场景中虚拟显示性能优化。
2)根据实际情况(如可用资源)选择本端客户端或服务器的图像识别进程进行图像识别处理,有效解决了页面进程资源不足而出现实时通信延迟甚至崩溃的情况。
3)在图像识别进程中采用多线程的方式并行进行图像识别,有效提升处理效率,并根据视频流参数进行线程数量的自适应。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种图像处理方法,其特征在于,包括:
在本端客户端的实时通信进程中建立与对端客户端的数据通道,通过所述数据通道与所述对端客户端传输视频流;
在图像识别进程中获得所述实时通信进程中传输的视频流;
对所述视频流的各视频帧进行图像检测得到所述各视频帧中目标对象的位置,并传输至所述本端客户端的页面进程;
在所述本端客户端的页面进程中获得所述实时通信进程中传输的视频流,根据所述实时通信进程中传输的视频流进行解码和渲染,以及,
在渲染的各视频帧中对应相应目标对象的位置,根据虚拟对象模型渲染虚拟对象。
2.如权利要求1所述的图像处理方法,其特征在于,所述在图像识别进程中获得所述实时通信进程中传输的视频流,对视频流的各视频帧进行图像检测,得到所述各视频帧中目标对象的位置,包括:
向服务器的图像识别进程传输所述实时通信进程中传输的视频流,获得检测所述视频流的各视频帧中目标对象的位置;
和/或,
在所述本端客户端的图像识别进程中获得所述实时通信进程中传输的视频流,对视频流的各视频帧进行图像检测,得到所述各视频帧中目标对象的位置。
3.如权利要求1所述的图像处理方法,其特征在于,
所述在图像识别进程中获得所述实时通信进程中传输的视频流,包括:
在所述本端客户端的图像识别进程中开启线程;
在各所述线程中并行接收所述实时通信进程中传输的视频流的不同视频帧。
4.如权利要求3所述的图像处理方法,其特征在于,所述在所述本端客户端的图像识别进程中开启线程,包括:
开启预定数量的多个线程,或者,
根据所述视频流的参数,开启数量与所述参数适配的线程。
5.如权利要求1所述的图像处理方法,其特征在于,所述对视频流的各视频帧进行图像检测得到所述各视频帧中目标对象的位置,包括:
对视频流的各视频帧进行图像检测,得到所述各视频帧中的图像特征;
将所述图像特征与所述目标对象的图像特征匹配,得到匹配到的所述目标对象在所述各视频帧中的位置。
6.如权利要求1所述的图像处理方法,其特征在于,还包括:
在所述本端客户端的浏览器内核进程中访问房间的页面地址,获得页面数据;
在所述浏览器内核进程中创建对应所述房间的所述页面进程,在所述页面进程中使用所述页面数据加载并渲染所述房间的页面;
在所述本端客户端的浏览器内核进程中,创建对应所述房间的所述实时通信进程。
7.如权利要求1所述的图像处理方法,其特征在于,所述在本端客户端的实时通信进程中建立与对端客户端的数据通道,通过所述数据通道与所述对端客户端传输视频流,包括:
在所述本端客户端的实时通信进程中,经由信令服务器与所述对端客户端交换携带通道类型和视频流参数的信令;
建立符合所述类型的数据通道,通过所述数据通道传输符合所述视频流参数的视频流。
8.如权利要求1所述的图像处理方法,其特征在于,还包括:
在所述本端客户端的实时通信进程中,经由所述信令服务器与所述对端客户端交换携带会话控制参数的信令;
根据所述会话控制参数控制与所述对端客户端之间的会话状态。
9.一种图像处理装置,其特征在于,包括:
实时通信进程模块,用于在本端客户端的实时通信进程中建立与对端客户端的数据通道,通过所述数据通道与所述对端客户端传输视频流;
图像识别进程模块,用于在图像识别进程中获得所述实时通信进程中传输的视频流,对所述视频流的各视频帧进行图像检测得到所述各视频帧中目标对象的位置,并传输至所述本端客户端的页面进程;
页面进程模块,用于在所述本端客户端的页面进程中获得所述实时通信进程中传输的视频流,根据所述实时通信进程中传输的视频流进行解码和渲染,以及,在渲染的各视频帧中对应相应目标对象的位置,根据虚拟对象模型渲染虚拟对象。
10.如权利要求9所述的装置,其特征在于,
所述图像识别进程模块,具体用于:
向服务器的图像识别进程传输所述实时通信进程中传输的视频流,获得检测所述视频流的各视频帧中目标对象的位置;
和/或,
在所述本端客户端的图像识别进程中获得所述实时通信进程中传输的视频流,对视频流的各视频帧进行图像检测,得到所述各视频帧中目标对象的位置。
11.如权利要求9所述的装置,其特征在于,
所述图像识别进程模块,具体用于在所述本端客户端的图像识别进程中开启线程;在各所述线程中并行接收所述实时通信进程传输的视频流的不同视频帧。
12.如权利要求11所述的装置,其特征在于,
所述图像识别进程模块,具体用于开启预定数量的多个线程,或者,
根据所述视频流的参数,开启数量与所述参数适配的线程。
13.如权利要求11所述的装置,其特征在于,
所述图像识别进程模块,具体用于对视频流的各视频帧进行图像检测,得到所述各视频帧中的图像特征;将所述图像特征与所述目标对象的图像特征匹配,得到匹配到的所述目标对象在所述各视频帧中的位置。
14.一种图像处理装置,其特征在于,包括:
存储器,用于存储可执行程序;
处理器,用于通过执行所述存储器中存储的可执行程序时,实现权利要求1至8任一项所述的图像处理方法。
15.一种存储介质,其特征在于,存储有可执行程序,所述可执行程序被处理器执行时,实现权利要求1至8任一项所述的图像处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710625644.3A CN109309866B (zh) | 2017-07-27 | 2017-07-27 | 图像处理方法及装置、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710625644.3A CN109309866B (zh) | 2017-07-27 | 2017-07-27 | 图像处理方法及装置、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109309866A true CN109309866A (zh) | 2019-02-05 |
CN109309866B CN109309866B (zh) | 2022-03-08 |
Family
ID=65202629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710625644.3A Active CN109309866B (zh) | 2017-07-27 | 2017-07-27 | 图像处理方法及装置、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109309866B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111131892A (zh) * | 2019-12-31 | 2020-05-08 | 安博思华智能科技有限责任公司 | 一种控制直播背景的系统和方法 |
CN111371993A (zh) * | 2020-03-13 | 2020-07-03 | 腾讯科技(深圳)有限公司 | 一种图像拍摄方法、装置、计算机设备和存储介质 |
CN111479121A (zh) * | 2020-04-08 | 2020-07-31 | 北京智能工场科技有限公司 | 一种基于流媒体服务器的直播方法及系统 |
CN112202882A (zh) * | 2020-09-29 | 2021-01-08 | 联想(北京)有限公司 | 一种传输方法、客户端及传输系统 |
CN112399249A (zh) * | 2020-11-12 | 2021-02-23 | 创盛视联数码科技(北京)有限公司 | 多媒体文件生成方法、装置、电子设备及存储介质 |
CN113630439A (zh) * | 2021-06-30 | 2021-11-09 | 网宿科技股份有限公司 | 实时通信rtc连接方法、服务器及存储介质 |
CN114598738A (zh) * | 2022-02-22 | 2022-06-07 | 网易(杭州)网络有限公司 | 数据处理方法、装置、存储介质及计算机设备 |
US20230188608A1 (en) * | 2021-12-10 | 2023-06-15 | Topia Interactive, Inc. | Peer-to-peer signal caching system |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101287093A (zh) * | 2008-05-30 | 2008-10-15 | 北京中星微电子有限公司 | 在视频通信中添加特效的方法及视频客户端 |
CN101635029A (zh) * | 2009-06-01 | 2010-01-27 | 北京中星微电子有限公司 | 一种人脸识别方法与移动终端 |
CN102075727A (zh) * | 2010-12-30 | 2011-05-25 | 中兴通讯股份有限公司 | 一种可视电话中图像处理方法和装置 |
KR20110090623A (ko) * | 2010-02-04 | 2011-08-10 | 서울통신기술 주식회사 | 얼굴추적이 가능한 홈네트워크 단말 및 그 단말에서의 얼굴추적방법 |
CN103916621A (zh) * | 2013-01-06 | 2014-07-09 | 腾讯科技(深圳)有限公司 | 视频通信方法及装置 |
CN104794444A (zh) * | 2015-04-16 | 2015-07-22 | 美国掌赢信息科技有限公司 | 一种即时视频中的表情识别方法和电子设备 |
CN105578113A (zh) * | 2016-02-02 | 2016-05-11 | 北京小米移动软件有限公司 | 一种视频通信的方法、装置和系统 |
CN105744061A (zh) * | 2016-01-28 | 2016-07-06 | 努比亚技术有限公司 | 一种眼纹识别交互装置及方法 |
CN106131185A (zh) * | 2016-07-13 | 2016-11-16 | 腾讯科技(深圳)有限公司 | 一种视频数据的处理方法、装置及系统 |
CN106251396A (zh) * | 2016-07-29 | 2016-12-21 | 迈吉客科技(北京)有限公司 | 三维模型的实时控制方法和系统 |
-
2017
- 2017-07-27 CN CN201710625644.3A patent/CN109309866B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101287093A (zh) * | 2008-05-30 | 2008-10-15 | 北京中星微电子有限公司 | 在视频通信中添加特效的方法及视频客户端 |
CN101635029A (zh) * | 2009-06-01 | 2010-01-27 | 北京中星微电子有限公司 | 一种人脸识别方法与移动终端 |
KR20110090623A (ko) * | 2010-02-04 | 2011-08-10 | 서울통신기술 주식회사 | 얼굴추적이 가능한 홈네트워크 단말 및 그 단말에서의 얼굴추적방법 |
CN102075727A (zh) * | 2010-12-30 | 2011-05-25 | 中兴通讯股份有限公司 | 一种可视电话中图像处理方法和装置 |
CN103916621A (zh) * | 2013-01-06 | 2014-07-09 | 腾讯科技(深圳)有限公司 | 视频通信方法及装置 |
CN104794444A (zh) * | 2015-04-16 | 2015-07-22 | 美国掌赢信息科技有限公司 | 一种即时视频中的表情识别方法和电子设备 |
CN105744061A (zh) * | 2016-01-28 | 2016-07-06 | 努比亚技术有限公司 | 一种眼纹识别交互装置及方法 |
CN105578113A (zh) * | 2016-02-02 | 2016-05-11 | 北京小米移动软件有限公司 | 一种视频通信的方法、装置和系统 |
CN106131185A (zh) * | 2016-07-13 | 2016-11-16 | 腾讯科技(深圳)有限公司 | 一种视频数据的处理方法、装置及系统 |
CN106251396A (zh) * | 2016-07-29 | 2016-12-21 | 迈吉客科技(北京)有限公司 | 三维模型的实时控制方法和系统 |
Non-Patent Citations (2)
Title |
---|
SEONG-PING CHUAH等: "Complexity-scalable video coding and power-rate-distortion modeling forwireless video chat applications", 《2013 VISUAL COMMUNICATIONS AND IMAGE PROCESSING (VCIP)》 * |
何明亮: "WebRTC技术的研究与应用", 《WEBRTC技术的研究与应用》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111131892A (zh) * | 2019-12-31 | 2020-05-08 | 安博思华智能科技有限责任公司 | 一种控制直播背景的系统和方法 |
CN111131892B (zh) * | 2019-12-31 | 2022-02-22 | 安博思华智能科技有限责任公司 | 一种控制直播背景的系统和方法 |
CN111371993A (zh) * | 2020-03-13 | 2020-07-03 | 腾讯科技(深圳)有限公司 | 一种图像拍摄方法、装置、计算机设备和存储介质 |
CN111479121A (zh) * | 2020-04-08 | 2020-07-31 | 北京智能工场科技有限公司 | 一种基于流媒体服务器的直播方法及系统 |
CN112202882A (zh) * | 2020-09-29 | 2021-01-08 | 联想(北京)有限公司 | 一种传输方法、客户端及传输系统 |
CN112202882B (zh) * | 2020-09-29 | 2022-03-25 | 联想(北京)有限公司 | 一种传输方法、客户端及传输系统 |
CN112399249A (zh) * | 2020-11-12 | 2021-02-23 | 创盛视联数码科技(北京)有限公司 | 多媒体文件生成方法、装置、电子设备及存储介质 |
CN113630439A (zh) * | 2021-06-30 | 2021-11-09 | 网宿科技股份有限公司 | 实时通信rtc连接方法、服务器及存储介质 |
US20230188608A1 (en) * | 2021-12-10 | 2023-06-15 | Topia Interactive, Inc. | Peer-to-peer signal caching system |
CN114598738A (zh) * | 2022-02-22 | 2022-06-07 | 网易(杭州)网络有限公司 | 数据处理方法、装置、存储介质及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109309866B (zh) | 2022-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109309866A (zh) | 图像处理方法及装置、存储介质 | |
CN109274634B (zh) | 多媒体通信方法及装置、存储介质 | |
CN107277612A (zh) | 用于在web浏览器上播放媒体流的方法和设备 | |
CN104253856B (zh) | 可缩放Web实时通信媒体引擎以及相关的方法、系统 | |
CN107632824B (zh) | 一种增强现实模块的生成方法、生成装置以及生成系统 | |
US9246819B1 (en) | System and method for performing message-based load balancing | |
US9055139B1 (en) | Display protocol interception in the network for services and network-based multimedia support for VDI | |
CN106453766B (zh) | 基于虚拟机的数据传输方法、装置及系统 | |
CN105282008B (zh) | 在网络实时通信交互会话期间增强媒体特性的方法和系统 | |
CN107343000A (zh) | 用于处理任务的方法和装置 | |
CN104753989B (zh) | 基于Web-based OS运行环境的屏幕影像传输播放方法及装置 | |
WO2018072650A1 (zh) | 移动终端与iptv进行交互的实现方法、装置及平台 | |
CN105991518B (zh) | 网络接入认证方法及装置 | |
CN113301106A (zh) | 运维处理系统、方法以及装置 | |
CN113079216A (zh) | 一种云应用的实现方法、装置、电子设备及可读存储介质 | |
US11916980B2 (en) | Signaling of scene description for multimedia conferencing | |
CN105262795B (zh) | 一种私有云和公有云结合的在线教育系统 | |
CN111343083B (zh) | 即时通信方法、装置、电子设备及可读存储介质 | |
CN114788296A (zh) | 用于显示媒体的协调控制 | |
CN106911732A (zh) | 一种网站访问加速方法及装置 | |
Hamoudy et al. | Video security in Internet of things: an overview | |
CN110266736A (zh) | 一种针对基于https协议的portal认证的优化方法及装置 | |
CN106331764A (zh) | 一种全景视频分享方法及其分享装置 | |
Pandey et al. | Web application for social networking using RTC | |
CN104052732B (zh) | 为Web实时通信交互流管理身份提供者标识符的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |