视觉任务iOSSDK集成文档

全功能AI开发平台 BML

  • 版本发布记录
  • 快速开始
    • 用BML实现表格预测
    • 用BML实现序列标注
    • 用BML实现文本实体抽取
    • 用BML实现图片分类
    • 用BML实现实例分割
    • 用BML评价短文本相似度
    • 用BML实现开源大模型的预训练(Post-pretrain)
    • 用BML实现文本分类
    • 用BML实现物体检测
  • 模型仓库
    • 从训练任务导入模型
    • 查看模型
    • 创建模型
    • 模型仓库简介
    • 从本地导入模型
    • 校验模型
    • 服务代码文件示例
      • Sklearn服务代码文件示例
      • XGBoost服务代码文件示例
  • 平台管理
    • 权限管理
    • 在BML平台使用并行文件系统PFS和对象存储BOS
    • 在BML平台使用容器镜像服务CCR
    • 在BML使用外部镜像
    • 项目空间管理
    • 镜像管理
      • 镜像使用
      • 镜像管理简介
      • 常见问题
      • 自定义镜像
    • 资源管理
      • 资源池管理简介
      • 资源池使用简介
  • 预测部署
    • 批量预测(用户资源池)API
    • 文字识别模型部署
      • 文字识别任务API参考文档
      • 文字识别任务公有云部署
    • 通用模型部署
      • 标准接口规范参考
      • Paddle框架API调用文档
      • sklearn框架API调用文档
      • 公有云部署
      • XGBoost框架API调用文档
      • tensorflow框架API调用文档
      • Pytorch框架API调用文档
      • 通用类模型API参考
      • 错误码
    • 语音技术模型部署
      • 声音分类API调用文档
    • 视觉模型部署
      • 智能边缘控制台-多节点版
      • 端云协同服务部署
      • 智能边缘控制台-单节点版
      • 视觉任务模型部署整体说明
      • 软硬一体方案部署
        • 视觉任务Jetson专用SDK集成文档
        • 如何获取视觉任务软硬一体产品
        • 视觉任务EdgeBoard(VMX)专用SDK集成文档
        • 视觉任务EdgeBoard(FZ)专用SDK集成文档
        • 视觉任务专用辨影SDK集成开发文档
      • 私有服务器部署
        • 视觉模型如何部署在私有服务器
        • 私有API
          • 如何发布私有API
          • 图像分类-单图单标签私有API集成文档
          • 图像分类-单图多标签私有API集成文档
          • 物体检测私有API集成文档
        • 服务器端SDK
          • 视觉任务服务器端LinuxSDK集成文档-Python
          • 视觉任务服务器端LinuxSDK集成文档-C++
          • 如何发布服务器端SDK
          • 视觉任务服务器端WindowsSDK集成文档
          • 视觉任务服务器端SDK简介
      • 设备端SDK部署
        • 视觉任务WindowsSDK集成文档
        • 视觉任务iOSSDK集成文档
        • 视觉任务LinuxSDK集成文档-Python
        • 视觉任务LinuxSDK集成文档-C++
        • 视觉任务设备端SDK使用说明
        • 如何发布视觉任务设备端SDK
        • 视觉任务AndroidSDK集成文档
      • 公有云部署
        • 文字识别API参考文档
        • 视觉任务公有云部署
        • 物体检测API参考文档
        • 图像分类-单图单标签API参考文档
        • 实例分割API参考文档
        • 图像分类-单图多标签API参考文档
    • 表格预测模型部署
      • 整体说明
      • 公有云部署
    • 公有云部署管理
      • 配置AB测试版本
      • 批量预测服务
      • 公有云部署
      • 公有云部署简介
      • 配置休眠策略
    • NLP模型部署
      • 自然语言处理任务模型部署整体说明
      • 私有服务器部署
        • 如何部署在私有服务器
        • 私有服务API说明
          • 私有部署说明-短文本相似度
          • 私有化部署接口说明-文本分类
          • 私有部署文档-序列标注
          • 文本实体抽取API调用文档
      • 公有云部署
        • 短文本匹配API调用文档
        • 文本实体抽取私有API调用说明
        • 如何发布自然语言处理任务API
        • 文本分类-多标签API调用文档
        • 文本分类API调用文档
        • 序列标注API调用文档
  • 数据服务
    • 数据服务简介
    • 智能数据API
    • 公有云服务调用数据反馈
    • 智能标注
      • 文本智能标注介绍及原理说明
      • 图像智能标注介绍说明
    • 管理视觉数据
      • 实例分割数据导入与标注
        • 数据标注说明
        • 导入未标注数据
        • 导入已标注数据
      • 物体检测数据导入与标注
        • 物体检测数据标注说明
        • 物体检测导入未标注数据
        • 物体检测导入已标注数据
      • 图像分类数据导入与标注
        • 图像分类导入未标注数据
        • 图像分类导入已标注数据
        • 图像分类数据标注说明
    • 管理文本数据
      • 文本分类数据导入与标注
        • 文本分类数据标注说明
        • 文本分类数据导入与标注
        • 数据去重策略
      • 序列标注数据导入与标注
        • 序列标注标注说明
        • 序列标注数据导入
        • 数据去重策略
      • 文本实体抽取数据标注
        • 文本实体抽取数据标注
        • 文本实体抽取数据导入
        • 数据去重策略
      • 短文本匹配数据导入与标注
        • 短文本匹配数据导入与标注
        • 数据去重策略说明
        • 短文本匹配数据标注
  • 产品简介
    • BML平台升级公告
    • 平台重点升级介绍
    • 产品优势
    • 产品功能
    • 什么是BML
    • 文心大模型
  • 产品定价
    • 服务器部署价格说明
    • 专项适配硬件部署价格说明
    • 公有云部署计费说明
    • 批量预测计费说明
    • 模型训练计费说明
    • 通用小型设备部署价格说明
  • 模型训练
    • Notebook建模
      • 创建并启动Notebook
      • Notebook导入数据集
      • 保存Notebook中的模型
      • Notebook使用参考
      • 常见问题
      • 数据模型可视化功能说明
      • Notebook简介
      • 发布模型
      • 配置模型
      • 使用Notebook开发模型
      • 如何使用Notebook SSH 功能
      • Notebook从训练到部署快速入门
        • Codelab Notebook自定义环境部署最佳实践
        • 基于Notebook的图像分类模板使用指南
        • 基于 Notebook 的 NLP 通用模板使用指南
        • Notebook 模板使用指南概述
        • 基于 Notebook 的通用模板使用指南
        • 基于 Notebook 的物体检测模板使用指南
    • 自定义作业建模
      • 自定义作业简介
      • 训练作业API
      • 训练作业
        • 使用训练作业训练模型
        • 创建训练作业
        • 发布模型
        • 训练作业代码示例
          • TensorFlow 1.13.2
          • AIAK- Training Pytorch版
          • TensorFlow 2.3.0
          • Blackhole 1.0.0
          • Pytorch 1.7.1
          • Sklearn 0.23.2
          • XGBoost 1.3.1
          • PaddlePaddle 2.0.0rc
      • 自动搜索作业
        • 创建自动搜索作业
        • yaml文件编写规范
        • 自动搜索作业简介
        • 自动搜索作业代码编写规范
        • 自动搜索作业代码示例
          • XGBoost 1.3.1代码规范
          • TensorFlow 1.13.2代码规范
          • Sklearn 0.23.2代码规范
          • Pytorch 1.7.1代码规范
          • Tensorflow2.3.0代码规范
          • PaddlePaddle 2.1.1代码规范
    • 可视化建模
      • 快速入门
      • 概述
      • 组件菜单
        • 001-基本操作
        • 003-查看模型特征溯源
        • 007-组件状态
        • 008-组件资源配置
        • 006-组件列选择
        • 002-查看模型可解释性
        • 004-查看特征重要性
      • 组件说明
        • 015-图算法
        • 004-特征工程组件
        • 003-数据处理组件
        • 012-预测组件
        • 008-聚类算法
        • 009-Python算法组件
        • 002-数据集组件
        • 014-自然语言处理组件
        • 010-NLP算法
        • 016-统计分析组件
        • 006-回归算法
        • 007-异常检测算法
        • 013-模型评估组件
        • 005-分类算法
        • 018-时间序列组件
      • 画布操作说明
        • 005-AutoML(自动调参)
        • 002-开始训练
        • 001-概述
    • 预置模型调参建模
      • 预置模型调参简介
      • 神经网络训练搜索
      • 开发视觉模型
        • 视觉任务简介
        • 查看训练结果
        • 创建视觉任务
        • 配置视觉任务
        • 开发参考
          • 视觉预训练模型
          • 超参数配置参考
          • 评估报告参考
          • 自动超参搜索配置参考
          • 数据增强算子参考
          • 训练时长设置参考
          • 网络选型参考
      • 开发表格预测模型
        • 创建表格预测任务
        • 配置专家模式表格数据预测任务
        • 查看训练结果
        • 配置AUTOML模式表格数据预测任务
        • 表格预测任务简介
      • 开发文字识别模型
        • 文字识别任务简介
        • 文字识别任务操作流程
      • 开发自然语言处理模型
        • 查看训练结果
        • 自然语言处理任务简介
        • 配置NLP任务
        • 创建NLP任务
        • 代码模板升级及迁移说明
