🎓 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]
Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression (AAAI 2020)
🎓 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]
电脑运行test_1715k.m,10min没结束呢,请问大致需要多久。
txt得到后,最后的代码就是生成文章里三维的loss图吗?高低起伏的那个?
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?
Hi,
It's very nice work. I was experimenting with my custom loss function with this simulation and have a couple of questions.
Please correct if I am wrong.
Thank you.
and where is the matlab file corresponding to Figure one ? I haven't found it so far
Hello,have you used diou on the centernet
Is it possible to compute DIoU loss on Quadrilateral bboxes?
希望能在代码最先出现t,b,l,r的地方给与注释,不然理解起来太难受了,命名尽量做到见名知意
simple test为何分为三个阶段?梯度不是一样的?
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]
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
Hello, may I ask, how did you come up with the calculation formulas for α and v in the original CIOU paper?
您好,请问,test_1715k.m中iou-1715k.txt、giou-1715k.txt、diou-1715k.txt、ciou-1715k.txt如何获取?这是公开数据集吗?
matlab仿真中的导入的.txt文件的内容是什么,可不可以给一下
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(2CCwCw.dw+2CChCh.dw)d / (C * C);
s.dh= 1(2CCwCw.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
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
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 |
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
hi, reading your aweson paper recently.
i mannually calc. the deviation of v wrt w and h.
maybe i am wrong about the deviation calculation, but it seems that the dv/dw should have a negative sign, and the dv/dh should not.
your deviation below:
my mannual calculation for deviation of v wrt w below:
what did i miss?~~~thanks!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.