科大讯飞AI大赛实战!中医药识别挑战赛Baseline代码解析,新手也能看懂
摘要:本文介绍了中医药AI识别挑战赛的背景与任务。随着中医药产业规模扩大,传统人工识别方法效率低、易出错,难以满足质量管控需求。比赛要求参赛者基于54类中药图片数据集,开发高效准确的AI识别模型,评估指标采用macro F1-score。文中提供了基于ResNet18的baseline代码实现方案,包括数据加载、模型训练和验证流程。此外还介绍了AI大模型学习路线,涵盖从系统设计到商业化落地的7个阶
赛题背景
随着中医药产业规模的不断扩大,中药质量参差不齐的问题逐渐凸显。中药品种繁多、来源复杂,且存在大量外观相似的品种,仅凭传统的人工经验识别,不仅效率低下,还容易出现误判,难以满足现代中医药产业快速发展的需求。例如在中药生产企业中,中药材的采购验收环节,若因识别错误混入伪劣品,将直接影响中成药的质量与疗效;在医疗机构,中药饮片的准确识别关乎处方用药的安全与有效性。
在此背景下,人工智能(AI)技术凭借其强大的数据处理和识别能力,为解决中医药识别难题提供了新的途径。利用AI算法对海量的中医药图像、特征数据进行学习和分析,能够实现快速、精准的中医药识别,有效提升中医药质量控制水平,推动中医药产业的规范化、现代化发展。“中医药识别挑战赛”通过AI算法,突破中医药识别的技术瓶颈,为中医药产业的高质量发展注入新动能。
赛题任务
本次比赛旨在通过人工智能技术实现对中医药图片的自动识别与分类。比赛的参赛者需要基于提供的中医药图片数据集,设计和训练一个能够高效、准确地识别和分类不同中医药的人工智能模型。
比赛的评判标准为模型的准确率、召回率、精确率等指标。通过本次比赛,我们期待能够开发出一种高效、准确的算法,以提高中医药识别能力,从而实现有效提升中医药质量控制水平能力。
数据说明
所提供的数据大约包含54个中医药类别和对应的中医药图片,图像分为训练数据库和测试数据库两个子数据库。
其中中医药图片名称对应的label如下表:
category |
label |
category |
label |
---|---|---|---|
Honeysuckles |
0 |
Boheye |
27 |
Gardenia |
1 |
Hairyveinagrimony |
28 |
Tianhukui |
2 |
Feipeng |
29 |
Gouweibacao |
3 |
Guizhencao |
30 |
Shuiqincai |
4 |
Eichhorniacrassipes |
31 |
Morningglory |
5 |
Dandelions |
32 |
Bosipopona |
6 |
Zhajiangcao |
33 |
Mantuoluo |
7 |
Wahlenbergia |
34 |
Tongquancao |
8 |
Radixisatidis |
35 |
Perillas |
9 |
Mangnoliaofficinalis |
36 |
Jicai |
10 |
Odoratum |
37 |
Xiaoji |
11 |
Cangerzi |
38 |
Angelica |
12 |
Commelina_communis |
39 |
Heshouwu |
13 |
Chenopodiumalbum |
40 |
Yichuanhong |
14 |
Monochoriavaginalis |
41 |
Malan |
15 |
Ziyunying |
42 |
Rabdosiaserra |
16 |
Pinellia |
43 |
Zeqi |
17 |
Hongliao |
44 |
Bupleurum |
18 |
Moneygrass |
45 |
Plantains |
19 |
Lotusseed |
46 |
Ginsengs |
20 |
Ophiopogon |
47 |
Juaner |
21 |
Qigucao |
48 |
Kucai |
22 |
Huanghuacai |
49 |
Selfheals |
23 |
Wormwood |
50 |
Sedum_sarmentosum |
24 |
Palms |
51 |
Agastacherugosa |
25 |
Denglongcao |
52 |
Xunma |
26 |
Xiaoqieyi |
53 |
评估指标
本模型依据提交的结果文件,采用macro F1-score进行评价。
-
本赛题均提供下载数据,选手根据要求提交作品。
-
每支队伍每天最多提交3次。
-
排行按照得分从高到低排序,将选择队伍的历史最优成绩进行排名。
赛题 Baseline
https://github.com/datawhalechina/competition-baseline/tree/master/competition/%E7%A7%91%E5%A4%A7%E8%AE%AF%E9%A3%9EAI%E5%BC%80%E5%8F%91%E8%80%85%E5%A4%A7%E8%B5%9B2025
-
加载数据集和模型
class XFDataset(Dataset):
def __init__(self, img_path, img_label, transform=None):
self.img_path = img_path
self.img_label = img_label
if transform is not None:
self.transform = transform
else:
self.transform = None
def __getitem__(self, index):
try:
img = Image.open(self.img_path[index]).convert('RGB')
except:
img = Image.new('RGB', (224, 224), color='white')
label = torch.from_numpy(np.array(self.img_label[index]))
if self.transform is not None:
img = self.transform(img)
return img, label
def __len__(self):
return len(self.img_path)
import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
import timm
model = timm.create_model('resnet18', pretrained=True, num_classes=len(label_index))
model = model.cuda()
-
模型训练与验证
train_loader = torch.utils.data.DataLoader(
XFDataset(train_path[:-500], train_label[:-500],
transforms.Compose([
transforms.Resize((256, 256)),
transforms.RandomHorizontalFlip(),
transforms.RandomVerticalFlip(),
transforms.ToTensor(),
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
])
), batch_size=10, shuffle=True, num_workers=4, pin_memory=True
)
val_loader = torch.utils.data.DataLoader(
XFDataset(train_path[-500:], train_label[-500:],
transforms.Compose([
transforms.Resize((256, 256)),
transforms.ToTensor(),
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
])
), batch_size=10, shuffle=False, num_workers=4, pin_memory=True
)
criterion = nn.CrossEntropyLoss().cuda()
optimizer = torch.optim.Adam(model.parameters(), 0.001)
scheduler = optim.lr_scheduler.StepLR(optimizer, step_size=4, gamma=0.85)
best_acc = 0.0
for epoch in range(20):
scheduler.step()
print('Epoch: ', epoch)
train(train_loader, model, criterion, optimizer, epoch)
val_acc = validate(val_loader, model, criterion)
if val_acc.avg.item() > best_acc:
best_acc = round(val_acc.avg.item(), 2)
AI大模型学习路线
如果你对AI大模型入门感兴趣,那么你需要的话可以点击这里大模型重磅福利:入门进阶全套104G学习资源包免费分享!
扫描下方csdn官方合作二维码获取哦!
这是一份大模型从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
100套AI大模型商业化落地方案
大模型全套视频教程
200本大模型PDF书籍
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
LLM面试题合集
大模型产品经理资源合集
大模型项目实战合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
更多推荐
所有评论(0)