AI Slop Code RIsk Monitor

obss/sahi

Framework agnostic sliced/tiled inference + interactive ui + error analysis plots

15.2 Elevated pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for obss/sahi, a Python project with 5,541 GitHub stars. SynthScan examined 47,610 lines of code across 302 source files, recording 450 pattern matches distributed across 16 syntactic categories. The legacy adjusted pattern signal is 15.2 (Elevated pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

15.2
Adjusted Signal
15.2
Raw Pattern Score
100%
Time Factor
2026-10-08
Last Push
5.5K
Stars
Python
Language
47.6K
Lines of Code
302
Files
450
Pattern Hits
2026-10-12
Scan Date
0.13
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 27.1/100 · MEDIUM

Can maintainers explain intent, assumptions, and trade-offs? 269 finding(s).

Hallucinated Dependency & Supply Chain Risk 9.9/100 · LOW

Are imports declared and package/API names verified? 79 finding(s).

Agent Over-Engineering Ratio 42.4/100 · MEDIUM

Are wrappers, guards, and repeated structures necessary? 292 finding(s).

PR Review Velocity Impact 53.8/100 · HIGH

Which changes need focused human review? 450 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 1HIGH 39MEDIUM 41LOW 369

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 450 distinct pattern matches across 16 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers177 hits · 188 pts
SeverityFileLineSnippetContext
LOWtests/test_coco_utils.py60 def test_coco_remapping_dict_with_chained_ids(self) -> None:CODE
LOWtests/test_coco_utils.py347 def test_split_coco_as_train_val(self) -> None:CODE
LOWtests/test_coco_utils.py413 def test_coco_update_categories(self) -> None:CODE
LOWtests/test_coco_utils.py648 def test_get_area_filtered_coco(self) -> None:CODE
LOWtests/test_coco_utils.py772 def test_derived_coco_keeps_remapped_categories(self) -> None:CODE
LOWtests/test_coco_utils.py800 def test_remove_invalid_coco_results_short_bbox(self) -> None:CODE
LOW⚡tests/test_import_utils.py38def test_helpers_are_not_generators(func: Callable) -> None:CODE
LOW⚡tests/test_import_utils.py48 def test_get_package_info_installed(self) -> None:CODE
LOW⚡tests/test_import_utils.py53 def test_get_package_info_missing(self) -> None:CODE
LOW⚡tests/test_import_utils.py58 def test_passes_when_all_present(self) -> None:CODE
LOW⚡tests/test_import_utils.py61 def test_passes_for_empty_iterable(self) -> None:CODE
LOW⚡tests/test_import_utils.py64 def test_raises_only_for_missing(self) -> None:CODE
LOW⚡tests/test_import_utils.py74def test_ensure_package_minimum_version(CODE
LOW⚡tests/test_import_utils.py94 def test_no_message_for_single_distribution(self, monkeypatch: pytest.MonkeyPatch) -> None:CODE
LOW⚡tests/test_import_utils.py98 def test_no_message_when_versions_agree(self, monkeypatch: pytest.MonkeyPatch) -> None:CODE
LOW⚡tests/test_import_utils.py102 def test_message_suggests_the_newest_version(self, monkeypatch: pytest.MonkeyPatch) -> None:CODE
LOW⚡tests/test_import_utils.py109 def test_newest_version_is_compared_numerically(self, monkeypatch: pytest.MonkeyPatch) -> None:CODE
LOW⚡tests/test_combine.py62 def test_batched_merging_empty(self, postprocess: Callable[..., dict[int, list[int]]]) -> None:CODE
LOW⚡tests/test_combine.py72 def test_class_aware_merging_empty(self, postprocess_class: type[NMMPostprocess]) -> None:CODE
LOW⚡tests/test_combine.py151 def test_nms_ios_small_inside_large(self) -> None:CODE
LOW⚡tests/test_combine.py353 def test_merge_postprocess_at_exact_threshold(CODE
LOW⚡tests/test_combine.py363 def test_nms_postprocess_single(self) -> None:CODE
LOW⚡tests/test_combine.py521 def test_metric_matrix_no_overlap(self) -> None:CODE
LOWtests/test_combine.py129 def test_nms_equal_scores_deterministic(self) -> None:CODE
LOWtests/test_combine.py163 def test_nms_iou_vs_ios_differ(self) -> None:CODE
LOWtests/test_combine.py243 def test_high_threshold_keeps_all(self) -> None:CODE
LOWtests/test_combine.py324 def test_nms_postprocess_class_agnostic_false(self) -> None:CODE
LOWtests/test_combine.py338 def test_greedy_nmm_postprocess(self) -> None:CODE
LOWtests/test_combine.py391 def test_invalid_backend_raises(self) -> None:CODE
LOWtests/test_combine.py398 def test_resolve_cache_invalidation(self) -> None:CODE
LOWtests/test_combine.py417 def test_auto_resolves_gpu_to_torchvision(CODE
LOWtests/test_combine.py440 def test_forced_numpy_backend_dispatch(self) -> None:CODE
LOWtests/test_combine.py560 def test_greedy_nmm_merge_order_parity(self) -> None:CODE
LOWtests/test_detectron2_model.py37 def test_perform_inference_without_mask_output(self) -> None:CODE
LOWtests/test_detectron2_model.py70 def test_convert_original_predictions_without_mask_output(self) -> None:CODE
LOWtests/test_detectron2_model.py117 def test_convert_original_predictions_with_mask_output(self) -> None:CODE
LOWtests/test_huggingface_model.py109def test_convert_original_predictions() -> None:CODE
LOWtests/test_huggingface_model.py155def test_get_prediction_huggingface() -> None:CODE
LOWtests/test_huggingface_model.py196def test_get_prediction_automodel_huggingface() -> None:CODE
LOWtests/test_huggingface_model.py242def test_get_sliced_prediction_huggingface() -> None:CODE
LOWtests/test_table.py14 def test_create_ascii_table_basic(self) -> None:CODE
LOWtests/test_huggingface_segmentation.py75def test_convert_original_predictions(model_path: str, segmentation_type: SegmentationType) -> None:CODE
LOWtests/test_huggingface_segmentation.py85def test_get_sliced_prediction(model_path: str, segmentation_type: SegmentationType) -> None:CODE
LOWtests/test_huggingface_segmentation.py113def test_get_prediction_detects_cars() -> None:CODE
LOWtests/test_slicing.py199 def test_slice_file_suffix_inherits_a_lossless_source_extension(self, tmp_path: Path) -> None:CODE
LOWtests/test_slicing.py207 def test_slice_image_from_path_matches_array_input(self) -> None:CODE
LOWtests/test_file_utils.py20 def test_list_files_recursively(self, tmp_path: Path) -> None:CODE
LOWtests/test_torchvision.py37 def test_load_model_without_config_path(self) -> None:CODE
LOWtests/test_torchvision.py63 def test_perform_inference_without_mask_output(self) -> None:CODE
LOWtests/test_torchvision.py114 def test_convert_original_predictions_without_mask_output(self) -> None:CODE
LOWtests/test_torchvision.py149 def test_convert_original_predictions_with_mask_output(self) -> None:CODE
LOWtests/test_torchvision.py182 def test_get_prediction_torchvision(self) -> None:CODE
LOWtests/test_torchvision.py217 def test_get_sliced_prediction_torchvision(self) -> None:CODE
LOWtests/test_mmdetection_model.py48 def test_perform_inference_with_mask_output(self) -> None:CODE
LOWtests/test_mmdetection_model.py96 def test_perform_inference_without_mask_output(self) -> None:CODE
LOWtests/test_mmdetection_model.py137 def test_convert_original_predictions_with_mask_output(self) -> None:CODE
LOWtests/test_mmdetection_model.py175 def test_convert_original_predictions_without_mask_output(self) -> None:CODE
LOWtests/test_mmdetection_model.py222 def test_perform_inference_without_mask_output_with_automodel(self) -> None:CODE
LOWtests/test_predict.py42def test_get_prediction_mmdet() -> None:CODE
LOWtests/test_predict.py136def test_prediction_category_remapping() -> None:CODE
117 more matches not shown…
Cross-File Repetition29 hits · 145 pts
SeverityFileLineSnippetContext
HIGHtests/data/models/mmdet_retinanet/default_runtime.py0mmdetection configuration file for default_runtime.py.STRING
HIGH…data/models/mmdet_cascade_mask_rcnn/default_runtime.py0mmdetection configuration file for default_runtime.py.STRING
HIGHtests/data/models/mmdet/_base_/default_runtime.py0mmdetection configuration file for default_runtime.py.STRING
HIGHsahi/models/rtdetr.py0detection model is initialized and set to self.model.STRING
HIGHsahi/models/libreyolo.py0detection model is initialized and set to self.model.STRING
HIGHsahi/models/yolo-world.py0detection model is initialized and set to self.model.STRING
HIGHsahi/models/mmdet.py0detection model is initialized and set to self.model.STRING
HIGHsahi/models/ultralytics.py0detection model is initialized and set to self.model.STRING
HIGHsahi/models/yolov5.py0detection model is initialized and set to self.model.STRING
HIGHsahi/models/torchvision.py0sets the underlying yolov5 model. args: model: any a yolov5 model **kwargs: any additional keyword arguments for model sSTRING
HIGHsahi/models/mmdet.py0sets the underlying yolov5 model. args: model: any a yolov5 model **kwargs: any additional keyword arguments for model sSTRING
HIGHsahi/models/ultralytics.py0sets the underlying yolov5 model. args: model: any a yolov5 model **kwargs: any additional keyword arguments for model sSTRING
HIGHsahi/models/yolov5.py0sets the underlying yolov5 model. args: model: any a yolov5 model **kwargs: any additional keyword arguments for model sSTRING
HIGHsahi/models/torchvision.py0returns if model output contains segmentation mask.STRING
HIGHsahi/models/roboflow.py0returns if model output contains segmentation mask.STRING
HIGHsahi/models/ultralytics.py0returns if model output contains segmentation mask.STRING
HIGHsahi/models/yolov5.py0returns if model output contains segmentation mask.STRING
HIGHsahi/models/torchvision.py0convert predictions to objectprediction list. self._original_predictions is converted to a list of prediction.objectpredSTRING
HIGHsahi/models/mmdet.py0convert predictions to objectprediction list. self._original_predictions is converted to a list of prediction.objectpredSTRING
HIGHsahi/models/detectron2.py0convert predictions to objectprediction list. self._original_predictions is converted to a list of prediction.objectpredSTRING
HIGHsahi/models/huggingface.py0convert predictions to objectprediction list. self._original_predictions is converted to a list of prediction.objectpredSTRING
HIGHsahi/models/ultralytics.py0convert predictions to objectprediction list. self._original_predictions is converted to a list of prediction.objectpredSTRING
HIGHsahi/models/yolov5.py0convert predictions to objectprediction list. self._original_predictions is converted to a list of prediction.objectpredSTRING
HIGHsahi/models/roboflow.py0convert predictions to objectprediction list. self._original_predictions is converted to a list of prediction.objectpredSTRING
HIGHsahi/models/mmdet.py0prediction is performed using self.model and the prediction result is set to self._original_predictions. args: image: npSTRING
HIGHsahi/models/detectron2.py0prediction is performed using self.model and the prediction result is set to self._original_predictions. args: image: npSTRING
HIGHsahi/models/huggingface.py0prediction is performed using self.model and the prediction result is set to self._original_predictions. args: image: npSTRING
HIGHsahi/models/ultralytics.py0prediction is performed using self.model and the prediction result is set to self._original_predictions. args: image: npSTRING
HIGHsahi/models/yolov5.py0prediction is performed using self.model and the prediction result is set to self._original_predictions. args: image: npSTRING
Decorative Section Separators39 hits · 129 pts
SeverityFileLineSnippetContext
MEDIUM⚡tests/test_combine.py53# ===========================================================================COMMENT
MEDIUM⚡tests/test_combine.py55# ===========================================================================COMMENT
MEDIUM⚡tests/test_combine.py143# ===========================================================================COMMENT
MEDIUM⚡tests/test_combine.py145# ===========================================================================COMMENT
MEDIUM⚡tests/test_combine.py371# ===========================================================================COMMENT
MEDIUM⚡tests/test_combine.py373# ===========================================================================COMMENT
MEDIUM⚡tests/test_combine.py531# ===========================================================================COMMENT
MEDIUM⚡tests/test_combine.py533# ===========================================================================COMMENT
MEDIUMtests/test_combine.py221# ===========================================================================COMMENT
MEDIUMtests/test_combine.py223# ===========================================================================COMMENT
MEDIUMtests/test_combine.py285# ===========================================================================COMMENT
MEDIUMtests/test_combine.py287# ===========================================================================COMMENT
MEDIUMtests/test_combine.py465# ===========================================================================COMMENT
MEDIUMtests/test_combine.py467# ===========================================================================COMMENT
MEDIUMtests/test_combine.py621# ===========================================================================COMMENT
MEDIUMtests/test_combine.py623# ===========================================================================COMMENT
MEDIUMscripts/detect_batch.py85 # ── load model ────────────────────────────────────────────COMMENT
MEDIUMscripts/detect_batch.py107 # ── single-image detection + save ─────────────────────────COMMENT
MEDIUMscripts/detect_batch.py127 # ── batch detection + save ────────────────────────────────COMMENT
MEDIUMscripts/detect_batch.py145 # ── speed benchmark ───────────────────────────────────────COMMENT
MEDIUMscripts/detect_batch.py178 # ── consistency ────────────────────────────────────────────COMMENT
MEDIUMsahi/postprocess/combine.py16# ---------------------------------------------------------------------------COMMENT
MEDIUMsahi/postprocess/combine.py18# ---------------------------------------------------------------------------COMMENT
MEDIUMsahi/postprocess/combine.py64# ---------------------------------------------------------------------------COMMENT
MEDIUMsahi/postprocess/combine.py66# ---------------------------------------------------------------------------COMMENT
MEDIUMsahi/postprocess/combine.py128# ---------------------------------------------------------------------------COMMENT
MEDIUMsahi/postprocess/combine.py130# ---------------------------------------------------------------------------COMMENT
MEDIUMsahi/postprocess/combine.py262# ---------------------------------------------------------------------------COMMENT
MEDIUMsahi/postprocess/combine.py264# ---------------------------------------------------------------------------COMMENT
MEDIUMsahi/postprocess/_numpy_backend.py31# ---------------------------------------------------------------------------COMMENT
MEDIUMsahi/postprocess/_numpy_backend.py33# ---------------------------------------------------------------------------COMMENT
MEDIUMsahi/postprocess/_numpy_backend.py222# ---------------------------------------------------------------------------COMMENT
MEDIUMsahi/postprocess/_numpy_backend.py224# ---------------------------------------------------------------------------COMMENT
MEDIUMsahi/postprocess/_numpy_backend.py370# ---------------------------------------------------------------------------COMMENT
MEDIUMsahi/postprocess/_numpy_backend.py372# ---------------------------------------------------------------------------COMMENT
MEDIUMsahi/postprocess/_torchvision_backend.py69# ---------------------------------------------------------------------------COMMENT
MEDIUMsahi/postprocess/_torchvision_backend.py71# ---------------------------------------------------------------------------COMMENT
MEDIUMsahi/postprocess/_numba_backend.py218# ---------------------------------------------------------------------------COMMENT
MEDIUMsahi/postprocess/_numba_backend.py220# ---------------------------------------------------------------------------COMMENT
Unused Imports75 hits · 74 pts
SeverityFileLineSnippetContext
LOWtests/test_import_utils.py1CODE
LOWtests/test_combine.py3CODE
LOWtests/test_postprocess_utils.py3CODE
LOWtests/test_compatibility.py1CODE
LOWtests/test_detectron2_model.py3CODE
LOWtests/test_huggingface_model.py3CODE
LOWtests/test_libreyolo_model.py3CODE
LOWtests/test_table.py3CODE
LOWtests/test_huggingface_segmentation.py8CODE
LOWtests/test_high_level_api.py3CODE
LOWtests/test_prediction.py3CODE
LOWtests/test_file_utils.py3CODE
LOWtests/test_torchvision.py3CODE
LOWtests/test_mmdetection_model.py3CODE
LOWtests/test_predict.py3CODE
LOWtests/test_match_all_threshold.py9CODE
LOWtests/test_rtdet_model.py3CODE
LOWtests/test_torch_utils.py3CODE
LOWtests/test_shapely_utils.py3CODE
LOWtests/test_annotation.py3CODE
LOWtests/test_sparse_backend.py3CODE
LOWtests/test_ultralytics_model.py3CODE
LOWtests/test_coco_evaluation.py1CODE
LOWtests/test_cv_utils.py3CODE
LOWtests/test_huggingface_groundingdino_model.py3CODE
LOWtests/test_roboflow.py3CODE
LOWtests/utils/ultralytics.py3CODE
LOWscripts/detect_batch.py11CODE
LOWsahi/annotation.py6CODE
LOWsahi/auto_model.py3CODE
LOWsahi/__init__.py6CODE
LOWsahi/__init__.py12CODE
LOWsahi/__init__.py13CODE
LOWsahi/__init__.py14CODE
LOWsahi/__init__.py15CODE
LOWsahi/__init__.py16CODE
LOWsahi/__init__.py17CODE
LOWsahi/logger.py3CODE
LOWsahi/prediction.py3CODE
LOWsahi/utils/rtdetr.py3CODE
LOWsahi/utils/compatibility.py3CODE
LOWsahi/utils/file.py3CODE
LOWsahi/utils/mmdet.py3CODE
LOWsahi/utils/cv.py3CODE
LOWsahi/utils/table.py3CODE
LOWsahi/utils/shapely.py3CODE
LOWsahi/utils/import_utils.py3CODE
LOWsahi/utils/yolov5.py3CODE
LOWsahi/utils/torch_utils.py3CODE
LOWsahi/models/rtdetr.py6CODE
LOWsahi/models/libreyolo.py6CODE
LOWsahi/models/torchvision.py7CODE
LOWsahi/models/yolo-world.py6CODE
LOWsahi/models/yoloe.py7CODE
LOWsahi/models/mmdet.py7CODE
LOWsahi/models/detectron2.py7CODE
LOWsahi/models/huggingface.py7CODE
LOWsahi/models/roboflow.py7CODE
LOWsahi/models/huggingface_segmentation.py7CODE
LOWsahi/models/ultralytics.py7CODE
15 more matches not shown…
Deep Nesting30 hits · 28 pts
SeverityFileLineSnippetContext
LOWtests/test_huggingface_model.py155CODE
LOWtests/test_huggingface_model.py196CODE
LOWtests/test_huggingface_model.py242CODE
LOWsahi/predict.py176CODE
LOWsahi/predict.py498CODE
LOWsahi/utils/coco.py1837CODE
LOWsahi/utils/coco.py1922CODE
LOWsahi/utils/coco.py1997CODE
LOWsahi/utils/coco.py958CODE
LOWsahi/utils/coco.py1007CODE
LOWsahi/utils/coco.py1419CODE
LOWsahi/utils/coco.py1480CODE
LOWsahi/utils/coco.py1518CODE
LOWsahi/utils/coco.py2226CODE
LOWsahi/utils/mmdet.py69CODE
LOWsahi/utils/cv.py257CODE
LOWsahi/utils/cv.py309CODE
LOWsahi/utils/cv.py623CODE
LOWsahi/utils/torch_utils.py73CODE
LOWsahi/models/mmdet.py221CODE
LOWsahi/models/roboflow.py119CODE
LOWsahi/models/roboflow.py201CODE
LOWsahi/models/ultralytics.py216CODE
LOWsahi/scripts/coco_error_analysis.py49CODE
LOWsahi/scripts/coco_error_analysis.py168CODE
LOWsahi/scripts/coco_error_analysis.py312CODE
LOWsahi/scripts/coco_evaluation.py72CODE
LOWsahi/postprocess/utils.py137CODE
LOWsahi/postprocess/utils.py164CODE
LOWsahi/postprocess/utils.py61CODE
Over-Commented Block25 hits · 25 pts
SeverityFileLineSnippetContext
LOWtests/check_dependencies.sh1#!/bin/bashCOMMENT
LOWtests/data/models/mmdet/_base_/datasets/wider_face.py1"""MMDetection configuration file for wider_face.py."""COMMENT
LOW…models/mmdet/_base_/datasets/objects365v2_detection.py1"""MMDetection configuration file for objects365v2_detection.py."""COMMENT
LOW…ta/models/mmdet/_base_/datasets/cityscapes_instance.py1"""MMDetection configuration file for cityscapes_instance.py."""COMMENT
LOW…ta/models/mmdet/_base_/datasets/cityscapes_instance.py101# persistent_workers=True,COMMENT
LOW…ts/data/models/mmdet/_base_/datasets/coco_detection.py1"""MMDetection configuration file for coco_detection.py."""COMMENT
LOW…ts/data/models/mmdet/_base_/datasets/coco_detection.py81# test_dataloader = dict(COMMENT
LOW…ata/models/mmdet/_base_/datasets/lvis_v0.5_instance.py1"""MMDetection configuration file for lvis_v0.5_instance.py."""COMMENT
LOW…a/models/mmdet/_base_/datasets/openimages_detection.py1"""MMDetection configuration file for openimages_detection.py."""COMMENT
LOW…a/models/mmdet/_base_/datasets/cityscapes_detection.py1"""MMDetection configuration file for cityscapes_detection.py."""COMMENT
LOW…ta/models/mmdet/_base_/datasets/semi_coco_detection.py1"""MMDetection configuration file for semi_coco_detection.py."""COMMENT
LOW…ta/models/mmdet/_base_/datasets/semi_coco_detection.py121 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.py1"""MMDetection configuration file for coco_instance.py."""COMMENT
LOW…sts/data/models/mmdet/_base_/datasets/coco_instance.py81# test_dataloader = dict(COMMENT
LOW…sts/data/models/mmdet/_base_/datasets/coco_panoptic.py1"""MMDetection configuration file for coco_panoptic.py."""COMMENT
LOW…sts/data/models/mmdet/_base_/datasets/coco_panoptic.py81# batch_size=1,COMMENT
LOW…models/mmdet/_base_/datasets/coco_instance_semantic.py1"""MMDetection configuration file for coco_instance_semantic.py."""COMMENT
LOW…models/mmdet/_base_/datasets/objects365v1_detection.py1"""MMDetection configuration file for objects365v1_detection.py."""COMMENT
LOWtests/data/models/mmdet/_base_/datasets/voc0712.py1"""MMDetection configuration file for voc0712.py."""COMMENT
LOWtests/data/models/mmdet/_base_/datasets/deepfashion.py1"""MMDetection configuration file for deepfashion.py."""COMMENT
LOWtests/data/models/mmdet/yolox/yolox_s_8xb8-300e_coco.py61# Method 1: simply set the data root and let the file I/O moduleCOMMENT
LOWdocs/coco.md301# 'num_negative_images': 0,COMMENT
LOWdocs/zh/coco.md301# 'num_images_per_category': {'human': 5684, 'vehicle': 6323},COMMENT
LOWdocs/tr/coco.md301# 'num_images_per_category': {'human': 5684, 'vehicle': 6323},COMMENT
LOWsahi/postprocess/_sparse_backend.py21from shapely import STRtreeCOMMENT
AI Slop Vocabulary15 hits · 22 pts
SeverityFileLineSnippetContext
LOWtests/data/models/mmdet/_base_/datasets/wider_face.py7# Method 1: simply set the data root and let the file I/O moduleCOMMENT
LOW…models/mmdet/_base_/datasets/objects365v2_detection.py8# Method 1: simply set the data root and let the file I/O moduleCOMMENT
LOW…ta/models/mmdet/_base_/datasets/cityscapes_instance.py8# Method 1: simply set the data root and let the file I/O moduleCOMMENT
LOW…ts/data/models/mmdet/_base_/datasets/coco_detection.py8# Method 1: simply set the data root and let the file I/O moduleCOMMENT
LOW…ata/models/mmdet/_base_/datasets/lvis_v0.5_instance.py8# Method 1: simply set the data root and let the file I/O moduleCOMMENT
LOW…a/models/mmdet/_base_/datasets/openimages_detection.py8# Method 1: simply set the data root and let the file I/O moduleCOMMENT
LOW…a/models/mmdet/_base_/datasets/cityscapes_detection.py8# Method 1: simply set the data root and let the file I/O moduleCOMMENT
LOW…ta/models/mmdet/_base_/datasets/semi_coco_detection.py8# Method 1: simply set the data root and let the file I/O moduleCOMMENT
LOW…sts/data/models/mmdet/_base_/datasets/coco_instance.py8# Method 1: simply set the data root and let the file I/O moduleCOMMENT
LOW…sts/data/models/mmdet/_base_/datasets/coco_panoptic.py8# Method 1: simply set the data root and let the file I/O moduleCOMMENT
LOW…models/mmdet/_base_/datasets/coco_instance_semantic.py8# Method 1: simply set the data root and let the file I/O moduleCOMMENT
LOW…models/mmdet/_base_/datasets/objects365v1_detection.py8# Method 1: simply set the data root and let the file I/O moduleCOMMENT
LOWtests/data/models/mmdet/_base_/datasets/voc0712.py8# Method 1: simply set the data root and let the file I/O moduleCOMMENT
LOWtests/data/models/mmdet/_base_/datasets/deepfashion.py8# Method 1: simply set the data root and let the file I/O moduleCOMMENT
LOWtests/data/models/mmdet/yolox/yolox_s_8xb8-300e_coco.py61# Method 1: simply set the data root and let the file I/O moduleCOMMENT
Empty Error Handlers4 hits · 20 pts
SeverityFileLineSnippetContext
HIGHtests/test_match_all_threshold.py32except ImportError: # pragma: no cover - numba is optionalCODE
HIGHtests/test_match_all_threshold.py43except ImportError: # pragma: no cover - torchvision is optionalCODE
HIGHsahi/postprocess/backends.py39except ImportError:CODE
HIGHsahi/postprocess/backends.py84except ImportError:CODE
Magic Placeholder Names3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHdocs/zh/guides/models.md407 api_key="YOUR_API_KEY", # 也可以设置 ROBOFLOW_API_KEYCODE
HIGHdocs/guides/models.md428 api_key="YOUR_API_KEY", # or set ROBOFLOW_API_KEYCODE
HIGHdocs/tr/guides/models.md407 api_key="YOUR_API_KEY", # or set ROBOFLOW_API_KEYCODE
Excessive Try-Catch Wrapping15 hits · 15 pts
SeverityFileLineSnippetContext
LOWscripts/detect_batch.py95 except Exception as e:CODE
LOWsahi/utils/cv.py21except Exception:CODE
LOWsahi/utils/cv.py153 except Exception as e:CODE
LOWsahi/utils/cv.py238 except Exception:CODE
LOWsahi/utils/cv.py302 except Exception as error:CODE
LOWsahi/utils/cv.py352 except Exception as e: # handle large/tiff image readingCODE
LOWsahi/models/rtdetr.py26 except Exception as e:CODE
LOWsahi/models/libreyolo.py25 except Exception as e:CODE
LOWsahi/models/torchvision.py71 except Exception as e:CODE
LOWsahi/models/yolo-world.py26 except Exception as e:CODE
LOWsahi/models/yoloe.py118 except Exception as e:CODE
LOWsahi/models/detectron2.py48 except Exception as e: # try to load from localCODE
LOWsahi/models/detectron2.py75 except Exception as e:CODE
LOWsahi/models/ultralytics.py67 except Exception as e:CODE
LOWsahi/models/yolov5.py38 except Exception as e:CODE
Docstring Block Structure3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHsahi/auto_model.py45Load a DetectionModel from given path. Args: model_type: str Name of the detection STRING
HIGHsahi/postprocess/combine.py442Apply Locality-Sensitive NMS to suppress overlapping predictions. Args: object_predictions: List ofSTRING
HIGHsahi/postprocess/utils.py339Check whether two predictions overlap at or above the given threshold. Args: pred1: First object predictionSTRING
Modern Structural Boilerplate15 hits · 15 pts
SeverityFileLineSnippetContext
LOWsahi/__init__.py59__all__ = [CODE
LOWsahi/logger.py98__all__ = ["PKG_INFO_LEVEL", "BaseSahiLogger", "SahiLogger", "SupportsPkgInfo", "logger"]CODE
LOWsahi/utils/coco.py896 def update_categories(self, desired_name2id: dict[str, int], update_image_filenames: bool = False) -> None:CODE
LOWsahi/utils/coco.py1771def update_categories_from_file(desired_name2id: dict, coco_path: str, save_path: str) -> None:CODE
LOWsahi/models/torchvision.py77 def set_model(self, model: Any, **kwargs: Any) -> None:CODE
LOWsahi/models/mmdet.py138 def set_model(self, model: Any, **kwargs: Any) -> None:CODE
LOWsahi/models/huggingface.py117 def set_model(self, model: Any, processor: Any | None = None, **kwargs: Any) -> None:CODE
LOWsahi/models/roboflow.py109 def set_model(self, model: Any, **kwargs: Any) -> None:CODE
LOWsahi/models/huggingface_segmentation.py90 def set_model(self, model: Any, processor: Any = None, **kwargs: Any) -> None:CODE
LOWsahi/models/ultralytics.py70 def set_model(self, model: Any, **kwargs: Any) -> None:CODE
LOWsahi/models/yolov5.py41 def set_model(self, model: Any, **kwargs: Any) -> None:CODE
LOWsahi/models/base.py110 def set_model(self, model: Any, **kwargs: Any) -> None:CODE
LOWsahi/models/base.py124 def set_device(self, device: str | None = None) -> None:CODE
LOWsahi/postprocess/__init__.py5__all__ = ["get_postprocess_backend", "set_postprocess_backend"]CODE
LOWsahi/postprocess/backends.py20def set_postprocess_backend(name: str) -> None:CODE
AI Structural Patterns13 hits · 13 pts
SeverityFileLineSnippetContext
LOWsahi/auto_model.py31CODE
LOWsahi/predict.py176CODE
LOWsahi/predict.py498CODE
LOWsahi/predict.py915CODE
LOWsahi/slicing.py305CODE
LOWsahi/slicing.py453CODE
LOWsahi/utils/cv.py510CODE
LOWsahi/utils/cv.py623CODE
LOWsahi/models/mmdet.py97CODE
LOWsahi/models/huggingface.py26CODE
LOWsahi/models/roboflow.py40CODE
LOWsahi/models/base.py31CODE
LOWsahi/scripts/coco_evaluation.py359CODE
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICALsahi/models/roboflow.py128 from inference.core.exceptions import RoboflowAPINotAuthorizedErrorCODE
Redundant / Tautological Comments4 hits · 6 pts
SeverityFileLineSnippetContext
LOWtests/check_dependencies.sh52 # Check if the command runs without errorsCOMMENT
LOWtests/check_dependencies.sh62# Display the resultsCOMMENT
LOWsahi/models/ultralytics.py189 # Check if model has 'task' attribute (for both .pt and .onnx models)COMMENT
LOWsahi/models/ultralytics.py204 # Check if model has 'task' attribute (for both .pt and .onnx models)COMMENT
Modern AI Meta-Vocabulary2 hits · 4 pts
SeverityFileLineSnippetContext
MEDIUMdocs/guides/models.md195In addition to the [common parameters](#common-parameters), zero-shotCODE
MEDIUMdocs/tr/guides/models.md184[Ortak parametrelere](#ortak-parametreler) ek olarak zero-shot (GroundingDINO) modelleri şunları kabul eder:CODE