CN117135440A - 视频处理方法及装置、计算机可读介质和电子设备 - Google Patents
视频处理方法及装置、计算机可读介质和电子设备 Download PDFInfo
- Publication number
- CN117135440A CN117135440A CN202210528554.3A CN202210528554A CN117135440A CN 117135440 A CN117135440 A CN 117135440A CN 202210528554 A CN202210528554 A CN 202210528554A CN 117135440 A CN117135440 A CN 117135440A
- Authority
- CN
- China
- Prior art keywords
- current
- video frame
- camera
- virtual camera
- camera parameters
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 21
- 238000000034 method Methods 0.000 claims abstract description 55
- 238000012545 processing Methods 0.000 claims abstract description 38
- 238000001514 detection method Methods 0.000 claims description 116
- 239000011159 matrix material Substances 0.000 claims description 36
- 230000009466 transformation Effects 0.000 claims description 32
- 230000008569 process Effects 0.000 claims description 21
- 230000007704 transition Effects 0.000 claims description 13
- 238000001914 filtration Methods 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims 1
- 230000001131 transforming effect Effects 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 12
- 230000003287 optical effect Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 11
- 238000009432 framing Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 101100134058 Caenorhabditis elegans nth-1 gene Proteins 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000003321 amplification Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000005251 gamma ray Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013016 damping Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Studio Devices (AREA)
Abstract
本公开提供一种视频处理方法、视频处理装置、计算机可读介质和电子设备,涉及图像处理技术领域。该方法包括:获取待处理视频中的当前视频帧,并对当前视频帧进行基于目标对象的运镜生成处理;在待处理视频中获取下一视频帧,并继续对下一视频帧进行基于目标对象的运镜生成处理,直至待处理视频结束。本公开通过预设虚拟相机不仅可以实现对目标对象的自动化拍摄,还可以模拟真实相机的机械转动等真实运镜效果。
Description
技术领域
本公开涉及图像处理技术领域,具体涉及一种视频处理方法、视频处理装置、计算机可读介质和电子设备。
背景技术
在科学技术飞速发展的当下,拍照或摄像已经成为人们日常生活的一部分。因此,越来越多的终端设备上都配置有摄像模组,例如,手机、平板电脑、笔记本电脑等。
相关技术中,为了实现对拍摄主体的拍摄,通常需要拍摄者采用跟随拍摄主体移动,手动转动摄像模组、手动调节摄像模组参数等方式实现对拍摄主体的拍摄。然而,这种拍摄方式完全依赖于拍摄者的调节,自动化程度较低。
发明内容
本公开的目的在于提供一种新的视频处理方法、视频处理装置、计算机可读介质和电子设备,进而至少在一定程度上提高对拍摄主体进行拍摄的自动化程度。
根据本公开的第一方面,提供一种视频处理方法,包括:获取待处理视频中的当前视频帧,并对当前视频帧进行基于目标对象的运镜生成处理;其中,基于目标对象的运镜生成处理包括:对当前视频帧进行目标对象检测得到对象检测结果,并基于对象检测结果确定当前视频帧对应的当前相机参数;其中,当前相机参数包括预设虚拟相机对应的虚拟相机参数;读取当前视频帧的前一视频帧对应的前一相机参数;其中,前一相机参数包括基于前一视频帧对应的对象检测结果确定的预设虚拟相机对应的虚拟相机参数;控制预设虚拟相机的虚拟相机参数从前一相机参数过渡至当前相机参数,以基于预设虚拟相机输出前一视频帧和当前视频帧对应的运镜视频;在待处理视频中获取下一视频帧,并继续对下一视频帧进行基于目标对象的运镜生成处理,直至待处理视频结束。
根据本公开的第二方面,提供一种视频处理装置,包括:运镜生成模块,用于获取待处理视频中的当前视频帧,并对当前视频帧进行基于目标对象的运镜生成处理;以及在待处理视频中获取下一视频帧,并继续对下一视频帧进行基于目标对象的运镜生成处理,直至待处理视频结束;其中,基于目标对象的运镜生成处理包括:对当前视频帧进行目标对象检测得到对象检测结果,并基于对象检测结果确定当前视频帧对应的当前相机参数;其中,当前相机参数包括预设虚拟相机对应的虚拟相机参数;读取当前视频帧的前一视频帧对应的前一相机参数;其中,前一相机参数包括基于前一视频帧对应的对象检测结果确定的预设虚拟相机对应的虚拟相机参数;控制预设虚拟相机的虚拟相机参数从前一相机参数过渡至当前相机参数,以基于预设虚拟相机输出前一视频帧和当前视频帧对应的运镜视频。
根据本公开的第三方面,提供一种计算机可读介质,其上存储有计算机程序3计算机程序被处理器执行时实现上述的方法。
根据本公开的第四方面,提供一种电子设备,其特征在于,包括:处理器;以及存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述的方法。
本公开的一种实施例所提供的视频处理方法,通过对当前视频帧进行目标对象检测得到对象检测结果,并根据对象检测结果确定基于当前视频帧中包括的目标对象确定的预设虚拟相机对应的当前相机参数,之后以当前视频帧的前一视频帧对应的前一相机参数为起始点,以当前相机参数为终止点,控制预设虚拟相机的虚拟相机参数从该起始点过渡至终止点,以基于预设虚拟相机输出前一视频帧和当前视频帧对应的运镜视频。通过预设虚拟相机不仅可以实现对目标对象的自动化拍摄,还可以模拟真实相机的机械转动等真实运镜效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了可以应用本公开实施例的一种示例性系统架构的示意图;
图2示意性示出本公开示例性实施例中一种视频处理方法的流程图;
图3示意性示出本公开示例性实施例中一种基于目标对象的运镜生成处理的方法的流程图;
图4示意性示出本公开示例性实施例中一种预设虚拟相机的主光轴示意图;
图5示意性示出本公开示例性实施例中一种基于对象检测结果确定当前视频帧对应的当前相机参数的方法的流程图;
图6示意性示出本公开示例性实施例中一种前一视频帧和当前视频帧只包括一个目标对象时主点位置过渡过程的示意图;
图7示意性示出本公开示例性实施例中一种对当前视频帧帧进行人脸检测得到的3个人脸框的示意图;
图8示意性示出本公开示例性实施例中一种基于图7所示的3个人脸框确定的外接边框的示意图;
图9示意性示出本公开示例性实施例中一种基于对象检测结果确定当前视频帧对应的当前相机参数的方法的流程图;
图10示意性示出本公开示例性实施例中一种8个目标对象的分布示意图;
图11示意性示出本公开示例性实施例中一种基于图10所示的8个目标对象确定的采集边界的示意图;
图12示意性示出本公开示例性实施例中一种基于预设虚拟相机输出前一视频帧和当前视频帧对应的运镜视频的方法的流程图;
图13示意性示出本公开示例性实施例中一种预设虚拟相机主光轴相对原始相机主光轴的旋转角度的示意图;
图14示意性示出本公开示例性实施例中一种越界检测的方法的流程图;
图15示意性示出本公开示例性实施例中另一种视频处理方法的流程图;
图16示意性示出本公开示例性实施例中视频处理装置的组成示意图;
图17示出了可以应用本公开实施例的一种电子设备的示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体3不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1示出了系统架构的示意图,该系统架构100可以包括终端110与服务器120。其中,终端110可以是智能手机、平板电脑、台式电脑、笔记本电脑等终端设备,服务器120泛指提供本示例性实施方式中视频处理相关服务的后台系统,可以是一台服务器或多台服务器形成的集群。终端110与服务器120之间可以通过有线或无线的通信链路形成连接,以进行数据交互。
在一种实施方式中,可以由终端110执行上述视频处理方法。例如,用户使用终端110拍摄待处理视频或者用户在终端110的相册中选取待处理视频后,由终端110对视频进行处理。
在一种实施方式中,可以由服务器120可以执行上述视频处理方法。例如,用户使用终端110拍摄待处理视频或者用户在终端110的相册中选取待处理视频后,终端110将待处理视频上传至服务器120,由服务器120对待处理视频进行处理,并向终端110返回处理结果。
由上可知,本示例性实施方式中的视频处理方法的执行主体可以是上述终端110或服务器120,本公开对此不做限定。
本公开的示例性实施方式还提供一种用于执行上述视频处理方法的电子设备,该电子设备可以是上述终端110或服务器120。一般的,该电子设备可以包括处理器与存储器,存储器用于存储处理器的可执行指令,处理器配置为经由执行可执行指令来执行上述视频处理方法。
本示例实施方式提供了一种视频处理方法。该视频处理方法可以应用于上述服务器120,也可以应用于上述终端110中的一个或多个,本示例性实施例中对此不做特殊限定。参考图2所示,该视频处理方法可以包括以下步骤S210至S220:
步骤S210,获取待处理视频中的当前视频帧,并对当前视频帧进行基于目标对象的运镜生成处理;
步骤S220,在待处理视频中获取下一视频帧,并继续对下一视频帧进行基于目标对象的运镜生成处理,直至待处理视频结束;
其中,基于目标对象的运镜生成处理包括:
对当前视频帧进行目标对象检测得到对象检测结果,并基于对象检测结果确定当前视频帧对应的当前相机参数;其中,当前相机参数包括预设虚拟相机对应的虚拟相机参数;
读取当前视频帧的前一视频帧对应的前一相机参数;其中,前一相机参数包括基于前一视频帧对应的对象检测结果确定的预设虚拟相机对应的虚拟相机参数;
控制预设虚拟相机的虚拟相机参数从前一相机参数过渡至当前相机参数,以基于预设虚拟相机输出前一视频帧和当前视频帧对应的运镜视频。
在本示例实施方式所提供的视频处理方法中,通过对待处理视频中的每一视频帧进行基于目标对象的运镜生成处理,可以生成每两个视频帧对应的运镜视频。由于前一相机参数和当前相机参数分别是基于前一视频帧和当前视频帧对应的对象检测结果确定的,因此可以实现对目标对象的自动化拍摄;同时,由于运镜视频是通过控制预设虚拟相机的虚拟相机参数由前一相机参数过渡至当前相机参数确定的,因此可以通过预设虚拟相机模拟真实相机的机械转动、镜头推近拉远、透视等效果。
下面,对于本示例实施方式的上述步骤进行更加详细的说明。
在步骤S210中,获取待处理视频中的当前视频帧,并对当前视频帧进行基于目标对象的运镜生成处理。
其中,待处理视频中的当前视频帧可以包括基于终端配置的相机实时采集的视频帧。例如,某一终端正在通过配置的相机采集视频,可以从当前采集到的视频帧序列中获取一帧作为当前视频帧;还可以包括历史采集并存储的视频包括的视频帧或者从其他终端获取的视频包括的视频帧。例如,用户可以从终端相册中选择一个视频作为待处理视频,并获取待处理视频中的视频帧作为当前视频帧。
其中,目标对象可以包括待处理视频中的任意拍摄主体,例如,目标对象可以是人脸、人体、动物、汽车等,本公开对此不做特殊限定。
在步骤S220中,在待处理视频中获取下一视频帧,并继续对下一视频帧进行基于目标对象的运镜生成处理,直至待处理视频结束。
其中,参照图3所示,基于目标对象的运镜生成处理包括以下步骤S310至S330:
在步骤S310中,对当前视频帧进行目标对象检测得到对象检测结果,并基于对象检测结果确定当前视频帧对应的当前相机参数。
其中,当前相机参数包括基于对象检测结果确定的预设虚拟相机对应的虚拟相机参数。
在步骤S320中,读取当前视频帧的前一视频帧对应的前一相机参数。
其中,前一相机参数包括基于前一视频帧对应的对象检测结果确定预设虚拟相机对应的虚拟相机参数,且与当前相机参数为相互对应的参数,以保证后续步骤中前一相机参数与当前相机参数过渡的对应性。具体的,假设当前相机参数包括某一预设虚拟相机对应的虚拟相机参数A和B的取值a1和b1,则前一相机参数则包括该预设虚拟相机对应的虚拟相机参数A和B的取值a2和b2。
在步骤S330中,控制预设虚拟相机的虚拟相机参数从前一相机参数过渡至当前相机参数,以基于预设虚拟相机输出前一视频帧和当前视频帧对应的运镜视频。
在一示例性实施例中,在前一相机参数和当前相机参数均包括多种虚拟相机参数时,控制预设虚拟相机的虚拟相机参数进行过渡时需要分别针对每种虚拟相机参数分别进行控制。例如,在上例中,当前相机参数包括a1和b1,前一相机参数包括a2和b2,此时应该控制预设虚拟相机的虚拟相机参数A从a2过渡至a1,控制预设虚拟相机的虚拟相机参数B从b2过渡至b1。
需要说明的是,在确定上述虚拟相机参数之前,需要针对待处理视频提前创建预设虚拟相机。在创建预设虚拟相机时,通常需要设置初始状态下预设虚拟相机的默认参数,这些默认参数用于在对待处理视频中的第一个当前视频帧进行处理之前,确定预设虚拟相机的状态。其中,默认参数可以包括预设虚拟相机在初始状态下的光心位置,主点位置,焦距,以及输出画面的尺寸等,本公开对此不做特殊限定。其中,预设虚拟相机可以为针孔相机模型,也可以采用其他相机模型。
其中,光心位置指预设虚拟相机的放置位置,即镜头中心所在位置;主点位置指预设虚拟相机主光轴(镜头中心与镜面垂直的轴线)的指向,即主光轴与当前视频帧所在像素平面的交点;焦距指平行光入射时从透镜光心到光聚集之焦点的距离;输出画面的尺寸是指通过预设虚拟相机采集画面的长度和宽度,通常小于或等于待处理视频的长度和宽度(即拍摄待处理视频的原始相机采集画面的长度和宽度)。参照图4所示,预设虚拟相机的主光轴指向通常为预设虚拟相机的聚焦位置,因此通过光心位置和主点位置即可确定预设虚拟相机的聚焦位置。
其中,预设虚拟相机的光心位置通常可以设置在拍摄待处理视频时所采用的原始相机的光心位置,以保证预设虚拟相机生成的运镜视频与待处理视频的视角相同。需要说明的是,预设虚拟相机的光心位置也可以根据应用场景进行不同的设置。例如,针对某些需要特定视角的应用场景,可以将预设虚拟相机的光心位置设置为该特定视角对应的位置。
由于不同视频帧中包括的目标对象、目标对象数量、目标对象所在位置等目标对象的属性均可能存在不同,在这种情况下,为了实现针对目标对象的自动拍摄,需要基于对目标对象的对象检测结果确定当前相机参数和前一相机参数。
在一示例性实施例中,为了实现针对目标对象的自动拍摄,当前相机参数和前一相机参数可以包括预设虚拟相机的主点位置。此时,参照图5所示,基于对象检测结果确定当前视频帧对应的当前相机参数时,可以包括以下步骤S510至S540:
在步骤S510中,基于对象检测结果确定当前视频帧中包括的目标对象的对象数量。
在一示例性实施例中,在当前视频帧中包括的目标对象的数量不同时,为了能够针对不同数量的目标对象进行拍摄,需要采用不同策略确定当前主点位置,以保证所有目标对象都在预设虚拟相机采集的画面范围内,避免生成的运镜视频中出现目标对象丢失的情况。
在步骤S520中,在对象数量等于0时,将当前视频帧的中心确定为当前主点位置。
在一示例性实施例中,在当前视频帧中没有目标对象,即目标对象数量为0时,可以直接以当前视频帧的中心为当前主点位置,以避免后续主点位置过渡时,在各个方向上的过渡速度差别过大。例如,在对象数量等于0时,若将当前视频帧的左上角任意一个坐标作为当前主点位置,若下一视频帧确定的主点位置为右下角,则相对主点位置为左下角或右上角而言,生成的运镜视频中模拟的机械转动速度更快。
具体的,当前视频帧的中心可以基于以下公式(1)进行计算:
其中,C表示当前主点位置,woriginal和horiginal分别表示当前视频帧的长度和宽度。
需要说明的是,在一些特定应用场景中,可能需要各个方向上的运镜效果速度不同,因此可以根据需求设定对象数量等于0时的当前主点位置,本公开对此不做特殊限定。
在步骤S530中,在对象数量等于1时,在对象检测结果中获取目标对象对应的对象中心坐标,并将对象中心坐标确定为当前主点位置。
在一示例性实施例中,在当前视频帧中仅包括1个目标对象,即对象数量等于1时,为了保证针对目标对象的拍摄,可以直接获取对象检测结果中目标对象对应的对象中心坐标,然后将对象中心坐标作为当前主点位置。在前一视频帧和当前视频帧中都只包括一个目标对象时,可以通过将对象中心坐标作为主点位置,使得预设虚拟相机的主点位置由如图6所示的前一主点位置过渡至当前主点位置,以使预设虚拟相机发生转动(主光轴从前一主光轴位置转动至当前主光轴位置),进而实现基于预设虚拟相机生成相机随目标对象转动的运镜效果。
在步骤S540中,在对象数量大于1时,在对象检测结果中获取各目标对象的对象位置信息,并基于多个对象位置信息确定当前主点位置。
在一示例性实施例中,在当前视频帧中包括的对象数量大于1时,为了保证所有目标对象都能够被预设虚拟相机采集,需要根据各目标对象的对象位置信息确定当前主点位置。
在一示例性实施例中,对象位置信息可以包括目标对象的对象中心坐标。此时,可以基于预设坐标方向对对象中心坐标进行排序,得到中心坐标序列,然后计算中心坐标序列中第一中心坐标和最后一个中心坐标的均值坐标,并将均值坐标确定为当前主点位置。其中,预设坐标方向可以包括横坐标方向(即从左到右的方向)、纵坐标方向(即从上到下的方向)等。
例如,对当前视频帧进行目标对象检测时,检测到多个目标对象,则可以按照从左到右的顺序对所有目标对象的对象中心坐标进行排序,然后取最左侧和最右侧的目标对象的对象中心坐标计算平均值得到均值坐标,然后将该均值坐标作为当前主点位置。具体的,均值坐标可以基于以下公式(2)进行计算:
其中,C表示当前主点位置;F1和Fn分别表示最左侧的目标对象的对象中心坐标和最右侧的目标对象的对象中心坐标。
进一步的,为了避免单一坐标方向排序导致另一方向上的目标对象不在预设虚拟相机采集画面的范围内,例如,按照从左到右的顺序对所有目标对象的对象中心坐标进行排序时,可能存在过于靠上或者过于靠下的目标对象不在预设虚拟相机采集画面的范围内的情况,可以基于所有目标对象对应的对象框的位置确定当前主点位置。具体的,在对象位置信息包括目标对象对应的对象框的位置时,可以基于多个对象框的位置计算多个对象框对应的外接边框,然后将外接边框的中心坐标确定为当前主点位置。
其中,外接边框的形状可以根据应用场景不同进行不同的设定,可以与对象框的形状相同,也可以与对象框的形状不同,本公开对此不做特殊限定。
例如,在目标对象为人脸时,假设对某一个当前视频帧进行人脸检测可以得到如图7所示的3个人脸框,此时可以基于3个人脸框计算得到如图8所示的外接边框(设定形状为矩形),然后将该外接边框的中心坐标确定为当前主点位置。
在一示例性实施例中,在当前视频帧中包括的对象数量大于1时,还可以通过确定主对象和副对象的方式实现在针对多个目标对象进行拍摄的同时,有偏向的对特定目标对象进行聚焦的效果。具体的,在对象位置信息包括目标对象的对象中心坐标时,可以先在多个目标对象中确定主对象和副对象,然后基于预设权重计算主对象对应的主对象中心坐标和副对象对应的副对象中心坐标的加权平均坐标,并将加权平均坐标确定为当前主点位置。
其中,在确定主对象和副对象时,可以通过多种方式确定。例如,可以通过用户手动选定主对象或者副对象,并对应的将其他目标对象确定为副对象或主对象的方式;再如,可以将待处理视频中第一个进入画面的目标对象作为主对象,并将后进入画面的目标对象作为副对象;又如,可以将待处理视频中进入画面时间最长的目标对象作为主对象,并将其他目标对象作为副对象;又如,还可以通过声纹识别特定目标对象为主对象,其他目标对象为副对象,本公开对此不做特殊限定。
其中,预设权重包括针对主对象设定的权重和针对副对象设定的权重,通过将针对主对象设定的权重设置为更大的值可以使得预设虚拟相机更加聚焦于主对象。
例如,在基于预设权重计算主对象对应的主对象中心坐标和副对象对应的副对象中心坐标的加权平均坐标时,可以通过以下公式(3)和公式(4)进行计算:
γ1+γ2=1 公式(4)
其中,C表示当前主点位置,Flead表示主对象中心坐标;表示第i个副对象对应的副对象中心坐标;γ1表示针对主对象设定的权重;γ2表示针对副对象设定的权重。其中,γ1越大,则预设虚拟相机则更加聚焦于主对象。
通过对当前视频帧和前一视频帧进行目标对象识别,进而确定当前主点位置和前一主点位置,可以识别场景中所有的目标对象,并基于目标对象对预设虚拟相机的取景进行调度,进而实现预设虚拟相机的取景跟随目标对象移动,模拟真实相机机械转动的运镜效果。
在一示例性实施例中,为了实现针对目标对象的自动拍摄,当前相机参数和前一相机参数还可以包括预设虚拟相机的焦距。此时,参照图9所示,基于对象检测结果确定当前视频帧对应的当前相机参数时,可以包括以下步骤S910至S940:
在步骤S910中,基于对象检测结果确定当前视频帧中包括的目标对象的对象数量。
在一示例性实施例中,在当前视频帧中包括的目标对象的数量不同时,为了能够针对不同数量的目标对象进行拍摄,需要采用不同策略确定当前焦距,以保证所有目标对象都在预设虚拟相机采集的画面范围内,避免生成的运镜视频中出现目标对象丢失的情况。
在步骤S920中,在对象数量等于0时,将当前焦距设置为预设焦距。
在一示例性实施例中,在当前视频帧中没有目标对象,即目标对象数量为0时,可以直接以预设焦距作为当前焦距。其中,预设焦距可以包括预设虚拟相机的默认焦距,也可以根据具体应用场景进行不同的设定,本公开对此不做特殊限定。
在步骤S930中,在对象数量等于1时,在对象检测结果中获取目标对象对应的对象距离和对象框的尺寸,并根据对象距离和对象框的尺寸确定当前焦距。
在一示例性实施例中,在当前视频帧中仅包括1个目标对象,即对象数量等于1时,为了保证针对目标对象的拍摄,可以在对象检测结果中获取该目标对象对应的对象距离,以及目标对象对应的对象框尺寸,并根据对象距离和对象框尺寸确定当前焦距。
其中,对象框的尺寸可以包括对象框的长度或宽度,也可以包括基于对象框的长度和/或宽度计算得到的能够表征目标对象在当前视频帧中占位大小的尺寸,本公开对此不做特殊限定。例如,对象框的尺寸可以是基于对象框的长度和宽度计算得到的对象框的对角线的长度。
在一示例性实施例中,对象距离可以是基于传感器采集的真实距离,也可以是根据对象检测结果中包括的数据估计得到的,本公开对此不做特殊限定。例如,可以根据对象框的尺寸大小估计目标对象的对象距离,具体估计时,可以通过机器学习模型、通过先验方式确定的函数模型等方式进行估计。
在一示例性实施例中,在根据对象距离和对象框的尺寸确定当前焦距时,可以先根据对象距离在预设映射关系中确定该对象距离对应的缩放参数,然后将该缩放参数与对象框的尺寸相乘,并将得到的乘积作为当前焦距。其中,预设映射关系用于表征对象距离和缩放参数之间对应关系,预设映射关系可以是预设函数、预设表格等,本公开对此不做特殊限定。
在通过缩放参数与对象框的尺寸的乘积确定当前焦距时,通常情况下,目标对象的对象距离越小,可以将对应的缩放参数设置为更小的值,以避免目标对象在预设虚拟相机的取景画面中占比过大;反之,目标对象的对象距离越大,可以将对应的缩放参数设置为更大的值,以避免目标对象在预设虚拟相机的取景画面中占比过小。
需要说明的是,确定的当前焦距应该在预设虚拟相机焦距可取范围之内,以避免预设虚拟相机取景错误或取景失败的情况。若当前焦距在预设虚拟相机焦距可取范围之外,则可以对当前焦距进行修正。例如,在当前焦距大于预设虚拟相机焦距可取范围时,可以将当前焦距修正为预设虚拟相机可取的最大焦距;在当前焦距小于预设虚拟相机焦距可取范围时,可以将当前焦距修正为预设虚拟相机可取的最小焦距。此外,还可以选择其它的修正方式对当前焦距进行修正,本公开对此不做特殊限定。
在步骤S940中,在对象数量大于1时,基于对象检测结果在目标对象中确定边缘对象,并基于边缘对象确定当前焦距。
在一示例性实施例中,在当前视频帧中包括的对象数量大于1时,为了保证所有目标对象都能够被预设虚拟相机采集,可以基于对象检测结果在目标对象中确定边缘对象,并基于边缘对象确定当前焦距。其中,边缘对象是指目标对象中,位置更靠近当前视频帧外边缘的对象。例如,参照图10所示,当前视频帧中包括8个目标对象。其中,目标对象1、3、5、8分别更靠近于当前视频帧上边缘、下边缘、左边缘和右边缘,则可以将目标对象1、3、5、8确定为边缘对象。
在一示例性实施例中,在基于边缘对象确定当前焦距时,为了保证所有目标对象都能够被预设虚拟相机采集,可以基于边缘对象的对象框对应的外边缘确定一个采集边界,该采集边界中包含了所有目标对象,因此可以基于该采集边界确定预设虚拟相机的取景至少要刚好包含采集边界中包括内容。此时,由于预设虚拟相机输出画面的尺寸通常是固定的,因此需要确定使预设虚拟相机的取景可以完全包含采集边界中包括内容的最小焦距,并将该最小焦距确定为当前焦距。其中,采集边界的形状可以根据应用场景不同进行不同的设定,可以与对象框的形状相同,也可以与对象框的形状不同,本公开对此不做特殊限定。
例如,在采集边界的形状为矩形时,如图10所示的8个目标对象,可以确定如图11所示的采集边界。
进一步的,通过针对采集边界设定预设放大策略,可以在保证所有目标对象都能够被预设虚拟相机采集的同时,避免最外侧的目标对象出现在预设虚拟相机取景边缘的情况。具体的,在基于边缘对象确定了采集边界后,可以基于预设放大策略对确定的采集边界进行进一步放大,进而使得边缘对象在一定程度上远离采集边界。
其中,预设放大策略可以包括用于对采集边界进行放大的任意策略,本公开对此不做特殊限定。例如,预设放大策略可以包括预设放大参数。具体的,分别计算预设放大参数与原采集边界的尺寸的乘积,得到放大后的放大边界的尺寸,然后将与原采集边界的中心重叠的放大边界作为新的采集边界;再如,在采集边界为矩形时,预设放大策略可以包括预设尺寸阈值。具体的,可以将原采集边界的每个边向靠近当前视频帧外边缘的方向移动预设尺寸阈值,并且将移动后的边延长至相交,得到新的采集边界。
在一示例性实施例中,在控制预设虚拟相机的虚拟相机参数从前一相机参数过渡至当前相机参数,以基于预设虚拟相机输出前一视频帧和当前视频帧对应的运镜视频时,参照图12所示,可以包括以下步骤S1210至步骤S1220:
在步骤S1210中,通过时间滤波的方式控制预设虚拟相机的虚拟相机参数从前一相机参数经过至少一个中间相机参数过渡至当前相机参数。
在一示例性实施例中,在通过时间滤波的方式进行控制时,可以先以前一相机参数为初始值,以当前相机参数为目标值,基于预设系数先计算运镜视频中第一中间画面对应的中间相机参数;然后以第一中间画面对应的中间相机参数为初始值,以当前相机参数为目标值,继续基于预设系数计算运镜视频中第二中间画面对应的中间相机参数,如此不断循环,得到多个中间画面对应的中间相机参数。
具体的,在当前相机参数和前一相机参数包括主点位置时,上述时间滤波方式中,基于预设系数计算中间相机参数的过程可以通过以下公式(5)和公式(6)表示:
C中间值=αC初始值+βC目标值 公式(5)
α+β=1 公式(6)
其中,C中间值表示中间相机参数即中间主点位置;C初始值表示作为初始值的主点位置;C目标值表示作为目标值的主点位置,即当前相机参数对应的当前主点位置;α和β分别为预设系数,α越大,得到的运镜视频针对目标对象的跟随性越强,β越大,得到的运镜视频平滑性越强。其中,C初始值的取值根据计算的中间相机参数的次序确定,即在计算第n个中间相机参数时,以第n-1个中间相机参数为C初始值的取值。特殊地,在计算第1个中间相机参数时,以前一相机参数即前一主点位置为C初始值的取值。
具体的,在当前相机参数和前一相机参数包括焦距时,上述时间滤波方式中,基于预设系数计算中间相机参数的过程可以通过公式(6)和以下公式(7)表示:
f中间值=αf初始值+βf目标值 公式(7)
其中,f中间值表示中间相机参数即中间焦距;f初始值表示作为初始值的焦距;f目标值表示作为目标值的焦距,即当前相机参数对应的当前焦距。其中,f初始值的取值根据计算的中间相机参数的次序确定,即在计算第n个中间相机参数时,以第n-1个中间相机参数为f初始值的取值。特殊地,在计算第1个中间相机参数时,以前一相机参数即前一焦距为f初始值的取值。
在步骤S1220中,控制预设虚拟相机基于前一相机参数、至少一个中间相机参数,和当前相机参数输出对应的输出图像,以生成前一视频帧和当前视频帧对应的运镜视频。
在一示例性实施例中,在得到多个中间相机参数后,可以控制预设虚拟相机基于前一相机参数、至少一个中间相机参数和当前相机参数分别输出前一相机参数对应的输出图像,各中间相机参数对应的输出图像以及当前相机参数对应的输出图像,并按照前一相机参数,计算中间相机参数的次序,当前相机参数的顺序,对所有输出图像进行排序,生成前一视频帧和当前视频帧对应的运镜视频。
例如,假设共计算了3个中间相机参数,第1次、第2次、第3次计算出的中间相机参数为分别为中间相机参数1、中间相机参数2和中间相机参数3。此时,预设虚拟相机基于前一相机参数输出运镜视频帧1,基于中间相机参数1、中间相机参数2和中间相机参数3分别输出运镜视频帧2、运镜视频帧3、运镜视频帧4,基于当前相机参数输出运镜视频帧5,然后按照前一相机参数-中间相机参数1-中间相机参数2-中间相机参数3-当前相机参数的顺序,对输出图像进行排序,得到的运镜视频为:运镜视频帧1-运镜视频帧2-运镜视频帧3-运镜视频帧4-运镜视频帧5。
在一示例性实施例中,在控制预设虚拟相机基于前一相机参数、中间相机参数或者当前相机参数输出对应的输出图像时,可以通过计算投影变换矩阵的方式实现。具体的,可以先计算相机参数对应的投影变换矩阵,然后基于投影变换矩阵对当前视频帧进行投影变换,进而输出相机参数对应的输出图像。
其中,投影变换矩阵的过程可以通过以下公式(8)计算:
其中,H表示投影变换矩阵;Kvirtual表示预设虚拟相机的内参数矩阵;R表示预设虚拟相机相对拍摄待处理视频的原始相机的旋转矩阵;Korigial表示拍摄待处理视频的原始相机的内参数矩阵。
其中,预设虚拟相机的内参数矩阵Kvirtual可以通过以下公式(9)表示:
其中,fvirtual表示预设虚拟相机的焦距,wvirtual和hvirtual分别表示预设虚拟相机输出画面的长度和宽度。
其中,在相机参数不包括焦距时,fvirtual的取值可以是创建预设虚拟相机对应的预设焦距;在相机参数包括焦距时,fvirtual则根据投影变换矩阵对应的相机参数取值。例如,在计算前一相机参数对应的投影变换矩阵时,fvirtual则取前一焦距;在计算某一中间相机参数对应的投影变换矩阵时,fvirtual则取该中间相机参数对应的中间焦距;在计算当前相机参数对应的投影变换矩阵时,fvirtual则取当前焦距。
其中,拍摄待处理视频的原始相机的内参数矩阵Korigial可以通过以下公式(10)表示:
其中,forigial表示拍摄待处理视频的原始相机的焦距,worigial和horigial分别表示拍摄待处理视频的原始相机输出画面的长度和宽度。
其中,预设虚拟相机相对拍摄待处理视频的原始相机的旋转矩阵R可以通过以下公式(11)计算:
R=cosθI+(1-cosθ)nnT+sinθn^ 公式(11)
其中,θ表示预设虚拟相机主光轴相对原始相机主光轴的旋转角度(如图13所示),I表示单位矩阵,^为向量反对称的转换符号。
其中,预设虚拟相机主光轴相对原始相机主光轴的旋转角度θ可以通过以下公式(12)至公式(14)计算:
其中,和分别表示预设虚拟相机主光轴绕z轴旋转时,预设虚拟相机主光轴相对原始相机主光轴的旋转量在x坐标方向和y坐标方向上的旋转分量(如图13所示);(cx,cy)表示预设虚拟相机的主点位置;forigial表示拍摄待处理视频的原始相机的焦距;worigial和horigial分别表示拍摄待处理视频的原始相机输出画面的长度和宽度;n表示转轴的单位向量。
其中,在相机参数不包括主点位置时,(cx,cy)的取值可以是创建预设虚拟相机对应的预设主点位置;在相机参数包括主点位置时,(cx,cy)则根据投影变换矩阵对应的相机参数取值。例如,在计算前一相机参数对应的投影变换矩阵时,(cx,cy)则取前一主点位置;在计算某一中间相机参数对应的投影变换矩阵时,(cx,cy)则取该中间相机参数对应的中间主点位置;在计算当前相机参数对应的投影变换矩阵时,fvirtual则取当前主点位置。
在一示例性实施例中,若仅基于对象检测结果确定当前相机参数,很可能出现预设虚拟相机输出的输出图像上的像素点在拍摄当前视频帧的原始相机中的对应点超出当前视频帧范围的情况。
具体的,对于预设虚拟相机像素平面点和原始相机像素平面点存在如以下公式(15)所示的对应关系:
uorigial=Huvirtual 公式(15)
其中,uvirtual=[uvirtual vvirtual 1]T表示预设虚拟相机像素平面点,uorigial=[uorigial vorigial 1]T表示原始相机像素平面点,H表示投影变换矩阵。若出现计算出的(uvirtual,vorigial)不在当前视频帧的范围内时,则表示出现了预设虚拟相机输出的输出图像上的像素点在拍摄当前视频帧的原始相机中的对应点超出当前视频帧范围的情况。
因此,在一示例性实施例中,在控制预设虚拟相机的虚拟相机参数从前一相机参数过渡至当前相机参数之前,可以先进行越界检测。具体的,参照图14所示,可以包括以下步骤S1410和步骤S1420:
在步骤S1410中,基于当前视频帧的尺寸对当前相机参数进行越界检测。
在一示例性实施例中,如上述,若出现计算出的(uvirtual,vorigial)不在当前视频帧的范围内时,则表示出现了预设虚拟相机输出的输出图像上的像素点在拍摄当前视频帧的原始相机中的对应点超出当前视频帧范围的情况,因此可以基于当前视频帧的尺寸对当前相机参数进行越界检测。
在一示例性实施例中,在基于当前视频帧的尺寸对当前相机参数进行越界检测时,可以先计算当前相机参数对应的当前投影变换矩阵,并基于当前投影变换矩阵对当前视频帧进行投影变换,以输出当前相机参数对应的越界检测图像,然后在越界检测图像中确定是否存在任意一个像素点的坐标超出基于当前视频帧的尺寸确定的检测范围。若存在,则确定越界检测结果为越界;反之,则确定述越界检测结果为未越界。
例如,假设以当前视频帧的左上角为原点坐标,通过公式(15)可以计算得到越界检测图像。若出现计算出的uvirtual≤0或uorigial≥woriginal或vorigial≤0或vorigial≥horiginal时,则表示存在坐标超出检测范围的像素点,即越界检测结果为越界。
在步骤S1420中,在越界检测结果为越界时,对当前相机参数进行更新以使当前相机参数对应的越界检测结果为未越界。
在一示例性实施例中,在越界检测结果为越界,可以对当前相机参数进行更新,以使当前相机参数对应的越界检测结果为未越界。具体的,在当前相机参数包括的参数种类不同时,可以根据不同的更新方式进行更新。
在一示例性实施例中,在当前相机参数包括当前主点位置时,可以通过确定最易越界点对当前主点位置进行更新。具体的,可以先基于当前主点位置在当前视频帧和预设虚拟相机取景画面中确定最易越界点,然后基于最易越界点计算使得预设虚拟相机取景画面未超出该最易越界点的目标主点位置,并将当前主点位置更新为目标主点位置。
具体的,假设当前主点位置位于当前视频帧的右下角,此时,当前视频帧和预设虚拟相机取景画面的最易越界点为右下顶点。因此可以基于当前视频帧的右下顶点坐标和预设虚拟相机取景画面的右下顶点坐标,计算使得预设虚拟相机取景画面的右下顶点恰好不超出当前视频帧的右下顶点的目标主点位置,并将当前主点位置更新为目标主点位置,以使当前相机参数对应的越界检测结果为未越界。
在一示例性实施例中,可以将预设虚拟相机取景画面的右下顶点坐标作为uvirtual,将当前视频帧的右下顶点坐标作为uorigial带入公式(15)中,计算使得预设虚拟相机取景画面的右下顶点恰好不超出当前视频帧的右下顶点的投影变换矩阵,然后基于公式(9)至公式(14)反推使得预设虚拟相机取景画面的右下顶点恰好不超出当前视频帧的右下顶点的(cx,cy),即目标主点位置,并将当前主点位置更新为该目标主点位置。
在一示例性实施例中,在当前相机参数包括当前焦距时,可以以当前焦距为初始值,基于预设步长对初始值进行调整,以计算使得越界检测结果为未越界的目标焦距,然后将当前焦距更新为目标焦距。
具体的,假设当前焦距为f1,可以以f1为初始值,基于预设步长不断调整焦距(在越界检测的过程中,通常为减小焦距,以缩小预设虚拟相机取景画面包括的范围),确定使得越界检测结果为未越界的最大焦距作为目标焦距,并将当前焦距更新为该目标焦距。
进一步的,在当前相机参数包括当前焦距时,为了避免由于取景画面包括的范围缩小导致的一些目标对象未包含在取景画面中,可以优先通过更新当前主点位置的方式避免越界。具体的,在当前相机参数仅包括当前焦距时,预设虚拟相机的主点位置默认为预设主点位置,此时可以将预设虚拟相机的主点位置设置为目标主点位置,并在基于更新主点位置的方式无法实现使越界检测结果为未越界的情况下,再使用更新当前焦距的方式;在当前相机参数同时包括当前主点位置和当前焦距时,可以优先使用对当前主点位置进行更新的方式避免越界,若基于更新主点位置的方式无法实现使越界检测结果为未越界的情况下,再使用更新当前焦距的方式。
进一步的,为了使得预设虚拟相机可以取景的范围更大,可以将通过广角相机进行待处理视频的拍摄。其中,广角相机可以包括视角范围在100度以上的相机。
此外,在一示例性实施例中,为了避免待处理视频中的各视频帧存在畸变导致输出的运镜视频也存在畸变的情况,可以提前对待处理视频中的各视频帧机械能畸变校正。
以下以目标对象为人脸,当前相机参数包括当前主点位置和当前焦距为例,参照图15对本公开实施例的技术方案进行详细阐述:
步骤S1501,通过广角相机采集当前视频帧,并对当前视频帧进行畸变矫正;
步骤S1503,对当前视频帧进行人脸检测,获取所有检测到的人脸中心在图像中的2D坐标,记为Fi=[xi yi]T,i=1,2,3…n;同时获取各人脸对应的人脸框位置;
步骤S1505,创建预设虚拟相机,基于当前视频帧计算该预设虚拟相机对应的当前主点位置(cx,cy)和当前焦距fvirtual;
其中,预设虚拟相机和广角相机共光心,预设虚拟相机建模为针孔相机模型,其内参数矩阵如公式(9)所示。
根据步骤S1503得到的人脸检测结果确定当前主点位置。
具体的,当前视频帧未检测到人脸,即广角相机的视野中没有人物或者人脸检测失败时,基于公式(1)确定当前主点位置;当前视频帧检测到单个人脸时,将单个人脸的人脸中心在当前视频帧中的2D坐标作为当前主点位置;当前视频帧检测到多个人脸时,按从左到右的顺序对所有的人脸进行排序,并基于公式(2)确定当前主点位置。
根据步骤S1503得到的人脸检测结果确定当前焦距。
具体的,当前视频帧未检测到人脸,即广角相机的视野中没有人物或者人脸检测失败时,将当前焦距设置为预设焦距;当前视频帧检测到单个人脸时,当前焦距fvirtual=λwface,fmin≤fvirtual≤fmax;其中wface为检测到的人脸框的宽度,λ为缩放参数;fmin和fmax分别为预设虚拟相机焦距的上下界。通过人脸框的宽度来估计人脸的距离,距离越近λ越小,以避免人脸占比过大;距离越远λ越大,以避免人脸占比过小;当前视频帧检测到多个人脸时,预设虚拟相机的输出画面需要尽量包含所有的人脸,且在有条件的情况下在人脸外侧留下适当的空间,因此可以根据最外侧的人脸框和预设尺寸阈值确定采集边界,进而计算出当前焦距。
步骤S1507,对当前主点位置(cx,cy)和当前焦距fvirtual进行越界检测,以对当前主点位置(cx,cy)和当前焦距fvirtual进行更新;
具体的,基于公式(8)至公式(14)计算投影变换矩阵,并基于公式(15)的计算结果进行越界检测,并在越界检测结果为越界时,对当前主点位置(cx,cy)和当前焦距fvirtual进行更新。
步骤S1509,对更新后的当前主点位置(cx,cy)和当前焦距fvirtual进行运镜平滑处理,得到多个中间相机参数;
具体的,基于公式(5)至公式(7)计算多个中间相机参数,以通过时间域滤波的方式控制预设虚拟相机光轴的旋转和焦距的调整。
步骤S1511,分别基于前一相机参数、多个中间相机参数、更新后的当前相机参数生成投影变换矩阵,对当前视频帧进行投影变换得到对应的输出图像,并将各相机参数对应的输出图像按照顺序排列,得到前一视频帧和当前视频帧对应的运镜视频。
具体的,基于前一相机参数,多个中间相机参数和更新后的当前相机参数生成新的投影变换矩阵H,进而得到预设虚拟相机的输出图像,将其作为待处理视频的实时显示图像。
综上,本示例性实施方式可以实现以下效果:1、可以识别人脸,通过预设虚拟相机输出的运镜视频会跟随人脸移动;2、生成的运镜视频包含旋转(横纵)和缩放两个动作,带有透视效果的变化,可以模拟真实相机机械转动的效果;3、可以识别场景中的所有人脸并对预设虚拟相机的取景进行调度;4、可以识别预设虚拟相机取景画面外的新加入的人脸并调整预设虚拟相机取景画面使其包含该人脸;5、运镜视频带有加速度的变化,阻尼顺滑。本示例性实施方式利用广角相机采集视频,通过人脸检测算法识别视频中的人脸,并通过设定预设虚拟相机的相机参数使得预设虚拟相机的主光轴指向单个人脸中心或基于多个人脸确定的中心,实现预设虚拟相机实时跟随人物旋转的效果;同时,可以根据人脸在画面中的占比实时变焦,实现“智能运镜”的效果。
需要注意的是,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
进一步的,参考图16所示,本公开的示例性实施方式中提供一种视频处理装置16003包括运镜生成模块1610。其中:
运镜生成模块1610可以用于获取待处理视频中的当前视频帧,并对当前视频帧进行基于目标对象的运镜生成处理;以及在待处理视频中获取下一视频帧,并继续对下一视频帧进行基于目标对象的运镜生成处理,直至待处理视频结束。
其中,基于目标对象的运镜生成处理包括:对当前视频帧进行目标对象检测得到对象检测结果,并基于对象检测结果确定当前视频帧对应的当前相机参数;其中,当前相机参数包括预设虚拟相机对应的虚拟相机参数;读取当前视频帧的前一视频帧对应的前一相机参数;其中,前一相机参数包括基于前一视频帧对应的对象检测结果确定的预设虚拟相机对应的虚拟相机参数;控制预设虚拟相机的虚拟相机参数从前一相机参数过渡至当前相机参数,以基于预设虚拟相机输出前一视频帧和当前视频帧对应的运镜视频。
在一示例性实施例中,在当前相机参数包括当前主点位置时,运镜生成模块1610可以用于基于对象检测结果确定当前视频帧中包括的目标对象的对象数量;在对象数量等于0时,将当前视频帧的中心确定为当前主点位置;在对象数量等于1时,在对象检测结果中获取目标对象对应的对象中心坐标,并将对象中心坐标确定为当前主点位置;在对象数量大于1时,在对象检测结果中获取各目标对象的对象位置信息,并基于多个对象位置信息确定当前主点位置。
在一示例性实施例中,对象位置信息包括目标对象的对象中心坐标,运镜生成模块1610可以用于基于预设坐标方向对对象中心坐标进行排序,得到中心坐标序列;计算中心坐标序列中第一个中心坐标和最后一个中心坐标的均值坐标,并将均值坐标确定为当前主点位置。
在一示例性实施例中,对象位置信息包括目标对象的对象中心坐标,运镜生成模块1610可以用于在多个目标对象中确定主对象和副对象;基于预设权重计算主对象对应的主对象中心坐标和副对象对应的副对象中心坐标的加权平均坐标,并将加权平均坐标确定为当前主点位置。
在一示例性实施例中,对象位置信息包括目标对象对应的对象框的位置,运镜生成模块1610可以用于基于多个对象框的位置计算多个对象框对应的外接边框,并将外接边框的中心坐标确定为当前主点位置。
在一示例性实施例中,在当前相机参数包括当前焦距时,运镜生成模块1610可以用于基于对象检测结果确定当前视频帧中包括的目标对象的对象数量;在对象数量等于0时,将当前焦距设置为预设焦距;在对象数量等于1时,在对象检测结果中获取目标对象对应的对象距离和对象框的尺寸,并根据对象距离和对象框的尺寸确定当前焦距;在对象数量大于1时,基于对象检测结果在目标对象中确定边缘对象,并基于边缘对象确定当前焦距。
在一示例性实施例中,运镜生成模块1610可以用于基于预设映射关系确定对象距离对应的缩放参数;计算对象框的尺寸和缩放参数的乘积,并将乘积确定为当前焦距。
在一示例性实施例中,运镜生成模块1610可以用于基于边缘对象的对象框对应的外边缘在当前视频帧上确定采集边界;基于采集边界计算当前焦距。
在一示例性实施例中,运镜生成模块1610可以用于通过时间滤波的方式控制预设虚拟相机的虚拟相机参数从前一相机参数经过至少一个中间相机参数过渡至当前相机参数;控制预设虚拟相机基于前一相机参数、至少一个中间相机参数,和当前相机参数输出对应的输出图像,以生成前一视频帧和当前视频帧对应的运镜视频。
在一示例性实施例中,运镜生成模块1610可以用于计算相机参数对应的投影变换矩阵;基于投影变换矩阵对当前视频帧进行投影变换,以输出相机参数对应的输出图像。
在一示例性实施例中,运镜生成模块1610还可以用于基于当前视频帧的尺寸对当前相机参数进行越界检测;在越界检测结果为越界时,对当前相机参数进行更新以使当前相机参数对应的越界检测结果为未越界。
在一示例性实施例中,运镜生成模块1610可以用于计算当前相机参数对应的当前投影变换矩阵,并基于当前投影变换矩阵对当前视频帧进行投影变换,以输出当前相机参数对应的越界检测图像;在越界检测图像中存在任意一个像素点的坐标超出基于当前视频帧的尺寸确定的检测范围时,确定越界检测结果为越界。
在一示例性实施例中,当前相机参数包括当前主点位置,运镜生成模块1610可以用于基于当前主点位置确定最易越界点;基于最易越界点计算使得越界检测结果为未越界的目标主点位置,并将当前主点位置更新为目标主点位置。
在一示例性实施例中,当前相机参数包括当前焦距,运镜生成模块1610可以用于以当前焦距为初始值,基于预设步长对初始值进行调整,以计算使得越界检测结果为未越界的目标焦距;将当前焦距更新为目标焦距。
上述装置中各模块的具体细节在方法部分实施方式中已经详细说明,未披露的细节内容可以参见方法部分的实施方式内容,因而不再赘述。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
本公开的示例性实施方式中还提供一种用于实现视频处理方法的电子设备,其可以是图1中的终端设备110或服务器120。该电子设备至少包括处理器和存储器,存储器用于存储处理器的可执行指令,处理器配置为经由执行可执行指令来执行视频处理方法。
下面以图17中的移动终端1700为例,对本公开实施例中的电子设备的构造进行示例性说明。本领域技术人员应当理解,除了特别用于移动目的的部件之外,图17中的构造也能够应用于固定类型的设备。在另一些实施方式中,移动终端1700可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或软件和硬件的组合实现。各部件间的接口连接关系只是示意性示出,并不构成对移动终端1700的结构限定。在另一些实施方式中,移动终端1700也可以采用与图17不同的接口连接方式,或多种接口连接方式的组合。
如图17所示,移动终端1700具体可以包括:处理器1710、内部存储器1721、外部存储器接口1722、通用串行总线(Universal Serial Bus,USB)接口1730、充电管理模块1740、电源管理模块1741、电池1742、天线1、天线2、移动通信模块1750、无线通信模块1760、音频模块1770、扬声器1771、受话器1772、麦克风1773、耳机接口1774、传感器模块1780、显示屏1790、摄像模组1791、指示器1792、马达1793、按键1794以及用户标识模块(subscriberidentification module,SIM)卡接口1795等。其中传感器模块1780可以包括深度传感器17801、压力传感器17802、陀螺仪传感器17803等。
处理器1710可以包括一个或多个处理单元,例如:处理器1710可以包括应用处理器(Application Processor,AP)、调制解调处理器、图形处理器(Graphics ProcessingUnit,GPU)、图像信号处理器(Image Signal Processor,ISP)、控制器、视频编解码器、数字信号处理器(Digital Signal Processor,DSP)、基带处理器和/或神经网络处理器(Neural-Network Processing Unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。在一些实施例中,可以通过处理器1710实现对当前视频帧的基于目标对象的运镜生成处理。
NPU为神经网络(Neural-Network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现移动终端1700的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。在一些实施例中,可以通过NPU实现基于机器学习模型对对象距离进行估计的过程。
移动终端1700通过GPU、显示屏1790及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏1790和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器1710可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。在一些实施例中,可以通过GPU、显示屏1790及应用处理器等实现对运镜视频的显示。
移动终端1700可以通过ISP、摄像模组1791、视频编解码器、GPU、显示屏1790及应用处理器等实现拍摄功能。其中,ISP用于处理摄像模组1791反馈的数据;摄像模组1791用于捕获静态图像或视频;数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号;视频编解码器用于对数字视频压缩或解压缩,移动终端1700还可以支持一种或多种视频编解码器。在一些实施例中,可以通过ISP、摄像模组1791、视频编解码器、GPU、显示屏1790及应用处理器等实现拍摄待处理视频的过程。
深度传感器17801用于获取景物的深度信息。在一些实施例中,深度传感器可以设置于摄像模组1791,可以通过深度传感器直接采集对象距离。
压力传感器17802用于感受压力信号,可以将压力信号转换成电信号。陀螺仪传感器17803可以用于确定移动终端1700的运动姿态。此外,还可以根据实际需要在传感器模块1780中设置其他功能的传感器,例如气压传感器、磁传感器、加速度传感器、距离传感器、接近光传感器、指纹传感器、温度传感器、触摸传感器、环境光传感器、骨传导传感器等。
此外,本公开的示例性实施方式还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤,例如可以执行图2、图3、图5、图9、图12、图14和图15中任意一个或多个步骤。
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
此外,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限定。
Claims (17)
1.一种视频处理方法,其特征在于,包括:
获取待处理视频中的当前视频帧,并对所述当前视频帧进行基于目标对象的运镜生成处理;
其中,所述基于目标对象的运镜生成处理包括:
对所述当前视频帧进行目标对象检测得到对象检测结果,并基于所述对象检测结果确定所述当前视频帧对应的当前相机参数;其中,所述当前相机参数包括预设虚拟相机对应的虚拟相机参数;
读取所述当前视频帧的前一视频帧对应的前一相机参数;其中,所述前一相机参数包括基于所述前一视频帧对应的对象检测结果确定的所述预设虚拟相机对应的虚拟相机参数;
控制所述预设虚拟相机的虚拟相机参数从所述前一相机参数过渡至当前相机参数,以基于所述预设虚拟相机输出所述前一视频帧和所述当前视频帧对应的运镜视频;
在所述待处理视频中获取下一视频帧,并继续对下一视频帧进行所述基于目标对象的运镜生成处理,直至所述待处理视频结束。
2.根据权利要求1所述的方法,其特征在于,在所述当前相机参数包括当前主点位置时,所述基于所述对象检测结果确定所述当前视频帧对应的当前相机参数,包括:
基于所述对象检测结果确定所述当前视频帧中包括的所述目标对象的对象数量;
在所述对象数量等于0时,将所述当前视频帧的中心确定为所述当前主点位置;
在所述对象数量等于1时,在所述对象检测结果中获取所述目标对象对应的对象中心坐标,并将所述对象中心坐标确定为所述当前主点位置;
在所述对象数量大于1时,在所述对象检测结果中获取各所述目标对象的对象位置信息,并基于多个所述对象位置信息确定所述当前主点位置。
3.根据权利要求2所述的方法,其特征在于,所述对象位置信息包括目标对象的对象中心坐标;
所述基于多个所述对象位置信息确定所述当前主点位置,包括:
基于预设坐标方向对所述对象中心坐标进行排序,得到中心坐标序列;
计算所述中心坐标序列中第一个中心坐标和最后一个中心坐标的均值坐标,并将所述均值坐标确定为所述当前主点位置。
4.根据权利要求2所述的方法,其特征在于,所述对象位置信息包括目标对象的对象中心坐标;
所述基于多个所述对象位置信息确定所述当前主点位置,包括:
在多个所述目标对象中确定主对象和副对象;
基于预设权重计算所述主对象对应的主对象中心坐标和所述副对象对应的副对象中心坐标的加权平均坐标,并将所述加权平均坐标确定为所述当前主点位置。
5.根据权利要求2所述的方法,其特征在于,所述对象位置信息包括目标对象对应的对象框的位置;
所述基于多个所述对象位置信息确定所述当前主点位置,包括:
基于多个所述对象框的位置计算多个所述对象框对应的外接边框,并将所述外接边框的中心坐标确定为所述当前主点位置。
6.根据权利要求1所述的方法,其特征在于,在所述当前相机参数包括当前焦距时,所述基于所述对象检测结果确定所述当前视频帧对应的当前相机参数,包括:
基于所述对象检测结果确定所述当前视频帧中包括的所述目标对象的对象数量;
在所述对象数量等于0时,将所述当前焦距设置为预设焦距;
在所述对象数量等于1时,在所述对象检测结果中获取所述目标对象对应的对象距离和对象框的尺寸,并根据所述对象距离和所述对象框的尺寸确定所述当前焦距;
在所述对象数量大于1时,基于所述对象检测结果在所述目标对象中确定边缘对象,并基于所述边缘对象确定所述当前焦距。
7.根据权利要求6所述的方法,其特征在于,所述根据所述对象距离和所述对象框的尺寸确定所述当前焦距,包括:
基于预设映射关系确定所述对象距离对应的缩放参数;
计算所述对象框的尺寸和所述缩放参数的乘积,并将所述乘积确定为所述当前焦距。
8.根据权利要求6所述的方法,其特征在于,所述基于所述边缘对象确定所述当前焦距,包括:
基于所述边缘对象的对象框对应的外边缘在所述当前视频帧上确定采集边界;
基于所述采集边界计算所述当前焦距。
9.根据权利要求1所述的方法,其特征在于,所述控制所述预设虚拟相机的虚拟相机参数从所述前一相机参数过渡至当前相机参数,以基于所述预设虚拟相机输出所述前一视频帧和所述当前视频帧对应的运镜视频,包括:
通过时间滤波的方式控制所述预设虚拟相机的虚拟相机参数从所述前一相机参数经过至少一个中间相机参数过渡至当前相机参数;
控制所述预设虚拟相机基于所述前一相机参数、至少一个所述中间相机参数,和所述当前相机参数输出对应的输出图像,以生成所述前一视频帧和所述当前视频帧对应的运镜视频。
10.根据权利要求9所述的方法,其特征在于,控制所述预设虚拟相机基于相机参数输出对应的输出图像,包括:
计算所述相机参数对应的投影变换矩阵;
基于所述投影变换矩阵对所述当前视频帧进行投影变换,以输出所述相机参数对应的输出图像。
11.根据权利要求1所述的方法,其特征在于,在所述控制所述预设虚拟相机的虚拟相机参数从所述前一相机参数过渡至当前相机参数之前,所述方法还包括:
基于所述当前视频帧的尺寸对所述当前相机参数进行越界检测;
在所述越界检测结果为越界时,对所述当前相机参数进行更新以使所述当前相机参数对应的越界检测结果为未越界。
12.根据权利要求11所述的方法,其特征在于,所述基于所述当前视频帧的尺寸对所述当前相机参数进行越界检测,包括:
计算所述当前相机参数对应的当前投影变换矩阵,并基于所述当前投影变换矩阵对所述当前视频帧进行投影变换,以输出所述当前相机参数对应的越界检测图像;
在所述越界检测图像中存在任意一个像素点的坐标超出基于所述当前视频帧的尺寸确定的检测范围时,确定所述越界检测结果为越界。
13.根据权利要求11所述的方法,其特征在于,所述当前相机参数包括当前主点位置;
所述对所述当前相机参数进行更新以使所述当前相机参数对应的越界检测结果为未越界,包括:
基于所述当前主点位置确定最易越界点;
基于所述最易越界点计算使得所述越界检测结果为未越界的目标主点位置,并将所述当前主点位置更新为所述目标主点位置。
14.根据权利要求11所述的方法,其特征在于,所述当前相机参数包括当前焦距;
所述对所述当前相机参数进行更新以使所述当前相机参数对应的越界检测结果为未越界,包括:
以所述当前焦距为初始值,基于预设步长对所述初始值进行调整,以计算使得所述越界检测结果为未越界的目标焦距;
将所述当前焦距更新为所述目标焦距。
15.一种视频处理装置,其特征在于,包括:
运镜生成模块,用于获取待处理视频中的当前视频帧,并对所述当前视频帧进行基于目标对象的运镜生成处理;以及在所述待处理视频中获取下一视频帧,并继续对下一视频帧进行所述基于目标对象的运镜生成处理,直至所述待处理视频结束;
其中,所述基于目标对象的运镜生成处理包括:
对所述当前视频帧进行目标对象检测得到对象检测结果,并基于所述对象检测结果确定所述当前视频帧对应的当前相机参数;其中,所述当前相机参数包括预设虚拟相机对应的虚拟相机参数;
读取所述当前视频帧的前一视频帧对应的前一相机参数;其中,所述前一相机参数包括基于所述前一视频帧对应的对象检测结果确定的所述预设虚拟相机对应的虚拟相机参数;
控制所述预设虚拟相机的虚拟相机参数从所述前一相机参数过渡至当前相机参数,以基于所述预设虚拟相机输出所述前一视频帧和所述当前视频帧对应的运镜视频。
16.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至14中任一项所述的方法。
17.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210528554.3A CN117135440A (zh) | 2022-05-16 | 2022-05-16 | 视频处理方法及装置、计算机可读介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210528554.3A CN117135440A (zh) | 2022-05-16 | 2022-05-16 | 视频处理方法及装置、计算机可读介质和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117135440A true CN117135440A (zh) | 2023-11-28 |
Family
ID=88849501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210528554.3A Pending CN117135440A (zh) | 2022-05-16 | 2022-05-16 | 视频处理方法及装置、计算机可读介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117135440A (zh) |
-
2022
- 2022-05-16 CN CN202210528554.3A patent/CN117135440A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9692959B2 (en) | Image processing apparatus and method | |
CN111105450A (zh) | 用于视差估计的电子装置和方法 | |
CN111105367B (zh) | 人脸畸变校正方法、装置、电子设备及存储介质 | |
CN112686824A (zh) | 图像校正方法、装置、电子设备和计算机可读介质 | |
CN111311532B (zh) | 图像处理方法及装置、电子设备、存储介质 | |
CN110611767B (zh) | 图像处理方法、装置和电子设备 | |
CN113630549B (zh) | 变焦控制方法、装置、电子设备和计算机可读存储介质 | |
CN113658065B (zh) | 图像降噪方法及装置、计算机可读介质和电子设备 | |
CN111723707A (zh) | 一种基于视觉显著性的注视点估计方法及装置 | |
CN111325798A (zh) | 相机模型纠正方法、装置、ar实现设备及可读存储介质 | |
WO2024193061A1 (zh) | 图像处理方法及装置、计算机可读存储介质和电子设备 | |
KR20190067438A (ko) | 이미지를 제공하기 위한 방법 및 이를 지원하는 전자 장치 | |
CN112991208B (zh) | 图像处理方法及装置、计算机可读介质和电子设备 | |
CN113205011A (zh) | 图像掩膜确定方法及装置、存储介质和电子设备 | |
CN113902636A (zh) | 图像去模糊方法及装置、计算机可读介质和电子设备 | |
CN116055895B (zh) | 图像处理方法及其装置、芯片系统和存储介质 | |
CN110363132B (zh) | 活体检测方法、装置、电子设备及存储介质 | |
CN116934591A (zh) | 多尺度特征提取的图像拼接方法、装置、设备及存储介质 | |
WO2023023960A1 (zh) | 图像处理及神经网络的训练方法和装置 | |
CN117135440A (zh) | 视频处理方法及装置、计算机可读介质和电子设备 | |
CN112950516B (zh) | 图像局部对比度增强的方法及装置、存储介质及电子设备 | |
CN114463213A (zh) | 视频处理方法、视频处理装置、终端及存储介质 | |
CN113538269A (zh) | 图像处理方法及装置、计算机可读存储介质和电子设备 | |
CN113610724A (zh) | 图像优化方法及装置、存储介质及电子设备 | |
CN113362260A (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 |