[go: up one dir, main page]

CN113132742B - 基于队列的双缓冲ai视频传输方法及相关设备 - Google Patents

基于队列的双缓冲ai视频传输方法及相关设备 Download PDF

Info

Publication number
CN113132742B
CN113132742B CN202110353455.1A CN202110353455A CN113132742B CN 113132742 B CN113132742 B CN 113132742B CN 202110353455 A CN202110353455 A CN 202110353455A CN 113132742 B CN113132742 B CN 113132742B
Authority
CN
China
Prior art keywords
queue
video stream
video
buffer
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.)
Active
Application number
CN202110353455.1A
Other languages
English (en)
Other versions
CN113132742A (zh
Inventor
江天捷
刘能
曾富来
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
He'an Technology Co ltd
Original Assignee
He'an Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by He'an Technology Co ltd filed Critical He'an Technology Co ltd
Priority to CN202110353455.1A priority Critical patent/CN113132742B/zh
Publication of CN113132742A publication Critical patent/CN113132742A/zh
Application granted granted Critical
Publication of CN113132742B publication Critical patent/CN113132742B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/21805Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2181Source of audio or video content, e.g. local disk arrays comprising remotely distributed storage units, e.g. when movies are replicated over a plurality of video servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明提供了一种基于队列的双缓冲AI视频传输方法,包括:步骤S1、获取实时采集的视频流;步骤S2、将所述视频流存入第一队列缓存区,存入的同时对所述视频流进行人工智能识别,并判断是否识别出识别目标:若是,则继续将该视频流存入所述第一队列缓存区,将预设时间之前的视频流前推复制到第二队列缓存区,并同时将所述视频流存入所述第二队列缓存区,再启动将缓存进所述第二队列缓存区的该视频流通过网络传输至云端服务器;若否,则继续将该视频流仅存入所述第一队列缓存区。本发明还提供了一种视频传输系统、视频传输设备及计算机可读存储介质。与相关技术相比,采用本发明的技术方案可只传输高价值视频并保证其完整性好,且传输效率高。

Description

基于队列的双缓冲AI视频传输方法及相关设备
【技术领域】
本发明涉及物联网技术领域,尤其涉及一种双缓冲AI视频传输方法、视频传输系统、视频传输设备以及计算机可读存储介质。
【背景技术】
目前,物联网系统应用越来越重要,其中数据传输量越来越多,在物联网技术中,如何应用视频传输为重要部分。
相关技术的物联网系统包括终端和云端服务器,其中,终端包括多个视频摄像头。终端和云端服务器通过通信连接传输大量视频数据。视频摄像头采集的实时视频数据通过数据传输到云端服务器。
然而,大量的实时视频数据传输到云端服务器,云端服务器需要巨大的存储空间,同时传输数据还需要传输带宽足够大,尤其城市级的物联网,摄像头过10万,将这些大量视频数据全部存储和传输,物联网系统将承受其存储和传输带宽成本和性能压力。现实中,视频的多数时间只是背景,传输和存储价值极小。目前已有优化方案是先采用人工智能(英文:Artificial Intelligence,英文缩写为AI)识别,通过人工智能识别到人脸、车辆等场景后再传输视频数据。然而这种方式丢失了人工智能识别前的现场,损害了视频数据的完整性,不能满足监控需要。如何将视频数据应用人工智能技术进行传输是一个需要解决的技术问题。
因此,实有必要提供一种新的方法、系统及设备来解决上述技术问题。
【发明内容】
本发明的目的是克服上述技术问题,提供一种可只传输高价值视频并保证其完整性好,且传输效率高的基于队列的双缓冲AI视频传输方法、视频传输系统、视频传输设备以及计算机可读存储介质。
为了实现上述目的,本发明提供一种基于队列的双缓冲AI视频传输方法,其应用于物联网终端,该方法包括如下步骤:
步骤S1、获取实时采集的视频流;
步骤S2、将所述视频流存入第一队列缓存区,存入的同时对所述视频流进行人工智能识别,并判断是否识别出识别目标:
若是,则继续将该视频流存入所述第一队列缓存区,将预设时间之前的视频流前推复制到第二队列缓存区,并同时将所述视频流存入所述第二队列缓存区,再启动将缓存进所述第二队列缓存区的该视频流通过网络传输至云端服务器;
若否,则继续将该视频流仅存入所述第一队列缓存区。
优选的,所述步骤S1之前,所述基于队列的双缓冲AI视频传输方法还包括如下步骤:
步骤S0、配置所述第一队列缓存区的大小为A,并将所述第一队列缓存区的头地址和尾地址的均偏移设置为0;配置所述第二队列缓存区的大小为B,并将所述第二队列缓存区的头地址和尾地址的均偏移设置为0;设置预设时间为t;使所述第一队列缓存区及所述第二队列缓存区均与所述云端服务器通信连接;并将所述物联网终端的识别状态标志设置为false值,所述识别状态标志用于判断所述物联网终端人工智能是否识别出所述识别目标。
优选的,所述步骤S2具体包括:
步骤S21、将所述视频流存入所述第一队列缓存区,并判断所述物联网终端的视频传输标志是否为true值:若是,则继续将当前所述视频流存入至所述第二队列缓存区并将其缓存进所述第二队列缓存区后通过网络传输至云端服务器;若否,则进入步骤S22;
步骤S22、将所述视频流进行所述人工智能识别并判断是否识别出所述识别目标,若是,则将所述识别状态标志设置为true值,若否,则将所述识别状态标志设置为false值;
步骤S23、同时判断所述识别状态标志和所述视频传输标志:
若所述视频传输标志为false值,同时所述识别状态标志为false值,则返回所述步骤S21;
若所述视频传输标志为false值,同时所述识别状态标志为true值,
则将预设时间t之前的视频流前推复制到第二队列缓存区,并同时将该视频流存入所述第二队列缓存区,并将所述视频传输标志设置为true值,再启动将缓存进所述第二队列缓存区的该视频流通过网络传输至云端服务器,同时返回所述步骤S21;
若所述视频传输标志为true值,同时所述识别状态标志为false值,则进一步判断所述视频流是否正在通过网络传输至云端服务器,若是则继续进行网络传输,若否,则将所述视频传输标志设置为false值,并返回所述步骤S21。
优选的,所述步骤S23中,若所述视频传输标志为true值,同时所述识别状态标志为false值,则进一步判断所述视频流是否正在通过网络传输至云端服务器,若否,则延迟预设时间后再将所述视频传输标志设置为false值。
优选的,将所述视频流存入所述第一队列缓存区和将所述视频流存入第二队列缓存区均根据队列缓存区算法进行存入,所述队列缓存区算法应用于所述视频流中的入队、追加以及出队;
其中,所述队列缓存区包括时间队列和数据缓冲区,所述时间队列为数组,所述时间队列中的元素的结构包括时间、数据缓冲区偏移以及数据长度;所述数据缓冲区为内存空间;
应用所述队列缓存区算法的过程包括:
步骤S31、判断当前的所述视频流的视频时间是否与所述第一队列缓存区的所述时间队列队尾的时间相同:
若否,则判断为新的所述视频流,并将该视频流存入所述第一队列缓存区,
若是,则判断该视频流为正在存入的视频流,并将该视频流继续存入所述第一队列缓存区;
步骤S32、判断所述视频传输标志是否为true值,并同时判断当前的所述视频流的视频时间是否与所述第一队列缓存区的所述时间队列队尾的时间相同:
若否,则判断为新的所述视频流,并将该视频流存入所述第二队列缓存区,
若是,则判断该视频流为正在存入的视频流,并将该视频流继续存入所述第二队列缓存区。
优选的,应用所述队列缓存区算法的过程还包括:
步骤S41、缓存进所述第二队列缓存区从所述时间队列进行所述出队,将所述队首的缓冲数据复制,并将复制的缓冲数据通过网络传输至云端服务器;
步骤S42、重复所述步骤S41至所述第二队列缓存区清空。
优选的,首次启动通过网络传输中应用所述队列缓存区算法的过程中包括:
步骤S51、自所述第一队列缓存区的所述时间队列的所述队首开始,依次判断所述元素的每一固有时间是否为第一时间:若是,则停止判断,若否,则进入步骤S52,所述第一时间为大于或等于当前时间减去预设的前推时长的差值;
步骤S52、将所述第一队列缓存区的所述队首设置为判断为所述第一时间相对应的所述元素;
步骤S53、将所述第一队列缓存区进行所述出队,并将所述出队的数据在所述第二队列缓存区进行所述入队;
步骤S54、重复步骤S51-步骤S53至所述第一队列缓存区进入队空状态;
步骤S55、依次重复所述步骤S41和所述步骤S42;
步骤S56、将所述视频传输标志设置为true值。
本发明还提供一种视频传输系统,所述视频传输系统包括云端服务器和应用如上中的任意一项所述的基于队列的双缓冲AI视频传输方法的物联网终端,所述云端服务器和所述物联网终端通信连接。
本发明还提供一种视频传输设备,包括处理器和存储器,所述处理器用于读取所述存储器中的程序,执行如上中的任一项所述的基于队列的双缓冲AI视频传输方法中的步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现如上中任意一项所述的基于队列的双缓冲AI视频传输方法中的步骤。
与现有技术相比,本发明的基于队列的双缓冲AI视频传输方法、视频传输系统、视频传输设备以及计算机可读存储介质通过应用基于队列的双缓冲AI视频传输方法实现。该方法包括如下步骤:步骤S1、获取实时采集的视频流;步骤S2、将所述视频流存入第一队列缓存区,存入的同时对所述视频流进行人工智能识别,并判断是否识别出识别目标:若是,则继续将该视频流存入所述第一队列缓存区,并同时将所述视频流存入第二队列缓存区,再启动将缓存进所述第二队列缓存区的该视频流通过网络传输至云端服务器;若否,则继续将该视频流仅存入所述第一队列缓存区。上述方法通过设置所述第一队列缓存区和所述第二队列缓存区,并通过人工智能进行识别目标,将高价值视频传输,占用传输带宽小,传输效率高;从而实现队列的双缓冲操作,从而使得传输的数据保留人工智能识别前的现场;将预设时间之前的视频流前推复制到第二队列缓存区,操作使得人工智能识别到所述识别目标后,能够将识别前的视频数据也传输到所述云端服务器,从而避免高价值视频的丢失,从而底端视频数据的完整性好,满足监控需要。
【附图说明】
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,其中,
图1为本发明基于队列的双缓冲AI视频传输方法的流程框图;
图2为本发明基于队列的双缓冲AI视频传输方法的实施例的流程框图;
图3为本发明基于队列的双缓冲AI视频传输方法的实施例中的一种流程框图;
图4为本发明基于队列的双缓冲AI视频传输方法的实施例中的另一种流程框图;
图5为本发明基于队列的双缓冲AI视频传输方法的实施例中的其他一种流程框图;
图6为本发明视频传输系统的结构示意图;
图7为本发明视频传输设备的结构示意图。
【具体实施方式】
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。在本文中提及“实施例或本实施方式”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明提供一种基于队列的双缓冲AI视频传输方法。
请参照图1所示,图1为本发明一种基于队列的双缓冲AI视频传输方法的流程框图。
所述基于队列的双缓冲AI视频传输方法应用于物联网终端。该方法包括如下步骤:
步骤S1、获取实时采集的视频流。
步骤S2、将所述视频流存入第一队列缓存区,存入的同时对所述视频流进行人工智能识别,并判断是否识别出识别目标:
若是,则继续将该视频流存入所述第一队列缓存区,将预设时间之前的视频流前推复制到第二队列缓存区,并同时将所述视频流存入所述第二队列缓存区,再启动将缓存进所述第二队列缓存区的该视频流通过网络传输至云端服务器。
若否,则继续将该视频流仅存入所述第一队列缓存区。
综上所述,所述视频传输方法通过设置所述第一队列缓存区和所述第二队列缓存区,并通过人工智能进行识别目标,将高价值视频传输,占用传输带宽小,传输效率高;从而实现队列的双缓冲操作,从而使得传输的数据保留人工智能识别前的现场;将预设时间之前的视频流前推复制到第二队列缓存区,操作使得人工智能识别到所述识别目标后,能够将识别前的视频数据也传输到所述云端服务器,从而避免高价值视频的丢失,从而底端视频数据的完整性好,满足监控需要。
为了更好说明本发明的所述视频传输方法的工作过程,通过以下一个具体的实施例进行详细说明。请参照图2所示,图2为本发明基于队列的双缓冲AI视频传输方法的实施例的流程框图。
本实施列的所述基于队列的双缓冲AI视频传输方法应用于物联网终端。该方法包括如下步骤:
步骤S0、配置所述第一队列缓存区的大小为A,并将所述第一队列缓存区的头地址和尾地址的均偏移设置为0;配置所述第二队列缓存区的大小为B,并将所述第二队列缓存区的头地址和尾地址的均偏移设置为0;设置预设时间为t;使所述第一队列缓存区及所述第二队列缓存区均与所述云端服务器通信连接;并将所述物联网终端的识别状态标志设置为false值。所述识别状态标志用于判断所述物联网终端人工智能是否识别出所述识别目标。所述识别状态标志为false值说明当前视频流未识别出所述识别目标。而相反,所述识别状态标志为true值说明当前视频流已识别出所述识别目标。所述预设时间设置为t,即将前推的视频流时长设置为当前时间之前的t时长,t大于0;本实施方式中,t设置为秒为单位的时间。
所述步骤S0完成了所述物联网终端的初始化和内部配置。
步骤S1、获取实时采集的视频流。所述步骤S1通过所述物联网终端的摄像头和视频网关实现。
所述步骤S2步骤包括如下子步骤:
步骤S21、将所述视频流存入所述第一队列缓存区,并判断所述物联网终端的视频传输标志是否为true值:
若是,则继续将当前所述视频流存入至所述第二队列缓存区并将其缓存进所述第二队列缓存区后通过网络传输至云端服务器。所述视频传输标志为true值表示视频流正在传输。若是,则说明当前视频流的前段视频流正在传输,即当前视频流还没有完成传输。
若否,则进入步骤S22。即所述视频传输标志为false值,所述视频传输标志为false值表示视频流并未传输。
步骤S22、将所述视频流进行所述人工智能识别并判断是否识别出所述识别目标,若是,则将所述识别状态标志设置为true值,若否,则将所述识别状态标志设置为false值。
步骤S23、同时判断所述识别状态标志和所述视频传输标志:
若所述视频传输标志为false值,同时所述识别状态标志为false值,则返回所述步骤S21。
若所述视频传输标志为false值,同时所述识别状态标志为true值,
则将预设时间t之前的视频流前推复制到第二队列缓存区,并同时将该视频流存入所述第二队列缓存区,并将所述视频传输标志设置为true值,再启动将缓存进所述第二队列缓存区的该视频流通过网络传输至云端服务器,同时返回所述步骤S21。
其中,将预设时间t之前的视频流前推复制到第二队列缓存区,该操作使得人工智能识别到所述识别目标后,能够将识别前的视频数据也传输到所述云端服务器,从而避免高价值视频的丢失。
若所述视频传输标志为true值,同时所述识别状态标志为false值,则进一步判断所述视频流是否正在通过网络传输至云端服务器,若是则继续进行网络传输,若否,则将所述视频传输标志设置为false值,并返回所述步骤S21。
为了更好实现状态控制和数据传输,避免出现传输错误,本实施方式中,所述步骤S23中,若所述视频传输标志为true值,同时所述识别状态标志为false值,则进一步判断所述视频流是否正在通过网络传输至云端服务器,若否,则延迟预设时间后再将所述视频传输标志设置为false值。其中,延迟预设时间可以设置为秒为单位的时间长度。通过设置延迟预设时间再将所述视频传输标志设置为false值可以避免因为传输延伸等原因造成的状态不准,提高传输的可靠性。
将所述视频流存入所述第一队列缓存区和将所述视频流存入第二队列缓存区均根据队列缓存区算法进行存入。
其中,所述队列缓存区包括时间队列和数据缓冲区。述时间队列为数组。所述时间队列中的元素的结构包括时间、数据缓冲区偏移以及数据长度。所述数据缓冲区为内存空间。
所述队列缓存区算法应用于所述视频流中的入队、追加以及出队。
具体的,
所述入队为:
所述时间队列的队尾位置存储数据后,所述时间队列的队首数组值加1。
所述队尾数组值加1后,若所述队首数组值等于所述队尾数组值,则判断队满,并将所述队首数组值加1,进行数据复制覆盖。
所述队尾数组值或所述队首数组值大于所述时间队列的大小,则所述队尾数组值设置为0或所述队首数组值设置为0。
将上一个所述数据缓冲区偏移值加上数据长度作为当前的所述队尾数组值的偏移值,若该偏移值大于所述数据缓冲区的大小,则减去所述数据缓冲区大小,并按照实际视频数据长度设置所述时间队列的长度。
将存入的所述视频流的数据到所述队尾的数据缓冲区偏移时,若所述数据缓冲区偏移值加上数据长度的总和大于所述数据缓冲区的大小,则将该数据分两次存储。具体为:复制所述数据缓冲区偏移值到所述数据缓冲区的大小的数据,再复制0到第二数据,所述第二数据为所述数据缓冲区偏移值加上数据长度并减去所述数据缓冲区大小的数据。
所述追加为:
将新的所述视频流的数据包追加存入所述队尾的缓冲数据中,该缓冲数据为所述队尾的所述数据缓冲区偏移值加上数据长度。
若所述数据缓冲区偏移值加上数据长度的总和大于所述数据缓冲区的大小,则将该数据分两次存储。具体为:复制所述数据缓冲区偏移值加上数据长度到所述数据缓冲区的大小的数据,再复制0到第三数据,所述第三数据为所述数据缓冲区偏移值加上数据长度,再加上新的所述视频流的数据长度,再减去所述数据缓冲区大小的数据。
其中,所述时间队列的数据长度为所述队尾的数据长度加上新的所述视频流的数据包的数据长度的总和。
所述出队为:
所述队首的缓冲数据复制后,将所述队首数组值加1,若所述队首数组值等于所述队尾数组值,则判断队空,所述时间队列禁止出队操作。
所述数据缓冲区偏移值加上数据长度的总和大于所述数据缓冲区的大小,则将该数据分两次复制,具体为:复制所述数据缓冲区偏移值到所述数据缓冲区的大小的数据,再复制0到第四数据,所述第四数据为所述数据缓冲区偏移值加上数据长度并减去所述数据缓冲区大小的数据。
请参照图3所示,应用所述队列缓存区算法的过程包括:
步骤S31、判断当前的所述视频流的视频时间是否与所述第一队列缓存区的所述时间队列队尾的时间相同。
若否,则判断为新的所述视频流,并将该视频流存入所述第一队列缓存区,
若是,则判断该视频流为正在存入的视频流,并将该视频流继续存入所述第一队列缓存区。
步骤S32、判断所述视频传输标志是否为true值,并同时判断当前的所述视频流的视频时间是否与所述第一队列缓存区的所述时间队列队尾的时间相同。
若否,则判断为新的所述视频流,并将该视频流存入所述第二队列缓存区,
若是,则判断该视频流为正在存入的视频流,并将该视频流继续存入所述第二队列缓存区。
请参照图4所示,应用所述队列缓存区算法的过程还包括:
步骤S41、缓存进所述第二队列缓存区从所述时间队列进行所述出队,将所述队首的缓冲数据复制,并将复制的缓冲数据通过网络传输至云端服务器。
步骤S42、重复所述步骤S41至所述第二队列缓存区清空。
请参照图5所示,首次启动通过网络传输中应用所述队列缓存区算法的过程中包括:
步骤S51、自所述第一队列缓存区的所述时间队列的所述队首开始,依次判断所述元素的每一固有时间是否为第一时间:
若是,则停止判断。
若否,则进入步骤S52。
其中,所述第一时间为大于或等于当前时间减去预设的前推时长的差值。
步骤S52、将所述第一队列缓存区的所述队首设置为判断为所述第一时间相对应的所述元素。
步骤S53、将所述第一队列缓存区进行所述出队,并将所述出队的数据在所述第二队列缓存区进行所述入队。
步骤S54、重复步骤S51-步骤S53至所述第一队列缓存区进入队空状态。
步骤S55、依次重复所述步骤S41和所述步骤S42。
步骤S56、将所述视频传输标志设置为true值。
综上所述,所述视频传输方法通过设置所述第一队列缓存区和所述第二队列缓存区,并通过人工智能进行识别目标,将高价值视频传输,占用传输带宽小,传输效率高;从而实现队列的双缓冲操作,从而使得传输的数据保留人工智能识别前的现场,从而底端视频数据的完整性好,满足监控需要。
本发明还提供一种视频传输系统100。
请参照图6所示,图6为本发明一种视频传输系统的结构示意图。
所述视频传输系统包括云端服务器1和应用所述的基于队列的双缓冲AI视频传输方法的物联网终端2。所述云端服务器1和所述物联网终端2通信连接。所述云端服务器1包括多个。
所述物联网终端2获取实时采集的视频流。
所述物联网终端2将所述视频流存入第一队列缓存区,存入的同时对所述视频流进行人工智能识别,并判断是否识别出识别目标:若是,则继续将该视频流存入所述第一队列缓存区,并同时将所述视频流存入第二队列缓存区,再启动将缓存进所述第二队列缓存区的该视频流通过网络传输至云端服务器;若否,则继续将该视频流仅存入所述第一队列缓存区。
需要指出的是,所述云端服务器1和所述.物联网终端2均为本领域技术中常用的设备或仪器,其具体型号需要根据产品的实际设计需要进行选型,在此,不作详细赘述。
本发明还提供一种视频传输设备1000。请参照图7所示,图4为本发明视频传输设备1000的结构示意图。
所述视频传输设备1000包括处理器1001、存储器1002、网络接口1003及存储在存储器1002上并可在处理器1001上运行的计算机程序,所述处理器1001用于读取所述存储器中1002的程序,处理器1001执行计算机程序时实现实施例提供的基于队列的双缓冲AI视频传输方法中的步骤。即处理器1001执行所述基于队列的双缓冲AI视频传输方法中的步骤。
具体的,处理器1001用于执行以下步骤:
步骤S1、获取实时采集的视频流。
步骤S2、将所述视频流存入第一队列缓存区,仅同时对所述视频流进行人工智能识别,并判断是否识别出识别目标:
若是,则继续将该视频流存入所述第一队列缓存区,并同时将所述视频流存入第二队列缓存区,再启动将缓存进所述第二队列缓存区的该视频流通过网络传输至云端服务器。
若否,则继续将该视频流仅存入所述第一队列缓存区。
本发明实施例提供的所述视频传输设备1000能够实现基于队列的双缓冲AI视频传输方法实施例中的各个实施方式,以及相应有益效果,为避免重复,这里不再赘述。
需要指出的是,图中仅示出了具有组件的1001-1003,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的所述视频传输设备1000是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述存储器1002至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器1002可以是所述视频传输设备1000的内部存储单元,例如该视频传输设备的硬盘或内存。在另一些实施例中,所述存储器1002也可以是所述视频传输设备1000的外部存储设备,例如该视频传输设备1000上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器1002还可以既包括所述视频传输设备的内部存储单元也包括其外部存储设备。本实施例中,所述存储器1002通常用于存储安装于所述视频传输设备1000的操作系统和各类应用软件,例如视频传输设备1000的基于队列的双缓冲AI视频传输方法的程序代码等。此外,所述存储器1002还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器1001在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该所述处理器1001通常用于控制所述视频传输设备1000的总体操作。本实施例中,所述处理器1001用于运行所述存储器1002中存储的程序代码或者处理数据,例如运行视频传输设备1000的基于队列的双缓冲AI视频传输方法的程序代码。
网络接口1003可包括无线网络接口或有线网络接口,该网络接口1003通常用于在视频传输设备1000与其他电子设备之间建立通信连接。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器1001执行时实现如上中任意一项所述的基于队列的双缓冲AI视频传输方法中的步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现实施例视频传输设备的基于队列的双缓冲AI视频传输方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存取存储器(Random Access Memory,简称RAM)等。
在本发明实施例中提到的本实施方式为了便于表述。以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
与现有技术相比,本发明的基于队列的双缓冲AI视频传输方法、视频传输系统、视频传输设备以及计算机可读存储介质通过应用基于队列的双缓冲AI视频传输方法实现。该方法包括如下步骤:步骤S1、获取实时采集的视频流;步骤S2、将所述视频流存入第一队列缓存区,存入的同时对所述视频流进行人工智能识别,并判断是否识别出识别目标:若是,则继续将该视频流存入所述第一队列缓存区,并同时将所述视频流存入第二队列缓存区,再启动将缓存进所述第二队列缓存区的该视频流通过网络传输至云端服务器;若否,则继续将该视频流仅存入所述第一队列缓存区。上述方法通过设置所述第一队列缓存区和所述第二队列缓存区,并通过人工智能进行识别目标,将高价值视频传输,占用传输带宽小,传输效率高;从而实现队列的双缓冲操作,从而使得传输的数据保留人工智能识别前的现场;将预设时间之前的视频流前推复制到第二队列缓存区,操作使得人工智能识别到所述识别目标后,能够将识别前的视频数据也传输到所述云端服务器,从而避免高价值视频的丢失,从而底端视频数据的完整性好,满足监控需要。
以上所述的仅是本发明的实施方式,在此应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。

Claims (8)

1.一种基于队列的双缓冲AI视频传输方法,其应用于物联网终端,其特征在于,该方法包括如下步骤:
步骤S1、获取实时采集的视频流;
步骤S2、将所述视频流存入第一队列缓存区,存入的同时对所述视频流进行人工智能识别,并判断是否识别出识别目标:
若是,则继续将该视频流存入所述第一队列缓存区,将预设时间之前的视频流前推复制到第二队列缓存区,并同时将所述视频流存入所述第二队列缓存区,再启动将缓存进所述第二队列缓存区的该视频流通过网络传输至云端服务器;
若否,则继续将该视频流仅存入所述第一队列缓存区;
所述步骤S1之前,所述基于队列的双缓冲AI视频传输方法还包括如下步骤:
步骤S0、配置所述第一队列缓存区的大小为A,并将所述第一队列缓存区的头地址和尾地址的均偏移设置为0;配置所述第二队列缓存区的大小为B,并将所述第二队列缓存区的头地址和尾地址的均偏移设置为0;设置预设时间为t,t大于0;使所述第一队列缓存区及所述第二队列缓存区均与所述云端服务器通信连接;并将所述物联网终端的识别状态标志设置为false值,所述识别状态标志用于判断所述物联网终端人工智能是否识别出所述识别目标;
所述步骤S2具体包括:
步骤S21、将所述视频流存入所述第一队列缓存区,并判断所述物联网终端的视频传输标志是否为true值:若是,则继续将当前所述视频流存入至所述第二队列缓存区并将其缓存进所述第二队列缓存区后通过网络传输至云端服务器;若否,则进入步骤S22;
步骤S22、将所述视频流进行所述人工智能识别并判断是否识别出所述识别目标,若是,则将所述识别状态标志设置为true值,若否,则将所述识别状态标志设置为false值;
步骤S23、同时判断所述识别状态标志和所述视频传输标志:
若所述视频传输标志为false值,同时所述识别状态标志为false值,则返回所述步骤S21;
若所述视频传输标志为false值,同时所述识别状态标志为true值,
则将预设时间t之前的视频流前推复制到第二队列缓存区,并同时将该视频流存入所述第二队列缓存区,并将所述视频传输标志设置为true值,再启动将缓存进所述第二队列缓存区的该视频流通过网络传输至云端服务器,同时返回所述步骤S21;
若所述视频传输标志为true值,同时所述识别状态标志为false值,则进一步判断所述视频流是否正在通过网络传输至云端服务器,若是则继续进行网络传输,若否,则将所述视频传输标志设置为false值,并返回所述步骤S21。
2.根据权利要求1所述的基于队列的双缓冲AI视频传输方法,其特征在于,所述步骤S23中,若所述视频传输标志为true值,同时所述识别状态标志为false值,则进一步判断所述视频流是否正在通过网络传输至云端服务器,若否,则延迟预设时间后再将所述视频传输标志设置为false值。
3.根据权利要求1所述的基于队列的双缓冲AI视频传输方法,其特征在于,将所述视频流存入所述第一队列缓存区和将所述视频流存入第二队列缓存区均根据队列缓存区算法进行存入,所述队列缓存区算法应用于所述视频流中的入队、追加以及出队;
其中,所述队列缓存区包括时间队列和数据缓冲区,所述时间队列为数组,所述时间队列中的元素的结构包括时间、数据缓冲区偏移以及数据长度;所述数据缓冲区为内存空间;
应用所述队列缓存区算法的过程包括:
步骤S31、判断当前的所述视频流的视频时间是否与所述第一队列缓存区的所述时间队列队尾的时间相同:
若否,则判断为新的所述视频流,并将该视频流存入所述第一队列缓存区,
若是,则判断该视频流为正在存入的视频流,并将该视频流继续存入所述第一队列缓存区;
步骤S32、判断所述视频传输标志是否为true值,并同时判断当前的所述视频流的视频时间是否与所述第一队列缓存区的所述时间队列队尾的时间相同:
若否,则判断为新的所述视频流,并将该视频流存入所述第二队列缓存区,
若是,则判断该视频流为正在存入的视频流,并将该视频流继续存入所述第二队列缓存区。
4.根据权利要求3所述的基于队列的双缓冲AI视频传输方法,其特征在于,应用所述队列缓存区算法的过程还包括:
步骤S41、缓存进所述第二队列缓存区从所述时间队列进行所述出队,将队首的缓冲数据复制,并将复制的缓冲数据通过网络传输至云端服务器;
步骤S42、重复所述步骤S41至所述第二队列缓存区清空。
5.根据权利要求4所述的基于队列的双缓冲AI视频传输方法,其特征在于,首次启动通过网络传输中应用所述队列缓存区算法的过程中包括:
步骤S51、自所述第一队列缓存区的所述时间队列的所述队首开始,依次判断所述元素的每一固有时间是否为第一时间:若是,则停止判断,若否,则进入步骤S52,所述第一时间为大于或等于当前时间减去预设的前推时长的差值;
步骤S52、将所述第一队列缓存区的所述队首设置为判断为所述第一时间相对应的所述元素;
步骤S53、将所述第一队列缓存区进行所述出队,并将所述出队的数据在所述第二队列缓存区进行所述入队;
步骤S54、重复步骤S51-步骤S53至所述第一队列缓存区进入队空状态;
步骤S55、依次重复所述步骤S41和所述步骤S42;
步骤S56、将所述视频传输标志设置为true值。
6.一种视频传输系统,其特征在于,所述视频传输系统包括云端服务器和应用如权利要求1-5中的任意一项所述的基于队列的双缓冲AI视频传输方法的物联网终端,所述云端服务器和所述物联网终端通信连接。
7.一种视频传输设备,其特征在于,包括处理器和存储器,所述处理器用于读取所述存储器中的程序,执行如权利要求1至5中的任一项所述的基于队列的双缓冲AI视频传输方法中的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现如权利要求1至5中任意一项所述的基于队列的双缓冲AI视频传输方法中的步骤。
CN202110353455.1A 2021-03-31 2021-03-31 基于队列的双缓冲ai视频传输方法及相关设备 Active CN113132742B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110353455.1A CN113132742B (zh) 2021-03-31 2021-03-31 基于队列的双缓冲ai视频传输方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110353455.1A CN113132742B (zh) 2021-03-31 2021-03-31 基于队列的双缓冲ai视频传输方法及相关设备

Publications (2)

Publication Number Publication Date
CN113132742A CN113132742A (zh) 2021-07-16
CN113132742B true CN113132742B (zh) 2023-04-14

Family

ID=76774534

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110353455.1A Active CN113132742B (zh) 2021-03-31 2021-03-31 基于队列的双缓冲ai视频传输方法及相关设备

Country Status (1)

Country Link
CN (1) CN113132742B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116743948A (zh) * 2023-06-15 2023-09-12 上海山源电子科技股份有限公司 监控视频录像方法、装置、设备及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108491822A (zh) * 2018-04-02 2018-09-04 杭州高创电子科技有限公司 一种基于嵌入式设备有限缓存的人脸检测去重方法
CN110298306A (zh) * 2019-06-27 2019-10-01 北京百度网讯科技有限公司 目标对象运动信息的确定方法、装置及设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1450276A3 (en) * 1996-10-31 2007-08-08 Sensormatic Electronics Corporation Intelligent video information management system
US9584710B2 (en) * 2008-02-28 2017-02-28 Avigilon Analytics Corporation Intelligent high resolution video system
CN101568029B (zh) * 2008-11-28 2011-01-19 深圳市高斯贝尔家居智能电子有限公司 基于优化h.264编码标准的手机视频监视装置及方法
KR101627185B1 (ko) * 2009-04-24 2016-06-03 삼성전자 주식회사 영상촬영장치의 제어방법
CN104144312B (zh) * 2013-05-09 2018-06-05 腾讯科技(深圳)有限公司 一种视频处理方法和相关装置
CN108965831B (zh) * 2018-09-05 2020-09-25 北京疯景科技有限公司 视频处理方法、装置与智能可视门铃
CN112465398B (zh) * 2020-12-16 2024-04-16 合安科技技术有限公司 一种城市路灯亮灯率的统计方法、统计系统、服务器及存储设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108491822A (zh) * 2018-04-02 2018-09-04 杭州高创电子科技有限公司 一种基于嵌入式设备有限缓存的人脸检测去重方法
CN110298306A (zh) * 2019-06-27 2019-10-01 北京百度网讯科技有限公司 目标对象运动信息的确定方法、装置及设备

Also Published As

Publication number Publication date
CN113132742A (zh) 2021-07-16

Similar Documents

Publication Publication Date Title
CN107832329B (zh) 页面资源获取方法及终端设备
CN109597818A (zh) 数据更新方法、装置、存储介质和设备
CN110535861B (zh) 一种识别syn攻击行为中统计syn包数量的方法及装置
CN112433920B (zh) 一种埋点数据上报方法、装置、设备及介质
CN110247986A (zh) 一种文件传输方法、装置及电子设备
CN107146623B (zh) 基于人工智能的语音识别方法、装置和系统
CN111490947A (zh) 数据包发送方法、数据包接收方法、系统、设备及介质
CN116527593B (zh) 网络流量拥塞控制方法及相关装置
CN110324405A (zh) 消息发送方法、装置、系统及计算机可读存储介质
CN113014662A (zh) 数据处理方法及基于NVMe-oF协议的存储系统
CN113132742B (zh) 基于队列的双缓冲ai视频传输方法及相关设备
CN112925297A (zh) 自动驾驶算法验证方法、装置、设备、存储介质及产品
CN113852610A (zh) 报文处理方法、装置、计算机设备和存储介质
CN112235422B (zh) 数据处理方法、装置、计算机可读存储介质及电子装置
CN108063809B (zh) 机器设备数据采集方法以及采集系统
CN112819683B (zh) 图像处理方法、装置、计算机设备和存储介质
CN118012351A (zh) 基于远程存储协议的数据读写保序方法、装置、电子设备及存储介质
CN113746647A (zh) 数据传输方法、节点、电子设备及可读存储介质
CN113746924B (zh) 一种电网业务数据跨区传输方法及装置
CN111835801A (zh) 文件下载方法、装置、服务器、边缘设备、终端及介质
CN113626483B (zh) 一种填写表单的前端缓存方法、系统、设备及存储介质
CN117118877A (zh) 一种操作端控制方法、装置、计算机设备及存储介质
CN108140005B (zh) 在存储器系统协议中提供文件信息的系统及方法
CN112417022B (zh) 用于获取数据的方法、装置、终端及存储介质
CN111669431B (zh) 消息传输方法、装置、计算机设备和存储介质

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