【发布时间】:2020-01-10 15:21:07
【问题描述】:
我想将数千张动物图像加载到 pandas df 中,添加特征并可能转换为 HDF。
我使用cv2.imread()尝试了以下方法
import cv2
import os
import numpy as np
import pandas as pd
def images_to_hdf(folder_path, label):
"""
Save a folder of images to hdf format.
Args:
folder_path: Path to folder containing images.
label: A string of the image content.
Return:
None
"""
image_data = [np.array(cv2.imread(folder_path + img)) for img in os.listdir(folder_path)]
data = pd.DataFrame()
data['Images'] = image_data
data['Label'] = label
data.to_hdf(path, key)
但是仅读取 100 张图像需要超过 1 分钟的时间加上一个错误(太多的数值无法存储...),我确信这是一种非常低效的方法。
我尝试了np.fromfile() 而不是cv2.imread(),相比之下它的速度超快(我不太确定它的作用),但它返回 rank1 数组,我希望将图像 3 维数据存储在 pd 数据帧中以添加我将用来训练分类器的标签,我认为这可能是一种方法。
【问题讨论】:
-
你在训练哪个分类器?大多数现代 ML 库(
keras、pytorch、...)都允许从硬盘读取图像。 -
我将使用逻辑回归(我正在实现我自己的版本,以便了解我刚开始学习 ML 的工作原理)您有什么建议吗?
-
如果您开始并使用逻辑回归,也许您应该考虑质量较低的图像,例如 MNIST 或 Fashion-MNIST。
-
是的,我知道LQ图像方法,我想对动物照片进行分类,我只是想从头开始做东西,让它变得现实,只是为了了解整个过程,请帮助我你可以使用加载图像部分,我会从那里开始。
标签: python python-3.x pandas numpy image-processing