Notes

想调用 keras 的预训练网络提取图像特征,其中 VGG 和 ResNet50 要求输入图像长宽是224 x 224,以 CUB 数据集为例,预处理图片尺寸,放到一个新文件夹里。

Dataset

Caltech-UCSD Birds 200
CUB 数据库有分 2010 版和 2011 版的,官网左侧边栏可选,都是 200 个类,其中:

  • 2010 版:Caltech-UCSD Birds 200

    • Number of categories: 200
    • Number of images: 6,033
    • Annotations: Bounding Box, Rough Segmentation, Attributes
  • 2011 版:The Caltech-UCSD Birds-200-2011 Dataset
    • Number of categories: 200
    • Number of images: 11,788
    • Annotations per image: 15 Part Locations, 312 Binary Attributes, 1 Bounding Box

本篇示例用的是 2011 版,下载解压后,images/子目录里是按类组织的图片,一个类一个文件夹,文件夹名就是类名。更多介绍可见其README文件。

Pitfall

有个在于数据集里并不是所有图片都是彩色的,比如009.Brewer_Blackbird类的Brewer_Blackbird_0028_2682.jpg一图,黑白图读出来没有 channel 这一维。开始没注意到这个问题,结果后续处理报错了。
我的处理办法:用 numpy 建一个目标尺寸的、通道数为 3 的数组(本示例中即224 x 224 x 3),每个通道都赋成那张黑白图的值,这样能扩展出 channel 这维,且与原来的黑白图一致。原理可能是三种色光混合就变成白色光之类的。详见代码。

Code

目标:将图像尺寸改成224 x 224,放在一个新目录下(如:images.resized/),跟原来images/的组织方式相同。

# -*- coding: utf8 -*-
from os.path import join
from os import listdir, makedirs
from imageio import imread, imwrite
from scipy.misc import imresize #, imread, imsave
import numpy as npIN = 'images'  # 源目录
OUT = 'images.resized'  # 输出目录
CHANNEL = 3  # 通道数
SIZE_2D = (224, 224)  # 目标长宽
SIZE_3D = (224, 224, CHANNEL)makedirs(OUT)  # 创建输出目录
ls = list(listdir(IN))  # 列出(按类组织的)子目录
# print(ls)
for p in ls:out_d = join(OUT, p)  # 输出(按类组织的)子目录makedirs(out_d)p = join(IN, p)# print(listdir(p))for filE in listdir(p):img = imread(join(p, filE))  # 读图img = imresize(img, SIZE_2D)  # 改图if img.shape != SIZE_3D:  # 黑白图tmp = np.zeros(SIZE_3D)for c in range(CHANNEL):tmp[:, :, c] = imgimg = tmpimwrite(join(out_d, filE), img)  # 存图

Files

百度网盘:https://pan.baidu.com/s/12Frox4ztNmH5E_ZERlRwjg?pwd=7zdh,提取码:7zdh

References

SciPy快速入门教程
Imageio’s user API
Applications | Keras Documentation
keras预训练模型应用(3):VGG19提取任意层特征

