diff --git a/config/config.example.yml b/config/config.example.yml index 20b10e556..5331a3695 100644 --- a/config/config.example.yml +++ b/config/config.example.yml @@ -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: diff --git a/detect_objects.py b/detect_objects.py index 686ab7a7e..d2bfede69 100644 --- a/detect_objects.py +++ b/detect_objects.py @@ -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)