系统玩转OpenGL+AI,实现各种酷炫视频特效【完结15章】

笑面虎
• 阅读 131

系统玩转OpenGL+AI,实现各种酷炫视频特效【完结15章】 系统玩转OpenGL+AI,实现各种酷炫视频特效【完结15章】

视频课程分享——系统玩转OpenGL+AI,实现各种酷炫视频特效,已完结15章,附源码。

基于深度学习的AI技术分为两个阶段:模型训练 和 模型使用。

模型训练 模型训练是指使用大量的标注数据来训练一个深度神经网络,使其能够对输入数据进行正确的预测或分类。模型训练的过程包括以下几个步骤:

数据预处理:对原始数据进行清洗,归一化,增强,划分等操作,使其符合模型的输入要求。 网络搭建:根据任务的需求,选择合适的网络结构,如卷积神经网络,循环神经网络,生成对抗网络等,以及相应的参数,如层数,卷积核大小,激活函数,损失函数等。 网络训练:使用优化算法,如随机梯度下降,Adam等,不断更新网络的权重,使损失函数最小化,即模型的预测结果与真实标签的差距最小。 网络评估:使用一部分未参与训练的数据,如验证集或测试集,来评估模型的性能,如准确率,召回率,F1分数等,以及模型的泛化能力,即对未见过的数据的预测能力。

实现大眼特效的算法 通过前面介绍的MLKit或MediaPipe这类AI库,我们可以很轻松的定位人眼的位置。接下来咱们来了解一下实现大眼特效的算法。

关于大眼的算法有这样一篇论文, 其基本思想与我们之前讲的放大转场特效类似,我们只需以眼睛的中心点为中心,将靠近中心点的像素向外移动,即可得到放大的效果。 Radius表示的是人眼最大的取值范围,在上图中人眼的最大范围是P1到P3的距离。由于左右眼可能长度还不一样,因此应该分别取左右眼的Radius,再从中取最大值。 将上面的这些点弄清楚后,我们就可以将大眼特效的Shader代码写出来了,代码如下: ...

/** curPos: 当前采样纹理坐标 eyeCenterPos: 形变圆中心坐标 rMax: 形变作用圆半径 alpha: 缩放系数 */ vec2 newCoord(vec2 curPos, vec2 eyeCenterPos, float rMax, float alpha){ vec2 result = curPos;

// 计算当前纹理坐标到眼睛中心的距离,对应 r vec2 curImagePos = curPos * uImageSize;
float r = distance(curImgePos, eyeCenterPos);
if (r < rMax){ float k = 1.0 - pow(r / rMax - 1.0, 2.0) * alpha; result = eyeCenterPos + k * (curImagePos - eyeCenterPos); result = result / uImageSize; } return dCoord; }

void main(){ float disLeft = distance(leftEyeCoord_1, leftEyeCoord_2); float disRight = distance(rightEyeCoord_1, rightEyeCoord_2);

// 缩放圆作用半径rMax float rMax = max(disLeft,disRight);

float a = eyeWidth * 512.0 * 512.0/(width * height) / 100.0;

// aCoord是整副图像,
vec2 newCoord = newCoord(aCoord, left_eye_center, rMax, a); // 求左眼放大位置的采样点
newCoord = newCoord(newCoord, right_eye_center, rMax, a); // 求右眼放大位置的采样点
// 此newCoord就是大眼像素坐标值
gl_FragColor = texture2D(vTexture, newCoord);

}

OpenGL发展至今,已经有20余年,作为一个成熟并久负盛名的跨平台计算机图形应用程序接口规范,它被广泛使用在游戏、影视、军事、航空航天、地理、医学、机械设计,以及各类科学数据可视化等领域

OpenGL可以用来做什么?归纳一下,大概可以做一下几类事情:

视频、图形、图片处理 2D/3D游戏引擎开发 科学可视化 医学软件开发 CAD(计算机辅助技术) 虚拟实境(AR,VR) AI(人工智能)

OpenGL是一种图形应用程序编程接口(Application Programming Interface,API)。它是一种可以对图形硬件设备特性进行访问的软件库,OpenGL被设计为一个现代化的、硬件无关的接口,因此我们可以在不考虑计算机操作系统或窗口系统的前提下,在多种不同的图形硬件系统上,完全通过软件的方式实现OpenGL的接口。OpenGL自身并不包含任何执行窗口任务或者处理用户输入的函数,也没有提供任何用于表达三维物理模型,或者读取图像文件(例如PNG、JPEG文件)的操作,一个用来渲染图像的OpenGL程序需要执行的主要操作如下:

从OpenGL的几何图元中设置数据,用于构建形状 使用不同的着色器(shader)对输入的图元数据执行计算操作,判断它们的位置,颜色,以及其他渲染属性 将输入图元的数学描述转换为与屏幕位置对应的像素片元(fragment)。这一步也成为光栅化(rasterization),OpenGL的片元若最终渲染为图像,那它就是像素。 最后,针对光栅化过程产生的片元,执行片元着色器(fragment shader),从而决定这个片元的最终颜色和位置 如果有必要,还需要对每个片元执行一些额外的操作,例如判断片元对应的对象是否可见,或者将片元的颜色与当前屏幕位置的颜色进行融合