Caltech-UCSD Birds 200 (CUB) 数据库预处理相关推荐

  1. mysql使用数据库预处理_php中对MYSQL操作之预处理技术(2)数据库dql查询语句

    //预处理技术 //创建一个mysqli对象 $mysqli = new MySQLi("主机名","mysql用户名","密码",&quo ...

  2. mysql数据库预处理_一种MySQL数据库中间件预处理方法与流程

    本发明属于通信领域,特别涉及一种MySQL数据库中间件预处理方法. (二) 背景技术: 通常来说,MySQL集群和应用程序之间需要通过一个中间件来实现通信.中间件的作用是,对于应用程序来说,不需要关心 ...

  3. 年薪200万数据库牛人牛新庄的成长历程

    作者简介:       牛新庄博士,研究方向为数据仓库和数据挖掘.是IBM官方资深培训讲师(培训DB2,AIX,MQ,WebSphere和CICS).2002年获IBM 杰出软件专家奖,2006年获& ...

  4. Pytorch训练Bilinear CNN模型笔记

    Pytorch训练Bilinear CNN模型笔记 注:一个项目需要用到机器学习,而本人又是一个python小白,根据老师的推荐,然后在网上查找了一些资料,终于实现了目的. 参考文献: Caltech ...

  5. 【今日CV 计算机视觉论文速览 第93期】Wed, 3 Apr 2019

    今日CS.CV 计算机视觉论文速览 Wed, 3 Apr 2019 Totally 55 papers Daily Computer Vision Papers Exploring Randomly ...

  6. Text to image论文精读 DM-GAN: Dynamic Memory Generative Adversarial Networks for t2i 用于文本图像合成的动态记忆生成对抗网络

    Text to image论文精读 DM-GAN: Dynamic Memory Generative Adversarial Networks for Text-to-Image Synthesis ...

  7. CogView: Mastering Text-to-Image Generation via Transformers翻译

    摘要 通用领域中的 Text-to-Image 生成长期以来一直是一个开放的问题,它需要强大的生成模型和跨模态理解. 我们提出了 CogView,一个 40 亿参数的 Transformer,带有 V ...

  8. 深度学习数据集标注工具、图像语料数据库等资源

    NLP+VS︱深度学习数据集标注工具.图像语料数据库.实验室搜索ing... 2017年02月07日 12:12:01 阅读数:27032 ~~因为不太会使用opencv.matlab工具,所以在找一 ...

  9. 深度学习(DL) /人工智能(AI)数据集标注工具、图像语料数据库

    一.NLP标注工具BRAT BRAT是一个基于web的文本标注工具,主要用于对文本的结构化标注,用BRAT生成的标注结果能够把无结构化的原始文本结构化,供计算机处理.利用该工具可以方便的获得各项NLP ...

  10. NLP+VS︱深度学习数据集标注工具、图像语料数据库、实验室搜索ing..

    一.NLP标注工具 来源:<构想:中文文本标注工具(附开源文本标注工具列表)> Chinese-Annotator   来源:https://github.com/crownpku/Chi ...

最新文章

  1. OpenCV学习笔记(12)——OpenCV中的轮廓
  2. 生物信息「知识图谱」
  3. pytorch的多分类问题
  4. xml方式实现aop-通知的种类
  5. 栈和排序(贪心+思维)
  6. 统计模型混响信号预报matlab,基于MATLAB的混响效果设计课程设计
  7. 6070. 计算字符串的数字和
  8. 一点排位就安全异常退出_鸡肉的嘌呤高吗?高尿酸血症和痛风人群可以吃吗?怎么吃才安全呢...
  9. umi build打包之后部署报错
  10. 视频剪辑自学怎么入门?借助这款软件可以达到意想不到的效果
  11. pve 缩小LXC 磁盘
  12. 无情链表的创建,,插入,,删除第一个位
  13. android7 ios,碰到这样的安卓7.0系统,iOS10真要吓出一身汗!
  14. 80年代个人计算机,现在的电脑程序在80年代就已经有了
  15. 基督山伯爵---大仲马
  16. 转: 大年三十整理的asp.net资料!(经典)
  17. 优秀是一种习惯:说一说你身边在世界名校读书的人
  18. python k线图和指标_量化交易中,如何使用Python画K线、成交量、买卖点【邢不行】...
  19. IOS设备使用Airplay投屏到Windows的软件对比
  20. 那些重出江湖的大佬们――柳传志etc.

热门文章

  1. excel汇总软件如何快速汇总多个表格数据
  2. 基于Operator Discretization Library (ODL)的CT图像正反投
  3. 吴恩达深度学习学习笔记——C1W2——神经网络基础——练习题
  4. C# 判断是不是非负数
  5. 协议栈skb _buff
  6. 在C语言中使用fflush(stdin)
  7. 流式处理术语解释:Exactly-once与Effectively-once
  8. php在word中生成表格,word创建表格的三种方法分别是什么
  9. hdu 5887 herb gathering 搜索剪枝
  10. android studio导入音乐文件,Android Studio 通过raw 文件夹播放音乐问题