Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow 关键点检测的实现_Tensorflow_Opencv_Machine Learning_Keras_Computer Vision - Fatal编程技术网

Tensorflow 关键点检测的实现

Tensorflow 关键点检测的实现,tensorflow,opencv,machine-learning,keras,computer-vision,Tensorflow,Opencv,Machine Learning,Keras,Computer Vision,我正在研究关键点检测,特别是识别猫的左眼、右眼和嘴巴 例如,有一张猫的64x64图像 我在猫的左眼、右眼和嘴巴上画了一个圆圈 我为普通图像创建了ImageDataGenerator: train_datagen = ImageDataGenerator( featurewise_center=False, featurewise_std_normalization=False, width_shift_range=0.1, height_shift_ra

我正在研究关键点检测,特别是识别猫的左眼、右眼和嘴巴

例如,有一张猫的64x64图像

我在猫的左眼、右眼和嘴巴上画了一个圆圈

我为普通图像创建了ImageDataGenerator:

train_datagen = ImageDataGenerator(
    featurewise_center=False, 
    featurewise_std_normalization=False, 
    width_shift_range=0.1, 
    height_shift_range=0.1, 
    zoom_range=0.2)

train_generator = train_datagen.flow_from_directory(
    train_path,
    target_size=(64, 64),
    batch_size=32,
    seed=1,
    subset='training')

validation_generator = train_datagen.flow_from_directory(
    val_path,
    target_size=(64, 64),
    batch_size=32,
    seed=1,
    subset='validation')
也适用于具有关键点的图像:

heatmap_train_datagen = ImageDataGenerator(
    featurewise_center=False, 
    featurewise_std_normalization=False, 
    width_shift_range=0.1, 
    height_shift_range=0.1, 
    zoom_range=0.2)

heatmap_train_generator = heatmap_train_datagen.flow_from_directory(
    heatmap_train_path,
    target_size=(img_height, img_width),
    batch_size=32,
    seed=1,
    subset='training')

heatmap_validation_generator = heatmap_train_datagen.flow_from_directory(
    heatmap_val_path,
    target_size=(img_height, img_width),
    batch_size=32,
    seed=1,
    subset='validation')
然后把它们拉在一起:

zipped_train_generator = zip(train_generator, heatmap_train_generator)
我有这个模型:

Layer (type)                 Output Shape              Param #    
input_1 (InputLayer)         [(None, 64, 64, 3)]       0          
block1_conv1 (Conv2D)        (None, 64, 64, 64)        1792       
block1_conv2 (Conv2D)        (None, 64, 64, 64)        36928      
block1_pool (MaxPooling2D)   (None, 32, 32, 64)        0          
block2_conv1 (Conv2D)        (None, 32, 32, 128)       73856     
block2_conv2 (Conv2D)        (None, 32, 32, 128)       147584     
bottleneck_1 (Conv2D)        (None, 32, 32, 160)       5243040    
bottleneck_2 (Conv2D)        (None, 32, 32, 160)       25760      
upsample_1 (Conv2DTranspose) (None, 64, 64, 3)         1920       
Total params: 5,530,880  
Trainable params: 5,530,880  
Non-trainable params: 0
我正在训练模型:

history = model.fit((pair for pair in zipped_train_generator),
                    epochs=30,
                    validation_data = (validation_generator,heatmap_validation_generator)
                  )
它工作了一个多小时,而且似乎从未停止过:


这是检测关键点的正确方法吗?如果没有,我哪里做错了?我应该如何实现它?

为什么要将热图图像和cat图像压缩在一起?我也不认为在您想要的零件上画圆圈会有帮助。我建议创建一个数据集,在其中裁剪出左眼、右眼和嘴巴,并对它们进行标记,然后训练模型来识别这些部分。@yudhiesh这是从任务开始的:要以相同的方式增加输入和目标,应创建两个单独的生成器,然后你们可以把它们拉到一起。据我所知,我需要训练一个模型,它应该从普通图像生成热图(带点的图像),但我不知道如何实现它