面部过滤器实现如 MSQRD/SnapChat [关闭]

2024-06-12

我想将实时面部过滤器开发为 MSQRD/Snapchat 实时过滤器,但无法找出应该如何继续使用增强现实框架并检测面部或使用核心图像来检测面部并进行相应处理。如果有人知道如何实施相同的想法,请告诉我?


我建议去Core Image and CI探测器 https://developer.apple.com/library/ios/documentation/CoreImage/Reference/CIDetector_Ref/index.html#//apple_ref/occ/cl/CIDetector. https://developer.apple.com/library/ios/documentation/GraphicsImaging/Conceptual/CoreImaging/ci_detect_faces/ci_detect_faces.html https://developer.apple.com/library/ios/documentation/GraphicsImaging/Conceptual/CoreImaging/ci_detect_faces/ci_detect_faces.html它自 iOS 5 起就可用,并且有很棒的文档。

创建人脸检测器示例:

CIContext *context = [CIContext contextWithOptions:nil];                    // 1
NSDictionary *opts = @{ CIDetectorAccuracy : CIDetectorAccuracyHigh };      // 2
CIDetector *detector = [CIDetector detectorOfType:CIDetectorTypeFace
                                          context:context
                                          options:opts];                    // 3

opts = @{ CIDetectorImageOrientation :
          [[myImage properties] valueForKey:kCGImagePropertyOrientation] }; // 4
NSArray *features = [detector featuresInImage:myImage options:opts];        // 5

代码的作用如下:

1.- 创建上下文;在此示例中,是 iOS 的上下文。您可以使用处理图像中描述的任何上下文创建函数。)您还可以选择在创建检测器时提供 nil 而不是上下文。)

2.- 创建选项字典来指定检测器的精度。您可以指定低或高精度。低精度(CIDetectorAccuracyLow)速度快;本例中显示的高精度是彻底的,但速度较慢。

3.- 创建面部检测器。您可以创建的唯一类型的检测器是针对人脸的检测器。

4.- 设置用于查找面孔的选项字典。让 Core Image 了解图像方向非常重要,这样检测器就知道在哪里可以找到直立的面部。大多数时候,您将从图像本身读取图像方向,然后将该值提供给选项字典。

5.- 使用检测器查找图像中的特征。您提供的图像必须是 CIImage 对象。 Core Image 返回 CIFeature 对象的数组,每个对象代表图像中的一张脸。

这里有一些开放的项目可以帮助您开始CoreImage或其他技术如GPUImage or OpenCV

1 https://github.com/aaronabentheuer/AAFaceDetection https://github.com/aaronabentheuer/AAFaceDetection(CIDetector - Swift)

2 https://github.com/BradLarson/GPUImage https://github.com/BradLarson/GPUImage(目标-C)

3 https://github.com/jeroentrappers/FaceDetectionPOC https://github.com/jeroentrappers/FaceDetectionPOC(Objective-C:它已弃用 iOS9 的代码)

4 https://github.com/kairosinc/Kairos-SDK-iOS https://github.com/kairosinc/Kairos-SDK-iOS(目标-C)

5 https://github.com/macmade/FaceDetect https://github.com/macmade/FaceDetect(OpenCV)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

