Repository: PINTO0309/TensorflowLite-bin Branch: main Commit: b3ca9a873beb Files: 267 Total size: 23.9 MB Directory structure: gitextract_wiu40o1d/ ├── .github/ │ ├── FUNDING.yml │ └── ISSUE_TEMPLATE/ │ ├── config.yml │ └── issue_template.yml ├── 1.14.0/ │ ├── tflite_runtime-1.14.0-cp35-cp35m-linux_aarch64.whl │ ├── tflite_runtime-1.14.0-cp35-cp35m-linux_armv7l.whl │ ├── tflite_runtime-1.14.0-cp37-cp37m-linux_aarch64.whl │ └── tflite_runtime-1.14.0-cp37-cp37m-linux_armv7l.whl ├── 1.15.0/ │ ├── tflite_runtime-1.15.0-cp27-cp27mu-linux_armv7l.whl │ ├── tflite_runtime-1.15.0-cp35-cp35m-linux_aarch64.whl │ ├── tflite_runtime-1.15.0-cp35-cp35m-linux_armv7l.whl │ ├── tflite_runtime-1.15.0-cp37-cp37m-linux_aarch64.whl │ └── tflite_runtime-1.15.0-cp37-cp37m-linux_armv7l.whl ├── 1.15.0-rc0/ │ ├── tflite_runtime-1.15.0rc0-cp35-cp35m-linux_aarch64.whl │ ├── tflite_runtime-1.15.0rc0-cp35-cp35m-linux_armv7l.whl │ ├── tflite_runtime-1.15.0rc0-cp37-cp37m-linux_aarch64.whl │ └── tflite_runtime-1.15.0rc0-cp37-cp37m-linux_armv7l.whl ├── 1.15.0-rc1/ │ ├── tflite_runtime-1.15.0rc1-cp35-cp35m-linux_aarch64.whl │ ├── tflite_runtime-1.15.0rc1-cp35-cp35m-linux_armv7l.whl │ ├── tflite_runtime-1.15.0rc1-cp37-cp37m-linux_aarch64.whl │ └── tflite_runtime-1.15.0rc1-cp37-cp37m-linux_armv7l.whl ├── 1.15.0-rc2/ │ ├── tflite_runtime-1.15.0rc2-cp35-cp35m-linux_aarch64.whl │ ├── tflite_runtime-1.15.0rc2-cp35-cp35m-linux_armv7l.whl │ ├── tflite_runtime-1.15.0rc2-cp37-cp37m-linux_aarch64.whl │ └── tflite_runtime-1.15.0rc2-cp37-cp37m-linux_armv7l.whl ├── 1.15.0-rc3/ │ ├── tflite_runtime-1.15.0rc3-cp27-cp27mu-linux_aarch64.whl │ ├── tflite_runtime-1.15.0rc3-cp27-cp27mu-linux_armv7l.whl │ ├── tflite_runtime-1.15.0rc3-cp35-cp35m-linux_aarch64.whl │ ├── tflite_runtime-1.15.0rc3-cp35-cp35m-linux_armv7l.whl │ ├── tflite_runtime-1.15.0rc3-cp37-cp37m-linux_aarch64.whl │ └── tflite_runtime-1.15.0rc3-cp37-cp37m-linux_armv7l.whl ├── 1.15.1/ │ ├── tflite_runtime-1.15.1-cp27-cp27mu-linux_aarch64.whl │ ├── tflite_runtime-1.15.1-cp27-cp27mu-linux_armv7l.whl │ ├── tflite_runtime-1.15.1-cp35-cp35m-linux_aarch64.whl │ ├── tflite_runtime-1.15.1-cp35-cp35m-linux_armv7l.whl │ ├── tflite_runtime-1.15.1-cp37-cp37m-linux_aarch64.whl │ └── tflite_runtime-1.15.1-cp37-cp37m-linux_armv7l.whl ├── 1.15.2/ │ ├── tflite_runtime-1.15.2-cp27-cp27mu-linux_aarch64.whl │ ├── tflite_runtime-1.15.2-cp27-cp27mu-linux_armv7l.whl │ ├── tflite_runtime-1.15.2-cp35-cp35m-linux_aarch64.whl │ ├── tflite_runtime-1.15.2-cp35-cp35m-linux_armv7l.whl │ ├── tflite_runtime-1.15.2-cp37-cp37m-linux_aarch64.whl │ └── tflite_runtime-1.15.2-cp37-cp37m-linux_armv7l.whl ├── 2.0.0/ │ ├── cpp-android-arm64-v8a/ │ │ └── build_script.txt │ ├── cpp-armv7l_glibc2.28/ │ │ ├── build-script.txt │ │ └── download_tensorflowlite_2.0.0_armv7l.sh │ ├── cpp-flexdelegate-armv7l_glibc2.28/ │ │ └── download_tensorflowlite_2.0.0_flexdelegate_armv7l.sh │ ├── cpp-flexdelegate-x86_64_glibc2.27/ │ │ └── download_tensorflowlite_2.0.0_flexdelegate_x86_64.sh │ ├── cpp-x86_64_glibc2.27/ │ │ ├── build-script.txt │ │ └── download_tensorflowlite_2.0.0_x86_64.sh │ ├── java-android-x86_x86_64_arm64-v8a_armeabi-v7a/ │ │ ├── build_script.txt │ │ ├── tensorflow-lite.aar │ │ └── tensorflow-lite_generated_AndroidManifest.xml │ ├── tflite_runtime-2.0.0-cp27-cp27mu-linux_aarch64.whl │ ├── tflite_runtime-2.0.0-cp27-cp27mu-linux_armv7l.whl │ ├── tflite_runtime-2.0.0-cp35-cp35m-linux_aarch64.whl │ ├── tflite_runtime-2.0.0-cp35-cp35m-linux_armv7l.whl │ ├── tflite_runtime-2.0.0-cp37-cp37m-linux_aarch64.whl │ └── tflite_runtime-2.0.0-cp37-cp37m-linux_armv7l.whl ├── 2.0.0-rc0/ │ ├── tflite_runtime-2.0.0rc0-cp35-cp35m-linux_aarch64.whl │ ├── tflite_runtime-2.0.0rc0-cp35-cp35m-linux_armv7l.whl │ ├── tflite_runtime-2.0.0rc0-cp37-cp37m-linux_aarch64.whl │ └── tflite_runtime-2.0.0rc0-cp37-cp37m-linux_armv7l.whl ├── 2.0.0-rc1/ │ ├── tflite_runtime-2.0.0rc1-cp35-cp35m-linux_aarch64.whl │ ├── tflite_runtime-2.0.0rc1-cp35-cp35m-linux_armv7l.whl │ ├── tflite_runtime-2.0.0rc1-cp37-cp37m-linux_aarch64.whl │ └── tflite_runtime-2.0.0rc1-cp37-cp37m-linux_armv7l.whl ├── 2.0.0-rc2/ │ ├── tflite_runtime-2.0.0rc2-cp35-cp35m-linux_aarch64.whl │ ├── tflite_runtime-2.0.0rc2-cp35-cp35m-linux_armv7l.whl │ ├── tflite_runtime-2.0.0rc2-cp37-cp37m-linux_aarch64.whl │ └── tflite_runtime-2.0.0rc2-cp37-cp37m-linux_armv7l.whl ├── 2.1.0/ │ ├── cpp-flexdelegate-aarch64_glibc2.28/ │ │ └── download_debian_buster_aarch64_libtensorflowlite.so.sh │ ├── cpp-flexdelegate-aarch64_glibc2.30/ │ │ └── download_ubuntu_1910_aarch64_libtensorflowlite.so.sh │ ├── cpp-flexdelegate-armhf_glibc2.28/ │ │ └── download_debian_buster_armhf_libtensorflowlite.so.sh │ ├── tflite_runtime-2.1.0-cp27-cp27mu-linux_aarch64.whl │ ├── tflite_runtime-2.1.0-cp27-cp27mu-linux_armv7l.whl │ ├── tflite_runtime-2.1.0-cp35-cp35m-linux_aarch64.whl │ ├── tflite_runtime-2.1.0-cp35-cp35m-linux_armv7l.whl │ ├── tflite_runtime-2.1.0-cp37-cp37m-linux_aarch64.whl │ └── tflite_runtime-2.1.0-cp37-cp37m-linux_armv7l.whl ├── 2.1.0-rc0/ │ ├── tflite_runtime-2.1.0rc0-cp27-cp27mu-linux_aarch64.whl │ ├── tflite_runtime-2.1.0rc0-cp27-cp27mu-linux_armv7l.whl │ ├── tflite_runtime-2.1.0rc0-cp35-cp35m-linux_aarch64.whl │ ├── tflite_runtime-2.1.0rc0-cp35-cp35m-linux_armv7l.whl │ ├── tflite_runtime-2.1.0rc0-cp37-cp37m-linux_aarch64.whl │ └── tflite_runtime-2.1.0rc0-cp37-cp37m-linux_armv7l.whl ├── 2.1.0-rc1/ │ ├── tflite_runtime-2.1.0rc1-cp27-cp27mu-linux_aarch64.whl │ ├── tflite_runtime-2.1.0rc1-cp27-cp27mu-linux_armv7l.whl │ ├── tflite_runtime-2.1.0rc1-cp35-cp35m-linux_aarch64.whl │ ├── tflite_runtime-2.1.0rc1-cp35-cp35m-linux_armv7l.whl │ ├── tflite_runtime-2.1.0rc1-cp37-cp37m-linux_aarch64.whl │ └── tflite_runtime-2.1.0rc1-cp37-cp37m-linux_armv7l.whl ├── 2.1.0-rc2/ │ ├── tflite_runtime-2.1.0rc2-cp27-cp27mu-linux_aarch64.whl │ ├── tflite_runtime-2.1.0rc2-cp27-cp27mu-linux_armv7l.whl │ ├── tflite_runtime-2.1.0rc2-cp35-cp35m-linux_aarch64.whl │ ├── tflite_runtime-2.1.0rc2-cp35-cp35m-linux_armv7l.whl │ ├── tflite_runtime-2.1.0rc2-cp37-cp37m-linux_aarch64.whl │ └── tflite_runtime-2.1.0rc2-cp37-cp37m-linux_armv7l.whl ├── 2.10.0/ │ ├── download_tflite_runtime-2.10.0-cp310-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.10.0-cp310-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.10.0-cp38-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.10.0-cp38-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.10.0-cp39-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.10.0-cp39-none-linux_armv7l.whl.sh ├── 2.10.0-rc1/ │ ├── download_tflite_runtime-2.10.0rc1-cp310-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.10.0rc1-cp310-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.10.0rc1-cp38-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.10.0rc1-cp38-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.10.0rc1-cp39-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.10.0rc1-cp39-none-linux_armv7l.whl.sh ├── 2.11.0/ │ ├── download_tflite_runtime-2.11.0-cp310-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.11.0-cp310-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.11.0-cp38-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.11.0-cp38-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.11.0-cp39-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.11.0-cp39-none-linux_armv7l.whl.sh ├── 2.12.0/ │ ├── download_tflite_runtime-2.12.0-cp310-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.12.0-cp310-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.12.0-cp311-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.12.0-cp311-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.12.0-cp38-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.12.0-cp38-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.12.0-cp39-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.12.0-cp39-none-linux_armv7l.whl.sh ├── 2.12.0-rc0/ │ ├── download_tflite_runtime-2.12.0rc0-cp310-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.12.0rc0-cp310-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.12.0rc0-cp311-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.12.0rc0-cp311-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.12.0rc0-cp38-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.12.0rc0-cp38-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.12.0rc0-cp39-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.12.0rc0-cp39-none-linux_armv7l.whl.sh ├── 2.15.0/ │ ├── download_tflite_runtime-2.15.0-cp310-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.15.0-cp310-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.15.0-cp311-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.15.0-cp311-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.15.0-cp39-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.15.0-cp39-none-linux_armv7l.whl.sh ├── 2.16.1/ │ ├── download_tflite_runtime-2.16.1-cp310-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.16.1-cp310-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.16.1-cp311-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.16.1-cp311-none-linux_armv7l.whl.sh ├── 2.2.0/ │ ├── tflite_runtime-2.2.0-cp35-cp35m-linux_aarch64.whl │ ├── tflite_runtime-2.2.0-cp35-cp35m-linux_armv7l.whl │ ├── tflite_runtime-2.2.0-cp36-cp36m-linux_aarch64.whl │ ├── tflite_runtime-2.2.0-cp36-cp36m-linux_armv7l.whl │ ├── tflite_runtime-2.2.0-cp37-cp37m-linux_aarch64.whl │ └── tflite_runtime-2.2.0-cp37-cp37m-linux_armv7l.whl ├── 2.2.0-rc0/ │ ├── tflite_runtime-2.2.0rc0-cp35-cp35m-linux_aarch64.whl │ ├── tflite_runtime-2.2.0rc0-cp35-cp35m-linux_armv7l.whl │ ├── tflite_runtime-2.2.0rc0-cp37-cp37m-linux_aarch64.whl │ └── tflite_runtime-2.2.0rc0-cp37-cp37m-linux_armv7l.whl ├── 2.2.0-rc1/ │ ├── tflite_runtime-2.2.0rc1-cp35-cp35m-linux_aarch64.whl │ ├── tflite_runtime-2.2.0rc1-cp35-cp35m-linux_armv7l.whl │ ├── tflite_runtime-2.2.0rc1-cp37-cp37m-linux_aarch64.whl │ └── tflite_runtime-2.2.0rc1-cp37-cp37m-linux_armv7l.whl ├── 2.2.0-rc2/ │ ├── tflite_runtime-2.2.0rc2-cp35-cp35m-linux_aarch64.whl │ ├── tflite_runtime-2.2.0rc2-cp35-cp35m-linux_armv7l.whl │ ├── tflite_runtime-2.2.0rc2-cp37-cp37m-linux_aarch64.whl │ └── tflite_runtime-2.2.0rc2-cp37-cp37m-linux_armv7l.whl ├── 2.2.0-rc3/ │ ├── tflite_runtime-2.2.0rc3-cp35-cp35m-linux_aarch64.whl │ ├── tflite_runtime-2.2.0rc3-cp35-cp35m-linux_armv7l.whl │ ├── tflite_runtime-2.2.0rc3-cp37-cp37m-linux_aarch64.whl │ └── tflite_runtime-2.2.0rc3-cp37-cp37m-linux_armv7l.whl ├── 2.2.0-rc4/ │ ├── tflite_runtime-2.2.0rc4-cp35-cp35m-linux_aarch64.whl │ ├── tflite_runtime-2.2.0rc4-cp35-cp35m-linux_armv7l.whl │ ├── tflite_runtime-2.2.0rc4-cp37-cp37m-linux_aarch64.whl │ └── tflite_runtime-2.2.0rc4-cp37-cp37m-linux_armv7l.whl ├── 2.3.0/ │ ├── download_tflite_runtime-2.3.0-py3-none-any.whl.sh │ ├── download_tflite_runtime-2.3.0-py3-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.3.0-py3-none-linux_armv7l.whl.sh ├── 2.3.0-rc0/ │ ├── download_tflite_runtime-2.3.0rc0-py3-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.3.0rc0-py3-none-linux_armv7l.whl.sh ├── 2.3.0-rc1/ │ ├── XNNPACK/ │ │ ├── FlexDelegate+XNNPACK │ │ ├── download_tflite_runtime-2.3.0rc1-py3-none-linux_aarch64.whl.sh │ │ └── download_tflite_runtime-2.3.0rc1-py3-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.3.0rc1-py3-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.3.0rc1-py3-none-linux_armv7l.whl.sh ├── 2.3.0-rc2/ │ ├── XNNPACK/ │ │ ├── FlexDelegate+XNNPACK │ │ ├── download_tflite_runtime-2.3.0rc2-py3-none-linux_aarch64.whl.sh │ │ └── download_tflite_runtime-2.3.0rc2-py3-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.3.0rc2-py3-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.3.0rc2-py3-none-linux_armv7l.whl.sh ├── 2.3.1/ │ ├── download_tflite_runtime-2.3.1-py3-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.3.1-py3-none-linux_armv7l.whl.sh ├── 2.4.0/ │ ├── BUILD │ ├── download_tflite_runtime-2.4.0-py3-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.4.0-py3-none-linux_armv7l.whl.sh ├── 2.4.0-rc1/ │ ├── download_tflite_runtime-2.4.0rc1-py3-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.4.0rc1-py3-none-linux_armv7l.whl.sh ├── 2.4.0-rc2/ │ ├── download_tflite_runtime-2.4.0rc2-py3-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.4.0rc2-py3-none-linux_armv7l.whl.sh ├── 2.4.0-rc3/ │ ├── download_tflite_runtime-2.4.0rc3-py3-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.4.0rc3-py3-none-linux_armv7l.whl.sh ├── 2.4.0-rc4/ │ ├── download_tflite_runtime-2.4.0rc4-py3-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.4.0rc4-py3-none-linux_armv7l.whl.sh ├── 2.4.1/ │ └── download_tflite_runtime-2.4.1-py3-none-any.whl.sh ├── 2.5.0/ │ ├── download_tflite_runtime-2.5.0-cp37-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.5.0-cp37-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.5.0-cp38-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.5.0-cp38-none-linux_armv7l.whl.sh ├── 2.5.0-rc0/ │ ├── download_tflite_runtime-2.5.0rc0-cp37-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.5.0rc0-cp37-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.5.0rc0-cp38-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.5.0rc0-cp38-none-linux_armv7l.whl.sh ├── 2.5.0-rc1/ │ ├── download_tflite_runtime-2.5.0rc1-cp37-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.5.0rc1-cp37-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.5.0rc1-cp38-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.5.0rc1-cp38-none-linux_armv7l.whl.sh ├── 2.5.0-rc2/ │ ├── download_tflite_runtime-2.5.0rc2-cp37-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.5.0rc2-cp37-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.5.0rc2-cp38-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.5.0rc2-cp38-none-linux_armv7l.whl.sh ├── 2.5.0-rc3/ │ ├── download_tflite_runtime-2.5.0rc2-cp37-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.5.0rc2-cp37-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.5.0rc2-cp38-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.5.0rc2-cp38-none-linux_armv7l.whl.sh ├── 2.6.0/ │ ├── download_tflite_runtime-2.6.0-cp37-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.6.0-cp37-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.6.0-cp38-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.6.0-cp38-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.6.0-cp39-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.6.0-cp39-none-linux_armv7l.whl.sh ├── 2.6.0-rc1/ │ ├── download_tflite_runtime-2.6.0rc1-cp37-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.6.0rc1-cp37-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.6.0rc1-cp38-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.6.0rc1-cp38-none-linux_armv7l.whl.sh │ └── download_tflite_runtime-2.6.0rc1-cp39-none-linux_aarch64.whl.sh ├── 2.7.0/ │ ├── download_tflite_runtime-2.7.0-cp37-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.7.0-cp37-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.7.0-cp38-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.7.0-cp38-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.7.0-cp39-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.7.0-cp39-none-linux_armv7l.whl.sh ├── 2.8.0/ │ ├── download_tflite_runtime-2.8.0-cp37-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.8.0-cp37-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.8.0-cp38-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.8.0-cp38-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.8.0-cp39-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.8.0-cp39-none-linux_armv7l.whl.sh ├── 2.9.0/ │ ├── download_tflite_runtime-2.9.0-cp310-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.9.0-cp310-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.9.0-cp37-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.9.0-cp37-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.9.0-cp38-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.9.0-cp38-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.9.0-cp39-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.9.0-cp39-none-linux_armv7l.whl.sh ├── 2.9.0-rc0/ │ ├── download_tflite_runtime-2.9.0rc0-cp37-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.9.0rc0-cp37-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.9.0rc0-cp38-none-linux_aarch64.whl.sh │ ├── download_tflite_runtime-2.9.0rc0-cp38-none-linux_armv7l.whl.sh │ ├── download_tflite_runtime-2.9.0rc0-cp39-none-linux_aarch64.whl.sh │ └── download_tflite_runtime-2.9.0rc0-cp39-none-linux_armv7l.whl.sh ├── LICENSE ├── README.md ├── label_image.py ├── labels.txt ├── mobilenetv2ssd-async-usbcam.py ├── mobilenetv2ssd-sync-usbcam.py ├── mobilenetv2ssd.py └── models/ ├── coco_labels.txt ├── mobilenet_ssd_v2_coco_quant_postprocess.tflite ├── mobilenet_ssd_v2_coco_quant_postprocess_edgetpu.tflite ├── mobilenet_v2_1.0_224_quant.tflite ├── scripts.txt ├── ssdlite_mobilenet_v2_voc_300_integer_quant_with_postprocess.tflite └── tflite_graph.pb ================================================ FILE CONTENTS ================================================ ================================================ FILE: .github/FUNDING.yml ================================================ # These are supported funding model platforms github: PINTO0309 patreon: # Replace with a single Patreon username open_collective: # Replace with a single Open Collective username ko_fi: # Replace with a single Ko-fi username tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry liberapay: # Replace with a single Liberapay username issuehunt: # Replace with a single IssueHunt username otechie: # Replace with a single Otechie username custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] ================================================ FILE: .github/ISSUE_TEMPLATE/config.yml ================================================ blank_issues_enabled: false ================================================ FILE: .github/ISSUE_TEMPLATE/issue_template.yml ================================================ name: Issue description: Miscellaneous issues are closed immediately. If you have no intention of returning useful information to the community, you have no right to post an issue here. Please withdraw. body: - type: markdown attributes: value: | Anything that does not follow the issue template will be closed immediately. - type: dropdown id: issue-type attributes: label: Issue Type description: What type of issue would you like to report? multiple: true options: - Bug - Performance - Support - Feature Request - Documentation Feature Request - Documentation Bug - Others validations: required: true - type: dropdown id: Operating-System attributes: label: OS description: What OS are you seeing the issue in? If you don't see your OS listed, please provide more details in the "Description" section above. multiple: true options: - RaspberryPi OS Buster - RaspberryPi OS Stretch - Debian Buster - Debian Stretch - Ubuntu 21.04 - Ubuntu 20.04 - Ubuntu 18.04 - Other validations: required: true - type: dropdown id: Operating-System-Architecture attributes: label: OS architecture description: If you don't see your architecture listed, please provide more details in the "Description" section above. multiple: true options: - aarch64 - armv7 - Other validations: required: true - type: dropdown id: Hardware attributes: label: Hardware description: If you don't see your device listed, please provide more details in the "Description" section above. multiple: true options: - RaspberryPi4 - RaspberryPi3 - RaspberryPi Zero - Other validations: required: true - type: textarea id: what-happened attributes: label: Description description: Please describe the current and expected behaviour, and attach all files/info needed to reproduce the issue if applicable. validations: required: true - type: textarea id: logs attributes: label: Relevant Log Output description: Please copy and paste any relevant log output. This will be automatically formatted into code. render: shell validations: required: true ================================================ FILE: 2.0.0/cpp-android-arm64-v8a/build_script.txt ================================================ ### https://github.com/tensorflow/tensorflow/issues/33959#issuecomment-549333589 bazel build \ -s //tensorflow/lite:libtensorflowlite.so \ --config=android_arm64 \ --cxxopt='--std=c++11' \ -c opt \ --config=v2 ================================================ FILE: 2.0.0/cpp-armv7l_glibc2.28/build-script.txt ================================================ $ ~ $ git clone https://github.com/buchgr/bazel-remote.git $ cd bazel-remote $ sudo docker pull buchgr/bazel-remote-cache $ sudo docker run -v ${HOME}/bazel-remote/cache:/data -p 9090:8080 buchgr/bazel-remote-cache $ sudo bazel clean $ cd tensorflow/lite $ sudo bazel build \ --config=opt \ --config=noaws \ --config=nohdfs \ --config=noignite \ --config=nokafka \ --config=nonccl \ --config=v2 \ --remote_http_cache=http://localhost:9090 \ //tensorflow/lite:libtensorflowlite.so ================================================ FILE: 2.0.0/cpp-armv7l_glibc2.28/download_tensorflowlite_2.0.0_armv7l.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1WJt_TSy2YA45d5VwbPLwUN6WN1LagePM" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1WJt_TSy2YA45d5VwbPLwUN6WN1LagePM" -o libtensorflowlite.so echo Download finished. ================================================ FILE: 2.0.0/cpp-flexdelegate-armv7l_glibc2.28/download_tensorflowlite_2.0.0_flexdelegate_armv7l.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1zKc06oMkCdV1fK2o5B3HKWSNua3E_wAg" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1zKc06oMkCdV1fK2o5B3HKWSNua3E_wAg" -o libtensorflowlite.so echo Download finished. ================================================ FILE: 2.0.0/cpp-flexdelegate-x86_64_glibc2.27/download_tensorflowlite_2.0.0_flexdelegate_x86_64.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1_gYv7CA-AQaDxzuRC6oymExYB52p-rDd" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1_gYv7CA-AQaDxzuRC6oymExYB52p-rDd" -o libtensorflowlite.so echo Download finished. ================================================ FILE: 2.0.0/cpp-x86_64_glibc2.27/build-script.txt ================================================ $ ~ $ git clone https://github.com/buchgr/bazel-remote.git $ cd bazel-remote $ sudo docker pull buchgr/bazel-remote-cache $ sudo docker run -v ${HOME}/bazel-remote/cache:/data -p 9090:8080 buchgr/bazel-remote-cache $ sudo bazel clean $ cd tensorflow/lite $ sudo bazel build \ --config=opt \ --config=noaws \ --config=nohdfs \ --config=noignite \ --config=nokafka \ --config=nonccl \ --config=v2 \ --remote_http_cache=http://localhost:9090 \ //tensorflow/lite:libtensorflowlite.so ================================================ FILE: 2.0.0/cpp-x86_64_glibc2.27/download_tensorflowlite_2.0.0_x86_64.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1cmAXrqedkB3alINWhc8n_YVNo4UZ1mBP" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1cmAXrqedkB3alINWhc8n_YVNo4UZ1mBP" -o libtensorflowlite.so echo Download finished. ================================================ FILE: 2.0.0/java-android-x86_x86_64_arm64-v8a_armeabi-v7a/build_script.txt ================================================ ### https://www.tensorflow.org/lite/guide/android ### https://github.com/tensorflow/tensorflow/issues/33959#issuecomment-549333589 bazel build --cxxopt='-std=c++11' -c opt \ --fat_apk_cpu=x86,x86_64,arm64-v8a,armeabi-v7a \ //tensorflow/lite/java:tensorflow-lite ================================================ FILE: 2.0.0/java-android-x86_x86_64_arm64-v8a_armeabi-v7a/tensorflow-lite_generated_AndroidManifest.xml ================================================ ================================================ FILE: 2.1.0/cpp-flexdelegate-aarch64_glibc2.28/download_debian_buster_aarch64_libtensorflowlite.so.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1NSeuTEtq9wuWUyZFfYVbWMDFWQ4ZNubp" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1NSeuTEtq9wuWUyZFfYVbWMDFWQ4ZNubp" -o libtensorflowlite.so echo Download finished. ================================================ FILE: 2.1.0/cpp-flexdelegate-aarch64_glibc2.30/download_ubuntu_1910_aarch64_libtensorflowlite.so.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1D2o_BXU7PexYrglqFwhU_GUXDu8ZW7Fp" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1D2o_BXU7PexYrglqFwhU_GUXDu8ZW7Fp" -o libtensorflowlite.so echo Download finished. ================================================ FILE: 2.1.0/cpp-flexdelegate-armhf_glibc2.28/download_debian_buster_armhf_libtensorflowlite.so.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1InUchwSZa3RTTfDwZU-6kMxgfkInUaZ1" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1InUchwSZa3RTTfDwZU-6kMxgfkInUaZ1" -o libtensorflowlite.so echo Download finished. ================================================ FILE: 2.10.0/download_tflite_runtime-2.10.0-cp310-none-linux_aarch64.whl.sh ================================================ #!/bin/bash TFVER=2.10.0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp310-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.10.0/download_tflite_runtime-2.10.0-cp310-none-linux_armv7l.whl.sh ================================================ #!/bin/bash TFVER=2.10.0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp310-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.10.0/download_tflite_runtime-2.10.0-cp38-none-linux_aarch64.whl.sh ================================================ #!/bin/bash TFVER=2.10.0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp38-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.10.0/download_tflite_runtime-2.10.0-cp38-none-linux_armv7l.whl.sh ================================================ #!/bin/bash TFVER=2.10.0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp38-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.10.0/download_tflite_runtime-2.10.0-cp39-none-linux_aarch64.whl.sh ================================================ #!/bin/bash TFVER=2.10.0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp39-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.10.0/download_tflite_runtime-2.10.0-cp39-none-linux_armv7l.whl.sh ================================================ #!/bin/bash TFVER=2.10.0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp39-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.10.0-rc1/download_tflite_runtime-2.10.0rc1-cp310-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.10.0-rc1/tflite_runtime-2.10.0rc1-cp310-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.10.0-rc1/download_tflite_runtime-2.10.0rc1-cp310-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.10.0-rc1/tflite_runtime-2.10.0rc1-cp310-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.10.0-rc1/download_tflite_runtime-2.10.0rc1-cp38-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.10.0-rc1/tflite_runtime-2.10.0rc1-cp38-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.10.0-rc1/download_tflite_runtime-2.10.0rc1-cp38-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.10.0-rc1/tflite_runtime-2.10.0rc1-cp38-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.10.0-rc1/download_tflite_runtime-2.10.0rc1-cp39-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.10.0-rc1/tflite_runtime-2.10.0rc1-cp39-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.10.0-rc1/download_tflite_runtime-2.10.0rc1-cp39-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.10.0-rc1/tflite_runtime-2.10.0rc1-cp39-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.11.0/download_tflite_runtime-2.11.0-cp310-none-linux_aarch64.whl.sh ================================================ #!/bin/bash TFVER=2.11.0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp310-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.11.0/download_tflite_runtime-2.11.0-cp310-none-linux_armv7l.whl.sh ================================================ #!/bin/bash TFVER=2.11.0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp310-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.11.0/download_tflite_runtime-2.11.0-cp38-none-linux_aarch64.whl.sh ================================================ #!/bin/bash TFVER=2.11.0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp38-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.11.0/download_tflite_runtime-2.11.0-cp38-none-linux_armv7l.whl.sh ================================================ #!/bin/bash TFVER=2.11.0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp38-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.11.0/download_tflite_runtime-2.11.0-cp39-none-linux_aarch64.whl.sh ================================================ #!/bin/bash TFVER=2.11.0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp39-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.11.0/download_tflite_runtime-2.11.0-cp39-none-linux_armv7l.whl.sh ================================================ #!/bin/bash TFVER=2.11.0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp39-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.12.0/download_tflite_runtime-2.12.0-cp310-none-linux_aarch64.whl.sh ================================================ #!/bin/bash TFVER=2.12.0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp310-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.12.0/download_tflite_runtime-2.12.0-cp310-none-linux_armv7l.whl.sh ================================================ #!/bin/bash TFVER=2.12.0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp310-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.12.0/download_tflite_runtime-2.12.0-cp311-none-linux_aarch64.whl.sh ================================================ #!/bin/bash TFVER=2.12.0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp311-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.12.0/download_tflite_runtime-2.12.0-cp311-none-linux_armv7l.whl.sh ================================================ #!/bin/bash TFVER=2.12.0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp311-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.12.0/download_tflite_runtime-2.12.0-cp38-none-linux_aarch64.whl.sh ================================================ #!/bin/bash TFVER=2.12.0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp38-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.12.0/download_tflite_runtime-2.12.0-cp38-none-linux_armv7l.whl.sh ================================================ #!/bin/bash TFVER=2.12.0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp38-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.12.0/download_tflite_runtime-2.12.0-cp39-none-linux_aarch64.whl.sh ================================================ #!/bin/bash TFVER=2.12.0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp39-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.12.0/download_tflite_runtime-2.12.0-cp39-none-linux_armv7l.whl.sh ================================================ #!/bin/bash TFVER=2.12.0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp39-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.12.0-rc0/download_tflite_runtime-2.12.0rc0-cp310-none-linux_aarch64.whl.sh ================================================ #!/bin/bash TFVER=2.12.0-rc0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp310-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.12.0-rc0/download_tflite_runtime-2.12.0rc0-cp310-none-linux_armv7l.whl.sh ================================================ #!/bin/bash TFVER=2.12.0-rc0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp310-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.12.0-rc0/download_tflite_runtime-2.12.0rc0-cp311-none-linux_aarch64.whl.sh ================================================ #!/bin/bash TFVER=2.12.0-rc0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp311-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.12.0-rc0/download_tflite_runtime-2.12.0rc0-cp311-none-linux_armv7l.whl.sh ================================================ #!/bin/bash TFVER=2.12.0-rc0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp311-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.12.0-rc0/download_tflite_runtime-2.12.0rc0-cp38-none-linux_aarch64.whl.sh ================================================ #!/bin/bash TFVER=2.12.0-rc0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp38-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.12.0-rc0/download_tflite_runtime-2.12.0rc0-cp38-none-linux_armv7l.whl.sh ================================================ #!/bin/bash TFVER=2.12.0-rc0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp38-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.12.0-rc0/download_tflite_runtime-2.12.0rc0-cp39-none-linux_aarch64.whl.sh ================================================ #!/bin/bash TFVER=2.12.0-rc0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp39-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.12.0-rc0/download_tflite_runtime-2.12.0rc0-cp39-none-linux_armv7l.whl.sh ================================================ #!/bin/bash TFVER=2.12.0-rc0 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp39-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.15.0/download_tflite_runtime-2.15.0-cp310-none-linux_aarch64.whl.sh ================================================ #!/bin/bash TFVER=2.15.0.post1 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp310-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.15.0/download_tflite_runtime-2.15.0-cp310-none-linux_armv7l.whl.sh ================================================ #!/bin/bash TFVER=2.15.0.post1 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp310-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.15.0/download_tflite_runtime-2.15.0-cp311-none-linux_aarch64.whl.sh ================================================ #!/bin/bash TFVER=2.15.0.post1 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp311-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.15.0/download_tflite_runtime-2.15.0-cp311-none-linux_armv7l.whl.sh ================================================ #!/bin/bash TFVER=2.15.0.post1 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp311-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.15.0/download_tflite_runtime-2.15.0-cp39-none-linux_aarch64.whl.sh ================================================ #!/bin/bash TFVER=2.15.0.post1 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp39-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.15.0/download_tflite_runtime-2.15.0-cp39-none-linux_armv7l.whl.sh ================================================ #!/bin/bash TFVER=2.15.0.post1 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp39-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.16.1/download_tflite_runtime-2.16.1-cp310-none-linux_aarch64.whl.sh ================================================ #!/bin/bash TFVER=2.16.1 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp310-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.16.1/download_tflite_runtime-2.16.1-cp310-none-linux_armv7l.whl.sh ================================================ #!/bin/bash TFVER=2.16.1 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp310-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.16.1/download_tflite_runtime-2.16.1-cp311-none-linux_aarch64.whl.sh ================================================ #!/bin/bash TFVER=2.16.1 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp311-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.16.1/download_tflite_runtime-2.16.1-cp311-none-linux_armv7l.whl.sh ================================================ #!/bin/bash TFVER=2.16.1 curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp311-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.3.0/download_tflite_runtime-2.3.0-py3-none-any.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1Pi5xKtfmTt-wm6R28RWNjnyH10Ce1qWr" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1Pi5xKtfmTt-wm6R28RWNjnyH10Ce1qWr" -o tflite_runtime-2.3.0-py3-none-any.whl echo Download finished. ================================================ FILE: 2.3.0/download_tflite_runtime-2.3.0-py3-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1sQq7UMElMw4UwXhYJ0WWMPYG05ef6GAp" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1sQq7UMElMw4UwXhYJ0WWMPYG05ef6GAp" -o tflite_runtime-2.3.0-py3-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.3.0/download_tflite_runtime-2.3.0-py3-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1TO0l6zH080WSFU50GJpeMjWhpaofdljn" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1TO0l6zH080WSFU50GJpeMjWhpaofdljn" -o tflite_runtime-2.3.0-py3-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.3.0-rc0/download_tflite_runtime-2.3.0rc0-py3-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=18WoX3HJUzAdV08yq7yeoCyDpOxmIzsk2" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=18WoX3HJUzAdV08yq7yeoCyDpOxmIzsk2" -o tflite_runtime-2.3.0rc0-py3-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.3.0-rc0/download_tflite_runtime-2.3.0rc0-py3-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=17edK6aEzUKYSzhOMYmJpxBZpDs-dSaE6" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=17edK6aEzUKYSzhOMYmJpxBZpDs-dSaE6" -o tflite_runtime-2.3.0rc0-py3-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.3.0-rc1/XNNPACK/FlexDelegate+XNNPACK ================================================ ================================================ FILE: 2.3.0-rc1/XNNPACK/download_tflite_runtime-2.3.0rc1-py3-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1OG1RZrDmxCpRsvh66nAlkAgzvA_d3jEm" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1OG1RZrDmxCpRsvh66nAlkAgzvA_d3jEm" -o tflite_runtime-2.3.0rc1-py3-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.3.0-rc1/XNNPACK/download_tflite_runtime-2.3.0rc1-py3-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1J-zrEvvXtH1LAotuU0iIuRnhxHKV-DlN" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1J-zrEvvXtH1LAotuU0iIuRnhxHKV-DlN" -o tflite_runtime-2.3.0rc1-py3-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.3.0-rc1/download_tflite_runtime-2.3.0rc1-py3-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1dWNIvUdqD1Y2qQJx0xE0tvI_V-izIv3B" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1dWNIvUdqD1Y2qQJx0xE0tvI_V-izIv3B" -o tflite_runtime-2.3.0rc1-py3-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.3.0-rc1/download_tflite_runtime-2.3.0rc1-py3-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1YbiygQ2XliCE18LfPgPeAqKIAXkephFJ" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1YbiygQ2XliCE18LfPgPeAqKIAXkephFJ" -o tflite_runtime-2.3.0rc1-py3-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.3.0-rc2/XNNPACK/FlexDelegate+XNNPACK ================================================ ================================================ FILE: 2.3.0-rc2/XNNPACK/download_tflite_runtime-2.3.0rc2-py3-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1j_iQtVfFOlsHSlyYcbIj3k9oe07H4wfE" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1j_iQtVfFOlsHSlyYcbIj3k9oe07H4wfE" -o tflite_runtime-2.3.0rc2-py3-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.3.0-rc2/XNNPACK/download_tflite_runtime-2.3.0rc2-py3-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1boc96D7YifP1uZq8KXP3PoDKN7I5EiJs" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1boc96D7YifP1uZq8KXP3PoDKN7I5EiJs" -o tflite_runtime-2.3.0rc2-py3-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.3.0-rc2/download_tflite_runtime-2.3.0rc2-py3-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1kxzStmGqSbPrxXbd6PDTzW9sqyzEVUAs" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1kxzStmGqSbPrxXbd6PDTzW9sqyzEVUAs" -o tflite_runtime-2.3.0rc2-py3-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.3.0-rc2/download_tflite_runtime-2.3.0rc2-py3-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1PzK0_gJ9lOUPG7iNkztZUzqEMm837H5J" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1PzK0_gJ9lOUPG7iNkztZUzqEMm837H5J" -o tflite_runtime-2.3.0rc2-py3-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.3.1/download_tflite_runtime-2.3.1-py3-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1VEFZbY9nG2D83C11OgK2KqnXw-FOVAj3" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1VEFZbY9nG2D83C11OgK2KqnXw-FOVAj3" -o tflite_runtime-2.3.1-py3-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.3.1/download_tflite_runtime-2.3.1-py3-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1NVidFWHvnvFDXwyExbc2TqY49A-kR1xM" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1NVidFWHvnvFDXwyExbc2TqY49A-kR1xM" -o tflite_runtime-2.3.1-py3-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.4.0/BUILD ================================================ cc_library( name = "builtin_op_kernels", srcs = BUILTIN_KERNEL_SRCS + [ "max_pool_argmax.cc", "max_unpooling.cc", "transpose_conv_bias.cc", ], hdrs = [ "dequantize.h", "max_pool_argmax.h", "max_unpooling.h", "transpose_conv_bias.h", ], compatible_with = get_compatible_with_portable(), copts = tflite_copts() + tf_opts_nortti_if_android() + EXTRA_EIGEN_COPTS, visibility = ["//visibility:private"], deps = BUILTIN_KERNEL_DEPS + [ "@ruy//ruy/profiler:instrumentation", "//tensorflow/lite/kernels/internal:cppmath", "//tensorflow/lite:string", "@farmhash_archive//:farmhash", ], ) ================================================ FILE: 2.4.0/download_tflite_runtime-2.4.0-py3-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=18GkcYrthUUhukWYuRO_S5ns5mJ9kaiG0" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=18GkcYrthUUhukWYuRO_S5ns5mJ9kaiG0" -o tflite_runtime-2.4.0-py3-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.4.0/download_tflite_runtime-2.4.0-py3-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1-tckHmUvnoE8YXB3nraS5liK5m1KkPXz" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1-tckHmUvnoE8YXB3nraS5liK5m1KkPXz" -o tflite_runtime-2.4.0-py3-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.4.0-rc1/download_tflite_runtime-2.4.0rc1-py3-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1TO5bWISQFtmjfEc3RzH_vsekiWYsTubV" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1TO5bWISQFtmjfEc3RzH_vsekiWYsTubV" -o tflite_runtime-2.4.0rc1-py3-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.4.0-rc1/download_tflite_runtime-2.4.0rc1-py3-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1RKpx55pWZUg0d3l83-dnAoJGqb1GZx01" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1RKpx55pWZUg0d3l83-dnAoJGqb1GZx01" -o tflite_runtime-2.4.0rc1-py3-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.4.0-rc2/download_tflite_runtime-2.4.0rc2-py3-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1yYoR6jz3FzHvpiUeTNLAsVloJzcE0FtR" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1yYoR6jz3FzHvpiUeTNLAsVloJzcE0FtR" -o tflite_runtime-2.4.0rc2-py3-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.4.0-rc2/download_tflite_runtime-2.4.0rc2-py3-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1l-VqQvsS-yoqoArM8-0wDCgTxwDbwBYw" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1l-VqQvsS-yoqoArM8-0wDCgTxwDbwBYw" -o tflite_runtime-2.4.0rc2-py3-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.4.0-rc3/download_tflite_runtime-2.4.0rc3-py3-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1H2CnjyJJSGFCSeEyg-aPAfquN-B-Q1c6" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1H2CnjyJJSGFCSeEyg-aPAfquN-B-Q1c6" -o tflite_runtime-2.4.0rc3-py3-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.4.0-rc3/download_tflite_runtime-2.4.0rc3-py3-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=16v7eD7xeLodHtU__jkRoVI4R1DGS5XtP" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=16v7eD7xeLodHtU__jkRoVI4R1DGS5XtP" -o tflite_runtime-2.4.0rc3-py3-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.4.0-rc4/download_tflite_runtime-2.4.0rc4-py3-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=11gLW6mFcMX8cQjNPJhxFrrZ-4Zyzqzbg" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=11gLW6mFcMX8cQjNPJhxFrrZ-4Zyzqzbg" -o tflite_runtime-2.4.0rc4-py3-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.4.0-rc4/download_tflite_runtime-2.4.0rc4-py3-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1N4gOnuwNUKYM_0qoHZSKx4yVbKLtS-DV" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1N4gOnuwNUKYM_0qoHZSKx4yVbKLtS-DV" -o tflite_runtime-2.4.0rc4-py3-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.4.1/download_tflite_runtime-2.4.1-py3-none-any.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1fZZYSgB8X9f-AAzfUJ60jdlgl6OXWQii" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1fZZYSgB8X9f-AAzfUJ60jdlgl6OXWQii" -o tflite_runtime-2.4.0-py3-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.5.0/download_tflite_runtime-2.5.0-cp37-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1FvtLZSZFQmV5Ars8BBYFnZIX4X7jg1lA" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1FvtLZSZFQmV5Ars8BBYFnZIX4X7jg1lA" -o tflite_runtime-2.5.0-cp37-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.5.0/download_tflite_runtime-2.5.0-cp37-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1VyUX4HTrPE9-xuEbl3gclaN_CHD9sfWA" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1VyUX4HTrPE9-xuEbl3gclaN_CHD9sfWA" -o tflite_runtime-2.5.0-cp37-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.5.0/download_tflite_runtime-2.5.0-cp38-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1gO5IAN3JpdMj0cB8-w_uJcr2_gaX5XW6" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1gO5IAN3JpdMj0cB8-w_uJcr2_gaX5XW6" -o tflite_runtime-2.5.0-cp38-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.5.0/download_tflite_runtime-2.5.0-cp38-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=16i_bBRhEldAPou1t1aJLsl351i-MsuGt" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=16i_bBRhEldAPou1t1aJLsl351i-MsuGt" -o tflite_runtime-2.5.0-cp38-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.5.0-rc0/download_tflite_runtime-2.5.0rc0-cp37-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=15kbKiyCpY_PPkjCbRcChztujRbBlbazS" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=15kbKiyCpY_PPkjCbRcChztujRbBlbazS" -o tflite_runtime-2.5.0rc0-cp37-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.5.0-rc0/download_tflite_runtime-2.5.0rc0-cp37-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1nhbLPtL-wzxUbEL_6-cpIgLrvw9ifLRh" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1nhbLPtL-wzxUbEL_6-cpIgLrvw9ifLRh" -o tflite_runtime-2.5.0rc0-cp37-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.5.0-rc0/download_tflite_runtime-2.5.0rc0-cp38-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1SJkbMZZhJVd0Y9mMo4jfWgCeB1wIpkD9" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1SJkbMZZhJVd0Y9mMo4jfWgCeB1wIpkD9" -o tflite_runtime-2.5.0rc0-cp38-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.5.0-rc0/download_tflite_runtime-2.5.0rc0-cp38-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1dbvHkCRHheJr2FiKb73yg0iaJwrX94Ff" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1dbvHkCRHheJr2FiKb73yg0iaJwrX94Ff" -o tflite_runtime-2.5.0rc0-cp38-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.5.0-rc1/download_tflite_runtime-2.5.0rc1-cp37-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1nooXpZMoXNo45XqgY6YEsbKid5w1R8dm" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1nooXpZMoXNo45XqgY6YEsbKid5w1R8dm" -o tflite_runtime-2.5.0rc1-cp37-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.5.0-rc1/download_tflite_runtime-2.5.0rc1-cp37-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1Qi841ocSNMIcsYF6-hSJYqT-jr3Jrz3u" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1Qi841ocSNMIcsYF6-hSJYqT-jr3Jrz3u" -o tflite_runtime-2.5.0rc1-cp37-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.5.0-rc1/download_tflite_runtime-2.5.0rc1-cp38-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1O8fB1nLLXssVaRHg9mGFO97KAyBrtUf0" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1O8fB1nLLXssVaRHg9mGFO97KAyBrtUf0" -o tflite_runtime-2.5.0rc1-cp38-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.5.0-rc1/download_tflite_runtime-2.5.0rc1-cp38-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1LcxeYlCw0UF8vxP6T2aW0g4MWVaAbxWj" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1LcxeYlCw0UF8vxP6T2aW0g4MWVaAbxWj" -o tflite_runtime-2.5.0rc1-cp38-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.5.0-rc2/download_tflite_runtime-2.5.0rc2-cp37-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1MPhLf3FPgigCQoX3PK9LFDSks2Vh2wov" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1MPhLf3FPgigCQoX3PK9LFDSks2Vh2wov" -o tflite_runtime-2.5.0rc2-cp37-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.5.0-rc2/download_tflite_runtime-2.5.0rc2-cp37-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1urtaraaPjnozaUKDSiCyBNUmw1T8rguM" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1urtaraaPjnozaUKDSiCyBNUmw1T8rguM" -o tflite_runtime-2.5.0rc2-cp37-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.5.0-rc2/download_tflite_runtime-2.5.0rc2-cp38-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1R8cFp--EH8Yu7KfZyBn6mswGG6KWRqL3" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1R8cFp--EH8Yu7KfZyBn6mswGG6KWRqL3" -o tflite_runtime-2.5.0rc2-cp38-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.5.0-rc2/download_tflite_runtime-2.5.0rc2-cp38-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=14nC9TEwxC5e9koz8_JweCImj8JzFj3v3" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=14nC9TEwxC5e9koz8_JweCImj8JzFj3v3" -o tflite_runtime-2.5.0rc2-cp38-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.5.0-rc3/download_tflite_runtime-2.5.0rc2-cp37-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=19c7psJ9JSwivM2EQezM8UacBea-WY6_R" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=19c7psJ9JSwivM2EQezM8UacBea-WY6_R" -o tflite_runtime-2.5.0rc3-cp37-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.5.0-rc3/download_tflite_runtime-2.5.0rc2-cp37-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1L_jAm1U3soa6B9SX0L01mAt2rXfMCmxU" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1L_jAm1U3soa6B9SX0L01mAt2rXfMCmxU" -o tflite_runtime-2.5.0rc3-cp37-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.5.0-rc3/download_tflite_runtime-2.5.0rc2-cp38-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1dNuIPXcWX__c1UR70rvMwEXY3E19acQ3" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1dNuIPXcWX__c1UR70rvMwEXY3E19acQ3" -o tflite_runtime-2.5.0rc3-cp38-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.5.0-rc3/download_tflite_runtime-2.5.0rc2-cp38-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=18qccamitnE4G3TkJHPM3AK6inl_bhPbY" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=18qccamitnE4G3TkJHPM3AK6inl_bhPbY" -o tflite_runtime-2.5.0rc3-cp38-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.6.0/download_tflite_runtime-2.6.0-cp37-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1dlEbugFDJXs-YDBCUC6WjADVtIttWxZA" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1dlEbugFDJXs-YDBCUC6WjADVtIttWxZA" -o tflite_runtime-2.6.0-cp37-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.6.0/download_tflite_runtime-2.6.0-cp37-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1spTTF8tquh90GHoZnfyUkZPBOD6oOrPd" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1spTTF8tquh90GHoZnfyUkZPBOD6oOrPd" -o tflite_runtime-2.6.0-cp37-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.6.0/download_tflite_runtime-2.6.0-cp38-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1oHHjgVRzV2kKCfmxVD_L_qdAdAbHFuKZ" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1oHHjgVRzV2kKCfmxVD_L_qdAdAbHFuKZ" -o tflite_runtime-2.6.0-cp38-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.6.0/download_tflite_runtime-2.6.0-cp38-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1Q5NWrZDDlsi7b8UJOdpFAAkkdE53TemP" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1Q5NWrZDDlsi7b8UJOdpFAAkkdE53TemP" -o tflite_runtime-2.6.0-cp38-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.6.0/download_tflite_runtime-2.6.0-cp39-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=11kxTWwkGfjHAY7TW337xS6PmR4MLPKWx" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=11kxTWwkGfjHAY7TW337xS6PmR4MLPKWx" -o tflite_runtime-2.6.0-cp39-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.6.0/download_tflite_runtime-2.6.0-cp39-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=125ipZr8M66YF0_gXSONpJZoB5XXnf9jz" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=125ipZr8M66YF0_gXSONpJZoB5XXnf9jz" -o tflite_runtime-2.6.0-cp39-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.6.0-rc1/download_tflite_runtime-2.6.0rc1-cp37-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=14oh06MoWluyxGobayMkjEg-rpdLHdQUb" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=14oh06MoWluyxGobayMkjEg-rpdLHdQUb" -o tflite_runtime-2.6.0rc1-cp37-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.6.0-rc1/download_tflite_runtime-2.6.0rc1-cp37-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1_1eC0NCXnoVeNhxoSVHtS_YsKxfwHm_T" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1_1eC0NCXnoVeNhxoSVHtS_YsKxfwHm_T" -o tflite_runtime-2.6.0rc1-cp37-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.6.0-rc1/download_tflite_runtime-2.6.0rc1-cp38-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1OHqBgV5yCf3JDT3PCt3oiPpt1-NJU0vG" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1OHqBgV5yCf3JDT3PCt3oiPpt1-NJU0vG" -o tflite_runtime-2.6.0rc1-cp38-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.6.0-rc1/download_tflite_runtime-2.6.0rc1-cp38-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1eoQ4pw3MRG7TbJ1jvL174sdgmacvUpvo" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1eoQ4pw3MRG7TbJ1jvL174sdgmacvUpvo" -o tflite_runtime-2.6.0rc1-cp38-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.6.0-rc1/download_tflite_runtime-2.6.0rc1-cp39-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1lBo9Ou5UdGWqawjWM25gXhzoVuREJVpm" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1lBo9Ou5UdGWqawjWM25gXhzoVuREJVpm" -o tflite_runtime-2.6.0rc1-cp39-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.7.0/download_tflite_runtime-2.7.0-cp37-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1BMuVqI0RTg_DvvQbIZwCxeY5d5-yFSTN" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1BMuVqI0RTg_DvvQbIZwCxeY5d5-yFSTN" -o tflite_runtime-2.7.0-cp37-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.7.0/download_tflite_runtime-2.7.0-cp37-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1Z5PdWC28bh04F-NQwC8zx1JvUtPpE_nT" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1Z5PdWC28bh04F-NQwC8zx1JvUtPpE_nT" -o tflite_runtime-2.7.0-cp37-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.7.0/download_tflite_runtime-2.7.0-cp38-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1mSv2tccMKAUEygk29V4Yrw_L1IU32NjP" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1mSv2tccMKAUEygk29V4Yrw_L1IU32NjP" -o tflite_runtime-2.7.0-cp38-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.7.0/download_tflite_runtime-2.7.0-cp38-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1E79c2jJ5rmAd-ccSZOwJu6pvOObOQl6D" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1E79c2jJ5rmAd-ccSZOwJu6pvOObOQl6D" -o tflite_runtime-2.7.0-cp38-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.7.0/download_tflite_runtime-2.7.0-cp39-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=12F2q4VaFhNlS2jArl-WpVwtUr3pkVXyH" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=12F2q4VaFhNlS2jArl-WpVwtUr3pkVXyH" -o tflite_runtime-2.7.0-cp39-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.7.0/download_tflite_runtime-2.7.0-cp39-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=1KDzvJEeTM6u5onA9EgtW_YW1DRgnP-Wu" > /dev/null CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)" curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=1KDzvJEeTM6u5onA9EgtW_YW1DRgnP-Wu" -o tflite_runtime-2.7.0-cp39-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.8.0/download_tflite_runtime-2.8.0-cp37-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -L https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.8.0/tflite_runtime-2.8.0-cp37-none-linux_aarch64.whl -o tflite_runtime-2.8.0-cp37-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.8.0/download_tflite_runtime-2.8.0-cp37-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -L https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.8.0/tflite_runtime-2.8.0-cp37-none-linux_armv7l.whl -o tflite_runtime-2.8.0-cp37-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.8.0/download_tflite_runtime-2.8.0-cp38-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -L https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.8.0/tflite_runtime-2.8.0-cp38-none-linux_aarch64.whl -o tflite_runtime-2.8.0-cp38-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.8.0/download_tflite_runtime-2.8.0-cp38-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -L https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.8.0/tflite_runtime-2.8.0-cp38-none-linux_armv7l.whl -o tflite_runtime-2.8.0-cp38-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.8.0/download_tflite_runtime-2.8.0-cp39-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -L https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.8.0/tflite_runtime-2.8.0-cp39-none-linux_aarch64.whl -o tflite_runtime-2.8.0-cp39-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.8.0/download_tflite_runtime-2.8.0-cp39-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -L https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.8.0/tflite_runtime-2.8.0-cp39-none-linux_armv7l.whl -o tflite_runtime-2.8.0-cp39-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.9.0/download_tflite_runtime-2.9.0-cp310-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.9.0/tflite_runtime-2.9.0-cp310-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.9.0/download_tflite_runtime-2.9.0-cp310-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.9.0/tflite_runtime-2.9.0-cp310-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.9.0/download_tflite_runtime-2.9.0-cp37-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.9.0/tflite_runtime-2.9.0-cp37-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.9.0/download_tflite_runtime-2.9.0-cp37-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.9.0/tflite_runtime-2.9.0-cp37-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.9.0/download_tflite_runtime-2.9.0-cp38-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.9.0/tflite_runtime-2.9.0-cp38-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.9.0/download_tflite_runtime-2.9.0-cp38-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.9.0/tflite_runtime-2.9.0-cp38-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.9.0/download_tflite_runtime-2.9.0-cp39-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.9.0/tflite_runtime-2.9.0-cp39-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.9.0/download_tflite_runtime-2.9.0-cp39-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.9.0/tflite_runtime-2.9.0-cp39-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.9.0-rc0/download_tflite_runtime-2.9.0rc0-cp37-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.9.0-rc0/tflite_runtime-2.9.0rc0-cp37-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.9.0-rc0/download_tflite_runtime-2.9.0rc0-cp37-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.9.0-rc0/tflite_runtime-2.9.0rc0-cp37-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.9.0-rc0/download_tflite_runtime-2.9.0rc0-cp38-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.9.0-rc0/tflite_runtime-2.9.0rc0-cp38-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.9.0-rc0/download_tflite_runtime-2.9.0rc0-cp38-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.9.0-rc0/tflite_runtime-2.9.0rc0-cp38-none-linux_armv7l.whl echo Download finished. ================================================ FILE: 2.9.0-rc0/download_tflite_runtime-2.9.0rc0-cp39-none-linux_aarch64.whl.sh ================================================ #!/bin/bash curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.9.0-rc0/tflite_runtime-2.9.0rc0-cp39-none-linux_aarch64.whl echo Download finished. ================================================ FILE: 2.9.0-rc0/download_tflite_runtime-2.9.0rc0-cp39-none-linux_armv7l.whl.sh ================================================ #!/bin/bash curl -OL https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v2.9.0-rc0/tflite_runtime-2.9.0rc0-cp39-none-linux_armv7l.whl echo Download finished. ================================================ FILE: LICENSE ================================================ Copyright 2019 The TensorFlow Authors. All rights reserved. Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ================================================ FILE: README.md ================================================ # TensorflowLite-bin Prebuilt binary for TensorflowLite's standalone installer. For RaspberryPi. I provide a **`FlexDelegate`**, **`XNNPACK`** enabled binary. Here is the Tensorflow's official **[README](https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/tools/pip_package)**. If you want the best performance with RaspberryPi4/3, install Ubuntu 18.04+ aarch64 (64bit) instead of Raspbian armv7l (32bit). The official Tensorflow Lite is performance tuned for aarch64. On aarch64 OS, performance is about 4 times higher than on armv7l OS. **[How to install Ubuntu 19.10 aarch64 (64bit) on RaspberryPi4 - Qiita - PINTO](https://qiita.com/PINTO/items/adc5db7af7a5996c0f72)** The full build package for Tensorflow can be found **[here (Tensorflow-bin)](https://github.com/PINTO0309/Tensorflow-bin.git)**. TensorFlow Lite will continue to have TensorFlow Lite builtin ops optimized for mobile and embedded devices. However, TensorFlow Lite models can now use a subset of TensorFlow ops when TFLite builtin ops are not sufficient. **1. [TensorflowLite-flexdelegate (Tensorflow Select Ops) - Github - PINTO0309](https://github.com/PINTO0309/TensorflowLite-flexdelegate.git)** **2. [Select TensorFlow operators to use in TensorFlow Lite](https://www.tensorflow.org/lite/guide/ops_select)** A repository that shares tuning results of trained models generated by Tensorflow. Post-training quantization (Weight Quantization, Integer Quantization, Full Integer Quantization), Quantization-aware training. **[PINTO_model_zoo - Github - PINTO0309](https://github.com/PINTO0309/PINTO_model_zoo.git)** ## Reference articles - My article. **[Tensorflow Lite v1.14.0 / v1.15.0-rc0 armhf (armv7l) is tuned for MultiThread acceleration and cross-compiled for RaspberryPi on Ubuntu](https://qiita.com/PINTO/items/961010e38aa77fb6269b)** - Please refer to the following URL for details of performance. **[Post-training quantization with TF2.0 Keras - nb.o’s Diary](https://nextremer-nbo.blogspot.com/2019/10/tf20keraspost-training-quantization.html?m=1)**. The performance evaluation article was created by **[@Nextremer_nb_o ](https://mobile.twitter.com/Nextremer_nb_o)** / **[Github](https://github.com/NobuoTsukamoto)**. Thank you. - **[[Japanese ver.] [Tensorflow Lite] Various Neural Network Model quantization methods for Tensorflow Lite (Weight Quantization, Integer Quantization, Full Integer Quantization, Float16 Quantization, EdgeTPU). As of May 05, 2020.](https://qiita.com/PINTO/items/008c54536fca690e0572)** - **[[English ver.] [Tensorflow Lite] Various Neural Network Model quantization methods for Tensorflow Lite (Weight Quantization, Integer Quantization, Full Integer Quantization, Float16 Quantization, EdgeTPU). As of May 05, 2020.](https://qiita.com/PINTO/items/865250ee23a15339d556)** - **[A standalone 2MB installer for TensorflowLite v2.4.0-rc4 and a libedgetpu.so.1 build intended to run on a Yocto-generated environment](https://qiita.com/PINTO/items/effb80ee349d8db6af1b)** - **[Add a custom OP to the TFLite runtime to build the whl installer (for Python)](https://zenn.dev/pinto0309/articles/a0e40c2817f2ee)**, **`MaxPoolingWithArgmax2D`**, **`MaxUnpooling2D`**, **`Convolution2DTransposeBias`** ## Python API packages |Device|OS|Distribution|Architecture|Python ver|Note| |:--|:--|:--|:--|:--|:--| |RaspberryPi3/4|Raspbian/Debian|Stretch|armhf / armv7l|3.5|32bit| |RaspberryPi3/4|Raspbian/Debian|Stretch|aarch64 / armv8|3.5|64bit| |RaspberryPi3/4|Raspbian/Debian|Buster|armhf / armv7l|3.7 / 2.7|32bit| |RaspberryPi3/4|Raspbian/Debian|Buster|aarch64 / armv8|3.7 / 2.7|64bit| |RaspberryPi3/4|Ubuntu 20.04|Focal|armhf / armv7l|3.8|32bit| |RaspberryPi3/4|Ubuntu 20.04|Focal|aarch64 / armv8|3.8|64bit| |RaspberryPi3/4|Ubuntu 21.04/Debian/RaspberryPiOS|Hirsute/Bullseye|armhf / armv7l|3.9|32bit| |RaspberryPi3/4|Ubuntu 21.04/Debian/RaspberryPiOS|Hirsute/Bullseye|aarch64 / armv8|3.9|64bit| |RaspberryPi3/4|Ubuntu 22.04|Jammy|armhf / armv7l|3.10|32bit| |RaspberryPi3/4|Ubuntu 22.04|Jammy|aarch64 / armv8|3.10|64bit| |RaspberryPi3/4/5|RaspberryPiOS/Debian|Bookworm|armhf / armv7l|3.11|32bit| |RaspberryPi3/4/5|RaspberryPiOS/Debian|Bookworm|aarch64 / armv8|3.11|64bit| ## Usage ```bash sudo apt-get update && \ sudo apt install -y \ swig \ libjpeg-dev \ zlib1g-dev \ python3-dev \ python-is-python3 \ unzip \ wget \ python3-pip \ curl \ git \ cmake \ make pip install -U pip pip install numpy TFVER=2.15.0.post1 PYVER=39 or PYVER=310 or PYVER=311 ARCH=aarch64 or ARCH=armhf pip install \ --no-cache-dir \ https://github.com/PINTO0309/TensorflowLite-bin/releases/download/v${TFVER}/tflite_runtime-${TFVER/-/}-cp${PYVER}-none-linux_${ARCH}.whl ``` ## Note Unlike tensorflow this will be installed to a tflite_runtime namespace. You can then use the Tensorflow Lite interpreter as. ```python from tflite_runtime.interpreter import Interpreter ### Tensorflow v2.2.0 interpreter = Interpreter(model_path="foo.tflite") ### Tensorflow v2.3.0+ interpreter = Interpreter(model_path="foo.tflite", num_threads=4) ``` ## Build ```bash BRANCH=r2.16-tflite-build git clone -b ${BRANCH} --depth 1 https://github.com/PINTO0309/tensorflow.git cd tensorflow/lite/tools/pip_package make BASE_IMAGE=ubuntu:22.04 PYTHON=python3 PYTHON_VERSION=3.10 TENSORFLOW_TARGET=aarch64 docker-build make BASE_IMAGE=debian:bookworm PYTHON=python3 PYTHON_VERSION=3.11 TENSORFLOW_TARGET=aarch64 docker-build make BASE_IMAGE=ubuntu:22.04 PYTHON=python3 PYTHON_VERSION=3.10 TENSORFLOW_TARGET=armhf docker-build make BASE_IMAGE=debian:bookworm PYTHON=python3 PYTHON_VERSION=3.11 TENSORFLOW_TARGET=armhf docker-build make BASE_IMAGE=ubuntu:22.04 PYTHON=python3 PYTHON_VERSION=3.10 TENSORFLOW_TARGET=native docker-build ``` ## Operation check 【Classification】 **Sample of MultiThread x4 by Tensorflow Lite [MobileNetV1 / 75ms]** ![01](media/01.png) **Sample of MultiThread x4 by Tensorflow Lite [MobileNetV2 / 68ms]** ![02](media/02.png) - **Environmental preparation** ```bash $ cd ~;mkdir test $ curl https://raw.githubusercontent.com/tensorflow/tensorflow/master/tensorflow/lite/examples/label_image/testdata/grace_hopper.bmp -o ~/test/grace_hopper.bmp $ curl https://storage.googleapis.com/download.tensorflow.org/models/mobilenet_v1_1.0_224_frozen.tgz | tar xzv -C ~/test mobilenet_v1_1.0_224/labels.txt $ mv ~/test/mobilenet_v1_1.0_224/labels.txt ~/test/ $ curl http://download.tensorflow.org/models/mobilenet_v1_2018_02_22/mobilenet_v1_1.0_224_quant.tgz | tar xzv -C ~/test $ cd ~/test ``` - **label_image.py** ```python import argparse import numpy as np import time from PIL import Image from tflite_runtime.interpreter import Interpreter def load_labels(filename): my_labels = [] input_file = open(filename, 'r') for l in input_file: my_labels.append(l.strip()) return my_labels if __name__ == "__main__": floating_model = False parser = argparse.ArgumentParser() parser.add_argument( "-i", "--image", default="/tmp/grace_hopper.bmp", \ help="image to be classified" ) parser.add_argument( "-m", "--model_file", \ default="/tmp/mobilenet_v1_1.0_224_quant.tflite", \ help=".tflite model to be executed" ) parser.add_argument( "-l", "--label_file", default="/tmp/labels.txt", \ help="name of file containing labels" ) parser.add_argument( "--input_mean", default=127.5, help="input_mean" ) parser.add_argument( "--input_std", default=127.5, \ help="input standard deviation" ) parser.add_argument( "--num_threads", default=1, help="number of threads" ) args = parser.parse_args() interpreter = Interpreter( model_path="foo.tflite", num_threads=args.num_threads ) try: interpreter.allocate_tensors() except: pass input_details = interpreter.get_input_details() output_details = interpreter.get_output_details() # check the type of the input tensor if input_details[0]['dtype'] == np.float32: floating_model = True # NxHxWxC, H:1, W:2 height = input_details[0]['shape'][1] width = input_details[0]['shape'][2] img = Image.open(args.image) img = img.resize((width, height)) # add N dim input_data = np.expand_dims(img, axis=0) if floating_model: input_data = (np.float32(input_data) - args.input_mean) / args.input_std interpreter.set_tensor(input_details[0]['index'], input_data) start_time = time.time() interpreter.invoke() stop_time = time.time() output_data = interpreter.get_tensor(output_details[0]['index']) results = np.squeeze(output_data) top_k = results.argsort()[-5:][::-1] labels = load_labels(args.label_file) for i in top_k: if floating_model: print('{0:08.6f}'.format(float(results[i]))+":", labels[i]) else: print('{0:08.6f}'.format(float(results[i]/255.0))+":", labels[i]) print("time: ", stop_time - start_time) ``` - **Inference test** ```bash $ python3 label_image.py \ --num_threads 4 \ --image grace_hopper.bmp \ --model_file mobilenet_v1_1.0_224_quant.tflite \ --label_file labels.txt ``` ## Operation check 【ObjectDetection】 ### Sample of MultiThread x4 by Tensorflow Lite + Raspbian Buster (armhf) + RaspberryPi3 [MobileNetV2-SSD / 160ms] ![03](media/03.png) ![04](media/04.png) ### Sample of MultiThread x4 by Tensorflow Lite + Ubuntu18.04 (aarch64) + RaspberryPi3 [MobileNetV2-SSD / 140ms] ![06](media/06.png) ## Inference test ```bash $ python3 mobilenetv2ssd.py ``` ### MobileNetV2-SSD (UINT8) + Corei7 CPU only + USB Camera + 10 Threads + Async ![05](media/05.gif) ### MobileNetV2-SSDLite (UINT8) + RaspberryPi4 CPU only + USB Camera 640x480 + 4 Threads + Sync + Disp 1080p ![07](media/07.gif) ## List of quantized models **https://www.tensorflow.org/lite/guide/hosted_models** ## Other MobileNetV1 weight files **https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet_v1.md** ## Other MobileNetV2 weight files **https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet/README.md** ## Reference **tflite only python package https://github.com/PINTO0309/Tensorflow-bin/issues/15** **Incorrect predictions of Mobilenet_V2 https://github.com/tensorflow/tensorflow/issues/31229#issuecomment-527296093** ================================================ FILE: label_image.py ================================================ import argparse import numpy as np import time from PIL import Image from tflite_runtime.interpreter import Interpreter def load_labels(filename): my_labels = [] input_file = open(filename, 'r') for l in input_file: my_labels.append(l.strip()) return my_labels if __name__ == "__main__": floating_model = False parser = argparse.ArgumentParser() parser.add_argument("-i", "--image", type=str, default="grace_hopper.bmp", help="image to be classified") parser.add_argument("-m", "--model_file", type=str, default="mobilenet_v1_1.0_224_quant.tflite", help=".tflite model to be executed") parser.add_argument("-l", "--label_file", type=str, default="labels.txt", help="name of file containing labels") parser.add_argument("--input_mean", type=float,default=127.5, help="input_mean") parser.add_argument("--input_std", type=float, default=127.5, help="input standard deviation") parser.add_argument("--num_threads", type=int, default=4, help="number of threads") args = parser.parse_args() interpreter = Interpreter( model_path=args.model_file, num_threads=args.num_threads, ) try: interpreter.allocate_tensors() except: pass input_details = interpreter.get_input_details() output_details = interpreter.get_output_details() # check the type of the input tensor if input_details[0]['dtype'] == np.float32: floating_model = True # NxHxWxC, H:1, W:2 height = input_details[0]['shape'][1] width = input_details[0]['shape'][2] img = Image.open(args.image) img = img.resize((width, height)) # add N dim input_data = np.expand_dims(img, axis=0) if floating_model: input_data = (np.float32(input_data) - args.input_mean) / args.input_std interpreter.set_tensor(input_details[0]['index'], input_data) start_time = time.time() interpreter.invoke() stop_time = time.time() output_data = interpreter.get_tensor(output_details[0]['index']) results = np.squeeze(output_data) top_k = results.argsort()[-5:][::-1] labels = load_labels(args.label_file) for i in top_k: if floating_model: print('{0:08.6f}'.format(float(results[i]))+":", labels[i]) else: print('{0:08.6f}'.format(float(results[i]/255.0))+":", labels[i]) print("time: ", stop_time - start_time) ================================================ FILE: labels.txt ================================================ 0:background 1:tench, Tinca tinca 2:goldfish, Carassius auratus 3:great white shark, white shark, man-eater, man-eating shark, Carcharodon carcharias 4:tiger shark, Galeocerdo cuvieri 5:hammerhead, hammerhead shark 6:electric ray, crampfish, numbfish, torpedo 7:stingray 8:cock 9:hen 10:ostrich, Struthio camelus 11:brambling, Fringilla montifringilla 12:goldfinch, Carduelis carduelis 13:house finch, linnet, Carpodacus mexicanus 14:junco, snowbird 15:indigo bunting, indigo finch, indigo bird, Passerina cyanea 16:robin, American robin, Turdus migratorius 17:bulbul 18:jay 19:magpie 20:chickadee 21:water ouzel, dipper 22:kite 23:bald eagle, American eagle, Haliaeetus leucocephalus 24:vulture 25:great grey owl, great gray owl, Strix nebulosa 26:European fire salamander, Salamandra salamandra 27:common newt, Triturus vulgaris 28:eft 29:spotted salamander, Ambystoma maculatum 30:axolotl, mud puppy, Ambystoma mexicanum 31:bullfrog, Rana catesbeiana 32:tree frog, tree-frog 33:tailed frog, bell toad, ribbed toad, tailed toad, Ascaphus trui 34:loggerhead, loggerhead turtle, Caretta caretta 35:leatherback turtle, leatherback, leathery turtle, Dermochelys coriacea 36:mud turtle 37:terrapin 38:box turtle, box tortoise 39:banded gecko 40:common iguana, iguana, Iguana iguana 41:American chameleon, anole, Anolis carolinensis 42:whiptail, whiptail lizard 43:agama 44:frilled lizard, Chlamydosaurus kingi 45:alligator lizard 46:Gila monster, Heloderma suspectum 47:green lizard, Lacerta viridis 48:African chameleon, Chamaeleo chamaeleon 49:Komodo dragon, Komodo lizard, dragon lizard, giant lizard, Varanus komodoensis 50:African crocodile, Nile crocodile, Crocodylus niloticus 51:American alligator, Alligator mississipiensis 52:triceratops 53:thunder snake, worm snake, Carphophis amoenus 54:ringneck snake, ring-necked snake, ring snake 55:hognose snake, puff adder, sand viper 56:green snake, grass snake 57:king snake, kingsnake 58:garter snake, grass snake 59:water snake 60:vine snake 61:night snake, Hypsiglena torquata 62:boa constrictor, Constrictor constrictor 63:rock python, rock snake, Python sebae 64:Indian cobra, Naja naja 65:green mamba 66:sea snake 67:horned viper, cerastes, sand viper, horned asp, Cerastes cornutus 68:diamondback, diamondback rattlesnake, Crotalus adamanteus 69:sidewinder, horned rattlesnake, Crotalus cerastes 70:trilobite 71:harvestman, daddy longlegs, Phalangium opilio 72:scorpion 73:black and gold garden spider, Argiope aurantia 74:barn spider, Araneus cavaticus 75:garden spider, Aranea diademata 76:black widow, Latrodectus mactans 77:tarantula 78:wolf spider, hunting spider 79:tick 80:centipede 81:black grouse 82:ptarmigan 83:ruffed grouse, partridge, Bonasa umbellus 84:prairie chicken, prairie grouse, prairie fowl 85:peacock 86:quail 87:partridge 88:African grey, African gray, Psittacus erithacus 89:macaw 90:sulphur-crested cockatoo, Kakatoe galerita, Cacatua galerita 91:lorikeet 92:coucal 93:bee eater 94:hornbill 95:hummingbird 96:jacamar 97:toucan 98:drake 99:red-breasted merganser, Mergus serrator 100:goose 101:black swan, Cygnus atratus 102:tusker 103:echidna, spiny anteater, anteater 104:platypus, duckbill, duckbilled platypus, duck-billed platypus, Ornithorhynchus anatinus 105:wallaby, brush kangaroo 106:koala, koala bear, kangaroo bear, native bear, Phascolarctos cinereus 107:wombat 108:jellyfish 109:sea anemone, anemone 110:brain coral 111:flatworm, platyhelminth 112:nematode, nematode worm, roundworm 113:conch 114:snail 115:slug 116:sea slug, nudibranch 117:chiton, coat-of-mail shell, sea cradle, polyplacophore 118:chambered nautilus, pearly nautilus, nautilus 119:Dungeness crab, Cancer magister 120:rock crab, Cancer irroratus 121:fiddler crab 122:king crab, Alaska crab, Alaskan king crab, Alaska king crab, Paralithodes camtschatica 123:American lobster, Northern lobster, Maine lobster, Homarus americanus 124:spiny lobster, langouste, rock lobster, crawfish, crayfish, sea crawfish 125:crayfish, crawfish, crawdad, crawdaddy 126:hermit crab 127:isopod 128:white stork, Ciconia ciconia 129:black stork, Ciconia nigra 130:spoonbill 131:flamingo 132:little blue heron, Egretta caerulea 133:American egret, great white heron, Egretta albus 134:bittern 135:crane 136:limpkin, Aramus pictus 137:European gallinule, Porphyrio porphyrio 138:American coot, marsh hen, mud hen, water hen, Fulica americana 139:bustard 140:ruddy turnstone, Arenaria interpres 141:red-backed sandpiper, dunlin, Erolia alpina 142:redshank, Tringa totanus 143:dowitcher 144:oystercatcher, oyster catcher 145:pelican 146:king penguin, Aptenodytes patagonica 147:albatross, mollymawk 148:grey whale, gray whale, devilfish, Eschrichtius gibbosus, Eschrichtius robustus 149:killer whale, killer, orca, grampus, sea wolf, Orcinus orca 150:dugong, Dugong dugon 151:sea lion 152:Chihuahua 153:Japanese spaniel 154:Maltese dog, Maltese terrier, Maltese 155:Pekinese, Pekingese, Peke 156:Shih-Tzu 157:Blenheim spaniel 158:papillon 159:toy terrier 160:Rhodesian ridgeback 161:Afghan hound, Afghan 162:basset, basset hound 163:beagle 164:bloodhound, sleuthhound 165:bluetick 166:black-and-tan coonhound 167:Walker hound, Walker foxhound 168:English foxhound 169:redbone 170:borzoi, Russian wolfhound 171:Irish wolfhound 172:Italian greyhound 173:whippet 174:Ibizan hound, Ibizan Podenco 175:Norwegian elkhound, elkhound 176:otterhound, otter hound 177:Saluki, gazelle hound 178:Scottish deerhound, deerhound 179:Weimaraner 180:Staffordshire bullterrier, Staffordshire bull terrier 181:American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier 182:Bedlington terrier 183:Border terrier 184:Kerry blue terrier 185:Irish terrier 186:Norfolk terrier 187:Norwich terrier 188:Yorkshire terrier 189:wire-haired fox terrier 190:Lakeland terrier 191:Sealyham terrier, Sealyham 192:Airedale, Airedale terrier 193:cairn, cairn terrier 194:Australian terrier 195:Dandie Dinmont, Dandie Dinmont terrier 196:Boston bull, Boston terrier 197:miniature schnauzer 198:giant schnauzer 199:standard schnauzer 200:Scotch terrier, Scottish terrier, Scottie 201:Tibetan terrier, chrysanthemum dog 202:silky terrier, Sydney silky 203:soft-coated wheaten terrier 204:West Highland white terrier 205:Lhasa, Lhasa apso 206:flat-coated retriever 207:curly-coated retriever 208:golden retriever 209:Labrador retriever 210:Chesapeake Bay retriever 211:German short-haired pointer 212:vizsla, Hungarian pointer 213:English setter 214:Irish setter, red setter 215:Gordon setter 216:Brittany spaniel 217:clumber, clumber spaniel 218:English springer, English springer spaniel 219:Welsh springer spaniel 220:cocker spaniel, English cocker spaniel, cocker 221:Sussex spaniel 222:Irish water spaniel 223:kuvasz 224:schipperke 225:groenendael 226:malinois 227:briard 228:kelpie 229:komondor 230:Old English sheepdog, bobtail 231:Shetland sheepdog, Shetland sheep dog, Shetland 232:collie 233:Border collie 234:Bouvier des Flandres, Bouviers des Flandres 235:Rottweiler 236:German shepherd, German shepherd dog, German police dog, alsatian 237:Doberman, Doberman pinscher 238:miniature pinscher 239:Greater Swiss Mountain dog 240:Bernese mountain dog 241:Appenzeller 242:EntleBucher 243:boxer 244:bull mastiff 245:Tibetan mastiff 246:French bulldog 247:Great Dane 248:Saint Bernard, St Bernard 249:Eskimo dog, husky 250:malamute, malemute, Alaskan malamute 251:Siberian husky 252:dalmatian, coach dog, carriage dog 253:affenpinscher, monkey pinscher, monkey dog 254:basenji 255:pug, pug-dog 256:Leonberg 257:Newfoundland, Newfoundland dog 258:Great Pyrenees 259:Samoyed, Samoyede 260:Pomeranian 261:chow, chow chow 262:keeshond 263:Brabancon griffon 264:Pembroke, Pembroke Welsh corgi 265:Cardigan, Cardigan Welsh corgi 266:toy poodle 267:miniature poodle 268:standard poodle 269:Mexican hairless 270:timber wolf, grey wolf, gray wolf, Canis lupus 271:white wolf, Arctic wolf, Canis lupus tundrarum 272:red wolf, maned wolf, Canis rufus, Canis niger 273:coyote, prairie wolf, brush wolf, Canis latrans 274:dingo, warrigal, warragal, Canis dingo 275:dhole, Cuon alpinus 276:African hunting dog, hyena dog, Cape hunting dog, Lycaon pictus 277:hyena, hyaena 278:red fox, Vulpes vulpes 279:kit fox, Vulpes macrotis 280:Arctic fox, white fox, Alopex lagopus 281:grey fox, gray fox, Urocyon cinereoargenteus 282:tabby, tabby cat 283:tiger cat 284:Persian cat 285:Siamese cat, Siamese 286:Egyptian cat 287:cougar, puma, catamount, mountain lion, painter, panther, Felis concolor 288:lynx, catamount 289:leopard, Panthera pardus 290:snow leopard, ounce, Panthera uncia 291:jaguar, panther, Panthera onca, Felis onca 292:lion, king of beasts, Panthera leo 293:tiger, Panthera tigris 294:cheetah, chetah, Acinonyx jubatus 295:brown bear, bruin, Ursus arctos 296:American black bear, black bear, Ursus americanus, Euarctos americanus 297:ice bear, polar bear, Ursus Maritimus, Thalarctos maritimus 298:sloth bear, Melursus ursinus, Ursus ursinus 299:mongoose 300:meerkat, mierkat 301:tiger beetle 302:ladybug, ladybeetle, lady beetle, ladybird, ladybird beetle 303:ground beetle, carabid beetle 304:long-horned beetle, longicorn, longicorn beetle 305:leaf beetle, chrysomelid 306:dung beetle 307:rhinoceros beetle 308:weevil 309:fly 310:bee 311:ant, emmet, pismire 312:grasshopper, hopper 313:cricket 314:walking stick, walkingstick, stick insect 315:cockroach, roach 316:mantis, mantid 317:cicada, cicala 318:leafhopper 319:lacewing, lacewing fly 320:dragonfly, darning needle, devil's darning needle, sewing needle, snake feeder, snake doctor, mosquito hawk, skeeter hawk 321:damselfly 322:admiral 323:ringlet, ringlet butterfly 324:monarch, monarch butterfly, milkweed butterfly, Danaus plexippus 325:cabbage butterfly 326:sulphur butterfly, sulfur butterfly 327:lycaenid, lycaenid butterfly 328:starfish, sea star 329:sea urchin 330:sea cucumber, holothurian 331:wood rabbit, cottontail, cottontail rabbit 332:hare 333:Angora, Angora rabbit 334:hamster 335:porcupine, hedgehog 336:fox squirrel, eastern fox squirrel, Sciurus niger 337:marmot 338:beaver 339:guinea pig, Cavia cobaya 340:sorrel 341:zebra 342:hog, pig, grunter, squealer, Sus scrofa 343:wild boar, boar, Sus scrofa 344:warthog 345:hippopotamus, hippo, river horse, Hippopotamus amphibius 346:ox 347:water buffalo, water ox, Asiatic buffalo, Bubalus bubalis 348:bison 349:ram, tup 350:bighorn, bighorn sheep, cimarron, Rocky Mountain bighorn, Rocky Mountain sheep, Ovis canadensis 351:ibex, Capra ibex 352:hartebeest 353:impala, Aepyceros melampus 354:gazelle 355:Arabian camel, dromedary, Camelus dromedarius 356:llama 357:weasel 358:mink 359:polecat, fitch, foulmart, foumart, Mustela putorius 360:black-footed ferret, ferret, Mustela nigripes 361:otter 362:skunk, polecat, wood pussy 363:badger 364:armadillo 365:three-toed sloth, ai, Bradypus tridactylus 366:orangutan, orang, orangutang, Pongo pygmaeus 367:gorilla, Gorilla gorilla 368:chimpanzee, chimp, Pan troglodytes 369:gibbon, Hylobates lar 370:siamang, Hylobates syndactylus, Symphalangus syndactylus 371:guenon, guenon monkey 372:patas, hussar monkey, Erythrocebus patas 373:baboon 374:macaque 375:langur 376:colobus, colobus monkey 377:proboscis monkey, Nasalis larvatus 378:marmoset 379:capuchin, ringtail, Cebus capucinus 380:howler monkey, howler 381:titi, titi monkey 382:spider monkey, Ateles geoffroyi 383:squirrel monkey, Saimiri sciureus 384:Madagascar cat, ring-tailed lemur, Lemur catta 385:indri, indris, Indri indri, Indri brevicaudatus 386:Indian elephant, Elephas maximus 387:African elephant, Loxodonta africana 388:lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens 389:giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca 390:barracouta, snoek 391:eel 392:coho, cohoe, coho salmon, blue jack, silver salmon, Oncorhynchus kisutch 393:rock beauty, Holocanthus tricolor 394:anemone fish 395:sturgeon 396:gar, garfish, garpike, billfish, Lepisosteus osseus 397:lionfish 398:puffer, pufferfish, blowfish, globefish 399:abacus 400:abaya 401:academic gown, academic robe, judge's robe 402:accordion, piano accordion, squeeze box 403:acoustic guitar 404:aircraft carrier, carrier, flattop, attack aircraft carrier 405:airliner 406:airship, dirigible 407:altar 408:ambulance 409:amphibian, amphibious vehicle 410:analog clock 411:apiary, bee house 412:apron 413:ashcan, trash can, garbage can, wastebin, ash bin, ash-bin, ashbin, dustbin, trash barrel, trash bin 414:assault rifle, assault gun 415:backpack, back pack, knapsack, packsack, rucksack, haversack 416:bakery, bakeshop, bakehouse 417:balance beam, beam 418:balloon 419:ballpoint, ballpoint pen, ballpen, Biro 420:Band Aid 421:banjo 422:bannister, banister, balustrade, balusters, handrail 423:barbell 424:barber chair 425:barbershop 426:barn 427:barometer 428:barrel, cask 429:barrow, garden cart, lawn cart, wheelbarrow 430:baseball 431:basketball 432:bassinet 433:bassoon 434:bathing cap, swimming cap 435:bath towel 436:bathtub, bathing tub, bath, tub 437:beach wagon, station wagon, wagon, estate car, beach waggon, station waggon, waggon 438:beacon, lighthouse, beacon light, pharos 439:beaker 440:bearskin, busby, shako 441:beer bottle 442:beer glass 443:bell cote, bell cot 444:bib 445:bicycle-built-for-two, tandem bicycle, tandem 446:bikini, two-piece 447:binder, ring-binder 448:binoculars, field glasses, opera glasses 449:birdhouse 450:boathouse 451:bobsled, bobsleigh, bob 452:bolo tie, bolo, bola tie, bola 453:bonnet, poke bonnet 454:bookcase 455:bookshop, bookstore, bookstall 456:bottlecap 457:bow 458:bow tie, bow-tie, bowtie 459:brass, memorial tablet, plaque 460:brassiere, bra, bandeau 461:breakwater, groin, groyne, mole, bulwark, seawall, jetty 462:breastplate, aegis, egis 463:broom 464:bucket, pail 465:buckle 466:bulletproof vest 467:bullet train, bullet 468:butcher shop, meat market 469:cab, hack, taxi, taxicab 470:caldron, cauldron 471:candle, taper, wax light 472:cannon 473:canoe 474:can opener, tin opener 475:cardigan 476:car mirror 477:carousel, carrousel, merry-go-round, roundabout, whirligig 478:carpenter's kit, tool kit 479:carton 480:car wheel 481:cash machine, cash dispenser, automated teller machine, automatic teller machine, automated teller, automatic teller, ATM 482:cassette 483:cassette player 484:castle 485:catamaran 486:CD player 487:cello, violoncello 488:cellular telephone, cellular phone, cellphone, cell, mobile phone 489:chain 490:chainlink fence 491:chain mail, ring mail, mail, chain armor, chain armour, ring armor, ring armour 492:chain saw, chainsaw 493:chest 494:chiffonier, commode 495:chime, bell, gong 496:china cabinet, china closet 497:Christmas stocking 498:church, church building 499:cinema, movie theater, movie theatre, movie house, picture palace 500:cleaver, meat cleaver, chopper 501:cliff dwelling 502:cloak 503:clog, geta, patten, sabot 504:cocktail shaker 505:coffee mug 506:coffeepot 507:coil, spiral, volute, whorl, helix 508:combination lock 509:computer keyboard, keypad 510:confectionery, confectionary, candy store 511:container ship, containership, container vessel 512:convertible 513:corkscrew, bottle screw 514:cornet, horn, trumpet, trump 515:cowboy boot 516:cowboy hat, ten-gallon hat 517:cradle 518:crane 519:crash helmet 520:crate 521:crib, cot 522:Crock Pot 523:croquet ball 524:crutch 525:cuirass 526:dam, dike, dyke 527:desk 528:desktop computer 529:dial telephone, dial phone 530:diaper, nappy, napkin 531:digital clock 532:digital watch 533:dining table, board 534:dishrag, dishcloth 535:dishwasher, dish washer, dishwashing machine 536:disk brake, disc brake 537:dock, dockage, docking facility 538:dogsled, dog sled, dog sleigh 539:dome 540:doormat, welcome mat 541:drilling platform, offshore rig 542:drum, membranophone, tympan 543:drumstick 544:dumbbell 545:Dutch oven 546:electric fan, blower 547:electric guitar 548:electric locomotive 549:entertainment center 550:envelope 551:espresso maker 552:face powder 553:feather boa, boa 554:file, file cabinet, filing cabinet 555:fireboat 556:fire engine, fire truck 557:fire screen, fireguard 558:flagpole, flagstaff 559:flute, transverse flute 560:folding chair 561:football helmet 562:forklift 563:fountain 564:fountain pen 565:four-poster 566:freight car 567:French horn, horn 568:frying pan, frypan, skillet 569:fur coat 570:garbage truck, dustcart 571:gasmask, respirator, gas helmet 572:gas pump, gasoline pump, petrol pump, island dispenser 573:goblet 574:go-kart 575:golf ball 576:golfcart, golf cart 577:gondola 578:gong, tam-tam 579:gown 580:grand piano, grand 581:greenhouse, nursery, glasshouse 582:grille, radiator grille 583:grocery store, grocery, food market, market 584:guillotine 585:hair slide 586:hair spray 587:half track 588:hammer 589:hamper 590:hand blower, blow dryer, blow drier, hair dryer, hair drier 591:hand-held computer, hand-held microcomputer 592:handkerchief, hankie, hanky, hankey 593:hard disc, hard disk, fixed disk 594:harmonica, mouth organ, harp, mouth harp 595:harp 596:harvester, reaper 597:hatchet 598:holster 599:home theater, home theatre 600:honeycomb 601:hook, claw 602:hoopskirt, crinoline 603:horizontal bar, high bar 604:horse cart, horse-cart 605:hourglass 606:iPod 607:iron, smoothing iron 608:jack-o'-lantern 609:jean, blue jean, denim 610:jeep, landrover 611:jersey, T-shirt, tee shirt 612:jigsaw puzzle 613:jinrikisha, ricksha, rickshaw 614:joystick 615:kimono 616:knee pad 617:knot 618:lab coat, laboratory coat 619:ladle 620:lampshade, lamp shade 621:laptop, laptop computer 622:lawn mower, mower 623:lens cap, lens cover 624:letter opener, paper knife, paperknife 625:library 626:lifeboat 627:lighter, light, igniter, ignitor 628:limousine, limo 629:liner, ocean liner 630:lipstick, lip rouge 631:Loafer 632:lotion 633:loudspeaker, speaker, speaker unit, loudspeaker system, speaker system 634:loupe, jeweler's loupe 635:lumbermill, sawmill 636:magnetic compass 637:mailbag, postbag 638:mailbox, letter box 639:maillot 640:maillot, tank suit 641:manhole cover 642:maraca 643:marimba, xylophone 644:mask 645:matchstick 646:maypole 647:maze, labyrinth 648:measuring cup 649:medicine chest, medicine cabinet 650:megalith, megalithic structure 651:microphone, mike 652:microwave, microwave oven 653:military uniform 654:milk can 655:minibus 656:miniskirt, mini 657:minivan 658:missile 659:mitten 660:mixing bowl 661:mobile home, manufactured home 662:Model T 663:modem 664:monastery 665:monitor 666:moped 667:mortar 668:mortarboard 669:mosque 670:mosquito net 671:motor scooter, scooter 672:mountain bike, all-terrain bike, off-roader 673:mountain tent 674:mouse, computer mouse 675:mousetrap 676:moving van 677:muzzle 678:nail 679:neck brace 680:necklace 681:nipple 682:notebook, notebook computer 683:obelisk 684:oboe, hautboy, hautbois 685:ocarina, sweet potato 686:odometer, hodometer, mileometer, milometer 687:oil filter 688:organ, pipe organ 689:oscilloscope, scope, cathode-ray oscilloscope, CRO 690:overskirt 691:oxcart 692:oxygen mask 693:packet 694:paddle, boat paddle 695:paddlewheel, paddle wheel 696:padlock 697:paintbrush 698:pajama, pyjama, pj's, jammies 699:palace 700:panpipe, pandean pipe, syrinx 701:paper towel 702:parachute, chute 703:parallel bars, bars 704:park bench 705:parking meter 706:passenger car, coach, carriage 707:patio, terrace 708:pay-phone, pay-station 709:pedestal, plinth, footstall 710:pencil box, pencil case 711:pencil sharpener 712:perfume, essence 713:Petri dish 714:photocopier 715:pick, plectrum, plectron 716:pickelhaube 717:picket fence, paling 718:pickup, pickup truck 719:pier 720:piggy bank, penny bank 721:pill bottle 722:pillow 723:ping-pong ball 724:pinwheel 725:pirate, pirate ship 726:pitcher, ewer 727:plane, carpenter's plane, woodworking plane 728:planetarium 729:plastic bag 730:plate rack 731:plow, plough 732:plunger, plumber's helper 733:Polaroid camera, Polaroid Land camera 734:pole 735:police van, police wagon, paddy wagon, patrol wagon, wagon, black Maria 736:poncho 737:pool table, billiard table, snooker table 738:pop bottle, soda bottle 739:pot, flowerpot 740:potter's wheel 741:power drill 742:prayer rug, prayer mat 743:printer 744:prison, prison house 745:projectile, missile 746:projector 747:puck, hockey puck 748:punching bag, punch bag, punching ball, punchball 749:purse 750:quill, quill pen 751:quilt, comforter, comfort, puff 752:racer, race car, racing car 753:racket, racquet 754:radiator 755:radio, wireless 756:radio telescope, radio reflector 757:rain barrel 758:recreational vehicle, RV, R.V. 759:reel 760:reflex camera 761:refrigerator, icebox 762:remote control, remote 763:restaurant, eating house, eating place, eatery 764:revolver, six-gun, six-shooter 765:rifle 766:rocking chair, rocker 767:rotisserie 768:rubber eraser, rubber, pencil eraser 769:rugby ball 770:rule, ruler 771:running shoe 772:safe 773:safety pin 774:saltshaker, salt shaker 775:sandal 776:sarong 777:sax, saxophone 778:scabbard 779:scale, weighing machine 780:school bus 781:schooner 782:scoreboard 783:screen, CRT screen 784:screw 785:screwdriver 786:seat belt, seatbelt 787:sewing machine 788:shield, buckler 789:shoe shop, shoe-shop, shoe store 790:shoji 791:shopping basket 792:shopping cart 793:shovel 794:shower cap 795:shower curtain 796:ski 797:ski mask 798:sleeping bag 799:slide rule, slipstick 800:sliding door 801:slot, one-armed bandit 802:snorkel 803:snowmobile 804:snowplow, snowplough 805:soap dispenser 806:soccer ball 807:sock 808:solar dish, solar collector, solar furnace 809:sombrero 810:soup bowl 811:space bar 812:space heater 813:space shuttle 814:spatula 815:speedboat 816:spider web, spider's web 817:spindle 818:sports car, sport car 819:spotlight, spot 820:stage 821:steam locomotive 822:steel arch bridge 823:steel drum 824:stethoscope 825:stole 826:stone wall 827:stopwatch, stop watch 828:stove 829:strainer 830:streetcar, tram, tramcar, trolley, trolley car 831:stretcher 832:studio couch, day bed 833:stupa, tope 834:submarine, pigboat, sub, U-boat 835:suit, suit of clothes 836:sundial 837:sunglass 838:sunglasses, dark glasses, shades 839:sunscreen, sunblock, sun blocker 840:suspension bridge 841:swab, swob, mop 842:sweatshirt 843:swimming trunks, bathing trunks 844:swing 845:switch, electric switch, electrical switch 846:syringe 847:table lamp 848:tank, army tank, armored combat vehicle, armoured combat vehicle 849:tape player 850:teapot 851:teddy, teddy bear 852:television, television system 853:tennis ball 854:thatch, thatched roof 855:theater curtain, theatre curtain 856:thimble 857:thresher, thrasher, threshing machine 858:throne 859:tile roof 860:toaster 861:tobacco shop, tobacconist shop, tobacconist 862:toilet seat 863:torch 864:totem pole 865:tow truck, tow car, wrecker 866:toyshop 867:tractor 868:trailer truck, tractor trailer, trucking rig, rig, articulated lorry, semi 869:tray 870:trench coat 871:tricycle, trike, velocipede 872:trimaran 873:tripod 874:triumphal arch 875:trolleybus, trolley coach, trackless trolley 876:trombone 877:tub, vat 878:turnstile 879:typewriter keyboard 880:umbrella 881:unicycle, monocycle 882:upright, upright piano 883:vacuum, vacuum cleaner 884:vase 885:vault 886:velvet 887:vending machine 888:vestment 889:viaduct 890:violin, fiddle 891:volleyball 892:waffle iron 893:wall clock 894:wallet, billfold, notecase, pocketbook 895:wardrobe, closet, press 896:warplane, military plane 897:washbasin, handbasin, washbowl, lavabo, wash-hand basin 898:washer, automatic washer, washing machine 899:water bottle 900:water jug 901:water tower 902:whiskey jug 903:whistle 904:wig 905:window screen 906:window shade 907:Windsor tie 908:wine bottle 909:wing 910:wok 911:wooden spoon 912:wool, woolen, woollen 913:worm fence, snake fence, snake-rail fence, Virginia fence 914:wreck 915:yawl 916:yurt 917:web site, website, internet site, site 918:comic book 919:crossword puzzle, crossword 920:street sign 921:traffic light, traffic signal, stoplight 922:book jacket, dust cover, dust jacket, dust wrapper 923:menu 924:plate 925:guacamole 926:consomme 927:hot pot, hotpot 928:trifle 929:ice cream, icecream 930:ice lolly, lolly, lollipop, popsicle 931:French loaf 932:bagel, beigel 933:pretzel 934:cheeseburger 935:hotdog, hot dog, red hot 936:mashed potato 937:head cabbage 938:broccoli 939:cauliflower 940:zucchini, courgette 941:spaghetti squash 942:acorn squash 943:butternut squash 944:cucumber, cuke 945:artichoke, globe artichoke 946:bell pepper 947:cardoon 948:mushroom 949:Granny Smith 950:strawberry 951:orange 952:lemon 953:fig 954:pineapple, ananas 955:banana 956:jackfruit, jak, jack 957:custard apple 958:pomegranate 959:hay 960:carbonara 961:chocolate sauce, chocolate syrup 962:dough 963:meat loaf, meatloaf 964:pizza, pizza pie 965:potpie 966:burrito 967:red wine 968:espresso 969:cup 970:eggnog 971:alp 972:bubble 973:cliff, drop, drop-off 974:coral reef 975:geyser 976:lakeside, lakeshore 977:promontory, headland, head, foreland 978:sandbar, sand bar 979:seashore, coast, seacoast, sea-coast 980:valley, vale 981:volcano 982:ballplayer, baseball player 983:groom, bridegroom 984:scuba diver 985:rapeseed 986:daisy 987:yellow lady's slipper, yellow lady-slipper, Cypripedium calceolus, Cypripedium parviflorum 988:corn 989:acorn 990:hip, rose hip, rosehip 991:buckeye, horse chestnut, conker 992:coral fungus 993:agaric 994:gyromitra 995:stinkhorn, carrion fungus 996:earthstar 997:hen-of-the-woods, hen of the woods, Polyporus frondosus, Grifola frondosa 998:bolete 999:ear, spike, capitulum 1000:toilet tissue, toilet paper, bathroom tissue ================================================ FILE: mobilenetv2ssd-async-usbcam.py ================================================ import argparse #import platform import numpy as np import cv2 import time #from PIL import Image from time import sleep import multiprocessing as mp try: from tflite_runtime.interpreter import Interpreter except: import tensorflow as tf lastresults = None processes = [] frameBuffer = None results = None fps = "" detectfps = "" framecount = 0 detectframecount = 0 time1 = 0 time2 = 0 box_color = (255, 128, 0) box_thickness = 1 label_background_color = (125, 175, 75) label_text_color = (255, 255, 255) percentage = 0.0 LABELS = [ '???','person','bicycle','car','motorcycle','airplane','bus','train','truck','boat', 'traffic light','fire hydrant','???','stop sign','parking meter','bench','bird','cat','dog','horse', 'sheep','cow','elephant','bear','zebra','giraffe','???','backpack','umbrella','???', '???','handbag','tie','suitcase','frisbee','skis','snowboard','sports ball','kite','baseball bat', 'baseball glove','skateboard','surfboard','tennis racket','bottle','???','wine glass','cup','fork','knife', 'spoon','bowl','banana','apple','sandwich','orange','broccoli','carrot','hot dog','pizza', 'donut','cake','chair','couch','potted plant','bed','???','dining table','???','???', 'toilet','???','tv','laptop','mouse','remote','keyboard','cell phone','microwave','oven', 'toaster','sink','refrigerator','???','book','clock','vase','scissors','teddy bear','hair drier', 'toothbrush'] class ObjectDetectorLite(): def __init__(self, model_path='detect.tflite', threads_num=4): try: self.interpreter = Interpreter(model_path=model_path, num_threads=threads_num) except: self.interpreter = tf.lite.Interpreter(model_path=model_path, num_threads=threads_num) try: self.interpreter.allocate_tensors() except: pass self.input_details = self.interpreter.get_input_details() self.output_details = self.interpreter.get_output_details() def _boxes_coordinates( self, image, boxes, classes, scores, max_boxes_to_draw=20, min_score_thresh=.5 ): if not max_boxes_to_draw: max_boxes_to_draw = boxes.shape[0] number_boxes = min(max_boxes_to_draw, boxes.shape[0]) person_boxes = [] for i in range(number_boxes): if scores is None or scores[i] > min_score_thresh: box = tuple(boxes[i].tolist()) ymin, xmin, ymax, xmax = box im_height, im_width, _ = image.shape left, right, top, bottom = [int(z) for z in (xmin * im_width, xmax * im_width, ymin * im_height, ymax * im_height)] person_boxes.append([(left, top), (right, bottom), scores[i], LABELS[classes[i]]]) return person_boxes def detect(self, image, threshold=0.1): # Resize and normalize image for network input frame = cv2.resize(image, (300, 300)) frame = np.expand_dims(frame, axis=0) frame = frame.astype('uint8') # run model self.interpreter.set_tensor(self.input_details[0]['index'], frame) start_time = time.time() self.interpreter.invoke() stop_time = time.time() print("time: ", stop_time - start_time) # get results boxes = self.interpreter.get_tensor(self.output_details[0]['index']) classes = self.interpreter.get_tensor(self.output_details[1]['index']) scores = self.interpreter.get_tensor(self.output_details[2]['index']) num = self.interpreter.get_tensor(self.output_details[3]['index']) # Find detected boxes coordinates return self._boxes_coordinates( image, np.squeeze(boxes[0]), np.squeeze(classes[0]+1).astype(np.int32), np.squeeze(scores[0]), min_score_thresh=threshold, ) def camThread(results, frameBuffer, camera_width, camera_height, vidfps, usbcamno): global fps global detectfps global framecount global detectframecount global time1 global time2 global lastresults global cam global window_name cam = cv2.VideoCapture(usbcamno) cam.set(cv2.CAP_PROP_FPS, vidfps) cam.set(cv2.CAP_PROP_FRAME_WIDTH, camera_width) cam.set(cv2.CAP_PROP_FRAME_HEIGHT, camera_height) window_name = "USB Camera" cv2.namedWindow(window_name, cv2.WINDOW_AUTOSIZE) while True: t1 = time.perf_counter() ret, color_image = cam.read() if not ret: continue if frameBuffer.full(): frameBuffer.get() frames = color_image frameBuffer.put(color_image.copy()) res = None if not results.empty(): res = results.get(False) detectframecount += 1 imdraw = overlay_on_image(frames, res, camera_width, camera_height) lastresults = res else: imdraw = overlay_on_image(frames, lastresults, camera_width, camera_height) cv2.imshow('USB Camera', imdraw) if cv2.waitKey(1)&0xFF == ord('q'): break # FPS calculation framecount += 1 if framecount >= 15: fps = "(Playback) {:.1f} FPS".format(time1/15) detectfps = "(Detection) {:.1f} FPS".format(detectframecount/time2) framecount = 0 detectframecount = 0 time1 = 0 time2 = 0 t2 = time.perf_counter() elapsedTime = t2-t1 time1 += 1/elapsedTime time2 += elapsedTime def inferencer(results, frameBuffer, model, camera_width, camera_height, process_num, threads_num): detector = ObjectDetectorLite(model, threads_num) print("Loaded Graphs!!!", process_num) while True: if frameBuffer.empty(): continue # Run inference. color_image = frameBuffer.get() prepimg = color_image[:, :, ::-1].copy() ans = detector.detect(prepimg, 0.4) results.put(ans) def overlay_on_image(frames, object_infos, camera_width, camera_height): color_image = frames if isinstance(object_infos, type(None)): return color_image img_cp = color_image.copy() for obj in object_infos: box_left = int(obj[0][0]) box_top = int(obj[0][1]) box_right = int(obj[1][0]) box_bottom = int(obj[1][1]) cv2.rectangle(img_cp, (box_left, box_top), (box_right, box_bottom), box_color, box_thickness) percentage = int(obj[2] * 100) label_text = obj[3] + " (" + str(percentage) + "%)" label_size = cv2.getTextSize(label_text, cv2.FONT_HERSHEY_SIMPLEX, 0.5, 1)[0] label_left = box_left label_top = box_top - label_size[1] if (label_top < 1): label_top = 1 label_right = label_left + label_size[0] label_bottom = label_top + label_size[1] cv2.rectangle(img_cp, (label_left - 1, label_top - 1), (label_right + 1, label_bottom + 1), label_background_color, -1) cv2.putText(img_cp, label_text, (label_left, label_bottom), cv2.FONT_HERSHEY_SIMPLEX, 0.5, label_text_color, 1) cv2.putText(img_cp, fps, (camera_width-170,15), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (38,0,255), 1, cv2.LINE_AA) cv2.putText(img_cp, detectfps, (camera_width-170,30), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (38,0,255), 1, cv2.LINE_AA) return img_cp if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument("--model", default="models/mobilenet_ssd_v2_coco_quant_postprocess.tflite", help="Path of the detection model.") parser.add_argument("--label", default="coco_labels.txt", help="Path of the labels file.") parser.add_argument("--usbcamno", type=int, default=0, help="USB Camera number.") args = parser.parse_args() model = args.model usbcamno = args.usbcamno camera_width = 640 camera_height = 480 vidfps = 60 #core_num = mp.cpu_count() core_num = 1 threads_num = 4 try: mp.set_start_method('forkserver') frameBuffer = mp.Queue(10) results = mp.Queue() # Start streaming p = mp.Process( target=camThread, args=(results, frameBuffer, camera_width, camera_height, vidfps, usbcamno), daemon=True, ) p.start() processes.append(p) # Activation of inferencer for process_num in range(core_num): p = mp.Process( target=inferencer, args=(results, frameBuffer, model, camera_width, camera_height, process_num, threads_num), daemon=True, ) p.start() processes.append(p) while True: sleep(1) finally: for p in range(len(processes)): processes[p].terminate() ================================================ FILE: mobilenetv2ssd-sync-usbcam.py ================================================ import argparse #import platform import sys import numpy as np import cv2 import time #from PIL import Image from time import sleep import multiprocessing as mp try: from tflite_runtime.interpreter import Interpreter except: import tensorflow as tf lastresults = None processes = [] frameBuffer = None results = None fps = "" detectfps = "" framecount = 0 detectframecount = 0 time1 = 0 time2 = 0 box_color = (255, 128, 0) box_thickness = 1 label_background_color = (125, 175, 75) label_text_color = (255, 255, 255) percentage = 0.0 LABELS = [ '???','person','bicycle','car','motorcycle','airplane','bus','train','truck','boat', 'traffic light','fire hydrant','???','stop sign','parking meter','bench','bird','cat','dog','horse', 'sheep','cow','elephant','bear','zebra','giraffe','???','backpack','umbrella','???', '???','handbag','tie','suitcase','frisbee','skis','snowboard','sports ball','kite','baseball bat', 'baseball glove','skateboard','surfboard','tennis racket','bottle','???','wine glass','cup','fork','knife', 'spoon','bowl','banana','apple','sandwich','orange','broccoli','carrot','hot dog','pizza', 'donut','cake','chair','couch','potted plant','bed','???','dining table','???','???', 'toilet','???','tv','laptop','mouse','remote','keyboard','cell phone','microwave','oven', 'toaster','sink','refrigerator','???','book','clock','vase','scissors','teddy bear','hair drier', 'toothbrush'] class ObjectDetectorLite(): def __init__(self, model_path='detect.tflite', num_threads=12): try: self.interpreter = Interpreter(model_path=model_path, num_threads=num_threads) except: self.interpreter = tf.lite.Interpreter(model_path=model_path, num_threads=num_threads) try: self.interpreter.allocate_tensors() except: pass self.input_details = self.interpreter.get_input_details() self.output_details = self.interpreter.get_output_details() def _boxes_coordinates( self, image, boxes, classes, scores, max_boxes_to_draw=20, min_score_thresh=.5 ): if not max_boxes_to_draw: max_boxes_to_draw = boxes.shape[0] number_boxes = min(max_boxes_to_draw, boxes.shape[0]) person_boxes = [] for i in range(number_boxes): if scores is None or scores[i] > min_score_thresh: box = tuple(boxes[i].tolist()) ymin, xmin, ymax, xmax = box _, im_height, im_width, _ = image.shape left, right, top, bottom = [int(z) for z in (xmin * im_width, xmax * im_width, ymin * im_height, ymax * im_height)] person_boxes.append([(left, top), (right, bottom), scores[i], LABELS[classes[i]]]) return person_boxes def detect(self, image, threshold=0.1): # run model self.interpreter.set_tensor(self.input_details[0]['index'], image) start_time = time.time() self.interpreter.invoke() stop_time = time.time() print("time: ", stop_time - start_time) # get results boxes = self.interpreter.get_tensor(self.output_details[0]['index']) classes = self.interpreter.get_tensor(self.output_details[1]['index']) scores = self.interpreter.get_tensor(self.output_details[2]['index']) num = self.interpreter.get_tensor(self.output_details[3]['index']) # Find detected boxes coordinates return self._boxes_coordinates( image, np.squeeze(boxes[0]), np.squeeze(classes[0]+1).astype(np.int32), np.squeeze(scores[0]), min_score_thresh=threshold, ) def overlay_on_image(frames, object_infos, camera_width, camera_height): color_image = frames if isinstance(object_infos, type(None)): return color_image img_cp = color_image.copy() for obj in object_infos: box_left = int(obj[0][0]) box_top = int(obj[0][1]) box_right = int(obj[1][0]) box_bottom = int(obj[1][1]) cv2.rectangle(img_cp, (box_left, box_top), (box_right, box_bottom), box_color, box_thickness) percentage = int(obj[2] * 100) label_text = obj[3] + " (" + str(percentage) + "%)" label_size = cv2.getTextSize(label_text, cv2.FONT_HERSHEY_SIMPLEX, 0.5, 1)[0] label_left = box_left label_top = box_top - label_size[1] if (label_top < 1): label_top = 1 label_right = label_left + label_size[0] label_bottom = label_top + label_size[1] cv2.rectangle(img_cp, (label_left - 1, label_top - 1), (label_right + 1, label_bottom + 1), label_background_color, -1) cv2.putText(img_cp, label_text, (label_left, label_bottom), cv2.FONT_HERSHEY_SIMPLEX, 0.5, label_text_color, 1) cv2.putText(img_cp, fps, (camera_width-170,15), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (38,0,255), 1, cv2.LINE_AA) cv2.putText(img_cp, detectfps, (camera_width-170,30), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (38,0,255), 1, cv2.LINE_AA) return img_cp if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument("--model", default="models/mobilenet_ssd_v2_coco_quant_postprocess.tflite", help="Path of the detection model.") parser.add_argument("--usbcamno", type=int, default=0, help="USB Camera number.") parser.add_argument("--camera_type", default="usb_cam", help="set usb_cam or raspi_cam") parser.add_argument("--camera_width", type=int, default=640, help="width.") parser.add_argument("--camera_height", type=int, default=480, help="height.") parser.add_argument("--vidfps", type=int, default=150, help="Frame rate.") parser.add_argument("--num_threads", type=int, default=4, help="Threads.") args = parser.parse_args() model = args.model usbcamno = args.usbcamno camera_type = args.camera_type camera_width = args.camera_width camera_height = args.camera_height vidfps = args.vidfps num_threads = args.num_threads if camera_type == "usb_cam": cam = cv2.VideoCapture(usbcamno) cam.set(cv2.CAP_PROP_FPS, vidfps) cam.set(cv2.CAP_PROP_FRAME_WIDTH, camera_width) cam.set(cv2.CAP_PROP_FRAME_HEIGHT, camera_height) window_name = "USB Camera" elif camera_type == "raspi_cam": from picamera.array import PiRGBArray from picamera import PiCamera cam = PiCamera() cam.resolution = (camera_width, camera_height) stream = PiRGBArray(cam) window_name = "Raspi Camera" else: print('[Error] --camera_type: wrong device') parser.print_help() sys.exit() print(window_name) cv2.namedWindow(window_name, cv2.WINDOW_AUTOSIZE) detector = ObjectDetectorLite(model, num_threads) while True: t1 = time.perf_counter() if camera_type == 'raspi_cam': cam.capture(stream, 'bgr', use_video_port=True) color_image = stream.array stream.truncate(0) else: ret, color_image = cam.read() if not ret: continue prepimg = cv2.resize(color_image, (300, 300)) frames = prepimg.copy() prepimg = prepimg[:, :, ::-1].copy() prepimg = np.expand_dims(prepimg, axis=0) prepimg = prepimg.astype('uint8') res = detector.detect(prepimg, 0.4) imdraw = overlay_on_image(frames, res, camera_width, camera_height) imdraw = cv2.resize(imdraw, (camera_width, camera_height)) cv2.imshow(window_name, imdraw) if cv2.waitKey(1)&0xFF == ord('q'): break # FPS calculation framecount += 1 if framecount >= 15: fps = "(Playback) {:.1f} FPS".format(time1/15) framecount = 0 detectframecount = 0 time1 = 0 time2 = 0 t2 = time.perf_counter() elapsedTime = t2-t1 time1 += 1/elapsedTime time2 += elapsedTime ================================================ FILE: mobilenetv2ssd.py ================================================ import numpy as np import time from tflite_runtime.interpreter import Interpreter import cv2 LABELS = [ '???','person','bicycle','car','motorcycle','airplane','bus','train','truck','boat', 'traffic light','fire hydrant','???','stop sign','parking meter','bench','bird','cat','dog','horse', 'sheep','cow','elephant','bear','zebra','giraffe','???','backpack','umbrella','???', '???','handbag','tie','suitcase','frisbee','skis','snowboard','sports ball','kite','baseball bat', 'baseball glove','skateboard','surfboard','tennis racket','bottle','???','wine glass','cup','fork','knife', 'spoon','bowl','banana','apple','sandwich','orange','broccoli','carrot','hot dog','pizza', 'donut','cake','chair','couch','potted plant','bed','???','dining table','???','???', 'toilet','???','tv','laptop','mouse','remote','keyboard','cell phone','microwave','oven', 'toaster','sink','refrigerator','???','book','clock','vase','scissors','teddy bear','hair drier', 'toothbrush'] class ObjectDetectorLite(): def __init__(self, model_path='detect.tflite'): self.interpreter = Interpreter(model_path=model_path, num_threads=4) self.interpreter.allocate_tensors() self.input_details = self.interpreter.get_input_details() self.output_details = self.interpreter.get_output_details() def _boxes_coordinates( self, image, boxes, classes, scores, max_boxes_to_draw=20, min_score_thresh=.5 ): if not max_boxes_to_draw: max_boxes_to_draw = boxes.shape[0] number_boxes = min(max_boxes_to_draw, boxes.shape[0]) person_boxes = [] for i in range(number_boxes): if scores is None or scores[i] > min_score_thresh: box = tuple(boxes[i].tolist()) ymin, xmin, ymax, xmax = box im_height, im_width, _ = image.shape left, right, top, bottom = [int(z) for z in (xmin * im_width, xmax * im_width, ymin * im_height, ymax * im_height)] person_boxes.append([(left, top), (right, bottom), scores[i], LABELS[classes[i]]]) return person_boxes def detect(self, image, threshold=0.1): # Resize and normalize image for network input frame = cv2.resize(image, (300, 300)) frame = np.expand_dims(frame, axis=0) frame = frame.astype('uint8') # run model self.interpreter.set_tensor(self.input_details[0]['index'], frame) start_time = time.time() self.interpreter.invoke() stop_time = time.time() print("time: ", stop_time - start_time) # get results boxes = self.interpreter.get_tensor(self.output_details[0]['index']) classes = self.interpreter.get_tensor(self.output_details[1]['index']) scores = self.interpreter.get_tensor(self.output_details[2]['index']) num = self.interpreter.get_tensor(self.output_details[3]['index']) # Find detected boxes coordinates return self._boxes_coordinates( image, np.squeeze(boxes[0]), np.squeeze(classes[0]+1).astype(np.int32), np.squeeze(scores[0]), min_score_thresh=threshold, ) if __name__ == '__main__': detector = ObjectDetectorLite('models/mobilenet_ssd_v2_coco_quant_postprocess.tflite') image = cv2.cvtColor(cv2.imread('dog.jpg'), cv2.COLOR_BGR2RGB) result = detector.detect(image, 0.4) print(result) for obj in result: print('coordinates: {} {}. class: "{}". confidence: {:.2f}'. format(obj[0], obj[1], obj[3], obj[2])) cv2.rectangle(image, obj[0], obj[1], (0, 255, 0), 2) cv2.putText(image, '{}: {:.2f}'.format(obj[3], obj[2]), (obj[0][0], obj[0][1] - 5), cv2.FONT_HERSHEY_PLAIN, 1, (0, 255, 0), 2) cv2.imwrite('result.jpg', cv2.cvtColor(image, cv2.COLOR_RGB2BGR)) ================================================ FILE: models/coco_labels.txt ================================================ 0 person 1 bicycle 2 car 3 motorcycle 4 airplane 5 bus 6 train 7 truck 8 boat 9 traffic light 10 fire hydrant 12 stop sign 13 parking meter 14 bench 15 bird 16 cat 17 dog 18 horse 19 sheep 20 cow 21 elephant 22 bear 23 zebra 24 giraffe 26 backpack 27 umbrella 30 handbag 31 tie 32 suitcase 33 frisbee 34 skis 35 snowboard 36 sports ball 37 kite 38 baseball bat 39 baseball glove 40 skateboard 41 surfboard 42 tennis racket 43 bottle 45 wine glass 46 cup 47 fork 48 knife 49 spoon 50 bowl 51 banana 52 apple 53 sandwich 54 orange 55 broccoli 56 carrot 57 hot dog 58 pizza 59 donut 60 cake 61 chair 62 couch 63 potted plant 64 bed 66 dining table 69 toilet 71 tv 72 laptop 73 mouse 74 remote 75 keyboard 76 cell phone 77 microwave 78 oven 79 toaster 80 sink 81 refrigerator 83 book 84 clock 85 vase 86 scissors 87 teddy bear 88 hair drier 89 toothbrush ================================================ FILE: models/scripts.txt ================================================ https://coral.withgoogle.com/models/ wget http://download.tensorflow.org/models/object_detection/ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03.tar.gz tar -zxvf ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03.tar.gz tflite_convert \ --graph_def tflite_graph.pb \ --output_file mobilenet_ssd_v2_coco_quant_postprocess.tflite \ --input_arrays=normalized_input_image_tensor \ --input_shapes=1,300,300,3 \ --output_arrays='TFLite_Detection_PostProcess','TFLite_Detection_PostProcess:1','TFLite_Detection_PostProcess:2','TFLite_Detection_PostProcess:3' \ --inference_type=QUANTIZED_UINT8 \ --std_dev_values=127 \ --mean_values=128 \ --allow_custom_ops https://github.com/QuantuMobileSoftware/mobile_detector.git ================================================ FILE: models/tflite_graph.pb ================================================ [File too large to display: 23.7 MB]