文心快码 - 助力《垃圾智能AI识别系统》从开发到上线全链路环节增效

一、前言:

最近公司有一个项目需求需要使用到AI智能识别的功能《垃圾智能AI识别系统》,之前也没接触过这个赛道,刚好前段时间参加过“Baidu Comate智能编码助手”的活动,在公司的项目也是一直在使用,在很多地方帮助程序员开发人员更好地理解和优化代码,提高软件的可维护性和可靠性、安全性。

今天刚好也是接触新的技术领域,经过“Baidu Comate智能编码助手”的几个月的使用的经验,来帮助我从0到1来实现这个《垃圾智能AI识别系统》的项目。


1.1 项目需求描述:

客户有一个自动化垃圾分拣设备,需要装一个开发板,在AI技术加持下,作业单位可以通过识别不同的生活垃圾图片进行实时分析处理,来决定这个垃圾将要分拣到哪个区域,将AI识别技术用于垃圾分类质量来提高人工的效率,以实现对湿垃圾分类品质的智能管理和监督。

在这里插入图片描述


1.2 技术挑战:

与之前接触的Web领域不同,这次的项目是几个部门一起联合协作,IT、AE(自动化工程)、ME(机械工程)等几个部门,IT部门需要做的事情就是通过开发板将垃圾的图片识别出来进行分类,将结果的数据传给AE部门,再通过机械手臂来分拣到对应的区域,因为也是刚刚接触硬件相关的开发,所以,下面大概列举一下这次挑战的技术点:

  • 硬件开发板(基于香橙派的OrangePi AIpro(8-12T))
  • 图片智能识别领域(基于Python)
  • 环境部署(Linux Ubuntu)

因为本人一直在使用PHP进行开发,接下来,就由“Baidu Comate智能编码助手”边问边做,来一步一步的实现完成《垃圾智能AI识别系统》的项目。


二、基于“Baidu Comate 智能编码助手”实现《香橙派垃圾识别的AI项目》的最佳落地实践:

开发板的主要目的是帮助开发人员快速搭建嵌入式系统原型,进行软硬件联合调试和测试,从而提高开发效率和减少开发成本。

本人也是刚刚接触开发板,从“Baidu Comate 智能编码助手”给出的解释是:开发板(Demo Board)是一种用于嵌入式系统开发的硬件平台,它通常包含了一系列必要的硬件组件,如中央处理器(CPU)、存储器、输入设备、输出设备、数据通路/总线和外部资源接口等。

在我个人的理解中是相当于一个小型的主机,由于成本比较低、体积比较小,可以在智能家居、物联网、机器人等项目中,开发板作为核心硬件平台,支持项目的快速开发和部署,本文中我们使用香橙派的OrangePi AIpro(8-12T)开发板来开发运行的环境。

在这里插入图片描述


2.1 上传OrangePi手册打造私有在线“AutoWork”知识库:

刚刚接触这个开发板,有点无从下手,需要准备什么样的东西,如何开机使用等问题,从官网下载了一个 使用手册,有近12M的一个PDF,而且有近170页,从头看到尾,估计要花费很长的一段时间,从上个文章了解到“Baidu Comate 智能编码助手”有一个“AutoWork”功能,让我们将这个使用手册上传到在线知识库,让AI来帮助我们使用和理解PDF手册。

在这里插入图片描述

在VsCode中的“Baidu Comate 智能编码助手”中,点击“知识模块 -> 知识集 -> 新增知识集”即可在VsCode中打开知识集管理列表,新增一个“OrangePi手册”的知识集,保存后可以在列表中查看,此时,知识集里面是没有文档的,可以⽀持 上传.pdf、.md、.txt、.docx、.doc、.zip、.gz等格式的文件,⼤⼩要小于100M。

在这里插入图片描述

将PDF手册上传时,发现有一个错误“包含xss脚本代码”,上传不了,在之前的体验是没有的,只能将PDF手册通过百度的工具转化为可编辑的wrold文档,去掉相关的xss代码即可上传成功。

可以看到在官方这次更新迭代中,增加了不少安全方面的验证,如在编码阶段发现安全问题:通用漏洞、供应链漏洞、机密防泄漏。

在这里插入图片描述

这里需要注意一下,刚刚上传的world会显示一个“未激活”的tag,表示当前知识集是否已完成向量化,即上传的文档左上角未出现『未激活』字样,需要等待向量构建,如果构建完成的话,搜索的结果都会优先查找上面的world。


2.2 开发板开机准备:

