视觉算法
文章平均质量分 63
lyyiangang
这个作者很懒,什么都没留下…
展开
-
laneATT解读
车道线laneatt简介原创 2023-01-29 19:06:44 · 919 阅读 · 2 评论 -
光流相关总结
optical flow总结原创 2023-01-10 17:29:11 · 222 阅读 · 0 评论 -
GMM算法
使用高斯混合模型(GMM)进行图像分割原创 2022-11-29 16:26:11 · 636 阅读 · 0 评论 -
sort跟踪算法笔记
sort算法笔记原创 2022-04-12 14:38:12 · 2859 阅读 · 0 评论 -
GAN网络
Gan相关知识汇总原创 2022-03-30 17:46:28 · 295 阅读 · 0 评论 -
GENERATING NAMES WITH A CHARACTER-LEVEL RNN教程解析
pytorch RNN 名字生成代码解析原创 2022-03-29 13:25:15 · 1415 阅读 · 1 评论 -
ONNX笔记
ONNX文件格式介绍原创 2022-03-15 19:42:12 · 2772 阅读 · 2 评论 -
shufflenet v1 & v2, mobilenet v1&v2对比
shufflenet & mbnet对比原创 2022-02-23 14:17:58 · 653 阅读 · 0 评论 -
numpy 的transpose是如何实现的
transpose的python实现原创 2022-02-21 17:44:20 · 1807 阅读 · 0 评论 -
模型压缩总结
模型压缩相关总结原创 2022-02-11 13:02:40 · 564 阅读 · 0 评论 -
RNN 循环神经网络
循环神经网络(RNN)总结原创 2022-02-09 13:42:56 · 463 阅读 · 0 评论 -
aflw2000 3d人头显示代码
aflw2000 3d 人脸显示原创 2022-01-13 19:47:47 · 1628 阅读 · 1 评论 -
ssd&yolo&fcos
ssd&yolov3&nanodet原创 2022-01-11 18:10:49 · 1605 阅读 · 0 评论 -
单应性矩阵
https://blog.csdn.net/liubing8609/article/details/85340015https://zhuanlan.zhihu.com/p/131097680原创 2021-11-28 16:15:15 · 1503 阅读 · 0 评论 -
cv相关知识点
cv相关知识点原创 2021-11-11 12:54:37 · 1049 阅读 · 0 评论 -
pixel to pixel gan ,cycle gan以及模型压缩
摘要Image-to-Image Translation with Conditional Adversarial Networks 提出了利用GAN网络进行成对图片生成方法。内容网络的结构如下:G接收成对图片{edge, photo}用于训练, 最终目的是训练一个G能够通过edge生成photo。D则要努力分清fake img(也就是G(x))和real img,如果输入是real img, D(real img)应该更接近1, 如果是fake img,D(fake img)应该接近0,原创 2021-10-04 18:30:08 · 1178 阅读 · 1 评论 -
PR curve, AP, mAP, AUC, f1-score ??
https://github.com/rafaelpadilla/Object-Detection-Metrics原创 2021-08-22 15:58:52 · 1699 阅读 · 0 评论 -
r329开发板部署aipu模型
上篇文章r329模拟仿真实现了在模拟器上仿真网络,现在申请到了开发板,就有机会在上面测试下了。本文需要的原材料r329开发板sd 卡sd卡读卡器typec的usb线一台windows电脑一台linux电脑开发板全貌:包括了主板, 屏幕和usb摄像头,小巧迷你刷机&配置从这篇文章下载已经编译好的镜像链接:https://pan.baidu.com/s/1vpPH_pHKQ_w3Z4DTxJTixg提取码:4tni里面包含了编译好的镜像, PhoenixCar原创 2021-08-01 12:57:45 · 890 阅读 · 0 评论 -
yolox dockerfile分享
yolox dockerfile分享最近旷视发布了一个强大的类yolo 检测器,同样延迟下,AP更高, 同样的AP下延迟更低。更为重要的是,旷视竟然还公布了tensorrt和ncnn端侧推理的cpp代码以及python代码,避免了转换模型遇到各种ops不支持的问题。为了降低大家的白嫖门槛, 不被各种import error折磨,这里我做了一个dockerfile, 目前能够顺利跑通demo。配置先下载我配置好的dockerfile, 并编译git clone https://github原创 2021-07-23 17:02:16 · 562 阅读 · 8 评论 -
L1正则化(weight_decay)
关于weight_decay的介绍:参考资料:https://towardsdatascience.com/weight-decay-l2-regularization-90a9e17713cdhttps://stats.stackexchange.com/questions/29130/difference-between-neural-net-weight-decay-and-learning-rate原创 2021-07-20 11:32:03 · 194 阅读 · 0 评论 -
TensorRT尝鲜
安装按照quick-start-guid安装方法来装就行, 推荐里面的pip安装法.模型转换转换需要使用trtexec, 然而上面pip安装时并不会顺便安装这个转工具,只能自己编译.不过这里推荐使用docker安装.下载链接命令:docker pull nvcr.io/nvidia/tensorrt:21.06-py3不过cuda的版本要和驱动匹配起来, 直接从docker容器名称也看不错这个镜像里装得到底是那个版本的cuda, workaround的方法是看下layers页面中的cuda相原创 2021-07-16 15:24:31 · 487 阅读 · 0 评论 -
检测网络比较
fcosneck出来每层feature使用共享head推理,head 输出box,objectness和cls分支.scale层由于共享head的存在,每层回归的box大小不一, 越靠后的回归的box越大,所以head输出的box还需要加上一个scale层 .对应代码为:box_pred = scale * self.fcos_reg(feature).exp()loss部分使用focal loss来计算分类和回归loss,其中box的loss计算使用giou loss, cen原创 2021-07-12 17:25:15 · 111 阅读 · 0 评论 -
一个开源的C++版本的驾驶员监控系统
一直都想自己从头到尾写一个驾驶员监控系统,用人工智能算法给行业赋能。拖了很久,最近终于把剩下的尾巴收了。代码链接:https://github.com/lyyiangang/opendms主要实现了以下功能:人脸检测人脸landmark检测人脸6DOF姿态检测以及基于上述基础功能获取的驾驶员疲劳,分心等信息。 由于定位在较低资源的设备上运行,所以使用的模型都比较精简同时支持x86和arm平台上的运行,我用的是firefly 3328,羸弱的cpu能跑得动网络已经是万幸了。。为了方便大原创 2021-07-10 18:27:35 · 500 阅读 · 3 评论 -
batchnorm融合
conv-batch_norm 模块可以融合成一个conv模块.参考链接:https://nenadmarkus.com/p/fusing-batchnorm-and-conv/测试代码:# conv 与bn融合demo# https://nenadmarkus.com/p/fusing-batchnorm-and-conv/import ipdbimport torchimport torchvisiondef fuse_conv_and_bn(conv, bn): #对于bn原创 2021-07-07 18:25:37 · 260 阅读 · 0 评论 -
caffe中的工厂模式
定义一个名字(字符串)与函数一一映射关系,通过REGISTER_LAYER_CREATOR将名字以及对应的函数注册到系统中//define a functionshared_ptr<LayerBase> GetConvolutionLayer(const LayerParameter& param, Type ftype, Type btype, size_t) { //do something } shared_ptr<LayerBase&.原创 2021-07-01 18:14:52 · 139 阅读 · 0 评论 -
face landmark验证指标
NME评价指标NMEFRCEDNME计算代码:base = np.linalg.norm(gt_pts[36] - gt_pts[45]) # outter corners of eyesdef nme(pred_pts, gt_pts, base): return np.mean(np.linalg.norm(pred_pts - gt_pts, axis = 1) / baseCED曲线:CED&AUC 计算&绘制代码:import numpy as npi原创 2021-06-16 17:14:17 · 2990 阅读 · 2 评论 -
python编码问题总结
记录下写代码中遇到的小问题..深度学习numpy数组引用后修改(弱智错误)class Dataset: def __init__(self): self.data = load_data_from_file('demo.txt') def __getitem__(self,idx): image, points = self.data[idx] h, w = image.shape[:2] # bug!!! 第2个epoch 开始, self.data[1]中的数据就被下面代原创 2021-06-15 17:10:29 · 72 阅读 · 0 评论 -
ply格式文件导出
ply格式导出代码片段.注意vertex 和tri都是(N, 3)格式,三角形编号从1开始.def dump_to_ply(vertex, tri, wfp): # index in tri should begin from 1. # vertex in shape (3,N ), tri in shape (3, N) header = """ply format ascii 1.0 element vertex {} property float x原创 2021-06-03 15:02:55 · 432 阅读 · 0 评论 -
screen-camera calibration using a thread
screen-camera calibration using a thread这篇论文介绍了相机坐标系与屏幕坐标系的标定方法.获取2d交叉点m_i2.通过下式获取H其中M_i定义如下:有了H就可以去获取旋转矩阵列向量r以及平移向量:其中A为相机内参.定义:其中h33 = 1, 所以这个3x3矩阵实际只有8个参数.单应性矩阵适应场景:相平面与平面之间的转换2.不同相机对同以平面的转换3.沿轴旋转参考资料:单应性矩阵:https://docs.opencv.原创 2021-06-01 17:40:27 · 122 阅读 · 0 评论 -
3d 人脸重建论文解读
Accurate 3D Face Reconstruction with Weakly-Supervised Learning:From Single Image to Image Set 解读最近看到一篇<<Accurate 3D Face Reconstruction with Weakly-Supervised Learning:From Single Image to Image Set>>很不错的3d face重建文章,做个简单笔记。这篇文章通过弱监督学习来实现人脸重建原创 2021-05-30 22:17:23 · 1591 阅读 · 2 评论 -
最小二乘法的一种证明
这篇文章对最小二乘的证明很详细,介绍两种方法矩估计和投影矩阵,其中投影矩阵的方法更容易证明。本文就对其投影矩阵方法做下扩展。对于 Xw + a = y_hat 这种方程,可以理解为对X矩阵的列向量进行线性组合,组合后的向量也只能在X列向表示的空间里,比如下图,x1和x2的组合y只能在x1与x2组成的平面里,真实值y在这个平面外,现在要找到一个w保证y与y最小,那么只能是y在平面上的投影了。也就是说向量(y^, y)要与平面x1,x2垂直。数学描述就是那么简单展开就是:代码验证这里编写了两原创 2021-04-30 18:01:47 · 950 阅读 · 1 评论 -
像素坐标、图像坐标、相机坐标和世界坐标
相机成像时,世界坐标系下三维空间的一点(X_w, Y_w, Z_w)到像素(u,v)的转换需要经历世界坐标系->相机坐标系->图像坐标系->像素坐标系一系列变换.世界坐标系->相机坐标系世界坐标系下的点可以通过旋转和平移转到相机坐标系下.其中T的定义:也就是我们说的相机的外参矩阵,OpenCV中可以通过SolvePnP等方法算出.相机坐标系->图像坐标系这一步其实就是小孔成像原理,只要知道怎么进行相似三角形变换就可以得到下面的公式:f为相机焦距原创 2021-04-28 14:38:59 · 7046 阅读 · 0 评论 -
Deep3DFaceReconstruction踩坑实录
在跑3d人脸demo Deep3DFaceReconstruction时遇到一些问题,拿个小本本记录下来.项目介绍这个项目实现了通过单张图片推理3d人脸参数的功能,对应的论文为:Accurate 3D Face Reconstruction with Weakly-Supervised Learning: From Single Image to Image Set.代码基于tensorflow编写.环境介绍Ubuntu18, 显卡1050ti,cuda配置: NVIDIA-SMI 450.10原创 2021-04-22 19:22:39 · 4102 阅读 · 26 评论 -
一文读懂仿射变换
一文读懂仿射变换对,我就是标题党,但是会争取一篇文章介绍仿射变换的所有知识点。背景图像常见的变换操作有平移变换,欧几里德变换,相似变换,仿射变换和投影变换。如果看下面这张图则可以更直观的看出他们的区别:平移变换顾名思义只会对图片进行xy方向的移动欧几里德变换则在平移变换的基础上加了旋转变换, 能够表示目标的刚体变换。相似性变换是在欧几里德变换基础上加上了缩放和镜像操作仿射变换在相似性变换基础上添加了斜切变换,仿射变换保留了目标图像的平直性和平行性。也就是说,一条直线变换后还是一条直线,原创 2021-04-11 10:05:16 · 1443 阅读 · 4 评论 -
Pytorch代码片段
Pytorch代码片段原创 2021-03-19 18:19:20 · 116 阅读 · 0 评论 -
bfm 人脸模型
bfm 人脸模型3dmm 的公式:S=S‾+Aidαid+Aexpαexp\mathbf{S}=\overline{\mathbf{S}}+\mathbf{A}_{i d} \boldsymbol{\alpha}_{i d}+\mathbf{A}_{\exp } \boldsymbol{\alpha}_{\exp }S=S+Aidαid+Aexpαexp其中Aid\mathbf{A}_{i d}Aid 为shape base.Aexp\mathbf{A}_{\exp } Aexp原创 2021-03-19 16:50:10 · 5057 阅读 · 7 评论 -
投影矩阵介绍
一般我们是将相机模型简化成针孔相机模型,那么相平面与相机坐标系之间的关系为:通常为了方便,会把相平面放在小孔与目标点之间。下面就介绍下相平面投影的三种不同方法。透视投影(perspective projection)通过相似三角形(下图两个虚线三角形)可以得到下列关系:展开就是:这里x_h等为齐次坐标系坐标,X等为相机坐标系点,x等则为相平面上的透视投影点, 可以看出,投影点的位置不仅仅是与X等有简单的缩放关系,还和Z成反比,Z越大投影点x等越小,这就原创 2021-02-03 15:33:43 · 2744 阅读 · 0 评论 -
Gaze vector之MPII Gaze
这篇文章主要介绍MPIIGaze: Real-World Dataset and Deep Appearance-Based Gaze Estimation这篇论文实现3d gaze vector的细节。主要贡献我觉得这篇论文最大贡献就是公开了Gaze数据集, 这个数据集包含213,659张图片, 这些图片是从15个笔记本摄像头上采集下来的, 整个采集周期跨了好几个月, 包含了各种光照场景,作者手工标注了37,667张人脸6点landmark和瞳孔数据。 作者对比了MPII gaze数据集与E..原创 2021-01-26 19:26:41 · 3653 阅读 · 9 评论 -
Gaze vector介绍
刚开始接触视线估计时,搜索资料时搜的是visual axis。。。实际上它有个更专业的名字Gaze。具体到使用计算机视觉方法来解决Gaze问题就是,如何通过一张眼睛的图片以及相关数据,来估计出人眼的视线方向,注意这个视线方向(3d vector)可以基于相机坐标系,也可以基于头部坐标系。有了这个vector能干啥呢?有了它就能更精确的知道人在看什么。浏览网页时,广告公司知道你的目光停留在哪里,对什么内容更感兴趣,从而更精确地定向投放广告。VR技术中如果知道视线,那么可以将人眼所看区域精细化绘制原创 2021-01-26 19:25:03 · 491 阅读 · 0 评论