在Faster RCNN中有使用一些额外的程序,类等等,为了使文章整体内容不过于分散,这里作为篇外卷学习。
文件地址:\py-faster-rcnn\lib\datasets
最后的coco.py不做解释,其中python的用法不难。
本文章解析代码为pascal_voc.py。
在代码中定义了一个名为pascal_voc的类。
我们重点解释下函数的继承:
先贴两段代码解释下函数的继承:
class imdb(object):
"""Image database."""
class pascal_voc(imdb):
def __init__(self, image_set, year, devkit_path=None):
前一个代码定义了一个类imdb输入时object,后一个代码定义了一个类pascal_voc输入是imdb。这样就定义了imdb为父类,pascal_voc为子类。而父类的子函数则可以由子类进行继承,但如果子类内部重新定义了一个同名的子函数,那么父类处的该函数就不会被子类基础。
最后解释下子函数的命名问题,在子函数中如果使用单下划线“_”代表的是改函数是私有的这个有点像惯例了,便于函数的可读性。
到这里改文件代码的重点python内容就解析解释了。