我正在尝试创建一个像snapchat这样的应用程序,它在录制视频时应用面部滤镜,并在启用滤镜的情况下保存视频。我知道有像AR core和flutter_camera_ml_vision这样的软件包,但它们对我没有帮助。
我想提供面部滤镜,并在视频录制的时候在脸上应用它们,也保存视频与滤镜上的脸。
发布于 2020-12-26 11:47:27
不是最容易回答的问题,但是...
我会试一试,让我们看看事情会如何发展。首先,你应该填写一些关于问题中给出的陈述的更多细节,特别是你试图在这里说的话:
我知道有像AR core和flutter_camera_ml_vision这样的软件包,但它们对我没有帮助。
你是如何解决这个问题的,是什么让你说它对你没有帮助?
一开始..。
首先,让我们了解一些必要的基础知识,以便更好地了解您在必备知识领域的现状和水平:
那么,要创建类似Snapchat的过滤器用于实时视频录制,需要什么?
好的,当你使用任何应用程序以适当的方式对直播视频应用过滤器时,会有相当多的工作在幕后进行。
Snapchat使用他们多年来建立的内部软件,使用从多个数百万美元的公司收购中获得的技术,除了自己的努力之外,这些公司通常是专门从事计算机视觉和AR技术的公司,并且在过去的5-6年中稳步增长,令人印象深刻。
这不是你可以一个人“整夜”地拼凑在一起,然后期待好结果的东西。但是,有一些工具可以缓解一般的学习曲线,但这些工具还需要对所使用的基本概念和技术以及相当多的数学知识有深刻的理解。
技术弯路
好吧,我知道我在这里可能有点过头了,但这是基本的构建块,没有太多人意识到看似“基本”功能所需的实际计算量,所以请,TLDR;或者不,这是基本的东西。
要使用iPhone或安卓设备上的摄像头创建良好的实时捕捉过滤器,您可以使用AR,而且很可能会使用AR,正如您在最后提到的那样,但要意识到这是计算机视觉(CV)广泛领域的一个子集,它使用人工智能(AI)和机器学习(ML)的各种算法来完成以下主要任务:
仅分析阶段就需要来自AI领域不同部分的算法/技术的相当复杂的组合,这是视频,而不是单个静态图像文件,这必须随着人/摄像机的移动而不断更新,因此必须在毫秒范围内接近实时地完成。
我认为将计算机视觉的HOG (定向梯度直方图)和机器学习的SVMs (支持向量机/网络)相结合的不同实现仍然很常见。
面部标志的关键点检测这将定义某种效果/过滤器在多大程度上适应不同类型的面部特征,并检测眼镜、帽子等配件。在不同的文献中,也称为“面部关键点检测”、“面部特征检测”和其他变体。
嘿,伙计。我在颤动中要的AR,还记得吗?
是啊。我知道,我可能会有点忘乎所以。嗯,我的观点是,要创造出你所要求的东西,需要的东西比人们通常想象的要多得多。
但。如果Flutter是你选择的工具,我最好的建议是学习如何使用谷歌的Firebase工具套件Firebase Machine Learning和谷歌的MLKit提供的基于云的ML服务。
再加上一些AR特定的插件,比如ARCore Plugin,我相信如果你有正确的背景和态度,再加上很好的学习能力,你就能把这些东西拼凑起来。
希望这没有偏离你的核心问题太远,但据我所知,没有比我已经提到的更多的捷径了。
发布于 2021-01-13 00:19:46
你绝对可以使用flutter_camera_ml_vision插件和它的人脸识别功能,它可以为你提供面部标志的位置,比如鼻子,眼睛等,然后简单地将CameraPreview与CustomPaint(foregroundPainter: widget )堆叠在一起,在这个小部件中,你可以使用不同的标志作为坐标绘制滤镜,比如眼镜,胡须或任何你想要的在相机预览中面部的正确位置。
Google ML Kit也有人脸识别功能,可以生成地标,你可以为此编写自己的颤动插件。
您可以从实时摄像机预览中捕获帧,并重新格式化它们,然后将其作为字节缓冲区传输到ML套件或ML vision。我目前正在编写一个颤动插件的ML套件姿态检测与现场捕获,所以如果你有任何具体的问题,让我知道。
然后,您必须合并两个曲面,并以适当的格式保存到文件中。这对我来说是未知的领域,所以我不能提供这部分的任何细节。
https://stackoverflow.com/questions/65430782
复制相似问题