ImageJ拓展开发script、macro和 plugin

在处理图像和三维数据方面有一个强大且拓展性强的软件ImageJ,ImageJ本身功能不是特别多,但是多年以来积累了丰富的插件,使得其成为专业图像处理和数据科学、医学图像处理等领域的利器。FIJI ImageJ打包了很多插件,可以实现很多功能,但是总有需求超出功能的时候,我们可能希望自己开发插件。

ImageJ支持多种形式的拓展,支持用我们熟悉的Python语言(Jython)进行拓展开发,也支持JS脚本的macro开发,还支持Java开发的插件。实际上ImageJ开发插件是很简单的,有时候我们只需在demo代码基础上改上短短几行就能实现我们自己定制化的功能。这篇博客主要简单介绍script、macro和plugin开发的流程,指引一下资源位置,给简单的流程介绍,不会具体深入代码层面。

阅读更多

Windows好用的工具(一)PowerToys

微软的windows搭配上自家的powertoys使用体验是很棒的,博主认为几乎是windows必备软件了,可以极大提升系统操作体验(甚至可以和Mac体验一样便捷),以至于博主要专门写一篇博客记录一下。

PowerToys一般设置成开机自动启动即可。PowerToys提供和系统深度融合的取色、应用置顶、图像大小调整、桌面多区域、鼠标高量、类似Mac聚焦搜索等功能。软件下载地址:https://github.com/microsoft/PowerToys/releases/

阅读更多

C++调用python(一)环境配置

使用Pybind11可以让python来调用C++,使用python本身的库也可以让C++来调用python函数,以实现C++和python相互调用,实际上我们还可以同时调试C++和Python(混合模式调试,正如封面展示这样),混合模式调试要使用Visual Studio调python,后面博客会介绍C++调用python的传参和混合模式调试,这篇博客主要先介绍C++调用python的流程:

阅读更多

双目立体匹配算法mobilestereonet

通过视觉测量深度的方法目前分为如下几种,一种是双目立体匹配,该方法的好处是有一个明确的物理模型,存在视差的概念,深度信息是根据时差转换得到,另一种是单目运动,该方法也可以看成一种特殊的双目模型或者多目模型,只不过它是时间上的多目,还有一种方法是完全的单目深度估计,直接由网络端到端给出深度,单目网络在可解释性和可移植性上不如双目和单目运动,但是其效果没有比双目差太多。

随着近年来车载系统视觉方案不断完善,立体视觉问题不断收敛,学界出现了一批轻量级网络,效果还不差,这篇博客主要介绍一个轻量级双目立体匹配网络mobilestereonet,后文简称MSN。博主理解MSN主要贡献还是在与对网络模型的压缩,骨干和后面的特征提取大量使用深度可分离卷积,而论文中提及的一些网络结构,经过博主实验下来,这些并不重要(比如3d卷积用分组卷积替代,网络性能并没有明显降低),直接感受是,参数确实更少,计算也更少。

阅读更多

香草和雪球

香草和雪球是最近市场上比较火爆的金融衍生品,雪球和香草是奇异期权里障碍期权的一种,种类较多,分为大雪球、三园雪球、香草、季季红、多倍看涨等,其中三元雪球和香草为保本类,大雪球和多倍看涨是不保本的,对散户来说,如果不想了解过多的话,关注香草即可。这篇博客会详细介绍这几类金融衍生品,关注其交易规则和可能的底层金融资产。

阅读更多

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的实现。

阅读更多

Vision Transformer

Transformer从NLP发展到视觉,开始改变视觉问题的处理方式,SwinTransformer和ViT都是典型的网络结构,典型的Transformer结构中大量使用Multi-Head Attention。ViT基于经典的Transformer模型,采用图像分块的方式将图像处理的问题转化为seq2seq的问题,这篇博客会从Attention开始,介绍到ViT。

阅读更多

神经网络训练量化(QAT)基本概念

QAT(Quantization Aware Training)量化感知训练是神经网络优化模型容量的重要方法,关系到模型精度和性能。pytorch对模型量化支持有三种方式:模型训练完毕后的动态量化、模型训练完毕后的静态量化、模型训练中开启量化QAT。这篇博客主要基于pytorh介绍QAT的基本概念。

阅读更多

事件相机(三)事件相机特征提取

事件相机作为一种新型相机,其特征提取方法仍然有许多需要探索的地方,目前主流的事件相机特征提取算法都还是将事件信息二维化或者三维化,并没有很好利用事件相机数据量小的特点,也都把一些关键信息丢掉了,这篇博客主要介绍目前常用的事件相机的特征提取方法。用这些方法编码事件,有一些适合给传统算法使用,有一些适合使用CNN进行处理。

阅读更多

事件相机(二)事件相机应用

前面一篇博客介绍了事件相机的原理和种类,这一篇博客来介绍一下事件相机的具体应用场景,主要也是对 Event Camera Survey的总结梳理。目前学界研究比较多的是 SLAM、Motion Object Detection、Deblur、HDR、高帧率视频等方向。传统方法在SLAM上使用较多,提取事件特征非常繁琐耗费算力,NN方面在处理事件上有一些探索,但都还没完全成熟。目前主要的产品应用还是手机Deblur、插帧和HDR上(目前只有手机的出货量有机会压低Event Camera的成本)。

阅读更多

事件相机(一)事件相机原理

事件相机(Event Camera)目前分为如下几类:DVS、ATIS、DAVIS等,这类基于事件的相机与传统基于全帧输出的CIS相机不同,具有高帧率、高动态、低延时、低带宽的优点,同时也面临着噪声、Flicker、带宽变化等不利因素。这篇博客重点介绍事件相机产生事件的原理,和目前事件相机的分类。

阅读更多