mirror of
				https://github.com/blakeblackshear/frigate.git
				synced 2025-10-27 10:52:11 +01:00 
			
		
		
		
	implement min person size again
This commit is contained in:
		
							parent
							
								
									200d769003
								
							
						
					
					
						commit
						a26d2217d4
					
				| @ -61,16 +61,16 @@ def detect_objects(prepped_frame_array, prepped_frame_time, | ||||
|                             'xmax': int((box[2] * region_box[0]) + region_box[1]), | ||||
|                             'ymax': int((box[3] * region_box[0]) + region_box[2]) | ||||
|                         }) | ||||
|         else: | ||||
|             object_queue.put({ | ||||
|                             'frame_time': frame_time, | ||||
|                             'name': 'dummy', | ||||
|                             'score': 0.99, | ||||
|                             'xmin': int(0 + region_box[1]), | ||||
|                             'ymin': int(0 + region_box[2]), | ||||
|                             'xmax': int(10 + region_box[1]), | ||||
|                             'ymax': int(10 + region_box[2]) | ||||
|                         }) | ||||
|         # else: | ||||
|         #     object_queue.put({ | ||||
|         #                     'frame_time': frame_time, | ||||
|         #                     'name': 'dummy', | ||||
|         #                     'score': 0.99, | ||||
|         #                     'xmin': int(0 + region_box[1]), | ||||
|         #                     'ymin': int(0 + region_box[2]), | ||||
|         #                     'xmax': int(10 + region_box[1]), | ||||
|         #                     'ymax': int(10 + region_box[2]) | ||||
|         #                 }) | ||||
| 
 | ||||
| class PreppedQueueProcessor(threading.Thread): | ||||
|     def __init__(self, prepped_frame_array, | ||||
|  | ||||
| @ -4,16 +4,39 @@ import threading | ||||
| import cv2 | ||||
| from object_detection.utils import visualization_utils as vis_util | ||||
| class ObjectParser(threading.Thread): | ||||
|     def __init__(self, object_queue, objects_parsed, detected_objects): | ||||
|     def __init__(self, object_queue, objects_parsed, detected_objects, regions): | ||||
|         threading.Thread.__init__(self) | ||||
|         self._object_queue = object_queue | ||||
|         self._objects_parsed = objects_parsed | ||||
|         self._detected_objects = detected_objects | ||||
|         self.regions = regions | ||||
| 
 | ||||
|     def run(self): | ||||
|         # frame_times = {} | ||||
|         while True: | ||||
|             obj = self._object_queue.get() | ||||
|             # filter out persons | ||||
|             # [obj['score'] for obj in detected_objects if obj['name'] == 'person'] | ||||
|             if obj['name'] == 'person': | ||||
|                 person_area = (obj['xmax']-obj['xmin'])*(obj['ymax']-obj['ymin']) | ||||
|                 # find the matching region | ||||
|                 region = None | ||||
|                 for r in self.regions: | ||||
|                     if ( | ||||
|                             obj['xmin'] >= r['x_offset'] and | ||||
|                             obj['ymin'] >= r['y_offset'] and | ||||
|                             obj['xmax'] <= r['x_offset']+r['size'] and | ||||
|                             obj['ymax'] <= r['y_offset']+r['size'] | ||||
|                        ):  | ||||
|                         region = r | ||||
|                         break | ||||
|                  | ||||
|                 # if the min person area is larger than the | ||||
|                 # detected person, don't add it to detected objects | ||||
|                 if region and region['min_person_area'] > person_area: | ||||
|                     continue | ||||
| 
 | ||||
| 
 | ||||
|             # frame_time = obj['frame_time'] | ||||
|             # if frame_time in frame_times: | ||||
|             #     if frame_times[frame_time] == 7: | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user