自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(170)
  • 资源 (8)
  • 问答 (1)
  • 收藏
  • 关注

原创 GPU硬件加速提升渲染流畅度

DrawFrameTask是一个用来执行渲染任务的Task.​​​​​​​。RenderThread在渲染下一帧时,会调用CanvasContext::prepareTree将Displaylist同步到RenderThread线程,在内部实现中会先调用AnimationContext->startFrame进行动画显示的准备工作,然后同步Displaylist,再调用AnimationContext->runRemainingAnimations执行剩余的还未完成的动画​​​​​​​。

2024-12-26 03:35:45 1034

原创 结合源码和Perfetto分析Android渲染机制

整体上介绍渲染流程上面已经提到过不止一次,不清楚可以再回看下.熟悉渲染流程对于App开发者有什么帮助, 可以从三个方面思考:1.输入层: 减少不必要的View#invalidate和View#requestLayout直接或间接的调用, 减少页面层级和使用更高效的控件2. 处理层: 解耦数据,逻辑和渲染,数据上采用异步获取组装或拆装,预加载或者懒加载;渲染上充分利用RenderThread和GPU,熟悉不同系统回调和复用机制;逻辑上有更多的时间和精力专注于业务逻辑和创新.

2024-12-11 04:45:48 944

原创 音视频开发之旅(104) -DiT原理与源码分析

随着问生图和问生视频的进一步发展, 新的项目不断推出, 比如: SD3 Flux和Sora等, 而它们都是采用DiT(Diffusion Transformer)架构,那么DiT相比潜扩散模型(LDM)的UNet有什么优势?架构简化: UNet采用Encoder-Decoder结构,通过下采样和上采样在多个分辨率进行计算处理,通过跳跃连接传递特征,而DiT采用纯Transformer替代了DiT,可以在单一分辨率上进行特征处理.

2024-11-19 23:47:34 1082

原创 音视频开发之旅(103) -人物一致性之EcomID

EcomID结合了PuLID和InstantID的优点,基于SDXL底座模型,根据单张参考图,生成符合文本描述,背景与前景一致性,精准的面部关键点控制,真实且ID一致性图像EcomID 优势:人物还原度,换脸可控性都很好, 欠缺:基于SDXL而不是Flux,对文本的理解以及场景生成能力上可能不如Flux_PuLID。

2024-11-17 18:56:41 1425

原创 音视频开发之旅(102)-ID一致性之PuLID原理及PuLID_Flux应用

1. 背景与问题2. PuLID网络结构和原理3. 效果对比与应用场景4. ComfyUI_Pulid_Flux的应用实践5. 源码分析6. 资料。

2024-11-16 02:36:31 1375

原创 音视频开发之旅(101)-In-Context LoRA生成人物&风格一致性的电影分镜图集

In-Context LoRA(IC-LoRA)是基于Flux训练的一类lora模型,和常规LoRA的一个大的区别在于,训练集上,它把20-100张相关联的图片拼接在一起,对应的文字描述也拼接在一起,然后使用ai-toolkit进行LoRA训练, 实现一次性生成多张风格和ID一致且内容相关联的图像集,作者发布了10个IC-LoRA的预训练模型,支持电影分镜头照,人物一致的人像,字体设计,图案设计等.3.b站视频:https://www.bilibili.com/video/BV1LqmYYCEVb。

2024-11-13 21:55:14 1384

原创 音视频开发之旅(100)-图像超分增强之构建退化模型

随机打乱(Degradation shuffle)是该退化模型提出的一种策略,将包含 B_iso(各向同性高斯模糊),B_aniso(各向异性高斯模糊),D_s(比例因子为s的下采样操作),N_G(高斯噪声),N_JPEG(JPEG压缩)和N_S(相机传感器噪声)的退化序列随机打乱.这个随机打乱策略,大幅的扩展了退化空间.传统的退化模型,通过 下采样,加噪以及模糊进行得到对应的LR图片.如下面公式所示,x为HR图片,K为高斯卷积,s为下采样的倍速,n为添加的噪声。