所有文档
menu
没有找到结果,请重新输入

全功能AI开发平台 BML

  • 版本发布记录
  • 快速开始
    • 用BML实现表格预测
    • 用BML实现序列标注
    • 用BML实现文本实体抽取
    • 用BML实现图片分类
    • 用BML实现实例分割
    • 用BML评价短文本相似度
    • 用BML实现开源大模型的预训练(Post-pretrain)
    • 用BML实现文本分类
    • 用BML实现物体检测
  • 模型仓库
    • 从训练任务导入模型
    • 查看模型
    • 创建模型
    • 模型仓库简介
    • 从本地导入模型
    • 校验模型
    • 服务代码文件示例
      • Sklearn服务代码文件示例
      • XGBoost服务代码文件示例
  • 平台管理
    • 权限管理
    • 在BML平台使用并行文件系统PFS和对象存储BOS
    • 在BML平台使用容器镜像服务CCR
    • 在BML使用外部镜像
    • 项目空间管理
    • 镜像管理
      • 镜像使用
      • 镜像管理简介
      • 常见问题
      • 自定义镜像
    • 资源管理
      • 资源池管理简介
      • 资源池使用简介
  • 预测部署
    • 批量预测(用户资源池)API
    • 文字识别模型部署
      • 文字识别任务API参考文档
      • 文字识别任务公有云部署
    • 通用模型部署
      • 标准接口规范参考
      • Paddle框架API调用文档
      • sklearn框架API调用文档
      • 公有云部署
      • XGBoost框架API调用文档
      • tensorflow框架API调用文档
      • Pytorch框架API调用文档
      • 通用类模型API参考
      • 错误码
    • 语音技术模型部署
      • 声音分类API调用文档
    • 视觉模型部署
      • 智能边缘控制台-多节点版
      • 端云协同服务部署
      • 智能边缘控制台-单节点版
      • 视觉任务模型部署整体说明
      • 软硬一体方案部署
        • 视觉任务Jetson专用SDK集成文档
        • 如何获取视觉任务软硬一体产品
        • 视觉任务EdgeBoard(VMX)专用SDK集成文档
        • 视觉任务EdgeBoard(FZ)专用SDK集成文档
        • 视觉任务专用辨影SDK集成开发文档
      • 私有服务器部署
        • 视觉模型如何部署在私有服务器
        • 私有API
          • 如何发布私有API
          • 图像分类-单图单标签私有API集成文档
          • 图像分类-单图多标签私有API集成文档
          • 物体检测私有API集成文档
        • 服务器端SDK
          • 视觉任务服务器端LinuxSDK集成文档-Python
          • 视觉任务服务器端LinuxSDK集成文档-C++
          • 如何发布服务器端SDK
          • 视觉任务服务器端WindowsSDK集成文档
          • 视觉任务服务器端SDK简介
      • 设备端SDK部署
        • 视觉任务WindowsSDK集成文档
        • 视觉任务iOSSDK集成文档
        • 视觉任务LinuxSDK集成文档-Python
        • 视觉任务LinuxSDK集成文档-C++
        • 视觉任务设备端SDK使用说明
        • 如何发布视觉任务设备端SDK
        • 视觉任务AndroidSDK集成文档
      • 公有云部署
        • 文字识别API参考文档
        • 视觉任务公有云部署
        • 物体检测API参考文档
        • 图像分类-单图单标签API参考文档
        • 实例分割API参考文档
        • 图像分类-单图多标签API参考文档
    • 表格预测模型部署
      • 整体说明
      • 公有云部署
    • 公有云部署管理
      • 配置AB测试版本
      • 批量预测服务
      • 公有云部署
      • 公有云部署简介
      • 配置休眠策略
    • NLP模型部署
      • 自然语言处理任务模型部署整体说明
      • 私有服务器部署
        • 如何部署在私有服务器
        • 私有服务API说明
          • 私有部署说明-短文本相似度
          • 私有化部署接口说明-文本分类
          • 私有部署文档-序列标注
          • 文本实体抽取API调用文档
      • 公有云部署
        • 短文本匹配API调用文档
        • 文本实体抽取私有API调用说明
        • 如何发布自然语言处理任务API
        • 文本分类-多标签API调用文档
        • 文本分类API调用文档
        • 序列标注API调用文档
  • 数据服务
    • 数据服务简介
    • 智能数据API
    • 公有云服务调用数据反馈
    • 智能标注
      • 文本智能标注介绍及原理说明
      • 图像智能标注介绍说明
    • 管理视觉数据
      • 实例分割数据导入与标注
        • 数据标注说明
        • 导入未标注数据
        • 导入已标注数据
      • 物体检测数据导入与标注
        • 物体检测数据标注说明
        • 物体检测导入未标注数据
        • 物体检测导入已标注数据
      • 图像分类数据导入与标注
        • 图像分类导入未标注数据
        • 图像分类导入已标注数据
        • 图像分类数据标注说明
    • 管理文本数据
      • 文本分类数据导入与标注
        • 文本分类数据标注说明
        • 文本分类数据导入与标注
        • 数据去重策略
      • 序列标注数据导入与标注
        • 序列标注标注说明
        • 序列标注数据导入
        • 数据去重策略
      • 文本实体抽取数据标注
        • 文本实体抽取数据标注
        • 文本实体抽取数据导入
        • 数据去重策略
      • 短文本匹配数据导入与标注
        • 短文本匹配数据导入与标注
        • 数据去重策略说明
        • 短文本匹配数据标注
  • 产品简介
    • BML平台升级公告
    • 平台重点升级介绍
    • 产品优势
    • 产品功能
    • 什么是BML
    • 文心大模型
  • 产品定价
    • 服务器部署价格说明
    • 专项适配硬件部署价格说明
    • 公有云部署计费说明
    • 批量预测计费说明
    • 模型训练计费说明
    • 通用小型设备部署价格说明
  • 模型训练
    • Notebook建模
      • 创建并启动Notebook
      • Notebook导入数据集
      • 保存Notebook中的模型
      • Notebook使用参考
      • 常见问题
      • 数据模型可视化功能说明
      • Notebook简介
      • 发布模型
      • 配置模型
      • 使用Notebook开发模型
      • 如何使用Notebook SSH 功能
      • Notebook从训练到部署快速入门
        • Codelab Notebook自定义环境部署最佳实践
        • 基于Notebook的图像分类模板使用指南
        • 基于 Notebook 的 NLP 通用模板使用指南
        • Notebook 模板使用指南概述
        • 基于 Notebook 的通用模板使用指南
        • 基于 Notebook 的物体检测模板使用指南
    • 自定义作业建模
      • 自定义作业简介
      • 训练作业API
      • 训练作业
        • 使用训练作业训练模型
        • 创建训练作业
        • 发布模型
        • 训练作业代码示例
          • TensorFlow 1.13.2
          • AIAK- Training Pytorch版
          • TensorFlow 2.3.0
          • Blackhole 1.0.0
          • Pytorch 1.7.1
          • Sklearn 0.23.2
          • XGBoost 1.3.1
          • PaddlePaddle 2.0.0rc
      • 自动搜索作业
        • 创建自动搜索作业
        • yaml文件编写规范
        • 自动搜索作业简介
        • 自动搜索作业代码编写规范
        • 自动搜索作业代码示例
          • XGBoost 1.3.1代码规范
          • TensorFlow 1.13.2代码规范
          • Sklearn 0.23.2代码规范
          • Pytorch 1.7.1代码规范
          • Tensorflow2.3.0代码规范
          • PaddlePaddle 2.1.1代码规范
    • 可视化建模
      • 快速入门
      • 概述
      • 组件菜单
        • 001-基本操作
        • 003-查看模型特征溯源
        • 007-组件状态
        • 008-组件资源配置
        • 006-组件列选择
        • 002-查看模型可解释性
        • 004-查看特征重要性
      • 组件说明
        • 015-图算法
        • 004-特征工程组件
        • 003-数据处理组件
        • 012-预测组件
        • 008-聚类算法
        • 009-Python算法组件
        • 002-数据集组件
        • 014-自然语言处理组件
        • 010-NLP算法
        • 016-统计分析组件
        • 006-回归算法
        • 007-异常检测算法
        • 013-模型评估组件
        • 005-分类算法
        • 018-时间序列组件
      • 画布操作说明
        • 005-AutoML(自动调参)
        • 002-开始训练
        • 001-概述
    • 预置模型调参建模
      • 预置模型调参简介
      • 神经网络训练搜索
      • 开发视觉模型
        • 视觉任务简介
        • 查看训练结果
        • 创建视觉任务
        • 配置视觉任务
        • 开发参考
          • 视觉预训练模型
          • 超参数配置参考
          • 评估报告参考
          • 自动超参搜索配置参考
          • 数据增强算子参考
          • 训练时长设置参考
          • 网络选型参考
      • 开发表格预测模型
        • 创建表格预测任务
        • 配置专家模式表格数据预测任务
        • 查看训练结果
        • 配置AUTOML模式表格数据预测任务
        • 表格预测任务简介
      • 开发文字识别模型
        • 文字识别任务简介
        • 文字识别任务操作流程
      • 开发自然语言处理模型
        • 查看训练结果
        • 自然语言处理任务简介
        • 配置NLP任务
        • 创建NLP任务
        • 代码模板升级及迁移说明
  • 文档中心
  • arrow
  • 全功能AI开发平台BML
  • arrow
  • 预测部署
  • arrow
  • 视觉模型部署
  • arrow
  • 设备端SDK部署
  • arrow
  • 视觉任务iOSSDK集成文档
