Commit Graph

646 Commits

Author SHA1 Message Date
MediaPipe Team
977ee4272e Add public visibility to the model maker public API.
PiperOrigin-RevId: 489701768
2022-11-19 10:53:21 -08:00
Sebastian Schmidt
bbcbd5fc6c Audio Embedder for Web
PiperOrigin-RevId: 489669966
2022-11-19 04:49:24 -08:00
Sebastian Schmidt
e853f04b79 Create AudioTaskRunner
PiperOrigin-RevId: 489613573
2022-11-18 19:55:08 -08:00
Camillo Lugaresi
eb8ef1ace0 Use shared_from_this in GlTextureBuffer::GetReadView, GetWriteView
This ensures that the callbacks in GlTextureView won't call an expired object, even if user code holds a GlTextureView after releasing the buffer.

Note that GlTextureBuffer is not always held by a shared_ptr, but it always is when GpuBuffer calls GetRead/WriteView on it. An alternative solution would have been to have GpuBuffer pass its shared_ptr<GlTextureBuffer> to the view method, which could have been implemented with some compile-time logic to detect whether the method expects such an argument. However, that doesn't seem necessary.

PiperOrigin-RevId: 489611843
2022-11-18 19:42:34 -08:00
MediaPipe Team
bbd5da7971 Added the gray scale image support for the ImageToTensorCalculator on CPU.
PiperOrigin-RevId: 489593917
2022-11-18 17:12:57 -08:00
MediaPipe Team
524ac3ca61 Internal change for Model Maker
PiperOrigin-RevId: 489540387
2022-11-18 12:48:30 -08:00
Jiuqiang Tang
1b594a0310 Return error status when any tflite input and output tensor doesn't have valid dimensionality information that is needed to allocate Gl/Metal buffer before calling ModifyGraphWithDelegate.
PiperOrigin-RevId: 489539740
2022-11-18 12:44:55 -08:00
Sebastian Schmidt
71ae496a20 Add AudioEmbedder documentation
PiperOrigin-RevId: 489532283
2022-11-18 12:12:41 -08:00
MediaPipe Team
e2052a6a51 Rename embedding postprocessor "configure" method for consistency with classification postprocessor.
PiperOrigin-RevId: 489518257
2022-11-18 11:13:10 -08:00
Adam Cozzette
ac212c1507 Internal change
PiperOrigin-RevId: 489502255
2022-11-18 10:08:26 -08:00
MediaPipe Team
03d388fecf Add hand landmark named index constants
PiperOrigin-RevId: 489498248
2022-11-18 09:52:44 -08:00
MediaPipe Team
2f361e2f47 Internal change
PiperOrigin-RevId: 489486417
2022-11-18 08:53:43 -08:00
Jiuqiang Tang
e046982a3c Internal change
PiperOrigin-RevId: 489484898
2022-11-18 08:47:09 -08:00
Hadon Nash
ae44012c0c Allowing BypassCalculator to accept InputSidePackets.
PiperOrigin-RevId: 489483992
2022-11-18 08:43:02 -08:00
Camillo Lugaresi
efcdedbd59 Remove redundant _ios targets
PiperOrigin-RevId: 489355333
2022-11-17 18:16:58 -08:00
Copybara-Service
cd056e114a Merge pull request #3866 from kinaryml:fix-tasks-api-python-311-errors
PiperOrigin-RevId: 489346167
2022-11-17 17:20:23 -08:00
MediaPipe Team
6f3cb340e1 Internal change
PiperOrigin-RevId: 489345940
2022-11-17 17:16:25 -08:00
MediaPipe Team
ab3a5f0fbf Make MuxCalculator with DefaultInputStreamHandler to handle graph closure gracefully
PiperOrigin-RevId: 489336722
2022-11-17 16:30:35 -08:00
MediaPipe Team
a7bd725e65 Internal change
PiperOrigin-RevId: 489331826
2022-11-17 16:09:15 -08:00
MediaPipe Team
1fb0902aa0 Update gesture_recognizer test
PiperOrigin-RevId: 489301508
2022-11-17 14:04:30 -08:00
Sebastian Schmidt
3ccf7308e0 Add shared options for Text and Audio Tasks
PiperOrigin-RevId: 489186644
2022-11-17 05:28:27 -08:00
Hadon Nash
ea4989b6f1 Internal change
PiperOrigin-RevId: 489135553
2022-11-17 00:07:59 -08:00
kinaryml
5a6837d034 Fix errors that will occur in python 3.11 2022-11-16 22:08:52 -08:00
Sebastian Schmidt
899c87466e Add MP Tasks entrypoints
PiperOrigin-RevId: 489110875
2022-11-16 20:57:33 -08:00
Camillo Lugaresi
6fc277ee1c Internal change
PiperOrigin-RevId: 489091534
2022-11-16 18:38:03 -08:00
Sebastian Schmidt
e66e88802c Change NPM Bundle to ESM
PiperOrigin-RevId: 489091370
2022-11-16 18:34:53 -08:00
MediaPipe Team
90eb4a19d8 Internal change
PiperOrigin-RevId: 489088227
2022-11-16 18:16:32 -08:00
MediaPipe Team
b6b72d5e4e Add MuxCalculator test case where graph is being closed while SELECT has not been received.
PiperOrigin-RevId: 489061902
2022-11-16 15:56:43 -08:00
Sebastian Schmidt
3cdf0f6536 Fix a crash that occurred when a model returns fewer vector elements than before
PiperOrigin-RevId: 489041814
2022-11-16 14:38:37 -08:00
MediaPipe Team
74474d859e Update image_classifier demo with new ImageClassifierOption changes
PiperOrigin-RevId: 489031381
2022-11-16 14:00:39 -08:00
MediaPipe Team
cdd44e77b7 Internal change
PiperOrigin-RevId: 488969539
2022-11-16 10:07:40 -08:00
MediaPipe Team
dc9578d226 Internal change
PiperOrigin-RevId: 488946809
2022-11-16 08:30:20 -08:00
Sebastian Schmidt
f7aef677fc Add running mode to all vision tasks
PiperOrigin-RevId: 488816785
2022-11-15 19:02:21 -08:00
Camillo Lugaresi
febfc2029b Annotate plane argument
PiperOrigin-RevId: 488813363
2022-11-15 18:53:09 -08:00
Camillo Lugaresi
63e2089639 Deprecate a bunch of old stuff in GlCalculatorHelper
PiperOrigin-RevId: 488813296
2022-11-15 18:51:56 -08:00
Camillo Lugaresi
1979801a92 Remove GlCalculatorHelperImpl; merge with GlCalculatorHelper
Originally, there were multiple implementations of GlCalculatorHelperImpl, depending on the platform and underlying GL APIs. These have all been refactored into other components, and the remaining code in this class is unified and much reduced in size. We can get rid of this implementation detail now.

