首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏相约机器人

    使用QuadTree算法在Python中实现Photo Stylizer

    这就是将在本文中讨论的,如何实现自己的Quadtree艺术程序,就像在这里所做的那样: github.com/ribab/quadart ? (int(x + w/2.0), int(y))) else: self.draw.rectangle(x, y, x + w, y + h) 这就是实现Quadtree

    2.6K10发布于 2019-08-15
  • 来自专栏集智书童

    阿里提出QuadTree Transformer | 最轻、最强的Vision Transformer Backbone

    本文引入QuadTree Attention,将计算复杂度从二次降低到线性。QuadTree Transformer构建token pyramid,并以一种从粗到细的方式计算Attention。 3.2 QuadTree Attention 为了降低Vision Transformer的计算成本,提出了QuadTree Attention。 在计算了注意力分数之后,在所有粒度上聚合信息,这里设计了2个架构,称为QuadTree-A和QuadTree-B。 2、QuadTree-B QuadTree-A中从所有层次上递归计算的注意力分数 ,这使得在更精细的层次上的分数变小,并减少了精细图像特征的贡献。 QuadTree-A和QuadTree-B都只涉及稀疏注意力评价。因此,该方法大大降低了计算复杂度。QuadTree Attention的计算复杂度与Token的数量是线性的。

    1.6K20编辑于 2022-02-11
  • 来自专栏HT

    HT for Web可视化QuadTree四叉树碰撞检测

    QuadTree四叉树顾名思义就是树状的数据结构,其每个节点有四个孩子节点,可将二维平面递归分割子区域。 QuadTree常用于空间数据库索引,3D的椎体可见区域裁剪,甚至图片分析处理,我们今天介绍的是QuadTree最常被游戏领域使用到的碰撞检测。 QuadTree的实现有很多成熟的版本,我选择的是 https://github.com/timohausmann/quadtree-js/ 四叉树的算法很简单,因此这个开源库也就两百来行代码。 使用也非常简单,构建一个Quadtree对象,第一个参数传入rect信息制定游戏空间范围,在每次requestAnimationFrame刷新帧时,先通过quadtree.clear()清除老数据,通过 quadtree.insert(rect)插入新的节点矩形区域,这样quadtree就初始化好了,剩下就是根据需要调用quadtree.retrieve(rect)获取指定矩形区域下,与其可能相交需要检测的矩形对象数组

    1.5K90发布于 2018-01-03
  • 来自专栏博思奥园

    【算法】四叉树并集

    给你两个四叉树,quadTree1 和 quadTree2。其中 quadTree1 表示一个 n * n 二进制矩阵,而 quadTree2 表示另一个 n * n 二进制矩阵。 即quadTree1.TopLeft对应quadTree2.TopLeft,quadTree1.TopRight对应 quadTree2.TopRight等 治:判断当前节点是否满足临界终止,并进行计算返回 quadTree1.TopLeft = intersect(quadTree1.TopLeft, quadTree2.TopLeft) quadTree1.TopRight = intersect(quadTree1 if quadTree1.IsLeaf { if quadTree1.Val { return quadTree1 } return quadTree2 } if && quadTree1.BottomLeft.IsLeaf && quadTree1.BottomRight.IsLeaf && quadTree1.TopLeft.Val == quadTree1

    65210编辑于 2022-11-11
  • 来自专栏hightopo

    HTML5实现3D和2D可视化QuadTree四叉树碰撞检测

    QuadTree常用于空间数据库索引,3D的椎体可见区域裁剪,甚至图片分析处理,我们今天介绍的是QuadTree最常被游戏领域使用到的碰撞检测。 www.hightopo.com/demo/QuadTree/ht-quadtree.html ? QuadTree的实现有很多成熟的版本,我选择的是 https://github.com/timohausmann/quadtree-js/ 四叉树的算法很简单,因此这个开源库也就两百来行代码。 quadtree.insert(rect)插入新的节点矩形区域,这样quadtree就初始化好了,剩下就是根据需要调用quadtree.retrieve(rect)获取指定矩形区域下,与其可能相交需要检测的矩形对象数组 .html http://www.hightopo.com/demo/QuadTree/ht-quadtree.html ?

    86760发布于 2018-07-09
  • 来自专栏HT

    HTML5实现3D和2D可视化QuadTree四叉树碰撞检测

    QuadTree常用于空间数据库索引,3D的椎体可见区域裁剪,甚至图片分析处理,我们今天介绍的是QuadTree最常被游戏领域使用到的碰撞检测。 /www.hightopo.com/demo/QuadTree/ht-quadtree.html ? QuadTree的实现有很多成熟的版本,我选择的是 https://github.com/timohausmann/quadtree-js/ 四叉树的算法很简单,因此这个开源库也就两百来行代码。 quadtree.insert(rect)插入新的节点矩形区域,这样quadtree就初始化好了,剩下就是根据需要调用quadtree.retrieve(rect)获取指定矩形区域下,与其可能相交需要检测的矩形对象数组 .html​ http://www.hightopo.com/demo/QuadTree/ht-quadtree.html ?

    97190发布于 2018-01-03
  • 来自专栏hightopo

    HT for Web可视化QuadTree四叉树碰撞检测

    QuadTree四叉树顾名思义就是树状的数据结构,其每个节点有四个孩子节点,可将二维平面递归分割子区域。 QuadTree常用于空间数据库索引,3D的椎体可见区域裁剪,甚至图片分析处理,我们今天介绍的是QuadTree最常被游戏领域使用到的碰撞检测。 QuadTree的实现有很多成熟的版本,我选择的是 https://github.com/timohausmann/quadtree-js/ 四叉树的算法很简单,因此这个开源库也就两百来行代码。 使用也非常简单,构建一个Quadtree对象,第一个参数传入rect信息制定游戏空间范围,在每次requestAnimationFrame刷新帧时,先通过quadtree.clear()清除老数据,通过 quadtree.insert(rect)插入新的节点矩形区域,这样quadtree就初始化好了,剩下就是根据需要调用quadtree.retrieve(rect)获取指定矩形区域下,与其可能相交需要检测的矩形对象数组

    90010发布于 2018-07-09
  • 来自专栏SnailTyan

    Leetcode 427. Construct Quad Tree

    Version 1 """ # Definition for a QuadTree node. class Node: def __init__(self, val, isLeaf, topLeft """ class Solution: def construct(self, grid: List[List[int]]) -> 'Node': return self.quadTree (grid, 0, 0, len(grid)) def quadTree(self, grid, row_start, column_start, n): total = 0 + n // 2, n // 2) node.bottomLeft = self.quadTree(grid, row_start + n // 2, column_start , n // 2) node.bottomRight = self.quadTree(grid, row_start + n // 2, column_start + n //

    47510发布于 2021-07-08
  • 来自专栏新智元

    SFU、阿里提出通用QuadTree Attention,复杂度变线性,性能还更强!ICLR 2022已接收

    根据计算方式的不同设计了2种机制:QuadTree-A与QuadTree-B。在QuadTree-B方法中,对于最粗的那层,只需根据注意力公式计算。  为了验证QuadTree Transformer的效果,研究人员将LoFTR中的线性变换器替换为QuadTree。 相比之下,QuadTreeA 和QuadTreeB在很大程度上超过了线性Transformer和SR注意力,并且Quadtree-B 总体上比Quadtree-A表现得更好。 研究人员还在基本的self-attention任务中测试了QuadTree Transformer的性能。 并且QuadTree-B实现了更高的性能,同时比PVTv2的flops少得多,而且性能也同时超过了ResNet和ResNeXt。

    82030编辑于 2022-03-04
  • 来自专栏charlieroro

    Booking.com如何在毫秒内搜索数百万个地点

    下面看下Booking是如何查找、构建和更新Quadtree的。 查找Quadtree 当用户选择一个特定的有界框时,Booking会从Quadtree 中为该有界框查找最重要的标记,因此使用了广度优先查找(从上往下按照重要度查找到一定数目的标记)。 构建Quadtree 本段内容来自该博客 Quadtree保存在内存中,且会时不时地通过重建来添加新的标记(或修改标记的重要程度)。 一开始只有一个表示整个世界的根节点,且为空。 ,并让每个Quadtree负责特定的地理区域来实现水平伸缩。 对于存储了300,000个标记的Quadtree,其p99检索速度小于5.5毫秒。

    78840编辑于 2023-05-27
  • 来自专栏前端西瓜哥的前端文章

    快速检索碰撞图形:四叉树碰撞检测

    算法我就不自己实现了,这里展示 quadtree-js 库的代码实现。 https://github.com/timohausmann/quadtree-js 构造函数: function Quadtree(bounds, max_objects, max_levels, this.bounds.height / 2, x = this.bounds.x, y = this.bounds.y; // 右上 this.nodes[0] = new Quadtree }, this.max_objects, this.max_levels, nextLevel ); // 左上 this.nodes[1] = new Quadtree }, this.max_objects, this.max_levels, nextLevel ); // 左下 this.nodes[2] = new Quadtree

    1.8K20编辑于 2022-12-21
  • 来自专栏vivo互联网技术

    Elasticsearch 在地理信息空间索引的探索和演进

    针对上面的问题,ES 2.2版本引入特性:基于四叉树(Quadtree)的地理位置查询(Lucene 5.3版本实现)。Quadtree并非什么复杂高深的数据结构,相比二叉树,多了两个子节点。 The region quadtree is a type of trie.在区间划分上,Quadtree跟geohash的处理思路有些相似。在一维世界,二分可以无限迭代。 下面这个图可以非常形象展示Quadtree的区间划分过程。ES 2.2是如何使用Quadtree来实现geo_distance查询呢? 有了Quadtree后,只需要一个字段存储就可以了。 ES 2.2版本的思路是利用Quadtree对整个世界地图进行网格化。具体的流程如下: Quadtree处理流程 第一步: 以经纬度(0,0)为起始中心点,将整个世界切分成4个区块。

    2K30编辑于 2022-06-27
  • 来自专栏XINDOO的专栏

    POJ数据结构专辑(含部分题解)

    Geniuses hash 2188 Cow Laundry 逆序对 2227 The Wedding Juicer 堆+floodfill 2236 Wireless Network 并查集 2266* Quadtree 递归构造四叉树 2269* Friends 表达式 2270 Quadtree II or: Florida Jones strikes back 将2266反之 2299 Ultra-QuickSort

    61430发布于 2021-01-22
  • 来自专栏ACM算法日常

    四叉树在碰撞检测中的应用

    什么是四叉树(Quadtree) 四叉树是一种将一块2D矩形区域(理解为游戏沙盒)分割为更易于管理的子区域的数据结构. 四叉树是二叉树的扩展——将2个子节点变为4个子节点. y += vy; } bool operator == (const Object &o) { return id == o.id; } }; QuadTree.h double getw() { return w; } double geth() { return h; } }; QuadTree.cpp #include "QuadTree.h" #include <string.h> Line lines[10005]; int top; QuadTreeNode::QuadTreeNode( include <graphics.h> #include <time.h> #include <MMSystem.h> #pragma comment(lib, "winmm.lib") #include "QuadTree.h

    2.5K30发布于 2020-08-20
  • 来自专栏计算机视觉SLAM情报站

    CVPR 2022 图像匹配挑战赛回顾

    这些模型包括 LoFTR[5], SuperGlue[7], QuadTree Attention LoFTR[6]。一些队伍还使用了尺度增强算法(多尺度特征匹配)。 不过作者提到,现阶段论文还在盲审,目前不能公开太多信息,笔者会持续跟踪; 使用其他匹配器(Baseline + QuadTree[6] + LoFTR[5] + SuperGlue[7])进一步增强精度 Transformers, CVPR 2021, code: https://github.com/zju3dv/LoFTR, pdf: https://arxiv.org/abs/2104.00680 [6]: QuadTree

    2K40编辑于 2022-12-31
  • 来自专栏智能生信

    [CVPR 2022 | 论文简读] 基于Transformer的高质量实例分割方法

    不同于现有方法统一处理整张图片,Mask Transfiner提出了新颖的信息损失区域(Incoherent Regions)检测机制,在此基础上构造了四叉树结构(Quadtree Structure)

    70410编辑于 2022-12-29
  • 来自专栏项目实战

    新零售实战 | 新零售物流革命:Flink实时计算引擎与多物流商API对接的工程化实践

    5.2 电子围栏动态响应class GeoFenceMonitor { constructor() { this.fences = new QuadTree(); this.websocket 5.2.2 架构特性解析双引擎驱动架构QuadTree空间索引:实现地理围栏的快速空间检索。WebSocket实时通信:保障预警信息的毫秒级推送。 分层处理机制网络层(WebSocket) / 计算层(QuadTree) / 业务层(ReDispatch)分离。 5.2.4 键参数解析空间索引参数QuadTree节点容量:影响内存占用与查询效率的平衡。区域分裂阈值:决定空间划分粒度(默认未显式设置)。网络参数WebSocket端口:3001需确保防火墙放行。

    53320编辑于 2025-05-11
  • 来自专栏Creator星球游戏开发社区

    冰冰教你用“四叉树”手写“碰撞检测”,太感动了!

    https://github.com/timohausmann/quadtree-js //export default class QuadtreeCollision { private _tree; _tree = new Quadtree(rect); } 那么怎么检测碰撞呢? 先看看引擎(v2.3.3)的 CollisionManager 是怎么处理的。

    3.4K20发布于 2020-07-09
  • 来自专栏四火的唠叨

    常见分布式应用系统设计图解(五):Proximity 系统

    这个匹配机制有大致有这样两种实现方式(之前在这篇文章中都提到过): 一种是使用 QuadTree,就是说把地图上任意一个区域都划分成四个子区域,每个区域如果节点超过一个阈值,就继续划分。 的办法就是把查找条件和存储的数据全部都变成一个个单值,这样就可以利用我们熟悉的一维数组区域查找的技术来高效实现(比如把它索引化,而索引化其实是可以通过 B+树来实现的,因此 Geohash 的查询时间复杂度和 QuadTree

    89020编辑于 2022-07-19
  • 来自专栏前端西瓜哥的前端文章

    图形遍历效率低?试试 R 树

    tree.remove(item); tree.insert(newItem); 四叉树(Quadtree) 还有一种同样可以减少遍历节点数量的算法,叫做 四叉树(Quadtree)碰撞检测。

    84510编辑于 2023-12-04
领券