本页目录
  • 简介
  • 系统支持
  • 离线SDK包说明
  • SDK大小说明
  • 获取序列号
  • Release Notes
  • 快速开始
  • 文件结构说明
  • 测试Demo
  • SDK使用说明
  • 集成指南
  • 依赖库集成
  • 使用流程
  • 1. 生成模型,下载SDK
  • 2. 使用序列号激活
  • 3. 初始化模型
  • 4. 调用检测接口
  • 错误说明
  • FAQ
  • 1. 如何多线程并发预测?
  • 2. 编译时出现 Undefined symbols for architecture arm64: ...
  • 3. 运行时报错 Image not found: xxx ...
  • 4.编译时报错:Invalid bitcode version

视觉任务iOSSDK集成文档

更新时间:2025-08-21

简介

本文档描述 EasyEdge/EasyDL iOS 离线预测SDK相关功能;

目前支持EasyEdge的功能包括:

  • 图像分类
  • 物体检测
  • 人脸检测
  • 姿态估计
  • 百度OCR模型

目前支持EasyDL的功能包括:

  • 图像分类
  • 物体检测
  • 图像分割

系统支持

系统:

  • 通用arm版本:iOS 9.0 以上
  • A仿生芯片版:iOS 13.0 及以上

硬件:arm64 (Starndard architectures) (暂不支持模拟器)

