应用办公生活信息教育商业
投稿投诉
商业财经
汽车智能
教育国际
房产环球
信息数码
热点科技
生活手机
晨报新闻
办公软件
科学动态
应用生物
体育时事

带你动手做AI版的垃圾分类

  本文分享自华为云社区《ModelBox社区案例使用YOLOX做垃圾分类云社区华为云》,作者:HWCloudAI。
  本案例将使用YOLOX模型,实现一个简单的垃圾分类应用,最终效果如下所示:
  本案例所需资源(代码、模型、测试数据等)均可从garbagedet下载(https:pan。baidu。coms1zvHR3Q1jHonogKPTSmwEQg?pwdiiuc)1。1模型训练与转换
  模型采用的是YOLOX网络结构,YOLOX是YOLO系列的优化版本,引入了解耦头、数据增强、无锚点以及标签分类等目标检测领域的优秀进展,拥有较好的精度表现,同时对工程部署友好。训练使用的是华为云杯生活垃圾图片分类数据集,该数据集包含一次性快餐盒、果皮果肉、旧衣服等44个类别,共14964张图片。其中,训练集与验证集划分比例为41,下图为模型迭代个300个Epoch取得的结果:
  ModelArts提供了包括数据标注,训练环境,预置算法在内的丰富的功能,甚至可以通过订阅预置算法实现0代码的模型训练工作。当然你也可以在本地训练自己的模型。我们假设你现在已经拥有了训练好的模型,接下来我们需要将训练好的模型转换成为可以在开发板上运行的模型。我们发布了开发板模型转换案例,参见RK3568模型转换验证案例AIGalleryNotebook详情开发者华为云:
  在这个案例中我们演示了从环境适配到模型的转换验证的全流程样例代码,开发者可以通过RuninModelArts一键将Notebook案例在ModelArts控制台快速打开、运行以及进行二次开发等操作。1。2应用开发
  打开VSCode,连接到ModelBoxsdk所在目录或者远程开发板,开始进行垃圾分类应用的开发。下面以RK3568版本为例进行说明,其他版本与之类似。1。2。11)下载模板
  执行pythonsolution。pyl可看到当前公开的技能模板:pythonsolution。pyl。。。Solutionsname:maskdetyolo3handdetyoloxhandtrackingyoloxsinglehandposeyoloxmbv2multihandposeyoloxmbv2
  结果中的handdetyolox即为手部检测应用模板,可使用如下命令下载模板:pythonsolution。pyshanddetyolox。。。
  solution。py工具的参数中,l代表list,即列出当前已有的模板名称;s代表solutionname,即下载对应名称的模板。下载下来的模板资源,将存放在ModelBox核心库的solution目录下。1。2。22)创建工程
  在ModelBoxsdk目录下使用create。py创建garbagedet工程,末尾s参数,表示将使用后面参数值代表的模板创建工程,而不是创建空的工程。modelboxpythoncreate。pytserverngarbagedetshanddetyoloxsdkversionismodelboxxxxsuccess:creategarbagedetinmodelboxworkspace
  workspace目录下将创建出garbagedet工程,工程内容如下所示:garbagedetbinmain。bat:应用执行入口mocktask。toml:应用在本地执行时的输入输出配置,此应用默认使用本地视频文件为输入源,最终结果输出到另一本地视频文件,可根据需要修改CMake:存放一些自定义CMake函数data:存放应用运行所需要的图片、视频、文本、配置等数据hand。mp4:手部检测测试用视频文件替换为自己的视频dependencemodelboxrequirements。txt:应用运行依赖的外部库在此文件定义etcflowunit:应用所需的功能单元存放在此目录cpp:存放C功能单元编译后的动态链接库,此应用没有C功能单元yoloxpost:手部检测使用的是YOLOX模型,此处即为后处理功能单元(修改toml文件的类别参数和py文件的draw函数)flowunitcpp:存放C功能单元的源代码,此应用没有C功能单元graph:存放流程图garbagedet。toml:默认流程图,使用本地视频文件作为输入源garbagedetcamera。toml:摄像头输入对应的流程图modelbox。conf:modelbox相关配置hilensdatadir:存放应用输出的结果文件、ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a、性能统计信息model:推理功能单元目录detecthand:手部检测推理功能单元detecthand。toml:手部检测推理功能单元的配置文件yoloxhand。onnx:手部检测onnx模型更改为自己的模型buildproject。sh:应用构建脚本CMakeLists。txtrpm:打包rpm时生成的目录,将存放rpm包所需数据rpmcopyothers。sh:rpm打包时的辅助脚本1。2。33)修改后处理功能单元yoloxposta。修改yoloxpost。toml流程图,将其内容修改为(以Windows版ModelBox为例):
  b。修改yoloxpost。py的draw函数实现如下:defdraw(self,img,bboxes):h,w,cimg。shapethickness2fontscale1textfontcv2。FONTHERSHEYSIMPLEXclsstotext{0:Disposablesnackbox,1:Booksandpapers,2:Powerbank,3:Leftovers,4:Package,5:Trashcan,6:Plasticutensils,7:Plastictoys,8:Plasticcoathanger,9:BigBones,10:Drybattery,11:Expresspaperbag,12:Plugwire,13:Oldclothes,14:Thecan,15:Pillow,16:Skinandpulp,17:Stuffedanimal,18:Defacingplastic,19:Soiledpaper,20:Toiletries,21:Cigarettebutts,22:Toothpick,23:Glassware,24:Block,25:Chopsticks,26:Cartoncarton,27:Pot,27:Tearesidue,29:Vegetablehelpvegetableleaf,30:Shell,31:Thespicebottle,32:Paste,33:Expireddrugs,34:Bottle,35:Metalkitchenware,36:Metalware,37:Metalfoodcans,38:Pot,39:Ceramicvessels,40:Shoes,41:Edibleoildrum,42:Beveragebottle,43:Bones}forboxinbboxes:x1,y1,x2,y2,score,clssboxcv2。putText(img,clsstotext〔int(clss)〕:{:。3}。format(score100),(int(x1w)10,int(y1h)30),textfont,fontscale,(0,int(clss1)5,0),thickness)cv2。rectangle(img,(int(x1w),int(y1h)),(int(x2w),int(y2h)),(0,int(clss1)5,0),3)1。2。44)修改输入输出配置
  我们需要准备一个mp4文件拷贝到data文件夹下,我们使用测试视频garbage。mp4,然后打开工程目录下binmocktask。toml文件,修改其中的任务输入和任务输出配置为如下内容:〔input〕typeurlurl。。datagarbage。mp4〔output〕typelocalurlhilensdatadirgarbagedetectionresult。mp4
  该流程图在本地运行时的逻辑过程是:datasourceparser解析binmocktask。toml文件中输入配置的datagarbage。mp4文件,videodemuxer和videodecoder对该文件进行解码,resize、packedplanartranspose、normalize对原始图像进行缩放、转码、归一化等预处理,然后detectgarbage在预处理后的图像上进行垃圾检测,yoloxpost从推理结果中解码出检测框,并把检测框画到原始图像上,最后videoout将图像输出到binmocktask。toml文件中输出配置的hilensdatadirgarbagedetectionresult。mp4文件中。1。2。55)用启动脚本执行应用
  启动应用前执行buildproject。sh进行工程构建,该脚本将编译自定义的C功能单元(本应用不涉及)、将应用运行时会用到的配置文件转码为Unix格式(防止执行过程中的格式错误):。buildproject。shdos2unix:convertingfilexxx。tomltoUnixformat。。。。。。buildsuccess:youcanrunmain。batin。binfolderPress‘p’topause,anykeytoexit
  然后执行binmain。bat运行应用:。binmain。bat
  运行结束后在hilensdatadir目录下生成了garbagedetectionresult。mp4文件,可以打开查看:
  1。2。66)用摄像头检测
  打开工程目录下binmocktask。toml文件,修改其中的任务输入和任务输出配置为如下内容:〔input〕typeurlurl0表示0号摄像头,即PC自带摄像头,若PC无摄像头需外接USB摄像头〔output〕typelocalurl0:garbagedet表示名为garbagedet的本地窗口
  即使用编号为0的摄像头(默认为PC自带的摄像头),输出画面显示到名为garbagedet的本地屏幕窗口中。1。2。77)运行应用
  执行binmain。batcamera运行应用,将会自动弹出实时的垃圾分类检测画面:
  1。3打包部署1。3。1打包
  调试完成后,同样可以通过create。py脚本将应用打包发布:python。create。pytrpmngarbagedet
  控制台中输出:sdkversionismodelboxwin10x641。1。0。5callmbpkgtoolpack〔folder〕〔rpmfile〕tobuildingrpm,waiting。。。success:creategarbagedet。rpminD:modelboxwin10x641。1。0。5workspacegarbagedet
  等待稍许,可以看到项目工程下已经生成了rpm文件夹和打包好的应用:
  1。3。2部署
  将打包好的应用上传至华为云账号下的obs桶中:
  在专业版设备管理中选择一个开发板,
  点击创建部署:
  最后添加作业:
  这样我们就已经完成了一个AI应用,从模型训练到转换到开发到部署的全部流程。
  关于ModelBox核心概念、功能单元和流程图开发的更多介绍,可查看ModelBox手册。
  点击下方,第一时间了解华为云新鲜技术
  华为云博客大数据博客AI博客云计算博客开发者中心华为云
  华为云开发者联盟

