1. yolact的识别帧率是多少
resnet50可以42fps
2.yolact为什么比maskrcnn等快, 为什么能实时?
yolact 的模板分支,和 rpn分支是并行的,没有依赖,合并就出mask。maskrcnn要等到rpn算完了,才能取到feature,然后做mask。
2.5 maskrcnn如何使用roialign解决空间连续性问题?
卷积层每次计算都是空域相关的。而fasterrcnn里面,roi 是计算的xywc, 出现小数后,就造成了空域的错位,以及到后面的kxk bin,也会出现。所以都是使用双线性差值来解决错位。
yolact是因为产生的模板,本身就是mask都是空域卷积来的,不存在错位问题。
下图来自 https://blog.csdn.net/jiaoyangwm/article/details/89176767
3.yolact的网络结构是什么样子的?
分为2个分支, 上面的p3就是c3, P4就是C4,P5是c5, p6 p7是C5进行两次stride=2卷积分别得到的结果
4.yolact的损失函数是什么样子的?
5.mask prototype是如何产生的?
P3卷积后产生channel数为k的层,类似与特征层那样。
6. 系数分支是如何计算系数的?
所谓系数,模板,都是相对于上面分支,每个anchor产生的box而言的,prediction head,预测很多anchor box, (x,y,w,h, 每类score向量),然后产生这个anchor box对应的mask,的模板系数。
7.mask的剪切是怎么回事?训练和inference时候,有区别吗?
生成的模板,尺寸是相对于整个输入图片的,所以小目标,在模板中,响应会是很小的一点,如果用来直接计算损失,那么其损失会很小,而大目标产生的损失就很大,这样的网络对小目标检测效果肯定不好。
inference时候,就不需要剪切了。
8.代码中,如下,该如何使用?
parser.add_argument('--cuda', default=True, type=str2bool,
help='Use cuda to evaulate model')
--cuda 0
9.yolact 训练时候的日志,如何解释?
[ 1] 24010 || B: 2.529 | C: 3.747 | M: 3.575 | S: 0.759 | T: 10.610 || ETA: 3 days, 21:15:16 || timer: 0.429
[ 1] 24020 || B: 2.512 | C: 3.667 | M: 3.574 | S: 0.758 | T: 10.511 || ETA: 3 days, 21:17:02 || timer: 0.387
[ 1] 24030 || B: 2.531 | C: 3.675 | M: 3.546 | S: 0.743 | T: 10.495 || ETA: 3 days, 21:19:19 || timer: 0.437
[ 1] 24040 || B: 2.544 | C: 3.660 | M: 3.589 | S: 0.774 | T: 10.567 || ETA: 3 days, 21:19:06 || timer: 0.402
B:box, C:class, M:mask, S:instance segmentation, T:total
10. 模板,系数后,为了改进对小目标的检测,crop代码在哪里?