felixflier03 commited on
Commit
329f3b9
·
verified ·
1 Parent(s): 29c06d0

Upload 6 files

Browse files
Files changed (6) hide show
  1. .gitattributes +35 -35
  2. README.md +14 -0
  3. config.json +9 -0
  4. cvat-config.json +13 -0
  5. inference.py +68 -0
  6. requirements.txt +5 -0
.gitattributes CHANGED
@@ -1,35 +1,35 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -1,3 +1,17 @@
 
1
  ---
2
  license: mit
3
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <<<<<<< HEAD
2
  ---
3
  license: mit
4
  ---
5
+ =======
6
+ # CVAT Model Repository
7
+
8
+ Dieser Modell-Repository ist für die Verwendung in CVAT konzipiert.
9
+
10
+ ## Modell-Eigenschaften
11
+ - Aufgabe: Objekt-Erkennung/Segmentierung
12
+ - Framework: PyTorch
13
+ - Eingabetyp: Bild
14
+
15
+ ## Verwendung
16
+ Bitte konsultieren Sie die Dokumentation für die korrekte Integration in CVAT.
17
+ >>>>>>> c4c4716 (Initial commit with model files)
config.json ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "Ihr-Modell-Name",
3
+ "framework": "torch",
4
+ "labels": ["object"], // Liste Ihrer Klassen
5
+ "type": "detector", // Oder "segmentation", "classifier", etc.
6
+ "params": {
7
+ "threshold": 0.5
8
+ }
9
+ }
cvat-config.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "task_type": "segmentation", // oder "detection", "classification"
3
+ "input_type": "image", // oder "video"
4
+ "output_type": "mask", // oder "rectangle", "polygon", etc.
5
+ "model_config": {
6
+ "type": "segmentation",
7
+ "labels": ["object"],
8
+ "framework": "pytorch",
9
+ "model_params": {
10
+ "threshold": 0.5
11
+ }
12
+ }
13
+ }
inference.py ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ from transformers import Pipeline
3
+ from segment_anything import sam_model_registry, SamPredictor
4
+ import numpy as np
5
+
6
+ class CVATWrapper:
7
+ def __init__(self, model_path):
8
+ # Modell laden
9
+ self.device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
10
+
11
+ # Für SAM:
12
+ self.model = sam_model_registry["vit_h"](checkpoint=model_path)
13
+ self.model.to(self.device)
14
+ self.predictor = SamPredictor(self.model)
15
+
16
+ # Für eigene Modelle:
17
+ # self.model = torch.load(model_path)
18
+ # self.model.eval()
19
+
20
+ def preprocess(self, image):
21
+ # Bildvorverarbeitung
22
+ if isinstance(image, str):
23
+ # Falls Bildpfad übergeben wird
24
+ image = cv2.imread(image)
25
+ image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
26
+ return image
27
+
28
+ def predict(self, image):
29
+ # Vorverarbeitung
30
+ image = self.preprocess(image)
31
+
32
+ # Für SAM:
33
+ self.predictor.set_image(image)
34
+ masks, scores, logits = self.predictor.predict()
35
+
36
+ # Für eigene Modelle:
37
+ # output = self.model(processed_image)
38
+ # masks = process_output(output) # Je nach Modellausgabe
39
+
40
+ # Konvertierung ins CVAT-Format
41
+ results = []
42
+ for mask, score in zip(masks, scores):
43
+ if score > 0.5: # Konfidenz-Schwellenwert
44
+ results.append({
45
+ "confidence": float(score),
46
+ "label": "object",
47
+ "points": mask_to_polygons(mask), # Hilfsfunktion unten
48
+ "type": "polygon"
49
+ })
50
+
51
+ return results
52
+
53
+ def mask_to_polygons(mask):
54
+ """Konvertiert eine binäre Maske in CVAT-Polygon-Format"""
55
+ import cv2
56
+ contours, _ = cv2.findContours(
57
+ mask.astype(np.uint8),
58
+ cv2.RETR_EXTERNAL,
59
+ cv2.CHAIN_APPROX_SIMPLE
60
+ )
61
+ polygons = []
62
+ for contour in contours:
63
+ # Vereinfache die Konturen
64
+ epsilon = 0.005 * cv2.arcLength(contour, True)
65
+ approx = cv2.approxPolyDP(contour, epsilon, True)
66
+ if len(approx) >= 3: # Mindestens 3 Punkte für ein Polygon
67
+ polygons.append(approx.reshape(-1, 2).tolist())
68
+ return polygons[0] if polygons else []
requirements.txt ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ torch>=1.7.0
2
+ segment-anything # Für SAM
3
+ opencv-python
4
+ numpy
5
+ transformers