box_boxplot - CSDN
精华内容
参与话题
  • Box

    2020-01-28 23:08:24
    Ivan works at a factory that produces heavy machinery. He has a simple job — he knocks up wooden boxes of different sizes to pack machinery for delivery to the ... Each box is a rectangular par...

    Ivan works at a factory that produces heavy machinery. He has a simple job — he knocks up wooden
    boxes of different sizes to pack machinery for delivery to the customers. Each box is a rectangular
    parallelepiped. Ivan uses six rectangular wooden pallets to make a box. Each pallet is used for one side of the box.
    在这里插入图片描述
    Joe delivers pallets for Ivan. Joe is not very smart and often makes mistakes — he brings Ivan
    pallets that do not fit together to make a box. But Joe does not trust Ivan. It always takes a lot of
    time to explain Joe that he has made a mistake.
    Fortunately, Joe adores everything related to computers and sincerely believes that computers never
    make mistakes. Ivan has decided to use this for his own advantage. Ivan asks you to write a program
    that given sizes of six rectangular pallets tells whether it is possible to make a box out of them.
    Input
    Input file contains several test cases. Each of them consists of six lines. Each line describes one pallet
    and contains two integer numbers w and h (1 ≤ w, h ≤ 10 000) — width and height of the pallet in
    millimeters respectively.
    Output
    For each test case, print one output line. Write a single word ‘POSSIBLE’ to the output file if it is
    possible to make a box using six given pallets for its sides. Write a single word ‘IMPOSSIBLE’ if it is not
    possible to do so.
    Sample Input
    1345 2584
    2584 683
    2584 1345
    683 1345
    683 1345
    2584 683
    1234 4567
    1234 4567
    4567 4321
    4322 4567
    4321 1234
    4321 1234
    Sample Output
    POSSIBLE
    IMPOSSIBLE

    题目大意:给出六个矩形的长和宽,判断这六个矩形是否能组成一个长方体。

    哎,做这个题的时候一头雾水,不知道该怎么写。后来还是参考了别人的代码。QwQ太菜了

    我们先想一个比较普通的一个矩形吧:
    在这里插入图片描述
    可能你想的矩形跟我画的不一样,不过没关系,其实只要转变一下就行,我先按照我的这种讲,之后

    会给出不同矩形的答复。

    因为不太会画画所以大家凑合一下吧QwQ。

    为了方便表示,我给每个矩形都编上了号。

    根据长方体的性质我们可以知道,1和2是全等的,3和4是全等的,5和6是全等的。

    而且我们可以看到,1的长和5的宽是相同的(我们暂时不考虑正方形的情况,因为正方形是一种特殊的长方形,所以长方形可以满足的话正方形也会满足)

    因为1和2是全等的,所以如果1的长和5的宽是相同的,2的长和5也是相同的。

    类似的,我们可以发现,3的长和5的长是一样的,1的宽和3的宽是一样的。

    好,根据这些已经可以判断是否能组成一个长方体了,但是还有一个问题,这里的编号都是我提前编

    好了的,但是题目中给出的矩形不一定就按照我这个给呀,如何去找题目中给出的矩形对应的我的哪

    一个编号呢?

    其实我们仔细观察上图,可以按照每个举行的长排序,1和2是长最小的,2、3、4、5、6的长都是一

    样的,都是最大的,这个时候我们再按照宽排序,那么2、3的宽是比较小的,4、5是比较大的。

    因此我们可以把给出的六个矩形按照长排序,长度相同的按照宽排序,得到的顺序就是上图的标号。

    好,那么有人可能会问,如果是一个正方体怎么办?如果我想的矩形是这样的怎么办:
    在这里插入图片描述

    就是我开始画的那个矩形是一个扁平扁平的,而这种是一个瘦高瘦高的,这样怎么办呢?其实不用担

    心,只要把这个瘦高的长方体倒过来,其实还是一样的。

    因此这个题就可以解决了。

    喜闻乐见代码系列:

    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    
    typedef pair < int , int > PII;//对pair排序的时候会优先对第一个关键字排序,所以直接用pair来储存每个举行了
    
    int a , b;
    PII c[10];
    
    bool judge()
    {
        if(c[1] == c[2] && c[3] == c[4] && c[5] == c[6])
        {
            if(c[1].first == c[5].second && c[1].second == c[3].second && c[3].first == c[5].first)
            {
                return true;
            }
            else return false;
        }
        
        else return false;
    }
    
    int main(void)
    {
        while(scanf("%d %d",&a , &b) != EOF)
        {
            if(a < b) swap(a , b);
            c[1] = {a , b};
            
            for(int i = 2 ; i <= 6 ; ++ i)
            {
                scanf("%d %d",&a , &b);
                
                if(a < b) swap(a , b);
                
                c[i] = {a , b};
            }
            
            sort(c + 1 , c + 7);
            
            if(judge()) printf("POSSIBLE\n");
            else printf("IMPOSSIBLE\n");
        }
        
        return 0;
    }
    
    展开全文
  • box-shadow详解

    千次阅读 多人点赞 2019-12-06 16:00:13
    box-shadow详解: 我们可以看到box-shadow的属性如下 /* offset-x | offset-y | blur-radius | spread-radius | color */ box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2); 第一个值代表x轴的offset 第二值代表y轴...

    box-shadow详解:

    我们可以看到box-shadow的属性如下

    /* offset-x | offset-y | blur-radius | spread-radius | color */
    box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2);
    

    第一个值代表x轴的offset
    第二值代表y轴的offset
    第三个值是模糊半径: 这个值不能为负数
    第四个值代表扩散半径: 这个值为正数时代表向外扩散,负数时代表向内收敛。

    其次,box-shadow可以设置为inset,表示内部阴影。

    第一个值和第二个值

    那么x轴和y轴是如何表现呢? 下面有张来解释:
    在这里插入图片描述

    在正常阴影情况下:
    A边的x为正的时候, 阴影会被自身的元素遮盖
    B边的y为正的时候, 阴影会被自身的元素遮盖
    c边的x为负的时候, 阴影会被自身的元素遮盖
    d边的y为负的时候, 阴影会被自身的元素遮盖

    inset情况下:

    c边的x为正的时候, 阴影会被自身的元素遮盖
    d边的y为正的时候, 阴影会被自身的元素遮盖
    A边的x为负的时候, 阴影会被自身的元素遮盖
    B边的y为负的时候, 阴影会被自身的元素遮盖

    以下为示例:

    在这里插入图片描述

    Inset

    在这里插入图片描述

    第三个值:

    这里以女生的自拍照举例
    1.当第3个值为0时(相当于不写), shadow的阴影是实心的(此时是素颜真实照)。 如上图所示
    2.值为正值时,会对shadow进行模糊(磨皮)。值越大,模糊的越厉害(磨皮程度越高)
    3.值为负值时,shadow消失(不磨皮就算了,还丑化, 丑化了那还能看吗?那是不会给你看的)
    

    示例如下:

    正值

    在这里插入图片描述

    第四个值

    正值:扩散shadow
    负值:收敛shadow
    
    正值

    在这里插入图片描述

    负值

    在这里插入图片描述

    第四个值可能有点不太好理解,我们可以这样来想:
    在这里插入图片描述
    设想:一个元素宽为100px, 高为100pxdiv,给它添加box-shadow属性就相当于为该元素创建了一个副本,但是该副本被压在原型下

    1. box-shadow: 0 0 0 0;的时候副本被原型完全覆盖
    2. box-shadow: 10px 10px 0 20px; 
    3. 副本原点不变,并给它的的四边各加20px, 得到一个宽为140, 高为140的副本
    4. 然后再分别向右和向下平移10px(x,y的值)
    5. 得到的结果如下图box2所示得到的结果如下图box2所示
    

    在这里插入图片描述
    当扩散半径为负值时,也是同样的道理(收缩副本)

    对于第三个值对第四个值的影响,暂时还没有理清楚,后期再补充,或者有人看到知道的,欢迎补充。

    这次为了给ant design下的嵌套table 加父级间隔和box-shadow,算是把box-shadow的属性整个研究了遍,哭唧唧

    原文链接:
    https://github.com/AmyShieh/frontEndKnowledge/issues/43
    https://blog.csdn.net/xieamy/article/details/87835224

    展开全文
  • box-sizing:border-box属性入手,来了解盒模型

    万次阅读 多人点赞 2020-04-07 15:55:01
    从最开始学习CSS的时候,就了解了盒模型的概念,今天,我们从其中的box-sizing:border-box;的属性入手,来重新认识一下盒模型在实际项目中的运用。 背景:先声明一下运用的场景,假如项目布局使用的是自适应的布局...

        从最开始学习CSS的时候,就了解了盒模型的概念,今天,我们从其中的box-sizing:border-box;的属性入手,来重新认识一下盒模型在实际项目中的运用。

        背景:先声明一下运用的场景,假如项目布局使用的是自适应的布局方式,div给出的宽度是百分比的形式,即框占窗口宽度的50%,但边界和内边距是用像素来表示的怎么办?为了避免这种问题,可以使用属性box-sizing来调整框模型。使用border-box,来将框模型更改成这个新的模型。

        注意:回顾一下,框的总宽度是width,padding-right,padding-left,border-right以及border-left属性之和,这就是造成上述背景下,样式不好调整的原因。

                box-sizing属性用于更改用于计算元素的宽度和高度默认的CSS盒子模型,可以使用此属性来模拟不正确支持CSS盒子模型规范的游览器行为。

    一、回顾基础

            (1)框属性的基本规范:

                文档的每个元素被构造成文档布局内的一个矩形框,框每层的大小都可以使用一些特定的CSS属性调整。相关属性如下:

    即width=content

                ①widthheight设置内容框(content box)的宽度和高度。内容框是框内容显示的区域--包括框内的文本内容,以及表示镶嵌子元素的其他框;

                ②padding表示一个CSS框内边距--这一层位于内容框的外边缘与边界的内边缘之间;

                ③border即CSS框的边界是一个分割层,位于内边距的外边缘以及外边距的内边缘之间;

                ④margin外边距代表CSS框周围的外部区域。

                (2)运用box-sizing:border-box属性下,框模型的变化

                

    width=content+padding+border(此时,当div的宽度为50%时,而border和padding为px时,那么content会随着实际的宽度进行自动缩放;)

             (3)来看看实际的例子:   

                ①设计稿如下所示:

                ②实际代码:

                本例子中,采用的是flex布局的方式,为了自适应,宽度width采用的是百分比%的形式,border,padding,margin采用的是px尺寸,所有外层的盒子运用了box-sizing:border-box;属性来改变盒子的结构,从而实现需求。

    <body>
    	<div class="clear_float">
    	     <div class="goods_cell">
    		  <div>
    		       <img class="img_goods" src="../images/img_goods.png" alt="">
    		  </div>
    		  <div class="text_goods">
    		       双宫茧桑蚕丝被
    		  </div>
    		  <div class="goods_price">
    		       <div class="price_span">活动秒杀价:</div>
    		       <div class="price_num">¥  499.00</div>
    		  </div>
    		  <div class="goods_seckill">
    		       <div class="seckill_left">仅剩<span>23:59:00</span></div>
    		       <div class="seckill_right">秒杀</div>
    		  </div>
    	      </div>
    	      <div class="goods_cell">
    	          <div>
    		      <img class="img_goods" src="../images/img_goods.png" alt="">
    	          </div>
    	          <div class="text_goods">
    		  双宫茧桑蚕丝被
    	          </div>
    	          <div class="goods_price">
    		       <div class="price_span">活动秒杀价:</div>
    		       <div class="price_num">¥  499.00</div>
    	          </div>
    	          <div class="goods_seckill">
    		       <div class="seckill_left">仅剩<span>23:59:00</span></div>
    		       <div class="seckill_right">秒杀</div>
    	          </div>
    	      </div>
    	      <div class="goods_cell">
    		   <div>
    			<img class="img_goods" src="../images/img_goods.png" alt="">
    		   </div>
    		   <div class="text_goods">
    			双宫茧桑蚕丝被
    		   </div>
    		   <div class="goods_price">
    			<div class="price_span">活动秒杀价:</div>
    			<div class="price_num">¥  499.00</div>
    		   </div>
    		   <div class="goods_seckill">
    			<div class="seckill_left">仅剩<span>23:59:00</span></div>
    			<div class="seckill_right">秒杀</div>
    		   </div>
    	       </div>
    	       <div class="goods_cell">
    		    <div>
    			<img class="img_goods" src="../images/img_goods.png" alt="">
    		    </div>
    		    <div class="text_goods">
    			双宫茧桑蚕丝被
    		    </div>
    		    <div class="goods_price">
    			 <div class="price_span">活动秒杀价:</div>
    			 <div class="price_num">¥  499.00</div>
    		    </div>
    		    <div class="goods_seckill">
    			 <div class="seckill_left">仅剩<span>23:59:00</span></div>
    			 <div class="seckill_right">秒杀</div>
    		    </div>
    		</div>
    	</div>
    </body>
    <style>
    .clear_float{
    	margin-bottom:20px;
    }
    .goods_cell{
    	width: 47%;
    	box-sizing: border-box;
    	padding: 10px;
    	float: left;
    	box-shadow: 0 0 6px 0 rgba(0,0,0,0.20);
    	border-radius: 10px;
    	font-size:13px;
    	color: #333333;
    	margin-left:15px;
    	margin-bottom:20px;
    }
    .clear_float>.goods_cell:nth-of-type(2n+1){
    	margin-left: 0;
    }
    .img_goods{
    	width:78.5px;
    	height:96px;
    	display: block;
    	margin: 0 auto;
    }
    .text_goods{
    	margin:10px 0;
    	color:#333333;
    	font-size:13px;
    }
    .goods_price{
    	font-size:18px;
    	color: #FF0845;
    	display: flex;
    	align-items: center;
    	justify-content: space-between;
    	margin-bottom:1px;
    }
    .goods_price .price_span{
    	font-size:8px;
    	color:#fa5754;
    	line-height:8px;
    }
    .goods_price .price_num{
    	font-size:16px;
    	color:#fa5754;
    	line-height:18px;	
    }
    .goods_seckill{
    	display: flex;
    	align-items: center;
    	justify-content: space-between;
    	box-sizing:border-box;
    	line-height:15px;
    	width:100%;
    	height:15px;
    }
    .goods_seckill .seckill_left{
    	width:70%;
    	padding:2.5px 0px;
    	font-size:10px;
    	color:#2d2d2d;
    	line-height:10px;
    	border:1px solid #999999;
    	border-right:1px solid #ff0845;
    	text-align:center;
    }
    .goods_seckill .seckill_right{
    	width:30%;
    	color:#ffffff;
    	background-color:#ff0845;
    	border:1px solid #ff0845;
    	font-size:10px;
    	line-height:10px;
    	padding:2.5px 8px;
    	text-align:center;
    }
    </style>

            ③在游览器上模拟的320px,375px和414px尺寸下,显示的效果图:

    二、盒模型的其他属性

            (1)margin,padding设置为百分比形式:

               <main>元素的内边距和外边距的各个边设置为5%,意味着“包含元素宽度的5%”,因此,随着示例输出窗口的大小增加,内边距和外边距也增加了。

            (2)margin可以接受负数,可以用来引起元素框的重叠:

              (3)背景裁剪(Background clip)属性:

                background-clip:border-box;背景被裁剪到边框盒;

                background-cilp:padding-box;背景被裁剪到内边距框;

                background-clip:content-box;背景被裁剪到内容框。

                可以看看以下效果图比较一下:

            (4)轮廓(Outline):

                一个框的outline是一个看起来像是边界但又不属于框模型的东西。它的行为和边界差不多,但是并不改变框的尺寸(更准确的说,轮廓被勾画于在框边界之外,外边距区域之内)。

                相关实例:在引入bootstrap框架时,input在360游览器(兼容模式)下显示,在获得焦点时外边框变蓝,这就是outline造成的影响,去掉只需要添加一个CSS样式即可,input:focus{outline:none;}

                详情介绍可以查看之前的文章:实现输入框input在获得焦点时外边框不变蓝  点击打开链接

            (5)CSS框类型,通过display属性来设定元素的框类型:

                最常见的display类型是:block,inline,inline-block,即块框(block box),行内框(inline box),行内块状框(inline-block box).

                    注意:默认状态下display属性值,块级元素display:block,行内元素display:inline。

                    不常见的类型display类型是:table,flex,grid.

                   display:table--允许你像处理table布局那样处理非table元素,而不是滥用HTML的<table>标签来达到同样的目的;

                     ②display:flex--允许你处理一些困扰CSS已久的一些传统布局问题,如布置一系列弹性等宽容器或者垂直居中内容(目前,flex布局在移动端使用较为广泛);

                      ③display:grid--给出一种简单实现CSS网络系统的方式,而在传统上它依赖于一些棘手难以处理的CSS网络框架。

               (6)框的高度    

                框的高度不遵守百分比的长度;框的高度总是采用框内容的高度,除非指定一个绝对的高度(如:px或者em),它会比在页面上默认是100%高度更实用。

                (7)盒的高级属性--设置宽和高的约束

                    ①通过min-width,max-width,min-height,max-height 属性,来设置大小约束,以更灵活的方式控制内容盒的大小:

                        这类情况通常用于响应式网页设计,将一个布局的外层容器的宽度设置为百分比形式。

    width:70%;
    max-width:1280px;
    min-width:480px;

                    然后,添加下句CSS使该容器在它的父容器内居中显示:

    margin:0 auto;

                    那么最终呈现的效果是:当父容器在最小和最大宽度限制内时,它将填满整个视口宽度;当父容器超过1280px宽度时,布局将保持在1280px宽,并开始在可用空间内居中。当宽度低于480px时,视口将小于容器,您必须滚动才能看到完全的内容。

                ②max-width属性的另一个好处是可以将容器内的媒体(如图像和视频)控制在容器内(响应式图片):

                在上述例子中,图像会引起一个问题--起初它的显示正常,但当容器变得比图像更窄时,图像开始溢流容器(因为它是一个固定的宽度)。解决这类问题,可以用以下CSS:

    display:block;
    margin:0 auto;
    max-width:100%;

                前两条属性display:block,margin:0 auto,使它的展示行为像一个块元素并且在父容器内居中。而max-width:100%限制了图像的宽度使它的最大宽度与父容器的宽度相等。因此,当父容器宽度缩小到小于图像的宽度时,图像会一起缩小。(这样,可以让图片最大只能是自己的宽度,成为响应式的图片)

                而这类运用最好的实例就是bootstrap框架中,图像的img-responsive类名的属性,在框架下,图像添加了img-responsive类名,就能达到在视口宽度不断变化的情况下,图像都可以达到响应式的缩放形式,这也是图像响应式的秘诀所在。

            三、总结

                   关于盒模型的总结,是从运用实例的角度来引入的,并未按照常规的顺序来进行梳理,如果大家想了解盒模型的完整知识,推荐查看MDN的盒模型讲解完整篇,点击打开链接,以及MDN再述盒模型篇,点击打开链接

                   如文章哪里有问题,欢迎大家留言进行指正,谢谢!

                    参考博客:框模型--学习WEB开发  点击打开链接

                     版权声明:本文为博主原创文章,未经博主允许不得转载。
     

     

     

     

     

    展开全文
  • 边框回归(Bounding Box Regression)详解

    万次阅读 多人点赞 2017-08-31 22:38:05
    Bounding-Box regression最近一直看检测有关的Paper, 从rcnn, fast rcnn, faster rcnn, yolo, r-fcn, ssd,到今年cvpr最新的yolo9000。这些paper中损失函数都包含了边框回归,除了rcnn详细介绍了,其他的paper都是...

    Bounding-Box regression

    最近一直看检测有关的Paper, 从rcnn, fast rcnn, faster rcnn, yolo, r-fcn, ssd,到今年cvpr最新的yolo9000。这些paper中损失函数都包含了边框回归,除了rcnn详细介绍了,其他的paper都是一笔带过,或者直接引用rcnn就把损失函数写出来了。前三条网上解释比较多,后面的两条我看了很多paper,才得出这些结论。

    • 为什么要边框回归?
    • 什么是边框回归?
    • 边框回归怎么做的?
    • 边框回归为什么宽高,坐标会设计这种形式?
    • 为什么边框回归只能微调,在离Ground Truth近的时候才能生效?

    为什么要边框回归?

    这里引用王斌师兄的理解,如下图所示:


    这里写图片描述

    对于上图,绿色的框表示Ground Truth, 红色的框为Selective Search提取的Region Proposal。那么即便红色的框被分类器识别为飞机,但是由于红色的框定位不准(IoU<0.5), 那么这张图相当于没有正确的检测出飞机。 如果我们能对红色的框进行微调, 使得经过微调后的窗口跟Ground Truth 更接近, 这样岂不是定位会更准确。 确实,Bounding-box regression 就是用来微调这个窗口的。

    边框回归是什么?

    继续借用师兄的理解:对于窗口一般使用四维向量(x,y,w,h) 来表示, 分别表示窗口的中心点坐标和宽高。 对于图 2, 红色的框 P 代表原始的Proposal, 绿色的框 G 代表目标的 Ground Truth, 我们的目标是寻找一种关系使得输入原始的窗口 P 经过映射得到一个跟真实窗口 G 更接近的回归窗口G^


    这里写图片描述

    边框回归的目的既是:给定(Px,Py,Pw,Ph)寻找一种映射f, 使得f(Px,Py,Pw,Ph)=(Gx^,Gy^,Gw^,Gh^) 并且(Gx^,Gy^,Gw^,Gh^)(Gx,Gy,Gw,Gh)

    边框回归怎么做的?

    那么经过何种变换才能从图 2 中的窗口 P 变为窗口G^呢? 比较简单的思路就是: 平移+尺度放缩

    1. 先做平移(Δx,Δy)Δx=Pwdx(P),Δy=Phdy(P) 这是R-CNN论文的:
      G^x=Pwdx(P)+Px,(1)
      G^y=Phdy(P)+Py,(2)
    2. 然后再做尺度缩放(Sw,Sh), Sw=exp(dw(P)),Sh=exp(dh(P)), 对应论文中:
      G^w=Pwexp(dw(P)),(3)
      G^h=Phexp(dh(P)),(4)

    观察(1)-(4)我们发现, 边框回归学习就是dx(P),dy(P),dw(P),dh(P)这四个变换。下一步就是设计算法那得到这四个映射。

    线性回归就是给定输入的特征向量 X, 学习一组参数 W, 使得经过线性回归后的值跟真实值 Y(Ground Truth)非常接近. 即YWX 。 那么 Bounding-box 中我们的输入以及输出分别是什么呢?

    Input:

    RegionProposalP=(Px,Py,Pw,Ph),这个是什么? 输入就是这四个数值吗?其实真正的输入是这个窗口对应的 CNN 特征,也就是 R-CNN 中的 Pool5 feature(特征向量)。 (注:训练阶段输入还包括 Ground Truth, 也就是下边提到的t=(tx,ty,tw,th))

    Output:

    需要进行的平移变换和尺度缩放 dx(P),dy(P),dw(P),dh(P), 或者说是Δx,Δy,Sw,Sh 。 我们的最终输出不应该是 Ground Truth 吗? 是的, 但是有了这四个变换我们就可以直接得到 Ground Truth, 这里还有个问题, 根据(1)~(4)我们可以知道, P 经过 dx(P),dy(P),dw(P),dh(P) 得到的并不是真实值 G, 而是预测值G^。 的确, 这四个值应该是经过 Ground Truth 和 Proposal 计算得到的真正需要的平移量(tx,ty) 和尺度缩放(tw,th)
    这也就是 R-CNN 中的(6)~(9):

    tx=(GxPx)/Pw,(6)

    ty=(GyPy)/Ph,(7)

    tw=log(Gw/Pw),(8)

    th=log(Gh/Ph),(9)

    那么目标函数可以表示为 d(P)=wTΦ5(P)Φ5(P)是输入 Proposal 的特征向量,w是要学习的参数(*表示 x,y,w,h, 也就是每一个变换对应一个目标函数) , d(P) 是得到的预测值。 我们要让预测值跟真实值t=(tx,ty,tw,th)差距最小, 得到损失函数为:

    Loss=iN(tiw^Tϕ5(Pi))2

    函数优化目标为:

    W=argminwiN(tiw^Tϕ5(Pi))2+λ||w^||2

    利用梯度下降法或者最小二乘法就可以得到 w

    为什么宽高尺度会设计这种形式?

    这边我重点解释一下为什么设计的tx,ty为什么除以宽高,为什么tw,th会有log形式!!!

    首先CNN具有尺度不变性, 以图3为例:


    这里写图片描述

    x,y 坐标除以宽高

    上图的两个人具有不同的尺度,因为他都是人,我们得到的特征相同。假设我们得到的特征为ϕ1,ϕ2,那么一个完好的特征应该具备ϕ1=ϕ。ok,如果我们直接学习坐标差值,以x坐标为例,xi,pi 分别代表第i个框的x坐标,学习到的映射为f, f(ϕ1)=x1p1,同理f(ϕ2)=x2p2。从上图显而易见,x1p1x2p1。也就是说同一个x对应多个y,这明显不满足函数的定义。边框回归学习的是回归函数,然而你的目标却不满足函数定义,当然学习不到什么。

    宽高坐标Log形式

    我们想要得到一个放缩的尺度,也就是说这里限制尺度必须大于0。我们学习的tw,th怎么保证满足大于0呢?直观的想法就是EXP函数,如公式(3), (4)所示,那么反过来推导就是Log函数的来源了。

    为什么IoU较大,认为是线性变换?

    当输入的 Proposal 与 Ground Truth 相差较小时(RCNN 设置的是 IoU>0.6), 可以认为这种变换是一种线性变换, 那么我们就可以用线性回归来建模对窗口进行微调, 否则会导致训练的回归模型不 work(当 Proposal跟 GT 离得较远,就是复杂的非线性问题了,此时用线性回归建模显然不合理)。这里我来解释:

    Log函数明显不满足线性函数,但是为什么当Proposal 和Ground Truth相差较小的时候,就可以认为是一种线性变换呢?大家还记得这个公式不?参看高数1。

    limx=0log(1+x)=x

    现在回过来看公式(8):

    tw=log(Gw/Pw)=log(Gw+PwPwPw)=log(1+GwPwPw)

    当且仅当GwPw=0的时候,才会是线性函数,也就是宽度和高度必须近似相等。

    对于IoU大于指定值这块,我并不认同作者的说法。我个人理解,只保证Region Proposal和Ground Truth的宽高相差不多就能满足回归条件。x,y位置到没有太多限制,这点我们从YOLOv2可以看出,原始的边框回归其实x,y的位置相对来说对很大的。这也是YOLOv2的改进地方。详情请参考我的博客YOLOv2

    总结

    里面很多都是参考师兄在caffe社区的回答,本来不想重复打字的,但是美观的强迫症,让我手动把latex公式巴拉巴拉敲完,当然也为了让大家看起来顺眼。后面还有一些公式那块资料很少,是我在阅读paper+个人总结,不对的地方还请大家留言多多指正。

    展开全文
  • SSD详解 + default box生成过程

    千次阅读 2018-07-27 14:54:17
    在mxnet上面看李沐大神的视频,自己看了SSD的paper里面还是有些一知半解的东西,于是就用篇博客记录下来。文章中的图和部分见解都来自于网络有些错误的图已经修正,如有侵权,联系我删除。 先放一张SSD算法的模型...
  • busybox详解

    万次阅读 2018-03-05 16:08:21
    根文件系统简介所谓制作根文件系统,就是创建各种目录,并且在目录里创建相应的文件。例如:在/bin目录下放置可执行程序,在/lib下放置各种库等等。通常配合chroot命令使用。2.Busybox简介2.1Busybox简介Busybox是一...
  • css3中的display:-webkit-box的用法

    万次阅读 2016-10-27 15:32:26
    css3中的display:-webkit-box的用法 webkit-box 1.之前要实现横列的web布局,通常就是float或者display:inline-block;但是都不能做到真正的流体布局。至少width要自己去算百分比。 2.flexiblebox就可以实现真正...
  • box简介box实际上是vagrant克隆一台虚拟机的基础镜像。 vagrant开源社区提供了很多box的下载地址,使用国外的源添加box会遇到下载速度比较慢的情况,分享我下载的box文件,如下: centos-6.5_chef_32.box centos-...
  • Digital Anarchy Beauty Box for Mac是非常优秀的AE人像磨皮润肤美容插件,beauty box插件可以用来修饰不同的肤色和头发颜色、镜头拍摄自然光线、修饰脸部以外的身体部位等,而且是跟踪整个视频进行修饰,Beauty Box...
  • box-shadow实现四周阴影

    万次阅读 2019-08-27 19:09:49
    box-shadow实现四周阴影 div{ width:250px; height:250px; background:greenyellow; box-shadow:black 0px 0px 10px;//将颜色提到前面,且将h-shadow,v-shadow设为0px,实现四周阴影 } 效果图
  • 视频直播推流与拉流的实现

    万次阅读 2016-09-23 00:22:21
    序言 最近在研究直播的弹幕,东西有点多,准备记录一下免得自​​己忘了又要重新研究,也帮助有这方面需要的同学少走点弯路。关于直播的技术细节其实就是两个方面一个是推流一个是拉流,而弹幕的实现核心在即时...
  • CSS中box-sizing: border-box;的作用

    万次阅读 2018-08-29 19:12:57
    box-sizing 属性可以被用来调整这些表现: content-box 是默认值。如果你设置一个元素的宽为100px,那么这个元素的内容区会有100px宽,并且任何边框和内边距的宽度都会被增加到最后绘制出来的元素宽度中。 border-...
  • Fresco简单的使用—SimpleDraweeView

    万次阅读 多人点赞 2016-05-06 13:06:09
    Fresco简单的使用—SimpleDraweeView 百学须先立志—学前须知: 在我们平时加载图片(不管是下载还是加载本地图片…..)的时候,我们经常会遇到这样一个需求,那就是当图片正在加载时应该呈现正在加载时的图像...
  • 调整DOSBOX窗口大小并运行程序

    万次阅读 2019-04-13 15:43:15
    想用DOSBOX玩ZORK,然而窗口小到眼睛酸痛。解决方案如下。 修改过程: 1、点开配置文件 2、修改并保存配置文件 windowresolution=1280x800 output=opengl 3、修改前后对比 修改前: 修改后: ...
  • 高斯滤波计算过程

    万次阅读 2016-09-01 16:07:20
    转载地址:... ...图像滤波之高斯滤波(Gauss filter) ...高斯滤波在图像处理概念下,将图像频域处理和时域处理相联系,作为低通滤波器使用,可以将低频能量(比如噪声)滤去,起到图像平滑作用。...高斯滤
  • 【注】该系列文章以及使用到安装包/测试数据 可以在《倾情大奉送–Spark入门实战系列》获取 1、GraphX介绍 1.1 GraphX应用背景 ...Spark GraphX是一个分布式图处理框架,它是基于Spark平台提供对图计算和图挖掘...
  • 深入理解BootStrap -- 面板(panel)17

    万次阅读 2016-01-07 09:23:36
    1、面板 面板(Panels)是Bootstrap框架新增的一个组件,其主要作用就是用来处理一些其他组件无法完成的功能。同样在不同的版本中具有不同的源码: ☑ Less版本:对应的源码文件是 panels.less ...
  • 理解box-sizing属性border-box,content-box

    万次阅读 多人点赞 2018-07-08 14:33:46
    普通盒模型与怪异盒模型对比。box-sizing:content-boxbox-sizing:border-box;对比。 如何使用普通盒模型与怪异盒模型,如何让浏览器只支持标准盒模型。
  • 线程池的使用(ThreadPoolExecutor详解)

    万次阅读 多人点赞 2016-07-25 18:06:31
    为什么要使用线程池? 线程是一个操作系统概念。操作系统负责这个线程的创建、挂起、运行、阻塞和终结操作。而操作系统创建线程、切换线程状态、终结线程都要进行CPU调度——这是一个耗费时间和系统资源的事情。...
  • 如何调整DOSBOX的运行窗口大小

    万次阅读 多人点赞 2020-09-17 21:40:00
    在安装DOSBOX后,打开应用,会出现运行窗口特别小,字体也很小的情况, 使用时会感觉特别费劲,眼睛也会受不了,因此这时就需要调整一下窗口大小: 1、点击配置文件并打开: 2、找到图片所示位置: 3、进行修改:...
1 2 3 4 5 ... 20
收藏数 552,533
精华内容 221,013
关键字:

box