上面看到可以使用“AutoWork”搭建完成知识库,从知识库问一下,开发板如果需要开机的话,需要使用到哪些配件,需要准备哪些配件:

  • Type-C电源线、插头
  • SD卡、SD卡读卡器
  • HDMI插头
  • 散热风扇

在这里插入图片描述

通过上面提到的准备的配件后,我们组装在一起,可惜知识库没有提供图片,这里建议后面AI能够生成图片,比如“OrangePi板子如何进行组装配件”,回答的文案跟上面也是接近,无奈这部分只能去看看官方提供的PDF文档,可以看到如下图所示,基本上使用了4个位置的地方:键盘和鼠标USB插头、显示器HDMI插头、电源Type-c插头、SD卡插槽。

在这里插入图片描述

插入USB的鼠标和键盘、显示器HDMI线、自带的type-c电源线后,即可以去插上电源了,经过上面配件的组装后,一插入就自动启动了,没有什么开机键,即一通电就自动启动了。

但是有一个问题,等了5分钟除了风扇一直响外,只有一个灯在闪,但是显示器不显示画面,因为开发板肯定是刚买的,大概率问题不大,而且显示的线也是在当副屏幕在使用,所以,硬件坏掉的可能性比较低,让“Baidu Comate 智能编码助手”帮我分析一下是有什么原因导致的?从哪些方面入手处理?

在这里插入图片描述

结合“Baidu Comate 智能编码助手”给出的原因与定位的问题点,我们可以使用排除法来确认不能开机的原因:

序号可能存在问题点解决方案难度
1检查一下控制启动设备的两个拨码开关,要想从TF卡启动,需要都是右检查无问题1星
2可能烧录的时候出现上面异常,导致无法亮灯可以尝试重新烧录一下2星
3手里是否有备用TF卡,不过最好使用容量大点的,32G以上,推荐64G需要买一张备用卡3星
4可能开发板子存在问题这个需要专业人员来解决4星

在这里插入图片描述

因为手里没有备用的TF卡,只能通过第二种方案重新进行烧录试试。

在这里插入图片描述

在询问“如何进行烧录系统”时,可以看到下载操作系统的镜像并没有给出下载的地址,这里也是为了演示,“AutoWork”私有库如何的进行迭代维护,将几个重要的下载地址,通过编辑一个txt文档,上传到对应的知识库中。

在这里插入图片描述

首先打开balena烧录工具地址,因为个人办公是Mac电脑,借用了同事的Windows电脑来进行此次的测试,我们选择OS为“WINDOWS”的X86|X64版本下载。

在这里插入图片描述

打开下载的balena烧录工具,不用安装,直接就打开了,非常的方便,不用在电脑上安装软件:

  • 点击“从文件烧录”选择好我们提前下载的Linux镜像(百度云真的慢)
  • 点击“选择目标磁盘”选中我们插入的TF卡(我提前格式化了)
  • 点击“现在烧录”就可以开始进行烧录了

在这里插入图片描述

经过2个阶段,一个是验证阶段,一个是烧录阶段,最后烧录提示“出了点问题”,这里不用管,下面会解释为什么。

在这里插入图片描述

小细节:

  1. 烧录时,提示U盘找不到,需要重新插入,此时,不用管他的提示。
  2. 在烧录完成后,提示要格式化,也不需要管,因为在烧录时,就已经开始写成Linux的启动镜像盘了,此时,在windows系统是无法识别的,是正常的。

通过重新烧录系统之后,我们的系统就可以正常启动了,但是界面显示需要输入一个用户名和密码,才能进入系统。

在这里插入图片描述

通过使用“Baidu Comate 智能编码助手”查找知识库,马上给我们得到了结果,并且经过测试,输入以下这组用户名与密码之后,即可正常进入系统的桌面。

  • 用户名:HwHiAiUser
  • 密码:Mind@123

以上就是通过“Baidu Comate 智能编码助手”的“AutoWork”私有库,我需要面对冗长复杂的技术手册,往往需要花费大量时间阅读和理解,占用了开发者大量精力,也会拖慢项目开发进度,只需要简单的将pdf、world、txt等之类的文件,上传到知识库中,能够无缝链接团队的私域知识,即可以挂载各种开发文档、需求文档、API文档等。

在这里插入图片描述

通过挂载这些文档,开发者不再需要花费大量时间去翻阅文档、理解新业务逻辑,AutoWork能够直接利用这些现有文档资源,完成理解和分析,加速代码生成,快速实现开发需求。


2.3 开发版本远程链接:

