基本语法和规则一定从官方教程开始,这篇博客是官方教程前几节的简要笔记。主要介绍 Halide 算法描述的语法规则、变量打印和调试、算法对ROI和padding的处理。
Halide(五)算法调度 是紧跟在本博客之后的章节,都是对官方教程的笔记,(三)和(四)是一些环境和常用算法的穿插,不关心可跳过。
a blog driven by interest~
基本语法和规则一定从官方教程开始,这篇博客是官方教程前几节的简要笔记。主要介绍 Halide 算法描述的语法规则、变量打印和调试、算法对ROI和padding的处理。
Halide(五)算法调度 是紧跟在本博客之后的章节,都是对官方教程的笔记,(三)和(四)是一些环境和常用算法的穿插,不关心可跳过。
在工业生产环境中,算法从设计到落地一般跨度比较大。尤其是计算密集的图像处理算法,要达到比较高的效率,就必须要在数据临近、数据复用、计算并行等方面做均衡,算法实现者通常需要深入了解该算法,才能取得比较好的优化。为了降低算法实现过程中开发者的负担,要把算法设计和实现相分离开来,已经有多重解决案例,其中较为典型的就是Halide。
Halide就不多介绍了,毕竟是在Pixel2 HDR Plus上用过的,官网:https://halide-lang.org,上面有很多详细的教程和文档。Halide主要分为两部分,第一部分是要描述需要计算的内容(计算在算法层面的流程),第二部分是规划计算,把计算并行起来、分块儿、数据复用、顺序重排,以实现更高的性能。博主认为第一部分是比较容易的,官网的教程看一遍就可以理解,自己再跑下demo,而第二分部取决于使用的硬件,如果调试优化,需要更多时间去摸索(毕竟我们使用halide是为了获得比较高的性能,减少部署开销)。
这篇博客主要介绍windows下配置halide开发环境,linux配置开发环境比较简单,并且官网已经写的很详细了,只在最后会简要讲下linux配置开发环境步骤中官网没有提及的部分。
昨天有一份42.9G的windows源码包泄露出来,包括多个Windows、Windows Searver发行版的源码,最重要的是Windows XP和Windows Server 2003目前依旧运行在很多老旧的电脑上,如果有漏洞被拿来利用,可能产生很严重的危害。
博主在数年之前就拿到过Windiows Server的源码,但是代码很杂,也编译不了,不过这次源码泄露范围更广,在各个社区也有分析,并且已经有一些人编译成功了(本来还以为需要微软内部的工具集,看起来泄露的压缩包里都有了,微软糗大了),可以跟着学习一波,先简单看下,能不能从里面抽出一些有用的工具。
博主对华为存在许多负面看法,华为令人痛恶的加班文化、奋斗者协议、利用司法和公关力量对员工的控制和胁迫,都是博主十分排斥的(当然博主是个局外人,仅代表个人看法)。最近逛华为的体验店,也切实感觉到,如果不与苹果对比,华为在消费产品确实做得不错,华为在通信上亦是实力强劲。作为一家商业公司而言,华为确实实现了高速增长,也为社会创造了不少财富,相比于躺着赚钱的互联网和金融,在需要站着赚钱的制造业上的成功更让人敬佩。
此时中美战略对抗亦进入一个新阶段,前段时间拜读了大火的《美国陷阱》,也是把全球企业对抗背后的国家较量展示的淋漓尽致,亦体会到全球市场竞争的实质就是和平时期的战争。而于中国而言,华为在此时的意义不言自明,博主亦有兴趣了解华为的企业文化,理解华为内部管理和行动的准则。这篇博客是对华为内部管理培训教材第一章和第二章的整理,目前只是细碎的笔记,留以后来有需要的时候索引和扩充。
上一篇博客我们简单写了一个引导,还没有进入系统,在进入系统之前,我们有必要先了解下CPU的实模式和保护模式。我们的程序不加任何保护,直接运行在CPU上,称为实模式,16位实模式最大寻址空间为1M。CPU可以通过保护模式拓展寻址空间,并进行访问权限管理和校验,32位保护模式的寻址空间可以拓展到4G。在保护模式下物理内存、页、中断都会保护起来、不同特权级下IO端口也不能随意使用。
CLAHE,全称 Contrast Limited Adaptive Histogram Equalization,是一种用来做Tone Mapping的自适应直方图均衡算法,已经集成在opencv和matlab中。
在介绍CLAHE之前,先介绍下HE(直方图均衡)、AHE(自适应直方图均衡算法)、CLHE算法。
GradientShop是在梯度域上对图像进行编辑的一个框架,通过该框架可以完成Sharpen、Relight、ToneMapping、Deblock、NPR Filter、DeFlickering等多种图像处理任务。这篇博客简单介绍GradientShop,着重介绍各项功能的实现过程。
坑没填完,先置顶提醒下自己0.0
jupyter中用cv2.imshow打开窗口进行显示后不能点击关闭按钮,否则消息处理机制会导致python挂掉。那么只有用matplotlib来画了,由于numpy和opencv的rgb通道排列是反的,所以做一个转化就可以了,粘贴下面代码里的函数,直接调用就好。
上一篇博客介绍了Laplace Pyramid进行fusion,其实也就介绍了Exposure Fusion的基本原理。Mertens Exposure Fusion 是HDR图像合成上非常经典的算法。Exposure Fusion的多尺度图像融合同样借助Laplace Pyramid分解和重建,特别强调的是编辑laplace金字塔的过程,在计算亮度权重、对比度权重、曝光权重后将构建权重的高斯金字塔,然后进行拉普拉斯金字塔的重建,最后得到一张各部分曝光都很良好的图像。
多频段的图像融合可以缓和图像亮度和纹理的突变,简单的说,就是构造laplace金字塔,通过对laplace金字塔进行编辑,之后再重建laplace金字塔,来得到融合图像的过程。
泊松融合(Poisson Blending)又作 Seamless clone,用于将两幅图像“无缝”的融合起来,基本原理就是最优化一个方程,尽量在和base边界处保持相关的亮度,同时保留剪切过来图像的梯度,这样看起来两张图像就“无缝”拼合在一起了。因为该工具在opencv中已经存在,所以我们可以直接使用opencv体验其效果。这篇博简单介绍原理,以及感受效果。
制作Excel田字格的话,可以通过单元格格式+线条的方式快速制作,博主在玩儿VBA,也顺带编(摘)写(抄)了一个小工具,可以方便一键生成田字格。后面如果有更多有用的小功能的话再做一个插件来玩儿。
制作简单的动态图表,用Matplotlib就可以了,Matplotlib中的FuncAnimation类可以通过一个迭代器不断创建图像帧,最后可以通过plt.show,或者直接save,将帧拼成动画保存下来。原理非常简单,博主简单做下记录,没有太多介绍。
前排放个参考链接,里面有更多炫酷的动图制作代码:Animatin-With-Matplotlib
最近莫名其妙的收到一份美元信用卡扣费账单。万恶资本主义的血汗工厂——亚马逊——提供过12个月AWS的免费试用,即使停止了示例也会扣费,试用到期后没有提示自动扣除信用卡费用,AWS还不能删除默认信用卡绑定,即使注销账户还是有可能产生扣费,恶心程度堪比国内百度。
信用解绑这个问题很关键,研究了下解决AWS流氓扣费的办法,以供参考:
本文提(摘)供(抄)四种nginx环境下实现301强制http跳转到https的方式,除了http转https之外,也可以修改rewrite规则实现各种301跳转。
Nginx配置文件修改地址: /usr/local/nginx/conf/vhost/domain_name.conf