这篇博客介绍mac上cisico的安装配置,介绍配置文件,做一个比较干净的使用环境。如果是M1 Mac则需要选择适配版本4.10.02086以上(2021年11月之后版本),如果版本低一些也可以运行,只不过是以罗赛塔2转译的方式运行,当然还是适配了arm64的apple silicon版本更好。
PengChao
C++调用Python(二)参数传递
上一篇博客我们介绍了C++调用python的环境配置,这篇博客介绍下C++调用python时的参数传递方法,包括如何传递 变量、结构、字典、数组、图像以及多维数组。
Pycharm专业版2020和2021激活方法
如果是PyCharm2021.2.2版本及以下,可以使用插件无限重制激活的方法,不过上面这种方法在2021.3及之后已经失效了,需要用其他方式激活。
先介绍插件无限试用的方法,可以在下面地址下载插件,也可以通过添加插件搜索路径的方式更新到2.1.15以支持PyCharm2021.2.3版本,注意这种方法需要取消登陆:
管理MAC系统启动项
我们一般查询到的MAC启动项是在 系统偏好设置->用户和组->启动项中进行修改,但是仍然会有一部分启动服务不在这里设置,要在Library下修改plist文件来修改,这篇博客就来介绍下MAC的启动项管理。
Mac设置鼠标滚动和windows同向
Mac系统绑定了触摸板和鼠标的方向,修改其中一个必然导致另一个方向也发生变化,而Mac的触控板本身的方向自然且符合直觉,如果工作在多系统环境下,鼠标方向想和windows统一,但是没办法和触控板方向解绑单独修改,这篇博客介绍使用Scroll Reverser配置触控板。
双目立体匹配算法mobilestereonet
通过视觉测量深度的方法目前分为如下几种,一种是双目立体匹配,该方法的好处是有一个明确的物理模型,存在视差的概念,深度信息是根据时差转换得到,另一种是单目运动,该方法也可以看成一种特殊的双目模型或者多目模型,只不过它是时间上的多目,还有一种方法是完全的单目深度估计,直接由网络端到端给出深度,单目网络在可解释性和可移植性上不如双目和单目运动,但是其效果没有比双目差太多。
随着近年来车载系统视觉方案不断完善,立体视觉问题不断收敛,学界出现了一批轻量级网络,效果还不差,这篇博客主要介绍一个轻量级双目立体匹配网络mobilestereonet,后文简称MSN。博主理解MSN主要贡献还是在与对网络模型的压缩,骨干和后面的特征提取大量使用深度可分离卷积,而论文中提及的一些网络结构,经过博主实验下来,这些并不重要(比如3d卷积用分组卷积替代,网络性能并没有明显降低),直接感受是,参数确实更少,计算也更少。
M1 Mac安装homebrew(intel适用)
直接运行命令安装: /bin/zsh -c “$(curl -fsSL https://gitee … 阅读更多
Pytorch模型蒸馏Distillation
网络模型在部署时会通过剪枝蒸馏等方式加快推理速度,模型蒸馏大概可以分为通道蒸馏、特征蒸馏和目标蒸馏。这里需要特别强调的是,蒸馏的student网络学习的是teacher的泛化能力,而不是过拟合训练数据。这篇博客会以pytorch代码为基础,介绍常用的模型蒸馏方法。
UnrealCV部署使用指南
在深度学习中,数据仿真一直是重要的topic,Unreal(虚幻引擎)是Epic主导的渲染引擎,常被用于游戏、场景设计、渲染计算,也可以被用于深度学习中的数据仿真,其中有一些比较有名的基于Unreal开发的数据仿真平台,比如CARLA(http://carla.org/)、AirSim等优秀的仿真平台被用于自动驾驶、机器人自动控制等。这篇博客也是介绍一个这样的项目UnrealCV,简单介绍下unrealcv的部署和使用。实际上UnrealCV没有CARLA和AirSim强大(主要是没有运动模型和碰撞检测),所以简单介绍仅供参考。
Pytorch使用2d卷积来实现3d卷积
我们在深度学习模型转换和推理过程中常常会遇到算子不被工具链支持的情况,这时我们可以通过其它算子来等价实现我们想要的算子,比如3d卷积不被工具链支持,我们可以将其拆分成2d卷积,拆分之后我们需要进行权重字典的拆分。这篇博客贴一下pytorch的实现。
远程虚拟环境使用简记
我们在深度学习训练时常常需要远程使用虚拟环境,对初学者有一些使用指南和技巧,包括conda、指定显卡、tensorboard、pycharm远程、nohup避免任务中断等,这篇博客做简单记录。
Vision Transformer
Transformer从NLP发展到视觉,开始改变视觉问题的处理方式,SwinTransformer和ViT都是典型的网络结构,典型的Transformer结构中大量使用Multi-Head Attention。ViT基于经典的Transformer模型,采用图像分块的方式将图像处理的问题转化为seq2seq的问题,这篇博客会从Attention开始,介绍到ViT。
神经网络训练量化(QAT)基本概念
QAT(Quantization Aware Training)量化感知训练是神经网络优化模型容量的重要方法,关系到模型精度和性能。pytorch对模型量化支持有三种方式:模型训练完毕后的动态量化、模型训练完毕后的静态量化、模型训练中开启量化QAT。这篇博客主要基于pytorh介绍QAT的基本概念。