yun-liu / RCF

Richer Convolutional Features for Edge Detection
Other
752 stars 259 forks source link

关于RCF UCM map的问题 #115

Closed bubeifaxian233 closed 3 years ago

bubeifaxian233 commented 3 years ago

作者您好! 请问RCF UCM map部分的代码可以分享一下吗?

yun-liu commented 3 years ago

您好!这部分就是把COB (https://github.com/kmaninis/COB) 里的edge替换成RCF的edge就行,几乎不需要新的代码

bubeifaxian233 commented 3 years ago

您好!这部分就是把COB (https://github.com/kmaninis/COB) 里的edge替换成RCF的edge就行,几乎不需要新的代码

RCF可以直接放进去吗?我没有找到COB中edge的接口。。。

yun-liu commented 3 years ago

@zhangzheng0317

我的做法比较直接。用COB时,调用函数im2ucm.m进行图像分割,这个文件会调用img2ucms.m文件。您看img2ucms.m的这一行代码:https://github.com/kmaninis/COB/blob/master/src/ucms/img2ucms.m#L60, 这是在做分割的时候,要先用CNN算图像边缘E和边缘的方向O。我的做法就是提前计算好RCF的图像边缘,在这里把E替换成RCF边缘就可以了。COB是用的HED架构计算边缘,简单替换一下,就可以评测RCF边缘对于图像分割的提升。

有一点需要注意, COB默认是MCG (multiscale),所以这里的E是一个大小为2的cell,E{1}是fine edge,即side 1-4的edge融合的结果 (https://github.com/kmaninis/COB/blob/master/models/deploy.prototxt#L1401); E{2}是coarse edge,即side 2-5的edge融合的结果 (https://github.com/kmaninis/COB/blob/master/models/deploy.prototxt#L1410). 而RCF默认只生成side 1-5的总的融合结果,所以你得改一下RCF网络,搞成两个输出 (融合部分的1x1卷积只有四五个参数), fine tune一下RCF模型。或者您可以把COB的默认MCG (multiscale) 改成SCG (singlescale),即去掉多尺度部分,当然这样会损失一点性能。

bubeifaxian233 commented 3 years ago

感谢!!!