PiperOrigin-RevId: 488813220
2022-11-15 18:50:45 -08:00
Camillo Lugaresi
8b319e963a Add comment explaining ViewProvider
This was only documented via examples (e.g. ViewProvider<GlTextureView>), but it's better to explain it properly in the header where the base case is defined.

PiperOrigin-RevId: 488813144
2022-11-15 18:48:54 -08:00
Camillo Lugaresi
a28ccb0964 Remove unnecessary forward declarations
PiperOrigin-RevId: 488813066
2022-11-15 18:43:36 -08:00
Camillo Lugaresi
13b4b825d7 Remove std::shared_ptr<GpuBuffer> argument from GetRead/WriteView
PiperOrigin-RevId: 488813004
2022-11-15 18:41:53 -08:00
Camillo Lugaresi
1c0a1d0aab Remove shared_ptr<GpuBuffer> member from GlTextureView
This only exists to support GlTexture's GetFrame API. It can be moved into GlTexture.

PiperOrigin-RevId: 488812896
2022-11-15 18:40:15 -08:00
Camillo Lugaresi
767cc2ee3c More comments on gpu_buffer_storage
This gives a basic explanation of the role of storages and views, and provides some details on how to implement a new storage type.

PiperOrigin-RevId: 488812807
2022-11-15 18:38:29 -08:00
Camillo Lugaresi
4c874fe4cd Allow conversion of GlTextureBuffer to CVPixelBufferRef
This means that, if an iOS application sends in a GlTextureBuffer but expects a CVPixelBufferRef as output, everything will work even if the graph just forwards the same input. Also, access by Metal calculators will also work transparently.

