You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Swift+Core ML/Turi Create的APP实现图片描述功能可行性咨询

当然可以实现!

结合你当前使用的Swift、Core ML和Turi Create技术栈,完全能给拍摄的图片添加自定义描述功能,甚至还能借助ARKit增强场景相关的描述细节。下面分两部分详细说明:

一、用Core ML实现核心图片描述功能

你当前的APP应该是基于二分类Core ML模型(输出「是/否」),要实现图片描述,需要切换到图像Captioning(图像转文本)模型——这类模型能将输入图片转换为自然语言描述,完全可以通过Core ML集成到你的APP中:

  • 用Turi Create训练自定义模型:你需要准备带标注的数据集(每张图片对应1-多条描述文本),然后使用Turi Create的image_captioning工具链训练模型,训练完成后导出为Core ML格式,就能直接在Swift项目中调用。
  • 直接使用预训练模型快速落地:如果不想从头训练,也可以选用现成的开源图像Captioning预训练模型(比如基于MobileNet+LSTM架构的模型),导入Core ML后,几行代码就能实现图片转描述的功能。举个简单的Swift代码示例:
import CoreML
import UIKit

// 假设你的Core ML图像描述模型名为ImageCaptionModel
func generateCaption(for image: UIImage) -> String? {
    guard let pixelBuffer = image.convertToCVPixelBuffer() else { return nil }
    do {
        let model = try ImageCaptionModel(configuration: MLModelConfiguration())
        let prediction = try model.prediction(image: pixelBuffer)
        return prediction.caption
    } catch {
        print("生成描述出错:\(error.localizedDescription)")
        return nil
    }
}

// 调用示例:拍摄完成后传入UIImage
if let caption = generateCaption(for: capturedImage) {
    // 将描述显示在APP界面(比如UILabel)
    captionLabel.text = caption
}

(注:convertToCVPixelBuffer()是需要你自行实现的UIImage扩展,用于将图片转换为Core ML模型要求的CVPixelBuffer格式)

二、用ARKit增强描述的场景上下文

ARKit本身不直接生成图片描述,但它可以为描述补充场景上下文信息,让结果更精准:

  • 借助ARKit的物体检测功能,识别你预先扫描过的特定物体(比如杯子、书本),结合Core ML的基础描述,生成更具体的内容(比如「桌面上的蓝色陶瓷杯子」);
  • 利用ARKit的平面检测能力,识别拍摄场景中的平面(桌面、墙面),给描述补充位置信息。

举个简单思路:当ARKit检测到画面中有水平平面,同时Core ML生成「红色苹果」的描述,你可以将结果组合为「放在桌面上的红色苹果」。

总结

如果只是给图片生成通用描述,Core ML(搭配Turi Create训练自定义模型或直接用预训练模型)就完全足够;如果需要结合真实场景的上下文让描述更精准,再引入ARKit辅助即可。

内容的提问来源于stack exchange,提问作者MeiTheF1x3r

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:57:58