From de148022ce532178c08d02ba02a51d772ce13927 Mon Sep 17 00:00:00 2001 From: Esma Krnjic Date: Wed, 10 Jun 2026 15:44:17 +0200 Subject: [PATCH] Expand ground truth to 76 images and analyze P/R/F vs set size and groupings Ground truth: - Hand-label the remaining 66 cropped_tags images (was 10) in the TagSchema shape, marking absent fields null/[]. Scorer self-check passes (321 TP). Tooling: - scripts/analyze_eval.py: learning curve (deterministic cumulative + Monte-Carlo mean/std over random subsets) and per-group P/R/F for natural groupings (content type, material complexity, language, fiber tier). - scripts/tag.py: record NO_TAG_DETECTED / errors in --json output instead of dropping them, so predictions.json has one row per image and the scorer counts them as misses. Findings (Gemini 2.5 Pro, docs/evaluation-findings.md + docs/eval-results.json): - Whole-set overall F1 0.898 (country 0.976, materials 0.951, care 0.821). - Growing the set barely moves the mean F1 (~0.89) but collapses its variance (std 0.11 at n=5 -> 0.03 at n=30); the original 10 overstated performance. - Groups differ sharply: full tags 0.97 vs care-only crops 0.60. - Dominant failure: 12 care-only crops return NO_TAG_DETECTED, causing ~92% of all care recall loss (care recall 0.745 end-to-end vs 0.973 when detected). - Smaller errors: hallucination on low-contrast woven labels, country over-inference from vendor codes, gentle/cold enum near-misses, and a flat materials schema that penalizes multi-part garments. Commit predictions.json / predictions.complete.json for reproducibility. Co-Authored-By: Claude Opus 4.8 (1M context) --- .gitignore | 3 + cropped_tags/IMG_8539.JPG.json.gt | 11 + cropped_tags/IMG_8560.JPG.json.gt | 14 + cropped_tags/IMG_8561.JPG.json.gt | 16 + cropped_tags/IMG_8563.JPG.json.gt | 11 + cropped_tags/IMG_8564.JPG.json.gt | 14 + cropped_tags/IMG_8567.JPG.json.gt | 14 + cropped_tags/IMG_8568.JPG.json.gt | 11 + cropped_tags/IMG_8569.JPG.json.gt | 14 + cropped_tags/IMG_8570.JPG.json.gt | 16 + cropped_tags/IMG_8571.JPG.json.gt | 14 + cropped_tags/IMG_8573.JPG.json.gt | 11 + cropped_tags/IMG_8574.JPG.json.gt | 13 + cropped_tags/IMG_8575.JPG.json.gt | 17 + cropped_tags/IMG_8579.JPG.json.gt | 11 + cropped_tags/IMG_8584.JPG.json.gt | 19 + cropped_tags/IMG_8585.JPG.json.gt | 13 + cropped_tags/IMG_8586.JPG.json.gt | 14 + cropped_tags/IMG_8587.JPG.json.gt | 13 + cropped_tags/IMG_8593.JPG.json.gt | 14 + cropped_tags/IMG_8594.JPG.json.gt | 11 + cropped_tags/IMG_8595.JPG.json.gt | 14 + cropped_tags/IMG_8603.JPG.json.gt | 11 + cropped_tags/IMG_8604.JPG.json.gt | 15 + cropped_tags/IMG_8606.JPG.json.gt | 14 + cropped_tags/IMG_8607.JPG.json.gt | 11 + cropped_tags/IMG_8608.JPG.json.gt | 16 + cropped_tags/IMG_8609.JPG.json.gt | 11 + cropped_tags/IMG_8610.JPG.json.gt | 15 + cropped_tags/IMG_8611.JPG.json.gt | 11 + cropped_tags/IMG_8612.JPG.json.gt | 11 + cropped_tags/IMG_8614.JPG.json.gt | 15 + cropped_tags/IMG_8615.JPG.json.gt | 13 + cropped_tags/IMG_8616.JPG.json.gt | 11 + cropped_tags/IMG_8617.JPG.json.gt | 14 + cropped_tags/IMG_8618.JPG.json.gt | 14 + cropped_tags/IMG_8619.JPG.json.gt | 15 + cropped_tags/IMG_8620.JPG.json.gt | 11 + cropped_tags/IMG_8621.JPG.json.gt | 15 + cropped_tags/IMG_8622.JPG.json.gt | 14 + cropped_tags/IMG_8623.JPG.json.gt | 11 + cropped_tags/IMG_8624.JPG.json.gt | 13 + cropped_tags/IMG_8625.JPG.json.gt | 14 + cropped_tags/IMG_8626.JPG.json.gt | 15 + cropped_tags/IMG_8627.JPG.json.gt | 11 + cropped_tags/IMG_8628.JPG.json.gt | 13 + cropped_tags/IMG_8629.JPG.json.gt | 11 + cropped_tags/IMG_8690.JPG.json.gt | 11 + cropped_tags/IMG_8691.JPG.json.gt | 15 + cropped_tags/IMG_8693.JPG.json.gt | 14 + cropped_tags/IMG_8696.JPG.json.gt | 14 + cropped_tags/IMG_8697.JPG.json.gt | 15 + cropped_tags/IMG_8699 2.JPG.json.gt | 11 + cropped_tags/IMG_8700.JPG.json.gt | 14 + cropped_tags/IMG_8702.JPG.json.gt | 18 + cropped_tags/IMG_8705.JPG.json.gt | 14 + cropped_tags/IMG_8706.JPG.json.gt | 11 + cropped_tags/IMG_8707.JPG.json.gt | 14 + cropped_tags/IMG_8708.JPG.json.gt | 14 + cropped_tags/IMG_8709.JPG.json.gt | 15 + cropped_tags/IMG_8710.JPG.json.gt | 15 + cropped_tags/IMG_8711.JPG.json.gt | 13 + cropped_tags/IMG_8712.JPG.json.gt | 16 + cropped_tags/IMG_8713.JPG.json.gt | 15 + cropped_tags/IMG_8714.JPG.json.gt | 15 + cropped_tags/tag_1.JPG.json.gt | 13 + cropped_tags/tag_5.JPG.json.gt | 11 + docs/eval-results.json | 1443 ++++++++++++ docs/evaluation-findings.md | 176 ++ docs/evaluation.md | 34 + predictions.complete.json | 3305 +++++++++++++++++++++++++++ predictions.json | 3197 ++++++++++++++++++++++++++ scripts/analyze_eval.py | 291 +++ scripts/tag.py | 7 + 74 files changed, 9344 insertions(+) create mode 100644 cropped_tags/IMG_8539.JPG.json.gt create mode 100644 cropped_tags/IMG_8560.JPG.json.gt create mode 100644 cropped_tags/IMG_8561.JPG.json.gt create mode 100644 cropped_tags/IMG_8563.JPG.json.gt create mode 100644 cropped_tags/IMG_8564.JPG.json.gt create mode 100644 cropped_tags/IMG_8567.JPG.json.gt create mode 100644 cropped_tags/IMG_8568.JPG.json.gt create mode 100644 cropped_tags/IMG_8569.JPG.json.gt create mode 100644 cropped_tags/IMG_8570.JPG.json.gt create mode 100644 cropped_tags/IMG_8571.JPG.json.gt create mode 100644 cropped_tags/IMG_8573.JPG.json.gt create mode 100644 cropped_tags/IMG_8574.JPG.json.gt create mode 100644 cropped_tags/IMG_8575.JPG.json.gt create mode 100644 cropped_tags/IMG_8579.JPG.json.gt create mode 100644 cropped_tags/IMG_8584.JPG.json.gt create mode 100644 cropped_tags/IMG_8585.JPG.json.gt create mode 100644 cropped_tags/IMG_8586.JPG.json.gt create mode 100644 cropped_tags/IMG_8587.JPG.json.gt create mode 100644 cropped_tags/IMG_8593.JPG.json.gt create mode 100644 cropped_tags/IMG_8594.JPG.json.gt create mode 100644 cropped_tags/IMG_8595.JPG.json.gt create mode 100644 cropped_tags/IMG_8603.JPG.json.gt create mode 100644 cropped_tags/IMG_8604.JPG.json.gt create mode 100644 cropped_tags/IMG_8606.JPG.json.gt create mode 100644 cropped_tags/IMG_8607.JPG.json.gt create mode 100644 cropped_tags/IMG_8608.JPG.json.gt create mode 100644 cropped_tags/IMG_8609.JPG.json.gt create mode 100644 cropped_tags/IMG_8610.JPG.json.gt create mode 100644 cropped_tags/IMG_8611.JPG.json.gt create mode 100644 cropped_tags/IMG_8612.JPG.json.gt create mode 100644 cropped_tags/IMG_8614.JPG.json.gt create mode 100644 cropped_tags/IMG_8615.JPG.json.gt create mode 100644 cropped_tags/IMG_8616.JPG.json.gt create mode 100644 cropped_tags/IMG_8617.JPG.json.gt create mode 100644 cropped_tags/IMG_8618.JPG.json.gt create mode 100644 cropped_tags/IMG_8619.JPG.json.gt create mode 100644 cropped_tags/IMG_8620.JPG.json.gt create mode 100644 cropped_tags/IMG_8621.JPG.json.gt create mode 100644 cropped_tags/IMG_8622.JPG.json.gt create mode 100644 cropped_tags/IMG_8623.JPG.json.gt create mode 100644 cropped_tags/IMG_8624.JPG.json.gt create mode 100644 cropped_tags/IMG_8625.JPG.json.gt create mode 100644 cropped_tags/IMG_8626.JPG.json.gt create mode 100644 cropped_tags/IMG_8627.JPG.json.gt create mode 100644 cropped_tags/IMG_8628.JPG.json.gt create mode 100644 cropped_tags/IMG_8629.JPG.json.gt create mode 100644 cropped_tags/IMG_8690.JPG.json.gt create mode 100644 cropped_tags/IMG_8691.JPG.json.gt create mode 100644 cropped_tags/IMG_8693.JPG.json.gt create mode 100644 cropped_tags/IMG_8696.JPG.json.gt create mode 100644 cropped_tags/IMG_8697.JPG.json.gt create mode 100644 cropped_tags/IMG_8699 2.JPG.json.gt create mode 100644 cropped_tags/IMG_8700.JPG.json.gt create mode 100644 cropped_tags/IMG_8702.JPG.json.gt create mode 100644 cropped_tags/IMG_8705.JPG.json.gt create mode 100644 cropped_tags/IMG_8706.JPG.json.gt create mode 100644 cropped_tags/IMG_8707.JPG.json.gt create mode 100644 cropped_tags/IMG_8708.JPG.json.gt create mode 100644 cropped_tags/IMG_8709.JPG.json.gt create mode 100644 cropped_tags/IMG_8710.JPG.json.gt create mode 100644 cropped_tags/IMG_8711.JPG.json.gt create mode 100644 cropped_tags/IMG_8712.JPG.json.gt create mode 100644 cropped_tags/IMG_8713.JPG.json.gt create mode 100644 cropped_tags/IMG_8714.JPG.json.gt create mode 100644 cropped_tags/tag_1.JPG.json.gt create mode 100644 cropped_tags/tag_5.JPG.json.gt create mode 100644 docs/eval-results.json create mode 100644 docs/evaluation-findings.md create mode 100644 predictions.complete.json create mode 100644 predictions.json create mode 100644 scripts/analyze_eval.py diff --git a/.gitignore b/.gitignore index 521da0a..35adc00 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,6 @@ backend/uploads/ CLAUDE.md read.txt + +__pycache__/ +*.pyc diff --git a/cropped_tags/IMG_8539.JPG.json.gt b/cropped_tags/IMG_8539.JPG.json.gt new file mode 100644 index 0000000..f228826 --- /dev/null +++ b/cropped_tags/IMG_8539.JPG.json.gt @@ -0,0 +1,11 @@ +{ + "ocr_text": "Machine wash cold, gentle cycle with like colors. Non-chlorine bleach only. Tumble dry low. Warm iron as needed.", + "country": null, + "materials": [], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "iron_medium", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8560.JPG.json.gt b/cropped_tags/IMG_8560.JPG.json.gt new file mode 100644 index 0000000..f1582f8 --- /dev/null +++ b/cropped_tags/IMG_8560.JPG.json.gt @@ -0,0 +1,14 @@ +{ + "ocr_text": "STYLE# ISW1638 RN# 142577 70% RAYON 30% POLYESTER MADE IN CHINA", + "country": "China", + "materials": [ + { "fiber": "Rayon", "pct": 70 }, + { "fiber": "Polyester", "pct": 30 } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8561.JPG.json.gt b/cropped_tags/IMG_8561.JPG.json.gt new file mode 100644 index 0000000..4c70eb6 --- /dev/null +++ b/cropped_tags/IMG_8561.JPG.json.gt @@ -0,0 +1,16 @@ +{ + "ocr_text": "BODY: 100% POLYESTER LINING: 100% POLYESTER TRONC: 100% POLYESTER DOUBLURE: 100% POLYESTER CA 23725 RN 122354", + "country": null, + "materials": [ + { "fiber": "Polyester", "pct": 100 }, + { "fiber": "Polyester", "pct": 100 }, + { "fiber": "Polyester", "pct": 100 }, + { "fiber": "Polyester", "pct": 100 } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8563.JPG.json.gt b/cropped_tags/IMG_8563.JPG.json.gt new file mode 100644 index 0000000..c996927 --- /dev/null +++ b/cropped_tags/IMG_8563.JPG.json.gt @@ -0,0 +1,11 @@ +{ + "ocr_text": "DRY CLEAN ONLY. NETTOYAGE A SEC SEULEMENT. MADE IN VIETNAM FABRIQUE AU VIETNAM", + "country": "Vietnam", + "materials": [], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": "dry_clean_only" + } +} diff --git a/cropped_tags/IMG_8564.JPG.json.gt b/cropped_tags/IMG_8564.JPG.json.gt new file mode 100644 index 0000000..220d59c --- /dev/null +++ b/cropped_tags/IMG_8564.JPG.json.gt @@ -0,0 +1,14 @@ +{ + "ocr_text": "Made in Bangladesh Fabrique en Bangladesh Hecho en Bangladesh O/N 241102 P/N 08797811 clevercare.info GB 70% VISCOSE, 30% POLYAMIDE.", + "country": "Bangladesh", + "materials": [ + { "fiber": "Viscose", "pct": 70 }, + { "fiber": "Polyamide", "pct": 30 } + ], + "care": { + "washing": "machine_wash_warm", + "drying": "do_not_tumble_dry", + "ironing": "iron_medium", + "dry_cleaning": "dry_clean" + } +} diff --git a/cropped_tags/IMG_8567.JPG.json.gt b/cropped_tags/IMG_8567.JPG.json.gt new file mode 100644 index 0000000..ba58514 --- /dev/null +++ b/cropped_tags/IMG_8567.JPG.json.gt @@ -0,0 +1,14 @@ +{ + "ocr_text": "80% SILK/SOIE 20% NYLON CA#00445 RN#85188 Made in China", + "country": "China", + "materials": [ + { "fiber": "Silk", "pct": 80 }, + { "fiber": "Nylon", "pct": 20 } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8568.JPG.json.gt b/cropped_tags/IMG_8568.JPG.json.gt new file mode 100644 index 0000000..3a1f07d --- /dev/null +++ b/cropped_tags/IMG_8568.JPG.json.gt @@ -0,0 +1,11 @@ +{ + "ocr_text": "HAND WASH COLD, DO NOT BLEACH, RESHAPE WHILE DAMP, DRY FLAT, COOL IRON ONLY IF NEEDED, OR DRY CLEAN. LAVER A LA MAIN A L'EAU FROIDE, NE PAS JAVELISER, REMODELER PENDANT QUE L'ARTICLE EST ENCORE HUMIDE, SECHER A PLAT, REPASSAGE DOUX SI NECESSAIRE, OU NETTOYER A SEC. MADE IN CHINA FABRIQUE EN CHINE", + "country": "China", + "materials": [], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": "dry_clean" + } +} diff --git a/cropped_tags/IMG_8569.JPG.json.gt b/cropped_tags/IMG_8569.JPG.json.gt new file mode 100644 index 0000000..ccc8c82 --- /dev/null +++ b/cropped_tags/IMG_8569.JPG.json.gt @@ -0,0 +1,14 @@ +{ + "ocr_text": "57% VISCOSE, 43% POLYESTER EXCLUSIVE OF ELASTIC 57% VISCOSE, 43% POLYESTER A L'EXCLUSION DE L'ELASTIQUE", + "country": null, + "materials": [ + { "fiber": "Viscose", "pct": 57 }, + { "fiber": "Polyester", "pct": 43 } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8570.JPG.json.gt b/cropped_tags/IMG_8570.JPG.json.gt new file mode 100644 index 0000000..5c123dc --- /dev/null +++ b/cropped_tags/IMG_8570.JPG.json.gt @@ -0,0 +1,16 @@ +{ + "ocr_text": "48% VISCOSE, 31% POLYESTER, 18% NYLON, 3% ELASTANE 48% VISCOSE, 31% POLYESTER, 18% NYLON, 3% ELASTHANNE CA 23725 RN 122354", + "country": null, + "materials": [ + { "fiber": "Viscose", "pct": 48 }, + { "fiber": "Polyester", "pct": 31 }, + { "fiber": "Nylon", "pct": 18 }, + { "fiber": "Elastane", "pct": 3 } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8571.JPG.json.gt b/cropped_tags/IMG_8571.JPG.json.gt new file mode 100644 index 0000000..752c7bb --- /dev/null +++ b/cropped_tags/IMG_8571.JPG.json.gt @@ -0,0 +1,14 @@ +{ + "ocr_text": "SELF: 100% COTTON LINING: 100% POLYESTER MADE IN CHINA", + "country": "China", + "materials": [ + { "fiber": "Cotton", "pct": 100 }, + { "fiber": "Polyester", "pct": 100 } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8573.JPG.json.gt b/cropped_tags/IMG_8573.JPG.json.gt new file mode 100644 index 0000000..6802b8a --- /dev/null +++ b/cropped_tags/IMG_8573.JPG.json.gt @@ -0,0 +1,11 @@ +{ + "ocr_text": "MACHINE WASH COLD DO NOT BLEACH TUMBLE DRY LOW HEAT COOL IRON", + "country": null, + "materials": [], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8574.JPG.json.gt b/cropped_tags/IMG_8574.JPG.json.gt new file mode 100644 index 0000000..893ed98 --- /dev/null +++ b/cropped_tags/IMG_8574.JPG.json.gt @@ -0,0 +1,13 @@ +{ + "ocr_text": "100% Organic Cotton GLOBAL ORGANIC TEXTILE STANDARD GOTS Organic CU 1245496 Machine wash cold with like colors. Tumble dry low. Do not bleach. Made in India", + "country": "India", + "materials": [ + { "fiber": "Organic Cotton", "pct": 100 } + ], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8575.JPG.json.gt b/cropped_tags/IMG_8575.JPG.json.gt new file mode 100644 index 0000000..dffc91a --- /dev/null +++ b/cropped_tags/IMG_8575.JPG.json.gt @@ -0,0 +1,17 @@ +{ + "ocr_text": "Body/Corps: 53%Cotton/Algodon 47%Polyester/Polyester Rib/Costilla: 49%Cotton/Algodon 49%Polyester/Polyester 2%Spandex/Elasthanne EXCLUSIVE OF DECORATION EXCLUYENDO DECORATION RN 50369 STYLE 9920 Made in Cambodia Hecho en Camboya", + "country": "Cambodia", + "materials": [ + { "fiber": "Cotton", "pct": 53 }, + { "fiber": "Polyester", "pct": 47 }, + { "fiber": "Cotton", "pct": 49 }, + { "fiber": "Polyester", "pct": 49 }, + { "fiber": "Spandex", "pct": 2 } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8579.JPG.json.gt b/cropped_tags/IMG_8579.JPG.json.gt new file mode 100644 index 0000000..fb6e325 --- /dev/null +++ b/cropped_tags/IMG_8579.JPG.json.gt @@ -0,0 +1,11 @@ +{ + "ocr_text": "MACHINE WASH COLD WITH LIKE COLOURS, ONLY NON-CHLORINE BLEACH WHEN NEEDED, TUMBLE DRY LOW, COOL IRON ONLY IF NEEDED, DO NOT DRY CLEAN LAVER A LA MACHINE A L'EAU FROIDE AVEC COULEURS SEMBLABLES, UTILISER SEULEMENT UN JAVELLISANT SANS CHLORE AU BESOIN, SECHER A BASSE TEMPERATURE, REPASSAGE DOUX SI NECESSAIRE, NE PAS NETTOYER A SEC MADE IN CHINA FABRIQUE EN CHINE", + "country": "China", + "materials": [], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8584.JPG.json.gt b/cropped_tags/IMG_8584.JPG.json.gt new file mode 100644 index 0000000..8deb755 --- /dev/null +++ b/cropped_tags/IMG_8584.JPG.json.gt @@ -0,0 +1,19 @@ +{ + "ocr_text": "BODY: 55% MERINO WOOL, 25% RECYCLED NYLON, 20% COTTON RIB TRIM: 52% MERINO WOOL, 28% RECYCLED NYLON, 19% COTTON, 1% ELASTANE CORPS: 55% LAINE MERINOS, 25% NYLON RECYCLE, 20% COTON GARNITURE COTELEE: 52% LAINE MERINOS, 28% NYLON RECYCLE, 19% COTON, 1% ELASTHANNE CA 23725 RN 122354", + "country": null, + "materials": [ + { "fiber": "Merino wool", "pct": 55 }, + { "fiber": "Recycled nylon", "pct": 25 }, + { "fiber": "Cotton", "pct": 20 }, + { "fiber": "Merino wool", "pct": 52 }, + { "fiber": "Recycled nylon", "pct": 28 }, + { "fiber": "Cotton", "pct": 19 }, + { "fiber": "Elastane", "pct": 1 } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8585.JPG.json.gt b/cropped_tags/IMG_8585.JPG.json.gt new file mode 100644 index 0000000..17d2ec8 --- /dev/null +++ b/cropped_tags/IMG_8585.JPG.json.gt @@ -0,0 +1,13 @@ +{ + "ocr_text": "Made In China Fabrique En Chine Hergestellt In China Vervaardigd In China hecho en china 100% Cashmere /Cachemire / Kaschmir /Kasjmier / cashmere Exclusive Of Elastic /Sans Elastique /Ohne Gummizug / Behalve Elastiek / excluyendo el elastico Hand Wash Cold Separately. Non-Chlorine Bleach Only. Reshape And Lay Flat To Dry. Iron On Lowest Setting.", + "country": "China", + "materials": [ + { "fiber": "Cashmere", "pct": 100 } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8586.JPG.json.gt b/cropped_tags/IMG_8586.JPG.json.gt new file mode 100644 index 0000000..2b66381 --- /dev/null +++ b/cropped_tags/IMG_8586.JPG.json.gt @@ -0,0 +1,14 @@ +{ + "ocr_text": "60% Cotton / Katoen / Baumwolle / Coton 40% Acrylic / Acryl / Polyacryl / Acrylique", + "country": null, + "materials": [ + { "fiber": "Cotton", "pct": 60 }, + { "fiber": "Acrylic", "pct": 40 } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8587.JPG.json.gt b/cropped_tags/IMG_8587.JPG.json.gt new file mode 100644 index 0000000..3e67fa2 --- /dev/null +++ b/cropped_tags/IMG_8587.JPG.json.gt @@ -0,0 +1,13 @@ +{ + "ocr_text": "RN # 123722 100% COTTON MACHINE WASH COLD GENTLE CYCLE TUMBLE DRY LOW LIGHT IRON MADE IN USA", + "country": "USA", + "materials": [ + { "fiber": "Cotton", "pct": 100 } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8593.JPG.json.gt b/cropped_tags/IMG_8593.JPG.json.gt new file mode 100644 index 0000000..d56a5fd --- /dev/null +++ b/cropped_tags/IMG_8593.JPG.json.gt @@ -0,0 +1,14 @@ +{ + "ocr_text": "50%MERINO WOOL /LAINE MERINOS 50%ACRYLIC/ACRYLIQUE RN#154138 MADE IN CHINA", + "country": "China", + "materials": [ + { "fiber": "Merino wool", "pct": 50 }, + { "fiber": "Acrylic", "pct": 50 } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8594.JPG.json.gt b/cropped_tags/IMG_8594.JPG.json.gt new file mode 100644 index 0000000..0f4b8f6 --- /dev/null +++ b/cropped_tags/IMG_8594.JPG.json.gt @@ -0,0 +1,11 @@ +{ + "ocr_text": "HAND WASH COLD DO NOT BLEACH LAY FLAT TO DRY OR DRY CLEAN", + "country": null, + "materials": [], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": null, + "dry_cleaning": "dry_clean" + } +} diff --git a/cropped_tags/IMG_8595.JPG.json.gt b/cropped_tags/IMG_8595.JPG.json.gt new file mode 100644 index 0000000..bc3375f --- /dev/null +++ b/cropped_tags/IMG_8595.JPG.json.gt @@ -0,0 +1,14 @@ +{ + "ocr_text": "SHELL. 100% POLYESTER LINING: 100% POLYESTER ETOFFE EXTERIEURE: 100% POLYESTER DOUBLURE: 100% POLYESTER TELA EXTERIOR: 100% POLIESTER FORRO: 100% POLIESTER MADE IN CHINA", + "country": "China", + "materials": [ + { "fiber": "Polyester", "pct": 100 }, + { "fiber": "Polyester", "pct": 100 } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8603.JPG.json.gt b/cropped_tags/IMG_8603.JPG.json.gt new file mode 100644 index 0000000..73a7c0e --- /dev/null +++ b/cropped_tags/IMG_8603.JPG.json.gt @@ -0,0 +1,11 @@ +{ + "ocr_text": "MACHINE WASH SEPARATELY IN COLD WATER DO NOT BLEACH DRY FLAT IRON AT LOW TEMPERATURE", + "country": null, + "materials": [], + "care": { + "washing": "machine_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8604.JPG.json.gt b/cropped_tags/IMG_8604.JPG.json.gt new file mode 100644 index 0000000..3900aa7 --- /dev/null +++ b/cropped_tags/IMG_8604.JPG.json.gt @@ -0,0 +1,15 @@ +{ + "ocr_text": "MADE IN CHINA 73% ACRYLIC 24% POLYESTER 3% SPANDEX HAND WASH COLD SEPARATELY USE ONLY NON-CHLORINE BLEACH IF NEEDED RESHAPE AND LAY FLAT TO DRY USE LOW IRON IF NECESSARY", + "country": "China", + "materials": [ + { "fiber": "Acrylic", "pct": 73 }, + { "fiber": "Polyester", "pct": 24 }, + { "fiber": "Spandex", "pct": 3 } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8606.JPG.json.gt b/cropped_tags/IMG_8606.JPG.json.gt new file mode 100644 index 0000000..1dd0572 --- /dev/null +++ b/cropped_tags/IMG_8606.JPG.json.gt @@ -0,0 +1,14 @@ +{ + "ocr_text": "50% PIMA COTTON/ COTON PIMA 50% MODAL/MODAL M/M MADE IN PERU FABRIQUE", + "country": "Peru", + "materials": [ + { "fiber": "Pima Cotton", "pct": 50 }, + { "fiber": "Modal", "pct": 50 } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8607.JPG.json.gt b/cropped_tags/IMG_8607.JPG.json.gt new file mode 100644 index 0000000..685b231 --- /dev/null +++ b/cropped_tags/IMG_8607.JPG.json.gt @@ -0,0 +1,11 @@ +{ + "ocr_text": "MACHINE WASH COLD WITH LIKE COLORS WITH MILD DETERGENT Laver en machine a froid avec des couleurs similaires avec detergent doux ONLY NON-CHLORINE BLEACH WHEN NEEDED Utiliser uniquement un agent blanchissant non decolorant si besoin est TUMBLE DRY LOW, REMOVE PROMPTLY Secher en machine a basse temperature, sortir rapidement COOL IRON IF NEEDED Repasser a fer tiede si necessaire OR DRY CLEAN", + "country": null, + "materials": [], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": "dry_clean" + } +} diff --git a/cropped_tags/IMG_8608.JPG.json.gt b/cropped_tags/IMG_8608.JPG.json.gt new file mode 100644 index 0000000..179bd4b --- /dev/null +++ b/cropped_tags/IMG_8608.JPG.json.gt @@ -0,0 +1,16 @@ +{ + "ocr_text": "58% RAYON 24% POLYESTER 13% METALLIC 5% ELASTANE 58% RAYONNE 24% POLYESTER 13% METALLIQUE 5% ELASTHANNE 58% RAYON 24% POLIESTER 13% METALICO 5% ELASTANO MADE IN TURKEY", + "country": "Turkey", + "materials": [ + { "fiber": "Rayon", "pct": 58 }, + { "fiber": "Polyester", "pct": 24 }, + { "fiber": "Metallic", "pct": 13 }, + { "fiber": "Elastane", "pct": 5 } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8609.JPG.json.gt b/cropped_tags/IMG_8609.JPG.json.gt new file mode 100644 index 0000000..b0b5bc6 --- /dev/null +++ b/cropped_tags/IMG_8609.JPG.json.gt @@ -0,0 +1,11 @@ +{ + "ocr_text": "HAND WASH COLD DO NOT BLEACH LAY FLAT TO DRY COOL IRON IF NEEDED", + "country": null, + "materials": [], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8610.JPG.json.gt b/cropped_tags/IMG_8610.JPG.json.gt new file mode 100644 index 0000000..39f68fd --- /dev/null +++ b/cropped_tags/IMG_8610.JPG.json.gt @@ -0,0 +1,15 @@ +{ + "ocr_text": "83% POLYESTER 12% RAYON 5% SPANDEX", + "country": null, + "materials": [ + { "fiber": "Polyester", "pct": 83 }, + { "fiber": "Rayon", "pct": 12 }, + { "fiber": "Spandex", "pct": 5 } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8611.JPG.json.gt b/cropped_tags/IMG_8611.JPG.json.gt new file mode 100644 index 0000000..872f58c --- /dev/null +++ b/cropped_tags/IMG_8611.JPG.json.gt @@ -0,0 +1,11 @@ +{ + "ocr_text": "TURN GARMENT INSIDE OUT MACHINE WASH COLD WITH LIKE COLORS GENTLE CYCLE ONLY NON-CHLORINE BLEACH IF NEEDED TUMBLE DRY LOW COOL IRON ON REVERSE SIDE IF NEEDED", + "country": null, + "materials": [], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8612.JPG.json.gt b/cropped_tags/IMG_8612.JPG.json.gt new file mode 100644 index 0000000..8f1668e --- /dev/null +++ b/cropped_tags/IMG_8612.JPG.json.gt @@ -0,0 +1,11 @@ +{ + "ocr_text": "MADE IN VIETNAM FABRIQUE AU VIETNAM HECHO EN VIETNAM", + "country": "Vietnam", + "materials": [], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8614.JPG.json.gt b/cropped_tags/IMG_8614.JPG.json.gt new file mode 100644 index 0000000..c474c22 --- /dev/null +++ b/cropped_tags/IMG_8614.JPG.json.gt @@ -0,0 +1,15 @@ +{ + "ocr_text": "US MADE IN CHINA CA FABRIQUE EN CHINE MX HECHO EN CHINA US 52%VISCOSE 28%POLYESTER 20%NYLON EXCLUSIVE OF TRIMS CA 52% VISCOSE 28% POLYESTER 20% NYLON HORS GARNITURES MX 52% VISCOSA 28% POLIESTER 20% NYLON EXCLUYENDO ADORNOS US HAND WASH SEPARATELY IN COLD WATER, DO NOT BLEACH, LAY FLAT TO DRY, DO NOT IRON", + "country": "China", + "materials": [ + { "fiber": "Viscose", "pct": 52 }, + { "fiber": "Polyester", "pct": 28 }, + { "fiber": "Nylon", "pct": 20 } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "do_not_iron", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8615.JPG.json.gt b/cropped_tags/IMG_8615.JPG.json.gt new file mode 100644 index 0000000..fc6805e --- /dev/null +++ b/cropped_tags/IMG_8615.JPG.json.gt @@ -0,0 +1,13 @@ +{ + "ocr_text": "100% CASHMERE", + "country": null, + "materials": [ + { "fiber": "Cashmere", "pct": 100 } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8616.JPG.json.gt b/cropped_tags/IMG_8616.JPG.json.gt new file mode 100644 index 0000000..e1f90fc --- /dev/null +++ b/cropped_tags/IMG_8616.JPG.json.gt @@ -0,0 +1,11 @@ +{ + "ocr_text": "DRY CLEAN ONLY", + "country": null, + "materials": [], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": "dry_clean_only" + } +} diff --git a/cropped_tags/IMG_8617.JPG.json.gt b/cropped_tags/IMG_8617.JPG.json.gt new file mode 100644 index 0000000..1398465 --- /dev/null +++ b/cropped_tags/IMG_8617.JPG.json.gt @@ -0,0 +1,14 @@ +{ + "ocr_text": "70% RAYON 30% NYLON EXCLUSIVE OF DECORATION MADE IN CHINA RN 103715 TURN GARMENT INSIDE OUT HAND WASH COLD DO NOT BLEACH LAY FLAT TO DRY WARM IRON IF NEEDED DO NOT IRON ON DECORATION", + "country": "China", + "materials": [ + { "fiber": "Rayon", "pct": 70 }, + { "fiber": "Nylon", "pct": 30 } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_medium", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8618.JPG.json.gt b/cropped_tags/IMG_8618.JPG.json.gt new file mode 100644 index 0000000..8df4e76 --- /dev/null +++ b/cropped_tags/IMG_8618.JPG.json.gt @@ -0,0 +1,14 @@ +{ + "ocr_text": "70% RAYON 30% POLYESTER RN 165979 MACHINE WASH COLD GENTLE CYCLE WITH LIKE COLORS DO NOT BLEACH RESHAPE AND DRY FLAT COOL IRON IF NEEDED OR DRY CLEAN", + "country": null, + "materials": [ + { "fiber": "Rayon", "pct": 70 }, + { "fiber": "Polyester", "pct": 30 } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": "dry_clean" + } +} diff --git a/cropped_tags/IMG_8619.JPG.json.gt b/cropped_tags/IMG_8619.JPG.json.gt new file mode 100644 index 0000000..baad6a6 --- /dev/null +++ b/cropped_tags/IMG_8619.JPG.json.gt @@ -0,0 +1,15 @@ +{ + "ocr_text": "63%Rayon//Rayon Kunstseide/Raion 32%Nylon//Nylon Nylon/Nylon 5%Spandex/Elastano /Elastan/Elastan MADE IN CHINA", + "country": "China", + "materials": [ + { "fiber": "Rayon", "pct": 63 }, + { "fiber": "Nylon", "pct": 32 }, + { "fiber": "Spandex", "pct": 5 } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8620.JPG.json.gt b/cropped_tags/IMG_8620.JPG.json.gt new file mode 100644 index 0000000..8470171 --- /dev/null +++ b/cropped_tags/IMG_8620.JPG.json.gt @@ -0,0 +1,11 @@ +{ + "ocr_text": "Hand wash cold, lay flat to dry or professional dry clean", + "country": null, + "materials": [], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": null, + "dry_cleaning": "dry_clean" + } +} diff --git a/cropped_tags/IMG_8621.JPG.json.gt b/cropped_tags/IMG_8621.JPG.json.gt new file mode 100644 index 0000000..3900aa7 --- /dev/null +++ b/cropped_tags/IMG_8621.JPG.json.gt @@ -0,0 +1,15 @@ +{ + "ocr_text": "MADE IN CHINA 73% ACRYLIC 24% POLYESTER 3% SPANDEX HAND WASH COLD SEPARATELY USE ONLY NON-CHLORINE BLEACH IF NEEDED RESHAPE AND LAY FLAT TO DRY USE LOW IRON IF NECESSARY", + "country": "China", + "materials": [ + { "fiber": "Acrylic", "pct": 73 }, + { "fiber": "Polyester", "pct": 24 }, + { "fiber": "Spandex", "pct": 3 } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8622.JPG.json.gt b/cropped_tags/IMG_8622.JPG.json.gt new file mode 100644 index 0000000..e3d0980 --- /dev/null +++ b/cropped_tags/IMG_8622.JPG.json.gt @@ -0,0 +1,14 @@ +{ + "ocr_text": "60% COTTON 40% POLYESTER", + "country": null, + "materials": [ + { "fiber": "Cotton", "pct": 60 }, + { "fiber": "Polyester", "pct": 40 } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8623.JPG.json.gt b/cropped_tags/IMG_8623.JPG.json.gt new file mode 100644 index 0000000..052388d --- /dev/null +++ b/cropped_tags/IMG_8623.JPG.json.gt @@ -0,0 +1,11 @@ +{ + "ocr_text": "HAND WASH COLD WITH LIKE COLORS LAY FLAT TO DRY DO NOT BLEACH DO NOT TUMBLE COOL IRON IF NEEDED RN# 155730 MADE IN CHINA", + "country": "China", + "materials": [], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8624.JPG.json.gt b/cropped_tags/IMG_8624.JPG.json.gt new file mode 100644 index 0000000..655c48b --- /dev/null +++ b/cropped_tags/IMG_8624.JPG.json.gt @@ -0,0 +1,13 @@ +{ + "ocr_text": "100% CASHMERE DRY CLEAN ONLY. MADE IN CHINA", + "country": "China", + "materials": [ + { "fiber": "Cashmere", "pct": 100 } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": "dry_clean_only" + } +} diff --git a/cropped_tags/IMG_8625.JPG.json.gt b/cropped_tags/IMG_8625.JPG.json.gt new file mode 100644 index 0000000..bce6c39 --- /dev/null +++ b/cropped_tags/IMG_8625.JPG.json.gt @@ -0,0 +1,14 @@ +{ + "ocr_text": "80% RAYON/VISCOSE/VISCOSA 20% NYLON/POLYAMIDE/NAILON S HAND WASH SEPARATELY IN COLD WATER DO NOT BLEACH LAY FLAT DO DRY IRON ON LOWEST SETTING AS NEEDED", + "country": null, + "materials": [ + { "fiber": "Rayon", "pct": 80 }, + { "fiber": "Nylon", "pct": 20 } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8626.JPG.json.gt b/cropped_tags/IMG_8626.JPG.json.gt new file mode 100644 index 0000000..61e61d0 --- /dev/null +++ b/cropped_tags/IMG_8626.JPG.json.gt @@ -0,0 +1,15 @@ +{ + "ocr_text": "51% RAYON 28% POLYESTER 21% NYLON CUT:3006281 STYLE 3705499 MADE IN CHINA CARE ON REVERSE", + "country": "China", + "materials": [ + { "fiber": "Rayon", "pct": 51 }, + { "fiber": "Polyester", "pct": 28 }, + { "fiber": "Nylon", "pct": 21 } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8627.JPG.json.gt b/cropped_tags/IMG_8627.JPG.json.gt new file mode 100644 index 0000000..f911721 --- /dev/null +++ b/cropped_tags/IMG_8627.JPG.json.gt @@ -0,0 +1,11 @@ +{ + "ocr_text": "MACHINE WASH COLD SEPARATELY GENTLE CYCLE DO NOT BLEACH LAY FLAT TO DRY COOL IRON IF NEEDED", + "country": null, + "materials": [], + "care": { + "washing": "machine_wash_gentle", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8628.JPG.json.gt b/cropped_tags/IMG_8628.JPG.json.gt new file mode 100644 index 0000000..fc6805e --- /dev/null +++ b/cropped_tags/IMG_8628.JPG.json.gt @@ -0,0 +1,13 @@ +{ + "ocr_text": "100% CASHMERE", + "country": null, + "materials": [ + { "fiber": "Cashmere", "pct": 100 } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8629.JPG.json.gt b/cropped_tags/IMG_8629.JPG.json.gt new file mode 100644 index 0000000..89b4d56 --- /dev/null +++ b/cropped_tags/IMG_8629.JPG.json.gt @@ -0,0 +1,11 @@ +{ + "ocr_text": "DRY CLEAN", + "country": null, + "materials": [], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": "dry_clean" + } +} diff --git a/cropped_tags/IMG_8690.JPG.json.gt b/cropped_tags/IMG_8690.JPG.json.gt new file mode 100644 index 0000000..55cf857 --- /dev/null +++ b/cropped_tags/IMG_8690.JPG.json.gt @@ -0,0 +1,11 @@ +{ + "ocr_text": "Cold Hand Wash Wash Colors Separately Use Approved Detergent Do Not Bleach Do Not Soak Do Not Wring Do Not Tumble Dry Dry Flat in Shade Cool Iron on Reverse Fold To Store Dry Cleanable (P)", + "country": null, + "materials": [], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": "dry_clean" + } +} diff --git a/cropped_tags/IMG_8691.JPG.json.gt b/cropped_tags/IMG_8691.JPG.json.gt new file mode 100644 index 0000000..33a884f --- /dev/null +++ b/cropped_tags/IMG_8691.JPG.json.gt @@ -0,0 +1,15 @@ +{ + "ocr_text": "SHELL: 95% NYLON / 5% SPANDEX LINING : 100% RECYCLED POLYESTER WASH INSIDE OUT. MACHINE WASH COLD SEPARATELY. GENTLE CYCLE. ONLY NON-CHLORINE BLEACH IF NEEDED. TUMBLE DRY LOW. REMOVE PROMPTLY. DO NOT IRON. RN17730 VN1989909", + "country": null, + "materials": [ + { "fiber": "Nylon", "pct": 95 }, + { "fiber": "Spandex", "pct": 5 }, + { "fiber": "Recycled Polyester", "pct": 100 } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "do_not_iron", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8693.JPG.json.gt b/cropped_tags/IMG_8693.JPG.json.gt new file mode 100644 index 0000000..ee15c0e --- /dev/null +++ b/cropped_tags/IMG_8693.JPG.json.gt @@ -0,0 +1,14 @@ +{ + "ocr_text": "55% VISCOSE / 45% NYLON MACHINE WASH COLD WITH LIKE COLORS. GENTLE CYCLE. ONLY NON-CHLORINE BLEACH IF NEEDED. LAY FLAT TO DRY. WARM IRON IF NEEDED. RN17730 VN1268582", + "country": null, + "materials": [ + { "fiber": "Viscose", "pct": 55 }, + { "fiber": "Nylon", "pct": 45 } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "lay_flat_to_dry", + "ironing": "iron_medium", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8696.JPG.json.gt b/cropped_tags/IMG_8696.JPG.json.gt new file mode 100644 index 0000000..c451ebc --- /dev/null +++ b/cropped_tags/IMG_8696.JPG.json.gt @@ -0,0 +1,14 @@ +{ + "ocr_text": "55% COTTON / 45% VISCOSE TURN GARMENT INSIDE OUT MACHINE WASH COLD WITH LIKE COLORS GENTLE CYCLE ONLY NON-CHLORINE BLEACH IF NEEDED TUMBLE DRY LOW, COOL IRON IF NEEDED RN17730 VN1317080", + "country": null, + "materials": [ + { "fiber": "Cotton", "pct": 55 }, + { "fiber": "Viscose", "pct": 45 } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8697.JPG.json.gt b/cropped_tags/IMG_8697.JPG.json.gt new file mode 100644 index 0000000..bb77b1e --- /dev/null +++ b/cropped_tags/IMG_8697.JPG.json.gt @@ -0,0 +1,15 @@ +{ + "ocr_text": "90% RECYCLED POLYESTER / 8% WOOL / 2% SPANDEX MACHINE WASH COLD WITH LIKE COLORS GENTLE CYCLE ONLY NON-CHLORINE BLEACH IF NEEDED LAY FLAT TO DRY WARM IRON IF NEEDED RN17730 VN1268582", + "country": null, + "materials": [ + { "fiber": "Recycled Polyester", "pct": 90 }, + { "fiber": "Wool", "pct": 8 }, + { "fiber": "Spandex", "pct": 2 } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "lay_flat_to_dry", + "ironing": "iron_medium", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8699 2.JPG.json.gt b/cropped_tags/IMG_8699 2.JPG.json.gt new file mode 100644 index 0000000..dc80057 --- /dev/null +++ b/cropped_tags/IMG_8699 2.JPG.json.gt @@ -0,0 +1,11 @@ +{ + "ocr_text": "MADE IN CHINA", + "country": "China", + "materials": [], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8700.JPG.json.gt b/cropped_tags/IMG_8700.JPG.json.gt new file mode 100644 index 0000000..d7ac22a --- /dev/null +++ b/cropped_tags/IMG_8700.JPG.json.gt @@ -0,0 +1,14 @@ +{ + "ocr_text": "91% RECYCLED POLYESTER / 9% SPANDEX MACHINE WASH COLD WITH LIKE COLORS. GENTLE CYCLE. ONLY NON CHLORINE BLEACH IF NEEDED. TUMBLE DRY LOW. REMOVE PROMPTLY. COOL IRON IF NEEDED. DO NOT IRON ON LABEL. RN17730 VN1068795", + "country": null, + "materials": [ + { "fiber": "Recycled Polyester", "pct": 91 }, + { "fiber": "Spandex", "pct": 9 } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8702.JPG.json.gt b/cropped_tags/IMG_8702.JPG.json.gt new file mode 100644 index 0000000..9fcb0ab --- /dev/null +++ b/cropped_tags/IMG_8702.JPG.json.gt @@ -0,0 +1,18 @@ +{ + "ocr_text": "Made in Cambodia Hecho en Camboya BODY: 72% NYLON / 28% SPANDEX FRONT LINING: 88% NYLON / 12% SPANDEX BACK LINING: 72% NYLON / 28% SPANDEX REMOVE PADS BEFORE WASHING MACHINE WASH COLD SEPARATELY GENTLE CYCLE ONLY NON-CHLORINE BLEACH IF NEEDED TUMBLE DRY LOW REMOVE PROMPTLY COOL IRON IF NEEDED", + "country": "Cambodia", + "materials": [ + { "fiber": "Nylon", "pct": 72 }, + { "fiber": "Spandex", "pct": 28 }, + { "fiber": "Nylon", "pct": 88 }, + { "fiber": "Spandex", "pct": 12 }, + { "fiber": "Nylon", "pct": 72 }, + { "fiber": "Spandex", "pct": 28 } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8705.JPG.json.gt b/cropped_tags/IMG_8705.JPG.json.gt new file mode 100644 index 0000000..1d86db4 --- /dev/null +++ b/cropped_tags/IMG_8705.JPG.json.gt @@ -0,0 +1,14 @@ +{ + "ocr_text": "Made in Cambodia Hecho en Camboya 93% LYOCELL / 7% SPANDEX EXCLUSIVE OF DECORATION MACHINE WASH COLD SEPARATELY GENTLE CYCLE ONLY NON-CHLORINE BLEACH IF NEEDED TUMBLE DRY LOW REMOVE PROMPTLY COOL IRON IF NEEDED", + "country": "Cambodia", + "materials": [ + { "fiber": "Lyocell", "pct": 93 }, + { "fiber": "Spandex", "pct": 7 } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8706.JPG.json.gt b/cropped_tags/IMG_8706.JPG.json.gt new file mode 100644 index 0000000..ced2058 --- /dev/null +++ b/cropped_tags/IMG_8706.JPG.json.gt @@ -0,0 +1,11 @@ +{ + "ocr_text": "MADE IN VIETNAM", + "country": "Vietnam", + "materials": [], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8707.JPG.json.gt b/cropped_tags/IMG_8707.JPG.json.gt new file mode 100644 index 0000000..de7362d --- /dev/null +++ b/cropped_tags/IMG_8707.JPG.json.gt @@ -0,0 +1,14 @@ +{ + "ocr_text": "90% COTTON/ALGODON 10% SPANDEX/SPANDEX EXCLUSIVE OF DECORATION NO INCLUYE LA DECORACION XXL MADE IN CAMBODIA", + "country": "Cambodia", + "materials": [ + { "fiber": "Cotton", "pct": 90 }, + { "fiber": "Spandex", "pct": 10 } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8708.JPG.json.gt b/cropped_tags/IMG_8708.JPG.json.gt new file mode 100644 index 0000000..a91bb8e --- /dev/null +++ b/cropped_tags/IMG_8708.JPG.json.gt @@ -0,0 +1,14 @@ +{ + "ocr_text": "99% RECYCLED POLYESTER / 1% SPANDEX MACHINE WASH COLD WITH LIKE COLORS. ONLY NON CHLORINE BLEACH IF NEEDED. TUMBLE DRY LOW. REMOVE PROMPTLY. COOL IRON IF NEEDED.", + "country": null, + "materials": [ + { "fiber": "Recycled Polyester", "pct": 99 }, + { "fiber": "Spandex", "pct": 1 } + ], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8709.JPG.json.gt b/cropped_tags/IMG_8709.JPG.json.gt new file mode 100644 index 0000000..0a2063b --- /dev/null +++ b/cropped_tags/IMG_8709.JPG.json.gt @@ -0,0 +1,15 @@ +{ + "ocr_text": "61% RECYCLED POLYESTER / 35% RAYON / 4% SPANDEX EXCLUSIVE OF DECORATION MACHINE WASH COLD WITH LIKE COLORS GENTLE CYCLE ONLY NON-CHLORINE BLEACH IF NEEDED TUMBLE DRY LOW, REMOVE PROMPTLY COOL IRON IF NEEDED", + "country": null, + "materials": [ + { "fiber": "Recycled Polyester", "pct": 61 }, + { "fiber": "Rayon", "pct": 35 }, + { "fiber": "Spandex", "pct": 4 } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8710.JPG.json.gt b/cropped_tags/IMG_8710.JPG.json.gt new file mode 100644 index 0000000..bc0f34c --- /dev/null +++ b/cropped_tags/IMG_8710.JPG.json.gt @@ -0,0 +1,15 @@ +{ + "ocr_text": "91% RECYCLED POLYESTER/POLIESTER RECICLADO 8% WOOL/LANA 1% SPANDEX RN17730 VN1989869 MADE IN CAMBODIA /", + "country": "Cambodia", + "materials": [ + { "fiber": "Recycled Polyester", "pct": 91 }, + { "fiber": "Wool", "pct": 8 }, + { "fiber": "Spandex", "pct": 1 } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8711.JPG.json.gt b/cropped_tags/IMG_8711.JPG.json.gt new file mode 100644 index 0000000..2a75ade --- /dev/null +++ b/cropped_tags/IMG_8711.JPG.json.gt @@ -0,0 +1,13 @@ +{ + "ocr_text": "100% COTTON (5% RECYCLED COTTON) EXCLUSIVE OF DECORATION MACHINE WASH COLD SEPARATELY. GENTLE CYCLE. ONLY NON-CHLORINE BLEACH IF NEEDED. TUMBLE DRY LOW. REMOVE PROMPTLY. WARM IRON IF NEEDED.", + "country": null, + "materials": [ + { "fiber": "Cotton", "pct": 100 } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "iron_medium", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8712.JPG.json.gt b/cropped_tags/IMG_8712.JPG.json.gt new file mode 100644 index 0000000..ea36b69 --- /dev/null +++ b/cropped_tags/IMG_8712.JPG.json.gt @@ -0,0 +1,16 @@ +{ + "ocr_text": "77% RECYCLED POLYESTER / 11% NYLON / 8% WOOL / 4% SPANDEX TURN GARMENT INSIDE OUT MACHINE WASH COLD WITH LIKE COLORS, GENTLE CYCLE ONLY NON-CHLORINE BLEACH IF NEEDED RESHAPE AND LAY FLAT TO DRY COOL IRON IF NEEDED", + "country": null, + "materials": [ + { "fiber": "Recycled Polyester", "pct": 77 }, + { "fiber": "Nylon", "pct": 11 }, + { "fiber": "Wool", "pct": 8 }, + { "fiber": "Spandex", "pct": 4 } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8713.JPG.json.gt b/cropped_tags/IMG_8713.JPG.json.gt new file mode 100644 index 0000000..5bef5d8 --- /dev/null +++ b/cropped_tags/IMG_8713.JPG.json.gt @@ -0,0 +1,15 @@ +{ + "ocr_text": "77% RECYCLED POLYESTER / 11% LYOCELL / 12% SPANDEX MACHINE WASH COLD WITH LIKE COLORS. ONLY NON-CHLORINE BLEACH IF NEEDED. TUMBLE DRY LOW. REMOVE PROMPTLY. COOL IRON IF NEEDED. DO NOT IRON ON LABEL. RN17730 VN1068795 MADE IN NICARAGUA", + "country": "Nicaragua", + "materials": [ + { "fiber": "Recycled Polyester", "pct": 77 }, + { "fiber": "Lyocell", "pct": 11 }, + { "fiber": "Spandex", "pct": 12 } + ], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } +} diff --git a/cropped_tags/IMG_8714.JPG.json.gt b/cropped_tags/IMG_8714.JPG.json.gt new file mode 100644 index 0000000..b28cd95 --- /dev/null +++ b/cropped_tags/IMG_8714.JPG.json.gt @@ -0,0 +1,15 @@ +{ + "ocr_text": "SHELL: 100% NYLON LINING: 100% RECYCLED POLYESTER FILLING: 100% RECYCLED POLYESTER MACHINE WASH COLD WITH LIKE COLORS. GENTLE CYCLE. ONLY NON-CHLORINE BLEACH IF NEEDED. TUMBLE DRY LOW. REMOVE PROMPTLY. DO NOT IRON. DO NOT DRY CLEAN.", + "country": null, + "materials": [ + { "fiber": "Nylon", "pct": 100 }, + { "fiber": "Recycled Polyester", "pct": 100 }, + { "fiber": "Recycled Polyester", "pct": 100 } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "do_not_iron", + "dry_cleaning": null + } +} diff --git a/cropped_tags/tag_1.JPG.json.gt b/cropped_tags/tag_1.JPG.json.gt new file mode 100644 index 0000000..93f7069 --- /dev/null +++ b/cropped_tags/tag_1.JPG.json.gt @@ -0,0 +1,13 @@ +{ + "ocr_text": "Made In Guatemala Fabriqué Au Guatemala Hergestellt In Guatemala Vervaardigd In Guatemala グアテマラ製 Hecho En Guatemala 100%Cotton/Coton/ Baumwolle/Katoen/綿/ Algodón", + "country": "Guatemala", + "materials": [ + { "fiber": "Cotton", "pct": 100 } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } +} diff --git a/cropped_tags/tag_5.JPG.json.gt b/cropped_tags/tag_5.JPG.json.gt new file mode 100644 index 0000000..3392ed5 --- /dev/null +++ b/cropped_tags/tag_5.JPG.json.gt @@ -0,0 +1,11 @@ +{ + "ocr_text": "MACHINE WASH COLD WITH LIKE COLOURS, DO NOT BLEACH, DRY FLAT, COOL IRON ONLY IF NEEDED, OR DRY CLEAN LAVER À LA MACHINE À L'EAU FROIDE AVEC COULEURS SEMBLABLES, NE PAS JAVELISER, SÉCHER À PLAT, REPASSAGE DOUX SI NÉCESSAIRE, OU NETTOYER À SEC MADE IN VIETNAM", + "country": "Vietnam", + "materials": [], + "care": { + "washing": "machine_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": "dry_clean" + } +} diff --git a/docs/eval-results.json b/docs/eval-results.json new file mode 100644 index 0000000..aef6b87 --- /dev/null +++ b/docs/eval-results.json @@ -0,0 +1,1443 @@ +{ + "n_images": 76, + "n_missing": 0, + "missing_predictions": [], + "whole_set": { + "images": 76, + "missing": 0, + "country": { + "tp": 40, + "fp": 2, + "fn": 0, + "support": 40, + "precision": 0.9524, + "recall": 1.0, + "f1": 0.9756 + }, + "materials": { + "tp": 126, + "fp": 3, + "fn": 10, + "support": 136, + "precision": 0.9767, + "recall": 0.9265, + "f1": 0.9509 + }, + "care": { + "tp": 108, + "fp": 10, + "fn": 37, + "support": 145, + "precision": 0.9153, + "recall": 0.7448, + "f1": 0.8213 + }, + "overall": { + "tp": 274, + "fp": 15, + "fn": 47, + "support": 321, + "precision": 0.9481, + "recall": 0.8536, + "f1": 0.8984 + } + }, + "deterministic_curve": [ + { + "n": 1, + "added": "IMG_8583.JPG", + "overall_p": 1.0, + "overall_r": 1.0, + "overall_f1": 1.0, + "country_f1": 1.0, + "materials_f1": 0.0, + "care_f1": 1.0 + }, + { + "n": 2, + "added": "IMG_8588.JPG", + "overall_p": 1.0, + "overall_r": 1.0, + "overall_f1": 1.0, + "country_f1": 1.0, + "materials_f1": 1.0, + "care_f1": 1.0 + }, + { + "n": 3, + "added": "IMG_8590.JPG", + "overall_p": 1.0, + "overall_r": 1.0, + "overall_f1": 1.0, + "country_f1": 1.0, + "materials_f1": 1.0, + "care_f1": 1.0 + }, + { + "n": 4, + "added": "IMG_8591.JPG", + "overall_p": 1.0, + "overall_r": 1.0, + "overall_f1": 1.0, + "country_f1": 1.0, + "materials_f1": 1.0, + "care_f1": 1.0 + }, + { + "n": 5, + "added": "IMG_8592.JPG", + "overall_p": 1.0, + "overall_r": 1.0, + "overall_f1": 1.0, + "country_f1": 1.0, + "materials_f1": 1.0, + "care_f1": 1.0 + }, + { + "n": 6, + "added": "IMG_8596.JPG", + "overall_p": 1.0, + "overall_r": 1.0, + "overall_f1": 1.0, + "country_f1": 1.0, + "materials_f1": 1.0, + "care_f1": 1.0 + }, + { + "n": 7, + "added": "IMG_8599.JPG", + "overall_p": 0.9762, + "overall_r": 1.0, + "overall_f1": 0.988, + "country_f1": 1.0, + "materials_f1": 1.0, + "care_f1": 0.9756 + }, + { + "n": 8, + "added": "IMG_8600.JPG", + "overall_p": 0.9556, + "overall_r": 0.9773, + "overall_f1": 0.9663, + "country_f1": 1.0, + "materials_f1": 1.0, + "care_f1": 0.9302 + }, + { + "n": 9, + "added": "IMG_8601.JPG", + "overall_p": 0.96, + "overall_r": 0.9796, + "overall_f1": 0.9697, + "country_f1": 1.0, + "materials_f1": 1.0, + "care_f1": 0.9412 + }, + { + "n": 10, + "added": "IMG_8602.JPG", + "overall_p": 0.9623, + "overall_r": 0.9808, + "overall_f1": 0.9714, + "country_f1": 1.0, + "materials_f1": 1.0, + "care_f1": 0.9412 + }, + { + "n": 11, + "added": "IMG_8539.JPG", + "overall_p": 0.9623, + "overall_r": 0.9273, + "overall_f1": 0.9444, + "country_f1": 1.0, + "materials_f1": 1.0, + "care_f1": 0.8889 + }, + { + "n": 12, + "added": "IMG_8560.JPG", + "overall_p": 0.9153, + "overall_r": 0.931, + "overall_f1": 0.9231, + "country_f1": 1.0, + "materials_f1": 1.0, + "care_f1": 0.8421 + }, + { + "n": 13, + "added": "IMG_8561.JPG", + "overall_p": 0.9167, + "overall_r": 0.8871, + "overall_f1": 0.9016, + "country_f1": 1.0, + "materials_f1": 0.9388, + "care_f1": 0.8421 + }, + { + "n": 14, + "added": "IMG_8563.JPG", + "overall_p": 0.9194, + "overall_r": 0.8906, + "overall_f1": 0.9048, + "country_f1": 1.0, + "materials_f1": 0.9388, + "care_f1": 0.8475 + }, + { + "n": 15, + "added": "IMG_8564.JPG", + "overall_p": 0.9275, + "overall_r": 0.9014, + "overall_f1": 0.9143, + "country_f1": 1.0, + "materials_f1": 0.9434, + "care_f1": 0.8657 + }, + { + "n": 16, + "added": "IMG_8567.JPG", + "overall_p": 0.9306, + "overall_r": 0.9054, + "overall_f1": 0.9178, + "country_f1": 1.0, + "materials_f1": 0.9474, + "care_f1": 0.8657 + }, + { + "n": 17, + "added": "IMG_8568.JPG", + "overall_p": 0.9351, + "overall_r": 0.9114, + "overall_f1": 0.9231, + "country_f1": 1.0, + "materials_f1": 0.9474, + "care_f1": 0.88 + }, + { + "n": 18, + "added": "IMG_8569.JPG", + "overall_p": 0.9367, + "overall_r": 0.9136, + "overall_f1": 0.925, + "country_f1": 1.0, + "materials_f1": 0.9508, + "care_f1": 0.88 + }, + { + "n": 19, + "added": "IMG_8570.JPG", + "overall_p": 0.9398, + "overall_r": 0.9176, + "overall_f1": 0.9286, + "country_f1": 1.0, + "materials_f1": 0.9565, + "care_f1": 0.88 + }, + { + "n": 20, + "added": "IMG_8571.JPG", + "overall_p": 0.9419, + "overall_r": 0.9205, + "overall_f1": 0.931, + "country_f1": 1.0, + "materials_f1": 0.9589, + "care_f1": 0.88 + }, + { + "n": 21, + "added": "IMG_8573.JPG", + "overall_p": 0.9419, + "overall_r": 0.8901, + "overall_f1": 0.9153, + "country_f1": 1.0, + "materials_f1": 0.9589, + "care_f1": 0.8462 + }, + { + "n": 22, + "added": "IMG_8574.JPG", + "overall_p": 0.9444, + "overall_r": 0.8947, + "overall_f1": 0.9189, + "country_f1": 1.0, + "materials_f1": 0.96, + "care_f1": 0.8537 + }, + { + "n": 23, + "added": "IMG_8575.JPG", + "overall_p": 0.9479, + "overall_r": 0.901, + "overall_f1": 0.9239, + "country_f1": 1.0, + "materials_f1": 0.9647, + "care_f1": 0.8537 + }, + { + "n": 24, + "added": "IMG_8579.JPG", + "overall_p": 0.95, + "overall_r": 0.9048, + "overall_f1": 0.9268, + "country_f1": 1.0, + "materials_f1": 0.9647, + "care_f1": 0.8636 + }, + { + "n": 25, + "added": "IMG_8584.JPG", + "overall_p": 0.9515, + "overall_r": 0.875, + "overall_f1": 0.9116, + "country_f1": 1.0, + "materials_f1": 0.9263, + "care_f1": 0.8636 + }, + { + "n": 26, + "added": "IMG_8585.JPG", + "overall_p": 0.9537, + "overall_r": 0.8803, + "overall_f1": 0.9156, + "country_f1": 1.0, + "materials_f1": 0.9278, + "care_f1": 0.8723 + }, + { + "n": 27, + "added": "IMG_8586.JPG", + "overall_p": 0.9545, + "overall_r": 0.8824, + "overall_f1": 0.917, + "country_f1": 1.0, + "materials_f1": 0.9307, + "care_f1": 0.8723 + }, + { + "n": 28, + "added": "IMG_8587.JPG", + "overall_p": 0.9565, + "overall_r": 0.8871, + "overall_f1": 0.9205, + "country_f1": 1.0, + "materials_f1": 0.932, + "care_f1": 0.88 + }, + { + "n": 29, + "added": "IMG_8593.JPG", + "overall_p": 0.9576, + "overall_r": 0.8898, + "overall_f1": 0.9224, + "country_f1": 1.0, + "materials_f1": 0.9346, + "care_f1": 0.88 + }, + { + "n": 30, + "added": "IMG_8594.JPG", + "overall_p": 0.9576, + "overall_r": 0.8692, + "overall_f1": 0.9113, + "country_f1": 1.0, + "materials_f1": 0.9346, + "care_f1": 0.8544 + }, + { + "n": 31, + "added": "IMG_8595.JPG", + "overall_p": 0.9583, + "overall_r": 0.8647, + "overall_f1": 0.9091, + "country_f1": 1.0, + "materials_f1": 0.9273, + "care_f1": 0.8544 + }, + { + "n": 32, + "added": "IMG_8603.JPG", + "overall_p": 0.9583, + "overall_r": 0.8456, + "overall_f1": 0.8984, + "country_f1": 1.0, + "materials_f1": 0.9273, + "care_f1": 0.8302 + }, + { + "n": 33, + "added": "IMG_8604.JPG", + "overall_p": 0.9606, + "overall_r": 0.8531, + "overall_f1": 0.9037, + "country_f1": 1.0, + "materials_f1": 0.931, + "care_f1": 0.8393 + }, + { + "n": 34, + "added": "IMG_8606.JPG", + "overall_p": 0.9615, + "overall_r": 0.8562, + "overall_f1": 0.9058, + "country_f1": 1.0, + "materials_f1": 0.9333, + "care_f1": 0.8393 + }, + { + "n": 35, + "added": "IMG_8607.JPG", + "overall_p": 0.9615, + "overall_r": 0.8333, + "overall_f1": 0.8929, + "country_f1": 1.0, + "materials_f1": 0.9333, + "care_f1": 0.8103 + }, + { + "n": 36, + "added": "IMG_8608.JPG", + "overall_p": 0.963, + "overall_r": 0.8387, + "overall_f1": 0.8966, + "country_f1": 1.0, + "materials_f1": 0.9375, + "care_f1": 0.8103 + }, + { + "n": 37, + "added": "IMG_8609.JPG", + "overall_p": 0.963, + "overall_r": 0.8228, + "overall_f1": 0.8874, + "country_f1": 1.0, + "materials_f1": 0.9375, + "care_f1": 0.7899 + }, + { + "n": 38, + "added": "IMG_8610.JPG", + "overall_p": 0.9638, + "overall_r": 0.8261, + "overall_f1": 0.8896, + "country_f1": 1.0, + "materials_f1": 0.9403, + "care_f1": 0.7899 + }, + { + "n": 39, + "added": "IMG_8611.JPG", + "overall_p": 0.9638, + "overall_r": 0.811, + "overall_f1": 0.8808, + "country_f1": 1.0, + "materials_f1": 0.9403, + "care_f1": 0.7705 + }, + { + "n": 40, + "added": "IMG_8612.JPG", + "overall_p": 0.964, + "overall_r": 0.8121, + "overall_f1": 0.8816, + "country_f1": 1.0, + "materials_f1": 0.9403, + "care_f1": 0.7705 + }, + { + "n": 41, + "added": "IMG_8614.JPG", + "overall_p": 0.9658, + "overall_r": 0.8198, + "overall_f1": 0.8868, + "country_f1": 1.0, + "materials_f1": 0.9429, + "care_f1": 0.7812 + }, + { + "n": 42, + "added": "IMG_8615.JPG", + "overall_p": 0.9338, + "overall_r": 0.815, + "overall_f1": 0.8704, + "country_f1": 0.9804, + "materials_f1": 0.9296, + "care_f1": 0.7634 + }, + { + "n": 43, + "added": "IMG_8616.JPG", + "overall_p": 0.9338, + "overall_r": 0.8103, + "overall_f1": 0.8677, + "country_f1": 0.9804, + "materials_f1": 0.9296, + "care_f1": 0.7576 + }, + { + "n": 44, + "added": "IMG_8617.JPG", + "overall_p": 0.9363, + "overall_r": 0.8167, + "overall_f1": 0.8724, + "country_f1": 0.9811, + "materials_f1": 0.9315, + "care_f1": 0.7681 + }, + { + "n": 45, + "added": "IMG_8618.JPG", + "overall_p": 0.9387, + "overall_r": 0.8226, + "overall_f1": 0.8768, + "country_f1": 0.9811, + "materials_f1": 0.9333, + "care_f1": 0.7808 + }, + { + "n": 46, + "added": "IMG_8619.JPG", + "overall_p": 0.9401, + "overall_r": 0.8263, + "overall_f1": 0.8796, + "country_f1": 0.9818, + "materials_f1": 0.9359, + "care_f1": 0.7808 + }, + { + "n": 47, + "added": "IMG_8620.JPG", + "overall_p": 0.9401, + "overall_r": 0.8135, + "overall_f1": 0.8722, + "country_f1": 0.9818, + "materials_f1": 0.9359, + "care_f1": 0.7651 + }, + { + "n": 48, + "added": "IMG_8621.JPG", + "overall_p": 0.9425, + "overall_r": 0.82, + "overall_f1": 0.877, + "country_f1": 0.9825, + "materials_f1": 0.9383, + "care_f1": 0.7742 + }, + { + "n": 49, + "added": "IMG_8622.JPG", + "overall_p": 0.9432, + "overall_r": 0.8218, + "overall_f1": 0.8783, + "country_f1": 0.9825, + "materials_f1": 0.9398, + "care_f1": 0.7742 + }, + { + "n": 50, + "added": "IMG_8623.JPG", + "overall_p": 0.9444, + "overall_r": 0.8252, + "overall_f1": 0.8808, + "country_f1": 0.9831, + "materials_f1": 0.9398, + "care_f1": 0.7826 + }, + { + "n": 51, + "added": "IMG_8624.JPG", + "overall_p": 0.9454, + "overall_r": 0.8278, + "overall_f1": 0.8827, + "country_f1": 0.9836, + "materials_f1": 0.9405, + "care_f1": 0.7853 + }, + { + "n": 52, + "added": "IMG_8625.JPG", + "overall_p": 0.9468, + "overall_r": 0.8318, + "overall_f1": 0.8856, + "country_f1": 0.9836, + "materials_f1": 0.9419, + "care_f1": 0.7929 + }, + { + "n": 53, + "added": "IMG_8626.JPG", + "overall_p": 0.9479, + "overall_r": 0.8349, + "overall_f1": 0.8878, + "country_f1": 0.9841, + "materials_f1": 0.9438, + "care_f1": 0.7929 + }, + { + "n": 54, + "added": "IMG_8627.JPG", + "overall_p": 0.9479, + "overall_r": 0.8235, + "overall_f1": 0.8814, + "country_f1": 0.9841, + "materials_f1": 0.9438, + "care_f1": 0.7791 + }, + { + "n": 55, + "added": "IMG_8628.JPG", + "overall_p": 0.9482, + "overall_r": 0.8243, + "overall_f1": 0.8819, + "country_f1": 0.9841, + "materials_f1": 0.9444, + "care_f1": 0.7791 + }, + { + "n": 56, + "added": "IMG_8629.JPG", + "overall_p": 0.9482, + "overall_r": 0.8206, + "overall_f1": 0.8798, + "country_f1": 0.9841, + "materials_f1": 0.9444, + "care_f1": 0.7746 + }, + { + "n": 57, + "added": "IMG_8690.JPG", + "overall_p": 0.9482, + "overall_r": 0.8062, + "overall_f1": 0.8714, + "country_f1": 0.9841, + "materials_f1": 0.9444, + "care_f1": 0.7571 + }, + { + "n": 58, + "added": "IMG_8691.JPG", + "overall_p": 0.9447, + "overall_r": 0.8069, + "overall_f1": 0.8704, + "country_f1": 0.9841, + "materials_f1": 0.9462, + "care_f1": 0.7541 + }, + { + "n": 59, + "added": "IMG_8693.JPG", + "overall_p": 0.9461, + "overall_r": 0.8109, + "overall_f1": 0.8733, + "country_f1": 0.9841, + "materials_f1": 0.9474, + "care_f1": 0.7619 + }, + { + "n": 60, + "added": "IMG_8696.JPG", + "overall_p": 0.9474, + "overall_r": 0.8148, + "overall_f1": 0.8761, + "country_f1": 0.9841, + "materials_f1": 0.9485, + "care_f1": 0.7692 + }, + { + "n": 61, + "added": "IMG_8697.JPG", + "overall_p": 0.9488, + "overall_r": 0.8193, + "overall_f1": 0.8793, + "country_f1": 0.9841, + "materials_f1": 0.95, + "care_f1": 0.7761 + }, + { + "n": 62, + "added": "IMG_8699 2.JPG", + "overall_p": 0.9491, + "overall_r": 0.82, + "overall_f1": 0.8798, + "country_f1": 0.9846, + "materials_f1": 0.95, + "care_f1": 0.7761 + }, + { + "n": 63, + "added": "IMG_8700.JPG", + "overall_p": 0.9459, + "overall_r": 0.8235, + "overall_f1": 0.8805, + "country_f1": 0.9697, + "materials_f1": 0.951, + "care_f1": 0.7826 + }, + { + "n": 64, + "added": "IMG_8702.JPG", + "overall_p": 0.9483, + "overall_r": 0.8302, + "overall_f1": 0.8853, + "country_f1": 0.9706, + "materials_f1": 0.9537, + "care_f1": 0.7887 + }, + { + "n": 65, + "added": "IMG_8705.JPG", + "overall_p": 0.9496, + "overall_r": 0.8339, + "overall_f1": 0.888, + "country_f1": 0.9714, + "materials_f1": 0.9545, + "care_f1": 0.7945 + }, + { + "n": 66, + "added": "IMG_8706.JPG", + "overall_p": 0.9498, + "overall_r": 0.8346, + "overall_f1": 0.8885, + "country_f1": 0.9722, + "materials_f1": 0.9545, + "care_f1": 0.7945 + }, + { + "n": 67, + "added": "IMG_8707.JPG", + "overall_p": 0.9504, + "overall_r": 0.8364, + "overall_f1": 0.8897, + "country_f1": 0.973, + "materials_f1": 0.9554, + "care_f1": 0.7945 + }, + { + "n": 68, + "added": "IMG_8708.JPG", + "overall_p": 0.9514, + "overall_r": 0.8393, + "overall_f1": 0.8918, + "country_f1": 0.973, + "materials_f1": 0.9561, + "care_f1": 0.8 + }, + { + "n": 69, + "added": "IMG_8709.JPG", + "overall_p": 0.9526, + "overall_r": 0.8427, + "overall_f1": 0.8942, + "country_f1": 0.973, + "materials_f1": 0.9573, + "care_f1": 0.8052 + }, + { + "n": 70, + "added": "IMG_8710.JPG", + "overall_p": 0.9533, + "overall_r": 0.8448, + "overall_f1": 0.8958, + "country_f1": 0.9737, + "materials_f1": 0.9583, + "care_f1": 0.8052 + }, + { + "n": 71, + "added": "IMG_8711.JPG", + "overall_p": 0.9466, + "overall_r": 0.8435, + "overall_f1": 0.8921, + "country_f1": 0.9737, + "materials_f1": 0.9465, + "care_f1": 0.8101 + }, + { + "n": 72, + "added": "IMG_8712.JPG", + "overall_p": 0.948, + "overall_r": 0.8472, + "overall_f1": 0.8947, + "country_f1": 0.9737, + "materials_f1": 0.9482, + "care_f1": 0.8148 + }, + { + "n": 73, + "added": "IMG_8713.JPG", + "overall_p": 0.9493, + "overall_r": 0.8506, + "overall_f1": 0.8973, + "country_f1": 0.9744, + "materials_f1": 0.9494, + "care_f1": 0.8193 + }, + { + "n": 74, + "added": "IMG_8714.JPG", + "overall_p": 0.9468, + "overall_r": 0.8503, + "overall_f1": 0.896, + "country_f1": 0.9744, + "materials_f1": 0.9506, + "care_f1": 0.8157 + }, + { + "n": 75, + "added": "tag_1.JPG", + "overall_p": 0.9472, + "overall_r": 0.8513, + "overall_f1": 0.8967, + "country_f1": 0.975, + "materials_f1": 0.9509, + "care_f1": 0.8157 + }, + { + "n": 76, + "added": "tag_5.JPG", + "overall_p": 0.9481, + "overall_r": 0.8536, + "overall_f1": 0.8984, + "country_f1": 0.9756, + "materials_f1": 0.9509, + "care_f1": 0.8213 + } + ], + "montecarlo_curve": [ + { + "size": 5, + "f1_mean": 0.8849, + "f1_std": 0.1113, + "f1_min": 0.0, + "f1_max": 1.0, + "p_mean": 0.9475, + "r_mean": 0.8435 + }, + { + "size": 10, + "f1_mean": 0.8965, + "f1_std": 0.0621, + "f1_min": 0.5714, + "f1_max": 1.0, + "p_mean": 0.9546, + "r_mean": 0.8504 + }, + { + "size": 15, + "f1_mean": 0.8925, + "f1_std": 0.0489, + "f1_min": 0.7379, + "f1_max": 0.9934, + "p_mean": 0.9469, + "r_mean": 0.8474 + }, + { + "size": 20, + "f1_mean": 0.8946, + "f1_std": 0.0388, + "f1_min": 0.7368, + "f1_max": 0.9944, + "p_mean": 0.9475, + "r_mean": 0.8491 + }, + { + "size": 25, + "f1_mean": 0.898, + "f1_std": 0.0292, + "f1_min": 0.7907, + "f1_max": 0.9561, + "p_mean": 0.9486, + "r_mean": 0.8538 + }, + { + "size": 30, + "f1_mean": 0.8988, + "f1_std": 0.0285, + "f1_min": 0.8101, + "f1_max": 0.9758, + "p_mean": 0.9485, + "r_mean": 0.8551 + }, + { + "size": 35, + "f1_mean": 0.9006, + "f1_std": 0.0252, + "f1_min": 0.8117, + "f1_max": 0.9684, + "p_mean": 0.95, + "r_mean": 0.8569 + }, + { + "size": 40, + "f1_mean": 0.8969, + "f1_std": 0.0215, + "f1_min": 0.8452, + "f1_max": 0.9576, + "p_mean": 0.9492, + "r_mean": 0.8507 + }, + { + "size": 45, + "f1_mean": 0.8969, + "f1_std": 0.0188, + "f1_min": 0.8418, + "f1_max": 0.95, + "p_mean": 0.9488, + "r_mean": 0.8509 + }, + { + "size": 50, + "f1_mean": 0.8982, + "f1_std": 0.0174, + "f1_min": 0.8548, + "f1_max": 0.9439, + "p_mean": 0.9483, + "r_mean": 0.8535 + }, + { + "size": 55, + "f1_mean": 0.9001, + "f1_std": 0.0145, + "f1_min": 0.8565, + "f1_max": 0.9384, + "p_mean": 0.9484, + "r_mean": 0.8568 + }, + { + "size": 60, + "f1_mean": 0.899, + "f1_std": 0.0118, + "f1_min": 0.8685, + "f1_max": 0.9301, + "p_mean": 0.9481, + "r_mean": 0.8548 + }, + { + "size": 65, + "f1_mean": 0.8986, + "f1_std": 0.01, + "f1_min": 0.8755, + "f1_max": 0.9239, + "p_mean": 0.9486, + "r_mean": 0.8537 + }, + { + "size": 70, + "f1_mean": 0.8983, + "f1_std": 0.0063, + "f1_min": 0.8843, + "f1_max": 0.9183, + "p_mean": 0.948, + "r_mean": 0.8536 + }, + { + "size": 75, + "f1_mean": 0.8985, + "f1_std": 0.0028, + "f1_min": 0.8949, + "f1_max": 0.9073, + "p_mean": 0.9481, + "r_mean": 0.8538 + }, + { + "size": 76, + "f1_mean": 0.8984, + "f1_std": 0.0, + "f1_min": 0.8984, + "f1_max": 0.8984, + "p_mean": 0.9481, + "r_mean": 0.8536 + } + ], + "groupings": { + "content_type": { + "care_only": { + "images": 18, + "missing": 0, + "country": { + "tp": 6, + "fp": 0, + "fn": 0, + "support": 6, + "precision": 1.0, + "recall": 1.0, + "f1": 1.0 + }, + "materials": { + "tp": 0, + "fp": 0, + "fn": 0, + "support": 0, + "precision": 0.0, + "recall": 0.0, + "f1": 0.0 + }, + "care": { + "tp": 19, + "fp": 0, + "fn": 34, + "support": 53, + "precision": 1.0, + "recall": 0.3585, + "f1": 0.5278 + }, + "overall": { + "tp": 25, + "fp": 0, + "fn": 34, + "support": 59, + "precision": 1.0, + "recall": 0.4237, + "f1": 0.5952 + } + }, + "materials+care": { + "images": 31, + "missing": 0, + "country": { + "tp": 17, + "fp": 1, + "fn": 0, + "support": 17, + "precision": 0.9444, + "recall": 1.0, + "f1": 0.9714 + }, + "materials": { + "tp": 69, + "fp": 2, + "fn": 1, + "support": 70, + "precision": 0.9718, + "recall": 0.9857, + "f1": 0.9787 + }, + "care": { + "tp": 89, + "fp": 4, + "fn": 3, + "support": 92, + "precision": 0.957, + "recall": 0.9674, + "f1": 0.9622 + }, + "overall": { + "tp": 175, + "fp": 7, + "fn": 4, + "support": 179, + "precision": 0.9615, + "recall": 0.9777, + "f1": 0.9695 + } + }, + "materials_only": { + "images": 24, + "missing": 0, + "country": { + "tp": 14, + "fp": 1, + "fn": 0, + "support": 14, + "precision": 0.9333, + "recall": 1.0, + "f1": 0.9655 + }, + "materials": { + "tp": 57, + "fp": 1, + "fn": 9, + "support": 66, + "precision": 0.9828, + "recall": 0.8636, + "f1": 0.9194 + }, + "care": { + "tp": 0, + "fp": 6, + "fn": 0, + "support": 0, + "precision": 0.0, + "recall": 0.0, + "f1": 0.0 + }, + "overall": { + "tp": 71, + "fp": 8, + "fn": 9, + "support": 80, + "precision": 0.8987, + "recall": 0.8875, + "f1": 0.8931 + } + }, + "origin_only": { + "images": 3, + "missing": 0, + "country": { + "tp": 3, + "fp": 0, + "fn": 0, + "support": 3, + "precision": 1.0, + "recall": 1.0, + "f1": 1.0 + }, + "materials": { + "tp": 0, + "fp": 0, + "fn": 0, + "support": 0, + "precision": 0.0, + "recall": 0.0, + "f1": 0.0 + }, + "care": { + "tp": 0, + "fp": 0, + "fn": 0, + "support": 0, + "precision": 0.0, + "recall": 0.0, + "f1": 0.0 + }, + "overall": { + "tp": 3, + "fp": 0, + "fn": 0, + "support": 3, + "precision": 1.0, + "recall": 1.0, + "f1": 1.0 + } + } + }, + "material_complexity": { + "multi_fiber": { + "images": 33, + "missing": 0, + "country": { + "tp": 19, + "fp": 1, + "fn": 0, + "support": 19, + "precision": 0.95, + "recall": 1.0, + "f1": 0.9744 + }, + "materials": { + "tp": 81, + "fp": 0, + "fn": 0, + "support": 81, + "precision": 1.0, + "recall": 1.0, + "f1": 1.0 + }, + "care": { + "tp": 58, + "fp": 4, + "fn": 1, + "support": 59, + "precision": 0.9355, + "recall": 0.9831, + "f1": 0.9587 + }, + "overall": { + "tp": 158, + "fp": 5, + "fn": 1, + "support": 159, + "precision": 0.9693, + "recall": 0.9937, + "f1": 0.9814 + } + }, + "multi_part": { + "images": 10, + "missing": 0, + "country": { + "tp": 5, + "fp": 0, + "fn": 0, + "support": 5, + "precision": 1.0, + "recall": 1.0, + "f1": 1.0 + }, + "materials": { + "tp": 35, + "fp": 0, + "fn": 8, + "support": 43, + "precision": 1.0, + "recall": 0.814, + "f1": 0.8974 + }, + "care": { + "tp": 8, + "fp": 1, + "fn": 1, + "support": 9, + "precision": 0.8889, + "recall": 0.8889, + "f1": 0.8889 + }, + "overall": { + "tp": 48, + "fp": 1, + "fn": 9, + "support": 57, + "precision": 0.9796, + "recall": 0.8421, + "f1": 0.9057 + } + }, + "none": { + "images": 21, + "missing": 0, + "country": { + "tp": 9, + "fp": 0, + "fn": 0, + "support": 9, + "precision": 1.0, + "recall": 1.0, + "f1": 1.0 + }, + "materials": { + "tp": 0, + "fp": 0, + "fn": 0, + "support": 0, + "precision": 0.0, + "recall": 0.0, + "f1": 0.0 + }, + "care": { + "tp": 19, + "fp": 0, + "fn": 34, + "support": 53, + "precision": 1.0, + "recall": 0.3585, + "f1": 0.5278 + }, + "overall": { + "tp": 28, + "fp": 0, + "fn": 34, + "support": 62, + "precision": 1.0, + "recall": 0.4516, + "f1": 0.6222 + } + }, + "single_fiber": { + "images": 12, + "missing": 0, + "country": { + "tp": 7, + "fp": 1, + "fn": 0, + "support": 7, + "precision": 0.875, + "recall": 1.0, + "f1": 0.9333 + }, + "materials": { + "tp": 10, + "fp": 3, + "fn": 2, + "support": 12, + "precision": 0.7692, + "recall": 0.8333, + "f1": 0.8 + }, + "care": { + "tp": 23, + "fp": 5, + "fn": 1, + "support": 24, + "precision": 0.8214, + "recall": 0.9583, + "f1": 0.8846 + }, + "overall": { + "tp": 40, + "fp": 9, + "fn": 3, + "support": 43, + "precision": 0.8163, + "recall": 0.9302, + "f1": 0.8696 + } + } + }, + "language": { + "monolingual": { + "images": 55, + "missing": 0, + "country": { + "tp": 22, + "fp": 2, + "fn": 0, + "support": 22, + "precision": 0.9167, + "recall": 1.0, + "f1": 0.9565 + }, + "materials": { + "tp": 83, + "fp": 3, + "fn": 5, + "support": 88, + "precision": 0.9651, + "recall": 0.9432, + "f1": 0.954 + }, + "care": { + "tp": 81, + "fp": 10, + "fn": 37, + "support": 118, + "precision": 0.8901, + "recall": 0.6864, + "f1": 0.7751 + }, + "overall": { + "tp": 186, + "fp": 15, + "fn": 42, + "support": 228, + "precision": 0.9254, + "recall": 0.8158, + "f1": 0.8671 + } + }, + "multilingual": { + "images": 21, + "missing": 0, + "country": { + "tp": 18, + "fp": 0, + "fn": 0, + "support": 18, + "precision": 1.0, + "recall": 1.0, + "f1": 1.0 + }, + "materials": { + "tp": 43, + "fp": 0, + "fn": 5, + "support": 48, + "precision": 1.0, + "recall": 0.8958, + "f1": 0.9451 + }, + "care": { + "tp": 27, + "fp": 0, + "fn": 0, + "support": 27, + "precision": 1.0, + "recall": 1.0, + "f1": 1.0 + }, + "overall": { + "tp": 88, + "fp": 0, + "fn": 5, + "support": 93, + "precision": 1.0, + "recall": 0.9462, + "f1": 0.9724 + } + } + }, + "fiber_tier": { + "commodity_or_none": { + "images": 63, + "missing": 0, + "country": { + "tp": 34, + "fp": 1, + "fn": 0, + "support": 34, + "precision": 0.9714, + "recall": 1.0, + "f1": 0.9855 + }, + "materials": { + "tp": 103, + "fp": 2, + "fn": 5, + "support": 108, + "precision": 0.981, + "recall": 0.9537, + "f1": 0.9671 + }, + "care": { + "tp": 87, + "fp": 6, + "fn": 37, + "support": 124, + "precision": 0.9355, + "recall": 0.7016, + "f1": 0.8018 + }, + "overall": { + "tp": 224, + "fp": 9, + "fn": 42, + "support": 266, + "precision": 0.9614, + "recall": 0.8421, + "f1": 0.8978 + } + }, + "premium_fiber": { + "images": 13, + "missing": 0, + "country": { + "tp": 6, + "fp": 1, + "fn": 0, + "support": 6, + "precision": 0.8571, + "recall": 1.0, + "f1": 0.9231 + }, + "materials": { + "tp": 23, + "fp": 1, + "fn": 5, + "support": 28, + "precision": 0.9583, + "recall": 0.8214, + "f1": 0.8846 + }, + "care": { + "tp": 21, + "fp": 4, + "fn": 0, + "support": 21, + "precision": 0.84, + "recall": 1.0, + "f1": 0.913 + }, + "overall": { + "tp": 50, + "fp": 6, + "fn": 5, + "support": 55, + "precision": 0.8929, + "recall": 0.9091, + "f1": 0.9009 + } + } + } + } +} \ No newline at end of file diff --git a/docs/evaluation-findings.md b/docs/evaluation-findings.md new file mode 100644 index 0000000..be38181 --- /dev/null +++ b/docs/evaluation-findings.md @@ -0,0 +1,176 @@ +# Evaluation Findings + +Results of scoring the EcoTag system against the hand-labeled ground-truth set. +See [evaluation.md](evaluation.md) for the format and how to reproduce these numbers. + +## Setup + +- **Ground truth:** 76 hand-labeled `cropped_tags/*.JPG.json.gt` files (grown from + the original 10). Each crop labeled for `country`, `materials` (`{fiber, pct}`), + and the four `care` fields, marking genuinely-absent fields as `null`/`[]`. +- **System under test:** the backend with `VLM_PROVIDER=google`, `gemini-2.5-pro` + (cache disabled, so every image is a fresh model call). +- **Scorer:** `scripts/score_ground_truth.py` (per-field precision/recall/F1). +- **`NO_TAG_DETECTED` policy:** when the system returns no tag, its prediction is + treated as empty — i.e. **a miss (false negative) on every field the ground + truth has**. 12 of 76 images came back `NO_TAG_DETECTED`; these are recorded + explicitly in `predictions.complete.json` rather than dropped. + +Reproduce: + +```bash +python scripts/tag.py "cropped_tags/*.JPG" --json > predictions.json # 64 ok, 12 NO_TAG +# backfill explicit NO_TAG entries so they score as misses, then analyze: +python scripts/analyze_eval.py --predictions-file predictions.complete.json \ + --json-out docs/eval-results.json +``` + +## Whole-set score (76 images) + +| field | support | precision | recall | F1 | +|-------|--------:|----------:|-------:|----:| +| country | 40 | 0.952 | 1.000 | **0.976** | +| materials | 136 | 0.977 | 0.926 | **0.951** | +| care | 145 | 0.915 | 0.745 | **0.821** | +| **overall** | 321 | 0.948 | 0.854 | **0.898** | + +`country` and `materials` are strong. `care` is the weak field, and almost +entirely on **recall** (0.745) — the system misses care info that is present, +rather than inventing it. + +--- + +## Q1 — How do the scores change as the ground-truth set grows? + +Two views, both in `eval-results.json`. + +### Deterministic (original 10 first, then the rest in image order) + +| n images | overall F1 | country F1 | materials F1 | care F1 | +|---------:|-----------:|-----------:|-------------:|--------:| +| 5 | 1.000 | 1.000 | 1.000 | 1.000 | +| 10 | 0.971 | 1.000 | 1.000 | 0.941 | +| 20 | 0.931 | 1.000 | 0.959 | 0.880 | +| 30 | 0.911 | 1.000 | 0.935 | 0.854 | +| 50 | 0.881 | 0.983 | 0.940 | 0.783 | +| 76 | 0.898 | 0.976 | 0.951 | 0.821 | + +The first 10 examples looked near-perfect (F1 ≈ 0.97–1.0). As more images were +added the estimate **fell and then settled around 0.88–0.90**. The decline is not +noise — the original 10 happened to be clean, complete tags, so a tiny set +*overstated* real performance. Most of the movement is in `care`; `country` +barely moves and `materials` is stable. + +### Monte-Carlo (mean overall F1 over 300 random subsets per size) + +| subset size | F1 mean | F1 std | F1 min | F1 max | +|------------:|--------:|-------:|-------:|-------:| +| 5 | 0.885 | 0.111 | 0.000 | 1.000 | +| 10 | 0.896 | 0.062 | 0.571 | 1.000 | +| 20 | 0.895 | 0.039 | 0.737 | 0.994 | +| 30 | 0.899 | 0.029 | 0.810 | 0.976 | +| 50 | 0.898 | 0.017 | 0.855 | 0.944 | +| 76 | 0.898 | 0.000 | 0.898 | 0.898 | + +**Takeaway:** the *central* estimate is stable (~0.89) at every size — but with +few examples the **variance is huge** (at n=5 a sample can score anywhere from +0.0 to 1.0). Adding ground truth doesn't move the average much; it **collapses +the uncertainty**. By ~30 images the std is ~0.03 and the number is trustworthy; +the original 10 were one lucky high-scoring draw. This is the real value of +growing the set: not a different score, but a *defensible* one. + +--- + +## Q2 — Are there natural groupings, and do they score similarly? + +Yes, there are clear groupings, and **no, they do not score similarly.** The +biggest divider is *what the crop contains*. + +### By content type + +| group | images | overall F1 | country F1 | materials F1 | care F1 | +|-------|-------:|-----------:|-----------:|-------------:|--------:| +| materials + care | 31 | **0.970** | 0.971 | 0.979 | 0.962 | +| materials only | 24 | 0.893 | 0.966 | 0.919 | — | +| origin only | 3 | 1.000 | 1.000 | — | — | +| **care only** | 18 | **0.595** | — | — | 0.528 | + +### By material complexity + +| group | images | overall F1 | +|-------|-------:|-----------:| +| multi-fiber (one part) | 33 | **0.981** | +| multi-part garment | 10 | 0.906 | +| single fiber | 12 | 0.870 | +| no materials on crop | 21 | **0.622** | + +### By language / fiber tier + +| group | images | overall F1 | | group | images | overall F1 | +|-------|-------:|-----------:|--|-------|-------:|-----------:| +| multilingual | 21 | 0.972 | | premium fiber | 13 | 0.901 | +| monolingual | 55 | 0.867 | | commodity/none | 63 | 0.898 | + +**Reading the groups:** + +- **Full tags (composition + care) score ~0.97; care-only crops score ~0.60.** + That ~0.37 gap is the whole story. +- **Multilingual tags score *higher* than monolingual** (0.97 vs 0.87) — not + because extra languages help, but because multilingual tags are almost always + complete manufacturer tags, while many monolingual crops are bare care snippets. + The "language" split is really a proxy for the content-type split. +- **Premium vs commodity fiber makes no difference** (0.901 vs 0.898). Fiber value + is not a difficulty axis; crop *content* is. + +--- + +## The dominant failure mode: `NO_TAG_DETECTED` on care-only crops + +All 12 `NO_TAG_DETECTED` images are care-only or single-instruction crops with no +composition or origin structure (e.g. a crop showing only "DRY CLEAN", or a list +of wash/dry/iron lines). They contribute **0 country, 0 materials, but 34 care +false-negatives — ~92% of all care recall loss.** + +| | overall F1 | care recall | +|--|-----------:|------------:| +| End-to-end (all 76) | 0.898 | 0.745 | +| Given a tag was detected (64) | **0.951** | **0.973** | + +When the detector *accepts* a crop, care recall is 0.97. The care weakness is +overwhelmingly a **detection-gate problem**, not an extraction problem: the +"is this a tag?" check rejects crops that contain only care instructions. + +## Other error patterns (smaller, but real) + +- **Hallucination on low-contrast woven labels.** `IMG_8615` (white-on-black + woven `100% CASHMERE`) was read as `100% acrylic`, country `Taiwan`, plus three + invented care fields. Hard-to-read crops produce confident wrong answers. +- **Country over-inference from vendor codes.** `IMG_8700` has no "Made in" line; + the model returned `Vietnam`, evidently inferred from the `VN1068795` code. + This is the main source of the `country` precision dip (0.952). +- **Enum-granularity near misses.** `machine_wash_gentle` vs `machine_wash_cold` + (IMG_8691, IMG_8714) and `dry_clean` vs `dry_clean_only` (IMG_8600) — counted as + full miss + false positive though they are one step apart. +- **Multi-part garments penalize the flat schema.** A 4-part garment that is + `100% polyester` in every part is labeled as four identical `{polyester,100}` + entries (faithful to the tag), but the system returns it once, costing 3 false + negatives (IMG_8561; also IMG_8595, IMG_8584). This is a *representation* limit, + not a model error. + +Material `%` tolerance is not a factor: re-scoring with `--pct-tolerance 2` +leaves materials F1 unchanged (0.951), so material errors are missing/extra +fibers, not rounding. + +## Recommendations + +1. **Loosen the tag-detection gate** (or skip it when the crop has legible care + text). This single change recovers most of the care recall (0.745 → ~0.97) and + lifts overall F1 from 0.898 to ~0.95. +2. **Stop inferring `country` from vendor/RN/style codes** — only emit origin from + an explicit "Made in / Hecho en / Fabriqué en" phrase. +3. **Add garment-part structure to the schema** (`materials[].part`), as the label + notes already anticipated, so multi-part garments aren't penalized. +4. **Keep growing ground truth to ~30+ before trusting any single number** — below + that the score's confidence interval is too wide (std > 0.03). +5. Consider a partial-credit care metric so one-step enum misses + (`gentle` vs `cold`) don't score the same as a complete miss. diff --git a/docs/evaluation.md b/docs/evaluation.md index cb6867f..6d62a11 100644 --- a/docs/evaluation.md +++ b/docs/evaluation.md @@ -73,3 +73,37 @@ The scorer reports per-field precision, recall, and F1 for: `NO_TAG_DETECTED` and other error responses are treated as empty parsed output. If the ground truth has visible fields, those become false negatives. Use `--pct-tolerance N` to allow material percentages to differ by `N` percentage points. Use `--check-sklearn` to compare scalar-field scoring with scikit-learn if it is installed. + +## NO_TAG_DETECTED + +When the system can't find a tag it returns `NO_TAG_DETECTED`. `tag.py --json` now +records these (and any other error) as an entry with an `error` body instead of +dropping them, so `predictions.json` has one row per image. The scorer treats an +error/empty prediction as **a miss on every field the ground truth has** (a false +negative), which is the intended policy for "the system produced nothing." + +To make this explicit for the whole set, backfill any still-missing images as +`NO_TAG_DETECTED` before scoring: + +```bash +python scripts/tag.py "cropped_tags/*.JPG" --json > predictions.json +# any image absent from predictions.json (an older run, a crash) -> add an +# explicit {"file": ..., "result": {"error": {"code": "NO_TAG_DETECTED"}}} entry, +# producing predictions.complete.json +``` + +## Analyzing results + +`scripts/analyze_eval.py` builds on the scorer to answer two questions: + +```bash +python scripts/analyze_eval.py --predictions-file predictions.complete.json \ + --json-out docs/eval-results.json +``` + +- **Learning curve** — how overall and per-field P/R/F change as the ground-truth + set grows (a deterministic cumulative curve plus a Monte-Carlo mean±std curve). +- **Groupings** — per-group P/R/F for natural groupings (content type, material + complexity, language, fiber tier) to see whether some kinds of crop score worse. + +The written-up results are in [evaluation-findings.md](evaluation-findings.md). diff --git a/predictions.complete.json b/predictions.complete.json new file mode 100644 index 0000000..020e5e8 --- /dev/null +++ b/predictions.complete.json @@ -0,0 +1,3305 @@ +[ + { + "file": "cropped_tags\\IMG_8560.JPG", + "result": { + "parsed": { + "ocr_text": "STYLE# ISW1638\nRN# 142577\n70%RAYON\n30%POLYESTER\nMADE IN\nCHINA", + "country": "China", + "materials": [ + { + "fiber": "Rayon", + "pct": 70 + }, + { + "fiber": "Polyester", + "pct": 30 + } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.75, + "breakdown": { + "materials": 2.22, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8561.JPG", + "result": { + "parsed": { + "ocr_text": "BODY: 100% POLYESTER\nLINING: 100% POLYESTER\nTRONC: 100% POLYESTER\nDOUBLURE: 100% POLYESTER\nCA 23725 RN 122354", + "country": null, + "materials": [ + { + "fiber": "Polyester", + "pct": 100 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.85, + "breakdown": { + "materials": 3.33, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8563.JPG", + "result": { + "parsed": { + "ocr_text": "DRY CLEAN ONLY.\nNETTOYAGE \u00c0 SEC SEULEMENT.\nMADE IN VIETNAM\nFABRIQU\u00c9 AU VIETNAM", + "country": "VIETNAM", + "materials": [], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": "dry_clean_only" + } + }, + "emissions": { + "total_kgco2e": 3.31, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.16, + "washing": 0, + "drying": 0, + "ironing": 0, + "dry_cleaning": 1.4 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "VIETNAM", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8564.JPG", + "result": { + "parsed": { + "ocr_text": "Made in Bangladesh\nFabriqu\u00e9 en Bangladesh\nHecho en Bangladesh\nO/N 241102\nP/N 08797811\n40\nclevercare.info\nGB 70% VISCOSE. 30% POLYAMIDE.", + "country": "Bangladesh", + "materials": [ + { + "fiber": "Viscose", + "pct": 70 + }, + { + "fiber": "Polyamide", + "pct": 30 + } + ], + "care": { + "washing": "machine_wash_warm", + "drying": "do_not_tumble_dry", + "ironing": "iron_medium", + "dry_cleaning": "dry_clean" + } + }, + "emissions": { + "total_kgco2e": 7.1, + "breakdown": { + "materials": 3.04, + "manufacturing": 0.21, + "washing": 2.1, + "drying": 0, + "ironing": 0.35, + "dry_cleaning": 1.4 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Bangladesh", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8567.JPG", + "result": { + "parsed": { + "ocr_text": "80%SILK/SOIE\n20%NYLON\nCA#00445\nRN#95188\nMade in China", + "country": "China", + "materials": [ + { + "fiber": "Silk", + "pct": 80 + }, + { + "fiber": "Nylon", + "pct": 20 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.97, + "breakdown": { + "materials": 2.45, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8568.JPG", + "result": { + "parsed": { + "ocr_text": "HAND WASH COLD, DO NOT\nBLEACH, RESHAPE WHILE DAMP.\nDRY FLAT, COOL IRON ONLY IF\nNEEDED, OR DRY CLEAN.\nLAVER \u00c0 LA MAIN \u00c0 L'EAU\nFROIDE, NE PAS JAVELISER,\nREMODELER PENDANT QUE\nL'ARTICLE EST ENCORE HUMIDE,\nS\u00c9CHER \u00c0 PLAT, REPASSAGE\nDOUX SI N\u00c9CESSAIRE, OU\nNETTOYER \u00c0 SEC.\n\nMADE IN CHINA\nFABRIQU\u00c9 EN CHINE", + "country": "China", + "materials": [], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": "dry_clean" + } + }, + "emissions": { + "total_kgco2e": 3.68, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 1.4 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8569.JPG", + "result": { + "parsed": { + "ocr_text": "57% VISCOSE, 43% POLYESTER\nEXCLUSIVE OF ELASTIC\n57% VISCOSE, 43% POLYESTER\n\u00c0 L'EXCLUSION DE L'\u00c9LASTIQUE", + "country": null, + "materials": [ + { + "fiber": "Viscose", + "pct": 57 + }, + { + "fiber": "Polyester", + "pct": 43 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.15, + "breakdown": { + "materials": 2.63, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8570.JPG", + "result": { + "parsed": { + "ocr_text": "48% VISCOSE, 31% POLYESTER,\n18% NYLON, 3% ELASTANE\n48% VISCOSE, 31% POLYESTER,\n18% NYLON, 3% \u00c9LASTHANNE\nCA 23725 RN 122354", + "country": null, + "materials": [ + { + "fiber": "Viscose", + "pct": 48 + }, + { + "fiber": "Polyester", + "pct": 31 + }, + { + "fiber": "Nylon", + "pct": 18 + }, + { + "fiber": "Elastane", + "pct": 3 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.82, + "breakdown": { + "materials": 3.3, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8571.JPG", + "result": { + "parsed": { + "ocr_text": "SELF:\n100% COTTON\nLINING:\n100% POLYESTER\nMADE IN CHINA", + "country": "China", + "materials": [ + { + "fiber": "Cotton", + "pct": 100 + }, + { + "fiber": "Polyester", + "pct": 100 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 5.95, + "breakdown": { + "materials": 5.07, + "manufacturing": 0.18, + "washing": 0.7, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 100 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8574.JPG", + "result": { + "parsed": { + "ocr_text": "100% Organic Cotton\nGLOBAL ORGANIC TEXTILE STANDARD\nGOTS\nOrganic\nCU 1245496\nMachine wash cold\nwith like colors. Tumble\ndry low. Do not bleach.\nMade in India", + "country": "India", + "materials": [ + { + "fiber": "Organic Cotton", + "pct": 100 + } + ], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 7.72, + "breakdown": { + "materials": 0.88, + "manufacturing": 0.19, + "washing": 0.35, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "India", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8575.JPG", + "result": { + "parsed": { + "ocr_text": "Body/Corps:\n53%Cotton/Algod\u00f3n\n47%Polyester/Polyester\nRib/Costilla:\n49%Cotton/Algod\u00f3n\n49%Polyester/Polyester\n2%Spandex/Elasthanne\n\nEXCLUSIVE OF DECORATION\nEXCLUYENDO DECORATION\n\nRN 50369\nSTYLE 9920\n\nMade in Cambodia\nHecho en Camboya", + "country": "Cambodia", + "materials": [ + { + "fiber": "Cotton", + "pct": 53 + }, + { + "fiber": "Polyester", + "pct": 47 + }, + { + "fiber": "Cotton", + "pct": 49 + }, + { + "fiber": "Polyester", + "pct": 49 + }, + { + "fiber": "Spandex", + "pct": 2 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 6.08, + "breakdown": { + "materials": 5.19, + "manufacturing": 0.19, + "washing": 0.7, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Cambodia", + "washes_lifetime": 100 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8579.JPG", + "result": { + "parsed": { + "ocr_text": "MACHINE WASH COLD WITH LIKE COLOURS, ONLY NON-CHLORINE BLEACH WHEN NEEDED, TUMBLE DRY LOW, COOL IRON ONLY IF NEEDED, DO NOT DRY CLEAN LAVER \u00c0 LA MACHINE \u00c0 L'EAU FROIDE AVEC COULEURS SEMBLABLES, UTILISER SEULEMENT UN JAVELLISANT SANS CHLORE AU BESOIN, S\u00c9CHER \u00c0 BASSE TEMP\u00c9RATURE, REPASSAGE DOUX SI N\u00c9CESSAIRE, NE PAS NETTOYER \u00c0 SEC MADE IN CHINA FABRIQU\u00c9 EN CHINE", + "country": "China", + "materials": [], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 8.75, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8583.JPG", + "result": { + "parsed": { + "ocr_text": "HAND WASH COLD, DO NOT BLEACH, RESHAPE WHILE DAMP, DRY FLAT, COOL IRON ONLY IF NEEDED, OR DRY CLEAN.\nLAVER \u00c0 LA MAIN \u00c0 L'EAU FROIDE, NE PAS JAVELISER, REMODELER PENDANT QUE L'ARTICLE EST ENCORE HUMIDE, S\u00c9CHER \u00c0 PLAT, REPASSAGE DOUX SI N\u00c9CESSAIRE, OU NETTOYER \u00c0 SEC.\nMADE IN CHINA\nFABRIQUE EN CHINE", + "country": "China", + "materials": [], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": "dry_clean" + } + }, + "emissions": { + "total_kgco2e": 3.68, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 1.4 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8584.JPG", + "result": { + "parsed": { + "ocr_text": "BODY: 55% MERINO WOOL, 25%\nRECYCLED NYLON, 20% COTTON\nRIB TRIM: 52% MERINO WOOL,\n28% RECYCLED NYLON, 19%\nCOTTON, 1% ELASTANE.\nCORPS: 55% LAINE M\u00c9RINOS, 25%\nNYLON RECYCL\u00c9, 20% COTON\nGARNITURE C\u00d4TEL\u00c9E: 52% LAINE\nM\u00c9RINOS, 28% NYLON RECYCL\u00c9,\n19% COTON, 1% \u00c9LASTHANNE\nCA 23725 RN 122354", + "country": null, + "materials": [ + { + "fiber": "Merino Wool", + "pct": 55 + }, + { + "fiber": "Recycled Nylon", + "pct": 25 + }, + { + "fiber": "Cotton", + "pct": 20 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.28, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8585.JPG", + "result": { + "parsed": { + "ocr_text": "Made In China\nFabriqu\u00e9 En Chine\nHergestellt In China\nVervaardigd In China\n\u4e2d\u56fd\u88fd\nhecho en china\n100% Cashmere / Cachemire /\nKaschmir / Kasjmier /\n\u30ab\u30b7\u30df\u30e4 / cashmere\nExclusive Of Elastic / Sans\n\u00c9lastique / Ohne Gummizug /\nBehalve Elastiek / \u4f38\u7e2e\u7d20\u6750\u3092\n\u9664\u304f / excluyendo el el\u00e1stico\nHand Wash Cold Separately.\nNon-Chlorine Bleach Only.\nReshape And Lay Flat To Dry.\nIron On Lowest Setting.", + "country": "China", + "materials": [ + { + "fiber": "Cashmere", + "pct": 100 + } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 53.02, + "breakdown": { + "materials": 52.5, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8586.JPG", + "result": { + "parsed": { + "ocr_text": "60% Cotton / Katoen / Baumwolle\n/ Coton\n40% Acrylic / Acryl / Polyacryl /\nAcrylique", + "country": null, + "materials": [ + { + "fiber": "Cotton", + "pct": 60 + }, + { + "fiber": "Acrylic", + "pct": 40 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.39, + "breakdown": { + "materials": 2.87, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8587.JPG", + "result": { + "parsed": { + "ocr_text": "RN # 123722\n100% COTTON\nMACHINE WASH\nCOLD\nGENTLE CYCLE\nTUMBLE DRY LOW\nLIGHT IRON\nMADE IN USA", + "country": "USA", + "materials": [ + { + "fiber": "Cotton", + "pct": 100 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 8.59, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.02, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "USA", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8588.JPG", + "result": { + "parsed": { + "ocr_text": "Made In Peru\nFabriqu\u00e9 Au P\u00e9rou\nHergestellt In Peru\nVervaardigd In Peru\n\u30da\u30eb\u30fc\u88fd\nhecho en per\u00fa\n52% Modal /Modal /Modal /\nModal /\u30ec\u30fc\u30e8\u30f3 /modal\n24% Polyester /Polyester /\nPolyester /Polyester /\n\u30dd\u30ea\u30a8\u30b9\u30c6\u30eb /poli\u00e9ster\n24% Cotton /Coton /\nBaumwolle /Katoen /\u7dbf /\nalgod\u00f3n\nMachine Wash Cold With Like\nColors. Non-Chlorine Bleach\nOnly. Tumble Dry Low. Iron\nOn Lowest Setting.", + "country": "Peru", + "materials": [ + { + "fiber": "Modal", + "pct": 52 + }, + { + "fiber": "Polyester", + "pct": 24 + }, + { + "fiber": "Cotton", + "pct": 24 + } + ], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 9.21, + "breakdown": { + "materials": 2.31, + "manufacturing": 0.07, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Peru", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8590.JPG", + "result": { + "parsed": { + "ocr_text": "MADE IN CAMBODIA.\nBODY: 80% COTTON / 20% POLYESTER.\nTRIM: 98% COTTON / 2% SPANDEX.\nEXCLUSIVE OF TRIMMING AND DECORATION.", + "country": "Cambodia", + "materials": [ + { + "fiber": "Cotton", + "pct": 80 + }, + { + "fiber": "Polyester", + "pct": 20 + }, + { + "fiber": "Cotton", + "pct": 98 + }, + { + "fiber": "Spandex", + "pct": 2 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 4.88, + "breakdown": { + "materials": 3.99, + "manufacturing": 0.19, + "washing": 0.7, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Cambodia", + "washes_lifetime": 100 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8591.JPG", + "result": { + "parsed": { + "ocr_text": "Made In Philippines\nFabriqu\u00e9 Aux Philippines\nHergestellt In Den Philippinen\nVervaardigd In De Filippijnen\n\u30d5\u30a3\u30ea\u30d4\u30f3\u88fd\nhecho en filipinas\n65% Polyester /Polyester /\nPolyester /Polyester /\n\u30dd\u30ea\u30a8\u30b9\u30c6\u30eb /poli\u00e9ster\n33% Viscose Viscose /\nViskose Viscose /\n\u30ec\u30fc\u30e8\u30f3 /viscosa\n2% Elastane /\u00c9lasthanne /\nElastan /Elastaan /\n\u30dd\u30ea\u30a6\u30ec\u30bf\u30f3 /elastano\nMachine Wash Cold With Like\nColors. Non-Chlorine Bleach\nOnly. Tumble Dry Low. Iron\nOn Lowest Setting.", + "country": "Philippines", + "materials": [ + { + "fiber": "Polyester", + "pct": 65 + }, + { + "fiber": "Viscose", + "pct": 33 + }, + { + "fiber": "Elastane", + "pct": 2 + } + ], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 10.05, + "breakdown": { + "materials": 3.06, + "manufacturing": 0.16, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Philippines", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8592.JPG", + "result": { + "parsed": { + "ocr_text": "MADE IN VIETNAM\nRN 54023 / CA 17897\n\u25a0 US/GB: 100% MERINO EXTRA FINE\nWOOL\n1166\nMACHINE WASH COLD GENTLE\nCYCLE / CLOSE ALL FASTENERS\nBEFORE WASHING / WASH IN MESH\nBAG / USE MILD DETERGENT / WASH\nSEPARATELY / ONLY NON-CHLORINE\nBLEACH WHEN NEEDED / RESHAPE\nAND DRY FLAT / COOL IRON\nDISTRIBUIDO POR", + "country": "Vietnam", + "materials": [ + { + "fiber": "Merino Wool", + "pct": 100 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": "dry_clean" + } + }, + "emissions": { + "total_kgco2e": 3.83, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.16, + "washing": 0.35, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 1.4 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Vietnam", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8593.JPG", + "result": { + "parsed": { + "ocr_text": "50% MERINO WOOL\n/LAINEM\u00c9RINOS\n50%ACRYLIC/ACRYLIQUE\nRN#154138\nMADE IN CHINA", + "country": "China", + "materials": [ + { + "fiber": "Merino Wool", + "pct": 50 + }, + { + "fiber": "Acrylic", + "pct": 50 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.68, + "breakdown": { + "materials": 3.15, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8595.JPG", + "result": { + "parsed": { + "ocr_text": "SHELL:\n100% POLYESTER\nLINING:\n100% POLYESTER\n\nETOFFE EXTERIEURE:\n100% POLYESTER\nDOUBLURE:\n100% POLYESTER\n\nTELA EXTERIOR:\n100% POLIESTER\nFORRO:\n100% POLIESTER\n\nMADE IN CHINA", + "country": "China", + "materials": [ + { + "fiber": "Polyester", + "pct": 100 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.85, + "breakdown": { + "materials": 3.33, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8596.JPG", + "result": { + "parsed": { + "ocr_text": "52% VISCOSE\n36% NYLON\n12% POLYESTER\nMACHINE WASH COLD\nWITH LIKE COLORS\nONLY NON-CHLORINE\nBLEACH WHEN NEEDED\nTUMBLE DRY LOW\nWARM IRON IF NECESSARY\nMADE IN CHINA", + "country": "China", + "materials": [ + { + "fiber": "Viscose", + "pct": 52 + }, + { + "fiber": "Nylon", + "pct": 36 + }, + { + "fiber": "Polyester", + "pct": 12 + } + ], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": "iron_medium", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 10.56, + "breakdown": { + "materials": 3.38, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.35, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8599.JPG", + "result": { + "parsed": { + "ocr_text": "100% CASHMERE\nDRY CLEAN\nOR HAND WASH COLD\nDO NOT TWIST OR WRING\nDO NOT BLEACH\nRESHAPE AND LAY\nFLAT TO DRY\nWARM IRON IF NEEDED", + "country": null, + "materials": [ + { + "fiber": "Cashmere", + "pct": 100 + } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_medium", + "dry_cleaning": "dry_clean" + } + }, + "emissions": { + "total_kgco2e": 54.6, + "breakdown": { + "materials": 52.5, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0.35, + "dry_cleaning": 1.4 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8600.JPG", + "result": { + "parsed": { + "ocr_text": "MATERIAL\n100%COTTON\nDRY CLEAN ONLY\nMADE IN VIET NAM", + "country": "Viet Nam", + "materials": [ + { + "fiber": "Cotton", + "pct": 100 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": "dry_clean_only" + } + }, + "emissions": { + "total_kgco2e": 3.33, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.18, + "washing": 0, + "drying": 0, + "ironing": 0, + "dry_cleaning": 1.4 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Viet Nam", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8601.JPG", + "result": { + "parsed": { + "ocr_text": "100% CASHMERE\n\nDRY CLEAN\nOR HAND WASH COLD\nDO NOT TWIST OR WRING\nDO NOT BLEACH\nRESHAPE AND LAY\nFLAT TO DRY\nWARM IRON IF NEEDED", + "country": null, + "materials": [ + { + "fiber": "Cashmere", + "pct": 100 + } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_medium", + "dry_cleaning": "dry_clean" + } + }, + "emissions": { + "total_kgco2e": 54.6, + "breakdown": { + "materials": 52.5, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0.35, + "dry_cleaning": 1.4 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8602.JPG", + "result": { + "parsed": { + "ocr_text": "49% RAYON\n31% POLYESTER\n20% NYLON", + "country": null, + "materials": [ + { + "fiber": "Rayon", + "pct": 49 + }, + { + "fiber": "Polyester", + "pct": 31 + }, + { + "fiber": "Nylon", + "pct": 20 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.46, + "breakdown": { + "materials": 2.94, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8604.JPG", + "result": { + "parsed": { + "ocr_text": "MADE IN CHINA\n73% ACRYLIC\n24% POLYESTER\n3% SPANDEX\n\nHAND WASH COLD\nSEPARATELY\nUSE ONLY NON-CHLORINE\nBLEACH IF NEEDED\nRESHAPE AND\nLAY FLAT TO DRY\nUSE LOW IRON\nIF NECESSARY", + "country": "China", + "materials": [ + { + "fiber": "Acrylic", + "pct": 73 + }, + { + "fiber": "Polyester", + "pct": 24 + }, + { + "fiber": "Spandex", + "pct": 3 + } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 4.96, + "breakdown": { + "materials": 4.43, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8606.JPG", + "result": { + "parsed": { + "ocr_text": "50% PIMA COTTON/\nCOTON PIMA\n50% MODAL/MODAL\nM/M\nMADE IN PERU\nFABRIQU\u00c9", + "country": "Peru", + "materials": [ + { + "fiber": "Pima Cotton", + "pct": 50 + }, + { + "fiber": "Modal", + "pct": 50 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.43, + "breakdown": { + "materials": 2.01, + "manufacturing": 0.07, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Peru", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8608.JPG", + "result": { + "parsed": { + "ocr_text": "58% RAYON\n24% POLYESTER\n13% METALLIC\n5% ELASTANE\n\n58% RAYONNE\n24% POLYESTER\n13% M\u00c9TALLIQUE\n5% ELASTHANNE\n\n58% RAY\u00d3N\n24% POLI\u00c9STER\n13% MET\u00c1LICO\n5% ELASTANO\n\nMADE IN TURKEY", + "country": "Turkey", + "materials": [ + { + "fiber": "Rayon", + "pct": 58 + }, + { + "fiber": "Polyester", + "pct": 24 + }, + { + "fiber": "Metallic", + "pct": 13 + }, + { + "fiber": "Elastane", + "pct": 5 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.02, + "breakdown": { + "materials": 2.57, + "manufacturing": 0.11, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Turkey", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8610.JPG", + "result": { + "parsed": { + "ocr_text": "83% POLYESTER\n12% RAYON\n5% SPANDEX", + "country": null, + "materials": [ + { + "fiber": "Polyester", + "pct": 83 + }, + { + "fiber": "Rayon", + "pct": 12 + }, + { + "fiber": "Spandex", + "pct": 5 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 4.02, + "breakdown": { + "materials": 3.49, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8612.JPG", + "result": { + "parsed": { + "ocr_text": "MADE IN VIETNAM\nFABRIQU\u00c9 AU VIETNAM\nHECHO EN VIETNAM", + "country": "Vietnam", + "materials": [], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.26, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.16, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Vietnam", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8614.JPG", + "result": { + "parsed": { + "ocr_text": "US MADE IN CHINA\nCA FABRIQU\u00c9 EN CHINE\nMX HECHO EN CHINA\nUS 52%VISCOSE\n28%POLYESTER 20%NYLON\nEXCLUSIVE OF TRIMS\nCA 52% VISCOSE\n28% POLYESTER 20% NYLON\nHORS GARNITURES\nMX 52% VISCOSA\n28% POLI\u00c9STER 20% NYLON\nEXCLUYENDO ADORNOS\nUS HAND WASH SEPARATELY\nIN COLD WATER, DO NOT\nBLEACH, LAY FLAT TO DRY,\nDO NOT IRON", + "country": "China", + "materials": [ + { + "fiber": "Viscose", + "pct": 52 + }, + { + "fiber": "Polyester", + "pct": 28 + }, + { + "fiber": "Nylon", + "pct": 20 + } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "do_not_iron", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.42, + "breakdown": { + "materials": 3.07, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8615.JPG", + "result": { + "parsed": { + "ocr_text": "100% ACRYLIQUE\nMADE IN TAIWAN R.O.C.\n[hand wash symbol]\n[do not bleach symbol]\n[lay flat to dry symbol]\n[do not iron symbol]\n[do not dry clean symbol]", + "country": "Taiwan R.O.C.", + "materials": [ + { + "fiber": "Acrylic", + "pct": 100 + } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "do_not_iron", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 4.9, + "breakdown": { + "materials": 4.55, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Taiwan R.O.C.", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8617.JPG", + "result": { + "parsed": { + "ocr_text": "70% RAYON\n30% NYLON\nEXCLUSIVE OF\nDECORATION\nMADE IN CHINA\nRN 103715\n\nTURN GARMENT\nINSIDE OUT\nHAND WASH COLD\nDO NOT BLEACH\nLAY FLAT TO DRY\nWARM IRON\nIF NEEDED\nDO NOT IRON ON\nDECORATION", + "country": "China", + "materials": [ + { + "fiber": "Rayon", + "pct": 70 + }, + { + "fiber": "Nylon", + "pct": 30 + } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_medium", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.5, + "breakdown": { + "materials": 2.8, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0.35, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8618.JPG", + "result": { + "parsed": { + "ocr_text": "70% RAYON\n30% POLYESTER\nRN 165979\nMACHINE WASH\nCOLD\nGENTLE CYCLE\nWITH LIKE COLORS\nDO NOT BLEACH\nRESHAPE AND\nDRY FLAT\nCOOL IRON\nIF NEEDED\nOR DRY CLEAN", + "country": null, + "materials": [ + { + "fiber": "Rayon", + "pct": 70 + }, + { + "fiber": "Polyester", + "pct": 30 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": "dry_clean" + } + }, + "emissions": { + "total_kgco2e": 4.32, + "breakdown": { + "materials": 2.22, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 1.4 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8619.JPG", + "result": { + "parsed": { + "ocr_text": "63%Rayon//Ray\u00f3n Kunstseide/Raion 32%Nylon//Nylon Nylon/Nylon 5%Spandex/Elastano /Elastan/Elastan MADE IN CHINA", + "country": "China", + "materials": [ + { + "fiber": "Rayon", + "pct": 63 + }, + { + "fiber": "Nylon", + "pct": 32 + }, + { + "fiber": "Spandex", + "pct": 5 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.83, + "breakdown": { + "materials": 3.31, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8621.JPG", + "result": { + "parsed": { + "ocr_text": "MADE IN CHINA\n73% ACRYLIC\n24% POLYESTER\n3% SPANDEX\n\nHAND WASH COLD\nSEPARATELY\nUSE ONLY NON-CHLORINE\nBLEACH IF NEEDED\nRESHAPE AND\nLAY FLAT TO DRY\nUSE LOW IRON\nIF NECESSARY", + "country": "China", + "materials": [ + { + "fiber": "Acrylic", + "pct": 73 + }, + { + "fiber": "Polyester", + "pct": 24 + }, + { + "fiber": "Spandex", + "pct": 3 + } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 4.96, + "breakdown": { + "materials": 4.43, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8622.JPG", + "result": { + "parsed": { + "ocr_text": "60% COTTON\n40% POLYESTER", + "country": null, + "materials": [ + { + "fiber": "Cotton", + "pct": 60 + }, + { + "fiber": "Polyester", + "pct": 40 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.91, + "breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8623.JPG", + "result": { + "parsed": { + "ocr_text": "HAND WASH COLD\nWITH LIKE COLORS\nLAY FLAT TO DRY\nDO NOT BLEACH\nDO NOT TUMBLE\nCOOL IRON IF NEEDED\nRN# 155730\nMADE IN CHINA", + "country": "China", + "materials": [], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.28, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8624.JPG", + "result": { + "parsed": { + "ocr_text": "100% CASHMERE\n\nDRY CLEAN ONLY.\n\nMADE IN CHINA", + "country": "China", + "materials": [ + { + "fiber": "Cashmere", + "pct": 100 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": "dry_clean_only" + } + }, + "emissions": { + "total_kgco2e": 54.08, + "breakdown": { + "materials": 52.5, + "manufacturing": 0.18, + "washing": 0, + "drying": 0, + "ironing": 0, + "dry_cleaning": 1.4 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8625.JPG", + "result": { + "parsed": { + "ocr_text": "80% RAYON/VISCOSE/\nVISCOSA\n20% NYLON/POLYAMIDE/\nNAILON\nS\nHAND WASH SEPARATELY\nIN COLD WATER\nDO NOT BLEACH\nLAY FLAT DO DRY\nIRON ON LOWEST\nSETTING AS NEEDED", + "country": null, + "materials": [ + { + "fiber": "Rayon", + "pct": 80 + }, + { + "fiber": "Nylon", + "pct": 20 + } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.97, + "breakdown": { + "materials": 2.45, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8626.JPG", + "result": { + "parsed": { + "ocr_text": "51% RAYON\n28% POLYESTER\n21% NYLON\n\nCUT:3006281\nSTYLE\n3705499\n\nMADE IN CHINA\nCARE ON REVERSE", + "country": "China", + "materials": [ + { + "fiber": "Rayon", + "pct": 51 + }, + { + "fiber": "Polyester", + "pct": 28 + }, + { + "fiber": "Nylon", + "pct": 21 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.45, + "breakdown": { + "materials": 2.93, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8628.JPG", + "result": { + "parsed": { + "ocr_text": "100% CASHMERE", + "country": null, + "materials": [ + { + "fiber": "Cashmere", + "pct": 100 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 53.03, + "breakdown": { + "materials": 52.5, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8691.JPG", + "result": { + "parsed": { + "ocr_text": "SHELL: 95% NYLON / 5% SPANDEX\nLINING : 100% RECYCLED POLYESTER\nWASH INSIDE OUT. MACHINE WASH COLD SEPARATELY.\nGENTLE CYCLE. ONLY NON-CHLORINE BLEACH IF\nNEEDED. TUMBLE DRY LOW. REMOVE PROMPTLY. DO\nNOT IRON.\nRN17730 VN1989909", + "country": null, + "materials": [ + { + "fiber": "Nylon", + "pct": 95 + }, + { + "fiber": "Spandex", + "pct": 5 + }, + { + "fiber": "Recycled Polyester", + "pct": 100 + } + ], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": "do_not_iron", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 20.04, + "breakdown": { + "materials": 6.56, + "manufacturing": 0.18, + "washing": 0.7, + "drying": 12.6, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 100 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8693.JPG", + "result": { + "parsed": { + "ocr_text": "55% VISCOSE / 45% NYLON\nMACHINE WASH COLD WITH LIKE COLORS. GENTLE\nCYCLE. ONLY NON-CHLORINE BLEACH IF NEEDED. LAY\nFLAT TO DRY. WARM IRON IF NEEDED.\nRN17730 VN1268582", + "country": null, + "materials": [ + { + "fiber": "VISCOSE", + "pct": 55 + }, + { + "fiber": "NYLON", + "pct": 45 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "lay_flat_to_dry", + "ironing": "iron_medium", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 4.39, + "breakdown": { + "materials": 3.52, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0.35, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8696.JPG", + "result": { + "parsed": { + "ocr_text": "55% COTTON / 45% VISCOSE\nTURN GARMENT INSIDE OUT\nMACHINE WASH COLD WITH LIKE COLORS\nGENTLE CYCLE\nONLY NON-CHLORINE BLEACH IF NEEDED\nTUMBLE DRY LOW, COOL IRON IF NEEDED\nRN17730 VN1317080", + "country": null, + "materials": [ + { + "fiber": "Cotton", + "pct": 55 + }, + { + "fiber": "Viscose", + "pct": 45 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 8.91, + "breakdown": { + "materials": 1.91, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8697.JPG", + "result": { + "parsed": { + "ocr_text": "90% RECYCLED POLYESTER / 8% WOOL /\n2% SPANDEX\nMACHINE WASH COLD WITH LIKE COLORS\nGENTLE CYCLE\nONLY NON-CHLORINE BLEACH IF NEEDED\nLAY FLAT TO DRY\nWARM IRON IF NEEDED\nRN17730 VN1268582", + "country": null, + "materials": [ + { + "fiber": "Recycled Polyester", + "pct": 90 + }, + { + "fiber": "Wool", + "pct": 8 + }, + { + "fiber": "Spandex", + "pct": 2 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "lay_flat_to_dry", + "ironing": "iron_medium", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.59, + "breakdown": { + "materials": 1.72, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0.35, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8699 2.JPG", + "result": { + "parsed": { + "ocr_text": "MADE IN\nCHINA", + "country": "China", + "materials": [], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.28, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8700.JPG", + "result": { + "parsed": { + "ocr_text": "91% RECYCLED POLYESTER / 9% SPANDEX\nMACHINE WASH COLD WITH LIKE COLORS. GENTLE CYCLE. ONLY NON CHLORINE BLEACH IF NEEDED.\nTUMBLE DRY LOW. REMOVE PROMPTLY.\nCOOL IRON IF NEEDED. DO NOT IRON ON LABEL.\nRN17730 VN1068795", + "country": "Vietnam", + "materials": [ + { + "fiber": "Recycled Polyester", + "pct": 91 + }, + { + "fiber": "Spandex", + "pct": 9 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 8.88, + "breakdown": { + "materials": 1.9, + "manufacturing": 0.16, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Vietnam", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8702.JPG", + "result": { + "parsed": { + "ocr_text": "Made in Cambodia\nHecho en Camboya\n\nBODY:\n72% NYLON /\n28% SPANDEX\nFRONT LINING:\n88% NYLON /\n12% SPANDEX\nBACK LINING:\n72% NYLON /\n28% SPANDEX\n\nREMOVE PADS\nBEFORE WASHING\nMACHINE WASH\nCOLD SEPARATELY\nGENTLE CYCLE\nONLY\nNON-CHLORINE\nBLEACH IF NEEDED\nTUMBLE DRY LOW\nREMOVE PROMPTLY\nCOOL IRON IF\nNEEDED", + "country": "Cambodia", + "materials": [ + { + "fiber": "Nylon", + "pct": 72 + }, + { + "fiber": "Spandex", + "pct": 28 + }, + { + "fiber": "Nylon", + "pct": 88 + }, + { + "fiber": "Spandex", + "pct": 12 + }, + { + "fiber": "Nylon", + "pct": 72 + }, + { + "fiber": "Spandex", + "pct": 28 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 39.99, + "breakdown": { + "materials": 19.32, + "manufacturing": 0.19, + "washing": 1.05, + "drying": 18.9, + "ironing": 0.52, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Cambodia", + "washes_lifetime": 150 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8705.JPG", + "result": { + "parsed": { + "ocr_text": "Made in Cambodia\nHecho en Camboya\n93% LYOCELL /\n7% SPANDEX\nEXCLUSIVE OF\nDECORATION\nMACHINE WASH\nCOLD SEPARATELY\nGENTLE CYCLE\nONLY\nNON-CHLORINE\nBLEACH IF NEEDED\nTUMBLE DRY LOW\nREMOVE PROMPTLY\nCOOL IRON IF\nNEEDED", + "country": "Cambodia", + "materials": [ + { + "fiber": "Lyocell", + "pct": 93 + }, + { + "fiber": "Spandex", + "pct": 7 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 9.38, + "breakdown": { + "materials": 2.36, + "manufacturing": 0.19, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Cambodia", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8706.JPG", + "result": { + "parsed": { + "ocr_text": "MADE IN VIETNAM", + "country": "Vietnam", + "materials": [], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.26, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.16, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Vietnam", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8707.JPG", + "result": { + "parsed": { + "ocr_text": "90% COTTON/ALGOD\u00d3N\n10% SPANDEX/SPANDEX\nEXCLUSIVE OF DECORATION\nNO INCLUYE LA DECORACION\nXXL\nMADE IN CAMBODIA\nEN CAMBOYA", + "country": "Cambodia", + "materials": [ + { + "fiber": "Cotton", + "pct": 90 + }, + { + "fiber": "Spandex", + "pct": 10 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.17, + "breakdown": { + "materials": 2.63, + "manufacturing": 0.19, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Cambodia", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8708.JPG", + "result": { + "parsed": { + "ocr_text": "99% RECYCLED POLYESTER / 1% SPANDEX\nMACHINE WASH COLD WITH LIKE COLORS. ONLY\nNON CHLORINE BLEACH IF NEEDED. TUMBLE DRY\nLOW. REMOVE PROMPTLY. COOL IRON IF NEEDED.", + "country": null, + "materials": [ + { + "fiber": "Recycled Polyester", + "pct": 99 + }, + { + "fiber": "Spandex", + "pct": 1 + } + ], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 8.14, + "breakdown": { + "materials": 1.14, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8709.JPG", + "result": { + "parsed": { + "ocr_text": "61% RECYCLED POLYESTER / 35% RAYON / 4% SPANDEX\nEXCLUSIVE OF DECORATION\nMACHINE WASH COLD WITH LIKE COLORS\nGENTLE CYCLE\nONLY NON-CHLORINE BLEACH IF NEEDED\nTUMBLE DRY LOW, REMOVE PROMPTLY\nCOOL IRON IF NEEDED", + "country": null, + "materials": [ + { + "fiber": "Recycled Polyester", + "pct": 61 + }, + { + "fiber": "Rayon", + "pct": 35 + }, + { + "fiber": "Spandex", + "pct": 4 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 8.67, + "breakdown": { + "materials": 1.67, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8710.JPG", + "result": { + "parsed": { + "ocr_text": "91% RECYCLED\nPOLYESTER/POLI\u00c9STER\nRECICLADO\n8% WOOL/LANA\n1% SPANDEX\nRN17730\nVN1989869\nMADE IN CAMBODIA /", + "country": "Cambodia", + "materials": [ + { + "fiber": "Recycled Polyester", + "pct": 91 + }, + { + "fiber": "Wool", + "pct": 8 + }, + { + "fiber": "Spandex", + "pct": 1 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.16, + "breakdown": { + "materials": 1.62, + "manufacturing": 0.19, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Cambodia", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8711.JPG", + "result": { + "parsed": { + "ocr_text": "100% COTTON (5% RECYCLED COTTON)\nEXCLUSIVE OF DECORATION\nMACHINE WASH COLD SEPARATELY. GENTLE CYCLE.\nONLY NON-CHLORINE BLEACH IF NEEDED. TUMBLE\nDRY LOW. REMOVE PROMPTLY. WARM IRON IF\nNEEDED.", + "country": null, + "materials": [ + { + "fiber": "Cotton", + "pct": 95 + }, + { + "fiber": "Recycled Cotton", + "pct": 5 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "iron_medium", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 8.92, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.35, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8712.JPG", + "result": { + "parsed": { + "ocr_text": "77% RECYCLED POLYESTER / 11% NYLON / 8% WOOL / 4% SPANDEX\nTURN GARMENT INSIDE OUT\nMACHINE WASH COLD WITH LIKE COLORS, GENTLE CYCLE\nONLY NON-CHLORINE BLEACH IF NEEDED\nRESHAPE AND LAY FLAT TO DRY\nCOOL IRON IF NEEDED", + "country": null, + "materials": [ + { + "fiber": "Recycled Polyester", + "pct": 77 + }, + { + "fiber": "Nylon", + "pct": 11 + }, + { + "fiber": "Wool", + "pct": 8 + }, + { + "fiber": "Spandex", + "pct": 4 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.07, + "breakdown": { + "materials": 2.37, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8713.JPG", + "result": { + "parsed": { + "ocr_text": "77% RECYCLED POLYESTER / 11% LYOCELL / 12% SPANDEX MACHINE WASH COLD WITH LIKE COLORS. ONLY NON-CHLORINE BLEACH IF NEEDED. TUMBLE DRY LOW. REMOVE PROMPTLY. COOL IRON IF NEEDED. DO NOT IRON ON LABEL. RN17730 VN1068795 MADE IN NICARAGUA", + "country": "Nicaragua", + "materials": [ + { + "fiber": "Recycled Polyester", + "pct": 77 + }, + { + "fiber": "Lyocell", + "pct": 11 + }, + { + "fiber": "Spandex", + "pct": 12 + } + ], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 9.14, + "breakdown": { + "materials": 2.26, + "manufacturing": 0.05, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Nicaragua", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8714.JPG", + "result": { + "parsed": { + "ocr_text": "SHELL: 100% NYLON\nLINING: 100% RECYCLED POLYESTER\nFILLING: 100% RECYCLED POLYESTER\nMACHINE WASH COLD WITH LIKE COLORS. GENTLE\nCYCLE. ONLY NON-CHLORINE BLEACH IF NEEDED.\nTUMBLE DRY LOW. REMOVE PROMPTLY. DO NOT IRON.\nDO NOT DRY CLEAN.", + "country": null, + "materials": [ + { + "fiber": "Nylon", + "pct": 100 + }, + { + "fiber": "Recycled Polyester", + "pct": 100 + }, + { + "fiber": "Recycled Polyester", + "pct": 100 + } + ], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": "do_not_iron", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 27.48, + "breakdown": { + "materials": 7.35, + "manufacturing": 0.18, + "washing": 1.05, + "drying": 18.9, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 150 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\tag_1.JPG", + "result": { + "parsed": { + "ocr_text": "Made In Guatemala\nFabriqu\u00e9 Au Guatemala\nHergestellt In Guatemala\nVervaardigd In Guatemala\n\u30b0\u30a2\u30c6\u30de\u30e9\u88fd\nHecho En Guatemala\n\n100%Cotton/Coton/\nBaumwolle/Katoen/\u7dbf/\nAlgod\u00f3n", + "country": "Guatemala", + "materials": [ + { + "fiber": "Cotton", + "pct": 100 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.15, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.05, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Guatemala", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\tag_5.JPG", + "result": { + "parsed": { + "ocr_text": "MACHINE WASH COLD WITH LIKE COLOURS, DO NOT BLEACH, DRY FLAT, COOL IRON ONLY IF NEEDED, OR DRY CLEAN LAVER \u00c0 LA MACHINE \u00c0 L'EAU FROIDE AVEC COULEURS SEMBLABLES, NE PAS JAVELISER, S\u00c9CHER \u00c0 PLAT, REPASSAGE DOUX SI N\u00c9CESSAIRE, OU NETTOYER \u00c0 SEC MADE IN VIETNAM", + "country": "Vietnam", + "materials": [], + "care": { + "washing": "machine_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": "dry_clean" + } + }, + "emissions": { + "total_kgco2e": 3.83, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.16, + "washing": 0.35, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 1.4 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Vietnam", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags/IMG_8539.JPG", + "result": { + "error": { + "code": "NO_TAG_DETECTED", + "message": "No clothing tag detected." + } + } + }, + { + "file": "cropped_tags/IMG_8573.JPG", + "result": { + "error": { + "code": "NO_TAG_DETECTED", + "message": "No clothing tag detected." + } + } + }, + { + "file": "cropped_tags/IMG_8594.JPG", + "result": { + "error": { + "code": "NO_TAG_DETECTED", + "message": "No clothing tag detected." + } + } + }, + { + "file": "cropped_tags/IMG_8603.JPG", + "result": { + "error": { + "code": "NO_TAG_DETECTED", + "message": "No clothing tag detected." + } + } + }, + { + "file": "cropped_tags/IMG_8607.JPG", + "result": { + "error": { + "code": "NO_TAG_DETECTED", + "message": "No clothing tag detected." + } + } + }, + { + "file": "cropped_tags/IMG_8609.JPG", + "result": { + "error": { + "code": "NO_TAG_DETECTED", + "message": "No clothing tag detected." + } + } + }, + { + "file": "cropped_tags/IMG_8611.JPG", + "result": { + "error": { + "code": "NO_TAG_DETECTED", + "message": "No clothing tag detected." + } + } + }, + { + "file": "cropped_tags/IMG_8616.JPG", + "result": { + "error": { + "code": "NO_TAG_DETECTED", + "message": "No clothing tag detected." + } + } + }, + { + "file": "cropped_tags/IMG_8620.JPG", + "result": { + "error": { + "code": "NO_TAG_DETECTED", + "message": "No clothing tag detected." + } + } + }, + { + "file": "cropped_tags/IMG_8627.JPG", + "result": { + "error": { + "code": "NO_TAG_DETECTED", + "message": "No clothing tag detected." + } + } + }, + { + "file": "cropped_tags/IMG_8629.JPG", + "result": { + "error": { + "code": "NO_TAG_DETECTED", + "message": "No clothing tag detected." + } + } + }, + { + "file": "cropped_tags/IMG_8690.JPG", + "result": { + "error": { + "code": "NO_TAG_DETECTED", + "message": "No clothing tag detected." + } + } + } +] \ No newline at end of file diff --git a/predictions.json b/predictions.json new file mode 100644 index 0000000..5cfd20a --- /dev/null +++ b/predictions.json @@ -0,0 +1,3197 @@ +[ + { + "file": "cropped_tags\\IMG_8560.JPG", + "result": { + "parsed": { + "ocr_text": "STYLE# ISW1638\nRN# 142577\n70%RAYON\n30%POLYESTER\nMADE IN\nCHINA", + "country": "China", + "materials": [ + { + "fiber": "Rayon", + "pct": 70 + }, + { + "fiber": "Polyester", + "pct": 30 + } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.75, + "breakdown": { + "materials": 2.22, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8561.JPG", + "result": { + "parsed": { + "ocr_text": "BODY: 100% POLYESTER\nLINING: 100% POLYESTER\nTRONC: 100% POLYESTER\nDOUBLURE: 100% POLYESTER\nCA 23725 RN 122354", + "country": null, + "materials": [ + { + "fiber": "Polyester", + "pct": 100 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.85, + "breakdown": { + "materials": 3.33, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8563.JPG", + "result": { + "parsed": { + "ocr_text": "DRY CLEAN ONLY.\nNETTOYAGE \u00c0 SEC SEULEMENT.\nMADE IN VIETNAM\nFABRIQU\u00c9 AU VIETNAM", + "country": "VIETNAM", + "materials": [], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": "dry_clean_only" + } + }, + "emissions": { + "total_kgco2e": 3.31, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.16, + "washing": 0, + "drying": 0, + "ironing": 0, + "dry_cleaning": 1.4 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "VIETNAM", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8564.JPG", + "result": { + "parsed": { + "ocr_text": "Made in Bangladesh\nFabriqu\u00e9 en Bangladesh\nHecho en Bangladesh\nO/N 241102\nP/N 08797811\n40\nclevercare.info\nGB 70% VISCOSE. 30% POLYAMIDE.", + "country": "Bangladesh", + "materials": [ + { + "fiber": "Viscose", + "pct": 70 + }, + { + "fiber": "Polyamide", + "pct": 30 + } + ], + "care": { + "washing": "machine_wash_warm", + "drying": "do_not_tumble_dry", + "ironing": "iron_medium", + "dry_cleaning": "dry_clean" + } + }, + "emissions": { + "total_kgco2e": 7.1, + "breakdown": { + "materials": 3.04, + "manufacturing": 0.21, + "washing": 2.1, + "drying": 0, + "ironing": 0.35, + "dry_cleaning": 1.4 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Bangladesh", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8567.JPG", + "result": { + "parsed": { + "ocr_text": "80%SILK/SOIE\n20%NYLON\nCA#00445\nRN#95188\nMade in China", + "country": "China", + "materials": [ + { + "fiber": "Silk", + "pct": 80 + }, + { + "fiber": "Nylon", + "pct": 20 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.97, + "breakdown": { + "materials": 2.45, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8568.JPG", + "result": { + "parsed": { + "ocr_text": "HAND WASH COLD, DO NOT\nBLEACH, RESHAPE WHILE DAMP.\nDRY FLAT, COOL IRON ONLY IF\nNEEDED, OR DRY CLEAN.\nLAVER \u00c0 LA MAIN \u00c0 L'EAU\nFROIDE, NE PAS JAVELISER,\nREMODELER PENDANT QUE\nL'ARTICLE EST ENCORE HUMIDE,\nS\u00c9CHER \u00c0 PLAT, REPASSAGE\nDOUX SI N\u00c9CESSAIRE, OU\nNETTOYER \u00c0 SEC.\n\nMADE IN CHINA\nFABRIQU\u00c9 EN CHINE", + "country": "China", + "materials": [], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": "dry_clean" + } + }, + "emissions": { + "total_kgco2e": 3.68, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 1.4 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8569.JPG", + "result": { + "parsed": { + "ocr_text": "57% VISCOSE, 43% POLYESTER\nEXCLUSIVE OF ELASTIC\n57% VISCOSE, 43% POLYESTER\n\u00c0 L'EXCLUSION DE L'\u00c9LASTIQUE", + "country": null, + "materials": [ + { + "fiber": "Viscose", + "pct": 57 + }, + { + "fiber": "Polyester", + "pct": 43 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.15, + "breakdown": { + "materials": 2.63, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8570.JPG", + "result": { + "parsed": { + "ocr_text": "48% VISCOSE, 31% POLYESTER,\n18% NYLON, 3% ELASTANE\n48% VISCOSE, 31% POLYESTER,\n18% NYLON, 3% \u00c9LASTHANNE\nCA 23725 RN 122354", + "country": null, + "materials": [ + { + "fiber": "Viscose", + "pct": 48 + }, + { + "fiber": "Polyester", + "pct": 31 + }, + { + "fiber": "Nylon", + "pct": 18 + }, + { + "fiber": "Elastane", + "pct": 3 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.82, + "breakdown": { + "materials": 3.3, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8571.JPG", + "result": { + "parsed": { + "ocr_text": "SELF:\n100% COTTON\nLINING:\n100% POLYESTER\nMADE IN CHINA", + "country": "China", + "materials": [ + { + "fiber": "Cotton", + "pct": 100 + }, + { + "fiber": "Polyester", + "pct": 100 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 5.95, + "breakdown": { + "materials": 5.07, + "manufacturing": 0.18, + "washing": 0.7, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 100 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8574.JPG", + "result": { + "parsed": { + "ocr_text": "100% Organic Cotton\nGLOBAL ORGANIC TEXTILE STANDARD\nGOTS\nOrganic\nCU 1245496\nMachine wash cold\nwith like colors. Tumble\ndry low. Do not bleach.\nMade in India", + "country": "India", + "materials": [ + { + "fiber": "Organic Cotton", + "pct": 100 + } + ], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 7.72, + "breakdown": { + "materials": 0.88, + "manufacturing": 0.19, + "washing": 0.35, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "India", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8575.JPG", + "result": { + "parsed": { + "ocr_text": "Body/Corps:\n53%Cotton/Algod\u00f3n\n47%Polyester/Polyester\nRib/Costilla:\n49%Cotton/Algod\u00f3n\n49%Polyester/Polyester\n2%Spandex/Elasthanne\n\nEXCLUSIVE OF DECORATION\nEXCLUYENDO DECORATION\n\nRN 50369\nSTYLE 9920\n\nMade in Cambodia\nHecho en Camboya", + "country": "Cambodia", + "materials": [ + { + "fiber": "Cotton", + "pct": 53 + }, + { + "fiber": "Polyester", + "pct": 47 + }, + { + "fiber": "Cotton", + "pct": 49 + }, + { + "fiber": "Polyester", + "pct": 49 + }, + { + "fiber": "Spandex", + "pct": 2 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 6.08, + "breakdown": { + "materials": 5.19, + "manufacturing": 0.19, + "washing": 0.7, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Cambodia", + "washes_lifetime": 100 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8579.JPG", + "result": { + "parsed": { + "ocr_text": "MACHINE WASH COLD WITH LIKE COLOURS, ONLY NON-CHLORINE BLEACH WHEN NEEDED, TUMBLE DRY LOW, COOL IRON ONLY IF NEEDED, DO NOT DRY CLEAN LAVER \u00c0 LA MACHINE \u00c0 L'EAU FROIDE AVEC COULEURS SEMBLABLES, UTILISER SEULEMENT UN JAVELLISANT SANS CHLORE AU BESOIN, S\u00c9CHER \u00c0 BASSE TEMP\u00c9RATURE, REPASSAGE DOUX SI N\u00c9CESSAIRE, NE PAS NETTOYER \u00c0 SEC MADE IN CHINA FABRIQU\u00c9 EN CHINE", + "country": "China", + "materials": [], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 8.75, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8583.JPG", + "result": { + "parsed": { + "ocr_text": "HAND WASH COLD, DO NOT BLEACH, RESHAPE WHILE DAMP, DRY FLAT, COOL IRON ONLY IF NEEDED, OR DRY CLEAN.\nLAVER \u00c0 LA MAIN \u00c0 L'EAU FROIDE, NE PAS JAVELISER, REMODELER PENDANT QUE L'ARTICLE EST ENCORE HUMIDE, S\u00c9CHER \u00c0 PLAT, REPASSAGE DOUX SI N\u00c9CESSAIRE, OU NETTOYER \u00c0 SEC.\nMADE IN CHINA\nFABRIQUE EN CHINE", + "country": "China", + "materials": [], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": "dry_clean" + } + }, + "emissions": { + "total_kgco2e": 3.68, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 1.4 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8584.JPG", + "result": { + "parsed": { + "ocr_text": "BODY: 55% MERINO WOOL, 25%\nRECYCLED NYLON, 20% COTTON\nRIB TRIM: 52% MERINO WOOL,\n28% RECYCLED NYLON, 19%\nCOTTON, 1% ELASTANE.\nCORPS: 55% LAINE M\u00c9RINOS, 25%\nNYLON RECYCL\u00c9, 20% COTON\nGARNITURE C\u00d4TEL\u00c9E: 52% LAINE\nM\u00c9RINOS, 28% NYLON RECYCL\u00c9,\n19% COTON, 1% \u00c9LASTHANNE\nCA 23725 RN 122354", + "country": null, + "materials": [ + { + "fiber": "Merino Wool", + "pct": 55 + }, + { + "fiber": "Recycled Nylon", + "pct": 25 + }, + { + "fiber": "Cotton", + "pct": 20 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.28, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8585.JPG", + "result": { + "parsed": { + "ocr_text": "Made In China\nFabriqu\u00e9 En Chine\nHergestellt In China\nVervaardigd In China\n\u4e2d\u56fd\u88fd\nhecho en china\n100% Cashmere / Cachemire /\nKaschmir / Kasjmier /\n\u30ab\u30b7\u30df\u30e4 / cashmere\nExclusive Of Elastic / Sans\n\u00c9lastique / Ohne Gummizug /\nBehalve Elastiek / \u4f38\u7e2e\u7d20\u6750\u3092\n\u9664\u304f / excluyendo el el\u00e1stico\nHand Wash Cold Separately.\nNon-Chlorine Bleach Only.\nReshape And Lay Flat To Dry.\nIron On Lowest Setting.", + "country": "China", + "materials": [ + { + "fiber": "Cashmere", + "pct": 100 + } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 53.02, + "breakdown": { + "materials": 52.5, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8586.JPG", + "result": { + "parsed": { + "ocr_text": "60% Cotton / Katoen / Baumwolle\n/ Coton\n40% Acrylic / Acryl / Polyacryl /\nAcrylique", + "country": null, + "materials": [ + { + "fiber": "Cotton", + "pct": 60 + }, + { + "fiber": "Acrylic", + "pct": 40 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.39, + "breakdown": { + "materials": 2.87, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8587.JPG", + "result": { + "parsed": { + "ocr_text": "RN # 123722\n100% COTTON\nMACHINE WASH\nCOLD\nGENTLE CYCLE\nTUMBLE DRY LOW\nLIGHT IRON\nMADE IN USA", + "country": "USA", + "materials": [ + { + "fiber": "Cotton", + "pct": 100 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 8.59, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.02, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "USA", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8588.JPG", + "result": { + "parsed": { + "ocr_text": "Made In Peru\nFabriqu\u00e9 Au P\u00e9rou\nHergestellt In Peru\nVervaardigd In Peru\n\u30da\u30eb\u30fc\u88fd\nhecho en per\u00fa\n52% Modal /Modal /Modal /\nModal /\u30ec\u30fc\u30e8\u30f3 /modal\n24% Polyester /Polyester /\nPolyester /Polyester /\n\u30dd\u30ea\u30a8\u30b9\u30c6\u30eb /poli\u00e9ster\n24% Cotton /Coton /\nBaumwolle /Katoen /\u7dbf /\nalgod\u00f3n\nMachine Wash Cold With Like\nColors. Non-Chlorine Bleach\nOnly. Tumble Dry Low. Iron\nOn Lowest Setting.", + "country": "Peru", + "materials": [ + { + "fiber": "Modal", + "pct": 52 + }, + { + "fiber": "Polyester", + "pct": 24 + }, + { + "fiber": "Cotton", + "pct": 24 + } + ], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 9.21, + "breakdown": { + "materials": 2.31, + "manufacturing": 0.07, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Peru", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8590.JPG", + "result": { + "parsed": { + "ocr_text": "MADE IN CAMBODIA.\nBODY: 80% COTTON / 20% POLYESTER.\nTRIM: 98% COTTON / 2% SPANDEX.\nEXCLUSIVE OF TRIMMING AND DECORATION.", + "country": "Cambodia", + "materials": [ + { + "fiber": "Cotton", + "pct": 80 + }, + { + "fiber": "Polyester", + "pct": 20 + }, + { + "fiber": "Cotton", + "pct": 98 + }, + { + "fiber": "Spandex", + "pct": 2 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 4.88, + "breakdown": { + "materials": 3.99, + "manufacturing": 0.19, + "washing": 0.7, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Cambodia", + "washes_lifetime": 100 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8591.JPG", + "result": { + "parsed": { + "ocr_text": "Made In Philippines\nFabriqu\u00e9 Aux Philippines\nHergestellt In Den Philippinen\nVervaardigd In De Filippijnen\n\u30d5\u30a3\u30ea\u30d4\u30f3\u88fd\nhecho en filipinas\n65% Polyester /Polyester /\nPolyester /Polyester /\n\u30dd\u30ea\u30a8\u30b9\u30c6\u30eb /poli\u00e9ster\n33% Viscose Viscose /\nViskose Viscose /\n\u30ec\u30fc\u30e8\u30f3 /viscosa\n2% Elastane /\u00c9lasthanne /\nElastan /Elastaan /\n\u30dd\u30ea\u30a6\u30ec\u30bf\u30f3 /elastano\nMachine Wash Cold With Like\nColors. Non-Chlorine Bleach\nOnly. Tumble Dry Low. Iron\nOn Lowest Setting.", + "country": "Philippines", + "materials": [ + { + "fiber": "Polyester", + "pct": 65 + }, + { + "fiber": "Viscose", + "pct": 33 + }, + { + "fiber": "Elastane", + "pct": 2 + } + ], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 10.05, + "breakdown": { + "materials": 3.06, + "manufacturing": 0.16, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Philippines", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8592.JPG", + "result": { + "parsed": { + "ocr_text": "MADE IN VIETNAM\nRN 54023 / CA 17897\n\u25a0 US/GB: 100% MERINO EXTRA FINE\nWOOL\n1166\nMACHINE WASH COLD GENTLE\nCYCLE / CLOSE ALL FASTENERS\nBEFORE WASHING / WASH IN MESH\nBAG / USE MILD DETERGENT / WASH\nSEPARATELY / ONLY NON-CHLORINE\nBLEACH WHEN NEEDED / RESHAPE\nAND DRY FLAT / COOL IRON\nDISTRIBUIDO POR", + "country": "Vietnam", + "materials": [ + { + "fiber": "Merino Wool", + "pct": 100 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": "dry_clean" + } + }, + "emissions": { + "total_kgco2e": 3.83, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.16, + "washing": 0.35, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 1.4 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Vietnam", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8593.JPG", + "result": { + "parsed": { + "ocr_text": "50% MERINO WOOL\n/LAINEM\u00c9RINOS\n50%ACRYLIC/ACRYLIQUE\nRN#154138\nMADE IN CHINA", + "country": "China", + "materials": [ + { + "fiber": "Merino Wool", + "pct": 50 + }, + { + "fiber": "Acrylic", + "pct": 50 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.68, + "breakdown": { + "materials": 3.15, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8595.JPG", + "result": { + "parsed": { + "ocr_text": "SHELL:\n100% POLYESTER\nLINING:\n100% POLYESTER\n\nETOFFE EXTERIEURE:\n100% POLYESTER\nDOUBLURE:\n100% POLYESTER\n\nTELA EXTERIOR:\n100% POLIESTER\nFORRO:\n100% POLIESTER\n\nMADE IN CHINA", + "country": "China", + "materials": [ + { + "fiber": "Polyester", + "pct": 100 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.85, + "breakdown": { + "materials": 3.33, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8596.JPG", + "result": { + "parsed": { + "ocr_text": "52% VISCOSE\n36% NYLON\n12% POLYESTER\nMACHINE WASH COLD\nWITH LIKE COLORS\nONLY NON-CHLORINE\nBLEACH WHEN NEEDED\nTUMBLE DRY LOW\nWARM IRON IF NECESSARY\nMADE IN CHINA", + "country": "China", + "materials": [ + { + "fiber": "Viscose", + "pct": 52 + }, + { + "fiber": "Nylon", + "pct": 36 + }, + { + "fiber": "Polyester", + "pct": 12 + } + ], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": "iron_medium", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 10.56, + "breakdown": { + "materials": 3.38, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.35, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8599.JPG", + "result": { + "parsed": { + "ocr_text": "100% CASHMERE\nDRY CLEAN\nOR HAND WASH COLD\nDO NOT TWIST OR WRING\nDO NOT BLEACH\nRESHAPE AND LAY\nFLAT TO DRY\nWARM IRON IF NEEDED", + "country": null, + "materials": [ + { + "fiber": "Cashmere", + "pct": 100 + } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_medium", + "dry_cleaning": "dry_clean" + } + }, + "emissions": { + "total_kgco2e": 54.6, + "breakdown": { + "materials": 52.5, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0.35, + "dry_cleaning": 1.4 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8600.JPG", + "result": { + "parsed": { + "ocr_text": "MATERIAL\n100%COTTON\nDRY CLEAN ONLY\nMADE IN VIET NAM", + "country": "Viet Nam", + "materials": [ + { + "fiber": "Cotton", + "pct": 100 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": "dry_clean_only" + } + }, + "emissions": { + "total_kgco2e": 3.33, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.18, + "washing": 0, + "drying": 0, + "ironing": 0, + "dry_cleaning": 1.4 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Viet Nam", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8601.JPG", + "result": { + "parsed": { + "ocr_text": "100% CASHMERE\n\nDRY CLEAN\nOR HAND WASH COLD\nDO NOT TWIST OR WRING\nDO NOT BLEACH\nRESHAPE AND LAY\nFLAT TO DRY\nWARM IRON IF NEEDED", + "country": null, + "materials": [ + { + "fiber": "Cashmere", + "pct": 100 + } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_medium", + "dry_cleaning": "dry_clean" + } + }, + "emissions": { + "total_kgco2e": 54.6, + "breakdown": { + "materials": 52.5, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0.35, + "dry_cleaning": 1.4 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8602.JPG", + "result": { + "parsed": { + "ocr_text": "49% RAYON\n31% POLYESTER\n20% NYLON", + "country": null, + "materials": [ + { + "fiber": "Rayon", + "pct": 49 + }, + { + "fiber": "Polyester", + "pct": 31 + }, + { + "fiber": "Nylon", + "pct": 20 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.46, + "breakdown": { + "materials": 2.94, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8604.JPG", + "result": { + "parsed": { + "ocr_text": "MADE IN CHINA\n73% ACRYLIC\n24% POLYESTER\n3% SPANDEX\n\nHAND WASH COLD\nSEPARATELY\nUSE ONLY NON-CHLORINE\nBLEACH IF NEEDED\nRESHAPE AND\nLAY FLAT TO DRY\nUSE LOW IRON\nIF NECESSARY", + "country": "China", + "materials": [ + { + "fiber": "Acrylic", + "pct": 73 + }, + { + "fiber": "Polyester", + "pct": 24 + }, + { + "fiber": "Spandex", + "pct": 3 + } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 4.96, + "breakdown": { + "materials": 4.43, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8606.JPG", + "result": { + "parsed": { + "ocr_text": "50% PIMA COTTON/\nCOTON PIMA\n50% MODAL/MODAL\nM/M\nMADE IN PERU\nFABRIQU\u00c9", + "country": "Peru", + "materials": [ + { + "fiber": "Pima Cotton", + "pct": 50 + }, + { + "fiber": "Modal", + "pct": 50 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.43, + "breakdown": { + "materials": 2.01, + "manufacturing": 0.07, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Peru", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8608.JPG", + "result": { + "parsed": { + "ocr_text": "58% RAYON\n24% POLYESTER\n13% METALLIC\n5% ELASTANE\n\n58% RAYONNE\n24% POLYESTER\n13% M\u00c9TALLIQUE\n5% ELASTHANNE\n\n58% RAY\u00d3N\n24% POLI\u00c9STER\n13% MET\u00c1LICO\n5% ELASTANO\n\nMADE IN TURKEY", + "country": "Turkey", + "materials": [ + { + "fiber": "Rayon", + "pct": 58 + }, + { + "fiber": "Polyester", + "pct": 24 + }, + { + "fiber": "Metallic", + "pct": 13 + }, + { + "fiber": "Elastane", + "pct": 5 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.02, + "breakdown": { + "materials": 2.57, + "manufacturing": 0.11, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Turkey", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8610.JPG", + "result": { + "parsed": { + "ocr_text": "83% POLYESTER\n12% RAYON\n5% SPANDEX", + "country": null, + "materials": [ + { + "fiber": "Polyester", + "pct": 83 + }, + { + "fiber": "Rayon", + "pct": 12 + }, + { + "fiber": "Spandex", + "pct": 5 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 4.02, + "breakdown": { + "materials": 3.49, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8612.JPG", + "result": { + "parsed": { + "ocr_text": "MADE IN VIETNAM\nFABRIQU\u00c9 AU VIETNAM\nHECHO EN VIETNAM", + "country": "Vietnam", + "materials": [], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.26, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.16, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Vietnam", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8614.JPG", + "result": { + "parsed": { + "ocr_text": "US MADE IN CHINA\nCA FABRIQU\u00c9 EN CHINE\nMX HECHO EN CHINA\nUS 52%VISCOSE\n28%POLYESTER 20%NYLON\nEXCLUSIVE OF TRIMS\nCA 52% VISCOSE\n28% POLYESTER 20% NYLON\nHORS GARNITURES\nMX 52% VISCOSA\n28% POLI\u00c9STER 20% NYLON\nEXCLUYENDO ADORNOS\nUS HAND WASH SEPARATELY\nIN COLD WATER, DO NOT\nBLEACH, LAY FLAT TO DRY,\nDO NOT IRON", + "country": "China", + "materials": [ + { + "fiber": "Viscose", + "pct": 52 + }, + { + "fiber": "Polyester", + "pct": 28 + }, + { + "fiber": "Nylon", + "pct": 20 + } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "do_not_iron", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.42, + "breakdown": { + "materials": 3.07, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8615.JPG", + "result": { + "parsed": { + "ocr_text": "100% ACRYLIQUE\nMADE IN TAIWAN R.O.C.\n[hand wash symbol]\n[do not bleach symbol]\n[lay flat to dry symbol]\n[do not iron symbol]\n[do not dry clean symbol]", + "country": "Taiwan R.O.C.", + "materials": [ + { + "fiber": "Acrylic", + "pct": 100 + } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "do_not_iron", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 4.9, + "breakdown": { + "materials": 4.55, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Taiwan R.O.C.", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8617.JPG", + "result": { + "parsed": { + "ocr_text": "70% RAYON\n30% NYLON\nEXCLUSIVE OF\nDECORATION\nMADE IN CHINA\nRN 103715\n\nTURN GARMENT\nINSIDE OUT\nHAND WASH COLD\nDO NOT BLEACH\nLAY FLAT TO DRY\nWARM IRON\nIF NEEDED\nDO NOT IRON ON\nDECORATION", + "country": "China", + "materials": [ + { + "fiber": "Rayon", + "pct": 70 + }, + { + "fiber": "Nylon", + "pct": 30 + } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_medium", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.5, + "breakdown": { + "materials": 2.8, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0.35, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8618.JPG", + "result": { + "parsed": { + "ocr_text": "70% RAYON\n30% POLYESTER\nRN 165979\nMACHINE WASH\nCOLD\nGENTLE CYCLE\nWITH LIKE COLORS\nDO NOT BLEACH\nRESHAPE AND\nDRY FLAT\nCOOL IRON\nIF NEEDED\nOR DRY CLEAN", + "country": null, + "materials": [ + { + "fiber": "Rayon", + "pct": 70 + }, + { + "fiber": "Polyester", + "pct": 30 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": "dry_clean" + } + }, + "emissions": { + "total_kgco2e": 4.32, + "breakdown": { + "materials": 2.22, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 1.4 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8619.JPG", + "result": { + "parsed": { + "ocr_text": "63%Rayon//Ray\u00f3n Kunstseide/Raion 32%Nylon//Nylon Nylon/Nylon 5%Spandex/Elastano /Elastan/Elastan MADE IN CHINA", + "country": "China", + "materials": [ + { + "fiber": "Rayon", + "pct": 63 + }, + { + "fiber": "Nylon", + "pct": 32 + }, + { + "fiber": "Spandex", + "pct": 5 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.83, + "breakdown": { + "materials": 3.31, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8621.JPG", + "result": { + "parsed": { + "ocr_text": "MADE IN CHINA\n73% ACRYLIC\n24% POLYESTER\n3% SPANDEX\n\nHAND WASH COLD\nSEPARATELY\nUSE ONLY NON-CHLORINE\nBLEACH IF NEEDED\nRESHAPE AND\nLAY FLAT TO DRY\nUSE LOW IRON\nIF NECESSARY", + "country": "China", + "materials": [ + { + "fiber": "Acrylic", + "pct": 73 + }, + { + "fiber": "Polyester", + "pct": 24 + }, + { + "fiber": "Spandex", + "pct": 3 + } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 4.96, + "breakdown": { + "materials": 4.43, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8622.JPG", + "result": { + "parsed": { + "ocr_text": "60% COTTON\n40% POLYESTER", + "country": null, + "materials": [ + { + "fiber": "Cotton", + "pct": 60 + }, + { + "fiber": "Polyester", + "pct": 40 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.91, + "breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8623.JPG", + "result": { + "parsed": { + "ocr_text": "HAND WASH COLD\nWITH LIKE COLORS\nLAY FLAT TO DRY\nDO NOT BLEACH\nDO NOT TUMBLE\nCOOL IRON IF NEEDED\nRN# 155730\nMADE IN CHINA", + "country": "China", + "materials": [], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.28, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8624.JPG", + "result": { + "parsed": { + "ocr_text": "100% CASHMERE\n\nDRY CLEAN ONLY.\n\nMADE IN CHINA", + "country": "China", + "materials": [ + { + "fiber": "Cashmere", + "pct": 100 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": "dry_clean_only" + } + }, + "emissions": { + "total_kgco2e": 54.08, + "breakdown": { + "materials": 52.5, + "manufacturing": 0.18, + "washing": 0, + "drying": 0, + "ironing": 0, + "dry_cleaning": 1.4 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8625.JPG", + "result": { + "parsed": { + "ocr_text": "80% RAYON/VISCOSE/\nVISCOSA\n20% NYLON/POLYAMIDE/\nNAILON\nS\nHAND WASH SEPARATELY\nIN COLD WATER\nDO NOT BLEACH\nLAY FLAT DO DRY\nIRON ON LOWEST\nSETTING AS NEEDED", + "country": null, + "materials": [ + { + "fiber": "Rayon", + "pct": 80 + }, + { + "fiber": "Nylon", + "pct": 20 + } + ], + "care": { + "washing": "hand_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.97, + "breakdown": { + "materials": 2.45, + "manufacturing": 0.18, + "washing": 0.18, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8626.JPG", + "result": { + "parsed": { + "ocr_text": "51% RAYON\n28% POLYESTER\n21% NYLON\n\nCUT:3006281\nSTYLE\n3705499\n\nMADE IN CHINA\nCARE ON REVERSE", + "country": "China", + "materials": [ + { + "fiber": "Rayon", + "pct": 51 + }, + { + "fiber": "Polyester", + "pct": 28 + }, + { + "fiber": "Nylon", + "pct": 21 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.45, + "breakdown": { + "materials": 2.93, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8628.JPG", + "result": { + "parsed": { + "ocr_text": "100% CASHMERE", + "country": null, + "materials": [ + { + "fiber": "Cashmere", + "pct": 100 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 53.03, + "breakdown": { + "materials": 52.5, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8691.JPG", + "result": { + "parsed": { + "ocr_text": "SHELL: 95% NYLON / 5% SPANDEX\nLINING : 100% RECYCLED POLYESTER\nWASH INSIDE OUT. MACHINE WASH COLD SEPARATELY.\nGENTLE CYCLE. ONLY NON-CHLORINE BLEACH IF\nNEEDED. TUMBLE DRY LOW. REMOVE PROMPTLY. DO\nNOT IRON.\nRN17730 VN1989909", + "country": null, + "materials": [ + { + "fiber": "Nylon", + "pct": 95 + }, + { + "fiber": "Spandex", + "pct": 5 + }, + { + "fiber": "Recycled Polyester", + "pct": 100 + } + ], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": "do_not_iron", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 20.04, + "breakdown": { + "materials": 6.56, + "manufacturing": 0.18, + "washing": 0.7, + "drying": 12.6, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 100 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8693.JPG", + "result": { + "parsed": { + "ocr_text": "55% VISCOSE / 45% NYLON\nMACHINE WASH COLD WITH LIKE COLORS. GENTLE\nCYCLE. ONLY NON-CHLORINE BLEACH IF NEEDED. LAY\nFLAT TO DRY. WARM IRON IF NEEDED.\nRN17730 VN1268582", + "country": null, + "materials": [ + { + "fiber": "VISCOSE", + "pct": 55 + }, + { + "fiber": "NYLON", + "pct": 45 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "lay_flat_to_dry", + "ironing": "iron_medium", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 4.39, + "breakdown": { + "materials": 3.52, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0.35, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8696.JPG", + "result": { + "parsed": { + "ocr_text": "55% COTTON / 45% VISCOSE\nTURN GARMENT INSIDE OUT\nMACHINE WASH COLD WITH LIKE COLORS\nGENTLE CYCLE\nONLY NON-CHLORINE BLEACH IF NEEDED\nTUMBLE DRY LOW, COOL IRON IF NEEDED\nRN17730 VN1317080", + "country": null, + "materials": [ + { + "fiber": "Cotton", + "pct": 55 + }, + { + "fiber": "Viscose", + "pct": 45 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 8.91, + "breakdown": { + "materials": 1.91, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8697.JPG", + "result": { + "parsed": { + "ocr_text": "90% RECYCLED POLYESTER / 8% WOOL /\n2% SPANDEX\nMACHINE WASH COLD WITH LIKE COLORS\nGENTLE CYCLE\nONLY NON-CHLORINE BLEACH IF NEEDED\nLAY FLAT TO DRY\nWARM IRON IF NEEDED\nRN17730 VN1268582", + "country": null, + "materials": [ + { + "fiber": "Recycled Polyester", + "pct": 90 + }, + { + "fiber": "Wool", + "pct": 8 + }, + { + "fiber": "Spandex", + "pct": 2 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "lay_flat_to_dry", + "ironing": "iron_medium", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.59, + "breakdown": { + "materials": 1.72, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0.35, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8699 2.JPG", + "result": { + "parsed": { + "ocr_text": "MADE IN\nCHINA", + "country": "China", + "materials": [], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.28, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "China", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8700.JPG", + "result": { + "parsed": { + "ocr_text": "91% RECYCLED POLYESTER / 9% SPANDEX\nMACHINE WASH COLD WITH LIKE COLORS. GENTLE CYCLE. ONLY NON CHLORINE BLEACH IF NEEDED.\nTUMBLE DRY LOW. REMOVE PROMPTLY.\nCOOL IRON IF NEEDED. DO NOT IRON ON LABEL.\nRN17730 VN1068795", + "country": "Vietnam", + "materials": [ + { + "fiber": "Recycled Polyester", + "pct": 91 + }, + { + "fiber": "Spandex", + "pct": 9 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 8.88, + "breakdown": { + "materials": 1.9, + "manufacturing": 0.16, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Vietnam", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8702.JPG", + "result": { + "parsed": { + "ocr_text": "Made in Cambodia\nHecho en Camboya\n\nBODY:\n72% NYLON /\n28% SPANDEX\nFRONT LINING:\n88% NYLON /\n12% SPANDEX\nBACK LINING:\n72% NYLON /\n28% SPANDEX\n\nREMOVE PADS\nBEFORE WASHING\nMACHINE WASH\nCOLD SEPARATELY\nGENTLE CYCLE\nONLY\nNON-CHLORINE\nBLEACH IF NEEDED\nTUMBLE DRY LOW\nREMOVE PROMPTLY\nCOOL IRON IF\nNEEDED", + "country": "Cambodia", + "materials": [ + { + "fiber": "Nylon", + "pct": 72 + }, + { + "fiber": "Spandex", + "pct": 28 + }, + { + "fiber": "Nylon", + "pct": 88 + }, + { + "fiber": "Spandex", + "pct": 12 + }, + { + "fiber": "Nylon", + "pct": 72 + }, + { + "fiber": "Spandex", + "pct": 28 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 39.99, + "breakdown": { + "materials": 19.32, + "manufacturing": 0.19, + "washing": 1.05, + "drying": 18.9, + "ironing": 0.52, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Cambodia", + "washes_lifetime": 150 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8705.JPG", + "result": { + "parsed": { + "ocr_text": "Made in Cambodia\nHecho en Camboya\n93% LYOCELL /\n7% SPANDEX\nEXCLUSIVE OF\nDECORATION\nMACHINE WASH\nCOLD SEPARATELY\nGENTLE CYCLE\nONLY\nNON-CHLORINE\nBLEACH IF NEEDED\nTUMBLE DRY LOW\nREMOVE PROMPTLY\nCOOL IRON IF\nNEEDED", + "country": "Cambodia", + "materials": [ + { + "fiber": "Lyocell", + "pct": 93 + }, + { + "fiber": "Spandex", + "pct": 7 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 9.38, + "breakdown": { + "materials": 2.36, + "manufacturing": 0.19, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Cambodia", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8706.JPG", + "result": { + "parsed": { + "ocr_text": "MADE IN VIETNAM", + "country": "Vietnam", + "materials": [], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.26, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.16, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Vietnam", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8707.JPG", + "result": { + "parsed": { + "ocr_text": "90% COTTON/ALGOD\u00d3N\n10% SPANDEX/SPANDEX\nEXCLUSIVE OF DECORATION\nNO INCLUYE LA DECORACION\nXXL\nMADE IN CAMBODIA\nEN CAMBOYA", + "country": "Cambodia", + "materials": [ + { + "fiber": "Cotton", + "pct": 90 + }, + { + "fiber": "Spandex", + "pct": 10 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.17, + "breakdown": { + "materials": 2.63, + "manufacturing": 0.19, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Cambodia", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8708.JPG", + "result": { + "parsed": { + "ocr_text": "99% RECYCLED POLYESTER / 1% SPANDEX\nMACHINE WASH COLD WITH LIKE COLORS. ONLY\nNON CHLORINE BLEACH IF NEEDED. TUMBLE DRY\nLOW. REMOVE PROMPTLY. COOL IRON IF NEEDED.", + "country": null, + "materials": [ + { + "fiber": "Recycled Polyester", + "pct": 99 + }, + { + "fiber": "Spandex", + "pct": 1 + } + ], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 8.14, + "breakdown": { + "materials": 1.14, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8709.JPG", + "result": { + "parsed": { + "ocr_text": "61% RECYCLED POLYESTER / 35% RAYON / 4% SPANDEX\nEXCLUSIVE OF DECORATION\nMACHINE WASH COLD WITH LIKE COLORS\nGENTLE CYCLE\nONLY NON-CHLORINE BLEACH IF NEEDED\nTUMBLE DRY LOW, REMOVE PROMPTLY\nCOOL IRON IF NEEDED", + "country": null, + "materials": [ + { + "fiber": "Recycled Polyester", + "pct": 61 + }, + { + "fiber": "Rayon", + "pct": 35 + }, + { + "fiber": "Spandex", + "pct": 4 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 8.67, + "breakdown": { + "materials": 1.67, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8710.JPG", + "result": { + "parsed": { + "ocr_text": "91% RECYCLED\nPOLYESTER/POLI\u00c9STER\nRECICLADO\n8% WOOL/LANA\n1% SPANDEX\nRN17730\nVN1989869\nMADE IN CAMBODIA /", + "country": "Cambodia", + "materials": [ + { + "fiber": "Recycled Polyester", + "pct": 91 + }, + { + "fiber": "Wool", + "pct": 8 + }, + { + "fiber": "Spandex", + "pct": 1 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.16, + "breakdown": { + "materials": 1.62, + "manufacturing": 0.19, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Cambodia", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8711.JPG", + "result": { + "parsed": { + "ocr_text": "100% COTTON (5% RECYCLED COTTON)\nEXCLUSIVE OF DECORATION\nMACHINE WASH COLD SEPARATELY. GENTLE CYCLE.\nONLY NON-CHLORINE BLEACH IF NEEDED. TUMBLE\nDRY LOW. REMOVE PROMPTLY. WARM IRON IF\nNEEDED.", + "country": null, + "materials": [ + { + "fiber": "Cotton", + "pct": 95 + }, + { + "fiber": "Recycled Cotton", + "pct": 5 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "tumble_dry_low", + "ironing": "iron_medium", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 8.92, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.35, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8712.JPG", + "result": { + "parsed": { + "ocr_text": "77% RECYCLED POLYESTER / 11% NYLON / 8% WOOL / 4% SPANDEX\nTURN GARMENT INSIDE OUT\nMACHINE WASH COLD WITH LIKE COLORS, GENTLE CYCLE\nONLY NON-CHLORINE BLEACH IF NEEDED\nRESHAPE AND LAY FLAT TO DRY\nCOOL IRON IF NEEDED", + "country": null, + "materials": [ + { + "fiber": "Recycled Polyester", + "pct": 77 + }, + { + "fiber": "Nylon", + "pct": 11 + }, + { + "fiber": "Wool", + "pct": 8 + }, + { + "fiber": "Spandex", + "pct": 4 + } + ], + "care": { + "washing": "machine_wash_gentle", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 3.07, + "breakdown": { + "materials": 2.37, + "manufacturing": 0.18, + "washing": 0.35, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8713.JPG", + "result": { + "parsed": { + "ocr_text": "77% RECYCLED POLYESTER / 11% LYOCELL / 12% SPANDEX MACHINE WASH COLD WITH LIKE COLORS. ONLY NON-CHLORINE BLEACH IF NEEDED. TUMBLE DRY LOW. REMOVE PROMPTLY. COOL IRON IF NEEDED. DO NOT IRON ON LABEL. RN17730 VN1068795 MADE IN NICARAGUA", + "country": "Nicaragua", + "materials": [ + { + "fiber": "Recycled Polyester", + "pct": 77 + }, + { + "fiber": "Lyocell", + "pct": 11 + }, + { + "fiber": "Spandex", + "pct": 12 + } + ], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": "iron_low", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 9.14, + "breakdown": { + "materials": 2.26, + "manufacturing": 0.05, + "washing": 0.35, + "drying": 6.3, + "ironing": 0.18, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Nicaragua", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\IMG_8714.JPG", + "result": { + "parsed": { + "ocr_text": "SHELL: 100% NYLON\nLINING: 100% RECYCLED POLYESTER\nFILLING: 100% RECYCLED POLYESTER\nMACHINE WASH COLD WITH LIKE COLORS. GENTLE\nCYCLE. ONLY NON-CHLORINE BLEACH IF NEEDED.\nTUMBLE DRY LOW. REMOVE PROMPTLY. DO NOT IRON.\nDO NOT DRY CLEAN.", + "country": null, + "materials": [ + { + "fiber": "Nylon", + "pct": 100 + }, + { + "fiber": "Recycled Polyester", + "pct": 100 + }, + { + "fiber": "Recycled Polyester", + "pct": 100 + } + ], + "care": { + "washing": "machine_wash_cold", + "drying": "tumble_dry_low", + "ironing": "do_not_iron", + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 27.48, + "breakdown": { + "materials": 7.35, + "manufacturing": 0.18, + "washing": 1.05, + "drying": 18.9, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "unknown", + "washes_lifetime": 150 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\tag_1.JPG", + "result": { + "parsed": { + "ocr_text": "Made In Guatemala\nFabriqu\u00e9 Au Guatemala\nHergestellt In Guatemala\nVervaardigd In Guatemala\n\u30b0\u30a2\u30c6\u30de\u30e9\u88fd\nHecho En Guatemala\n\n100%Cotton/Coton/\nBaumwolle/Katoen/\u7dbf/\nAlgod\u00f3n", + "country": "Guatemala", + "materials": [ + { + "fiber": "Cotton", + "pct": 100 + } + ], + "care": { + "washing": null, + "drying": null, + "ironing": null, + "dry_cleaning": null + } + }, + "emissions": { + "total_kgco2e": 2.15, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.05, + "washing": 0.35, + "drying": 0, + "ironing": 0, + "dry_cleaning": 0 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Guatemala", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + }, + { + "file": "cropped_tags\\tag_5.JPG", + "result": { + "parsed": { + "ocr_text": "MACHINE WASH COLD WITH LIKE COLOURS, DO NOT BLEACH, DRY FLAT, COOL IRON ONLY IF NEEDED, OR DRY CLEAN LAVER \u00c0 LA MACHINE \u00c0 L'EAU FROIDE AVEC COULEURS SEMBLABLES, NE PAS JAVELISER, S\u00c9CHER \u00c0 PLAT, REPASSAGE DOUX SI N\u00c9CESSAIRE, OU NETTOYER \u00c0 SEC MADE IN VIETNAM", + "country": "Vietnam", + "materials": [], + "care": { + "washing": "machine_wash_cold", + "drying": "lay_flat_to_dry", + "ironing": "iron_low", + "dry_cleaning": "dry_clean" + } + }, + "emissions": { + "total_kgco2e": 3.83, + "breakdown": { + "materials": 1.75, + "manufacturing": 0.16, + "washing": 0.35, + "drying": 0, + "ironing": 0.18, + "dry_cleaning": 1.4 + }, + "assumptions": { + "weight_kg": 0.35, + "origin": "Vietnam", + "washes_lifetime": 50 + } + }, + "benchmark_kgco2e": 10.95, + "benchmark_breakdown": { + "materials": 2.38, + "manufacturing": 0.18, + "washing": 2.1, + "drying": 6.3, + "ironing": 0, + "dry_cleaning": 0 + } + } + } +] diff --git a/scripts/analyze_eval.py b/scripts/analyze_eval.py new file mode 100644 index 0000000..5d10c41 --- /dev/null +++ b/scripts/analyze_eval.py @@ -0,0 +1,291 @@ +#!/usr/bin/env python3 +"""Analyze the EcoTag ground-truth evaluation. + +Two questions: + 1. As more ground-truth examples are added, how do the per-field and overall + precision/recall/F1 scores change for the whole set? (a learning curve) + 2. Are there natural groupings in the data, and do they score similarly? + +This builds directly on score_ground_truth.py: it reuses the same normalization +and per-field scoring so the numbers are consistent with that scorer. +""" + +from __future__ import annotations + +import argparse +import json +import random +import sys +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).resolve().parent)) +import score_ground_truth as sgt # noqa: E402 + +GT_SUFFIX = ".json.gt" + +# The ten examples that existed before this round of labeling, so the +# deterministic learning curve mirrors the real order they were added in. +ORIGINAL_TEN = { + "IMG_8583.JPG", "IMG_8588.JPG", "IMG_8590.JPG", "IMG_8591.JPG", + "IMG_8592.JPG", "IMG_8596.JPG", "IMG_8599.JPG", "IMG_8600.JPG", + "IMG_8601.JPG", "IMG_8602.JPG", +} + +PREMIUM_FIBERS = {"cashmere", "merino", "wool", "silk", "alpaca", "mohair", "angora"} + + +# ---------------------------------------------------------------------------- +# Per-row classifiers (operate on the GT parsed dict) +# ---------------------------------------------------------------------------- +def has_country(parsed: dict) -> bool: + return sgt.normalize_country(parsed.get("country")) is not None + + +def has_materials(parsed: dict) -> bool: + return len(sgt.material_items(parsed)) > 0 + + +def has_care(parsed: dict) -> bool: + care = parsed.get("care") if isinstance(parsed.get("care"), dict) else {} + return any(sgt.normalize_care(care.get(f)) is not None for f in sgt.CARE_FIELDS) + + +def content_type(parsed: dict) -> str: + m, c, o = has_materials(parsed), has_care(parsed), has_country(parsed) + if m and c: + return "materials+care" + if m and not c: + return "materials_only" + if c and not m: + return "care_only" + if o: + return "origin_only" + return "empty" + + +def material_complexity(parsed: dict) -> str: + items = sgt.material_items(parsed) + n = len(items) + if n == 0: + return "none" + fibers = [it["fiber"] for it in items] + if n >= 4 or len(set(fibers)) < len(fibers): + return "multi_part" # duplicate fibers or 4+ entries => garment parts + if n == 1: + return "single_fiber" + return "multi_fiber" + + +def language_group(parsed: dict) -> str: + text = (parsed.get("ocr_text") or "").lower() + origin_markers = ["made in", "fabrique", "fabriqu", "hecho en", "hergestellt", + "prodotto", "fabricado", "gemaakt"] + other_lang_terms = ["coton", "algod", "poliester", "poliéster", "laine", + "soie", "seda", "viscosa", "lana", "polyamide", "baumwolle"] + origin_hits = sum(1 for m in origin_markers if m in text) + if origin_hits >= 2 or any(t in text for t in other_lang_terms): + return "multilingual" + return "monolingual" + + +def fiber_tier(parsed: dict) -> str: + fibers = " ".join(it["fiber"] for it in sgt.material_items(parsed)) + return "premium_fiber" if any(k in fibers for k in PREMIUM_FIBERS) else "commodity_or_none" + + +GROUPINGS = { + "content_type": content_type, + "material_complexity": material_complexity, + "language": language_group, + "fiber_tier": fiber_tier, +} + + +# ---------------------------------------------------------------------------- +# Scoring helpers +# ---------------------------------------------------------------------------- +def score_subset(rows, preds, gt_root: Path, pct_tol: float = 0.0) -> dict: + return sgt.score_rows( + rows=rows, + predictions_by_image=preds, + pred_root=None, + gt_root=gt_root, + gt_suffix=GT_SUFFIX, + pred_suffix=".json", + pct_tolerance=pct_tol, + ) + + +def combine(counts_dicts) -> dict: + c = sgt.Counts() + for d in counts_dicts: + c.tp += d["tp"] + c.fp += d["fp"] + c.fn += d["fn"] + return c.as_dict() + + +def summary(result: dict) -> dict: + """Collapse the 6 fields into country / materials / care + overall.""" + fields = result["fields"] + care = combine([fields[f"care.{f}"] for f in sgt.CARE_FIELDS]) + return { + "images": result["image_count"], + "missing": len(result["missing_predictions"]), + "country": fields["country"], + "materials": fields["materials"], + "care": care, + "overall": result["overall"], + } + + +# ---------------------------------------------------------------------------- +# Learning curves +# ---------------------------------------------------------------------------- +def deterministic_curve(rows, preds, gt_root: Path) -> list[dict]: + """Original ten first, then the rest in name order; cumulative score.""" + originals = [r for r in rows if r["image"] in ORIGINAL_TEN] + rest = [r for r in rows if r["image"] not in ORIGINAL_TEN] + originals.sort(key=lambda r: r["image"]) + rest.sort(key=lambda r: r["image"]) + ordered = originals + rest + + curve = [] + for n in range(1, len(ordered) + 1): + s = summary(score_subset(ordered[:n], preds, gt_root)) + curve.append({ + "n": n, + "added": ordered[n - 1]["image"], + "overall_p": s["overall"]["precision"], + "overall_r": s["overall"]["recall"], + "overall_f1": s["overall"]["f1"], + "country_f1": s["country"]["f1"], + "materials_f1": s["materials"]["f1"], + "care_f1": s["care"]["f1"], + }) + return curve + + +def montecarlo_curve(rows, preds, gt_root: Path, reps: int, step: int, seed: int) -> list[dict]: + """Mean +/- std of overall F1 over `reps` random subsets at each size.""" + rng = random.Random(seed) + n_total = len(rows) + sizes = list(range(step, n_total, step)) + if not sizes or sizes[-1] != n_total: + sizes.append(n_total) + + out = [] + for size in sizes: + f1s, ps, rs = [], [], [] + for _ in range(reps): + sample = rng.sample(rows, size) + o = score_subset(sample, preds, gt_root)["overall"] + f1s.append(o["f1"]); ps.append(o["precision"]); rs.append(o["recall"]) + n = len(f1s) + mean = sum(f1s) / n + var = sum((x - mean) ** 2 for x in f1s) / n + out.append({ + "size": size, + "f1_mean": round(mean, 4), + "f1_std": round(var ** 0.5, 4), + "f1_min": round(min(f1s), 4), + "f1_max": round(max(f1s), 4), + "p_mean": round(sum(ps) / n, 4), + "r_mean": round(sum(rs) / n, 4), + }) + return out + + +def grouping_breakdown(rows, preds, gt_root: Path) -> dict: + out = {} + for name, fn in GROUPINGS.items(): + buckets: dict[str, list] = {} + for r in rows: + buckets.setdefault(fn(r["parsed"]), []).append(r) + out[name] = { + group: summary(score_subset(group_rows, preds, gt_root)) + for group, group_rows in sorted(buckets.items()) + } + return out + + +# ---------------------------------------------------------------------------- +# Printing +# ---------------------------------------------------------------------------- +def fmt_prf(d: dict) -> str: + return f"P {d['precision']:.3f} R {d['recall']:.3f} F1 {d['f1']:.3f}" + + +def print_report(data: dict) -> None: + print("=" * 72) + print(f"EVALUATION ANALYSIS ({data['n_images']} labeled images, " + f"{data['n_missing']} missing predictions)") + print("=" * 72) + + print("\n## Whole-set score\n") + s = data["whole_set"] + for k in ("country", "materials", "care", "overall"): + d = s[k] + print(f" {k:<10} support={d['support']:<4} {fmt_prf(d)}") + + print("\n## Deterministic learning curve (original 10 first, then numeric)\n") + print(f" {'n':>3} {'added':<14} {'ovF1':>6} {'ctryF1':>7} {'matF1':>6} {'careF1':>7}") + curve = data["deterministic_curve"] + milestones = {1, 5, 10, 15, 20, 30, 40, 50, 60, 70, len(curve)} + for row in curve: + if row["n"] in milestones: + print(f" {row['n']:>3} {row['added']:<14} {row['overall_f1']:>6.3f} " + f"{row['country_f1']:>7.3f} {row['materials_f1']:>6.3f} {row['care_f1']:>7.3f}") + + print("\n## Monte-Carlo curve (mean overall F1 over random subsets)\n") + print(f" {'size':>4} {'F1 mean':>8} {'F1 std':>7} {'F1 min':>7} {'F1 max':>7}") + for row in data["montecarlo_curve"]: + print(f" {row['size']:>4} {row['f1_mean']:>8.3f} {row['f1_std']:>7.3f} " + f"{row['f1_min']:>7.3f} {row['f1_max']:>7.3f}") + + print("\n## Groupings\n") + for scheme, groups in data["groupings"].items(): + print(f" [{scheme}]") + for group, s in groups.items(): + o = s["overall"] + print(f" {group:<18} imgs={s['images']:<3} " + f"ovF1={o['f1']:.3f} ctry={s['country']['f1']:.3f} " + f"mat={s['materials']['f1']:.3f} care={s['care']['f1']:.3f}") + print() + + +def main(argv=None) -> int: + p = argparse.ArgumentParser(description=__doc__) + p.add_argument("--ground-truth-dir", default="cropped_tags") + p.add_argument("--predictions-file", required=True) + p.add_argument("--reps", type=int, default=300, help="Monte-Carlo reps per size") + p.add_argument("--step", type=int, default=5, help="Monte-Carlo size step") + p.add_argument("--seed", type=int, default=0) + p.add_argument("--pct-tolerance", type=float, default=0.0) + p.add_argument("--json-out", help="Write full results JSON here") + args = p.parse_args(argv if argv is not None else sys.argv[1:]) + + gt_root = Path(args.ground_truth_dir) + rows = sgt.load_ground_truths(gt_root, GT_SUFFIX) + preds = sgt.load_predictions_file(Path(args.predictions_file)) + + whole = score_subset(rows, preds, gt_root, args.pct_tolerance) + data = { + "n_images": len(rows), + "n_missing": len(whole["missing_predictions"]), + "missing_predictions": whole["missing_predictions"], + "whole_set": summary(whole), + "deterministic_curve": deterministic_curve(rows, preds, gt_root), + "montecarlo_curve": montecarlo_curve(rows, preds, gt_root, args.reps, args.step, args.seed), + "groupings": grouping_breakdown(rows, preds, gt_root), + } + + print_report(data) + if args.json_out: + Path(args.json_out).write_text(json.dumps(data, indent=2), encoding="utf-8") + print(f"\nWrote {args.json_out}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/tag.py b/scripts/tag.py index 673149d..d8032f2 100755 --- a/scripts/tag.py +++ b/scripts/tag.py @@ -117,15 +117,22 @@ def main(): err = e.response.json() print(f" Error: {err['error']['code']}: {err['error']['message']}", file=sys.stderr) except Exception: + err = {"error": {"code": f"HTTP_{e.response.status_code}", "message": str(e)}} print(f" {e}", file=sys.stderr) + if args.json_output: + results.append({"file": str(path), "result": err}) errors += 1 except requests.ConnectionError: print("connection refused", file=progress_stream) print(f" Is the backend running at {args.url}?", file=sys.stderr) + if args.json_output: + results.append({"file": str(path), "result": {"error": {"code": "CONNECTION_REFUSED", "message": f"no backend at {args.url}"}}}) errors += 1 except Exception as e: print(f"failed", file=progress_stream) print(f" {e}", file=sys.stderr) + if args.json_output: + results.append({"file": str(path), "result": {"error": {"code": "REQUEST_FAILED", "message": str(e)}}}) errors += 1 if args.json_output and results: