在性别识别 AI 中列出超出范围的索引(使用 TensorFlow 制作)

问题描述 投票:0回答:0
  • 我正在让这个 AI 与我的其他项目一起工作,这些项目可用于验证投票。
  • 因为我想让这个人工智能工作,它会检查进入投票区的人,并像人脸识别系统一样存储信息。
  • 因为性别问题比较多,我会在错误修复后补上

守则

import tensorflow as tf
import numpy as np
import cv2
import playsound

# Load the pre-trained MobileNetV2 model
model = tf.keras.applications.MobileNetV2(input_shape=(224, 224, 3),
                                          include_top=True,
                                          weights='imagenet')

# Define the classes
classes = ['female', 'male']

# Load the sounds
female_sound = "/kaggle/input/voices/voicebooking-speech (1).wav"
male_sound = "/kaggle/input/voices/voicebooking-speech.wav"

# Define a function to preprocess the image
def preprocess_image(image):
    if image is None or image.size == 0:
        return None
    image = cv2.resize(image, (224, 224))
    image = tf.keras.applications.mobilenet_v2.preprocess_input(image)
    image = np.expand_dims(image, axis=0)
    return image

# Define a function to predict the gender and play a sound
def predict_gender(image):
    # Preprocess the image
    preprocessed_image = preprocess_image(image)
    if preprocessed_image is None:
        return None
    
    # Make a prediction using the model
    predictions = model.predict(preprocessed_image)
    
    # Check if the predictions array is empty or has length zero
    if predictions.size == 0:
        return None
    
    gender = classes[np.argmax(predictions)]
    
    # Play a sound based on the prediction
    if gender == 'male':
        playsound.playsound(male_sound)
    elif gender == 'female':
        playsound.playsound(female_sound)
    return gender

# Test the function with an example image
image_path = "/kaggle/input/gender-classification-dataset/Validation/male/063443.jpg.jpg"
image = cv2.imread(image_path)

if image is None:
    print('Unable to load image:', image_path)
else:
    gender = predict_gender(image)
    if gender is None:
        print('Unable to make prediction.')
    else:
        print('The predicted gender is:', gender)

错误

IndexError                                Traceback (most recent call last)
/tmp/ipykernel_28/1694853110.py in <module>
     55     print('Unable to load image:', image_path)
     56 else:
---> 57     gender = predict_gender(image)
     58     if gender is None:
     59         print('Unable to make prediction.')

/tmp/ipykernel_28/1694853110.py in predict_gender(image)
     39         return None
     40 
---> 41     gender = classes[np.argmax(predictions)]
     42 
     43     # Play a sound based on the prediction

IndexError: list index out of range

我期望这段代码做什么以及我试图解决这个问题

  • 如果识别出男性,我希望这段代码会说 male 女性如果女性被识别

  • 我重写了整个代码。 重写没用

  • 我使用了此代码,但进行了一些更改,因此它适用于我的代码。 也没用

test_list = [1, 2, 3, 4]

for i in range(len(test_list)):
    print(test_list[i])

我是编码新手,所以我无法弄清楚。 请帮忙😢

python opencv artificial-intelligence tf.keras kaggle
© www.soinside.com 2019 - 2024. All rights reserved.