内存:图像分割模型需要手机内存3GB以上,并尽量减少其他程序内存占用

离线SDK包说明

根据用户的选择,下载的离线SDK,可能包括以下类型:

  • EasyEdge

    • 通用ARM版:支持iPhone5s, iOS 9.0 以上所有手机。
    • A仿生芯片版:支持iPhone5s, iOS 11.0 以上手机。充分利用苹果A系列仿生芯片优势,在iPhone 8以上机型中能有显著的速度提升。
  • EasyDL 通用版/全功能AI开发平台BML(原EasyDL专业版)

    • 通用ARM版:支持iPhone5s, iOS 9.0 以上所有手机。
    • A仿生芯片版:支持iPhone5s, iOS 11.0 以上手机。充分利用苹果A系列仿生芯片优势,在iPhone 8以上机型中能有显著的速度提升。
    • 自适应芯片版:同时整合了以上两种版本,自动在iOS 11以下中使用通用ARM版,在iOS 11以上系统中使用A仿生芯片版,自适应系统,但SDK体积相对较大。
  • AI市场试用版SDK

SDK大小说明

SDK库的二进制与_TEXT增量约3M。

资源文件大小根据模型不同可能有所差异。

物体检测(高性能)的DemoApp在iPhone 6, iOS 11.4下占用空间实测小于40M。

