Giter Club home page Giter Club logo

diou's Introduction

👋 Hi! I'm Zhaohui Zheng.

🎓 I’m currently a four-year PhD student supervised by Prof. Ming-Ming Cheng in Nankai University.

😆 My research interests are object detection, instance segmentation and knowledge distillation.

📃 My homepage.

📫 Email contact: [email protected]

Anurag's github stats $~$ Top Langs

diou's People

Contributors

csdwren avatar zzh-tju avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

diou's Issues

请问test_1715k.m运行多久呢?

电脑运行test_1715k.m,10min没结束呢,请问大致需要多久。
txt得到后,最后的代码就是生成文章里三维的loss图吗?高低起伏的那个?

Radius = 3 for simulation

As you have discussed in your paper Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression, you have taken radius = 3, for simulation. Can you tell me reason behind taking it as 3. Is it practically possible, to consider larger N, like N=5 or 10 or 20?

Question regarding loss

Hi,
It's very nice work. I was experimenting with my custom loss function with this simulation and have a couple of questions.

  1. In dIbox calculation, the line is estimating s.dt. But its chooses values of r and l. Shouldn't it be the other way around?
  2. In the dDIOU.m file, lines 73 to 76 were used to find s.dx, s.dy, s.dw, s.dh. Why do we multiply the equation with "C" value? Are they variables used to normalize?

Please correct if I am wrong.
Thank you.

DIoU.m程序的一点愚见

对于程序第58 60 61 63我觉得是不是下角标写错了,我改成
Cw.dy=Cr.dy-Cl.dy;
Cw.dh=Cr.dh-Cl.dh;
Ch.dx=Cb.dx-Ct.dx;
Ch.dw=Cb.dw-Ct.dw;
图片效果差不多,望up主老哥检查下,目前我研究的方向和老哥很像,可不可以加个好友,方便学术交流,哈哈哈。qq787009112.
image

t, b, l, r mean what?

希望能在代码最先出现t,b,l,r的地方给与注释,不然理解起来太难受了,命名尽量做到见名知意

for k=161:180

simple test为何分为三个阶段?梯度不是一样的?

Reproduced the simulation experiment in pytorch [Converges but different results for GIoU from the paper]

Hi,

First thanks for the very interesting work.

I tried to reproduce the results of your simulation experiment and faced following challenges -

a) Tried to run it using Octave (as I do not have matlab) and it was quite slow ... as in many days to finish it. Most likely octave issues!

b) Reproduced the simulation algorithm in pytorch but it required the loss to be scalar to compute the gradients. However, your experiment computes gradient per sample. Fortunately using the newly introduced vmap API in pytorch I have managed to do that as well.

c) On my mac M1, every loss function experiment takes less than a minute. I am providing the implementation in Google colab where it takes from 1 to 3 minutes per loss function.

d) Finally, my code assumes xyxy format for boxes, loss and gradient update. As such (based on my understanding of your matlab scripts) you also compute gradients in xyxy space and then translate them to cxycywh before updating the anchor boxes. I would like to think that this is not an issue but please confirm if you think it is the contributing factor that creates differences between your and my results.

Your experiment [from the paper]
image

My implementation
image

As per my experiment code, the giou loss reduces faster than others.

Most likely, I am not doing something correct and would appreciate if you could look at the notebook and point out why my results are different from yours.

Here is the link to the google colab notebook which has everything that is needed to run the experiment.
https://colab.research.google.com/drive/1GAXn6tbd7rKZ1iuUK1pIom_R9rTH1eVU?usp=sharing

Many thanks for the wonderful paper and work you have done in this field.

Regards
Kapil

About the derivative w.r.t l, r, t, b to the derivative w.r.t x, y, w, h

您好
在simple_test.m中:
以IOU Loss为例
derivative=dIOU(pred_tblr,gt_tblr);
得到IOU关于x1(l) x2(r) y1(t) y2(b)的导数,即dIOU/dl,dIOU/dr,dIOU/dt,dIOU/db

derivative=to_xywh(derivative);
将IOU关于x1(l) x2(r) y1(t) y2(b)的导数转换为关于中心点坐标x,y与预测框宽高w,h的导数
function s=to_xywh(A)中显示 dIOU/dx = dIOU/dl+dIOU/dr

但是我推导如下:
github

txt文件获取

您好,请问,test_1715k.m中iou-1715k.txt、giou-1715k.txt、diou-1715k.txt、ciou-1715k.txt如何获取?这是公开数据集吗?

matlab仿真运行

matlab仿真中的导入的.txt文件的内容是什么,可不可以给一下

Question about calculating the derivative of DIoU

d=(A(1)-B(1))(A(1)-B(1))+(A(2)-B(2))(A(2)-B(2));
s.dx=1*(2*(B(1)-A(1))C-(2CCwCw.dx+2CChCh.dx)d) / (C * C);
s.dy=1
(2
(B(2)-A(2))C-(2CCwCw.dy+2CChCh.dy)d) / (C * C);
s.dw= 1
(2
CCwCw.dw+2CChCh.dw)d / (C * C);
s.dh= 1
(2
CCwCw.dh+2CCh*Ch.dh)*d / (C * C);

In line 72-76 in dDIOU.m,
I was wondering about why s.dw and s.dh don't have negative sign.
S = ((B(1)-A(1))^2 + (B(2)-A(2))^2)/C, then I think that dS/dw and dS/dh should have zero gradient on first term and negative sign on second term of fraction differential equation.
(A/B)' = (A'B - AB')/B^2

Hello, I have a question when using the code you provided

s.dt=s.dt+1*(CdU.dt-UdC.dt)/C^2;
s.db=s.db+1*(CdU.db-UdC.db)/C^2;
s.dl=s.dl+1*(CdU.dl-UdC.dl)/C^2;
s.dr=s.dr+1*(CdU.dr-UdC.dr)/C^2;
Why should C and u be multiplied by du.dt and dc.dt respectively,Why should c be quadratic,and What values are calculated by dubox and dcbox,I'm very confused

Independent PyTorch-YOLOv3 Results

I tested the 3 box regression methods below on https://github.com/ultralytics/yolov3 using yolov3-spp.cfg with swish trained on full COCO2014 to 27 epochs each, but was not able to realize performance improvements with the new methods. I'll try again with LeakyReLU(0.1). The IoU function I implemented is here.

python3 train.py --weights '' --epochs 27 --batch-size 16 --accumulate 4 --prebias --cfg cfg/yolov3s.cfg
[email protected] mAP0.5:0.95 Epoch time on 2080Ti
GIoU (default) 49.7 30.2 36min
DIoU 49.4 30.0 36min
CIoU 49.7 30.1 36min

关于DIOU论文仿真dDIOU.m中的求导部分

第一个问题:没理解为何要对外接矩形的每一个角点求dx,dw,dh,dy?更进一步的,为何导数值是1或者0.5,这个导数值是怎么得到的?这些中间变量没注释根本无法理解什么意思...
image

Some confusion of the thesis

The Giou visualization of the figure4, Why the errors of (10, 12) is smaller than (10, 13). The C − A ∪ B in (10,13) is bigger than (10, 12)
But the cases at horizontal and vertical orientations are likely to still have large errors. This is be�cause that the penalty term in GIoU loss is used to minimize |C − A ∪ B|, but the area of C − A ∪ B is often small or 0 (when two boxes have inclusion relationships), and then GIoU almost degrades to IoU loss

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.