AI一叶知秋:从目标检测部署浅谈人工智能发展

笔者写这篇文章也有讨巧之嫌,仅以个人视角分享一些看法,主要从实践部署来谈谈近两年来计算机视觉模型的变化,不过AI是一个宏大的话题,每个人定义的人工智能就不一样,我们先来探讨一下何为人工智能。百度百科中是这样定义的:

人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。

而我又询问了文心一言和GPT,文心一言回答得更加全面,补充了百科中模糊的部分,而GPT从自身角度回答了什么是人工智能

文心一言:人工智能的基本原理是通过算法和模型来模拟人类的智能行为。算法是计算机程序执行任务所遵循的一组规则和指令。模型则是基于数据和算法构建的,用于模拟人类智能行为的系统或平台。通过训练和优化模型和算法,人工智能系统可以逐渐学习和掌握各种复杂的任务和技能,从而实现自主决策和行动。人工智能的应用非常广泛,例如:

  1. 机器学习:通过训练大量数据来使计算机自主地进行决策和预测。
  2. 自然语言处理:使计算机能够理解和生成人类语言。
  3. 计算机视觉:使计算机能够解释和理解图像和视频。
  4. 语音识别:将人类的语音转换为文本或命令。
  5. 专家系统:在特定领域内提供类似人类专家的建议和决策支持。
  6. 机器人技术:设计和制造能够自主行动和决策的机器人。

GPT:作为一个人工智能,我被设计用来处理和理解大量的信息,并且可以执行特定任务。人工智能是指通过模拟人类智力的技术来实现某种形式的感知、学习、推理和决策能力。这些技术包括机器学习、深度学习、自然语言处理等,使得计算机系统能够展现出类似于人类的智能行为。 

可以看到有些关键词重复出现了多次,如模型、模拟、能力,那我们简单抽象得出一个概念:人工智能的就是用算法模型来模拟人类能力,那么它的发展趋势也就是接近人甚至超越人。尽管我认为人工智能的含义应该包揽所有的自动化智能化,乃至一切通过电路、信号来便利生活的产物。但不得不说在这个抽象化的概念下,神经网络或者更具体的卷积神经网络完美契合了这几个关键词,至少从字面以上来看,像是一个仿生学词汇,而我们刚才得出的结论,人工智能不就是模仿人的行为吗。 

所以神经网络衍生出的几个研究领域自然成为了人工智能的大热门,例如计算机视觉、自然语言处理、深度强化学习等。近几年来不断更迭,推陈出新,在各大媒体平台都能看见这几位的身影,然而现在我要泼一盆凉水,就拿我从事过的目标检测来说,对比GPT这类成功的自然语言处理工具,在实用性上还有很长的路要走。

我的工作是部署目标检测模型来识别灯条和数字,相较于各种人脸识别地图识别来说比较简单,先前我也写过一篇文章记叙了目标检测模型的发展,详见http://t.csdnimg.cn/xB48c

而我刚开始学习目标检测时接触到的并不是文中的Region-CNN或是Overfeat模型,而是百度飞桨上的手写数字识别MNIST数据集,许多项目都是围绕着这个数据集建立模型,或者说不上建立,更像是自己凭感觉修改成熟架构的几个参数然后不断微调,当然初学者更多是照搬原模型,我记得自己用vgg16跑了很多次数字识别,后来又试过resnet50,即使始终不会调参,但是创建数据集并用各种标注软件画框却练得炉火纯青。那时候SOTA模型还没有那么深入人心,最开心的事情就是在colab上对网络一通瞎搞碰巧提高了准确率。

后来为了速度和精确接触了YOLO系列,从v3,v5再到v8,效果越来越好,但是部署的难度也在提升。就拿resnet来说,作为一个18层的小模型,使用CPU速度就足够了,但是对于YOLO来说,帧率可能只有十几hz,不用说商业化,仅是在robomaster赛场都不堪重用。于是CUDA、Tensorrt等加速软硬件就显得格外重要,那时候还研究过英伟达的NCS和谷歌的TPU,感觉并不怎么合适。