PiperOrigin-RevId: 488812748
2022-11-15 18:36:45 -08:00
Camillo Lugaresi
fe66de3714 Internal change
PiperOrigin-RevId: 488812677
2022-11-15 18:32:54 -08:00
MediaPipe Team
2f77bf44e3 Use train_data to evaluate accuracy of unit test for gesture_recognizer due to limited dataset size.
PiperOrigin-RevId: 488808942
2022-11-15 18:10:28 -08:00
Camillo Lugaresi
b308c0dd5e Implement CVPixelBufferRef access as a view.
PiperOrigin-RevId: 488798216
2022-11-15 17:18:07 -08:00
Camillo Lugaresi
4bda012bba Factor out gl_texture_util
PiperOrigin-RevId: 488797985
2022-11-15 17:13:22 -08:00
Camillo Lugaresi
77b3edbb67 Internal change
PiperOrigin-RevId: 488797407
2022-11-15 17:09:43 -08:00
Camillo Lugaresi
7e19bbe35c Internal change
PiperOrigin-RevId: 488795920
2022-11-15 17:01:33 -08:00
Camillo Lugaresi
1beca61650 Register GlTextureBuffer pool with GpuBuffer
First crack at hooking up pools with the GpuBufferStorage system. Will most likely be superseded later, but for now this works with minimal code impact: just overwrite the factory for a storage type with one that uses the pool.

PiperOrigin-RevId: 488783854
2022-11-15 16:19:48 -08:00
Camillo Lugaresi
583d27636b Factor out ReusablePool
PiperOrigin-RevId: 488783477
2022-11-15 16:18:20 -08:00
Camillo Lugaresi
53d015af08 Generic MultiPool template
PiperOrigin-RevId: 488783176
2022-11-15 16:15:42 -08:00
Camillo Lugaresi
b9fa2e3496 Make it possible to override the SimplePool factory used by MultiPool
This means MultiPool no longer needs a SetFlushPlatformCaches method, which was too specific to the CVPixelBufferPool.

PiperOrigin-RevId: 488783003
2022-11-15 16:14:27 -08:00
Camillo Lugaresi
267476657d MultiPool options header refactoring
Passing MultiPool options to the base pool factories means that we don't have to specialize which options we pass to them.

PiperOrigin-RevId: 488782861
2022-11-15 16:13:05 -08:00
Camillo Lugaresi
7ef3185ecb Allow customizing MultiPool options
These don't need to be constants.

PiperOrigin-RevId: 488782713
2022-11-15 16:11:54 -08:00
Camillo Lugaresi
f13903b7c5 Call SimplePool methods directly
This removes redundant helper functions in GpuBufferMultiPool.

PiperOrigin-RevId: 488782516
2022-11-15 16:10:34 -08:00
Camillo Lugaresi
0c4522cb9f Move flush hook to CvPixelBufferPoolWrapper constructor
This unifies the implementation of GpuBufferMultiPool::GetBufferFromSimplePool.

PiperOrigin-RevId: 488782173
2022-11-15 16:07:17 -08:00
Camillo Lugaresi
a4fe3eb094 Add CreateBufferWithoutPool method to base pools
This may not fit exactly in a pool class, but it makes it easy for the multi-pool to find the appropriate method by depending only on the type of the base pool. For the CVPixelBuffer case, the buffer type is CFHolder<CVPixelBufferRef>, and it seems even less appropriate to specialize that template to add such a method there. An alternative would be to allow defining a creation function separately.