出道前一般般,火了之后一年比一年好看,难道真是红气养人?他现在怎么长这样了?这张脸大家不一定认得出来,但是他的戏你们应该都看过。好了,答案揭晓。他是演员高昊,听名字可能不是特别熟悉,但饭姐要说《美人天下》里的刘启,……巴黎奥运周期中国女排的状况与展望2021年既是东京奥运年,也是巴黎奥运周期元年。这一年,是中国女排不堪回首的一年。往事已矣。让我们把目光投向三年后的巴黎,中国女排在这一奥运周期将会是怎样的状况?目……普洱茶七最,你喝过几种?近几年来,普洱茶成为越来越多茶友的心头好,普洱茶山头正炒得火热。普洱茶一山一味,口感丰富多变。有的人喜欢甜润的口感,有的人喜欢高香,有的人喜欢绵柔,有的人则喜欢霸气,今天……易建联无奈地摇头!广东24分惨败的背后,是杜锋哪个环节出了错本赛季广东队场均可以得到105分,但在京粤大战之后,球队的场均得分已经下降为101。1分,一场惨痛的失利,让球队刷新了几项队史交战记录,一个是24分惨败创造京粤大战广东队第二大……霸气文案,很适合做签名欢迎搜索公众号文学粉,第一时间获取更多优美的句子。1、人生短短几十年,就算不能轰轰烈烈,也决不能窝窝囊囊。2、做不来的事就放弃,追不到的人就不喜欢,我从来都是这样,……国家级旅游休闲街区公示,柳子街乾州古城上榜湖南日报新湖南客户端1月16日讯(记者刘涛实习生孙源)今天,文化和旅游部官网发布公告,对全国拟认定为第二批国家级旅游休闲街区的57家单位名单进行公示,其中湖南永州市零陵区柳子街……叶光富经历频繁初心不改热爱飞行对事业坚定执着,信念是中国红一个出身寒门的孩子,他的梦想更高远,也更伟大,在追梦的道路上,也走得更坚定、更执著。一个生长在普通农家的孩子,他的努力也更刻苦更坚持,对生活也更热爱更友好,学习也更出类拔萃,对……刘威被何晴抛弃,甩小23岁杨若兮,娶化妆师,51岁老来得子演员刘威自年轻起就有着不符合年龄的成熟,脸上很早就有了褶子,在事业上也从未大红大紫,然而他却多次俘获小女友的芳心,先是被小七岁的古装第一美女何晴倒追,之……世界上29个最暴力的城市(一)在智利圣地亚哥,防暴警察在学生罢工期间行动。在准备旅行的时候,我们都知道要小心地打包行李,寻找最优惠的旅游价格,查看天气预报。但我们很多人都忽视了研究目的地的安全性。你上……马拉多纳和贝利谁是足球历史第一人?揭露一些你从不知道的真相足球是世界第一运动,在足球历史的长河中,产生了两位大众普遍认可的球王,巴西的贝利和阿根廷的马拉多纳。而这两位球王的粉丝也在不断为谁是历史第一人争论不休,对于这个问题,国际足联官……红米K40Neo5与一加9R,到底谁才是2000元档位的霸主双十一有没有准备换手机的,趁着优惠是一个很不错的选择,不知道有多少人跟我一样,一直以来用的都是千元机,基本都是在红米与荣耀之间徘徊,虽然千元机也够用,只是多少还是感觉差点意思,……第一句就让你流泪的emo句子1。我已经很善良了,把委屈和心酸都藏在了黑夜中。2。她不图你什么的时候,你没有为她献过一束花。3。他们都觉得你们在一起了,只有你们自己清楚俩人之间的距离。4。……
vivo不再硬撑,悄悄降价1000元,12G512G7英寸屏头条创作挑战赛虽然说有些用户喜欢小屏手机,但是绝大部分用户还是喜欢大尺寸屏幕的机型,因为大尺寸的屏幕能够获得更多的知识,无论是在玩游戏还是刷视频,获得更好的使用体验,不过……到此为止,从新开始陪你从脆弱到坚强,我会一直在这世上有多少人,还在为情所扰,因爱执着?能被抢走的爱人,那不叫爱人;能随便分手的感情,那也不是什么真感情。我们都应该明白的,有些人走了就……东钱湖最美徒步路线十里四香小普陀从东钱湖十里四香出发,途径二灵寺,圆融广场,最后到小普陀入口,是一条绝美的徒步路线。单程约8公里,全是亲水游步道,景色优美,游客目前还不是太多这条古道很早就有了,这是我1……数字经济新一线城市长沙大力发展互联网体育2022长沙数字体育文创博览会启动。刘影摄中新网长沙11月4日电(刘影)11月4日,2022长沙数字体育文创博览会暨长沙体育消费展在湖南国际会展中心(芒果馆)开幕。……美登月火箭预计14日发射,50年前就能登月,为啥现在绕月这么人类在地球上发展繁衍数百万年,最初只不过是非洲草原上处在食物链中下层的小可怜,但是随着发展直立行走解放双手,学会制造工具和使用工具,聪明的大脑壳也让人类发展出智慧文明。我们不需……读书带给我的快乐小时候很多东西都给我带来了快乐。考试考好了,我会快乐!收到精美的玩具,我会快乐!得到父母以及老师的夸奖,我也会快乐但这些都比不上读书带给我的快乐多。记得有一次我到楼下面去……OK镜或纳入集采中间商赚八成利润将成过去式日前,河北省医用药品器械集中采购中心发布的《关于开展20种集采医用耗材产品信息填报工作的通知》表示,拟开展20种医用耗材集中带量采购,组织开展相关产品信息填报工作。值得一提的是……体坛非人类的肌肉,奥尼尔的麒麟臂,泰森的脖子,军神的鬼背在体坛中出色的肌肉非常的多,他们毕竟是靠这个吃饭的,肌肉不会差。不过有些天赋异禀,他们身上的肌肉就像是非人类的存在,像一般人即便是练到受伤,也很难练出他们的肌肉造型或者是围度。……因为地球越转越慢,互联网可能会崩溃本文来自微信公众号:果壳(ID:Guokr42),作者:莎士比利,编辑:翻翻、Steed,头图来自:unsplash现行公历中,平年有365天,闰年有366天,这是小朋友……今日全国尿素出厂价格2022年11月8日哈喽,大家好!这里是化肥价格行情!关注我每天看最新尿素、复合肥、磷铵、钾肥价格行情!今天(2022年11月8日)下面是今日国内最新尿素价格行情!今日、国内尿素市场继……27岁才登陆NBA的大龄新秀,吉诺比利的好兄弟,钻石斯科拉去NBA没有不散的宴席,所有的球星,无论实力高低,最后的结果都是退役,但退役并不代表离开,总有一些球星会永远留在记忆里,又或是在另一个领域冉冉升起,姚明曾经的路易斯斯科拉便是如此……湖人VS森林狼威少复出背锅?08:00NBA常规赛:湖人VS森林狼推荐:洛杉矶湖人9。5湖人现时以0胜4负成绩位列西部垫底的位置,球队上场面对掘金,双方在上半场的比赛打得难分难解,但在第三节比……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网