2024-11-08 09:13:03 867

原创 音视频开发之旅(99)-LoRA原理、源码解析与应用

1. 背景与问题2.LoRA的原理3. 源码解析4. SD中LoRA应用5. 资料。

2024-11-02 13:29:40 954

原创 音视频开发之旅(98) -潜扩散模型(Latent Diffusion Model)原理及源码解析

1.背景2. 潜扩散模型(Latent Diffusion Model)原理3. 应用场景4. 推理源码解析5. 资料。

2024-10-27 08:39:59 1082

原创 音视频开发之旅(97) - 多模态之LLava

1. 数据集构建2. LLava网络结构3. 源码分析4. 资料LLava使用视觉编码器(CLIP-VIT)和大语言模型(LLama)构建多模态大模型,通过GPT-4生成的数据样本进行指令微调.

2024-10-23 00:01:35 1249

原创 音视频开发之旅(96) - 文生图背后的扩散模型(Diffusion Model)原理及源码解析

生成模型(Generative Model)是机器学习领域的一个重要分支,用于从训练数据中学习数据的概率分布,从而生成新的、与训练数据相似的数据。它的目标是通过学习训练数据的分布 ( p(x) ),来生成逼真的样本。在生成任务中,我们见证了多种模型的崛起与发展,从早期的变分自编码器(VAE)到风靡一时的生成对抗网络(GAN),再到近年来表现突出的扩散模型(Diffusion Model),这些模型对比如下图所示。

2024-10-17 08:27:36 877

原创 音视频开发之旅(88) - 视频画质评测算法之Dover

在技术分支,保留技术失真,淡化美学影响,为此作者设计了技术试图(ST),引入了片段(有随机裁剪的patch拼接而成), 对视频帧进行分网格化处理,每个网格中取出连续的32*32像素作为一个patch,它丢弃了视频帧大部分内容,拼接的视图也破坏了原有的构图关系,严重降低了美学的影响. 在时间上采用连续帧采样保留时间失真.默认配置是 技术分支的训练和推理是取视频的3个片段,每个片段32帧,帧间隔为2,每帧的大小为7*7的网格,每个网格32*32的大小;对于这些分不开的因素,将它们保留在两个分支中.

2024-10-07 18:05:41 1180

原创 音视频开发之旅(95)-基于多模态的画质评测算法Q-Align

Q-A LIGN 基于多模态模型mPLUG-Owl-2(具有出色的视觉感知能力以及良好的语言理解能力),模型结构中除了将图像转换为嵌入的视觉编码器之外,还引入了一个额外的视觉抽象器,可以进一步的显著的减少了每张图像的token数量(1024 → 64)。因此,如果将分数作为 LMMs 的学习目标,它们需要首先学习输出分数,然后学习如何准确评分。模拟对人类评分的后处理,例如,“一般” 被转换为分数 3,“差” 被转换为 1,MOS 值通过转换后的分数及每个级别的频率fli的加权平均值计算得出的。

2024-09-21 00:13:13 838

原创 音视频开发之旅(94)-多模态之Blip-2

如果基于LLM进行finetune微调,直接将单模态的模型加入到多模态的联合训练 可能会出现灾难性遗忘的问题。将图像Transformer输出的Query representation(图像查询表征)Z 与 文本Transformer的文本表征 T 进行对齐,其中T是[CLS]的输出向量,由于Z包含多个输出向量(每个Query一个共有,Q-Former网络中有个32个Query,每个的维度768维),首先计算每个Query输出与t之间的相似度,然后选择最高的一个做为图像文本相似度。

2024-09-17 10:44:34 1606

原创 音视频开发之旅(93)-图像超分增强之Real-ESRGAN

1、背景和问题2、高清-低清 数据集构建3、Real-ESRGAN模型结构4、源码分析5、不足与局限性6、资料。

2024-09-13 20:39:52 1726

原创 音视频开发之旅(92)-多模态Clip论文解读与源码分析

1. 背景和问题2. CLIP模型结构3. 实验效果4. 源码分析5. CLIP的局限性和不足6. 资料。

