+++ /dev/null
-; Copyright 2023 Amélia COUTARD.
-;
-; This file from the guix channel amy is free software: you can redistribute it and/or modify it
-; under the terms of the GNU General Public License as published by the Free Software Foundation,
-; either version 3 of the License, or (at your option) any later version.
-;
-; This channel is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
-; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-; PURPOSE. See the GNU General Public License for more details.
-;
-; You should have received a copy of the GNU General Public License along with this channel. If
-; not, see <https://www.gnu.org/licenses/>.
-
-(define-module (amy packages openseeface)
- #:use-module (gnu packages cmake)
- #:use-module (gnu packages commencement)
- #:use-module (gnu packages compression)
- #:use-module (gnu packages elf)
- #:use-module (gnu packages gcc)
- #:use-module (gnu packages image-processing)
- #:use-module (gnu packages protobuf)
- #:use-module (gnu packages python)
- #:use-module (gnu packages python-xyz)
- #:use-module (gnu packages serialization)
- #:use-module (gnu packages version-control)
- #:use-module (guix)
- #:use-module (guix build-system copy)
- #:use-module (guix git-download)
- #:use-module ((guix licenses)
- #:select (bsd-2 expat))
- #:export (openseeface))
-
-;; (define onnxruntime
-;; (package
-;; (name "onnxruntime")
-;; (version "1.17.1")
-;; (source
-;; (origin
-;; (method git-fetch)
-;; (uri (git-reference
-;; (url "https://github.com/microsoft/onnxruntime")
-;; (commit (string-append "v" version))
-;; (recursive? #t)))
-;; (file-name (git-file-name name version))
-;; (sha256
-;; (base32 "02fwm3m4kgd8a6v4f7v2al25nbnlphzqlxrx44gcxx3k1kcb96n6"))))
-;; (build-system pyproject-build-system)
-;; (inputs (list cmake git))
-;; (propagated-inputs (list python-coloredlogs
-;; python-flatbuffers
-;; python-numpy
-;; python-packaging
-;; python-protobuf
-;; python-sympy))
-;; (arguments
-;; (list
-;; #:phases #~(modify-phases %standard-phases
-;; (add-after 'unpack 'cmake-version
-;; (lambda* (#:key #:allow-other-keys)
-;; (substitute* "cmake/CMakeLists.txt"
-;; (("3.26")
-;; "3.25"))))
-;; (replace 'build
-;; (lambda* (#:key #:allow-other-keys)
-;; (invoke "./build.sh" "--skip_submodule_sync"))))))
-;; (synopsis "ML inferencing and training accelerator")
-;; (description
-;; "ONNX Runtime is a cross-platform inference and training machine-learning accelerator")
-;; (home-page "https://onnxruntime.ai")
-;; (license expat)))
-
-;; Downloading builds because it's a ***pain*** to build.
-(define onnxruntime
- (package
- (name "onnxruntime")
- (version "1.17.1")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://files.pythonhosted.org/packages/3d/85/db9e2ccef45f1670013495084bf74db7b24e2edfd3d7be92211eb968e369/onnxruntime-" version
- "-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl"))
- (sha256
- (base32 "1mxhqnppipav5v90cip55gs9wc2dxc45giqqdx7gav067ayd5g7b"))
- (file-name (string-append "onnxruntime-built-v" version ".zip"))))
- (inputs (list `(,gcc "lib")
- gcc-toolchain
- patchelf
- python
- unzip))
- (build-system copy-build-system)
- (arguments
- (list
- #:phases #~(modify-phases %standard-phases
- (add-after 'unpack 'python-to-python3
- (lambda* (#:key #:allow-other-keys)
- (substitute* "quantization/calibrate.py"
- (("#!/usr/bin/env python")
- "#!/usr/bin/env python3"))))
- (add-before 'install 'patch-runpath
- (lambda* (#:key #:allow-other-keys)
- (invoke "patchelf" "--set-rpath"
- (string-join (list (string-append #$gcc:lib "/lib")
- (string-append #$gcc-toolchain
- "/lib")) ":")
- "capi/libonnxruntime_providers_shared.so"
- "capi/onnxruntime_pybind11_state.cpython-310-x86_64-linux-gnu.so"))))
- #:install-plan ''(("../onnxruntime" "lib/"))))
- (synopsis "ML inferencing and training accelerator")
- (description
- "ONNX Runtime is a cross-platform inference and training machine-learning accelerator")
- (home-page "https://onnxruntime.ai")
- (license expat)))
-
-(define openseeface
- (package
- (name "openseeface")
- (version "1.20.4")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/emilianavt/OpenSeeFace/archive/refs/tags/v"
- version ".tar.gz"))
- (sha256
- (base32 "0jblygfzk36k1328ymglir4947ba1pmcg77ckwvixvjiji82lj2h"))))
- (build-system copy-build-system)
- (inputs (list onnxruntime
- opencv
- python
- python-flatbuffers
- python-numpy
- python-pillow))
- (arguments
- (list
- #:phases #~(modify-phases %standard-phases
- (add-after 'unpack 'fix-py-shebang
- (lambda* (#:key #:allow-other-keys)
- (substitute* "facetracker.py"
- (("import copy")
- "#!/usr/bin/python3\nimport copy"))))
- (add-after 'install 'wrap
- (lambda* (#:key #:allow-other-keys)
- (invoke "chmod" "+x"
- (string-append #$output "/bin/facetracker.py"))
- (wrap-program (string-append #$output
- "/bin/facetracker.py")
- `("PYTHONPATH" =
- (,(getenv "GUIX_PYTHONPATH") ,(string-append #$output
- "/lib/openseeface") ,(string-append #$onnxruntime "/lib")))))))
- #:install-plan ''(("facetracker.py" "bin/")
- ("models" "lib/openseeface/")
- ("input_reader.py" "lib/openseeface/")
- ("escapi.py" "lib/openseeface/")
- ("dshowcapture.py" "lib/openseeface/")
- ("remedian.py" "lib/openseeface/")
- ("retinaface.py" "lib/openseeface/")
- ("similaritytransform.py" "lib/openseeface/")
- ("tracker.py" "lib/openseeface/"))))
- (synopsis "Realtime face tracking")
- (description
- "OpenSeeFace is a program for realtime face and facial landmark tracking on the CPU")
- (home-page "https://github.com/emilianavt/OpenSeeFace")
- (license bsd-2)))