我正在尝试将Vision与我训练过的自定义模型一起使用,但是我没有找到一种方法来获得Vision在框架中检测到它的边界框。
模型:我已经使用CreateML训练了模型,它可以检测2个特定项目。 我在CreateML中用各种图像测试了模型,它可以正确检测到这2个项目,并在它们周围放置一个框。因此,Vision也不能给我边框吗?
func prepare() {
do {
let vnModel = try VNCoreMLModel(for: modelFile.model)
let coreMlRequest = VNCoreMLRequest(model: vnModel,
completionHandler: { (request, error) in
guard
let results = request.results
as? [VNClassificationObservation] // is this the right cast?
else { return }
// how do I get the bounding box from the results?
})
vnRequests = [coreMlRequest]
}
catch {
print(error)
}
}
func run(arFrame: ARFrame) {
do {
let requestHandler = VNImageRequestHandler(cvPixelBuffer: arFrame.capturedImage,
options: [:])
try requestHandler.perform(self.vnRequests)
}
catch {
print(error)
}
}
答案 0 :(得分:1)
您真的训练了物体检测模型吗?还是分类模型?
您只会获得对象检测模型的边界框,而不会得到分类器的边界框。
假设您训练了一个物体检测器,则正确的类别是Song Document:
{
id: ID,
eventType: String,
numberOfLikes: Integer,
sections: String[]
}
,而不是eventType: {
songs: [{
songId: ID,
numberOfLikes: Integer,
sections: String[]
}]
}
。