Framework agnostic sliced/tiled inference + interactive ui + error analysis plots
This report presents the forensic synthetic code analysis of obss/sahi, a Python project with 5,450 GitHub stars. SynthScan v2.0 examined 46,641 lines of code across 294 source files, recording 422 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 14.4 places this repository in the Low 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).
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.
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.
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.
The scanner identified 422 distinct pattern matches across 15 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_coco_utils.py | 325 | def test_split_coco_as_train_val(self) -> None: | CODE |
| LOW | tests/test_coco_utils.py | 391 | def test_coco_update_categories(self) -> None: | CODE |
| LOW | tests/test_coco_utils.py | 626 | def test_get_area_filtered_coco(self) -> None: | CODE |
| LOW⚡ | tests/test_import_utils.py | 38 | def test_helpers_are_not_generators(func: Callable) -> None: | CODE |
| LOW⚡ | tests/test_import_utils.py | 48 | def test_get_package_info_installed(self) -> None: | CODE |
| LOW⚡ | tests/test_import_utils.py | 53 | def test_get_package_info_missing(self) -> None: | CODE |
| LOW⚡ | tests/test_import_utils.py | 58 | def test_passes_when_all_present(self) -> None: | CODE |
| LOW⚡ | tests/test_import_utils.py | 61 | def test_passes_for_empty_iterable(self) -> None: | CODE |
| LOW⚡ | tests/test_import_utils.py | 64 | def test_raises_only_for_missing(self) -> None: | CODE |
| LOW⚡ | tests/test_import_utils.py | 74 | def test_ensure_package_minimum_version( | CODE |
| LOW⚡ | tests/test_import_utils.py | 94 | def test_no_message_for_single_distribution(self, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW⚡ | tests/test_import_utils.py | 98 | def test_no_message_when_versions_agree(self, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW⚡ | tests/test_import_utils.py | 102 | def test_message_suggests_the_newest_version(self, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW⚡ | tests/test_import_utils.py | 109 | def test_newest_version_is_compared_numerically(self, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW⚡ | tests/test_combine.py | 136 | def test_nms_ios_small_inside_large(self) -> None: | CODE |
| LOW⚡ | tests/test_combine.py | 323 | def test_greedy_nmm_postprocess(self) -> None: | CODE |
| LOW⚡ | tests/test_combine.py | 330 | def test_nms_postprocess_single(self) -> None: | CODE |
| LOW⚡ | tests/test_combine.py | 488 | def test_metric_matrix_no_overlap(self) -> None: | CODE |
| LOW | tests/test_combine.py | 114 | def test_nms_equal_scores_deterministic(self) -> None: | CODE |
| LOW | tests/test_combine.py | 148 | def test_nms_iou_vs_ios_differ(self) -> None: | CODE |
| LOW | tests/test_combine.py | 228 | def test_high_threshold_keeps_all(self) -> None: | CODE |
| LOW | tests/test_combine.py | 309 | def test_nms_postprocess_class_agnostic_false(self) -> None: | CODE |
| LOW | tests/test_combine.py | 358 | def test_invalid_backend_raises(self) -> None: | CODE |
| LOW | tests/test_combine.py | 365 | def test_resolve_cache_invalidation(self) -> None: | CODE |
| LOW | tests/test_combine.py | 384 | def test_auto_resolves_gpu_to_torchvision( | CODE |
| LOW | tests/test_combine.py | 407 | def test_forced_numpy_backend_dispatch(self) -> None: | CODE |
| LOW | tests/test_combine.py | 527 | def test_greedy_nmm_merge_order_parity(self) -> None: | CODE |
| LOW | tests/test_detectron2_model.py | 37 | def test_perform_inference_without_mask_output(self) -> None: | CODE |
| LOW | tests/test_detectron2_model.py | 70 | def test_convert_original_predictions_without_mask_output(self) -> None: | CODE |
| LOW | tests/test_detectron2_model.py | 117 | def test_convert_original_predictions_with_mask_output(self) -> None: | CODE |
| LOW | tests/test_huggingface_model.py | 109 | def test_convert_original_predictions() -> None: | CODE |
| LOW | tests/test_huggingface_model.py | 155 | def test_get_prediction_huggingface() -> None: | CODE |
| LOW | tests/test_huggingface_model.py | 196 | def test_get_prediction_automodel_huggingface() -> None: | CODE |
| LOW | tests/test_huggingface_model.py | 242 | def test_get_sliced_prediction_huggingface() -> None: | CODE |
| LOW | tests/test_table.py | 14 | def test_create_ascii_table_basic(self) -> None: | CODE |
| LOW | tests/test_huggingface_segmentation.py | 75 | def test_convert_original_predictions(model_path: str, segmentation_type: SegmentationType) -> None: | CODE |
| LOW | tests/test_huggingface_segmentation.py | 85 | def test_get_sliced_prediction(model_path: str, segmentation_type: SegmentationType) -> None: | CODE |
| LOW | tests/test_huggingface_segmentation.py | 113 | def test_get_prediction_detects_cars() -> None: | CODE |
| LOW | tests/test_file_utils.py | 20 | def test_list_files_recursively(self, tmp_path: Path) -> None: | CODE |
| LOW | tests/test_torchvision.py | 37 | def test_load_model_without_config_path(self) -> None: | CODE |
| LOW | tests/test_torchvision.py | 63 | def test_perform_inference_without_mask_output(self) -> None: | CODE |
| LOW | tests/test_torchvision.py | 114 | def test_convert_original_predictions_without_mask_output(self) -> None: | CODE |
| LOW | tests/test_torchvision.py | 149 | def test_convert_original_predictions_with_mask_output(self) -> None: | CODE |
| LOW | tests/test_torchvision.py | 182 | def test_get_prediction_torchvision(self) -> None: | CODE |
| LOW | tests/test_torchvision.py | 217 | def test_get_sliced_prediction_torchvision(self) -> None: | CODE |
| LOW | tests/test_mmdetection_model.py | 48 | def test_perform_inference_with_mask_output(self) -> None: | CODE |
| LOW | tests/test_mmdetection_model.py | 96 | def test_perform_inference_without_mask_output(self) -> None: | CODE |
| LOW | tests/test_mmdetection_model.py | 137 | def test_convert_original_predictions_with_mask_output(self) -> None: | CODE |
| LOW | tests/test_mmdetection_model.py | 175 | def test_convert_original_predictions_without_mask_output(self) -> None: | CODE |
| LOW | tests/test_mmdetection_model.py | 222 | def test_perform_inference_without_mask_output_with_automodel(self) -> None: | CODE |
| LOW | tests/test_predict.py | 42 | def test_get_prediction_mmdet() -> None: | CODE |
| LOW | tests/test_predict.py | 136 | def test_prediction_category_remapping() -> None: | CODE |
| LOW | tests/test_predict.py | 178 | def test_get_sliced_prediction_mmdet() -> None: | CODE |
| LOW | tests/test_predict.py | 413 | def test_get_sliced_prediction_batch_size() -> None: | CODE |
| LOW | tests/test_predict.py | 467 | def test_mmdet_yolox_tiny_prediction() -> None: | CODE |
| LOW | tests/test_match_all_threshold.py | 70 | def test_matches_all_pairs_boundary() -> None: | CODE |
| LOW | tests/test_match_all_threshold.py | 100 | def test_collapses_to_single_keeper(funcs: tuple, match_metric: str) -> None: | CODE |
| LOW | tests/test_match_all_threshold.py | 117 | def test_tied_top_score_matches_dense_path(funcs: tuple, match_metric: str) -> None: | CODE |
| LOW | tests/test_match_all_threshold.py | 151 | def test_large_input_allocates_no_matrix(funcs: tuple) -> None: | CODE |
| LOW | tests/test_rtdet_model.py | 96 | def test_convert_original_predictions(self) -> None: | CODE |
| 98 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/data/models/mmdet_retinanet/default_runtime.py | 0 | mmdetection configuration file for default_runtime.py. | STRING |
| HIGH | …data/models/mmdet_cascade_mask_rcnn/default_runtime.py | 0 | mmdetection configuration file for default_runtime.py. | STRING |
| HIGH | tests/data/models/mmdet/_base_/default_runtime.py | 0 | mmdetection configuration file for default_runtime.py. | STRING |
| HIGH | sahi/models/rtdetr.py | 0 | detection model is initialized and set to self.model. | STRING |
| HIGH | sahi/models/yolo-world.py | 0 | detection model is initialized and set to self.model. | STRING |
| HIGH | sahi/models/mmdet.py | 0 | detection model is initialized and set to self.model. | STRING |
| HIGH | sahi/models/ultralytics.py | 0 | detection model is initialized and set to self.model. | STRING |
| HIGH | sahi/models/yolov5.py | 0 | detection model is initialized and set to self.model. | STRING |
| HIGH | sahi/models/torchvision.py | 0 | sets the underlying yolov5 model. args: model: any a yolov5 model **kwargs: any additional keyword arguments for model s | STRING |
| HIGH | sahi/models/mmdet.py | 0 | sets the underlying yolov5 model. args: model: any a yolov5 model **kwargs: any additional keyword arguments for model s | STRING |
| HIGH | sahi/models/ultralytics.py | 0 | sets the underlying yolov5 model. args: model: any a yolov5 model **kwargs: any additional keyword arguments for model s | STRING |
| HIGH | sahi/models/yolov5.py | 0 | sets the underlying yolov5 model. args: model: any a yolov5 model **kwargs: any additional keyword arguments for model s | STRING |
| HIGH | sahi/models/torchvision.py | 0 | returns if model output contains segmentation mask. | STRING |
| HIGH | sahi/models/roboflow.py | 0 | returns if model output contains segmentation mask. | STRING |
| HIGH | sahi/models/ultralytics.py | 0 | returns if model output contains segmentation mask. | STRING |
| HIGH | sahi/models/yolov5.py | 0 | returns if model output contains segmentation mask. | STRING |
| HIGH | sahi/models/torchvision.py | 0 | convert predictions to objectprediction list. self._original_predictions is converted to a list of prediction.objectpred | STRING |
| HIGH | sahi/models/mmdet.py | 0 | convert predictions to objectprediction list. self._original_predictions is converted to a list of prediction.objectpred | STRING |
| HIGH | sahi/models/detectron2.py | 0 | convert predictions to objectprediction list. self._original_predictions is converted to a list of prediction.objectpred | STRING |
| HIGH | sahi/models/huggingface.py | 0 | convert predictions to objectprediction list. self._original_predictions is converted to a list of prediction.objectpred | STRING |
| HIGH | sahi/models/ultralytics.py | 0 | convert predictions to objectprediction list. self._original_predictions is converted to a list of prediction.objectpred | STRING |
| HIGH | sahi/models/yolov5.py | 0 | convert predictions to objectprediction list. self._original_predictions is converted to a list of prediction.objectpred | STRING |
| HIGH | sahi/models/roboflow.py | 0 | convert predictions to objectprediction list. self._original_predictions is converted to a list of prediction.objectpred | STRING |
| HIGH | sahi/models/mmdet.py | 0 | prediction is performed using self.model and the prediction result is set to self._original_predictions. args: image: np | STRING |
| HIGH | sahi/models/detectron2.py | 0 | prediction is performed using self.model and the prediction result is set to self._original_predictions. args: image: np | STRING |
| HIGH | sahi/models/huggingface.py | 0 | prediction is performed using self.model and the prediction result is set to self._original_predictions. args: image: np | STRING |
| HIGH | sahi/models/ultralytics.py | 0 | prediction is performed using self.model and the prediction result is set to self._original_predictions. args: image: np | STRING |
| HIGH | sahi/models/yolov5.py | 0 | prediction is performed using self.model and the prediction result is set to self._original_predictions. args: image: np | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/test_combine.py | 128 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_combine.py | 130 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_combine.py | 338 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_combine.py | 340 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_combine.py | 498 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_combine.py | 500 | # =========================================================================== | COMMENT |
| MEDIUM | tests/test_combine.py | 53 | # =========================================================================== | COMMENT |
| MEDIUM | tests/test_combine.py | 55 | # =========================================================================== | COMMENT |
| MEDIUM | tests/test_combine.py | 206 | # =========================================================================== | COMMENT |
| MEDIUM | tests/test_combine.py | 208 | # =========================================================================== | COMMENT |
| MEDIUM | tests/test_combine.py | 270 | # =========================================================================== | COMMENT |
| MEDIUM | tests/test_combine.py | 272 | # =========================================================================== | COMMENT |
| MEDIUM | tests/test_combine.py | 432 | # =========================================================================== | COMMENT |
| MEDIUM | tests/test_combine.py | 434 | # =========================================================================== | COMMENT |
| MEDIUM | tests/test_combine.py | 588 | # =========================================================================== | COMMENT |
| MEDIUM | tests/test_combine.py | 590 | # =========================================================================== | COMMENT |
| MEDIUM | scripts/detect_batch.py | 85 | # ── load model ──────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/detect_batch.py | 107 | # ── single-image detection + save ───────────────────────── | COMMENT |
| MEDIUM | scripts/detect_batch.py | 127 | # ── batch detection + save ──────────────────────────────── | COMMENT |
| MEDIUM | scripts/detect_batch.py | 145 | # ── speed benchmark ─────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/detect_batch.py | 178 | # ── consistency ──────────────────────────────────────────── | COMMENT |
| MEDIUM | sahi/postprocess/combine.py | 16 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sahi/postprocess/combine.py | 18 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sahi/postprocess/combine.py | 64 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sahi/postprocess/combine.py | 66 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sahi/postprocess/combine.py | 128 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sahi/postprocess/combine.py | 130 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sahi/postprocess/combine.py | 258 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sahi/postprocess/combine.py | 260 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sahi/postprocess/_numpy_backend.py | 28 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sahi/postprocess/_numpy_backend.py | 30 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sahi/postprocess/_numpy_backend.py | 219 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sahi/postprocess/_numpy_backend.py | 221 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sahi/postprocess/_numpy_backend.py | 369 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sahi/postprocess/_numpy_backend.py | 371 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sahi/postprocess/_torchvision_backend.py | 69 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sahi/postprocess/_torchvision_backend.py | 71 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sahi/postprocess/_numba_backend.py | 218 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sahi/postprocess/_numba_backend.py | 220 | # --------------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_import_utils.py | 1 | CODE | |
| LOW | tests/test_combine.py | 3 | CODE | |
| LOW | tests/test_postprocess_utils.py | 3 | CODE | |
| LOW | tests/test_detectron2_model.py | 3 | CODE | |
| LOW | tests/test_huggingface_model.py | 3 | CODE | |
| LOW | tests/test_table.py | 3 | CODE | |
| LOW | tests/test_huggingface_segmentation.py | 8 | CODE | |
| LOW | tests/test_high_level_api.py | 3 | CODE | |
| LOW | tests/test_prediction.py | 3 | CODE | |
| LOW | tests/test_file_utils.py | 3 | CODE | |
| LOW | tests/test_torchvision.py | 3 | CODE | |
| LOW | tests/test_mmdetection_model.py | 3 | CODE | |
| LOW | tests/test_predict.py | 3 | CODE | |
| LOW | tests/test_match_all_threshold.py | 9 | CODE | |
| LOW | tests/test_rtdet_model.py | 3 | CODE | |
| LOW | tests/test_torch_utils.py | 3 | CODE | |
| LOW | tests/test_shapely_utils.py | 3 | CODE | |
| LOW | tests/test_annotation.py | 3 | CODE | |
| LOW | tests/test_sparse_backend.py | 3 | CODE | |
| LOW | tests/test_ultralytics_model.py | 3 | CODE | |
| LOW | tests/test_cv_utils.py | 3 | CODE | |
| LOW | tests/test_huggingface_groundingdino_model.py | 3 | CODE | |
| LOW | tests/test_roboflow.py | 3 | CODE | |
| LOW | tests/utils/ultralytics.py | 3 | CODE | |
| LOW | scripts/detect_batch.py | 11 | CODE | |
| LOW | sahi/annotation.py | 6 | CODE | |
| LOW | sahi/auto_model.py | 3 | CODE | |
| LOW | sahi/__init__.py | 6 | CODE | |
| LOW | sahi/__init__.py | 12 | CODE | |
| LOW | sahi/__init__.py | 13 | CODE | |
| LOW | sahi/__init__.py | 14 | CODE | |
| LOW | sahi/__init__.py | 15 | CODE | |
| LOW | sahi/__init__.py | 16 | CODE | |
| LOW | sahi/__init__.py | 17 | CODE | |
| LOW | sahi/logger.py | 3 | CODE | |
| LOW | sahi/prediction.py | 3 | CODE | |
| LOW | sahi/utils/rtdetr.py | 3 | CODE | |
| LOW | sahi/utils/compatibility.py | 3 | CODE | |
| LOW | sahi/utils/file.py | 3 | CODE | |
| LOW | sahi/utils/mmdet.py | 3 | CODE | |
| LOW | sahi/utils/cv.py | 3 | CODE | |
| LOW | sahi/utils/table.py | 3 | CODE | |
| LOW | sahi/utils/shapely.py | 3 | CODE | |
| LOW | sahi/utils/import_utils.py | 3 | CODE | |
| LOW | sahi/utils/yolov5.py | 3 | CODE | |
| LOW | sahi/utils/torch_utils.py | 3 | CODE | |
| LOW | sahi/models/rtdetr.py | 6 | CODE | |
| LOW | sahi/models/torchvision.py | 7 | CODE | |
| LOW | sahi/models/yolo-world.py | 6 | CODE | |
| LOW | sahi/models/yoloe.py | 7 | CODE | |
| LOW | sahi/models/mmdet.py | 7 | CODE | |
| LOW | sahi/models/detectron2.py | 7 | CODE | |
| LOW | sahi/models/huggingface.py | 7 | CODE | |
| LOW | sahi/models/roboflow.py | 7 | CODE | |
| LOW | sahi/models/huggingface_segmentation.py | 7 | CODE | |
| LOW | sahi/models/ultralytics.py | 7 | CODE | |
| LOW | sahi/models/yolov5.py | 6 | CODE | |
| LOW | sahi/models/base.py | 7 | CODE | |
| LOW | sahi/scripts/coco_error_analysis.py | 3 | CODE | |
| LOW | sahi/scripts/coco_evaluation.py | 3 | CODE | |
| 11 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_huggingface_model.py | 155 | CODE | |
| LOW | tests/test_huggingface_model.py | 196 | CODE | |
| LOW | tests/test_huggingface_model.py | 242 | CODE | |
| LOW | sahi/predict.py | 176 | CODE | |
| LOW | sahi/predict.py | 496 | CODE | |
| LOW | sahi/slicing.py | 278 | CODE | |
| LOW | sahi/utils/coco.py | 1852 | CODE | |
| LOW | sahi/utils/coco.py | 1937 | CODE | |
| LOW | sahi/utils/coco.py | 2012 | CODE | |
| LOW | sahi/utils/coco.py | 859 | CODE | |
| LOW | sahi/utils/coco.py | 961 | CODE | |
| LOW | sahi/utils/coco.py | 1010 | CODE | |
| LOW | sahi/utils/coco.py | 1410 | CODE | |
| LOW | sahi/utils/coco.py | 1477 | CODE | |
| LOW | sahi/utils/coco.py | 1521 | CODE | |
| LOW | sahi/utils/coco.py | 2188 | CODE | |
| LOW | sahi/utils/coco.py | 2244 | CODE | |
| LOW | sahi/utils/mmdet.py | 69 | CODE | |
| LOW | sahi/utils/cv.py | 203 | CODE | |
| LOW | sahi/utils/cv.py | 517 | CODE | |
| LOW | sahi/utils/torch_utils.py | 73 | CODE | |
| LOW | sahi/models/mmdet.py | 221 | CODE | |
| LOW | sahi/models/roboflow.py | 119 | CODE | |
| LOW | sahi/models/roboflow.py | 201 | CODE | |
| LOW | sahi/models/ultralytics.py | 223 | CODE | |
| LOW | sahi/scripts/coco_error_analysis.py | 49 | CODE | |
| LOW | sahi/scripts/coco_error_analysis.py | 168 | CODE | |
| LOW | sahi/scripts/coco_error_analysis.py | 312 | CODE | |
| LOW | sahi/scripts/coco_evaluation.py | 72 | CODE | |
| LOW | sahi/postprocess/_sparse_backend.py | 373 | CODE | |
| LOW | sahi/postprocess/_sparse_backend.py | 432 | CODE | |
| LOW | sahi/postprocess/utils.py | 137 | CODE | |
| LOW | sahi/postprocess/utils.py | 164 | CODE | |
| LOW | sahi/postprocess/utils.py | 61 | CODE | |
| LOW | sahi/postprocess/_numpy_backend.py | 288 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/check_dependencies.sh | 1 | #!/bin/bash | COMMENT |
| LOW | tests/data/models/mmdet/_base_/datasets/wider_face.py | 1 | """MMDetection configuration file for wider_face.py.""" | COMMENT |
| LOW | …models/mmdet/_base_/datasets/objects365v2_detection.py | 1 | """MMDetection configuration file for objects365v2_detection.py.""" | COMMENT |
| LOW | …ta/models/mmdet/_base_/datasets/cityscapes_instance.py | 1 | """MMDetection configuration file for cityscapes_instance.py.""" | COMMENT |
| LOW | …ta/models/mmdet/_base_/datasets/cityscapes_instance.py | 101 | # persistent_workers=True, | COMMENT |
| LOW | …ts/data/models/mmdet/_base_/datasets/coco_detection.py | 1 | """MMDetection configuration file for coco_detection.py.""" | COMMENT |
| LOW | …ts/data/models/mmdet/_base_/datasets/coco_detection.py | 81 | # test_dataloader = dict( | COMMENT |
| LOW | …ata/models/mmdet/_base_/datasets/lvis_v0.5_instance.py | 1 | """MMDetection configuration file for lvis_v0.5_instance.py.""" | COMMENT |
| LOW | …a/models/mmdet/_base_/datasets/openimages_detection.py | 1 | """MMDetection configuration file for openimages_detection.py.""" | COMMENT |
| LOW | …a/models/mmdet/_base_/datasets/cityscapes_detection.py | 1 | """MMDetection configuration file for cityscapes_detection.py.""" | COMMENT |
| LOW | …ta/models/mmdet/_base_/datasets/semi_coco_detection.py | 1 | """MMDetection configuration file for semi_coco_detection.py.""" | COMMENT |
| LOW | …ta/models/mmdet/_base_/datasets/semi_coco_detection.py | 121 | dict(type="PackDetInputs", meta_keys=("img_id", "img_path", "ori_shape", "img_shape", "scale_factor")), | COMMENT |
| LOW | …sts/data/models/mmdet/_base_/datasets/coco_instance.py | 1 | """MMDetection configuration file for coco_instance.py.""" | COMMENT |
| LOW | …sts/data/models/mmdet/_base_/datasets/coco_instance.py | 81 | # test_dataloader = dict( | COMMENT |
| LOW | …sts/data/models/mmdet/_base_/datasets/coco_panoptic.py | 1 | """MMDetection configuration file for coco_panoptic.py.""" | COMMENT |
| LOW | …sts/data/models/mmdet/_base_/datasets/coco_panoptic.py | 81 | # batch_size=1, | COMMENT |
| LOW | …models/mmdet/_base_/datasets/coco_instance_semantic.py | 1 | """MMDetection configuration file for coco_instance_semantic.py.""" | COMMENT |
| LOW | …models/mmdet/_base_/datasets/objects365v1_detection.py | 1 | """MMDetection configuration file for objects365v1_detection.py.""" | COMMENT |
| LOW | tests/data/models/mmdet/_base_/datasets/voc0712.py | 1 | """MMDetection configuration file for voc0712.py.""" | COMMENT |
| LOW | tests/data/models/mmdet/_base_/datasets/deepfashion.py | 1 | """MMDetection configuration file for deepfashion.py.""" | COMMENT |
| LOW | tests/data/models/mmdet/yolox/yolox_s_8xb8-300e_coco.py | 61 | # Method 1: simply set the data root and let the file I/O module | COMMENT |
| LOW | docs/coco.md | 261 | COMMENT | |
| LOW | docs/zh/coco.md | 261 | ## 数据集统计 | COMMENT |
| LOW | docs/tr/coco.md | 261 | ## Veri Kümesi İstatistikleri | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/data/models/mmdet/_base_/datasets/wider_face.py | 7 | # Method 1: simply set the data root and let the file I/O module | COMMENT |
| LOW | …models/mmdet/_base_/datasets/objects365v2_detection.py | 8 | # Method 1: simply set the data root and let the file I/O module | COMMENT |
| LOW | …ta/models/mmdet/_base_/datasets/cityscapes_instance.py | 8 | # Method 1: simply set the data root and let the file I/O module | COMMENT |
| LOW | …ts/data/models/mmdet/_base_/datasets/coco_detection.py | 8 | # Method 1: simply set the data root and let the file I/O module | COMMENT |
| LOW | …ata/models/mmdet/_base_/datasets/lvis_v0.5_instance.py | 8 | # Method 1: simply set the data root and let the file I/O module | COMMENT |
| LOW | …a/models/mmdet/_base_/datasets/openimages_detection.py | 8 | # Method 1: simply set the data root and let the file I/O module | COMMENT |
| LOW | …a/models/mmdet/_base_/datasets/cityscapes_detection.py | 8 | # Method 1: simply set the data root and let the file I/O module | COMMENT |
| LOW | …ta/models/mmdet/_base_/datasets/semi_coco_detection.py | 8 | # Method 1: simply set the data root and let the file I/O module | COMMENT |
| LOW | …sts/data/models/mmdet/_base_/datasets/coco_instance.py | 8 | # Method 1: simply set the data root and let the file I/O module | COMMENT |
| LOW | …sts/data/models/mmdet/_base_/datasets/coco_panoptic.py | 8 | # Method 1: simply set the data root and let the file I/O module | COMMENT |
| LOW | …models/mmdet/_base_/datasets/coco_instance_semantic.py | 8 | # Method 1: simply set the data root and let the file I/O module | COMMENT |
| LOW | …models/mmdet/_base_/datasets/objects365v1_detection.py | 8 | # Method 1: simply set the data root and let the file I/O module | COMMENT |
| LOW | tests/data/models/mmdet/_base_/datasets/voc0712.py | 8 | # Method 1: simply set the data root and let the file I/O module | COMMENT |
| LOW | tests/data/models/mmdet/_base_/datasets/deepfashion.py | 8 | # Method 1: simply set the data root and let the file I/O module | COMMENT |
| LOW | tests/data/models/mmdet/yolox/yolox_s_8xb8-300e_coco.py | 61 | # Method 1: simply set the data root and let the file I/O module | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/zh/guides/models.md | 395 | api_key="YOUR_API_KEY", # 也可以设置 ROBOFLOW_API_KEY | CODE |
| HIGH | docs/guides/models.md | 402 | api_key="YOUR_API_KEY", # or set ROBOFLOW_API_KEY | CODE |
| HIGH | docs/tr/guides/models.md | 381 | api_key="YOUR_API_KEY", # or set ROBOFLOW_API_KEY | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | sahi/auto_model.py | 44 | Load a DetectionModel from given path. Args: model_type: str Name of the detection | STRING |
| HIGH | sahi/postprocess/combine.py | 438 | Apply Locality-Sensitive NMS to suppress overlapping predictions. Args: object_predictions: List of | STRING |
| HIGH | sahi/postprocess/utils.py | 339 | Check whether two predictions overlap above the given threshold. Args: pred1: First object prediction. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sahi/__init__.py | 59 | __all__ = [ | CODE |
| LOW | sahi/logger.py | 98 | __all__ = ["PKG_INFO_LEVEL", "BaseSahiLogger", "SahiLogger", "SupportsPkgInfo", "logger"] | CODE |
| LOW | sahi/utils/coco.py | 899 | def update_categories(self, desired_name2id: dict[str, int], update_image_filenames: bool = False) -> None: | CODE |
| LOW | sahi/utils/coco.py | 1786 | def update_categories_from_file(desired_name2id: dict, coco_path: str, save_path: str) -> None: | CODE |
| LOW | sahi/models/torchvision.py | 77 | def set_model(self, model: Any, **kwargs: Any) -> None: | CODE |
| LOW | sahi/models/mmdet.py | 138 | def set_model(self, model: Any, **kwargs: Any) -> None: | CODE |
| LOW | sahi/models/huggingface.py | 117 | def set_model(self, model: Any, processor: Any | None = None, **kwargs: Any) -> None: | CODE |
| LOW | sahi/models/roboflow.py | 109 | def set_model(self, model: Any, **kwargs: Any) -> None: | CODE |
| LOW | sahi/models/huggingface_segmentation.py | 90 | def set_model(self, model: Any, processor: Any = None, **kwargs: Any) -> None: | CODE |
| LOW | sahi/models/ultralytics.py | 70 | def set_model(self, model: Any, **kwargs: Any) -> None: | CODE |
| LOW | sahi/models/yolov5.py | 41 | def set_model(self, model: Any, **kwargs: Any) -> None: | CODE |
| LOW | sahi/models/base.py | 110 | def set_model(self, model: Any, **kwargs: Any) -> None: | CODE |
| LOW | sahi/models/base.py | 124 | def set_device(self, device: str | None = None) -> None: | CODE |
| LOW | sahi/postprocess/__init__.py | 5 | __all__ = ["get_postprocess_backend", "set_postprocess_backend"] | CODE |
| LOW | sahi/postprocess/backends.py | 20 | def set_postprocess_backend(name: str) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/detect_batch.py | 95 | except Exception as e: | CODE |
| LOW | sahi/utils/cv.py | 21 | except Exception: | CODE |
| LOW | sahi/utils/cv.py | 153 | except Exception as e: | CODE |
| LOW | sahi/utils/cv.py | 238 | except Exception as e: # handle large/tiff image reading | CODE |
| LOW | sahi/models/rtdetr.py | 26 | except Exception as e: | CODE |
| LOW | sahi/models/torchvision.py | 71 | except Exception as e: | CODE |
| LOW | sahi/models/yolo-world.py | 26 | except Exception as e: | CODE |
| LOW | sahi/models/yoloe.py | 118 | except Exception as e: | CODE |
| LOW | sahi/models/detectron2.py | 48 | except Exception as e: # try to load from local | CODE |
| LOW | sahi/models/detectron2.py | 75 | except Exception as e: | CODE |
| LOW | sahi/models/ultralytics.py | 67 | except Exception as e: | CODE |
| LOW | sahi/models/yolov5.py | 38 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sahi/auto_model.py | 30 | CODE | |
| LOW | sahi/predict.py | 176 | CODE | |
| LOW | sahi/predict.py | 496 | CODE | |
| LOW | sahi/predict.py | 913 | CODE | |
| LOW | sahi/slicing.py | 278 | CODE | |
| LOW | sahi/slicing.py | 435 | CODE | |
| LOW | sahi/utils/cv.py | 404 | CODE | |
| LOW | sahi/utils/cv.py | 517 | CODE | |
| LOW | sahi/models/mmdet.py | 97 | CODE | |
| LOW | sahi/models/huggingface.py | 26 | CODE | |
| LOW | sahi/models/roboflow.py | 40 | CODE | |
| LOW | sahi/models/base.py | 31 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | sahi/models/roboflow.py | 128 | from inference.core.exceptions import RoboflowAPINotAuthorizedError | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/check_dependencies.sh | 52 | # Check if the command runs without errors | COMMENT |
| LOW | tests/check_dependencies.sh | 62 | # Display the results | COMMENT |
| LOW | sahi/models/ultralytics.py | 196 | # Check if model has 'task' attribute (for both .pt and .onnx models) | COMMENT |
| LOW | sahi/models/ultralytics.py | 211 | # Check if model has 'task' attribute (for both .pt and .onnx models) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/guides/models.md | 195 | In addition to the [common parameters](#common-parameters), zero-shot | CODE |
| MEDIUM | docs/tr/guides/models.md | 184 | [Ortak parametrelere](#ortak-parametreler) ek olarak zero-shot (GroundingDINO) modelleri şunları kabul eder: | CODE |