赛题背景

随着中医药产业规模的不断扩大,中药质量参差不齐的问题逐渐凸显。中药品种繁多、来源复杂,且存在大量外观相似的品种,仅凭传统的人工经验识别,不仅效率低下,还容易出现误判,难以满足现代中医药产业快速发展的需求。例如在中药生产企业中,中药材的采购验收环节,若因识别错误混入伪劣品,将直接影响中成药的质量与疗效;在医疗机构,中药饮片的准确识别关乎处方用药的安全与有效性。

在此背景下,人工智能(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%免费】🆓

在这里插入图片描述

 

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