* This supports classification and segmentation demos with tensorflow lite models running on Arm. It demonstrates the whole pipeline from image/video/camera input, to tensorflow lite inference, to display the classification/segemenation results.
* OpenCV is used for capturing the input and displaying the results. Signed-off-by: Hongmei Gou <[email protected]> --- v2 change: replace "DESCRIPTION" with "SUMMARY" .../files/run_classification.sh | 7 +++ .../tensorflow-lite/files/run_segmentation.sh | 8 +++ .../tensorflow-lite-demo_git.bb | 53 +++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 meta-arago-extras/recipes-support/tensorflow-lite/files/run_classification.sh create mode 100644 meta-arago-extras/recipes-support/tensorflow-lite/files/run_segmentation.sh create mode 100644 meta-arago-extras/recipes-support/tensorflow-lite/tensorflow-lite-demo_git.bb diff --git a/meta-arago-extras/recipes-support/tensorflow-lite/files/run_classification.sh b/meta-arago-extras/recipes-support/tensorflow-lite/files/run_classification.sh new file mode 100644 index 00000000..b2ad7fc4 --- /dev/null +++ b/meta-arago-extras/recipes-support/tensorflow-lite/files/run_classification.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +cd /usr/share/tensorflow-lite/demos + +# Run tflite_classification binary with the model, the input image, and the label file specified. +# Classification label is overlayed with the input image. Right click the image display window to exit. +./tflite_classification -m ../examples/mobilenet_v1_1.0_224_quant.tflite -i ../examples/grace_hopper.bmp -l ../examples/labels.txt diff --git a/meta-arago-extras/recipes-support/tensorflow-lite/files/run_segmentation.sh b/meta-arago-extras/recipes-support/tensorflow-lite/files/run_segmentation.sh new file mode 100644 index 00000000..5caea127 --- /dev/null +++ b/meta-arago-extras/recipes-support/tensorflow-lite/files/run_segmentation.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +cd /usr/share/tensorflow-lite/demos + +# Run tflite_segmentation binary with the model and the input image specified. +# The display window shows the input(resized) image, segmentation map, overlay +# of the former two. Right click the image display window to exit. +./tflite_segmentation -m ./deeplabv3_257_mv_gpu.tflite -i ./bird_segmentation.bmp diff --git a/meta-arago-extras/recipes-support/tensorflow-lite/tensorflow-lite-demo_git.bb b/meta-arago-extras/recipes-support/tensorflow-lite/tensorflow-lite-demo_git.bb new file mode 100644 index 00000000..aac5e811 --- /dev/null +++ b/meta-arago-extras/recipes-support/tensorflow-lite/tensorflow-lite-demo_git.bb @@ -0,0 +1,53 @@ +SUMMARY = "Tensorflow Lite Demo with input and display via OpenCV and TIDL acceleration for AM5" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d8927f3331d2b3e321b7dd1925166d25" + +DEPENDS = "tensorflow-lite flatbuffers opencv" + +COMPATIBLE_MACHINE = "ti33x|ti43x|omap-a15|am65xx" + +PV = "01.00.00" +PR = "r0" + +BRANCH = "master" +SRC_URI = "git://git.ti.com/apps/tensorflow-lite-examples.git;protocol=git;branch=${BRANCH} \ + http://storage.googleapis.com/download.tensorflow.org/models/tflite/gpu/deeplabv3_257_mv_gpu.tflite;name=deeplabv3;subdir=${WORKDIR}/model;destsuffix=model \ + http://raw.githubusercontent.com/google-coral/edgetpu/master/test_data/bird_segmentation.bmp;name=bird_segmentation;subdir=${WORKDIR}/test_data;destsuffix=test_data \ + file://run_classification.sh \ + file://run_segmentation.sh" + +SRC_URI[deeplabv3.md5sum] = "4a24db5a5fb05c47586a1197765e8548" +SRC_URI[deeplabv3.sha256sum] = "68a539782c2c6a72f8aac3724600124a85ed977162b44e84cbae5db717c933c6" +SRC_URI[bird_segmentation.md5sum] = "fc3202ac4e3033b36df3043de6dc32c9" +SRC_URI[bird_segmentation.sha256sum] = "e43cedd29ab385db787531c8a6cdcb31c5e4292af34f242877ed40611e502670" + +SRCREV = "d84f1d43585c0db2fa6a1c15db9145ab53f859ce" + +S = "${WORKDIR}/git" + +CXXFLAGS_append = " -O3 -DNDEBUG -fPIC -I${STAGING_INCDIR}" +LDFLAGS_append = " -L${STAGING_LIBDIR}" + +EXTRA_OEMAKE = "\ + 'CXX=${CXX}' \ + 'CXXFLAGS=${CXXFLAGS}' \ + 'AR=${AR}' \ + 'LD=${LD}' \ + 'LDFLAGS=${LDFLAGS}' \ + 'TARGET=${TARGET_OS}' \ + 'TARGET_ARCH=${TARGET_ARCH}'" + +do_compile() { + oe_runmake -f Makefile +} + +do_install() { + install -d ${D}${datadir}/tensorflow-lite/demos + install -m 0755 ${S}/tflite_classification ${D}${datadir}/tensorflow-lite/demos + install -m 0755 ${S}/tflite_segmentation ${D}${datadir}/tensorflow-lite/demos + install -m 0644 ${WORKDIR}/model/deeplabv3_257_mv_gpu.tflite ${D}${datadir}/tensorflow-lite/demos + install -m 0644 ${WORKDIR}/test_data/bird_segmentation.bmp ${D}${datadir}/tensorflow-lite/demos + install -m 0755 ${WORKDIR}/run*.sh ${D}${datadir}/tensorflow-lite/demos +} + +FILES_${PN} = "${datadir}/tensorflow-lite/demos" -- 2.17.1 _______________________________________________ meta-arago mailing list [email protected] http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
