k线图 三个十字星排列-angelalund.com

google seo -> telegram: @ehseo6

">Newsnet 2023-04-02 17:37
  • home  >   /宣城谰貉杜网络科技  >   k线图 三个十字星排列
  • 双色球2017141期公益时报谜面 pc蛋蛋开奖微信群
    麦丽素双色球15008期 pc北京28开奖网站参考开奖历史
    pc蛋蛋属于什么彩票 how about k线图 三个十字星排列?
    What's the k线图 三个十字星排列 phone number? What is k线图 三个十字星排列 contact information ?
    Online consultation k线图 三个十字星排列 The picture of the k线图 三个十字星排列
    k线图 三个十字星排列of the video Is k线图 三个十字星排列 for real ?
    k线图 三个十字星排列's website A map of k线图 三个十字星排列
    k线图 三个十字星排列 of tiktok k线图 三个十字星排列music
    k线图 三个十字星排列 of news k线图 三个十字星排列app
    k线图 三个十字星排列company Customer service of k线图 三个十字星排列 company

    四灵

    据台湾媒体报道,Twins成员阿娇(钟欣潼)1月31日宣布,和交往近半年的医界王阳明赖弘国(Michael)即将结婚,随后越爱越高调,经常公开谈论感情话题,她22日出席活动时爆料,男方想要的婚礼很恐怖,小两口会在香港宴客,台湾还不一定,但会与亲友一同用餐。   R这种设想虽然能暂时保住残余武装和地盘,但无疑无法改变其所处的困境,甚至将为这股库尔德武装带来更大的风险。   R

    22日,黄奕诉黄毅清侵犯名誉权一案二审开庭审理。 福彩2007年3d开奖数据四灵   I老公在外地做生意,公公婆婆也没退休,爸妈太远更帮不上忙,一胎从头到尾都是我一个人,已经没有什么个人的时间和空间了。   J

    同年3月20日,王小洪在平安中国网络访谈活动中表示,2015年,首都公安叫响西城大妈、朝阳群众、海淀网友、丰台劝导队、网警志愿者等群众组织品牌,形成了警民携手、共保平安的强大合力。   C巨大的分差也让这之后的时间变成练兵时间。   W

    她22日出席活动时爆料,男方想要的婚礼很恐怖,小两口会在香港宴客,台湾还不一定,但会与亲友一同用餐。 铮?E鉴于尚未确认周立波是否在开车时使用手机,警方决定上前跟随,并叫停车辆。   B

    近日,多名网友在社交网站晒出偶遇何炅和黄磊的照片,两人因录节目一起现身某菜市场,两位大明星和商贩讨价还价亲自选购食材,若不是周围的摄像机和麦克风,两人的打扮完全看不出来像是在拍摄节目非常生活化。   W

    普通球迷都能看出来的问题,里皮不可能再视若无睹,再结合赛后里皮所讲的一番话,因此可以预见,与捷克之间的三四名决赛,有不少上一场比赛的主力球员将肯定无法再获得出场机会。  铮?O

    面对网友的指责,黄毅清发文:求黄奕放过!别缠着我不放了,我真的没空,也不想搭理你,想炒作能不能找别人?用你最擅长的一招,让你团队冒充狗仔,把你现任跟拍一下,曝光一下,你不就顺理成章的可以上头条了,我还能顺便送个祝福啥的。 铮? X《自然》杂志最新研究表明,里面有至少万吨塑料垃圾,比之前估计的多16倍。   K江苏体彩十六号四灵

    迪亚洛中投和灌篮相继得手,米勒两次投中三分球,让鹈鹕队的情况稍有好转。   C

    他又指儿童使用电子产品也是不能避免的,只能尽量减少使用的时间。   V本次德国赛,中国队虽然未派出丁宁、刘诗雯、朱雨玲、陈梦这样的主力大将,但看得出对于比赛还是志在必得的,因此陈幸同、孙颖莎、武杨、张蔷、木子、李佳燚、文佳、黄颖琦、范思琪齐上阵,这样看上去还算强大的团队,却遇到了巨大的尴尬。   V

    今年3月14日,孙宏斌宣布辞去乐视网所有职务。   P

    关于搜车的合法性,AnthonyLitterello警官称,由于周立波不懂英语,车内的乘客唐爽充当翻译,在唐爽的帮助下,警方查验了周立波的驾驶证件。   K

    他还透露了一些工作方向:我们将重点推进教育、医疗卫生、交通运输、环境保护等分领域财政事权和支出责任划分改革,促进各级政府更好地履职尽责,提高基本公共服务供给效率。   Kemmm…但就目前看来,刘晓庆并没有更强烈的设计感强、小型翡翠审美趋势,只能说,她自己花的钱,开心就好吧。快三1000期开奖结果四灵   I

    论坛官方介绍,中国发展高层论坛从2000年开始设立,李克强总理曾先后参加过8届论坛。   Z凤凰网娱乐讯近日,王源受知名品牌邀请,前往瑞士出席活动。   T

    据悉,节目中众嘉宾还晒出了秋裤,韩雪为证明身份更是自曝我的秋裤20年没洗,引发现场爆笑。   V2013年到2015年,王小洪调职河南,先后担任河南省人民政府省长助理、党组成员,省公安厅厅长、党委书记;省公安厅督察长,武警河南总队第一政委、党委第一书记;河南省人民政府副省长,省委政法委副书记。   X

    现在欧洲天气还是颇为寒冷,她穿着露肩纱裙,与一旁套着羽绒大衣的工作人员形成对比。   D现在欧洲天气还是颇为寒冷,她穿着露肩纱裙,与一旁套着羽绒大衣的工作人员形成对比。   X

    日前,有消息称贝尔正在新一轮的减肥过程中:贝尔的减肥过程已经进行到一半了,但他减肥期间的身体状况有些不好。   T最后一节已经进入垃圾时间,骑士这边乐福和胡德的接连得分让比赛进入垃圾时间,手握巨大领先的骑士在这之后也没有换上主力的意思,小南斯和克拉克森这对曾经湖人球员接连取得进球继续扩大领先。   O

    本赛季至今,格林共出场62次,场均上场分钟能得到分篮板助攻;杜兰特共出场60次,场均上场分钟能得到分篮板助攻。   C 2017双色球近二十期杀号四灵

    他们同样是祖国的希望,不能变成祖国的绝望。   R

    由于金钟国和宋智孝因合作《RunningMan》频传绯闻,让拍摄现场弥漫紧张氛围。   C浓眉哥强攻篮下为鹈鹕队打破僵局,但哈登马上又是中投和助飞卡佩拉的连续操作,在他的带领下,火箭队也打出了17-4的完美开局。   C

    如今的中国,是一个流动的社会,很多孩子要么小小年纪开始学做生意,要么干脆早早去打工。  铮?K

    最后一节已经进入垃圾时间,骑士这边乐福和胡德的接连得分让比赛进入垃圾时间,手握巨大领先的骑士在这之后也没有换上主力的意思,小南斯和克拉克森这对曾经湖人球员接连取得进球继续扩大领先。   G最后,哈林把妻女接上车后离去,老婆还被发现,疑似拿袜子逗弄孩子的模样,一会儿又鼓掌大笑,看上去非常开心。   L

    不少网友当时还戏称他为……来源:微博截图来源:荔直播   S

    容祖儿事后在社交平台分享感受,她留言道:难得和传媒界一聚,全部都可以说睇住我由少女变美少女。   Y

    ,她还说道,自己也有一个17岁的儿子,很喜欢唱歌,最近刚赢了学校歌唱比赛,她希望ROY(王源)可以有更好的发展,有更长的路可以影响全世界的年轻人。   Y排列三牛彩网行藏机图四灵她接着表示曾收到赖弘国传来的一张照片,看到之后吓到了,因未婚夫想布置成凉亭里摆满红色花婚礼,她更直呼:感觉好恐怖,好像鬼新娘。   C

    四灵

    报道称,人们很难不得出一个结论,即中国现在正处于与美国争夺人工智能领域主导地位的激烈竞争之中。  铮?P比起更换首发门将,里皮更应该考虑派出什么样的中后场阵容,来加强防守硬度,避免再出现对阵威尔士队的惨案。铮? V

    这样就不会和俄罗斯联邦混为一谈。   H他向受到美国全国步枪协会(NRA)支持的候选人发出警告,请把你们的简历准备好。  R

    如果再结合BenGeskin的可信度,意味着可作为参考,但暂时不能确证。   Gfcmh hk福彩四灵首批体验者拿到S9的第一件事,不是录制AR动态萌拍就是拍摄960帧凝时视频。   I

    而张靓颖的唱功也被国际的业界人士肯定了,前段时间,维密大秀在中国举行,而在参演歌手中唯一一位中国歌手就是张靓颖,而张靓颖也是在维密大秀上第一次登台的中国歌手。   D火箭取得赛季第59胜,打破队史胜场纪录。   O

    文章称,德国亚洲之家基金会中国项目负责人诺拉·萨斯米卡特说,迄今为止,法律小册子非常薄,只是在双边协议的框架内才有有效保护海外中国公司的相关规定。 铮? Q

    生活在村子里的千万富翁遭到了村农的排挤已经让他有些苦闹,但比起村民对他的态度,家里的一大家子人才让他最头疼。   H

    据外国媒体报道,一直和赛琳娜·戈麦斯藕断丝连的贾斯汀·比伯(JustinBieber)近日又和美女模特传出暧昧。   V凤凰网娱乐讯近日,陶昕然在社交平台上晒出一组与女儿互动的近照,并配文:一开始有了男友力,后来有了女友力,现在是妈妈力,自豪之情溢于言表。   C

    安道尔银行首席经济学家亚历克斯·富斯特说:很多决定往往是用来传递信号的,北京目前拟对美国约30亿美元产品加征关税的决定发出的信号基本上包含三点内容:我们会作出反应、我们有更大的能力进行反击、但目前我们不希望冲突升级。 铮? Z

    看起来她对大真的是情有独钟啊,不仅是特别大的天价翡翠,收藏蜜蜡那也必须是最大的,之前看到她捧着胸前的大蜜蜡的照片,讲真,都有点担心她会不会觉得脖子酸。   J声明称,中方不希望打贸易战,但绝不惧怕贸易战,有信心、有能力应对任何挑战。   F

    上任一个多月,北京警方在全市开展以住宿业安全制度落实、取缔无照场所、严控涉黄、涉赌警情为重点的专项清理整治行动中,就发现存在问题场所261家,依法罚款处罚52家,责令整改204家,取缔黑开旅馆22家,行政拘留违法人员17人。  铮?P

    比起更换首发门将,里皮更应该考虑派出什么样的中后场阵容,来加强防守硬度,避免再出现对阵威尔士队的惨案。  K

    文章称,自2013年启动一带一路倡议以来,中国计划投资的基础设施项目总计约9000亿美元,其中包括:在斯里兰卡和巴基斯坦修建港口,在非洲、东南亚和中亚融资修铁路,铺设穿越亚洲大陆的石油和天然气管道。   R5799元起的国行发布售价,介于其他Android旗舰与史上最贵iPhone之间,就是万年4GBRAM是不是小了点?选择S9还是再等等后面的骁龙845旗舰,这是一个问题。 铮? M

    这意味着国防规划者当下最优先考虑的是中国和俄罗斯,而非伊斯兰国组织、基地组织或生活在美国的恐怖分子。吉林林体彩十一选五开奖四灵  X可见,很多明星对自己的身边人都是出手大方。  铮?K

    来自教育的救济,无论多么早都不过分;对农村教育的倾斜,无论幅度多么大都仍嫌不足。   O一支打算清理这些垃圾的队伍清醒地意识到了这个挑战,他们将在今年夏天着手进行清理。  V

    当湖人在之前遭遇一波4连败颓势,外加小托马斯还因伤缺阵,似乎紫金军团想要走出困境相当艰难。  铮?I周小川进入央行领导层始自1996年,至退休卸任,其间仅短暂离开4年,两人的同事缘分之长可见一斑。   S

    27日深夜,黄毅清发文进行回应,称,强调自己以往的爆料都是真实存在的。   R不过,她的牵手画面被发现后,上传动态的女性友人,很快就把画面删除,留给外界更多想像空间。   N

    看起来她对大真的是情有独钟啊,不仅是特别大的天价翡翠,收藏蜜蜡那也必须是最大的,之前看到她捧着胸前的大蜜蜡的照片,讲真,都有点担心她会不会觉得脖子酸。广东十一选五前二5码四灵   G

    我就是那种一直犹豫,一直逃避的人。? 铮?P

    而今(24日)韩媒曝光金敏喜拉着父亲与洪尚秀逛商场照片,两人引起非议的感情似乎已获得女方家长同意。排列五开奖结果查询开奖四灵   S报道称,美国全国零售商联合会是对关税计划作出最强烈回应的机构之一。   M

    从用户数量和市值方面来说,中国的几家科技公司都是全球巨头。   I

    共同社说,日本的申请数量也较上年增加%,但以微弱差距位列第三。  铮?H同时,抓紧制定中央与地方收入划分改革方案。   R

    这款最新型号的iPhone去年上市,在中国组装,它在美国的售价为1000美元左右。   M

    一位老将,一位年轻小将,虽然不算好,但似乎也没有想象中的那么糟糕,毕竟这两位选手,都有争冠实力,尤其是孙颖莎,被誉为小魔王。讨论计划江苏快三四灵 ?  T

    年初的U23亚洲杯,U23国足的表现就可圈可点,虽然没有小组出线,但的确是实力不足,不过,球员们场上的拼搏精神还是显而易见的。   H此外,张玉宁虽然没有进球,看得出德甲前锋仍然状态不佳,但是他在场上也很拼,拿球、带球,张玉宁基本每球必争。   A

    恒星团队三分快三,一分快三计划网站四灵

    四灵

  • 9- 8- 7- 6- 5- 4- 3- 2- 1

    Table Of Contents
    Table Of Contents

    四灵

    目标检测算法通常会在输入图像中采样大量的区域,然后判断这些区域中是否包含我们感兴趣的目标,并调整区域边缘从而更准确地预测目标的真实边界框(ground-truth bounding box)。不同的模型使用的区域采样方法可能不同。这里我们介绍其中的一种方法:它以每个像素为中心生成多个大小和宽高比(aspect ratio)不同的边界框。这些边界框被称为锚框(anchor box)。我们将在“单发多框检测(SSD)”一节基于锚框实践目标检测。

    首先,导入本节需要的包或模块。这里我们新引入了contrib包,并修改了NumPy的打印精度。由于NDArray的打印实际调用NumPy的打印函数,本节打印出的NDArray中的浮点数更简洁一些。

    In [1]:
    
    %matplotlib inline
    import d2lzh as d2l
    from mxnet import contrib, gluon, image, nd
    import numpy as np
    np.set_printoptions(2)
    

    9.4.1. 生成多个锚框?

    假设输入图像高为\(h\),宽为\(w\)。我们分别以图像的每个像素为中心生成不同形状的锚框。设大小为\(s\in (0,1]\)且宽高比为\(r > 0\),那么锚框的宽和高将分别为\(ws\sqrt{r}\)\(hs/\sqrt{r}\)。当中心位置给定时,已知宽和高的锚框是确定的。

    下面我们分别设定好一组大小\(s_1,\ldots,s_n\)和一组宽高比\(r_1,\ldots,r_m\)。如果以每个像素为中心时使用所有的大小与宽高比的组合,输入图像将一共得到\(whnm\)个锚框。虽然这些锚框可能覆盖了所有的真实边界框,但计算复杂度容易过高。因此,我们通常只对包含\(s_1\)\(r_1\)的大小与宽高比的组合感兴趣,即

    \[(s_1, r_1), (s_1, r_2), \ldots, (s_1, r_m), (s_2, r_1), (s_3, r_1), \ldots, (s_n, r_1).\]

    也就是说,以相同像素为中心的锚框的数量为\(n+m-1\)。对于整个输入图像,我们将一共生成\(wh(n+m-1)\)个锚框。

    以上生成锚框的方法已实现在MultiBoxPrior函数中。指定输入、一组大小和一组宽高比,该函数将返回输入的所有锚框。

    In [2]:
    
    img = image.imread('../img/catdog.jpg').asnumpy()
    h, w = img.shape[0:2]
    
    print(h, w)
    X = nd.random.uniform(shape=(1, 3, h, w))  # 构造输入数据
    Y = contrib.nd.MultiBoxPrior(X, sizes=[0.75, 0.5, 0.25], ratios=[1, 2, 0.5])
    Y.shape
    
    561 728
    
    Out[2]:
    
    (1, 2042040, 4)
    

    我们看到,返回锚框变量y的形状为(批量大小,锚框个数,4)。将锚框变量y的形状变为(图像高,图像宽,以相同像素为中心的锚框个数,4)后,我们就可以通过指定像素位置来获取所有以该像素为中心的锚框了。下面的例子里我们访问以(250,250)为中心的第一个锚框。它有4个元素,分别是锚框左上角的\(x\)\(y\)轴坐标和右下角的\(x\)\(y\)轴坐标,其中\(x\)\(y\)轴的坐标值分别已除以图像的宽和高,因此值域均为0和1之间。

    In [3]:
    
    boxes = Y.reshape((h, w, 5, 4))
    boxes[250, 250, 0, :]
    
    Out[3]:
    
    
    [0.06 0.07 0.63 0.82]
    <NDArray 4 @cpu(0)>
    

    为了描绘图像中以某个像素为中心的所有锚框,我们先定义show_bboxes函数以便在图像上画出多个边界框。

    In [4]:
    
    # 本函数已保存在d2lzh包中方便以后使用
    def show_bboxes(axes, bboxes, labels=None, colors=None):
        def _make_list(obj, default_values=None):
            if obj is None:
                obj = default_values
            elif not isinstance(obj, (list, tuple)):
                obj = [obj]
            return obj
    
        labels = _make_list(labels)
        colors = _make_list(colors, ['b', 'g', 'r', 'm', 'c'])
        for i, bbox in enumerate(bboxes):
            color = colors[i % len(colors)]
            rect = d2l.bbox_to_rect(bbox.asnumpy(), color)
            axes.add_patch(rect)
            if labels and len(labels) > i:
                text_color = 'k' if color == 'w' else 'w'
                axes.text(rect.xy[0], rect.xy[1], labels[i],
                          va='center', ha='center', fontsize=9, color=text_color,
                          bbox=dict(facecolor=color, lw=0))
    

    刚刚我们看到,变量boxes\(x\)\(y\)轴的坐标值分别已除以图像的宽和高。在绘图时,我们需要恢复锚框的原始坐标值,并因此定义了变量bbox_scale。现在,我们可以画出图像中以(250, 250)为中心的所有锚框了。可以看到,大小为0.75且宽高比为1的锚框较好地覆盖了图像中的狗。

    In [5]:
    
    d2l.set_figsize()
    bbox_scale = nd.array((w, h, w, h))
    fig = d2l.plt.imshow(img)
    show_bboxes(fig.axes, boxes[250, 250, :, :] * bbox_scale,
                ['s=0.75, r=1', 's=0.5, r=1', 's=0.25, r=1', 's=0.75, r=2',
                 's=0.75, r=0.5'])
    

    9.4.2. 交并比?

    我们刚刚提到某个锚框较好地覆盖了图像中的狗。如果该目标的真实边界框已知,这里的“较好”该如何量化呢?一种直观的方法是衡量锚框和真实边界框之间的相似度。我们知道,Jaccard系数(Jaccard index)可以衡量两个集合的相似度。给定集合\(\mathcal{A}\)\(\mathcal{B}\),它们的Jaccard系数即二者交集大小除以二者并集大小:

    \[J(\mathcal{A},\mathcal{B}) = \frac{\left|\mathcal{A} \cap \mathcal{B}\right|}{\left| \mathcal{A} \cup \mathcal{B}\right|}.\]

    实际上,我们可以把边界框内的像素区域看成是像素的集合。如此一来,我们可以用两个边界框的像素集合的Jaccard系数衡量这两个边界框的相似度。当衡量两个边界框的相似度时,我们通常将Jaccard系数称为交并比(intersection over union,IoU),即两个边界框相交面积与相并面积之比,如图9.2所示。交并比的取值范围在0和1之间:0表示两个边界框无重合像素,1表示两个边界框相等。

    图 9.2 交并比是两个边界框相交面积与相并面积之比

    在本节的剩余部分,我们将使用交并比来衡量锚框与真实边界框以及锚框与锚框之间的相似度。

    9.4.3. 标注训练集的锚框?

    在训练集中,我们将每个锚框视为一个训练样本。为了训练目标检测模型,我们需要为每个锚框标注两类标签:一是锚框所含目标的类别,简称类别;二是真实边界框相对锚框的偏移量,简称偏移量(offset)。在目标检测时,我们首先生成多个锚框,然后为每个锚框预测类别以及偏移量,接着根据预测的偏移量调整锚框位置从而得到预测边界框,最后筛选需要输出的预测边界框。

    我们知道,在目标检测的训练集中,每个图像已标注了真实边界框的位置以及所含目标的类别。在生成锚框之后,我们主要依据与锚框相似的真实边界框的位置和类别信息为锚框标注。那么,该如何为锚框分配与其相似的真实边界框呢?

    假设图像中锚框分别为\(A_1, A_2, \ldots, A_{n_a}\),真实边界框分别为\(B_1, B_2, \ldots, B_{n_b}\),且\(n_a \geq n_b\)。定义矩阵\(\boldsymbol{X} \in \mathbb{R}^{n_a \times n_b}\),其中第\(i\)行第\(j\)列的元素\(x_{ij}\)为锚框\(A_i\)与真实边界框\(B_j\)的交并比。 首先,我们找出矩阵\(\boldsymbol{X}\)中最大元素,并将该元素的行索引与列索引分别记为\(i_1,j_1\)。我们为锚框\(A_{i_1}\)分配真实边界框\(B_{j_1}\)。显然,锚框\(A_{i_1}\)和真实边界框\(B_{j_1}\)在所有的“锚框—真实边界框”的配对中相似度最高。接下来,将矩阵\(\boldsymbol{X}\)中第\(i_1\)行和第\(j_1\)列上的所有元素丢弃。找出矩阵\(\boldsymbol{X}\)中剩余的最大元素,并将该元素的行索引与列索引分别记为\(i_2,j_2\)。我们为锚框\(A_{i_2}\)分配真实边界框\(B_{j_2}\),再将矩阵\(\boldsymbol{X}\)中第\(i_2\)行和第\(j_2\)列上的所有元素丢弃。此时矩阵\(\boldsymbol{X}\)中已有2行2列的元素被丢弃。 依此类推,直到矩阵\(\boldsymbol{X}\)中所有\(n_b\)列元素全部被丢弃。这个时候,我们已为\(n_b\)个锚框各分配了一个真实边界框。 接下来,我们只遍历剩余的\(n_a - n_b\)个锚框:给定其中的锚框\(A_i\),根据矩阵\(\boldsymbol{X}\)的第\(i\)行找到与\(A_i\)交并比最大的真实边界框\(B_j\),且只有当该交并比大于预先设定的阈值时,才为锚框\(A_i\)分配真实边界框\(B_j\)

    如图9.3(左)所示,假设矩阵\(\boldsymbol{X}\)中最大值为\(x_{23}\),我们将为锚框\(A_2\)分配真实边界框\(B_3\)。然后,丢弃矩阵中第2行和第3列的所有元素,找出剩余阴影部分的最大元素\(x_{71}\),为锚框\(A_7\)分配真实边界框\(B_1\)。接着如图9.3(中)所示,丢弃矩阵中第7行和第1列的所有元素,找出剩余阴影部分的最大元素\(x_{54}\),为锚框\(A_5\)分配真实边界框\(B_4\)。最后如图9.3(右)所示,丢弃矩阵中第5行和第4列的所有元素,找出剩余阴影部分的最大元素\(x_{92}\),为锚框\(A_9\)分配真实边界框\(B_2\)。之后,我们只需遍历除去\(A_2, A_5, A_7, A_9\)的剩余锚框,并根据阈值判断是否为剩余锚框分配真实边界框。

    图 9.3 为锚框分配真实边界框

    现在我们可以标注锚框的类别和偏移量了。如果一个锚框\(A\)被分配了真实边界框\(B\),将锚框\(A\)的类别设为\(B\)的类别,并根据\(B\)\(A\)的中心坐标的相对位置以及两个框的相对大小为锚框\(A\)标注偏移量。由于数据集中各个框的位置和大小各异,因此这些相对位置和相对大小通常需要一些特殊变换,才能使偏移量的分布更均匀从而更容易拟合。设锚框\(A\)及其被分配的真实边界框\(B\)的中心坐标分别为\((x_a, y_a)\)\((x_b, y_b)\)\(A\)\(B\)的宽分别为\(w_a\)\(w_b\),高分别为\(h_a\)\(h_b\),一个常用的技巧是将\(A\)的偏移量标注为

    \[\left( \frac{ \frac{x_b - x_a}{w_a} - \mu_x }{\sigma_x}, \frac{ \frac{y_b - y_a}{h_a} - \mu_y }{\sigma_y}, \frac{ \log \frac{w_b}{w_a} - \mu_w }{\sigma_w}, \frac{ \log \frac{h_b}{h_a} - \mu_h }{\sigma_h}\right),\]

    其中常数的默认值为\(\mu_x = \mu_y = \mu_w = \mu_h = 0, \sigma_x=\sigma_y=0.1, \sigma_w=\sigma_h=0.2\)。如果一个锚框没有被分配真实边界框,我们只需将该锚框的类别设为背景。类别为背景的锚框通常被称为负类锚框,其余则被称为正类锚框。

    下面演示一个具体的例子。我们为读取的图像中的猫和狗定义真实边界框,其中第一个元素为类别(0为狗,1为猫),剩余4个元素分别为左上角的\(x\)\(y\)轴坐标以及右下角的\(x\)\(y\)轴坐标(值域在0到1之间)。这里通过左上角和右下角的坐标构造了5个需要标注的锚框,分别记为\(A_0, \ldots, A_4\)(程序中索引从0开始)。先画出这些锚框与真实边界框在图像中的位置。

    In [6]:
    
    ground_truth = nd.array([[0, 0.1, 0.08, 0.52, 0.92],
                             [1, 0.55, 0.2, 0.9, 0.88]])
    anchors = nd.array([[0, 0.1, 0.2, 0.3], [0.15, 0.2, 0.4, 0.4],
                        [0.63, 0.05, 0.88, 0.98], [0.66, 0.45, 0.8, 0.8],
                        [0.57, 0.3, 0.92, 0.9]])
    
    fig = d2l.plt.imshow(img)
    show_bboxes(fig.axes, ground_truth[:, 1:] * bbox_scale, ['dog', 'cat'], 'k')
    show_bboxes(fig.axes, anchors * bbox_scale, ['0', '1', '2', '3', '4']);
    

    我们可以通过contrib.nd模块中的MultiBoxTarget函数来为锚框标注类别和偏移量。该函数将背景类别设为0,并令从0开始的目标类别的整数索引自加1(1为狗,2为猫)。我们通过expand_dims函数为锚框和真实边界框添加样本维,并构造形状为(批量大小, 包括背景的类别个数, 锚框数)的任意预测结果。

    In [7]:
    
    labels = contrib.nd.MultiBoxTarget(anchors.expand_dims(axis=0),
                                       ground_truth.expand_dims(axis=0),
                                       nd.zeros((1, 3, 5)))
    

    返回的结果里有3项,均为NDArray。第三项表示为锚框标注的类别。

    In [8]:
    
    labels[2]
    
    Out[8]:
    
    
    [[0. 1. 2. 0. 2.]]
    <NDArray 1x5 @cpu(0)>
    

    我们根据锚框与真实边界框在图像中的位置来分析这些标注的类别。首先,在所有的“锚框—真实边界框”的配对中,锚框\(A_4\)与猫的真实边界框的交并比最大,因此锚框\(A_4\)的类别标注为猫。不考虑锚框\(A_4\)或猫的真实边界框,在剩余的“锚框—真实边界框”的配对中,最大交并比的配对为锚框\(A_1\)和狗的真实边界框,因此锚框\(A_1\)的类别标注为狗。接下来遍历未标注的剩余3个锚框:与锚框\(A_0\)交并比最大的真实边界框的类别为狗,但交并比小于阈值(默认为0.5),因此类别标注为背景;与锚框\(A_2\)交并比最大的真实边界框的类别为猫,且交并比大于阈值,因此类别标注为猫;与锚框\(A_3\)交并比最大的真实边界框的类别为猫,但交并比小于阈值,因此类别标注为背景。

    返回值的第二项为掩码(mask)变量,形状为(批量大小, 锚框个数的四倍)。掩码变量中的元素与每个锚框的4个偏移量一一对应。 由于我们不关心对背景的检测,有关负类的偏移量不应影响目标函数。通过按元素乘法,掩码变量中的0可以在计算目标函数之前过滤掉负类的偏移量。

    In [9]:
    
    labels[1]
    
    Out[9]:
    
    
    [[0. 0. 0. 0. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 0. 0. 1. 1. 1. 1.]]
    <NDArray 1x20 @cpu(0)>
    

    返回的第一项是为每个锚框标注的四个偏移量,其中负类锚框的偏移量标注为0。

    In [10]:
    
    labels[0]
    
    Out[10]:
    
    
    [[ 0.00e+00  0.00e+00  0.00e+00  0.00e+00  1.40e+00  1.00e+01  2.59e+00
       7.18e+00 -1.20e+00  2.69e-01  1.68e+00 -1.57e+00  0.00e+00  0.00e+00
       0.00e+00  0.00e+00 -5.71e-01 -1.00e+00 -8.94e-07  6.26e-01]]
    <NDArray 1x20 @cpu(0)>
    

    9.4.4. 输出预测边界框?

    在模型预测阶段,我们先为图像生成多个锚框,并为这些锚框一一预测类别和偏移量。随后,我们根据锚框及其预测偏移量得到预测边界框。当锚框数量较多时,同一个目标上可能会输出较多相似的预测边界框。为了使结果更加简洁,我们可以移除相似的预测边界框。常用的方法叫作非极大值抑制(non-maximum suppression,NMS)。

    我们来描述一下非极大值抑制的工作原理。对于一个预测边界框\(B\),模型会计算各个类别的预测概率。设其中最大的预测概率为\(p\),该概率所对应的类别即\(B\)的预测类别。我们也将\(p\)称为预测边界框\(B\)的置信度。在同一图像上,我们将预测类别非背景的预测边界框按置信度从高到低排序,得到列表\(L\)。从\(L\)中选取置信度最高的预测边界框\(B_1\)作为基准,将所有与\(B_1\)的交并比大于某阈值的非基准预测边界框从\(L\)中移除。这里的阈值是预先设定的超参数。此时,\(L\)保留了置信度最高的预测边界框并移除了与其相似的其他预测边界框。 接下来,从\(L\)中选取置信度第二高的预测边界框\(B_2\)作为基准,将所有与\(B_2\)的交并比大于某阈值的非基准预测边界框从\(L\)中移除。重复这一过程,直到\(L\)中所有的预测边界框都曾作为基准。此时\(L\)中任意一对预测边界框的交并比都小于阈值。最终,输出列表\(L\)中的所有预测边界框。

    下面来看一个具体的例子。先构造4个锚框。简单起见,我们假设预测偏移量全是0:预测边界框即锚框。最后,我们构造每个类别的预测概率。

    In [11]:
    
    anchors = nd.array([[0.1, 0.08, 0.52, 0.92], [0.08, 0.2, 0.56, 0.95],
                        [0.15, 0.3, 0.62, 0.91], [0.55, 0.2, 0.9, 0.88]])
    offset_preds = nd.array([0] * anchors.size)
    cls_probs = nd.array([[0] * 4,  # 背景的预测概率
                          [0.9, 0.8, 0.7, 0.1],  # 狗的预测概率
                          [0.1, 0.2, 0.3, 0.9]])  # 猫的预测概率
    

    在图像上打印预测边界框和它们的置信度。

    In [12]:
    
    fig = d2l.plt.imshow(img)
    show_bboxes(fig.axes, anchors * bbox_scale,
                ['dog=0.9', 'dog=0.8', 'dog=0.7', 'cat=0.9'])
    

    我们使用contrib.nd模块的MultiBoxDetection函数来执行非极大值抑制并设阈值为0.5。这里为NDArray输入都增加了样本维。我们看到,返回的结果的形状为(批量大小, 锚框个数, 6)。其中每一行的6个元素代表同一个预测边界框的输出信息。第一个元素是索引从0开始计数的预测类别(0为狗,1为猫),其中-1表示背景或在非极大值抑制中被移除。第二个元素是预测边界框的置信度。剩余的4个元素分别是预测边界框左上角的\(x\)\(y\)轴坐标以及右下角的\(x\)\(y\)轴坐标(值域在0到1之间)。

    In [13]:
    
    output = contrib.ndarray.MultiBoxDetection(
        cls_probs.expand_dims(axis=0), offset_preds.expand_dims(axis=0),
        anchors.expand_dims(axis=0), nms_threshold=0.5)
    output
    
    Out[13]:
    
    
    [[[ 0.    0.9   0.1   0.08  0.52  0.92]
      [ 1.    0.9   0.55  0.2   0.9   0.88]
      [-1.    0.8   0.08  0.2   0.56  0.95]
      [-1.    0.7   0.15  0.3   0.62  0.91]]]
    <NDArray 1x4x6 @cpu(0)>
    

    我们移除掉类别为-1的预测边界框,并可视化非极大值抑制保留的结果。

    In [14]:
    
    fig = d2l.plt.imshow(img)
    for i in output[0].asnumpy():
        if i[0] == -1:
            continue
        label = ('dog=', 'cat=')[int(i[0])] + str(i[1])
        show_bboxes(fig.axes, [nd.array(i[2:]) * bbox_scale], label)
    

    实践中,我们可以在执行非极大值抑制前将置信度较低的预测边界框移除,从而减小非极大值抑制的计算量。我们还可以筛选非极大值抑制的输出,例如,只保留其中置信度较高的结果作为最终输出。

    9.4.5. 小结?

    • 以每个像素为中心,生成多个大小和宽高比不同的锚框。
    • 交并比是两个边界框相交面积与相并面积之比。
    • 在训练集中,为每个锚框标注两类标签:一是锚框所含目标的类别;二是真实边界框相对锚框的偏移量。
    • 预测时,可以使用非极大值抑制来移除相似的预测边界框,从而令结果简洁。

    9.4.6. 练习?

    • 改变MultiBoxPrior函数中sizesratios的取值,观察生成的锚框的变化。
    • 构造交并比为0.5的两个边界框,观察它们的重合度。
    • 按本节定义的为锚框标注偏移量的方法(常数采用默认值),验证偏移量labels[0]的输出结果。
    • 修改“标注训练集的锚框”与“输出预测边界框”两小节中的变量anchors,结果有什么变化?

    9.4.7. 扫码直达讨论区?

    篮彩票推荐 江苏省福彩15选5开奖结果 江苏省福利彩票缴费 大乐透开奖结果查询走试图500期1 北京pk10模拟软件有哪些
    篮彩258篮彩推荐 pk10自动软件手机软件 中国福彩双色球几点开 湖北省福利彩票开奖号码查询 大乐透基本走势图带坐标带连线图
    彩民周刊双色球17100 中国福利彩票公益时报 2016117期双色球推荐号码 18008期双色球林霜月红蓝断位诗 山东体育快乐3彩票开奖号码查询今天
    双色球2017134开奖预测 买双色球号码预测 广东手机投注双色球站 北京pk赛车10开奖预测是怎么算 彩经网五星缩水软件手机版下载