如何制作自己的自定义图像数据集?

时间:2020-04-16 19:13:17

标签: image-processing deep-learning object-detection

当我在做我的项目时,该项目将检测在跑道上发现的FOD(外来物体杂质)。 FOD包括螺母,螺栓,螺钉,锁紧线,塑料碎片,石头等,可能会对飞机造成损坏。现在,我已经在Internet上搜索以找到任何图像数据集,但是没有与FOD相关的数据集。现在,我的问题是指导我,如何制作自己的图像数据集,然后将其用于训练目的。

请指导我制作用于分类和检测目的的图像数据集。以及所需的数据预处理。谢谢,等待回复!

3 个答案:

答案 0 :(得分:0)

尽管有关您的要求和机器规格的问题有点模糊,但我将尽力回答。您需要对象检测来完成任务。您可以使用许多可用的模型,例如YoloSSD等。

要创建自己的数据集,请按照以下步骤操作:

  • 在各种条件,视点和背景下为您的关注对象拍摄大量图像。 (每堂课大约2000个就足够了。)
  • 现在注释(或标记)对象在图像中的位置。如果您使用的是 Yolo ,请使用Yolo-mark进行注释。对于SSD和其他型号,应该还有其他类似的工具。
  • 现在您可以开始训练了。

这些步骤应该可以帮助您入门或至少指向正确的方向。

答案 1 :(得分:0)

您可以使用此代码构建自己的数据集。我写的,它正常工作。 您需要导入库并添加您的 DATADIR

if __name__ == "__main__":
    
    for category in CATEGORIES:
        path = os.path.join(DATADIR, category)
        class_num = CATEGORIES.index(category)
        for img in os.listdir(path):
            try:
                img_array = cv2.imread(os.path.join(path,img))
                new_array = cv2.resize(img_array, (IMG_SIZE, IMG_SIZE))
                training_data.append([new_array, class_num])
            except Exception as e:
                pass
            
            
    for features, label in training_data:
        x_train.append(features)
        y_train.append(label)
        
        
    #create pikle
    pickle_out = open("x_train.pickle", "wb")
    pickle.dump(x_train, pickle_out)
    pickle_out.close()
    
    pickle_out = open("y_train.pickle", "wb")
    pickle.dump(y_train, pickle_out)
    pickle_out.close()
    
   

答案 2 :(得分:0)

如果您完全从头开始,您可以使用 Play 商店中提供的“数据集目录”。该应用程序可帮助您使用移动设备创建自定义数据集。您必须登录您的 Google Drive,以便您的数据集存储在 Drive 而不是您的手机上。此外,它还包含为分类和回归预测模型标记实体。 目前,该应用支持二值图像分类和图像回归。

希望这有帮助!

下载链接: https://play.google.com/store/apps/details?id=com.applaud.datasetdirectory