创建应用

创建iOS物体识别应用

1. 登录 习悦开发者平台,进入 控制台 页面,点击“创建应用”按钮,如图:

2. 填写应用相关信息,勾选iOS应用平台,提交应用,如图:

3. 在我的应用模块可以查看已创建的应用及应用信息,如图:

iOS 开发

示例Demo

开始开发

1. 下载物体识别iOS SDK
2. 在finder中,将ZHTJObjectSDK目录拖入工程目录下;
3. ZHTJObjectServiceAPI类中设置服务环境,isDebug为0是生产环境,为1是测试环境,默认为0;
4. 在您的应用程序入口处启动核心服务,代码如下:

#import "ZHTJBaseServiceAPI.h"
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [[ZHTJBaseService shared] setApiKey:@”Your APIKey” apiSecret:@”Your APISecret”];
    ...
}

5. 核心服务启动成功后即可进行物体识别,以下是物体识别示例代码:

#import “ZHTJObjectServiceAPI.h”
- (void)viewDidLoad {
    [super viewDidLoad];
    [[ZHTJObjectService alloc] objectRecognitionWithImg:img classes:nil returnTopNum:3 threshold:0.5
                completionHandler:^(NSArray *objectRecognitionMDAry, ZHTJObjectError *error)
     {
         if (error.code) {
             NSLog(@"error.msg==%@",error.msg);
         }else{
             for (ZHTJObjectRecognitionModel *  objectRecognitionModel in objectRecognitionMDAry) {
                 NSLog(@"物体:%@;相似度%f",objectRecognitionModel.obj_Alias,objectRecognitionModel.obj_Pro);
             }
         }
     }];
}

6. 物体检测成功得到ZHTJObjectRecognitionModel数据模型数组,详解请看物体识别iOS Demo,根据返回结果绘制物体框如下图:

注意

由于iOS10加强的对权限的授权认证管理,iOS10及iOS10以上版本需要在TARGETS -> Capabilities 中打开KeychainSharing 选项,如图:

物体识别

接口名称

objectRecognitionWithImg: classes: returnTopNum: threshold:

描述

上传一张图片,检测图片中的物体位置、名称、相似度等;

参数

参数名 参数类型 参数说明
必须 img UIImage 待检测图片,不可为空
可选 classes NSArray<NSString*>* 特定识别的物体种类,详细种类列表通过getAllObjectRecognitionClass方法获取;默认为nil;
类型参考
topNum NSUInteger 当一张图片上识别出多个物体时,topNum用来选择返回的识别结果数量;默认为1;
threshold CGFloat 置信阀门,取值在(0,1);只返回相似度大于等于threshold的识别结果;默认为0.5;

返回值说明

类名 字段 类型 说明
objectRecognitionMDAry NSArray<ZHTJObjectRecognitionModel *> obj_Cate英文名,obj_Alias中文名,obj_Pro物体相似度,obj_Width物体宽,obj_Height物体高,obj_CenterPoint物体中心点,obj_Rect物体位置
ZHTJObjectError code NSInteger 错误码
msg NSString 错误详情

注:
block回调中的参数详情请在 物体识别 iOS Demo中查看;
ZHTJObjectRecognitionModel中的关于物体位置大小的参数均是相对于原图的比例

调用示例

[ZHTJObjectManager objectRecognitionWithImg:self.mainImgV.image classes:nil returnTopNum:3 threshold:0.5
                completionHandler:^(NSArray *objectRecognitionMDAry, ZHTJObjectError *error)
{
    ...
}];

返回状态码

状态码 描述
0 SUCCESS 成功
1201 MISSING_ARGUMENTS 缺少必要参数
1800 HTTP_ERROR HTTP链接错误
1900 ERROR 服务错误
1904 NO_CONTENT 未检测到内容
1954 NOT_AUTH 未授权
1955 NOT_UNPACK 图片无法解压

classes参数

参数名 说明
person 人类
bicycle 自行车
car 轿车
motorcycle 摩托车
airplane 飞机
bus 巴士
train 火车
truck 卡车
boat
traffic light 红绿灯
fire hydrant 消防栓
stop sign 停车标志
parking meter 停车计时器
bench 长凳
bird
cat
dog
horse
sheep
cow 奶牛
elephant 大象
bear
zebra 斑马
giraffe 长颈鹿
backpack 背包
umbrella 雨伞
handbag 手提包
tie 领带
suitcase 手提箱
frisbee 飞盘
skis 雪橇
snowboard 滑雪板
sports ball 运动球
kite 风筝
baseball bat 棒球棒
baseball glove 棒球手套
skateboard 滑板
surfboard 冲浪板
tennis racketv 网球拍
bottle 瓶子
wine glass 酒杯
cup 杯子
fork 餐叉
knife 餐刀
spoon 汤匙
bowl
banana 香蕉
apple 苹果
sandwich 三文治
orange 橙子
broccoli 花椰菜
carrot 胡萝卜
hot dog 热狗
pizza 披萨
donut 甜甜圈
cake 蛋糕
chair 椅子
couch 沙发
potted plant 盆栽
bed
dining table 餐桌
toilet 马桶
display 显示器
laptop 笔记本电脑
mouse 鼠标
remote 遥控器
keyboard 键盘
cell phone 手机
microwave 微波炉
oven 烤箱
toaster 烤面包机
sink 水槽
refrigerator 冰箱
book 书籍
clock 时钟
vase 花瓶
scissors 剪刀
teddy bear 泰迪熊
hair drier 电吹风
toothbrush 牙刷
Q群
咨询