Make vision and voice examples cross-platform
Change-Id: Iaaecc49b1c9acb0e612b7a6fea377ff3f4712723
diff --git a/vision.py b/vision.py
index d0f1edb..9701bb5 100644
--- a/vision.py
+++ b/vision.py
@@ -12,6 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+import platform
import sys
import cv2
@@ -22,6 +23,12 @@
from pycoral.adapters import classify
from pycoral.adapters import detect
+_EDGETPU_SHARED_LIB = {
+ 'Linux': 'libedgetpu.so.1',
+ 'Darwin': 'libedgetpu.1.dylib',
+ 'Windows': 'edgetpu.dll'
+}[platform.system()]
+
FACE_DETECTION_MODEL = 'ssd_mobilenet_v2_face_quant_postprocess_edgetpu.tflite'
CLASSIFICATION_MODEL = 'tf2_mobilenet_v2_1.0_224_ptq_edgetpu.tflite'
CLASSIFICATION_LABELS = 'imagenet_labels.txt'
@@ -36,7 +43,7 @@
model_file, *device = model_file.split('@')
return tflite.Interpreter(
model_path=model_file,
- experimental_delegates=[tflite.load_delegate('libedgetpu.so.1',
+ experimental_delegates=[tflite.load_delegate(_EDGETPU_SHARED_LIB,
{'device': device[0]} if device else {})])
class Detector:
diff --git a/voice.py b/voice.py
index f703fe1..316b1d8 100644
--- a/voice.py
+++ b/voice.py
@@ -15,6 +15,7 @@
"""Keyword spotter model."""
import logging
+import platform
import queue
import sys
import threading
@@ -26,6 +27,12 @@
import tflite_runtime.interpreter as tflite
+_EDGETPU_SHARED_LIB = {
+ 'Linux': 'libedgetpu.so.1',
+ 'Darwin': 'libedgetpu.1.dylib',
+ 'Windows': 'edgetpu.dll'
+}[platform.system()]
+
logging.basicConfig(
stream=sys.stdout,
format="%(levelname)-8s %(asctime)-15s %(name)s %(message)s")
@@ -176,7 +183,7 @@
model_file, *device = model_file.split('@')
return tflite.Interpreter(
model_path=model_file,
- experimental_delegates=[tflite.load_delegate('libedgetpu.so.1',
+ experimental_delegates=[tflite.load_delegate(_EDGETPU_SHARED_LIB,
{'device': device[0]} if device else {})])
def classify_audio(model_file, labels_file, callback,