2024-09-07 07:17:55 1291

原创 音视频开发之旅(91)-Swin-Transformer论文解读与源码分析

为了避免Window增强, 作者巧妙的采用对特征图进行移位,分别在水平和垂直维度对内容进行roll翻滚(即上/左面的行/列 roll到最下/右面的行/列),把window降低到4个, 但在计算新的Window的局部注意力机制时,原本不同window的内容不应该参与到QKV的计算,为此作者又引入了Mask的方式,这个确实太叼了,代码实现也很巧妙. 通过relative_position_bias_table(相对位置偏移表)relative_position_index(相对位置索引)来计算。

2024-09-03 23:09:06 1358 1

原创 音视频开发之旅(90)-Vision Transformer论文解读与源码分析

需要注意的是:如果改变图像的输入大小,ViT不会改变patchs的大小,patchs的数量会发生变化,之前学习的pos_embed就维度对不上了,通常ViT采用插值的方式来解决这个问题,但效果不好,另外一篇论文给出了说明和解决措施 https://arxiv.org/pdf/2102.10882,有兴趣可以进一步研究下。12.Vision Transformer(VIT)代码分析 https://blog.youkuaiyun.com/qq_38683460/article/details/127346916。

2024-09-01 09:35:16 1239

原创 音视频开发之旅(89) - Transformer论文解读和源码解析

1.模型思想2.Transformer模型架构3.Attention机制4.位置编码5.代码实现与解析6.资料。

2024-09-01 09:29:57 1075

原创 音视频开发之旅(87)- 视频画质评测算法之VSFA

提取的内容感知特征维度很高, 会使得后面的GRU门控循环单元的训练困难,为此使用全连接层进行降维,其中Wfx和bfx为全连接层参数,降维后的xt(1,2...,T)被送到门控循环单元GRU,将GRU中隐藏状态视为整合后的特征,当前隐藏状态ht根据当前的输入xt和前一个隐藏状态ht-1计算而来。在第 t 帧构建一个当前质量元素 mt,使用后几帧的加权质量分数,其中质量差的帧分配较大的权重,其中 V_next = {t,t+1,···,min(t+τ,T)}是相关帧的索引集。

2024-08-15 06:07:08 812

原创 音视频开发之旅(86)- 图像分类--ResNet网络解析

Resnet创新的引入了残差学习(Residual learning), 对于每一个残差块(Residual Block),输入不仅传递到下一层,还通过跳跃连接(skip connection)加到后面几层的输出上,这样,层不是直接学习输出,而是学习输入和输出的差值(残差),这有助于缓解梯度消失/爆炸的问题。通过跳跃连接,即使网络很深,在反向传播时梯度也可以通过这些直接连接传递到较低的层,从而保证网络的稳定性,有助于加快网络的收敛。接下来我们继续学习输出深度学习相关内容,1. Resnet解决的问题。

2024-07-27 00:10:29 780

原创 音视频开发之旅(85)- 图像分类-VGG模型解析

4.VGG网络详解及感受野的计算 https://www.bilibili.com/video/BV1q7411T7Y6/?堆叠多个3×3的卷积核来替代大尺度卷积核,减少所需参数:通过堆叠2个3×3的卷积核替代5×5的卷积核,堆叠3个3×3的卷积核替代7×7的卷积核,两者之间拥有相同的感受野。6.VGG模型解析 https://github.com/huaweicloud/ModelArts-Lab/wiki/VGG%E6%A8%A1%E5%9E%8B%E8%A7%A3%E6%9E%90。

2024-07-26 00:17:15 1118

原创 音视频开发之旅(84)-图像画质评测与归因

1. 图像画质评测的应用场景2. 画质评测的方法3. 低画质图像归因4. 画质增强的方法5. 资料。

2024-04-10 07:15:37 1165

原创 音视频开发之旅(83)- 腾讯音乐开源高质量唇形同步模型--MuseTalk

​​​​​​​。

2024-04-07 01:43:10 1557 2