PiperOrigin-RevId: 488782054
2022-11-15 16:05:53 -08:00
Camillo Lugaresi
0d273dd11a Factor out CvPixelBufferPoolWrapper
This is platform-specific and does not need to live in the main multi_pool sources.

PiperOrigin-RevId: 488781934
2022-11-15 16:04:27 -08:00
Camillo Lugaresi
ab2dd779e7 Factor out CvTextureCacheManager
This is a platform-specific component that is only used with CVPixelBufferPool.

PiperOrigin-RevId: 488781757
2022-11-15 16:02:53 -08:00
MediaPipe Team
fae55910f4 Enable absl::string_view kCalculatorName
PiperOrigin-RevId: 488781493
2022-11-15 15:59:09 -08:00
Camillo Lugaresi
a520d6cc38 Remove FORCE_CONTIGUOUS_PIXEL_BUFFER_ON_IPHONE_SIMULATOR
This workaround code is no longer necessary, as per the comment.

PiperOrigin-RevId: 488777606
2022-11-15 15:41:53 -08:00
Camillo Lugaresi
3c71c64be1 Remove shared_ptr from SimplePool definition
This makes the types more explicit and will help with factoring out platform-specific code.

PiperOrigin-RevId: 488775470
2022-11-15 15:32:57 -08:00
Camillo Lugaresi
a67069156e Use flat_hash_map in ResourceCache
This is the recommended hashmap in most cases.