虽然SDK库文件很大(体现为SDK包文件很大,ipa文件很大),但最终应用在用户设备中所占用的大小会缩小很多。 这与multi architechtures、bitcode和AppStore的优化有关。

获取序列号

生成SDK后,点击获取序列号进入控制台获取。EasyEdge控制台、EasyDL控制台、BML控制台。

试用版SDK在SDK的RES文件夹中的SN.txt中包含试用序列号。

更换序列号、更换设备时,首次使用需要联网激活。激活成功之后,有效期内可离线使用。

Release Notes

时间 版本 说明
2022.09.15 0.7.7 支持更多检测模型;迭代优化
2022.07.28 0.7.6 迭代优化
2022.06.29 0.7.5 支持EasyEdge语义分割模型;CoreML引擎升级,新增EasyEdge检测模型支持;迭代优化
2022.05.18 0.7.4 ARM引擎升级;支持EasyDL物体检测超高精度模型;支持更多加速版模型发布;迭代优化
2022.03.25 0.7.3 ARM引擎升级;支持更多检测模型
2021.12.22 0.7.2 支持EasyEdge更多姿态估计模型;迭代优化
2021.10.20 0.7.1 ARM引擎升级
2021.07.29 0.7.0 迭代优化
2021.04.06 0.6.1 ARM引擎升级
2021.03.09 0.6.0 支持EasyEdge人脸检测及姿态估计模型
2020.12.18 0.5.7 ARM引擎升级
2020.09.17 0.5.6 CoreML引擎升级,支持AI市场试用版SDK
2020.08.11 0.5.5 CoreML支持EasyDL专业版模型,支持EasyEdge OCR模型
2020.06.23 0.5.4 ARM引擎升级
2020.04.16 0.5.3 ARM引擎升级;支持压缩加速版模型
2020.03.13 0.5.2 ARM引擎升级;支持图像分割模型
2020.01.16 0.5.1 ARM引擎升级;增加推荐阈值支持
2019.12.04 0.5.0 ARM引擎升级;增加coreml3的支持
2019.10.24 0.4.5 支持EasyDL专业版;ARM引擎升级
2019.08.30 0.4.4 支持EasyDL经典版图像分类高性能、高精度
2019.06.20 0.4.3 引擎优化
2019.04.12 0.4.1 支持EasyDL经典版物体检测高精度、高性能模型
2019.03.29 0.4.0 引擎优化,支持CoreML;
2019.02.28 0.3.0 引擎优化,性能与效果提升;
2018.11.30 0.2.0 第一版!

