
* Begin refactor
Signed-off-by: Ayane Satomi <ayane@vignetteapp.org>
* Begin IntPtr sweeping changes
Signed-off-by: Ayane Satomi <ayane@vignetteapp.org>
* Implement StringPacket
Signed-off-by: Ayane Satomi <ayane@vignetteapp.org>
* Implement StringPacket
Signed-off-by: Ayane Satomi <ayane@vignetteapp.org>
* Remove factory class to prepare for strongly typed packets
Signed-off-by: Ayane Satomi <ayane@vignetteapp.org>
* Finish FloatVectorPacket
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Finish Anchor3DVectorPacket and BoolPacket
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Make SerializedProto actually IDisposable
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Finish ClassificationListPacket
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Finish ClassificationListVectorPacket
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Finish DetectionPacket
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Finish DetectionVectorPacket
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Finish FaceGeometryPacket
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Finish FaceGeometryVectorPacket
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Finish FloatArrayPacket
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Fix mismatched extern call for FloatVector
This is potentially lethal and can cause a really bad bug on use
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Finish FloatPacket
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Finish FrameAnnotationPacket
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Finish GpuBufferPacket
Converting the entirety of the GPU PInvoke code was also performed, it was unavoidable
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Update imageFrame
This is kind of butchered but we will have a span-based overload again when I feel like it
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Reintroduce the memory safe iamge handling again
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Porting ImageFrame is an act of god ong
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Finish ImageFramePacket
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Finish IntPacket
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Fix pointer ambiguity in MpResourceHandle
Signed-off-by: Ayane Satomi <ayane@vignetteapp.org>
* Let MpResourceHandle use its private property handle
Signed-off-by: Ayane Satomi <ayane@vignetteapp.org>
* Finish LandmarkListPacket
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Finish LandmarkListVectorPacket
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Finish NoramlizedLandmarkListPacket
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Finish MatrixPacket
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Finish NormalizedRectPacket
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Finish normalizedVectorRect
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Finish RectPacket
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Finsih RectVector
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Finish all Packets
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Fixup CalculatorGraph for generic Packet types
Signed-off-by: Ayane <ayane@vignetteapp.org>
* a
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Deprecate Solutions class
As there is no maintainers for it, it doesn't seem worth keeping it for now. We will put it on it's own package instead
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Forgot to commit this 💀
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Fix more casting issues
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Make sure native methods are marshaled properly
Signed-off-by: Ayane <ayane@vignetteapp.org>
* Update some tests
Signed-off-by: Ayane Satomi <ayane@vignetteapp.org>
* Add an even more memory safe ctor for ImageFrame
Signed-off-by: Ayane Satomi <ayane@vignetteapp.org>
* Fix tests lmao
Signed-off-by: Ayane Satomi <ayane@vignetteapp.org>
* Fix StringPacket not pointing to a ptr
Signed-off-by: Ayane Satomi <ayane@vignetteapp.org>
* Fix incorrect test facts provided on cases
Signed-off-by: Ayane Satomi <ayane@vignetteapp.org>
---------
Signed-off-by: Ayane Satomi <ayane@vignetteapp.org>
Signed-off-by: Ayane <ayane@vignetteapp.org>
MediaPipe.NET
Bringing the best of MediaPipe to the .NET ecosystem! Based on MediaPipeUnity, MediaPipe.NET brings Google's MediaPipe into the .NET ecosystem in its fullest.
Installation
You may install via NuGet:
dotnet add --project <Project> Mediapipe.Net
Since this library is mapping off native methods from MediaPipe to the CLR realm, the runtime is not explicitly included in the NuGet package or in this repository. Interested parties who may want to head to the MediaPipe.NET.Runtime repository, where the native code resides.
However, if you just want things to work, You will want to use MediaPipe.Net.Runtime
, you have the option of using CPU or GPU:
$ dotnet add --project <Project> Mediapipe.Net.Runtime.Gpu # if you want to use GPU
$ dotnet add --project <Project> Mediapipe.Net.Runtime.Cpu # if you want to use CPU
⚠️ NOTE ⚠️ : Certain features may not work at the moment in GPU, please consult the compatibility matrix.
Compatibility Matrix
We share the same compatibility matrix with MediaPipeUnityPlugin, so this will change depending on whichever party implements what's missing.
Linux (x86_64) | macOS (x86_64) | macOS (ARM64) | Windows (x86_64) | Android | iOS | |
---|---|---|---|---|---|---|
Linux (AMD64) 1 | ✔️ | ❓ | ||||
Intel Mac | ✔️ | ❓ | ❓ | |||
M1 Mac 2 | ✔️ | ❓ | ❓ | |||
Windows 10 (AMD64) 34 | ✔️ | ✔️ | ❓ |
Examples
Coming soon!
Copyright
MediaPipe.NET is Copyright © The Vignette Authors, Licensed under MIT. Parts of this code is based on MediaPipeUnity, Copyright © homuler, Licensed under MIT.
-
Tested on Arch Linux. ↩︎
-
Experimental, because MediaPipe does not support M1 Mac. ↩︎
-
Windows 11 will be also OK. ↩︎
-
Running MediaPipe on Windows is experimental. ↩︎