原创 移动端深度学习开源框架调研

支持卷积神经网络,支持多输入和多分支结构,可计算部分分支无任何第三方库依赖,不依赖 BLAS/NNPACK 等计算框架纯C++实现,跨平台,支持 android ios 等ARM NEON 汇编级良心优化,计算速度极快精细的内存管理和数据结构设计,内存占用极低支持多核并行计算加速,ARM big.LITTLE cpu 调度优化支持基于全新低消耗的 vulkan api GPU 加速整体库体积小于 700K,并可轻松精简到小于 300K可扩展的模型设计,支持8bit 量化。

2024-04-06 00:56:31 1982 1

原创 音视频开发之旅(81)- 图片&视频“黑边”检测与去除

1.“黑边“的场景2. 二值化--单一颜色边缘的图像3. canny边缘检测+霍夫直线变换--处理负责的边缘图像4. 性能优化5. 资料在页面展示中,如果图片/视频有黑边,比较影响体验,我我们今天实现下对图片/视频进行黑边检测。检测到黑边的信息之后,使用ffmpeg或者opencv进行裁剪即可实现黑边的去除即可。

2024-04-05 01:10:56 1648

原创 音视频开发之旅(80)- AI数字人-腾讯开源AniPortrait-音频驱动的肖像动画

这两天腾讯开源了其音频驱动的肖像视频的项目AniPortrait,它也实现了类似功能:音频驱动、参考视频表情动作驱动,或者通过预先生成的pose关键点视频来驱动。Reference Pose Image: 参考图像中人物姿势的一个标准表示,用于帮助系统理解参考帧中的人物姿势。在第二阶段,这些关键点将被用于生成最终的视频。7. Project: 将复杂的3D面部数据转换为2D平面上的点集,为下一步的视频生成做准备。Denoising Unet:用于去除编码的潜在表示中的噪声,确保生成的图像尽可能清晰。

2024-03-31 12:05:56 1397

原创 音视频开发之旅(78)- Docker使用和交互流程

这通常通过一个特定的API接口实现,Docker脚本发送请求并携带自身的标识信息,以便Web服务根据Docker脚本的能力或任务处理优先级分配任务。任务队列维护:Web服务接收到任务请求后,根据任务类型和内容将任务存入相应的队列中。任务派发:Web服务根据Docker脚本的请求返回待处理的任务信息,Docker脚本接收到任务信息后,根据任务类型和所需操作调用相应的处理脚本或程序。Docker通过轻量级的容器化技术,使得应用程序及其依赖可以打包在一个可移植的容器中运行,确保应用在不同环境下的一致性和效率。

2024-03-24 22:33:22 1124

原创 音视频开发之旅(77)- 训练可泛化AI数字人的中文数据集汇总

1、CMLR2、LRW-10003、其他数据集4、视频收集与处理与训练5、资料Wav2Lip实现的是视频人物根据输入音频生成与语音同步的人物唇形,使得生成的视频人物口型与输入语音同步。不仅可以基于静态图像来输出与目标语音匹配的唇形同步视频,还可以直接将动态的视频进行唇形转换,输出与目标语音匹配的视频。但是预训练模型采用的是LRS2数据集,对于中文唇音同步效果不够真实,开放的或者可申请比较大的中文数据集有CMLR和LRW-1000等。也可以自己收集数据集进行清洗处理,但时间会很长,成本比较高。

2024-03-22 08:50:38 2091 1

原创 音视频开发之旅(76)- 图片抠图换背景-MODNet

专注于预测图像中的细节,特别是边缘区域,一边产生更精准的分割效果。它利用了低分辨率分支的输出,对该输出进行上采样(即增加分辨率)以及结合下采样后的原始图像来获取更清晰的边缘分割。该分支也有一个辅助模块Skp Link,它将网络早期层的特征传递到后面的层,因为早期层通常包含更多的原始信息,这样做更有助于恢复细节。,通过对图片的卷积缩小图像尺寸,预测大致的语义信息,即图像中哪些区域是人物。该网络用来预测显著性区域(可以简单理解为人像,但不局限于人像,比如动物前景也没问题),以便从图像中分离出前后景。

