由于现有的linux系统环境,使用Linux编程是必须也是不可逃避的。为此,近期安装了Ubuntu16.04以及caffe2和detectron。在安装过程中使用了很多的方法以及手段查阅了很多的资料,但是依旧有很多的问题。然而,大部分问题的原因即是版本不兼容。pip安装总是出现镜像元连接不可用问题。最后,偶然之间找到了一个科学上网工具,最终解决了所有的问题。
直到使用了科学上网才发现Ubuntu的便捷和快速。然而现在回想起当初的所有坑,其实说白了都是不能连接外网导致的。为此,在这里强烈建议使用Ubuntu的小伙伴们找到一款可以长期使用的上网工具。对于系统的安装和使用帮助很大。
除了上网工具之外,还安装了caffe2以及detectron。安装过程都选择了官网教程。很好用,也很靠谱。最终遇到的唯一问题就是路径设置。建议不要使用anaconda。windows环境下anaconda会帮助安装许多模块,然而在linux下使用上网工具之后反而自己安装显的方便,并且在linux下使用anaconda会改变python路径,所以出于方便,不建议使用anaconda。
在安装好一切库和文件之后,便是运行detectron中的简单例子了。在这里,detectron的git上有详细的教程。其中的--wts的路径一直不知道是如何得来的。但是,由于mask rcnn的wts文件是基于resnet101的 所以,理所应当的将该wts用于faster rcnn 101之后也可以使用。基于这个常识,仔细看了mask rcnn resnet101的config文件和faster rcnn101之后才发现其中的相同点。之后又仔细看了infer_simple.py中的model函数和config中的conv_body之后总算是看清楚了整个系统的框架。
但是,并不像上面所说的那么轻松,实际操作起来,理清代码结构总共花了2天的时间吧。期间也参考了一些别人的csdn博客。在此感谢大家的分享。如有一些问题,可以参考该博主的文件,写的很清楚。https://blog.csdn.net/blateyang。对detectron实例函数运行成功之后便又进行了一部分代码解读。也通过模型,对自己的数据集进行了测试,效果不错。感觉detectron真的和那些大神们说的一样是个宝库呢。还有很多细节和注意事项需要考究。
最终希望自己可以修改detectron代码,以提高效率和结果。