2 Commits

Author SHA1 Message Date
b5f3b54b15 Huge update to get on par with MediaPipeUnityPlugin (#39)
* Use new MediaPipe packages and update version

* Apply updates from MediaPipeUnityPlugin

All while keeping C pointers like `void*` instead of `IntPtr`
and various other practices.

* Add VSCode task to debug tests

* Fix unset freeHGlobal delegate

This can happen because the static code of the NativeMethods class
could have not run, for some reason...

* Fix all examples

* Fix import reordering
2022-07-30 14:37:17 +08:00
d562895694 Rewrite solutions (#33)
* Add paths for Linux in BlazePose example

* Add BlazePose example to VSCode debug launchers

* Use `pose_landmark` instead of `pose_tracking_*`

* Pluralize `SidePacket`

The correct way to call it is actually `SidePackets`,
as it is internally a `map<string, Packet>`.

* Little XML doc

* Consolidate `StartRun` method parameters

* Add `SidePackets` property to `Calculator`

* Add side packet arguments to `BlazePose`

* Use the `pose_tracking` graph

Let's try specifying side packets there instead.

* Use asynchronous SeeShark frame input

Looks like that doesn't fix the FPS...

* Remove unnecessary `unsafe`

* Better error handling in example program

* Uncomment additional SidePacket

* Implement new Packet API

* Rename `Packet` namespace to `OldPacket`

* Rename `NewPacket` namespace to `Packet`

* Actually, `Packets` is better...

* Delete old Packet API

* Replace Calculators with Solutions

Solutions are written in a way to imitate the
MediaPipe Python API as much as possible.

* Remove Old Packet API tests

* Fix remaining tests

* No more `SignalAbort` :0

* Revert "No more `SignalAbort` :0"

This reverts commit dd63b53fb53590560188d652346130ff31c74c62.

* Create `FaceMeshCpuSolution`

* Add interface

* Temporarily remove non-compiling example projects

* This solution produces segfaults...

* Create `PacketType` enum

Store packet outputs instead of packets in solution
No segfault now :D

* Use an `IDictionary` for outputs

* Create a `Hands` example

* Hand tracking is 10 times slower...

* No threading T-T

* Add `FaceMeshGpu` solution

* Avoid `free(): invalid pointer` error

* Implement `HandsGpu` solution

It works perfectly fine :D

* Start reimplementing Pose example

* Pose landmarks CPU (it's very slow)

* Just correcting some things in the examples

* Implement `PoseGpuSolution` (it's decently fast)

* `OsuFrameworkVisualTests` example works too

Though we need a way to make solutions multithreaded.

* Attempt at thread-safe `Solution` implementation

* There is no thread-safe solution. :')

This reverts commit 6e9ccca3deebf3ca74ed25c41e619c07c5febd94.

* Fix duplicate project in solution

How the fuck did that happen???
2022-07-25 23:53:06 +08:00