面部过滤器实现如 MSQRD/SnapChat [关闭] 的相关文章

  • 即席分发失败

    我在一家大公司工作 正在开发一个适用于 iOS 5 的 iOS 应用程序 分发应用程序的唯一方式是通过临时部署 我拥有自己的服务器已经有一段时间了 由 o2switch 法国托管商 托管 当我开始开发时 我们使用它来部署应用程序以进行 Be
  • 处理核心数据中的重复条目

    我有一个允许用户保存收藏夹的应用程序 我正在使用 Core Data 将收藏夹存储为托管对象 我已经编写了一些代码来防止存储重复项的可能性 但我想知道是否有更好的方法来做到这一点 每个收藏夹对象都有一个唯一的 ID 字段 在下面的代码中 我
  • Xcode 本地化设置中没有加号或减号按钮

    我需要在两天内翻译 iOS 应用程序 但我的 XCode 版本 4 4 和 4 5 Developer Preview 都没有给我添加其他语言的选项 我只能选择单击 Make localized 但我只能选择英语 选择它后 Xcode 中的
  • 即时将图像添加到 AR 资源以进行图像识别

    ARKit1 5介绍图像识别 在代码中 您必须创建一组参考图像 如下所示 let referenceImages ARReferenceImage referenceImages inGroupNamed AR Resources bund
  • 将 Facebook 图片 URL 上传到 Firebase 存储

    我正在尝试将用户的 Facebook 个人资料图片上传到 Firebase 存储 let dictionary result as NSDictionary let data dictionary objectForKey data let
  • 在应用程序内启用或禁用 Iphone 推送通知

    我有一个 iPhone 应用程序 可以接收推送通知 目前 我可以通过转到 iPhone 设置 通知来禁用我的应用程序的推送通知 但我想在我的应用程序中添加一个开关或按钮来启用或禁用推送通知 这是可以做到的 因为我在 foursquare i
  • NSArray 查找一个或多个对象 - 最佳实践[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 解决方案 我已将 BlackRider 的答案标记为正确 因为它是最通用的 特别是对于复杂的比较 但是还有其他非常好的答案和评论 我鼓励任何有相
  • 使用 Swift 查询可用的 iOS 磁盘空间

    我正在尝试使用以下命令获取可用的 iOS 设备存储空间Swift 我发现了这个功能here https stackoverflow com a 25142432 633251 func deviceRemainingFreeSpaceInB
  • 如何构建 FFMPEG 并将其链接到 iOS?

    all 我知道 这里有很多关于 iOS 上的 FFMPEG 的问题 但没有一个答案适合我的情况 当我尝试在项目中链接 FFMPEG 时 每种情况都会发生一些奇怪的情况 所以请帮助我 我的任务是为 iOS 编写视频聊天应用程序 该应用程序使用
  • imageAvailableCallback 在基本 GPUImage2 相机设置中从未调用

    我已按照 GPUImage2 的 github 上的基本设置说明进行操作过滤直播视频 https github com BradLarson GPUImage2 filtering live video and 从视频中捕获图像 https
  • Swift 中可选的闭包属性

    如何在 Swift 中将可选闭包声明为属性 我正在使用这段代码 var respondToButton sender UIButton gt Bool 但编译器抱怨该属性未在初始化程序结束时初始化 我相信我可以通过将 var 声明为可选来解
  • iOS 5 中的方法 Swizzling?

    Apple 在 iOS 5 中阻止了 Method Swizzling 吗 我做了一些尝试 发现带有 Method Swizzling 的应用程序可以在 iOS 4 上运行 但不能在 iOS 5 上运行 注意 该应用程序适用于 iOS 5
  • 如何在 iOS 8 中强制视图控制器方向?

    在 iOS 8 之前 我们结合使用以下代码支持的接口方向 and 应该自动旋转委托方法强制应用程序定向到任何特定方向 我使用下面的代码片段以编程方式将应用程序旋转到所需的方向 首先 我正在更改状态栏方向 然后 只需呈现并立即关闭模态视图即可
  • 连接 Realm 和 SwiftBond 的最佳方式是什么

    I love Realm http realm io我爱Bond https github com SwiftBond Bond 两者都让应用程序创建成为一种乐趣 所以我想知道连接 Realm 和 Bond 的最佳方式是什么 在 Realm
  • 资源分叉、Finder 信息或类似的碎片不允许 Xcode 8 错误? [复制]

    这个问题在这里已经有答案了 我在 Xcode 8 中运行旧项目时收到错误 在 Xcode 7 中运行的同一项目完全流量较少 我还应用以下链接中提到的解决方案 macOS Sierra Xcode 8 中的代码签名错误 不允许资源分叉 Fin
  • AVCaptureSession VS UIImagePickerController 相机预览

    我正在开发一个类似于 Instagram iOS 应用程序的应用程序 Instagram 有一个自定义相机预览 我想开发类似的东西 问题是 为了这个目的更好地使用什么 UIImagePickerController 与自定义cameraOv
  • 如何使用 Mapkit 在 iPhone 中显示离线地图

    如何使用mapkit在iPhone中显示离线地图 如果我使用静态图像 那么我如何获取当前位置并在其上放置针 任何人有想法请提出一些解决方案 谢谢 试试这个帖子强制 MapKit 仅使用缓存的地图图块 以编程方式禁用网络 https stac
  • 我删除了 Xcode 中的本地化,然后无法添加任何本地化

    我错误地从项目信息中删除了项目的本地化信息 故事板和相关语言都被删除 我从以前的文件中取回了故事板 但是当我想添加新的本地化时 会弹出一个窗口并要求我 选择文件和参考语言来创建英语本地化 并且根本没有资源文件 如何添加回本地化内容 添加回本
  • RxRealm pod 更新后在 RxRealm.swift 中构建编译错误:类型“List”不符合协议“NotificationEmitter”

    这是文件 RxRealm swift 的顶部部分 文件中的其他地方都没有编译错误 也没有 观察 函数 RxRealm extensions Copyright c 2016 RxSwiftCommunity All rights reser
  • iOS 6.0 Quicklook QLPreviewController 错误:“无法找到已加载代理的预览项目”

    我的应用程序一直使用 QLPreviewController 来显示所有类型的文件 在 iOS 5 x 中 它似乎做得很好 现在 在 iOS 6 0 中 我收到一个错误 它显示了控制器 但带有恒定的加载指示器 并且从未实际加载任何内容 日志

随机推荐