2024-03-15 15:40:55 642

原创 音视频开发之旅(75)- AI数字人进阶--GeneFace++

目录1.效果展示和玩法场景2.GeneFace++原理学习3.数据集准备以及训练的过程5.遇到的问题与解决方案6.参考资料一、效果展示AI数字人进阶--GeneFace++(1)AI数字人进阶--GeneFace++(2)想象一下,一个专为你打造的AI数字人,不仅可以代表你在屏幕上出现,还能带来实实在在的商业价值。之前。

2024-03-14 01:33:40 3395 5

原创 音视频开发之旅(74)- AI数字人-实现图像无缝融合

通过先下采样再上采样,然后对上采样的,得到拉普拉斯金字塔,然后再和逐级上采样的图片进行相加即可恢复为原图, 即是无损的. 如果我们对图片中变化比较小的低频分量进行剔除,只保留更多细节的高频分量(即边缘轮廓),损失一部分不明显的信息,再进行恢复 可以实现图片压缩的效果.泊松融合可以将一个图像区域无缝地融合到另一个图像中,在保持图像渐变的前提下调整图像的像素值,不仅能够保留源图像的细节和结构,又能自然地适应目标图像的颜色和亮度,使得融合区域与周围环境看起来更自热协调。

2024-03-11 23:33:29 971

原创 自动裁剪人脸:简化你的数字人素材准备

在做数字人时,需要对采集的数据进行预处理,然后才能进行模型训练, 预处理常用的操作有:去背景 音频重采样 视频裁剪 音频特征提取等等,今天我们来分享一个自动化脚本: 对原图/视频进行人脸检测并根据目标尺寸以人脸为中心进行裁剪.获取视频的第一帧,进行人脸关键点检测,作为后续所有帧的人脸坐标(所以采集的视频人脸进来不要动作太大)图片的处理比较简单: 读取图片,进行人脸检测,根据un人脸中心点坐标和目标尺寸对原图进行裁剪。比如最近做的下面这个数字人效果,在训练阶段就用到了该脚本对视频进行自动裁剪。

2024-03-10 00:38:23 463

原创 音视频开发之旅(72)- AI数字人-照片说话之SadTalker

最后,将生成的3DMM系数映射到面部渲染器的三维关键点空间,以生成最终的视频。seamlessClone 驱动口型动的是256*256的人头区域,最终想输出full的视频,需要把上面的头部视频加上mmmmmmmmmmmmmmmmbn 原始图片根据mask和location进行合并成新的视频,这个可以优化,通过线程池进行加速,耗时可以从40s减少到20s。AI数字人目前做的最好的无疑是heygen,但是费用也是很贵,也有一些其他的商业应用,比如:微软小冰、腾讯智影、万兴播爆和硅基智能等。

2024-03-02 08:54:21 1192

原创 音视频开发之旅(71)- 人脸修复画质增强之GFPGAN

它由一个U-Net模块和一个预训练的人脸GAN模型组成。GFP-GAN中为了保证人脸变清晰同时保持真实性,有四个loss1. “Reconstruction Loss” 使用预训练的 VGG-19 网络来完成分辨率的增强2. “Adversarial Loss” 使用 StyleGAN2 中类似的方法来生成逼真的纹理;3. “Facial Component Loss” 为了让面部细节真实,使用辨别器单独生成和应用面部区块的补丁,特别处理了眼睛、嘴巴等局部细节;

2024-02-27 13:52:45 2550 1

原创 音视频开发之旅(70)- 人脸修复画质增强之CodeFormer

见https://github.com/sczhou/CodeFormer Readme。

2024-02-26 08:36:29 2833

原创 音视频开发之旅(69)-SD图生图

SD UNet 中的所有参数被冻结,并克隆一份(trainable copy)到 ControlNet. 这些 trainable copy 通过一个外部条件向量(external condition vector)进行训练.下图从整体上说明了 ControlNet 和 Stable Diffusion 如何在推理过程(采样)中协同工作。

