Repository Analysis

ultralytics/yolov3

Ultralytics YOLOv3 in PyTorch > ONNX > CoreML > TFLite

19.7 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of ultralytics/yolov3, a Python project with 10,580 GitHub stars. SynthScan v2.0 examined 15,270 lines of code across 76 source files, recording 160 pattern matches distributed across 14 syntactic categories. The overall adjusted score of 19.7 places this repository in the Moderate AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

19.7
Adjusted Score
19.7
Raw Score
100%
Time Factor
2026-07-12
Last Push
10.6K
Stars
Python
Language
15.3K
Lines of Code
76
Files
160
Pattern Hits
2026-07-14
Scan Date
0.41
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.

No multi-scan history yet — run the scanner again to build trend data.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 1HIGH 30MEDIUM 3LOW 126

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 160 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Docstring Block Structure29 hits · 145 pts
SeverityFileLineSnippetContext
HIGHval.py67Saves detection results in a text format, including labels and optionally confidence scores. Args: predn (tSTRING
HIGHval.py109Save detection results in JSON format containing image_id, category_id, bbox, and score per detection. Args: STRING
HIGHval.py150Computes correct prediction matrix for detections against ground truth labels at various IoU thresholds. Args: STRING
HIGHval.py224Validate a trained YOLOv3 detection model on a dataset and optionally save results in the requested formats. Args: STRING
HIGHval.py493Parses and returns command-line options for dataset paths, model parameters, and inference settings. Args: STRING
HIGHval.py566Executes model tasks including training, validation, and speed or study benchmarks based on specified options. ArgsSTRING
HIGHexport.py168Export a YOLOv3 model to TorchScript format, with optional optimization for mobile deployment. Args: model STRING
HIGHexport.py200Export a YOLOv3 model to ONNX format with dynamic shape and simplification options. Args: model (torch.nn.MSTRING
HIGHexport.py272Export a YOLOv3 model to OpenVINO format with optional INT8 quantization and inference metadata. Args: fileSTRING
HIGHexport.py353Export a YOLOv3 model to PaddlePaddle format using X2Paddle, writing model files and a metadata YAML. Args: STRING
HIGHexport.py384Export a YOLOv3 model to CoreML format with optional quantization and Non-Maximum Suppression (NMS). Args: STRING
HIGHexport.py429Export a YOLOv3 model to TensorRT engine format, optimizing it for GPU inference. Args: model (torch.nn.ModSTRING
HIGHexport.py678Export a YOLOv3 PyTorch model to one or more deployment formats (TorchScript, ONNX, CoreML, TensorRT, etc.). Args: STRING
HIGHtrain.py109Train a YOLOv3 model on a custom dataset and manage the training process. Args: hyp (str | dict): Path to hSTRING
HIGHtrain.py538Parse command line arguments for configuring the training of a YOLOv3 model. Args: known (bool): Flag to paSTRING
HIGHtrain.py607Main training/evolution script handling model checks, DDP setup, training, and hyperparameter evolution. Args: STRING
HIGHtrain.py804Run the training process for a YOLOv3 model with the specified configurations. Args: data (str): Path to thSTRING
HIGHhubconf.py17Creates or loads a YOLOv3 model with specified configurations and optional pretrained weights. Args: name (STRING
HIGHhubconf.py87Loads a custom or local YOLOv3 model from a specified path, with options for autoshaping and device assignment. ArgSTRING
HIGHhubconf.py116Instantiates the YOLOv3 model with optional pretrained weights, configurable input channels, classes, autoshaping, aSTRING
HIGHhubconf.py145Instantiates the YOLOv3-SPP model with optional pretrained weights, configurable input channels, classes, autoshapinSTRING
HIGHhubconf.py171Instantiates the YOLOv3-tiny model with optional pretrained weights, configurable input channels, classes, autoshapiSTRING
HIGHdetect.py99Run YOLOv3 detection inference on various input sources such as images, videos, and streams. Args: weights STRING
HIGHdetect.py290Parses and returns command-line options for running YOLOv3 model detection. Args: --weights (list[str]): MoSTRING
HIGHdetect.py367Entry point for running the YOLOv3 model; checks requirements and calls `run` with parsed options. Args: opSTRING
HIGHbenchmarks.py58Run YOLOv3 benchmarks on multiple export formats and validate performance metrics. Args: weights (str | PatSTRING
HIGHbenchmarks.py177Parses command line arguments for YOLOv3 inference and export configurations. Args: --weights (str): Path tSTRING
HIGHbenchmarks.py222Executes the export and benchmarking pipeline for YOLOv3 models, testing multiple export formats and validating perfSTRING
HIGHutils/autoanchor.py69Create k-means evolved anchors from a training dataset. Args: dataset (str | LoadImagesAndLabels): Path to STRING
Excessive Try-Catch Wrapping41 hits · 44 pts
SeverityFileLineSnippetContext
LOWval.py478 except Exception as e:CODE
LOWexport.py159 except Exception as e:CODE
LOWexport.py265 except Exception as e:CODE
LOWexport.py456 except Exception:CODE
LOWhubconf.py64 except Exception:CODE
LOWhubconf.py80 except Exception as e:CODE
LOWbenchmarks.py103 except Exception as e:CODE
LOWbenchmarks.py164 except Exception:CODE
LOWutils/autobatch.py64 except Exception as e:CODE
LOWutils/dataloaders.py541 except Exception as e:CODE
LOWutils/dataloaders.py551 except Exception:CODE
LOWutils/dataloaders.py704 except Exception as e:CODE
LOWutils/dataloaders.py1118 except Exception as e:CODE
LOWutils/dataloaders.py1147 except Exception as e:CODE
LOWutils/dataloaders.py1191 except Exception as e: # use OpenCVCODE
LOWutils/downloads.py20 except Exception:CODE
LOWutils/downloads.py66 except Exception as e: # url2CODE
LOWutils/downloads.py109 except Exception:CODE
LOWutils/downloads.py112 except Exception:CODE
LOWutils/downloads.py115 except Exception:CODE
LOWutils/plots.py398 except Exception as e:CODE
LOWutils/plots.py432 except Exception as e:CODE
LOWutils/autoanchor.py144 except Exception:CODE
LOWutils/torch_utils.py148 except Exception:CODE
LOWutils/torch_utils.py159 except Exception: # no backward methodCODE
LOWutils/torch_utils.py169 except Exception as e:CODE
LOWutils/torch_utils.py229 except Exception:CODE
LOWutils/general.py337 except Exception:CODE
LOWutils/general.py427 except Exception as e:CODE
LOWutils/general.py574 except Exception:CODE
LOWutils/general.py1134 except Exception:CODE
LOWutils/augmentations.py41 except Exception as e:CODE
LOWutils/loggers/__init__.py118 except Exception:CODE
LOWutils/loggers/__init__.py421 except Exception as e:CODE
LOWutils/loggers/comet/comet_utils.py65 except Exception as e:CODE
LOWmodels/yolo.py413 except Exception as e:CODE
MEDIUMmodels/yolo.py414 print(f"Error in {cfg}: {e}")CODE
LOW.github/workflows/merge-main-into-prs.yml74 except Exception as update_error:CODE
LOW.github/workflows/merge-main-into-prs.yml80 except Exception as e:CODE
LOWdata/Objects365.yaml439 except Exception as e:CODE
LOWdata/xView.yaml134 except Exception as e:CODE
Deep Nesting27 hits · 27 pts
SeverityFileLineSnippetContext
LOWval.py194CODE
LOWval.py565CODE
LOWtrain.py108CODE
LOWtrain.py606CODE
LOWhubconf.py16CODE
LOWdetect.py70CODE
LOWutils/metrics.py235CODE
LOWutils/dataloaders.py1010CODE
LOWutils/dataloaders.py1073CODE
LOWutils/dataloaders.py282CODE
LOWutils/dataloaders.py495CODE
LOWutils/dataloaders.py823CODE
LOWutils/dataloaders.py883CODE
LOWutils/downloads.py81CODE
LOWutils/plots.py145CODE
LOWutils/plots.py405CODE
LOWutils/torch_utils.py122CODE
LOWutils/torch_utils.py236CODE
LOWutils/general.py449CODE
LOWutils/general.py491CODE
LOWutils/general.py612CODE
LOWutils/general.py615CODE
LOWmodels/common.py434CODE
LOWmodels/common.py641CODE
LOWmodels/common.py806CODE
LOWmodels/common.py898CODE
LOWmodels/yolo.py300CODE
Over-Commented Block16 hits · 16 pts
SeverityFileLineSnippetContext
LOWrequirements.txt21COMMENT
LOWrequirements.txt41setuptools>=70.0.0 # Required to avoid known vulnerabilitiesCOMMENT
LOWpyproject.toml1# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/licenseCOMMENT
LOWexport.py561 # from coremltools.models.neural_network import flexible_shape_utilsCOMMENT
LOWutils/autoanchor.py141 s = wh.std(0) # sigmas for whiteningCOMMENT
LOWmodels/common.py441 # TorchScript: *.torchscriptCOMMENT
LOWdata/coco128.yaml1# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/licenseCOMMENT
LOWdata/coco.yaml1# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/licenseCOMMENT
LOWdata/GlobalWheat2020.yaml1# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/licenseCOMMENT
LOWdata/VisDrone.yaml1# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/licenseCOMMENT
LOWdata/SKU-110K.yaml1# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/licenseCOMMENT
LOWdata/Objects365.yaml1# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/licenseCOMMENT
LOWdata/xView.yaml1# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/licenseCOMMENT
LOWdata/Argoverse.yaml1# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/licenseCOMMENT
LOWdata/VOC.yaml1# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/licenseCOMMENT
LOWdata/hyps/hyp.VOC.yaml1# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/licenseCOMMENT
Redundant / Tautological Comments10 hits · 15 pts
SeverityFileLineSnippetContext
LOWval.py431 # Print resultsCOMMENT
LOWval.py437 # Print results per classCOMMENT
LOWdetect.py227 # Print resultsCOMMENT
LOWdetect.py279 # Print resultsCOMMENT
LOWbenchmarks.py111 # Print resultsCOMMENT
LOWbenchmarks.py167 # Print resultsCOMMENT
LOWutils/loggers/comet/__init__.py163 # Check if running the Experiment with the Comet OptimizerCOMMENT
LOWutils/loggers/comet/__init__.py465 # Check if running Experiment with Comet OptimizerCOMMENT
LOWutils/loggers/clearml/clearml_utils.py118 # Set data to data_dict because wandb will crash without this information and opt is the best wayCOMMENT
LOW.github/workflows/merge-main-into-prs.yml62 # Check if PR is behind the default branchCOMMENT
Unused Imports13 hits · 13 pts
SeverityFileLineSnippetContext
LOWutils/triton.py4CODE
LOWutils/torch_utils.py15CODE
LOWutils/torch_utils.py16CODE
LOWutils/torch_utils.py17CODE
LOWutils/torch_utils.py18CODE
LOWutils/torch_utils.py19CODE
LOWutils/general.py4CODE
LOWutils/general.py37CODE
LOWutils/general.py38CODE
LOWutils/general.py43CODE
LOWutils/general.py45CODE
LOWutils/general.py47CODE
LOWutils/general.py48CODE
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICALexport.py637 pipeline.spec.description.metadata.userDefined.update(CODE
AI Structural Patterns9 hits · 9 pts
SeverityFileLineSnippetContext
LOWval.py194CODE
LOWexport.py660CODE
LOWdetect.py70CODE
LOWbenchmarks.py47CODE
LOWbenchmarks.py125CODE
LOWutils/dataloaders.py126CODE
LOWutils/dataloaders.py495CODE
LOWutils/general.py876CODE
LOWutils/augmentations.py132CODE
Hyper-Verbose Identifiers6 hits · 6 pts
SeverityFileLineSnippetContext
LOWutils/triton.py34 def create_input_placeholders() -> list[InferInput]:CODE
LOWutils/triton.py47 def create_input_placeholders() -> list[InferInput]:CODE
LOWutils/torch_utils.py75def torch_distributed_zero_first(local_rank: int):CODE
LOWutils/loggers/__init__.py159 def on_pretrain_routine_start(self):CODE
LOWutils/loggers/comet/__init__.py372 def download_dataset_artifact(self, artifact_path):CODE
LOWutils/loggers/comet/comet_utils.py22def download_model_checkpoint(opt, experiment):CODE
Magic Placeholder Names1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHutils/loggers/comet/README.md47 api_key=YOUR_API_KEYCODE
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMpyproject.toml19# For comprehensive documentation and usage instructions, visit: https://docs.ultralytics.comCOMMENT
Decorative Section Separators1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMutils/general.py1112# ------------------------------------------------------------------------------------COMMENT
Modern Structural Boilerplate3 hits · 3 pts
SeverityFileLineSnippetContext
LOWutils/loggers/comet/__init__.py12logger = logging.getLogger(__name__)CODE
LOWutils/loggers/comet/comet_utils.py15logger = logging.getLogger(__name__)CODE
LOWutils/loggers/comet/hpo.py15logger = logging.getLogger(__name__)CODE
Example Usage Blocks2 hits · 2 pts
SeverityFileLineSnippetContext
LOWtrain.py126 # Example usageSTRING
LOWutils/autobatch.py32 # Usage:COMMENT