Официальный репо еще не выпустил Faster RCNN с моделями мобильной сети. Но если вы хотите, вы все равно можете использовать некоторые другие модели с мобильной сетью, обученной COCO, процесс немного сложнее.
Необходимо выполнить два важных шага.
Первый должен иметь соответствующий класс экстрактора объектов. Для Faster RCNN каталог models уже содержит реализацию экстрактора функций faster_rcnn_mobilenet
, так что этот шаг в порядке. Но для R-FCN вам придется самостоятельно реализовать класс экстрактора возможностей.
Второй - изменить имена тензоров, доступные в контрольной точке. Например, если вы используете ssd_mobilenet_v1_xxx
в качестве контрольной точки, тогда все тензоры в области действия mobilenet
будут именоваться как FeatureExtractor/MobilenetV1/XXX
, а если в модели faster_rcnn_mobilenet_v1
имена тензоров в области действия mobilenet
равны FirstStageFeatureExtractor/MobilenetV1/XXX
(и SecondStageFeatureExtractor/MobilenetV1/XXX
). По сути, вам необходимо удалить FirstStage
(а также SecondStage
) в именах всех тензоров экстрактора признаков, тогда эти тензоры будут иметь точно такое же имя, как и в контрольной точке, и будут корректно восстановлены. Если вы сделаете это, вам нужно изменить функцию
def restore_map(self,
fine_tune_checkpoint_type='detection',
load_all_detection_checkpoint_vars=False):
в файле faster_rcnn_meta_arch.py
.