Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zongxr/ai-training-contest
2024中国职业技能大赛人工智能训练赛项
https://github.com/zongxr/ai-training-contest
darknet opencv yolo
Last synced: 3 days ago
JSON representation
2024中国职业技能大赛人工智能训练赛项
- Host: GitHub
- URL: https://github.com/zongxr/ai-training-contest
- Owner: ZongXR
- License: gpl-3.0
- Created: 2024-05-19T07:51:54.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-06-05T03:19:32.000Z (6 months ago)
- Last Synced: 2024-06-05T09:25:53.932Z (6 months ago)
- Topics: darknet, opencv, yolo
- Language: Python
- Homepage:
- Size: 48.7 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
2024年中国职业技能大赛人工智能训练赛项
试题(样题)
本比赛项目的命题方式为公开试题,非公开评分表。试题包括:模块A、模块B、模块C以及安全意识与职业素养。本技术文件中已包括样题,赛前5至7天公布竞赛真题,真题对样题修改不超过30%。
竞赛模块A:人工智能数据集制作
本模块的目标是使用提供的原始数据和现场采集的数据,制作一个规定格式的数据集,该数据集的核心功能在于为训练一个具备智能零售类型与质量识别能力的模型提供必要的学习素材,最终目标是生成一个精准、高效的权重文件。因此要求参赛队基于提供的原始数据和素材,制定数据采集和标注的方案,完成图像采集、清洗和标注。通过提供的标注软件完成数据集的制作。
图像采集与处理
本模块为选手提供了原始数据、现场纸质图像、相关设备和软件,按照任务要求完成数据处理和采集工作。
任务要求:
本赛项为选手提供了原始数据,按照任务要求完成数据的去重、通道转化等任务,评判时展示给裁判。然后完善gather.py文件,采集图像,并自行清洗数据,形成100张高质量图像,要求现场提供的纸质图像采集100张,并将数据保存至“场次+工位号”(例如A01)中,并命名文件夹为collect。提供给选手的原始数据存放在data文件中,选手须对提供的原始数据进行清洗,并将清洗后的数据与复制的collect中的数据保存至系统中,桌面选手建立的文件夹(例如A01)下,并将最终数据集命名为images。
测试要求:
要求选手在裁判评分时,展示图像处理文件夹。
要求选手在裁判评分时,运行gather.py文件,展示图像采集界面功能。
要求选手在裁判评分时,展示collect文件夹内容。
要求选手在裁判评分时,展示images文件夹内容。
图像标注
选手使用标注软件完成数据标注工作,制作数据集。
任务要求:
- 创建数据标注任务,将整合好的images图像数据使用数据标注工具进行标注。
- 创建数据标注任务,并依次设置标签名称为可乐(cola)、雪碧(sprite)、芬达(fanta)、口香糖(gum)。
- 完成数据标注工作,并将标注好的结果保存在桌面选手建立的文件夹(例如A01)下,并命名为Annotation。
- 选手自行查看标注后的数据,完成数据审核工作。
- 下载标注结果,制作标准VOC格式数据集并保存至桌面选手建立的文件夹(例如A01)下,并将文件夹命名为VOC。
测试要求:
要求选手在裁判评分时,展示创建的标签名称。
要求选手在裁判评分时,展示创建的Annotation文件夹。
要求选手在裁判评分时,展示创建的VOC文件夹内容。
竞赛模块B:人工智能算法测试与优化
本模块的目标是要求参赛队基于制作的图像数据集训练出一个能以较高的准确率对未知图像进行检测和分类的模型。本模块的考核指标为目标检测的准确率。
模型调参及模型训练
本赛题为参赛队提供了基于基线算法和模型。参赛队可以在基线模型基础上,通过参数调优、网络重构等手段,训练出分类准确率更高的模型。
任务要求:
选手使用竞赛模块A创建的数据集文件,完成数据格式的转化,数据切分,制作训练集和验证集。
选手使用提供的开发环境和部分脚本训练模型,yolo路径为/darknet。部分脚本文件可参照/darknet/hdkj中脚本文件使用。比赛过程中将提供预训练模型。
配置训练环境,修改文件路径、数据类别、特征层等。使用预训练模型完成模型训练。
测试要求:
要求选手在裁判评分时,展示切分的数据集。
要求选手在裁判评分时,展示.data文件。
要求选手在裁判评分时,展示训练时产生权重文件。
要求选手在裁判评分时,展示loss曲线图。
模型验证
为了提高模型识别的准确率,对采集图像进行模型识别验证;也可以重新回到训练平台上重新调整网络模型参数以更好地提高模型识别的准确率。
任务要求:
- 基于训练好的模型和提供的素材,使用提供的/desktop/competition/test.jpg进行测试。
- 如果模型识别效果不理想可以重新对模型参数进行调优。
- 将选手自己的.cfg、.data、.weights、.names保存一份至桌面选手建立的文件夹(例如A01)下,并命名文件夹为model。
测试要求:
要求选手在裁判评分时,展示model文件夹。
要求选手在裁判评分时,展示测试图片的识别效果。
竞赛模块C:系统开发测试与运维
本模块的目标是要求参赛队基于训练好的模型应用到人工智能技术应用实训模组上,完成任务工单的识别要求。本模块的考核指标为模型的分类准确率和模型识别结果在嵌入式边缘计算平台上的控制准确率。
应用场景开发与验证
通过人工智能技术应用实训模组上面的摄像头,对提供的纸质图像素材进行数据采集,调用模型识别,根据识别结果模拟智能零售场景下的目标识别与功能开发,并根据识别结果,控制模组实现相应的功能。
任务要求:
- 选手编辑retail.py文件调用摄像头,并采集需要识别的数据图像。
- 选手调用模块B训练出来的模型,对采集到的图片可乐(cola)、雪碧(sprite)、芬达(fanta)、口香糖(gum)进行识别,根据识别结果在对应位置绘制图像框与名称,并显示置信度。口香糖(gum)为红色图像框与标签,其它饮料为绿色图像框与标签进行区分。
- 将识别到的零售商品数据发送至串口屏其他选项界面中,并实时显示识别到的数量,参考如图1所示:
- 根据识别图像,显示出对应零售商品的数量。
- 根据串口屏界面对应的物品价格表,计算物品金额并写入串口屏中。
- 点击串口屏上的‘确认支付’,打开摄像头扫描提供的二维码付款。
- 付款之后,串口界面关闭,同时电磁锁打开,3秒之后拿完商品且电磁锁关闭。
- 代码相关指令与硬件控制协议、串口屏界面模板及相关协议随试题公布。
测试要求:
要求选手在裁判评分时,展示开发的智能零售系统场景。
要求选手在裁判评分时,验证智能零售场景实现。
真题
竞赛模块A:人工智能数据集制作
本模块的目标是使用提供的原始数据和现场采集的数据,制作一个规定格式的数据集,该数据集主要用于训练出一个能够识别出智能零售类型和质量的模型权重文件。因此要求参赛队基于提供的原始数据和素材,制定数据采集和标注的方案,完成图像处理、采集、清洗和标注。通过提供的标注软件labelimg完成数据集的制作。
图像处理
本模块为选手提供了原始数据,按照任务要求完成数据处理工作,提供给选手的原始数据存放在/home/hdkj/desktop/competition/data中。
任务要求:
- 参赛选手编辑/home/hdkj/desktop/competition/Deduplication.py文件,去掉重复的数据,并将处理后的数据保存至/home/hdkj/desktop/“场次+工位号”(例如A01)中,并命名文件夹为Deduplication。
- 参赛选手编辑/home/hdkj/desktop/competition/conversion.py文件,对去重过后的图像进行通道转换处理,转换后颜色应与现场实物颜色一致,并将处理后的数据保存至/home/hdkj/desktop/“场次+工位号”(例如A01)中,并命名文件夹为conversion。
- 参赛选手编辑/home/hdkj/desktop/competition/concatenation.py文件,对原始数据与通道转换后的数据进行2*3左右对称拼接(一张即可),并将最后拼接的图像保存至/home/hdkj/desktop/“场次+工位号”(例如A01)中,并命名文件夹为concatenation,数据拼接示意图如下:
测试要求:
- 要求选手在裁判评分时,展示Deduplication文件夹。
- 要求选手在裁判评分时,展示conversion文件夹。
- 要求选手在裁判评分时,展示concatenation文件夹。
图像采集
本模块为选手提供了现场素材、相关设备和软件,按照任务要求完成数据采集工作。
- 参赛选手编写/home/hdkj/desktop/competition/gather.py调用外置摄像头采集图像,并自行清洗数据,要求现场提供的素材采集共100张,分别为可乐(cola)25张、雪碧(sprite)25张、芬达(fanta)25张、口香糖(gum)25张,其中各个采集任务文件夹名称分别为括号对应的标签名,采集完成后需将各类数据保存至总文件夹collect中,将总文件夹保存至/home/hdkj/desktop/“场次+工位号”(例如A01)中。
- 选手将处理过的数据conversion与采集的collect文件夹中的数据保存至/home/hdkj/desktop/“场次+工位号”(例如A01)中,并将最终数据集命名为images。
测试要求:
- 要求选手在裁判评分时,展示图像采集界面功能。
- 要求选手在裁判评分时,展示collect文件夹中各个采集任务文件夹数据张数。
图像标注
选手使用标注软件labelimg完成数据标注工作,制作数据集。
任务要求:
- 创建数据标注任务,将整合好的images图像数据使用数据标注工具进行标注。
- )创建数据标注任务,并依次设置标签名称为可乐(cola)、雪碧(sprite)、芬达(fanta)、口香糖(gum)。
- 完成数据标注工作,生成.xml格式文件,并将标注好的结果保存至/home/hdkj/desktop/“场次+工位号”(例如A01)中,并命名为Annotations。
- 选手自行查看标注后的数据,完成数据审核工作。
- 将图像数据与标注数据保存至一个文件夹内制作一个标准的VOC格式数据集并保存至/home/hdkj/desktop/“场次+工位号”(例如A01)中,并将文件夹命名为VOC。
测试要求:
- 要求选手在裁判评分时,展示创建的标签名称。
- 要求选手在裁判评分时,展示创建的Annotations文件夹。
- 要求选手在裁判评分时,展示创建的VOC文件夹内容。
标注结果解析
参赛选手对标注结果进行解析,绘制坐标至图像上。
任务要求:
- 参赛选手编辑/home/hdkj/Desktop/competition/xmlanalysis.py文件,对Annotations中的.xml数据进行解析,对images中的原始图像绘制,保存至/home/hdkj/desktop/“场次+工位号”(例如A01)中,并命名文件夹为analysisImage。解析示意图如下:
测试要求:
- 要求选手在裁判评分时,展示创建的analysisImage文件夹内容。
标注结果裁剪
参赛选手对标注结果进行裁剪,裁剪标注结果保存至文件夹内。
任务要求:
- 参赛选手编辑/home/hdkj/desktop/competition/xmlcrop.py文件,对Annotations中的xml文件进行裁剪,对images中的原始图像裁剪,将裁剪的各个标签的数据以文件夹名称(分别为括号对应的标签名),裁剪完成后需将各类数据保存至总文件夹crop,将总文件夹保存至/home/hdkj/desktop/“场次+工位号”(例如A01)中。裁剪示意图如下:
测试要求:
- 要求选手在裁判评分时,展示创建的crop文件夹中各个文件夹内容。
填写《人工智能数据集制作工单》
竞赛模块B:人工智能算法测试与优化
本模块的目标是要求参赛队基于制作的图像数据集训练出一个能以较高的准确率对未知图像进行检测和分类的模型。本模块的考核指标为目标检测的准确率。
模型调参及模型训练
本赛题为参赛队提供了基于基线算法和模型。参赛队可以在基线模型基础上,通过参数调优、网络重构等手段,训练出分类准确率更高的模型。
任务要求:
- 选手使用提供的开发环境和部分脚本训练模型,yolo路径为/home/hdkj/darknet。部分脚本文件可参照/home/hdkj/darknet/hdkj中脚本文件使用。比赛过程中将提供预训练模型。
- 选手使用竞赛模块A创建的数据集文件,完成数据切分,制作训练集和验证集。
- 选手使用标注完成的.xml格式文件,将其转化为.txt格式文件。
- 配置训练环境,修改文件路径、数据类别、特征层等。使用预训练模型完成模型训练。
- 保存训练日志,生成.log文件。
- 生成合乎规律的loss曲线图,最大训练次数应不少于500,loss曲线图示意图如下:
测试要求:
- 要求选手在裁判评分时,展示切分的训练集和验证集。
- 要求选手在裁判评分时,展示转化的.txt格式文件。
- 要求选手在裁判评分时,展示.data文件。
- 要求选手在裁判评分时,展示训练时产生的权重文件。
- 要求选手在裁判评分时,展示loss曲线图。
- 要求选手在裁判评分时,展示.log日志。
模型验证
为了提高模型识别的准确率,对采集图像进行模型识别验证;也可以重新回到训练平台上重新调整网络模型参数以更好地提高模型识别的准确率。
任务要求:
- 基于训练好的模型和提供的素材,使用提供的/home/hdkj/desktop/competition/test.jpg进行测试,并保存测试结果。
- 如果模型识别效果不理想可以重新对模型参数进行调优。
- 将选手自己的.cfg、.data、.weights、.log日志,loss曲线图文件及测试图片结果图保存至/home/hdkj/desktop/“场次+工位号”(例如A01)中,并命名文件夹为model。
测试要求:
- 要求选手在裁判评分时,现场实时展示测试图片的识别效果。
- 要求选手在裁判评分时,展示model文件夹。
完成《人工智能算法测试与优化任务工单》填写
竞赛模块C:系统开发测试与运维
本模块的目标是要求参赛队基于训练好的模型应用到人工智能技术应用实训模组上,完成任务的识别要求。本模块的考核指标为模型的分类准确率和模型识别结果在嵌入式边缘计算平台上的控制准确率。
任务背景:
你来到了一家名为"智能购物"的自助贩卖机店,这是一种全新的零售体验方式。无需人工服务,通过智能化技术,你可以自助选购商品并完成支付,你来到了自助贩卖机区域,贩卖机上都贴着商品列表和价格,贩卖机配备了智能商品识别系统,当你站在贩卖机前,它会自动检测你的面部特征或者扫描你手机上的二维码,识别你的身份和账户信息,选好商品后,你可以选择支付方式,支付完成后,贩卖机会自动将商品送到取货口,你可以取走自己购买的商品,买到自己需要的东西。
应用场景开发
任务概述:
将我们的商品置于自助贩卖机中,来实现我们智能零售系统场景。
任务要求:
- 选手需要编辑/home/hdkj/desktop/competition/control.py,能够对实训模组的正常通信,能够正常调用设备的舵机、蜂鸣器、电磁锁、微型风扇、警示灯、步进电机等控制执行器件。
- 选手需要编辑/home/hdkj/desktop/competition/system.py,完成智能零售系统场景开发。需要给我们的自助贩卖机放入我们的货物,需放入可乐(cola)、雪碧(sprite)、芬达(fanta)、口香糖(gum)各99个,参考如图所示:
测试要求:
- 要求选手在裁判评分时,运行system.py文件,展示我们开发的智能零售系统场景。
应用场景验证
任务概述:
模拟选手作为购买者来购买商品,通过人工智能技术应用实训模组上面的摄像头,对提供的素材进行数据采集,调用模型识别,根据识别结果模拟智能零售场景下的目标识别与功能开发,并根据识别结果,控制模组实现相应的功能,验证智能零售系统场景。
任务要求:
选手需要编辑/home/hdkj/desktop/competition/validate.py,完成智能零售场景验证。
- 选手调用模块B训练出来的模型,对可乐(cola)、雪碧(sprite)、芬达(fanta)、口香糖(gum)进行实时识别,需静止不动识别5秒,5秒过后确定识别商品,根据识别结果在对应位置绘制图像框与名称,并显示置信度,并将识别商品图片保存至/home/hdkj/desktop/“场次+工位号”(例如A01)中,并命名图片为result.jpg。口香糖(gum)为红色图像框与标签,其它饮料为绿色图像框与标签进行区分。
- 根据串口屏界面对应的物品价格表,计算物品金额并写入串口屏中。
- 点击串口屏上的‘确认支付’,打开摄像头扫描提供的二维码付款。
- 付款之后,串口界面关闭,同时电磁锁打开,3秒之后拿完商品且电磁锁关闭。
- 我们买完我们想要的商品后,系统的库存会自动减少。
- 代码相关指令与硬件控制协议见附件一、串口屏界面模板及相关协议见附件二。
测试要求:
- 要求选手在裁判评分时,运行validate.py文件,验证智能零售场景实现。识别饮料框为红色,口香糖框为绿色,需要显示识别置信度。
- 智能零售系统界面中商品数量显示正确,商品价格合计显示正确。
- 点击‘确认支付’调出识别二维码界面,扫描完成后电磁锁打开,3秒后关闭。
- 展示商品购买完成后的智能零售界面。
完成《系统开发测试与运维任务工单》填写