--- title: Cafeteria Multimodal Menu Classifier emoji: ๐Ÿฑ colorFrom: pink colorTo: purple sdk: gradio sdk_version: "3.41.2" app_file: app.py pinned: false --- # ํ•™์‹ ์ด๋ฏธ์ง€ ๊ธฐ๋ฐ˜ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๋ฉ”๋‰ด ๋ถ„์„ ์›น์•ฑ ConvNeXt ยท CLIP ยท BLIP ๊ธฐ๋ฐ˜ ์ž๋™ ํ•™์‹ ๋ถ„๋ฅ˜ & ์บก์…˜ ์ƒ์„ฑ & ์นผ๋กœ๋ฆฌ ๋ถ„์„ ์‹œ์Šคํ…œ ๋ณธ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํ•™์‹(๊ตฌ๋‚ด์‹๋‹น) ๋ฉ”๋‰ด ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜๋ฉด, ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜ ๋ชจ๋ธ๊ณผ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๋ชจ๋ธ์„ ํ™œ์šฉํ•˜์—ฌ ๋ฉ”๋‰ด๋ฅผ ์ž๋™์œผ๋กœ ์˜ˆ์ธกํ•˜๊ณ  ์นผ๋กœ๋ฆฌ, ์œ ์‚ฌ ๋ฉ”๋‰ด, ์ด๋ฏธ์ง€ ์„ค๋ช… ๋“ฑ์„ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. --- ## ํ”„๋กœ์ ํŠธ ๊ฐœ์š” ์ด ์‹œ์Šคํ…œ์€ ์ด 3๊ฐœ์˜ AI ๋ชจ๋ธ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์™„์„ฑ๋œ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๋ถ„์„ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ### 1) ConvNeXt-Base - 17๊ฐœ์˜ โ€œ๋ณ‘ํ•ฉ ๋Œ€๋ถ„๋ฅ˜โ€ ๋ฉ”๋‰ด๋ฅผ ๋ถ„๋ฅ˜ - ํ•™์‹ ์ด๋ฏธ์ง€ 5,120์žฅ์œผ๋กœ ์ง์ ‘ ์žฌํ•™์Šต - Top-1 ๋ฐ Top-3 ํ™•๋ฅ  ์ œ๊ณต ### 2) CLIP - ํ…์ŠคํŠธ ์ž„๋ฒ ๋”ฉ๊ณผ ์ด๋ฏธ์ง€ ์ž„๋ฒ ๋”ฉ ๋น„๊ต - ๋Œ€๋ถ„๋ฅ˜ ๊ธฐ์ค€ ์œ ์‚ฌ ๋ฉ”๋‰ด Top-3 ์ถ”์ฒœ ### 3) BLIP - ์ด๋ฏธ์ง€ ์บก์…˜ ์ƒ์„ฑ (์˜๋ฌธ ์„ค๋ช… ์ œ๊ณต) ### 4) ์นผ๋กœ๋ฆฌ + ํ™œ๋™๋Ÿ‰ ๊ธฐ๋ฐ˜ ๋งž์ถค ์ฝ”๋ฉ˜ํŠธ - ์„ธ๋ถ€ ๋ฉ”๋‰ด๋ณ„ ๋Œ€๋žต์ ์ธ ์นผ๋กœ๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ์นผ๋กœ๋ฆฌ ์ถ”์ •์น˜๋Š” ์‹์•ฝ์ฒ˜ยท๊ตญ๊ฐ€ํ‘œ์ค€์‹ํ’ˆ์„ฑ๋ถ„ DB(Korean Food Composition Database)์˜ โ€˜์œ ์‚ฌ ์Œ์‹๊ตฐโ€™ 1์ธ๋ถ„ ์—ด๋Ÿ‰ ๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฐ์ถœ๋˜๋ฉฐ, ์‹ค์ œ ํ•™์‹ ๋ฉ”๋‰ด์™€ ๋™์ผํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•œ ์˜ค๋Š˜์˜ ํ™œ๋™๋Ÿ‰(๊ฑฐ์˜ ์•ˆ ์›€์ง์ž„ / ๋ณดํ†ต ํ™œ๋™ / ๋งŽ์ด ์›€์ง์ž„)์— ๋”ฐ๋ผ โ€œ์ ์ ˆํ•ด์š” / ์กฐ๊ธˆ ๋งŽ์•„์š” / ์กฐ๊ธˆ ์ ์–ด์š”โ€ ๋“ฑ์˜ ๊ฐ„๋‹จํ•œ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. - ํ•ด๋‹น ์ฝ”๋ฉ˜ํŠธ๋Š” ๊ฑด๊ฐ•ยท์˜ํ•™์  ์กฐ์–ธ์ด ์•„๋‹ˆ๋ฉฐ ์ฐธ๊ณ ์šฉ์œผ๋กœ๋งŒ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. --- ## ๊ธฐ๋Šฅ ์š”์•ฝ | ๊ธฐ๋Šฅ | ์„ค๋ช… | |------|------| | ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ | ํ•™์‹ ์‚ฌ์ง„ ์ž…๋ ฅ | | ConvNeXt ๋ฉ”๋‰ด ๋ถ„๋ฅ˜ | 17๊ฐœ ๋ณ‘ํ•ฉ ํด๋ž˜์Šค ์ค‘ 1๊ฐœ ์˜ˆ์ธก | | ์„ธ๋ถ€ ๋ฉ”๋‰ด ์„ ํƒ | 27๊ฐœ ์„ธ๋ถ€ ๋ฉ”๋‰ด ์ค‘ ์„ ํƒ ๊ฐ€๋Šฅ | | ์นผ๋กœ๋ฆฌ ๋ถ„์„ | ์‹์•ฝ์ฒ˜ยท๊ตญ๊ฐ€ํ‘œ์ค€์‹ํ’ˆ์„ฑ๋ถ„ DB ๊ธฐ๋ฐ˜ โ€˜๋น„์Šทํ•œ ์Œ์‹โ€™์˜ 1์ธ๋ถ„ ์—ด๋Ÿ‰์„ ๋ฐ”ํƒ•์œผ๋กœ ํ•™์‹ ๋ฉ”๋‰ด์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฐ’์œผ๋กœ ์ถ”์ •ํ•œ ์นผ๋กœ๋ฆฌ ์ œ๊ณต | | ํ™œ๋™๋Ÿ‰ ๊ธฐ๋ฐ˜ ํ”ผ๋“œ๋ฐฑ | ์˜ค๋Š˜ ํ™œ๋™๋Ÿ‰ ๊ธฐ์ค€ "์ ์ ˆ/๊ณผํ•จ/๋ถ€์กฑ" ํ‘œ์‹œ | | CLIP ์œ ์‚ฌ ๋ฉ”๋‰ด | ์œ ์‚ฌ ๋ฉ”๋‰ด Top-3 ์ถ”์ฒœ | | BLIP ์บก์…˜ | ์ด๋ฏธ์ง€ ์บก์…˜ ์ƒ์„ฑ (์˜๋ฌธ) | --- ## ์‚ฌ์šฉํ•˜๋Š” AI ๋ชจ๋ธ - ConvNeXt-Base ํ•™์Šต ์™„๋ฃŒ๋œ 17ํด๋ž˜์Šค ์Œ์‹ ๋ถ„๋ฅ˜ ๋ชจ๋ธ - CLIP ํ…์ŠคํŠธ ์œ ์‚ฌ๋„ ๊ธฐ๋ฐ˜ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๋ถ„๋ฅ˜ - BLIP ์ด๋ฏธ์ง€ ์บก์…˜ ์ƒ์„ฑ --- ## ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ โ”œโ”€โ”€ app.py # Gradio ์›น์•ฑ ๋ฉ”์ธ ์ฝ”๋“œ โ”œโ”€โ”€ requirements.txt # ํ•„์š”ํ•œ Python ํŒจํ‚ค์ง€ โ”œโ”€โ”€ models/ โ”‚ โ””โ”€โ”€ convnext_base_merged_ema.pth # ํ•™์Šต๋œ ConvNeXt ๊ฐ€์ค‘์น˜ โ”œโ”€โ”€ multimodal_assets/ โ”‚ โ””โ”€โ”€ clip_text_embeds.pt # CLIP ํ…์ŠคํŠธ ์ž„๋ฒ ๋”ฉ โ””โ”€โ”€ system_card.md # ๋ชจ๋ธยท์‹œ์Šคํ…œ ์„ค๋ช… ๋ฌธ์„œ --- ## ์‚ฌ์šฉ ๋ฐฉ๋ฒ• 1. ํ•™์‹ ์‚ฌ์ง„ ์—…๋กœ๋“œ 2. ํ™œ๋™๋Ÿ‰(๊ฑฐ์˜ ์•ˆ ์›€์ง์ž„ / ๋ณดํ†ต / ๋งŽ์ด ์›€์ง์ž„) ์„ ํƒ 3. ์„ธ๋ถ€ ๋ฉ”๋‰ด ์ง์ ‘ ์„ ํƒ ๋˜๋Š” โ€œ๋ชจ๋ธ์— ๋งก๊ธฐ๊ธฐโ€ ์œ ์ง€ 4. โ€œ๋ถ„์„ ์‹คํ–‰โ€ ๋ฒ„ํŠผ ํด๋ฆญ 5. ๊ฒฐ๊ณผ ํ™•์ธ --- ## ์ œํ•œ ์‚ฌํ•ญ - ์นผ๋กœ๋ฆฌ ์ •๋ณด๋Š” ์ฐธ๊ณ ์šฉ์ด๋ฉฐ ์‹ค์ œ ์Œ์‹๊ณผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - BLIP ์บก์…˜์€ ์ด๋ฏธ์ง€ ํŠน์„ฑ์— ๋”ฐ๋ผ ๋ถ€์ •ํ™•ํ•˜๊ฑฐ๋‚˜ ๋‹จ์ˆœํ•œ ์„ค๋ช…์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ํ•™์‹ ์ด๋ฏธ์ง€ ์ค‘์‹ฌ์œผ๋กœ ํ•™์Šต๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜ ์Œ์‹ ์ด๋ฏธ์ง€์—๋Š” ์ •ํ™•๋„๊ฐ€ ๋‚ฎ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --- ## ๋ผ์ด์„ ์Šค & ์ €์ž‘๊ถŒ - ConvNeXt: MIT - CLIP: OpenAI License - BLIP: BSD - ํ•™์‹ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ์…‹: ์ง์ ‘ ์ˆ˜์ง‘ (๊ฐœ์ธ์ •๋ณด ์—†์Œ) - ๋ณธ ํ”„๋กœ์ ํŠธ๋Š” ๊ต์œกยท์—ฐ๊ตฌ ๋ชฉ์ ์ž…๋‹ˆ๋‹ค. --- ## ์‹œ์Šคํ…œ ์นด๋“œ (System Card) ๋ณธ ์›น ๋ฐ๋ชจ๋Š” ํ•™์‹ ์Šค์บ๋„ˆ ์‹œ์Šคํ…œ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ, ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ƒ์„ธ ์„ค๋ช…๊ณผ ์„ค๊ณ„ ๋‚ด์šฉ์€ ์•„๋ž˜ ์‹œ์Šคํ…œ ์นด๋“œ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ์นด๋“œ: https://huggingface.co/simkyuri/cafeteria-food-scanner-system Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference