react-native-executorch 0.4.10 → 0.5.0-nightly-6f4dd53-20251211

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (881) hide show
  1. package/README.md +77 -71
  2. package/android/CMakeLists.txt +29 -0
  3. package/android/build.gradle +76 -13
  4. package/android/libs/classes.jar +0 -0
  5. package/android/src/main/cpp/CMakeLists.txt +109 -0
  6. package/android/src/main/cpp/ETInstallerModule.cpp +76 -0
  7. package/android/src/main/cpp/ETInstallerModule.h +43 -0
  8. package/android/src/main/java/com/swmansion/rnexecutorch/ETInstaller.kt +66 -0
  9. package/android/src/main/java/com/swmansion/rnexecutorch/RnExecutorchPackage.kt +6 -124
  10. package/common/ada/ada.cpp +17406 -0
  11. package/common/ada/ada.h +10274 -0
  12. package/common/pfft/pfft.c +2205 -0
  13. package/common/pfft/pfft.h +185 -0
  14. package/common/rnexecutorch/Log.h +489 -0
  15. package/common/rnexecutorch/RnExecutorchInstaller.cpp +113 -0
  16. package/common/rnexecutorch/RnExecutorchInstaller.h +87 -0
  17. package/common/rnexecutorch/TokenizerModule.cpp +52 -0
  18. package/common/rnexecutorch/TokenizerModule.h +29 -0
  19. package/common/rnexecutorch/data_processing/FFT.cpp +21 -0
  20. package/common/rnexecutorch/data_processing/FFT.h +23 -0
  21. package/common/rnexecutorch/data_processing/FileUtils.h +30 -0
  22. package/common/rnexecutorch/data_processing/ImageProcessing.cpp +240 -0
  23. package/common/rnexecutorch/data_processing/ImageProcessing.h +55 -0
  24. package/common/rnexecutorch/data_processing/Numerical.cpp +111 -0
  25. package/common/rnexecutorch/data_processing/Numerical.h +77 -0
  26. package/common/rnexecutorch/data_processing/base64.cpp +110 -0
  27. package/common/rnexecutorch/data_processing/base64.h +46 -0
  28. package/common/rnexecutorch/data_processing/dsp.cpp +19 -0
  29. package/common/rnexecutorch/data_processing/dsp.h +12 -0
  30. package/common/rnexecutorch/data_processing/gzip.cpp +47 -0
  31. package/common/rnexecutorch/data_processing/gzip.h +7 -0
  32. package/common/rnexecutorch/host_objects/JSTensorViewIn.h +12 -0
  33. package/common/rnexecutorch/host_objects/JSTensorViewOut.h +22 -0
  34. package/common/rnexecutorch/host_objects/JsiConversions.h +418 -0
  35. package/common/rnexecutorch/host_objects/ModelHostObject.h +313 -0
  36. package/common/rnexecutorch/jsi/JsiHostObject.cpp +108 -0
  37. package/common/rnexecutorch/jsi/JsiHostObject.h +87 -0
  38. package/common/rnexecutorch/jsi/OwningArrayBuffer.h +57 -0
  39. package/common/rnexecutorch/jsi/Promise.cpp +20 -0
  40. package/common/rnexecutorch/jsi/Promise.h +69 -0
  41. package/common/rnexecutorch/jsi/RuntimeAwareCache.h +58 -0
  42. package/common/rnexecutorch/jsi/RuntimeLifecycleMonitor.cpp +53 -0
  43. package/common/rnexecutorch/jsi/RuntimeLifecycleMonitor.h +35 -0
  44. package/common/rnexecutorch/metaprogramming/ConstructorHelpers.h +133 -0
  45. package/common/rnexecutorch/metaprogramming/FunctionHelpers.h +50 -0
  46. package/common/rnexecutorch/metaprogramming/TypeConcepts.h +37 -0
  47. package/common/rnexecutorch/models/BaseModel.cpp +183 -0
  48. package/common/rnexecutorch/models/BaseModel.h +61 -0
  49. package/common/rnexecutorch/models/classification/Classification.cpp +72 -0
  50. package/common/rnexecutorch/models/classification/Classification.h +31 -0
  51. package/{ios/RnExecutorch/models/classification/Constants.mm → common/rnexecutorch/models/classification/Constants.h} +7 -2
  52. package/common/rnexecutorch/models/embeddings/BaseEmbeddings.cpp +19 -0
  53. package/common/rnexecutorch/models/embeddings/BaseEmbeddings.h +17 -0
  54. package/common/rnexecutorch/models/embeddings/image/ImageEmbeddings.cpp +45 -0
  55. package/common/rnexecutorch/models/embeddings/image/ImageEmbeddings.h +28 -0
  56. package/common/rnexecutorch/models/embeddings/text/TextEmbeddings.cpp +60 -0
  57. package/common/rnexecutorch/models/embeddings/text/TextEmbeddings.h +31 -0
  58. package/{ios/RnExecutorch/models/image_segmentation/Constants.mm → common/rnexecutorch/models/image_segmentation/Constants.h} +7 -2
  59. package/common/rnexecutorch/models/image_segmentation/ImageSegmentation.cpp +168 -0
  60. package/common/rnexecutorch/models/image_segmentation/ImageSegmentation.h +50 -0
  61. package/common/rnexecutorch/models/llm/LLM.cpp +98 -0
  62. package/common/rnexecutorch/models/llm/LLM.h +38 -0
  63. package/{ios/RnExecutorch/utils/Constants.mm → common/rnexecutorch/models/object_detection/Constants.h} +9 -2
  64. package/common/rnexecutorch/models/object_detection/ObjectDetection.cpp +82 -0
  65. package/common/rnexecutorch/models/object_detection/ObjectDetection.h +37 -0
  66. package/common/rnexecutorch/models/object_detection/Types.h +13 -0
  67. package/{ios/RnExecutorch/utils/ObjectDetectionUtils.mm → common/rnexecutorch/models/object_detection/Utils.cpp} +17 -35
  68. package/common/rnexecutorch/models/object_detection/Utils.h +11 -0
  69. package/common/rnexecutorch/models/ocr/CTCLabelConverter.cpp +88 -0
  70. package/common/rnexecutorch/models/ocr/CTCLabelConverter.h +29 -0
  71. package/common/rnexecutorch/models/ocr/Constants.h +41 -0
  72. package/common/rnexecutorch/models/ocr/Detector.cpp +100 -0
  73. package/common/rnexecutorch/models/ocr/Detector.h +30 -0
  74. package/common/rnexecutorch/models/ocr/OCR.cpp +53 -0
  75. package/common/rnexecutorch/models/ocr/OCR.h +44 -0
  76. package/common/rnexecutorch/models/ocr/RecognitionHandler.cpp +108 -0
  77. package/common/rnexecutorch/models/ocr/RecognitionHandler.h +42 -0
  78. package/common/rnexecutorch/models/ocr/Recognizer.cpp +80 -0
  79. package/common/rnexecutorch/models/ocr/Recognizer.h +36 -0
  80. package/common/rnexecutorch/models/ocr/Types.h +35 -0
  81. package/common/rnexecutorch/models/ocr/utils/DetectorUtils.cpp +710 -0
  82. package/common/rnexecutorch/models/ocr/utils/DetectorUtils.h +81 -0
  83. package/common/rnexecutorch/models/ocr/utils/RecognitionHandlerUtils.cpp +159 -0
  84. package/common/rnexecutorch/models/ocr/utils/RecognitionHandlerUtils.h +72 -0
  85. package/common/rnexecutorch/models/ocr/utils/RecognizerUtils.cpp +204 -0
  86. package/common/rnexecutorch/models/ocr/utils/RecognizerUtils.h +71 -0
  87. package/common/rnexecutorch/models/speech_to_text/SpeechToText.cpp +125 -0
  88. package/common/rnexecutorch/models/speech_to_text/SpeechToText.h +57 -0
  89. package/common/rnexecutorch/models/speech_to_text/asr/ASR.cpp +303 -0
  90. package/common/rnexecutorch/models/speech_to_text/asr/ASR.h +61 -0
  91. package/common/rnexecutorch/models/speech_to_text/stream/HypothesisBuffer.cpp +82 -0
  92. package/common/rnexecutorch/models/speech_to_text/stream/HypothesisBuffer.h +25 -0
  93. package/common/rnexecutorch/models/speech_to_text/stream/OnlineASRProcessor.cpp +99 -0
  94. package/common/rnexecutorch/models/speech_to_text/stream/OnlineASRProcessor.h +33 -0
  95. package/common/rnexecutorch/models/speech_to_text/types/DecodingOptions.h +15 -0
  96. package/common/rnexecutorch/models/speech_to_text/types/GenerationResult.h +12 -0
  97. package/common/rnexecutorch/models/speech_to_text/types/ProcessResult.h +12 -0
  98. package/common/rnexecutorch/models/speech_to_text/types/Segment.h +14 -0
  99. package/common/rnexecutorch/models/speech_to_text/types/Word.h +13 -0
  100. package/common/rnexecutorch/models/style_transfer/StyleTransfer.cpp +55 -0
  101. package/common/rnexecutorch/models/style_transfer/StyleTransfer.h +35 -0
  102. package/common/rnexecutorch/models/text_to_image/Constants.h +9 -0
  103. package/common/rnexecutorch/models/text_to_image/Decoder.cpp +32 -0
  104. package/common/rnexecutorch/models/text_to_image/Decoder.h +24 -0
  105. package/common/rnexecutorch/models/text_to_image/Encoder.cpp +44 -0
  106. package/common/rnexecutorch/models/text_to_image/Encoder.h +32 -0
  107. package/common/rnexecutorch/models/text_to_image/Scheduler.cpp +152 -0
  108. package/common/rnexecutorch/models/text_to_image/Scheduler.h +41 -0
  109. package/common/rnexecutorch/models/text_to_image/TextToImage.cpp +141 -0
  110. package/common/rnexecutorch/models/text_to_image/TextToImage.h +64 -0
  111. package/common/rnexecutorch/models/text_to_image/UNet.cpp +38 -0
  112. package/common/rnexecutorch/models/text_to_image/UNet.h +28 -0
  113. package/common/rnexecutorch/models/vertical_ocr/VerticalDetector.cpp +93 -0
  114. package/common/rnexecutorch/models/vertical_ocr/VerticalDetector.h +49 -0
  115. package/common/rnexecutorch/models/vertical_ocr/VerticalOCR.cpp +180 -0
  116. package/common/rnexecutorch/models/vertical_ocr/VerticalOCR.h +85 -0
  117. package/common/rnexecutorch/models/voice_activity_detection/Constants.h +27 -0
  118. package/common/rnexecutorch/models/voice_activity_detection/Types.h +12 -0
  119. package/common/rnexecutorch/models/voice_activity_detection/Utils.cpp +15 -0
  120. package/common/rnexecutorch/models/voice_activity_detection/Utils.h +13 -0
  121. package/common/rnexecutorch/models/voice_activity_detection/VoiceActivityDetection.cpp +160 -0
  122. package/common/rnexecutorch/models/voice_activity_detection/VoiceActivityDetection.h +36 -0
  123. package/common/rnexecutorch/tests/CMakeLists.txt +30 -0
  124. package/common/rnexecutorch/tests/LogTest.cpp +530 -0
  125. package/common/rnexecutorch/tests/NumericalTest.cpp +110 -0
  126. package/common/rnexecutorch/tests/README.md +37 -0
  127. package/common/rnexecutorch/threads/GlobalThreadPool.h +84 -0
  128. package/common/rnexecutorch/threads/HighPerformanceThreadPool.h +364 -0
  129. package/common/rnexecutorch/threads/utils/ThreadUtils.h +29 -0
  130. package/common/runner/arange_util.cpp +44 -0
  131. package/common/runner/arange_util.h +37 -0
  132. package/common/runner/constants.h +28 -0
  133. package/common/runner/io_manager.h +240 -0
  134. package/common/runner/irunner.h +119 -0
  135. package/common/runner/kernel_includes.h +23 -0
  136. package/common/runner/runner.cpp +369 -0
  137. package/common/runner/runner.h +85 -0
  138. package/common/runner/sampler.cpp +201 -0
  139. package/common/runner/sampler.h +67 -0
  140. package/common/runner/stats.h +161 -0
  141. package/common/runner/text_decoder_runner.cpp +79 -0
  142. package/common/runner/text_decoder_runner.h +126 -0
  143. package/common/runner/text_prefiller.cpp +125 -0
  144. package/common/runner/text_prefiller.h +85 -0
  145. package/common/runner/text_token_generator.h +205 -0
  146. package/common/runner/util.h +153 -0
  147. package/ios/RnExecutorch/ETInstaller.h +8 -0
  148. package/ios/RnExecutorch/ETInstaller.mm +56 -0
  149. package/ios/RnExecutorch.xcodeproj/project.pbxproj +73 -23
  150. package/lib/module/Error.js +3 -0
  151. package/lib/module/Error.js.map +1 -1
  152. package/lib/module/common/Logger.js +23 -0
  153. package/lib/module/common/Logger.js.map +1 -0
  154. package/lib/module/constants/directories.js +1 -1
  155. package/lib/module/constants/directories.js.map +1 -1
  156. package/lib/module/constants/llmDefaults.js +8 -0
  157. package/lib/module/constants/llmDefaults.js.map +1 -1
  158. package/lib/module/constants/modelUrls.js +356 -84
  159. package/lib/module/constants/modelUrls.js.map +1 -1
  160. package/lib/module/constants/ocr/models.js +181 -286
  161. package/lib/module/constants/ocr/models.js.map +1 -1
  162. package/lib/module/constants/ocr/symbols.js +66 -65
  163. package/lib/module/constants/ocr/symbols.js.map +1 -1
  164. package/lib/module/controllers/LLMController.js +53 -23
  165. package/lib/module/controllers/LLMController.js.map +1 -1
  166. package/lib/module/controllers/OCRController.js +17 -10
  167. package/lib/module/controllers/OCRController.js.map +1 -1
  168. package/lib/module/controllers/VerticalOCRController.js +17 -10
  169. package/lib/module/controllers/VerticalOCRController.js.map +1 -1
  170. package/lib/module/hooks/computer_vision/useClassification.js +4 -4
  171. package/lib/module/hooks/computer_vision/useClassification.js.map +1 -1
  172. package/lib/module/hooks/computer_vision/useImageEmbeddings.js +13 -0
  173. package/lib/module/hooks/computer_vision/useImageEmbeddings.js.map +1 -0
  174. package/lib/module/hooks/computer_vision/useImageSegmentation.js +2 -2
  175. package/lib/module/hooks/computer_vision/useImageSegmentation.js.map +1 -1
  176. package/lib/module/hooks/computer_vision/useOCR.js +16 -17
  177. package/lib/module/hooks/computer_vision/useOCR.js.map +1 -1
  178. package/lib/module/hooks/computer_vision/useObjectDetection.js +3 -3
  179. package/lib/module/hooks/computer_vision/useObjectDetection.js.map +1 -1
  180. package/lib/module/hooks/computer_vision/useStyleTransfer.js +3 -3
  181. package/lib/module/hooks/computer_vision/useStyleTransfer.js.map +1 -1
  182. package/lib/module/hooks/computer_vision/useTextToImage.js +57 -0
  183. package/lib/module/hooks/computer_vision/useTextToImage.js.map +1 -0
  184. package/lib/module/hooks/computer_vision/useVerticalOCR.js +18 -19
  185. package/lib/module/hooks/computer_vision/useVerticalOCR.js.map +1 -1
  186. package/lib/module/hooks/general/useExecutorchModule.js +1 -1
  187. package/lib/module/hooks/general/useExecutorchModule.js.map +1 -1
  188. package/lib/module/hooks/natural_language_processing/useLLM.js +30 -29
  189. package/lib/module/hooks/natural_language_processing/useLLM.js.map +1 -1
  190. package/lib/module/hooks/natural_language_processing/useSpeechToText.js +72 -33
  191. package/lib/module/hooks/natural_language_processing/useSpeechToText.js.map +1 -1
  192. package/lib/module/hooks/natural_language_processing/useTextEmbeddings.js +2 -3
  193. package/lib/module/hooks/natural_language_processing/useTextEmbeddings.js.map +1 -1
  194. package/lib/module/hooks/natural_language_processing/useTokenizer.js +19 -18
  195. package/lib/module/hooks/natural_language_processing/useTokenizer.js.map +1 -1
  196. package/lib/module/hooks/natural_language_processing/useVAD.js +13 -0
  197. package/lib/module/hooks/natural_language_processing/useVAD.js.map +1 -0
  198. package/lib/module/hooks/useModule.js +13 -9
  199. package/lib/module/hooks/useModule.js.map +1 -1
  200. package/lib/module/index.js +21 -3
  201. package/lib/module/index.js.map +1 -1
  202. package/lib/module/modules/BaseModule.js +9 -14
  203. package/lib/module/modules/BaseModule.js.map +1 -1
  204. package/lib/module/modules/computer_vision/ClassificationModule.js +11 -6
  205. package/lib/module/modules/computer_vision/ClassificationModule.js.map +1 -1
  206. package/lib/module/modules/computer_vision/ImageEmbeddingsModule.js +19 -0
  207. package/lib/module/modules/computer_vision/ImageEmbeddingsModule.js.map +1 -0
  208. package/lib/module/modules/computer_vision/ImageSegmentationModule.js +20 -18
  209. package/lib/module/modules/computer_vision/ImageSegmentationModule.js.map +1 -1
  210. package/lib/module/modules/computer_vision/OCRModule.js +13 -10
  211. package/lib/module/modules/computer_vision/OCRModule.js.map +1 -1
  212. package/lib/module/modules/computer_vision/ObjectDetectionModule.js +11 -6
  213. package/lib/module/modules/computer_vision/ObjectDetectionModule.js.map +1 -1
  214. package/lib/module/modules/computer_vision/StyleTransferModule.js +11 -6
  215. package/lib/module/modules/computer_vision/StyleTransferModule.js.map +1 -1
  216. package/lib/module/modules/computer_vision/TextToImageModule.js +48 -0
  217. package/lib/module/modules/computer_vision/TextToImageModule.js.map +1 -0
  218. package/lib/module/modules/computer_vision/VerticalOCRModule.js +15 -10
  219. package/lib/module/modules/computer_vision/VerticalOCRModule.js.map +1 -1
  220. package/lib/module/modules/general/ExecutorchModule.js +8 -34
  221. package/lib/module/modules/general/ExecutorchModule.js.map +1 -1
  222. package/lib/module/modules/natural_language_processing/LLMModule.js +25 -24
  223. package/lib/module/modules/natural_language_processing/LLMModule.js.map +1 -1
  224. package/lib/module/modules/natural_language_processing/SpeechToTextModule.js +109 -27
  225. package/lib/module/modules/natural_language_processing/SpeechToTextModule.js.map +1 -1
  226. package/lib/module/modules/natural_language_processing/TextEmbeddingsModule.js +13 -6
  227. package/lib/module/modules/natural_language_processing/TextEmbeddingsModule.js.map +1 -1
  228. package/lib/module/modules/natural_language_processing/TokenizerModule.js +20 -14
  229. package/lib/module/modules/natural_language_processing/TokenizerModule.js.map +1 -1
  230. package/lib/module/modules/natural_language_processing/VADModule.js +19 -0
  231. package/lib/module/modules/natural_language_processing/VADModule.js.map +1 -0
  232. package/lib/module/native/NativeETInstaller.js +5 -0
  233. package/lib/module/native/NativeETInstaller.js.map +1 -0
  234. package/lib/module/native/RnExecutorchModules.js +2 -12
  235. package/lib/module/native/RnExecutorchModules.js.map +1 -1
  236. package/lib/module/types/common.js +25 -8
  237. package/lib/module/types/common.js.map +1 -1
  238. package/lib/module/types/llm.js.map +1 -1
  239. package/lib/module/types/stt.js +1 -79
  240. package/lib/module/types/stt.js.map +1 -1
  241. package/lib/module/types/vad.js +2 -0
  242. package/lib/module/types/vad.js.map +1 -0
  243. package/lib/module/utils/ResourceFetcher.js +275 -114
  244. package/lib/module/utils/ResourceFetcher.js.map +1 -1
  245. package/lib/module/utils/ResourceFetcherUtils.js +155 -0
  246. package/lib/module/utils/ResourceFetcherUtils.js.map +1 -0
  247. package/lib/module/utils/llm.js +41 -1
  248. package/lib/module/utils/llm.js.map +1 -1
  249. package/lib/typescript/Error.d.ts +3 -0
  250. package/lib/typescript/Error.d.ts.map +1 -1
  251. package/lib/typescript/common/Logger.d.ts +9 -0
  252. package/lib/typescript/common/Logger.d.ts.map +1 -0
  253. package/lib/typescript/constants/llmDefaults.d.ts +1 -0
  254. package/lib/typescript/constants/llmDefaults.d.ts.map +1 -1
  255. package/lib/typescript/constants/modelUrls.d.ts +263 -79
  256. package/lib/typescript/constants/modelUrls.d.ts.map +1 -1
  257. package/lib/typescript/constants/ocr/models.d.ts +882 -284
  258. package/lib/typescript/constants/ocr/models.d.ts.map +1 -1
  259. package/lib/typescript/constants/ocr/symbols.d.ts +1 -1
  260. package/lib/typescript/constants/ocr/symbols.d.ts.map +1 -1
  261. package/lib/typescript/controllers/LLMController.d.ts +8 -7
  262. package/lib/typescript/controllers/LLMController.d.ts.map +1 -1
  263. package/lib/typescript/controllers/OCRController.d.ts +5 -6
  264. package/lib/typescript/controllers/OCRController.d.ts.map +1 -1
  265. package/lib/typescript/controllers/VerticalOCRController.d.ts +5 -6
  266. package/lib/typescript/controllers/VerticalOCRController.d.ts.map +1 -1
  267. package/lib/typescript/hooks/computer_vision/useClassification.d.ts +8 -6
  268. package/lib/typescript/hooks/computer_vision/useClassification.d.ts.map +1 -1
  269. package/lib/typescript/hooks/computer_vision/useImageEmbeddings.d.ts +16 -0
  270. package/lib/typescript/hooks/computer_vision/useImageEmbeddings.d.ts.map +1 -0
  271. package/lib/typescript/hooks/computer_vision/useImageSegmentation.d.ts +5 -3
  272. package/lib/typescript/hooks/computer_vision/useImageSegmentation.d.ts.map +1 -1
  273. package/lib/typescript/hooks/computer_vision/useOCR.d.ts +5 -5
  274. package/lib/typescript/hooks/computer_vision/useOCR.d.ts.map +1 -1
  275. package/lib/typescript/hooks/computer_vision/useObjectDetection.d.ts +5 -3
  276. package/lib/typescript/hooks/computer_vision/useObjectDetection.d.ts.map +1 -1
  277. package/lib/typescript/hooks/computer_vision/useStyleTransfer.d.ts +5 -3
  278. package/lib/typescript/hooks/computer_vision/useStyleTransfer.d.ts.map +1 -1
  279. package/lib/typescript/hooks/computer_vision/useTextToImage.d.ts +22 -0
  280. package/lib/typescript/hooks/computer_vision/useTextToImage.d.ts.map +1 -0
  281. package/lib/typescript/hooks/computer_vision/useVerticalOCR.d.ts +4 -6
  282. package/lib/typescript/hooks/computer_vision/useVerticalOCR.d.ts.map +1 -1
  283. package/lib/typescript/hooks/general/useExecutorchModule.d.ts +1 -1
  284. package/lib/typescript/hooks/natural_language_processing/useLLM.d.ts +6 -4
  285. package/lib/typescript/hooks/natural_language_processing/useLLM.d.ts.map +1 -1
  286. package/lib/typescript/hooks/natural_language_processing/useSpeechToText.d.ts +15 -22
  287. package/lib/typescript/hooks/natural_language_processing/useSpeechToText.d.ts.map +1 -1
  288. package/lib/typescript/hooks/natural_language_processing/useTextEmbeddings.d.ts +9 -5
  289. package/lib/typescript/hooks/natural_language_processing/useTextEmbeddings.d.ts.map +1 -1
  290. package/lib/typescript/hooks/natural_language_processing/useTokenizer.d.ts +6 -4
  291. package/lib/typescript/hooks/natural_language_processing/useTokenizer.d.ts.map +1 -1
  292. package/lib/typescript/hooks/natural_language_processing/useVAD.d.ts +16 -0
  293. package/lib/typescript/hooks/natural_language_processing/useVAD.d.ts.map +1 -0
  294. package/lib/typescript/hooks/useModule.d.ts +8 -5
  295. package/lib/typescript/hooks/useModule.d.ts.map +1 -1
  296. package/lib/typescript/index.d.ts +26 -3
  297. package/lib/typescript/index.d.ts.map +1 -1
  298. package/lib/typescript/modules/BaseModule.d.ts +7 -6
  299. package/lib/typescript/modules/BaseModule.d.ts.map +1 -1
  300. package/lib/typescript/modules/computer_vision/ClassificationModule.d.ts +4 -4
  301. package/lib/typescript/modules/computer_vision/ClassificationModule.d.ts.map +1 -1
  302. package/lib/typescript/modules/computer_vision/ImageEmbeddingsModule.d.ts +9 -0
  303. package/lib/typescript/modules/computer_vision/ImageEmbeddingsModule.d.ts.map +1 -0
  304. package/lib/typescript/modules/computer_vision/ImageSegmentationModule.d.ts +7 -27
  305. package/lib/typescript/modules/computer_vision/ImageSegmentationModule.d.ts.map +1 -1
  306. package/lib/typescript/modules/computer_vision/OCRModule.d.ts +8 -7
  307. package/lib/typescript/modules/computer_vision/OCRModule.d.ts.map +1 -1
  308. package/lib/typescript/modules/computer_vision/ObjectDetectionModule.d.ts +5 -3
  309. package/lib/typescript/modules/computer_vision/ObjectDetectionModule.d.ts.map +1 -1
  310. package/lib/typescript/modules/computer_vision/StyleTransferModule.d.ts +4 -3
  311. package/lib/typescript/modules/computer_vision/StyleTransferModule.d.ts.map +1 -1
  312. package/lib/typescript/modules/computer_vision/TextToImageModule.d.ts +16 -0
  313. package/lib/typescript/modules/computer_vision/TextToImageModule.d.ts.map +1 -0
  314. package/lib/typescript/modules/computer_vision/VerticalOCRModule.d.ts +7 -8
  315. package/lib/typescript/modules/computer_vision/VerticalOCRModule.d.ts.map +1 -1
  316. package/lib/typescript/modules/general/ExecutorchModule.d.ts +4 -7
  317. package/lib/typescript/modules/general/ExecutorchModule.d.ts.map +1 -1
  318. package/lib/typescript/modules/natural_language_processing/LLMModule.d.ts +19 -17
  319. package/lib/typescript/modules/natural_language_processing/LLMModule.d.ts.map +1 -1
  320. package/lib/typescript/modules/natural_language_processing/SpeechToTextModule.d.ts +17 -13
  321. package/lib/typescript/modules/natural_language_processing/SpeechToTextModule.d.ts.map +1 -1
  322. package/lib/typescript/modules/natural_language_processing/TextEmbeddingsModule.d.ts +5 -3
  323. package/lib/typescript/modules/natural_language_processing/TextEmbeddingsModule.d.ts.map +1 -1
  324. package/lib/typescript/modules/natural_language_processing/TokenizerModule.d.ts +10 -9
  325. package/lib/typescript/modules/natural_language_processing/TokenizerModule.d.ts.map +1 -1
  326. package/lib/typescript/modules/natural_language_processing/VADModule.d.ts +10 -0
  327. package/lib/typescript/modules/natural_language_processing/VADModule.d.ts.map +1 -0
  328. package/lib/typescript/native/{NativeStyleTransfer.d.ts → NativeETInstaller.d.ts} +2 -3
  329. package/lib/typescript/native/NativeETInstaller.d.ts.map +1 -0
  330. package/lib/typescript/native/RnExecutorchModules.d.ts +3 -23
  331. package/lib/typescript/native/RnExecutorchModules.d.ts.map +1 -1
  332. package/lib/typescript/types/common.d.ts +30 -2
  333. package/lib/typescript/types/common.d.ts.map +1 -1
  334. package/lib/typescript/types/llm.d.ts +9 -1
  335. package/lib/typescript/types/llm.d.ts.map +1 -1
  336. package/lib/typescript/types/stt.d.ts +9 -88
  337. package/lib/typescript/types/stt.d.ts.map +1 -1
  338. package/lib/typescript/types/vad.d.ts +5 -0
  339. package/lib/typescript/types/vad.d.ts.map +1 -0
  340. package/lib/typescript/utils/ResourceFetcher.d.ts +47 -10
  341. package/lib/typescript/utils/ResourceFetcher.d.ts.map +1 -1
  342. package/lib/typescript/utils/ResourceFetcherUtils.d.ts +55 -0
  343. package/lib/typescript/utils/ResourceFetcherUtils.d.ts.map +1 -0
  344. package/lib/typescript/utils/llm.d.ts +4 -0
  345. package/lib/typescript/utils/llm.d.ts.map +1 -1
  346. package/package.json +32 -68
  347. package/react-native-executorch.podspec +62 -4
  348. package/src/Error.ts +3 -0
  349. package/src/common/Logger.ts +25 -0
  350. package/src/constants/directories.ts +1 -1
  351. package/src/constants/llmDefaults.ts +11 -0
  352. package/src/constants/modelUrls.ts +433 -168
  353. package/src/constants/ocr/models.ts +826 -395
  354. package/src/constants/ocr/symbols.ts +66 -65
  355. package/src/controllers/LLMController.ts +76 -36
  356. package/src/controllers/OCRController.ts +25 -16
  357. package/src/controllers/VerticalOCRController.ts +25 -15
  358. package/src/hooks/computer_vision/useClassification.ts +8 -9
  359. package/src/hooks/computer_vision/useImageEmbeddings.ts +15 -0
  360. package/src/hooks/computer_vision/useImageSegmentation.ts +3 -6
  361. package/src/hooks/computer_vision/useOCR.ts +32 -25
  362. package/src/hooks/computer_vision/useObjectDetection.ts +4 -7
  363. package/src/hooks/computer_vision/useStyleTransfer.ts +4 -4
  364. package/src/hooks/computer_vision/useTextToImage.ts +92 -0
  365. package/src/hooks/computer_vision/useVerticalOCR.ts +33 -31
  366. package/src/hooks/general/useExecutorchModule.ts +1 -1
  367. package/src/hooks/natural_language_processing/useLLM.ts +54 -31
  368. package/src/hooks/natural_language_processing/useSpeechToText.ts +96 -88
  369. package/src/hooks/natural_language_processing/useTextEmbeddings.ts +9 -9
  370. package/src/hooks/natural_language_processing/useTokenizer.ts +21 -21
  371. package/src/hooks/natural_language_processing/useVAD.ts +15 -0
  372. package/src/hooks/useModule.ts +23 -13
  373. package/src/index.ts +126 -0
  374. package/src/modules/BaseModule.ts +17 -22
  375. package/src/modules/computer_vision/ClassificationModule.ts +18 -9
  376. package/src/modules/computer_vision/ImageEmbeddingsModule.ts +26 -0
  377. package/src/modules/computer_vision/ImageSegmentationModule.ts +34 -26
  378. package/src/modules/computer_vision/OCRModule.ts +23 -15
  379. package/src/modules/computer_vision/ObjectDetectionModule.ts +22 -9
  380. package/src/modules/computer_vision/StyleTransferModule.ts +18 -9
  381. package/src/modules/computer_vision/TextToImageModule.ts +93 -0
  382. package/src/modules/computer_vision/VerticalOCRModule.ts +25 -21
  383. package/src/modules/general/ExecutorchModule.ts +16 -46
  384. package/src/modules/natural_language_processing/LLMModule.ts +41 -32
  385. package/src/modules/natural_language_processing/SpeechToTextModule.ts +164 -66
  386. package/src/modules/natural_language_processing/TextEmbeddingsModule.ts +25 -10
  387. package/src/modules/natural_language_processing/TokenizerModule.ts +27 -17
  388. package/src/modules/natural_language_processing/VADModule.ts +27 -0
  389. package/src/native/NativeETInstaller.ts +8 -0
  390. package/src/native/RnExecutorchModules.ts +4 -50
  391. package/src/types/common.ts +40 -12
  392. package/src/types/llm.ts +10 -0
  393. package/src/types/stt.ts +87 -90
  394. package/src/types/vad.ts +4 -0
  395. package/src/utils/ResourceFetcher.ts +342 -120
  396. package/src/utils/ResourceFetcherUtils.ts +184 -0
  397. package/src/utils/llm.ts +65 -1
  398. package/third-party/android/libs/cpuinfo/arm64-v8a/libcpuinfo.so +0 -0
  399. package/third-party/android/libs/executorch/arm64-v8a/libexecutorch.so +0 -0
  400. package/third-party/android/libs/executorch/x86_64/libexecutorch.so +0 -0
  401. package/third-party/android/libs/opencv/arm64-v8a/libopencv_core.a +0 -0
  402. package/third-party/android/libs/opencv/arm64-v8a/libopencv_features2d.a +0 -0
  403. package/third-party/android/libs/opencv/arm64-v8a/libopencv_highgui.a +0 -0
  404. package/third-party/android/libs/opencv/arm64-v8a/libopencv_imgproc.a +0 -0
  405. package/third-party/android/libs/opencv/arm64-v8a/libopencv_photo.a +0 -0
  406. package/third-party/android/libs/opencv/arm64-v8a/libopencv_video.a +0 -0
  407. package/third-party/android/libs/opencv/x86_64/libopencv_core.a +0 -0
  408. package/third-party/android/libs/opencv/x86_64/libopencv_features2d.a +0 -0
  409. package/third-party/android/libs/opencv/x86_64/libopencv_highgui.a +0 -0
  410. package/third-party/android/libs/opencv/x86_64/libopencv_imgproc.a +0 -0
  411. package/third-party/android/libs/opencv/x86_64/libopencv_photo.a +0 -0
  412. package/third-party/android/libs/opencv/x86_64/libopencv_video.a +0 -0
  413. package/third-party/android/libs/opencv-third-party/arm64-v8a/libkleidicv.a +0 -0
  414. package/third-party/android/libs/opencv-third-party/arm64-v8a/libkleidicv_hal.a +0 -0
  415. package/third-party/android/libs/opencv-third-party/arm64-v8a/libkleidicv_thread.a +0 -0
  416. package/third-party/android/libs/pthreadpool/arm64-v8a/libpthreadpool.so +0 -0
  417. package/third-party/android/libs/tokenizers-cpp/arm64-v8a/libsentencepiece.a +0 -0
  418. package/third-party/android/libs/tokenizers-cpp/arm64-v8a/libtokenizers_c.a +0 -0
  419. package/third-party/android/libs/tokenizers-cpp/arm64-v8a/libtokenizers_cpp.a +0 -0
  420. package/{ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/ExecutorchLib → third-party/android/libs/tokenizers-cpp/x86_64/libsentencepiece.a} +0 -0
  421. package/third-party/android/libs/tokenizers-cpp/x86_64/libtokenizers_c.a +0 -0
  422. package/third-party/android/libs/tokenizers-cpp/x86_64/libtokenizers_cpp.a +0 -0
  423. package/third-party/include/c10/macros/Export.h +1 -0
  424. package/third-party/include/c10/macros/Macros.h +1 -0
  425. package/third-party/include/c10/util/BFloat16-inl.h +1 -0
  426. package/third-party/include/c10/util/BFloat16-math.h +266 -0
  427. package/third-party/include/c10/util/BFloat16.h +1 -0
  428. package/third-party/include/c10/util/Half-inl.h +1 -0
  429. package/third-party/include/c10/util/Half.h +8 -0
  430. package/third-party/include/c10/util/TypeSafeSignMath.h +1 -0
  431. package/third-party/include/c10/util/bit_cast.h +1 -0
  432. package/third-party/include/c10/util/complex.h +72 -0
  433. package/third-party/include/c10/util/complex_math.h +399 -0
  434. package/third-party/include/c10/util/complex_utils.h +41 -0
  435. package/third-party/include/c10/util/floating_point_utils.h +1 -0
  436. package/third-party/include/c10/util/irange.h +107 -0
  437. package/third-party/include/c10/util/llvmMathExtras.h +866 -0
  438. package/third-party/include/c10/util/overflows.h +95 -0
  439. package/third-party/include/c10/util/safe_numerics.h +97 -0
  440. package/third-party/include/cpuinfo/cpuinfo.h +2305 -0
  441. package/third-party/include/executorch/ExecuTorch.h +13 -0
  442. package/third-party/include/executorch/ExecuTorchError.h +90 -0
  443. package/third-party/include/executorch/ExecuTorchLLM/ExecuTorchLLM.h +12 -0
  444. package/third-party/include/executorch/ExecuTorchLLM/ExecuTorchLLMConfig.h +56 -0
  445. package/third-party/include/executorch/ExecuTorchLLM/ExecuTorchLLMError.h +16 -0
  446. package/third-party/include/executorch/ExecuTorchLLM/ExecuTorchLLMMultimodalRunner.h +227 -0
  447. package/third-party/include/executorch/ExecuTorchLLM/ExecuTorchLLMTextRunner.h +97 -0
  448. package/third-party/include/executorch/ExecuTorchLLM/module.modulemap +4 -0
  449. package/third-party/include/executorch/ExecuTorchLog.h +77 -0
  450. package/third-party/include/executorch/ExecuTorchModule.h +563 -0
  451. package/third-party/include/executorch/ExecuTorchTensor.h +1421 -0
  452. package/third-party/include/executorch/ExecuTorchValue.h +265 -0
  453. package/third-party/include/executorch/extension/module/bundled_module.h +131 -0
  454. package/third-party/include/executorch/extension/module/module.h +649 -0
  455. package/third-party/include/executorch/extension/tensor/tensor.h +14 -0
  456. package/third-party/include/executorch/extension/tensor/tensor_accessor.h +190 -0
  457. package/third-party/include/executorch/extension/tensor/tensor_ptr.h +409 -0
  458. package/third-party/include/executorch/extension/tensor/tensor_ptr_maker.h +653 -0
  459. package/third-party/include/executorch/extension/threadpool/cpuinfo_utils.h +24 -0
  460. package/third-party/include/executorch/extension/threadpool/threadpool.h +95 -0
  461. package/third-party/include/executorch/runtime/backend/backend_execution_context.h +71 -0
  462. package/third-party/include/executorch/runtime/backend/backend_init_context.h +84 -0
  463. package/third-party/include/executorch/runtime/backend/backend_option_context.h +34 -0
  464. package/third-party/include/executorch/runtime/backend/interface.h +227 -0
  465. package/third-party/include/executorch/runtime/backend/options.h +206 -0
  466. package/third-party/include/executorch/runtime/core/array_ref.h +235 -0
  467. package/third-party/include/executorch/runtime/core/data_loader.h +136 -0
  468. package/third-party/include/executorch/runtime/core/defines.h +20 -0
  469. package/third-party/include/executorch/runtime/core/error.h +256 -0
  470. package/third-party/include/executorch/runtime/core/evalue.h +515 -0
  471. package/third-party/include/executorch/runtime/core/event_tracer.h +580 -0
  472. package/third-party/include/executorch/runtime/core/event_tracer_hooks.h +332 -0
  473. package/third-party/include/executorch/runtime/core/event_tracer_hooks_delegate.h +197 -0
  474. package/third-party/include/executorch/runtime/core/exec_aten/exec_aten.h +170 -0
  475. package/third-party/include/executorch/runtime/core/exec_aten/util/dim_order_util.h +264 -0
  476. package/third-party/include/executorch/runtime/core/exec_aten/util/scalar_type_util.h +1313 -0
  477. package/third-party/include/executorch/runtime/core/exec_aten/util/tensor_dimension_limit.h +21 -0
  478. package/third-party/include/executorch/runtime/core/exec_aten/util/tensor_shape_to_c_string.h +69 -0
  479. package/third-party/include/executorch/runtime/core/exec_aten/util/tensor_util.h +1251 -0
  480. package/third-party/include/executorch/runtime/core/freeable_buffer.h +107 -0
  481. package/third-party/include/executorch/runtime/core/function_ref.h +100 -0
  482. package/third-party/include/executorch/runtime/core/hierarchical_allocator.h +107 -0
  483. package/third-party/include/executorch/runtime/core/memory_allocator.h +208 -0
  484. package/third-party/include/executorch/runtime/core/named_data_map.h +76 -0
  485. package/third-party/include/executorch/runtime/core/portable_type/bfloat16.h +27 -0
  486. package/third-party/include/executorch/runtime/core/portable_type/bfloat16_math.h +14 -0
  487. package/third-party/include/executorch/runtime/core/portable_type/bits_types.h +83 -0
  488. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/macros/Export.h +1 -0
  489. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/macros/Macros.h +1 -0
  490. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/BFloat16-inl.h +1 -0
  491. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/BFloat16-math.h +266 -0
  492. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/BFloat16.h +1 -0
  493. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/Half-inl.h +1 -0
  494. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/Half.h +8 -0
  495. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/TypeSafeSignMath.h +1 -0
  496. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/bit_cast.h +1 -0
  497. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/complex.h +72 -0
  498. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/complex_math.h +399 -0
  499. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/complex_utils.h +41 -0
  500. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/floating_point_utils.h +1 -0
  501. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/irange.h +107 -0
  502. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/llvmMathExtras.h +866 -0
  503. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/overflows.h +95 -0
  504. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/safe_numerics.h +97 -0
  505. package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/macros/Export.h +154 -0
  506. package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/macros/Macros.h +553 -0
  507. package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/util/BFloat16.h +477 -0
  508. package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/util/Half.h +781 -0
  509. package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/util/TypeSafeSignMath.h +141 -0
  510. package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/util/bit_cast.h +49 -0
  511. package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/util/complex.h +593 -0
  512. package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/util/floating_point_utils.h +38 -0
  513. package/third-party/include/executorch/runtime/core/portable_type/complex.h +21 -0
  514. package/third-party/include/executorch/runtime/core/portable_type/device.h +70 -0
  515. package/third-party/include/executorch/runtime/core/portable_type/half.h +27 -0
  516. package/third-party/include/executorch/runtime/core/portable_type/optional.h +36 -0
  517. package/third-party/include/executorch/runtime/core/portable_type/qint_types.h +83 -0
  518. package/third-party/include/executorch/runtime/core/portable_type/scalar.h +110 -0
  519. package/third-party/include/executorch/runtime/core/portable_type/scalar_type.h +154 -0
  520. package/third-party/include/executorch/runtime/core/portable_type/string_view.h +29 -0
  521. package/third-party/include/executorch/runtime/core/portable_type/tensor.h +142 -0
  522. package/third-party/include/executorch/runtime/core/portable_type/tensor_impl.h +281 -0
  523. package/third-party/include/executorch/runtime/core/portable_type/tensor_options.h +60 -0
  524. package/third-party/include/executorch/runtime/core/result.h +258 -0
  525. package/third-party/include/executorch/runtime/core/span.h +97 -0
  526. package/third-party/include/executorch/runtime/core/tag.h +90 -0
  527. package/third-party/include/executorch/runtime/core/tensor_layout.h +79 -0
  528. package/third-party/include/executorch/runtime/core/tensor_shape_dynamism.h +39 -0
  529. package/third-party/include/executorch/runtime/executor/memory_manager.h +113 -0
  530. package/third-party/include/executorch/runtime/executor/merged_data_map.h +142 -0
  531. package/third-party/include/executorch/runtime/executor/method.h +412 -0
  532. package/third-party/include/executorch/runtime/executor/method_meta.h +298 -0
  533. package/third-party/include/executorch/runtime/executor/program.h +309 -0
  534. package/third-party/include/executorch/runtime/executor/pte_data_map.h +145 -0
  535. package/third-party/include/executorch/runtime/executor/tensor_parser.h +157 -0
  536. package/third-party/include/executorch/runtime/kernel/kernel_runtime_context.h +122 -0
  537. package/third-party/include/executorch/runtime/kernel/operator_registry.h +280 -0
  538. package/third-party/include/executorch/runtime/platform/abort.h +36 -0
  539. package/third-party/include/executorch/runtime/platform/assert.h +119 -0
  540. package/third-party/include/executorch/runtime/platform/clock.h +43 -0
  541. package/third-party/include/executorch/runtime/platform/compat_unistd.h +75 -0
  542. package/third-party/include/executorch/runtime/platform/compiler.h +201 -0
  543. package/third-party/include/executorch/runtime/platform/log.h +177 -0
  544. package/third-party/include/executorch/runtime/platform/platform.h +259 -0
  545. package/third-party/include/executorch/runtime/platform/profiler.h +292 -0
  546. package/third-party/include/executorch/runtime/platform/runtime.h +35 -0
  547. package/third-party/include/executorch/runtime/platform/system.h +49 -0
  548. package/third-party/include/executorch/runtime/platform/types.h +24 -0
  549. package/third-party/include/executorch/schema/extended_header.h +85 -0
  550. package/third-party/include/headeronly/macros/Export.h +88 -0
  551. package/third-party/include/opencv2/core/affine.hpp +676 -0
  552. package/third-party/include/opencv2/core/async.hpp +107 -0
  553. package/third-party/include/opencv2/core/base.hpp +735 -0
  554. package/third-party/include/opencv2/core/bindings_utils.hpp +279 -0
  555. package/third-party/include/opencv2/core/bufferpool.hpp +39 -0
  556. package/third-party/include/opencv2/core/check.hpp +231 -0
  557. package/third-party/include/opencv2/core/core.hpp +55 -0
  558. package/third-party/include/opencv2/core/core_c.h +3261 -0
  559. package/third-party/include/opencv2/core/cv_cpu_dispatch.h +404 -0
  560. package/third-party/include/opencv2/core/cv_cpu_helper.h +856 -0
  561. package/third-party/include/opencv2/core/cvdef.h +1003 -0
  562. package/third-party/include/opencv2/core/cvstd.hpp +196 -0
  563. package/third-party/include/opencv2/core/cvstd.inl.hpp +188 -0
  564. package/third-party/include/opencv2/core/cvstd_wrapper.hpp +187 -0
  565. package/third-party/include/opencv2/core/detail/async_promise.hpp +73 -0
  566. package/third-party/include/opencv2/core/detail/dispatch_helper.impl.hpp +48 -0
  567. package/third-party/include/opencv2/core/detail/exception_ptr.hpp +24 -0
  568. package/third-party/include/opencv2/core/dualquaternion.hpp +1054 -0
  569. package/third-party/include/opencv2/core/dualquaternion.inl.hpp +464 -0
  570. package/third-party/include/opencv2/core/eigen.hpp +405 -0
  571. package/third-party/include/opencv2/core/fast_math.hpp +433 -0
  572. package/third-party/include/opencv2/core/hal/hal.hpp +451 -0
  573. package/third-party/include/opencv2/core/hal/interface.h +191 -0
  574. package/third-party/include/opencv2/core/hal/intrin.hpp +1222 -0
  575. package/third-party/include/opencv2/core/hal/intrin_avx.hpp +3378 -0
  576. package/third-party/include/opencv2/core/hal/intrin_avx512.hpp +3688 -0
  577. package/third-party/include/opencv2/core/hal/intrin_cpp.hpp +3446 -0
  578. package/third-party/include/opencv2/core/hal/intrin_forward.hpp +195 -0
  579. package/third-party/include/opencv2/core/hal/intrin_lasx.hpp +3243 -0
  580. package/third-party/include/opencv2/core/hal/intrin_lsx.hpp +2671 -0
  581. package/third-party/include/opencv2/core/hal/intrin_math.hpp +772 -0
  582. package/third-party/include/opencv2/core/hal/intrin_msa.hpp +1973 -0
  583. package/third-party/include/opencv2/core/hal/intrin_neon.hpp +2710 -0
  584. package/third-party/include/opencv2/core/hal/intrin_rvv071.hpp +3452 -0
  585. package/third-party/include/opencv2/core/hal/intrin_rvv_scalable.hpp +2559 -0
  586. package/third-party/include/opencv2/core/hal/intrin_sse.hpp +3528 -0
  587. package/third-party/include/opencv2/core/hal/intrin_sse_em.hpp +175 -0
  588. package/third-party/include/opencv2/core/hal/intrin_vsx.hpp +1756 -0
  589. package/third-party/include/opencv2/core/hal/intrin_wasm.hpp +2911 -0
  590. package/third-party/include/opencv2/core/hal/msa_macros.h +2079 -0
  591. package/third-party/include/opencv2/core/hal/simd_utils.impl.hpp +313 -0
  592. package/third-party/include/opencv2/core/mat.hpp +3842 -0
  593. package/third-party/include/opencv2/core/mat.inl.hpp +2753 -0
  594. package/third-party/include/opencv2/core/matx.hpp +603 -0
  595. package/third-party/include/opencv2/core/matx.inl.hpp +1132 -0
  596. package/third-party/include/opencv2/core/neon_utils.hpp +127 -0
  597. package/third-party/include/opencv2/core/operations.hpp +610 -0
  598. package/third-party/include/opencv2/core/optim.hpp +362 -0
  599. package/third-party/include/opencv2/core/parallel/backend/parallel_for.openmp.hpp +66 -0
  600. package/third-party/include/opencv2/core/parallel/backend/parallel_for.tbb.hpp +148 -0
  601. package/third-party/include/opencv2/core/parallel/parallel_backend.hpp +108 -0
  602. package/third-party/include/opencv2/core/persistence.hpp +1321 -0
  603. package/third-party/include/opencv2/core/quaternion.hpp +1889 -0
  604. package/third-party/include/opencv2/core/quaternion.inl.hpp +907 -0
  605. package/third-party/include/opencv2/core/saturate.hpp +347 -0
  606. package/third-party/include/opencv2/core/simd_intrinsics.hpp +90 -0
  607. package/third-party/include/opencv2/core/softfloat.hpp +657 -0
  608. package/third-party/include/opencv2/core/sse_utils.hpp +861 -0
  609. package/third-party/include/opencv2/core/traits.hpp +417 -0
  610. package/third-party/include/opencv2/core/types.hpp +2368 -0
  611. package/third-party/include/opencv2/core/types_c.h +2064 -0
  612. package/third-party/include/opencv2/core/utility.hpp +1296 -0
  613. package/third-party/include/opencv2/core/utils/allocator_stats.hpp +31 -0
  614. package/third-party/include/opencv2/core/utils/allocator_stats.impl.hpp +111 -0
  615. package/third-party/include/opencv2/core/utils/filesystem.hpp +91 -0
  616. package/third-party/include/opencv2/core/utils/fp_control_utils.hpp +70 -0
  617. package/third-party/include/opencv2/core/utils/instrumentation.hpp +127 -0
  618. package/third-party/include/opencv2/core/utils/logger.defines.hpp +50 -0
  619. package/third-party/include/opencv2/core/utils/logger.hpp +258 -0
  620. package/third-party/include/opencv2/core/utils/logtag.hpp +27 -0
  621. package/third-party/include/opencv2/core/utils/tls.hpp +230 -0
  622. package/third-party/include/opencv2/core/utils/trace.hpp +281 -0
  623. package/third-party/include/opencv2/core/version.hpp +29 -0
  624. package/third-party/include/opencv2/core/vsx_utils.hpp +1115 -0
  625. package/third-party/include/opencv2/core.hpp +3699 -0
  626. package/third-party/include/opencv2/cvconfig.h +155 -0
  627. package/third-party/include/opencv2/dnn/dnn.hpp +51 -0
  628. package/third-party/include/opencv2/dnn.hpp +17 -0
  629. package/third-party/include/opencv2/features2d/features2d.hpp +55 -0
  630. package/third-party/include/opencv2/features2d/hal/interface.h +32 -0
  631. package/third-party/include/opencv2/features2d.hpp +1756 -0
  632. package/third-party/include/opencv2/highgui/highgui.hpp +113 -0
  633. package/third-party/include/opencv2/highgui.hpp +17 -0
  634. package/third-party/include/opencv2/imgproc/bindings.hpp +34 -0
  635. package/third-party/include/opencv2/imgproc/detail/gcgraph.hpp +355 -0
  636. package/third-party/include/opencv2/imgproc/detail/legacy.hpp +35 -0
  637. package/third-party/include/opencv2/imgproc/hal/hal.hpp +246 -0
  638. package/third-party/include/opencv2/imgproc/hal/interface.h +52 -0
  639. package/third-party/include/opencv2/imgproc/imgproc.hpp +55 -0
  640. package/third-party/include/opencv2/imgproc/imgproc_c.h +1261 -0
  641. package/third-party/include/opencv2/imgproc/segmentation.hpp +168 -0
  642. package/third-party/include/opencv2/imgproc/types_c.h +632 -0
  643. package/third-party/include/opencv2/imgproc.hpp +5956 -0
  644. package/third-party/include/opencv2/opencv.hpp +102 -0
  645. package/third-party/include/opencv2/opencv_modules.hpp +19 -0
  646. package/third-party/include/opencv2/photo/legacy/constants_c.h +10 -0
  647. package/third-party/include/opencv2/photo/photo.hpp +55 -0
  648. package/third-party/include/opencv2/photo.hpp +975 -0
  649. package/third-party/include/opencv2/video/background_segm.hpp +341 -0
  650. package/third-party/include/opencv2/video/detail/tracking.detail.hpp +435 -0
  651. package/third-party/include/opencv2/video/legacy/constants_c.h +15 -0
  652. package/third-party/include/opencv2/video/tracking.hpp +1014 -0
  653. package/third-party/include/opencv2/video/video.hpp +55 -0
  654. package/third-party/include/opencv2/video.hpp +65 -0
  655. package/third-party/include/pthreadpool/pthreadpool.h +2236 -0
  656. package/third-party/include/tokenizers-cpp/tokenizers_c.h +61 -0
  657. package/third-party/include/tokenizers-cpp/tokenizers_cpp.h +118 -0
  658. package/third-party/include/torch/headeronly/macros/Export.h +154 -0
  659. package/third-party/include/torch/headeronly/macros/Macros.h +553 -0
  660. package/third-party/include/torch/headeronly/util/BFloat16.h +477 -0
  661. package/third-party/include/torch/headeronly/util/Half.h +781 -0
  662. package/third-party/include/torch/headeronly/util/TypeSafeSignMath.h +141 -0
  663. package/third-party/include/torch/headeronly/util/bit_cast.h +49 -0
  664. package/third-party/include/torch/headeronly/util/complex.h +593 -0
  665. package/third-party/include/torch/headeronly/util/floating_point_utils.h +38 -0
  666. package/third-party/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/ExecutorchLib +0 -0
  667. package/{ios → third-party/ios}/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Info.plist +0 -0
  668. package/third-party/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/ExecutorchLib +0 -0
  669. package/{ios → third-party/ios}/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Info.plist +0 -0
  670. package/third-party/ios/libs/cpuinfo/libcpuinfo.a +0 -0
  671. package/third-party/ios/libs/pthreadpool/physical-arm64-release/libpthreadpool.a +0 -0
  672. package/third-party/ios/libs/pthreadpool/simulator-arm64-debug/libpthreadpool.a +0 -0
  673. package/third-party/ios/libs/tokenizers-cpp/physical-arm64-release/libsentencepiece.a +0 -0
  674. package/{ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/ExecutorchLib → third-party/ios/libs/tokenizers-cpp/physical-arm64-release/libtokenizers_c.a} +0 -0
  675. package/third-party/ios/libs/tokenizers-cpp/physical-arm64-release/libtokenizers_cpp.a +0 -0
  676. package/third-party/ios/libs/tokenizers-cpp/simulator-arm64-debug/libsentencepiece.a +0 -0
  677. package/third-party/ios/libs/tokenizers-cpp/simulator-arm64-debug/libtokenizers_c.a +0 -0
  678. package/third-party/ios/libs/tokenizers-cpp/simulator-arm64-debug/libtokenizers_cpp.a +0 -0
  679. package/LICENSE +0 -79
  680. package/android/src/main/java/com/swmansion/rnexecutorch/Classification.kt +0 -64
  681. package/android/src/main/java/com/swmansion/rnexecutorch/ETModule.kt +0 -90
  682. package/android/src/main/java/com/swmansion/rnexecutorch/ImageSegmentation.kt +0 -58
  683. package/android/src/main/java/com/swmansion/rnexecutorch/LLM.kt +0 -63
  684. package/android/src/main/java/com/swmansion/rnexecutorch/OCR.kt +0 -90
  685. package/android/src/main/java/com/swmansion/rnexecutorch/ObjectDetection.kt +0 -64
  686. package/android/src/main/java/com/swmansion/rnexecutorch/SpeechToText.kt +0 -91
  687. package/android/src/main/java/com/swmansion/rnexecutorch/StyleTransfer.kt +0 -54
  688. package/android/src/main/java/com/swmansion/rnexecutorch/TextEmbeddings.kt +0 -51
  689. package/android/src/main/java/com/swmansion/rnexecutorch/Tokenizer.kt +0 -86
  690. package/android/src/main/java/com/swmansion/rnexecutorch/VerticalOCR.kt +0 -179
  691. package/android/src/main/java/com/swmansion/rnexecutorch/models/BaseModel.kt +0 -54
  692. package/android/src/main/java/com/swmansion/rnexecutorch/models/TextEmbeddings/TextEmbeddingsModel.kt +0 -48
  693. package/android/src/main/java/com/swmansion/rnexecutorch/models/TextEmbeddings/TextEmbeddingsUtils.kt +0 -37
  694. package/android/src/main/java/com/swmansion/rnexecutorch/models/classification/ClassificationModel.kt +0 -46
  695. package/android/src/main/java/com/swmansion/rnexecutorch/models/classification/Constants.kt +0 -1005
  696. package/android/src/main/java/com/swmansion/rnexecutorch/models/imageSegmentation/Constants.kt +0 -26
  697. package/android/src/main/java/com/swmansion/rnexecutorch/models/imageSegmentation/ImageSegmentationModel.kt +0 -142
  698. package/android/src/main/java/com/swmansion/rnexecutorch/models/objectDetection/SSDLiteLargeModel.kt +0 -74
  699. package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/Detector.kt +0 -82
  700. package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/RecognitionHandler.kt +0 -117
  701. package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/Recognizer.kt +0 -51
  702. package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/VerticalDetector.kt +0 -89
  703. package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/utils/CTCLabelConverter.kt +0 -58
  704. package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/utils/Constants.kt +0 -31
  705. package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/utils/DetectorUtils.kt +0 -608
  706. package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/utils/RecognizerUtils.kt +0 -430
  707. package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/BaseS2TDecoder.kt +0 -39
  708. package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/BaseS2TModule.kt +0 -43
  709. package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/Moonshine.kt +0 -16
  710. package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/MoonshineDecoder.kt +0 -23
  711. package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/MoonshineEncoder.kt +0 -20
  712. package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/Whisper.kt +0 -16
  713. package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/WhisperDecoder.kt +0 -22
  714. package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/WhisperEncoder.kt +0 -29
  715. package/android/src/main/java/com/swmansion/rnexecutorch/models/styleTransfer/StyleTransferModel.kt +0 -43
  716. package/android/src/main/java/com/swmansion/rnexecutorch/utils/ArrayUtils.kt +0 -87
  717. package/android/src/main/java/com/swmansion/rnexecutorch/utils/ETError.kt +0 -34
  718. package/android/src/main/java/com/swmansion/rnexecutorch/utils/ImageProcessor.kt +0 -237
  719. package/android/src/main/java/com/swmansion/rnexecutorch/utils/Numerical.kt +0 -8
  720. package/android/src/main/java/com/swmansion/rnexecutorch/utils/ObjectDetectionUtils.kt +0 -201
  721. package/android/src/main/java/com/swmansion/rnexecutorch/utils/STFT.kt +0 -50
  722. package/android/src/main/java/com/swmansion/rnexecutorch/utils/TensorUtils.kt +0 -103
  723. package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Headers/ETModel.h +0 -27
  724. package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Headers/HuggingFaceTokenizer.h +0 -14
  725. package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Headers/LLaMARunner.h +0 -32
  726. package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Headers/ETModel.h +0 -27
  727. package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Headers/HuggingFaceTokenizer.h +0 -14
  728. package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Headers/LLaMARunner.h +0 -32
  729. package/ios/RnExecutorch/Classification.h +0 -5
  730. package/ios/RnExecutorch/Classification.mm +0 -54
  731. package/ios/RnExecutorch/ETModule.h +0 -5
  732. package/ios/RnExecutorch/ETModule.mm +0 -75
  733. package/ios/RnExecutorch/ImageSegmentation.h +0 -5
  734. package/ios/RnExecutorch/ImageSegmentation.mm +0 -60
  735. package/ios/RnExecutorch/LLM.h +0 -5
  736. package/ios/RnExecutorch/LLM.mm +0 -78
  737. package/ios/RnExecutorch/OCR.h +0 -5
  738. package/ios/RnExecutorch/OCR.mm +0 -96
  739. package/ios/RnExecutorch/ObjectDetection.h +0 -5
  740. package/ios/RnExecutorch/ObjectDetection.mm +0 -56
  741. package/ios/RnExecutorch/SpeechToText.h +0 -5
  742. package/ios/RnExecutorch/SpeechToText.mm +0 -125
  743. package/ios/RnExecutorch/StyleTransfer.h +0 -5
  744. package/ios/RnExecutorch/StyleTransfer.mm +0 -55
  745. package/ios/RnExecutorch/TextEmbeddings.h +0 -5
  746. package/ios/RnExecutorch/TextEmbeddings.mm +0 -62
  747. package/ios/RnExecutorch/Tokenizer.h +0 -5
  748. package/ios/RnExecutorch/Tokenizer.mm +0 -83
  749. package/ios/RnExecutorch/VerticalOCR.h +0 -5
  750. package/ios/RnExecutorch/VerticalOCR.mm +0 -183
  751. package/ios/RnExecutorch/models/BaseModel.h +0 -21
  752. package/ios/RnExecutorch/models/BaseModel.mm +0 -43
  753. package/ios/RnExecutorch/models/classification/ClassificationModel.h +0 -10
  754. package/ios/RnExecutorch/models/classification/ClassificationModel.mm +0 -53
  755. package/ios/RnExecutorch/models/classification/Constants.h +0 -3
  756. package/ios/RnExecutorch/models/image_segmentation/Constants.h +0 -4
  757. package/ios/RnExecutorch/models/image_segmentation/ImageSegmentationModel.h +0 -10
  758. package/ios/RnExecutorch/models/image_segmentation/ImageSegmentationModel.mm +0 -146
  759. package/ios/RnExecutorch/models/object_detection/SSDLiteLargeModel.hpp +0 -11
  760. package/ios/RnExecutorch/models/object_detection/SSDLiteLargeModel.mm +0 -64
  761. package/ios/RnExecutorch/models/ocr/Detector.h +0 -9
  762. package/ios/RnExecutorch/models/ocr/Detector.mm +0 -101
  763. package/ios/RnExecutorch/models/ocr/RecognitionHandler.h +0 -16
  764. package/ios/RnExecutorch/models/ocr/RecognitionHandler.mm +0 -135
  765. package/ios/RnExecutorch/models/ocr/Recognizer.h +0 -8
  766. package/ios/RnExecutorch/models/ocr/Recognizer.mm +0 -77
  767. package/ios/RnExecutorch/models/ocr/VerticalDetector.h +0 -10
  768. package/ios/RnExecutorch/models/ocr/VerticalDetector.mm +0 -118
  769. package/ios/RnExecutorch/models/ocr/utils/CTCLabelConverter.h +0 -16
  770. package/ios/RnExecutorch/models/ocr/utils/CTCLabelConverter.mm +0 -80
  771. package/ios/RnExecutorch/models/ocr/utils/Constants.h +0 -26
  772. package/ios/RnExecutorch/models/ocr/utils/DetectorUtils.h +0 -31
  773. package/ios/RnExecutorch/models/ocr/utils/DetectorUtils.mm +0 -754
  774. package/ios/RnExecutorch/models/ocr/utils/OCRUtils.h +0 -10
  775. package/ios/RnExecutorch/models/ocr/utils/OCRUtils.mm +0 -67
  776. package/ios/RnExecutorch/models/ocr/utils/RecognizerUtils.h +0 -35
  777. package/ios/RnExecutorch/models/ocr/utils/RecognizerUtils.mm +0 -331
  778. package/ios/RnExecutorch/models/stt/Moonshine.hpp +0 -13
  779. package/ios/RnExecutorch/models/stt/Moonshine.mm +0 -64
  780. package/ios/RnExecutorch/models/stt/MoonshineDecoder.hpp +0 -16
  781. package/ios/RnExecutorch/models/stt/MoonshineDecoder.mm +0 -24
  782. package/ios/RnExecutorch/models/stt/MoonshineEncoder.hpp +0 -15
  783. package/ios/RnExecutorch/models/stt/MoonshineEncoder.mm +0 -18
  784. package/ios/RnExecutorch/models/stt/SpeechToTextBaseModel.hpp +0 -26
  785. package/ios/RnExecutorch/models/stt/SpeechToTextBaseModel.mm +0 -19
  786. package/ios/RnExecutorch/models/stt/Whisper.hpp +0 -12
  787. package/ios/RnExecutorch/models/stt/Whisper.mm +0 -68
  788. package/ios/RnExecutorch/models/stt/WhisperDecoder.hpp +0 -16
  789. package/ios/RnExecutorch/models/stt/WhisperDecoder.mm +0 -22
  790. package/ios/RnExecutorch/models/stt/WhisperEncoder.hpp +0 -15
  791. package/ios/RnExecutorch/models/stt/WhisperEncoder.mm +0 -21
  792. package/ios/RnExecutorch/models/style_transfer/StyleTransferModel.h +0 -11
  793. package/ios/RnExecutorch/models/style_transfer/StyleTransferModel.mm +0 -50
  794. package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsModel.h +0 -15
  795. package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsModel.mm +0 -45
  796. package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsUtils.h +0 -8
  797. package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsUtils.mm +0 -49
  798. package/ios/RnExecutorch/utils/Constants.h +0 -8
  799. package/ios/RnExecutorch/utils/Conversions.h +0 -15
  800. package/ios/RnExecutorch/utils/ETError.h +0 -26
  801. package/ios/RnExecutorch/utils/ImageProcessor.h +0 -15
  802. package/ios/RnExecutorch/utils/ImageProcessor.mm +0 -147
  803. package/ios/RnExecutorch/utils/Numerical.h +0 -1
  804. package/ios/RnExecutorch/utils/Numerical.mm +0 -18
  805. package/ios/RnExecutorch/utils/ObjectDetectionUtils.hpp +0 -23
  806. package/ios/RnExecutorch/utils/SFFT.hpp +0 -13
  807. package/ios/RnExecutorch/utils/SFFT.mm +0 -71
  808. package/ios/RnExecutorch/utils/ScalarType.h +0 -14
  809. package/ios/RnExecutorch/utils/ScalarType.mm +0 -21
  810. package/lib/module/constants/sttDefaults.js +0 -72
  811. package/lib/module/constants/sttDefaults.js.map +0 -1
  812. package/lib/module/controllers/SpeechToTextController.js +0 -307
  813. package/lib/module/controllers/SpeechToTextController.js.map +0 -1
  814. package/lib/module/native/NativeClassification.js +0 -5
  815. package/lib/module/native/NativeClassification.js.map +0 -1
  816. package/lib/module/native/NativeETModule.js +0 -5
  817. package/lib/module/native/NativeETModule.js.map +0 -1
  818. package/lib/module/native/NativeImageSegmentation.js +0 -5
  819. package/lib/module/native/NativeImageSegmentation.js.map +0 -1
  820. package/lib/module/native/NativeLLM.js +0 -5
  821. package/lib/module/native/NativeLLM.js.map +0 -1
  822. package/lib/module/native/NativeOCR.js +0 -5
  823. package/lib/module/native/NativeOCR.js.map +0 -1
  824. package/lib/module/native/NativeObjectDetection.js +0 -5
  825. package/lib/module/native/NativeObjectDetection.js.map +0 -1
  826. package/lib/module/native/NativeSpeechToText.js +0 -5
  827. package/lib/module/native/NativeSpeechToText.js.map +0 -1
  828. package/lib/module/native/NativeStyleTransfer.js +0 -5
  829. package/lib/module/native/NativeStyleTransfer.js.map +0 -1
  830. package/lib/module/native/NativeTextEmbeddings.js +0 -5
  831. package/lib/module/native/NativeTextEmbeddings.js.map +0 -1
  832. package/lib/module/native/NativeTokenizer.js +0 -5
  833. package/lib/module/native/NativeTokenizer.js.map +0 -1
  834. package/lib/module/native/NativeVerticalOCR.js +0 -5
  835. package/lib/module/native/NativeVerticalOCR.js.map +0 -1
  836. package/lib/module/package.json +0 -1
  837. package/lib/module/utils/stt.js +0 -22
  838. package/lib/module/utils/stt.js.map +0 -1
  839. package/lib/typescript/constants/sttDefaults.d.ts +0 -28
  840. package/lib/typescript/constants/sttDefaults.d.ts.map +0 -1
  841. package/lib/typescript/controllers/SpeechToTextController.d.ts +0 -52
  842. package/lib/typescript/controllers/SpeechToTextController.d.ts.map +0 -1
  843. package/lib/typescript/native/NativeClassification.d.ts +0 -10
  844. package/lib/typescript/native/NativeClassification.d.ts.map +0 -1
  845. package/lib/typescript/native/NativeETModule.d.ts +0 -9
  846. package/lib/typescript/native/NativeETModule.d.ts.map +0 -1
  847. package/lib/typescript/native/NativeImageSegmentation.d.ts +0 -10
  848. package/lib/typescript/native/NativeImageSegmentation.d.ts.map +0 -1
  849. package/lib/typescript/native/NativeLLM.d.ts +0 -12
  850. package/lib/typescript/native/NativeLLM.d.ts.map +0 -1
  851. package/lib/typescript/native/NativeOCR.d.ts +0 -9
  852. package/lib/typescript/native/NativeOCR.d.ts.map +0 -1
  853. package/lib/typescript/native/NativeObjectDetection.d.ts +0 -9
  854. package/lib/typescript/native/NativeObjectDetection.d.ts.map +0 -1
  855. package/lib/typescript/native/NativeSpeechToText.d.ts +0 -12
  856. package/lib/typescript/native/NativeSpeechToText.d.ts.map +0 -1
  857. package/lib/typescript/native/NativeStyleTransfer.d.ts.map +0 -1
  858. package/lib/typescript/native/NativeTextEmbeddings.d.ts +0 -8
  859. package/lib/typescript/native/NativeTextEmbeddings.d.ts.map +0 -1
  860. package/lib/typescript/native/NativeTokenizer.d.ts +0 -12
  861. package/lib/typescript/native/NativeTokenizer.d.ts.map +0 -1
  862. package/lib/typescript/native/NativeVerticalOCR.d.ts +0 -9
  863. package/lib/typescript/native/NativeVerticalOCR.d.ts.map +0 -1
  864. package/lib/typescript/utils/stt.d.ts +0 -2
  865. package/lib/typescript/utils/stt.d.ts.map +0 -1
  866. package/src/constants/sttDefaults.ts +0 -86
  867. package/src/controllers/SpeechToTextController.ts +0 -458
  868. package/src/index.tsx +0 -47
  869. package/src/native/NativeClassification.ts +0 -9
  870. package/src/native/NativeETModule.ts +0 -14
  871. package/src/native/NativeImageSegmentation.ts +0 -14
  872. package/src/native/NativeLLM.ts +0 -14
  873. package/src/native/NativeOCR.ts +0 -16
  874. package/src/native/NativeObjectDetection.ts +0 -10
  875. package/src/native/NativeSpeechToText.ts +0 -17
  876. package/src/native/NativeStyleTransfer.ts +0 -10
  877. package/src/native/NativeTextEmbeddings.ts +0 -9
  878. package/src/native/NativeTokenizer.ts +0 -13
  879. package/src/native/NativeVerticalOCR.ts +0 -16
  880. package/src/utils/stt.ts +0 -28
  881. package/{ios → third-party/ios}/ExecutorchLib.xcframework/Info.plist +4 -4