OpenGL是一个开放的三维图形软件包,它独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植;OpenGL可以与Visual C++紧密接口,便于实现机械手的有关计算和图形算法,可保证算法的正确性和可靠性;OpenGL使用简便,效率高。它具有七大功能: 1.建模:OpenGL图形库除了提供基本的点、线、多边形的绘制函数外,还提供了复杂的三维物体(球、锥、多面体、茶壶等)以及复杂曲线和曲面绘制函数。 2.变换:OpenGL图形库的变换包括基本变换和投影变换。基本变换有平移、旋转、缩放、镜像四种变换,投影变换有平行投影(又称正射投影)和透视投 影两种变换。其变换方法有利于减少算法的运行时间,提高三维图形的显示速度。 3.颜色模式设置:OpenGL颜色模式有两种,即RGBA模式和颜色索引(Color Index)。 4.光照和材质设置:OpenGL光有自发光(Emitted Light)、环境光(Ambient Light)、漫反射光(Diffuse Light)和高光(Specular Light)。材质是用光反射率来表示。场景(Scene)中物体最终反映到人眼的颜色是光的红绿蓝分量与材质红绿蓝分量的反射率相乘后形成的颜色。 5:纹理映射(Texture Mapping)。利用OpenGL纹理映射功能可以十分逼真地表达物体表面细节。 6:位图显示和图象增强图象功能除了基本的拷贝和像素读写外,还提供融合(Blending)、抗锯齿(反走样)(Antialiasing)和雾(fog)的特殊图象效果处理。以上三条可使被仿真物更具真实感,增强图形显示的效果。 7:双缓存动画(Double Buffering)双缓存即前台缓存和后台缓存,简言之,后台缓存计算场景、生成画面,前台缓存显示后台缓存已画好的画面。

点赞
收藏
评论区
推荐文章
笑面虎 笑面虎
5个月前
系统玩转OpenGL+AI,实现各种酷炫视频特效
系统玩转OpenGLAI,实现各种酷炫视频特效视频课程分享——系统玩转OpenGLAI,实现各种酷炫视频特效,附源码。大家下载学习。OpenGL(英语:OpenGraphicsLibrary,译名:开放图形库或者“开放式图形库”)是用于渲染2D、3D矢
笑面虎 笑面虎
5个月前
【完结9章】AI大语言模型 ChatGPT从0到1打造私人智能英语学习助手
【完结9章】AI大语言模型ChatGPT从0到1打造私人智能英语学习助手视频课程分享——AI大语言模型ChatGPT从0到1打造私人智能英语学习助手,完结19章。附源码下载。深度学习的子领域中有两个重要的概念:大型语言模型(LLMs)和生成式人工智能(Ge
赵颜 赵颜
4个月前
[完结15章]系统玩转OpenGL+AI,实现各种酷炫视频特效
网盘地址:https://pan.baidu.com/s/1bpo4xx6XXMUPiRFpnWqwA提取码:5lmj腾讯微云下载地址:https://share.weiyun.com/CVGckNTd密码:e58wuq视频特效人才紧缺、需求量大、薪资高,
何婆子 何婆子
3个月前
系统玩转OpenGL+AI,实现各种酷炫视频特效|网盘高清
系统玩转OpenGLAI,实现各种酷炫视频特效|网盘高清系统玩转OpenGLAI,实现各种酷炫视频特效download》//下栽のke:chaoxingit.com/2540/随着计算机图形技术的不断发展,OpenGL(开放图形库)和AI(人工智能)已
何婆子 何婆子
3个月前
系统玩转OpenGL+AI,实现各种酷炫视频特效|网盘高清
系统玩转OpenGLAI,实现各种酷炫视频特效|网盘高清download》chaoxingit.com/2540/玩转OpenGL与AI:创造炫目视频特效的奇妙世界引言在当今数字时代,视频特效已成为吸引观众眼球的关键之一。而通过将OpenGL与人工智能(
金旋 金旋
3个月前
知乎-AI大模型全栈工程师1期
//下仔のke:https://yeziit.cn/15068/AI模型是指使用人工智能技术构建的模型,用于模拟和预测现实世界中的各种问题和现象。AI模型通常基于大量的数据和算法,通过训练和学习来提高自身的性能和准确性。AI模型可以分为多种类型,包括但不限
笑面虎 笑面虎
3个月前
LLM大语言模型算法特训,带你转型AI大语言模型算法工程师
LLM大语言模型算法特训,带你转型AI大语言模型算法工程师给大家分享一套课程——LLM大语言模型算法特训,带你转型AI大语言模型算法工程师,源码PDF课件下载。大语言模型(LLM)是基于海量文本数据训练的深度学习模型。它不仅能够生成自然语言文本,还能够深
韦康 韦康
1个月前
系统玩转OpenGL+AI,实现各种酷炫视频特效|网盘高清
系统玩转OpenGLAI,实现各种酷炫视频特效|网盘高清download》itzcw.com/9126/系统玩转OpenGLAI:实现各种酷炫视频特效在当今数字媒体时代,视频特效已经成为了制作视频内容中不可或缺的一部分。而结合OpenGL和人工智能(A
马尚 马尚
1个月前
应用深度学习技术破解滑动验证码
要训练一个有效的深度学习模型来破解滑动验证码,首先需要大量的训练数据。这些数据包括滑动验证码的图片和对应的滑块位置。你可以通过爬虫技术从网站上收集这些数据,确保数据覆盖各种类型和难度的验证码。2.模型选择与训练在准备好数据后,接下来是选择合适的深度学习模型
光之守卫 光之守卫
1个月前
系统玩转OpenGL+AI,实现各种酷炫视频特效
系统玩转OpenGLAI,实现各种酷炫视频特效download》itzcw.com/9126/OpenGLAI的介绍OpenGL(OpenGraphicsLibrary)是一种用于渲染2D和3D矢量图形的跨平台图形库。它提供了一组函数,允许开发人员在不