快速开始

文件结构说明

Plain Text
1.EasyEdge-iOS-SDK
2├── EasyDLDemo	# Demo工程文件
3├── LIB			# 依赖库
4├── RES
5│   ├── easyedge	# 模型资源文件夹
6│   │   ├── model
7│   │   ├── params
8│   │   ├── label_list.txt
9│   │   ├── infer_cfg.json
10│   │   ├── conf.json
11└── DOC			# 文档

测试Demo

按如下步骤可直接运行 SDK 体验 Demo:
步骤一:用 Xcode 打开 EasyDLDemo/EasyDLDemo.xcodeproj
步骤二:配置开发者自己的签名
步骤三:连接手机运行,不支持模拟器

检测模型运行示例:

image.png

SDK使用说明

集成指南

步骤一:依赖库集成 步骤二:import <EasyDL/EasyDL.h>,import <Vision/Vision.h>

依赖库集成

  1. 复制 LIB 目录至项目合适的位置
  2. 配置 Build Settings 中 Search paths: 以 SDK 中 LIB 目录路径为例
  • Framework Search Paths:${PROJECT_DIR}/../LIB/lib
  • Header Search Paths:${PROJECT_DIR}/../LIB/include
  • Library Search Paths:${PROJECT_DIR}/../LIB/lib

