Model Card for Model ID

This model is a Jewelry Classifier. Just upload an image of one of the categories named below and the model will classify it for you.

  • Pendant
  • Bracelet
  • Chain
  • Earring
  • Ring
  • Watch

How to use?

Before following the steps below, please install these dependencies:

numpy==1.26.4 
keras==3.3.3
pillow==10.3.0

Step1: Load the Model (jewelry_classification.h5)

Download the model file from (https://huggingface.co/beyondxlabs/JewelryClassification/resolve/main/jewelry_classification.h5?download=true) and then use the below code snippet to load the model.

model = load_model('jewelry_classification_model.h5')
 
class_labels = ['Anhänger', 'Armbänder', 'Ketten', 'Ohrringe', 'Ringe', 'Uhren']

Step 2: Preprocess your images

Before giving images to the model, that image needs to be preprocessed to get a numpy array. You can just use the below function.

def preprocess_image(img):
    try:
        img = Image.open(img)
        img = img.resize((224, 224))
        img_array = img_to_array(img)
        img_array = np.expand_dims(img_array, axis=0)
        img_array = img_array.astype(np.float32) / 255.0
        return img_array
    except Exception as error:
        st.error(f"An error occurred during image preprocessing: {error}")
        return None

Step 3: Predict the output

In this step the preprocessed image could be given to the model to get the classification. Below is the sample code snippet.

def choose_category(img, is_url=True):
    try:
        processed_img = preprocess_image(img, is_url)
        if processed_img is not None:
            preds = model.predict(processed_img)
            category = class_labels[np.argmax(preds)]
            confidence = np.max(preds)
 
            return category, confidence*100
        return 'Other', 0
    except Exception as e:
        st.error(f"An error occurred during prediction: {e}")
        return 'Other', 0

Step 4(optional): Streamlit UI

Use the below snippet to make an UI Application using the model

# UI interface
import streamlit as st
st.title("Jewelry Classification")
 
uploaded_file = st.file_uploader("Choose an image...", type=["jpg"])
if st.button("Classify"):
    if uploaded_file is not None:
        category, confidence = choose_category(uploaded_file, is_url=False)
        st.write(f"Predicted Category: **{category}** with confidence **{confidence:.2f}%**")
    else:
        st.error("Please upload an image file.")
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model is not currently available via any of the supported Inference Providers.
The model cannot be deployed to the HF Inference API: The model has no library tag.