按关键字搜索 iOS 照片?

sga*_*a62 10 search photo ios photokit react-native

Apple 的照片应用程序允许用户使用“冲浪”、“食物”、“天空”等搜索关键字来查询照片。

具有相机和照片权限的第三方 iOS 应用程序如何使用任意字符串搜索手机的相机胶卷?

搜索照片是 SiriKit API 的一部分。我们可以通过字符串作为一种可能的方法还是有更好的方法?

在此处输入图片说明

Fal*_*ler 3

即使经过更长时间的研究,我也找不到方法。但好消息是,您可以使用用于在照片应用程序中获得结果的完全相同的神经网络来构建您自己的搜索索引。这是一些示例代码:

let fetchOptions = PHFetchOptions()           
let fetchResult = PHAsset.fetchAssets(with: fetchOptions)
fetchResult.enumerateObjects { asset, index, pointer in
    self.assetManager.requestImage(for: asset,
                                   targetSize: CGSize(width: 150, height: 100), 
                                   contentMode: .aspectFit, 
                                   options: .none) { image, metadata in
            if let uiImage = image, let cgImage = uiImage.cgImage {
                let requestHandler = VNImageRequestHandler(cgImage: cgImage)
                let request = VNClassifyImageRequest()
                try? requestHandler.perform([request])
                let results = request.results as! [VNClassificationObservation]
                // Filter the 1303 classification results, and use them in your app
                // in my case, fullfill promise with a wrapper object
                promise(.success(ClassifiedImage(imageIdentifier: asset.localIdentifier,
                                classifications: results.filter { $0.hasMinimumPrecision(0.9, forRecall: 0.0) }.map{
                                    ($0.identifier, nil)
                                    })))
            }

        }
}
Run Code Online (Sandbox Code Playgroud)

更多信息:https://developer.apple.com/videos/play/wwdc2019/222

另请注意:构建搜索索引时,您可以在获取资源时使用localIdentifierof 类。PHAsset