hole

Fix-Mapped Addresses

不问归期 提交于 2021-02-12 01:44:27
一、前言 某天,wowo同学突然来了一句:如果要在start_kernel中点LED,ioremap在什么时间点才能调用呢?我想他应该是想通过点LED灯来调试start_kernel之后的初始化的代码(例如DTB解析部分的代码)。那天,我们两个花了二十分钟的时间,讨论相关的问题,我觉得很有意思,因此决定写fix mapped address这样的一份文档。 在汇编代码中,由于没有打开MMU,想怎么访问外设都很简单,直接使用物理地址即可,然而,进入start kernel之后(打开了MMU),想要访问硬件都是那么的不方便,至少需要通过ioremap获取了虚拟地址之后才可以访问。但是,实际上,在内核的启动的初始阶段,内存管理子系统还没有ready,ioremap还不能调用(在mm_init之后可以正常使用)。 实际上,这个需求是和early ioremap模块相关,此外,还有一些其他的需求,内核合并了这些需求并提出了fix mapped address的概念。本文就是描述关于fix mapped address的方方面面,BTW,本文的代码来自4.4.6内核,体系结构相关的代码依然选择的是ARM64。 二、什么是fixmap? Fix map中的fix指的是固定的意思,那么固定什么东西呢?其实就是虚拟地址是固定的,也就是说,有些虚拟地址在编译(compile-time

Occlusion(遮挡剔除)

末鹿安然 提交于 2020-12-29 18:29:57
Occlusion 1.视锥体剔除(Frustum Culling)   根据摄像机的视见体的范围对场景模型进行剔除操作,在视见体以外的物体不被渲染,但是在视见体中的物体会以离摄像机最远的物体开始渲染,逐渐渲染靠近摄像机的物体。后渲染的物体会覆盖先前渲染的物体。 锥体剔除只剔除摄像机视角范围外的物体而对于被包含在视见体中的其他对象还是会进行渲染,即摄像机看不到的游戏对象也会进行渲染。 2.遮挡剔除(Occlusion Culling)   剔除视见体以外的游戏对象,并且剔除视见体内被其他游戏对象所遮住的物体。 静态物体的遮挡剔除:   将需要自动遮挡的对象勾选 为Occluder Static/Occludee Static,然后在 Occlusion 中进行简单的设置 Bake 即可。最后可以在 Visualization 模式下进行测试。    Occluder Static: 需要进行遮挡剔除操作的对象勾选; Occludee Static: 进行遮挡剔除操作的对象为透明或半透明,以及那些不太可能遮挡其他物体的小物体。即能被其他物体遮挡而本身却不会遮挡到其他物体,这将有效减少计算量。 Smallest Occluder: 该值越小,烘焙的效果越好越精确 Smallest Hole: 最小的洞 Backface Threshold: Visualization :形象化

关于SSD和YOLO对小目标的思考

穿精又带淫゛_ 提交于 2020-11-08 08:30:35
所谓的小目标,要看是绝对小目标(像素),和相对小目标(相对原图的长宽来看的)。大目标小目标只跟receptive field(感受野)有关,cnn本身可以检测任何尺度的物体。ssd对小目标检测不太适用,但R-FCN速度和鲁棒存在问题。 小目标分为很多种,背景单一还是比较好做的。有一篇小人脸检测用的是 fullyconvolutionalnetwork(FCN) + ResNet ,此篇论文检测小目标用了其周边的信息,如头发,肩膀。 小目标像素特征少,不明显,因此和大目标相比,小目标的检测率低,这个用任何算法上都是无法避免的。SSD,YOLO等单阶段多尺度算法,小目标检测需要高分辨率,但是SSD对小目标的检测是在浅层特征上进行,而深层的特征用来检测大目标,但是!深层的特征语义信息非常丰富,这是一个矛盾。例如底层conv4_3anchor设置的是0.1~0.2:30x60,对于720p的图像检测尺寸就有72个像素,还是太大了。事实上SSD的源码允许一个特征层做多个尺度的滑窗,将参数min_sizes里的每个元素初始化为一个列表,就可以在相应特征层中生成不同尺度的anchor,如果你设计的足够仔细,基本就可以覆盖足够小的目标了,不过此时anchor的数量估计会涨不少,速度也会降下来。 faster rcnn,yolo,ssd对小目标检测结果都不好

About Thermal Models

心已入冬 提交于 2020-10-27 18:27:24
Among SPICE models, there are what are called thermal models and thermal dynamic models, which are used to perform simulations relating to heat. We first describe thermal models. We hope the reader will acquire a conceptual image of the general nature of thermal models. What is Thermal Model? A thermal model is a model of an electrical circuit that corresponds to transient thermal resistances, for use in calculations of the thermal circuit associated with the electrical circuit. Thermal resistances are represented by R, and thermal capacities by C. The interchange of thermal circuits and

基于Turf.js教你快速实现地理围栏的合并拆分

|▌冷眼眸甩不掉的悲伤 提交于 2020-10-03 06:32:27
以下内容转载自totoro的文章《几何计算-基于Turf.js实现多边形的拆分及合并》 作者:totoro 链接: https://blog.totoroxiao.com/geo-polygon-split-union/ 来源: https://blog.totoroxiao.com/ 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 JavaScript API GL 近期为支持物流行业实现了几何图形编辑器,用户可通过编辑器接口进行点、线、面、圆的绘制和编辑。在物流行业中常见的使用场景是配送区域及地理围栏的绘制,常会有对已有区域进行拆分或者合并的需要,所以编辑器也提供了相应的功能。本文介绍了如何基于Turf实现多边形的拆分及合并。 背景介绍 多边形的拆分合并 多边形的拆分是指将多边形沿着线切分为几个多边形。如下图所示,不仅可以沿线一分为二,当线与多边形有多段相交时也可以分为多份,另外当多边形带洞(环多边形)时也可以在拆分后保持洞的形状。 多边形的合并是指将多个多边形合并为一个多边形,其前提条件是多边形之间有交叉区域或者共边。如下图所示,完全共边或者部分共边都可以合并,当有交叉时会贯通交叉部分。 Turf.js 不难发现,多边形的拆分合并中会有大量且复杂的几何计算,包括点、线、面相互之间的相交、包含等计算。不过我们并不需要造轮子,可以使用Turf

对命名实体识别进行基准测试:StanfordNLP,IBM,spaCy,Dialogflow和TextSpace

天大地大妈咪最大 提交于 2020-08-20 09:00:17
作者|Felix Laumann 编译|VK 来源|Towards Data Science NER是信息提取的一个子任务,它试图定位并将非结构化文本中提到的指定实体划分为预定义的类别,如人名、组织、位置、医疗代码、时间表达式、数量、货币。 我们创建了我们自己的小型测试数据集,其中11个示例来自谷歌的Taskmaster 2数据集,该数据集于2020年2月刚刚发布。我们将此数据集视为NER解决方案中未来研究和产品的基准数据集。我们用该数据集来探索TextSpace。 这个数据集中的句子可能在长度和包含的信息上有所不同,但是我们选择了其中包含大量实体的句子,因此我们可以根据最新的NER解决方案来区分优劣。我们测试集中的句子来自不同的领域,因为我们想看看我们在这篇文章中比较的解决方案有多灵活。请注意,这些示例中使用了Dialogflow聊天机器人,因此我们也希望Dialogflow在这些例子上能够执行得很好。 我们将首先详细地看两个例子,最后会有一个总结。 机票预订 让我们以一个想要预订航班的用户的句子为例: "So, I would like to fly out sometime tonight and fly back in the evening in 4 days. From I’m looking to go to Denver. I’m flying out of San

基于Turf.js教你快速实现地理围栏的合并拆分

隐身守侯 提交于 2020-08-19 13:50:29
以下内容转载自totoro的文章《几何计算-基于Turf.js实现多边形的拆分及合并》 作者:totoro 链接: https://blog.totoroxiao.com/geo-polygon-split-union/ 来源: https://blog.totoroxiao.com/ 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 JavaScript API GL 近期为支持物流行业实现了几何图形编辑器,用户可通过编辑器接口进行点、线、面、圆的绘制和编辑。在物流行业中常见的使用场景是配送区域及地理围栏的绘制,常会有对已有区域进行拆分或者合并的需要,所以编辑器也提供了相应的功能。本文介绍了如何基于Turf实现多边形的拆分及合并。 背景介绍 多边形的拆分合并 多边形的拆分是指将多边形沿着线切分为几个多边形。如下图所示,不仅可以沿线一分为二,当线与多边形有多段相交时也可以分为多份,另外当多边形带洞(环多边形)时也可以在拆分后保持洞的形状。 多边形的合并是指将多个多边形合并为一个多边形,其前提条件是多边形之间有交叉区域或者共边。如下图所示,完全共边或者部分共边都可以合并,当有交叉时会贯通交叉部分。 Turf.js 不难发现,多边形的拆分合并中会有大量且复杂的几何计算,包括点、线、面相互之间的相交、包含等计算。不过我们并不需要造轮子,可以使用Turf

GraphicsLab Project 之 Screen Space Planar Reflection

ⅰ亾dé卋堺 提交于 2020-08-13 20:02:02
作者:i_dovelemon 日期:2020-06-23 主题:Screen Space Planar Reflection, Compute Shader 引言 前段时间,同事发来一篇讲述特化版本的 Screen Space Reflection 实现 Planar Reflection 的文章。出于好奇,实验了下,看看效果如何。如下是目前实现出来的基础版本的效果: 原理 对于上图来说, Water Plane 表示水面,上半部分为实际场景的山体,下半部分为以水面为镜像进行反射之后的山体效果。 对于山体上某一个点(图中白色点)来说,它对应的镜像点为黄色点。 我们可以从 Screen Position 以及 Depth Texture 信息,计算出来白点的世界坐标位置 WorldPosition 。 然后可以以 Water Plane 所在的平面对该 WorldPosition 作镜像操作,得到 ReflectionPosition 。 得到 ReflectionPosition 之后,我们就能够计算出来 ReflectionPostion 所对应的屏幕坐标 Reflection Screen Position 。 根据前面的操作,我们就可以知道,此时 Reflection Screen Position 所反射的颜色即为 Screen Positon 所表示的颜色。

Linux 下的两个特殊的文件 -- /dev/null 和 /dev/zero 简介及对比

こ雲淡風輕ζ 提交于 2020-08-11 14:30:52
转自: https://blog.csdn.net/longerzone/article/details/12948925 1、概论 -- 来自维基的解释 /dev/null : 在类Unix系统中,/dev/null,或称 空设备,是一个特殊的设备文件 , 它丢弃一切写入其中的数据 (但报告写入操作成功), 读取它则会立即得到一个EOF。 在程序员行话,尤其是Unix行话中,/dev/null 被称 为位桶(bit bucket)或者黑洞(black hole) 。空设备通常被用于丢弃不需要的输出流,或作为用于输入流的空文件。这些操作通常由重定向完成。 /dev/zero : 在类UNIX 操作系统中, /dev/zero 是一个特殊的文件, 当你读它的时候,它会提供无限的空字符(NULL, ASCII NUL, 0x00)。 其中的一个典型用法是用它提供的字符流来覆盖信息,另一个常见用法是产生一个特定大小的空白文件。BSD就是通过mmap把/dev/zero映射到虚地址空间实现共享内存的。可以使用mmap将/dev/zero映射到一个虚拟的内存空间,这个操作的效果等同于使用一段匿名的内存(没有和任何文件相关)。 2、 /dev/null 的日常使用 把/dev/null看作"黑洞"。 它等价于一个只写文件 , 并且所有写入它的内容都会永远丢失

GraphicsLab Project 之 Screen Space Planar Reflection

对着背影说爱祢 提交于 2020-08-11 05:12:40
作者:i_dovelemon 日期:2020-06-23 主题:Screen Space Planar Reflection, Compute Shader 引言 前段时间,同事发来一篇讲述特化版本的 Screen Space Reflection 实现 Planar Reflection 的文章。出于好奇,实验了下,看看效果如何。如下是目前实现出来的基础版本的效果: 原理 对于上图来说, Water Plane 表示水面,上半部分为实际场景的山体,下半部分为以水面为镜像进行反射之后的山体效果。 对于山体上某一个点(图中白色点)来说,它对应的镜像点为黄色点。 我们可以从 Screen Position 以及 Depth Texture 信息,计算出来白点的世界坐标位置 WorldPosition 。 然后可以以 Water Plane 所在的平面对该 WorldPosition 作镜像操作,得到 ReflectionPosition 。 得到 ReflectionPosition 之后,我们就能够计算出来 ReflectionPostion 所对应的屏幕坐标 Reflection Screen Position 。 根据前面的操作,我们就可以知道,此时 Reflection Screen Position 所反射的颜色即为 Screen Positon 所表示的颜色。