我使用 VNImageRequestHandler 和 VNDetectRectanglesRequest 来处理在图像中查找矩形的请求。但是由于iOS11中的Vision只提供了条码、矩形、人脸查找功能,但是我想在图片中查找汽车,要在图片中查找指定对象需要改什么代码呢?
1 回答
如果您正在寻找 Apple 创建一个名为VNDetectCarRequest
您的 API,您可能应该提交一个功能请求。(如果发生这种情况,我敢肯定“苹果正在制造汽车!”谣言工厂将再次启动......)
对于通用图像识别,使用 Vision 的途径是使用VNCoreMLRequest
和提供针对您心目中的图像识别任务训练的机器学习模型。
在本机编程方面,所有图像识别/分类任务都是相同的——您可以从重用 Apple 的Classifying Images with Vision 和 Core ML示例代码开始,它设置VNCoreMLRequest
和处理VNClassificationObservation
它产生的结果。将一般的“这是什么”分类器更改为“热狗或不是热狗”分类器或“这是什么类型的车辆(如果有的话)”分类器的特殊调味料都在模型中。
可能有一个机器学习模型已经完成了你正在寻找的任务——如果你找到了,你可以使用Apple 提供的脚本将它包装在一个 Core ML 模型文件中。
否则,您将需要查看其中一种通用图像分类器模型(同样,在developer.apple.com上已经方便地收集了几个模型)并致力于将其专门/重新训练以适应您更具体的任务。你的那部分工作在 Apple 的 API 生态系统之外,有很多可能的选择。网络搜索“train caffe image model”或“train keras image model”或类似的搜索应该会有所帮助。
训练模型后,使用Core ML 工具将其导入 Core ML 以与 Vision 一起使用。