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.mzph.cn/news/577463.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

〖Python网络爬虫实战㊹〗- JavaScript Hook 的用法

订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,订阅本专栏前必读关于专栏〖Python网络爬虫实战〗转为付费专栏的订阅说明作者&#xff1…

buuctf-Misc 题目解答分解97-99

97.[BSidesSF2019]zippy 下载完就是一个流量包 追踪tcp nc -l -p 4445 > flag.zip unzip -P supercomplexpassword flag.zip Archive: flag.zip 压缩包密码 supercomplexpassword 保存为 flag.zip 解压得到flag 98.[GUET-CTF2019]虚假的压缩包 先从虚假的压缩包入手 &am…

MySQL的事务-隔离级别

上篇,整理了MySQL事务的原子性,这篇继续整理MySQL事务的一致性、隔离性和持久性。 2. 一致性指的是事务开始前和结束后,数据库的完整性约束没有被破坏,这保证了数据的完整性和一致性。一致性必须确保数据库从一个一致的状态转换到…

数据结构-算法概念与程序设计

目录 一、算法 二、算法设计的要求 三、如何去衡量不同算法之间的优劣 一、算法 概念:算法是对于特定问题求解步骤的一种描述,是指令的有限序列,其中每一条质量表示一个或者多种操作,具有以下特性: (1&…

C++ 比 C语言的新增的特性 1

1. C是C的增强 1.1 C是静态类型的语言,具有严格的数据类型检查 1.1.1 c 因为const修饰的变量不允许修改,但是只给了警告,不严谨 const int a10;a20; //报错int *p&a;*p20;//a的值? test1.c:6:9: warning: initialization dis…

详解Java反射机制reflect(一学就会,通俗易懂)

1.定义 #2. 获取Class对象的三种方式 sout(c1)结果为class com.itheima.d2_reflect.TestClass 获取到了Class对象就相当于获取到了该类 2.获取类的构造器 3.获取全部构造器对象 2.根据参数类型获取构造器对象 类型后必须加.class 3.构造器对象调用构造器方法 4.暴力访问 4.获…

【笔记】入门PCB设计(全30集带目录) 杜洋工作室 AD09 Altium Designer

入门PCB设计(全30集带目录) 杜洋工作室 AD09 p1 创建p2 原理图上增加元件1)加元件2)放导线3)自定义元件1. 自定义排针2.有引脚的元件 p3 完整原理图 p1 创建 step1.创建(PCB)工程,后缀.PrjPCB。…

【FPGA 器件比较】Altera -- Xilinx

比较以下市场前二名的产品线及定位 应用场景XilinxAltera高性能VersalAgilex F/I性能Virtex / Kintex / Artix / Zynq UltraScaleAgilex F/I / Stratix 10中档Virtex / Kintex / Zynq ~ 7 / UltraScaleStratix 10 / Arria 10低成本Artix-7 Sparton-7Cyclone 10 如上表&#x…

Linux构建NFS远程共享存储和ftp配置

NFS架构 NFS介绍 文件系统级别共享(是NAS存储) --------- 已经做好了格式化,可以直接用。 速度慢比如:nfs,samba NFS:Network File System 网络文件系统,NFS 和其他文件系统一样,是在 Linux …

《Git快速入门》Git分支

1.master、origin、origin/master 区别 首先搞懂git分支的一些名称区别: master : Git 的默认分支名字。它并不是一个特殊分支、跟其它分支完全没有区别。 之所以几乎每一个仓库都有 master 分支,是因为 git init 命令默认创建它&#xff0c…

Redis缓存穿透、缓存击穿、缓存雪崩介绍

一、Redis的缓存穿透 1.什么是缓存穿透? 缓存穿透是指:客户端请求的数据在缓存中和数据库中都不存在,这时缓存就永远不会生效,这些请求都打到数据库从而导致数据库压力过大。 2.出现缓存穿透的解决方案,以下是常用的两…

C语言第五十九弹---介绍说明内存函数memcmp

使用C语言介绍说明内存函数memcmp memcmp是C语言标准库中的一个函数,用于比较两个内存区域的内容是否相同。 源代码: int memcmp(const void* ptr1, const void* ptr2, size_t num);ptr1和ptr2分别是要比较的两个内存区域的指针,num是要比较…

es检索之复合检索

背景:向量检索是文本相似度检索,现在增加新的字段进行过滤,如果以filter方式进行过滤,那么最终结果不保证有topK个,甚至一个都没有,因为它是先进行topK个向量召回,再进行filter。 当然有人建议采用scriptScore方式进行检索,但此方式可能造成请求压力过大,内存消耗。 …

reactor的原理与实现

网络模型 前情回顾服务器模型 Reactor和 ProactorReactor模型Proactor模型同步I/O模拟Poractor模型Libevent,libev,libuv优先级事件循环线程安全 前情回顾 网络IO,会涉及到两个系统对象:   一个是用户空间调用的进程或线程   …

自媒体实战篇:作品爆款三要素的使用场景和重要性

作品爆款三要素的使用场景和重要性 什么是爆款三要素 标题 概括视频内容,吸引用户注意封面 吸引眼球,引发作者联想标签 精准分类,有利于平台精准推流优质标题要求 标题就是介绍视频故事内容的一段话,通常分为三段式注册,统称三段式标题好的标题统称是三段式的,即点明故事…

C均值算法例子

有如下数据,试使用C-均值聚类将该数据集聚为2类。初始聚类中心为P1和P2,写出计算过程。 坐标点XYP100P212P331P488P599P6107 解:6个点聚离P1,P2的距离分别如下: ( 0 , 5 , 10 , 8 2 , 9 2 , 149 (0, \sqrt 5,\sqrt {…

07 Vue3框架简介

文章目录 一、Vue3简介1. 简介2. 相关网站3. 前端技术对比4. JS前端框架5. Vue核心内容6. 使用方式 二、基础概念1. 创建一个应用2. 变量双向绑定(v-model)3. 条件控制(v-if)4. 数组遍历(v-for)5. 绑定事件…

ubuntu22.04上安装charles-proxy

在 Ubuntu 22.04 上安装 .tar.gz 格式的 Charles Proxy (charles-proxy-4.6.5_amd64.tar.gz) 需要解压缩文件并运行其中的安装脚本或可执行文件。以下是具体步骤: 1. 下载文件 假设你已经从 Charles Proxy 官网下载了 charles-proxy-4.6.5_amd64.tar.gz 文件。 2…

182.【2023年华为OD机试真题(C卷)】敏感字段加密(字符串的分割、替换和拼接实现JavaPythonC++JS)

请到本专栏顶置查阅最新的华为OD机试宝典 点击跳转到本专栏-算法之翼:华为OD机试 🚀你的旅程将在这里启航!本专栏所有题目均包含优质解题思路,高质量解题代码,详细代码讲解,助你深入学习,深度掌握! 文章目录 【2023年华为OD机试真题(C卷)】敏感字段加密(字符串…

leetcode 38. 外观数列(medium)(优质解法)

链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 代码: class Solution {public String countAndSay(int n) {//要进行 n - 1 次描述才能得到结果// last 代表当前要描述的字符串String last"1";// ret 代表描述…