集成过程如出现错误,请参考 Demo 工程对依赖库的引用

使用流程

1. 生成模型,下载SDK

开发者在官网下载的SDK已经自动为开发者配置了模型文件和相关配置,开发者直接运行即可。

2. 使用序列号激活

将前面申请的序列号填入:

Plain Text
1[EasyDL setSerialNumber:@"!!!Enter Your Serial Number Here!!!"];

根据序列号类型,序列号与BundleID绑定或与BundleID+设备绑定。 请确保设备时间正确。

3. 初始化模型

Plain Text
1EasyDLModel *_model = [[EasyDLModel alloc] initModelFromResourceDirectory:@"easyedge" withError:&err];

请注意相关资源必须以folder reference方式加入Xcode工程。也即默认的easyedge文件夹在Xcode文件列表里显示为蓝色。

4. 调用检测接口

Plain Text
1UIImage *img = .....;
2NSArray *result = [model detectUIImage:img withFilterScore:0 andError:&err];
3
4/**
5 * 检测图像
6 * @param image 带检测图像
7 * @param score 只返回得分高于score的结果(0 ~ 1)
8 * @return 成功返回识别结果,NSArray的元素为对应模型的结果类型;失败返回nil,并在err中说明错误原因
9 */
10- (NSArray *)detectUIImage:(UIImage *)image
11           withFilterScore:(CGFloat)score
12                  andError:(NSError **)err;

返回的数组类型如下,具体可参考 EasyDLResultData.h 中的定义: | 模型类型 | 类型 | | --- | ---- | | 图像-图像分类 | EasyDLClassfiData | | 图像-物体检测/人脸检测 | EasyDLObjectDetectionData | | 图像-实例分割/语义分割 | EasyDLObjSegmentationData | | 图像-姿态估计 | EasyDLPoseData | | 图像-文字识别 | EasyDLOcrData |

错误说明

SDK的方法会返回NSError错,直接返回的NSError的错误码定义在EEasyDLErrorCode中。NSError附带message(有时候会附带NSUnderlyingError),开发者可根据code和message进行错误判断和处理。

FAQ

1. 如何多线程并发预测?

SDK内部已经能充分利用多核的计算能力。不建议使用并发来预测。

如果开发者想并发使用,请务必注意EasyDLModel所有的方法都不是线程安全的。请初始化多个实例进行并发使用,如

C
1- (void)testMultiThread {
2    UIImage *img = [UIImage imageNamed:@"1.jpeg"];
3    NSError *err;
4    EasyDLModel * model1 = [[EasyDLModel alloc] initModelFromResourceDirectory:@"easyedge" withError:&err];
5    EasyDLModel * model2 = [[EasyDLModel alloc] initModelFromResourceDirectory:@"easyedge" withError:&err];
6
7    dispatch_queue_t queue1 = dispatch_queue_create("testQueue", DISPATCH_QUEUE_CONCURRENT);
8    dispatch_queue_t queue2 = dispatch_queue_create("testQueue2", DISPATCH_QUEUE_CONCURRENT);
9
10    dispatch_async(queue1, ^{
11        NSError *detectErr;
12        for(int i = 0; i < 1000; ++i) {
13            NSArray * res = [model1 detectUIImage:img withFilterScore:0 andError:&detectErr];
14            NSLog(@"1: %@", res[0]);
15        }
16    });
17
18    dispatch_async(queue2, ^{
19        NSError *detectErr;
20        for(int i = 0; i < 1000; ++i) {
21            NSArray * res = [model2 detectUIImage:img withFilterScore:0 andError:&detectErr];
22            NSLog(@"2: %@", res[0]);
23        }
24    });
25}

2. 编译时出现 Undefined symbols for architecture arm64: ...

  • 出现 cxx11, vtable 字样:请引入 libc++.tbd
  • 出现 cv::Mat 字样:请引入 opencv2.framework
  • 出现 CoreML, VNRequest 字样:请引入CoreML.framework 并务必#import <CoreML/CoreML.h>

3. 运行时报错 Image not found: xxx ...

请Embed具体报错的库。

4.编译时报错:Invalid bitcode version

这个可能是开发者使用的xcode低于12导致,可以升级至12版本。

上一篇
视觉任务WindowsSDK集成文档
下一篇
视觉任务LinuxSDK集成文档-Python