@@ -1,754 +0,0 @@
1
- #import "DetectorUtils.h"
2
-
3
- @implementation DetectorUtils
4
-
5
- + (void)interleavedArrayToMats:(NSArray *)array
6
- outputMat1:(cv::Mat &)mat1
7
- outputMat2:(cv::Mat &)mat2
8
- withSize:(cv::Size)size {
9
- mat1 = cv::Mat(size.height, size.width, CV_32F);
10
- mat2 = cv::Mat(size.height, size.width, CV_32F);
11
-
12
- for (NSUInteger idx = 0; idx < array.count; idx++) {
13
- const CGFloat value = [array[idx] doubleValue];
14
- const int x = (idx / 2) % size.width;
15
- const int y = (idx / 2) / size.width;
16
-
17
- if (idx % 2 == 0) {
18
- mat1.at<float>(y, x) = value;
19
- } else {
20
- mat2.at<float>(y, x) = value;
21
- }
22
- }
23
- }
24
-
25
- + (NSArray *)getDetBoxesFromTextMapVertical:(cv::Mat)textMap
26
- affinityMap:(cv::Mat)affinityMap
27
- usingTextThreshold:(CGFloat)textThreshold
28
- linkThreshold:(CGFloat)linkThreshold
29
- independentCharacters:(BOOL)independentCharacters {
30
- const int imgH = textMap.rows;
31
- const int imgW = textMap.cols;
32
- cv::Mat textScore;
33
- cv::Mat affinityScore;
34
- cv::threshold(textMap, textScore, textThreshold, 1, cv::THRESH_BINARY);
35
- cv::threshold(affinityMap, affinityScore, linkThreshold, 1,
36
- cv::THRESH_BINARY);
37
- cv::Mat textScoreComb;
38
- if (independentCharacters) {
39
- textScoreComb = textScore - affinityScore;
40
- cv::threshold(textScoreComb, textScoreComb, 0.0, 0, cv::THRESH_TOZERO);
41
- cv::threshold(textScoreComb, textScoreComb, 1.0, 1.0, cv::THRESH_TRUNC);
42
- cv::erode(textScoreComb, textScoreComb,
43
- cv::getStructuringElement(cv::MORPH_RECT, cv::Size(3, 3)),
44
- cv::Point(-1, -1), 1);
45
- cv::dilate(textScoreComb, textScoreComb,
46
- cv::getStructuringElement(cv::MORPH_RECT, cv::Size(3, 3)),
47
- cv::Point(-1, -1), 4);
48
- } else {
49
- textScoreComb = textScore + affinityScore;
50
- cv::threshold(textScoreComb, textScoreComb, 0.0, 0, cv::THRESH_TOZERO);
51
- cv::threshold(textScoreComb, textScoreComb, 1.0, 1.0, cv::THRESH_TRUNC);
52
- cv::dilate(textScoreComb, textScoreComb,
53
- cv::getStructuringElement(cv::MORPH_RECT, cv::Size(3, 3)),
54
- cv::Point(-1, -1), 2);
55
- }
56
-
57
- cv::Mat binaryMat;
58
- textScoreComb.convertTo(binaryMat, CV_8UC1);
59
-
60
- cv::Mat labels, stats, centroids;
61
- const int nLabels =
62
- cv::connectedComponentsWithStats(binaryMat, labels, stats, centroids, 4);
63
-
64
- NSMutableArray *detectedBoxes = [NSMutableArray array];
65
- for (int i = 1; i < nLabels; i++) {
66
- const int area = stats.at<int>(i, cv::CC_STAT_AREA);
67
- if (area < 20)
68
- continue;
69
- const int width = stats.at<int>(i, cv::CC_STAT_WIDTH);
70
- const int height = stats.at<int>(i, cv::CC_STAT_HEIGHT);
71
-
72
- if (!independentCharacters && height < width)
73
- continue;
74
-
75
- cv::Mat mask = (labels == i);
76
-
77
- cv::Mat segMap = cv::Mat::zeros(textMap.size(), CV_8U);
78
- segMap.setTo(255, mask);
79
-
80
- const int x = stats.at<int>(i, cv::CC_STAT_LEFT);
81
- const int y = stats.at<int>(i, cv::CC_STAT_TOP);
82
- const int w = stats.at<int>(i, cv::CC_STAT_WIDTH);
83
- const int h = stats.at<int>(i, cv::CC_STAT_HEIGHT);
84
- const int dilationRadius = (int)(sqrt((double)(area / MAX(w, h))) * 2.0);
85
- const int sx = MAX(x - dilationRadius, 0);
86
- const int ex = MIN(x + w + dilationRadius + 1, imgW);
87
- const int sy = MAX(y - dilationRadius, 0);
88
- const int ey = MIN(y + h + dilationRadius + 1, imgH);
89
-
90
- cv::Rect roi(sx, sy, ex - sx, ey - sy);
91
- cv::Mat kernel = cv::getStructuringElement(
92
- cv::MORPH_RECT, cv::Size(1 + dilationRadius, 1 + dilationRadius));
93
- cv::Mat roiSegMap = segMap(roi);
94
- cv::dilate(roiSegMap, roiSegMap, kernel, cv::Point(-1, -1), 2);
95
-
96
- std::vector<std::vector<cv::Point>> contours;
97
- cv::findContours(segMap, contours, cv::RETR_EXTERNAL,
98
- cv::CHAIN_APPROX_SIMPLE);
99
- if (!contours.empty()) {
100
- cv::RotatedRect minRect = cv::minAreaRect(contours[0]);
101
- cv::Point2f vertices[4];
102
- minRect.points(vertices);
103
- NSMutableArray *pointsArray = [NSMutableArray arrayWithCapacity:4];
104
- for (int j = 0; j < 4; j++) {
105
- const CGPoint point = CGPointMake(vertices[j].x, vertices[j].y);
106
- [pointsArray addObject:[NSValue valueWithCGPoint:point]];
107
- }
108
- NSDictionary *dict =
109
- @{@"bbox" : pointsArray, @"angle" : @(minRect.angle)};
110
- [detectedBoxes addObject:dict];
111
- }
112
- }
113
-
114
- return detectedBoxes;
115
- }
116
-
117
- /**
118
- * This method applies a series of image processing operations to identify
119
- * likely areas of text in the textMap and return the bounding boxes for single
120
- * words.
121
- *
122
- * @param textMap A cv::Mat representing a heat map of the characters of text
123
- * being present in an image.
124
- * @param affinityMap A cv::Mat representing a heat map of the affinity between
125
- * characters.
126
- * @param textThreshold A CGFloat representing the threshold for the text map.
127
- * @param linkThreshold A CGFloat representing the threshold for the affinity
128
- * map.
129
- * @param lowTextThreshold A CGFloat representing the low text.
130
- *
131
- * @return An NSArray containing NSDictionary objects. Each dictionary includes:
132
- * - "bbox": an NSArray of CGPoint values representing the vertices of the
133
- * detected text box.
134
- * - "angle": an NSNumber representing the rotation angle of the box.
135
- */
136
- + (NSArray *)getDetBoxesFromTextMap:(cv::Mat)textMap
137
- affinityMap:(cv::Mat)affinityMap
138
- usingTextThreshold:(CGFloat)textThreshold
139
- linkThreshold:(CGFloat)linkThreshold
140
- lowTextThreshold:(CGFloat)lowTextThreshold {
141
- const int imgH = textMap.rows;
142
- const int imgW = textMap.cols;
143
- cv::Mat textScore;
144
- cv::Mat affinityScore;
145
- cv::threshold(textMap, textScore, textThreshold, 1, cv::THRESH_BINARY);
146
- cv::threshold(affinityMap, affinityScore, linkThreshold, 1,
147
- cv::THRESH_BINARY);
148
- cv::Mat textScoreComb = textScore + affinityScore;
149
- cv::threshold(textScoreComb, textScoreComb, 0, 1, cv::THRESH_BINARY);
150
- cv::Mat binaryMat;
151
- textScoreComb.convertTo(binaryMat, CV_8UC1);
152
-
153
- cv::Mat labels, stats, centroids;
154
- const int nLabels =
155
- cv::connectedComponentsWithStats(binaryMat, labels, stats, centroids, 4);
156
-
157
- NSMutableArray *detectedBoxes = [NSMutableArray array];
158
- for (int i = 1; i < nLabels; i++) {
159
- const int area = stats.at<int>(i, cv::CC_STAT_AREA);
160
- if (area < 10)
161
- continue;
162
-
163
- cv::Mat mask = (labels == i);
164
- CGFloat maxVal;
165
- cv::minMaxLoc(textMap, NULL, &maxVal, NULL, NULL, mask);
166
- if (maxVal < lowTextThreshold)
167
- continue;
168
-
169
- cv::Mat segMap = cv::Mat::zeros(textMap.size(), CV_8U);
170
- segMap.setTo(255, mask);
171
-
172
- const int x = stats.at<int>(i, cv::CC_STAT_LEFT);
173
- const int y = stats.at<int>(i, cv::CC_STAT_TOP);
174
- const int w = stats.at<int>(i, cv::CC_STAT_WIDTH);
175
- const int h = stats.at<int>(i, cv::CC_STAT_HEIGHT);
176
- const int dilationRadius = (int)(sqrt((double)(area / MAX(w, h))) * 2.0);
177
- const int sx = MAX(x - dilationRadius, 0);
178
- const int ex = MIN(x + w + dilationRadius + 1, imgW);
179
- const int sy = MAX(y - dilationRadius, 0);
180
- const int ey = MIN(y + h + dilationRadius + 1, imgH);
181
-
182
- cv::Rect roi(sx, sy, ex - sx, ey - sy);
183
- cv::Mat kernel = cv::getStructuringElement(
184
- cv::MORPH_RECT, cv::Size(1 + dilationRadius, 1 + dilationRadius));
185
- cv::Mat roiSegMap = segMap(roi);
186
- cv::dilate(roiSegMap, roiSegMap, kernel);
187
-
188
- std::vector<std::vector<cv::Point>> contours;
189
- cv::findContours(segMap, contours, cv::RETR_EXTERNAL,
190
- cv::CHAIN_APPROX_SIMPLE);
191
- if (!contours.empty()) {
192
- cv::RotatedRect minRect = cv::minAreaRect(contours[0]);
193
- cv::Point2f vertices[4];
194
- minRect.points(vertices);
195
- NSMutableArray *pointsArray = [NSMutableArray arrayWithCapacity:4];
196
- for (int j = 0; j < 4; j++) {
197
- const CGPoint point = CGPointMake(vertices[j].x, vertices[j].y);
198
- [pointsArray addObject:[NSValue valueWithCGPoint:point]];
199
- }
200
- NSDictionary *dict =
201
- @{@"bbox" : pointsArray, @"angle" : @(minRect.angle)};
202
- [detectedBoxes addObject:dict];
203
- }
204
- }
205
-
206
- return detectedBoxes;
207
- }
208
-
209
- + (NSArray<NSDictionary *> *)restoreBboxRatio:(NSArray<NSDictionary *> *)boxes
210
- usingRestoreRatio:(CGFloat)restoreRatio {
211
- NSMutableArray *result = [NSMutableArray array];
212
- for (NSUInteger i = 0; i < [boxes count]; i++) {
213
- NSDictionary *box = boxes[i];
214
- NSMutableArray *boxArray = [NSMutableArray arrayWithCapacity:4];
215
- for (NSValue *value in box[@"bbox"]) {
216
- CGPoint point = [value CGPointValue];
217
- point.x *= restoreRatio;
218
- point.y *= restoreRatio;
219
- [boxArray addObject:[NSValue valueWithCGPoint:point]];
220
- }
221
- NSDictionary *dict = @{@"bbox" : boxArray, @"angle" : box[@"angle"]};
222
- [result addObject:dict];
223
- }
224
-
225
- return result;
226
- }
227
-
228
- /**
229
- * This method normalizes angle returned from cv::minAreaRect function which
230
- *ranges from 0 to 90 degrees.
231
- **/
232
- + (CGFloat)normalizeAngle:(CGFloat)angle {
233
- if (angle > 45) {
234
- return angle - 90;
235
- }
236
- return angle;
237
- }
238
-
239
- + (CGPoint)midpointBetweenPoint:(CGPoint)p1 andPoint:(CGPoint)p2 {
240
- return CGPointMake((p1.x + p2.x) / 2, (p1.y + p2.y) / 2);
241
- }
242
-
243
- + (CGFloat)distanceFromPoint:(CGPoint)p1 toPoint:(CGPoint)p2 {
244
- const CGFloat xDist = (p2.x - p1.x);
245
- const CGFloat yDist = (p2.y - p1.y);
246
- return sqrt(xDist * xDist + yDist * yDist);
247
- }
248
-
249
- + (CGPoint)centerOfBox:(NSArray<NSValue *> *)box {
250
- return [self midpointBetweenPoint:[box[0] CGPointValue]
251
- andPoint:[box[2] CGPointValue]];
252
- }
253
-
254
- + (CGFloat)maxSideLength:(NSArray<NSValue *> *)points {
255
- CGFloat maxSideLength = 0;
256
- NSInteger numOfPoints = points.count;
257
- for (NSInteger i = 0; i < numOfPoints; i++) {
258
- const CGPoint currentPoint = [points[i] CGPointValue];
259
- const CGPoint nextPoint = [points[(i + 1) % numOfPoints] CGPointValue];
260
-
261
- const CGFloat sideLength = [self distanceFromPoint:currentPoint
262
- toPoint:nextPoint];
263
- if (sideLength > maxSideLength) {
264
- maxSideLength = sideLength;
265
- }
266
- }
267
- return maxSideLength;
268
- }
269
-
270
- + (CGFloat)minSideLength:(NSArray<NSValue *> *)points {
271
- CGFloat minSideLength = CGFLOAT_MAX;
272
- NSInteger numOfPoints = points.count;
273
-
274
- for (NSInteger i = 0; i < numOfPoints; i++) {
275
- const CGPoint currentPoint = [points[i] CGPointValue];
276
- const CGPoint nextPoint = [points[(i + 1) % numOfPoints] CGPointValue];
277
-
278
- const CGFloat sideLength = [self distanceFromPoint:currentPoint
279
- toPoint:nextPoint];
280
- if (sideLength < minSideLength) {
281
- minSideLength = sideLength;
282
- }
283
- }
284
-
285
- return minSideLength;
286
- }
287
-
288
- + (CGFloat)calculateMinimalDistanceBetweenBox:(NSArray<NSValue *> *)box1
289
- andBox:(NSArray<NSValue *> *)box2 {
290
- CGFloat minDistance = CGFLOAT_MAX;
291
- for (NSValue *value1 in box1) {
292
- const CGPoint corner1 = [value1 CGPointValue];
293
- for (NSValue *value2 in box2) {
294
- const CGPoint corner2 = [value2 CGPointValue];
295
- const CGFloat distance = [self distanceFromPoint:corner1 toPoint:corner2];
296
- if (distance < minDistance) {
297
- minDistance = distance;
298
- }
299
- }
300
- }
301
- return minDistance;
302
- }
303
-
304
- + (NSArray<NSValue *> *)rotateBox:(NSArray<NSValue *> *)box
305
- withAngle:(CGFloat)angle {
306
- const CGPoint center = [self centerOfBox:box];
307
-
308
- const CGFloat radians = angle * M_PI / 180.0;
309
-
310
- NSMutableArray<NSValue *> *rotatedPoints =
311
- [NSMutableArray arrayWithCapacity:4];
312
- for (NSValue *value in box) {
313
- const CGPoint point = [value CGPointValue];
314
-
315
- const CGFloat translatedX = point.x - center.x;
316
- const CGFloat translatedY = point.y - center.y;
317
-
318
- const CGFloat rotatedX =
319
- translatedX * cos(radians) - translatedY * sin(radians);
320
- const CGFloat rotatedY =
321
- translatedX * sin(radians) + translatedY * cos(radians);
322
-
323
- const CGPoint rotatedPoint =
324
- CGPointMake(rotatedX + center.x, rotatedY + center.y);
325
- [rotatedPoints addObject:[NSValue valueWithCGPoint:rotatedPoint]];
326
- }
327
-
328
- return rotatedPoints;
329
- }
330
-
331
- /**
332
- * Orders a set of points in a clockwise direction starting with the top-left
333
- * point.
334
- *
335
- * Process:
336
- * 1. It iterates through each CGPoint extracted from the NSValues.
337
- * 2. For each point, it calculates the sum (x + y) and difference (y - x) of
338
- * the coordinates.
339
- * 3. Points are classified into:
340
- * - Top-left: Minimum sum.
341
- * - Bottom-right: Maximum sum.
342
- * - Top-right: Minimum difference.
343
- * - Bottom-left: Maximum difference.
344
- * 4. The points are ordered starting from the top-left in a clockwise manner:
345
- * top-left, top-right, bottom-right, bottom-left.
346
- */
347
- + (NSArray *)orderPointsClockwise:(NSArray<NSValue *> *)points {
348
- CGPoint topLeft, topRight, bottomRight, bottomLeft;
349
- CGFloat minSum = FLT_MAX;
350
- CGFloat maxSum = -FLT_MAX;
351
- CGFloat minDiff = FLT_MAX;
352
- CGFloat maxDiff = -FLT_MAX;
353
-
354
- for (NSValue *value in points) {
355
- const CGPoint pt = [value CGPointValue];
356
- const CGFloat sum = pt.x + pt.y;
357
- const CGFloat diff = pt.y - pt.x;
358
-
359
- if (sum < minSum) {
360
- minSum = sum;
361
- topLeft = pt;
362
- }
363
- if (sum > maxSum) {
364
- maxSum = sum;
365
- bottomRight = pt;
366
- }
367
- if (diff < minDiff) {
368
- minDiff = diff;
369
- topRight = pt;
370
- }
371
- if (diff > maxDiff) {
372
- maxDiff = diff;
373
- bottomLeft = pt;
374
- }
375
- }
376
-
377
- NSArray<NSValue *> *rect = @[
378
- [NSValue valueWithCGPoint:topLeft], [NSValue valueWithCGPoint:topRight],
379
- [NSValue valueWithCGPoint:bottomRight],
380
- [NSValue valueWithCGPoint:bottomLeft]
381
- ];
382
-
383
- return rect;
384
- }
385
-
386
- + (std::vector<cv::Point2f>)pointsFromNSValues:(NSArray<NSValue *> *)nsValues {
387
- std::vector<cv::Point2f> points;
388
- for (NSValue *value in nsValues) {
389
- const CGPoint point = [value CGPointValue];
390
- points.emplace_back(point.x, point.y);
391
- }
392
- return points;
393
- }
394
-
395
- + (NSArray<NSValue *> *)nsValuesFromPoints:(cv::Point2f *)points
396
- count:(int)count {
397
- NSMutableArray<NSValue *> *nsValues =
398
- [[NSMutableArray alloc] initWithCapacity:count];
399
- for (int i = 0; i < count; i++) {
400
- [nsValues addObject:[NSValue valueWithCGPoint:CGPointMake(points[i].x,
401
- points[i].y)]];
402
- }
403
- return nsValues;
404
- }
405
-
406
- + (NSArray<NSValue *> *)mergeRotatedBoxes:(NSArray<NSValue *> *)box1
407
- withBox:(NSArray<NSValue *> *)box2 {
408
- box1 = [self orderPointsClockwise:box1];
409
- box2 = [self orderPointsClockwise:box2];
410
-
411
- std::vector<cv::Point2f> points1 = [self pointsFromNSValues:box1];
412
- std::vector<cv::Point2f> points2 = [self pointsFromNSValues:box2];
413
-
414
- std::vector<cv::Point2f> allPoints;
415
- allPoints.insert(allPoints.end(), points1.begin(), points1.end());
416
- allPoints.insert(allPoints.end(), points2.begin(), points2.end());
417
-
418
- std::vector<int> hullIndices;
419
- cv::convexHull(allPoints, hullIndices, false);
420
-
421
- std::vector<cv::Point2f> hullPoints;
422
- for (int idx : hullIndices) {
423
- hullPoints.push_back(allPoints[idx]);
424
- }
425
-
426
- cv::RotatedRect minAreaRect = cv::minAreaRect(hullPoints);
427
-
428
- cv::Point2f rectPoints[4];
429
- minAreaRect.points(rectPoints);
430
-
431
- return [self nsValuesFromPoints:rectPoints count:4];
432
- }
433
-
434
- + (NSMutableArray<NSDictionary *> *)
435
- removeSmallBoxesFromArray:(NSArray *)boxes
436
- usingMinSideThreshold:(CGFloat)minSideThreshold
437
- maxSideThreshold:(CGFloat)maxSideThreshold {
438
- NSMutableArray *filteredBoxes = [NSMutableArray array];
439
-
440
- for (NSDictionary *box in boxes) {
441
- const CGFloat maxSideLength = [self maxSideLength:box[@"bbox"]];
442
- const CGFloat minSideLength = [self minSideLength:box[@"bbox"]];
443
- if (minSideLength > minSideThreshold && maxSideLength > maxSideThreshold) {
444
- [filteredBoxes addObject:box];
445
- }
446
- }
447
-
448
- return filteredBoxes;
449
- }
450
-
451
- + (CGFloat)minimumYFromBox:(NSArray<NSValue *> *)box {
452
- __block CGFloat minY = CGFLOAT_MAX;
453
- [box enumerateObjectsUsingBlock:^(NSValue *_Nonnull obj, NSUInteger idx,
454
- BOOL *_Nonnull stop) {
455
- const CGPoint pt = [obj CGPointValue];
456
- if (pt.y < minY) {
457
- minY = pt.y;
458
- }
459
- }];
460
- return minY;
461
- }
462
-
463
- /**
464
- * This method calculates the distances between each sequential pair of points
465
- * in a presumed quadrilateral, identifies the two shortest sides, and fits a
466
- * linear model to the midpoints of these sides. It also evaluates whether the
467
- * resulting line should be considered vertical based on a predefined threshold
468
- * for the x-coordinate differences.
469
- *
470
- * If the line is vertical it is fitted as a function of x = my + c, otherwise
471
- * as y = mx + c.
472
- *
473
- * @return A NSDictionary containing:
474
- * - "slope": NSNumber representing the slope (m) of the line.
475
- * - "intercept": NSNumber representing the line's intercept (c) with y-axis.
476
- * - "isVertical": NSNumber (boolean) indicating whether the line is
477
- * considered vertical.
478
- */
479
- + (NSDictionary *)fitLineToShortestSides:(NSArray<NSValue *> *)points {
480
- NSMutableArray<NSDictionary *> *sides = [NSMutableArray array];
481
- NSMutableArray<NSValue *> *midpoints = [NSMutableArray array];
482
-
483
- for (int i = 0; i < 4; i++) {
484
- const CGPoint p1 = [points[i] CGPointValue];
485
- const CGPoint p2 = [points[(i + 1) % 4] CGPointValue];
486
-
487
- const CGFloat sideLength = [self distanceFromPoint:p1 toPoint:p2];
488
- [sides addObject:@{@"length" : @(sideLength), @"index" : @(i)}];
489
- [midpoints
490
- addObject:[NSValue valueWithCGPoint:[self midpointBetweenPoint:p1
491
- andPoint:p2]]];
492
- }
493
-
494
- [sides
495
- sortUsingDescriptors:@[ [NSSortDescriptor sortDescriptorWithKey:@"length"
496
- ascending:YES] ]];
497
-
498
- const CGPoint midpoint1 =
499
- [midpoints [[sides [0] [@"index"] intValue]] CGPointValue];
500
- const CGPoint midpoint2 =
501
- [midpoints [[sides [1] [@"index"] intValue]] CGPointValue];
502
- const CGFloat dx = fabs(midpoint2.x - midpoint1.x);
503
-
504
- CGFloat m, c;
505
- BOOL isVertical;
506
-
507
- std::vector<cv::Point2f> cvMidPoints = {
508
- cv::Point2f(midpoint1.x, midpoint1.y),
509
- cv::Point2f(midpoint2.x, midpoint2.y)};
510
- cv::Vec4f line;
511
-
512
- if (dx < verticalLineThreshold) {
513
- for (auto &pt : cvMidPoints)
514
- std::swap(pt.x, pt.y);
515
- cv::fitLine(cvMidPoints, line, cv::DIST_L2, 0, 0.01, 0.01);
516
- m = line[1] / line[0];
517
- c = line[3] - m * line[2];
518
- isVertical = YES;
519
- } else {
520
- cv::fitLine(cvMidPoints, line, cv::DIST_L2, 0, 0.01, 0.01);
521
- m = line[1] / line[0];
522
- c = line[3] - m * line[2];
523
- isVertical = NO;
524
- }
525
-
526
- return @{@"slope" : @(m), @"intercept" : @(c), @"isVertical" : @(isVertical)};
527
- }
528
-
529
- /**
530
- * This method assesses each box from a provided array, checks its center
531
- * against the center of a "current box", and evaluates its alignment with a
532
- * specified line equation. The function specifically searches for the box whose
533
- * center is closest to the current box, that has not been ignored, and fits
534
- * within a defined distance from the line.
535
- *
536
- * @param boxes An NSArray of NSDictionary objects where each dictionary
537
- * represents a box with keys "bbox" and "angle". "bbox" is an NSArray of
538
- * NSValue objects each encapsulating CGPoint that define the box vertices.
539
- * "angle" is a NSNumber representing the box's rotation angle.
540
- * @param ignoredIdxs An NSSet of NSNumber objects representing indices of boxes
541
- * to ignore in the evaluation.
542
- * @param currentBox An NSArray of NSValue objects encapsulating CGPoints
543
- * representing the current box to compare against.
544
- * @param isVertical A pointer to a BOOL indicating if the line to compare
545
- * distance to is vertical.
546
- * @param m The slope (gradient) of the line against which the box's alignment
547
- * is checked.
548
- * @param c The y-intercept of the line equation y = mx + c.
549
- * @param centerThreshold A multiplier to determine the threshold for the
550
- * distance between the box's center and the line.
551
- *
552
- * @return A NSDictionary containing:
553
- * - "idx" : NSNumber indicating the index of the found box in the
554
- * original NSArray.
555
- * - "boxHeight" : NSNumber representing the shortest side length of the
556
- * found box. Returns nil if no suitable box is found.
557
- */
558
- + (NSDictionary *)findClosestBox:(NSArray<NSDictionary *> *)boxes
559
- ignoredIdxs:(NSSet<NSNumber *> *)ignoredIdxs
560
- currentBox:(NSArray<NSValue *> *)currentBox
561
- isVertical:(BOOL)isVertical
562
- m:(CGFloat)m
563
- c:(CGFloat)c
564
- centerThreshold:(CGFloat)centerThreshold {
565
- CGFloat smallestDistance = CGFLOAT_MAX;
566
- NSInteger idx = -1;
567
- CGFloat boxHeight = 0;
568
- const CGPoint centerOfCurrentBox = [self centerOfBox:currentBox];
569
-
570
- for (NSUInteger i = 0; i < boxes.count; i++) {
571
- if ([ignoredIdxs containsObject:@(i)]) {
572
- continue;
573
- }
574
- NSArray<NSValue *> *bbox = boxes[i][@"bbox"];
575
- const CGPoint centerOfProcessedBox = [self centerOfBox:bbox];
576
- const CGFloat distanceBetweenCenters =
577
- [self distanceFromPoint:centerOfCurrentBox
578
- toPoint:centerOfProcessedBox];
579
-
580
- if (distanceBetweenCenters >= smallestDistance) {
581
- continue;
582
- }
583
-
584
- boxHeight = [self minSideLength:bbox];
585
-
586
- const CGFloat lineDistance =
587
- (isVertical
588
- ? fabs(centerOfProcessedBox.x - (m * centerOfProcessedBox.y + c))
589
- : fabs(centerOfProcessedBox.y - (m * centerOfProcessedBox.x + c)));
590
-
591
- if (lineDistance < boxHeight * centerThreshold) {
592
- idx = i;
593
- smallestDistance = distanceBetweenCenters;
594
- }
595
- }
596
-
597
- return idx != -1 ? @{@"idx" : @(idx), @"boxHeight" : @(boxHeight)} : nil;
598
- }
599
-
600
- /**
601
- * This method processes an array of text box dictionaries, each containing
602
- * details about individual text boxes, and attempts to group and merge these
603
- * boxes based on specified criteria including proximity, alignment, and size
604
- * thresholds. It prioritizes merging of boxes that are aligned closely in
605
- * angle, are near each other, and whose sizes are compatible based on the given
606
- * thresholds.
607
- *
608
- * @param boxes An array of NSDictionary objects where each dictionary
609
- * represents a text box. Each dictionary must have at least a "bbox" key with
610
- * an NSArray of NSValue wrapping CGPoints defining the box vertices, and an
611
- * "angle" key indicating the orientation of the box.
612
- * @param centerThreshold A CGFloat representing the threshold for considering
613
- * the distance between center and fitted line.
614
- * @param distanceThreshold A CGFloat that defines the maximum allowed distance
615
- * between boxes for them to be considered for merging.
616
- * @param heightThreshold A CGFloat representing the maximum allowed difference
617
- * in height between boxes for merging.
618
- * @param minSideThreshold An int that defines the minimum dimension threshold
619
- * to filter out small boxes after grouping.
620
- * @param maxSideThreshold An int that specifies the maximum dimension threshold
621
- * for filtering boxes post-grouping.
622
- * @param maxWidth An int that represents the maximum width allowable for a
623
- * merged box.
624
- *
625
- * @return An NSArray of NSDictionary objects representing the merged boxes.
626
- * Each dictionary contains:
627
- * - "bbox": An NSArray of NSValue each containing a CGPoint that
628
- * defines the vertices of the merged box.
629
- * - "angle": NSNumber representing the computed orientation of the
630
- * merged box.
631
- *
632
- * Processing Steps:
633
- * 1. Sort initial boxes based on their maximum side length.
634
- * 2. Sequentially merge boxes considering alignment, proximity, and size
635
- * compatibility.
636
- * 3. Post-processing to remove any boxes that are too small or exceed max side
637
- * criteria.
638
- * 4. Sort the final array of boxes by their vertical positions.
639
- */
640
- + (NSArray *)groupTextBoxes:(NSMutableArray<NSDictionary *> *)boxes
641
- centerThreshold:(CGFloat)centerThreshold
642
- distanceThreshold:(CGFloat)distanceThreshold
643
- heightThreshold:(CGFloat)heightThreshold
644
- minSideThreshold:(int)minSideThreshold
645
- maxSideThreshold:(int)maxSideThreshold
646
- maxWidth:(int)maxWidth {
647
- // Sort boxes based on their maximum side length
648
- boxes = [boxes sortedArrayUsingComparator:^NSComparisonResult(
649
- NSDictionary *obj1, NSDictionary *obj2) {
650
- const CGFloat maxLen1 = [self maxSideLength:obj1[@"bbox"]];
651
- const CGFloat maxLen2 = [self maxSideLength:obj2[@"bbox"]];
652
- return (maxLen1 < maxLen2) ? NSOrderedDescending
653
- : (maxLen1 > maxLen2) ? NSOrderedAscending
654
- : NSOrderedSame;
655
- }].mutableCopy;
656
-
657
- NSMutableArray<NSDictionary *> *mergedArray = [NSMutableArray array];
658
- CGFloat lineAngle;
659
- while (boxes.count > 0) {
660
- NSMutableDictionary *currentBox = [boxes[0] mutableCopy];
661
- CGFloat normalizedAngle =
662
- [self normalizeAngle:[currentBox[@"angle"] floatValue]];
663
- [boxes removeObjectAtIndex:0];
664
- NSMutableArray<NSNumber *> *ignoredIdxs = [NSMutableArray array];
665
-
666
- while (YES) {
667
- // Find all aligned boxes and merge them until max_size is reached or no
668
- // more boxes can be merged
669
- NSDictionary *fittedLine =
670
- [self fitLineToShortestSides:currentBox[@"bbox"]];
671
- const CGFloat slope = [fittedLine[@"slope"] floatValue];
672
- const CGFloat intercept = [fittedLine[@"intercept"] floatValue];
673
- const BOOL isVertical = [fittedLine[@"isVertical"] boolValue];
674
-
675
- lineAngle = atan(slope) * 180 / M_PI;
676
- if (isVertical) {
677
- lineAngle = -90;
678
- }
679
-
680
- NSDictionary *closestBoxInfo =
681
- [self findClosestBox:boxes
682
- ignoredIdxs:[NSSet setWithArray:ignoredIdxs]
683
- currentBox:currentBox[@"bbox"]
684
- isVertical:isVertical
685
- m:slope
686
- c:intercept
687
- centerThreshold:centerThreshold];
688
- if (closestBoxInfo == nil)
689
- break;
690
-
691
- NSInteger candidateIdx = [closestBoxInfo[@"idx"] integerValue];
692
- NSMutableDictionary *candidateBox = [boxes[candidateIdx] mutableCopy];
693
- const CGFloat candidateHeight = [closestBoxInfo[@"boxHeight"] floatValue];
694
-
695
- if (([candidateBox[@"angle"] isEqual:@90] && !isVertical) ||
696
- ([candidateBox[@"angle"] isEqual:@0] && isVertical)) {
697
- candidateBox[@"bbox"] = [self rotateBox:candidateBox[@"bbox"]
698
- withAngle:normalizedAngle];
699
- }
700
-
701
- const CGFloat minDistance =
702
- [self calculateMinimalDistanceBetweenBox:candidateBox[@"bbox"]
703
- andBox:currentBox[@"bbox"]];
704
- const CGFloat mergedHeight = [self minSideLength:currentBox[@"bbox"]];
705
- if (minDistance < distanceThreshold * candidateHeight &&
706
- fabs(mergedHeight - candidateHeight) <
707
- candidateHeight * heightThreshold) {
708
- currentBox[@"bbox"] = [self mergeRotatedBoxes:currentBox[@"bbox"]
709
- withBox:candidateBox[@"bbox"]];
710
- [boxes removeObjectAtIndex:candidateIdx];
711
- [ignoredIdxs removeAllObjects];
712
- if ([self maxSideLength:currentBox[@"bbox"]] > maxWidth) {
713
- break;
714
- }
715
- } else {
716
- [ignoredIdxs addObject:@(candidateIdx)];
717
- }
718
- }
719
-
720
- [mergedArray
721
- addObject:@{@"bbox" : currentBox[@"bbox"], @"angle" : @(lineAngle)}];
722
- }
723
-
724
- // Remove small boxes and sort by vertical
725
- mergedArray = [self removeSmallBoxesFromArray:mergedArray
726
- usingMinSideThreshold:minSideThreshold
727
- maxSideThreshold:maxSideThreshold];
728
-
729
- NSArray *sortedBoxes = [mergedArray
730
- sortedArrayUsingComparator:^NSComparisonResult(NSDictionary *obj1,
731
- NSDictionary *obj2) {
732
- NSArray<NSValue *> *coords1 = obj1[@"bbox"];
733
- NSArray<NSValue *> *coords2 = obj2[@"bbox"];
734
- const CGFloat minY1 = [self minimumYFromBox:coords1];
735
- const CGFloat minY2 = [self minimumYFromBox:coords2];
736
- return (minY1 < minY2) ? NSOrderedAscending
737
- : (minY1 > minY2) ? NSOrderedDescending
738
- : NSOrderedSame;
739
- }];
740
-
741
- NSMutableArray *orderedSortedBoxes =
742
- [[NSMutableArray alloc] initWithCapacity:[sortedBoxes count]];
743
- for (NSDictionary *dict in sortedBoxes) {
744
- NSMutableDictionary *mutableDict = [dict mutableCopy];
745
- NSArray<NSValue *> *originalBBox = mutableDict[@"bbox"];
746
- NSArray<NSValue *> *orderedBBox = [self orderPointsClockwise:originalBBox];
747
- mutableDict[@"bbox"] = orderedBBox;
748
- [orderedSortedBoxes addObject:mutableDict];
749
- }
750
-
751
- return orderedSortedBoxes;
752
- }
753
-
754
- @end