在 Android 上运行图像识别

目标检测(Object Detection,检测识别图像中的物体,下称图像识别)神经网络之一 YOLO 已经发布了第三版(YOLOv3),他名称挺有意思:You Only Look Once,你只看一次。他的作者也挺有意思,Darknet 项目的 LICENSE.fuck 看上去有着一种随意、不讲究的个性。随着神经网络技术的兴起,机器视觉软件库之一 OpenCV 在其 3.3 版本中正式添加了 DNN 模块,以支持神经网络算法应用。他能够支持多种机器学习(包括深度学习)框架的预训练神经网络模型,对图像、视频应用神经网络算法。

电影中的 AI 和生活中的 AI

科幻电影中的 AI 和现实生活中软件的 AI 是两码事了。电影中的 AI 是让机器具备了人类的特性,有本能,有意识,有情感,能思考,能学习成长,能自我创造出机器的世界。而现实生活中的 AI 软件,很多是机器学习(Machine Learning,后面会提到)的技术应用,让一些功能更加智能,让一些算法得以实现,让一些设想得以落地应用,但是软件本质没有变化,即固有的(人工编写的)程序逻辑和数据结构。

OpenCV DNN with GPU Computing

跑分第一的手机未必能跑得动神经网络,因为 CPU 的浮点计算能力很有限,在执行图像处理、机器视觉等一些计算密集型任务时,效率会非常低。处理那样的任务是 GPU 的专长,图形硬件不仅能 3D 绘图渲染,还能通过 OpenCL 等接口使用它的计算能力。这里将展示 PC 平台上图形硬件对神经网络的计算加速,在 OpenCV DNN 图像检测程序中对比 CPU 和 GPU 计算的效能差别。