{"id":19534479,"url":"https://github.com/carsonfenimore/customobjdet","last_synced_at":"2026-05-15T04:33:35.520Z","repository":{"id":258280421,"uuid":"446193848","full_name":"carsonfenimore/customobjdet","owner":"carsonfenimore","description":"Docker containers for training tflite object detection models and exporting them to several hardware platform types, including Intel Myriad-X, Google Coral, and plain old tflite","archived":false,"fork":false,"pushed_at":"2022-01-15T14:13:06.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-26T03:44:37.985Z","etag":null,"topics":["ai","detection","object"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/carsonfenimore.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-09T20:20:23.000Z","updated_at":"2024-10-17T02:10:21.000Z","dependencies_parsed_at":"2024-10-18T09:24:10.837Z","dependency_job_id":null,"html_url":"https://github.com/carsonfenimore/customobjdet","commit_stats":null,"previous_names":["carsonfenimore/customobjdet"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/carsonfenimore/customobjdet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carsonfenimore%2Fcustomobjdet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carsonfenimore%2Fcustomobjdet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carsonfenimore%2Fcustomobjdet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carsonfenimore%2Fcustomobjdet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carsonfenimore","download_url":"https://codeload.github.com/carsonfenimore/customobjdet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carsonfenimore%2Fcustomobjdet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33053797,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-15T02:00:06.351Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","detection","object"],"created_at":"2024-11-11T02:14:28.485Z","updated_at":"2026-05-15T04:33:35.505Z","avatar_url":"https://github.com/carsonfenimore.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Overview\n\nThis repo contains various files to support: end-to-end edge AI. This includes:\n  - GPU-accelerated training of mobilenet v2\n  - Exporting models to MyriadX (Luxonis depthai)\n  - Exporting models to Coral TPU\n  - And more!\n\n# Training \n\n\n## Set up your data:\n  - TODO: all scripts from here on should accept PROJECT_NAME as an arg, so we arent modifying any scripts...\n  - First define your project by setting PROJECT_NAME in scripts/constants.sh\n  - Create a directory in scripts/images_{PROJECT_NAME}\n  - Put your map of numbers to class into a file called \"label_map.pbtxt\" inside scripts/images_{PROJECT_NAME}\n  - Put train images/labelImg xmls inside scripts/images_{PROJECT_NAME}/train\n  - Put test images/labelImg xmls inside scripts/images_{PROJECT_NAME}/test\n\n## Train\nRun the docker:\n\n    ./run1152.sh\n\nInside the container:\n\n        # Grab mobilenet v2 checkpoints\n        # This also copies the template pipeline config\n        # NOTE: we use the myriad one as a source and produce TWO pipeline configs:\n        #  - one without quantization graph_rewriter\n        #  - one WITH the quantization graph_rewriter\n        ./scripts/prepare_checkpoint.sh\n\n        # take the dataset, generate the tfrecords\n        # The pipeline from prepare_checkpoint.sh will reference these\n        # tfrecords.\n        ./scripts/prepare_dataset.sh   \n\n        # Actually run the detection phase\n        # outputs various checkpoints in the train_output directory\n        ./scripts/do_train.sh\n\nIn another console run the tensorboard script:\n\n        ./run_tensorboard.sh\n\nWait til training is done. Can watch tensorboard by going to http://host:6007\n\n# POST-TRAINING:\n\n## Coral / TPU-Deployment:\nFrom within the tf1152 docker export the fine-tuned model to tensorflow lite:\n\n        ./scripts/convert_checkpoint_to_edgetpu_tflite.sh\n\nConvert tensforlite to edgetpu:\n\n        ./scripts/tpu_compile.sh\n\nCopy you tpu-compiled model from learn_${PROJECT} to your device\n\n    \n\n## MyriadX-Deployment:\nFrom within the tf1152 docker generate OpenVINO IR:\n    \n        ./scripts/openvino_frozen_to_ir.sh\n\nConvert IR to blob\n\n        ./scripts/openvino_ir_to_blob.sh\n\nTo place ot inside where, say, depthai_demo cna find it, create a json under depthai/resources/nn/\u003cmodeldir\u003e/\u003cmodeldir\u003e.json:\n \n        {\n            \"nn_config\":\n            {\n                \"output_format\" : \"detection\",\n                \"NN_family\" : \"mobilenet\",\n                \"confidence_threshold\" : 0.5,\n                \"input_size\": \"300x300\"\n            },\n            \"mappings\":\n            {\n                \"labels\":\n                [\n                    \"unknown\",\n                    \"tesla\"\n                ]\n            }\n        }\n\nAnd put the blob along side it\nTODO: Generate this json by parsing the labelmap, as its the only thing that changes...\n\n    \n# Notes on what was modified to make all these scripts work\n - Modified model_main.py to have an \"allow_growth\" option on the session_config - to avoid blowing up on GPU due to OOM\n - Modified generate_tfrecord.py:63 to fix something in the tfrecord scripts that wasn't working...\n\n    label_map_dict = label_map_util.get_label_map_dict(args.labels_path)\n\n - Add in openvino\n - merge in the tpu compiler...\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarsonfenimore%2Fcustomobjdet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcarsonfenimore%2Fcustomobjdet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarsonfenimore%2Fcustomobjdet/lists"}