三步(三大步)实现图片智能识别与分类

本文介绍如何利用Python3.6和百度飞桨PaddlePaddle2.0进行图片识别与分类。首先创建数据集,将不同分类图片存放在对应文件夹,避免路径中有中文。接着进行图片预处理,然后搭建包含3个卷积池化层和2个全连接层的神经网络,并在CPU上训练。最后加载模型进行预测。虽因CPU训练时间长,只训练5次,但结果尚可。
摘要由CSDN通过智能技术生成

1.概要
本代码是基于python3.6和百度飞桨paddlepaddle2.0模块实现,现在人工智能的模块很很多,主流的有tf,pytorch,百度飞桨等,虽然百度飞桨的流行程度不如tf和pytorch,但是百度飞桨毕竟是国人开发出来的,而且在百度的aistuio上有一些免费的课程,大家可以去看一下https://aistudio.baidu.com/aistudio/course,个人觉得挺不错的,废话不多说直接上代码

2.实现
下载模块

pip install paddlepaddle

首先是图片预处理部分,首先大家需要自己创建一个数据集,将不同的分类的图片保存到不同的文件夹中,例如people文件夹下放人物图,需要出注意的一点就是,文件路径中不能带有中文,不然程序会找不到文件,会报错。图片可以通过爬虫爬取,或者可以直接用我的https://github.com/weita1013/Photo_classification,其中分类文件夹的名称就是图片的类别,数据集的数量最好不要太少,一个分类200张左右就可以基本实现功能。

# 数据预处理
import os
import shutil

name_dict = {
   'people': 0, 'animal': 1, 'landscape': 2,
             'vehicle': 3, 'food': 4}
data_root_path = r'dataset/photo/'
# 测试集路径
test_file_path = data_root_path + 'test.list'
# 训练集文件路径
train_file_path = data_root_path + 'train.list'
# 样本汇总文件
readme_file = data_root_path + 'readme.json'
# 记录每个类别多少张训练图片、测试图片
name_data_list = {
   }


def save_train_test_file(path, name):
    if name not in name_data_list:
        img_list = []
        img_list.append(path)
        name_data_list[name] = img_list
    else:
        name_data_list[name].append(path)


# 遍历目录、将图片路径存入字典,再由字典写入文件
dirs = os.listdir(data_root_path)
for d in dirs:
    full_path = data_root_path + d
    if os.path.isdir(full_path):
        imgs = os.listdir(full_path)
        for img in imgs:
            save_train_test_file(full_path + '/' + img, d)
    else:
        pass
# 图片分配到测试集和训练集中,
with open(test_file_path, 'w')as f:
    pass
with open(train_file_path, 'w')as f:
    pass
# 遍历字段,分配测试集
for name, img_list in name_data_list.items():
    i = 0
    num = len(img_list)
    print('{}:{}张'.format(name, num))
    for img in img_list:
        if i % 10 == 0:
            with open(test_file_path, 'a')as f:
                line = '%s\t%d\n' % 
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值