{"id":8516,"date":"2024-01-03T06:00:27","date_gmt":"2024-01-03T14:00:27","guid":{"rendered":"https:\/\/live-cometml.pantheonsite.io\/?p=8516"},"modified":"2025-04-24T17:03:38","modified_gmt":"2025-04-24T17:03:38","slug":"build-and-monitor-an-object-detection-model-in-5-steps-using-comet","status":"publish","type":"post","link":"https:\/\/www.comet.com\/site\/blog\/build-and-monitor-an-object-detection-model-in-5-steps-using-comet\/","title":{"rendered":"Build and Monitor an Object Detection Model in 5 Steps Using Comet"},"content":{"rendered":"\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"cec1\">In this project guide, we will dive into object detection by creating a custom object detection model and monitoring its accuracy metrics and hyperparameters in five simple steps!<\/p>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"e0c4\">It doesn&#8217;t even matter if your machine sucks, let&#8217;s go!<\/p>\n\n\n\n<h2 class=\"wp-block-heading mk ml fr be mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh bj\" id=\"25ba\">Dataset<\/h2>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp ni lr ls lt nj lv lw lx nk lz ma mb nl md me mf nm mh mi mj fk bj\" id=\"f187\">We will use this <a class=\"af nn\" href=\"https:\/\/drive.google.com\/drive\/folders\/1l7pUi1hjub41bEWgGmn4DrzSUpMs75Cy?usp=sharing\" target=\"_blank\" rel=\"noopener ugc nofollow\">dataset<\/a> from Google Drive to train the model in this project. The dataset contains two folders: <strong class=\"lo fs\">train<\/strong> and <strong class=\"lo fs\">test, which both<\/strong> contain subfolders, <strong class=\"lo fs\">images,<\/strong> and <strong class=\"lo fs\">labels. As<\/strong> the name implies here, the images folder includes the training and validation images, while the <strong class=\"lo fs\">labels<\/strong> have the<strong class=\"lo fs\">annotation for the respective images. <\/strong>We will be uploading this file to our Google Colab soon. Get ready!<\/p>\n\n\n\n<h2 class=\"wp-block-heading mk ml fr be mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh bj\" id=\"8613\">Coding Environment<\/h2>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp ni lr ls lt nj lv lw lx nk lz ma mb nl md me mf nm mh mi mj fk bj\" id=\"0cb4\">We will be using Google Colab as our coding environment for this project.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote no np nq is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"lm ln nr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"9a5a\">Ensure to turn your Runtime to GPU when using Google Colab.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading mk ml fr be mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh bj\" id=\"7a7b\">Step 1: Clone the YoloV7 repository from GitHub<\/h2>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp ni lr ls lt nj lv lw lx nk lz ma mb nl md me mf nm mh mi mj fk bj\" id=\"a1f4\">We need to clone the YoloV7 folder from the official GitHub repository:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><span id=\"35ae\" class=\"ob ml fr ny b bf oc od l oe of\" data-selectable-paragraph=\"\">! git clone https:\/\/github.com\/WongKinYiu\/yolov7.git<\/span><\/pre>\n\n\n\n<h2 class=\"wp-block-heading og ml fr be mm oh oi oj mq ok ol om mu lx on oo op mb oq or os mf ot ou ov ow bj\" id=\"1021\">Code Output<\/h2>\n\n\n\n<figure class=\"wp-block-image ns nt nu nv nw pa ox oy paragraph-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:700\/1*1pcZSEDskVnjRsIikXXv6w.png\" alt=\"Cloning the official Yolov7 repository\"\/><figcaption class=\"wp-element-caption\">Cloning the official Yolov7 repository<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"006a\">From the code output above, it can be seen that we can create a folder &#8220;<strong class=\"lo fs\">yolov7,<\/strong>&#8221; which contains all the subfolders, scripts, configuration files, and many more required to run object detection.<\/p>\n\n\n\n<h2 class=\"wp-block-heading mk ml fr be mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh bj\" id=\"3b80\">Step 2: Install All The Dependencies Needed to Run Your Object Detection<\/h2>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp ni lr ls lt nj lv lw lx nk lz ma mb nl md me mf nm mh mi mj fk bj\" id=\"7a58\">We must install the dependencies provided in the <strong class=\"lo fs\">requirement.txt file<\/strong> inside the <strong class=\"lo fs\">yolov7<\/strong> folder. But first, you need to ensure that you are inside the <strong class=\"lo fs\">yolov7 <\/strong>folder before running the <strong class=\"lo fs\">requirement.txt <\/strong>file. To do this, run the command below:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><span id=\"ddc0\" class=\"ob ml fr ny b bf oc od l oe of\" data-selectable-paragraph=\"\">cd \/content\/yolov7<\/span><\/pre>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"0f47\">This will return the output below:<\/p>\n\n\n\n<figure class=\"wp-block-image ns nt nu nv nw pa ox oy paragraph-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:565\/1*Psfkyi-BU3MevVRO8HWQQg.png\" alt=\"code output\"\/><\/figure>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"85d0\">Now run the <strong class=\"lo fs\">requirements.txt<\/strong> files:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><span id=\"5a29\" class=\"ob ml fr ny b bf oc od l oe of\" data-selectable-paragraph=\"\">pip install -r requirements.txt<\/span><\/pre>\n\n\n\n<h2 class=\"wp-block-heading og ml fr be mm oh oi oj mq ok ol om mu lx on oo op mb oq or os mf ot ou ov ow bj\" id=\"e9b1\">Code Output<\/h2>\n\n\n\n<figure class=\"wp-block-image ns nt nu nv nw pa ox oy paragraph-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:700\/1*6tm2YXvQGVuIQD7vpOTITg.png\" alt=\"Installing requirements\"\/><figcaption class=\"wp-element-caption\">Installing requirements<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading mk ml fr be mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh bj\" id=\"3a1c\">Step 3: Prepare and Upload Your Data<\/h2>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp ni lr ls lt nj lv lw lx nk lz ma mb nl md me mf nm mh mi mj fk bj\" id=\"93e9\">Now proceed inside the <strong class=\"lo fs\">yolov7<\/strong> folder and locate the <strong class=\"lo fs\">data<\/strong> folder. Open it and create two folders, <strong class=\"lo fs\">test<\/strong> and <strong class=\"lo fs\">train<\/strong>. Create subfolders, images, and labels inside each of the two folders.<\/p>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"ab9b\">The figure below shows the newly created folders.<\/p>\n\n\n\n<figure class=\"wp-block-image ns nt nu nv nw pa ox oy paragraph-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:337\/1*qp0CntL5IE629YxyGWMSBg.png\" alt=\"Data folder showing train and test datasets\"\/><figcaption class=\"wp-element-caption\">Data folder showing train and test datasets<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"b306\">Bravo! Now, go and download the <a class=\"af nn\" href=\"https:\/\/drive.google.com\/drive\/folders\/1l7pUi1hjub41bEWgGmn4DrzSUpMs75Cy?usp=sharing\" target=\"_blank\" rel=\"noopener ugc nofollow\">dataset<\/a> we will be using for this project into your local machine.<\/p>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"fc1f\">The idea is that the folder structure and all its contents must be uploaded into its corresponding folder in Google Colab. This means that for every image in the <strong class=\"lo fs\">test<\/strong> folder on your local machine, you select all and drag and drop them inside the <strong class=\"lo fs\">images<\/strong> folder of the <strong class=\"lo fs\">test<\/strong> folder in Google Colab. You also do this for the labels. When you are done with the <strong class=\"lo fs\">test <\/strong>folder, repeat the same for the <strong class=\"lo fs\">train<\/strong> folders; select all, drag, and drop all the images and labels in the train folder in your local machine into the images and labels folders in the train folder here in Google Colab.<\/p>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"0a1d\">To confirm you uploaded the files correctly and successfully, run the code below:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><span id=\"b6f7\" class=\"ob ml fr ny b bf oc od l oe of\" data-selectable-paragraph=\"\"><span class=\"hljs-keyword\">import<\/span> os\ntest_images = <span class=\"hljs-string\">\"\/content\/yolov7\/data\/test\/images\"<\/span>\ntest_labels = <span class=\"hljs-string\">\"\/content\/yolov7\/data\/test\/labels\"<\/span>\ntrain_images = <span class=\"hljs-string\">\"\/content\/yolov7\/data\/train\/images\"<\/span>\ntrain_labels = <span class=\"hljs-string\">\"\/content\/yolov7\/data\/train\/labels\"<\/span>\n\n<span class=\"hljs-built_in\">print<\/span>(<span class=\"hljs-string\">\"Number of images and labels inside the test folder:\"<\/span>, <span class=\"hljs-built_in\">len<\/span>(os.listdir(test_images)) + <span class=\"hljs-built_in\">len<\/span>(os.listdir(test_labels)))\n<span class=\"hljs-built_in\">print<\/span>(<span class=\"hljs-string\">\"Number of images and labels inside the train folder:\"<\/span>, <span class=\"hljs-built_in\">len<\/span>(os.listdir(train_images)) + <span class=\"hljs-built_in\">len<\/span>(os.listdir(train_labels)))\n<\/span><\/pre>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"f1b3\">Code Output:<\/p>\n\n\n\n<figure class=\"wp-block-image ns nt nu nv nw pa ox oy paragraph-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:700\/1*PQqgbYW_K17iDJ7_7TFluA.png\" alt=\"code output screenshot\"\/><\/figure>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"378c\">From the code output above, the number of training images alongside their corresponding labels is 72, while that of the validation is 32.<\/p>\n\n\n\n<h2 class=\"wp-block-heading mk ml fr be mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh bj\" id=\"43f0\">Step 4: Set Up Your Configuration Scripts<\/h2>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp ni lr ls lt nj lv lw lx nk lz ma mb nl md me mf nm mh mi mj fk bj\" id=\"4312\">Here is where it might get tricky. But sit tight; it is as simple as ABC!<\/p>\n\n\n\n<h2 class=\"wp-block-heading og ml fr be mm oh oi oj mq ok ol om mu lx on oo op mb oq or os mf ot ou ov ow bj\" id=\"90a4\">Edit the coco.yaml file<\/h2>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp ni lr ls lt nj lv lw lx nk lz ma mb nl md me mf nm mh mi mj fk bj\" id=\"aa2a\">Inside your <strong class=\"lo fs\">yolov7 &gt; data<\/strong> folder, there is a file named <strong class=\"lo fs\">coco.yaml <\/strong>file. Open it and incorporate the following edits:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Remove the first five lines and the &#8220;test&#8221; variable, leaving four variables in the <strong class=\"lo fs\">coco.yaml<\/strong> file: &#8220;<strong class=\"lo fs\">train<\/strong>,&#8221; &#8220;<strong class=\"lo fs\">val<\/strong>,&#8221; &#8220;<strong class=\"lo fs\">nc<\/strong>,&#8221; &#8220;<strong class=\"lo fs\">names.<\/strong>&#8220;<\/li>\n<\/ul>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"c167\">Now, for each of these variables, we must pass their respective values:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong class=\"lo fs\">train: <\/strong>This accepts the path to your train folder in your Google Colab. Now go ahead and replace it with the right path: <strong class=\"lo fs\">\/content\/yolov7\/data\/train<\/strong><\/li>\n\n\n\n<li><strong class=\"lo fs\">val<\/strong>: This accepts the path to your test folder in your Google Colab. Now go ahead and replace it with the right path: <strong class=\"lo fs\">\/content\/yolov7\/data\/test<\/strong><\/li>\n\n\n\n<li><strong class=\"lo fs\">nc<\/strong>: This accepts the number of classes in your training data. Therefore, replace 80 with 1.<\/li>\n\n\n\n<li><strong class=\"lo fs\">names<\/strong>: This agrees with the name of the label. In this case, remove all the labels in the file and input only &#8220;<strong class=\"lo fs\">messi<\/strong>.&#8221;<\/li>\n<\/ul>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"1654\">Your coco.yaml file will look like this:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><span id=\"c411\" class=\"ob ml fr ny b bf oc od l oe of\" data-selectable-paragraph=\"\"><span class=\"hljs-attr\">train:<\/span> <span class=\"hljs-string\">\/content\/yolov7\/data\/train<\/span>\n<span class=\"hljs-attr\">val:<\/span> <span class=\"hljs-string\">\/content\/yolov7\/data\/test<\/span>\n\n<span class=\"hljs-comment\"># number of classes<\/span>\n<span class=\"hljs-attr\">nc:<\/span> <span class=\"hljs-number\">1<\/span>\n\n<span class=\"hljs-comment\"># class names<\/span>\n<span class=\"hljs-attr\">names:<\/span> [ <span class=\"hljs-string\">'messi'<\/span> ]<\/span><\/pre>\n\n\n\n<figure class=\"wp-block-image ns nt nu nv nw pa ox oy paragraph-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:464\/1*LpDFt6WrIxyf4JPw0D_X4g.png\" alt=\"Editing the coco.yaml file\"\/><figcaption class=\"wp-element-caption\">Editing the coco.yaml file<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"8d06\">Now save and close your coco.yaml file.<\/p>\n\n\n\n<h2 class=\"wp-block-heading og ml fr be mm oh oi oj mq ok ol om mu lx on oo op mb oq or os mf ot ou ov ow bj\" id=\"d36e\">Edit the yolov7.yaml file<\/h2>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp ni lr ls lt nj lv lw lx nk lz ma mb nl md me mf nm mh mi mj fk bj\" id=\"f194\">Now locate the yolov7.yaml file inside the <strong class=\"lo fs\">yolov7 &gt; cfg &gt; training\/ <\/strong>folder. When opened, replace <strong class=\"lo fs\">80 <\/strong>in <strong class=\"lo fs\">line 2<\/strong> with <strong class=\"lo fs\">1<\/strong>. This represents training for one class and not 80 classes.<\/p>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"9c5b\">Now, let&#8217;s move on to the last step. We are close to the end of the project!<\/p>\n\n\n\n<h2 class=\"wp-block-heading mk ml fr be mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh bj\" id=\"094e\"><strong class=\"al\">Step 5: Monitor and Train Your Model Using Comet <\/strong><\/h2>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp ni lr ls lt nj lv lw lx nk lz ma mb nl md me mf nm mh mi mj fk bj\" id=\"5e88\">Now, head over to <a class=\"af nn\" href=\"https:\/\/www.comet.com\/site\/\" target=\"_blank\" rel=\"noopener ugc nofollow\"><strong class=\"lo fs\">Comet<\/strong><\/a> and register a new account if you are not an existing user. Here, you can generate an API key for all your projects. You will need the API key for this part of the project.<\/p>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"60fa\">At this point, we need to modify the training script to monitor the object detection model before running the script.<\/p>\n\n\n\n<h2 class=\"wp-block-heading og ml fr be mm oh oi oj mq ok ol om mu lx on oo op mb oq or os mf ot ou ov ow bj\" id=\"b3f7\"><strong class=\"al\">Edit the train.py Script<\/strong><\/h2>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp ni lr ls lt nj lv lw lx nk lz ma mb nl md me mf nm mh mi mj fk bj\" id=\"fe81\">The train.py script is found directly inside the <strong class=\"lo fs\">yolov7<\/strong> parent folder. Open and incorporate the following edits:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Add to the first line of the script:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\"><span id=\"6b96\" class=\"ob ml fr ny b bf oc od l oe of\" data-selectable-paragraph=\"\"><span class=\"hljs-keyword\">from<\/span> comet_ml <span class=\"hljs-keyword\">import<\/span> Experiment<\/span><\/pre>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"ac46\">This would be like this:<\/p>\n\n\n\n<figure class=\"wp-block-image ns nt nu nv nw pa ox oy paragraph-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:517\/1*mgp2sp_YKyhr3qZ_glrGRA.png\" alt=\"Importing Comet experiment into the training script\"\/><figcaption class=\"wp-element-caption\">Importing Comet experiment into the training script<p><\/p>\n<\/figcaption><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Secondly, go to line 43 and insert this line of code:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\"><span id=\"4941\" class=\"ob ml fr ny b bf oc od l oe of\" data-selectable-paragraph=\"\">experiment = Experiment(api_key=<span class=\"hljs-string\">\"9HibPMbc18_THIS IS MY PERSONAL API KEY\"<\/span>, project_name=<span class=\"hljs-string\">\"Testing yolo on Comet\"<\/span>)<\/span><\/pre>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"406d\">This would look like this:<\/p>\n\n\n\n<figure class=\"wp-block-image ns nt nu nv nw pa ox oy paragraph-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:700\/1*QZAIgMEXHpS-aYLQ5l50GQ.png\" alt=\"Editing a Comet experiment into the training script\"\/><figcaption class=\"wp-element-caption\">Editing a Comet experiment into the training script<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading og ml fr be mm oh oi oj mq ok ol om mu lx on oo op mb oq or os mf ot ou ov ow bj\" id=\"f29b\"><strong class=\"al\">Explanation<\/strong><\/h2>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp ni lr ls lt nj lv lw lx nk lz ma mb nl md me mf nm mh mi mj fk bj\" id=\"65ee\">This code initializes a new experiment on the Comet platform to visualize and track our model&#8217;s learning experiments, using my API key (kindly create an account and get yours) and associating it with the project named &#8220;<strong class=\"lo fs\">Monitor my model<\/strong>.&#8221;<\/p>\n\n\n\n<h2 class=\"wp-block-heading og ml fr be mm oh oi oj mq ok ol om mu lx on oo op mb oq or os mf ot ou ov ow bj\" id=\"de4c\">Download a Pretrained YoloV7 Model<\/h2>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp ni lr ls lt nj lv lw lx nk lz ma mb nl md me mf nm mh mi mj fk bj\" id=\"c7bb\">Proceed to download a pre-trained YoloV7 model <a class=\"af nn\" href=\"https:\/\/drive.google.com\/file\/d\/1ikNR2lQibSx-fyt-sLII8AAPh9tiLkQv\/view?usp=sharing\" target=\"_blank\" rel=\"noopener ugc nofollow\"><strong class=\"lo fs\">here<\/strong><\/a>. Ensure you drag and drop this downloaded model, <strong class=\"lo fs\">&#8220;yolov7.pt&#8221;, <\/strong>inside the <strong class=\"lo fs\">yolov7 <\/strong>folder in Google Colab. We will use this model for training on our custom dataset soon.<\/p>\n\n\n\n<h2 class=\"wp-block-heading og ml fr be mm oh oi oj mq ok ol om mu lx on oo op mb oq or os mf ot ou ov ow bj\" id=\"87e4\">Install Comet<\/h2>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp ni lr ls lt nj lv lw lx nk lz ma mb nl md me mf nm mh mi mj fk bj\" id=\"5414\">Now, we install the Comet library by running the code below:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><span id=\"8544\" class=\"ob ml fr ny b bf oc od l oe of\" data-selectable-paragraph=\"\">pip install comet_ml<\/span><\/pre>\n\n\n\n<h2 class=\"wp-block-heading og ml fr be mm oh oi oj mq ok ol om mu lx on oo op mb oq or os mf ot ou ov ow bj\" id=\"041c\">Train Your Model!<\/h2>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp ni lr ls lt nj lv lw lx nk lz ma mb nl md me mf nm mh mi mj fk bj\" id=\"3106\">Now, it&#8217;s time to train the object detection model. Run the script below to begin training:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><span id=\"44da\" class=\"ob ml fr ny b bf oc od l oe of\" data-selectable-paragraph=\"\">! python train.py --workers <span class=\"hljs-number\">1<\/span> --device <span class=\"hljs-number\">0<\/span> --batch-size <span class=\"hljs-number\">16<\/span> --epochs <span class=\"hljs-number\">5<\/span> --img <span class=\"hljs-number\">640<\/span> <span class=\"hljs-number\">640<\/span> --data data\/coco.yaml --hyp data\/hyp.scratch.custom.yaml --cfg cfg\/training\/yolov7.yaml --name my_model --weights \/content\/yolov7\/yolov7.pt<\/span><\/pre>\n\n\n\n<h2 class=\"wp-block-heading og ml fr be mm oh oi oj mq ok ol om mu lx on oo op mb oq or os mf ot ou ov ow bj\" id=\"82e0\"><strong class=\"al\">Code Explanation<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code class=\"cw qa qb qc ny b\"><strong class=\"lo fs\">-workers 1<\/strong><\/code>: This flag specifies the number of data-loading workers for loading training data. In this case, it sets the number of workers to 1.<\/li>\n\n\n\n<li><code class=\"cw qa qb qc ny b\"><strong class=\"lo fs\">-device 0<\/strong><\/code>: This flag sets the device (GPU) index to 0. It indicates that the training will be performed on the GPU with index 0.<\/li>\n\n\n\n<li><code class=\"cw qa qb qc ny b\"><strong class=\"lo fs\">-batch-size 16<\/strong><\/code>: This flag sets the batch size for training data. It sets the batch size to 16, meaning the training algorithm will process 16 samples simultaneously.<\/li>\n\n\n\n<li><code class=\"cw qa qb qc ny b\"><strong class=\"lo fs\">-epochs 5<\/strong><\/code>: This flag determines the number of training epochs, i.e., the number of times the algorithm will iterate over the entire training dataset during training. It sets the number of epochs to 5.<\/li>\n\n\n\n<li><code class=\"cw qa qb qc ny b\"><strong class=\"lo fs\">-img 640 640<\/strong><\/code>: This flag specifies the input image size for the training process. It sets the image size to 640&#215;640 pixels.<\/li>\n\n\n\n<li><code class=\"cw qa qb qc ny b\"><strong class=\"lo fs\">-data data\/coco.yaml<\/strong><\/code>: This flag points to a YAML file containing configuration data for the dataset. It tells the training script to use the dataset configuration specified in the &#8220;coco.yaml&#8221; file in the &#8220;data&#8221; folder.<\/li>\n\n\n\n<li><code class=\"cw qa qb qc ny b\"><strong class=\"lo fs\">-hyp data\/hyp.scratch.custom.yaml<\/strong><\/code>: This flag points to a YAML file containing hyperparameters for training. It tells the training script to use the hyperparameters specified in the &#8220;hyp.scratch.custom.yaml&#8221; file in the &#8220;data&#8221; folder.<\/li>\n\n\n\n<li><code class=\"cw qa qb qc ny b\"><strong class=\"lo fs\">-cfg cfg\/training\/yolov7.yaml<\/strong><\/code>: This flag points to a YAML file containing the model configuration for training. It tells the training script to use the model configuration specified in the &#8220;yolov7.yaml&#8221; file in the &#8220;cfg\/training&#8221; folder.<\/li>\n\n\n\n<li><code class=\"cw qa qb qc ny b\"><strong class=\"lo fs\">-name my_model<\/strong><\/code>: This flag sets the name of the experiment or model being trained. In this case, the experiment or model is named &#8220;my_model.&#8221;<\/li>\n\n\n\n<li><code class=\"cw qa qb qc ny b\"><strong class=\"lo fs\">-weights \/content\/yolov7\/yolov7.pt<\/strong><\/code>: This flag points to the initial weights file for the training. It tells the training script to use the &#8220;yolov7.pt&#8221; file located in the &#8220;\/content\/yolov7&#8221; folder as the initial weights for training.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading og ml fr be mm oh oi oj mq ok ol om mu lx on oo op mb oq or os mf ot ou ov ow bj\" id=\"d10c\">Track your model<\/h2>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp ni lr ls lt nj lv lw lx nk lz ma mb nl md me mf nm mh mi mj fk bj\" id=\"fd2d\">Once the training starts, you will see the output shown in the figure below, which provides a link to your model&#8217;s training.<\/p>\n\n\n\n<figure class=\"wp-block-image ns nt nu nv nw pa ox oy paragraph-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:700\/1*WPrIj-sMH5Y_Mvtnw-BjhA.png\" alt=\"Link to track and monitor your object detection model via Comet\"\/><figcaption class=\"wp-element-caption\">Link to track and monitor your model via Comet<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"7984\">You can see this training experiment using this <a class=\"af nn\" href=\"https:\/\/www.comet.com\/theophilus\/monitor-my-model\/view\/new\/panels\" target=\"_blank\" rel=\"noopener ugc nofollow\"><strong class=\"lo fs\">link<\/strong><\/a><strong class=\"lo fs\">.<\/strong><\/p>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"f1e4\">Once the training is done, you will get an output telling you where to locate the model you just trained. Now, you can download and save the model. This is shown below:<\/p>\n\n\n\n<figure class=\"wp-block-image ns nt nu nv nw pa ox oy paragraph-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:700\/1*tj9tgt9b2TBXO9B4b0RM2A.png\" alt=\"Location of the custom object detection model\"\/><figcaption class=\"wp-element-caption\">Location of the custom object detection model<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"9dc9\">As shown in the figure above, the custom object detection model named best.pt has been thoroughly trained on the data and is ready for use. It is in the folder <strong class=\"lo fs\">runs\/train\/my_model2\/weights\/<\/strong>, found in the YoloV7 folder.<\/p>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"3b96\">Below are some snippets from Comet:<\/p>\n\n\n\n<figure class=\"wp-block-image ns nt nu nv nw pa ox oy paragraph-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:700\/1*I0fNe-Zbmbizjr1UdadHSA.png\" alt=\"Model Panel in Comet\"\/><figcaption class=\"wp-element-caption\">Model Panel<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image ns nt nu nv nw pa ox oy paragraph-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:700\/1*eiJ9dKJxYtTRhhsfie6jyw.png\" alt=\"Graphical representation of the object detection model's metrics\"\/><figcaption class=\"wp-element-caption\">Graphical representation of the model&#8217;s metrics<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image ns nt nu nv nw pa ox oy paragraph-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:700\/1*BLyQaJe4sOQ4fjuR5V8v5g.png\" alt=\"object detection model's metrics\"\/><figcaption class=\"wp-element-caption\">Model&#8217;s metrics<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image ns nt nu nv nw pa ox oy paragraph-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:700\/1*r17tbThdEd1o11TimObIsA.png\" alt=\"object detection model's hyperparameters\"\/><figcaption class=\"wp-element-caption\">Model&#8217;s hyperparameters<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading mk ml fr be mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh bj\" id=\"5e77\">Summary<\/h2>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp ni lr ls lt nj lv lw lx nk lz ma mb nl md me mf nm mh mi mj fk bj\" id=\"99c1\">So far, so good; we built a custom object detection model using a YoloV7 pre-trained model, and we tracked our model using Comet.<\/p>\n\n\n\n<p class=\"pw-post-body-paragraph lm ln fr lo b lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj fk bj\" id=\"732d\">These are the steps we took to achieve our objective:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong class=\"lo fs\">Step 1<\/strong>: Clone the YoloV7 repository from GitHub<\/li>\n\n\n\n<li><strong class=\"lo fs\">Step 2<\/strong>: Install all the dependencies needed to run your object detection<\/li>\n\n\n\n<li><strong class=\"lo fs\">Step 3<\/strong>: Prepare and upload your data<\/li>\n\n\n\n<li><strong class=\"lo fs\">Step 4:<\/strong> Set up your configuration scripts by modifying the coco.yaml and yolov7.yaml files.<\/li>\n\n\n\n<li><strong class=\"lo fs\">Step 5<\/strong>: Monitor and train your model using Comet<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>In this project guide, we will dive into object detection by creating a custom object detection model and monitoring its accuracy metrics and hyperparameters in five simple steps! It doesn&#8217;t even matter if your machine sucks, let&#8217;s go! Dataset We will use this dataset from Google Drive to train the model in this project. The [&hellip;]<\/p>\n","protected":false},"author":115,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"customer_name":"","customer_description":"","customer_industry":"","customer_technologies":"","customer_logo":"","footnotes":""},"categories":[7],"tags":[],"coauthors":[212],"class_list":["post-8516","post","type-post","status-publish","format-standard","hentry","category-tutorials"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Build &amp; Monitor an Object Detection Model in 5 Steps Using Comet<\/title>\n<meta name=\"description\" content=\"In 5 easy steps, learn how to build a custom object detection model using a YoloV7 pre-trained model, and track the model using Comet.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.comet.com\/site\/blog\/build-and-monitor-an-object-detection-model-in-5-steps-using-comet\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Build and Monitor an Object Detection Model in 5 Steps Using Comet\" \/>\n<meta property=\"og:description\" content=\"In 5 easy steps, learn how to build a custom object detection model using a YoloV7 pre-trained model, and track the model using Comet.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.comet.com\/site\/blog\/build-and-monitor-an-object-detection-model-in-5-steps-using-comet\" \/>\n<meta property=\"og:site_name\" content=\"Comet\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/cometdotml\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-03T14:00:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-24T17:03:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/miro.medium.com\/v2\/resize:fit:700\/1*1pcZSEDskVnjRsIikXXv6w.png\" \/>\n<meta name=\"author\" content=\"Theophilus Chidalu Onyejiaku\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Cometml\" \/>\n<meta name=\"twitter:site\" content=\"@Cometml\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Theophilus Chidalu Onyejiaku\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Build & Monitor an Object Detection Model in 5 Steps Using Comet","description":"In 5 easy steps, learn how to build a custom object detection model using a YoloV7 pre-trained model, and track the model using Comet.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.comet.com\/site\/blog\/build-and-monitor-an-object-detection-model-in-5-steps-using-comet","og_locale":"en_US","og_type":"article","og_title":"Build and Monitor an Object Detection Model in 5 Steps Using Comet","og_description":"In 5 easy steps, learn how to build a custom object detection model using a YoloV7 pre-trained model, and track the model using Comet.","og_url":"https:\/\/www.comet.com\/site\/blog\/build-and-monitor-an-object-detection-model-in-5-steps-using-comet","og_site_name":"Comet","article_publisher":"https:\/\/www.facebook.com\/cometdotml","article_published_time":"2024-01-03T14:00:27+00:00","article_modified_time":"2025-04-24T17:03:38+00:00","og_image":[{"url":"https:\/\/miro.medium.com\/v2\/resize:fit:700\/1*1pcZSEDskVnjRsIikXXv6w.png","type":"","width":"","height":""}],"author":"Theophilus Chidalu Onyejiaku","twitter_card":"summary_large_image","twitter_creator":"@Cometml","twitter_site":"@Cometml","twitter_misc":{"Written by":"Theophilus Chidalu Onyejiaku","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.comet.com\/site\/blog\/build-and-monitor-an-object-detection-model-in-5-steps-using-comet#article","isPartOf":{"@id":"https:\/\/www.comet.com\/site\/blog\/build-and-monitor-an-object-detection-model-in-5-steps-using-comet\/"},"author":{"name":"Theophilus Chidalu Onyejiaku","@id":"https:\/\/www.comet.com\/site\/#\/schema\/person\/1ecc9f487887f15ff40aa6691b53fe80"},"headline":"Build and Monitor an Object Detection Model in 5 Steps Using Comet","datePublished":"2024-01-03T14:00:27+00:00","dateModified":"2025-04-24T17:03:38+00:00","mainEntityOfPage":{"@id":"https:\/\/www.comet.com\/site\/blog\/build-and-monitor-an-object-detection-model-in-5-steps-using-comet\/"},"wordCount":1480,"publisher":{"@id":"https:\/\/www.comet.com\/site\/#organization"},"image":{"@id":"https:\/\/www.comet.com\/site\/blog\/build-and-monitor-an-object-detection-model-in-5-steps-using-comet#primaryimage"},"thumbnailUrl":"https:\/\/miro.medium.com\/v2\/resize:fit:700\/1*1pcZSEDskVnjRsIikXXv6w.png","articleSection":["Tutorials"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.comet.com\/site\/blog\/build-and-monitor-an-object-detection-model-in-5-steps-using-comet\/","url":"https:\/\/www.comet.com\/site\/blog\/build-and-monitor-an-object-detection-model-in-5-steps-using-comet","name":"Build & Monitor an Object Detection Model in 5 Steps Using Comet","isPartOf":{"@id":"https:\/\/www.comet.com\/site\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.comet.com\/site\/blog\/build-and-monitor-an-object-detection-model-in-5-steps-using-comet#primaryimage"},"image":{"@id":"https:\/\/www.comet.com\/site\/blog\/build-and-monitor-an-object-detection-model-in-5-steps-using-comet#primaryimage"},"thumbnailUrl":"https:\/\/miro.medium.com\/v2\/resize:fit:700\/1*1pcZSEDskVnjRsIikXXv6w.png","datePublished":"2024-01-03T14:00:27+00:00","dateModified":"2025-04-24T17:03:38+00:00","description":"In 5 easy steps, learn how to build a custom object detection model using a YoloV7 pre-trained model, and track the model using Comet.","breadcrumb":{"@id":"https:\/\/www.comet.com\/site\/blog\/build-and-monitor-an-object-detection-model-in-5-steps-using-comet#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.comet.com\/site\/blog\/build-and-monitor-an-object-detection-model-in-5-steps-using-comet"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.comet.com\/site\/blog\/build-and-monitor-an-object-detection-model-in-5-steps-using-comet#primaryimage","url":"https:\/\/miro.medium.com\/v2\/resize:fit:700\/1*1pcZSEDskVnjRsIikXXv6w.png","contentUrl":"https:\/\/miro.medium.com\/v2\/resize:fit:700\/1*1pcZSEDskVnjRsIikXXv6w.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.comet.com\/site\/blog\/build-and-monitor-an-object-detection-model-in-5-steps-using-comet#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.comet.com\/site\/"},{"@type":"ListItem","position":2,"name":"Build and Monitor an Object Detection Model in 5 Steps Using Comet"}]},{"@type":"WebSite","@id":"https:\/\/www.comet.com\/site\/#website","url":"https:\/\/www.comet.com\/site\/","name":"Comet","description":"Build Better Models Faster","publisher":{"@id":"https:\/\/www.comet.com\/site\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.comet.com\/site\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.comet.com\/site\/#organization","name":"Comet ML, Inc.","alternateName":"Comet","url":"https:\/\/www.comet.com\/site\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.comet.com\/site\/#\/schema\/logo\/image\/","url":"https:\/\/www.comet.com\/site\/wp-content\/uploads\/2025\/01\/logo_comet_square.png","contentUrl":"https:\/\/www.comet.com\/site\/wp-content\/uploads\/2025\/01\/logo_comet_square.png","width":310,"height":310,"caption":"Comet ML, Inc."},"image":{"@id":"https:\/\/www.comet.com\/site\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/cometdotml","https:\/\/x.com\/Cometml","https:\/\/www.youtube.com\/channel\/UCmN63HKvfXSCS-UwVwmK8Hw"]},{"@type":"Person","@id":"https:\/\/www.comet.com\/site\/#\/schema\/person\/1ecc9f487887f15ff40aa6691b53fe80","name":"Theophilus Chidalu Onyejiaku","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.comet.com\/site\/#\/schema\/person\/image\/daf367bc7ab63a8b6bed3afac72b816e","url":"https:\/\/secure.gravatar.com\/avatar\/81e596cc3f7a85e9f96df1222b53956cad07ca1b8494183d60da78aac11765c4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/81e596cc3f7a85e9f96df1222b53956cad07ca1b8494183d60da78aac11765c4?s=96&d=mm&r=g","caption":"Theophilus Chidalu Onyejiaku"},"url":"https:\/\/www.comet.com\/site\/blog\/author\/onyejiakutgmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/www.comet.com\/site\/wp-json\/wp\/v2\/posts\/8516","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.comet.com\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.comet.com\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.comet.com\/site\/wp-json\/wp\/v2\/users\/115"}],"replies":[{"embeddable":true,"href":"https:\/\/www.comet.com\/site\/wp-json\/wp\/v2\/comments?post=8516"}],"version-history":[{"count":1,"href":"https:\/\/www.comet.com\/site\/wp-json\/wp\/v2\/posts\/8516\/revisions"}],"predecessor-version":[{"id":15410,"href":"https:\/\/www.comet.com\/site\/wp-json\/wp\/v2\/posts\/8516\/revisions\/15410"}],"wp:attachment":[{"href":"https:\/\/www.comet.com\/site\/wp-json\/wp\/v2\/media?parent=8516"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.comet.com\/site\/wp-json\/wp\/v2\/categories?post=8516"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.comet.com\/site\/wp-json\/wp\/v2\/tags?post=8516"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.comet.com\/site\/wp-json\/wp\/v2\/coauthors?post=8516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}