Enhanced version of the injection molding color recipe prediction system with an interactive recipe simulator.
- Predict pigment recipes from target color names
- Enhanced model with optimized weights
- Top-K pigment selection for practical recipes
- Excel export functionality
- Interactive recipe adjustment with top-N pigment selection
- Real-time color prediction from custom recipes
- ΔE00 calculation to compare with target colors
- Visual color comparison
- Python 3.8 or higher
- Conda (recommended) or virtualenv
- Clone this repository:
git clone https://github.com/Saymooon/RecipeNet-App-v2.git
cd RecipeNet-App-v2- Create and activate a conda environment:
conda create -n ColorMatching python=3.8
conda activate ColorMatching- Install required packages:
pip install -r requirements.txtRun the Streamlit app:
streamlit run app_v2.pyThe app will open in your default web browser at http://localhost:8501
Make sure all the following files are in the same directory:
app_v2.py- Main application filerecipe_model_optimized_weight_0.1.pth- Optimized RecipeNet modelname_encoder.pkl- Text encoder for color namesxgb_surrogate_2.pkl- XGBoost model for recipe predictionxgb_surrogate_3.pkl- XGBoost model for recipe simulatorswatch_recipe_merged_1120.csv- Reference datasetrequirements.txt- Python dependencies
- Select a target color from the dropdown (56 colors available)
- Click "레시피 예측 실행" (Run Recipe Prediction)
- View the predicted recipe and download as Excel if needed
- After predicting a recipe, scroll down to the simulator section
- Click "🔄 예측 레시피 불러오기" to load the predicted recipe
- Adjust pigment amounts using the sliders
- Click "🎨 색상 예측 실행" to see the predicted color
- Compare the result with the target color using ΔE00 metric
- Model Architecture: RecipeNet with 3-head attention mechanism
- Optimization: Model weight = 0.7, Similar recipe weight = 0.3
- Top-K Selection: Default 5 pigments for practical manufacturing
- Color Space: CIE Lab color space
- Color Difference: CIEDE2000 (ΔE00) metric
This project is for research and educational purposes.
For questions or issues, please open an issue on GitHub.