PiperOrigin-RevId: 488772031
2022-11-15 15:23:31 -08:00
MediaPipe Team
38b636f7ee Internal change
PiperOrigin-RevId: 488770794
2022-11-15 15:19:48 -08:00
Camillo Lugaresi
7a87546c30 Internal change
PiperOrigin-RevId: 488761646
2022-11-15 14:39:58 -08:00
MediaPipe Team
e65f21e2d8 Update the docstring to make it consistent with the model option update.
PiperOrigin-RevId: 488761331
2022-11-15 14:36:48 -08:00
Sebastian Schmidt
496720308c Migrate remaining MP Tasks Libraries to ts_declarations
PiperOrigin-RevId: 488752799
2022-11-15 14:08:15 -08:00
MediaPipe Team
1689112b23 Improve model_util_test code.
PiperOrigin-RevId: 488752497
2022-11-15 14:04:39 -08:00
MediaPipe Team
f14645cb06 Model maker gesture recognizer test changes
PiperOrigin-RevId: 488702055
2022-11-15 10:50:32 -08:00
MediaPipe Team
ebba119f15 Add Java ImageEmbedder API.
PiperOrigin-RevId: 488588010
2022-11-15 01:26:00 -08:00
Camillo Lugaresi
6f54308c25 Internal change
PiperOrigin-RevId: 488552135
2022-11-14 21:42:41 -08:00
Jiuqiang Tang
87dff8142c Fix a typo.
PiperOrigin-RevId: 488519113
2022-11-14 18:13:50 -08:00
Sebastian Schmidt
9bd8b432c3 Add typings support to d.ts package
PiperOrigin-RevId: 488519074
2022-11-14 18:10:25 -08:00
Jiuqiang Tang
f16e63694e Build embedding tasks into tasks AARs.
PiperOrigin-RevId: 488509942
2022-11-14 17:18:12 -08:00
Sebastian Schmidt
a12bc3fd0e Add IIFE bundles for NPM packages
PiperOrigin-RevId: 488504360
2022-11-14 16:51:58 -08:00
Jiuqiang Tang
794f64db55 Fix the wrong path of "text_embedder_graph_options_java_proto_lite".
PiperOrigin-RevId: 488490050
2022-11-14 15:51:05 -08:00
Jiuqiang Tang
cce1751dbf Expose tasks components API in PyPI packages.
PiperOrigin-RevId: 488487666
2022-11-14 15:41:11 -08:00
Jiuqiang Tang
e714e656fe Update python documentation.
PiperOrigin-RevId: 488482142
2022-11-14 15:18:47 -08:00
Sebastian Schmidt
c027373688 Internal change
PiperOrigin-RevId: 488481286
2022-11-14 15:15:22 -08:00
Sebastian Schmidt
11270d0c93 Image Embedder for Web
PiperOrigin-RevId: 488468214
2022-11-14 14:26:15 -08:00
Jiuqiang Tang
b4fba6fe61 MediaPipe Tasks AudioEmbedder Java API
PiperOrigin-RevId: 488456442
2022-11-14 13:42:55 -08:00
Sebastian Schmidt
ca7b5e9d8b Fix Script loading
PiperOrigin-RevId: 488440736
2022-11-14 12:40:41 -08:00
Copybara-Service
9a2af2f2a1 Merge pull request #3853 from kinaryml:audio-embedder-python
PiperOrigin-RevId: 488434586
2022-11-14 12:16:45 -08:00
Sebastian Schmidt
b00236e86e Hand Landmarker Web API
PiperOrigin-RevId: 488434079
2022-11-14 12:13:27 -08:00
MediaPipe Team
34daba4747 Add Java TextEmbedder API.
PiperOrigin-RevId: 488427327
2022-11-14 11:49:56 -08:00
Jiuqiang Tang
b40b2ade14 Fix typos.
PiperOrigin-RevId: 488416345
2022-11-14 11:07:59 -08:00
Jiuqiang Tang
4b5c3521af Dividing the timestamp by 1000 when returning a "none" result object from GestureRecognizer and HandLandmarker APIs.
PiperOrigin-RevId: 488409077
2022-11-14 10:44:20 -08:00
MediaPipe Team
c7d531ebb2 AddTarget -> ConnectTo and documentation
PiperOrigin-RevId: 488407930
2022-11-14 10:40:06 -08:00
MediaPipe Team
05cb40ff79 MediaPipe TextEmbedder task for web
PiperOrigin-RevId: 488373613
2022-11-14 08:34:09 -08:00
MediaPipe Team
badaccfb04 Internal change
PiperOrigin-RevId: 488333493
2022-11-14 05:05:03 -08:00
Nikolay Chirkov
bc6240e989 Zero-initialize id<MTLDevice> etc. members in Tensor
PiperOrigin-RevId: 488308585
2022-11-14 02:31:15 -08:00
Sebastian Schmidt
6610ca72ba Add ts_declaration rule for OSS
PiperOrigin-RevId: 488307893
2022-11-14 02:27:21 -08:00
Sebastian Schmidt
8d9cdb86dc Internal change
PiperOrigin-RevId: 488294157
2022-11-14 01:25:57 -08:00
kinaryml
a2bb58382d Added AudioEmbedder API and tests along with fixing a couple of typos in AudioClassifier 2022-11-14 01:20:45 -08:00
Jiuqiang Tang
6c0ca947de MediaPipe Tasks Audio embedder C++ API.
PiperOrigin-RevId: 488273381
2022-11-13 23:10:23 -08:00
Copybara-Service
0dfa91a166 Merge pull request #3846 from kinaryml:text-embedder-python
PiperOrigin-RevId: 488198025
2022-11-13 10:44:54 -08:00
Jiuqiang Tang
8aa59faaa4 Internal change
PiperOrigin-RevId: 488193046
2022-11-13 09:51:48 -08:00
Alan Kelly
bb6fa85703 Enable unsigned quantized infererence using XNNPACK.
PiperOrigin-RevId: 488179656
2022-11-13 07:10:04 -08:00
Liam Miller-Cushon
da36468409 Internal change
PiperOrigin-RevId: 488065083
2022-11-12 10:13:58 -08:00
MediaPipe Team
aafbf73c0a Renames model options in TextClassifier.
PiperOrigin-RevId: 488063797
2022-11-12 10:02:19 -08:00