在 Android 手机上合成图片也不麻烦,使用 OpenCV 图像无缝融合功能,通过少量的操作就可以将两副图像无缝的融合到一起,在要求不是很精确的场合,有着可以接受的合成效果。
你可能已经了解到一些电影特效大片的制作过程,拍摄时演员身旁是纯色屏障和一些道具,穿着奇怪的衣服对着空气拳打脚踢、施展魔法。而到了影片里,演员却出现在惊险的树林,或是跟凶恶的怪兽打斗,画面变得格外精彩。能演电影是幸运的事,借助于现代机器视觉、计算机图形技术,或许你拿起手机也可以拍摄出你的超级大片。
目标检测(Object Detection,检测识别图像中的物体,下称图像识别)神经网络之一 YOLO 已经发布了第三版(YOLOv3),他名称挺有意思:You Only Look Once,你只看一次。他的作者也挺有意思,Darknet 项目的 LICENSE.fuck 看上去有着一种随意、不讲究的个性。随着神经网络技术的兴起,机器视觉软件库之一 OpenCV 在其 3.3 版本中正式添加了 DNN 模块,以支持神经网络算法应用。他能够支持多种机器学习(包括深度学习)框架的预训练神经网络模型,对图像、视频应用神经网络算法。
人脸检测很早就有了,以前的数码相机拍照的时候就能实时检测出人脸、笑脸。不过那时的检测会有一些要求,脸要摆正,最好不能带帽子,笑要露出牙齿会更容易检测到。现在随着深度学习技术的发展,人脸检测技术也有了巨大的变化。
跑分第一的手机未必能跑得动神经网络,因为 CPU 的浮点计算能力很有限,在执行图像处理、机器视觉等一些计算密集型任务时,效率会非常低。处理那样的任务是 GPU 的专长,图形硬件不仅能 3D 绘图渲染,还能通过 OpenCL 等接口使用它的计算能力。这里将展示 PC 平台上图形硬件对神经网络的计算加速,在 OpenCV DNN 图像检测程序中对比 CPU 和 GPU 计算的效能差别。
这篇博文也是介绍 OpenCV DNN 模块在 Android 上的应用,运行 GoogLeNet 模型对摄像头画面做图像分类。相关的博文点击文章左下方的 OpenCV 标签可以看到。下图底部有一行字 coffee mug(咖啡杯),这是对画面中的这杯咖啡准确识别分类的结果。
这标题都是英文,看了一下专业词汇多还真不好写中文。本文的内容是介绍 OpenCV DNN(Deep Neural Networks)模块在 Android 上的使用,运行深度学习模型来做图像的多目标识别。移动设备上基于深度学习的图像识别技术离实际应用还有段距离,不过该技术却有着惊艳的效果。