人工智能(Artificial Intelligence,简称为 AI)概念火了很多年,已经融入到我们的日常工作和生活中。现在手机上已经有很多人工智能应用,这些人工智能应用是怎么开发的呢?今天,小编就向大家简单介绍一下移动终端人工智能技术以及如何开发一款手机上的AI应用。
图1 手机上的AI应用
人工智能的概念最早出现在1943年。美国科学家沃尔特·皮茨(W. Pitts)和心理学家沃伦·麦克洛克(W.McCulloch)受人脑神经元的启发,通过数学模型模拟人脑神经网络的输入和输出,这就是人工智能技术的雏形。不过受限于当时的软硬件条件,人工智能技术并未流行起来。2016年Google DeepMind开发的AlphaGo以4比1的成绩战胜了人类世界冠军李世石,“人工智能”再一次走进普通大众的视野,这便是人工智能技术的第三次浪潮,“深度学习”是它的重要特征。
目前,人工智能技术的核心内容是通过数学或概率统计方法处理更为复杂的问题,诸如图像识别、语音识别等。比如识别一张图片中的小动物,电脑会通过一定的计算方法得到图片中图像的特征,再通过特征判断是小猫还是小狗。这个计算方法叫做神经网络算法或神经网络模型。人们为了提高神经网络模型判断的准确性,需要通过大量的小动物图片对算法进行训练,不断优化算法中的参数,最终让模型能非常准确得到想要的结果。
图2 深度学习与神经网络模型
我们回到手机上的人工智能技术,它能够识别我们手机相册中的照片,并将照片自动归类;能识别相册里的各种物体,为人脸加上特效,为背景提供虚化;也能识别我们的语音指令,将其转化为文字或代替手指操作手机。要在手机上实现这些AI功能,通常有两种做法,一种是将手机上的信息发给网络,由云端的服务器进行AI计算,最后将结果反馈给手机;另一种则是依靠手机的芯片直接进行AI计算。前者主要用于计算过程中传输的数据量不大,实时性要求不高的场景,如语音识别等;而后者则主要应用于实时性要求较高,需要计算的数据量很大且不适合在网络上传输的场景,如图像处理类应用。
图3 手机AI应用的两种方式
在手机领域,业界更关注如何直接在手机上完美的进行AI计算,运行AI应用。这需要手机提供强大的AI算力,离不开手机软件和硬件AI技术的共同加持。
软件方面,核心的是神经网络模型和移动终端推理框架,神经网络模型通常在云端训练好再部署到终端上运行,而移动终端推理框架则能将神经网络模型转换为可在芯片上执行的机器指令。通常可用于图像识别的神经网络模型包括MobileNet,Inception等,而常用的移动端推理框架则包括TensorFlow Lite、PyTorch mobile,以及国内的百度Paddle Lite、华为HiAI等。
硬件方面,由于传统的CPU无法胜任需要海量数据并行运算的深度学习计算需求,终端厂商开发了AI加速芯片来应对AI计算,如DSP、NPU等。这些芯片专门用于处理卷积、矩阵等AI计算,同时还具备低功耗、高可靠和小体积等优势。在移动终端推理框架的驱动下,能更加高效的进行AI计算。目前我们手机芯片中一般都整合了AI加速芯片的功能,如高通的骁龙888处理器,苹果A16处理器等,这些芯片中就具备AI加速单元。
在移动应用开发过程中,开发者首先需要选择合适的神经网络模型和移动终端推理框架。神经网络模型通常是一个特殊格式的文件,而移动终端推理框架则是一个封装好的SDK。然后,开发者会将它们集成到应用当中。在我们使用手机的时候,移动端推理框架会将数据送入手机的AI加速芯片进行计算,最后将结果展现在我们面前,这就是手机上的人工智能技术。目前它能给我们带来更多有趣功能和体验,未来还将继续往更智能、更快速的方向发展。
如果您对移动端人工智能技术感兴趣,还可以阅读由机械工业出版社出版的《移动终端人工智能技术与应用开发》。点击泰尔科普 | 一本书,带你了解如何开发一款手机上的AI应用(文末赠书福利)可以参加赠书福利活动。
,