2024-02-25 22:53:20 878

原创 音视频开发之旅(68)-SD文生图

Low-Rank Adaptation of Large Language Models,冻结预训练好的模型权重参数,然后在每个Transformer(Transforme就是GPT的那个T)块里注入可训练的层,可以理解为大模型的一个小模型。LoRA模型可以应用于各种不同的领域和用途,比如:角色lora、风格lora和服装lora等。:这个是一个比较有意思的参数,通过随机种子生成一张高斯噪声图片,通过迭代步数不断的进行去噪,而提示词引导系数直接决定了生成的图片受prompt影响的程度,一般设置为6-7.

2024-02-24 13:58:09 1215

原创 音视频开发之旅(67) - 变速不变调之sonic源码分析

上一篇我们学习了音频变速不变调的原理以及WSOLA波形相似叠加算法进行时域压扩处理。其中在寻找相似帧方面,Sonic采用AMDF(平均幅度差函数法)方法来进行寻找。图片来自:[清音or浊音 ]浊音的发音过程是:来自肺部的气流冲击声门,造成声门的一张一合,形成一系列准周期的气流脉冲,经过声道(含口腔、鼻腔)的谐振及唇齿的辐射最终形成语音信号。故浊音波形呈现一定的准周期性。所谓基音周期,就是对这种准周期而言的,它反映了声门相邻两次开闭之间的时间间隔或开闭的频率。基音周期是语音信号最重要的参数之一,但是基

2022-08-12 12:59:53 2077

原创 音视频开发之旅(66) - 音频变速不变调的原理

音频变速不变调的原理

2022-08-07 17:18:08 3021 1

app-debug.apk

app-debug.apk

2020-12-22

mac-010editor&ntfs.zip

010editor

2020-08-27

Synergy_linux_mac_windows.zip

windows linux 以及 mac 三个系统版本都有。最新的mac版本可以。关于synergy的用法详见:https://www.jianshu.com/p/f1da68ac5413

2020-04-05

pager-sliding-tab-strip-demo

使用pagerSlidingTabStrip开源库 实现viewpager滑动tab联动效果。 很好的扩展性,可以自定义滑动指示器,tab分割线,下划线,以及设置tab为textview或者icon。支持自定义textview的字体比如使用Roboto字库等。 该demo 上面tab为textview。下面tab为icon

2015-05-24

apktool-v2.00rc2

apktool反编译过程中出现如下错误 Exception in thread "main" brut.androlib.AndrolibException: Could not decode arsc file at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:56) at brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibResources.java:491) at brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.java:74) at brut.androlib.res.AndrolibResources.getResTable(AndrolibResources.java:66) at brut.androlib.Androlib.getResTable(Androlib.java:50) at brut.androlib.ApkDecoder.getResTable(ApkDecoder.java:189) at brut.androlib.ApkDecoder.decode(ApkDecoder.java:114) at brut.apktool.Main.cmdDecode(Main.java:146) at brut.apktool.Main.main(Main.java:77) Caused by: java.io.IOException: Expected: 0x001c0001, got: 0x00000000 at brut.util.ExtDataInput.skipCheckInt(ExtDataInput.java:48) at brut.androlib.res.decoder.StringBlock.read(StringBlock.java:44) at brut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:102) at brut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:83) at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:49) ... 8 more 由于使用新的adt,而反编译的apktool.jar不是最新的导致。使用新的apktool.jar替换原来的就可以了。

2015-01-28

ubuntu apktool

ubuntu apktool 反编译工具。解压后把 aapt apktool apktool.jar /usr/bin/目录下即可。 apktool d xxx.apk

2015-01-15

apktool1.52

ubuntu apk 反编译工具aapt apktool

2015-01-15

GSM AT指令

AT指令 英文翻译 AT指令在当代手机通讯中起着重要的作用,能够通过AT指令控制手机的许多行为,包括拨叫号码、短信、电话薄、按键控制、传真、GPRS等

2013-11-22

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除