计算机视觉
文章平均质量分 96
风翼冰舟
Machine Learning,
Algorithm
展开
-
卡通角色表情驱动系列二
前言之前介绍了使用传统算法求解BS系数的表情驱动方法,其中提到过的三种方法之一是基于网格形变迁移做的,那么这篇文章就是对《Deformation Transfer for Triangle Meshes》做表情驱动的解析。国际惯例,参考博客:论文原文《Deformation Transfer for Triangle Meshes》大佬的代码本博文实现几乎照搬大佬代码,但是大佬代码实在是太多太复杂了,搞了很多库和函数,还有很多重复的实现,所以本博客一边解析论文,一边按照大佬的代码简化实现,把几原创 2021-07-17 22:51:43 · 4146 阅读 · 2 评论 -
opencv相机标定和人头姿态估计案例
前言头部驱动除了之前关注的表情驱动外,还有眼球驱动和头部方向驱动。本博客基于opencv官方文档和部分开源代码来研究如何基于人脸关键点获取头部的朝向。国际惯例,参考博客:opencv:Camera Calibration and 3D Reconstructionopencv:Real Time pose estimation of a textured objectcv.solvePnP位姿估计旋转向量精度分析头部姿态估计原理及可视化重磅!头部姿态估计「原理详解 + 实战代码」来啦!相机矩原创 2021-04-09 16:27:44 · 4948 阅读 · 1 评论 -
卡通角色表情驱动系列一
前言分析完ThreeDPoseTracker来做卡通角色的身体驱动,接下来在卡通驱动领域还有一个是表情驱动。对这个真的是一窍不通啊,只能慢慢看论文了。国际惯例,参考博客/论文:《Landmark-guided deformation transfer of template facial expressions for automatic generation of avatar blendshapes》《FACSvatar: An Open Source Modular Framework fo原创 2021-04-07 17:45:41 · 8435 阅读 · 17 评论 -
OBJ可视化——UV还原(修正)
前言前面写过一篇obj格式解析的博客,但是这篇文章中可视化的工作是参考PRNet的源码进行的,后来细细思考了一下,有点问题,具体看下面。问题来源在PRNet源码的render.py中有个函数render_texture,是作者用于将uv展开图重新映射回3D模型中,具体流程可以看出是:找到当前三角形的uv坐标和3D坐标将三个顶点的uv图颜色取平均,作为当前面片的颜色tri_tex = (colors[:, triangles[0,:]] + colors[:,triangles[1,:]]原创 2020-12-30 14:31:02 · 3819 阅读 · 8 评论 -
径向基函数RBF三维网格变形
前言之前写过径向基函数(RBF)神经网络做分类或者拟合。然后挖了个坑说在《Phase-Functioned Neural Networks for Character Control》里面提到了用于做地形编辑,所以这篇博客就是解析一下如何用RBF做网格编辑系统。参考博客:Noe’s tutorial on deforming 3D geometry using RBFs基于参考博客的人脸网格编辑code有很多网格变形算法的python包PyGem《Real-Time Shape Editing原创 2020-12-14 18:56:30 · 6019 阅读 · 1 评论 -
OpenCV学习——形态学
前言继续学习图像里面的形态学知识——结构元、腐蚀、膨胀、开运算、闭运算、击中/不击中变换。以及部分基本形态学算法,包括边界提取、空洞填充、连通分量的提取、凸壳、细化、粗化、骨架、裁剪、形态学重建。其实就是对冈萨雷斯的《数字图像处理》中第9章节《形态学处理》的简要理解。如果你认为腐蚀是减小白色区域,膨胀是扩充白色区域,请务必看本博客,注意不同结构元的结果。参考博客:OpenCV官方的形态学运算文档冈萨雷斯的《数字图像处理》第9章某位大佬的形态学总结理论与实践结构元结构元实际就是一个自定义的原创 2020-12-07 15:14:17 · 2444 阅读 · 0 评论 -
OpenCV学习——轮廓检测
前言轮廓检测是传统视觉中非常常用的功能,这里简单记录一下opencv中的轮廓检测算法使用方法,至于理论,后续有机会再去细品。国际惯例:OpenCV官方的轮廓检测教程python版OpenCV中的二值化方法教程OpenCV轮廓层级官方文档维基百科:图像矩(Image Moment)调用流程和方法OpenCV里面通常要求是针对二值图像进行二值化,所以轮廓检测包含如下步骤:载入图像灰度化二值化轮廓检测代码实现如下:img =cv2.imread("blackBG.jpg")# g原创 2020-10-31 16:30:43 · 15798 阅读 · 5 评论 -
obj格式解析
前言最近处理一些网格渲染的时候,需要解析Obj文件,从Free3D上随便找了个免费的人体obj模型解析测试一波国际惯例,参考博客:本文所使用的从Free3D下载的模型.obj文件格式与.mtl文件格式详解3D中的obj文件格式3D中OBJ文件格式解析obj文件解析维基百科Wavefront .obj fileObject Files (.obj)MTL Files Material Definitions for OBJ Filespython读取objobj的可视化软件MeshLa原创 2020-10-15 19:36:24 · 8279 阅读 · 1 评论 -
Ogre共享骨骼与两种骨骼驱动方法
前言最近业务中用到Ogre做基于3D关键点虚拟角色骨骼驱动,但是遇到两个问题:身体、头、眼睛、衣服等mesh的骨骼是分开的,但是骨骼结构都是一样的,需要设置共享骨骼驱动的时候可以直接修改骨骼旋转量,或者将旋转量存到动画帧里面去,后者会根据播放时间间隔自动插帧国际惯例,参考博客:Ogre3D 实现角色换装【Ogre-windows】旋转矩阵及位置解析Ogre 换装系统 shareSkeletonInstanceWith代码实现下面分别包括:共享骨骼、关节驱动、动画帧驱动、遇到的坑其中关原创 2020-10-13 16:33:19 · 912 阅读 · 0 评论 -
ColorSpace颜色空间简介
前言如果看过之前的介绍的图像颜色迁移《color transfer between images》和颜色协调模型Color Harmoniztion就会发现,大部分图像处理算法虽然输入输出是RGB像素值,但是中间进行算法处理时很少直接更改RGB值,而是转换到其它空间,使得各颜色分量之间的影响越小越好,而RGB像素值互相影响比较严重,有文章研究发现当图像蓝色通道值比较大的时候,红绿通道值也比较大,不然会出现一些诡异的颜色。为了更好地理解各类传统的图像算法理论,我们需要对色彩空间有一个大概的认识。国际惯例原创 2020-10-10 19:44:59 · 13738 阅读 · 0 评论 -
图像颜色迁移《color transfer between images》
前言前段时间,在深度学习领域不是有个比较火的方向叫风格迁移的嘛,对于我这种不喜欢深度学习那种不稳定结果的人来说,还是想看看传统图像处理领域有什么类似的技术,发现了一个颜色迁移的算法,很久前的论文了。国际惯例,参考博客:原论文《color transfer between images》大佬的python实现大佬的matlab实现知乎解析《Color transfer between images》理论与对应代码复现这篇文章的用途在于:利用一张图片的颜色去矫正领一张图片,比如你在昏暗的场景原创 2020-10-09 16:33:17 · 8065 阅读 · 5 评论 -
OpenVINO——配置与道路分割案例
前言最近看到了一个深度学习库OpenVINO,专门用于Intel硬件上部署深度学习模型,其内置了非常非常多使用的预训练模型,比如道路分割、人脸提取、3D姿态估计等等。但是配置和调用有点小恶心,这里以道路分割为例,展示如何配置OpenVINO的环境,以及模型下载和调用国际惯例,参考博客:OpenVINO提供的所有预训练模型列表OpenVINO的物体分割文档OpenVino (二) Win10 python配置配置需要注册一个账号下载OpenVINO,按照官网给出的win10安装方法 一直各种下一原创 2020-08-17 12:38:17 · 1601 阅读 · 2 评论