mediapipe-nightly 0.10.21.post20250114__cp311-cp311-manylinux_2_28_x86_64.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (593) hide show
  1. mediapipe/__init__.py +26 -0
  2. mediapipe/calculators/__init__.py +0 -0
  3. mediapipe/calculators/audio/__init__.py +0 -0
  4. mediapipe/calculators/audio/mfcc_mel_calculators_pb2.py +33 -0
  5. mediapipe/calculators/audio/rational_factor_resample_calculator_pb2.py +33 -0
  6. mediapipe/calculators/audio/spectrogram_calculator_pb2.py +37 -0
  7. mediapipe/calculators/audio/stabilized_log_calculator_pb2.py +31 -0
  8. mediapipe/calculators/audio/time_series_framer_calculator_pb2.py +33 -0
  9. mediapipe/calculators/core/__init__.py +0 -0
  10. mediapipe/calculators/core/bypass_calculator_pb2.py +31 -0
  11. mediapipe/calculators/core/clip_vector_size_calculator_pb2.py +31 -0
  12. mediapipe/calculators/core/concatenate_vector_calculator_pb2.py +31 -0
  13. mediapipe/calculators/core/constant_side_packet_calculator_pb2.py +39 -0
  14. mediapipe/calculators/core/dequantize_byte_array_calculator_pb2.py +31 -0
  15. mediapipe/calculators/core/flow_limiter_calculator_pb2.py +32 -0
  16. mediapipe/calculators/core/gate_calculator_pb2.py +33 -0
  17. mediapipe/calculators/core/get_vector_item_calculator_pb2.py +31 -0
  18. mediapipe/calculators/core/graph_profile_calculator_pb2.py +31 -0
  19. mediapipe/calculators/core/packet_cloner_calculator_pb2.py +31 -0
  20. mediapipe/calculators/core/packet_resampler_calculator_pb2.py +33 -0
  21. mediapipe/calculators/core/packet_thinner_calculator_pb2.py +33 -0
  22. mediapipe/calculators/core/quantize_float_vector_calculator_pb2.py +31 -0
  23. mediapipe/calculators/core/sequence_shift_calculator_pb2.py +31 -0
  24. mediapipe/calculators/core/split_vector_calculator_pb2.py +33 -0
  25. mediapipe/calculators/image/__init__.py +0 -0
  26. mediapipe/calculators/image/bilateral_filter_calculator_pb2.py +31 -0
  27. mediapipe/calculators/image/feature_detector_calculator_pb2.py +31 -0
  28. mediapipe/calculators/image/image_clone_calculator_pb2.py +31 -0
  29. mediapipe/calculators/image/image_cropping_calculator_pb2.py +33 -0
  30. mediapipe/calculators/image/image_transformation_calculator_pb2.py +38 -0
  31. mediapipe/calculators/image/mask_overlay_calculator_pb2.py +33 -0
  32. mediapipe/calculators/image/opencv_encoded_image_to_image_frame_calculator_pb2.py +31 -0
  33. mediapipe/calculators/image/opencv_image_encoder_calculator_pb2.py +35 -0
  34. mediapipe/calculators/image/recolor_calculator_pb2.py +34 -0
  35. mediapipe/calculators/image/rotation_mode_pb2.py +29 -0
  36. mediapipe/calculators/image/scale_image_calculator_pb2.py +34 -0
  37. mediapipe/calculators/image/segmentation_smoothing_calculator_pb2.py +31 -0
  38. mediapipe/calculators/image/set_alpha_calculator_pb2.py +31 -0
  39. mediapipe/calculators/image/warp_affine_calculator_pb2.py +36 -0
  40. mediapipe/calculators/internal/__init__.py +0 -0
  41. mediapipe/calculators/internal/callback_packet_calculator_pb2.py +33 -0
  42. mediapipe/calculators/tensor/__init__.py +0 -0
  43. mediapipe/calculators/tensor/audio_to_tensor_calculator_pb2.py +35 -0
  44. mediapipe/calculators/tensor/bert_preprocessor_calculator_pb2.py +31 -0
  45. mediapipe/calculators/tensor/feedback_tensors_calculator_pb2.py +37 -0
  46. mediapipe/calculators/tensor/image_to_tensor_calculator_pb2.py +40 -0
  47. mediapipe/calculators/tensor/inference_calculator_pb2.py +63 -0
  48. mediapipe/calculators/tensor/landmarks_to_tensor_calculator_pb2.py +33 -0
  49. mediapipe/calculators/tensor/regex_preprocessor_calculator_pb2.py +31 -0
  50. mediapipe/calculators/tensor/tensor_converter_calculator_pb2.py +34 -0
  51. mediapipe/calculators/tensor/tensor_to_joints_calculator_pb2.py +31 -0
  52. mediapipe/calculators/tensor/tensors_readback_calculator_pb2.py +35 -0
  53. mediapipe/calculators/tensor/tensors_to_audio_calculator_pb2.py +33 -0
  54. mediapipe/calculators/tensor/tensors_to_classification_calculator_pb2.py +44 -0
  55. mediapipe/calculators/tensor/tensors_to_detections_calculator_pb2.py +39 -0
  56. mediapipe/calculators/tensor/tensors_to_floats_calculator_pb2.py +33 -0
  57. mediapipe/calculators/tensor/tensors_to_landmarks_calculator_pb2.py +33 -0
  58. mediapipe/calculators/tensor/tensors_to_segmentation_calculator_pb2.py +34 -0
  59. mediapipe/calculators/tensor/vector_to_tensor_calculator_pb2.py +27 -0
  60. mediapipe/calculators/tflite/__init__.py +0 -0
  61. mediapipe/calculators/tflite/ssd_anchors_calculator_pb2.py +32 -0
  62. mediapipe/calculators/tflite/tflite_converter_calculator_pb2.py +33 -0
  63. mediapipe/calculators/tflite/tflite_custom_op_resolver_calculator_pb2.py +31 -0
  64. mediapipe/calculators/tflite/tflite_inference_calculator_pb2.py +49 -0
  65. mediapipe/calculators/tflite/tflite_tensors_to_classification_calculator_pb2.py +31 -0
  66. mediapipe/calculators/tflite/tflite_tensors_to_detections_calculator_pb2.py +31 -0
  67. mediapipe/calculators/tflite/tflite_tensors_to_landmarks_calculator_pb2.py +33 -0
  68. mediapipe/calculators/tflite/tflite_tensors_to_segmentation_calculator_pb2.py +31 -0
  69. mediapipe/calculators/util/__init__.py +0 -0
  70. mediapipe/calculators/util/align_hand_to_pose_in_world_calculator_pb2.py +31 -0
  71. mediapipe/calculators/util/annotation_overlay_calculator_pb2.py +32 -0
  72. mediapipe/calculators/util/association_calculator_pb2.py +31 -0
  73. mediapipe/calculators/util/collection_has_min_size_calculator_pb2.py +31 -0
  74. mediapipe/calculators/util/combine_joints_calculator_pb2.py +36 -0
  75. mediapipe/calculators/util/detection_label_id_to_text_calculator_pb2.py +36 -0
  76. mediapipe/calculators/util/detections_to_rects_calculator_pb2.py +33 -0
  77. mediapipe/calculators/util/detections_to_render_data_calculator_pb2.py +33 -0
  78. mediapipe/calculators/util/face_to_rect_calculator_pb2.py +26 -0
  79. mediapipe/calculators/util/filter_detections_calculator_pb2.py +31 -0
  80. mediapipe/calculators/util/flat_color_image_calculator_pb2.py +32 -0
  81. mediapipe/calculators/util/labels_to_render_data_calculator_pb2.py +34 -0
  82. mediapipe/calculators/util/landmark_projection_calculator_pb2.py +31 -0
  83. mediapipe/calculators/util/landmarks_refinement_calculator_pb2.py +41 -0
  84. mediapipe/calculators/util/landmarks_smoothing_calculator_pb2.py +33 -0
  85. mediapipe/calculators/util/landmarks_to_detection_calculator_pb2.py +31 -0
  86. mediapipe/calculators/util/landmarks_to_floats_calculator_pb2.py +31 -0
  87. mediapipe/calculators/util/landmarks_to_render_data_calculator_pb2.py +32 -0
  88. mediapipe/calculators/util/landmarks_transformation_calculator_pb2.py +37 -0
  89. mediapipe/calculators/util/latency_pb2.py +26 -0
  90. mediapipe/calculators/util/local_file_contents_calculator_pb2.py +31 -0
  91. mediapipe/calculators/util/logic_calculator_pb2.py +34 -0
  92. mediapipe/calculators/util/non_max_suppression_calculator_pb2.py +35 -0
  93. mediapipe/calculators/util/packet_frequency_calculator_pb2.py +31 -0
  94. mediapipe/calculators/util/packet_frequency_pb2.py +26 -0
  95. mediapipe/calculators/util/packet_latency_calculator_pb2.py +31 -0
  96. mediapipe/calculators/util/rect_to_render_data_calculator_pb2.py +32 -0
  97. mediapipe/calculators/util/rect_to_render_scale_calculator_pb2.py +31 -0
  98. mediapipe/calculators/util/rect_transformation_calculator_pb2.py +31 -0
  99. mediapipe/calculators/util/refine_landmarks_from_heatmap_calculator_pb2.py +31 -0
  100. mediapipe/calculators/util/resource_provider_calculator_pb2.py +28 -0
  101. mediapipe/calculators/util/set_joints_visibility_calculator_pb2.py +41 -0
  102. mediapipe/calculators/util/thresholding_calculator_pb2.py +31 -0
  103. mediapipe/calculators/util/timed_box_list_id_to_label_calculator_pb2.py +31 -0
  104. mediapipe/calculators/util/timed_box_list_to_render_data_calculator_pb2.py +32 -0
  105. mediapipe/calculators/util/top_k_scores_calculator_pb2.py +31 -0
  106. mediapipe/calculators/util/visibility_copy_calculator_pb2.py +27 -0
  107. mediapipe/calculators/util/visibility_smoothing_calculator_pb2.py +31 -0
  108. mediapipe/calculators/video/__init__.py +0 -0
  109. mediapipe/calculators/video/box_detector_calculator_pb2.py +32 -0
  110. mediapipe/calculators/video/box_tracker_calculator_pb2.py +32 -0
  111. mediapipe/calculators/video/flow_packager_calculator_pb2.py +32 -0
  112. mediapipe/calculators/video/flow_to_image_calculator_pb2.py +31 -0
  113. mediapipe/calculators/video/motion_analysis_calculator_pb2.py +42 -0
  114. mediapipe/calculators/video/opencv_video_encoder_calculator_pb2.py +31 -0
  115. mediapipe/calculators/video/tool/__init__.py +0 -0
  116. mediapipe/calculators/video/tool/flow_quantizer_model_pb2.py +26 -0
  117. mediapipe/calculators/video/tracked_detection_manager_calculator_pb2.py +32 -0
  118. mediapipe/calculators/video/video_pre_stream_calculator_pb2.py +35 -0
  119. mediapipe/examples/__init__.py +14 -0
  120. mediapipe/examples/desktop/__init__.py +14 -0
  121. mediapipe/framework/__init__.py +0 -0
  122. mediapipe/framework/calculator_options_pb2.py +29 -0
  123. mediapipe/framework/calculator_pb2.py +59 -0
  124. mediapipe/framework/calculator_profile_pb2.py +48 -0
  125. mediapipe/framework/deps/__init__.py +0 -0
  126. mediapipe/framework/deps/proto_descriptor_pb2.py +29 -0
  127. mediapipe/framework/formats/__init__.py +0 -0
  128. mediapipe/framework/formats/affine_transform_data_pb2.py +28 -0
  129. mediapipe/framework/formats/annotation/__init__.py +0 -0
  130. mediapipe/framework/formats/annotation/locus_pb2.py +32 -0
  131. mediapipe/framework/formats/annotation/rasterization_pb2.py +29 -0
  132. mediapipe/framework/formats/body_rig_pb2.py +28 -0
  133. mediapipe/framework/formats/classification_pb2.py +31 -0
  134. mediapipe/framework/formats/detection_pb2.py +36 -0
  135. mediapipe/framework/formats/image_file_properties_pb2.py +26 -0
  136. mediapipe/framework/formats/image_format_pb2.py +29 -0
  137. mediapipe/framework/formats/landmark_pb2.py +37 -0
  138. mediapipe/framework/formats/location_data_pb2.py +38 -0
  139. mediapipe/framework/formats/matrix_data_pb2.py +31 -0
  140. mediapipe/framework/formats/motion/__init__.py +0 -0
  141. mediapipe/framework/formats/motion/optical_flow_field_data_pb2.py +30 -0
  142. mediapipe/framework/formats/object_detection/__init__.py +0 -0
  143. mediapipe/framework/formats/object_detection/anchor_pb2.py +26 -0
  144. mediapipe/framework/formats/rect_pb2.py +29 -0
  145. mediapipe/framework/formats/time_series_header_pb2.py +28 -0
  146. mediapipe/framework/graph_runtime_info_pb2.py +31 -0
  147. mediapipe/framework/mediapipe_options_pb2.py +27 -0
  148. mediapipe/framework/packet_factory_pb2.py +31 -0
  149. mediapipe/framework/packet_generator_pb2.py +33 -0
  150. mediapipe/framework/status_handler_pb2.py +28 -0
  151. mediapipe/framework/stream_handler/__init__.py +0 -0
  152. mediapipe/framework/stream_handler/default_input_stream_handler_pb2.py +27 -0
  153. mediapipe/framework/stream_handler/fixed_size_input_stream_handler_pb2.py +27 -0
  154. mediapipe/framework/stream_handler/sync_set_input_stream_handler_pb2.py +29 -0
  155. mediapipe/framework/stream_handler/timestamp_align_input_stream_handler_pb2.py +27 -0
  156. mediapipe/framework/stream_handler_pb2.py +30 -0
  157. mediapipe/framework/test_calculators_pb2.py +31 -0
  158. mediapipe/framework/thread_pool_executor_pb2.py +29 -0
  159. mediapipe/framework/tool/__init__.py +0 -0
  160. mediapipe/framework/tool/calculator_graph_template_pb2.py +44 -0
  161. mediapipe/framework/tool/field_data_pb2.py +28 -0
  162. mediapipe/framework/tool/node_chain_subgraph_pb2.py +31 -0
  163. mediapipe/framework/tool/packet_generator_wrapper_calculator_pb2.py +28 -0
  164. mediapipe/framework/tool/source_pb2.py +33 -0
  165. mediapipe/framework/tool/switch_container_pb2.py +32 -0
  166. mediapipe/gpu/__init__.py +0 -0
  167. mediapipe/gpu/copy_calculator_pb2.py +33 -0
  168. mediapipe/gpu/gl_animation_overlay_calculator_pb2.py +31 -0
  169. mediapipe/gpu/gl_context_options_pb2.py +31 -0
  170. mediapipe/gpu/gl_scaler_calculator_pb2.py +32 -0
  171. mediapipe/gpu/gl_surface_sink_calculator_pb2.py +32 -0
  172. mediapipe/gpu/gpu_origin_pb2.py +29 -0
  173. mediapipe/gpu/scale_mode_pb2.py +28 -0
  174. mediapipe/model_maker/__init__.py +27 -0
  175. mediapipe/model_maker/setup.py +107 -0
  176. mediapipe/modules/__init__.py +0 -0
  177. mediapipe/modules/face_detection/__init__.py +0 -0
  178. mediapipe/modules/face_detection/face_detection_full_range_cpu.binarypb +0 -0
  179. mediapipe/modules/face_detection/face_detection_full_range_sparse.tflite +0 -0
  180. mediapipe/modules/face_detection/face_detection_pb2.py +30 -0
  181. mediapipe/modules/face_detection/face_detection_short_range.tflite +0 -0
  182. mediapipe/modules/face_detection/face_detection_short_range_cpu.binarypb +0 -0
  183. mediapipe/modules/face_geometry/__init__.py +0 -0
  184. mediapipe/modules/face_geometry/data/__init__.py +0 -0
  185. mediapipe/modules/face_geometry/effect_renderer_calculator_pb2.py +27 -0
  186. mediapipe/modules/face_geometry/env_generator_calculator_pb2.py +28 -0
  187. mediapipe/modules/face_geometry/geometry_pipeline_calculator_pb2.py +27 -0
  188. mediapipe/modules/face_geometry/libs/__init__.py +0 -0
  189. mediapipe/modules/face_geometry/protos/__init__.py +0 -0
  190. mediapipe/modules/face_geometry/protos/environment_pb2.py +31 -0
  191. mediapipe/modules/face_geometry/protos/face_geometry_pb2.py +29 -0
  192. mediapipe/modules/face_geometry/protos/geometry_pipeline_metadata_pb2.py +32 -0
  193. mediapipe/modules/face_geometry/protos/mesh_3d_pb2.py +31 -0
  194. mediapipe/modules/face_landmark/__init__.py +0 -0
  195. mediapipe/modules/face_landmark/face_landmark.tflite +0 -0
  196. mediapipe/modules/face_landmark/face_landmark_front_cpu.binarypb +0 -0
  197. mediapipe/modules/face_landmark/face_landmark_with_attention.tflite +0 -0
  198. mediapipe/modules/hand_landmark/__init__.py +0 -0
  199. mediapipe/modules/hand_landmark/calculators/__init__.py +0 -0
  200. mediapipe/modules/hand_landmark/hand_landmark_full.tflite +0 -0
  201. mediapipe/modules/hand_landmark/hand_landmark_lite.tflite +0 -0
  202. mediapipe/modules/hand_landmark/hand_landmark_tracking_cpu.binarypb +0 -0
  203. mediapipe/modules/hand_landmark/handedness.txt +2 -0
  204. mediapipe/modules/holistic_landmark/__init__.py +0 -0
  205. mediapipe/modules/holistic_landmark/calculators/__init__.py +0 -0
  206. mediapipe/modules/holistic_landmark/calculators/roi_tracking_calculator_pb2.py +37 -0
  207. mediapipe/modules/holistic_landmark/hand_recrop.tflite +0 -0
  208. mediapipe/modules/holistic_landmark/holistic_landmark_cpu.binarypb +0 -0
  209. mediapipe/modules/iris_landmark/__init__.py +0 -0
  210. mediapipe/modules/iris_landmark/iris_landmark.tflite +0 -0
  211. mediapipe/modules/objectron/__init__.py +0 -0
  212. mediapipe/modules/objectron/calculators/__init__.py +0 -0
  213. mediapipe/modules/objectron/calculators/a_r_capture_metadata_pb2.py +102 -0
  214. mediapipe/modules/objectron/calculators/annotation_data_pb2.py +38 -0
  215. mediapipe/modules/objectron/calculators/belief_decoder_config_pb2.py +28 -0
  216. mediapipe/modules/objectron/calculators/camera_parameters_pb2.py +30 -0
  217. mediapipe/modules/objectron/calculators/filter_detection_calculator_pb2.py +35 -0
  218. mediapipe/modules/objectron/calculators/frame_annotation_to_rect_calculator_pb2.py +31 -0
  219. mediapipe/modules/objectron/calculators/frame_annotation_tracker_calculator_pb2.py +31 -0
  220. mediapipe/modules/objectron/calculators/lift_2d_frame_annotation_to_3d_calculator_pb2.py +32 -0
  221. mediapipe/modules/objectron/calculators/object_pb2.py +38 -0
  222. mediapipe/modules/objectron/calculators/tensors_to_objects_calculator_pb2.py +32 -0
  223. mediapipe/modules/objectron/calculators/tflite_tensors_to_objects_calculator_pb2.py +32 -0
  224. mediapipe/modules/objectron/object_detection_oidv4_labelmap.txt +24 -0
  225. mediapipe/modules/objectron/objectron_cpu.binarypb +0 -0
  226. mediapipe/modules/palm_detection/__init__.py +0 -0
  227. mediapipe/modules/palm_detection/palm_detection_full.tflite +0 -0
  228. mediapipe/modules/palm_detection/palm_detection_lite.tflite +0 -0
  229. mediapipe/modules/pose_detection/__init__.py +0 -0
  230. mediapipe/modules/pose_detection/pose_detection.tflite +0 -0
  231. mediapipe/modules/pose_landmark/__init__.py +0 -0
  232. mediapipe/modules/pose_landmark/pose_landmark_cpu.binarypb +0 -0
  233. mediapipe/modules/pose_landmark/pose_landmark_full.tflite +0 -0
  234. mediapipe/modules/selfie_segmentation/__init__.py +0 -0
  235. mediapipe/modules/selfie_segmentation/selfie_segmentation.tflite +0 -0
  236. mediapipe/modules/selfie_segmentation/selfie_segmentation_cpu.binarypb +0 -0
  237. mediapipe/modules/selfie_segmentation/selfie_segmentation_landscape.tflite +0 -0
  238. mediapipe/python/__init__.py +29 -0
  239. mediapipe/python/_framework_bindings.cpython-311-x86_64-linux-gnu.so +0 -0
  240. mediapipe/python/calculator_graph_test.py +251 -0
  241. mediapipe/python/image_frame_test.py +194 -0
  242. mediapipe/python/image_test.py +218 -0
  243. mediapipe/python/packet_creator.py +275 -0
  244. mediapipe/python/packet_getter.py +120 -0
  245. mediapipe/python/packet_test.py +533 -0
  246. mediapipe/python/solution_base.py +604 -0
  247. mediapipe/python/solution_base_test.py +396 -0
  248. mediapipe/python/solutions/__init__.py +27 -0
  249. mediapipe/python/solutions/download_utils.py +37 -0
  250. mediapipe/python/solutions/drawing_styles.py +249 -0
  251. mediapipe/python/solutions/drawing_utils.py +320 -0
  252. mediapipe/python/solutions/drawing_utils_test.py +258 -0
  253. mediapipe/python/solutions/face_detection.py +105 -0
  254. mediapipe/python/solutions/face_detection_test.py +92 -0
  255. mediapipe/python/solutions/face_mesh.py +125 -0
  256. mediapipe/python/solutions/face_mesh_connections.py +500 -0
  257. mediapipe/python/solutions/face_mesh_test.py +170 -0
  258. mediapipe/python/solutions/hands.py +153 -0
  259. mediapipe/python/solutions/hands_connections.py +32 -0
  260. mediapipe/python/solutions/hands_test.py +219 -0
  261. mediapipe/python/solutions/holistic.py +167 -0
  262. mediapipe/python/solutions/holistic_test.py +142 -0
  263. mediapipe/python/solutions/objectron.py +288 -0
  264. mediapipe/python/solutions/objectron_test.py +81 -0
  265. mediapipe/python/solutions/pose.py +192 -0
  266. mediapipe/python/solutions/pose_connections.py +22 -0
  267. mediapipe/python/solutions/pose_test.py +262 -0
  268. mediapipe/python/solutions/selfie_segmentation.py +76 -0
  269. mediapipe/python/solutions/selfie_segmentation_test.py +68 -0
  270. mediapipe/python/timestamp_test.py +78 -0
  271. mediapipe/tasks/__init__.py +14 -0
  272. mediapipe/tasks/cc/__init__.py +0 -0
  273. mediapipe/tasks/cc/audio/__init__.py +0 -0
  274. mediapipe/tasks/cc/audio/audio_classifier/__init__.py +0 -0
  275. mediapipe/tasks/cc/audio/audio_classifier/proto/__init__.py +0 -0
  276. mediapipe/tasks/cc/audio/audio_classifier/proto/audio_classifier_graph_options_pb2.py +35 -0
  277. mediapipe/tasks/cc/audio/audio_embedder/__init__.py +0 -0
  278. mediapipe/tasks/cc/audio/audio_embedder/proto/__init__.py +0 -0
  279. mediapipe/tasks/cc/audio/audio_embedder/proto/audio_embedder_graph_options_pb2.py +35 -0
  280. mediapipe/tasks/cc/audio/core/__init__.py +0 -0
  281. mediapipe/tasks/cc/audio/utils/__init__.py +0 -0
  282. mediapipe/tasks/cc/components/__init__.py +0 -0
  283. mediapipe/tasks/cc/components/calculators/__init__.py +0 -0
  284. mediapipe/tasks/cc/components/calculators/classification_aggregation_calculator_pb2.py +31 -0
  285. mediapipe/tasks/cc/components/calculators/score_calibration_calculator_pb2.py +35 -0
  286. mediapipe/tasks/cc/components/calculators/tensors_to_embeddings_calculator_pb2.py +32 -0
  287. mediapipe/tasks/cc/components/containers/__init__.py +0 -0
  288. mediapipe/tasks/cc/components/containers/proto/__init__.py +0 -0
  289. mediapipe/tasks/cc/components/containers/proto/classifications_pb2.py +30 -0
  290. mediapipe/tasks/cc/components/containers/proto/embeddings_pb2.py +35 -0
  291. mediapipe/tasks/cc/components/containers/proto/landmarks_detection_result_pb2.py +32 -0
  292. mediapipe/tasks/cc/components/processors/__init__.py +0 -0
  293. mediapipe/tasks/cc/components/processors/proto/__init__.py +0 -0
  294. mediapipe/tasks/cc/components/processors/proto/classification_postprocessing_graph_options_pb2.py +38 -0
  295. mediapipe/tasks/cc/components/processors/proto/classifier_options_pb2.py +27 -0
  296. mediapipe/tasks/cc/components/processors/proto/detection_postprocessing_graph_options_pb2.py +36 -0
  297. mediapipe/tasks/cc/components/processors/proto/detector_options_pb2.py +27 -0
  298. mediapipe/tasks/cc/components/processors/proto/embedder_options_pb2.py +27 -0
  299. mediapipe/tasks/cc/components/processors/proto/embedding_postprocessing_graph_options_pb2.py +32 -0
  300. mediapipe/tasks/cc/components/processors/proto/image_preprocessing_graph_options_pb2.py +34 -0
  301. mediapipe/tasks/cc/components/processors/proto/text_model_type_pb2.py +28 -0
  302. mediapipe/tasks/cc/components/processors/proto/text_preprocessing_graph_options_pb2.py +32 -0
  303. mediapipe/tasks/cc/components/utils/__init__.py +0 -0
  304. mediapipe/tasks/cc/core/__init__.py +0 -0
  305. mediapipe/tasks/cc/core/proto/__init__.py +0 -0
  306. mediapipe/tasks/cc/core/proto/acceleration_pb2.py +28 -0
  307. mediapipe/tasks/cc/core/proto/base_options_pb2.py +30 -0
  308. mediapipe/tasks/cc/core/proto/external_file_pb2.py +31 -0
  309. mediapipe/tasks/cc/core/proto/inference_subgraph_pb2.py +32 -0
  310. mediapipe/tasks/cc/core/proto/model_resources_calculator_pb2.py +32 -0
  311. mediapipe/tasks/cc/genai/__init__.py +0 -0
  312. mediapipe/tasks/cc/genai/inference/__init__.py +0 -0
  313. mediapipe/tasks/cc/genai/inference/c/__init__.py +0 -0
  314. mediapipe/tasks/cc/genai/inference/calculators/__init__.py +0 -0
  315. mediapipe/tasks/cc/genai/inference/calculators/detokenizer_calculator_pb2.py +27 -0
  316. mediapipe/tasks/cc/genai/inference/calculators/llm_gpu_calculator_pb2.py +32 -0
  317. mediapipe/tasks/cc/genai/inference/calculators/model_data_calculator_pb2.py +27 -0
  318. mediapipe/tasks/cc/genai/inference/calculators/tokenizer_calculator_pb2.py +29 -0
  319. mediapipe/tasks/cc/genai/inference/common/__init__.py +0 -0
  320. mediapipe/tasks/cc/genai/inference/proto/__init__.py +0 -0
  321. mediapipe/tasks/cc/genai/inference/proto/llm_file_metadata_pb2.py +32 -0
  322. mediapipe/tasks/cc/genai/inference/proto/llm_params_pb2.py +33 -0
  323. mediapipe/tasks/cc/genai/inference/proto/prompt_template_pb2.py +27 -0
  324. mediapipe/tasks/cc/genai/inference/proto/sampler_params_pb2.py +29 -0
  325. mediapipe/tasks/cc/genai/inference/proto/transformer_params_pb2.py +45 -0
  326. mediapipe/tasks/cc/genai/inference/utils/__init__.py +0 -0
  327. mediapipe/tasks/cc/genai/inference/utils/llm_utils/__init__.py +0 -0
  328. mediapipe/tasks/cc/genai/inference/utils/xnn_utils/__init__.py +0 -0
  329. mediapipe/tasks/cc/metadata/__init__.py +0 -0
  330. mediapipe/tasks/cc/metadata/python/__init__.py +0 -0
  331. mediapipe/tasks/cc/metadata/python/_pywrap_metadata_version.cpython-311-x86_64-linux-gnu.so +0 -0
  332. mediapipe/tasks/cc/metadata/tests/__init__.py +0 -0
  333. mediapipe/tasks/cc/metadata/utils/__init__.py +0 -0
  334. mediapipe/tasks/cc/text/__init__.py +0 -0
  335. mediapipe/tasks/cc/text/custom_ops/__init__.py +0 -0
  336. mediapipe/tasks/cc/text/custom_ops/ragged/__init__.py +0 -0
  337. mediapipe/tasks/cc/text/custom_ops/sentencepiece/__init__.py +0 -0
  338. mediapipe/tasks/cc/text/custom_ops/sentencepiece/testdata/__init__.py +0 -0
  339. mediapipe/tasks/cc/text/language_detector/__init__.py +0 -0
  340. mediapipe/tasks/cc/text/language_detector/custom_ops/__init__.py +0 -0
  341. mediapipe/tasks/cc/text/language_detector/custom_ops/utils/__init__.py +0 -0
  342. mediapipe/tasks/cc/text/language_detector/custom_ops/utils/hash/__init__.py +0 -0
  343. mediapipe/tasks/cc/text/language_detector/custom_ops/utils/utf/__init__.py +0 -0
  344. mediapipe/tasks/cc/text/text_classifier/__init__.py +0 -0
  345. mediapipe/tasks/cc/text/text_classifier/proto/__init__.py +0 -0
  346. mediapipe/tasks/cc/text/text_classifier/proto/text_classifier_graph_options_pb2.py +35 -0
  347. mediapipe/tasks/cc/text/text_embedder/__init__.py +0 -0
  348. mediapipe/tasks/cc/text/text_embedder/proto/__init__.py +0 -0
  349. mediapipe/tasks/cc/text/text_embedder/proto/text_embedder_graph_options_pb2.py +35 -0
  350. mediapipe/tasks/cc/text/tokenizers/__init__.py +0 -0
  351. mediapipe/tasks/cc/text/utils/__init__.py +0 -0
  352. mediapipe/tasks/cc/vision/__init__.py +0 -0
  353. mediapipe/tasks/cc/vision/core/__init__.py +0 -0
  354. mediapipe/tasks/cc/vision/custom_ops/__init__.py +0 -0
  355. mediapipe/tasks/cc/vision/face_detector/__init__.py +0 -0
  356. mediapipe/tasks/cc/vision/face_detector/proto/__init__.py +0 -0
  357. mediapipe/tasks/cc/vision/face_detector/proto/face_detector_graph_options_pb2.py +34 -0
  358. mediapipe/tasks/cc/vision/face_geometry/__init__.py +0 -0
  359. mediapipe/tasks/cc/vision/face_geometry/calculators/__init__.py +0 -0
  360. mediapipe/tasks/cc/vision/face_geometry/calculators/env_generator_calculator_pb2.py +28 -0
  361. mediapipe/tasks/cc/vision/face_geometry/calculators/geometry_pipeline_calculator_pb2.py +29 -0
  362. mediapipe/tasks/cc/vision/face_geometry/data/__init__.py +0 -0
  363. mediapipe/tasks/cc/vision/face_geometry/libs/__init__.py +0 -0
  364. mediapipe/tasks/cc/vision/face_geometry/proto/__init__.py +0 -0
  365. mediapipe/tasks/cc/vision/face_geometry/proto/environment_pb2.py +31 -0
  366. mediapipe/tasks/cc/vision/face_geometry/proto/face_geometry_graph_options_pb2.py +29 -0
  367. mediapipe/tasks/cc/vision/face_geometry/proto/face_geometry_pb2.py +29 -0
  368. mediapipe/tasks/cc/vision/face_geometry/proto/geometry_pipeline_metadata_pb2.py +32 -0
  369. mediapipe/tasks/cc/vision/face_geometry/proto/mesh_3d_pb2.py +31 -0
  370. mediapipe/tasks/cc/vision/face_landmarker/__init__.py +0 -0
  371. mediapipe/tasks/cc/vision/face_landmarker/proto/__init__.py +0 -0
  372. mediapipe/tasks/cc/vision/face_landmarker/proto/face_blendshapes_graph_options_pb2.py +34 -0
  373. mediapipe/tasks/cc/vision/face_landmarker/proto/face_landmarker_graph_options_pb2.py +37 -0
  374. mediapipe/tasks/cc/vision/face_landmarker/proto/face_landmarks_detector_graph_options_pb2.py +35 -0
  375. mediapipe/tasks/cc/vision/face_landmarker/proto/tensors_to_face_landmarks_graph_options_pb2.py +32 -0
  376. mediapipe/tasks/cc/vision/face_stylizer/__init__.py +0 -0
  377. mediapipe/tasks/cc/vision/face_stylizer/calculators/__init__.py +0 -0
  378. mediapipe/tasks/cc/vision/face_stylizer/calculators/tensors_to_image_calculator_pb2.py +36 -0
  379. mediapipe/tasks/cc/vision/face_stylizer/proto/__init__.py +0 -0
  380. mediapipe/tasks/cc/vision/face_stylizer/proto/face_stylizer_graph_options_pb2.py +35 -0
  381. mediapipe/tasks/cc/vision/gesture_recognizer/__init__.py +0 -0
  382. mediapipe/tasks/cc/vision/gesture_recognizer/calculators/__init__.py +0 -0
  383. mediapipe/tasks/cc/vision/gesture_recognizer/calculators/combined_prediction_calculator_pb2.py +33 -0
  384. mediapipe/tasks/cc/vision/gesture_recognizer/calculators/landmarks_to_matrix_calculator_pb2.py +31 -0
  385. mediapipe/tasks/cc/vision/gesture_recognizer/proto/__init__.py +0 -0
  386. mediapipe/tasks/cc/vision/gesture_recognizer/proto/gesture_classifier_graph_options_pb2.py +35 -0
  387. mediapipe/tasks/cc/vision/gesture_recognizer/proto/gesture_embedder_graph_options_pb2.py +34 -0
  388. mediapipe/tasks/cc/vision/gesture_recognizer/proto/gesture_recognizer_graph_options_pb2.py +36 -0
  389. mediapipe/tasks/cc/vision/gesture_recognizer/proto/hand_gesture_recognizer_graph_options_pb2.py +36 -0
  390. mediapipe/tasks/cc/vision/hand_detector/__init__.py +0 -0
  391. mediapipe/tasks/cc/vision/hand_detector/proto/__init__.py +0 -0
  392. mediapipe/tasks/cc/vision/hand_detector/proto/hand_detector_graph_options_pb2.py +34 -0
  393. mediapipe/tasks/cc/vision/hand_detector/proto/hand_detector_result_pb2.py +30 -0
  394. mediapipe/tasks/cc/vision/hand_landmarker/__init__.py +0 -0
  395. mediapipe/tasks/cc/vision/hand_landmarker/calculators/__init__.py +0 -0
  396. mediapipe/tasks/cc/vision/hand_landmarker/calculators/hand_association_calculator_pb2.py +31 -0
  397. mediapipe/tasks/cc/vision/hand_landmarker/proto/__init__.py +0 -0
  398. mediapipe/tasks/cc/vision/hand_landmarker/proto/hand_landmarker_graph_options_pb2.py +36 -0
  399. mediapipe/tasks/cc/vision/hand_landmarker/proto/hand_landmarks_detector_graph_options_pb2.py +34 -0
  400. mediapipe/tasks/cc/vision/hand_landmarker/proto/hand_roi_refinement_graph_options_pb2.py +28 -0
  401. mediapipe/tasks/cc/vision/holistic_landmarker/__init__.py +0 -0
  402. mediapipe/tasks/cc/vision/holistic_landmarker/proto/__init__.py +0 -0
  403. mediapipe/tasks/cc/vision/holistic_landmarker/proto/holistic_landmarker_graph_options_pb2.py +34 -0
  404. mediapipe/tasks/cc/vision/holistic_landmarker/proto/holistic_result_pb2.py +29 -0
  405. mediapipe/tasks/cc/vision/image_classifier/__init__.py +0 -0
  406. mediapipe/tasks/cc/vision/image_classifier/proto/__init__.py +0 -0
  407. mediapipe/tasks/cc/vision/image_classifier/proto/image_classifier_graph_options_pb2.py +35 -0
  408. mediapipe/tasks/cc/vision/image_embedder/__init__.py +0 -0
  409. mediapipe/tasks/cc/vision/image_embedder/proto/__init__.py +0 -0
  410. mediapipe/tasks/cc/vision/image_embedder/proto/image_embedder_graph_options_pb2.py +35 -0
  411. mediapipe/tasks/cc/vision/image_generator/__init__.py +0 -0
  412. mediapipe/tasks/cc/vision/image_generator/diffuser/__init__.py +0 -0
  413. mediapipe/tasks/cc/vision/image_generator/diffuser/stable_diffusion_iterate_calculator_pb2.py +40 -0
  414. mediapipe/tasks/cc/vision/image_generator/proto/__init__.py +0 -0
  415. mediapipe/tasks/cc/vision/image_generator/proto/conditioned_image_graph_options_pb2.py +40 -0
  416. mediapipe/tasks/cc/vision/image_generator/proto/control_plugin_graph_options_pb2.py +34 -0
  417. mediapipe/tasks/cc/vision/image_generator/proto/image_generator_graph_options_pb2.py +30 -0
  418. mediapipe/tasks/cc/vision/image_segmenter/__init__.py +0 -0
  419. mediapipe/tasks/cc/vision/image_segmenter/calculators/__init__.py +0 -0
  420. mediapipe/tasks/cc/vision/image_segmenter/calculators/tensors_to_segmentation_calculator_pb2.py +34 -0
  421. mediapipe/tasks/cc/vision/image_segmenter/proto/__init__.py +0 -0
  422. mediapipe/tasks/cc/vision/image_segmenter/proto/image_segmenter_graph_options_pb2.py +35 -0
  423. mediapipe/tasks/cc/vision/image_segmenter/proto/segmenter_options_pb2.py +33 -0
  424. mediapipe/tasks/cc/vision/interactive_segmenter/__init__.py +0 -0
  425. mediapipe/tasks/cc/vision/object_detector/__init__.py +0 -0
  426. mediapipe/tasks/cc/vision/object_detector/proto/__init__.py +0 -0
  427. mediapipe/tasks/cc/vision/object_detector/proto/object_detector_options_pb2.py +34 -0
  428. mediapipe/tasks/cc/vision/pose_detector/__init__.py +0 -0
  429. mediapipe/tasks/cc/vision/pose_detector/proto/__init__.py +0 -0
  430. mediapipe/tasks/cc/vision/pose_detector/proto/pose_detector_graph_options_pb2.py +34 -0
  431. mediapipe/tasks/cc/vision/pose_landmarker/__init__.py +0 -0
  432. mediapipe/tasks/cc/vision/pose_landmarker/proto/__init__.py +0 -0
  433. mediapipe/tasks/cc/vision/pose_landmarker/proto/pose_landmarker_graph_options_pb2.py +36 -0
  434. mediapipe/tasks/cc/vision/pose_landmarker/proto/pose_landmarks_detector_graph_options_pb2.py +34 -0
  435. mediapipe/tasks/cc/vision/utils/__init__.py +0 -0
  436. mediapipe/tasks/cc/vision/utils/ghum/__init__.py +0 -0
  437. mediapipe/tasks/metadata/image_segmenter_metadata_schema.fbs +59 -0
  438. mediapipe/tasks/metadata/image_segmenter_metadata_schema_py_generated.py +108 -0
  439. mediapipe/tasks/metadata/metadata_schema.fbs +732 -0
  440. mediapipe/tasks/metadata/metadata_schema_py_generated.py +3251 -0
  441. mediapipe/tasks/metadata/object_detector_metadata_schema.fbs +98 -0
  442. mediapipe/tasks/metadata/object_detector_metadata_schema_py_generated.py +674 -0
  443. mediapipe/tasks/metadata/schema_py_generated.py +18438 -0
  444. mediapipe/tasks/python/__init__.py +27 -0
  445. mediapipe/tasks/python/audio/__init__.py +33 -0
  446. mediapipe/tasks/python/audio/audio_classifier.py +324 -0
  447. mediapipe/tasks/python/audio/audio_embedder.py +285 -0
  448. mediapipe/tasks/python/audio/core/__init__.py +16 -0
  449. mediapipe/tasks/python/audio/core/audio_record.py +125 -0
  450. mediapipe/tasks/python/audio/core/audio_task_running_mode.py +29 -0
  451. mediapipe/tasks/python/audio/core/base_audio_task_api.py +181 -0
  452. mediapipe/tasks/python/benchmark/__init__.py +13 -0
  453. mediapipe/tasks/python/benchmark/benchmark_utils.py +70 -0
  454. mediapipe/tasks/python/benchmark/vision/__init__.py +13 -0
  455. mediapipe/tasks/python/benchmark/vision/benchmark.py +99 -0
  456. mediapipe/tasks/python/benchmark/vision/core/__init__.py +14 -0
  457. mediapipe/tasks/python/benchmark/vision/core/base_vision_benchmark_api.py +40 -0
  458. mediapipe/tasks/python/components/__init__.py +13 -0
  459. mediapipe/tasks/python/components/containers/__init__.py +53 -0
  460. mediapipe/tasks/python/components/containers/audio_data.py +137 -0
  461. mediapipe/tasks/python/components/containers/bounding_box.py +73 -0
  462. mediapipe/tasks/python/components/containers/category.py +78 -0
  463. mediapipe/tasks/python/components/containers/classification_result.py +111 -0
  464. mediapipe/tasks/python/components/containers/detections.py +181 -0
  465. mediapipe/tasks/python/components/containers/embedding_result.py +89 -0
  466. mediapipe/tasks/python/components/containers/keypoint.py +77 -0
  467. mediapipe/tasks/python/components/containers/landmark.py +122 -0
  468. mediapipe/tasks/python/components/containers/landmark_detection_result.py +106 -0
  469. mediapipe/tasks/python/components/containers/rect.py +109 -0
  470. mediapipe/tasks/python/components/processors/__init__.py +23 -0
  471. mediapipe/tasks/python/components/processors/classifier_options.py +86 -0
  472. mediapipe/tasks/python/components/utils/__init__.py +13 -0
  473. mediapipe/tasks/python/components/utils/cosine_similarity.py +68 -0
  474. mediapipe/tasks/python/core/__init__.py +13 -0
  475. mediapipe/tasks/python/core/base_options.py +121 -0
  476. mediapipe/tasks/python/core/optional_dependencies.py +25 -0
  477. mediapipe/tasks/python/core/task_info.py +139 -0
  478. mediapipe/tasks/python/genai/__init__.py +14 -0
  479. mediapipe/tasks/python/genai/bundler/__init__.py +23 -0
  480. mediapipe/tasks/python/genai/bundler/llm_bundler.py +130 -0
  481. mediapipe/tasks/python/genai/bundler/llm_bundler_test.py +168 -0
  482. mediapipe/tasks/python/genai/converter/__init__.py +24 -0
  483. mediapipe/tasks/python/genai/converter/converter_base.py +179 -0
  484. mediapipe/tasks/python/genai/converter/converter_factory.py +79 -0
  485. mediapipe/tasks/python/genai/converter/llm_converter.py +374 -0
  486. mediapipe/tasks/python/genai/converter/llm_converter_test.py +63 -0
  487. mediapipe/tasks/python/genai/converter/pytorch_converter.py +318 -0
  488. mediapipe/tasks/python/genai/converter/pytorch_converter_test.py +86 -0
  489. mediapipe/tasks/python/genai/converter/quantization_util.py +516 -0
  490. mediapipe/tasks/python/genai/converter/quantization_util_test.py +259 -0
  491. mediapipe/tasks/python/genai/converter/safetensors_converter.py +580 -0
  492. mediapipe/tasks/python/genai/converter/safetensors_converter_test.py +83 -0
  493. mediapipe/tasks/python/genai/converter/weight_bins_writer.py +120 -0
  494. mediapipe/tasks/python/genai/converter/weight_bins_writer_test.py +95 -0
  495. mediapipe/tasks/python/metadata/__init__.py +13 -0
  496. mediapipe/tasks/python/metadata/flatbuffers_lib/_pywrap_flatbuffers.cpython-311-x86_64-linux-gnu.so +0 -0
  497. mediapipe/tasks/python/metadata/metadata.py +928 -0
  498. mediapipe/tasks/python/metadata/metadata_displayer_cli.py +34 -0
  499. mediapipe/tasks/python/metadata/metadata_writers/__init__.py +13 -0
  500. mediapipe/tasks/python/metadata/metadata_writers/face_stylizer.py +138 -0
  501. mediapipe/tasks/python/metadata/metadata_writers/image_classifier.py +71 -0
  502. mediapipe/tasks/python/metadata/metadata_writers/image_segmenter.py +170 -0
  503. mediapipe/tasks/python/metadata/metadata_writers/metadata_info.py +1166 -0
  504. mediapipe/tasks/python/metadata/metadata_writers/metadata_writer.py +845 -0
  505. mediapipe/tasks/python/metadata/metadata_writers/model_asset_bundle_utils.py +71 -0
  506. mediapipe/tasks/python/metadata/metadata_writers/object_detector.py +331 -0
  507. mediapipe/tasks/python/metadata/metadata_writers/text_classifier.py +119 -0
  508. mediapipe/tasks/python/metadata/metadata_writers/writer_utils.py +91 -0
  509. mediapipe/tasks/python/test/__init__.py +13 -0
  510. mediapipe/tasks/python/test/audio/__init__.py +13 -0
  511. mediapipe/tasks/python/test/audio/audio_classifier_test.py +387 -0
  512. mediapipe/tasks/python/test/audio/audio_embedder_test.py +297 -0
  513. mediapipe/tasks/python/test/test_utils.py +196 -0
  514. mediapipe/tasks/python/test/text/__init__.py +13 -0
  515. mediapipe/tasks/python/test/text/language_detector_test.py +228 -0
  516. mediapipe/tasks/python/test/text/text_classifier_test.py +235 -0
  517. mediapipe/tasks/python/test/text/text_embedder_test.py +326 -0
  518. mediapipe/tasks/python/test/vision/__init__.py +13 -0
  519. mediapipe/tasks/python/test/vision/face_aligner_test.py +190 -0
  520. mediapipe/tasks/python/test/vision/face_detector_test.py +523 -0
  521. mediapipe/tasks/python/test/vision/face_landmarker_test.py +565 -0
  522. mediapipe/tasks/python/test/vision/face_stylizer_test.py +191 -0
  523. mediapipe/tasks/python/test/vision/hand_landmarker_test.py +437 -0
  524. mediapipe/tasks/python/test/vision/holistic_landmarker_test.py +544 -0
  525. mediapipe/tasks/python/test/vision/image_classifier_test.py +657 -0
  526. mediapipe/tasks/python/test/vision/image_embedder_test.py +423 -0
  527. mediapipe/tasks/python/test/vision/image_segmenter_test.py +512 -0
  528. mediapipe/tasks/python/test/vision/interactive_segmenter_test.py +341 -0
  529. mediapipe/tasks/python/test/vision/object_detector_test.py +493 -0
  530. mediapipe/tasks/python/test/vision/pose_landmarker_test.py +518 -0
  531. mediapipe/tasks/python/text/__init__.py +35 -0
  532. mediapipe/tasks/python/text/core/__init__.py +16 -0
  533. mediapipe/tasks/python/text/core/base_text_task_api.py +54 -0
  534. mediapipe/tasks/python/text/language_detector.py +220 -0
  535. mediapipe/tasks/python/text/text_classifier.py +187 -0
  536. mediapipe/tasks/python/text/text_embedder.py +188 -0
  537. mediapipe/tasks/python/vision/__init__.py +90 -0
  538. mediapipe/tasks/python/vision/core/__init__.py +14 -0
  539. mediapipe/tasks/python/vision/core/base_vision_task_api.py +226 -0
  540. mediapipe/tasks/python/vision/core/image_processing_options.py +39 -0
  541. mediapipe/tasks/python/vision/core/vision_task_running_mode.py +31 -0
  542. mediapipe/tasks/python/vision/face_aligner.py +158 -0
  543. mediapipe/tasks/python/vision/face_detector.py +332 -0
  544. mediapipe/tasks/python/vision/face_landmarker.py +3244 -0
  545. mediapipe/tasks/python/vision/face_stylizer.py +158 -0
  546. mediapipe/tasks/python/vision/gesture_recognizer.py +480 -0
  547. mediapipe/tasks/python/vision/hand_landmarker.py +504 -0
  548. mediapipe/tasks/python/vision/holistic_landmarker.py +576 -0
  549. mediapipe/tasks/python/vision/image_classifier.py +358 -0
  550. mediapipe/tasks/python/vision/image_embedder.py +362 -0
  551. mediapipe/tasks/python/vision/image_segmenter.py +433 -0
  552. mediapipe/tasks/python/vision/interactive_segmenter.py +285 -0
  553. mediapipe/tasks/python/vision/object_detector.py +389 -0
  554. mediapipe/tasks/python/vision/pose_landmarker.py +455 -0
  555. mediapipe/util/__init__.py +0 -0
  556. mediapipe/util/analytics/__init__.py +0 -0
  557. mediapipe/util/analytics/mediapipe_log_extension_pb2.py +44 -0
  558. mediapipe/util/analytics/mediapipe_logging_enums_pb2.py +37 -0
  559. mediapipe/util/audio_decoder_pb2.py +33 -0
  560. mediapipe/util/color_pb2.py +33 -0
  561. mediapipe/util/label_map_pb2.py +27 -0
  562. mediapipe/util/render_data_pb2.py +58 -0
  563. mediapipe/util/sequence/__init__.py +14 -0
  564. mediapipe/util/sequence/media_sequence.py +716 -0
  565. mediapipe/util/sequence/media_sequence_test.py +290 -0
  566. mediapipe/util/sequence/media_sequence_util.py +800 -0
  567. mediapipe/util/sequence/media_sequence_util_test.py +389 -0
  568. mediapipe/util/tracking/__init__.py +0 -0
  569. mediapipe/util/tracking/box_detector_pb2.py +39 -0
  570. mediapipe/util/tracking/box_tracker_pb2.py +32 -0
  571. mediapipe/util/tracking/camera_motion_pb2.py +31 -0
  572. mediapipe/util/tracking/flow_packager_pb2.py +60 -0
  573. mediapipe/util/tracking/frame_selection_pb2.py +35 -0
  574. mediapipe/util/tracking/frame_selection_solution_evaluator_pb2.py +28 -0
  575. mediapipe/util/tracking/motion_analysis_pb2.py +35 -0
  576. mediapipe/util/tracking/motion_estimation_pb2.py +66 -0
  577. mediapipe/util/tracking/motion_models_pb2.py +42 -0
  578. mediapipe/util/tracking/motion_saliency_pb2.py +26 -0
  579. mediapipe/util/tracking/push_pull_filtering_pb2.py +26 -0
  580. mediapipe/util/tracking/region_flow_computation_pb2.py +59 -0
  581. mediapipe/util/tracking/region_flow_pb2.py +49 -0
  582. mediapipe/util/tracking/tone_estimation_pb2.py +45 -0
  583. mediapipe/util/tracking/tone_models_pb2.py +32 -0
  584. mediapipe/util/tracking/tracked_detection_manager_config_pb2.py +26 -0
  585. mediapipe/util/tracking/tracking_pb2.py +73 -0
  586. mediapipe_nightly-0.10.21.post20250114.dist-info/LICENSE +218 -0
  587. mediapipe_nightly-0.10.21.post20250114.dist-info/METADATA +199 -0
  588. mediapipe_nightly-0.10.21.post20250114.dist-info/RECORD +593 -0
  589. mediapipe_nightly-0.10.21.post20250114.dist-info/WHEEL +5 -0
  590. mediapipe_nightly-0.10.21.post20250114.dist-info/top_level.txt +4 -0
  591. mediapipe_nightly.libs/libEGL-48f73270.so.1.1.0 +0 -0
  592. mediapipe_nightly.libs/libGLESv2-ed5eda4f.so.2.1.0 +0 -0
  593. mediapipe_nightly.libs/libGLdispatch-64b28464.so.0.0.0 +0 -0
