编译安装py-faster-rcnn踩坑记
尚无评论因为之前一直用TensorFlow,所以在做目标检测用Faster-RCNN时,使用的一直是GitHub上的基于TensorFlow的Faster-RCNN的Repository,改来改去,进行的各种操作。但那么几个Repositories大同小异,基本上都是基于RBG大神的py-faster-rcnn做的。因此,溯本追源,尽管其是基于caffe做出来的,但如果不好好研究一下py-faster-rcnn这个Repository的话,也似乎有点舍本逐末了。
可caffe的坑实在太多,这也是大家现在普遍都在转新的框架的原因之一吧;我一直讳谈、讳用caffe相关的东西,也大体上有这样一个原因。
果不其然,安装调试py-faster-rcnn时,就碰到了许多关于caffe的坑;当然,也有一些py-faster-rcnn自身的坑,不过多是因为该项目年久失修,解决起来并不算难。
使用Python在图像上标注汉字
尚无评论如果我们的classes是汉字,在使用Faster-RCNN检测完成后,需要将其标注到图片上查看效果时,可能会面临一些问题。一是Python2的编码问题比较混乱,可能带来错误;第二个是Python2的默认字体不支持中文,即使打印到图片上,也可能显示的是乱码。
因此,在将汉字classes打印到图片上的过程中,需要进行一些特殊的处理。我们在这里进行一下记录以便备忘。
在Python里,对图片进行处理时,我们通常使用Matplotlib或PIL,因此,这里我们也对这两个方法分别加以介绍。
将自己的数据集转换成pascal_voc格式
尚无评论在RCNN、Fast-RCNN、Faster-RCNN等一系列深度学习用于目标检测(Object Detection)的众多开源实现里,基本上都是基于pascal_voc的数据集进行处理的,给出了使用该数据集进行训练和测试的完整代码。
诚然,我们可以基于这些开源项目来进行定制,并在自己的数据集跑起来。但这样需要修改大量代码,稍有不慎可能带来很多注意不到的错误。而从另一个方面入手,如果将我们的数据集按照pascal_voc的格式进行转换,然后进行训练,则会简单地多,只需要修改很少量的代码即可。不过这样一来,我们的任务则集中在了将数据集转换为pascal_voc的格式上。