精华内容
下载资源
问答
  • │ utils.py 一些读取图片处理图片的函数 ├─fun_test 内含各类图片共100张,用于最后的功能测试 ├─make_data_set 用于处理制作数据集 ├─model 训练好的模型存储的路径 ├─test 内含处理好的...
  • 教程 | 猫狗识别 - AI图片分类的样例

    千次阅读 2018-12-17 19:25:32
    猫狗识别 - AI图片分类的样例 项目官方网址 该数据有猫和狗两类图片,一共有25000张图片,猫狗各占一半,可以用来做图片分类的入门数据。 样例代码说明 app.yaml 是项目的配置文件,项目目录下必须存在这个...

    猫狗识别 - AI图片分类的样例

    更多项目请查看 https://www.flyai.com

    项目官方网址

    该数据有猫和狗两类图片,一共有25000张图片,猫狗各占一半,可以用来做图片分类的入门数据。


    样例代码说明

    app.yaml

    是项目的配置文件,项目目录下必须存在这个文件,是项目运行的依赖。

    processor.py

    样例代码中已做简单实现,可供查考。

    处理数据的输入输出文件,把通过csv文件返回的数据,处理成能让程序识别、训练的矩阵。

    可以自己定义输入输出的方法名,在app.yaml中声明即可。

        def input_x(self, image_path):
            '''
            参数为csv中作为输入x的一条数据,会被Dataset类中的next_batch()方法多次调用。
            :params: 输入的数据列表
            :return: 返回矩阵
            '''
            pass
    
        def input_y(self, label):
            '''
            参数为csv中作为输入y的一条数据,会被Dataset类中的next_batch()方法多次调用。
            :params: 数据标签列表
            :return: 返回矩阵
            '''
            pass
        def output_y(self, data):
            '''
            验证时使用,把模型输出的y转为对应的结果
            :param data: 预测返回的数据
            :return: 返回预测的标签
            '''
            pass
    
    
    main.py

    样例代码中已做简单实现,可供查考。

    程序入口,编写算法,训练模型的文件。在该文件中实现自己的算法。

    通过dataset.py中的next_batch方法获取训练和测试数据。

    # 数据获取辅助类
    dataset = Dataset()
    x_train, y_train, x_test, y_test = dataset.next_batch(BATCH)
    

    通过model.py中的save_model方法保存模型

    # 模型操作辅助类
    model = Model(dataset)
    model.save_model(YOU_NET)
    

    如果使用PyTorch框架,需要在net.py文件中实现网络。其它用法同上。

    model.py

    样例代码中已做简单实现,可供查考。

    训练好模型之后可以继承flyai.model.base包中的base重写下面三个方法实现模型的保存、验证和使用。

       def predict(self, path, name, **data):
            '''
            使用模型
            :param path: 模型所在的路径
            :param name: 模型的名字
            :param data: 模型的输入的一个或多个参数
            :return: 
            '''
            pass
    
        def evaluate(self, path, name):
            '''
            验证模型
            :param path: 模型的路径
            :param name: 模型的名字
            :return: 返回验证的准确率
            '''
            pass
    
        def save_model(self, network, path=MODEL_PATH, name=MODEL_NAME, overwrite=False):
            '''
            保存模型
            :param network: 训练模型的网络
            :param path: 要保存模型的路径
            :param name: 要保存模型的名字
            :param overwrite: 是否覆盖当前模型
            :return:
            '''
            self.check(path, overwrite)
    
    
    predict.py

    样例代码中已做简单实现,可供查考。

    对训练完成的模型使用和预测。

    path.py

    可以设置数据文件、模型文件的存放路径。

    dataset.py

    该文件在FlyAI开源库flyai.dataset包中,通过next_batch(BATCH)方法获得x_train y_train x_test y_test数据。

    FlyAI开源库可以通过pip3 install -i https://pypi.flyai.com/simple flyai 安装。


    FlyaI终端命令

    1. 下载项目并解压
    2. 使用终端进入到项目的根目录下

    cd /path/to/project

    3. 初始化环境并登录

    给flyai授权,在终端下执行chmod +x ./flyai

    在终端下执行 ./flyai init ,下载完成之后,使用微信扫码登录。

    登录成功之后,会自动下载运行所需环境。

    4. 本地开发调试

    在终端下执行 ./flyai test ,会安装项目所需依赖,并运行 main.py


    如果使用本地IDE开发,可以自行安装 requirements.txt 中的依赖,运行main.py即可。

    5.提交训练到GPU

    项目中如果有新的引用,需要加入到 requirements.txt 文件中。

    在终端下执行 ./flyai train 返回sucess状态,代表提交离线训练成功。

    训练结束会以微信和邮件的形式发送通知,训练结果可在通知中查看。


    FlyAI全球人工智能专业开发平台,一站式服务平台

    扫描下方二维码,及时获取FlyAI最新消息,抢先体验最新功能。

    GPL LICENSE

    展开全文
  • AI challenger 2018图片分类比赛—农作物病害检测

    万次阅读 多人点赞 2018-12-16 15:21:13
    我使用的是Keras,以TensorFlow为后端,手动实现了DenseNet用于图片分类 由于Kaggle现在可以免费使用GPU,所以采用将数据上传至Kaggle的私人Dataset上,在其上创建Kernel进行模型训练 (上传需要翻墙,有梯子最好...

    1 赛题简介

    对近5万张按“物种-病害-程度”分成61类的植物叶片照片进行分类

    比赛地址:AI challenger比赛—农作物病害检测

    2 框架

    我使用的是Keras,以TensorFlow为后端,手动实现了DenseNet用于图片分类
    由于Kaggle现在可以免费使用GPU,所以采用将数据上传至Kaggle的私人Dataset上,在其上创建Kernel进行模型训练
    (上传需要翻墙,有梯子最好)

    3 DenseNet模型实现

    def dense_block(x, blocks, name):
        for i in range(blocks):
            x = conv_block(x, 32, name=name + '_block' + str(i + 1))
        return x
    def transition_block(x, reduction, name):
        bn_axis = 3
        x = layers.BatchNormalization(axis=bn_axis, epsilon=1.001e-5,
                                      name=name + '_bn')(x)
        x = layers.Activation('relu', name=name + '_relu')(x)
        x = layers.Conv2D(int(backend.int_shape(x)[bn_axis] * reduction), 1,
                          use_bias=False,
                          name=name + '_conv')(x)
        x = layers.AveragePooling2D(2, strides=2, name=name + '_pool')(x)
        return x
    def conv_block(x, growth_rate, name):
        bn_axis = 3
        x1 = layers.BatchNormalization(axis=bn_axis,
                                       epsilon=1.001e-5,
                                       name=name + '_0_bn')(x)
        x1 = layers.Activation('relu', name=name + '_0_relu')(x1)
        x1 = layers.Conv2D(4 * growth_rate, 1,
                           use_bias=False,
                           name=name + '_1_conv')(x1)
        x1 = layers.BatchNormalization(axis=bn_axis, epsilon=1.001e-5,
                                       name=name + '_1_bn')(x1)
        x1 = layers.Activation('relu', name=name + '_1_relu')(x1)
        x1 = layers.Conv2D(growth_rate, 3,
                           padding='same',
                           use_bias=False,
                           name=name + '_2_conv')(x1)
        x = layers.Concatenate(axis=bn_axis, name=name + '_concat')([x, x1])
        return x
    def DenseNet(blocks, input_shape=(150,150,3), classes=61):
    
        img_input = Input(shape=input_shape)
    
        bn_axis = 3
    
        x = layers.ZeroPadding2D(padding=((3, 3), (3, 3)))(img_input)
        x = layers.Conv2D(64, 7, strides=2, use_bias=False, name='conv1/conv')(x)
        x = layers.BatchNormalization(
            axis=bn_axis, epsilon=1.001e-5, name='conv1/bn')(x)
        x = layers.Activation('relu', name='conv1/relu')(x)
        x = layers.ZeroPadding2D(padding=((1, 1), (1, 1)))(x)
        x = layers.MaxPooling2D(3, strides=2, name='pool1')(x)
    
        x = dense_block(x, blocks[0], name='conv2')
        x = transition_block(x, 0.5, name='pool2')
        x = dense_block(x, blocks[1], name='conv3')
        x = transition_block(x, 0.5, name='pool3')
        x = dense_block(x, blocks[2], name='conv4')
        x = transition_block(x, 0.5, name='pool4')
        x = dense_block(x, blocks[3], name='conv5')
    
        x = layers.BatchNormalization(axis=bn_axis, epsilon=1.001e-5, name='bn')(x)
    
        x = layers.GlobalAveragePooling2D(name='avg_pool')(x)
        
        x = Dense(512)(x)
        x = BatchNormalization()(x)
        x = PReLU()(x)
        x = Dropout(0.5)(x)
        x = Dense(classes, activation='softmax', name='fc61')(x)
    
        inputs = img_input
    
        model = Model(inputs, x, name='densenet')
        
        return model
    

    调用DenseNet函数即可创建

    model = DenseNet(blocks=[6, 12, 48, 32], input_shape=(150,150,3),classes=61)
    model.summary()
    

    4 数据准备

    1、训练集、验证集生产器
    这里对图片进行图像预处理,增加图片归一化、适度旋转、随机缩放、上下翻转

    train_datagen = ImageDataGenerator(
        rescale=1. / 255,
        shear_range=0.2,
        rotation_range=20,
        zoom_range=0.2,
        horizontal_flip=True)
    val_datagen = ImageDataGenerator(rescale=1. / 255)
    

    2、读取数据
    从目录中读取数据

    img_width, img_height = 150, 150
    train_data_dir = '../input/train/train'
    validation_data_dir = '../input/val/val'
    batch_size = 64
    classes = 61
    
    train_generator = train_datagen.flow_from_directory(
        train_data_dir,
        target_size=(img_width, img_height),
        batch_size=batch_size,
        class_mode='categorical') #多分类
    
    validation_generator = val_datagen.flow_from_directory(
        validation_data_dir,
        target_size=(img_width, img_height),
        batch_size=batch_size,
        class_mode='categorical') #多分类
    

    5 模型训练

    1、先对模型进行预编译

    model.compile(loss='categorical_crossentropy',
                  optimizer=Adam(lr=0.0001),
                  metrics=['accuracy'])
    

    2、训练模型
    增加自动更新学习率和保存在验证集最后的模型参数

    learning_rate_reduction = ReduceLROnPlateau(monitor='val_acc', patience=3, 
                                                                 verbose=1,factor=0.5, min_lr=0.000001)
    checkpoint = ModelCheckpoint(model_name, monitor='val_acc', save_best_only=True)
    history = model.fit_generator(
        train_generator,
        steps_per_epoch=nb_train_samples // batch_size,
        epochs=30,
        validation_data=validation_generator,
        validation_steps=nb_validation_samples // batch_size,
        callbacks=[checkpoint, learning_rate_reduction])
    

    训练次数由于受Kaggle中Kernel的使用时间受限,只能训练6小时,所以只能暂时训练30,不过可以多次迭代训练。

    6 模型预测

    由于文件夹存放顺序跟window上不一样,所以实际上文件夹在Kaggle上Dataset上的存放顺序如下

    rr = [0,
          1,10,11,12,13,14,15,16,17,18,19,
          2,20,21,22,23,24,25,26,27,28,29,
          3,30,31,32,33,34,35,36,37,38,39,
          4,40,41,42,43,44,45,46,47,48,49,
          5,50,51,52,53,54,55,56,57,58,59,
          6,60,
          7,
          8,
          9]
    
    images = os.listdir('../input/ai-challenger-pdr2018/testa/testA')
    
    result = []
    for img1 in images:
        image_path = '../input/ai-challenger-pdr2018/testa/testA/' + img1
        img = image.load_img(image_path, target_size=(150, 150))
        x = image.img_to_array(img)/255.0
        x = np.expand_dims(x, axis=0)
        preds = model.predict(x)
        tmp = dict()
        tmp['image_id'] = img1
        tmp['disease_class']=rr[int(np.argmax(preds))]
        result.append(tmp)
    

    最后保存为json

    import json
    json2 = json.dumps(result)
    f = open('result.json','w',encoding='utf-8')
    f.write(json2)
    f.close()
    

    7 提交结果

    最终的结果是0.87395的成绩
    plants_disease_detection

    8 完整代码参考

    DenseNet模型训练 plants_disease_detection

    如果你觉得我写的不错,请给我一下Star(^_^),谢谢!

    展开全文
  • 华为云AI入门赛——爱(AI)美食·美食图片分类分享(强大算力支持,Tesla P100、Tesla V100可选,提供完整baseline)爱(AI)美食·美食图片分类赛事介绍报名链接 爱(AI)美食·美食图片分类 爱(AI)美食美食图片...

    华为云AI入门赛——爱(AI)美食·美食图片分类分享(强大算力支持,Tesla P100、Tesla V100可选,提供完整baseline)

    爱(AI)美食·美食图片分类

    爱(AI)美食美食图片分类大赛是面向所有AI开发者入门实战赛,适用于正在学习AI的初学者,目标是为AI开发者提供一个交流学习、实战挑战的平台。
    先放报名链接(扫码也行哦)链接: link.
    在这里插入图片描述

    赛事介绍

    1. 美食美食图片分类大赛 ,爱(AI)美食美食图片分类大赛是面向所有AI开发者入门实战赛,适用于AI初学者,目标是为AI开发者提供一个交流学习、实战挑战的平台,参赛者需基于华为云一站式AI开发平台ModelArts,根据大赛组委会提供的美食图片数据集进行图像分类模型的开发。
    2. 参赛对象 ,面向所有AI开发者,个人、高等院校、企业、科研单位、创客团队等均可报名参赛。
    3. 报名(Tesla P100、 Tesla V100可选),大赛长期开放,报名和参赛无时间限制,并提供代金券哦(需要进行实名注册,方可领取,注册仅需2分钟哦)。
      在这里插入图片描述
      1)报名方式:登录大赛官网,点击页面右上方“立即报名”按钮进行报名。
      2)大赛以单人或2-5人组队参赛,且每位参赛者只能加入一支队伍。
      3)参赛者需确保报名信息准确有效,如虚假信息报名,大赛组委会将取消参赛资格及奖励。
      4)大赛官方交流请至论坛交流版块。参赛者微信交流群扫描如下二维码,如无法加群请添加右侧华为云EI小助手,回复“新手赛”,小助手将您拉入交流群。
      微信交流群
    4. 激励设置
      每个周期排行榜榜单TOP3、分享达人可获得大赛激励奖品。
      评选规则
      1) 每2个月为一个评选统计周期,第一次统计截止时间为4月30日。(每个周期TOP3奖品设置、分享达人数量会基于库存情况做调整)
      2) 不可重复获奖,已获得过分享达人激励的参赛者在后续评选统计周期中默认不计入。
      3) 除排行榜榜单TOP3外,组委会根据大赛分享的内容、数量及深度等综合评选出分享达人,为积极分享的参赛者提供ModelArts竞赛大礼包(至少包含3种礼品或权益)。
      T0P3奖品(第一个周期)
      冠军:1支队伍,荣耀10 GT手机一部
      在这里插入图片描述
      亚军:1支队伍,HUAWEI WATCH GT手表一部
      在这里插入图片描述
      季军:1支队伍,HUAWEI FreeLace无线耳机一个
      在这里插入图片描述
      注:1)以上奖品仅为示例,奖品颜色以实际发放为准。
      2)TOP3团队需提交代码、模型等进行审核,以确认获奖资格;确认获奖资格后需在华为云社区以图文或直播形式进行参赛方案及总结的分享。
      分享达人奖品
      评选10位分享达人(第一个周期最多评选出10位分享达人)获得ModelArts竞赛大礼包;ModelArts竞赛大礼包从以下奖品和权益中配置,数量大于或等于3种。
      在这里插入图片描述
      说明:每个评选周期组委会根据实际奖品或权益的库存数量来配置ModelArts竞赛大礼包,因此不同评选周期奖品可能会有所不同。

    报名链接

    链接: link.
    或者扫描下方二维码即可报名
    在这里插入图片描述

    展开全文
  • ObjectDetectionWinDemo 是使用模型识别图片的一个Demo. 可以截图再在Demo粘贴图片进行识别测试 data 是再训练的素材,也可以用于Demo的测试 lib 只是Demo的一些界面控件 共同学习,一起进步
  • 有监督的人工智能机器学习图片认知分类系统的方法研究.pdf
  • “华为云杯”2020深圳开放数据应用创新大赛·生活垃圾图片分类 链接 https://blog.csdn.net/weixin_38208912/article/details/103817188 https://zhuanlan.zhihu.com/p/96033452 目标检测模型 实战过程 数据增强 ...

    前言

    “华为云杯”2020深圳开放数据应用创新大赛·生活垃圾图片分类

    • 【大赛介绍】
      由深圳市政务服务数据管理局、南山区人民政府主办,南山区政务服务数据管理局、华为技术有限公司承办的“华为云杯”2020深圳开放数据应用创新大赛(Shenzhen Open Data Innovation Contest,简称SODiC),以“数聚粤港澳,智汇大湾区”为主题,面向全球高等院校、专业研究机构、数据分析公司、开发者征集基于开放数据的创新应用解决方案和算法模型。

    • 【赛题背景】
      2016年12月,深圳市城市管理和综合执法局发布了《深圳市打造“全国最干净城市”三年行动计划(2017-2019)》。按照行动计划的战略目标,市、区、街各级城管部门随即开展行动,逐项认真部署落实。市城市管理和综合执法局领导直奔基层一线,在全市范围内开展以查找内街小巷市容环境管理问题和督促问题整改落实为主要内容的“行走深圳”活动。同时,深入推进“源头充分减量,前端分流分类,中段干湿分离,末端综合利用”的垃圾治理深圳模式,积极开展以打造深圳公厕成为“干净卫生、功能完善、美观雅致、群众满意”的靓丽城市名片的“公厕革命”。通过建立环境卫生专项整治、指数测评、责任落实等相关个工作机制,并开展城中村、集贸市场、垃圾收运和城市家具等相关洁净行动,越来越多的居民享受到打造全国最干净城市带来的环境福利。

      本赛题以垃圾分类为主题,利用人工智能技术,对居民生活垃圾图片进行检测,找出图片中有哪些类别的垃圾,并指示出垃圾在图片中的位置。


    目标检测模型

    1、常见目标检测模型:

    • SSD系列
    • YOLO系列
      YOLO v1、v2、v3、v4
    • R-CNN系列
      R-CNN、Fast R-CNN、Faster R-CNN
    • CenterNet
    • EfficientNet

    2、参考:


    3、性能对比
    • EfficientDet D0~D7 与其他模型的比较:

    在这里插入图片描述

    • CenterNet 与其他模型的对比:

      在这里插入图片描述

    • Faster R-CNN on FPN 与其他模型的对比:

      在这里插入图片描述

    • YOLO v4 与其他模型的对比:
      在这里插入图片描述


    综上,仅考虑AP的话,第一选择是 EfficientDet D7


    实战过程

    展开全文
  • ai人工智能_人工智能AI)简介

    千次阅读 2020-09-14 14:11:20
    Here you will get an introduction to ... 在这里,您将获得有关人工智能的介绍。 First of all let us quickly recall what we have learnt in previous blog posts to get an idea of what we already have ...
  • CSDN重磅打造人工智能入门训练营,「3天带你从0到1,从网络搭建到实现多种图片分类项目」,这个训练营,足够帮你了解自己是否适合深入学习AI!3天训练营,从基础环境配置开始,讲解深度学习的基础知识,10年从业经验...
  • 《深度学习之多标签图片分类(PyTorch版) 》课程从实战的角度出发,基于真实数据集并结合实际业务出发点,介绍深度学习多标签图片分类通用解决方案,通过本课程,彻底掌握多标签图片分类项目。  从0到1讲解如何...
  • 《 深度学习之多目标输出图片分类(PyTorch版) 》课程从实战的角度出发,基于电商业务(例如:京东、淘宝等)真实数据集并结合实际业务出发点,介绍深度学习多目标图片分类解决方案和代码实现,通过本课程,彻底...
  • 人工智能分类体系

    千次阅读 2018-10-12 11:36:02
    前言: 刚上大学的时候,每每学习一...强人工智能 & 弱人工智能: >> 强人工智能:指能制造出真正地推理和解决问题的智能机器。比如日本动漫里的“阿童木”、钢铁侠的AI管家“贾维斯”就可以说是一个强人...
  • Opencv人工智能图片处理学习视频+PPT 图像处理、特征提取、实际图像提取案例、级联分类器、分割、视频分析和对象跟踪、深度神经网络、人脸识别案例
  • 人工智能 图片识别 图像识别

    万次阅读 2018-02-26 18:38:02
    图像识别是人工智能的一个重要领域。为了编制模拟人类图像识别活动的计算机程序,人们提出了不同的图像识别模型。例如模板匹配模型。这种模型认为,识别某个图像,必须在过去的经验中有这个图像的记...
  • 人工智能图片打标签工具,无需安装任何其他依赖,直接解压缩即可使用,非常方便
  • AI 人工智能学习路线

    千次阅读 2019-02-14 11:45:08
    阶段一、人工智能基础 - 高等数学必知必会 本阶段主要从数据分析、概率论和线性代数及矩阵和凸优化这四大块讲解基础,旨在训练大家逻辑能力,分析能力。拥有良好的数学基础,有利于大家在后续课程的学习中更好的...
  • 前年谷歌AlphaGO与人类的挑战赛成了当时的热门话题,同时也是人工智能的一个标志性事件。再加上最近又发布重磅消息:IBM Watson与Salesforce在人工智能领域达成深度合作,这让很多科技以及CRM业内相关的人士都对人工...
  • 谷歌ai人工智能叫什么“We want to use AI to augment the abilities of people, to enable us to accomplish more and to allow us to spend more time on our creative endeavors.” “我们希望利用人工智能来增强...
  • CNN图片分类

    万次阅读 2018-08-21 17:03:53
    最近在阅读一些AI项目,写入markdown,持续更新,算是之后也能回想起...image classify(图片分类) CNN classify dogs and cats(猫狗二分类) Tutorial(教程):https://developers.google.com/machine-learning/pra...
  • 人工智能ai以算法为基础 执行摘要 (Executive Summary) Most companies fail to scale up their AI pilot projects. Most AI initiatives have their budgets cut because they don’t deliver results quickly ...
  • 阿里ai人工智能平台Artificial intelligence (AI) is widely used in today’s business such as for data analytics, natural language processing, or process automation. The inclusion of artificial ...
  • 人工智能工程导论项目,史蒂文斯理工学院姚教授任教我保证我遵守史蒂文斯荣誉制度,我的荣誉 - 贾斯汀汤普森 该项目的目标是使用 MATLAB 和 AI 工具对 16QAM、32QAM 和 64QAM 电信号进行分类。 大多数代码直接取自 ...
  • 人工智能实验三:分类算法实验

    万次阅读 2019-04-14 17:19:14
    1、巩固4种基本的分类算法的算法思想:朴素贝叶斯算法,决策树算法,人工神经网络,支持向量机算法; 2、能够使用现有的分类器算法代码进行分类操作; 3、学习如何调节算法的参数以提高分类性能; 二、实验硬件...
  • 人工智能学习路线

    万次阅读 多人点赞 2018-06-24 18:47:53
    阶段一、人工智能基础 - 高等数学必知必会本阶段主要从...同时对于AI研究尤为重要,例如人工智能中的智能很大一部分依托“概率论”实现的。一、数据分析1)常数e2)导数3)梯度4)Taylor5)gini系数6)信息熵与...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 57,021
精华内容 22,808
关键字:

人工智能图片分类