--- tags: - image-classification - image - data-classification - image-categorisation - data-categoriasation pipeline_tag: image-classification language: - de - en --- # 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: ```pyhton 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. ```python 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. ```python 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. ```python 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 ```python # 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.") ```