use dictionary for detectors for sensors

This commit is contained in:
Blake Blackshear 2020-10-11 12:49:08 -05:00
parent 76befc1249
commit 623d138d60
2 changed files with 11 additions and 10 deletions

View File

@ -6,7 +6,8 @@ web_port: 5000
## EdgeTPU requires device as defined here: https://coral.ai/docs/edgetpu/multiple-edgetpu/#using-the-tensorflow-lite-python-api
################
detectors:
- type: edgetpu
coral:
type: edgetpu
device: usb
mqtt:

View File

@ -86,7 +86,7 @@ class CameraWatchdog(threading.Thread):
now = datetime.datetime.now().timestamp()
# check the detection processes
for detector in self.detectors:
for detector in self.detectors.values():
detection_start = detector.detection_start.value
if (detection_start > 0.0 and
now - detection_start > 10):
@ -186,12 +186,12 @@ def main():
detection_queue = mp.Queue()
detectors = []
for detector in DETECTORS:
detectors = {}
for name, detector in DETECTORS.items():
if detector['type'] == 'cpu':
detectors.append(EdgeTPUProcess(detection_queue, out_events=out_events, tf_device='cpu'))
detectors[name] = EdgeTPUProcess(detection_queue, out_events=out_events, tf_device='cpu')
if detector['type'] == 'edgetpu':
detectors.append(EdgeTPUProcess(detection_queue, out_events=out_events, tf_device=detector['device']))
detectors[name] = EdgeTPUProcess(detection_queue, out_events=out_events, tf_device=detector['device'])
# create the camera processes
camera_processes = {}
@ -373,13 +373,13 @@ def main():
}
}
stats['detectors'] = []
for detector in detectors:
stats['detectors'].append({
stats['detectors'] = {}
for name, detector in detectors.items():
stats['detectors'][name] = {
'inference_speed': round(detector.avg_inference_speed.value*1000, 2),
'detection_start': detector.detection_start.value,
'pid': detector.detect_process.pid
})
}
stats['detection_fps'] = round(total_detection_fps, 2)
return jsonify(stats)