我们面临的最重要的一个问题是大家都是编写一个py文件然后装上GPU驱动跑数据,很少有人真的把模型封装在一个单片机里,然后加上足够多的外设,就像终结者里面能跑能跳自动追踪的机器人一样。所以训练好了模型,怎么部署就令人头疼。我们先是将pth文件通过Protobuf序列化成onnx文件,再使用NVIDIA的API转为engine,在这之后根据github上开源的一些仓库创建了接口,使得图像数据可以送达至模型并输出结果。这个过程还要创建编写py、json、txt、xml、h、cu、cpp、wts等一大堆眼花缭乱的文件,最后的结果也不一定稳定,可能外接的相机光圈有些变化就会报出一串error。

所以说尽管模型的架构不断完善,许多云平台或者是开源仓库让一窍不通的小白也能顺利完成训练并得到满意的结果,我仍然持有一个审慎的看法,先前在小木虫有看到过一个类似的帖子,大意是各大厂商不断发力纷纷推出自家的SOTA模型,但是研究生除了根据这些模型改改参数更加贴近外,是做不了实际工业项目的,他们实验室里有一个祖传横向是一个图像分割的传送带监控,用的还是七八年前的模型,因为既没有人关注这些不随大流发展人机对话而是负责特定用途的小众模型,也没有人想要优化一个需要连接电路处理信号避免干扰的实际部署器件。这实际上就反映了深度学习能否真正发挥效用的进一步难题——当大家都飞在云端时,有没有人愿意停下来回到地面呢。


http://www.niftyadmin.cn/n/5282273.html

相关文章

《只要陪着你》:朱卫明与音乐的深度对话

《只要陪着你》:朱卫明与音乐的深度对话 朱卫明的《只要陪着你》不仅仅是一首流行歌曲,它更是一次对人性、情感、生活哲学以及艺术本身的深度挖掘。通过这首歌,朱卫明不仅展现了其卓越的音乐才华,还与听众进行了一次关于生命中最…

中心性算法归纳

中心性算法不仅是在我所学习的计算机网络当中起很重要的作用,在交通网络、社交网络、信息网络、神经网络当中也有很多的应用例子。今天我在这里总结一下场景的几种中心性算法。 参考文献 Python NetworkX库 偏心中心性(Eccentricity Centrality&#x…

深兰科技入选“2023数字经济独角兽排行榜”

12月19日~20日,“2023数字经济独角兽大会”在北京大兴经济开发区隆重举行。会上,还正式发布了“2023数字经济独角兽排行榜”,深兰科技成功入选。 本届“2023数字经济独角兽大会”,是由北京市大兴区经济和信息化局、北京…

C++ Qt开发:Charts折线图绘制详解

Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QCharts折线图的常用方法及灵活运用。 折线图…

网络爬虫之多任务数据采集(多线程、多进程、协程)

进程:是操作系统中资源分配的基本单位 线程:使用进程分配的资源处理具体任务 一个进程中可以有多个线程:进程相当于一个公司,线程就是公司里面的员工。 一 多线程 多线程都是关于功能的并发执行。而异步编程是关于函数之间的非…

【ARM 安全系列介绍 3.4 -- 安全证书介绍】

文章目录 安全证书安全证书的主要组成部分安全证书的应用场景证书使用举例 证书格式PEM (Privacy Enhanced Mail)DER (Distinguished Encoding Rules)PKCS#7/P7B (Public Key Cryptography Standards #7)PKCS#12/PFX (Public Key Cryptography Standards #12)P7B 和 PFX/P12 的…

C语言易错知识点九(指针(part three))

❀❀❀ 文章由不准备秃的大伟原创 ❀❀❀ ♪♪♪ 若有转载,请联系博主哦~ ♪♪♪ ❤❤❤ 致力学好编程的宝藏博主,代码兴国!❤❤❤ 许久不见,甚是想念,本大忙人已经很久没有更新博客了,我想大概我的粉丝们早…

机器学习——模型评估与选择(拟合、)

【说明】文章内容来自《机器学习——基于sklearn》,用于学习记录。若有争议联系删除。 1、拟合 拟合是指机器学习模型在训练的过程中,通过更新参数,使得模型不断契合可观测数据(训练集)的过程。欠拟合指的是模型在训练和预测表现都不好&…