HimankJ commited on
Commit
d652175
1 Parent(s): 62fb056

Added model file and code

Browse files
Files changed (2) hide show
  1. object_detector.py +46 -0
  2. object_extractor.pt +3 -0
object_detector.py ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+
3
+ class ImageObjectDetector(object):
4
+
5
+ def __init__(self):
6
+ custom_path = r"object_extractor.pt"
7
+ self.model = torch.hub.load('ultralytics/yolov5', 'custom', path=custom_path, force_reload=False, source = 'github')
8
+ self.model.conf = 0.1
9
+ self.classes = self.model.names
10
+ self.total_time = 0
11
+ self.total_img_processed = 0
12
+
13
+ def detect(self, image_path : str, save_crop_images : bool = False, save_path : str = None):
14
+ pred = self.model(image_path)
15
+ df = pred.pandas().xyxy[0]
16
+ croped = pred.crop(save = save_crop_images, save_dir = save_path, exist_ok=True)
17
+ return df, croped
18
+
19
+ class DocumentObjects(ImageObjectDetector):
20
+
21
+ def __init__(self):
22
+ super().__init__()
23
+ self.items_to_extract = ['stamp']
24
+ self.keymapper = {"sign" : "signature", "checked_item" : "checkedItem", "qr_code" : "qrCode", "bar_code" : "barCode"}
25
+
26
+ def detect_objects(self, img_path : str):
27
+ df, _ = self.detect(img_path, False, None)
28
+
29
+ if df.shape[0] < 0:
30
+ items = []
31
+ else:
32
+ items = df['name'].unique()
33
+ response = {}
34
+ for key in self.items_to_extract:
35
+ temp = {}
36
+ loc = []
37
+ if key in items:
38
+ temp['found'] = True
39
+ for ind in df[df['name'] == key].index:
40
+ cord = [df.loc[ind, 'xmin'], df.loc[ind, 'ymin'], df.loc[ind, 'xmax'], df.loc[ind, 'ymax']]
41
+ loc.append(cord)
42
+ else:
43
+ temp['found'] = False
44
+ temp['loc'] = loc
45
+ response[self.keymapper.get(key,key)] = temp
46
+ return response
object_extractor.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e1fb3ff703e2e0367770bc1cd7431004b474e9689e9eec18f9c82c0b8be1e370
3
+ size 168401186