• [问题求助] 摄像头视觉 场景物品存在报警识别功能需求
    功能需求场景 : 传送货梯,人不能进入,只有货品进入,做到货品在货梯空间存在5分钟 发出报警功能。
  • [大赛资讯] 2023华为开发者大赛全球总决赛圆满收官,获奖名单揭晓
    【中国,东莞,2023年11月19日】今天,以“创想无限”为主题的2023华为开发者大赛全球总决赛及颁奖典礼在华为松山湖基地圆满落幕。本届大赛开设云底座和产业两大赛道,覆盖中国以及亚太、拉美、欧洲、土耳其等区域,吸引了来自全球30多个国家和地区的19000多名开发者、3000多支团队报名参赛。 在颁奖典礼上,华为颁发了3个金奖、6个银奖、9个铜奖、7个创新奖等超过25个奖项。全球总决赛大合照本届大赛自启动报名以来,备受全球各领域开发者关注,涌现了众多具有丰富想象力和创造力的优秀作品,包括应用华为云盘古大模型和IoT等能力的智慧工地管控平台、基于华为云AI开发生产线ModelArts和端云协同开发的新一代主动式外骨骼康复产品、将华为昇腾和AI技术应用于为特殊人士打造的无障碍智能交流应用、通过华为昇思MindSpore和AI能力打造的阻塞性睡眠呼吸暂停综合征解决方案、以及通过AI技术实现原声语音自动翻译的语言转译系统等。参赛作品由评委团从技术领先性、方案创新性、商业前景等维度进行综合评审,最终评选出获奖作品。在中国赛区的企业赛道,“天图万境”团队凭借“人工智能AI感知视听空间计算技术”作品一举夺魁,荣获银奖的队伍为“深圳前海粤十信息技术有限公司”和“北京聚力维度科技有限公司”,荣获铜奖的队伍为“国蓝中天”“Motphys”“耕耘逐梦”,荣获创新奖的队伍是“万商云集”和 “云天励飞”。中国赛区企业赛道金奖在中国赛区的学生赛道,“IoT智慧铝电解”团队凭借“基于华为云IoT的铝电解能耗监测管理系统”作品荣获金奖,荣获银奖的队伍为“质感队”和 “卓越脑康”,荣获铜奖的队伍为 “一把火”“融创眼援”“智睡芯安”,荣获创新奖的队伍是“郁云守护”和 “郑信智眼队”。中国赛区学生赛道金奖在亚太赛区,“nozama”队伍凭借“Magik(虚实游戏玩具)”作品荣获金奖,荣获银奖的队伍为“DecentraRating”和“Netizen”,荣获铜奖的队伍为 “HeyHi”“SmartAM”“IC”,荣获创新奖的队伍是“Soca.AI”“Aye-Aye”“CyberWhiz”。亚太赛区金奖华为云全球生态部总裁康宁、华为云CTO张宇昕、华为公司战略与产业发展副总裁肖然等嘉宾出席了总决赛颁奖典礼并为获奖队伍颁奖。康宁在致辞中表示:“全球数字经济蓬勃发展,以云为底座的创新生态,以大模型为代表的创新技术,正在加快重塑千行万业。开发者作为创新技术生态体系的核心力量,也迎来了高速发展的新机遇。华为将在多元算力领域、AI领域、云原生核心软件领域持续突破,构筑核心技术新生态,与开发者一路同行,引领数字未来。”张宇昕表示:“开发者是用代码改变世界的人,每个开发者都在引领数字时代,开创智能世界,每个开发者都了不起!华为公司希望提供连接开发者、连接企业、连接投资人的舞台,让更多开发者投入到软件开发、投入到创造新世界的洪流当中;让更多企业开发者创新产品、创造价值、加速企业发展;让更多的资金发现创新机会,创造商业价值。华为云希望和开发者一起,用创新的技术和产品来推动世界进步,创造更加美好的智能世界!”肖然在致辞中阐述了华为在根技术领域的研发投入成果,以及全面助力开发者成功的决心和行动。他表示:“未来,华为将持续加大技术投入和创新,并通过在供应链、标准和人才等领域开放合作、包容发展,与客户、伙伴、标准组织和开发者一起推动整个产业的进步,为各行各业的数字化转型提供技术保障和价值驱动,以推动数字经济的高质量发展。”作为华为ICT领域的顶级赛事,华为开发者大赛旨在面向全球开发者全面开放华为各产业领域的技术成果,鼓励开发者发挥想象力和创新精神,用ICT技术解决实际问题、创造无限价值,与华为一起引领数字未来、共建智能世界。本届大赛总奖金达500万元,除了丰厚的奖金外,华为云同步为每支参赛队伍提供的无门槛云资源券,提供优质课程、沙箱实验等丰富的学习资源扶持和华为云开发者认证券,并通过华为云学堂持续培养和赋能开发者。同时,优秀参赛者还能获得华为云云商店KooGallery、沃土云创计划、初创计划等提供的商业成功扶持。此外,大赛额外设置人才招聘绿色通道,如华为人才市场岗位库,人才双选会门票等资源。一直以来,华为云致力于构建以开发者为核心的、开放共赢的生态体系。目前,华为云全球开发者数量已超过500万人,合作伙伴42000多家,云商店SaaS应用已达10000多个,与全国110多所高校合作培养数万名专业人才,产、学、研、用深度融合,让核心技术生态行稳致远。面向飞速发展的大模型时代,在开发者方面,华为云提供盘古大模型研发工程套件,打造开放模型社区、大模型云学堂,帮助开发者更快实现大模型的开发落地。华为云希望广大开发者基于华为的根技术,利用云上的澎湃算力和盘古大模型的强大能力,共同构建起“百模千态”的繁荣生态。面向未来,华为将加快软、硬、边、端、云等全面融合,协同华为云、鲲鹏、昇腾、鸿蒙等开发生态,持续加大投入研发创新,与全球各领域开发者一起用技术推动世界进步。
  • [技术干货] 实验项目分享——ModelArts实现智能花卉识别
    简介实验项目ModelArts实现智能花卉识别的技术栈为ModelArts+OBS+IAM+ResNet_v1_50实验流程准备数据1.1.创建对象存储OBS进入华为云控制台,将光标移动至左边栏,弹出菜单中选择“服务列表”->“存储”->“对象存储服务OBS”,点击“创建桶”按钮进入创建界面。开始创建。配置参数如下:① 复制桶配置:不选② 区域:华北-北京四③ 桶名称:自定义,将在后续步骤使用④ 数据冗余存储策略:单AZ存储⑤ 默认存储类别:标准存储⑥ 桶策略:私有⑦ 默认加密:关闭⑧ 归档数据直读:关闭单击“立即创建”>“确定”,完成桶创建。点击创建的“桶名称”->“对象”->“新建文件夹”,创建一个文件夹,用于存放后续数据集进入此文件夹,新建两个文件夹,名称自定义,用于存放数据集的输入及输出。如下图所示:1.2.下载数据集在右侧浏览器新建一个标签栏,复制URL:cid:link_0进入AI gallery数据集——四类花卉图像分类小数据集页面,点击右侧下载按钮,下载训练所需的数据集。点击确认,进入下载详情页面,按以下参数填写:下载方式:ModelArts数据集目标区域:华北-北京四数据类型:图片数据集输出位置:选择上步中创建的数据集输出obs存储路径数据集输入位置:选择上步中创建的数据集输入obs存储路径名称:dataset点击“确认”,跳转至我的下载页面,可以查看数据集下载详情,等待数据集下载完成,如下图所示:训练模型接下来将使用训练集对预置的ResNet_v1_50模型进行重训练获取新的模型。回到ModelArts界面,进入左侧导航栏的【AI Gallery】在【AI Gallery】页面点击顶部【算法】进入算法页面,选择算法【图像分类-ResNet_v1_50】(也可在谷歌浏览器新建1个新页签,输入下方链接进入页面点击“前往控制台”,选择“华北-北京四”区域,返回ModelArts-算法管理页面,在我的订阅列表即可看到已订阅的算法。点击下拉按钮,选择最新版本,点击右侧创建训练作业。进入训练作业页面,填写参数如下:① 名称:自定义,如job-flowers② 描述:可不填③ 创建方式:默认选择上步已订阅算法最新版本④ 训练输入:点击右侧数据集,选择已创建的数据集dataset-flowers,点击下拉按钮,勾选版本,点击确认。⑤ 训练输出:点击右侧数据存储位置,在1.1中创建的obs桶中创建一个文件夹,用于存储训练输出,建议选一个空目录。⑥ 超参:默认⑦ 资源池:公共资源池⑧ 资源类型:GPU⑨ 规格:GPU:1*NVIDIA-V100(32GB) | CPU:8核64GB;  ⑩ 计算节点个数:1;其他参数默认,点击“提交”,参数确认无误后,单击“确认”,完成训练作业创建。系统自动返回ModelArts-训练作业列表,在“训练作业”列表中,单击作业名称,进入训练作业详情页。在训练作业详情页的左侧,可以查看此次训练作业的基本信息和算法配置的相关信息。在训练作业详情页的右侧,可以查看此次训练作业的系统日志,训练日志窗口提供日志预览、日志下载、日志中搜索关键字能力;以及资源的占用情况。部署模型模型训练完成后,可以创建预测作业,将模型部署为在线预测服务。操作步骤如下:3.1.创建AI应用点击右上角“创建AI应用”,进入创建AI应用页面填写参数如下:名称:model-flowers版本:默认;原模型来源:【从训练中选择】,然后选择步骤2中训练完成的模型;部署类型:在线服务;其他参数默认即可,参数确认无误后,单击“立即创建”,完成模型创建。返回AI应用列表,当AI应用状态为“正常”时,表示创建成功。说明:导入模型约需【3分钟】3.2.部署在线服务点击已创建AI应用名称前的下拉箭头,点击操作列中【部署】,选择部署菜单栏中的【在线服务】。或点击模型名称进入模型详情页,点击详情页右上角的【部署】,在部署菜单中选择【在线服务】。填写参数如下:① 名称:service-flowers② 是否自动停止:默认关闭③ 描述:自定义⑤ 资源池:公共资源池⑥ 选择AI应用及配置:⑦ AI应用来源:我的AI应用⑧ 选择AI应用及版本:默认已选择所创建的模型名称及版本⑨ 计算节点规格:CPU:2核8GB其他配置默认即可。参数设置完成后,单击“下一步”,根据界面提示,点击“提交”,完成在线服务的部署。您可以进入“在线服务列表”页面,等待服务部署结束,当服务状态变为运行中时,表示服务部署成功。说明:部署模型为导入的模型。部署创建完成后,返回列表需要等待部署成功【约等待2分钟】,部署服务状态显示“运行中”,即可进行下一步操作。发起预测请求下载测试图片:https://sandbox-expriment-files.obs.cn-north-1.myhuaweicloud.com:443/20221121/flower.png点击刚刚部署上线(已完成部署)的在线服务名称,进入服务详情,点击“预测”标签,在此可进行在线预测,如下图所示。操作:点击左侧“上传”按钮,选择选择已下载的预测图片文件,点击“预测”完成操作。预测结果如下,识别出了蒲公英。PS:统一身份认证(Identity and Access Management,简称IAM)是华为云提供权限管理的基础服务,可以帮助您安全地控制云服务和资源的访问权限。OBS是一项面向Internet访问的服务,提供了基于HTTP/HTTPS协议的Web服务接口,用户可以随时随地连接到Internet的电脑上,通过OBS管理控制台或各种OBS工具访问和管理存储在OBS中的数据。此外,OBS支持SDK和OBS API接口,可使用户方便管理自己存储在OBS上的数据,以及开发多种类型的上层业务应用。 ModelArts是一个一站式的开发平台,能够支撑开发者从数据到AI应用的全流程开发过程。包含数据处理、模型训练、模型管理、模型部署等操作,并且提供AI Gallery功能,能够在市场内与其他开发者分享模型。更多详细信息可以查看附上的开发文档
  • Resnet实现图像分类的学习实践
    在课堂中学习了Resnet模型,并根据老师所给程序在ModelArts创建Notebook进行运行。以下是一些学习实践过程及结果的记录与分享:1.Resent的实现(1)导入工具包(2)定义Resent模型(3)获得数据集(4)定义训练过程(基于训练集)(5)定义测试验证(基于验证集)(6)定义超参数(7)开始训练2.运行及测试结果(1)根据所给程序,初始设置batch_size = 1024;learning_rate=0.0001。此时,train loss 和 test loss 随 Epoch 的部分变化结果如下所示:(最终准确率在30%左右)Files already downloaded and verifiedFiles already downloaded and verified================ epoch: 0 ================Epoch: 0, Step 0, Loss: 4.738948345184326Epoch: 0, Step 10, Loss: 4.255447864532471Epoch: 0, Step 20, Loss: 3.9827303886413574Epoch: 0, Step 30, Loss: 3.7523534297943115Epoch: 0, Step 40, Loss: 3.5549187660217285Test Accuracy: 16.689999999999998%================ epoch: 1 ================Epoch: 1, Step 0, Loss: 3.417269706726074Epoch: 1, Step 10, Loss: 3.238386392593384Epoch: 1, Step 20, Loss: 3.1039466857910156Epoch: 1, Step 30, Loss: 2.972597599029541Epoch: 1, Step 40, Loss: 2.856231451034546Test Accuracy: 26.08%================ epoch: 2 ================Epoch: 2, Step 0, Loss: 2.8012454509735107Epoch: 2, Step 10, Loss: 2.572690725326538Epoch: 2, Step 20, Loss: 2.436326503753662Epoch: 2, Step 30, Loss: 2.320054531097412Epoch: 2, Step 40, Loss: 2.2200241088867188Test Accuracy: 29.599999999999998%================ epoch: 3 ================Epoch: 3, Step 0, Loss: 2.1936466693878174Epoch: 3, Step 10, Loss: 1.915575385093689Epoch: 3, Step 20, Loss: 1.7562488317489624Epoch: 3, Step 30, Loss: 1.6630589962005615Epoch: 3, Step 40, Loss: 1.5405477285385132Test Accuracy: 28.74%================ epoch: 4 ================Epoch: 4, Step 0, Loss: 1.4985536336898804Epoch: 4, Step 10, Loss: 1.2820249795913696Epoch: 4, Step 20, Loss: 1.1182427406311035Epoch: 4, Step 30, Loss: 1.054147481918335Epoch: 4, Step 40, Loss: 1.022835612297058Test Accuracy: 26.1%================ epoch: 5 ================Epoch: 5, Step 0, Loss: 0.9999890923500061Epoch: 5, Step 10, Loss: 0.885351300239563Epoch: 5, Step 20, Loss: 0.794113039970398Epoch: 5, Step 30, Loss: 0.7815513014793396Epoch: 5, Step 40, Loss: 0.7719193696975708Test Accuracy: 23.71%================ epoch: 6 ================Epoch: 6, Step 0, Loss: 0.807374894618988Epoch: 6, Step 10, Loss: 0.7296508550643921Epoch: 6, Step 20, Loss: 0.6557181477546692Epoch: 6, Step 30, Loss: 0.5987974405288696Epoch: 6, Step 40, Loss: 0.5647777318954468Test Accuracy: 24.98%================ epoch: 7 ================Epoch: 7, Step 0, Loss: 0.5228223204612732Epoch: 7, Step 10, Loss: 0.521501362323761Epoch: 7, Step 20, Loss: 0.4148188531398773Epoch: 7, Step 30, Loss: 0.3891873359680176Epoch: 7, Step 40, Loss: 0.3635284900665283Test Accuracy: 25.740000000000002%================ epoch: 8 ================Epoch: 8, Step 0, Loss: 0.35147446393966675Epoch: 8, Step 10, Loss: 0.27659207582473755Epoch: 8, Step 20, Loss: 0.2709190845489502Epoch: 8, Step 30, Loss: 0.2323095202445984Epoch: 8, Step 40, Loss: 0.23784960806369781Test Accuracy: 26.39%================ epoch: 9 ================Epoch: 9, Step 0, Loss: 0.22373342514038086Epoch: 9, Step 10, Loss: 0.2217608392238617Epoch: 9, Step 20, Loss: 0.15514764189720154Epoch: 9, Step 30, Loss: 0.16614097356796265Epoch: 9, Step 40, Loss: 0.1333569884300232Test Accuracy: 27.24%================ epoch: 10 ================Epoch: 10, Step 0, Loss: 0.1310970038175583Epoch: 10, Step 10, Loss: 0.10795009136199951Epoch: 10, Step 20, Loss: 0.09246394783258438Epoch: 10, Step 30, Loss: 0.10038184374570847Epoch: 10, Step 40, Loss: 0.09417460858821869Test Accuracy: 27.639999999999997%================ epoch: 11 ================Epoch: 11, Step 0, Loss: 0.07077963650226593Epoch: 11, Step 10, Loss: 0.07666710764169693Epoch: 11, Step 20, Loss: 0.0636228695511818Epoch: 11, Step 30, Loss: 0.04714050889015198Epoch: 11, Step 40, Loss: 0.06018964573740959Test Accuracy: 28.71%================ epoch: 12 ================Epoch: 12, Step 0, Loss: 0.05108068883419037Epoch: 12, Step 10, Loss: 0.04214892536401749Epoch: 12, Step 20, Loss: 0.03265600651502609Epoch: 12, Step 30, Loss: 0.03236588463187218Epoch: 12, Step 40, Loss: 0.03212810680270195Test Accuracy: 28.99%================ epoch: 13 ================Epoch: 13, Step 0, Loss: 0.02681496925652027Epoch: 13, Step 10, Loss: 0.022608093917369843Epoch: 13, Step 20, Loss: 0.01608162187039852Epoch: 13, Step 30, Loss: 0.03622477874159813Epoch: 13, Step 40, Loss: 0.026449179276823997Test Accuracy: 29.470000000000002%================ epoch: 14 ================Epoch: 14, Step 0, Loss: 0.01653885468840599Epoch: 14, Step 10, Loss: 0.010875535197556019Epoch: 14, Step 20, Loss: 0.011256149038672447Epoch: 14, Step 30, Loss: 0.029273658990859985Epoch: 14, Step 40, Loss: 0.032421231269836426Test Accuracy: 29.049999999999997%================ epoch: 15 ================Epoch: 15, Step 0, Loss: 0.013880199752748013Epoch: 15, Step 10, Loss: 0.010487137362360954Epoch: 15, Step 20, Loss: 0.01054014265537262Epoch: 15, Step 30, Loss: 0.02424754574894905Epoch: 15, Step 40, Loss: 0.012607093900442123Test Accuracy: 29.62%================ epoch: 16 ================Epoch: 16, Step 0, Loss: 0.008765900507569313Epoch: 16, Step 10, Loss: 0.007048243656754494Epoch: 16, Step 20, Loss: 0.008071326650679111Epoch: 16, Step 30, Loss: 0.016480540856719017Epoch: 16, Step 40, Loss: 0.011516512371599674Test Accuracy: 30.0%================ epoch: 17 ================Epoch: 17, Step 0, Loss: 0.0064095971174538136Epoch: 17, Step 10, Loss: 0.004685310181230307Epoch: 17, Step 20, Loss: 0.004435277543962002Epoch: 17, Step 30, Loss: 0.017189662903547287Epoch: 17, Step 40, Loss: 0.011844292283058167Test Accuracy: 30.04%================ epoch: 18 ================Epoch: 18, Step 0, Loss: 0.004041185602545738Epoch: 18, Step 10, Loss: 0.004346000961959362Epoch: 18, Step 20, Loss: 0.008933650329709053Epoch: 18, Step 30, Loss: 0.012093418277800083Epoch: 18, Step 40, Loss: 0.008453783579170704Test Accuracy: 30.020000000000003%================ epoch: 19 ================Epoch: 19, Step 0, Loss: 0.003529253415763378Epoch: 19, Step 10, Loss: 0.002985781291499734Epoch: 19, Step 20, Loss: 0.0027229641564190388Epoch: 19, Step 30, Loss: 0.021751798689365387Epoch: 19, Step 40, Loss: 0.00738913007080555Test Accuracy: 30.099999999999998%================ epoch: 20 ================Epoch: 20, Step 0, Loss: 0.003075427608564496Epoch: 20, Step 10, Loss: 0.0026734406128525734Epoch: 20, Step 20, Loss: 0.00244825123809278Epoch: 20, Step 30, Loss: 0.007915157824754715Epoch: 20, Step 40, Loss: 0.006863289512693882Test Accuracy: 30.3%================ epoch: 21 ================Epoch: 21, Step 0, Loss: 0.002420809818431735Epoch: 21, Step 10, Loss: 0.002310082782059908Epoch: 21, Step 20, Loss: 0.002210301114246249Epoch: 21, Step 30, Loss: 0.018848098814487457Epoch: 21, Step 40, Loss: 0.006330176256597042Test Accuracy: 30.240000000000002%================ epoch: 22 ================Epoch: 22, Step 0, Loss: 0.002132808556780219Epoch: 22, Step 10, Loss: 0.002030259696766734Epoch: 22, Step 20, Loss: 0.0019014010904356837Epoch: 22, Step 30, Loss: 0.005129395984113216Epoch: 22, Step 40, Loss: 0.005537337623536587Test Accuracy: 30.270000000000003%================ epoch: 23 ================Epoch: 23, Step 0, Loss: 0.0019582901149988174Epoch: 23, Step 10, Loss: 0.0018943308386951685Epoch: 23, Step 20, Loss: 0.0017575022066012025Epoch: 23, Step 30, Loss: 0.016244899481534958Epoch: 23, Step 40, Loss: 0.005317316856235266Test Accuracy: 30.34%================ epoch: 24 ================Epoch: 24, Step 0, Loss: 0.001790825743228197Epoch: 24, Step 10, Loss: 0.0017201013397425413Epoch: 24, Step 20, Loss: 0.0016320045106112957Epoch: 24, Step 30, Loss: 0.004616044461727142Epoch: 24, Step 40, Loss: 0.005004520528018475Test Accuracy: 30.37%================ epoch: 25 ================Epoch: 25, Step 0, Loss: 0.001665924210101366Epoch: 25, Step 10, Loss: 0.001624491298571229Epoch: 25, Step 20, Loss: 0.0015230735298246145Epoch: 25, Step 30, Loss: 0.012112809345126152Epoch: 25, Step 40, Loss: 0.004875780548900366Test Accuracy: 30.349999999999998%================ epoch: 26 ================Epoch: 26, Step 0, Loss: 0.001563299330882728Epoch: 26, Step 10, Loss: 0.0015107914805412292Epoch: 26, Step 20, Loss: 0.0014351849677041173Epoch: 26, Step 30, Loss: 0.004178904928267002Epoch: 26, Step 40, Loss: 0.0048788730055093765Test Accuracy: 30.36%================ epoch: 27 ================Epoch: 27, Step 0, Loss: 0.0014841527445241809Epoch: 27, Step 10, Loss: 0.0014560072449967265Epoch: 27, Step 20, Loss: 0.0013575487537309527Epoch: 27, Step 30, Loss: 0.012932670302689075Epoch: 27, Step 40, Loss: 0.0047125499695539474Test Accuracy: 30.31%================ epoch: 28 ================Epoch: 28, Step 0, Loss: 0.0013955835020169616Epoch: 28, Step 10, Loss: 0.0013590363087132573Epoch: 28, Step 20, Loss: 0.0012899343855679035Epoch: 28, Step 30, Loss: 0.003891129745170474Epoch: 28, Step 40, Loss: 0.004475367721170187Test Accuracy: 30.3%================ epoch: 29 ================Epoch: 29, Step 0, Loss: 0.0013218162348493934Epoch: 29, Step 10, Loss: 0.0012971273390576243Epoch: 29, Step 20, Loss: 0.0012194958981126547Epoch: 29, Step 30, Loss: 0.010904560796916485Epoch: 29, Step 40, Loss: 0.004483921453356743Test Accuracy: 30.349999999999998%================ epoch: 30 ================Epoch: 30, Step 0, Loss: 0.0012635505991056561Epoch: 30, Step 10, Loss: 0.0012238533236086369Epoch: 30, Step 20, Loss: 0.001171094598248601Epoch: 30, Step 30, Loss: 0.003731002099812031Epoch: 30, Step 40, Loss: 0.004489581100642681Test Accuracy: 30.44%================ epoch: 31 ================Epoch: 31, Step 0, Loss: 0.0012064295588061213Epoch: 31, Step 10, Loss: 0.0011814942117780447Epoch: 31, Step 20, Loss: 0.0011084245052188635Epoch: 31, Step 30, Loss: 0.010918247513473034Epoch: 31, Step 40, Loss: 0.004249677062034607Test Accuracy: 30.44%================ epoch: 32 ================Epoch: 32, Step 0, Loss: 0.0011464636772871017Epoch: 32, Step 10, Loss: 0.0011157296830788255Epoch: 32, Step 20, Loss: 0.0010655020596459508Epoch: 32, Step 30, Loss: 0.0035718355793505907Epoch: 32, Step 40, Loss: 0.004267847631126642Test Accuracy: 30.509999999999998%================ epoch: 33 ================Epoch: 33, Step 0, Loss: 0.0010997997596859932Epoch: 33, Step 10, Loss: 0.0010838627349585295Epoch: 33, Step 20, Loss: 0.0010143746621906757Epoch: 33, Step 30, Loss: 0.010117175057530403Epoch: 33, Step 40, Loss: 0.004162825644016266Test Accuracy: 30.43%================ epoch: 34 ================Epoch: 34, Step 0, Loss: 0.0010507091647014022Epoch: 34, Step 10, Loss: 0.0010267348261550069Epoch: 34, Step 20, Loss: 0.0009758920641615987Epoch: 34, Step 30, Loss: 0.003296484239399433Epoch: 34, Step 40, Loss: 0.004471142776310444Test Accuracy: 30.580000000000002%================ epoch: 35 ================Epoch: 35, Step 0, Loss: 0.0010124717373400927Epoch: 35, Step 10, Loss: 0.0009983875788748264Epoch: 35, Step 20, Loss: 0.0009379943949170411Epoch: 35, Step 30, Loss: 0.010011741891503334Epoch: 35, Step 40, Loss: 0.004122457932680845Test Accuracy: 30.45%================ epoch: 36 ================Epoch: 36, Step 0, Loss: 0.0009714484331198037Epoch: 36, Step 10, Loss: 0.0009493435500189662Epoch: 36, Step 20, Loss: 0.0009067429346032441Epoch: 36, Step 30, Loss: 0.003059440990909934Epoch: 36, Step 40, Loss: 0.003779624355956912Test Accuracy: 30.59%================ epoch: 37 ================Epoch: 37, Step 0, Loss: 0.0009371026535518467Epoch: 37, Step 10, Loss: 0.0009284141124226153Epoch: 37, Step 20, Loss: 0.0008677949081175029Epoch: 37, Step 30, Loss: 0.009749548509716988Epoch: 37, Step 40, Loss: 0.004097274504601955Test Accuracy: 30.44%================ epoch: 38 ================Epoch: 38, Step 0, Loss: 0.0008963147993199527Epoch: 38, Step 10, Loss: 0.0008796583279035985Epoch: 38, Step 20, Loss: 0.0008349142735823989Epoch: 38, Step 30, Loss: 0.0028689114842563868Epoch: 38, Step 40, Loss: 0.0037223438266664743Test Accuracy: 30.53%================ epoch: 39 ================Epoch: 39, Step 0, Loss: 0.0008696657023392618Epoch: 39, Step 10, Loss: 0.0008523689466528594Epoch: 39, Step 20, Loss: 0.0008050688775256276Epoch: 39, Step 30, Loss: 0.009185832925140858Epoch: 39, Step 40, Loss: 0.0039543770253658295Test Accuracy: 30.54%================ epoch: 40 ================Epoch: 40, Step 0, Loss: 0.0008351270807906985Epoch: 40, Step 10, Loss: 0.0008215241250582039Epoch: 40, Step 20, Loss: 0.0007779219304211438Epoch: 40, Step 30, Loss: 0.0026640305295586586Epoch: 40, Step 40, Loss: 0.003869910491630435Test Accuracy: 30.620000000000005%(2)尝试提高最终准确率。选择通过改变一次训练的样本数目以及学习率,以提高最终接近稳定状态下的准确率。其他可以提高准确率的方法有:使用dropout、batch_nomalization等。经过多次尝试,选取以下两种情况进行记录:(最终将接近稳定状态下的准确率从30%提高至50%左右)(2-1)修改一次batch_size = 2048;learning_rate = 0.001此时,train loss 和 test loss 随 Epoch 的部分变化结果如下所示:(最终准确率在45%左右)运行发现在60次训练左右准确率趋于稳定:(截取最后几次训练数据进行展示)================ epoch: 56 ================Epoch: 56, Step 0, Loss: 7.18005103408359e-05Epoch: 56, Step 10, Loss: 7.413411367451772e-05Epoch: 56, Step 20, Loss: 0.001145041431300342Test Accuracy: 45.03%================ epoch: 57 ================Epoch: 57, Step 0, Loss: 6.976973236305639e-05Epoch: 57, Step 10, Loss: 7.286847539944574e-05Epoch: 57, Step 20, Loss: 0.0006657794583588839Test Accuracy: 45.050000000000004%================ epoch: 58 ================Epoch: 58, Step 0, Loss: 6.862186273792759e-05Epoch: 58, Step 10, Loss: 7.077038753777742e-05Epoch: 58, Step 20, Loss: 0.0011522056302055717Test Accuracy: 45.0%================ epoch: 59 ================Epoch: 59, Step 0, Loss: 6.702987593598664e-05Epoch: 59, Step 10, Loss: 6.995741568971425e-05Epoch: 59, Step 20, Loss: 0.0006697141216136515Test Accuracy: 45.129999999999995%================ epoch: 60 ================Epoch: 60, Step 0, Loss: 6.572520942427218e-05Epoch: 60, Step 10, Loss: 6.784420111216605e-05Epoch: 60, Step 20, Loss: 0.0010953237069770694Test Accuracy: 45.08%(2-2)修改一次batch_size = 4096;learning_rate = 0.002此时,train loss 和 test loss 随 Epoch 的部分变化结果如下所示:(最终准确率在49%左右)运行发现在65次训练左右准确率趋于稳定:(截取最后几次训练数据进行展示)================ epoch: 61 ================Epoch: 61, Step 0, Loss: 0.00024627658422105014Epoch: 61, Step 10, Loss: 0.0005478289094753563Test Accuracy: 49.57%================ epoch: 62 ================Epoch: 62, Step 0, Loss: 0.00023818077170290053Epoch: 62, Step 10, Loss: 0.0005578603013418615Test Accuracy: 49.559999999999995%================ epoch: 63 ================Epoch: 63, Step 0, Loss: 0.00023028196301311255Epoch: 63, Step 10, Loss: 0.0005240143509581685Test Accuracy: 49.559999999999995%================ epoch: 64 ================Epoch: 64, Step 0, Loss: 0.0002232123661087826Epoch: 64, Step 10, Loss: 0.0005316751776263118Test Accuracy: 49.54%================ epoch: 65 ================Epoch: 65, Step 0, Loss: 0.00021623082284349948Epoch: 65, Step 10, Loss: 0.0005059240502305329Test Accuracy: 49.64%
  • [技术干货] 去除水印
    原本链接import cv2 import numpy as np import matplotlib.pyplot as plt def enable_color(rgb_image,check_image): # h, w = rgb_image.shape[:2] for i in range(0, h - 1): for j in range(0, w - 1): if check_image[i][j] == 255: for k in range(3): rgb_image[i][j][k] = 255 return rgb_image if __name__ =='__main__': img_path = "1.jpg" im = cv2.imread(img_path) gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY) background = gray.copy() for i in range(1,5): kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(2*i+1,2*i+1)) # print('kernel size is ',kernel) background = cv2.morphologyEx(background,cv2.MORPH_CLOSE,kernel) background = cv2.morphologyEx(background,cv2.MORPH_CLOSE,kernel) diff = background - gray # 计算差距 # cv2.namedWindow('diff',cv2.WINDOW_FREERATIO) # 获取图像中前景背景之差 # cv2.imshow('diff',background) # 阈值分割获取黑色字体 _,bw = cv2.threshold(diff,0,255,cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU) # 阈值分割获取黑色区域 # cv2.namedWindow('bw_before', cv2.WINDOW_FREERATIO) # cv2.imshow('bw_before', bw) _,dark = cv2.threshold(background,0,255,cv2.THRESH_BINARY_INV|cv2.THRESH_OTSU) darkpix = cv2.countNonZero(dark)# 获取 dark非0d图像像素个数 darkpix = [0]*darkpix index = 0 # cv2.namedWindow('gray', cv2.WINDOW_FREERATIO) # cv2.imshow('gray', gray) for r in range(dark.shape[0]): for c in range(dark.shape[1]): if(dark[r][c]): darkpix[index] = gray[r][c] index = index +1 # 阈值分割 dark 区域 因此我们在里面得到更深的像素 darkpix = np.array(darkpix) _,darkpix = cv2.threshold(darkpix,0,255,cv2.THRESH_BINARY | cv2.THRESH_OTSU) # cv2.namedWindow('darkpix', cv2.WINDOW_FREERATIO) # cv2.imshow('darkpix', darkpix) # 把 取到的像素粘贴到 其渠道的 darker pixels # cv2.namedWindow('dark',cv2.WINDOW_FREERATIO) # cv2.imshow('dark',dark) index = 0 for r in range(dark.shape[0]): for c in range(dark.shape[1]): if (dark[r][c]): bw[r][c] = darkpix[index] index = index +1 # cv2.namedWindow('bw',cv2.WINDOW_FREERATIO) # cv2.imshow('bw',bw) out=enable_color(im, bw) # cv2.namedWindow('out',cv2.WINDOW_FREERATIO) # cv2.imshow('out',out) cv2.imwrite(filename="77__.jpg", img=bw) cv2.imwrite(filename="77__5.jpg",img=out) # cv2.waitKey(0)
  • [其他] 图像识别常见算法
    、# 图像边缘检测1. sobel 算子Sobel算子是一种常用于图像处理和计算机视觉中的边缘检测算法。它用于识别图像中的边缘区域,即图像中灰度值发生剧烈变化的地方。Sobel算子基于图像的灰度梯度,通过计算每个像素点周围像素的灰度值差异,来确定边缘的位置和方向。Sobel算子主要由两个3x3的矩阵组成,分别用于计算图像在水平和垂直方向的梯度。这两个矩阵通常被称为Sobel算子模板或卷积核。下面是水平和垂直方向的Sobel算子模板示例:水平方向Sobel算子模板(Gx):-1 0 1 -2 0 2 -1 0 1垂直方向Sobel算子模板(Gy):-1 -2 -1 0 0 0 1 2 1Sobel算子的计算过程如下:首先,将Sobel算子模板与图像的每个像素进行卷积操作。对于每个像素,将其与周围的8个像素进行乘法运算,然后将乘积相加得到一个结果。 对于水平方向的Sobel算子,将像素与模板进行乘法运算后相加的结果表示图像在水平方向上的梯度。 对于垂直方向的Sobel算子,将像素与模板进行乘法运算后相加的结果表示图像在垂直方向上的梯度。 在水平和垂直方向上的梯度计算完成后,可以通过以下公式来计算图像中每个像素的梯度幅值和梯度方向: 梯度幅值(G):G = sqrt(Gx^2 + Gy^2) 梯度方向(θ):θ = atan2(Gy, Gx) 最后,可以根据梯度幅值进行边缘检测。一般来说,梯度幅值越大的像素点,很可能是图像中的边缘点。Sobel算子是一种简单而有效的边缘检测算法,常用于图像处理任务中。它可以帮助我们在图像中找到边缘信息,并在计算机视觉领域中的对象检测、图像分割等任务中发挥重要作用。1. 2sobel 算子(cv2实现)import cv2 import numpy as np # 读取图像 image = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE) # 计算水平方向和垂直方向上的Sobel梯度 sobel_x = cv2.Sobel(image, cv2.CV_64F, 1, 0, ksize=3) sobel_y = cv2.Sobel(image, cv2.CV_64F, 0, 1, ksize=3) # 将梯度值转换为绝对值 sobel_x = np.absolute(sobel_x) sobel_y = np.absolute(sobel_y) # 将梯度值缩放到0-255范围内 sobel_x = np.uint8(sobel_x) sobel_y = np.uint8(sobel_y) # 将水平和垂直方向上的梯度值合并 sobel_combined = cv2.bitwise_or(sobel_x, sobel_y) # 显示原始图像和Sobel边缘检测结果 cv2.imshow('Original Image', image) cv2.imshow('Sobel X', sobel_x) cv2.imshow('Sobel Y', sobel_y) cv2.imshow('Sobel Combined', sobel_combined) cv2.waitKey(0) cv2.destroyAllWindows() # 函数cv2.Sobel()用于计算图像的Sobel梯度。下面是该函数的参数及其含义的解释: # image:输入图像。这应该是一个单通道灰度图像(如使用参数cv2.IMREAD_GRAYSCALE加载的图像),或者可以是多通道图像,其中仅考虑一个通道进行边缘检测。 # cv2.CV_64F:输出图像的数据类型。这里我们使用cv2.CV_64F表示64位浮点型数据,以便在计算梯度时能够保留负数值。 # 1:x方向上的差分阶数。这指定了在x方向上计算梯度时使用的差分阶数,设置为1表示使用一阶导数。 # 0:y方向上的差分阶数。这指定了在y方向上计算梯度时使用的差分阶数,设置为0表示不在y方向上计算梯度。 # ksize=3:Sobel算子的卷积核大小。它定义了在计算梯度时要使用的卷积核的大小。在这种情况下,ksize=3表示使用一个3x3的卷积核。 # 请注意,Sobel算子可以在x方向和y方向上分别计算梯度,通过使用不同的差分阶数来指定。在上述示例中,我们选择在x方向上计算一阶导数(水平方向) # ,而在y方向上不计算梯度。这是因为Sobel算子通常用于检测图像中的水平边缘。如果您希望检测垂直边缘,可以将x和y方向的差分阶数进行交换。2. Prewitt算子Prewitt算子是一种常用于图像处理和计算机视觉中的边缘检测算法,类似于Sobel算子。它也用于检测图像中的边缘区域,即图像中灰度值发生剧烈变化的地方。Prewitt算子基于图像的灰度梯度,通过计算每个像素点周围像素的灰度值差异来确定边缘的位置和方向。Prewitt算子与Sobel算子类似,都使用两个3x3的矩阵来计算图像的梯度。下面是水平和垂直方向的Prewitt算子模板示例:水平方向Prewitt算子模板(Gx):-1 0 1 -1 0 1 -1 0 1垂直方向Prewitt算子模板(Gy):-1 -1 -1 0 0 0 1 1 1Prewitt算子的计算过程与Sobel算子类似:首先,将Prewitt算子模板与图像的每个像素进行卷积操作。对于每个像素,将其与周围的8个像素进行乘法运算,然后将乘积相加得到一个结果。 对于水平方向的Prewitt算子,将像素与模板进行乘法运算后相加的结果表示图像在水平方向上的梯度。 对于垂直方向的Prewitt算子,将像素与模板进行乘法运算后相加的结果表示图像在垂直方向上的梯度。 可以通过以下公式计算图像中每个像素的梯度幅值和梯度方向: 梯度幅值(G):G = sqrt(Gx^2 + Gy^2) 梯度方向(θ):θ = atan2(Gy, Gx) 最后,可以根据梯度幅值进行边缘检测。梯度幅值较大的像素点可能表示图像中的边缘点。Prewitt算子与Sobel算子相比,差别较小。它们的模板略有不同,因此在某些情况下,Prewitt算子可能产生略微不同的边缘检测结果。在实际应用中,您可以根据任务的要求选择使用Sobel算子还是Prewitt算子。2.2 Prewitt算子(cv2实现)import cv2 import numpy as np # 读取图像 image = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE) # 构建Prewitt算子的卷积核 kernel_x = np.array([[-1, 0, 1], [-1, 0, 1], [-1, 0, 1]], dtype=np.float32) kernel_y = np.array([[-1, -1, -1], [0, 0, 0], [1, 1, 1]], dtype=np.float32) # 使用filter2D函数进行卷积运算 prewitt_x = cv2.filter2D(image, -1, kernel_x) prewitt_y = cv2.filter2D(image, -1, kernel_y) # 将梯度值转换为绝对值 prewitt_x = np.absolute(prewitt_x) prewitt_y = np.absolute(prewitt_y) # 将梯度值缩放到0-255范围内 prewitt_x = np.uint8(prewitt_x) prewitt_y = np.uint8(prewitt_y) # 将水平和垂直方向上的梯度值合并 prewitt_combined = cv2.bitwise_or(prewitt_x, prewitt_y) # 显示原始图像和Prewitt边缘检测结果 cv2.imshow('Original Image', image) cv2.imshow('Prewitt X', prewitt_x) cv2.imshow('Prewitt Y', prewitt_y) cv2.imshow('Prewitt Combined', prewitt_combined) cv2.waitKey(0) cv2.destroyAllWindows()2.3 Prewitt算子与sobel算子对比Sobel算子和Prewitt算子是两种常用的边缘检测算子,它们在计算边缘梯度时略有不同。下面是Sobel算子和Prewitt算子之间的主要差别: 1 模板差异: Sobel算子的水平方向和垂直方向的模板分别为:Gx = [[-1, 0, 1], [-2, 0, 2], [-1, 0, 1]] Gy = [[-1, -2, -1], [ 0, 0, 0], [ 1, 2, 1]]Prewitt算子的水平方向和垂直方向的模板分别为:Gx = [[-1, 0, 1], [-1, 0, 1], [-1, 0, 1]] Gy = [[-1, -1, -1], [ 0, 0, 0], [ 1, 1, 1]]2 灵敏度差异: Sobel算子的模板在中心位置权重较大,因此对中心像素的梯度响应更为敏感。 Prewitt算子的模板在水平和垂直方向上的权重相等,对中心像素和周围像素的梯度响应相对均衡。 3 梯度估计: 由于Sobel算子的模板权重较大,它更适合在边缘具有较高对比度的图像中进行梯度估计。 Prewitt算子在边缘具有较弱对比度的图像中也能提供较好的梯度估计。 4 计算效率: 由于Sobel算子的模板中存在更多非零权重,计算Sobel算子的梯度可能稍微更为耗时。 Prewitt算子的模板中非零权重较少,计算Prewitt算子的梯度相对较快。3. canny算子Canny算子是一种常用的边缘检测算法,由John F. Canny于1986年提出。它被广泛应用于计算机视觉和图像处理领域,用于检测图像中的边缘。Canny算子在边缘检测中具有较高的准确性和良好的噪声抑制能力。Canny算子的边缘检测过程包括以下几个步骤:1:噪声抑制: 首先,对输入图像进行高斯滤波以减少噪声的影响。高斯滤波平滑图像,通过计算每个像素周围邻域内像素的加权平均值来达到这一目的。2:梯度计算: 然后,使用Sobel算子计算图像的梯度。Sobel算子分别在水平和垂直方向上对图像进行卷积操作,得到每个像素点的梯度强度和梯度方向。3:非极大值抑制: 接下来,执行非极大值抑制来细化边缘。对于每个像素点,根据其梯度方向,检查它是否为该方向上局部梯度的极大值。如果不是极大值,则被抑制。4:双阈值处理: 通过双阈值处理来确定真正的边缘。设置两个阈值:低阈值和高阈值。根据像素的梯度强度,将像素分为强边缘、弱边缘和非边缘三类。只有当像素的梯度强度超过高阈值时,才被认为是强边缘。如果像素的梯度强度低于低阈值,则被视为非边缘。位于两个阈值之间的像素被认为是弱边缘。可以选择执行边缘连接来连接强边缘与与之相邻的弱边缘。5:边缘连接: 可选的边缘连接步骤可以通过将弱边缘与相邻的强边缘连接起来,从而形成完整的边缘。这可以通过在弱边缘的邻域内查找强边缘来实现。Canny算子的输出结果是二进制图像,其中边缘像素被标记为白色(255),非边缘像素被标记为黑色(0)。3.2 非极大值抑制非极大值抑制(Non-Maximum Suppression,简称NMS)是Canny边缘检测算法中的一个重要步骤,用于细化边缘并保留边缘的细节信息。该步骤通过在梯度方向上进行比较,仅保留局部梯度的极大值,将非极大值抑制。以下是非极大值抑制的详细步骤:梯度计算: 首先,在Canny算子的边缘检测过程中,通过应用Sobel算子计算图像的梯度。这会得到每个像素点的梯度强度(Gradient Magnitude)和梯度方向(Gradient Direction)。梯度方向量化: 将梯度方向量化为四个主要方向之一:0°(垂直)、45°(对角线)、90°(水平)和135°(对角线)。这样可以将梯度方向划分为四个离散的方向。非极大值抑制: 对于每个像素点,沿着梯度方向的正负两个方向上比较其梯度强度。如果该像素点的梯度强度大于其两侧的像素点(在梯度方向上)的梯度强度,则保留该像素点。否则,将其抑制为非边缘点。具体步骤如下:对于每个像素点P,找到其相邻的两个像素点(在梯度方向上),即正方向像素点和负方向像素点。 检查像素点P的梯度强度是否大于这两个相邻像素点的梯度强度。如果是,则保留像素点P为边缘点。否则,将像素点P抑制为非边缘点。 这个过程将会细化边缘,并保留了局部梯度的极大值,去除了不符合极大值条件的非边缘像素。非极大值抑制的结果是一个二值图像,其中只有边缘像素被标记为白色(255),非边缘像素被标记为黑色(0)。通过应用非极大值抑制,Canny算子可以在梯度方向上细化边缘,使其变得更细,并保留了边缘的细节信息。这一步骤对于提高边缘检测的准确性和保留重要边缘特征至关重要。3.3canny算子cv代码import cv2 # 读取图像 image = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE) # 高斯滤波 blurred = cv2.GaussianBlur(image, (5, 5), 0) # 计算梯度 gradient = cv2.Canny(blurred, 50, 150) # 低阈值和高阈值 # 显示结果 cv2.imshow('Original Image', image) cv2.imshow('Canny Edge Detection', gradient) cv2.waitKey(0) cv2.destroyAllWindows()使用cv2.imread()函数读取图像,并将其转换为灰度图像(使用cv2.IMREAD_GRAYSCALE参数)。 对图像进行高斯滤波,通过cv2.GaussianBlur()函数实现。这一步骤可以减少噪声对边缘检测的影响。函数的第二个参数是滤波器的大小,这里设置为(5, 5),第三个参数是高斯核的标准差,设置为0表示根据滤波器大小自动计算。 使用cv2.Canny()函数进行Canny边缘检测。函数的第二个和第三个参数是低阈值和高阈值,根据图像的特性可以调整这两个阈值。一般来说,低阈值用于边缘连接,高阈值用于边缘起始。 最后,使用cv2.imshow()函数显示原始图像和Canny边缘检测结果。 注意:在运行代码之前,需要将image.jpg替换为实际的图像文件路径。4 Roberts算子Roberts算子是一种经典的边缘检测算子,用于在图像中检测边缘。它是由Lawrence Roberts于1963年提出的。Roberts算子基于离散微分的概念,通过计算像素点与其邻域像素之间的差异来确定边缘的存在。Roberts算子使用两个2×2的卷积核来计算图像的水平和垂直梯度。这两个卷积核如下:水平梯度卷积核(Gx): 1 0 0 -1垂直梯度卷积核(Gy): 0 1 -1 0Roberts算子的边缘检测步骤如下:将输入图像转换为灰度图像(如果不是灰度图像)。对灰度图像分别使用水平梯度卷积核(Gx)和垂直梯度卷积核(Gy)进行卷积操作,得到水平梯度图像和垂直梯度图像。计算边缘强度图像。可以使用以下公式计算每个像素点的边缘强度:edge_strength = sqrt(Gx^2 + Gy^2)其中,Gx和Gy分别为水平梯度图像和垂直梯度图像中的像素值。可选的阈值处理:根据设定的阈值,将边缘强度图像进行阈值处理,将高于阈值的像素标记为边缘点,低于阈值的像素标记为非边缘点。Roberts算子的输出结果是一个二值图像,其中边缘像素被标记为白色(255),非边缘像素被标记为黑色(0)。尽管Roberts算子是边缘检测的一种基础算子,但由于其简单性和计算效率,仍然在某些场景下使用。然而,它对于噪声敏感,并且在边缘检测的准确性和连续性方面可能不如其他更高级的算子(如Sobel、Prewitt和Canny等)。
  • [云实验室] 基于华为云自动学习的垃圾分类图像识别系统
    一、简介本项目主要运用华为云 EI 的 ModelArts 的自动学习以及云对象存储的 OBS,实现简单的垃圾分类系统。二、内容描述本垃圾分类图像识别系统主要通过创建图像分类自动学习项目,进行数据标注,进行自动训练和部署测试,再到最后的结束测试。 三、主要流程四、图像分类任务介绍ModelArts 服务之自动学习图像分类项目,是对图像进行检测分类。添加图片并对图像进行分类标注,每个分类识别一种类型的图像。完成图片标注后开始自动训练,即可快速生成图像分类模型。可应用于商品的自动识别、运输车辆种类识别和残次品的自动检测。例如质量检查的场景,则可以上传产品图片,将图片标注“合格”、“不合格”,通过训练部署模型,实现产品的质检。五、系统创建1、创建项目2、添加图片3、数据标注进行“一次性快餐盒-其他垃圾” 的数据标注。 先将左下角的数字选择为 45, 点击图片选择同类的图片(一次可以选择一张或者多张),在标签名栏填写当前选择图片的标签(已有的标签可以直接选择) , 输入标签名, 点击确定。4、自动训练5、部署测试预测结果:
  • [问题求助] 许可证和OCR的问题
    3.0版本在部分W11系统上安装并激活后之出现这个提示,还有OCR的ID和Key运行提示接口有问题,ID和Key没有输错
  • [问题求助] ruyistudio caffe 节点Tile 需要配置feature_map 文件的问题
    【功能模块】ruyistudio版本:2.0.24 Release Build id: 201807271740【操作步骤&问题现象】1、将caffemodel 和prototxt 转WK文件的时候,因为是tensorflow->onnx->caffe,在tensorflow中有tf.tile() 操作,所以转出来的caffemodel中也有对应的Tile 节点,请问这个应该怎么配置呢,输入的是npy文件还是一个二进制文件或者是其他,可以提供类似的脚本吗,这个Tile 节点是把(1,1,1,128)向量转成(1,1,94,128)的向量【截图信息】
  • [校园大使专区] HCSD校园大使自发活动-华为云HCSD码上服务
    重庆工程学院HCSD活动复盘总结HCSD名称:重庆工程学院校园大使姓名:肖宏城所在学校:重庆工程学院活动背景介绍活动目的及意义为进一步加强计算机专业学生的综合实力,增强计算机专业的技术水平,提高社会竞争力,以学致用,学用结合,重庆工程学院联合多专业社团开展了“华为云HCSD码上服务”活动。邀请华为云专家到场解读行业最新动态,向同学们分享前沿技术知识,热门的实验分享,场景化的动手实践,让大家充分体验到华为云产品的技术魅力。通过宣讲,以及教师团队的协助,给未接触和接触较浅的同学和老师进行宣讲,让其了解和深入学习我们华为云的一些技术,了解我们华为云的产品以及好处,加大师生对华为云的认知度,认可度以及能通过此次活动吸取更多优秀的人才进入到我们的组织。活动预期目标活动宣传辐射人数全校计算机专业同学、活动参与人数力争200余人,通过介绍华为云的技术以及产品,吸引更多的开发者使用华为API、开发工具以及一些云服务,了解华为云带来的功能以及对于自身带来的好处。活动效果目标达成情况:宣传实际辐射人数达到300余人、活动实际参与人数120余人、体验平台人数预计80人活动现场情况:活动现场学生积极进行互动和提问,对于未来个人就业发展以及行业发展趋势有一定的自我认知,扩展了对于计算机行业的多职务的认识;现场氛围良好,工作人员细心的对学生进行引导,活跃现场气氛,积极组织现场秩序,带动现场的趣味性;华为云DTSE专家热情的回答大家的问题,给大家讲解华为云以及华为的业务范围,打破大众化认知。优缺点及改进方案活动亮点现场活动氛围良好,学生富有积极性,踊跃参加开发者认证申请,积极提出华为云存在的一些不足点,帮助华为云后续的发展。活动不足及改进方案对于宣传的方式以及途径有待改进,活动的整个申请到开展以及结束过程含有多方面沟通问题,对于活动开展的校方人员等时间安排和沟通上存在不足,校方的人员因为各种活动未到场进行一定的积极作用引导,对于一些因素仍未考虑到位。活动现场照片资源的投入及使用情况资源名称数量单价总价已发放数量结余数量荣耀体脂秤511055041数据线20011220096104定制T恤1550750150ModelArts人工智能应用开发指南30501500273帆布包1525375132
  • [训练管理] ModelArts能否对接视频监控做行为分析?
    ModelArts有训练的平台,能否借助这个平台来实现以下目标1:通过训练能够识别分析人的穿戴、行为(打架、抽烟、打瞌睡等)2:通过训练能够识别设备的异常情况(比如泄露,着火等)3:能否对接实时视频监控,获取以上异常情况的分析结果