Check the preview of 2nd version of this platform being developed by the open MLCommons taskforce on automation and reproducibility as a free, open-source and technology-agnostic on-prem platform.
program:caffe-ssd-train-kitti (v1.0.0)
Creation date: 2018-01-30
Source: GitHub
cID: b0ac08fe1d3c2615:925820da925b422d

Don't hesitate to get in touch if you encounter any issues or would like to discuss this community project!
Please report if this CK component works: 1  or fails: 0 
Sign up to be notified when artifacts are shared or updated!

Description  

This portable workflow is our attempt to provide a common CLI with Python JSON API and a JSON meta description to automatically detect or install required components (models, data sets, libraries, frameworks, tools), and then build, run, validate, benchmark and auto-tune the associated method (program) across diverse models, datasets, compilers, platforms and environments. Our on-going project is to make the onboarding process as simple as possible via this platform. Please check this CK white paper and don't hesitate to contact us if you have suggestions or feedback!
  • Automation framework: CK
  • Development repository: ck-caffe
  • Source: GitHub
  • Available command lines:
    • ck run program:caffe-ssd-train-kitti --cmd_key=prepare (META)
    • ck run program:caffe-ssd-train-kitti --cmd_key=train (META)
  • Support for host OS: any
  • Support for target OS: any
  • Tags: caffe-detection,caffe-detection-ssd,ssd,demo,training,object-detection
  • How to get the stable version via the client:
    pip install cbench
    cb download program:caffe-ssd-train-kitti --version=1.0.0 --all
    ck run program:caffe-ssd-train-kitti
  • How to get the development version:
    pip install ck
    ck pull repo --url=https://github.com/dividiti/ck-caffe
    ck run program:caffe-ssd-train-kitti

  • CLI and Python API: module:program
  • Dependencies    

    ReadMe  

    caffe-ssd-train-kitti

    Demo program for fine-tuning of SSD caffemodels originaly trained on COCO and VOC datasets to detect objects of KITTI dataset.

    Requirements

    Caffe library:

    ck install package:lib-caffe-ssd-cpu
    ck install package:lib-caffe-ssd-cuda
    

    Caffe SSD model and pretrained weights:

    ck install package:caffemodel-ssd-coco-300
    ck install package:caffemodel-ssd-coco-512
    ck install package:caffemodel-ssd-voc-300
    ck install package:caffemodel-ssd-voc-512
    

    KITTI dataset:

    ck install package:dataset-kitti-full
    

    Run

    There are two steps.

    Prepare

    ck run program:caffe-ssd-train-kitti --cmd_key=prepare
    

    Here training and testing datasets are prepared. Original KITTI dataset contains image files, while SSD training uses LMBD as a data source. KITTI images are scaled to a size supported by the selected caffemodel (300 or 512 px) and CK_TRAIN_IMAGES_PERCENT of them are included into the train database and the rest into the test database.

    Train

    ck run program:caffe-ssd-train-kitti --cmd_key=train
    

    Run training process using prepared data.

    Essential anvironment variables:

    CK_BATCH_SIZE

    Specify the batch size.

    CK_DEVICE_ID

    The device that will be used in GPU mode. Run mode, CPU or GPU, is governed by the selected caffe library.

    CK_SNAPSHOT_INTERVAL

    The snapshot interval.

    CK_TEST_INTERVAL

    The number of iterations between two testing phases.

    Results

    Trained weights are saved into tmp/snapshots directory.

    TODO

    • Models *-512 fail with message Check failed: num_priors_ * num_classes_ == bottom[1]->channels(), it is because of dimensions of final layers depend on the number of detection classes. Though that layers are modified in program but something is missed for *-512 models (they have more layers than *-300s have).

    • We could implement continued training by loading not the pretrained weights of the selected caffemodel but latest snapshot instead.

    • Implement one more command key test that will detect specified number of KITTI images using latest snapshot then will convert detection results and run original KITTI evaluation program ($CK-TOOLS/demo-squeezedet-patched/squeezeDet/src/dataset/kitti-eval/cpp/evaluate_object.cpp) to calculate metrics in the same way as SqueezeDet does.

    Versions  

    Files  

    Comments  

    Please log in to add your comments!
    If you notice any inapropriate content that should not be here, please report us as soon as possible and we will try to remove it within 48 hours!