@@ -0,0 +1,716 @@
1
+ """Copyright 2019 The MediaPipe Authors.
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
14
+
15
+
16
+ This script defines a large number of getters and setters for storing
17
+ multimedia, such as video or audio, and related machine learning data in
18
+ tf.train.SequenceExamples. These getters and setters simplify sharing
19
+ data by enforcing common patterns for storing data in SequenceExample
20
+ key-value pairs.
21
+
22
+ The constants, macros, and functions are organized into 6 groups: clip
23
+ metadata, clip label related, segment related, bounding-box related, image
24
+ related, feature list related, and keyframe related. The following examples
25
+ will walk through common task structures, but the relevant data to store can
26
+ vary by task.
27
+
28
+ The clip metadata group is generally data about the media and stored in the
29
+ SequenceExample.context. Specifying the metadata enables media pipelines,
30
+ such as MediaPipe, to retrieve that data. Typically, set_clip_data_path,
31
+ set_clip_start_timestamp, and set_clip_end_timestamp define which data to use
32
+ without storing the data itself. Example:
33
+ tensorflow.train.SequenceExample sequence
34
+ set_clip_data_path("/relative/path/to/data.mp4", sequence)
35
+ set_clip_start_timestamp(0, sequence)
36
+ set_clip_end_timestamp(10000000, sequence) # 10 seconds in microseconds.
37
+
38
+ The clip label group adds labels that apply to the entire media clip. To
39
+ annotate that a video clip has a particular label, set the clip metadata
40
+ above and also set the set_clip_label_index and set_clip_label_string. Most
41
+ training pipelines will only use the label index or string, but we recommend
42
+ storing both to improve readability while maintaining ease of use.
43
+ Example:
44
+ set_clip_label_string(("run", "jump"), sequence)
45
+ set_Clip_label_index((35, 47), sequence)
46
+
47
+ The segment group is generally data about time spans within the media clip
48
+ and stored in the SequenceExample.context. In this code, continuous lengths
49
+ of media are called clips, and each clip may have subregions of interest that
50
+ are called segments. To annotate that a video clip has time spans with labels
51
+ set the clip metadata above and use the functions set_segment_start_timestamp,
52
+ set_segment_end_timestamp, set_segment_label_index, and
53
+ set_segment_label_string. Most training pipelines will only use the label index
54
+ or string, but we recommend storing both to improve readability while
55
+ maintaining ease of use. By listing segments as times, the frame rate or other
56
+ properties can change without affecting the labels.
57
+ Example:
58
+ set_segment_start_timestamp((500000, 1000000), sequence) # in microseconds
59
+ set_segment_end_timestamp((2000000, 6000000), sequence)
60
+ set_segment_label_index((35, 47), sequence)
61
+ set_segment_label_string(("run", "jump"), sequence)
62
+
63
+ The bounding box group is useful for identifying spatio-temporal annotations
64
+ for detection, tracking, or action recognition. The exact keys that are
65
+ needed can vary by task, but to annotate a video clip for detection set the
66
+ clip metadata above and use repeatedly call add_bbox, add_bbox_timestamp,
67
+ add_bbox_label_index, and add_bbox_label_string. Most training pipelines will
68
+ only use the label index or string, but we recommend storing both to improve
69
+ readability while maintaining ease of use. Because bounding boxes are
70
+ assigned to timepoints in a video, changing the image frame rate can can
71
+ change the alignment. The media_sequence.h's ReconcileMetadata function can
72
+ align bounding boxes to the nearest image.
73
+
74
+ The image group is useful for storing data as sequential 2D arrays, typically
75
+ encoded as bytes. Images can be RGB images stored as JPEG, discrete masks
76
+ stored as PNG, or some other format. Parameters that are static over time are
77
+ set in the context using set_image_width, set_image_height, set_image_format,
78
+ etc. The series of frames and timestamps are then added with add_image_encoded
79
+ and
80
+ add_image_timestamp. For discrete masks, the class or instance indices can be
81
+ mapped to labels or classes using
82
+ set_class_segmentation_class_label_{index,string} and
83
+ set_instance_segmentation_object_class_index.
84
+
85
+ The feature list group is useful for storing audio and extracted features,
86
+ such as per-frame embeddings. SequenceExamples only store lists of floats per
87
+ timestep, so the dimensions are stored in the context to enable reshaping.
88
+ For example, set_feature_dimensions and repeatedly calling add_feature_floats
89
+ and add_feature_timestamp adds per-frame embeddings. The feature methods also
90
+ support audio features.
91
+
92
+ Macros for common patterns are created in media_sequence_util.py and are used
93
+ here extensively. Because these macros are formulaic, I will only include a
94
+ usage example here in the code rather than repeating documentation for every
95
+ instance. This header defines additional functions to simplify working with
96
+ MediaPipe types.
97
+
98
+ Each msu.create_{TYPE}_context_feature takes a NAME and a KEY. It provides
99
+ setters and getters for SequenceExamples and stores a single value under KEY
100
+ in the context field. The provided functions are has_${NAME}, get_${NAME},
101
+ set_${Name}, and clear_${NAME}.
102
+ Eg.
103
+ tf.train.SequenceExample example
104
+ set_data_path("data_path", example)
105
+ if has_data_path(example):
106
+ data_path = get_data_path(example)
107
+ clear_data_path(example)
108
+
109
+ Each msu.create_{TYPE}_list_context_feature takes a NAME and a KEY. It provides
110
+ setters and getters for SequenceExamples and stores a sequence of values
111
+ under KEY in the context field. The provided functions are has_${NAME},
112
+ get_${NAME}, set_${Name}, clear_${NAME}, get_${NAME}_at, and add_${NAME}.
113
+ Eg.
114
+ tf.train.SequenceExample example
115
+ set_clip_label_string(("run", "jump"), example)
116
+ if has_clip_label_string(example):
117
+ values = get_clip_label_string(example)
118
+ clear_clip_label_string(example)
119
+
120
+ Each msu.create_{TYPE}_feature_list takes a NAME and a KEY. It provides setters
121
+ and getters for SequenceExamples and stores a single value in each feature field
122
+ under KEY of the feature_lists field. The provided functions are has_${NAME},
123
+ get_${NAME}, clear_${NAME}, get_${NAME}_size, get_${NAME}_at, and add_${NAME}.
124
+ tf.train.SequenceExample example
125
+ add_image_timestamp(1000000, example)
126
+ add_image_timestamp(2000000, example)
127
+ if has_image_timestamp(example):
128
+ for i in range(get_image_timestamp_size()):
129
+ timestamp = get_image_timestamp_at(example, i)
130
+ clear_image_timestamp(example)
131
+
132
+ Each VECTOR_{TYPE}_FEATURE_LIST takes a NAME and a KEY. It provides setters
133
+ and getters for SequenceExamples and stores a sequence of values in each
134
+ feature field under KEY of the feature_lists field. The provided functions
135
+ are Has${NAME}, Get${NAME}, Clear${NAME}, Get${NAME}Size, Get${NAME}At, and
136
+ Add${NAME}.
137
+ tf.train.SequenceExample example
138
+ add_bbox_label_string(("run", "jump"), example)
139
+ add_bbox_label_string(("run", "fall"), example)
140
+ if has_bbox_label_string(example):
141
+ for i in range(get_bbox_label_string_size(example)):
142
+ labels = get_bbox_label_string_at(example, i)
143
+ clear_bbox_label_string(example)
144
+
145
+ As described in media_sequence_util.h, each of these functions can take an
146
+ additional string prefix argument as their first argument. The prefix can
147
+ be fixed with a new NAME by using functools.partial. Prefixes are used to
148
+ identify common storage patterns (e.g. storing an image along with the height
149
+ and width) under different names (e.g. storing a left and right image in a
150
+ stereo pair.) An example creating functions such as
151
+ add_left_image_encoded that adds a string under the key "LEFT/image/encoded"
152
+ add_left_image_encoded = msu.function_with_default(add_image_encoded, "LEFT")
153
+ """
154
+
155
+ from __future__ import absolute_import
156
+ from __future__ import division
157
+ from __future__ import print_function
158
+ import numpy as np
159
+ from mediapipe.util.sequence import media_sequence_util
160
+ msu = media_sequence_util
161
+
162
+ _HAS_DYNAMIC_ATTRIBUTES = True
163
+
164
+ ################################## METADATA #################################
165
+ # A unique identifier for each example.
166
+ EXAMPLE_ID_KEY = "example/id"
167
+ # The name o fthe data set, including the version.
168
+ EXAMPLE_DATASET_NAME_KEY = "example/dataset_name"
169
+ # String flags or attributes for this example within a data set.
170
+ EXAMPLE_DATASET_FLAG_STRING_KEY = "example/dataset/flag/string"
171
+ # The relative path to the data on disk from some root directory.
172
+ CLIP_DATA_PATH_KEY = "clip/data_path"
173
+ # Any identifier for the media beyond the data path.
174
+ CLIP_MEDIA_ID_KEY = "clip/media_id"
175
+ # Yet another alternative identifier.
176
+ ALTERNATIVE_CLIP_MEDIA_ID_KEY = "clip/alternative_media_id"
177
+ # The encoded bytes for storing media directly in the SequenceExample.
178
+ CLIP_ENCODED_MEDIA_BYTES_KEY = "clip/encoded_media_bytes"
179
+ # The start time for the encoded media if not preserved during encoding.
180
+ CLIP_ENCODED_MEDIA_START_TIMESTAMP_KEY = "clip/encoded_media_start_timestamp"
181
+ # The start time, in microseconds, for the start of the clip in the media.
182
+ CLIP_START_TIMESTAMP_KEY = "clip/start/timestamp"
183
+ # The end time, in microseconds, for the end of the clip in the media.
184
+ CLIP_END_TIMESTAMP_KEY = "clip/end/timestamp"
185
+ # A list of label indices for this clip.
186
+ CLIP_LABEL_INDEX_KEY = "clip/label/index"
187
+ # A list of label strings for this clip.
188
+ CLIP_LABEL_STRING_KEY = "clip/label/string"
189
+ # A list of label confidences for this clip.
190
+ CLIP_LABEL_CONFIDENCE_KEY = "clip/label/confidence"
191
+ # A list of label start timestamps for this clip.
192
+ CLIP_LABEL_START_TIMESTAMP_KEY = "clip/label/start/timestamp"
193
+ # A list of label end timestamps for this clip.
194
+ CLIP_LABEL_END_TIMESTAMP_KEY = "clip/label/end/timestamp"
195
+ msu.create_bytes_context_feature(
196
+ "example_id", EXAMPLE_ID_KEY, module_dict=globals())
197
+ msu.create_bytes_context_feature(
198
+ "example_dataset_name", EXAMPLE_DATASET_NAME_KEY, module_dict=globals())
199
+ msu.create_bytes_list_context_feature(
200
+ "example_dataset_flag_string", EXAMPLE_DATASET_FLAG_STRING_KEY,
201
+ module_dict=globals())
202
+ msu.create_bytes_context_feature(
203
+ "clip_media_id", CLIP_MEDIA_ID_KEY, module_dict=globals())
204
+ msu.create_bytes_context_feature(
205
+ "clip_alternative_media_id", ALTERNATIVE_CLIP_MEDIA_ID_KEY,
206
+ module_dict=globals())
207
+ msu.create_bytes_context_feature(
208
+ "clip_encoded_media_bytes", CLIP_ENCODED_MEDIA_BYTES_KEY,
209
+ module_dict=globals())
210
+ msu.create_bytes_context_feature(
211
+ "clip_data_path", CLIP_DATA_PATH_KEY, module_dict=globals())
212
+ msu.create_int_context_feature(
213
+ "clip_encoded_media_start_timestamp",
214
+ CLIP_ENCODED_MEDIA_START_TIMESTAMP_KEY, module_dict=globals())
215
+ msu.create_int_context_feature(
216
+ "clip_start_timestamp", CLIP_START_TIMESTAMP_KEY, module_dict=globals())
217
+ msu.create_int_context_feature(
218
+ "clip_end_timestamp", CLIP_END_TIMESTAMP_KEY, module_dict=globals())
219
+ msu.create_bytes_list_context_feature(
220
+ "clip_label_string", CLIP_LABEL_STRING_KEY, module_dict=globals())
221
+ msu.create_int_list_context_feature(
222
+ "clip_label_index", CLIP_LABEL_INDEX_KEY, module_dict=globals())
223
+ msu.create_float_list_context_feature(
224
+ "clip_label_confidence", CLIP_LABEL_CONFIDENCE_KEY, module_dict=globals())
225
+ msu.create_int_list_context_feature(
226
+ "clip_label_start_timestamp",
227
+ CLIP_LABEL_START_TIMESTAMP_KEY,
228
+ module_dict=globals())
229
+ msu.create_int_list_context_feature(
230
+ "clip_label_end_timestamp",
231
+ CLIP_LABEL_END_TIMESTAMP_KEY,
232
+ module_dict=globals())
233
+
234
+ ################################## SEGMENTS #################################
235
+ # A list of segment start times in microseconds.
236
+ SEGMENT_START_TIMESTAMP_KEY = "segment/start/timestamp"
237
+ # A list of indices marking the first frame index >= the start timestamp.
238
+ SEGMENT_START_INDEX_KEY = "segment/start/index"
239
+ # A list of segment end times in microseconds.
240
+ SEGMENT_END_TIMESTAMP_KEY = "segment/end/timestamp"
241
+ # A list of indices marking the last frame index <= the end timestamp.
242
+ SEGMENT_END_INDEX_KEY = "segment/end/index"
243
+ # A list with the label index for each segment.
244
+ # Multiple labels for the same segment are encoded as repeated segments.
245
+ SEGMENT_LABEL_INDEX_KEY = "segment/label/index"
246
+ # A list with the label string for each segment.
247
+ # Multiple labels for the same segment are encoded as repeated segments.
248
+ SEGMENT_LABEL_STRING_KEY = "segment/label/string"
249
+ # A list with the label confidence for each segment.
250
+ # Multiple labels for the same segment are encoded as repeated segments.
251
+ SEGMENT_LABEL_CONFIDENCE_KEY = "segment/label/confidence"
252
+ msu.create_bytes_list_context_feature(
253
+ "segment_label_string", SEGMENT_LABEL_STRING_KEY, module_dict=globals())
254
+ msu.create_int_list_context_feature(
255
+ "segment_start_timestamp",
256
+ SEGMENT_START_TIMESTAMP_KEY, module_dict=globals())
257
+ msu.create_int_list_context_feature(
258
+ "segment_start_index", SEGMENT_START_INDEX_KEY, module_dict=globals())
259
+ msu.create_int_list_context_feature(
260
+ "segment_end_timestamp", SEGMENT_END_TIMESTAMP_KEY, module_dict=globals())
261
+ msu.create_int_list_context_feature(
262
+ "segment_end_index", SEGMENT_END_INDEX_KEY, module_dict=globals())
263
+ msu.create_int_list_context_feature(
264
+ "segment_label_index", SEGMENT_LABEL_INDEX_KEY, module_dict=globals())
265
+ msu.create_float_list_context_feature(
266
+ "segment_label_confidence",
267
+ SEGMENT_LABEL_CONFIDENCE_KEY, module_dict=globals())
268
+
269
+ ########################## REGIONS / BOUNDING BOXES #########################
270
+
271
+ # Normalized coordinates of bounding boxes are provided in four lists to avoid
272
+ # order ambiguity. We provide additional accessors for complete bounding boxes
273
+ # below.
274
+ REGION_BBOX_YMIN_KEY = "region/bbox/ymin"
275
+ REGION_BBOX_XMIN_KEY = "region/bbox/xmin"
276
+ REGION_BBOX_YMAX_KEY = "region/bbox/ymax"
277
+ REGION_BBOX_XMAX_KEY = "region/bbox/xmax"
278
+ # The point and radius can denote keypoints.
279
+ REGION_POINT_X_KEY = "region/point/x"
280
+ REGION_POINT_Y_KEY = "region/point/y"
281
+ REGION_RADIUS_KEY = "region/radius"
282
+ # The 3D point can denote keypoints.
283
+ REGION_3D_POINT_X_KEY = "region/3d_point/x"
284
+ REGION_3D_POINT_Y_KEY = "region/3d_point/y"
285
+ REGION_3D_POINT_Z_KEY = "region/3d_point/z"
286
+ # The number of regions at that timestep.
287
+ REGION_NUM_REGIONS_KEY = "region/num_regions"
288
+ # Whether that timestep is annotated for regions.
289
+ # (Disambiguates between multiple meanings of num_regions = 0.)
290
+ REGION_IS_ANNOTATED_KEY = "region/is_annotated"
291
+ # A list indicating if each region is generated (1) or manually annotated (0)
292
+ REGION_IS_GENERATED_KEY = "region/is_generated"
293
+ # A list indicating if each region is occluded (1) or visible (0)
294
+ REGION_IS_OCCLUDED_KEY = "region/is_occluded"
295
+ # Lists with a label for each region.
296
+ # Multiple labels for the same region require duplicating the region.
297
+ REGION_LABEL_INDEX_KEY = "region/label/index"
298
+ REGION_LABEL_STRING_KEY = "region/label/string"
299
+ REGION_LABEL_CONFIDENCE_KEY = "region/label/confidence"
300
+ # Lists with a track identifier for each region.
301
+ # Multiple track identifier for the same region require duplicating the region.
302
+ REGION_TRACK_INDEX_KEY = "region/track/index"
303
+ REGION_TRACK_STRING_KEY = "region/track/string"
304
+ REGION_TRACK_CONFIDENCE_KEY = "region/track/confidence"
305
+ # Lists with a class for each region. In general, prefer to use the label
306
+ # fields. These class fields exist to distinguish tracks when different classes
307
+ # have overlapping track ids.
308
+ REGION_CLASS_INDEX_KEY = "region/class/index"
309
+ REGION_CLASS_STRING_KEY = "region/class/string"
310
+ REGION_CLASS_CONFIDENCE_KEY = "region/class/confidence"
311
+ # The timestamp of the region annotation in microseconds.
312
+ REGION_TIMESTAMP_KEY = "region/timestamp"
313
+ # The original timestamp in microseconds for region annotations.
314
+ # If regions are aligned to image frames, this field preserves the original
315
+ # timestamps.
316
+ REGION_UNMODIFIED_TIMESTAMP_KEY = "region/unmodified_timestamp"
317
+ # The list of region parts expected in this example.
318
+ REGION_PARTS_KEY = "region/parts"
319
+ # The dimensions of each embedding per region / bounding box.
320
+ REGION_EMBEDDING_DIMENSIONS_PER_REGION_KEY = (
321
+ "region/embedding/dimensions_per_region")
322
+ # The format encoding embeddings as strings.
323
+ REGION_EMBEDDING_FORMAT_KEY = "region/embedding/format"
324
+ # An embedding for each region. The length of each list must be the product of
325
+ # the number of regions and the product of the embedding dimensions.
326
+ REGION_EMBEDDING_FLOAT_KEY = "region/embedding/float"
327
+ # A string encoded embedding for each regions.
328
+ REGION_EMBEDDING_ENCODED_KEY = "region/embedding/encoded"
329
+ # The confidence of the embedding.
330
+ REGION_EMBEDDING_CONFIDENCE_KEY = "region/embedding/confidence"
331
+
332
+
333
+ def _create_region_with_prefix(name, prefix):
334
+ """Create multiple accessors for region based data."""
335
+ msu.create_int_feature_list(name + "_num_regions", REGION_NUM_REGIONS_KEY,
336
+ prefix=prefix, module_dict=globals())
337
+ msu.create_int_feature_list(name + "_is_annotated", REGION_IS_ANNOTATED_KEY,
338
+ prefix=prefix, module_dict=globals())
339
+ msu.create_int_list_feature_list(
340
+ name + "_is_occluded", REGION_IS_OCCLUDED_KEY,
341
+ prefix=prefix, module_dict=globals())
342
+ msu.create_int_list_feature_list(
343
+ name + "_is_generated", REGION_IS_GENERATED_KEY,
344
+ prefix=prefix, module_dict=globals())
345
+ msu.create_int_feature_list(name + "_timestamp", REGION_TIMESTAMP_KEY,
346
+ prefix=prefix, module_dict=globals())
347
+ msu.create_int_feature_list(
348
+ name + "_unmodified_timestamp", REGION_UNMODIFIED_TIMESTAMP_KEY,
349
+ prefix=prefix, module_dict=globals())
350
+ msu.create_bytes_list_feature_list(
351
+ name + "_label_string", REGION_LABEL_STRING_KEY,
352
+ prefix=prefix, module_dict=globals())
353
+ msu.create_int_list_feature_list(
354
+ name + "_label_index", REGION_LABEL_INDEX_KEY,
355
+ prefix=prefix, module_dict=globals())
356
+ msu.create_float_list_feature_list(
357
+ name + "_label_confidence", REGION_LABEL_CONFIDENCE_KEY,
358
+ prefix=prefix, module_dict=globals())
359
+ msu.create_bytes_list_feature_list(
360
+ name + "_class_string", REGION_CLASS_STRING_KEY,
361
+ prefix=prefix, module_dict=globals())
362
+ msu.create_int_list_feature_list(
363
+ name + "_class_index", REGION_CLASS_INDEX_KEY,
364
+ prefix=prefix, module_dict=globals())
365
+ msu.create_float_list_feature_list(
366
+ name + "_class_confidence", REGION_CLASS_CONFIDENCE_KEY,
367
+ prefix=prefix, module_dict=globals())
368
+ msu.create_bytes_list_feature_list(
369
+ name + "_track_string", REGION_TRACK_STRING_KEY,
370
+ prefix=prefix, module_dict=globals())
371
+ msu.create_int_list_feature_list(
372
+ name + "_track_index", REGION_TRACK_INDEX_KEY,
373
+ prefix=prefix, module_dict=globals())
374
+ msu.create_float_list_feature_list(
375
+ name + "_track_confidence", REGION_TRACK_CONFIDENCE_KEY,
376
+ prefix=prefix, module_dict=globals())
377
+ msu.create_float_list_feature_list(name + "_ymin", REGION_BBOX_YMIN_KEY,
378
+ prefix=prefix, module_dict=globals())
379
+ msu.create_float_list_feature_list(name + "_xmin", REGION_BBOX_XMIN_KEY,
380
+ prefix=prefix, module_dict=globals())
381
+ msu.create_float_list_feature_list(name + "_ymax", REGION_BBOX_YMAX_KEY,
382
+ prefix=prefix, module_dict=globals())
383
+ msu.create_float_list_feature_list(name + "_xmax", REGION_BBOX_XMAX_KEY,
384
+ prefix=prefix, module_dict=globals())
385
+ msu.create_float_list_feature_list(name + "_point_x", REGION_POINT_X_KEY,
386
+ prefix=prefix, module_dict=globals())
387
+ msu.create_float_list_feature_list(name + "_point_y", REGION_POINT_Y_KEY,
388
+ prefix=prefix, module_dict=globals())
389
+ msu.create_float_list_feature_list(
390
+ name + "_3d_point_x", REGION_3D_POINT_X_KEY,
391
+ prefix=prefix, module_dict=globals())
392
+ msu.create_float_list_feature_list(
393
+ name + "_3d_point_y", REGION_3D_POINT_Y_KEY,
394
+ prefix=prefix, module_dict=globals())
395
+ msu.create_float_list_feature_list(
396
+ name + "_3d_point_z", REGION_3D_POINT_Z_KEY,
397
+ prefix=prefix, module_dict=globals())
398
+ msu.create_bytes_list_context_feature(name + "_parts",
399
+ REGION_PARTS_KEY,
400
+ prefix=prefix, module_dict=globals())
401
+ msu.create_float_list_context_feature(
402
+ name + "_embedding_dimensions_per_region",
403
+ REGION_EMBEDDING_DIMENSIONS_PER_REGION_KEY,
404
+ prefix=prefix, module_dict=globals())
405
+ msu.create_bytes_context_feature(name + "_embedding_format",
406
+ REGION_EMBEDDING_FORMAT_KEY,
407
+ prefix=prefix, module_dict=globals())
408
+ msu.create_float_list_feature_list(name + "_embedding_floats",
409
+ REGION_EMBEDDING_FLOAT_KEY,
410
+ prefix=prefix, module_dict=globals())
411
+ msu.create_bytes_list_feature_list(name + "_embedding_encoded",
412
+ REGION_EMBEDDING_ENCODED_KEY,
413
+ prefix=prefix, module_dict=globals())
414
+ msu.create_float_list_feature_list(name + "_embedding_confidence",
415
+ REGION_EMBEDDING_CONFIDENCE_KEY,
416
+ prefix=prefix, module_dict=globals())
417
+ # pylint: disable=undefined-variable
418
+ def get_prefixed_bbox_at(index, sequence_example, prefix):
419
+ return np.stack((
420
+ get_bbox_ymin_at(index, sequence_example, prefix=prefix),
421
+ get_bbox_xmin_at(index, sequence_example, prefix=prefix),
422
+ get_bbox_ymax_at(index, sequence_example, prefix=prefix),
423
+ get_bbox_xmax_at(index, sequence_example, prefix=prefix)),
424
+ 1)
425
+ def add_prefixed_bbox(values, sequence_example, prefix):
426
+ values = np.array(values)
427
+ if values.size == 0:
428
+ add_bbox_ymin([], sequence_example, prefix=prefix)
429
+ add_bbox_xmin([], sequence_example, prefix=prefix)
430
+ add_bbox_ymax([], sequence_example, prefix=prefix)
431
+ add_bbox_xmax([], sequence_example, prefix=prefix)
432
+ else:
433
+ add_bbox_ymin(values[:, 0], sequence_example, prefix=prefix)
434
+ add_bbox_xmin(values[:, 1], sequence_example, prefix=prefix)
435
+ add_bbox_ymax(values[:, 2], sequence_example, prefix=prefix)
436
+ add_bbox_xmax(values[:, 3], sequence_example, prefix=prefix)
437
+ def get_prefixed_bbox_size(sequence_example, prefix):
438
+ return get_bbox_ymin_size(sequence_example, prefix=prefix)
439
+ def has_prefixed_bbox(sequence_example, prefix):
440
+ return has_bbox_ymin(sequence_example, prefix=prefix)
441
+ def clear_prefixed_bbox(sequence_example, prefix):
442
+ clear_bbox_ymin(sequence_example, prefix=prefix)
443
+ clear_bbox_xmin(sequence_example, prefix=prefix)
444
+ clear_bbox_ymax(sequence_example, prefix=prefix)
445
+ clear_bbox_xmax(sequence_example, prefix=prefix)
446
+ def get_prefixed_point_at(index, sequence_example, prefix):
447
+ return np.stack((
448
+ get_bbox_point_y_at(index, sequence_example, prefix=prefix),
449
+ get_bbox_point_x_at(index, sequence_example, prefix=prefix)),
450
+ 1)
451
+ def add_prefixed_point(values, sequence_example, prefix):
452
+ add_bbox_point_y(values[:, 0], sequence_example, prefix=prefix)
453
+ add_bbox_point_x(values[:, 1], sequence_example, prefix=prefix)
454
+ def get_prefixed_point_size(sequence_example, prefix):
455
+ return get_bbox_point_y_size(sequence_example, prefix=prefix)
456
+ def has_prefixed_point(sequence_example, prefix):
457
+ return has_bbox_point_y(sequence_example, prefix=prefix)
458
+ def clear_prefixed_point(sequence_example, prefix):
459
+ clear_bbox_point_y(sequence_example, prefix=prefix)
460
+ clear_bbox_point_x(sequence_example, prefix=prefix)
461
+ def get_prefixed_3d_point_at(index, sequence_example, prefix):
462
+ return np.stack((
463
+ get_bbox_3d_point_x_at(index, sequence_example, prefix=prefix),
464
+ get_bbox_3d_point_y_at(index, sequence_example, prefix=prefix),
465
+ get_bbox_3d_point_z_at(index, sequence_example, prefix=prefix)),
466
+ 1)
467
+ def add_prefixed_3d_point(values, sequence_example, prefix):
468
+ add_bbox_3d_point_x(values[:, 0], sequence_example, prefix=prefix)
469
+ add_bbox_3d_point_y(values[:, 1], sequence_example, prefix=prefix)
470
+ add_bbox_3d_point_z(values[:, 2], sequence_example, prefix=prefix)
471
+ def get_prefixed_3d_point_size(sequence_example, prefix):
472
+ return get_bbox_3d_point_x_size(sequence_example, prefix=prefix)
473
+ def has_prefixed_3d_point(sequence_example, prefix):
474
+ return has_bbox_3d_point_x(sequence_example, prefix=prefix)
475
+ def clear_prefixed_3d_point(sequence_example, prefix):
476
+ clear_bbox_3d_point_x(sequence_example, prefix=prefix)
477
+ clear_bbox_3d_point_y(sequence_example, prefix=prefix)
478
+ clear_bbox_3d_point_z(sequence_example, prefix=prefix)
479
+ # pylint: enable=undefined-variable
480
+ msu.add_functions_to_module({
481
+ "get_" + name + "_at":
482
+ msu.function_with_default(get_prefixed_bbox_at, prefix),
483
+ "add_" + name:
484
+ msu.function_with_default(add_prefixed_bbox, prefix),
485
+ "get_" + name + "_size":
486
+ msu.function_with_default(get_prefixed_bbox_size, prefix),
487
+ "has_" + name:
488
+ msu.function_with_default(has_prefixed_bbox, prefix),
489
+ "clear_" + name:
490
+ msu.function_with_default(clear_prefixed_bbox, prefix),
491
+ }, module_dict=globals())
492
+ msu.add_functions_to_module({
493
+ "get_" + name + "_point_at":
494
+ msu.function_with_default(get_prefixed_point_at, prefix),
495
+ "add_" + name + "_point":
496
+ msu.function_with_default(add_prefixed_point, prefix),
497
+ "get_" + name + "_point_size":
498
+ msu.function_with_default(get_prefixed_point_size, prefix),
499
+ "has_" + name + "_point":
500
+ msu.function_with_default(has_prefixed_point, prefix),
501
+ "clear_" + name + "_point":
502
+ msu.function_with_default(clear_prefixed_point, prefix),
503
+ }, module_dict=globals())
504
+ msu.add_functions_to_module({
505
+ "get_" + name + "_3d_point_at":
506
+ msu.function_with_default(get_prefixed_3d_point_at, prefix),
507
+ "add_" + name + "_3d_point":
508
+ msu.function_with_default(add_prefixed_3d_point, prefix),
509
+ "get_" + name + "_3d_point_size":
510
+ msu.function_with_default(get_prefixed_3d_point_size, prefix),
511
+ "has_" + name + "_3d_point":
512
+ msu.function_with_default(has_prefixed_3d_point, prefix),
513
+ "clear_" + name + "_3d_point":
514
+ msu.function_with_default(clear_prefixed_3d_point, prefix),
515
+ }, module_dict=globals())
516
+
517
+
518
+ PREDICTED_PREFIX = "PREDICTED"
519
+ _create_region_with_prefix("bbox", "")
520
+ _create_region_with_prefix("predicted_bbox", PREDICTED_PREFIX)
521
+
522
+
523
+ ################################### IMAGES #################################
524
+ # The format the images are encoded as (e.g. "JPEG", "PNG")
525
+ IMAGE_FORMAT_KEY = "image/format"
526
+ # The number of channels in the image.
527
+ IMAGE_CHANNELS_KEY = "image/channels"
528
+ # The colorspace of the iamge.
529
+ IMAGE_COLORSPACE_KEY = "image/colorspace"
530
+ # The height of the image in pixels.
531
+ IMAGE_HEIGHT_KEY = "image/height"
532
+ # The width of the image in pixels.
533
+ IMAGE_WIDTH_KEY = "image/width"
534
+ # frame rate in images/second of media.
535
+ IMAGE_FRAME_RATE_KEY = "image/frame_rate"
536
+ # The maximum values if the images were saturated and normalized for encoding.
537
+ IMAGE_SATURATION_KEY = "image/saturation"
538
+ # The listing from discrete image values (as indices) to class indices.
539
+ IMAGE_CLASS_LABEL_INDEX_KEY = "image/class/label/index"
540
+ # The listing from discrete image values (as indices) to class strings.
541
+ IMAGE_CLASS_LABEL_STRING_KEY = "image/class/label/string"
542
+ # The listing from discrete instance indices to class indices they embody.
543
+ IMAGE_OBJECT_CLASS_INDEX_KEY = "image/object/class/index"
544
+ # The encoded image frame.
545
+ IMAGE_ENCODED_KEY = "image/encoded"
546
+ # Multiple images from the same timestep (e.g. multiview video).
547
+ IMAGE_MULTI_ENCODED_KEY = "image/multi_encoded"
548
+ # The timestamp of the frame in microseconds.
549
+ IMAGE_TIMESTAMP_KEY = "image/timestamp"
550
+ # A per image label if specific frames have labels.
551
+ # If time spans have labels, segments are preferred to allow changing rates.
552
+ IMAGE_LABEL_INDEX_KEY = "image/label/index"
553
+ IMAGE_LABEL_STRING_KEY = "image/label/string"
554
+ IMAGE_LABEL_CONFIDENCE_KEY = "image/label/confidence"
555
+ # The path of the image file if it did not come from a media clip.
556
+ IMAGE_DATA_PATH_KEY = "image/data_path"
557
+
558
+
559
+ def _create_image_with_prefix(name, prefix):
560
+ """Create multiple accessors for image based data."""
561
+ msu.create_bytes_context_feature(name + "_format", IMAGE_FORMAT_KEY,
562
+ prefix=prefix, module_dict=globals())
563
+ msu.create_bytes_context_feature(name + "_colorspace", IMAGE_COLORSPACE_KEY,
564
+ prefix=prefix, module_dict=globals())
565
+ msu.create_int_context_feature(name + "_channels", IMAGE_CHANNELS_KEY,
566
+ prefix=prefix, module_dict=globals())
567
+ msu.create_int_context_feature(name + "_height", IMAGE_HEIGHT_KEY,
568
+ prefix=prefix, module_dict=globals())
569
+ msu.create_int_context_feature(name + "_width", IMAGE_WIDTH_KEY,
570
+ prefix=prefix, module_dict=globals())
571
+ msu.create_bytes_feature_list(name + "_encoded", IMAGE_ENCODED_KEY,
572
+ prefix=prefix, module_dict=globals())
573
+ msu.create_float_context_feature(name + "_frame_rate", IMAGE_FRAME_RATE_KEY,
574
+ prefix=prefix, module_dict=globals())
575
+ msu.create_bytes_list_context_feature(
576
+ name + "_class_label_string", IMAGE_CLASS_LABEL_STRING_KEY,
577
+ prefix=prefix, module_dict=globals())
578
+ msu.create_int_list_context_feature(
579
+ name + "_class_label_index", IMAGE_CLASS_LABEL_INDEX_KEY,
580
+ prefix=prefix, module_dict=globals())
581
+ msu.create_int_list_context_feature(
582
+ name + "_object_class_index", IMAGE_OBJECT_CLASS_INDEX_KEY,
583
+ prefix=prefix, module_dict=globals())
584
+ msu.create_bytes_context_feature(name + "_data_path", IMAGE_DATA_PATH_KEY,
585
+ prefix=prefix, module_dict=globals())
586
+ msu.create_int_feature_list(name + "_timestamp", IMAGE_TIMESTAMP_KEY,
587
+ prefix=prefix, module_dict=globals())
588
+ msu.create_bytes_list_feature_list(name + "_multi_encoded",
589
+ IMAGE_MULTI_ENCODED_KEY, prefix=prefix,
590
+ module_dict=globals())
591
+ FORWARD_FLOW_PREFIX = "FORWARD_FLOW"
592
+ CLASS_SEGMENTATION_PREFIX = "CLASS_SEGMENTATION"
593
+ INSTANCE_SEGMENTATION_PREFIX = "INSTANCE_SEGMENTATION"
594
+ _create_image_with_prefix("image", "")
595
+ _create_image_with_prefix("forward_flow", FORWARD_FLOW_PREFIX)
596
+ _create_image_with_prefix("class_segmentation", CLASS_SEGMENTATION_PREFIX)
597
+ _create_image_with_prefix("instance_segmentation", INSTANCE_SEGMENTATION_PREFIX)
598
+
599
+ ################################## TEXT #################################
600
+ # Which language text tokens are likely to be in.
601
+ TEXT_LANGUAGE_KEY = "text/language"
602
+ # A large block of text that applies to the media.
603
+ TEXT_CONTEXT_CONTENT_KEY = "text/context/content"
604
+ # A large block of text that applies to the media as token ids.
605
+ TEXT_CONTEXT_TOKEN_ID_KEY = "text/context/token_id"
606
+ # A large block of text that applies to the media as embeddings.
607
+ TEXT_CONTEXT_EMBEDDING_KEY = "text/context/embedding"
608
+
609
+ # The text contents for a given time.
610
+ TEXT_CONTENT_KEY = "text/content"
611
+ # The start time for the text becoming relevant.
612
+ TEXT_TIMESTAMP_KEY = "text/timestamp"
613
+ # The duration where the text is relevant.
614
+ TEXT_DURATION_KEY = "text/duration"
615
+ # The confidence that this is the correct text.
616
+ TEXT_CONFIDENCE_KEY = "text/confidence"
617
+ # A floating point embedding corresponding to the text.
618
+ TEXT_EMBEDDING_KEY = "text/embedding"
619
+ # An integer id corresponding to the text.
620
+ TEXT_TOKEN_ID_KEY = "text/token/id"
621
+
622
+ msu.create_bytes_context_feature(
623
+ "text_language", TEXT_LANGUAGE_KEY, module_dict=globals())
624
+ msu.create_bytes_context_feature(
625
+ "text_context_content", TEXT_CONTEXT_CONTENT_KEY, module_dict=globals())
626
+ msu.create_int_list_context_feature(
627
+ "text_context_token_id", TEXT_CONTEXT_TOKEN_ID_KEY, module_dict=globals())
628
+ msu.create_float_list_context_feature(
629
+ "text_context_embedding", TEXT_CONTEXT_EMBEDDING_KEY, module_dict=globals())
630
+ msu.create_bytes_feature_list(
631
+ "text_content", TEXT_CONTENT_KEY, module_dict=globals())
632
+ msu.create_int_feature_list(
633
+ "text_timestamp", TEXT_TIMESTAMP_KEY, module_dict=globals())
634
+ msu.create_int_feature_list(
635
+ "text_duration", TEXT_DURATION_KEY, module_dict=globals())
636
+ msu.create_float_feature_list(
637
+ "text_confidence", TEXT_CONFIDENCE_KEY, module_dict=globals())
638
+ msu.create_float_list_feature_list(
639
+ "text_embedding", TEXT_EMBEDDING_KEY, module_dict=globals())
640
+ msu.create_int_feature_list(
641
+ "text_token_id", TEXT_TOKEN_ID_KEY, module_dict=globals())
642
+
643
+ ################################## FEATURES #################################
644
+ # The dimensions of the feature.
645
+ FEATURE_DIMENSIONS_KEY = "feature/dimensions"
646
+ # The rate the features are extracted per second of media.
647
+ FEATURE_RATE_KEY = "feature/rate"
648
+ # The encoding format if any for the feature.
649
+ FEATURE_BYTES_FORMAT_KEY = "feature/bytes/format"
650
+ # For audio, the rate the samples are extracted per second of media.
651
+ FEATURE_SAMPLE_RATE_KEY = "feature/sample_rate"
652
+ # For audio, the number of channels per extracted feature.
653
+ FEATURE_NUM_CHANNELS_KEY = "feature/num_channels"
654
+ # For audio, th enumber of samples per extracted feature.
655
+ FEATURE_NUM_SAMPLES_KEY = "feature/num_samples"
656
+ # For audio, the rate the features are extracted per second of media.
657
+ FEATURE_PACKET_RATE_KEY = "feature/packet_rate"
658
+ # For audio, the original audio sampling rate the feature is derived from.
659
+ FEATURE_AUDIO_SAMPLE_RATE_KEY = "feature/audio_sample_rate"
660
+ # The feature as a list of floats.
661
+ FEATURE_FLOATS_KEY = "feature/floats"
662
+ # The feature as a list of bytes. May be encoded.
663
+ FEATURE_BYTES_KEY = "feature/bytes"
664
+ # The feature as a list of ints.
665
+ FEATURE_INTS_KEY = "feature/ints"
666
+ # The timestamp, in microseconds, of the feature.
667
+ FEATURE_TIMESTAMP_KEY = "feature/timestamp"
668
+ # It is occasionally useful to indicate that a feature applies to a given range.
669
+ # This should be used for features only and annotations should be provided as
670
+ # segments.
671
+ FEATURE_DURATION_KEY = "feature/duration"
672
+ # Encodes an optional confidence score for the generated features.
673
+ FEATURE_CONFIDENCE_KEY = "feature/confidence"
674
+ # The feature as a list of floats in the context.
675
+ CONTEXT_FEATURE_FLOATS_KEY = "context_feature/floats"
676
+ # The feature as a list of bytes in the context. May be encoded.
677
+ CONTEXT_FEATURE_BYTES_KEY = "context_feature/bytes"
678
+ # The feature as a list of ints in the context.
679
+ CONTEXT_FEATURE_INTS_KEY = "context_feature/ints"
680
+
681
+ msu.create_int_list_context_feature(
682
+ "feature_dimensions", FEATURE_DIMENSIONS_KEY, module_dict=globals())
683
+ msu.create_float_context_feature(
684
+ "feature_rate", FEATURE_RATE_KEY, module_dict=globals())
685
+ msu.create_bytes_context_feature(
686
+ "feature_bytes_format", FEATURE_BYTES_FORMAT_KEY, module_dict=globals())
687
+ msu.create_float_context_feature(
688
+ "feature_sample_rate", FEATURE_SAMPLE_RATE_KEY, module_dict=globals())
689
+ msu.create_int_context_feature(
690
+ "feature_num_channels", FEATURE_NUM_CHANNELS_KEY, module_dict=globals())
691
+ msu.create_int_context_feature(
692
+ "feature_num_samples", FEATURE_NUM_SAMPLES_KEY, module_dict=globals())
693
+ msu.create_float_context_feature(
694
+ "feature_packet_rate", FEATURE_PACKET_RATE_KEY, module_dict=globals())
695
+ msu.create_float_context_feature(
696
+ "feature_audio_sample_rate", FEATURE_AUDIO_SAMPLE_RATE_KEY,
697
+ module_dict=globals())
698
+ msu.create_float_list_feature_list(
699
+ "feature_floats", FEATURE_FLOATS_KEY, module_dict=globals())
700
+ msu.create_bytes_list_feature_list(
701
+ "feature_bytes", FEATURE_BYTES_KEY, module_dict=globals())
702
+ msu.create_int_list_feature_list(
703
+ "feature_ints", FEATURE_INTS_KEY, module_dict=globals())
704
+ msu.create_int_feature_list(
705
+ "feature_timestamp", FEATURE_TIMESTAMP_KEY, module_dict=globals())
706
+ msu.create_int_list_feature_list(
707
+ "feature_duration", FEATURE_DURATION_KEY, module_dict=globals())
708
+ msu.create_float_list_feature_list(
709
+ "feature_confidence", FEATURE_CONFIDENCE_KEY, module_dict=globals())
710
+ msu.create_float_list_context_feature(
711
+ "context_feature_floats", CONTEXT_FEATURE_FLOATS_KEY, module_dict=globals())
712
+ msu.create_bytes_list_context_feature(
713
+ "context_feature_bytes", CONTEXT_FEATURE_BYTES_KEY, module_dict=globals())
714
+ msu.create_int_list_context_feature(
715
+ "context_feature_ints", CONTEXT_FEATURE_INTS_KEY, module_dict=globals())
716
+