iOS DevelopmentiOS Developer

iOS11--ML机器学习VGG16图像分类模型的简单使用

2017-06-15  本文已影响152人  改变自己_now

最近有时间玩下苹果新出的CoreML框架,这个框架的作用是可以将训练好的模型用在app中,只要简单的几行代码就能集成,非常的简单和方便。
1、首先去官网下载xcode9beta版本记得系统版本需要10.12.5及以上不然安装不了xcode9。
2、然后就是去ML官网下载VGG16图像分类模型。
3、新建一个工程,将下载好的模型文件导入工程中。
4、简单应用
4.1、VGG16模型的初始化

VGG16 *model = [[VGG16 alloc] init];```

4.2、VGG16Input的初始化(用来输入需要分类的图片)

UIImage *scaledImage = [image scaleToSize:CGSizeMake(224, 224)];
CVPixelBufferRef buffer = [image pixelBufferFromCGImage:scaledImage];
VGG16Input *input = [[VGG16Input alloc] initWithImage:buffer];


4.3、使用VGG16模型来判断输入图片的类型

VGG16Output *output = [model predictionFromFeatures:input error:&error];

NSLog(@"----output ====%@",output.classLabelProbs);

我拿了几张图片进行测试,发现准确率还是蛮高的,不过用了识别人物貌似不太行,优先会被识别图片中物体。这样就能集成到应用了去了,是不是特别的简单。注意上面有两个方法是UIImage添加分类方法


**5、另外还可以使用其他训练好的模型,可以通过苹果的的转化工具转为改框架支持的格式**
**6蛋筒的事情是如果模型文件太大了,打包的app也会很大,模型文件500多m,打包后也有500m.
上一篇 下一篇

猜你喜欢

热点阅读