| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> RetinaNet锚框部分(纯属学习与记录) -> 正文阅读 |
|
[Python知识库]RetinaNet锚框部分(纯属学习与记录) |
在model.py文件中可以看到以下几行代码: from retinanet.anchors import Anchors self.anchors = Anchors() img_batch, annotations = inputs anchors = self.anchors(img_batch) 1 找到Anchors函数,开始生成锚框操作 根据以上代码, 可以得到相关数据。 2 image_shape = image.shape[2:] 从刚才的实例中得出实参为img_batch(个人理解是我们输入的数据图像)。 image_shape = np.array(image_shape) 将形式改变为数组形式 image_shapes = [(image_shape + 2 ** x - 1) // (2 ** x) for x in self.pyramid_levels] 不同的特征图尺寸(看别的解析是说,这一公式的含义是原图//2**x, 但是我还是没能明白) ? 3 for idx, p in enumerate(self.pyramid_levels): 进行遍历,以下只以P3为例,后续P4-P7操作相同。 anchors = generate_anchors(base_size=self.sizes[idx], ratios=self.ratios, scales=self.scales) 参数1:32; 参数2:0.5,1,2; 参数3:2**0,2**(1/3),2**(2/3) 导入generate_anchors函数部分: 锚框的生成以后,进行转换操作 shifted_anchors = shift(image_shapes[idx], self.strides[idx], anchors) 参数1:P3,参数2:2**3=8,参数3:所有锚框。 导入shift函数部分: ? 最后经过融合以及维度转换等操作,得到最终的锚框。? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/26 12:06:09- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |