iOS OC人脸动态贴图功能实现

iOS 开发里的 OC 人脸贴图功能,算是个蛮有趣的实践项目。结合OpenCVAVFoundation,可以实时把贴纸叠在脸上,像抖音、Snapchat 那样的玩法。如果你搞娱乐或社交类 App,这一套还挺实用的。

OpenCV 2.4.9人脸识别,还支持用CascadeClassifier找脸、goodFeaturesToTrack追特征点,配合摄像头视频流用起来,识别速度还不错。摄像头部分用的是AVFoundation,通过AVCaptureSession取每一帧,再转成cv::Mat

贴图的可以靠Core GraphicsCore Image做缩放、旋转、定位,基本能保证贴得准。不光静态图,想搞动态或根据表情变化的图,也可以扩展点表情识别算法,甚至拉上Core ML或者TensorFlow玩玩训练模型。

性能上要注意点,贴图是每帧都在跑,建议开个子线程,不然 UI 卡得慌。还有一点,视频帧和图像数据转换这里挺关键,搞不清格式的容易踩坑。

,这项目适合想搞点互动效果的 iOS 开发者练手,涉及的东西不少,从OpenCV图像到iOS 底层图形都用得上。如果你对人脸识别感兴趣,这个项目可以试试。

想深入了解的话,可以看看这些相关文章:

zip 文件大小:26.92MB