远程连接就是在远程连接另外一台计算机,当某台计算机开启了远程桌面连接功能后,就可以在网络的另一端控制这台计算机了,通过远程桌面功能就可以实时的操作这台计算机,在上面安装软件,运行程序,所有的一切都像是直接在该计算机上操作一样。

在这里插入图片描述

一般来说,像开发板的话,会使用使用远程连接来提高工作效率、‌‌促进团队协作和资源共享,在询问“Baidu Comate 智能编码助手”如何进行开发板的远程链接,也给出了方案:

  • 由于办公环境没有网线,用的是Wifi,所以,先将开发板连上Wifi
  • 查看IP地址,使用ip addr命令来查看eth0网卡的IP地址,因为在同一个Wifi中,算是同一个局域内网,可以进行通信
  • 开发板上的环境是Linux环境,所以我们使用SSH进行登录
  • 登录上开发板环境

上面通过“Baidu Comate智能编码助手”的“AutoWork”构建私有库可以加快对文档的搜索,更好的帮助我们检索想要的答案,而且可以通过不断的更新文件来弥补垂直领域的空缺,将开发板从组装、烧录、开机等阶段的辅助,当然,其中,也会存在一些问题,只有一些文案的描述,如果里面能生成图片就更好了。


上面通过“Baidu Comate智能编码助手”生成的《基于MobileNetv2的垃圾分类》的代码,可以看到生成的代码是根据上下文环境来关联的,将代码复制到JupyterLab中执行,发现报错:

ModuleNotFoundError: No module named 'torchvision'

提示’torchvision’模块没有找到,通过“Baidu Comate智能编码助手”的分析是开发板中的Python环境中没有安装torchvision这个模块。

torchvision是PyTorch的一个扩展库,它提供了很多用于计算机视觉的常用数据集、模型架构和图像转换工具。

在这里插入图片描述

解决方案:可以通过Python的包管理工具pip来安装torchvision模块,安装成功后,会显示“Successfully installed torchvision-0.19.0”,表示安装成功了。

pip install torchvision

安装模块后,再将生成的代码,复制到Cell中,再进行执行,发现提示“NameError: name ‘train_dataset’ is not defined”,这个问题还是比较简单的,就是说明变量或名字没有被定义,可以自行解决,不需要进行AI询问了。

在这里插入图片描述

将修改的代码,再复制到Cell中,再次执行,会提示“FileNotFoundError: [Errno 2] No such file or directory: ‘path_to_train’”,如上,这个提示也是比较简单的,就是找不到对应的文件与目录,此时,需要去找一下需要的数据集,包括2个部分:

  • 需要训练的数据集
  • 需要测试的数据集

在这里插入图片描述

从“Baidu Comate智能编码助手”中,找了不少的方案也没有提供相关的现成的数据集(垃圾图片相关的),没有办法,只能通过在网上和群里询问大家,最后得到了一个公开的垃圾分类相关主题的数据集,里面包含训练和测试的数据集,一共有25个分类的样本图片。

在这里插入图片描述

将这些图片直接拖动到JupyterLab中即可上传到开发板中,还是比较方便的,否则只能靠FTP的工具来进行上传了,顺便将以下代码修改为对应正确的路径:

# 假设你已经有了train_dataset和test_dataset
train_dataset = datasets.ImageFolder(root='/home/xxx/data_en/train', transform=transform)
test_dataset = datasets.ImageFolder(root='/home/xxx/data_en/test', transform=transform)

将修改的代码,再复制到Cell中,再次执行,发现又报错了“参数从0.13开始就被弃用,将来可能会被删除。请使用关键字参数”,从英文的警告说明来看,是在0.13版本已经移除了属性,可以使用其它关键字参数来代替。

在这里插入图片描述

warnings.warn(
    f"Using {sequence_to_str(tuple(keyword_only_kwargs.keys()), separate_last='and ')} as positional "
    f"parameter(s) is deprecated since 0.13 and may be removed in the future. Please use keyword parameter(s) "
    f"instead."
)
kwargs.update(keyword_only_kwargs)

同样,将错误直接复制到“Baidu Comate智能编码助手”中搜索,可以自动分析错误的原因,并且给出了解决方案“注意到了pretrained参数已经被弃用,并且应该使用weights参数来替代”,然后,通过上下文的环境关系,自动生成修复代码,这个功能非常强大。

在这里插入图片描述

此外,你的数据加载和模型训练部分看起来是合理的,但请确保你的数据路径和文件结构是正确的,以便 ImageFolder 可以正确加载数据。

在这里插入图片描述

  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值