mirror of
				https://github.com/blakeblackshear/frigate.git
				synced 2025-10-27 10:52:11 +01:00 
			
		
		
		
	consolidate regions
This commit is contained in:
		
							parent
							
								
									08ddfc100f
								
							
						
					
					
						commit
						258215a3ae
					
				@ -11,7 +11,7 @@ from collections import defaultdict
 | 
				
			|||||||
from typing import Dict, List
 | 
					from typing import Dict, List
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import numpy as np
 | 
					import numpy as np
 | 
				
			||||||
from cv2 import cv2
 | 
					from cv2 import cv2, reduce
 | 
				
			||||||
from setproctitle import setproctitle
 | 
					from setproctitle import setproctitle
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from frigate.config import CameraConfig, DetectConfig
 | 
					from frigate.config import CameraConfig, DetectConfig
 | 
				
			||||||
@ -389,13 +389,13 @@ def box_overlaps(b1, b2):
 | 
				
			|||||||
    return True
 | 
					    return True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def reduce_boxes(boxes):
 | 
					def reduce_boxes(boxes, iou_threshold=0.0):
 | 
				
			||||||
    clusters = []
 | 
					    clusters = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for box in boxes:
 | 
					    for box in boxes:
 | 
				
			||||||
        matched = 0
 | 
					        matched = 0
 | 
				
			||||||
        for cluster in clusters:
 | 
					        for cluster in clusters:
 | 
				
			||||||
            if box_overlaps(box, cluster):
 | 
					            if intersection_over_union(box, cluster) > iou_threshold:
 | 
				
			||||||
                matched = 1
 | 
					                matched = 1
 | 
				
			||||||
                cluster[0] = min(cluster[0], box[0])
 | 
					                cluster[0] = min(cluster[0], box[0])
 | 
				
			||||||
                cluster[1] = min(cluster[1], box[1])
 | 
					                cluster[1] = min(cluster[1], box[1])
 | 
				
			||||||
@ -535,6 +535,12 @@ def process_frames(
 | 
				
			|||||||
            for a in combined_boxes
 | 
					            for a in combined_boxes
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # consolidate regions with heavy overlap
 | 
				
			||||||
 | 
					        regions = [
 | 
				
			||||||
 | 
					            calculate_region(frame_shape, a[0], a[1], a[2], a[3], 1.0)
 | 
				
			||||||
 | 
					            for a in reduce_boxes(regions, 0.4)
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # resize regions and detect
 | 
					        # resize regions and detect
 | 
				
			||||||
        # seed with stationary objects
 | 
					        # seed with stationary objects
 | 
				
			||||||
        detections = [
 | 
					        detections = [
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user