react-native-executorch 0.3.3 → 0.4.1
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.
- package/README.md +30 -13
- package/android/build.gradle +1 -1
- package/android/libs/executorch.aar +0 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/ETModule.kt +1 -2
- package/android/src/main/java/com/swmansion/rnexecutorch/ImageSegmentation.kt +58 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/LLM.kt +13 -49
- package/android/src/main/java/com/swmansion/rnexecutorch/RnExecutorchPackage.kt +37 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/StyleTransfer.kt +1 -1
- package/android/src/main/java/com/swmansion/rnexecutorch/TextEmbeddings.kt +51 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/Tokenizer.kt +86 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/models/BaseModel.kt +3 -4
- package/android/src/main/java/com/swmansion/rnexecutorch/models/TextEmbeddings/TextEmbeddingsModel.kt +48 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/models/TextEmbeddings/TextEmbeddingsUtils.kt +37 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/models/classification/ClassificationModel.kt +1 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/models/imageSegmentation/Constants.kt +26 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/models/imageSegmentation/ImageSegmentationModel.kt +142 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/utils/RecognizerUtils.kt +3 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/models/{StyleTransferModel.kt → styleTransfer/StyleTransferModel.kt} +2 -1
- package/android/src/main/java/com/swmansion/rnexecutorch/utils/ArrayUtils.kt +0 -8
- package/android/src/main/java/com/swmansion/rnexecutorch/{models/classification/Utils.kt → utils/Numerical.kt} +1 -1
- package/ios/ExecutorchLib.xcframework/Info.plist +4 -4
- package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/ExecutorchLib +0 -0
- package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Headers/HuggingFaceTokenizer.h +14 -0
- package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Headers/LLaMARunner.h +1 -23
- package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Info.plist +0 -0
- package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/ExecutorchLib +0 -0
- package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Headers/HuggingFaceTokenizer.h +14 -0
- package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Headers/LLaMARunner.h +1 -23
- package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Info.plist +0 -0
- package/ios/RnExecutorch/Classification.mm +15 -18
- package/ios/RnExecutorch/ETModule.mm +6 -5
- package/ios/RnExecutorch/ImageSegmentation.h +5 -0
- package/ios/RnExecutorch/ImageSegmentation.mm +60 -0
- package/ios/RnExecutorch/LLM.mm +12 -53
- package/ios/RnExecutorch/OCR.mm +39 -43
- package/ios/RnExecutorch/ObjectDetection.mm +20 -20
- package/ios/RnExecutorch/SpeechToText.mm +6 -7
- package/ios/RnExecutorch/StyleTransfer.mm +16 -19
- package/ios/RnExecutorch/TextEmbeddings.h +5 -0
- package/ios/RnExecutorch/TextEmbeddings.mm +62 -0
- package/ios/RnExecutorch/Tokenizer.h +5 -0
- package/ios/RnExecutorch/Tokenizer.mm +83 -0
- package/ios/RnExecutorch/VerticalOCR.mm +36 -36
- package/ios/RnExecutorch/models/BaseModel.h +2 -5
- package/ios/RnExecutorch/models/BaseModel.mm +5 -15
- package/ios/RnExecutorch/models/classification/ClassificationModel.mm +2 -3
- package/ios/RnExecutorch/models/classification/Constants.mm +0 -1
- package/ios/RnExecutorch/models/image_segmentation/Constants.h +4 -0
- package/ios/RnExecutorch/models/image_segmentation/Constants.mm +8 -0
- package/ios/RnExecutorch/models/image_segmentation/ImageSegmentationModel.h +10 -0
- package/ios/RnExecutorch/models/image_segmentation/ImageSegmentationModel.mm +146 -0
- package/ios/RnExecutorch/models/object_detection/SSDLiteLargeModel.mm +1 -2
- package/ios/RnExecutorch/models/ocr/Detector.h +0 -2
- package/ios/RnExecutorch/models/ocr/Detector.mm +2 -1
- package/ios/RnExecutorch/models/ocr/RecognitionHandler.h +5 -4
- package/ios/RnExecutorch/models/ocr/RecognitionHandler.mm +9 -26
- package/ios/RnExecutorch/models/ocr/Recognizer.mm +1 -2
- package/ios/RnExecutorch/models/ocr/VerticalDetector.h +0 -2
- package/ios/RnExecutorch/models/ocr/VerticalDetector.mm +2 -1
- package/ios/RnExecutorch/models/ocr/utils/OCRUtils.mm +0 -1
- package/ios/RnExecutorch/models/stt/Moonshine.mm +1 -6
- package/ios/RnExecutorch/models/stt/SpeechToTextBaseModel.mm +7 -11
- package/ios/RnExecutorch/models/stt/Whisper.mm +0 -5
- package/ios/RnExecutorch/models/{StyleTransferModel.h → style_transfer/StyleTransferModel.h} +1 -1
- package/ios/RnExecutorch/models/{StyleTransferModel.mm → style_transfer/StyleTransferModel.mm} +2 -3
- package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsModel.h +15 -0
- package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsModel.mm +45 -0
- package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsUtils.h +8 -0
- package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsUtils.mm +49 -0
- package/ios/RnExecutorch/utils/Conversions.h +15 -0
- package/ios/RnExecutorch/utils/ImageProcessor.h +0 -1
- package/ios/RnExecutorch/{models/classification/Utils.h → utils/Numerical.h} +0 -2
- package/ios/RnExecutorch/{models/classification/Utils.mm → utils/Numerical.mm} +0 -2
- package/ios/RnExecutorch/utils/ObjectDetectionUtils.mm +0 -2
- package/ios/RnExecutorch/utils/SFFT.mm +1 -1
- package/ios/RnExecutorch/utils/ScalarType.h +0 -2
- package/lib/module/Error.js +16 -2
- package/lib/module/Error.js.map +1 -1
- package/lib/module/constants/{llamaDefaults.js → llmDefaults.js} +7 -3
- package/lib/module/constants/llmDefaults.js.map +1 -0
- package/lib/module/constants/modelUrls.js +88 -27
- package/lib/module/constants/modelUrls.js.map +1 -1
- package/lib/module/constants/ocr/models.js +290 -0
- package/lib/module/constants/ocr/models.js.map +1 -0
- package/lib/module/constants/ocr/symbols.js +137 -2
- package/lib/module/constants/ocr/symbols.js.map +1 -1
- package/lib/module/constants/sttDefaults.js +50 -25
- package/lib/module/constants/sttDefaults.js.map +1 -1
- package/lib/module/controllers/LLMController.js +205 -0
- package/lib/module/controllers/LLMController.js.map +1 -0
- package/lib/module/controllers/OCRController.js +5 -10
- package/lib/module/controllers/OCRController.js.map +1 -1
- package/lib/module/controllers/SpeechToTextController.js +225 -122
- package/lib/module/controllers/SpeechToTextController.js.map +1 -1
- package/lib/module/controllers/VerticalOCRController.js +6 -10
- package/lib/module/controllers/VerticalOCRController.js.map +1 -1
- package/lib/module/hooks/computer_vision/useClassification.js +8 -23
- package/lib/module/hooks/computer_vision/useClassification.js.map +1 -1
- package/lib/module/hooks/computer_vision/useImageSegmentation.js +13 -0
- package/lib/module/hooks/computer_vision/useImageSegmentation.js.map +1 -0
- package/lib/module/hooks/computer_vision/useOCR.js +11 -6
- package/lib/module/hooks/computer_vision/useOCR.js.map +1 -1
- package/lib/module/hooks/computer_vision/useObjectDetection.js +8 -23
- package/lib/module/hooks/computer_vision/useObjectDetection.js.map +1 -1
- package/lib/module/hooks/computer_vision/useStyleTransfer.js +8 -23
- package/lib/module/hooks/computer_vision/useStyleTransfer.js.map +1 -1
- package/lib/module/hooks/computer_vision/useVerticalOCR.js +10 -7
- package/lib/module/hooks/computer_vision/useVerticalOCR.js.map +1 -1
- package/lib/module/hooks/general/useExecutorchModule.js +8 -36
- package/lib/module/hooks/general/useExecutorchModule.js.map +1 -1
- package/lib/module/hooks/natural_language_processing/useLLM.js +54 -63
- package/lib/module/hooks/natural_language_processing/useLLM.js.map +1 -1
- package/lib/module/hooks/natural_language_processing/useSpeechToText.js +15 -11
- package/lib/module/hooks/natural_language_processing/useSpeechToText.js.map +1 -1
- package/lib/module/hooks/natural_language_processing/useTextEmbeddings.js +14 -0
- package/lib/module/hooks/natural_language_processing/useTextEmbeddings.js.map +1 -0
- package/lib/module/hooks/natural_language_processing/useTokenizer.js +54 -0
- package/lib/module/hooks/natural_language_processing/useTokenizer.js.map +1 -0
- package/lib/module/hooks/useModule.js +18 -62
- package/lib/module/hooks/useModule.js.map +1 -1
- package/lib/module/index.js +16 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/modules/BaseModule.js +9 -10
- package/lib/module/modules/BaseModule.js.map +1 -1
- package/lib/module/modules/computer_vision/ClassificationModule.js +8 -5
- package/lib/module/modules/computer_vision/ClassificationModule.js.map +1 -1
- package/lib/module/modules/computer_vision/ImageSegmentationModule.js +28 -0
- package/lib/module/modules/computer_vision/ImageSegmentationModule.js.map +1 -0
- package/lib/module/modules/computer_vision/ObjectDetectionModule.js +8 -5
- package/lib/module/modules/computer_vision/ObjectDetectionModule.js.map +1 -1
- package/lib/module/modules/computer_vision/StyleTransferModule.js +8 -5
- package/lib/module/modules/computer_vision/StyleTransferModule.js.map +1 -1
- package/lib/module/modules/general/ExecutorchModule.js +8 -5
- package/lib/module/modules/general/ExecutorchModule.js.map +1 -1
- package/lib/module/modules/natural_language_processing/LLMModule.js +46 -27
- package/lib/module/modules/natural_language_processing/LLMModule.js.map +1 -1
- package/lib/module/modules/natural_language_processing/SpeechToTextModule.js +8 -5
- package/lib/module/modules/natural_language_processing/SpeechToTextModule.js.map +1 -1
- package/lib/module/modules/natural_language_processing/TextEmbeddingsModule.js +14 -0
- package/lib/module/modules/natural_language_processing/TextEmbeddingsModule.js.map +1 -0
- package/lib/module/modules/natural_language_processing/TokenizerModule.js +26 -0
- package/lib/module/modules/natural_language_processing/TokenizerModule.js.map +1 -0
- package/lib/module/native/NativeClassification.js.map +1 -1
- package/lib/module/native/NativeImageSegmentation.js +5 -0
- package/lib/module/native/NativeImageSegmentation.js.map +1 -0
- package/lib/module/native/NativeLLM.js.map +1 -1
- package/lib/module/native/NativeTextEmbeddings.js +5 -0
- package/lib/module/native/NativeTextEmbeddings.js.map +1 -0
- package/lib/module/native/NativeTokenizer.js +5 -0
- package/lib/module/native/NativeTokenizer.js.map +1 -0
- package/lib/module/native/RnExecutorchModules.js +18 -113
- package/lib/module/native/RnExecutorchModules.js.map +1 -1
- package/lib/module/types/common.js.map +1 -1
- package/lib/module/types/imageSegmentation.js +29 -0
- package/lib/module/types/imageSegmentation.js.map +1 -0
- package/lib/module/types/llm.js +7 -0
- package/lib/module/types/llm.js.map +1 -0
- package/lib/module/types/{object_detection.js → objectDetection.js} +1 -1
- package/lib/module/types/objectDetection.js.map +1 -0
- package/lib/module/types/ocr.js +2 -0
- package/lib/module/types/stt.js +82 -0
- package/lib/module/types/stt.js.map +1 -0
- package/lib/module/utils/ResourceFetcher.js +156 -0
- package/lib/module/utils/ResourceFetcher.js.map +1 -0
- package/lib/module/utils/llm.js +25 -0
- package/lib/module/utils/llm.js.map +1 -0
- package/lib/module/utils/stt.js +22 -0
- package/lib/module/utils/stt.js.map +1 -0
- package/lib/typescript/Error.d.ts +4 -1
- package/lib/typescript/Error.d.ts.map +1 -1
- package/lib/typescript/constants/{llamaDefaults.d.ts → llmDefaults.d.ts} +5 -5
- package/lib/typescript/constants/llmDefaults.d.ts.map +1 -0
- package/lib/typescript/constants/modelUrls.d.ts +74 -28
- package/lib/typescript/constants/modelUrls.d.ts.map +1 -1
- package/lib/typescript/constants/ocr/models.d.ts +285 -0
- package/lib/typescript/constants/ocr/models.d.ts.map +1 -0
- package/lib/typescript/constants/ocr/symbols.d.ts +73 -1
- package/lib/typescript/constants/ocr/symbols.d.ts.map +1 -1
- package/lib/typescript/constants/sttDefaults.d.ts +8 -13
- package/lib/typescript/constants/sttDefaults.d.ts.map +1 -1
- package/lib/typescript/controllers/LLMController.d.ts +46 -0
- package/lib/typescript/controllers/LLMController.d.ts.map +1 -0
- package/lib/typescript/controllers/OCRController.d.ts.map +1 -1
- package/lib/typescript/controllers/SpeechToTextController.d.ts +30 -16
- package/lib/typescript/controllers/SpeechToTextController.d.ts.map +1 -1
- package/lib/typescript/controllers/VerticalOCRController.d.ts +1 -1
- package/lib/typescript/controllers/VerticalOCRController.d.ts.map +1 -1
- package/lib/typescript/hooks/computer_vision/useClassification.d.ts +5 -5
- package/lib/typescript/hooks/computer_vision/useClassification.d.ts.map +1 -1
- package/lib/typescript/hooks/computer_vision/useImageSegmentation.d.ts +37 -0
- package/lib/typescript/hooks/computer_vision/useImageSegmentation.d.ts.map +1 -0
- package/lib/typescript/hooks/computer_vision/useOCR.d.ts +2 -1
- package/lib/typescript/hooks/computer_vision/useOCR.d.ts.map +1 -1
- package/lib/typescript/hooks/computer_vision/useObjectDetection.d.ts +5 -4
- package/lib/typescript/hooks/computer_vision/useObjectDetection.d.ts.map +1 -1
- package/lib/typescript/hooks/computer_vision/useStyleTransfer.d.ts +4 -2
- package/lib/typescript/hooks/computer_vision/useStyleTransfer.d.ts.map +1 -1
- package/lib/typescript/hooks/computer_vision/useVerticalOCR.d.ts +2 -1
- package/lib/typescript/hooks/computer_vision/useVerticalOCR.d.ts.map +1 -1
- package/lib/typescript/hooks/general/useExecutorchModule.d.ts +5 -6
- package/lib/typescript/hooks/general/useExecutorchModule.d.ts.map +1 -1
- package/lib/typescript/hooks/natural_language_processing/useLLM.d.ts +6 -6
- package/lib/typescript/hooks/natural_language_processing/useLLM.d.ts.map +1 -1
- package/lib/typescript/hooks/natural_language_processing/useSpeechToText.d.ts +7 -3
- package/lib/typescript/hooks/natural_language_processing/useSpeechToText.d.ts.map +1 -1
- package/lib/typescript/hooks/natural_language_processing/useTextEmbeddings.d.ts +13 -0
- package/lib/typescript/hooks/natural_language_processing/useTextEmbeddings.d.ts.map +1 -0
- package/lib/typescript/hooks/natural_language_processing/useTokenizer.d.ts +16 -0
- package/lib/typescript/hooks/natural_language_processing/useTokenizer.d.ts.map +1 -0
- package/lib/typescript/hooks/useModule.d.ts +11 -10
- package/lib/typescript/hooks/useModule.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +15 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/modules/BaseModule.d.ts +4 -5
- package/lib/typescript/modules/BaseModule.d.ts.map +1 -1
- package/lib/typescript/modules/computer_vision/ClassificationModule.d.ts +7 -7
- package/lib/typescript/modules/computer_vision/ClassificationModule.d.ts.map +1 -1
- package/lib/typescript/modules/computer_vision/ImageSegmentationModule.d.ts +32 -0
- package/lib/typescript/modules/computer_vision/ImageSegmentationModule.d.ts.map +1 -0
- package/lib/typescript/modules/computer_vision/ObjectDetectionModule.d.ts +6 -5
- package/lib/typescript/modules/computer_vision/ObjectDetectionModule.d.ts.map +1 -1
- package/lib/typescript/modules/computer_vision/StyleTransferModule.d.ts +6 -5
- package/lib/typescript/modules/computer_vision/StyleTransferModule.d.ts.map +1 -1
- package/lib/typescript/modules/general/ExecutorchModule.d.ts +4 -3
- package/lib/typescript/modules/general/ExecutorchModule.d.ts.map +1 -1
- package/lib/typescript/modules/natural_language_processing/LLMModule.d.ts +19 -5
- package/lib/typescript/modules/natural_language_processing/LLMModule.d.ts.map +1 -1
- package/lib/typescript/modules/natural_language_processing/SpeechToTextModule.d.ts +7 -4
- package/lib/typescript/modules/natural_language_processing/SpeechToTextModule.d.ts.map +1 -1
- package/lib/typescript/modules/natural_language_processing/TextEmbeddingsModule.d.ts +8 -0
- package/lib/typescript/modules/natural_language_processing/TextEmbeddingsModule.d.ts.map +1 -0
- package/lib/typescript/modules/natural_language_processing/TokenizerModule.d.ts +12 -0
- package/lib/typescript/modules/natural_language_processing/TokenizerModule.d.ts.map +1 -0
- package/lib/typescript/native/NativeClassification.d.ts.map +1 -1
- package/lib/typescript/native/NativeImageSegmentation.d.ts +10 -0
- package/lib/typescript/native/NativeImageSegmentation.d.ts.map +1 -0
- package/lib/typescript/native/NativeLLM.d.ts +3 -4
- package/lib/typescript/native/NativeLLM.d.ts.map +1 -1
- package/lib/typescript/native/NativeObjectDetection.d.ts +1 -1
- package/lib/typescript/native/NativeObjectDetection.d.ts.map +1 -1
- package/lib/typescript/native/NativeSpeechToText.d.ts +2 -2
- package/lib/typescript/native/NativeSpeechToText.d.ts.map +1 -1
- package/lib/typescript/native/NativeTextEmbeddings.d.ts +8 -0
- package/lib/typescript/native/NativeTextEmbeddings.d.ts.map +1 -0
- package/lib/typescript/native/NativeTokenizer.d.ts +12 -0
- package/lib/typescript/native/NativeTokenizer.d.ts.map +1 -0
- package/lib/typescript/native/RnExecutorchModules.d.ts +18 -41
- package/lib/typescript/native/RnExecutorchModules.d.ts.map +1 -1
- package/lib/typescript/types/common.d.ts +1 -26
- package/lib/typescript/types/common.d.ts.map +1 -1
- package/lib/typescript/types/imageSegmentation.d.ts +25 -0
- package/lib/typescript/types/imageSegmentation.d.ts.map +1 -0
- package/lib/typescript/types/llm.d.ts +38 -0
- package/lib/typescript/types/llm.d.ts.map +1 -0
- package/lib/typescript/types/{object_detection.d.ts → objectDetection.d.ts} +1 -1
- package/lib/typescript/types/objectDetection.d.ts.map +1 -0
- package/lib/typescript/types/ocr.d.ts +2 -1
- package/lib/typescript/types/ocr.d.ts.map +1 -1
- package/lib/typescript/types/stt.d.ts +91 -0
- package/lib/typescript/types/stt.d.ts.map +1 -0
- package/lib/typescript/utils/ResourceFetcher.d.ts +17 -0
- package/lib/typescript/utils/ResourceFetcher.d.ts.map +1 -0
- package/lib/typescript/utils/llm.d.ts +3 -0
- package/lib/typescript/utils/llm.d.ts.map +1 -0
- package/lib/typescript/utils/stt.d.ts +2 -0
- package/lib/typescript/utils/stt.d.ts.map +1 -0
- package/package.json +13 -49
- package/react-native-executorch.podspec +1 -1
- package/src/Error.ts +16 -3
- package/src/constants/llmDefaults.ts +14 -0
- package/src/constants/modelUrls.ts +146 -39
- package/src/constants/ocr/models.ts +453 -0
- package/src/constants/ocr/symbols.ts +147 -3
- package/src/constants/sttDefaults.ts +55 -37
- package/src/controllers/LLMController.ts +286 -0
- package/src/controllers/OCRController.ts +14 -28
- package/src/controllers/SpeechToTextController.ts +318 -180
- package/src/controllers/VerticalOCRController.ts +17 -32
- package/src/hooks/computer_vision/useClassification.ts +11 -26
- package/src/hooks/computer_vision/useImageSegmentation.ts +18 -0
- package/src/hooks/computer_vision/useOCR.ts +17 -5
- package/src/hooks/computer_vision/useObjectDetection.ts +10 -24
- package/src/hooks/computer_vision/useStyleTransfer.ts +9 -25
- package/src/hooks/computer_vision/useVerticalOCR.ts +11 -4
- package/src/hooks/general/useExecutorchModule.ts +10 -50
- package/src/hooks/natural_language_processing/useLLM.ts +80 -97
- package/src/hooks/natural_language_processing/useSpeechToText.ts +39 -12
- package/src/hooks/natural_language_processing/useTextEmbeddings.ts +18 -0
- package/src/hooks/natural_language_processing/useTokenizer.ts +61 -0
- package/src/hooks/useModule.ts +32 -92
- package/src/index.tsx +16 -2
- package/src/modules/BaseModule.ts +16 -26
- package/src/modules/computer_vision/ClassificationModule.ts +13 -8
- package/src/modules/computer_vision/ImageSegmentationModule.ts +39 -0
- package/src/modules/computer_vision/ObjectDetectionModule.ts +13 -8
- package/src/modules/computer_vision/StyleTransferModule.ts +13 -8
- package/src/modules/general/ExecutorchModule.ts +11 -6
- package/src/modules/natural_language_processing/LLMModule.ts +64 -51
- package/src/modules/natural_language_processing/SpeechToTextModule.ts +25 -10
- package/src/modules/natural_language_processing/TextEmbeddingsModule.ts +18 -0
- package/src/modules/natural_language_processing/TokenizerModule.ts +34 -0
- package/src/native/NativeClassification.ts +0 -1
- package/src/native/NativeImageSegmentation.ts +14 -0
- package/src/native/NativeLLM.ts +3 -10
- package/src/native/NativeObjectDetection.ts +1 -1
- package/src/native/NativeSpeechToText.ts +2 -2
- package/src/native/NativeTextEmbeddings.ts +9 -0
- package/src/native/NativeTokenizer.ts +13 -0
- package/src/native/RnExecutorchModules.ts +54 -234
- package/src/types/common.ts +1 -44
- package/src/types/imageSegmentation.ts +25 -0
- package/src/types/llm.ts +57 -0
- package/src/types/ocr.ts +3 -1
- package/src/types/stt.ts +93 -0
- package/src/utils/ResourceFetcher.ts +196 -0
- package/src/utils/llm.ts +34 -0
- package/src/utils/stt.ts +28 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/utils/llms/ConversationManager.kt +0 -68
- package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/_CodeSignature/CodeResources +0 -124
- package/ios/RnExecutorch/utils/llms/Constants.h +0 -6
- package/ios/RnExecutorch/utils/llms/Constants.mm +0 -23
- package/ios/RnExecutorch/utils/llms/ConversationManager.h +0 -26
- package/ios/RnExecutorch/utils/llms/ConversationManager.mm +0 -71
- package/lib/module/constants/llamaDefaults.js.map +0 -1
- package/lib/module/modules/computer_vision/BaseCVModule.js +0 -14
- package/lib/module/modules/computer_vision/BaseCVModule.js.map +0 -1
- package/lib/module/types/object_detection.js.map +0 -1
- package/lib/module/utils/fetchResource.js +0 -93
- package/lib/module/utils/fetchResource.js.map +0 -1
- package/lib/module/utils/listDownloadedResources.js +0 -13
- package/lib/module/utils/listDownloadedResources.js.map +0 -1
- package/lib/typescript/constants/llamaDefaults.d.ts.map +0 -1
- package/lib/typescript/modules/computer_vision/BaseCVModule.d.ts +0 -9
- package/lib/typescript/modules/computer_vision/BaseCVModule.d.ts.map +0 -1
- package/lib/typescript/types/object_detection.d.ts.map +0 -1
- package/lib/typescript/utils/fetchResource.d.ts +0 -3
- package/lib/typescript/utils/fetchResource.d.ts.map +0 -1
- package/lib/typescript/utils/listDownloadedResources.d.ts +0 -3
- package/lib/typescript/utils/listDownloadedResources.d.ts.map +0 -1
- package/src/constants/llamaDefaults.ts +0 -9
- package/src/modules/computer_vision/BaseCVModule.ts +0 -22
- package/src/utils/fetchResource.ts +0 -106
- package/src/utils/listDownloadedResources.ts +0 -12
- /package/src/types/{object_detection.ts → objectDetection.ts} +0 -0
package/ios/RnExecutorch/OCR.mm
CHANGED
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
#import "models/ocr/RecognitionHandler.h"
|
|
4
4
|
#import "models/ocr/utils/Constants.h"
|
|
5
5
|
#import "utils/ImageProcessor.h"
|
|
6
|
-
#import <ExecutorchLib/ETModel.h>
|
|
7
|
-
#import <React/RCTBridgeModule.h>
|
|
8
6
|
|
|
9
7
|
@implementation OCR {
|
|
10
8
|
Detector *detector;
|
|
@@ -13,6 +11,11 @@
|
|
|
13
11
|
|
|
14
12
|
RCT_EXPORT_MODULE()
|
|
15
13
|
|
|
14
|
+
- (void)releaseResources {
|
|
15
|
+
detector = nil;
|
|
16
|
+
recognitionHandler = nil;
|
|
17
|
+
}
|
|
18
|
+
|
|
16
19
|
- (void)loadModule:(NSString *)detectorSource
|
|
17
20
|
recognizerSourceLarge:(NSString *)recognizerSourceLarge
|
|
18
21
|
recognizerSourceMedium:(NSString *)recognizerSourceMedium
|
|
@@ -21,47 +24,40 @@ RCT_EXPORT_MODULE()
|
|
|
21
24
|
resolve:(RCTPromiseResolveBlock)resolve
|
|
22
25
|
reject:(RCTPromiseRejectBlock)reject {
|
|
23
26
|
detector = [[Detector alloc] init];
|
|
24
|
-
[detector
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
reject(@"init_recognizer_error",
|
|
59
|
-
@"Failed to initialize one or more "
|
|
60
|
-
@"recognizer models",
|
|
61
|
-
error);
|
|
62
|
-
}
|
|
63
|
-
}];
|
|
64
|
-
}];
|
|
27
|
+
NSNumber *errorCode = [detector loadModel:detectorSource];
|
|
28
|
+
if ([errorCode intValue] != 0) {
|
|
29
|
+
[self releaseResources];
|
|
30
|
+
NSError *error = [NSError
|
|
31
|
+
errorWithDomain:@"OCRErrorDomain"
|
|
32
|
+
code:[errorCode intValue]
|
|
33
|
+
userInfo:@{
|
|
34
|
+
NSLocalizedDescriptionKey : [NSString
|
|
35
|
+
stringWithFormat:@"%ld", (long)[errorCode longValue]]
|
|
36
|
+
}];
|
|
37
|
+
reject(@"init_module_error", @"Failed to initialize detector module",
|
|
38
|
+
error);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
recognitionHandler = [[RecognitionHandler alloc] initWithSymbols:symbols];
|
|
43
|
+
errorCode = [recognitionHandler loadRecognizers:recognizerSourceLarge
|
|
44
|
+
mediumRecognizerPath:recognizerSourceMedium
|
|
45
|
+
smallRecognizerPath:recognizerSourceSmall];
|
|
46
|
+
if ([errorCode intValue] != 0) {
|
|
47
|
+
[self releaseResources];
|
|
48
|
+
NSError *error = [NSError
|
|
49
|
+
errorWithDomain:@"OCRErrorDomain"
|
|
50
|
+
code:[errorCode intValue]
|
|
51
|
+
userInfo:@{
|
|
52
|
+
NSLocalizedDescriptionKey : [NSString
|
|
53
|
+
stringWithFormat:@"%ld", (long)[errorCode longValue]]
|
|
54
|
+
}];
|
|
55
|
+
reject(@"init_recognizer_error",
|
|
56
|
+
@"Failed to initialize one or more recognizer models", error);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
resolve(@0);
|
|
65
61
|
}
|
|
66
62
|
|
|
67
63
|
- (void)forward:(NSString *)input
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
#import "ObjectDetection.h"
|
|
2
2
|
#import "models/object_detection/SSDLiteLargeModel.hpp"
|
|
3
3
|
#import "utils/ImageProcessor.h"
|
|
4
|
-
#import <ExecutorchLib/ETModel.h>
|
|
5
|
-
#import <React/RCTBridgeModule.h>
|
|
6
4
|
|
|
7
5
|
@implementation ObjectDetection {
|
|
8
6
|
SSDLiteLargeModel *model;
|
|
@@ -10,28 +8,30 @@
|
|
|
10
8
|
|
|
11
9
|
RCT_EXPORT_MODULE()
|
|
12
10
|
|
|
11
|
+
- (void)releaseResources {
|
|
12
|
+
model = nil;
|
|
13
|
+
}
|
|
14
|
+
|
|
13
15
|
- (void)loadModule:(NSString *)modelSource
|
|
14
16
|
resolve:(RCTPromiseResolveBlock)resolve
|
|
15
17
|
reject:(RCTPromiseRejectBlock)reject {
|
|
16
18
|
model = [[SSDLiteLargeModel alloc] init];
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
return;
|
|
34
|
-
}];
|
|
19
|
+
|
|
20
|
+
NSNumber *errorCode = [model loadModel:modelSource];
|
|
21
|
+
if ([errorCode intValue] != 0) {
|
|
22
|
+
[self releaseResources];
|
|
23
|
+
NSError *error = [NSError
|
|
24
|
+
errorWithDomain:@"StyleTransferErrorDomain"
|
|
25
|
+
code:[errorCode intValue]
|
|
26
|
+
userInfo:@{
|
|
27
|
+
NSLocalizedDescriptionKey : [NSString
|
|
28
|
+
stringWithFormat:@"%ld", (long)[errorCode longValue]]
|
|
29
|
+
}];
|
|
30
|
+
reject(@"init_module_error", error.localizedDescription, error);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
resolve(@0);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
- (void)forward:(NSString *)input
|
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
#import "SpeechToText.h"
|
|
2
|
-
#import "./utils/ScalarType.h"
|
|
3
|
-
#import "models/BaseModel.h"
|
|
4
2
|
#import "models/stt/Moonshine.hpp"
|
|
5
|
-
#import "models/stt/SpeechToTextBaseModel.hpp"
|
|
6
3
|
#import "models/stt/Whisper.hpp"
|
|
7
|
-
#import "utils/SFFT.hpp"
|
|
8
|
-
#import <Accelerate/Accelerate.h>
|
|
9
|
-
#import <ExecutorchLib/ETModel.h>
|
|
10
|
-
#import <React/RCTBridgeModule.h>
|
|
11
4
|
|
|
12
5
|
@implementation SpeechToText {
|
|
13
6
|
Whisper *whisper;
|
|
@@ -16,6 +9,11 @@
|
|
|
16
9
|
|
|
17
10
|
RCT_EXPORT_MODULE()
|
|
18
11
|
|
|
12
|
+
- (void)releaseResources {
|
|
13
|
+
whisper = nil;
|
|
14
|
+
moonshine = nil;
|
|
15
|
+
}
|
|
16
|
+
|
|
19
17
|
- (void)generate:(NSArray *)waveform
|
|
20
18
|
resolve:(RCTPromiseResolveBlock)resolve
|
|
21
19
|
reject:(RCTPromiseRejectBlock)reject {
|
|
@@ -83,6 +81,7 @@ RCT_EXPORT_MODULE()
|
|
|
83
81
|
[model loadModules:modelSources];
|
|
84
82
|
resolve(@(0));
|
|
85
83
|
} @catch (NSException *exception) {
|
|
84
|
+
[self releaseResources];
|
|
86
85
|
reject(@"init_decoder_error",
|
|
87
86
|
[NSString stringWithFormat:@"%@", exception.reason], nil);
|
|
88
87
|
}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
#import "StyleTransfer.h"
|
|
2
2
|
#import "ImageProcessor.h"
|
|
3
|
-
#import "models/
|
|
4
|
-
#import "models/StyleTransferModel.h"
|
|
5
|
-
#import "utils/ETError.h"
|
|
6
|
-
#import <ExecutorchLib/ETModel.h>
|
|
7
|
-
#import <React/RCTBridgeModule.h>
|
|
8
|
-
#import <opencv2/opencv.hpp>
|
|
3
|
+
#import "models/style_transfer/StyleTransferModel.h"
|
|
9
4
|
|
|
10
5
|
@implementation StyleTransfer {
|
|
11
6
|
StyleTransferModel *model;
|
|
@@ -13,23 +8,25 @@
|
|
|
13
8
|
|
|
14
9
|
RCT_EXPORT_MODULE()
|
|
15
10
|
|
|
11
|
+
- (void)releaseResources {
|
|
12
|
+
model = nil;
|
|
13
|
+
}
|
|
14
|
+
|
|
16
15
|
- (void)loadModule:(NSString *)modelSource
|
|
17
16
|
resolve:(RCTPromiseResolveBlock)resolve
|
|
18
17
|
reject:(RCTPromiseRejectBlock)reject {
|
|
19
18
|
model = [[StyleTransferModel alloc] init];
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
return;
|
|
32
|
-
}];
|
|
19
|
+
|
|
20
|
+
NSNumber *errorCode = [model loadModel:modelSource];
|
|
21
|
+
if ([errorCode intValue] != 0) {
|
|
22
|
+
[self releaseResources];
|
|
23
|
+
reject(@"init_module_error",
|
|
24
|
+
[NSString stringWithFormat:@"%ld", (long)[errorCode longValue]],
|
|
25
|
+
nil);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
resolve(@0);
|
|
33
30
|
}
|
|
34
31
|
|
|
35
32
|
- (void)forward:(NSString *)input
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
#import "TextEmbeddings.h"
|
|
2
|
+
#import "models/text_embeddings/TextEmbeddingsModel.h"
|
|
3
|
+
|
|
4
|
+
@implementation TextEmbeddings {
|
|
5
|
+
TextEmbeddingsModel *model;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
RCT_EXPORT_MODULE()
|
|
9
|
+
|
|
10
|
+
- (void)releaseResources {
|
|
11
|
+
model = nil;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
- (void)loadModule:(NSString *)modelSource
|
|
15
|
+
tokenizerSource:(NSString *)tokenizerSource
|
|
16
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
17
|
+
reject:(RCTPromiseRejectBlock)reject {
|
|
18
|
+
model = [[TextEmbeddingsModel alloc] init];
|
|
19
|
+
|
|
20
|
+
@try {
|
|
21
|
+
[self->model loadTokenizer:tokenizerSource];
|
|
22
|
+
} @catch (NSException *exception) {
|
|
23
|
+
[self releaseResources];
|
|
24
|
+
reject(@"Tokenizer_Error",
|
|
25
|
+
[NSString stringWithFormat:@"Failed to load tokenizer from: %@",
|
|
26
|
+
tokenizerSource],
|
|
27
|
+
nil);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
NSNumber *errorCode = [model loadModel:modelSource];
|
|
32
|
+
if ([errorCode intValue] != 0) {
|
|
33
|
+
[self releaseResources];
|
|
34
|
+
reject(@"init_module_error",
|
|
35
|
+
[NSString stringWithFormat:@"%ld", (long)[errorCode longValue]],
|
|
36
|
+
nil);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
resolve(@0);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
- (void)forward:(NSString *)input
|
|
44
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
45
|
+
reject:(RCTPromiseRejectBlock)reject {
|
|
46
|
+
@try {
|
|
47
|
+
resolve([model runModel:input]);
|
|
48
|
+
return;
|
|
49
|
+
} @catch (NSException *exception) {
|
|
50
|
+
NSLog(@"An exception occurred: %@, %@", exception.name, exception.reason);
|
|
51
|
+
reject(@"forward_error",
|
|
52
|
+
[NSString stringWithFormat:@"%@", exception.reason], nil);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
58
|
+
(const facebook::react::ObjCTurboModule::InitParams &)params {
|
|
59
|
+
return std::make_shared<facebook::react::NativeTextEmbeddingsSpecJSI>(params);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
@end
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
#import "Tokenizer.h"
|
|
2
|
+
#import <ExecutorchLib/HuggingFaceTokenizer.h>
|
|
3
|
+
|
|
4
|
+
@implementation Tokenizer {
|
|
5
|
+
HuggingFaceTokenizer *tokenizer;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
RCT_EXPORT_MODULE()
|
|
9
|
+
|
|
10
|
+
- (void)loadModule:(NSString *)tokenizerSource
|
|
11
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
12
|
+
reject:(RCTPromiseRejectBlock)reject {
|
|
13
|
+
@try {
|
|
14
|
+
tokenizer =
|
|
15
|
+
[[HuggingFaceTokenizer alloc] initWithTokenizerPath:tokenizerSource];
|
|
16
|
+
resolve(@(0));
|
|
17
|
+
} @catch (NSException *exception) {
|
|
18
|
+
reject(@"Tokenizer_Error", @"Failed to load tokenizer", nil);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
- (void)encode:(NSString *)input
|
|
23
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
24
|
+
reject:(RCTPromiseRejectBlock)reject {
|
|
25
|
+
@try {
|
|
26
|
+
resolve([tokenizer encode:input]);
|
|
27
|
+
} @catch (NSException *exception) {
|
|
28
|
+
reject(@"tokenizer_error",
|
|
29
|
+
[NSString stringWithFormat:@"%@", exception.reason], nil);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
- (void)decode:(NSArray *)input
|
|
34
|
+
skipSpecialTokens:(BOOL)skipSpecialTokens
|
|
35
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
36
|
+
reject:(RCTPromiseRejectBlock)reject {
|
|
37
|
+
@try {
|
|
38
|
+
resolve([tokenizer decode:input skipSpecialTokens:skipSpecialTokens]);
|
|
39
|
+
} @catch (NSException *exception) {
|
|
40
|
+
reject(@"tokenizer_error",
|
|
41
|
+
[NSString stringWithFormat:@"%@", exception.reason], nil);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
- (void)getVocabSize:(RCTPromiseResolveBlock)resolve
|
|
46
|
+
reject:(RCTPromiseRejectBlock)reject {
|
|
47
|
+
@try {
|
|
48
|
+
resolve([NSNumber numberWithUnsignedInteger:[tokenizer getVocabSize]]);
|
|
49
|
+
} @catch (NSException *exception) {
|
|
50
|
+
reject(@"tokenizer_error",
|
|
51
|
+
[NSString stringWithFormat:@"%@", exception.reason], nil);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
- (void)idToToken:(double)input
|
|
56
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
57
|
+
reject:(RCTPromiseRejectBlock)reject {
|
|
58
|
+
@try {
|
|
59
|
+
NSInteger tokenID = (NSInteger)input;
|
|
60
|
+
resolve([tokenizer idToToken:tokenID]);
|
|
61
|
+
} @catch (NSException *exception) {
|
|
62
|
+
reject(@"tokenizer_error",
|
|
63
|
+
[NSString stringWithFormat:@"%@", exception.reason], nil);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
- (void)tokenToId:(NSString *)input
|
|
68
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
69
|
+
reject:(RCTPromiseRejectBlock)reject {
|
|
70
|
+
@try {
|
|
71
|
+
resolve([NSNumber numberWithInteger:[tokenizer tokenToId:input]]);
|
|
72
|
+
} @catch (NSException *exception) {
|
|
73
|
+
reject(@"tokenizer_error",
|
|
74
|
+
[NSString stringWithFormat:@"%@", exception.reason], nil);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
79
|
+
(const facebook::react::ObjCTurboModule::InitParams &)params {
|
|
80
|
+
return std::make_shared<facebook::react::NativeTokenizerSpecJSI>(params);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
@end
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
#import "VerticalOCR.h"
|
|
2
|
-
#import "models/ocr/RecognitionHandler.h"
|
|
3
2
|
#import "models/ocr/Recognizer.h"
|
|
4
3
|
#import "models/ocr/VerticalDetector.h"
|
|
5
4
|
#import "models/ocr/utils/CTCLabelConverter.h"
|
|
5
|
+
#import "models/ocr/utils/Constants.h"
|
|
6
6
|
#import "models/ocr/utils/OCRUtils.h"
|
|
7
7
|
#import "models/ocr/utils/RecognizerUtils.h"
|
|
8
8
|
#import "utils/ImageProcessor.h"
|
|
9
|
-
#import <ExecutorchLib/ETModel.h>
|
|
10
|
-
#import <React/RCTBridgeModule.h>
|
|
11
9
|
|
|
12
10
|
@implementation VerticalOCR {
|
|
13
11
|
VerticalDetector *detectorLarge;
|
|
@@ -19,6 +17,13 @@
|
|
|
19
17
|
|
|
20
18
|
RCT_EXPORT_MODULE()
|
|
21
19
|
|
|
20
|
+
- (void)releaseResources {
|
|
21
|
+
detectorLarge = nil;
|
|
22
|
+
detectorNarrow = nil;
|
|
23
|
+
recognizer = nil;
|
|
24
|
+
converter = nil;
|
|
25
|
+
}
|
|
26
|
+
|
|
22
27
|
- (void)loadModule:(NSString *)detectorLargeSource
|
|
23
28
|
detectorNarrowSource:(NSString *)detectorNarrowSource
|
|
24
29
|
recognizerSource:(NSString *)recognizerSource
|
|
@@ -26,42 +31,37 @@ RCT_EXPORT_MODULE()
|
|
|
26
31
|
independentCharacters:(BOOL)independentCharacters
|
|
27
32
|
resolve:(RCTPromiseResolveBlock)resolve
|
|
28
33
|
reject:(RCTPromiseRejectBlock)reject {
|
|
29
|
-
detectorLarge = [[VerticalDetector alloc] initWithDetectSingleCharacters:NO];
|
|
30
34
|
converter = [[CTCLabelConverter alloc] initWithCharacters:symbols
|
|
31
35
|
separatorList:@{}];
|
|
32
36
|
self->independentCharacters = independentCharacters;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
resolve(@(YES));
|
|
62
|
-
}];
|
|
63
|
-
}];
|
|
64
|
-
}];
|
|
37
|
+
|
|
38
|
+
detectorLarge = [[VerticalDetector alloc] initWithDetectSingleCharacters:NO];
|
|
39
|
+
NSNumber *errorCode = [detectorLarge loadModel:detectorLargeSource];
|
|
40
|
+
if ([errorCode intValue] != 0) {
|
|
41
|
+
[self releaseResources];
|
|
42
|
+
reject(@"init_module_error", @"Failed to initialize detector module", nil);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
detectorNarrow =
|
|
47
|
+
[[VerticalDetector alloc] initWithDetectSingleCharacters:YES];
|
|
48
|
+
errorCode = [detectorNarrow loadModel:detectorNarrowSource];
|
|
49
|
+
if ([errorCode intValue] != 0) {
|
|
50
|
+
[self releaseResources];
|
|
51
|
+
reject(@"init_module_error", @"Failed to initialize detector module", nil);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
recognizer = [[Recognizer alloc] init];
|
|
56
|
+
errorCode = [recognizer loadModel:recognizerSource];
|
|
57
|
+
if ([errorCode intValue] != 0) {
|
|
58
|
+
[self releaseResources];
|
|
59
|
+
reject(@"init_module_error", @"Failed to initialize recognizer module",
|
|
60
|
+
nil);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
resolve(@0);
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
- (void)forward:(NSString *)input
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
#import "ExecutorchLib/ETModel.h"
|
|
2
|
-
#import <Foundation/Foundation.h>
|
|
3
|
-
#import <UIKit/UIKit.h>
|
|
4
2
|
|
|
5
3
|
@interface BaseModel : NSObject {
|
|
6
4
|
@protected
|
|
7
5
|
ETModel *module;
|
|
8
6
|
}
|
|
9
7
|
|
|
10
|
-
- (NSArray *)forward:(NSArray *)
|
|
8
|
+
- (NSArray *)forward:(NSArray *)inputs;
|
|
11
9
|
|
|
12
10
|
- (NSArray *)forward:(NSArray *)inputs
|
|
13
11
|
shapes:(NSArray *)shapes
|
|
@@ -18,7 +16,6 @@
|
|
|
18
16
|
shapes:(NSArray *)shapes
|
|
19
17
|
inputTypes:(NSArray *)inputTypes;
|
|
20
18
|
|
|
21
|
-
- (
|
|
22
|
-
completion:(void (^)(BOOL success, NSNumber *code))completion;
|
|
19
|
+
- (NSNumber *)loadModel:(NSString *)modelSource;
|
|
23
20
|
|
|
24
21
|
@end
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
#import "BaseModel.h"
|
|
2
|
-
#import "../utils/ETError.h"
|
|
3
2
|
|
|
4
3
|
@implementation BaseModel
|
|
5
4
|
|
|
6
|
-
- (NSArray *)forward:(NSArray *)
|
|
5
|
+
- (NSArray *)forward:(NSArray *)inputs {
|
|
7
6
|
NSMutableArray *shapes = [NSMutableArray new];
|
|
8
7
|
NSMutableArray *inputTypes = [NSMutableArray new];
|
|
9
8
|
NSNumber *numberOfInputs = [module getNumberOfInputs];
|
|
@@ -13,9 +12,8 @@
|
|
|
13
12
|
[inputTypes addObject:[module getInputType:[NSNumber numberWithInt:i]]];
|
|
14
13
|
}
|
|
15
14
|
|
|
16
|
-
NSArray *result = [module forward
|
|
17
|
-
|
|
18
|
-
inputTypes:inputTypes];
|
|
15
|
+
NSArray *result = [module forward:inputs shapes:shapes inputTypes:inputTypes];
|
|
16
|
+
|
|
19
17
|
return result;
|
|
20
18
|
}
|
|
21
19
|
|
|
@@ -37,17 +35,9 @@
|
|
|
37
35
|
return result;
|
|
38
36
|
}
|
|
39
37
|
|
|
40
|
-
- (
|
|
41
|
-
completion:(void (^)(BOOL success, NSNumber *code))completion {
|
|
38
|
+
- (NSNumber *)loadModel:(NSString *)modelSource {
|
|
42
39
|
module = [[ETModel alloc] init];
|
|
43
|
-
|
|
44
|
-
if ([result intValue] != 0) {
|
|
45
|
-
completion(NO, result);
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
completion(YES, result);
|
|
50
|
-
return;
|
|
40
|
+
return [self->module loadModel:modelSource];
|
|
51
41
|
}
|
|
52
42
|
|
|
53
43
|
@end
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
#import "ClassificationModel.h"
|
|
2
2
|
#import "../../utils/ImageProcessor.h"
|
|
3
|
+
#import "../../utils/Numerical.h"
|
|
3
4
|
#import "Constants.h"
|
|
4
|
-
#import "Utils.h"
|
|
5
|
-
#import "opencv2/opencv.hpp"
|
|
6
5
|
|
|
7
6
|
@implementation ClassificationModel
|
|
8
7
|
|
|
@@ -47,7 +46,7 @@
|
|
|
47
46
|
|
|
48
47
|
- (NSDictionary *)runModel:(cv::Mat &)input {
|
|
49
48
|
NSArray *modelInput = [self preprocess:input];
|
|
50
|
-
NSArray *modelOutput = [self forward
|
|
49
|
+
NSArray *modelOutput = [self forward:@[ modelInput ]];
|
|
51
50
|
return [self postprocess:modelOutput];
|
|
52
51
|
}
|
|
53
52
|
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
#import "Constants.h"
|
|
2
|
+
|
|
3
|
+
const std::vector<std::string> deeplabv3_resnet50_labels = {
|
|
4
|
+
"BACKGROUND", "AEROPLANE", "BICYCLE", "BIRD", "BOAT",
|
|
5
|
+
"BOTTLE", "BUS", "CAR", "CAT", "CHAIR",
|
|
6
|
+
"COW", "DININGTABLE", "DOG", "HORSE", "MOTORBIKE",
|
|
7
|
+
"PERSON", "POTTEDPLANT", "SHEEP", "SOFA", "TRAIN",
|
|
8
|
+
"TVMONITOR"};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#import "../BaseModel.h"
|
|
2
|
+
#import "opencv2/opencv.hpp"
|
|
3
|
+
|
|
4
|
+
@interface ImageSegmentationModel : BaseModel
|
|
5
|
+
- (cv::Size)getModelImageSize;
|
|
6
|
+
- (NSDictionary *)runModel:(cv::Mat &)input
|
|
7
|
+
returnClasses:(NSArray *)classesOfInterest
|
|
8
|
+
resize:(BOOL)resize;
|
|
9
|
+
|
|
10
|
+
@end
|