diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml new file mode 100644 index 000000000..cbf7ba57b --- /dev/null +++ b/.github/workflows/ci-cd.yml @@ -0,0 +1,80 @@ +name: rushWash 학과 서버 배포 파이프라인 + +on: + push: + branches: [ "main", "deploy-dev" ] + +jobs: + deploy: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + + - name: Setup Gradle Cache + uses: actions/cache@v4 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + + - name: JDK 17 설치 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + + - name: frontend 로 front 파일 복사 (변경된 파일만) + run: | + rsync -a --delete front/fe-rw/ back/rushWash/src/main/frontend/ + + - name: Grant permission to Gradle + run: chmod +x back/rushWash/gradlew + working-directory: . + env: + CI: false + + - name: application.yml 파일 설정 + run: | + mkdir -p back/rushWash/src/main/resources + printf "%s" "${{ secrets.APPLICATION_YML }}" > back/rushWash/src/main/resources/application.yml + + - name: Build jar + run: ./gradlew build -x test + working-directory: back/rushWash + + - name: Setup SSH agent + uses: webfactory/ssh-agent@v0.5.4 + with: + ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} +# 학과서버 닫음 +# - name: 배포 back 디렉토리 만들기 +# run: ssh -o StrictHostKeyChecking=no -p 22 t25119@ceprj.gachon.ac.kr "mkdir -p /home/t25119/v109.src/back" +# +# - name: jar 학과 서버로 복사 +# run: scp -o StrictHostKeyChecking=no -P 22 back/rushWash/build/libs/rushWash-0.0.1-SNAPSHOT.jar t25119@ceprj.gachon.ac.kr:/home/t25119/v109.src/back +# +# - name: ai 폴더 동기화 (변경된 파일만) +# run: | +# rsync -avz --delete \ +# -e "ssh -o StrictHostKeyChecking=no -p 22" \ +# ai/ t25119@ceprj.gachon.ac.kr:/home/t25119/v109.src/ai/ +# +# - name: 서버 실행 +# run: | +# ssh -o StrictHostKeyChecking=no -p 22 t25119@ceprj.gachon.ac.kr " +# if [ -f /home/t25119/v109.src/app.pid ]; then +# kill \$(cat /home/t25119/v109.src/app.pid) || true +# fi +# +# # 🔹 test.py 실행 (서버 실행 전에) +# cd /home/t25119/v109.src/ai && python3 test.py +# +# # 🔹 백엔드 실행 +# nohup java -jar /home/t25119/v109.src/back/rushWash-0.0.1-SNAPSHOT.jar > /home/t25119/v109.src/app.log 2>&1 & +# echo \$! > /home/t25119/v109.src/app.pid +# " diff --git a/.gitignore b/.gitignore index c18c19a92..1c7c1b776 100644 --- a/.gitignore +++ b/.gitignore @@ -36,4 +36,11 @@ out/ ### VS Code ### .vscode/ *.yml +!.github/workflows/*.yml +### python ### +venv +stain_input +symbol_input +llm +runs \ No newline at end of file diff --git a/ai/data/stain/data.yaml b/ai/data/stain/data.yaml new file mode 100644 index 000000000..37ca60f78 --- /dev/null +++ b/ai/data/stain/data.yaml @@ -0,0 +1,6 @@ +train: /home/t25119/v109.src/ai/data/stain/train/images +val: /home/t25119/v109.src/ai/data/stain/val/images +test: /home/t25119/v109.src/ai/data/stain/test/images + +nc: 9 +names: [blood, coffee, earth, ink, kimchi, lipstick, mustard, oil, wine] diff --git a/ai/data/stain/test/images/blood_0001.jpg b/ai/data/stain/test/images/blood_0001.jpg new file mode 100644 index 000000000..4d532bb19 Binary files /dev/null and b/ai/data/stain/test/images/blood_0001.jpg differ diff --git a/ai/data/stain/test/images/blood_0002.jpg b/ai/data/stain/test/images/blood_0002.jpg new file mode 100644 index 000000000..4b5b80efb Binary files /dev/null and b/ai/data/stain/test/images/blood_0002.jpg differ diff --git a/ai/data/stain/test/images/blood_0003.jpg b/ai/data/stain/test/images/blood_0003.jpg new file mode 100644 index 000000000..c08e9c41a Binary files /dev/null and b/ai/data/stain/test/images/blood_0003.jpg differ diff --git a/ai/data/stain/test/images/blood_0004.jpg b/ai/data/stain/test/images/blood_0004.jpg new file mode 100644 index 000000000..e70f67e02 Binary files /dev/null and b/ai/data/stain/test/images/blood_0004.jpg differ diff --git a/ai/data/stain/test/images/blood_0005.jpg b/ai/data/stain/test/images/blood_0005.jpg new file mode 100644 index 000000000..a858d07ca Binary files /dev/null and b/ai/data/stain/test/images/blood_0005.jpg differ diff --git a/ai/data/stain/test/images/blood_0006.jpg b/ai/data/stain/test/images/blood_0006.jpg new file mode 100644 index 000000000..f7cdf48f5 Binary files /dev/null and b/ai/data/stain/test/images/blood_0006.jpg differ diff --git a/ai/data/stain/test/images/blood_0007.jpg b/ai/data/stain/test/images/blood_0007.jpg new file mode 100644 index 000000000..fb0825f3c Binary files /dev/null and b/ai/data/stain/test/images/blood_0007.jpg differ diff --git a/ai/data/stain/test/images/blood_0008.jpg b/ai/data/stain/test/images/blood_0008.jpg new file mode 100644 index 000000000..bf6ac0ef0 Binary files /dev/null and b/ai/data/stain/test/images/blood_0008.jpg differ diff --git a/ai/data/stain/test/images/blood_0009.jpg b/ai/data/stain/test/images/blood_0009.jpg new file mode 100644 index 000000000..510ac2ca0 Binary files /dev/null and b/ai/data/stain/test/images/blood_0009.jpg differ diff --git a/ai/data/stain/test/images/blood_0010.jpg b/ai/data/stain/test/images/blood_0010.jpg new file mode 100644 index 000000000..db383b62a Binary files /dev/null and b/ai/data/stain/test/images/blood_0010.jpg differ diff --git a/ai/data/stain/test/images/blood_0011.jpg b/ai/data/stain/test/images/blood_0011.jpg new file mode 100644 index 000000000..4b3f77f75 Binary files /dev/null and b/ai/data/stain/test/images/blood_0011.jpg differ diff --git a/ai/data/stain/test/images/blood_0012.jpg b/ai/data/stain/test/images/blood_0012.jpg new file mode 100644 index 000000000..ed3cd44fc Binary files /dev/null and b/ai/data/stain/test/images/blood_0012.jpg differ diff --git a/ai/data/stain/test/images/blood_0013.jpg b/ai/data/stain/test/images/blood_0013.jpg new file mode 100644 index 000000000..f0b0b223b Binary files /dev/null and b/ai/data/stain/test/images/blood_0013.jpg differ diff --git a/ai/data/stain/test/images/blood_0014.jpg b/ai/data/stain/test/images/blood_0014.jpg new file mode 100644 index 000000000..6448e7e2f Binary files /dev/null and b/ai/data/stain/test/images/blood_0014.jpg differ diff --git a/ai/data/stain/test/images/blood_0015.jpg b/ai/data/stain/test/images/blood_0015.jpg new file mode 100644 index 000000000..bd2f82d93 Binary files /dev/null and b/ai/data/stain/test/images/blood_0015.jpg differ diff --git a/ai/data/stain/test/images/coffee_0001.jpg b/ai/data/stain/test/images/coffee_0001.jpg new file mode 100644 index 000000000..23ff1c90d Binary files /dev/null and b/ai/data/stain/test/images/coffee_0001.jpg differ diff --git a/ai/data/stain/test/images/coffee_0002.jpg b/ai/data/stain/test/images/coffee_0002.jpg new file mode 100644 index 000000000..ca64fc15e Binary files /dev/null and b/ai/data/stain/test/images/coffee_0002.jpg differ diff --git a/ai/data/stain/test/images/coffee_0003.jpg b/ai/data/stain/test/images/coffee_0003.jpg new file mode 100644 index 000000000..31f631fa3 Binary files /dev/null and b/ai/data/stain/test/images/coffee_0003.jpg differ diff --git a/ai/data/stain/test/images/coffee_0004.jpg b/ai/data/stain/test/images/coffee_0004.jpg new file mode 100644 index 000000000..ea639d8a4 Binary files /dev/null and b/ai/data/stain/test/images/coffee_0004.jpg differ diff --git a/ai/data/stain/test/images/coffee_0005.jpg b/ai/data/stain/test/images/coffee_0005.jpg new file mode 100644 index 000000000..ff59a25a6 Binary files /dev/null and b/ai/data/stain/test/images/coffee_0005.jpg differ diff --git a/ai/data/stain/test/images/coffee_0006.jpg b/ai/data/stain/test/images/coffee_0006.jpg new file mode 100644 index 000000000..4634446dd Binary files /dev/null and b/ai/data/stain/test/images/coffee_0006.jpg differ diff --git a/ai/data/stain/test/images/coffee_0007.jpg b/ai/data/stain/test/images/coffee_0007.jpg new file mode 100644 index 000000000..38e09878f Binary files /dev/null and b/ai/data/stain/test/images/coffee_0007.jpg differ diff --git a/ai/data/stain/test/images/coffee_0008.jpg b/ai/data/stain/test/images/coffee_0008.jpg new file mode 100644 index 000000000..f379b5897 Binary files /dev/null and b/ai/data/stain/test/images/coffee_0008.jpg differ diff --git a/ai/data/stain/test/images/coffee_0009.jpg b/ai/data/stain/test/images/coffee_0009.jpg new file mode 100644 index 000000000..c1569323f Binary files /dev/null and b/ai/data/stain/test/images/coffee_0009.jpg differ diff --git a/ai/data/stain/test/images/coffee_0010.jpg b/ai/data/stain/test/images/coffee_0010.jpg new file mode 100644 index 000000000..999cdfe3b Binary files /dev/null and b/ai/data/stain/test/images/coffee_0010.jpg differ diff --git a/ai/data/stain/test/images/coffee_0011.jpg b/ai/data/stain/test/images/coffee_0011.jpg new file mode 100644 index 000000000..96a24b2c9 Binary files /dev/null and b/ai/data/stain/test/images/coffee_0011.jpg differ diff --git a/ai/data/stain/test/images/coffee_0012.jpg b/ai/data/stain/test/images/coffee_0012.jpg new file mode 100644 index 000000000..e1f83e635 Binary files /dev/null and b/ai/data/stain/test/images/coffee_0012.jpg differ diff --git a/ai/data/stain/test/images/coffee_0013.jpg b/ai/data/stain/test/images/coffee_0013.jpg new file mode 100644 index 000000000..e29daa462 Binary files /dev/null and b/ai/data/stain/test/images/coffee_0013.jpg differ diff --git a/ai/data/stain/test/images/coffee_0014.jpg b/ai/data/stain/test/images/coffee_0014.jpg new file mode 100644 index 000000000..71edbc364 Binary files /dev/null and b/ai/data/stain/test/images/coffee_0014.jpg differ diff --git a/ai/data/stain/test/images/coffee_0015.jpg b/ai/data/stain/test/images/coffee_0015.jpg new file mode 100644 index 000000000..de85fca1f Binary files /dev/null and b/ai/data/stain/test/images/coffee_0015.jpg differ diff --git a/ai/data/stain/test/images/coffee_0016.jpg b/ai/data/stain/test/images/coffee_0016.jpg new file mode 100644 index 000000000..1ae8290a7 Binary files /dev/null and b/ai/data/stain/test/images/coffee_0016.jpg differ diff --git a/ai/data/stain/test/images/coffee_0017.jpg b/ai/data/stain/test/images/coffee_0017.jpg new file mode 100644 index 000000000..d756a477d Binary files /dev/null and b/ai/data/stain/test/images/coffee_0017.jpg differ diff --git a/ai/data/stain/test/images/coffee_0018.jpg b/ai/data/stain/test/images/coffee_0018.jpg new file mode 100644 index 000000000..8dddcc7e4 Binary files /dev/null and b/ai/data/stain/test/images/coffee_0018.jpg differ diff --git a/ai/data/stain/test/images/earth_0001.jpg b/ai/data/stain/test/images/earth_0001.jpg new file mode 100644 index 000000000..35c7eebf2 Binary files /dev/null and b/ai/data/stain/test/images/earth_0001.jpg differ diff --git a/ai/data/stain/test/images/earth_0002.jpg b/ai/data/stain/test/images/earth_0002.jpg new file mode 100644 index 000000000..3171d5724 Binary files /dev/null and b/ai/data/stain/test/images/earth_0002.jpg differ diff --git a/ai/data/stain/test/images/earth_0003.jpg b/ai/data/stain/test/images/earth_0003.jpg new file mode 100644 index 000000000..5b14e2b68 Binary files /dev/null and b/ai/data/stain/test/images/earth_0003.jpg differ diff --git a/ai/data/stain/test/images/earth_0004.jpg b/ai/data/stain/test/images/earth_0004.jpg new file mode 100644 index 000000000..70440a86f Binary files /dev/null and b/ai/data/stain/test/images/earth_0004.jpg differ diff --git a/ai/data/stain/test/images/earth_0005.jpg b/ai/data/stain/test/images/earth_0005.jpg new file mode 100644 index 000000000..e90b1790a Binary files /dev/null and b/ai/data/stain/test/images/earth_0005.jpg differ diff --git a/ai/data/stain/test/images/earth_0006.jpg b/ai/data/stain/test/images/earth_0006.jpg new file mode 100644 index 000000000..91d774225 Binary files /dev/null and b/ai/data/stain/test/images/earth_0006.jpg differ diff --git a/ai/data/stain/test/images/earth_0008.jpg b/ai/data/stain/test/images/earth_0008.jpg new file mode 100644 index 000000000..1a4a14a26 Binary files /dev/null and b/ai/data/stain/test/images/earth_0008.jpg differ diff --git a/ai/data/stain/test/images/earth_0009.jpg b/ai/data/stain/test/images/earth_0009.jpg new file mode 100644 index 000000000..5186812f6 Binary files /dev/null and b/ai/data/stain/test/images/earth_0009.jpg differ diff --git a/ai/data/stain/test/images/earth_0010.jpg b/ai/data/stain/test/images/earth_0010.jpg new file mode 100644 index 000000000..9dc8031c8 Binary files /dev/null and b/ai/data/stain/test/images/earth_0010.jpg differ diff --git a/ai/data/stain/test/images/earth_0011.jpg b/ai/data/stain/test/images/earth_0011.jpg new file mode 100644 index 000000000..73db2884d Binary files /dev/null and b/ai/data/stain/test/images/earth_0011.jpg differ diff --git a/ai/data/stain/test/images/earth_0012.jpg b/ai/data/stain/test/images/earth_0012.jpg new file mode 100644 index 000000000..f2d43c28e Binary files /dev/null and b/ai/data/stain/test/images/earth_0012.jpg differ diff --git a/ai/data/stain/test/images/earth_0013.jpg b/ai/data/stain/test/images/earth_0013.jpg new file mode 100644 index 000000000..2869f8ae9 Binary files /dev/null and b/ai/data/stain/test/images/earth_0013.jpg differ diff --git a/ai/data/stain/test/images/earth_0014.jpg b/ai/data/stain/test/images/earth_0014.jpg new file mode 100644 index 000000000..eb12140df Binary files /dev/null and b/ai/data/stain/test/images/earth_0014.jpg differ diff --git a/ai/data/stain/test/images/earth_0015.jpg b/ai/data/stain/test/images/earth_0015.jpg new file mode 100644 index 000000000..d3a74bc59 Binary files /dev/null and b/ai/data/stain/test/images/earth_0015.jpg differ diff --git a/ai/data/stain/test/images/ink_0001.jpg b/ai/data/stain/test/images/ink_0001.jpg new file mode 100644 index 000000000..6a483ab9b Binary files /dev/null and b/ai/data/stain/test/images/ink_0001.jpg differ diff --git a/ai/data/stain/test/images/ink_0002.jpg b/ai/data/stain/test/images/ink_0002.jpg new file mode 100644 index 000000000..67ea9a68b Binary files /dev/null and b/ai/data/stain/test/images/ink_0002.jpg differ diff --git a/ai/data/stain/test/images/ink_0003.jpg b/ai/data/stain/test/images/ink_0003.jpg new file mode 100644 index 000000000..c900b0669 Binary files /dev/null and b/ai/data/stain/test/images/ink_0003.jpg differ diff --git a/ai/data/stain/test/images/ink_0004.jpg b/ai/data/stain/test/images/ink_0004.jpg new file mode 100644 index 000000000..681bee4a0 Binary files /dev/null and b/ai/data/stain/test/images/ink_0004.jpg differ diff --git a/ai/data/stain/test/images/ink_0005.jpg b/ai/data/stain/test/images/ink_0005.jpg new file mode 100644 index 000000000..dcc70b012 Binary files /dev/null and b/ai/data/stain/test/images/ink_0005.jpg differ diff --git a/ai/data/stain/test/images/ink_0006.jpg b/ai/data/stain/test/images/ink_0006.jpg new file mode 100644 index 000000000..03e89fdd6 Binary files /dev/null and b/ai/data/stain/test/images/ink_0006.jpg differ diff --git a/ai/data/stain/test/images/ink_0007.jpg b/ai/data/stain/test/images/ink_0007.jpg new file mode 100644 index 000000000..6a12c083f Binary files /dev/null and b/ai/data/stain/test/images/ink_0007.jpg differ diff --git a/ai/data/stain/test/images/ink_0008.jpg b/ai/data/stain/test/images/ink_0008.jpg new file mode 100644 index 000000000..84558c37f Binary files /dev/null and b/ai/data/stain/test/images/ink_0008.jpg differ diff --git a/ai/data/stain/test/images/ink_0009.jpg b/ai/data/stain/test/images/ink_0009.jpg new file mode 100644 index 000000000..7ff1b7fdb Binary files /dev/null and b/ai/data/stain/test/images/ink_0009.jpg differ diff --git a/ai/data/stain/test/images/ink_0010.jpg b/ai/data/stain/test/images/ink_0010.jpg new file mode 100644 index 000000000..cf62f68a3 Binary files /dev/null and b/ai/data/stain/test/images/ink_0010.jpg differ diff --git a/ai/data/stain/test/images/ink_0011.jpg b/ai/data/stain/test/images/ink_0011.jpg new file mode 100644 index 000000000..15c43830c Binary files /dev/null and b/ai/data/stain/test/images/ink_0011.jpg differ diff --git a/ai/data/stain/test/images/ink_0012.jpg b/ai/data/stain/test/images/ink_0012.jpg new file mode 100644 index 000000000..ea988d3eb Binary files /dev/null and b/ai/data/stain/test/images/ink_0012.jpg differ diff --git a/ai/data/stain/test/images/ink_0013.jpg b/ai/data/stain/test/images/ink_0013.jpg new file mode 100644 index 000000000..4e53db5b1 Binary files /dev/null and b/ai/data/stain/test/images/ink_0013.jpg differ diff --git a/ai/data/stain/test/images/ink_0014.jpg b/ai/data/stain/test/images/ink_0014.jpg new file mode 100644 index 000000000..1a379677d Binary files /dev/null and b/ai/data/stain/test/images/ink_0014.jpg differ diff --git a/ai/data/stain/test/images/ink_0015.jpg b/ai/data/stain/test/images/ink_0015.jpg new file mode 100644 index 000000000..a096f66ea Binary files /dev/null and b/ai/data/stain/test/images/ink_0015.jpg differ diff --git a/ai/data/stain/test/images/kimchi_0001.jpg b/ai/data/stain/test/images/kimchi_0001.jpg new file mode 100644 index 000000000..fe6144a35 Binary files /dev/null and b/ai/data/stain/test/images/kimchi_0001.jpg differ diff --git a/ai/data/stain/test/images/kimchi_0002.jpg b/ai/data/stain/test/images/kimchi_0002.jpg new file mode 100644 index 000000000..702b40291 Binary files /dev/null and b/ai/data/stain/test/images/kimchi_0002.jpg differ diff --git a/ai/data/stain/test/images/kimchi_0003.jpg b/ai/data/stain/test/images/kimchi_0003.jpg new file mode 100644 index 000000000..8fce2966e Binary files /dev/null and b/ai/data/stain/test/images/kimchi_0003.jpg differ diff --git a/ai/data/stain/test/images/kimchi_0004.jpg b/ai/data/stain/test/images/kimchi_0004.jpg new file mode 100644 index 000000000..4ac5aaa7f Binary files /dev/null and b/ai/data/stain/test/images/kimchi_0004.jpg differ diff --git a/ai/data/stain/test/images/kimchi_0005.jpg b/ai/data/stain/test/images/kimchi_0005.jpg new file mode 100644 index 000000000..4513b75af Binary files /dev/null and b/ai/data/stain/test/images/kimchi_0005.jpg differ diff --git a/ai/data/stain/test/images/kimchi_0006.jpg b/ai/data/stain/test/images/kimchi_0006.jpg new file mode 100644 index 000000000..4f27af95e Binary files /dev/null and b/ai/data/stain/test/images/kimchi_0006.jpg differ diff --git a/ai/data/stain/test/images/kimchi_0007.jpg b/ai/data/stain/test/images/kimchi_0007.jpg new file mode 100644 index 000000000..3de777627 Binary files /dev/null and b/ai/data/stain/test/images/kimchi_0007.jpg differ diff --git a/ai/data/stain/test/images/kimchi_0008.jpg b/ai/data/stain/test/images/kimchi_0008.jpg new file mode 100644 index 000000000..434363e70 Binary files /dev/null and b/ai/data/stain/test/images/kimchi_0008.jpg differ diff --git a/ai/data/stain/test/images/kimchi_0009.jpg b/ai/data/stain/test/images/kimchi_0009.jpg new file mode 100644 index 000000000..5fc94a20a Binary files /dev/null and b/ai/data/stain/test/images/kimchi_0009.jpg differ diff --git a/ai/data/stain/test/images/kimchi_0010.jpg b/ai/data/stain/test/images/kimchi_0010.jpg new file mode 100644 index 000000000..f223f5e92 Binary files /dev/null and b/ai/data/stain/test/images/kimchi_0010.jpg differ diff --git a/ai/data/stain/test/images/kimchi_0011.jpg b/ai/data/stain/test/images/kimchi_0011.jpg new file mode 100644 index 000000000..39a8f551b Binary files /dev/null and b/ai/data/stain/test/images/kimchi_0011.jpg differ diff --git a/ai/data/stain/test/images/kimchi_0012.jpg b/ai/data/stain/test/images/kimchi_0012.jpg new file mode 100644 index 000000000..3b35e0ac7 Binary files /dev/null and b/ai/data/stain/test/images/kimchi_0012.jpg differ diff --git a/ai/data/stain/test/images/kimchi_0013.jpg b/ai/data/stain/test/images/kimchi_0013.jpg new file mode 100644 index 000000000..2b5144057 Binary files /dev/null and b/ai/data/stain/test/images/kimchi_0013.jpg differ diff --git a/ai/data/stain/test/images/kimchi_0014.jpg b/ai/data/stain/test/images/kimchi_0014.jpg new file mode 100644 index 000000000..b4c8e74b3 Binary files /dev/null and b/ai/data/stain/test/images/kimchi_0014.jpg differ diff --git a/ai/data/stain/test/images/lipstick_0001.jpg b/ai/data/stain/test/images/lipstick_0001.jpg new file mode 100644 index 000000000..1c873203e Binary files /dev/null and b/ai/data/stain/test/images/lipstick_0001.jpg differ diff --git a/ai/data/stain/test/images/lipstick_0003.jpg b/ai/data/stain/test/images/lipstick_0003.jpg new file mode 100644 index 000000000..56233fb0e Binary files /dev/null and b/ai/data/stain/test/images/lipstick_0003.jpg differ diff --git a/ai/data/stain/test/images/lipstick_0004.jpg b/ai/data/stain/test/images/lipstick_0004.jpg new file mode 100644 index 000000000..0daf5fdb3 Binary files /dev/null and b/ai/data/stain/test/images/lipstick_0004.jpg differ diff --git a/ai/data/stain/test/images/lipstick_0005.jpg b/ai/data/stain/test/images/lipstick_0005.jpg new file mode 100644 index 000000000..27984e328 Binary files /dev/null and b/ai/data/stain/test/images/lipstick_0005.jpg differ diff --git a/ai/data/stain/test/images/lipstick_0006.jpg b/ai/data/stain/test/images/lipstick_0006.jpg new file mode 100644 index 000000000..2d8944e06 Binary files /dev/null and b/ai/data/stain/test/images/lipstick_0006.jpg differ diff --git a/ai/data/stain/test/images/lipstick_0007.jpg b/ai/data/stain/test/images/lipstick_0007.jpg new file mode 100644 index 000000000..9b54cc1e5 Binary files /dev/null and b/ai/data/stain/test/images/lipstick_0007.jpg differ diff --git a/ai/data/stain/test/images/lipstick_0008.jpg b/ai/data/stain/test/images/lipstick_0008.jpg new file mode 100644 index 000000000..109eef86f Binary files /dev/null and b/ai/data/stain/test/images/lipstick_0008.jpg differ diff --git a/ai/data/stain/test/images/lipstick_0009.jpg b/ai/data/stain/test/images/lipstick_0009.jpg new file mode 100644 index 000000000..329611d0d Binary files /dev/null and b/ai/data/stain/test/images/lipstick_0009.jpg differ diff --git a/ai/data/stain/test/images/lipstick_0010.jpg b/ai/data/stain/test/images/lipstick_0010.jpg new file mode 100644 index 000000000..334b8577f Binary files /dev/null and b/ai/data/stain/test/images/lipstick_0010.jpg differ diff --git a/ai/data/stain/test/images/lipstick_0011.jpg b/ai/data/stain/test/images/lipstick_0011.jpg new file mode 100644 index 000000000..f1b239809 Binary files /dev/null and b/ai/data/stain/test/images/lipstick_0011.jpg differ diff --git a/ai/data/stain/test/images/lipstick_0012.jpg b/ai/data/stain/test/images/lipstick_0012.jpg new file mode 100644 index 000000000..e9316f3cd Binary files /dev/null and b/ai/data/stain/test/images/lipstick_0012.jpg differ diff --git a/ai/data/stain/test/images/mustard_0001.jpg b/ai/data/stain/test/images/mustard_0001.jpg new file mode 100644 index 000000000..0894e479e Binary files /dev/null and b/ai/data/stain/test/images/mustard_0001.jpg differ diff --git a/ai/data/stain/test/images/mustard_0002.jpg b/ai/data/stain/test/images/mustard_0002.jpg new file mode 100644 index 000000000..700eaa290 Binary files /dev/null and b/ai/data/stain/test/images/mustard_0002.jpg differ diff --git a/ai/data/stain/test/images/mustard_0003.jpg b/ai/data/stain/test/images/mustard_0003.jpg new file mode 100644 index 000000000..97a20766f Binary files /dev/null and b/ai/data/stain/test/images/mustard_0003.jpg differ diff --git a/ai/data/stain/test/images/mustard_0004.jpg b/ai/data/stain/test/images/mustard_0004.jpg new file mode 100644 index 000000000..8da259cc1 Binary files /dev/null and b/ai/data/stain/test/images/mustard_0004.jpg differ diff --git a/ai/data/stain/test/images/mustard_0005.jpg b/ai/data/stain/test/images/mustard_0005.jpg new file mode 100644 index 000000000..f2b7b9708 Binary files /dev/null and b/ai/data/stain/test/images/mustard_0005.jpg differ diff --git a/ai/data/stain/test/images/mustard_0006.jpg b/ai/data/stain/test/images/mustard_0006.jpg new file mode 100644 index 000000000..403ddf983 Binary files /dev/null and b/ai/data/stain/test/images/mustard_0006.jpg differ diff --git a/ai/data/stain/test/images/mustard_0007.jpg b/ai/data/stain/test/images/mustard_0007.jpg new file mode 100644 index 000000000..e75dc7991 Binary files /dev/null and b/ai/data/stain/test/images/mustard_0007.jpg differ diff --git a/ai/data/stain/test/images/mustard_0009.jpg b/ai/data/stain/test/images/mustard_0009.jpg new file mode 100644 index 000000000..1174d7e86 Binary files /dev/null and b/ai/data/stain/test/images/mustard_0009.jpg differ diff --git a/ai/data/stain/test/images/mustard_0010.jpg b/ai/data/stain/test/images/mustard_0010.jpg new file mode 100644 index 000000000..5de7ec63d Binary files /dev/null and b/ai/data/stain/test/images/mustard_0010.jpg differ diff --git a/ai/data/stain/test/images/oil_0001.jpg b/ai/data/stain/test/images/oil_0001.jpg new file mode 100644 index 000000000..5c2eabba4 Binary files /dev/null and b/ai/data/stain/test/images/oil_0001.jpg differ diff --git a/ai/data/stain/test/images/oil_0002.jpg b/ai/data/stain/test/images/oil_0002.jpg new file mode 100644 index 000000000..377deabbf Binary files /dev/null and b/ai/data/stain/test/images/oil_0002.jpg differ diff --git a/ai/data/stain/test/images/oil_0003.jpg b/ai/data/stain/test/images/oil_0003.jpg new file mode 100644 index 000000000..79f2098af Binary files /dev/null and b/ai/data/stain/test/images/oil_0003.jpg differ diff --git a/ai/data/stain/test/images/oil_0004.jpg b/ai/data/stain/test/images/oil_0004.jpg new file mode 100644 index 000000000..7ab9793c0 Binary files /dev/null and b/ai/data/stain/test/images/oil_0004.jpg differ diff --git a/ai/data/stain/test/images/oil_0005.jpg b/ai/data/stain/test/images/oil_0005.jpg new file mode 100644 index 000000000..016f85de2 Binary files /dev/null and b/ai/data/stain/test/images/oil_0005.jpg differ diff --git a/ai/data/stain/test/images/oil_0006.jpg b/ai/data/stain/test/images/oil_0006.jpg new file mode 100644 index 000000000..398e8144f Binary files /dev/null and b/ai/data/stain/test/images/oil_0006.jpg differ diff --git a/ai/data/stain/test/images/oil_0007.jpg b/ai/data/stain/test/images/oil_0007.jpg new file mode 100644 index 000000000..023cfa603 Binary files /dev/null and b/ai/data/stain/test/images/oil_0007.jpg differ diff --git a/ai/data/stain/test/images/oil_0008.jpg b/ai/data/stain/test/images/oil_0008.jpg new file mode 100644 index 000000000..7fd42475c Binary files /dev/null and b/ai/data/stain/test/images/oil_0008.jpg differ diff --git a/ai/data/stain/test/images/oil_0009.jpg b/ai/data/stain/test/images/oil_0009.jpg new file mode 100644 index 000000000..295bd5d8d Binary files /dev/null and b/ai/data/stain/test/images/oil_0009.jpg differ diff --git a/ai/data/stain/test/images/oil_0010.jpg b/ai/data/stain/test/images/oil_0010.jpg new file mode 100644 index 000000000..e10642f9f Binary files /dev/null and b/ai/data/stain/test/images/oil_0010.jpg differ diff --git a/ai/data/stain/test/images/oil_0011.jpg b/ai/data/stain/test/images/oil_0011.jpg new file mode 100644 index 000000000..bb10be182 Binary files /dev/null and b/ai/data/stain/test/images/oil_0011.jpg differ diff --git a/ai/data/stain/test/images/oil_0012.jpg b/ai/data/stain/test/images/oil_0012.jpg new file mode 100644 index 000000000..5dd390968 Binary files /dev/null and b/ai/data/stain/test/images/oil_0012.jpg differ diff --git a/ai/data/stain/test/images/wine_0001.jpg b/ai/data/stain/test/images/wine_0001.jpg new file mode 100644 index 000000000..4429e9ebd Binary files /dev/null and b/ai/data/stain/test/images/wine_0001.jpg differ diff --git a/ai/data/stain/test/images/wine_0002.jpg b/ai/data/stain/test/images/wine_0002.jpg new file mode 100644 index 000000000..0e89c835e Binary files /dev/null and b/ai/data/stain/test/images/wine_0002.jpg differ diff --git a/ai/data/stain/test/images/wine_0003.jpg b/ai/data/stain/test/images/wine_0003.jpg new file mode 100644 index 000000000..76be1abe7 Binary files /dev/null and b/ai/data/stain/test/images/wine_0003.jpg differ diff --git a/ai/data/stain/test/images/wine_0004.jpg b/ai/data/stain/test/images/wine_0004.jpg new file mode 100644 index 000000000..46aacd6fe Binary files /dev/null and b/ai/data/stain/test/images/wine_0004.jpg differ diff --git a/ai/data/stain/test/images/wine_0005.jpg b/ai/data/stain/test/images/wine_0005.jpg new file mode 100644 index 000000000..2a7c82b49 Binary files /dev/null and b/ai/data/stain/test/images/wine_0005.jpg differ diff --git a/ai/data/stain/test/images/wine_0006.jpg b/ai/data/stain/test/images/wine_0006.jpg new file mode 100644 index 000000000..68b568e44 Binary files /dev/null and b/ai/data/stain/test/images/wine_0006.jpg differ diff --git a/ai/data/stain/test/images/wine_0007.jpg b/ai/data/stain/test/images/wine_0007.jpg new file mode 100644 index 000000000..934adf0f4 Binary files /dev/null and b/ai/data/stain/test/images/wine_0007.jpg differ diff --git a/ai/data/stain/test/images/wine_0008.jpg b/ai/data/stain/test/images/wine_0008.jpg new file mode 100644 index 000000000..7a684d5cd Binary files /dev/null and b/ai/data/stain/test/images/wine_0008.jpg differ diff --git a/ai/data/stain/test/images/wine_0009.jpg b/ai/data/stain/test/images/wine_0009.jpg new file mode 100644 index 000000000..12219d205 Binary files /dev/null and b/ai/data/stain/test/images/wine_0009.jpg differ diff --git a/ai/data/stain/test/images/wine_0010.jpg b/ai/data/stain/test/images/wine_0010.jpg new file mode 100644 index 000000000..783717535 Binary files /dev/null and b/ai/data/stain/test/images/wine_0010.jpg differ diff --git a/ai/data/stain/test/images/wine_0011.jpg b/ai/data/stain/test/images/wine_0011.jpg new file mode 100644 index 000000000..8084b4416 Binary files /dev/null and b/ai/data/stain/test/images/wine_0011.jpg differ diff --git a/ai/data/stain/test/images/wine_0012.jpg b/ai/data/stain/test/images/wine_0012.jpg new file mode 100644 index 000000000..588505378 Binary files /dev/null and b/ai/data/stain/test/images/wine_0012.jpg differ diff --git a/ai/data/stain/val/images/blood_005.jpg b/ai/data/stain/val/images/blood_005.jpg new file mode 100644 index 000000000..fc979e365 Binary files /dev/null and b/ai/data/stain/val/images/blood_005.jpg differ diff --git a/ai/data/stain/val/images/blood_008.jpg b/ai/data/stain/val/images/blood_008.jpg new file mode 100644 index 000000000..f39b6bc0f Binary files /dev/null and b/ai/data/stain/val/images/blood_008.jpg differ diff --git a/ai/data/stain/val/images/blood_013.jpg b/ai/data/stain/val/images/blood_013.jpg new file mode 100644 index 000000000..e635b4f98 Binary files /dev/null and b/ai/data/stain/val/images/blood_013.jpg differ diff --git a/ai/data/stain/val/images/blood_027.jpg b/ai/data/stain/val/images/blood_027.jpg new file mode 100644 index 000000000..f781f2ef5 Binary files /dev/null and b/ai/data/stain/val/images/blood_027.jpg differ diff --git a/ai/data/stain/val/images/blood_029.jpg b/ai/data/stain/val/images/blood_029.jpg new file mode 100644 index 000000000..03afbcfab Binary files /dev/null and b/ai/data/stain/val/images/blood_029.jpg differ diff --git a/ai/data/stain/val/images/blood_034.jpg b/ai/data/stain/val/images/blood_034.jpg new file mode 100644 index 000000000..7f61e553a Binary files /dev/null and b/ai/data/stain/val/images/blood_034.jpg differ diff --git a/ai/data/stain/val/images/blood_036.jpg b/ai/data/stain/val/images/blood_036.jpg new file mode 100644 index 000000000..989c8157e Binary files /dev/null and b/ai/data/stain/val/images/blood_036.jpg differ diff --git a/ai/data/stain/val/images/blood_048.jpg b/ai/data/stain/val/images/blood_048.jpg new file mode 100644 index 000000000..4694956a1 Binary files /dev/null and b/ai/data/stain/val/images/blood_048.jpg differ diff --git a/ai/data/stain/val/images/blood_050.jpg b/ai/data/stain/val/images/blood_050.jpg new file mode 100644 index 000000000..190947a18 Binary files /dev/null and b/ai/data/stain/val/images/blood_050.jpg differ diff --git a/ai/data/stain/val/images/blood_052.jpg b/ai/data/stain/val/images/blood_052.jpg new file mode 100644 index 000000000..31b1d3c51 Binary files /dev/null and b/ai/data/stain/val/images/blood_052.jpg differ diff --git a/ai/data/stain/val/images/blood_061.jpg b/ai/data/stain/val/images/blood_061.jpg new file mode 100644 index 000000000..9a64d4a15 Binary files /dev/null and b/ai/data/stain/val/images/blood_061.jpg differ diff --git a/ai/data/stain/val/images/blood_069.jpg b/ai/data/stain/val/images/blood_069.jpg new file mode 100644 index 000000000..b504c031c Binary files /dev/null and b/ai/data/stain/val/images/blood_069.jpg differ diff --git a/ai/data/stain/val/images/blood_071.jpg b/ai/data/stain/val/images/blood_071.jpg new file mode 100644 index 000000000..06736584d Binary files /dev/null and b/ai/data/stain/val/images/blood_071.jpg differ diff --git a/ai/data/stain/val/images/blood_075.jpg b/ai/data/stain/val/images/blood_075.jpg new file mode 100644 index 000000000..c38683a59 Binary files /dev/null and b/ai/data/stain/val/images/blood_075.jpg differ diff --git a/ai/data/stain/val/images/blood_077.jpg b/ai/data/stain/val/images/blood_077.jpg new file mode 100644 index 000000000..0288bf304 Binary files /dev/null and b/ai/data/stain/val/images/blood_077.jpg differ diff --git a/ai/data/stain/val/images/blood_084.jpg b/ai/data/stain/val/images/blood_084.jpg new file mode 100644 index 000000000..3ee499d15 Binary files /dev/null and b/ai/data/stain/val/images/blood_084.jpg differ diff --git a/ai/data/stain/val/images/blood_085.jpg b/ai/data/stain/val/images/blood_085.jpg new file mode 100644 index 000000000..3124c3839 Binary files /dev/null and b/ai/data/stain/val/images/blood_085.jpg differ diff --git a/ai/data/stain/val/images/blood_093.jpg b/ai/data/stain/val/images/blood_093.jpg new file mode 100644 index 000000000..94f611380 Binary files /dev/null and b/ai/data/stain/val/images/blood_093.jpg differ diff --git a/ai/data/stain/val/images/blood_097.jpg b/ai/data/stain/val/images/blood_097.jpg new file mode 100644 index 000000000..a613bd7fc Binary files /dev/null and b/ai/data/stain/val/images/blood_097.jpg differ diff --git a/ai/data/stain/val/images/blood_099.jpg b/ai/data/stain/val/images/blood_099.jpg new file mode 100644 index 000000000..f47409069 Binary files /dev/null and b/ai/data/stain/val/images/blood_099.jpg differ diff --git a/ai/data/stain/val/images/coffee_001.jpg b/ai/data/stain/val/images/coffee_001.jpg new file mode 100644 index 000000000..ba1e0d8d9 Binary files /dev/null and b/ai/data/stain/val/images/coffee_001.jpg differ diff --git a/ai/data/stain/val/images/coffee_005.jpg b/ai/data/stain/val/images/coffee_005.jpg new file mode 100644 index 000000000..34e4f3377 Binary files /dev/null and b/ai/data/stain/val/images/coffee_005.jpg differ diff --git a/ai/data/stain/val/images/coffee_010.jpg b/ai/data/stain/val/images/coffee_010.jpg new file mode 100644 index 000000000..d087e3e21 Binary files /dev/null and b/ai/data/stain/val/images/coffee_010.jpg differ diff --git a/ai/data/stain/val/images/coffee_011.jpg b/ai/data/stain/val/images/coffee_011.jpg new file mode 100644 index 000000000..aa27be57e Binary files /dev/null and b/ai/data/stain/val/images/coffee_011.jpg differ diff --git a/ai/data/stain/val/images/coffee_019.jpg b/ai/data/stain/val/images/coffee_019.jpg new file mode 100644 index 000000000..2e1b4f635 Binary files /dev/null and b/ai/data/stain/val/images/coffee_019.jpg differ diff --git a/ai/data/stain/val/images/coffee_021.jpg b/ai/data/stain/val/images/coffee_021.jpg new file mode 100644 index 000000000..d8f7531e1 Binary files /dev/null and b/ai/data/stain/val/images/coffee_021.jpg differ diff --git a/ai/data/stain/val/images/coffee_024.jpg b/ai/data/stain/val/images/coffee_024.jpg new file mode 100644 index 000000000..5b87f2094 Binary files /dev/null and b/ai/data/stain/val/images/coffee_024.jpg differ diff --git a/ai/data/stain/val/images/coffee_035.jpg b/ai/data/stain/val/images/coffee_035.jpg new file mode 100644 index 000000000..2db158c60 Binary files /dev/null and b/ai/data/stain/val/images/coffee_035.jpg differ diff --git a/ai/data/stain/val/images/coffee_050.jpg b/ai/data/stain/val/images/coffee_050.jpg new file mode 100644 index 000000000..f19642b8a Binary files /dev/null and b/ai/data/stain/val/images/coffee_050.jpg differ diff --git a/ai/data/stain/val/images/coffee_051.jpg b/ai/data/stain/val/images/coffee_051.jpg new file mode 100644 index 000000000..5ae0103b4 Binary files /dev/null and b/ai/data/stain/val/images/coffee_051.jpg differ diff --git a/ai/data/stain/val/images/coffee_055.jpg b/ai/data/stain/val/images/coffee_055.jpg new file mode 100644 index 000000000..80d60d163 Binary files /dev/null and b/ai/data/stain/val/images/coffee_055.jpg differ diff --git a/ai/data/stain/val/images/coffee_067.jpg b/ai/data/stain/val/images/coffee_067.jpg new file mode 100644 index 000000000..a17066358 Binary files /dev/null and b/ai/data/stain/val/images/coffee_067.jpg differ diff --git a/ai/data/stain/val/images/coffee_070.jpg b/ai/data/stain/val/images/coffee_070.jpg new file mode 100644 index 000000000..001a7bdc9 Binary files /dev/null and b/ai/data/stain/val/images/coffee_070.jpg differ diff --git a/ai/data/stain/val/images/coffee_072.jpg b/ai/data/stain/val/images/coffee_072.jpg new file mode 100644 index 000000000..26338b6b4 Binary files /dev/null and b/ai/data/stain/val/images/coffee_072.jpg differ diff --git a/ai/data/stain/val/images/coffee_075.jpg b/ai/data/stain/val/images/coffee_075.jpg new file mode 100644 index 000000000..820cf7260 Binary files /dev/null and b/ai/data/stain/val/images/coffee_075.jpg differ diff --git a/ai/data/stain/val/images/coffee_078.jpg b/ai/data/stain/val/images/coffee_078.jpg new file mode 100644 index 000000000..c01f8f626 Binary files /dev/null and b/ai/data/stain/val/images/coffee_078.jpg differ diff --git a/ai/data/stain/val/images/coffee_079.jpg b/ai/data/stain/val/images/coffee_079.jpg new file mode 100644 index 000000000..c403f4474 Binary files /dev/null and b/ai/data/stain/val/images/coffee_079.jpg differ diff --git a/ai/data/stain/val/images/coffee_087.jpg b/ai/data/stain/val/images/coffee_087.jpg new file mode 100644 index 000000000..72a352010 Binary files /dev/null and b/ai/data/stain/val/images/coffee_087.jpg differ diff --git a/ai/data/stain/val/images/earth_109.jpg b/ai/data/stain/val/images/earth_109.jpg new file mode 100644 index 000000000..dfd33e64c Binary files /dev/null and b/ai/data/stain/val/images/earth_109.jpg differ diff --git a/ai/data/stain/val/images/earth_115.jpg b/ai/data/stain/val/images/earth_115.jpg new file mode 100644 index 000000000..6a3f8c759 Binary files /dev/null and b/ai/data/stain/val/images/earth_115.jpg differ diff --git a/ai/data/stain/val/images/earth_125.jpg b/ai/data/stain/val/images/earth_125.jpg new file mode 100644 index 000000000..286ae8b43 Binary files /dev/null and b/ai/data/stain/val/images/earth_125.jpg differ diff --git a/ai/data/stain/val/images/earth_127.jpg b/ai/data/stain/val/images/earth_127.jpg new file mode 100644 index 000000000..3e881e73d Binary files /dev/null and b/ai/data/stain/val/images/earth_127.jpg differ diff --git a/ai/data/stain/val/images/earth_128.jpg b/ai/data/stain/val/images/earth_128.jpg new file mode 100644 index 000000000..92337fecd Binary files /dev/null and b/ai/data/stain/val/images/earth_128.jpg differ diff --git a/ai/data/stain/val/images/earth_130.jpg b/ai/data/stain/val/images/earth_130.jpg new file mode 100644 index 000000000..7d621633a Binary files /dev/null and b/ai/data/stain/val/images/earth_130.jpg differ diff --git a/ai/data/stain/val/images/earth_133.jpg b/ai/data/stain/val/images/earth_133.jpg new file mode 100644 index 000000000..04fb199e9 Binary files /dev/null and b/ai/data/stain/val/images/earth_133.jpg differ diff --git a/ai/data/stain/val/images/earth_134.jpg b/ai/data/stain/val/images/earth_134.jpg new file mode 100644 index 000000000..d3920e704 Binary files /dev/null and b/ai/data/stain/val/images/earth_134.jpg differ diff --git a/ai/data/stain/val/images/earth_135.jpg b/ai/data/stain/val/images/earth_135.jpg new file mode 100644 index 000000000..5eed2d711 Binary files /dev/null and b/ai/data/stain/val/images/earth_135.jpg differ diff --git a/ai/data/stain/val/images/earth_138.jpg b/ai/data/stain/val/images/earth_138.jpg new file mode 100644 index 000000000..aa23de842 Binary files /dev/null and b/ai/data/stain/val/images/earth_138.jpg differ diff --git a/ai/data/stain/val/images/earth_142.jpg b/ai/data/stain/val/images/earth_142.jpg new file mode 100644 index 000000000..5b1d408c2 Binary files /dev/null and b/ai/data/stain/val/images/earth_142.jpg differ diff --git a/ai/data/stain/val/images/earth_143.jpg b/ai/data/stain/val/images/earth_143.jpg new file mode 100644 index 000000000..422c6d6aa Binary files /dev/null and b/ai/data/stain/val/images/earth_143.jpg differ diff --git a/ai/data/stain/val/images/earth_147.jpg b/ai/data/stain/val/images/earth_147.jpg new file mode 100644 index 000000000..2771c1c3a Binary files /dev/null and b/ai/data/stain/val/images/earth_147.jpg differ diff --git a/ai/data/stain/val/images/earth_19.jpg b/ai/data/stain/val/images/earth_19.jpg new file mode 100644 index 000000000..2aa247907 Binary files /dev/null and b/ai/data/stain/val/images/earth_19.jpg differ diff --git a/ai/data/stain/val/images/earth_20.jpg b/ai/data/stain/val/images/earth_20.jpg new file mode 100644 index 000000000..b008e90e4 Binary files /dev/null and b/ai/data/stain/val/images/earth_20.jpg differ diff --git a/ai/data/stain/val/images/earth_25.jpg b/ai/data/stain/val/images/earth_25.jpg new file mode 100644 index 000000000..03d8d9db8 Binary files /dev/null and b/ai/data/stain/val/images/earth_25.jpg differ diff --git a/ai/data/stain/val/images/earth_36.jpg b/ai/data/stain/val/images/earth_36.jpg new file mode 100644 index 000000000..d3a74bc59 Binary files /dev/null and b/ai/data/stain/val/images/earth_36.jpg differ diff --git a/ai/data/stain/val/images/earth_37.jpg b/ai/data/stain/val/images/earth_37.jpg new file mode 100644 index 000000000..70d73b47f Binary files /dev/null and b/ai/data/stain/val/images/earth_37.jpg differ diff --git a/ai/data/stain/val/images/earth_38.jpg b/ai/data/stain/val/images/earth_38.jpg new file mode 100644 index 000000000..042d9b7c2 Binary files /dev/null and b/ai/data/stain/val/images/earth_38.jpg differ diff --git a/ai/data/stain/val/images/earth_4.jpg b/ai/data/stain/val/images/earth_4.jpg new file mode 100644 index 000000000..28ec74e0b Binary files /dev/null and b/ai/data/stain/val/images/earth_4.jpg differ diff --git a/ai/data/stain/val/images/earth_40.jpg b/ai/data/stain/val/images/earth_40.jpg new file mode 100644 index 000000000..5942d4264 Binary files /dev/null and b/ai/data/stain/val/images/earth_40.jpg differ diff --git a/ai/data/stain/val/images/earth_42.jpg b/ai/data/stain/val/images/earth_42.jpg new file mode 100644 index 000000000..298c152f3 Binary files /dev/null and b/ai/data/stain/val/images/earth_42.jpg differ diff --git a/ai/data/stain/val/images/earth_47.jpg b/ai/data/stain/val/images/earth_47.jpg new file mode 100644 index 000000000..608c9c1b8 Binary files /dev/null and b/ai/data/stain/val/images/earth_47.jpg differ diff --git a/ai/data/stain/val/images/earth_5.jpg b/ai/data/stain/val/images/earth_5.jpg new file mode 100644 index 000000000..5f4f551fa Binary files /dev/null and b/ai/data/stain/val/images/earth_5.jpg differ diff --git a/ai/data/stain/val/images/earth_60.jpg b/ai/data/stain/val/images/earth_60.jpg new file mode 100644 index 000000000..e08b65e12 Binary files /dev/null and b/ai/data/stain/val/images/earth_60.jpg differ diff --git a/ai/data/stain/val/images/earth_64.jpg b/ai/data/stain/val/images/earth_64.jpg new file mode 100644 index 000000000..6cf60c49f Binary files /dev/null and b/ai/data/stain/val/images/earth_64.jpg differ diff --git a/ai/data/stain/val/images/earth_84.jpg b/ai/data/stain/val/images/earth_84.jpg new file mode 100644 index 000000000..52507bd47 Binary files /dev/null and b/ai/data/stain/val/images/earth_84.jpg differ diff --git a/ai/data/stain/val/images/earth_85.jpg b/ai/data/stain/val/images/earth_85.jpg new file mode 100644 index 000000000..1432c4ba3 Binary files /dev/null and b/ai/data/stain/val/images/earth_85.jpg differ diff --git a/ai/data/stain/val/images/earth_93.jpg b/ai/data/stain/val/images/earth_93.jpg new file mode 100644 index 000000000..ebd7dcb86 Binary files /dev/null and b/ai/data/stain/val/images/earth_93.jpg differ diff --git a/ai/data/stain/val/images/ink_008.jpg b/ai/data/stain/val/images/ink_008.jpg new file mode 100644 index 000000000..f7342e4dd Binary files /dev/null and b/ai/data/stain/val/images/ink_008.jpg differ diff --git a/ai/data/stain/val/images/ink_013.jpg b/ai/data/stain/val/images/ink_013.jpg new file mode 100644 index 000000000..34e3f8bb1 Binary files /dev/null and b/ai/data/stain/val/images/ink_013.jpg differ diff --git a/ai/data/stain/val/images/ink_018.jpg b/ai/data/stain/val/images/ink_018.jpg new file mode 100644 index 000000000..3222b5b45 Binary files /dev/null and b/ai/data/stain/val/images/ink_018.jpg differ diff --git a/ai/data/stain/val/images/ink_033.jpg b/ai/data/stain/val/images/ink_033.jpg new file mode 100644 index 000000000..a2770bf93 Binary files /dev/null and b/ai/data/stain/val/images/ink_033.jpg differ diff --git a/ai/data/stain/val/images/ink_037.jpg b/ai/data/stain/val/images/ink_037.jpg new file mode 100644 index 000000000..edae4623e Binary files /dev/null and b/ai/data/stain/val/images/ink_037.jpg differ diff --git a/ai/data/stain/val/images/ink_041.jpg b/ai/data/stain/val/images/ink_041.jpg new file mode 100644 index 000000000..deda375f7 Binary files /dev/null and b/ai/data/stain/val/images/ink_041.jpg differ diff --git a/ai/data/stain/val/images/ink_044.jpg b/ai/data/stain/val/images/ink_044.jpg new file mode 100644 index 000000000..77dcf8373 Binary files /dev/null and b/ai/data/stain/val/images/ink_044.jpg differ diff --git a/ai/data/stain/val/images/ink_052.jpg b/ai/data/stain/val/images/ink_052.jpg new file mode 100644 index 000000000..250230696 Binary files /dev/null and b/ai/data/stain/val/images/ink_052.jpg differ diff --git a/ai/data/stain/val/images/ink_061.jpg b/ai/data/stain/val/images/ink_061.jpg new file mode 100644 index 000000000..ad43d945a Binary files /dev/null and b/ai/data/stain/val/images/ink_061.jpg differ diff --git a/ai/data/stain/val/images/ink_062.jpg b/ai/data/stain/val/images/ink_062.jpg new file mode 100644 index 000000000..c5ce6b511 Binary files /dev/null and b/ai/data/stain/val/images/ink_062.jpg differ diff --git a/ai/data/stain/val/images/ink_063.jpg b/ai/data/stain/val/images/ink_063.jpg new file mode 100644 index 000000000..c3cf67152 Binary files /dev/null and b/ai/data/stain/val/images/ink_063.jpg differ diff --git a/ai/data/stain/val/images/ink_065.jpg b/ai/data/stain/val/images/ink_065.jpg new file mode 100644 index 000000000..d218b2aeb Binary files /dev/null and b/ai/data/stain/val/images/ink_065.jpg differ diff --git a/ai/data/stain/val/images/ink_069.jpg b/ai/data/stain/val/images/ink_069.jpg new file mode 100644 index 000000000..4d3855518 Binary files /dev/null and b/ai/data/stain/val/images/ink_069.jpg differ diff --git a/ai/data/stain/val/images/ink_083.jpg b/ai/data/stain/val/images/ink_083.jpg new file mode 100644 index 000000000..c6e81da49 Binary files /dev/null and b/ai/data/stain/val/images/ink_083.jpg differ diff --git a/ai/data/stain/val/images/ink_086.jpg b/ai/data/stain/val/images/ink_086.jpg new file mode 100644 index 000000000..fe9f8f83f Binary files /dev/null and b/ai/data/stain/val/images/ink_086.jpg differ diff --git a/ai/data/stain/val/images/ink_088.jpg b/ai/data/stain/val/images/ink_088.jpg new file mode 100644 index 000000000..8d9c79ab1 Binary files /dev/null and b/ai/data/stain/val/images/ink_088.jpg differ diff --git a/ai/data/stain/val/images/kimchi_003.jpg b/ai/data/stain/val/images/kimchi_003.jpg new file mode 100644 index 000000000..5b5a9bda3 Binary files /dev/null and b/ai/data/stain/val/images/kimchi_003.jpg differ diff --git a/ai/data/stain/val/images/kimchi_009.jpg b/ai/data/stain/val/images/kimchi_009.jpg new file mode 100644 index 000000000..4d8e4f5c2 Binary files /dev/null and b/ai/data/stain/val/images/kimchi_009.jpg differ diff --git a/ai/data/stain/val/images/kimchi_013.jpg b/ai/data/stain/val/images/kimchi_013.jpg new file mode 100644 index 000000000..256ae4ddc Binary files /dev/null and b/ai/data/stain/val/images/kimchi_013.jpg differ diff --git a/ai/data/stain/val/images/kimchi_033.jpg b/ai/data/stain/val/images/kimchi_033.jpg new file mode 100644 index 000000000..7a5a03dbb Binary files /dev/null and b/ai/data/stain/val/images/kimchi_033.jpg differ diff --git a/ai/data/stain/val/images/kimchi_038.jpg b/ai/data/stain/val/images/kimchi_038.jpg new file mode 100644 index 000000000..1f2a8041f Binary files /dev/null and b/ai/data/stain/val/images/kimchi_038.jpg differ diff --git a/ai/data/stain/val/images/kimchi_041.jpg b/ai/data/stain/val/images/kimchi_041.jpg new file mode 100644 index 000000000..e85b17330 Binary files /dev/null and b/ai/data/stain/val/images/kimchi_041.jpg differ diff --git a/ai/data/stain/val/images/kimchi_043.jpg b/ai/data/stain/val/images/kimchi_043.jpg new file mode 100644 index 000000000..f3839057e Binary files /dev/null and b/ai/data/stain/val/images/kimchi_043.jpg differ diff --git a/ai/data/stain/val/images/kimchi_050.jpg b/ai/data/stain/val/images/kimchi_050.jpg new file mode 100644 index 000000000..f1b70367e Binary files /dev/null and b/ai/data/stain/val/images/kimchi_050.jpg differ diff --git a/ai/data/stain/val/images/kimchi_057.jpg b/ai/data/stain/val/images/kimchi_057.jpg new file mode 100644 index 000000000..f48acd64e Binary files /dev/null and b/ai/data/stain/val/images/kimchi_057.jpg differ diff --git a/ai/data/stain/val/images/kimchi_058.jpg b/ai/data/stain/val/images/kimchi_058.jpg new file mode 100644 index 000000000..210bbe4b7 Binary files /dev/null and b/ai/data/stain/val/images/kimchi_058.jpg differ diff --git a/ai/data/stain/val/images/kimchi_062.jpg b/ai/data/stain/val/images/kimchi_062.jpg new file mode 100644 index 000000000..1fbe4fc04 Binary files /dev/null and b/ai/data/stain/val/images/kimchi_062.jpg differ diff --git a/ai/data/stain/val/images/kimchi_066.jpg b/ai/data/stain/val/images/kimchi_066.jpg new file mode 100644 index 000000000..9202ff4ea Binary files /dev/null and b/ai/data/stain/val/images/kimchi_066.jpg differ diff --git a/ai/data/stain/val/images/kimchi_072.jpg b/ai/data/stain/val/images/kimchi_072.jpg new file mode 100644 index 000000000..5d7686d54 Binary files /dev/null and b/ai/data/stain/val/images/kimchi_072.jpg differ diff --git a/ai/data/stain/val/images/kimchi_083.jpg b/ai/data/stain/val/images/kimchi_083.jpg new file mode 100644 index 000000000..71bc95171 Binary files /dev/null and b/ai/data/stain/val/images/kimchi_083.jpg differ diff --git a/ai/data/stain/val/images/kimchi_089.jpg b/ai/data/stain/val/images/kimchi_089.jpg new file mode 100644 index 000000000..2bef2d090 Binary files /dev/null and b/ai/data/stain/val/images/kimchi_089.jpg differ diff --git a/ai/data/stain/val/images/kimchi_090.jpg b/ai/data/stain/val/images/kimchi_090.jpg new file mode 100644 index 000000000..8c09c4bda Binary files /dev/null and b/ai/data/stain/val/images/kimchi_090.jpg differ diff --git a/ai/data/stain/val/images/kimchi_095.jpg b/ai/data/stain/val/images/kimchi_095.jpg new file mode 100644 index 000000000..2fbd34538 Binary files /dev/null and b/ai/data/stain/val/images/kimchi_095.jpg differ diff --git a/ai/data/stain/val/images/kimchi_096.jpg b/ai/data/stain/val/images/kimchi_096.jpg new file mode 100644 index 000000000..88e9558ad Binary files /dev/null and b/ai/data/stain/val/images/kimchi_096.jpg differ diff --git a/ai/data/stain/val/images/lipstick_10.jpg b/ai/data/stain/val/images/lipstick_10.jpg new file mode 100644 index 000000000..6b9e4e6f0 Binary files /dev/null and b/ai/data/stain/val/images/lipstick_10.jpg differ diff --git a/ai/data/stain/val/images/lipstick_16.jpg b/ai/data/stain/val/images/lipstick_16.jpg new file mode 100644 index 000000000..e8d3286d8 Binary files /dev/null and b/ai/data/stain/val/images/lipstick_16.jpg differ diff --git a/ai/data/stain/val/images/lipstick_18.jpg b/ai/data/stain/val/images/lipstick_18.jpg new file mode 100644 index 000000000..2f0d0ef94 Binary files /dev/null and b/ai/data/stain/val/images/lipstick_18.jpg differ diff --git a/ai/data/stain/val/images/lipstick_22.jpg b/ai/data/stain/val/images/lipstick_22.jpg new file mode 100644 index 000000000..2c8e6e371 Binary files /dev/null and b/ai/data/stain/val/images/lipstick_22.jpg differ diff --git a/ai/data/stain/val/images/lipstick_31.jpg b/ai/data/stain/val/images/lipstick_31.jpg new file mode 100644 index 000000000..5375cd08f Binary files /dev/null and b/ai/data/stain/val/images/lipstick_31.jpg differ diff --git a/ai/data/stain/val/images/lipstick_4.jpg b/ai/data/stain/val/images/lipstick_4.jpg new file mode 100644 index 000000000..6203072f2 Binary files /dev/null and b/ai/data/stain/val/images/lipstick_4.jpg differ diff --git a/ai/data/stain/val/images/lipstick_40.jpg b/ai/data/stain/val/images/lipstick_40.jpg new file mode 100644 index 000000000..6fb54771a Binary files /dev/null and b/ai/data/stain/val/images/lipstick_40.jpg differ diff --git a/ai/data/stain/val/images/lipstick_47.jpg b/ai/data/stain/val/images/lipstick_47.jpg new file mode 100644 index 000000000..6910cd5e2 Binary files /dev/null and b/ai/data/stain/val/images/lipstick_47.jpg differ diff --git a/ai/data/stain/val/images/lipstick_50.jpg b/ai/data/stain/val/images/lipstick_50.jpg new file mode 100644 index 000000000..d3fcf4c29 Binary files /dev/null and b/ai/data/stain/val/images/lipstick_50.jpg differ diff --git a/ai/data/stain/val/images/lipstick_51.jpg b/ai/data/stain/val/images/lipstick_51.jpg new file mode 100644 index 000000000..1ab7a11d5 Binary files /dev/null and b/ai/data/stain/val/images/lipstick_51.jpg differ diff --git a/ai/data/stain/val/images/lipstick_52.jpg b/ai/data/stain/val/images/lipstick_52.jpg new file mode 100644 index 000000000..c67370055 Binary files /dev/null and b/ai/data/stain/val/images/lipstick_52.jpg differ diff --git a/ai/data/stain/val/images/lipstick_54.jpg b/ai/data/stain/val/images/lipstick_54.jpg new file mode 100644 index 000000000..7c4e3f85a Binary files /dev/null and b/ai/data/stain/val/images/lipstick_54.jpg differ diff --git a/ai/data/stain/val/images/lipstick_59.jpg b/ai/data/stain/val/images/lipstick_59.jpg new file mode 100644 index 000000000..8a9bb3f34 Binary files /dev/null and b/ai/data/stain/val/images/lipstick_59.jpg differ diff --git a/ai/data/stain/val/images/lipstick_60.jpg b/ai/data/stain/val/images/lipstick_60.jpg new file mode 100644 index 000000000..899efafea Binary files /dev/null and b/ai/data/stain/val/images/lipstick_60.jpg differ diff --git a/ai/data/stain/val/images/lipstick_66.jpg b/ai/data/stain/val/images/lipstick_66.jpg new file mode 100644 index 000000000..7bfb858f9 Binary files /dev/null and b/ai/data/stain/val/images/lipstick_66.jpg differ diff --git a/ai/data/stain/val/images/lipstick_71.jpg b/ai/data/stain/val/images/lipstick_71.jpg new file mode 100644 index 000000000..a829edecd Binary files /dev/null and b/ai/data/stain/val/images/lipstick_71.jpg differ diff --git a/ai/data/stain/val/images/lipstick_8.jpg b/ai/data/stain/val/images/lipstick_8.jpg new file mode 100644 index 000000000..c090f683e Binary files /dev/null and b/ai/data/stain/val/images/lipstick_8.jpg differ diff --git a/ai/data/stain/val/images/lipstick_85.jpg b/ai/data/stain/val/images/lipstick_85.jpg new file mode 100644 index 000000000..d528d2a98 Binary files /dev/null and b/ai/data/stain/val/images/lipstick_85.jpg differ diff --git a/ai/data/stain/val/images/lipstick_89.jpg b/ai/data/stain/val/images/lipstick_89.jpg new file mode 100644 index 000000000..329611d0d Binary files /dev/null and b/ai/data/stain/val/images/lipstick_89.jpg differ diff --git a/ai/data/stain/val/images/lipstick_90.jpg b/ai/data/stain/val/images/lipstick_90.jpg new file mode 100644 index 000000000..334b8577f Binary files /dev/null and b/ai/data/stain/val/images/lipstick_90.jpg differ diff --git a/ai/data/stain/val/images/lipstick_91.jpg b/ai/data/stain/val/images/lipstick_91.jpg new file mode 100644 index 000000000..109eef86f Binary files /dev/null and b/ai/data/stain/val/images/lipstick_91.jpg differ diff --git a/ai/data/stain/val/images/lipstick_93.jpg b/ai/data/stain/val/images/lipstick_93.jpg new file mode 100644 index 000000000..bc0e6d497 Binary files /dev/null and b/ai/data/stain/val/images/lipstick_93.jpg differ diff --git a/ai/data/stain/val/images/mustard_003.jpg b/ai/data/stain/val/images/mustard_003.jpg new file mode 100644 index 000000000..7cbb083be Binary files /dev/null and b/ai/data/stain/val/images/mustard_003.jpg differ diff --git a/ai/data/stain/val/images/mustard_018.jpg b/ai/data/stain/val/images/mustard_018.jpg new file mode 100644 index 000000000..bce333ebb Binary files /dev/null and b/ai/data/stain/val/images/mustard_018.jpg differ diff --git a/ai/data/stain/val/images/mustard_024.jpg b/ai/data/stain/val/images/mustard_024.jpg new file mode 100644 index 000000000..08b233478 Binary files /dev/null and b/ai/data/stain/val/images/mustard_024.jpg differ diff --git a/ai/data/stain/val/images/mustard_027.jpg b/ai/data/stain/val/images/mustard_027.jpg new file mode 100644 index 000000000..977978237 Binary files /dev/null and b/ai/data/stain/val/images/mustard_027.jpg differ diff --git a/ai/data/stain/val/images/mustard_045.jpg b/ai/data/stain/val/images/mustard_045.jpg new file mode 100644 index 000000000..d6b439981 Binary files /dev/null and b/ai/data/stain/val/images/mustard_045.jpg differ diff --git a/ai/data/stain/val/images/mustard_050.jpg b/ai/data/stain/val/images/mustard_050.jpg new file mode 100644 index 000000000..f439ad49a Binary files /dev/null and b/ai/data/stain/val/images/mustard_050.jpg differ diff --git a/ai/data/stain/val/images/mustard_051.jpg b/ai/data/stain/val/images/mustard_051.jpg new file mode 100644 index 000000000..394cb894e Binary files /dev/null and b/ai/data/stain/val/images/mustard_051.jpg differ diff --git a/ai/data/stain/val/images/mustard_053.jpg b/ai/data/stain/val/images/mustard_053.jpg new file mode 100644 index 000000000..fc44d03a3 Binary files /dev/null and b/ai/data/stain/val/images/mustard_053.jpg differ diff --git a/ai/data/stain/val/images/mustard_054.jpg b/ai/data/stain/val/images/mustard_054.jpg new file mode 100644 index 000000000..7782f7e52 Binary files /dev/null and b/ai/data/stain/val/images/mustard_054.jpg differ diff --git a/ai/data/stain/val/images/mustard_065.jpg b/ai/data/stain/val/images/mustard_065.jpg new file mode 100644 index 000000000..ed682ff66 Binary files /dev/null and b/ai/data/stain/val/images/mustard_065.jpg differ diff --git a/ai/data/stain/val/images/mustard_066.jpg b/ai/data/stain/val/images/mustard_066.jpg new file mode 100644 index 000000000..8bb009b9b Binary files /dev/null and b/ai/data/stain/val/images/mustard_066.jpg differ diff --git a/ai/data/stain/val/images/mustard_074.jpg b/ai/data/stain/val/images/mustard_074.jpg new file mode 100644 index 000000000..dcf0f8a37 Binary files /dev/null and b/ai/data/stain/val/images/mustard_074.jpg differ diff --git a/ai/data/stain/val/images/mustard_083.jpg b/ai/data/stain/val/images/mustard_083.jpg new file mode 100644 index 000000000..00c5ec612 Binary files /dev/null and b/ai/data/stain/val/images/mustard_083.jpg differ diff --git a/ai/data/stain/val/images/mustard_084.jpg b/ai/data/stain/val/images/mustard_084.jpg new file mode 100644 index 000000000..32ec9625b Binary files /dev/null and b/ai/data/stain/val/images/mustard_084.jpg differ diff --git a/ai/data/stain/val/images/oil_001.jpg b/ai/data/stain/val/images/oil_001.jpg new file mode 100644 index 000000000..8ad0c8d20 Binary files /dev/null and b/ai/data/stain/val/images/oil_001.jpg differ diff --git a/ai/data/stain/val/images/oil_003.jpg b/ai/data/stain/val/images/oil_003.jpg new file mode 100644 index 000000000..5ddaef445 Binary files /dev/null and b/ai/data/stain/val/images/oil_003.jpg differ diff --git a/ai/data/stain/val/images/oil_013.jpg b/ai/data/stain/val/images/oil_013.jpg new file mode 100644 index 000000000..f61889c8d Binary files /dev/null and b/ai/data/stain/val/images/oil_013.jpg differ diff --git a/ai/data/stain/val/images/oil_015.jpg b/ai/data/stain/val/images/oil_015.jpg new file mode 100644 index 000000000..c0c482356 Binary files /dev/null and b/ai/data/stain/val/images/oil_015.jpg differ diff --git a/ai/data/stain/val/images/oil_018.jpg b/ai/data/stain/val/images/oil_018.jpg new file mode 100644 index 000000000..04a795abe Binary files /dev/null and b/ai/data/stain/val/images/oil_018.jpg differ diff --git a/ai/data/stain/val/images/oil_022.jpg b/ai/data/stain/val/images/oil_022.jpg new file mode 100644 index 000000000..044a3e420 Binary files /dev/null and b/ai/data/stain/val/images/oil_022.jpg differ diff --git a/ai/data/stain/val/images/oil_028.jpg b/ai/data/stain/val/images/oil_028.jpg new file mode 100644 index 000000000..54ff7383d Binary files /dev/null and b/ai/data/stain/val/images/oil_028.jpg differ diff --git a/ai/data/stain/val/images/oil_034.jpg b/ai/data/stain/val/images/oil_034.jpg new file mode 100644 index 000000000..2f1d22fe5 Binary files /dev/null and b/ai/data/stain/val/images/oil_034.jpg differ diff --git a/ai/data/stain/val/images/oil_037.jpg b/ai/data/stain/val/images/oil_037.jpg new file mode 100644 index 000000000..b9706c1ab Binary files /dev/null and b/ai/data/stain/val/images/oil_037.jpg differ diff --git a/ai/data/stain/val/images/oil_077.jpg b/ai/data/stain/val/images/oil_077.jpg new file mode 100644 index 000000000..0745868ae Binary files /dev/null and b/ai/data/stain/val/images/oil_077.jpg differ diff --git a/ai/data/stain/val/images/oil_078.jpg b/ai/data/stain/val/images/oil_078.jpg new file mode 100644 index 000000000..1a7e7d0c7 Binary files /dev/null and b/ai/data/stain/val/images/oil_078.jpg differ diff --git a/ai/data/stain/val/images/oil_079.jpg b/ai/data/stain/val/images/oil_079.jpg new file mode 100644 index 000000000..86fa54665 Binary files /dev/null and b/ai/data/stain/val/images/oil_079.jpg differ diff --git a/ai/data/stain/val/images/oil_081.jpg b/ai/data/stain/val/images/oil_081.jpg new file mode 100644 index 000000000..4b68f4966 Binary files /dev/null and b/ai/data/stain/val/images/oil_081.jpg differ diff --git a/ai/data/stain/val/images/oil_096.jpg b/ai/data/stain/val/images/oil_096.jpg new file mode 100644 index 000000000..21dacce37 Binary files /dev/null and b/ai/data/stain/val/images/oil_096.jpg differ diff --git a/ai/data/stain/val/images/wine_006.jpg b/ai/data/stain/val/images/wine_006.jpg new file mode 100644 index 000000000..da7970ed9 Binary files /dev/null and b/ai/data/stain/val/images/wine_006.jpg differ diff --git a/ai/data/stain/val/images/wine_007.jpg b/ai/data/stain/val/images/wine_007.jpg new file mode 100644 index 000000000..9ad9cf0d9 Binary files /dev/null and b/ai/data/stain/val/images/wine_007.jpg differ diff --git a/ai/data/stain/val/images/wine_023.jpg b/ai/data/stain/val/images/wine_023.jpg new file mode 100644 index 000000000..8a9add6ab Binary files /dev/null and b/ai/data/stain/val/images/wine_023.jpg differ diff --git a/ai/data/stain/val/images/wine_025.jpg b/ai/data/stain/val/images/wine_025.jpg new file mode 100644 index 000000000..48daae3c6 Binary files /dev/null and b/ai/data/stain/val/images/wine_025.jpg differ diff --git a/ai/data/stain/val/images/wine_026.jpg b/ai/data/stain/val/images/wine_026.jpg new file mode 100644 index 000000000..96e3b1fe5 Binary files /dev/null and b/ai/data/stain/val/images/wine_026.jpg differ diff --git a/ai/data/stain/val/images/wine_027.jpg b/ai/data/stain/val/images/wine_027.jpg new file mode 100644 index 000000000..b76baed26 Binary files /dev/null and b/ai/data/stain/val/images/wine_027.jpg differ diff --git a/ai/data/stain/val/images/wine_032.jpg b/ai/data/stain/val/images/wine_032.jpg new file mode 100644 index 000000000..1c78eaec0 Binary files /dev/null and b/ai/data/stain/val/images/wine_032.jpg differ diff --git a/ai/data/stain/val/images/wine_044.jpg b/ai/data/stain/val/images/wine_044.jpg new file mode 100644 index 000000000..c8f0ead2e Binary files /dev/null and b/ai/data/stain/val/images/wine_044.jpg differ diff --git a/ai/data/stain/val/images/wine_049.jpg b/ai/data/stain/val/images/wine_049.jpg new file mode 100644 index 000000000..b625c467d Binary files /dev/null and b/ai/data/stain/val/images/wine_049.jpg differ diff --git a/ai/data/stain/val/images/wine_051.jpg b/ai/data/stain/val/images/wine_051.jpg new file mode 100644 index 000000000..b0cf8b3a6 Binary files /dev/null and b/ai/data/stain/val/images/wine_051.jpg differ diff --git a/ai/data/stain/val/images/wine_052.jpg b/ai/data/stain/val/images/wine_052.jpg new file mode 100644 index 000000000..07090e38b Binary files /dev/null and b/ai/data/stain/val/images/wine_052.jpg differ diff --git a/ai/data/stain/val/images/wine_053.jpg b/ai/data/stain/val/images/wine_053.jpg new file mode 100644 index 000000000..7e7b4b9a6 Binary files /dev/null and b/ai/data/stain/val/images/wine_053.jpg differ diff --git a/ai/data/stain/val/images/wine_055.jpg b/ai/data/stain/val/images/wine_055.jpg new file mode 100644 index 000000000..158220ee5 Binary files /dev/null and b/ai/data/stain/val/images/wine_055.jpg differ diff --git a/ai/data/stain/val/images/wine_057.jpg b/ai/data/stain/val/images/wine_057.jpg new file mode 100644 index 000000000..8868a26dd Binary files /dev/null and b/ai/data/stain/val/images/wine_057.jpg differ diff --git a/ai/data/stain/val/images/wine_062.jpg b/ai/data/stain/val/images/wine_062.jpg new file mode 100644 index 000000000..a52a6d2b2 Binary files /dev/null and b/ai/data/stain/val/images/wine_062.jpg differ diff --git a/ai/data/stain/val/images/wine_068.jpg b/ai/data/stain/val/images/wine_068.jpg new file mode 100644 index 000000000..ada1325ae Binary files /dev/null and b/ai/data/stain/val/images/wine_068.jpg differ diff --git a/ai/data/stain/val/images/wine_072.jpg b/ai/data/stain/val/images/wine_072.jpg new file mode 100644 index 000000000..9f59031d4 Binary files /dev/null and b/ai/data/stain/val/images/wine_072.jpg differ diff --git a/ai/data/stain/val/images/wine_074.jpg b/ai/data/stain/val/images/wine_074.jpg new file mode 100644 index 000000000..8d66ecc8b Binary files /dev/null and b/ai/data/stain/val/images/wine_074.jpg differ diff --git a/ai/data/stain/val/images/wine_077.jpg b/ai/data/stain/val/images/wine_077.jpg new file mode 100644 index 000000000..c8b6b3393 Binary files /dev/null and b/ai/data/stain/val/images/wine_077.jpg differ diff --git a/ai/data/stain/val/images/wine_082.jpg b/ai/data/stain/val/images/wine_082.jpg new file mode 100644 index 000000000..ae8067ad1 Binary files /dev/null and b/ai/data/stain/val/images/wine_082.jpg differ diff --git a/ai/data/stain/val/images/wine_083.jpg b/ai/data/stain/val/images/wine_083.jpg new file mode 100644 index 000000000..8e515ef5d Binary files /dev/null and b/ai/data/stain/val/images/wine_083.jpg differ diff --git a/ai/data/stain/val/images/wine_086.jpg b/ai/data/stain/val/images/wine_086.jpg new file mode 100644 index 000000000..5ab3117a0 Binary files /dev/null and b/ai/data/stain/val/images/wine_086.jpg differ diff --git a/ai/data/stain/val/images/wine_091.jpg b/ai/data/stain/val/images/wine_091.jpg new file mode 100644 index 000000000..213965a25 Binary files /dev/null and b/ai/data/stain/val/images/wine_091.jpg differ diff --git a/ai/data/stain/val/images/wine_093.jpg b/ai/data/stain/val/images/wine_093.jpg new file mode 100644 index 000000000..e05102e11 Binary files /dev/null and b/ai/data/stain/val/images/wine_093.jpg differ diff --git a/ai/data/stain/val/images/wine_095.jpg b/ai/data/stain/val/images/wine_095.jpg new file mode 100644 index 000000000..dc5d40af2 Binary files /dev/null and b/ai/data/stain/val/images/wine_095.jpg differ diff --git a/ai/data/stain/val/images/wine_099.jpg b/ai/data/stain/val/images/wine_099.jpg new file mode 100644 index 000000000..1caa340ca Binary files /dev/null and b/ai/data/stain/val/images/wine_099.jpg differ diff --git a/ai/data/stain/val/labels.cache b/ai/data/stain/val/labels.cache new file mode 100644 index 000000000..0034fd533 Binary files /dev/null and b/ai/data/stain/val/labels.cache differ diff --git a/ai/data/stain/val/labels/blood_005.txt b/ai/data/stain/val/labels/blood_005.txt new file mode 100644 index 000000000..9a617ce88 --- /dev/null +++ b/ai/data/stain/val/labels/blood_005.txt @@ -0,0 +1 @@ +0 0.446094 0.534375 0.545312 0.553125 diff --git a/ai/data/stain/val/labels/blood_008.txt b/ai/data/stain/val/labels/blood_008.txt new file mode 100644 index 000000000..ce92fa6a5 --- /dev/null +++ b/ai/data/stain/val/labels/blood_008.txt @@ -0,0 +1,4 @@ +0 0.600781 0.550000 0.264062 0.384375 +0 0.303125 0.544531 0.250000 0.239063 +0 0.728125 0.037500 0.075000 0.065625 +0 0.166406 0.765625 0.132812 0.121875 diff --git a/ai/data/stain/val/labels/blood_013.txt b/ai/data/stain/val/labels/blood_013.txt new file mode 100644 index 000000000..b45937a18 --- /dev/null +++ b/ai/data/stain/val/labels/blood_013.txt @@ -0,0 +1,5 @@ +0 0.414844 0.459375 0.064062 0.146875 +0 0.520312 0.294531 0.065625 0.064062 +0 0.525781 0.389062 0.042188 0.062500 +0 0.576562 0.240625 0.021875 0.046875 +0 0.528906 0.171094 0.026562 0.039062 diff --git a/ai/data/stain/val/labels/blood_027.txt b/ai/data/stain/val/labels/blood_027.txt new file mode 100644 index 000000000..88cb2b975 --- /dev/null +++ b/ai/data/stain/val/labels/blood_027.txt @@ -0,0 +1,4 @@ +0 0.540000 0.538251 0.076364 0.136612 +0 0.454545 0.707650 0.072727 0.147541 +0 0.463636 0.565574 0.047273 0.114754 +0 0.240000 0.284153 0.043636 0.032787 diff --git a/ai/data/stain/val/labels/blood_029.txt b/ai/data/stain/val/labels/blood_029.txt new file mode 100644 index 000000000..85643ed55 --- /dev/null +++ b/ai/data/stain/val/labels/blood_029.txt @@ -0,0 +1,2 @@ +0 0.343511 0.489583 0.244275 0.281250 +0 0.656489 0.382812 0.282443 0.348958 diff --git a/ai/data/stain/val/labels/blood_034.txt b/ai/data/stain/val/labels/blood_034.txt new file mode 100644 index 000000000..2a1bae876 --- /dev/null +++ b/ai/data/stain/val/labels/blood_034.txt @@ -0,0 +1,3 @@ +0 0.593156 0.486979 0.076046 0.078125 +0 0.486692 0.458333 0.091255 0.125000 +0 0.602662 0.653646 0.087452 0.057292 diff --git a/ai/data/stain/val/labels/blood_036.txt b/ai/data/stain/val/labels/blood_036.txt new file mode 100644 index 000000000..49351c4b9 --- /dev/null +++ b/ai/data/stain/val/labels/blood_036.txt @@ -0,0 +1 @@ +0 0.637405 0.326425 0.274809 0.279793 diff --git a/ai/data/stain/val/labels/blood_048.txt b/ai/data/stain/val/labels/blood_048.txt new file mode 100644 index 000000000..6c46c4d4f --- /dev/null +++ b/ai/data/stain/val/labels/blood_048.txt @@ -0,0 +1 @@ +0 0.566794 0.455729 0.270992 0.338542 diff --git a/ai/data/stain/val/labels/blood_050.txt b/ai/data/stain/val/labels/blood_050.txt new file mode 100644 index 000000000..3fb369156 --- /dev/null +++ b/ai/data/stain/val/labels/blood_050.txt @@ -0,0 +1,3 @@ +0 0.495000 0.351190 0.120000 0.075397 +0 0.407500 0.263889 0.045000 0.035714 +0 0.432500 0.708333 0.095000 0.075397 diff --git a/ai/data/stain/val/labels/blood_052.txt b/ai/data/stain/val/labels/blood_052.txt new file mode 100644 index 000000000..5d0249ee0 --- /dev/null +++ b/ai/data/stain/val/labels/blood_052.txt @@ -0,0 +1 @@ +0 0.498333 0.577381 0.123333 0.250000 diff --git a/ai/data/stain/val/labels/blood_061.txt b/ai/data/stain/val/labels/blood_061.txt new file mode 100644 index 000000000..594747de8 --- /dev/null +++ b/ai/data/stain/val/labels/blood_061.txt @@ -0,0 +1 @@ +0 0.450909 0.486339 0.727273 0.655738 diff --git a/ai/data/stain/val/labels/blood_069.txt b/ai/data/stain/val/labels/blood_069.txt new file mode 100644 index 000000000..338999d9c --- /dev/null +++ b/ai/data/stain/val/labels/blood_069.txt @@ -0,0 +1 @@ +0 0.477178 0.413876 0.091286 0.081340 diff --git a/ai/data/stain/val/labels/blood_071.txt b/ai/data/stain/val/labels/blood_071.txt new file mode 100644 index 000000000..96e068191 --- /dev/null +++ b/ai/data/stain/val/labels/blood_071.txt @@ -0,0 +1,6 @@ +0 0.862069 0.367816 0.151724 0.252874 +0 0.817241 0.876437 0.220690 0.247126 +0 0.375862 0.583333 0.641379 0.649425 +0 0.610345 0.045977 0.151724 0.080460 +0 0.977586 0.301724 0.044828 0.120690 +0 0.818966 0.551724 0.113793 0.080460 diff --git a/ai/data/stain/val/labels/blood_075.txt b/ai/data/stain/val/labels/blood_075.txt new file mode 100644 index 000000000..098e8feab --- /dev/null +++ b/ai/data/stain/val/labels/blood_075.txt @@ -0,0 +1,3 @@ +0 0.692460 0.750000 0.059524 0.060000 +0 0.845238 0.487500 0.039683 0.065000 +0 0.779762 0.575000 0.043651 0.090000 diff --git a/ai/data/stain/val/labels/blood_077.txt b/ai/data/stain/val/labels/blood_077.txt new file mode 100644 index 000000000..6488a6fc3 --- /dev/null +++ b/ai/data/stain/val/labels/blood_077.txt @@ -0,0 +1,3 @@ +0 0.346021 0.480000 0.145329 0.137143 +0 0.553633 0.602857 0.089965 0.108571 +0 0.638408 0.394286 0.058824 0.091429 diff --git a/ai/data/stain/val/labels/blood_084.txt b/ai/data/stain/val/labels/blood_084.txt new file mode 100644 index 000000000..4df49b89f --- /dev/null +++ b/ai/data/stain/val/labels/blood_084.txt @@ -0,0 +1,4 @@ +0 0.232727 0.491803 0.087273 0.153005 +0 0.396364 0.513661 0.123636 0.153005 +0 0.340000 0.685792 0.120000 0.169399 +0 0.214545 0.721311 0.101818 0.120219 diff --git a/ai/data/stain/val/labels/blood_085.txt b/ai/data/stain/val/labels/blood_085.txt new file mode 100644 index 000000000..358c2cd15 --- /dev/null +++ b/ai/data/stain/val/labels/blood_085.txt @@ -0,0 +1,2 @@ +0 0.547273 0.497268 0.090909 0.262295 +0 0.518182 0.825137 0.134545 0.338798 diff --git a/ai/data/stain/val/labels/blood_093.txt b/ai/data/stain/val/labels/blood_093.txt new file mode 100644 index 000000000..cc5368f41 --- /dev/null +++ b/ai/data/stain/val/labels/blood_093.txt @@ -0,0 +1,4 @@ +0 0.432990 0.498069 0.051546 0.123552 +0 0.543814 0.306950 0.067010 0.034749 +0 0.670103 0.250965 0.072165 0.061776 +0 0.726804 0.324324 0.051546 0.038610 diff --git a/ai/data/stain/val/labels/blood_097.txt b/ai/data/stain/val/labels/blood_097.txt new file mode 100644 index 000000000..b083d6e76 --- /dev/null +++ b/ai/data/stain/val/labels/blood_097.txt @@ -0,0 +1,3 @@ +0 0.540000 0.560109 0.156364 0.224044 +0 0.743636 0.565574 0.170909 0.497268 +0 0.796364 0.254098 0.072727 0.125683 diff --git a/ai/data/stain/val/labels/blood_099.txt b/ai/data/stain/val/labels/blood_099.txt new file mode 100644 index 000000000..649dc6f05 --- /dev/null +++ b/ai/data/stain/val/labels/blood_099.txt @@ -0,0 +1,2 @@ +0 0.417526 0.306950 0.268041 0.235521 +0 0.615979 0.548263 0.283505 0.223938 diff --git a/ai/data/stain/val/labels/coffee_001.txt b/ai/data/stain/val/labels/coffee_001.txt new file mode 100644 index 000000000..b7acbad9c --- /dev/null +++ b/ai/data/stain/val/labels/coffee_001.txt @@ -0,0 +1 @@ +1 0.282609 0.538690 0.150502 0.363095 diff --git a/ai/data/stain/val/labels/coffee_005.txt b/ai/data/stain/val/labels/coffee_005.txt new file mode 100644 index 000000000..bd542fb86 --- /dev/null +++ b/ai/data/stain/val/labels/coffee_005.txt @@ -0,0 +1 @@ +1 0.195423 0.646893 0.214789 0.310734 diff --git a/ai/data/stain/val/labels/coffee_010.txt b/ai/data/stain/val/labels/coffee_010.txt new file mode 100644 index 000000000..2c9acdbf8 --- /dev/null +++ b/ai/data/stain/val/labels/coffee_010.txt @@ -0,0 +1 @@ +1 0.669091 0.532787 0.254545 0.879781 diff --git a/ai/data/stain/val/labels/coffee_011.txt b/ai/data/stain/val/labels/coffee_011.txt new file mode 100644 index 000000000..d059c24b8 --- /dev/null +++ b/ai/data/stain/val/labels/coffee_011.txt @@ -0,0 +1 @@ +1 0.554054 0.365639 0.108108 0.123348 diff --git a/ai/data/stain/val/labels/coffee_019.txt b/ai/data/stain/val/labels/coffee_019.txt new file mode 100644 index 000000000..552b7a320 --- /dev/null +++ b/ai/data/stain/val/labels/coffee_019.txt @@ -0,0 +1 @@ +1 0.091525 0.163743 0.074576 0.233918 diff --git a/ai/data/stain/val/labels/coffee_021.txt b/ai/data/stain/val/labels/coffee_021.txt new file mode 100644 index 000000000..dbb113b95 --- /dev/null +++ b/ai/data/stain/val/labels/coffee_021.txt @@ -0,0 +1 @@ +1 0.330909 0.215847 0.065455 0.213115 diff --git a/ai/data/stain/val/labels/coffee_024.txt b/ai/data/stain/val/labels/coffee_024.txt new file mode 100644 index 000000000..1fbb1d488 --- /dev/null +++ b/ai/data/stain/val/labels/coffee_024.txt @@ -0,0 +1,2 @@ +1 0.543750 0.631250 0.062500 0.100000 +1 0.450000 0.691406 0.096875 0.110937 diff --git a/ai/data/stain/val/labels/coffee_035.txt b/ai/data/stain/val/labels/coffee_035.txt new file mode 100644 index 000000000..33a32f482 --- /dev/null +++ b/ai/data/stain/val/labels/coffee_035.txt @@ -0,0 +1,4 @@ +1 0.822115 0.206731 0.110577 0.149038 +1 0.655048 0.259615 0.117788 0.216346 +1 0.789663 0.677885 0.161058 0.096154 +1 0.901442 0.532452 0.062500 0.209135 diff --git a/ai/data/stain/val/labels/coffee_050.txt b/ai/data/stain/val/labels/coffee_050.txt new file mode 100644 index 000000000..fc23e5c9b --- /dev/null +++ b/ai/data/stain/val/labels/coffee_050.txt @@ -0,0 +1,2 @@ +1 0.632212 0.645433 0.274038 0.242788 +1 0.758413 0.456731 0.209135 0.105769 diff --git a/ai/data/stain/val/labels/coffee_051.txt b/ai/data/stain/val/labels/coffee_051.txt new file mode 100644 index 000000000..bc4e596b8 --- /dev/null +++ b/ai/data/stain/val/labels/coffee_051.txt @@ -0,0 +1,2 @@ +1 0.840144 0.754808 0.185096 0.134615 +1 0.804087 0.890625 0.112981 0.112981 diff --git a/ai/data/stain/val/labels/coffee_055.txt b/ai/data/stain/val/labels/coffee_055.txt new file mode 100644 index 000000000..ced5e1f09 --- /dev/null +++ b/ai/data/stain/val/labels/coffee_055.txt @@ -0,0 +1 @@ +1 0.768029 0.370192 0.079327 0.125000 diff --git a/ai/data/stain/val/labels/coffee_067.txt b/ai/data/stain/val/labels/coffee_067.txt new file mode 100644 index 000000000..7bb3cce1a --- /dev/null +++ b/ai/data/stain/val/labels/coffee_067.txt @@ -0,0 +1,3 @@ +1 0.753606 0.418269 0.218750 0.115385 +1 0.635817 0.313702 0.060096 0.074519 +1 0.721154 0.520433 0.100962 0.064904 diff --git a/ai/data/stain/val/labels/coffee_070.txt b/ai/data/stain/val/labels/coffee_070.txt new file mode 100644 index 000000000..1552e3645 --- /dev/null +++ b/ai/data/stain/val/labels/coffee_070.txt @@ -0,0 +1,3 @@ +1 0.475962 0.378606 0.144231 0.156250 +1 0.508413 0.593750 0.151442 0.129808 +1 0.461538 0.813702 0.100962 0.084135 diff --git a/ai/data/stain/val/labels/coffee_072.txt b/ai/data/stain/val/labels/coffee_072.txt new file mode 100644 index 000000000..545b7370e --- /dev/null +++ b/ai/data/stain/val/labels/coffee_072.txt @@ -0,0 +1 @@ +1 0.651442 0.718750 0.100962 0.091346 diff --git a/ai/data/stain/val/labels/coffee_075.txt b/ai/data/stain/val/labels/coffee_075.txt new file mode 100644 index 000000000..cca24f65b --- /dev/null +++ b/ai/data/stain/val/labels/coffee_075.txt @@ -0,0 +1,7 @@ +1 0.558894 0.510817 0.040865 0.069712 +1 0.622596 0.389423 0.048077 0.163462 +1 0.545673 0.342548 0.024038 0.026442 +1 0.362981 0.355769 0.038462 0.024038 +1 0.324519 0.554087 0.024038 0.031250 +1 0.325721 0.685096 0.026442 0.028846 +1 0.388221 0.259615 0.060096 0.052885 diff --git a/ai/data/stain/val/labels/coffee_078.txt b/ai/data/stain/val/labels/coffee_078.txt new file mode 100644 index 000000000..58c4a26cc --- /dev/null +++ b/ai/data/stain/val/labels/coffee_078.txt @@ -0,0 +1 @@ +1 0.656250 0.395433 0.182692 0.194712 diff --git a/ai/data/stain/val/labels/coffee_079.txt b/ai/data/stain/val/labels/coffee_079.txt new file mode 100644 index 000000000..263f8bb94 --- /dev/null +++ b/ai/data/stain/val/labels/coffee_079.txt @@ -0,0 +1,2 @@ +1 0.602163 0.290865 0.084135 0.158654 +1 0.480769 0.342548 0.057692 0.112981 diff --git a/ai/data/stain/val/labels/coffee_087.txt b/ai/data/stain/val/labels/coffee_087.txt new file mode 100644 index 000000000..e9bee8d65 --- /dev/null +++ b/ai/data/stain/val/labels/coffee_087.txt @@ -0,0 +1,2 @@ +1 0.580529 0.772837 0.262019 0.132212 +1 0.912260 0.544471 0.098558 0.074519 diff --git a/ai/data/stain/val/labels/earth_109.txt b/ai/data/stain/val/labels/earth_109.txt new file mode 100644 index 000000000..8d7300553 --- /dev/null +++ b/ai/data/stain/val/labels/earth_109.txt @@ -0,0 +1,4 @@ +2 0.408879 0.625000 0.079439 0.131356 +2 0.621495 0.622881 0.074766 0.127119 +2 0.338785 0.489407 0.070093 0.122881 +2 0.738318 0.512712 0.037383 0.076271 diff --git a/ai/data/stain/val/labels/earth_115.txt b/ai/data/stain/val/labels/earth_115.txt new file mode 100644 index 000000000..0875b40bb --- /dev/null +++ b/ai/data/stain/val/labels/earth_115.txt @@ -0,0 +1,4 @@ +2 0.708763 0.291506 0.139175 0.096525 +2 0.884021 0.418919 0.097938 0.166023 +2 0.595361 0.555985 0.108247 0.077220 +2 0.530928 0.461390 0.061856 0.073359 diff --git a/ai/data/stain/val/labels/earth_125.txt b/ai/data/stain/val/labels/earth_125.txt new file mode 100644 index 000000000..0337a902d --- /dev/null +++ b/ai/data/stain/val/labels/earth_125.txt @@ -0,0 +1,2 @@ +2 0.427273 0.513661 0.301818 0.218579 +2 0.343636 0.677596 0.105455 0.087432 diff --git a/ai/data/stain/val/labels/earth_127.txt b/ai/data/stain/val/labels/earth_127.txt new file mode 100644 index 000000000..5ef9c0b95 --- /dev/null +++ b/ai/data/stain/val/labels/earth_127.txt @@ -0,0 +1,3 @@ +2 0.429260 0.543210 0.073955 0.308642 +2 0.665595 0.614198 0.070740 0.277778 +2 0.350482 0.509259 0.025723 0.104938 diff --git a/ai/data/stain/val/labels/earth_128.txt b/ai/data/stain/val/labels/earth_128.txt new file mode 100644 index 000000000..195e82a91 --- /dev/null +++ b/ai/data/stain/val/labels/earth_128.txt @@ -0,0 +1,2 @@ +2 0.738095 0.545000 0.095238 0.083333 +2 0.279762 0.523333 0.083333 0.080000 diff --git a/ai/data/stain/val/labels/earth_130.txt b/ai/data/stain/val/labels/earth_130.txt new file mode 100644 index 000000000..ddb7a6805 --- /dev/null +++ b/ai/data/stain/val/labels/earth_130.txt @@ -0,0 +1,2 @@ +2 0.240000 0.593333 0.222222 0.191111 +2 0.777778 0.480000 0.231111 0.364444 diff --git a/ai/data/stain/val/labels/earth_133.txt b/ai/data/stain/val/labels/earth_133.txt new file mode 100644 index 000000000..208f9a658 --- /dev/null +++ b/ai/data/stain/val/labels/earth_133.txt @@ -0,0 +1,7 @@ +2 0.536260 0.791667 0.103053 0.156250 +2 0.509542 0.914062 0.087786 0.067708 +2 0.698473 0.533854 0.083969 0.109375 +2 0.458015 0.778646 0.030534 0.067708 +2 0.425573 0.830729 0.034351 0.046875 +2 0.633588 0.979167 0.045802 0.041667 +2 0.204198 0.583333 0.072519 0.062500 diff --git a/ai/data/stain/val/labels/earth_134.txt b/ai/data/stain/val/labels/earth_134.txt new file mode 100644 index 000000000..26e2d99fe --- /dev/null +++ b/ai/data/stain/val/labels/earth_134.txt @@ -0,0 +1,2 @@ +2 0.341818 0.896175 0.116364 0.207650 +2 0.472727 0.945355 0.036364 0.098361 diff --git a/ai/data/stain/val/labels/earth_135.txt b/ai/data/stain/val/labels/earth_135.txt new file mode 100644 index 000000000..9c66113b5 --- /dev/null +++ b/ai/data/stain/val/labels/earth_135.txt @@ -0,0 +1,2 @@ +2 0.416667 0.398810 0.073333 0.369048 +2 0.661667 0.473214 0.063333 0.208333 diff --git a/ai/data/stain/val/labels/earth_138.txt b/ai/data/stain/val/labels/earth_138.txt new file mode 100644 index 000000000..c5c13aab4 --- /dev/null +++ b/ai/data/stain/val/labels/earth_138.txt @@ -0,0 +1,5 @@ +2 0.330909 0.057377 0.116364 0.103825 +2 0.532727 0.062842 0.112727 0.114754 +2 0.641818 0.155738 0.069091 0.125683 +2 0.698182 0.584699 0.050909 0.065574 +2 0.214545 0.857923 0.240000 0.218579 diff --git a/ai/data/stain/val/labels/earth_142.txt b/ai/data/stain/val/labels/earth_142.txt new file mode 100644 index 000000000..8a6e1b4f0 --- /dev/null +++ b/ai/data/stain/val/labels/earth_142.txt @@ -0,0 +1 @@ +2 0.505618 0.743386 0.284644 0.386243 diff --git a/ai/data/stain/val/labels/earth_143.txt b/ai/data/stain/val/labels/earth_143.txt new file mode 100644 index 000000000..25c5dfe25 --- /dev/null +++ b/ai/data/stain/val/labels/earth_143.txt @@ -0,0 +1 @@ +2 0.503636 0.538251 0.134545 0.224044 diff --git a/ai/data/stain/val/labels/earth_147.txt b/ai/data/stain/val/labels/earth_147.txt new file mode 100644 index 000000000..bca96fef3 --- /dev/null +++ b/ai/data/stain/val/labels/earth_147.txt @@ -0,0 +1 @@ +2 0.698997 0.205357 0.086957 0.184524 diff --git a/ai/data/stain/val/labels/earth_19.txt b/ai/data/stain/val/labels/earth_19.txt new file mode 100644 index 000000000..86de398fb --- /dev/null +++ b/ai/data/stain/val/labels/earth_19.txt @@ -0,0 +1 @@ +2 0.488679 0.384211 0.147170 0.284211 diff --git a/ai/data/stain/val/labels/earth_20.txt b/ai/data/stain/val/labels/earth_20.txt new file mode 100644 index 000000000..84258d80f --- /dev/null +++ b/ai/data/stain/val/labels/earth_20.txt @@ -0,0 +1 @@ +2 0.666023 0.471649 0.088803 0.139175 diff --git a/ai/data/stain/val/labels/earth_25.txt b/ai/data/stain/val/labels/earth_25.txt new file mode 100644 index 000000000..69b1865d9 --- /dev/null +++ b/ai/data/stain/val/labels/earth_25.txt @@ -0,0 +1,2 @@ +2 0.478333 0.574405 0.056667 0.148810 +2 0.325000 0.607143 0.070000 0.154762 diff --git a/ai/data/stain/val/labels/earth_36.txt b/ai/data/stain/val/labels/earth_36.txt new file mode 100644 index 000000000..881d478e9 --- /dev/null +++ b/ai/data/stain/val/labels/earth_36.txt @@ -0,0 +1,2 @@ +2 0.352830 0.368421 0.056604 0.189474 +2 0.743396 0.534211 0.075472 0.173684 diff --git a/ai/data/stain/val/labels/earth_37.txt b/ai/data/stain/val/labels/earth_37.txt new file mode 100644 index 000000000..f08cc9982 --- /dev/null +++ b/ai/data/stain/val/labels/earth_37.txt @@ -0,0 +1,4 @@ +2 0.366667 0.542411 0.040000 0.049107 +2 0.502222 0.571429 0.017778 0.044643 +2 0.477778 0.616071 0.031111 0.026786 +2 0.542222 0.580357 0.026667 0.026786 diff --git a/ai/data/stain/val/labels/earth_38.txt b/ai/data/stain/val/labels/earth_38.txt new file mode 100644 index 000000000..c76db3c4c --- /dev/null +++ b/ai/data/stain/val/labels/earth_38.txt @@ -0,0 +1,6 @@ +2 0.183636 0.357923 0.156364 0.224044 +2 0.563636 0.871585 0.320000 0.256831 +2 0.925455 0.267760 0.120000 0.196721 +2 0.785455 0.442623 0.072727 0.262295 +2 0.660000 0.065574 0.105455 0.120219 +2 0.534545 0.267760 0.174545 0.174863 diff --git a/ai/data/stain/val/labels/earth_4.txt b/ai/data/stain/val/labels/earth_4.txt new file mode 100644 index 000000000..ca2ce4ad8 --- /dev/null +++ b/ai/data/stain/val/labels/earth_4.txt @@ -0,0 +1,2 @@ +2 0.670968 0.496933 0.103226 0.134969 +2 0.874194 0.582822 0.083871 0.171779 diff --git a/ai/data/stain/val/labels/earth_40.txt b/ai/data/stain/val/labels/earth_40.txt new file mode 100644 index 000000000..1097165a5 --- /dev/null +++ b/ai/data/stain/val/labels/earth_40.txt @@ -0,0 +1,2 @@ +2 0.590909 0.379781 0.069091 0.125683 +2 0.101818 0.636612 0.065455 0.158470 diff --git a/ai/data/stain/val/labels/earth_42.txt b/ai/data/stain/val/labels/earth_42.txt new file mode 100644 index 000000000..8f2836417 --- /dev/null +++ b/ai/data/stain/val/labels/earth_42.txt @@ -0,0 +1 @@ +2 0.503448 0.511494 0.131034 0.310345 diff --git a/ai/data/stain/val/labels/earth_47.txt b/ai/data/stain/val/labels/earth_47.txt new file mode 100644 index 000000000..77d4010db --- /dev/null +++ b/ai/data/stain/val/labels/earth_47.txt @@ -0,0 +1,2 @@ +2 0.420755 0.194737 0.056604 0.126316 +2 0.773585 0.155263 0.045283 0.100000 diff --git a/ai/data/stain/val/labels/earth_5.txt b/ai/data/stain/val/labels/earth_5.txt new file mode 100644 index 000000000..f9ec9be66 --- /dev/null +++ b/ai/data/stain/val/labels/earth_5.txt @@ -0,0 +1 @@ +2 0.604247 0.530928 0.212355 0.309278 diff --git a/ai/data/stain/val/labels/earth_60.txt b/ai/data/stain/val/labels/earth_60.txt new file mode 100644 index 000000000..8764c8b44 --- /dev/null +++ b/ai/data/stain/val/labels/earth_60.txt @@ -0,0 +1,2 @@ +2 0.505000 0.544643 0.063333 0.101190 +2 0.400000 0.491071 0.046667 0.065476 diff --git a/ai/data/stain/val/labels/earth_64.txt b/ai/data/stain/val/labels/earth_64.txt new file mode 100644 index 000000000..a0ec2a450 --- /dev/null +++ b/ai/data/stain/val/labels/earth_64.txt @@ -0,0 +1,2 @@ +2 0.200000 0.666667 0.046667 0.107143 +2 0.770000 0.836310 0.073333 0.136905 diff --git a/ai/data/stain/val/labels/earth_84.txt b/ai/data/stain/val/labels/earth_84.txt new file mode 100644 index 000000000..db0d0ba4e --- /dev/null +++ b/ai/data/stain/val/labels/earth_84.txt @@ -0,0 +1 @@ +2 0.518333 0.422619 0.223333 0.226190 diff --git a/ai/data/stain/val/labels/earth_85.txt b/ai/data/stain/val/labels/earth_85.txt new file mode 100644 index 000000000..9a570f3f5 --- /dev/null +++ b/ai/data/stain/val/labels/earth_85.txt @@ -0,0 +1,5 @@ +2 0.271795 0.488372 0.112821 0.116279 +2 0.258974 0.116279 0.117949 0.062016 +2 0.612821 0.255814 0.087179 0.062016 +2 0.671795 0.449612 0.102564 0.054264 +2 0.266667 0.286822 0.071795 0.077519 diff --git a/ai/data/stain/val/labels/earth_93.txt b/ai/data/stain/val/labels/earth_93.txt new file mode 100644 index 000000000..80762832b --- /dev/null +++ b/ai/data/stain/val/labels/earth_93.txt @@ -0,0 +1,3 @@ +2 0.656364 0.551913 0.207273 0.327869 +2 0.481818 0.625683 0.112727 0.333333 +2 0.358182 0.658470 0.105455 0.147541 diff --git a/ai/data/stain/val/labels/ink_008.txt b/ai/data/stain/val/labels/ink_008.txt new file mode 100644 index 000000000..836dbe9f5 --- /dev/null +++ b/ai/data/stain/val/labels/ink_008.txt @@ -0,0 +1 @@ +3 0.514706 0.612903 0.080882 0.182796 diff --git a/ai/data/stain/val/labels/ink_013.txt b/ai/data/stain/val/labels/ink_013.txt new file mode 100644 index 000000000..5b2627cc1 --- /dev/null +++ b/ai/data/stain/val/labels/ink_013.txt @@ -0,0 +1 @@ +3 0.285455 0.352459 0.083636 0.092896 diff --git a/ai/data/stain/val/labels/ink_018.txt b/ai/data/stain/val/labels/ink_018.txt new file mode 100644 index 000000000..e3ada1850 --- /dev/null +++ b/ai/data/stain/val/labels/ink_018.txt @@ -0,0 +1 @@ +3 0.748188 0.434426 0.228261 0.278689 diff --git a/ai/data/stain/val/labels/ink_033.txt b/ai/data/stain/val/labels/ink_033.txt new file mode 100644 index 000000000..d96b1564f --- /dev/null +++ b/ai/data/stain/val/labels/ink_033.txt @@ -0,0 +1 @@ +3 0.478448 0.344828 0.071839 0.151724 diff --git a/ai/data/stain/val/labels/ink_037.txt b/ai/data/stain/val/labels/ink_037.txt new file mode 100644 index 000000000..0e35d4e02 --- /dev/null +++ b/ai/data/stain/val/labels/ink_037.txt @@ -0,0 +1 @@ +3 0.662116 0.462209 0.129693 0.156977 diff --git a/ai/data/stain/val/labels/ink_041.txt b/ai/data/stain/val/labels/ink_041.txt new file mode 100644 index 000000000..1ada053a6 --- /dev/null +++ b/ai/data/stain/val/labels/ink_041.txt @@ -0,0 +1 @@ +3 0.721992 0.461722 0.024896 0.033493 diff --git a/ai/data/stain/val/labels/ink_044.txt b/ai/data/stain/val/labels/ink_044.txt new file mode 100644 index 000000000..8496d8d53 --- /dev/null +++ b/ai/data/stain/val/labels/ink_044.txt @@ -0,0 +1 @@ +3 0.464883 0.824405 0.073579 0.184524 diff --git a/ai/data/stain/val/labels/ink_052.txt b/ai/data/stain/val/labels/ink_052.txt new file mode 100644 index 000000000..2658073e7 --- /dev/null +++ b/ai/data/stain/val/labels/ink_052.txt @@ -0,0 +1 @@ +3 0.482692 0.837629 0.157692 0.077320 diff --git a/ai/data/stain/val/labels/ink_061.txt b/ai/data/stain/val/labels/ink_061.txt new file mode 100644 index 000000000..0853a3570 --- /dev/null +++ b/ai/data/stain/val/labels/ink_061.txt @@ -0,0 +1 @@ +3 0.636364 0.631148 0.210909 0.311475 diff --git a/ai/data/stain/val/labels/ink_062.txt b/ai/data/stain/val/labels/ink_062.txt new file mode 100644 index 000000000..22cf2f2a9 --- /dev/null +++ b/ai/data/stain/val/labels/ink_062.txt @@ -0,0 +1 @@ +3 0.460000 0.464481 0.120000 0.131148 diff --git a/ai/data/stain/val/labels/ink_063.txt b/ai/data/stain/val/labels/ink_063.txt new file mode 100644 index 000000000..74c6a05fc --- /dev/null +++ b/ai/data/stain/val/labels/ink_063.txt @@ -0,0 +1 @@ +3 0.742222 0.828889 0.133333 0.128889 diff --git a/ai/data/stain/val/labels/ink_065.txt b/ai/data/stain/val/labels/ink_065.txt new file mode 100644 index 000000000..da663a9ed --- /dev/null +++ b/ai/data/stain/val/labels/ink_065.txt @@ -0,0 +1 @@ +3 0.529963 0.441489 0.123596 0.138298 diff --git a/ai/data/stain/val/labels/ink_069.txt b/ai/data/stain/val/labels/ink_069.txt new file mode 100644 index 000000000..3379b646b --- /dev/null +++ b/ai/data/stain/val/labels/ink_069.txt @@ -0,0 +1 @@ +3 0.490909 0.546448 0.058182 0.076503 diff --git a/ai/data/stain/val/labels/ink_083.txt b/ai/data/stain/val/labels/ink_083.txt new file mode 100644 index 000000000..105b3ce09 --- /dev/null +++ b/ai/data/stain/val/labels/ink_083.txt @@ -0,0 +1,2 @@ +3 0.610825 0.447876 0.149485 0.092664 +3 0.590206 0.577220 0.149485 0.142857 diff --git a/ai/data/stain/val/labels/ink_086.txt b/ai/data/stain/val/labels/ink_086.txt new file mode 100644 index 000000000..22d222b8b --- /dev/null +++ b/ai/data/stain/val/labels/ink_086.txt @@ -0,0 +1,7 @@ +3 0.536082 0.362934 0.061856 0.038610 +3 0.603093 0.416988 0.041237 0.030888 +3 0.592784 0.619691 0.092784 0.111969 +3 0.530928 0.779923 0.051546 0.038610 +3 0.515464 0.861004 0.041237 0.054054 +3 0.414948 0.291506 0.077320 0.027027 +3 0.559278 0.293436 0.046392 0.030888 diff --git a/ai/data/stain/val/labels/ink_088.txt b/ai/data/stain/val/labels/ink_088.txt new file mode 100644 index 000000000..639eb16d9 --- /dev/null +++ b/ai/data/stain/val/labels/ink_088.txt @@ -0,0 +1,3 @@ +3 0.567010 0.438224 0.041237 0.034749 +3 0.551546 0.625483 0.061856 0.038610 +3 0.525773 0.777992 0.103093 0.065637 diff --git a/ai/data/stain/val/labels/kimchi_003.txt b/ai/data/stain/val/labels/kimchi_003.txt new file mode 100644 index 000000000..441b53d2e --- /dev/null +++ b/ai/data/stain/val/labels/kimchi_003.txt @@ -0,0 +1,9 @@ +4 0.216406 0.124219 0.032813 0.032813 +4 0.289062 0.312500 0.028125 0.021875 +4 0.521094 0.207813 0.026562 0.028125 +4 0.521875 0.287500 0.028125 0.034375 +4 0.648438 0.393750 0.059375 0.065625 +4 0.614062 0.489844 0.100000 0.092188 +4 0.328906 0.643750 0.307812 0.312500 +4 0.259375 0.886719 0.056250 0.035937 +4 0.362500 0.872656 0.062500 0.042188 diff --git a/ai/data/stain/val/labels/kimchi_009.txt b/ai/data/stain/val/labels/kimchi_009.txt new file mode 100644 index 000000000..b75d0a4af --- /dev/null +++ b/ai/data/stain/val/labels/kimchi_009.txt @@ -0,0 +1,2 @@ +4 0.451562 0.432031 0.262500 0.242188 +4 0.514062 0.615625 0.106250 0.078125 diff --git a/ai/data/stain/val/labels/kimchi_013.txt b/ai/data/stain/val/labels/kimchi_013.txt new file mode 100644 index 000000000..c255e374e --- /dev/null +++ b/ai/data/stain/val/labels/kimchi_013.txt @@ -0,0 +1,4 @@ +4 0.417969 0.293750 0.129688 0.090625 +4 0.463281 0.430469 0.204687 0.151562 +4 0.268750 0.419531 0.125000 0.064062 +4 0.701562 0.614062 0.056250 0.062500 diff --git a/ai/data/stain/val/labels/kimchi_033.txt b/ai/data/stain/val/labels/kimchi_033.txt new file mode 100644 index 000000000..eaca11d51 --- /dev/null +++ b/ai/data/stain/val/labels/kimchi_033.txt @@ -0,0 +1,9 @@ +4 0.442308 0.360577 0.091346 0.076923 +4 0.588942 0.451923 0.115385 0.139423 +4 0.599760 0.562500 0.050481 0.052885 +4 0.467548 0.848558 0.156250 0.139423 +4 0.284856 0.843750 0.055288 0.043269 +4 0.443510 0.524038 0.170673 0.168269 +4 0.760817 0.500000 0.079327 0.062500 +4 0.731971 0.552885 0.117788 0.062500 +4 0.689904 0.604567 0.024038 0.026442 diff --git a/ai/data/stain/val/labels/kimchi_038.txt b/ai/data/stain/val/labels/kimchi_038.txt new file mode 100644 index 000000000..eea2b27a7 --- /dev/null +++ b/ai/data/stain/val/labels/kimchi_038.txt @@ -0,0 +1,3 @@ +4 0.331731 0.483173 0.062500 0.076923 +4 0.322115 0.600962 0.038462 0.043269 +4 0.631010 0.677885 0.223558 0.346154 diff --git a/ai/data/stain/val/labels/kimchi_041.txt b/ai/data/stain/val/labels/kimchi_041.txt new file mode 100644 index 000000000..20aa182f6 --- /dev/null +++ b/ai/data/stain/val/labels/kimchi_041.txt @@ -0,0 +1,7 @@ +4 0.632212 0.352163 0.052885 0.040865 +4 0.551683 0.408654 0.050481 0.043269 +4 0.460337 0.485577 0.098558 0.115385 +4 0.629808 0.562500 0.096154 0.076923 +4 0.861779 0.447115 0.098558 0.096154 +4 0.824519 0.524038 0.086538 0.062500 +4 0.522837 0.368990 0.093750 0.026442 diff --git a/ai/data/stain/val/labels/kimchi_043.txt b/ai/data/stain/val/labels/kimchi_043.txt new file mode 100644 index 000000000..072f1d327 --- /dev/null +++ b/ai/data/stain/val/labels/kimchi_043.txt @@ -0,0 +1 @@ +4 0.530048 0.426683 0.069712 0.064904 diff --git a/ai/data/stain/val/labels/kimchi_050.txt b/ai/data/stain/val/labels/kimchi_050.txt new file mode 100644 index 000000000..125d9aa33 --- /dev/null +++ b/ai/data/stain/val/labels/kimchi_050.txt @@ -0,0 +1,3 @@ +4 0.555288 0.510817 0.225962 0.213942 +4 0.537260 0.784856 0.026442 0.026442 +4 0.555288 0.510817 0.307692 0.382212 diff --git a/ai/data/stain/val/labels/kimchi_057.txt b/ai/data/stain/val/labels/kimchi_057.txt new file mode 100644 index 000000000..e469339ad --- /dev/null +++ b/ai/data/stain/val/labels/kimchi_057.txt @@ -0,0 +1,3 @@ +4 0.584135 0.453125 0.197115 0.189904 +4 0.475962 0.578125 0.057692 0.093750 +4 0.472356 0.450721 0.055288 0.093750 diff --git a/ai/data/stain/val/labels/kimchi_058.txt b/ai/data/stain/val/labels/kimchi_058.txt new file mode 100644 index 000000000..807e2b265 --- /dev/null +++ b/ai/data/stain/val/labels/kimchi_058.txt @@ -0,0 +1,3 @@ +4 0.230769 0.532452 0.048077 0.165865 +4 0.346154 0.614183 0.129808 0.156250 +4 0.725962 0.707933 0.091346 0.199519 diff --git a/ai/data/stain/val/labels/kimchi_062.txt b/ai/data/stain/val/labels/kimchi_062.txt new file mode 100644 index 000000000..ac6a70468 --- /dev/null +++ b/ai/data/stain/val/labels/kimchi_062.txt @@ -0,0 +1,8 @@ +4 0.545673 0.276442 0.052885 0.052885 +4 0.644231 0.324519 0.033654 0.057692 +4 0.581731 0.408654 0.100962 0.100962 +4 0.498798 0.360577 0.060096 0.062500 +4 0.481971 0.490385 0.036058 0.028846 +4 0.572115 0.492788 0.038462 0.048077 +4 0.593750 0.544471 0.038462 0.026442 +4 0.576923 0.354567 0.091346 0.045673 diff --git a/ai/data/stain/val/labels/kimchi_066.txt b/ai/data/stain/val/labels/kimchi_066.txt new file mode 100644 index 000000000..cad6c4ac2 --- /dev/null +++ b/ai/data/stain/val/labels/kimchi_066.txt @@ -0,0 +1,7 @@ +4 0.483173 0.320913 0.052885 0.060096 +4 0.554087 0.514423 0.151442 0.105769 +4 0.455529 0.647837 0.069712 0.108173 +4 0.355769 0.665865 0.091346 0.072115 +4 0.266827 0.872596 0.129808 0.076923 +4 0.163462 0.795673 0.038462 0.033654 +4 0.320913 0.753606 0.026442 0.016827 diff --git a/ai/data/stain/val/labels/kimchi_072.txt b/ai/data/stain/val/labels/kimchi_072.txt new file mode 100644 index 000000000..5a3af7497 --- /dev/null +++ b/ai/data/stain/val/labels/kimchi_072.txt @@ -0,0 +1,3 @@ +4 0.457933 0.596154 0.088942 0.110577 +4 0.533654 0.521635 0.019231 0.048077 +4 0.540865 0.468750 0.019231 0.019231 diff --git a/ai/data/stain/val/labels/kimchi_083.txt b/ai/data/stain/val/labels/kimchi_083.txt new file mode 100644 index 000000000..c3a1995d3 --- /dev/null +++ b/ai/data/stain/val/labels/kimchi_083.txt @@ -0,0 +1,3 @@ +4 0.361779 0.258413 0.045673 0.074519 +4 0.432692 0.358173 0.158654 0.177885 +4 0.429087 0.362981 0.108173 0.057692 diff --git a/ai/data/stain/val/labels/kimchi_089.txt b/ai/data/stain/val/labels/kimchi_089.txt new file mode 100644 index 000000000..f1cd69be2 --- /dev/null +++ b/ai/data/stain/val/labels/kimchi_089.txt @@ -0,0 +1,2 @@ +4 0.324519 0.591346 0.163462 0.086538 +4 0.353365 0.527644 0.052885 0.060096 diff --git a/ai/data/stain/val/labels/kimchi_090.txt b/ai/data/stain/val/labels/kimchi_090.txt new file mode 100644 index 000000000..7c14cfce2 --- /dev/null +++ b/ai/data/stain/val/labels/kimchi_090.txt @@ -0,0 +1,4 @@ +4 0.544471 0.472356 0.084135 0.069712 +4 0.697115 0.462740 0.028846 0.026442 +4 0.265625 0.457933 0.036058 0.026442 +4 0.080529 0.468750 0.060096 0.043269 diff --git a/ai/data/stain/val/labels/kimchi_095.txt b/ai/data/stain/val/labels/kimchi_095.txt new file mode 100644 index 000000000..4e7ce22c1 --- /dev/null +++ b/ai/data/stain/val/labels/kimchi_095.txt @@ -0,0 +1,6 @@ +4 0.147837 0.010817 0.036058 0.016827 +4 0.331731 0.271635 0.052885 0.072115 +4 0.033654 0.176683 0.019231 0.016827 +4 0.485577 0.531250 0.062500 0.091346 +4 0.479567 0.704327 0.031250 0.033654 +4 0.337740 0.826923 0.026442 0.024038 diff --git a/ai/data/stain/val/labels/kimchi_096.txt b/ai/data/stain/val/labels/kimchi_096.txt new file mode 100644 index 000000000..e5db54238 --- /dev/null +++ b/ai/data/stain/val/labels/kimchi_096.txt @@ -0,0 +1,9 @@ +4 0.167067 0.275240 0.093750 0.088942 +4 0.155048 0.406250 0.117788 0.125000 +4 0.137019 0.212740 0.019231 0.016827 +4 0.185096 0.217548 0.024038 0.016827 +4 0.828125 0.323317 0.146635 0.141827 +4 0.754808 0.406250 0.028846 0.033654 +4 0.721154 0.441106 0.033654 0.040865 +4 0.052885 0.330529 0.033654 0.036058 +4 0.096154 0.313702 0.019231 0.031250 diff --git a/ai/data/stain/val/labels/lipstick_10.txt b/ai/data/stain/val/labels/lipstick_10.txt new file mode 100644 index 000000000..6962099a0 --- /dev/null +++ b/ai/data/stain/val/labels/lipstick_10.txt @@ -0,0 +1 @@ +5 0.640000 0.530055 0.109091 0.207650 diff --git a/ai/data/stain/val/labels/lipstick_16.txt b/ai/data/stain/val/labels/lipstick_16.txt new file mode 100644 index 000000000..aee6775b1 --- /dev/null +++ b/ai/data/stain/val/labels/lipstick_16.txt @@ -0,0 +1,3 @@ +5 0.449091 0.521858 0.185455 0.191257 +5 0.543636 0.428962 0.040000 0.060109 +5 0.643636 0.527322 0.065455 0.103825 diff --git a/ai/data/stain/val/labels/lipstick_18.txt b/ai/data/stain/val/labels/lipstick_18.txt new file mode 100644 index 000000000..4a81a8c94 --- /dev/null +++ b/ai/data/stain/val/labels/lipstick_18.txt @@ -0,0 +1 @@ +5 0.589091 0.669399 0.080000 0.060109 diff --git a/ai/data/stain/val/labels/lipstick_22.txt b/ai/data/stain/val/labels/lipstick_22.txt new file mode 100644 index 000000000..174f6d8e8 --- /dev/null +++ b/ai/data/stain/val/labels/lipstick_22.txt @@ -0,0 +1 @@ +5 0.708333 0.464883 0.071429 0.026756 diff --git a/ai/data/stain/val/labels/lipstick_31.txt b/ai/data/stain/val/labels/lipstick_31.txt new file mode 100644 index 000000000..6d3aa9480 --- /dev/null +++ b/ai/data/stain/val/labels/lipstick_31.txt @@ -0,0 +1 @@ +5 0.755952 0.576923 0.154762 0.103679 diff --git a/ai/data/stain/val/labels/lipstick_4.txt b/ai/data/stain/val/labels/lipstick_4.txt new file mode 100644 index 000000000..5729d7851 --- /dev/null +++ b/ai/data/stain/val/labels/lipstick_4.txt @@ -0,0 +1 @@ +5 0.437778 0.717778 0.448889 0.200000 diff --git a/ai/data/stain/val/labels/lipstick_40.txt b/ai/data/stain/val/labels/lipstick_40.txt new file mode 100644 index 000000000..337c97d37 --- /dev/null +++ b/ai/data/stain/val/labels/lipstick_40.txt @@ -0,0 +1 @@ +5 0.405462 0.554245 0.298319 0.221698 diff --git a/ai/data/stain/val/labels/lipstick_47.txt b/ai/data/stain/val/labels/lipstick_47.txt new file mode 100644 index 000000000..fe76bc097 --- /dev/null +++ b/ai/data/stain/val/labels/lipstick_47.txt @@ -0,0 +1,3 @@ +5 0.341085 0.520513 0.317829 0.282051 +5 0.288760 0.323077 0.127907 0.153846 +5 0.428295 0.402564 0.151163 0.138462 diff --git a/ai/data/stain/val/labels/lipstick_50.txt b/ai/data/stain/val/labels/lipstick_50.txt new file mode 100644 index 000000000..c8a23530f --- /dev/null +++ b/ai/data/stain/val/labels/lipstick_50.txt @@ -0,0 +1,2 @@ +5 0.238235 0.469595 0.088235 0.222973 +5 0.316176 0.760135 0.197059 0.195946 diff --git a/ai/data/stain/val/labels/lipstick_51.txt b/ai/data/stain/val/labels/lipstick_51.txt new file mode 100644 index 000000000..aad322427 --- /dev/null +++ b/ai/data/stain/val/labels/lipstick_51.txt @@ -0,0 +1,2 @@ +5 0.315217 0.478142 0.094203 0.081967 +5 0.324275 0.442623 0.054348 0.054645 diff --git a/ai/data/stain/val/labels/lipstick_52.txt b/ai/data/stain/val/labels/lipstick_52.txt new file mode 100644 index 000000000..ed3e7c5e3 --- /dev/null +++ b/ai/data/stain/val/labels/lipstick_52.txt @@ -0,0 +1,3 @@ +5 0.356982 0.340708 0.069820 0.238938 +5 0.476351 0.128319 0.033784 0.115044 +5 0.581081 0.336283 0.166667 0.460177 diff --git a/ai/data/stain/val/labels/lipstick_54.txt b/ai/data/stain/val/labels/lipstick_54.txt new file mode 100644 index 000000000..9e1f1ab85 --- /dev/null +++ b/ai/data/stain/val/labels/lipstick_54.txt @@ -0,0 +1,7 @@ +5 0.587121 0.321990 0.166667 0.225131 +5 0.700758 0.565445 0.143939 0.104712 +5 0.717803 0.672775 0.178030 0.120419 +5 0.634470 0.764398 0.132576 0.104712 +5 0.609848 0.866492 0.196970 0.151832 +5 0.371212 0.717277 0.181818 0.104712 +5 0.371212 0.801047 0.151515 0.136126 diff --git a/ai/data/stain/val/labels/lipstick_59.txt b/ai/data/stain/val/labels/lipstick_59.txt new file mode 100644 index 000000000..0566723a7 --- /dev/null +++ b/ai/data/stain/val/labels/lipstick_59.txt @@ -0,0 +1 @@ +5 0.445000 0.508929 0.243333 0.279762 diff --git a/ai/data/stain/val/labels/lipstick_60.txt b/ai/data/stain/val/labels/lipstick_60.txt new file mode 100644 index 000000000..2fe9fe9a5 --- /dev/null +++ b/ai/data/stain/val/labels/lipstick_60.txt @@ -0,0 +1,2 @@ +5 0.500000 0.590164 0.294545 0.349727 +5 0.552727 0.382514 0.101818 0.142077 diff --git a/ai/data/stain/val/labels/lipstick_66.txt b/ai/data/stain/val/labels/lipstick_66.txt new file mode 100644 index 000000000..35f9887ff --- /dev/null +++ b/ai/data/stain/val/labels/lipstick_66.txt @@ -0,0 +1,4 @@ +5 0.715847 0.485455 0.185792 0.098182 +5 0.109290 0.474545 0.065574 0.025455 +5 0.284153 0.820000 0.065574 0.061818 +5 0.836066 0.825455 0.032787 0.072727 diff --git a/ai/data/stain/val/labels/lipstick_71.txt b/ai/data/stain/val/labels/lipstick_71.txt new file mode 100644 index 000000000..b5067bc9c --- /dev/null +++ b/ai/data/stain/val/labels/lipstick_71.txt @@ -0,0 +1 @@ +5 0.484496 0.366667 0.093023 0.117949 diff --git a/ai/data/stain/val/labels/lipstick_8.txt b/ai/data/stain/val/labels/lipstick_8.txt new file mode 100644 index 000000000..a2b43398b --- /dev/null +++ b/ai/data/stain/val/labels/lipstick_8.txt @@ -0,0 +1,3 @@ +5 0.494932 0.494118 0.077703 0.141176 +5 0.547297 0.635294 0.060811 0.105882 +5 0.596284 0.955882 0.050676 0.088235 diff --git a/ai/data/stain/val/labels/lipstick_85.txt b/ai/data/stain/val/labels/lipstick_85.txt new file mode 100644 index 000000000..c85872e73 --- /dev/null +++ b/ai/data/stain/val/labels/lipstick_85.txt @@ -0,0 +1 @@ +5 0.530909 0.450820 0.101818 0.136612 diff --git a/ai/data/stain/val/labels/lipstick_89.txt b/ai/data/stain/val/labels/lipstick_89.txt new file mode 100644 index 000000000..bdf91befa --- /dev/null +++ b/ai/data/stain/val/labels/lipstick_89.txt @@ -0,0 +1 @@ +5 0.344262 0.263636 0.338798 0.207273 diff --git a/ai/data/stain/val/labels/lipstick_90.txt b/ai/data/stain/val/labels/lipstick_90.txt new file mode 100644 index 000000000..1e12af151 --- /dev/null +++ b/ai/data/stain/val/labels/lipstick_90.txt @@ -0,0 +1 @@ +5 0.380000 0.508889 0.244444 0.120000 diff --git a/ai/data/stain/val/labels/lipstick_91.txt b/ai/data/stain/val/labels/lipstick_91.txt new file mode 100644 index 000000000..4bda92c98 --- /dev/null +++ b/ai/data/stain/val/labels/lipstick_91.txt @@ -0,0 +1 @@ +5 0.583333 0.593333 0.357143 0.193333 diff --git a/ai/data/stain/val/labels/lipstick_93.txt b/ai/data/stain/val/labels/lipstick_93.txt new file mode 100644 index 000000000..2ab767b39 --- /dev/null +++ b/ai/data/stain/val/labels/lipstick_93.txt @@ -0,0 +1,12 @@ +5 0.433333 0.571111 0.164444 0.146667 +5 0.562222 0.675556 0.164444 0.142222 +5 0.377778 0.806667 0.097778 0.102222 +5 0.571111 0.902222 0.111111 0.097778 +5 0.742222 0.366667 0.133333 0.111111 +5 0.960000 0.462222 0.071111 0.115556 +5 0.953333 0.717778 0.075556 0.137778 +5 0.755556 0.691111 0.062222 0.093333 +5 0.048889 0.802222 0.071111 0.093333 +5 0.051111 0.473333 0.057778 0.057778 +5 0.766667 0.228889 0.084444 0.057778 +5 0.713333 0.315556 0.128889 0.080000 diff --git a/ai/data/stain/val/labels/mustard_003.txt b/ai/data/stain/val/labels/mustard_003.txt new file mode 100644 index 000000000..d5ccb9ed5 --- /dev/null +++ b/ai/data/stain/val/labels/mustard_003.txt @@ -0,0 +1,9 @@ +6 0.587329 0.248555 0.058219 0.046243 +6 0.642123 0.745665 0.133562 0.358382 +6 0.496575 0.907514 0.068493 0.127168 +4 0.270548 0.196532 0.041096 0.080925 +4 0.311644 0.306358 0.034247 0.080925 +4 0.304795 0.433526 0.041096 0.057803 +4 0.239726 0.560694 0.054795 0.104046 +4 0.210616 0.696532 0.044521 0.179191 +6 0.753425 0.696532 0.054795 0.121387 diff --git a/ai/data/stain/val/labels/mustard_018.txt b/ai/data/stain/val/labels/mustard_018.txt new file mode 100644 index 000000000..fb5a114b9 --- /dev/null +++ b/ai/data/stain/val/labels/mustard_018.txt @@ -0,0 +1 @@ +6 0.485119 0.503333 0.244048 0.266667 diff --git a/ai/data/stain/val/labels/mustard_024.txt b/ai/data/stain/val/labels/mustard_024.txt new file mode 100644 index 000000000..9d94be63c --- /dev/null +++ b/ai/data/stain/val/labels/mustard_024.txt @@ -0,0 +1,6 @@ +6 0.289091 0.390710 0.076364 0.213115 +6 0.209091 0.568306 0.032727 0.054645 +6 0.312727 0.540984 0.036364 0.054645 +6 0.341818 0.633880 0.050909 0.109290 +6 0.363636 0.795082 0.036364 0.038251 +6 0.380000 0.860656 0.025455 0.038251 diff --git a/ai/data/stain/val/labels/mustard_027.txt b/ai/data/stain/val/labels/mustard_027.txt new file mode 100644 index 000000000..709d3e604 --- /dev/null +++ b/ai/data/stain/val/labels/mustard_027.txt @@ -0,0 +1,2 @@ +6 0.511905 0.353333 0.130952 0.060000 +6 0.452381 0.786667 0.047619 0.033333 diff --git a/ai/data/stain/val/labels/mustard_045.txt b/ai/data/stain/val/labels/mustard_045.txt new file mode 100644 index 000000000..9939d1c9e --- /dev/null +++ b/ai/data/stain/val/labels/mustard_045.txt @@ -0,0 +1 @@ +6 0.402222 0.893333 0.146667 0.186667 diff --git a/ai/data/stain/val/labels/mustard_050.txt b/ai/data/stain/val/labels/mustard_050.txt new file mode 100644 index 000000000..b8bcda5a2 --- /dev/null +++ b/ai/data/stain/val/labels/mustard_050.txt @@ -0,0 +1,4 @@ +6 0.401818 0.513661 0.323636 0.207650 +6 0.730909 0.450820 0.174545 0.234973 +6 0.641818 0.713115 0.149091 0.224044 +6 0.349091 0.606557 0.065455 0.131148 diff --git a/ai/data/stain/val/labels/mustard_051.txt b/ai/data/stain/val/labels/mustard_051.txt new file mode 100644 index 000000000..8fe603c13 --- /dev/null +++ b/ai/data/stain/val/labels/mustard_051.txt @@ -0,0 +1 @@ +6 0.672131 0.496364 0.065574 0.069091 diff --git a/ai/data/stain/val/labels/mustard_053.txt b/ai/data/stain/val/labels/mustard_053.txt new file mode 100644 index 000000000..de23ed534 --- /dev/null +++ b/ai/data/stain/val/labels/mustard_053.txt @@ -0,0 +1,2 @@ +6 0.637066 0.399485 0.115830 0.128866 +6 0.704633 0.768041 0.057915 0.103093 diff --git a/ai/data/stain/val/labels/mustard_054.txt b/ai/data/stain/val/labels/mustard_054.txt new file mode 100644 index 000000000..b84dcdb14 --- /dev/null +++ b/ai/data/stain/val/labels/mustard_054.txt @@ -0,0 +1,6 @@ +6 0.717778 0.271111 0.253333 0.204444 +6 0.495556 0.586667 0.084444 0.533333 +6 0.862222 0.813333 0.151111 0.364444 +6 0.608889 0.542222 0.782222 0.906667 +6 0.673333 0.557778 0.120000 0.066667 +6 0.835556 0.522222 0.106667 0.200000 diff --git a/ai/data/stain/val/labels/mustard_065.txt b/ai/data/stain/val/labels/mustard_065.txt new file mode 100644 index 000000000..cec5754d9 --- /dev/null +++ b/ai/data/stain/val/labels/mustard_065.txt @@ -0,0 +1,4 @@ +6 0.412568 0.641818 0.081967 0.054545 +6 0.344262 0.776364 0.153005 0.178182 +6 0.486339 0.769091 0.054645 0.047273 +6 0.510929 0.670909 0.038251 0.047273 diff --git a/ai/data/stain/val/labels/mustard_066.txt b/ai/data/stain/val/labels/mustard_066.txt new file mode 100644 index 000000000..ce31e123a --- /dev/null +++ b/ai/data/stain/val/labels/mustard_066.txt @@ -0,0 +1 @@ +6 0.511194 0.454787 0.067164 0.101064 diff --git a/ai/data/stain/val/labels/mustard_074.txt b/ai/data/stain/val/labels/mustard_074.txt new file mode 100644 index 000000000..59434df9f --- /dev/null +++ b/ai/data/stain/val/labels/mustard_074.txt @@ -0,0 +1,6 @@ +6 0.218182 0.415301 0.225455 0.426230 +6 0.327273 0.603825 0.269091 0.355191 +6 0.541818 0.721311 0.298182 0.284153 +6 0.761818 0.650273 0.229091 0.207650 +6 0.240000 0.163934 0.123636 0.142077 +6 0.485455 0.513661 0.767273 0.972678 diff --git a/ai/data/stain/val/labels/mustard_083.txt b/ai/data/stain/val/labels/mustard_083.txt new file mode 100644 index 000000000..9ceace350 --- /dev/null +++ b/ai/data/stain/val/labels/mustard_083.txt @@ -0,0 +1,9 @@ +6 0.262548 0.172680 0.092664 0.128866 +6 0.370656 0.265464 0.115830 0.149485 +6 0.428571 0.376289 0.092664 0.103093 +6 0.484556 0.471649 0.042471 0.046392 +6 0.743243 0.579897 0.050193 0.087629 +6 0.656371 0.659794 0.108108 0.144330 +6 0.727799 0.690722 0.027027 0.041237 +6 0.799228 0.796392 0.069498 0.128866 +6 0.727799 0.804124 0.104247 0.144330 diff --git a/ai/data/stain/val/labels/mustard_084.txt b/ai/data/stain/val/labels/mustard_084.txt new file mode 100644 index 000000000..a0766336c --- /dev/null +++ b/ai/data/stain/val/labels/mustard_084.txt @@ -0,0 +1,4 @@ +6 0.196429 0.590000 0.095238 0.060000 +6 0.455357 0.643333 0.089286 0.046667 +6 0.735119 0.721667 0.065476 0.063333 +6 0.666667 0.255000 0.071429 0.050000 diff --git a/ai/data/stain/val/labels/oil_001.txt b/ai/data/stain/val/labels/oil_001.txt new file mode 100644 index 000000000..885916e72 --- /dev/null +++ b/ai/data/stain/val/labels/oil_001.txt @@ -0,0 +1 @@ +7 0.750000 0.729167 0.393333 0.529762 diff --git a/ai/data/stain/val/labels/oil_003.txt b/ai/data/stain/val/labels/oil_003.txt new file mode 100644 index 000000000..bccc0133b --- /dev/null +++ b/ai/data/stain/val/labels/oil_003.txt @@ -0,0 +1 @@ +7 0.484556 0.440722 0.552124 0.314433 diff --git a/ai/data/stain/val/labels/oil_013.txt b/ai/data/stain/val/labels/oil_013.txt new file mode 100644 index 000000000..446d33e86 --- /dev/null +++ b/ai/data/stain/val/labels/oil_013.txt @@ -0,0 +1 @@ +7 0.590909 0.560109 0.156364 0.191257 diff --git a/ai/data/stain/val/labels/oil_015.txt b/ai/data/stain/val/labels/oil_015.txt new file mode 100644 index 000000000..b7e4e2201 --- /dev/null +++ b/ai/data/stain/val/labels/oil_015.txt @@ -0,0 +1,3 @@ +7 0.251366 0.738182 0.262295 0.240000 +7 0.584699 0.734545 0.371585 0.472727 +7 0.311475 0.436364 0.491803 0.174545 diff --git a/ai/data/stain/val/labels/oil_018.txt b/ai/data/stain/val/labels/oil_018.txt new file mode 100644 index 000000000..b527c79c0 --- /dev/null +++ b/ai/data/stain/val/labels/oil_018.txt @@ -0,0 +1,2 @@ +7 0.486622 0.866071 0.137124 0.220238 +7 0.687291 0.773810 0.090301 0.142857 diff --git a/ai/data/stain/val/labels/oil_022.txt b/ai/data/stain/val/labels/oil_022.txt new file mode 100644 index 000000000..ec59efeae --- /dev/null +++ b/ai/data/stain/val/labels/oil_022.txt @@ -0,0 +1,2 @@ +7 0.557778 0.395556 0.164444 0.088889 +7 0.500000 0.753333 0.288889 0.315556 diff --git a/ai/data/stain/val/labels/oil_028.txt b/ai/data/stain/val/labels/oil_028.txt new file mode 100644 index 000000000..adffd85ea --- /dev/null +++ b/ai/data/stain/val/labels/oil_028.txt @@ -0,0 +1,4 @@ +7 0.443452 0.528333 0.125000 0.096667 +7 0.392857 0.638333 0.130952 0.076667 +7 0.747024 0.306667 0.089286 0.073333 +7 0.729167 0.383333 0.113095 0.073333 diff --git a/ai/data/stain/val/labels/oil_034.txt b/ai/data/stain/val/labels/oil_034.txt new file mode 100644 index 000000000..5f762d333 --- /dev/null +++ b/ai/data/stain/val/labels/oil_034.txt @@ -0,0 +1 @@ +7 0.551237 0.199438 0.176678 0.252809 diff --git a/ai/data/stain/val/labels/oil_037.txt b/ai/data/stain/val/labels/oil_037.txt new file mode 100644 index 000000000..4234ea66e --- /dev/null +++ b/ai/data/stain/val/labels/oil_037.txt @@ -0,0 +1,3 @@ +7 0.455598 0.358247 0.123552 0.118557 +7 0.364865 0.582474 0.073359 0.092784 +7 0.563707 0.636598 0.054054 0.067010 diff --git a/ai/data/stain/val/labels/oil_077.txt b/ai/data/stain/val/labels/oil_077.txt new file mode 100644 index 000000000..59d063736 --- /dev/null +++ b/ai/data/stain/val/labels/oil_077.txt @@ -0,0 +1 @@ +7 0.198454 0.845560 0.345361 0.247104 diff --git a/ai/data/stain/val/labels/oil_078.txt b/ai/data/stain/val/labels/oil_078.txt new file mode 100644 index 000000000..a2eaba60e --- /dev/null +++ b/ai/data/stain/val/labels/oil_078.txt @@ -0,0 +1,3 @@ +7 0.396907 0.416988 0.226804 0.200772 +7 0.533505 0.297297 0.190722 0.162162 +7 0.515464 0.637066 0.103093 0.123552 diff --git a/ai/data/stain/val/labels/oil_079.txt b/ai/data/stain/val/labels/oil_079.txt new file mode 100644 index 000000000..49f583af4 --- /dev/null +++ b/ai/data/stain/val/labels/oil_079.txt @@ -0,0 +1 @@ +7 0.438144 0.449807 0.185567 0.150579 diff --git a/ai/data/stain/val/labels/oil_081.txt b/ai/data/stain/val/labels/oil_081.txt new file mode 100644 index 000000000..50e5677c0 --- /dev/null +++ b/ai/data/stain/val/labels/oil_081.txt @@ -0,0 +1 @@ +7 0.492268 0.583012 0.190722 0.247104 diff --git a/ai/data/stain/val/labels/oil_096.txt b/ai/data/stain/val/labels/oil_096.txt new file mode 100644 index 000000000..b50e47224 --- /dev/null +++ b/ai/data/stain/val/labels/oil_096.txt @@ -0,0 +1,4 @@ +7 0.800000 0.342014 0.171429 0.100694 +7 0.711429 0.612847 0.337143 0.184028 +7 0.422857 0.590278 0.148571 0.090278 +7 0.705714 0.835069 0.108571 0.079861 diff --git a/ai/data/stain/val/labels/wine_006.txt b/ai/data/stain/val/labels/wine_006.txt new file mode 100644 index 000000000..76d992d8b --- /dev/null +++ b/ai/data/stain/val/labels/wine_006.txt @@ -0,0 +1 @@ +8 0.574545 0.295082 0.312727 0.229508 diff --git a/ai/data/stain/val/labels/wine_007.txt b/ai/data/stain/val/labels/wine_007.txt new file mode 100644 index 000000000..8a1a839a9 --- /dev/null +++ b/ai/data/stain/val/labels/wine_007.txt @@ -0,0 +1,2 @@ +8 0.254545 0.472678 0.145455 0.202186 +8 0.321818 0.849727 0.200000 0.300546 diff --git a/ai/data/stain/val/labels/wine_023.txt b/ai/data/stain/val/labels/wine_023.txt new file mode 100644 index 000000000..2bc6918e3 --- /dev/null +++ b/ai/data/stain/val/labels/wine_023.txt @@ -0,0 +1 @@ +8 0.403010 0.723214 0.143813 0.136905 diff --git a/ai/data/stain/val/labels/wine_025.txt b/ai/data/stain/val/labels/wine_025.txt new file mode 100644 index 000000000..f684bc140 --- /dev/null +++ b/ai/data/stain/val/labels/wine_025.txt @@ -0,0 +1,3 @@ +8 0.675000 0.571429 0.043333 0.107143 +8 0.655000 0.699405 0.043333 0.089286 +8 0.646667 0.806548 0.053333 0.077381 diff --git a/ai/data/stain/val/labels/wine_026.txt b/ai/data/stain/val/labels/wine_026.txt new file mode 100644 index 000000000..eae92870c --- /dev/null +++ b/ai/data/stain/val/labels/wine_026.txt @@ -0,0 +1,4 @@ +8 0.609434 0.418421 0.215094 0.363158 +8 0.554717 0.678947 0.233962 0.242105 +8 0.722642 0.563158 0.079245 0.442105 +8 0.866038 0.423684 0.109434 0.152632 diff --git a/ai/data/stain/val/labels/wine_027.txt b/ai/data/stain/val/labels/wine_027.txt new file mode 100644 index 000000000..dc9e7ace0 --- /dev/null +++ b/ai/data/stain/val/labels/wine_027.txt @@ -0,0 +1,3 @@ +8 0.441818 0.480874 0.265455 0.404372 +8 0.545455 0.448087 0.036364 0.087432 +8 0.652727 0.532787 0.149091 0.114754 diff --git a/ai/data/stain/val/labels/wine_032.txt b/ai/data/stain/val/labels/wine_032.txt new file mode 100644 index 000000000..154025b81 --- /dev/null +++ b/ai/data/stain/val/labels/wine_032.txt @@ -0,0 +1 @@ +8 0.520000 0.644809 0.290909 0.163934 diff --git a/ai/data/stain/val/labels/wine_044.txt b/ai/data/stain/val/labels/wine_044.txt new file mode 100644 index 000000000..a73db417b --- /dev/null +++ b/ai/data/stain/val/labels/wine_044.txt @@ -0,0 +1,2 @@ +8 0.451737 0.221649 0.084942 0.123711 +8 0.774131 0.293814 0.081081 0.103093 diff --git a/ai/data/stain/val/labels/wine_049.txt b/ai/data/stain/val/labels/wine_049.txt new file mode 100644 index 000000000..d2c64ac18 --- /dev/null +++ b/ai/data/stain/val/labels/wine_049.txt @@ -0,0 +1 @@ +8 0.345455 0.756831 0.276364 0.355191 diff --git a/ai/data/stain/val/labels/wine_051.txt b/ai/data/stain/val/labels/wine_051.txt new file mode 100644 index 000000000..1fd776a0d --- /dev/null +++ b/ai/data/stain/val/labels/wine_051.txt @@ -0,0 +1 @@ +8 0.600583 0.302721 0.064140 0.346939 diff --git a/ai/data/stain/val/labels/wine_052.txt b/ai/data/stain/val/labels/wine_052.txt new file mode 100644 index 000000000..4ea4e23e4 --- /dev/null +++ b/ai/data/stain/val/labels/wine_052.txt @@ -0,0 +1,2 @@ +8 0.363806 0.321809 0.108209 0.196809 +8 0.363806 0.585106 0.070896 0.095745 diff --git a/ai/data/stain/val/labels/wine_053.txt b/ai/data/stain/val/labels/wine_053.txt new file mode 100644 index 000000000..86eae1c7b --- /dev/null +++ b/ai/data/stain/val/labels/wine_053.txt @@ -0,0 +1,6 @@ +8 0.218750 0.394578 0.101974 0.162651 +8 0.273026 0.563253 0.092105 0.271084 +8 0.304276 0.756024 0.108553 0.150602 +8 0.536184 0.864458 0.256579 0.090361 +8 0.720395 0.650602 0.065789 0.349398 +8 0.366776 0.301205 0.121711 0.084337 diff --git a/ai/data/stain/val/labels/wine_055.txt b/ai/data/stain/val/labels/wine_055.txt new file mode 100644 index 000000000..fb96b8b94 --- /dev/null +++ b/ai/data/stain/val/labels/wine_055.txt @@ -0,0 +1 @@ +8 0.312709 0.291667 0.056856 0.095238 diff --git a/ai/data/stain/val/labels/wine_057.txt b/ai/data/stain/val/labels/wine_057.txt new file mode 100644 index 000000000..1a0ed1e41 --- /dev/null +++ b/ai/data/stain/val/labels/wine_057.txt @@ -0,0 +1,3 @@ +8 0.676364 0.366120 0.065455 0.142077 +8 0.605455 0.606557 0.178182 0.240437 +8 0.672727 0.775956 0.065455 0.109290 diff --git a/ai/data/stain/val/labels/wine_062.txt b/ai/data/stain/val/labels/wine_062.txt new file mode 100644 index 000000000..37055c32a --- /dev/null +++ b/ai/data/stain/val/labels/wine_062.txt @@ -0,0 +1,5 @@ +8 0.696335 0.676136 0.188482 0.094697 +8 0.481675 0.821970 0.115183 0.219697 +8 0.549738 0.818182 0.115183 0.181818 +8 0.722513 0.840909 0.157068 0.196970 +8 0.387435 0.566288 0.052356 0.026515 diff --git a/ai/data/stain/val/labels/wine_068.txt b/ai/data/stain/val/labels/wine_068.txt new file mode 100644 index 000000000..0dd3df904 --- /dev/null +++ b/ai/data/stain/val/labels/wine_068.txt @@ -0,0 +1,2 @@ +8 0.592727 0.644809 0.196364 0.557377 +8 0.541818 0.775956 0.254545 0.295082 diff --git a/ai/data/stain/val/labels/wine_072.txt b/ai/data/stain/val/labels/wine_072.txt new file mode 100644 index 000000000..02d859eb2 --- /dev/null +++ b/ai/data/stain/val/labels/wine_072.txt @@ -0,0 +1 @@ +8 0.280822 0.427746 0.171233 0.751445 diff --git a/ai/data/stain/val/labels/wine_074.txt b/ai/data/stain/val/labels/wine_074.txt new file mode 100644 index 000000000..e2f88fdff --- /dev/null +++ b/ai/data/stain/val/labels/wine_074.txt @@ -0,0 +1,5 @@ +8 0.488462 0.074742 0.046154 0.056701 +8 0.628846 0.188144 0.280769 0.077320 +8 0.409615 0.577320 0.119231 0.154639 +8 0.776923 0.505155 0.215385 0.134021 +8 0.786538 0.706186 0.165385 0.226804 diff --git a/ai/data/stain/val/labels/wine_077.txt b/ai/data/stain/val/labels/wine_077.txt new file mode 100644 index 000000000..970d01962 --- /dev/null +++ b/ai/data/stain/val/labels/wine_077.txt @@ -0,0 +1,3 @@ +8 0.603636 0.483607 0.414545 0.256831 +8 0.267273 0.639344 0.083636 0.306011 +8 0.523636 0.625683 0.116364 0.169399 diff --git a/ai/data/stain/val/labels/wine_082.txt b/ai/data/stain/val/labels/wine_082.txt new file mode 100644 index 000000000..f310ae200 --- /dev/null +++ b/ai/data/stain/val/labels/wine_082.txt @@ -0,0 +1,4 @@ +8 0.605000 0.422619 0.490000 0.452381 +8 0.573333 0.729167 0.320000 0.541667 +8 0.835000 0.610119 0.330000 0.446429 +8 0.693333 0.151786 0.286667 0.184524 diff --git a/ai/data/stain/val/labels/wine_083.txt b/ai/data/stain/val/labels/wine_083.txt new file mode 100644 index 000000000..b722c4715 --- /dev/null +++ b/ai/data/stain/val/labels/wine_083.txt @@ -0,0 +1,7 @@ +8 0.685567 0.463320 0.154639 0.115830 +8 0.481959 0.482625 0.108247 0.084942 +8 0.206186 0.671815 0.103093 0.061776 +8 0.608247 0.146718 0.082474 0.061776 +8 0.551546 0.723938 0.185567 0.081081 +8 0.597938 0.650579 0.041237 0.281853 +8 0.548969 0.847490 0.067010 0.042471 diff --git a/ai/data/stain/val/labels/wine_086.txt b/ai/data/stain/val/labels/wine_086.txt new file mode 100644 index 000000000..ccfe4bbe5 --- /dev/null +++ b/ai/data/stain/val/labels/wine_086.txt @@ -0,0 +1 @@ +8 0.472973 0.427835 0.104247 0.082474 diff --git a/ai/data/stain/val/labels/wine_091.txt b/ai/data/stain/val/labels/wine_091.txt new file mode 100644 index 000000000..299d30797 --- /dev/null +++ b/ai/data/stain/val/labels/wine_091.txt @@ -0,0 +1,5 @@ +8 0.251667 0.407738 0.256667 0.327381 +8 0.725000 0.330357 0.543333 0.184524 +8 0.588333 0.580357 0.223333 0.482143 +8 0.241667 0.735119 0.410000 0.529762 +8 0.740000 0.758929 0.306667 0.482143 diff --git a/ai/data/stain/val/labels/wine_093.txt b/ai/data/stain/val/labels/wine_093.txt new file mode 100644 index 000000000..fdc084f97 --- /dev/null +++ b/ai/data/stain/val/labels/wine_093.txt @@ -0,0 +1,4 @@ +8 0.293814 0.279923 0.195876 0.119691 +8 0.451031 0.386100 0.242268 0.138996 +8 0.659794 0.494208 0.257732 0.123552 +8 0.824742 0.571429 0.226804 0.131274 diff --git a/ai/data/stain/val/labels/wine_095.txt b/ai/data/stain/val/labels/wine_095.txt new file mode 100644 index 000000000..7b9a6330c --- /dev/null +++ b/ai/data/stain/val/labels/wine_095.txt @@ -0,0 +1 @@ +8 0.536364 0.543716 0.214545 0.311475 diff --git a/ai/data/stain/val/labels/wine_099.txt b/ai/data/stain/val/labels/wine_099.txt new file mode 100644 index 000000000..54e94e302 --- /dev/null +++ b/ai/data/stain/val/labels/wine_099.txt @@ -0,0 +1 @@ +8 0.427336 0.540230 0.169550 0.436782 diff --git a/ai/data/symbol/data.yaml b/ai/data/symbol/data.yaml new file mode 100644 index 000000000..7441e9f1f --- /dev/null +++ b/ai/data/symbol/data.yaml @@ -0,0 +1,49 @@ +train: /home/t25119/v109.src/ai/data/symbol/tain/images +val: /home/t25119/v109.src/ai/data/symbol/val/images +test: /home/t25119/v109.src/ai/data/symbol/test/images + +nc: 43 +names: + - 30C # 0 + - 40C # 1 + - 50C # 2 + - 60C # 3 + - 70C # 4 + - 95C # 5 + - DN_bleach # 6 + - DN_dry # 7 + - DN_dry_clean # 8 + - DN_iron # 9 + - DN_steam # 10 + - DN_tumble_dry # 11 + - DN_wash # 12 + - DN_wet_clean # 13 + - DN_wring # 14 + - bleach # 15 + - chlorine_bleach # 16 + - non_chlorine_bleach # 17 + - drip_dry # 18 + - drip_dry_in_shade # 19 + - dry_flat # 20 + - dry_flat_in_shade # 21 + - line_dry # 22 + - line_dry_in_shade # 23 + - natural_dry # 24 + - shade_dry # 25 + - dry_clean # 26 + - dry_clean_any_solvent_except_trichloroethylene # 27 + - dry_clean_petrol_only # 28 + - hand_wash # 29 + - machine_wash # 30 + - iron # 31 + - iron_high # 32 + - iron_medium # 33 + - iron_low # 34 + - steam # 35 + - tumble_dry_normal # 36 + - tumble_dry_low # 37 + - tumble_dry_medium # 38 + - tumble_dry_high # 39 + - tumble_dry_no_heat # 40 + - wet_clean # 41 + - wring # 42 diff --git a/ai/data/symbol/test/images/KakaoTalk_20250514_212707873.jpg b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873.jpg new file mode 100644 index 000000000..a9402084c Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_01.jpg b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_01.jpg new file mode 100644 index 000000000..30a9d5707 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_01.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_02.jpg b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_02.jpg new file mode 100644 index 000000000..0afaf3770 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_02.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_03.jpg b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_03.jpg new file mode 100644 index 000000000..ba761ef5d Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_03.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_04.jpg b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_04.jpg new file mode 100644 index 000000000..d2c77243d Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_04.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_05.jpg b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_05.jpg new file mode 100644 index 000000000..6985d37b1 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_05.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_06.jpg b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_06.jpg new file mode 100644 index 000000000..4dff94a5c Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_06.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_07.jpg b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_07.jpg new file mode 100644 index 000000000..09a7b7c34 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_07.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_08.jpg b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_08.jpg new file mode 100644 index 000000000..896eab4b3 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_08.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_09.jpg b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_09.jpg new file mode 100644 index 000000000..518c17c6d Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_09.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_10.jpg b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_10.jpg new file mode 100644 index 000000000..2db0d312b Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_10.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_11.jpg b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_11.jpg new file mode 100644 index 000000000..14eb8b808 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250514_212707873_11.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_111821393.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_111821393.jpg new file mode 100644 index 000000000..0175d3146 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_111821393.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_01.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_01.jpg new file mode 100644 index 000000000..2d4056a64 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_01.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_02.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_02.jpg new file mode 100644 index 000000000..95e0668d6 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_02.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_04.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_04.jpg new file mode 100644 index 000000000..a62e66268 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_04.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_05.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_05.jpg new file mode 100644 index 000000000..e9f32e6a2 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_05.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_06.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_06.jpg new file mode 100644 index 000000000..f82201000 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_06.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_07.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_07.jpg new file mode 100644 index 000000000..62eb2ccc5 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_07.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_08.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_08.jpg new file mode 100644 index 000000000..30fa39ede Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_08.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_09.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_09.jpg new file mode 100644 index 000000000..51a152ca4 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_09.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_10.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_10.jpg new file mode 100644 index 000000000..ca6cf473b Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_111821393_10.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_144454372.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_144454372.jpg new file mode 100644 index 000000000..373f5802c Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_144454372.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_01.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_01.jpg new file mode 100644 index 000000000..38a59f1ce Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_01.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_02.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_02.jpg new file mode 100644 index 000000000..d2423c42e Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_02.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_03.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_03.jpg new file mode 100644 index 000000000..341f26806 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_03.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_04.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_04.jpg new file mode 100644 index 000000000..191e461e3 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_04.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_05.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_05.jpg new file mode 100644 index 000000000..07ca347f1 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_05.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_06.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_06.jpg new file mode 100644 index 000000000..a9f180e1a Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_06.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_07.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_07.jpg new file mode 100644 index 000000000..2c382a86c Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_07.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_08.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_08.jpg new file mode 100644 index 000000000..990e27979 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_08.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_09.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_09.jpg new file mode 100644 index 000000000..d0b001f94 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_09.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_10.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_10.jpg new file mode 100644 index 000000000..7b18428f0 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_144454372_10.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_221400765.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_221400765.jpg new file mode 100644 index 000000000..979483e15 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_221400765.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_01.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_01.jpg new file mode 100644 index 000000000..a5c1ef59f Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_01.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_02.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_02.jpg new file mode 100644 index 000000000..339887dd6 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_02.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_03.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_03.jpg new file mode 100644 index 000000000..c9077a85b Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_03.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_04.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_04.jpg new file mode 100644 index 000000000..cf6674d5b Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_04.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_05.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_05.jpg new file mode 100644 index 000000000..be3a165ed Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_05.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_06.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_06.jpg new file mode 100644 index 000000000..25276f3a8 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_06.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_07.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_07.jpg new file mode 100644 index 000000000..84d1ab3b9 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_07.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_08.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_08.jpg new file mode 100644 index 000000000..1d3fc571e Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_08.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_09.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_09.jpg new file mode 100644 index 000000000..56a77a5d1 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_09.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_10.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_10.jpg new file mode 100644 index 000000000..0a63968ef Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_221400765_10.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_223034225.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_223034225.jpg new file mode 100644 index 000000000..6fd649048 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_223034225.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_01.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_01.jpg new file mode 100644 index 000000000..5022f5a5b Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_01.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_02.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_02.jpg new file mode 100644 index 000000000..ab7d9d216 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_02.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_03.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_03.jpg new file mode 100644 index 000000000..c5990bdee Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_03.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_04.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_04.jpg new file mode 100644 index 000000000..6701626f4 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_04.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_05.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_05.jpg new file mode 100644 index 000000000..6fa6632b3 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_05.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_06.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_06.jpg new file mode 100644 index 000000000..889a022ec Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_06.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_07.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_07.jpg new file mode 100644 index 000000000..4216c5bcd Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_07.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_09.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_09.jpg new file mode 100644 index 000000000..751bd8139 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_09.jpg differ diff --git a/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_10.jpg b/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_10.jpg new file mode 100644 index 000000000..c0a7a0696 Binary files /dev/null and b/ai/data/symbol/test/images/KakaoTalk_20250516_223034225_10.jpg differ diff --git a/ai/data/symbol/test/labels.cache b/ai/data/symbol/test/labels.cache new file mode 100644 index 000000000..1a455afdd Binary files /dev/null and b/ai/data/symbol/test/labels.cache differ diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873.txt b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873.txt new file mode 100644 index 000000000..c56048587 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873.txt @@ -0,0 +1,4 @@ +12 0.267692 0.802331 0.145172 0.099206 +6 0.420800 0.803075 0.152447 0.099206 +33 0.589451 0.807912 0.150463 0.094494 +26 0.751488 0.808036 0.139881 0.099206 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_01.txt b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_01.txt new file mode 100644 index 000000000..6f6860426 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_01.txt @@ -0,0 +1,5 @@ +0 0.170635 0.702753 0.130291 0.066220 +6 0.305556 0.700769 0.146164 0.076637 +37 0.434689 0.699157 0.114087 0.083333 +33 0.562169 0.703125 0.140873 0.071925 +8 0.708995 0.703869 0.156746 0.078373 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_02.txt b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_02.txt new file mode 100644 index 000000000..8f4ed20bc --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_02.txt @@ -0,0 +1,6 @@ +29 0.248016 0.481151 0.308201 0.138393 +17 0.531250 0.486731 0.237103 0.148065 +9 0.772817 0.467510 0.257275 0.128968 +21 0.788360 0.621156 0.205026 0.153026 +42 0.535549 0.630332 0.286045 0.108879 +11 0.261905 0.640749 0.259259 0.171379 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_03.txt b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_03.txt new file mode 100644 index 000000000..365c14541 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_03.txt @@ -0,0 +1,5 @@ +12 0.248181 0.775174 0.103505 0.086558 +6 0.349868 0.789187 0.113095 0.096726 +11 0.461475 0.807912 0.105489 0.100942 +9 0.576554 0.825149 0.116071 0.088790 +27 0.693452 0.830357 0.093915 0.071925 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_04.txt b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_04.txt new file mode 100644 index 000000000..39751c213 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_04.txt @@ -0,0 +1,15 @@ +0 0.221892 0.580357 0.117063 0.082341 +6 0.340939 0.580729 0.128968 0.091022 +6 0.346230 0.670387 0.126984 0.083333 +6 0.346065 0.754712 0.112103 0.075893 +0 0.224041 0.677951 0.110780 0.089038 +0 0.226190 0.765997 0.115079 0.087054 +11 0.458829 0.578373 0.136574 0.094246 +11 0.463624 0.750744 0.118386 0.077381 +11 0.696098 0.669891 0.116402 0.075893 +8 0.578208 0.676711 0.121362 0.095982 +8 0.696098 0.575149 0.120370 0.107143 +8 0.697751 0.757192 0.123677 0.074405 +34 0.581349 0.583085 0.123677 0.076885 +34 0.585152 0.761533 0.133267 0.080109 +34 0.461310 0.670263 0.128968 0.073661 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_05.txt b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_05.txt new file mode 100644 index 000000000..3709229b2 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_05.txt @@ -0,0 +1,3 @@ +0 0.317791 0.491443 0.085317 0.056796 +6 0.467262 0.494296 0.100529 0.057540 +31 0.627315 0.501860 0.104497 0.048859 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_06.txt b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_06.txt new file mode 100644 index 000000000..6a6219d4d --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_06.txt @@ -0,0 +1,5 @@ +26 0.148313 0.553943 0.136574 0.115823 +6 0.304563 0.550719 0.169312 0.136657 +11 0.479993 0.551959 0.176918 0.129712 +9 0.651786 0.555556 0.166667 0.112599 +12 0.827216 0.560764 0.178241 0.099206 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_07.txt b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_07.txt new file mode 100644 index 000000000..4a0a4f8ff --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_07.txt @@ -0,0 +1,5 @@ +1 0.208003 0.553447 0.149471 0.081597 +6 0.369544 0.550719 0.161045 0.112847 +11 0.517857 0.545883 0.139550 0.103175 +34 0.663029 0.544643 0.137566 0.078373 +27 0.805390 0.543155 0.102183 0.073413 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_08.txt b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_08.txt new file mode 100644 index 000000000..db27e4713 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_08.txt @@ -0,0 +1,5 @@ +0 0.167493 0.414311 0.149140 0.080109 +6 0.318452 0.418279 0.125000 0.075149 +37 0.450728 0.416419 0.105820 0.074405 +9 0.602183 0.421503 0.148148 0.083085 +8 0.772321 0.420759 0.138558 0.086558 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_09.txt b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_09.txt new file mode 100644 index 000000000..eb14e456e --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_09.txt @@ -0,0 +1,5 @@ +1 0.152612 0.462302 0.108796 0.079861 +17 0.261905 0.467138 0.105820 0.067212 +33 0.383929 0.467138 0.121693 0.088046 +26 0.503968 0.469122 0.109788 0.079117 +23 0.621858 0.471602 0.110780 0.084077 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_10.txt b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_10.txt new file mode 100644 index 000000000..0b3ce2eb6 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_10.txt @@ -0,0 +1,5 @@ +1 0.255126 0.696057 0.089616 0.081597 +17 0.362269 0.693576 0.114087 0.072173 +33 0.483796 0.696305 0.125000 0.084077 +26 0.596396 0.710813 0.100198 0.088790 +23 0.711971 0.737599 0.109788 0.079861 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_11.txt b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_11.txt new file mode 100644 index 000000000..108ccf3ae --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250514_212707873_11.txt @@ -0,0 +1,12 @@ +1 0.269841 0.573909 0.085317 0.052083 +6 0.358962 0.578745 0.071759 0.051835 +11 0.447421 0.577133 0.069444 0.045635 +21 0.532407 0.577877 0.066138 0.047123 +34 0.612269 0.577629 0.091601 0.049603 +8 0.687996 0.573909 0.068452 0.044147 +8 0.700231 0.650670 0.075728 0.050347 +10 0.614418 0.656002 0.068122 0.062500 +21 0.526951 0.658358 0.072421 0.055804 +11 0.433532 0.658730 0.088624 0.058532 +6 0.340939 0.656746 0.090608 0.056052 +1 0.245370 0.653522 0.089286 0.063988 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393.txt new file mode 100644 index 000000000..88b7f7505 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393.txt @@ -0,0 +1,6 @@ +0 0.073578 0.711062 0.091601 0.070437 +8 0.170635 0.711930 0.093915 0.068700 +6 0.273644 0.715154 0.114087 0.062252 +34 0.379795 0.711930 0.104828 0.059276 +11 0.480159 0.707589 0.093915 0.061508 +21 0.672123 0.702753 0.087632 0.068204 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_01.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_01.txt new file mode 100644 index 000000000..e6b5ccbe4 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_01.txt @@ -0,0 +1,5 @@ +29 0.170635 0.850694 0.102513 0.080853 +17 0.287037 0.851562 0.106481 0.080605 +34 0.398975 0.851066 0.108796 0.075149 +8 0.515708 0.853919 0.114087 0.090278 +23 0.629299 0.856771 0.113095 0.080109 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_02.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_02.txt new file mode 100644 index 000000000..21d751fa7 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_02.txt @@ -0,0 +1,5 @@ +12 0.205357 0.813864 0.105820 0.071181 +17 0.316799 0.816716 0.093915 0.071925 +34 0.419808 0.815104 0.092923 0.065724 +11 0.316799 0.883929 0.093915 0.059028 +28 0.212302 0.880828 0.089286 0.046379 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_04.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_04.txt new file mode 100644 index 000000000..8dca967b0 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_04.txt @@ -0,0 +1,5 @@ +29 0.769221 0.636243 0.114335 0.156746 +8 0.648934 0.644345 0.118304 0.140542 +17 0.517733 0.651290 0.129712 0.167659 +9 0.393229 0.650132 0.114335 0.139550 +42 0.253224 0.647983 0.147817 0.143849 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_05.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_05.txt new file mode 100644 index 000000000..47dacfe41 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_05.txt @@ -0,0 +1,5 @@ +0 0.515708 0.673983 0.073743 0.072669 +6 0.597388 0.677455 0.100198 0.075149 +34 0.692791 0.677579 0.097222 0.068948 +42 0.796792 0.675223 0.110780 0.052827 +23 0.900298 0.676339 0.091601 0.067956 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_06.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_06.txt new file mode 100644 index 000000000..ceb98e1d6 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_06.txt @@ -0,0 +1,6 @@ +12 0.244709 0.705481 0.118386 0.094494 +17 0.360615 0.712674 0.110780 0.094494 +34 0.470073 0.714782 0.122685 0.083829 +28 0.581515 0.717510 0.108796 0.086310 +42 0.689649 0.717510 0.116071 0.062500 +11 0.800595 0.720734 0.118386 0.092758 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_07.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_07.txt new file mode 100644 index 000000000..438bb6cc2 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_07.txt @@ -0,0 +1,6 @@ +29 0.193122 0.331225 0.087302 0.067212 +6 0.279597 0.339906 0.081019 0.059276 +34 0.353671 0.343874 0.077712 0.068700 +42 0.433201 0.347966 0.083333 0.036706 +23 0.513228 0.354663 0.074735 0.052083 +11 0.592593 0.359127 0.080026 0.059028 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_08.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_08.txt new file mode 100644 index 000000000..7c2b99a2c --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_08.txt @@ -0,0 +1,5 @@ +1 0.569610 0.389509 0.079034 0.068700 +17 0.651290 0.401538 0.094907 0.065476 +36 0.735119 0.404390 0.076720 0.064732 +33 0.829365 0.412698 0.111772 0.071925 +26 0.922784 0.416295 0.087632 0.063244 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_09.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_09.txt new file mode 100644 index 000000000..96530b2bb --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_09.txt @@ -0,0 +1,6 @@ +12 0.391534 0.638641 0.064153 0.045635 +7 0.395172 0.694320 0.062831 0.039931 +17 0.397983 0.753844 0.072421 0.042411 +31 0.395668 0.810764 0.070437 0.040675 +14 0.396329 0.867188 0.071759 0.039931 +26 0.395172 0.927579 0.052249 0.040675 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_10.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_10.txt new file mode 100644 index 000000000..97704f38b --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_111821393_10.txt @@ -0,0 +1,5 @@ +29 0.392526 0.899926 0.076720 0.060764 +17 0.475198 0.902282 0.078042 0.063988 +33 0.560516 0.901910 0.080026 0.056796 +28 0.635251 0.898438 0.073413 0.052827 +23 0.713624 0.898810 0.083333 0.060020 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372.txt new file mode 100644 index 000000000..38ff1b5ce --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372.txt @@ -0,0 +1,5 @@ +12 0.339352 0.523264 0.095370 0.075694 +6 0.439815 0.515972 0.088889 0.080556 +33 0.537963 0.515625 0.088889 0.068750 +28 0.639352 0.511458 0.087963 0.067361 +23 0.742130 0.507986 0.095370 0.070139 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_01.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_01.txt new file mode 100644 index 000000000..2257710f8 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_01.txt @@ -0,0 +1,6 @@ +29 0.172685 0.240278 0.117593 0.097222 +6 0.290278 0.244097 0.125000 0.092361 +34 0.404167 0.239236 0.117593 0.099306 +28 0.516667 0.241319 0.111111 0.090972 +42 0.634722 0.239931 0.125000 0.068750 +23 0.751852 0.239931 0.122222 0.089583 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_02.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_02.txt new file mode 100644 index 000000000..cd4e7544f --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_02.txt @@ -0,0 +1,5 @@ +29 0.192130 0.250000 0.134259 0.088889 +6 0.355093 0.249653 0.147222 0.093750 +8 0.512963 0.246181 0.140741 0.097917 +33 0.676852 0.241319 0.135185 0.095139 +23 0.842130 0.229861 0.123148 0.101389 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_03.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_03.txt new file mode 100644 index 000000000..ee1ad13a5 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_03.txt @@ -0,0 +1,5 @@ +29 0.218056 0.278125 0.106481 0.093750 +6 0.330093 0.284375 0.123148 0.090972 +34 0.439352 0.286806 0.121296 0.090278 +28 0.550000 0.285764 0.109259 0.081250 +23 0.666667 0.285764 0.111111 0.088194 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_04.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_04.txt new file mode 100644 index 000000000..aa8dc4f10 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_04.txt @@ -0,0 +1,4 @@ +0 0.317177 0.586503 0.113946 0.093252 +17 0.443878 0.590798 0.122449 0.072393 +33 0.581633 0.584663 0.122449 0.067485 +36 0.715136 0.585276 0.110544 0.078528 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_05.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_05.txt new file mode 100644 index 000000000..8df95b285 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_05.txt @@ -0,0 +1,6 @@ +29 0.390741 0.432639 0.075926 0.061111 +6 0.459722 0.435417 0.067593 0.055556 +34 0.530556 0.431597 0.068519 0.059028 +8 0.599537 0.435764 0.076852 0.059028 +42 0.672685 0.435069 0.076852 0.040972 +11 0.744907 0.434028 0.082407 0.062500 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_06.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_06.txt new file mode 100644 index 000000000..ba8585882 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_06.txt @@ -0,0 +1,7 @@ +1 0.129167 0.192361 0.117593 0.093056 +6 0.249074 0.194444 0.116667 0.090278 +33 0.365741 0.195833 0.122222 0.097222 +8 0.485648 0.196528 0.113889 0.090278 +42 0.605556 0.195486 0.124074 0.060417 +23 0.724074 0.197222 0.112963 0.083333 +11 0.849537 0.198264 0.121296 0.093750 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_07.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_07.txt new file mode 100644 index 000000000..b9e983ddb --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_07.txt @@ -0,0 +1,7 @@ +29 0.271759 0.351042 0.084259 0.064583 +6 0.349074 0.353819 0.081481 0.064583 +33 0.424537 0.355208 0.078704 0.061806 +8 0.500000 0.357292 0.075926 0.059028 +42 0.573611 0.357639 0.078704 0.045833 +23 0.647685 0.358681 0.073148 0.052083 +11 0.722685 0.360417 0.071296 0.056944 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_08.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_08.txt new file mode 100644 index 000000000..a265206e9 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_08.txt @@ -0,0 +1,5 @@ +0 0.192771 0.355015 0.132530 0.106831 +6 0.331325 0.352471 0.130522 0.111919 +33 0.467369 0.344113 0.133534 0.102471 +21 0.613454 0.330669 0.124498 0.100291 +11 0.757530 0.321221 0.155622 0.120640 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_09.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_09.txt new file mode 100644 index 000000000..6f997ed49 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_09.txt @@ -0,0 +1,5 @@ +0 0.441667 0.745139 0.048148 0.047222 +17 0.493981 0.739236 0.050926 0.039583 +34 0.548148 0.725347 0.050000 0.036806 +8 0.602315 0.721875 0.050926 0.040972 +11 0.654630 0.716319 0.051852 0.038194 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_10.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_10.txt new file mode 100644 index 000000000..11326d76a --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_144454372_10.txt @@ -0,0 +1,6 @@ +29 0.313889 0.414583 0.077778 0.058333 +6 0.386111 0.418056 0.077778 0.056944 +34 0.456019 0.418750 0.069444 0.056944 +8 0.529167 0.421528 0.071296 0.056944 +42 0.601852 0.422917 0.074074 0.038889 +21 0.671296 0.428125 0.064815 0.056250 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765.txt new file mode 100644 index 000000000..95d8f6149 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765.txt @@ -0,0 +1,5 @@ +12 0.280556 0.606597 0.092593 0.068750 +14 0.390278 0.623264 0.119444 0.056250 +25 0.494444 0.628472 0.088889 0.068056 +34 0.592593 0.632986 0.096296 0.072917 +26 0.683333 0.639583 0.085185 0.056944 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_01.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_01.txt new file mode 100644 index 000000000..2406cfb4d --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_01.txt @@ -0,0 +1,11 @@ +29 0.229880 0.129861 0.049029 0.040278 +6 0.293247 0.130556 0.051804 0.038889 +34 0.357539 0.131250 0.045328 0.040278 +8 0.421369 0.130903 0.050879 0.040972 +11 0.485199 0.130208 0.054579 0.040972 +21 0.549491 0.128472 0.048104 0.033333 +29 0.250694 0.181597 0.053654 0.038194 +6 0.325624 0.182986 0.055504 0.040972 +11 0.401018 0.182986 0.058279 0.040972 +20 0.477798 0.181944 0.056429 0.040278 +8 0.550416 0.179167 0.057354 0.043056 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_02.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_02.txt new file mode 100644 index 000000000..97effdef4 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_02.txt @@ -0,0 +1,4 @@ +30 0.362963 0.297569 0.096296 0.065972 +9 0.478704 0.286806 0.098148 0.063889 +6 0.598611 0.281597 0.099074 0.064583 +8 0.719907 0.279514 0.100926 0.070139 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_03.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_03.txt new file mode 100644 index 000000000..4aec88ab3 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_03.txt @@ -0,0 +1,4 @@ +26 0.421296 0.479167 0.059259 0.051389 +11 0.498148 0.477083 0.059259 0.047222 +34 0.577315 0.480903 0.073148 0.047917 +6 0.650926 0.478472 0.061111 0.045833 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_04.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_04.txt new file mode 100644 index 000000000..71ef054af --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_04.txt @@ -0,0 +1,5 @@ +30 0.259722 0.781597 0.112037 0.065972 +6 0.376852 0.788542 0.116667 0.067361 +31 0.490278 0.787500 0.104630 0.069444 +28 0.601389 0.784028 0.106481 0.081944 +18 0.715741 0.794444 0.098148 0.094444 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_05.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_05.txt new file mode 100644 index 000000000..a3c9e7c4c --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_05.txt @@ -0,0 +1,7 @@ +29 0.248148 0.379861 0.133333 0.095833 +6 0.378704 0.371181 0.127778 0.093750 +11 0.510185 0.362847 0.120370 0.097917 +21 0.643056 0.363542 0.132407 0.085417 +9 0.330093 0.465278 0.150926 0.095833 +8 0.468056 0.457639 0.119444 0.098611 +41 0.590741 0.456597 0.122222 0.096528 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_06.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_06.txt new file mode 100644 index 000000000..d66e7cb40 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_06.txt @@ -0,0 +1,4 @@ +29 0.143386 0.703472 0.085106 0.063889 +26 0.226642 0.705903 0.072155 0.053472 +6 0.298335 0.707639 0.071230 0.047222 +25 0.379741 0.707986 0.076781 0.057639 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_07.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_07.txt new file mode 100644 index 000000000..6f9259310 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_07.txt @@ -0,0 +1,5 @@ +12 0.336574 0.711806 0.084259 0.065278 +6 0.442593 0.710417 0.090741 0.069444 +34 0.545370 0.700347 0.094444 0.057639 +28 0.643056 0.688542 0.076852 0.057639 +11 0.741667 0.681597 0.094444 0.078472 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_08.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_08.txt new file mode 100644 index 000000000..3a92721e9 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_08.txt @@ -0,0 +1,4 @@ +29 0.376389 0.550694 0.106481 0.066667 +17 0.488889 0.569444 0.112963 0.073611 +33 0.610185 0.574653 0.112963 0.075694 +23 0.732870 0.588194 0.119444 0.076389 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_09.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_09.txt new file mode 100644 index 000000000..e9c678590 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_09.txt @@ -0,0 +1,5 @@ +29 0.393981 0.292014 0.091667 0.072917 +6 0.529167 0.296528 0.113889 0.068056 +20 0.667593 0.294097 0.096296 0.067361 +9 0.449074 0.365972 0.107407 0.063889 +8 0.585648 0.361806 0.106481 0.063889 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_10.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_10.txt new file mode 100644 index 000000000..b76cf393a --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_221400765_10.txt @@ -0,0 +1,4 @@ +29 0.302778 0.757986 0.094444 0.078472 +6 0.426389 0.753125 0.100926 0.079861 +33 0.544444 0.744097 0.087037 0.070139 +11 0.655093 0.747569 0.097222 0.077083 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225.txt new file mode 100644 index 000000000..a7e6b4a98 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225.txt @@ -0,0 +1,9 @@ +6 0.375000 0.479911 0.062831 0.044643 +36 0.445437 0.482639 0.082011 0.060020 +34 0.529101 0.490699 0.093915 0.064732 +8 0.614914 0.492684 0.077712 0.060764 +0 0.377646 0.090774 0.044974 0.047123 +6 0.445933 0.079489 0.061839 0.037450 +37 0.516204 0.079985 0.055556 0.038442 +34 0.588294 0.097098 0.058862 0.045387 +8 0.662533 0.106399 0.061839 0.041667 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_01.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_01.txt new file mode 100644 index 000000000..f3239b437 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_01.txt @@ -0,0 +1,6 @@ +1 0.348876 0.535094 0.057540 0.051339 +6 0.415013 0.536334 0.064153 0.045387 +33 0.485450 0.539931 0.066138 0.046627 +8 0.557374 0.531498 0.084325 0.055060 +23 0.631448 0.526290 0.072421 0.049603 +11 0.350860 0.585565 0.066138 0.049603 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_02.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_02.txt new file mode 100644 index 000000000..f2b1d1f12 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_02.txt @@ -0,0 +1,5 @@ +29 0.184400 0.693783 0.056796 0.044974 +6 0.184276 0.636243 0.039187 0.050926 +34 0.181176 0.581845 0.040923 0.055225 +21 0.185144 0.523148 0.042411 0.050926 +11 0.187128 0.468750 0.043403 0.051257 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_03.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_03.txt new file mode 100644 index 000000000..e051c5b2e --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_03.txt @@ -0,0 +1,15 @@ +1 0.341435 0.370288 0.059854 0.051091 +6 0.413856 0.372024 0.072421 0.043155 +11 0.487599 0.369916 0.070437 0.050347 +34 0.562169 0.371900 0.074735 0.044891 +27 0.641700 0.371156 0.067130 0.044891 +11 0.642196 0.436012 0.074735 0.049603 +26 0.559524 0.439112 0.058862 0.043403 +27 0.635747 0.497148 0.063823 0.053819 +34 0.559524 0.497520 0.067460 0.051091 +34 0.481151 0.440228 0.076720 0.045635 +11 0.484954 0.497892 0.067130 0.055308 +6 0.408069 0.441096 0.067460 0.048859 +6 0.409722 0.496776 0.074735 0.048115 +1 0.334491 0.433160 0.054563 0.050347 +1 0.337136 0.493180 0.061839 0.055308 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_04.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_04.txt new file mode 100644 index 000000000..e1fd45b49 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_04.txt @@ -0,0 +1,6 @@ +28 0.435185 0.511161 0.057540 0.035218 +23 0.433201 0.551959 0.064153 0.043403 +17 0.548776 0.513517 0.067130 0.043403 +12 0.545635 0.550719 0.067460 0.040923 +12 0.658234 0.554688 0.061839 0.043899 +33 0.657242 0.515129 0.070437 0.041667 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_05.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_05.txt new file mode 100644 index 000000000..260f7c86c --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_05.txt @@ -0,0 +1,6 @@ +1 0.369544 0.419891 0.067130 0.057540 +11 0.372354 0.484375 0.106481 0.069444 +17 0.447917 0.419519 0.089616 0.053819 +33 0.524306 0.421503 0.084325 0.051339 +8 0.597388 0.417535 0.077050 0.059276 +23 0.667824 0.415551 0.079034 0.061756 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_06.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_06.txt new file mode 100644 index 000000000..c101bbae9 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_06.txt @@ -0,0 +1,5 @@ +29 0.172950 0.748264 0.057540 0.039187 +26 0.238922 0.742436 0.059854 0.038442 +11 0.298611 0.739211 0.055556 0.038442 +14 0.365410 0.728051 0.064815 0.031994 +6 0.431548 0.723090 0.050265 0.033482 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_07.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_07.txt new file mode 100644 index 000000000..6aebd9699 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_07.txt @@ -0,0 +1,6 @@ +29 0.340774 0.363219 0.073743 0.060764 +17 0.485780 0.366319 0.080026 0.061012 +23 0.338624 0.423611 0.088624 0.060020 +8 0.486442 0.426711 0.087302 0.061756 +33 0.625661 0.368676 0.090608 0.051339 +12 0.621528 0.427827 0.075728 0.063988 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_09.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_09.txt new file mode 100644 index 000000000..a8fa4f0e6 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_09.txt @@ -0,0 +1,5 @@ +29 0.282242 0.771577 0.092923 0.067956 +17 0.374504 0.771205 0.091601 0.060764 +33 0.474041 0.765625 0.103505 0.071925 +42 0.573413 0.759177 0.111772 0.041667 +23 0.674107 0.755952 0.089616 0.059028 diff --git a/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_10.txt b/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_10.txt new file mode 100644 index 000000000..d0fb2b720 --- /dev/null +++ b/ai/data/symbol/test/labels/KakaoTalk_20250516_223034225_10.txt @@ -0,0 +1,4 @@ +26 0.324239 0.742808 0.059854 0.040675 +11 0.392526 0.738839 0.064153 0.039187 +14 0.461310 0.731523 0.069444 0.037450 +6 0.530754 0.732391 0.058862 0.039187 diff --git a/ai/data/symbol/val/images/symbol_00003.jpg b/ai/data/symbol/val/images/symbol_00003.jpg new file mode 100644 index 000000000..33cf88484 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00003.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00007.jpg b/ai/data/symbol/val/images/symbol_00007.jpg new file mode 100644 index 000000000..f8c342108 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00007.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00010.jpg b/ai/data/symbol/val/images/symbol_00010.jpg new file mode 100644 index 000000000..fd15c8afa Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00010.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00011.jpg b/ai/data/symbol/val/images/symbol_00011.jpg new file mode 100644 index 000000000..72faa1c91 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00011.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00017.jpg b/ai/data/symbol/val/images/symbol_00017.jpg new file mode 100644 index 000000000..b5f2a4ede Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00017.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00030.jpg b/ai/data/symbol/val/images/symbol_00030.jpg new file mode 100644 index 000000000..12fe833e8 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00030.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00049.jpg b/ai/data/symbol/val/images/symbol_00049.jpg new file mode 100644 index 000000000..cbe8be104 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00049.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00052.jpg b/ai/data/symbol/val/images/symbol_00052.jpg new file mode 100644 index 000000000..50525c032 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00052.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00057.jpg b/ai/data/symbol/val/images/symbol_00057.jpg new file mode 100644 index 000000000..a7c7ba12f Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00057.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00062.jpg b/ai/data/symbol/val/images/symbol_00062.jpg new file mode 100644 index 000000000..e719bd79d Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00062.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00077.jpg b/ai/data/symbol/val/images/symbol_00077.jpg new file mode 100644 index 000000000..df0d2160f Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00077.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00079.jpg b/ai/data/symbol/val/images/symbol_00079.jpg new file mode 100644 index 000000000..35a71e397 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00079.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00097.jpg b/ai/data/symbol/val/images/symbol_00097.jpg new file mode 100644 index 000000000..ef56ce453 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00097.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00110.jpg b/ai/data/symbol/val/images/symbol_00110.jpg new file mode 100644 index 000000000..4fcb17a68 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00110.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00112.jpg b/ai/data/symbol/val/images/symbol_00112.jpg new file mode 100644 index 000000000..4a890ada0 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00112.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00116.jpg b/ai/data/symbol/val/images/symbol_00116.jpg new file mode 100644 index 000000000..b4f0cdaba Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00116.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00123.jpg b/ai/data/symbol/val/images/symbol_00123.jpg new file mode 100644 index 000000000..82cb42e3b Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00123.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00127.jpg b/ai/data/symbol/val/images/symbol_00127.jpg new file mode 100644 index 000000000..88bad4ffe Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00127.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00137.jpg b/ai/data/symbol/val/images/symbol_00137.jpg new file mode 100644 index 000000000..efdb408e6 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00137.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00149.jpg b/ai/data/symbol/val/images/symbol_00149.jpg new file mode 100644 index 000000000..48a43d73e Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00149.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00157.jpg b/ai/data/symbol/val/images/symbol_00157.jpg new file mode 100644 index 000000000..ea677f7de Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00157.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00160.jpg b/ai/data/symbol/val/images/symbol_00160.jpg new file mode 100644 index 000000000..9e2c09ba9 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00160.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00175.jpg b/ai/data/symbol/val/images/symbol_00175.jpg new file mode 100644 index 000000000..438da27aa Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00175.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00178.jpg b/ai/data/symbol/val/images/symbol_00178.jpg new file mode 100644 index 000000000..8c076086e Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00178.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00179.jpg b/ai/data/symbol/val/images/symbol_00179.jpg new file mode 100644 index 000000000..67ba0e129 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00179.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00187.jpg b/ai/data/symbol/val/images/symbol_00187.jpg new file mode 100644 index 000000000..cb3c35bb0 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00187.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00189.jpg b/ai/data/symbol/val/images/symbol_00189.jpg new file mode 100644 index 000000000..efa22beb0 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00189.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00193.jpg b/ai/data/symbol/val/images/symbol_00193.jpg new file mode 100644 index 000000000..35d78f6b3 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00193.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00196.jpg b/ai/data/symbol/val/images/symbol_00196.jpg new file mode 100644 index 000000000..d7e60073e Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00196.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00199.jpg b/ai/data/symbol/val/images/symbol_00199.jpg new file mode 100644 index 000000000..8c92557d8 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00199.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00200.jpg b/ai/data/symbol/val/images/symbol_00200.jpg new file mode 100644 index 000000000..d14f06b4f Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00200.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00206.jpg b/ai/data/symbol/val/images/symbol_00206.jpg new file mode 100644 index 000000000..cfb08128c Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00206.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00207.jpg b/ai/data/symbol/val/images/symbol_00207.jpg new file mode 100644 index 000000000..a79acf48d Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00207.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00211.jpg b/ai/data/symbol/val/images/symbol_00211.jpg new file mode 100644 index 000000000..0289fccd6 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00211.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00213.jpg b/ai/data/symbol/val/images/symbol_00213.jpg new file mode 100644 index 000000000..15801245b Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00213.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00218.jpg b/ai/data/symbol/val/images/symbol_00218.jpg new file mode 100644 index 000000000..1997d80e4 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00218.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00228.jpg b/ai/data/symbol/val/images/symbol_00228.jpg new file mode 100644 index 000000000..a25d33425 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00228.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00243.jpg b/ai/data/symbol/val/images/symbol_00243.jpg new file mode 100644 index 000000000..07f62e16b Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00243.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00245.jpg b/ai/data/symbol/val/images/symbol_00245.jpg new file mode 100644 index 000000000..64a803de4 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00245.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00286.jpg b/ai/data/symbol/val/images/symbol_00286.jpg new file mode 100644 index 000000000..f7e66f397 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00286.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00287.jpg b/ai/data/symbol/val/images/symbol_00287.jpg new file mode 100644 index 000000000..0292fadee Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00287.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00288.jpg b/ai/data/symbol/val/images/symbol_00288.jpg new file mode 100644 index 000000000..dda24e2f7 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00288.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00312.jpg b/ai/data/symbol/val/images/symbol_00312.jpg new file mode 100644 index 000000000..a529b2c23 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00312.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00313.jpg b/ai/data/symbol/val/images/symbol_00313.jpg new file mode 100644 index 000000000..71c5e301a Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00313.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00317.jpg b/ai/data/symbol/val/images/symbol_00317.jpg new file mode 100644 index 000000000..5340b2cf8 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00317.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00319.jpg b/ai/data/symbol/val/images/symbol_00319.jpg new file mode 100644 index 000000000..ad63e395b Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00319.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00332.jpg b/ai/data/symbol/val/images/symbol_00332.jpg new file mode 100644 index 000000000..c5e72d387 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00332.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00343.jpg b/ai/data/symbol/val/images/symbol_00343.jpg new file mode 100644 index 000000000..3d6ff94e2 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00343.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00359.jpg b/ai/data/symbol/val/images/symbol_00359.jpg new file mode 100644 index 000000000..e05c553ec Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00359.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00361.jpg b/ai/data/symbol/val/images/symbol_00361.jpg new file mode 100644 index 000000000..c47ef13b6 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00361.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00370.jpg b/ai/data/symbol/val/images/symbol_00370.jpg new file mode 100644 index 000000000..7d0ff3487 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00370.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00372.jpg b/ai/data/symbol/val/images/symbol_00372.jpg new file mode 100644 index 000000000..0ba4b3813 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00372.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00391.jpg b/ai/data/symbol/val/images/symbol_00391.jpg new file mode 100644 index 000000000..51873137d Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00391.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00402.jpg b/ai/data/symbol/val/images/symbol_00402.jpg new file mode 100644 index 000000000..26cf997dc Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00402.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00415.jpg b/ai/data/symbol/val/images/symbol_00415.jpg new file mode 100644 index 000000000..dd8aa3df4 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00415.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00420.jpg b/ai/data/symbol/val/images/symbol_00420.jpg new file mode 100644 index 000000000..204ebb903 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00420.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00430.jpg b/ai/data/symbol/val/images/symbol_00430.jpg new file mode 100644 index 000000000..b6bb7d2ca Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00430.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00432.jpg b/ai/data/symbol/val/images/symbol_00432.jpg new file mode 100644 index 000000000..8dc0a822d Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00432.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00456.jpg b/ai/data/symbol/val/images/symbol_00456.jpg new file mode 100644 index 000000000..3c6d6fa7b Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00456.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00457.jpg b/ai/data/symbol/val/images/symbol_00457.jpg new file mode 100644 index 000000000..0fdce97a7 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00457.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00475.jpg b/ai/data/symbol/val/images/symbol_00475.jpg new file mode 100644 index 000000000..05bfee01a Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00475.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00497.jpg b/ai/data/symbol/val/images/symbol_00497.jpg new file mode 100644 index 000000000..1b7ef8690 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00497.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00514.jpg b/ai/data/symbol/val/images/symbol_00514.jpg new file mode 100644 index 000000000..630089198 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00514.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00518.jpg b/ai/data/symbol/val/images/symbol_00518.jpg new file mode 100644 index 000000000..09051fec6 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00518.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00521.jpg b/ai/data/symbol/val/images/symbol_00521.jpg new file mode 100644 index 000000000..759e8f5ce Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00521.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00528.jpg b/ai/data/symbol/val/images/symbol_00528.jpg new file mode 100644 index 000000000..c5de69586 Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00528.jpg differ diff --git a/ai/data/symbol/val/images/symbol_00532.jpg b/ai/data/symbol/val/images/symbol_00532.jpg new file mode 100644 index 000000000..11d4c1bcc Binary files /dev/null and b/ai/data/symbol/val/images/symbol_00532.jpg differ diff --git a/ai/data/symbol/val/labels.cache b/ai/data/symbol/val/labels.cache new file mode 100644 index 000000000..ef7e9c4b6 Binary files /dev/null and b/ai/data/symbol/val/labels.cache differ diff --git a/ai/data/symbol/val/labels/symbol_00003.txt b/ai/data/symbol/val/labels/symbol_00003.txt new file mode 100644 index 000000000..5d2b6f752 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00003.txt @@ -0,0 +1,5 @@ +11 0.548958 0.435417 0.047917 0.037500 +8 0.613542 0.409375 0.039583 0.039583 +9 0.671875 0.427083 0.068750 0.054167 +12 0.656250 0.477083 0.066667 0.054167 +6 0.598958 0.455208 0.052083 0.043750 diff --git a/ai/data/symbol/val/labels/symbol_00007.txt b/ai/data/symbol/val/labels/symbol_00007.txt new file mode 100644 index 000000000..69437509d --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00007.txt @@ -0,0 +1,6 @@ +1 0.646875 0.284375 0.097917 0.093750 +17 0.547917 0.310417 0.070833 0.104167 +9 0.530208 0.221875 0.097917 0.089583 +21 0.417708 0.248958 0.093750 0.085417 +11 0.439583 0.332292 0.091667 0.093750 +42 0.331250 0.348958 0.100000 0.072917 diff --git a/ai/data/symbol/val/labels/symbol_00010.txt b/ai/data/symbol/val/labels/symbol_00010.txt new file mode 100644 index 000000000..98c8596b2 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00010.txt @@ -0,0 +1,5 @@ +9 0.384375 0.314583 0.110417 0.100000 +17 0.451042 0.410417 0.072917 0.100000 +23 0.500000 0.496875 0.066667 0.093750 +9 0.563542 0.578125 0.089583 0.089583 +28 0.631250 0.669792 0.095833 0.093750 diff --git a/ai/data/symbol/val/labels/symbol_00011.txt b/ai/data/symbol/val/labels/symbol_00011.txt new file mode 100644 index 000000000..87d94161f --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00011.txt @@ -0,0 +1,4 @@ +12 0.512500 0.310417 0.116667 0.100000 +6 0.591667 0.375000 0.095833 0.079167 +34 0.673958 0.438542 0.093750 0.064583 +28 0.751042 0.520833 0.114583 0.087500 diff --git a/ai/data/symbol/val/labels/symbol_00017.txt b/ai/data/symbol/val/labels/symbol_00017.txt new file mode 100644 index 000000000..95e1b2866 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00017.txt @@ -0,0 +1,15 @@ +28 0.335417 0.415625 0.066667 0.047917 +6 0.419792 0.416667 0.081250 0.058333 +32 0.495833 0.420833 0.079167 0.058333 +11 0.581250 0.423958 0.083333 0.056250 +21 0.670833 0.426042 0.087500 0.064583 +28 0.330208 0.485417 0.068750 0.041667 +6 0.416667 0.488542 0.079167 0.056250 +9 0.494792 0.495833 0.072917 0.058333 +11 0.578125 0.500000 0.081250 0.054167 +20 0.665625 0.507292 0.072917 0.043750 +12 0.317708 0.589583 0.077083 0.054167 +6 0.397917 0.602083 0.075000 0.050000 +20 0.484375 0.606250 0.089583 0.050000 +9 0.571875 0.612500 0.081250 0.054167 +28 0.667708 0.622917 0.089583 0.054167 diff --git a/ai/data/symbol/val/labels/symbol_00030.txt b/ai/data/symbol/val/labels/symbol_00030.txt new file mode 100644 index 000000000..48989ca8c --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00030.txt @@ -0,0 +1,5 @@ +1 0.391667 0.662500 0.100000 0.087500 +17 0.418750 0.581250 0.083333 0.066667 +9 0.437500 0.504167 0.079167 0.091667 +8 0.460417 0.402083 0.095833 0.095833 +23 0.492708 0.304167 0.081250 0.079167 diff --git a/ai/data/symbol/val/labels/symbol_00049.txt b/ai/data/symbol/val/labels/symbol_00049.txt new file mode 100644 index 000000000..d9a83c5c7 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00049.txt @@ -0,0 +1,4 @@ +30 0.170833 0.514583 0.129167 0.112500 +26 0.321875 0.465625 0.093750 0.143750 +21 0.478125 0.405208 0.131250 0.102083 +6 0.634375 0.354167 0.143750 0.100000 diff --git a/ai/data/symbol/val/labels/symbol_00052.txt b/ai/data/symbol/val/labels/symbol_00052.txt new file mode 100644 index 000000000..600f8ca11 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00052.txt @@ -0,0 +1,4 @@ +21 0.239583 0.221875 0.191667 0.114583 +14 0.457292 0.303125 0.210417 0.106250 +17 0.671875 0.393750 0.160417 0.141667 +29 0.884375 0.477083 0.189583 0.120833 diff --git a/ai/data/symbol/val/labels/symbol_00057.txt b/ai/data/symbol/val/labels/symbol_00057.txt new file mode 100644 index 000000000..47612a12a --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00057.txt @@ -0,0 +1,2 @@ +6 0.190625 0.193750 0.177083 0.141667 +9 0.083333 0.368750 0.162500 0.191667 diff --git a/ai/data/symbol/val/labels/symbol_00062.txt b/ai/data/symbol/val/labels/symbol_00062.txt new file mode 100644 index 000000000..fc819282f --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00062.txt @@ -0,0 +1,5 @@ +0 0.120833 0.769792 0.104167 0.114583 +17 0.267708 0.772917 0.114583 0.129167 +31 0.427083 0.770833 0.108333 0.125000 +31 0.587500 0.771875 0.141667 0.097917 +11 0.739583 0.766667 0.116667 0.133333 diff --git a/ai/data/symbol/val/labels/symbol_00077.txt b/ai/data/symbol/val/labels/symbol_00077.txt new file mode 100644 index 000000000..0b259ea4f --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00077.txt @@ -0,0 +1,4 @@ +12 0.213542 0.784375 0.085417 0.089583 +6 0.295833 0.792708 0.079167 0.102083 +34 0.367708 0.782292 0.060417 0.093750 +28 0.456250 0.776042 0.079167 0.097917 diff --git a/ai/data/symbol/val/labels/symbol_00079.txt b/ai/data/symbol/val/labels/symbol_00079.txt new file mode 100644 index 000000000..be5f28001 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00079.txt @@ -0,0 +1,6 @@ +29 0.113542 0.859375 0.077083 0.106250 +6 0.182292 0.863542 0.068750 0.110417 +34 0.243750 0.863542 0.066667 0.102083 +23 0.307292 0.867708 0.060417 0.093750 +42 0.370833 0.870833 0.075000 0.075000 +11 0.439583 0.870833 0.075000 0.108333 diff --git a/ai/data/symbol/val/labels/symbol_00097.txt b/ai/data/symbol/val/labels/symbol_00097.txt new file mode 100644 index 000000000..a39e08afc --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00097.txt @@ -0,0 +1,6 @@ +12 0.266667 0.478125 0.058333 0.081250 +6 0.332292 0.530208 0.060417 0.077083 +11 0.393750 0.567708 0.062500 0.060417 +33 0.457292 0.619792 0.064583 0.052083 +27 0.519792 0.659375 0.077083 0.068750 +13 0.585417 0.700000 0.070833 0.075000 diff --git a/ai/data/symbol/val/labels/symbol_00110.txt b/ai/data/symbol/val/labels/symbol_00110.txt new file mode 100644 index 000000000..a0aece579 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00110.txt @@ -0,0 +1,5 @@ +0 0.623958 0.218750 0.052083 0.062500 +17 0.640625 0.276042 0.056250 0.047917 +37 0.657292 0.321875 0.047917 0.052083 +34 0.669792 0.372917 0.060417 0.062500 +8 0.695833 0.425000 0.050000 0.054167 diff --git a/ai/data/symbol/val/labels/symbol_00112.txt b/ai/data/symbol/val/labels/symbol_00112.txt new file mode 100644 index 000000000..3ca10b8dc --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00112.txt @@ -0,0 +1,5 @@ +30 0.388542 0.413542 0.056250 0.060417 +6 0.461458 0.414583 0.056250 0.054167 +9 0.537500 0.414583 0.062500 0.062500 +8 0.610417 0.420833 0.075000 0.062500 +11 0.685417 0.418750 0.066667 0.058333 diff --git a/ai/data/symbol/val/labels/symbol_00116.txt b/ai/data/symbol/val/labels/symbol_00116.txt new file mode 100644 index 000000000..c6f9eb6d9 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00116.txt @@ -0,0 +1,4 @@ +23 0.376042 0.475000 0.097917 0.095833 +33 0.387500 0.389583 0.075000 0.079167 +17 0.382292 0.310417 0.089583 0.070833 +29 0.400000 0.217708 0.083333 0.093750 diff --git a/ai/data/symbol/val/labels/symbol_00123.txt b/ai/data/symbol/val/labels/symbol_00123.txt new file mode 100644 index 000000000..4689e4f1c --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00123.txt @@ -0,0 +1,5 @@ +37 0.229167 0.657292 0.154167 0.152083 +21 0.380208 0.604167 0.131250 0.137500 +11 0.531250 0.541667 0.150000 0.154167 +6 0.681250 0.482292 0.125000 0.185417 +26 0.821875 0.410417 0.127083 0.154167 diff --git a/ai/data/symbol/val/labels/symbol_00127.txt b/ai/data/symbol/val/labels/symbol_00127.txt new file mode 100644 index 000000000..dfe8604f4 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00127.txt @@ -0,0 +1,6 @@ +12 0.231250 0.270833 0.170833 0.166667 +17 0.428125 0.345833 0.168750 0.129167 +23 0.320833 0.462500 0.204167 0.154167 +34 0.628125 0.443750 0.247917 0.145833 +11 0.655208 0.589583 0.197917 0.154167 +28 0.889583 0.518750 0.158333 0.187500 diff --git a/ai/data/symbol/val/labels/symbol_00137.txt b/ai/data/symbol/val/labels/symbol_00137.txt new file mode 100644 index 000000000..2f933f1a6 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00137.txt @@ -0,0 +1,6 @@ +29 0.137500 0.537500 0.145833 0.125000 +6 0.291667 0.533333 0.150000 0.129167 +33 0.435417 0.533333 0.129167 0.116667 +8 0.567708 0.520833 0.135417 0.133333 +42 0.701042 0.514583 0.131250 0.095833 +23 0.833333 0.505208 0.125000 0.114583 diff --git a/ai/data/symbol/val/labels/symbol_00149.txt b/ai/data/symbol/val/labels/symbol_00149.txt new file mode 100644 index 000000000..cc908ff63 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00149.txt @@ -0,0 +1,5 @@ +29 0.306250 0.219792 0.170833 0.168750 +6 0.425000 0.350000 0.175000 0.179167 +34 0.543750 0.483333 0.162500 0.154167 +42 0.665625 0.601042 0.168750 0.135417 +11 0.780208 0.735417 0.197917 0.183333 diff --git a/ai/data/symbol/val/labels/symbol_00157.txt b/ai/data/symbol/val/labels/symbol_00157.txt new file mode 100644 index 000000000..a4bee317f --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00157.txt @@ -0,0 +1,5 @@ +29 0.150000 0.620833 0.129167 0.137500 +17 0.301042 0.619792 0.131250 0.147917 +9 0.447917 0.633333 0.133333 0.133333 +42 0.607292 0.631250 0.135417 0.079167 +23 0.758333 0.635417 0.120833 0.125000 diff --git a/ai/data/symbol/val/labels/symbol_00160.txt b/ai/data/symbol/val/labels/symbol_00160.txt new file mode 100644 index 000000000..b3e89a3df --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00160.txt @@ -0,0 +1,4 @@ +29 0.332292 0.239583 0.131250 0.137500 +17 0.347917 0.428125 0.125000 0.172917 +23 0.404167 0.592708 0.120833 0.114583 +14 0.456250 0.757292 0.112500 0.139583 diff --git a/ai/data/symbol/val/labels/symbol_00175.txt b/ai/data/symbol/val/labels/symbol_00175.txt new file mode 100644 index 000000000..cf5e48fcd --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00175.txt @@ -0,0 +1,5 @@ +29 0.455208 0.871875 0.181250 0.181250 +17 0.469792 0.684375 0.156250 0.168750 +34 0.468750 0.504167 0.145833 0.170833 +11 0.485417 0.329167 0.154167 0.141667 +8 0.490625 0.158333 0.160417 0.141667 diff --git a/ai/data/symbol/val/labels/symbol_00178.txt b/ai/data/symbol/val/labels/symbol_00178.txt new file mode 100644 index 000000000..c7a08db77 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00178.txt @@ -0,0 +1,4 @@ +29 0.633333 0.741667 0.095833 0.162500 +17 0.709375 0.806250 0.114583 0.158333 +23 0.841667 0.836458 0.116667 0.156250 +11 0.646875 0.948958 0.110417 0.102083 diff --git a/ai/data/symbol/val/labels/symbol_00179.txt b/ai/data/symbol/val/labels/symbol_00179.txt new file mode 100644 index 000000000..dffcb389e --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00179.txt @@ -0,0 +1,5 @@ +0 0.551042 0.559375 0.060417 0.052083 +9 0.602083 0.619792 0.075000 0.060417 +11 0.656250 0.675000 0.079167 0.062500 +6 0.705208 0.745833 0.068750 0.066667 +8 0.755208 0.805208 0.064583 0.056250 diff --git a/ai/data/symbol/val/labels/symbol_00187.txt b/ai/data/symbol/val/labels/symbol_00187.txt new file mode 100644 index 000000000..8716d5730 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00187.txt @@ -0,0 +1,15 @@ +29 0.332292 0.540625 0.064583 0.047917 +6 0.416667 0.536458 0.066667 0.047917 +33 0.488542 0.534375 0.064583 0.047917 +21 0.564583 0.533333 0.070833 0.054167 +11 0.641667 0.525000 0.070833 0.050000 +29 0.338542 0.616667 0.081250 0.058333 +29 0.351042 0.708333 0.072917 0.054167 +6 0.423958 0.612500 0.072917 0.050000 +6 0.431250 0.707292 0.062500 0.052083 +33 0.503125 0.605208 0.064583 0.052083 +33 0.589583 0.695833 0.075000 0.045833 +20 0.510417 0.698958 0.062500 0.052083 +20 0.575000 0.604167 0.066667 0.050000 +11 0.654167 0.600000 0.079167 0.054167 +8 0.672917 0.689583 0.075000 0.050000 diff --git a/ai/data/symbol/val/labels/symbol_00189.txt b/ai/data/symbol/val/labels/symbol_00189.txt new file mode 100644 index 000000000..0c4db1a4f --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00189.txt @@ -0,0 +1,15 @@ +26 0.135417 0.789583 0.037500 0.045833 +11 0.175000 0.782292 0.041667 0.047917 +31 0.216667 0.778125 0.033333 0.035417 +6 0.251042 0.783333 0.031250 0.041667 +12 0.288542 0.782292 0.035417 0.039583 +12 0.584375 0.779167 0.039583 0.050000 +12 0.869792 0.772917 0.039583 0.041667 +6 0.547917 0.780208 0.037500 0.043750 +6 0.830208 0.772917 0.035417 0.045833 +31 0.511458 0.779167 0.031250 0.041667 +31 0.794792 0.769792 0.035417 0.043750 +11 0.471875 0.779167 0.043750 0.045833 +11 0.757292 0.770833 0.039583 0.045833 +26 0.434375 0.780208 0.039583 0.039583 +26 0.716667 0.772917 0.045833 0.045833 diff --git a/ai/data/symbol/val/labels/symbol_00193.txt b/ai/data/symbol/val/labels/symbol_00193.txt new file mode 100644 index 000000000..281256f76 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00193.txt @@ -0,0 +1,5 @@ +6 0.359375 0.416667 0.072917 0.070833 +34 0.428125 0.420833 0.064583 0.070833 +26 0.495833 0.427083 0.062500 0.075000 +14 0.568750 0.434375 0.075000 0.072917 +23 0.641667 0.443750 0.066667 0.066667 diff --git a/ai/data/symbol/val/labels/symbol_00196.txt b/ai/data/symbol/val/labels/symbol_00196.txt new file mode 100644 index 000000000..8994701c5 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00196.txt @@ -0,0 +1,5 @@ +8 0.356250 0.338542 0.100000 0.114583 +25 0.432292 0.390625 0.093750 0.093750 +6 0.583333 0.491667 0.087500 0.091667 +31 0.498958 0.441667 0.081250 0.095833 +0 0.651042 0.558333 0.077083 0.091667 diff --git a/ai/data/symbol/val/labels/symbol_00199.txt b/ai/data/symbol/val/labels/symbol_00199.txt new file mode 100644 index 000000000..ba38715e5 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00199.txt @@ -0,0 +1,12 @@ +12 0.472917 0.251042 0.037500 0.043750 +12 0.478125 0.435417 0.043750 0.045833 +12 0.468750 0.633333 0.041667 0.041667 +17 0.472917 0.284375 0.045833 0.035417 +17 0.476042 0.473958 0.039583 0.031250 +17 0.468750 0.668750 0.041667 0.033333 +34 0.473958 0.320833 0.035417 0.037500 +34 0.479167 0.506250 0.045833 0.033333 +34 0.470833 0.705208 0.041667 0.031250 +21 0.475000 0.355208 0.041667 0.031250 +21 0.481250 0.541667 0.037500 0.037500 +21 0.470833 0.741667 0.037500 0.033333 diff --git a/ai/data/symbol/val/labels/symbol_00200.txt b/ai/data/symbol/val/labels/symbol_00200.txt new file mode 100644 index 000000000..42fab9126 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00200.txt @@ -0,0 +1,5 @@ +1 0.542708 0.203125 0.077083 0.060417 +6 0.601042 0.258333 0.064583 0.070833 +11 0.666667 0.307292 0.070833 0.077083 +33 0.735417 0.359375 0.070833 0.068750 +8 0.798958 0.407292 0.068750 0.060417 diff --git a/ai/data/symbol/val/labels/symbol_00206.txt b/ai/data/symbol/val/labels/symbol_00206.txt new file mode 100644 index 000000000..1873ceb7c --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00206.txt @@ -0,0 +1,12 @@ +26 0.621875 0.037500 0.043750 0.041667 +6 0.677083 0.056250 0.045833 0.041667 +11 0.740625 0.072917 0.056250 0.045833 +9 0.800000 0.090625 0.050000 0.047917 +12 0.861458 0.109375 0.052083 0.039583 +12 0.452083 0.432292 0.045833 0.027083 +12 0.460417 0.406250 0.041667 0.029167 +27 0.407292 0.430208 0.039583 0.022917 +27 0.415625 0.403125 0.027083 0.027083 +6 0.502083 0.434375 0.045833 0.031250 +11 0.548958 0.434375 0.047917 0.031250 +9 0.601042 0.438542 0.043750 0.031250 diff --git a/ai/data/symbol/val/labels/symbol_00207.txt b/ai/data/symbol/val/labels/symbol_00207.txt new file mode 100644 index 000000000..edba9f784 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00207.txt @@ -0,0 +1,10 @@ +28 0.176042 0.541667 0.072917 0.075000 +6 0.222917 0.592708 0.070833 0.068750 +33 0.262500 0.636458 0.079167 0.072917 +21 0.296875 0.682292 0.072917 0.068750 +11 0.333333 0.730208 0.070833 0.081250 +11 0.239583 0.817708 0.079167 0.064583 +20 0.198958 0.770833 0.077083 0.070833 +33 0.155208 0.730208 0.068750 0.060417 +6 0.110417 0.687500 0.075000 0.066667 +28 0.071875 0.635417 0.072917 0.066667 diff --git a/ai/data/symbol/val/labels/symbol_00211.txt b/ai/data/symbol/val/labels/symbol_00211.txt new file mode 100644 index 000000000..9dc62a20b --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00211.txt @@ -0,0 +1,22 @@ +27 0.391667 0.379167 0.062500 0.066667 +27 0.470833 0.470833 0.066667 0.066667 +27 0.610417 0.662500 0.062500 0.075000 +34 0.436458 0.355208 0.052083 0.068750 +34 0.506250 0.444792 0.070833 0.068750 +34 0.658333 0.630208 0.062500 0.060417 +34 0.722917 0.727083 0.070833 0.079167 +34 0.642708 0.542708 0.068750 0.077083 +37 0.503125 0.344792 0.068750 0.089583 +37 0.567708 0.429167 0.085417 0.087500 +37 0.706250 0.610417 0.062500 0.066667 +37 0.773958 0.697917 0.060417 0.070833 +17 0.532292 0.298958 0.060417 0.064583 +17 0.600000 0.385417 0.058333 0.066667 +17 0.683333 0.492708 0.062500 0.064583 +17 0.742708 0.573958 0.060417 0.056250 +17 0.806250 0.656250 0.058333 0.062500 +1 0.589583 0.281250 0.066667 0.079167 +1 0.663542 0.368750 0.081250 0.083333 +1 0.735417 0.460417 0.062500 0.087500 +1 0.793750 0.537500 0.079167 0.087500 +1 0.868750 0.635417 0.087500 0.104167 diff --git a/ai/data/symbol/val/labels/symbol_00213.txt b/ai/data/symbol/val/labels/symbol_00213.txt new file mode 100644 index 000000000..2bdb1294e --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00213.txt @@ -0,0 +1,3 @@ +29 0.430208 0.403125 0.085417 0.102083 +17 0.528125 0.396875 0.093750 0.127083 +42 0.639583 0.398958 0.112500 0.089583 diff --git a/ai/data/symbol/val/labels/symbol_00218.txt b/ai/data/symbol/val/labels/symbol_00218.txt new file mode 100644 index 000000000..176bbaa3d --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00218.txt @@ -0,0 +1,5 @@ +1 0.141667 0.418750 0.100000 0.133333 +17 0.256250 0.381250 0.116667 0.162500 +34 0.368750 0.367708 0.095833 0.110417 +8 0.475000 0.316667 0.091667 0.154167 +23 0.585417 0.310417 0.104167 0.137500 diff --git a/ai/data/symbol/val/labels/symbol_00228.txt b/ai/data/symbol/val/labels/symbol_00228.txt new file mode 100644 index 000000000..5dbfb9a86 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00228.txt @@ -0,0 +1,5 @@ +0 0.420312 0.377344 0.081250 0.039062 +6 0.499219 0.384375 0.057813 0.040625 +11 0.582031 0.386719 0.067187 0.039062 +34 0.666406 0.392969 0.067187 0.035937 +8 0.751563 0.394531 0.062500 0.032813 diff --git a/ai/data/symbol/val/labels/symbol_00243.txt b/ai/data/symbol/val/labels/symbol_00243.txt new file mode 100644 index 000000000..255020924 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00243.txt @@ -0,0 +1,4 @@ +12 0.353125 0.599219 0.093750 0.098437 +6 0.451562 0.588281 0.084375 0.076563 +33 0.539062 0.580469 0.075000 0.085938 +27 0.620313 0.567969 0.078125 0.089063 diff --git a/ai/data/symbol/val/labels/symbol_00245.txt b/ai/data/symbol/val/labels/symbol_00245.txt new file mode 100644 index 000000000..7ff3f5192 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00245.txt @@ -0,0 +1,18 @@ +0 0.271875 0.448437 0.068750 0.059375 +0 0.281250 0.506250 0.081250 0.043750 +0 0.284375 0.625000 0.065625 0.062500 +0 0.292187 0.689844 0.081250 0.076563 +6 0.356250 0.451562 0.075000 0.059375 +6 0.356250 0.510156 0.062500 0.054688 +6 0.364844 0.626563 0.079687 0.068750 +38 0.443750 0.450781 0.078125 0.060937 +38 0.428906 0.508594 0.076563 0.048438 +32 0.525000 0.455469 0.078125 0.057813 +32 0.511719 0.510938 0.089063 0.053125 +33 0.448437 0.629687 0.090625 0.062500 +26 0.534375 0.635156 0.084375 0.076563 +31 0.473438 0.701562 0.087500 0.062500 +26 0.567969 0.699219 0.085938 0.064062 +27 0.600000 0.458594 0.065625 0.051562 +27 0.590625 0.514062 0.056250 0.056250 +36 0.623437 0.632031 0.090625 0.067187 diff --git a/ai/data/symbol/val/labels/symbol_00286.txt b/ai/data/symbol/val/labels/symbol_00286.txt new file mode 100644 index 000000000..1691d49a8 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00286.txt @@ -0,0 +1,5 @@ +0 0.398438 0.539844 0.065625 0.045312 +6 0.473438 0.543750 0.062500 0.040625 +11 0.548438 0.550000 0.062500 0.046875 +34 0.623437 0.550000 0.068750 0.046875 +8 0.696875 0.552344 0.053125 0.039062 diff --git a/ai/data/symbol/val/labels/symbol_00287.txt b/ai/data/symbol/val/labels/symbol_00287.txt new file mode 100644 index 000000000..3b7431065 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00287.txt @@ -0,0 +1,10 @@ +0 0.375000 0.683594 0.075000 0.051562 +0 0.374219 0.735156 0.085938 0.045312 +6 0.471875 0.688281 0.078125 0.042188 +6 0.468750 0.735156 0.071875 0.039062 +11 0.551562 0.688281 0.059375 0.042188 +11 0.554688 0.735156 0.059375 0.045312 +34 0.635156 0.689063 0.076563 0.040625 +34 0.634375 0.733594 0.078125 0.042188 +8 0.723437 0.685937 0.065625 0.050000 +8 0.727344 0.732812 0.076563 0.040625 diff --git a/ai/data/symbol/val/labels/symbol_00288.txt b/ai/data/symbol/val/labels/symbol_00288.txt new file mode 100644 index 000000000..acfd35518 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00288.txt @@ -0,0 +1,5 @@ +1 0.425000 0.603906 0.056250 0.042188 +6 0.484375 0.614844 0.050000 0.048438 +37 0.542188 0.624219 0.050000 0.042188 +33 0.600000 0.635156 0.046875 0.032813 +8 0.660156 0.642969 0.051562 0.035937 diff --git a/ai/data/symbol/val/labels/symbol_00312.txt b/ai/data/symbol/val/labels/symbol_00312.txt new file mode 100644 index 000000000..213f44740 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00312.txt @@ -0,0 +1,5 @@ +29 0.597656 0.443750 0.060937 0.046875 +6 0.653906 0.458594 0.064062 0.045312 +11 0.716406 0.467187 0.064062 0.043750 +34 0.773438 0.477344 0.062500 0.039062 +27 0.825000 0.480469 0.050000 0.035937 diff --git a/ai/data/symbol/val/labels/symbol_00313.txt b/ai/data/symbol/val/labels/symbol_00313.txt new file mode 100644 index 000000000..f8cab43c5 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00313.txt @@ -0,0 +1,5 @@ +1 0.522656 0.707812 0.089063 0.068750 +6 0.577344 0.664062 0.082812 0.068750 +33 0.635156 0.617969 0.070312 0.073438 +8 0.692969 0.561719 0.085938 0.079687 +11 0.767969 0.500000 0.114062 0.112500 diff --git a/ai/data/symbol/val/labels/symbol_00317.txt b/ai/data/symbol/val/labels/symbol_00317.txt new file mode 100644 index 000000000..139ffa7ad --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00317.txt @@ -0,0 +1,5 @@ +1 0.337500 0.659375 0.093750 0.062500 +6 0.431250 0.660937 0.081250 0.065625 +11 0.522656 0.661719 0.079687 0.064062 +33 0.621094 0.660156 0.085938 0.057813 +8 0.707812 0.652344 0.075000 0.060937 diff --git a/ai/data/symbol/val/labels/symbol_00319.txt b/ai/data/symbol/val/labels/symbol_00319.txt new file mode 100644 index 000000000..1934c3fbf --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00319.txt @@ -0,0 +1,4 @@ +1 0.369792 0.363672 0.097917 0.069531 +6 0.468229 0.352734 0.094792 0.075781 +34 0.563542 0.345703 0.087500 0.069531 +27 0.644271 0.339062 0.071875 0.054688 diff --git a/ai/data/symbol/val/labels/symbol_00332.txt b/ai/data/symbol/val/labels/symbol_00332.txt new file mode 100644 index 000000000..e3f037d04 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00332.txt @@ -0,0 +1,5 @@ +8 0.417187 0.514062 0.065625 0.050000 +34 0.490625 0.514844 0.081250 0.051562 +37 0.558594 0.512500 0.060937 0.050000 +6 0.613281 0.512500 0.048438 0.040625 +0 0.667188 0.514844 0.065625 0.045312 diff --git a/ai/data/symbol/val/labels/symbol_00343.txt b/ai/data/symbol/val/labels/symbol_00343.txt new file mode 100644 index 000000000..ed7f12445 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00343.txt @@ -0,0 +1,19 @@ +30 0.294531 0.178906 0.039062 0.048438 +30 0.296875 0.226562 0.025000 0.050000 +30 0.303125 0.272656 0.040625 0.045312 +30 0.308594 0.317969 0.029687 0.045312 +6 0.347656 0.312500 0.032813 0.037500 +6 0.342187 0.269531 0.031250 0.042188 +6 0.332813 0.171094 0.034375 0.045312 +11 0.368750 0.163281 0.031250 0.045312 +11 0.376563 0.260937 0.034375 0.043750 +11 0.458594 0.297656 0.032813 0.039062 +34 0.383594 0.306250 0.032813 0.034375 +34 0.410156 0.154688 0.045312 0.046875 +34 0.414062 0.253906 0.040625 0.039062 +8 0.410156 0.206250 0.039062 0.046875 +8 0.454688 0.148438 0.034375 0.046875 +8 0.457031 0.246875 0.042188 0.037500 +14 0.453906 0.201563 0.045312 0.040625 +31 0.367969 0.214844 0.042188 0.039062 +8 0.421875 0.302344 0.034375 0.045312 diff --git a/ai/data/symbol/val/labels/symbol_00359.txt b/ai/data/symbol/val/labels/symbol_00359.txt new file mode 100644 index 000000000..7f8cfa1a8 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00359.txt @@ -0,0 +1,24 @@ +1 0.301563 0.208594 0.059375 0.070312 +1 0.332813 0.256250 0.056250 0.065625 +1 0.376563 0.342969 0.059375 0.045312 +1 0.350000 0.305469 0.050000 0.051562 +1 0.396094 0.386719 0.057813 0.060937 +6 0.347656 0.185156 0.048438 0.048438 +6 0.376563 0.232813 0.046875 0.056250 +6 0.389844 0.279687 0.048438 0.053125 +6 0.419531 0.322656 0.042188 0.042188 +6 0.442969 0.360156 0.048438 0.051562 +38 0.484375 0.334375 0.056250 0.056250 +38 0.455469 0.303125 0.042188 0.037500 +38 0.417187 0.211719 0.053125 0.045312 +38 0.393750 0.165625 0.056250 0.046875 +36 0.531250 0.202344 0.059375 0.060937 +34 0.436719 0.136719 0.054688 0.057813 +34 0.460156 0.182031 0.060937 0.051562 +34 0.489063 0.275781 0.050000 0.042188 +34 0.525000 0.310156 0.056250 0.045312 +8 0.483594 0.111719 0.054688 0.054688 +8 0.507812 0.158594 0.056250 0.048438 +8 0.535156 0.256250 0.048438 0.046875 +8 0.575000 0.285156 0.050000 0.048438 +34 0.434375 0.245312 0.059375 0.053125 diff --git a/ai/data/symbol/val/labels/symbol_00361.txt b/ai/data/symbol/val/labels/symbol_00361.txt new file mode 100644 index 000000000..4190ad617 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00361.txt @@ -0,0 +1,4 @@ +9 0.610156 0.478906 0.054688 0.039062 +37 0.671875 0.482031 0.050000 0.032813 +17 0.719531 0.485156 0.039062 0.032813 +0 0.775781 0.487500 0.054688 0.031250 diff --git a/ai/data/symbol/val/labels/symbol_00370.txt b/ai/data/symbol/val/labels/symbol_00370.txt new file mode 100644 index 000000000..c42332bd6 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00370.txt @@ -0,0 +1,5 @@ +3 0.316406 0.632031 0.057813 0.051562 +34 0.389062 0.631250 0.062500 0.046875 +6 0.454688 0.626563 0.040625 0.046875 +27 0.510156 0.624219 0.048438 0.048438 +37 0.575000 0.620313 0.062500 0.053125 diff --git a/ai/data/symbol/val/labels/symbol_00372.txt b/ai/data/symbol/val/labels/symbol_00372.txt new file mode 100644 index 000000000..eaef3669f --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00372.txt @@ -0,0 +1,5 @@ +12 0.129688 0.414844 0.090625 0.082812 +6 0.221875 0.375781 0.084375 0.089063 +11 0.303906 0.321094 0.092188 0.082812 +33 0.394531 0.272656 0.076563 0.085938 +27 0.471875 0.218750 0.068750 0.068750 diff --git a/ai/data/symbol/val/labels/symbol_00391.txt b/ai/data/symbol/val/labels/symbol_00391.txt new file mode 100644 index 000000000..b575a31e5 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00391.txt @@ -0,0 +1,5 @@ +1 0.429688 0.567187 0.075000 0.059375 +6 0.506250 0.567187 0.062500 0.062500 +33 0.575000 0.563281 0.068750 0.064062 +27 0.642969 0.562500 0.060937 0.056250 +36 0.714844 0.560937 0.073438 0.068750 diff --git a/ai/data/symbol/val/labels/symbol_00402.txt b/ai/data/symbol/val/labels/symbol_00402.txt new file mode 100644 index 000000000..a2bc546db --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00402.txt @@ -0,0 +1,5 @@ +1 0.337500 0.378906 0.093750 0.070312 +6 0.417187 0.428125 0.078125 0.062500 +11 0.485938 0.483594 0.078125 0.076563 +33 0.570312 0.531250 0.090625 0.084375 +8 0.642188 0.591406 0.087500 0.082812 diff --git a/ai/data/symbol/val/labels/symbol_00415.txt b/ai/data/symbol/val/labels/symbol_00415.txt new file mode 100644 index 000000000..897576ca7 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00415.txt @@ -0,0 +1,5 @@ +1 0.379688 0.121094 0.062500 0.045312 +6 0.433594 0.121094 0.045312 0.039062 +38 0.487500 0.121094 0.040625 0.039062 +33 0.542969 0.129688 0.045312 0.037500 +8 0.585156 0.140625 0.035937 0.034375 diff --git a/ai/data/symbol/val/labels/symbol_00420.txt b/ai/data/symbol/val/labels/symbol_00420.txt new file mode 100644 index 000000000..875d50d70 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00420.txt @@ -0,0 +1,5 @@ +1 0.276173 0.534714 0.123947 0.129111 +6 0.429603 0.512180 0.139591 0.130329 +11 0.562575 0.478685 0.162455 0.126675 +34 0.735860 0.453715 0.155235 0.115713 +27 0.879663 0.423264 0.113117 0.084044 diff --git a/ai/data/symbol/val/labels/symbol_00430.txt b/ai/data/symbol/val/labels/symbol_00430.txt new file mode 100644 index 000000000..49f4ae883 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00430.txt @@ -0,0 +1,5 @@ +0 0.528125 0.591406 0.040625 0.048438 +6 0.577344 0.571094 0.051562 0.042188 +38 0.619531 0.539844 0.048438 0.048438 +33 0.667969 0.508594 0.042188 0.042188 +8 0.707031 0.482031 0.042188 0.042188 diff --git a/ai/data/symbol/val/labels/symbol_00432.txt b/ai/data/symbol/val/labels/symbol_00432.txt new file mode 100644 index 000000000..f8394eb82 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00432.txt @@ -0,0 +1,5 @@ +0 0.471875 0.621094 0.068750 0.048438 +6 0.546875 0.629687 0.062500 0.050000 +11 0.613281 0.639844 0.060937 0.048438 +9 0.495312 0.678906 0.068750 0.048438 +8 0.570312 0.685937 0.065625 0.050000 diff --git a/ai/data/symbol/val/labels/symbol_00456.txt b/ai/data/symbol/val/labels/symbol_00456.txt new file mode 100644 index 000000000..32cf0f799 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00456.txt @@ -0,0 +1,5 @@ +2 0.267188 0.726562 0.096875 0.078125 +3 0.357812 0.735938 0.084375 0.071875 +3 0.446094 0.743750 0.082812 0.075000 +2 0.529687 0.749219 0.087500 0.076563 +4 0.626563 0.753906 0.100000 0.070312 diff --git a/ai/data/symbol/val/labels/symbol_00457.txt b/ai/data/symbol/val/labels/symbol_00457.txt new file mode 100644 index 000000000..dcb7391d1 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00457.txt @@ -0,0 +1,5 @@ +2 0.304688 0.614062 0.081250 0.068750 +3 0.388281 0.617188 0.076563 0.056250 +3 0.469531 0.620313 0.076563 0.062500 +2 0.552344 0.619531 0.076563 0.064062 +4 0.639844 0.621875 0.089063 0.065625 diff --git a/ai/data/symbol/val/labels/symbol_00475.txt b/ai/data/symbol/val/labels/symbol_00475.txt new file mode 100644 index 000000000..74c7b1d5b --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00475.txt @@ -0,0 +1,4 @@ +1 0.553906 0.303906 0.129688 0.145313 +6 0.658594 0.403125 0.095312 0.171875 +33 0.778125 0.499219 0.125000 0.179688 +8 0.905469 0.572656 0.107813 0.148438 diff --git a/ai/data/symbol/val/labels/symbol_00497.txt b/ai/data/symbol/val/labels/symbol_00497.txt new file mode 100644 index 000000000..11c435edf --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00497.txt @@ -0,0 +1,15 @@ +1 0.328000 0.178000 0.108000 0.064000 +1 0.324000 0.484000 0.112000 0.072000 +1 0.334000 0.736000 0.108000 0.064000 +6 0.435000 0.184000 0.090000 0.068000 +6 0.431000 0.474000 0.094000 0.072000 +6 0.439000 0.737000 0.086000 0.066000 +11 0.531000 0.188000 0.094000 0.076000 +11 0.527000 0.464000 0.086000 0.076000 +11 0.535000 0.741000 0.090000 0.066000 +32 0.630000 0.203000 0.084000 0.050000 +32 0.620000 0.465000 0.084000 0.058000 +32 0.626000 0.754000 0.088000 0.052000 +27 0.712000 0.202000 0.072000 0.056000 +27 0.705000 0.455000 0.074000 0.062000 +27 0.713000 0.758000 0.070000 0.060000 diff --git a/ai/data/symbol/val/labels/symbol_00514.txt b/ai/data/symbol/val/labels/symbol_00514.txt new file mode 100644 index 000000000..6f40fe52a --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00514.txt @@ -0,0 +1,5 @@ +1 0.441406 0.320312 0.054688 0.046875 +6 0.498437 0.332813 0.062500 0.053125 +11 0.557813 0.344531 0.056250 0.054688 +33 0.618750 0.353906 0.053125 0.054688 +8 0.681250 0.363281 0.062500 0.051562 diff --git a/ai/data/symbol/val/labels/symbol_00518.txt b/ai/data/symbol/val/labels/symbol_00518.txt new file mode 100644 index 000000000..866b56c62 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00518.txt @@ -0,0 +1,5 @@ +29 0.308594 0.506250 0.079687 0.093750 +6 0.378125 0.515625 0.065625 0.093750 +34 0.452344 0.524219 0.070312 0.092188 +27 0.520312 0.532031 0.056250 0.089063 +11 0.586719 0.534375 0.067187 0.096875 diff --git a/ai/data/symbol/val/labels/symbol_00521.txt b/ai/data/symbol/val/labels/symbol_00521.txt new file mode 100644 index 000000000..b5d7ade1e --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00521.txt @@ -0,0 +1,6 @@ +29 0.381667 0.380000 0.076667 0.090000 +11 0.376667 0.482500 0.080000 0.095000 +6 0.498333 0.385000 0.070000 0.090000 +25 0.490000 0.485000 0.073333 0.100000 +14 0.616667 0.390000 0.100000 0.110000 +9 0.611667 0.495000 0.090000 0.100000 diff --git a/ai/data/symbol/val/labels/symbol_00528.txt b/ai/data/symbol/val/labels/symbol_00528.txt new file mode 100644 index 000000000..774a63649 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00528.txt @@ -0,0 +1,5 @@ +0 0.208594 0.815625 0.164062 0.231250 +6 0.390625 0.786719 0.162500 0.245312 +37 0.556250 0.711719 0.168750 0.245312 +34 0.729688 0.638281 0.156250 0.273438 +27 0.864844 0.538281 0.114062 0.192188 diff --git a/ai/data/symbol/val/labels/symbol_00532.txt b/ai/data/symbol/val/labels/symbol_00532.txt new file mode 100644 index 000000000..a9311ad89 --- /dev/null +++ b/ai/data/symbol/val/labels/symbol_00532.txt @@ -0,0 +1,5 @@ +1 0.228906 0.614844 0.117188 0.117188 +6 0.331250 0.663281 0.087500 0.120313 +33 0.438281 0.699219 0.107813 0.123438 +8 0.550781 0.728125 0.082812 0.118750 +37 0.653125 0.750781 0.100000 0.114062 diff --git a/ai/evaluate_model.py b/ai/evaluate_model.py new file mode 100644 index 000000000..fad8821f2 --- /dev/null +++ b/ai/evaluate_model.py @@ -0,0 +1,248 @@ +#!/usr/bin/env python3 +import os +import json +import time +import yaml +import logging +import numpy as np +from PIL import Image, ImageOps +from collections import defaultdict +from ultralytics import YOLO +import torch + +# ───── 로깅 설정 ───── +logging.basicConfig( + level=logging.INFO, format="%(asctime)s [%(levelname)s] %(message)s" +) +logger = logging.getLogger(__name__) + +# ───── 경로 설정 ───── +BASE_DIR = os.path.dirname(os.path.abspath(__file__)) +PERF_ROOT = os.path.join(BASE_DIR, "..", "front", "fe-rw", "public", "performance") + +STAIN_MODEL_PATH = os.path.join(BASE_DIR, "stain", "stain_cls.pt") +SYMBOL_MODEL_PATH = os.path.join(BASE_DIR, "symbol", "laundry_labels_cls.pt") +STAIN_DATA_YAML = os.path.join(BASE_DIR, "data", "stain", "data.yaml") +SYMBOL_DATA_YAML = os.path.join(BASE_DIR, "data", "symbol", "data.yaml") +TEST_STAIN_IMG_DIR = os.path.join(BASE_DIR, "data", "stain", "test", "images") + +CLASS_NAMES_STAIN = [ + "blood", + "coffee", + "earth", + "ink", + "kimchi", + "lipstick", + "mustard", + "oil", + "wine", +] +CLASS_CONF_THRESH = { + "blood": 0.260, + "coffee": 0.350, + "earth": 0.230, + "ink": 0.190, + "kimchi": 0.500, + "lipstick": 0.330, + "mustard": 0.160, + "oil": 0.360, + "wine": 0.100, +} +GLOBAL_CONF = min(CLASS_CONF_THRESH.values()) +EVAL_STAIN_SIZE = 320 + +SYMBOL_CONF = 0.1 +SYMBOL_AUG = True + + +def load_yolo(weights): + try: + model = YOLO(weights).to("cuda:0") + model.fuse() + return model.to("cuda:0", dtype=torch.float16), "cuda:0" + except: + return YOLO(weights), "cpu" + + +def evaluate_stain(weights_path): + logger.info(f"📊 Evaluating stain model: {weights_path}") + model, device = load_yolo(weights_path) + + def resize_pad(im): + w, h = im.size + m = max(w, h) + pad = ((m - w) // 2, (m - h) // 2, m - w - (m - w) // 2, m - h - (m - h) // 2) + return ImageOps.expand(im, pad, fill=(0, 0, 0)).resize((EVAL_STAIN_SIZE,) * 2) + + stats = { + "s": defaultdict(int), + "m": defaultdict(int), + "t1": defaultdict(int), + "t3": defaultdict(int), + } + inf_t = 0.0 + + for fn in os.listdir(TEST_STAIN_IMG_DIR): + if not fn.lower().endswith((".jpg", ".png")): + continue + gt = fn.split("_")[0].lower() + if gt not in CLASS_NAMES_STAIN: + continue + idx = CLASS_NAMES_STAIN.index(gt) + stats["s"][idx] += 1 + + img = Image.open(os.path.join(TEST_STAIN_IMG_DIR, fn)).convert("RGB") + img = resize_pad(img) + t0 = time.time() + res = model(img, conf=GLOBAL_CONF, device=device)[0] + inf_t += time.time() - t0 + + if not res.boxes: + stats["m"][idx] += 1 + continue + + cls = res.boxes.cls.cpu().numpy().astype(int) + conf = res.boxes.conf.cpu().numpy() + keep = np.array( + [ + conf[i] >= CLASS_CONF_THRESH[CLASS_NAMES_STAIN[c]] + for i, c in enumerate(cls) + ], + dtype=bool, + ) + cls, conf = cls[keep], conf[keep] + if cls.size == 0: + stats["m"][idx] += 1 + continue + + order = conf.argsort()[::-1] + top3 = cls[order[:3]] + if idx == top3[0]: + stats["t1"][idx] += 1 + if idx in top3: + stats["t3"][idx] += 1 + + per = {} + tot_s = tot_m = tot1 = tot3 = 0 + for i, name in enumerate(CLASS_NAMES_STAIN): + s = stats["s"][i] + m = stats["m"][i] + non_miss = s - m + o1 = stats["t1"][i] + o3 = stats["t3"][i] + if non_miss > 0: + per[name] = { + "samples": s, + "miss": m, + "top1_acc": round(o1 / non_miss, 4), + "top3_acc": round(o3 / non_miss, 4), + } + tot_s += s + tot_m += m + tot1 += o1 + tot3 += o3 + + overall = {} + total_non_miss = tot_s - tot_m + if total_non_miss > 0: + overall = { + "samples": tot_s, + "miss": tot_m, + "top1_acc": round(tot1 / total_non_miss, 4), + "top3_acc": round(tot3 / total_non_miss, 4), + "precision": round(tot1 / total_non_miss, 4), + "recall": round(tot1 / total_non_miss, 4), + "inference_time": { + "total_s": round(inf_t, 4), + "avg_per_image_s": round(inf_t / tot_s, 4), + }, + } + + return {"per_class": per, "overall": overall} + + +def evaluate_symbol(weights_path): + logger.info(f"📊 Evaluating symbol model: {weights_path}") + model, device = load_yolo(weights_path) + + first = model.val( + data=SYMBOL_DATA_YAML, + split="test", + imgsz=2048, + conf=SYMBOL_CONF, + augment=False, + device=device, + verbose=False, + ) + initial_maps = dict(zip(first.ap_class_index, first.maps)) + valid_ids = [int(idx) for idx, ap in initial_maps.items() if ap > 0.0] + + final = model.val( + data=SYMBOL_DATA_YAML, + split="test", + imgsz=2048, + conf=SYMBOL_CONF, + augment=SYMBOL_AUG, + classes=valid_ids, + device=device, + verbose=False, + ) + P, R, mAP50, mAP5095 = final.box.mean_results() + inf_ms = final.speed.get("inference", 0.0) + names = yaml.safe_load(open(SYMBOL_DATA_YAML))["names"] + ap_map = {int(idx): float(ap) for idx, ap in zip(final.ap_class_index, final.maps)} + per_cls = {name: ap_map.get(i, 0.0) for i, name in enumerate(names)} + + return { + "precision": P, + "recall": R, + "mAP50": mAP50, + "mAP50-95": mAP5095, + "inference_time_ms": inf_ms, + "per_class": per_cls, + } + + +def run_evaluation_only(): + os.makedirs(os.path.join(PERF_ROOT, "stain"), exist_ok=True) + os.makedirs(os.path.join(PERF_ROOT, "symbol"), exist_ok=True) + + if os.path.exists(STAIN_MODEL_PATH): + stain_result = evaluate_stain(STAIN_MODEL_PATH) + with open( + os.path.join(PERF_ROOT, "stain", "performance.json"), "w", encoding="utf8" + ) as f: + json.dump( + { + "model_type": "stain", + "weights_path": STAIN_MODEL_PATH, + "metrics": stain_result, + }, + f, + indent=2, + ensure_ascii=False, + ) + logger.info("✅ Stain evaluation saved.") + + if os.path.exists(SYMBOL_MODEL_PATH): + symbol_result = evaluate_symbol(SYMBOL_MODEL_PATH) + with open( + os.path.join(PERF_ROOT, "symbol", "performance.json"), "w", encoding="utf8" + ) as f: + json.dump( + { + "model_type": "symbol", + "weights_path": SYMBOL_MODEL_PATH, + "metrics": symbol_result, + }, + f, + indent=2, + ensure_ascii=False, + ) + logger.info("✅ Symbol evaluation saved.") + + +if __name__ == "__main__": + logger.info("📌 Evaluation Only Mode Started") + run_evaluation_only() + logger.info("✅ Evaluation Only Mode Completed") diff --git a/ai/main.py b/ai/main.py new file mode 100644 index 000000000..ac8d11098 --- /dev/null +++ b/ai/main.py @@ -0,0 +1,346 @@ +import os +import json +import cv2 +import numpy as np +from pathlib import Path +from ultralytics import YOLO +import torch +import sys +import random +from transformers import AutoTokenizer, AutoModelForCausalLM + +# ───── 경로 설정 ───── +BASE_DIR = os.path.dirname(os.path.abspath(__file__)) +STAIN_MODEL_PATH = os.path.join(BASE_DIR, "stain", "stain_cls.pt") +LABEL_MODEL_PATH = os.path.join(BASE_DIR, "symbol", "laundry_labels_cls.pt") +STAIN_GUIDE_PATH = os.path.join(BASE_DIR, "stain", "stain_washing_guidelines.json") +LABEL_GUIDE_PATH = os.path.join(BASE_DIR, "symbol", "label_symbol_guide.json") +OUT_DIR = os.path.abspath(os.path.join(BASE_DIR, "..", "images")) + +# 로컬 LLM 모델 경로 설정 (사전에 다운로드된 모델 디렉토리) +LLM_MODEL_DIR = os.path.join(BASE_DIR, "llm/kanana-nano-2.1b-base") +# LLM 모델 로딩 +llm_tokenizer = AutoTokenizer.from_pretrained(LLM_MODEL_DIR, padding_side="left") +llm_tokenizer.pad_token = llm_tokenizer.eos_token + +try: + llm_model = AutoModelForCausalLM.from_pretrained( + LLM_MODEL_DIR, torch_dtype=torch.bfloat16, trust_remote_code=True + ).to("cuda") +except (RuntimeError, ValueError) as e: + print("⚠️ bfloat16 미지원 → float32로 재시도") + llm_model = AutoModelForCausalLM.from_pretrained( + LLM_MODEL_DIR, torch_dtype=torch.float32, trust_remote_code=True + ).to("cuda") + + +# ───── 클래스 및 설정 ───── +STAIN_CLASSES = [ + "blood", + "coffee", + "earth", + "ink", + "kimchi", + "lipstick", + "mustard", + "oil", + "wine", +] +CLASS_CONF_TH = { + "blood": 0.260, + "coffee": 0.350, + "earth": 0.230, + "ink": 0.190, + "kimchi": 0.500, + "lipstick": 0.330, + "mustard": 0.160, + "oil": 0.360, + "wine": 0.100, +} +GLOBAL_CONF = min(CLASS_CONF_TH.values()) +LABEL_CONF = 0.5 +TOP_K = 3 + + +# ─── LLM 프롬프트 구성 ─── +def build_llm_prompt(stain_class, stain_advice, label_expls): + if not label_expls: + label_text = "세탁 기호가 감지되지 않았습니다." + else: + label_text = ", ".join(label_expls) + + return ( + f"아래는 옷에 묻은 얼룩과 해당 세탁 기호에 대한 설명입니다.\n" + f"- 얼룩 종류는 {stain_class}이며,\n" + f"- 해당 얼룩에 대해 추천되는 세탁법은 다음과 같습니다: {stain_advice}\n" + f"- 세탁 기호는 다음과 같습니다: {label_text}\n\n" + "이 정보를 바탕으로, 옷을 어떻게 세탁해야 하는지 부드럽고 자연스러운 한 문단으로 설명하세요. " + "사용자에게 말하듯 쓰되, 인사말 없이 직접적인 명령형으로 작성하세요.\n\n세탁 방법:" + ) + + +# ───── 모델 및 가이드 로딩 ───── +stain_model = YOLO(STAIN_MODEL_PATH) +label_model = YOLO(LABEL_MODEL_PATH) +with open(STAIN_GUIDE_PATH, "r", encoding="utf-8") as f: + stain_guide = json.load(f) +with open(LABEL_GUIDE_PATH, "r", encoding="utf-8") as f: + label_guide = json.load(f) + + +# ───── stain 예측 ───── +def predict_stain(image_path): + result = stain_model(image_path, conf=GLOBAL_CONF, imgsz=320)[0] + if result.boxes is None or len(result.boxes) == 0: + return None, None + + classes = result.boxes.cls.cpu().numpy().astype(int) + probs = result.boxes.conf.cpu().numpy() + boxes = result.boxes.xyxy.cpu().numpy() + + keep = np.array( + [ + probs[i] >= CLASS_CONF_TH[STAIN_CLASSES[cls]] + for i, cls in enumerate(classes) + ], + dtype=bool, + ) + + if not keep.any(): + return None, None + classes, probs, boxes = classes[keep], probs[keep], boxes[keep] + if len(classes) == 0: + return [], "" + + sorted_idx = probs.argsort()[::-1] + top3 = [ + (STAIN_CLASSES[classes[i]], round(float(probs[i]), 3)) + for i in sorted_idx[:TOP_K] + ] + top1_idx = sorted_idx[0] + + # 시각화 + img = cv2.imread(image_path) + h, w = img.shape[:2] + for i in range(len(classes)): + x1, y1, x2, y2 = map(int, boxes[i]) + cls_id = classes[i] + label = f"{STAIN_CLASSES[cls_id]} {probs[i]:.2f}" + cv2.rectangle(img, (x1, y1), (x2, y2), (0, 0, 255), 2) + cv2.putText( + img, label, (x1, y1 - 5), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 0, 255), 2 + ) + + name = Path(image_path).stem + out_dir = os.path.join(OUT_DIR, "output", "stain") + os.makedirs(os.path.join(out_dir, "images"), exist_ok=True) + os.makedirs(os.path.join(out_dir, "labels"), exist_ok=True) + + image_out = os.path.join(out_dir, "images", f"{name}_stain.jpg") + label_out = os.path.join(out_dir, "labels", f"{name}.txt") + + # Top-1 라벨 저장 + with open(label_out, "w") as f: + i = top1_idx + x1, y1, x2, y2 = map(int, boxes[i]) + xc = ((x1 + x2) / 2) / w + yc = ((y1 + y2) / 2) / h + bw = (x2 - x1) / w + bh = (y2 - y1) / h + f.write(f"{classes[i]} {xc:.6f} {yc:.6f} {bw:.6f} {bh:.6f}\n") + + cv2.imwrite(image_out, img) + return top3, os.path.relpath(image_out, os.path.dirname(OUT_DIR)).replace("\\", "/") + + +# ───── symbol 예측 ───── +def predict_label(image_path): + result = label_model.predict( + source=image_path, + imgsz=2048, + conf=LABEL_CONF, + iou=0.35, + max_det=1000, + agnostic_nms=True, + augment=True, + device="cuda" if torch.cuda.is_available() else "cpu", + verbose=False, + )[0] + + if result.boxes is None or len(result.boxes) == 0: + return None, None + boxes = result.boxes.xyxy.cpu().numpy() + classes = result.boxes.cls.cpu().numpy().astype(int) + probs = result.boxes.conf.cpu().numpy() + + img = cv2.imread(image_path) + h, w = img.shape[:2] + name = Path(image_path).stem + + out_dir = os.path.join(OUT_DIR, "output", "symbol") + os.makedirs(os.path.join(out_dir, "images"), exist_ok=True) + os.makedirs(os.path.join(out_dir, "labels"), exist_ok=True) + + image_out = os.path.join(out_dir, "images", f"{name}_symbol.jpg") + label_out = os.path.join(out_dir, "labels", f"{name}.txt") + + with open(label_out, "w") as f: + for cls_id, conf, box in zip(classes, probs, boxes): + x1, y1, x2, y2 = map(int, box) + class_name = label_model.names[cls_id] + label = f"{class_name} {conf:.2f}" + cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2) + cv2.putText( + img, label, (x1, y1 - 20), cv2.FONT_HERSHEY_SIMPLEX, 2.0, (0, 255, 0), 4 + ) + + xc = ((x1 + x2) / 2) / w + yc = ((y1 + y2) / 2) / h + bw = (x2 - x1) / w + bh = (y2 - y1) / h + f.write(f"{cls_id} {xc:.6f} {yc:.6f} {bw:.6f} {bh:.6f}\n") + + cv2.imwrite(image_out, img) + label_names = list(set(label_model.names[cls] for cls in classes)) + return label_names, os.path.relpath(image_out, os.path.dirname(OUT_DIR)).replace( + "\\", "/" + ) + + +# ───── 실행 진입점 ───── +def main(): + if len(sys.argv) < 3: + print("사용법: python laundry_pipeline.py ") + sys.exit(1) + + analysis_type = sys.argv[1] + image_path = sys.argv[2] + + if analysis_type == "stain_only": + top3, output_path = predict_stain(image_path) + if top3 is None: + output = { + "detected_stain": { + "top3": [{"class": "", "confidence": ""} for _ in range(3)] + }, + "washing_instructions": [{"class": "", "instructions": ["", "", ""]}], + "output_image_path": "", + } + else: + output = { + "detected_stain": { + "top3": [{"class": c, "confidence": s} for c, s in top3] + }, + "washing_instructions": [], + "output_image_path": output_path, + } + + seen_classes = set() + + for stain, _ in top3: + if stain in seen_classes: + continue # 중복 방지 + seen_classes.add(stain) + + methods = stain_guide.get(stain, []) + if isinstance(methods, list) and len(methods) > 0: + first = methods[0] + remaining = methods[1:] + rand = random.sample(remaining, k=min(2, len(remaining))) + combined = [first] + rand + else: + combined = ["정보 없음"] + + output["washing_instructions"].append( + {"class": stain, "instructions": combined} + ) + + print(json.dumps(output, ensure_ascii=False, indent=2)) + + elif analysis_type == "label_only": + labels, output_path = predict_label(image_path) + if labels is None: + output = { + "detected_labels": [], + "label_explanation": [], + "output_image_path": "", + } + else: + output = { + "detected_labels": labels, + "label_explanation": [ + label_guide.get(lbl, "정보 없음") for lbl in labels + ], + "output_image_path": output_path, + } + print(json.dumps(output, ensure_ascii=False, indent=2)) + + elif analysis_type == "stain_and_label": + if len(sys.argv) < 4: + print( + "⚠️ stain_and_label 분석에는 이미지 2장(stain, label) 경로가 필요합니다." + ) + sys.exit(1) + + stain_img = sys.argv[2] + label_img = sys.argv[3] + + top3, stain_out = predict_stain(stain_img) + labels, label_out = predict_label(label_img) + if top3 is None: + stain_class = "" + stain_advices = "" + else: + stain_class = top3[0][0] + stain_advices = stain_guide.get(stain_class, [""])[0] + + label_expls = [label_guide.get(lbl, "") for lbl in labels] if labels else [] + + # DN_wash가 포함되어 있다면 고정된 멘트 출력 + if any("세탁 금지" in expl for expl in label_expls): + llm_output = "감지된 세탁 기호에 따라 물세탁이 불가하여 가정에서 얼룩 제거가 어려운 제품입니다. 반드시 전문 세탁소에 의뢰하시기 바랍니다." + elif not stain_class: + llm_output = "" + else: + prompt = build_llm_prompt(stain_class, stain_advices, label_expls) + input_ids = llm_tokenizer(prompt, return_tensors="pt").to("cuda")[ + "input_ids" + ] + with torch.no_grad(): + output = llm_model.generate( + input_ids, + max_new_tokens=256, + do_sample=True, + temperature=0.6, + top_p=0.85, + top_k=30, + pad_token_id=llm_tokenizer.eos_token_id, + ) + decoded = llm_tokenizer.decode(output[0], skip_special_tokens=True) + llm_output = ( + decoded.split("세탁 방법:")[-1].strip() + if "세탁 방법:" in decoded + else decoded.strip() + ) + + output = { + "top1_stain": stain_class, + "washing_instructions": stain_advices, + "detected_labels": labels if labels else [], + "label_explanation": label_expls, + "output_image_paths": { + "stain": stain_out if top3 else "", + "label": label_out if labels else "", + }, + "llm_generated_guide": llm_output, + } + print(json.dumps(output, ensure_ascii=False, indent=2)) + + else: + print( + "⚠️ analysis_type은 'stain_only', 'label_only', 또는 'stain_and_label' 중 하나여야 합니다." + ) + + +if __name__ == "__main__": + main() diff --git a/ai/pipe_final.py b/ai/pipe_final.py new file mode 100644 index 000000000..ad08b8067 --- /dev/null +++ b/ai/pipe_final.py @@ -0,0 +1,512 @@ +#!/usr/bin/env python3 +""" +MariaDB → YOLO 데이터 복사 → (Re)Train → Optimal per-class conf 찾기 → Evaluate → JSON 저장 + - Ray-tune 콜백 패치 포함 + - stain, symbol 모델 모두 fp32→fp16 로드 + - DB 접속 정보는 실행 시 인자로 전달 + +""" +import os +import sys +import shutil +import json +import time +import logging +import types +import yaml +import torch +import numpy as np +import pymysql +import argparse +from PIL import Image, ImageOps +from collections import defaultdict +from ultralytics import YOLO + +# ──────────────────────────── CLI 인자 파싱 ──────────────────────────── +parser = argparse.ArgumentParser(description="YOLO 파이프라인 실행") +parser.add_argument("--db-host", required=True, help="DB 호스트") +parser.add_argument("--db-port", type=int, required=True, help="DB 포트") +parser.add_argument("--db-user", required=True, help="DB 사용자") +parser.add_argument("--db-password", required=True, help="DB 비밀번호") +parser.add_argument("--db-name", required=True, help="DB 이름") +args = parser.parse_args() + +# ──────────────────────────── DB 설정 ──────────────────────────── +DB_HOST = args.db_host +DB_PORT = args.db_port +DB_USER = args.db_user +DB_PASSWORD = args.db_password +DB_NAME = args.db_name +SQL_QUERY = ( + "SELECT stain_image_url, label_image_url " + "FROM washing_history " + "WHERE estimation = 1 " + " AND (stain_image_url IS NOT NULL OR label_image_url IS NOT NULL);" +) + +# ──────────────────────────── Ray 콜백 패치 (반드시 최상단) ──────────────────────────── +try: + import ray + + try: + import ray.train._internal.session as _session + except ImportError: + internal = getattr(ray.train, "_internal", types.ModuleType("_internal")) + ray.train._internal = internal + session = getattr(internal, "session", types.ModuleType("session")) + internal.session = session + _session = session + if not hasattr(_session, "_get_session"): + _session._get_session = lambda: None + logging.basicConfig(level=logging.INFO) + logging.getLogger(__name__).info( + "✅ Patched ray.train._internal.session._get_session" + ) +except ModuleNotFoundError: + pass + +# ──────────────────────────── 로깅 설정 ──────────────────────────── +logging.basicConfig( + level=logging.DEBUG, + format="%(asctime)s [%(levelname)s] %(message)s", + handlers=[logging.StreamHandler(sys.stdout)], +) +logger = logging.getLogger(__name__) + +# ──────────────────────────── 경로 및 설정 ──────────────────────────── +BASE_DIR = os.path.dirname(os.path.abspath(__file__)) +SRC_ROOT = os.path.abspath(os.path.join(BASE_DIR, os.pardir)) + +STAIN_MODEL_PATH = os.path.join(BASE_DIR, "stain", "stain_cls.pt") +SYMBOL_MODEL_PATH = os.path.join(BASE_DIR, "symbol", "laundry_labels_cls.pt") +STAIN_LABEL_DIR = os.path.join(SRC_ROOT, "images", "output", "stain", "labels") +SYMBOL_LABEL_DIR = os.path.join(SRC_ROOT, "images", "output", "symbol", "labels") + +TRAIN_STAIN_IMG_DIR = os.path.join(BASE_DIR, "data", "stain", "train", "images") +TRAIN_STAIN_LABEL_DIR = os.path.join(BASE_DIR, "data", "stain", "train", "labels") +TRAIN_SYM_IMG_DIR = os.path.join(BASE_DIR, "data", "symbol", "train", "images") +TRAIN_SYM_LABEL_DIR = os.path.join(BASE_DIR, "data", "symbol", "train", "labels") + +TEST_STAIN_IMG_DIR = os.path.join(BASE_DIR, "data", "stain", "test", "images") +SYMBOL_TEST_DIR = os.path.join(BASE_DIR, "data", "symbol", "test", "images") + +STAIN_DATA_YAML = os.path.join(BASE_DIR, "data", "stain", "data.yaml") +SYMBOL_DATA_YAML = os.path.join(BASE_DIR, "data", "symbol", "data.yaml") + +MODEL_BASE_STAIN = os.path.join(BASE_DIR, "model", "stain") +MODEL_BASE_SYM = os.path.join(BASE_DIR, "model", "symbol") +PERF_ROOT = os.path.join(BASE_DIR, os.pardir, "front", "fe-rw", "public", "performance") +for p in [ + STAIN_LABEL_DIR, + SYMBOL_LABEL_DIR, + TRAIN_STAIN_IMG_DIR, + TRAIN_STAIN_LABEL_DIR, + TRAIN_SYM_IMG_DIR, + TRAIN_SYM_LABEL_DIR, + TEST_STAIN_IMG_DIR, + SYMBOL_TEST_DIR, + MODEL_BASE_STAIN, + MODEL_BASE_SYM, + os.path.join(PERF_ROOT, "stain"), + os.path.join(PERF_ROOT, "symbol"), +]: + os.makedirs(p, exist_ok=True) + +# ──────────────────────────── 학습 파라미터 ──────────────────────────── +STAIN_CFG = dict( + data=STAIN_DATA_YAML, + epochs=5, + patience=1, + batch=2, + imgsz=1600, + device="cuda:0", + workers=1, + optimizer="auto", + amp=True, + mosaic=1.0, + mixup=0.0, + auto_augment="randaugment", + erasing=0.4, +) +SYMBOL_CFG = dict( + data=SYMBOL_DATA_YAML, + epochs=5, + patience=1, + batch=2, + imgsz=2048, + device="cuda:0", + workers=4, + optimizer="SGD", + amp=True, + cos_lr=True, + augment=True, + mosaic=True, + mixup=0.3, +) + +EVAL_STAIN_SIZE = 320 +CLASS_NAMES_STAIN = [ + "blood", + "coffee", + "earth", + "ink", + "kimchi", + "lipstick", + "mustard", + "oil", + "wine", +] +CLASS_CONF_THRESH = { + "blood": 0.26, + "coffee": 0.35, + "earth": 0.23, + "ink": 0.19, + "kimchi": 0.5, + "lipstick": 0.33, + "mustard": 0.16, + "oil": 0.36, + "wine": 0.1, +} +GLOBAL_CONF = min(CLASS_CONF_THRESH.values()) + + +# ──────────────────────────── 유틸 함수 ──────────────────────────── +def get_next_run(root: str) -> str: + runs = [int(d) for d in os.listdir(root) if d.isdigit()] + return str(max(runs) + 1) if runs else "1" + + +def copy_pair(url: str, dst_img_dir: str, src_lbl_dir: str, dst_lbl_dir: str): + """ + 이미지 URL과 대응 라벨(.txt)을 src_lbl_dir에서 찾아 + dst_img_dir, dst_lbl_dir로 복사 + """ + logger.debug(f"DB URL: {url}") + if not url: + logger.warning("Empty URL, skip.") + return + # 이미지 경로 해석 + if os.path.isabs(url) and os.path.exists(url): + src_img = url + logger.debug(f"Absolute path used: {src_img}") + else: + rel = url.lstrip("/") + src_img = os.path.join(SRC_ROOT, rel) + logger.debug(f"Resolved relative to SRC_ROOT: {src_img}") + name = os.path.splitext(os.path.basename(src_img))[0] + src_lbl = os.path.join(src_lbl_dir, f"{name}.txt") + img_exists = os.path.exists(src_img) + lbl_exists = os.path.exists(src_lbl) + logger.debug(f"Exists? Image: {img_exists}, Label: {lbl_exists}") + if img_exists and lbl_exists: + shutil.copy2(src_img, os.path.join(dst_img_dir, os.path.basename(src_img))) + shutil.copy2(src_lbl, os.path.join(dst_lbl_dir, f"{name}.txt")) + logger.info(f"Copied {name} → images and labels dirs") + else: + if not img_exists: + logger.error(f"[MISS-IMG] {src_img} not found") + if not lbl_exists: + logger.error(f"[MISS-LBL] {src_lbl} not found") + + +# ──────────────────────────── DB에서 이미지 + 라벨 복사 ──────────────────────────── +def db_fetch(): + logger.info("DB fetch 시작") + conn = pymysql.connect( + host=DB_HOST, + port=DB_PORT, + user=DB_USER, + password=DB_PASSWORD, + database=DB_NAME, + charset="utf8mb4", + ) + with conn: + cur = conn.cursor() + cur.execute(SQL_QUERY) + rows = cur.fetchall() + for stain_url, label_url in rows: + copy_pair( + stain_url, TRAIN_STAIN_IMG_DIR, STAIN_LABEL_DIR, TRAIN_STAIN_LABEL_DIR + ) + copy_pair(label_url, TRAIN_SYM_IMG_DIR, SYMBOL_LABEL_DIR, TRAIN_SYM_LABEL_DIR) + logger.info("DB fetch 완료") + + +# ──────────────────────────── Ray 콜백 제거 및 모델 로드 ──────────────────────────── +def load_yolo(weights: str, want_gpu: bool = True): + if want_gpu and torch.cuda.is_available(): + try: + model = YOLO(weights).to("cuda:0") + model.fuse() + model = model.to("cuda:0", dtype=torch.float16) + logger.info(f"Loaded {weights} on GPU (fp16)") + return model, "cuda:0" + except RuntimeError as e: + if "out of memory" in str(e).lower(): + logger.warning("GPU OOM → CPU fallback") + torch.cuda.empty_cache() + else: + raise + logger.info(f"Loaded {weights} on CPU") + return YOLO(weights), "cpu" + + +# ──────────────────────────── per-class conf 튜닝 ──────────────────────────── +def optimize_conf_thresh(weights_path: str): + logger.info("Optimizing per-class conf thresholds") + model, device = load_yolo(weights_path) + records = [] # (gt_idx, pred_idx, pred_conf) + resize_pad = lambda im: ImageOps.expand( + im, + ( + (max(im.size) - im.size[0]) // 2, + (max(im.size) - im.size[1]) // 2, + max(im.size) - im.size[0] - (max(im.size) - im.size[0]) // 2, + max(im.size) - im.size[1] - (max(im.size) - im.size[1]) // 2, + ), + fill=(0, 0, 0), + ).resize((EVAL_STAIN_SIZE,) * 2) + + # 1) 모든 테스트 이미지에 대해 top1 예측 저장 + for fn in os.listdir(TEST_STAIN_IMG_DIR): + if not fn.lower().endswith((".jpg", ".png")): + continue + gt = fn.split("_")[0].lower() + if gt not in CLASS_NAMES_STAIN: + continue + gt_idx = CLASS_NAMES_STAIN.index(gt) + img = Image.open(os.path.join(TEST_STAIN_IMG_DIR, fn)).convert("RGB") + img = resize_pad(img) + res = model(img, conf=0.0, device=device)[0] + if not res.boxes: + records.append((gt_idx, None, 0.0)) + continue + cls = res.boxes.cls.cpu().numpy().astype(int) + confs = res.boxes.conf.cpu().numpy() + top_idx = confs.argmax() + records.append((gt_idx, cls[top_idx], float(confs[top_idx]))) + + # 2) 클래스별 F1-opt 임계치 탐색 + new_thresh = {} + for c_idx, c_name in enumerate(CLASS_NAMES_STAIN): + total = sum(1 for gt, _, _ in records if gt == c_idx) + best_t, best_f1 = 0.0, -1.0 + for t in np.linspace(0, 1, 101): + tp = sum( + 1 + for gt, pred, conf in records + if gt == c_idx and pred == c_idx and conf >= t + ) + pred_as_c = sum( + 1 for _, pred, conf in records if pred == c_idx and conf >= t + ) + fp = pred_as_c - tp + fn = total - tp + P = tp / (tp + fp) if (tp + fp) > 0 else 0.0 + R = tp / (tp + fn) if (tp + fn) > 0 else 0.0 + f1 = 2 * P * R / (P + R) if (P + R) > 0 else 0.0 + if f1 > best_f1: + best_f1, best_t = f1, t + new_thresh[c_name] = round(best_t, 3) + logger.debug(f"Class {c_name}: best_t={best_t:.3f}, F1={best_f1:.4f}") + + new_global = min(new_thresh.values()) + logger.info(f"Optimized thresholds: {new_thresh}, GLOBAL_CONF={new_global:.3f}") + return new_thresh, new_global + + +# ──────────────────────────── 평가: Stain (miss 제외) ──────────────── +def evaluate_stain(weights_path: str): + logger.info(f"Evaluating stain: {weights_path}") + model, device = load_yolo(weights_path) + + def resize_pad(im): + w, h = im.size + m = max(w, h) + pad = ((m - w) // 2, (m - h) // 2, m - w - (m - w) // 2, m - h - (m - h) // 2) + return ImageOps.expand(im, pad, fill=(0, 0, 0)).resize((EVAL_STAIN_SIZE,) * 2) + + stats = { + "s": defaultdict(int), + "m": defaultdict(int), + "t1": defaultdict(int), + "t3": defaultdict(int), + } + inf_t = 0.0 + for fn in os.listdir(TEST_STAIN_IMG_DIR): + if not fn.lower().endswith((".jpg", ".png")): + continue + gt = fn.split("_")[0].lower() + if gt not in CLASS_NAMES_STAIN: + continue + idx = CLASS_NAMES_STAIN.index(gt) + stats["s"][idx] += 1 + img = resize_pad( + Image.open(os.path.join(TEST_STAIN_IMG_DIR, fn)).convert("RGB") + ) + t0 = time.time() + res = model(img, conf=GLOBAL_CONF, device=device)[0] + inf_t += time.time() - t0 + if not res.boxes: + stats["m"][idx] += 1 + continue + cls = res.boxes.cls.cpu().numpy().astype(int) + confs = res.boxes.conf.cpu().numpy() + keep = np.array( + [ + confs[i] >= CLASS_CONF_THRESH[CLASS_NAMES_STAIN[c]] + for i, c in enumerate(cls) + ], + dtype=bool, + ) + cls, confs = cls[keep], confs[keep] + if cls.size == 0: + stats["m"][idx] += 1 + continue + order = confs.argsort()[::-1] + top3 = cls[order[:3]] + if idx == top3[0]: + stats["t1"][idx] += 1 + if idx in top3: + stats["t3"][idx] += 1 + + per, tot_s, tot_m, tot1, tot3 = {}, 0, 0, 0, 0 + for i, name in enumerate(CLASS_NAMES_STAIN): + s = stats["s"][i] + m = stats["m"][i] + non_miss = s - m + o1 = stats["t1"][i] + o3 = stats["t3"][i] + if non_miss > 0: + per[name] = { + "samples": s, + "miss": m, + "top1_acc": round(o1 / non_miss, 4), + "top3_acc": round(o3 / non_miss, 4), + } + tot_s += s + tot_m += m + tot1 += o1 + tot3 += o3 + overall = {} + total_non_miss = tot_s - tot_m + if total_non_miss > 0: + overall = { + "samples": tot_s, + "miss": tot_m, + "top1_acc": round(tot1 / total_non_miss, 4), + "top3_acc": round(tot3 / total_non_miss, 4), + "precision": round(tot1 / total_non_miss, 4), + "recall": round(tot1 / total_non_miss, 4), + "inference_time": { + "total_s": round(inf_t, 4), + "avg_per_image_s": round(inf_t / tot_s, 4), + }, + } + logger.info(f"Stain overall (miss excluded): {overall}") + return {"per_class": per, "overall": overall} + + +# ──────────────────────────── 평가: Symbol (Zero-AP 제외 + CONF_THRESH/AUGMENT 적용) ──────────────────────────── +SYMBOL_CONF = 0.1 +SYMBOL_AUG = True + + +def evaluate_symbol(weights_path: str): + logger.info(f"Evaluating symbol: {weights_path}") + model, device = load_yolo(weights_path) + first = model.val( + data=SYMBOL_DATA_YAML, + split="test", + imgsz=SYMBOL_CFG["imgsz"], + conf=SYMBOL_CONF, + augment=False, + device=device, + verbose=False, + ) + initial_maps = dict(zip(first.ap_class_index, first.maps)) + valid_ids = [int(idx) for idx, ap in initial_maps.items() if ap > 0.0] + logger.debug(f"Symbol valid IDs (AP>0): {valid_ids}") + final = model.val( + data=SYMBOL_DATA_YAML, + split="test", + imgsz=SYMBOL_CFG["imgsz"], + conf=SYMBOL_CONF, + augment=SYMBOL_AUG, + classes=valid_ids, + device=device, + verbose=False, + ) + P, R, mAP50, mAP5095 = final.box.mean_results() + inf_ms = final.speed.get("inference", 0.0) + names = yaml.safe_load(open(SYMBOL_DATA_YAML))["names"] + ap_map = {int(idx): float(ap) for idx, ap in zip(final.ap_class_index, final.maps)} + per_cls = {name: ap_map.get(i, 0.0) for i, name in enumerate(names)} + metrics = { + "precision": P, + "recall": R, + "mAP50": mAP50, + "mAP50-95": mAP5095, + "inference_time_ms": inf_ms, + "per_class": per_cls, + } + logger.info(f"Symbol metrics (filtered): {metrics}") + return metrics + + +# ──────────────────────────── 학습 & 평가 파이프라인 ──────────────────────────── +def retrain_and_eval(): + logger.info("Starting retrain & eval pipeline") + # Stain 모델 재학습 + conf 튜닝 + 평가 + if os.listdir(TRAIN_STAIN_IMG_DIR): + run = get_next_run(MODEL_BASE_STAIN) + model = YOLO(STAIN_MODEL_PATH) + model.callbacks = [] + model.train(project=MODEL_BASE_STAIN, name=run, save=True, **STAIN_CFG) + best = os.path.join(MODEL_BASE_STAIN, run, "weights", "best.pt") + logger.info(f"[Stain] Trained -> {best}") + new_thresh, new_global = optimize_conf_thresh(best) + CLASS_CONF_THRESH.clear() + CLASS_CONF_THRESH.update(new_thresh) + global GLOBAL_CONF + GLOBAL_CONF = new_global + res = evaluate_stain(best) + out = { + "model_version": float(run) / 10, + "model_type": "stain", + "weights_path": best, + "metrics": res, + } + p = os.path.join(PERF_ROOT, "stain", "performance.json") + json.dump(out, open(p, "w", encoding="utf8"), ensure_ascii=False, indent=2) + logger.info(f"[Stain] Report -> {p}") + else: + logger.error("No stain train images found; skipping stain") + # Symbol 모델 재학습 + 평가 + if os.listdir(TRAIN_SYM_IMG_DIR): + run = get_next_run(MODEL_BASE_SYM) + model = YOLO(SYMBOL_MODEL_PATH) + model.callbacks = [] + model.train(project=MODEL_BASE_SYM, name=run, save=True, **SYMBOL_CFG) + best = os.path.join(MODEL_BASE_SYM, run, "weights", "best.pt") + logger.info(f"[Symbol] Trained -> {best}") + res = evaluate_symbol(best) + out = { + "model_version": float(run) / 10, + "model_type": "symbol", + "weights_path": best, + "metrics": res, + } + p = os.path.join(PERF_ROOT, "symbol", "performance.json") + json.dump(out, open(p, "w", encoding="utf8"), ensure_ascii=False, indent=2) + logger.info(f"[Symbol] Report -> {p}") + else: + logger.error("No symbol train images found; skipping symbol") + logger.info("Retrain & eval pipeline complete") + + +if __name__ == "__main__": + logger.info("── PIPELINE START ──") + db_fetch() + retrain_and_eval() + logger.info("── PIPELINE COMPLETE ──") diff --git a/ai/prompt.py b/ai/prompt.py new file mode 100644 index 000000000..958891096 --- /dev/null +++ b/ai/prompt.py @@ -0,0 +1,86 @@ +# test_llm_only.py +import torch +from transformers import AutoTokenizer, AutoModelForCausalLM +import os + +# ───── 모델 로딩 ───── +LLM_MODEL_DIR = "llm/kanana-nano-2.1b-base" + +tokenizer = AutoTokenizer.from_pretrained(LLM_MODEL_DIR, padding_side="left") +tokenizer.pad_token = tokenizer.eos_token +try: + model = AutoModelForCausalLM.from_pretrained( + LLM_MODEL_DIR, torch_dtype=torch.bfloat16, trust_remote_code=True + ).to("cuda") +except (RuntimeError, ValueError): + print("⚠️ bfloat16 미지원 → float32로 재시도") + model = AutoModelForCausalLM.from_pretrained( + LLM_MODEL_DIR, torch_dtype=torch.float32, trust_remote_code=True + ).to("cuda") + + +# ───── 프롬프트 생성 함수 ───── +def build_llm_prompt(stain_class, stain_advices, label_expls): + stain_list_text = "\n".join( + [f"{i+1}. {advice}" for i, advice in enumerate(stain_advices)] + ) + label_text = ( + "세탁 기호가 감지되지 않았습니다." + if not label_expls + else ", ".join(label_expls) + ) + + return ( + f"얼룩 종류: {stain_class}\n" + f"감지된 세탁 기호: {label_text}\n" + f"가능한 얼룩 제거법:\n{stain_list_text}\n\n" + f"조건:\n" + f"- 금지된 세탁 조건을 절대 위반하지 마세요.\n" + f"- 제거법 중 세탁 기호에 위배되지 않는 하나만 선택하세요.\n" + f"- 선택한 제거법을 명령형 한 문장으로 작성하세요.\n" + f"- 다른 문장 없이 그 문장 하나만 출력하세요.\n" + f"- 세탁이 불가능하다면 '물세탁이 불가능하므로 세탁소에 맡기세요.'라고 출력하세요.\n\n" + f"세탁 방법:" + ) + + +# ───── 테스트 입력 ───── +stain_class = "blood" +stain_advices = [ + "찬물로 씻은 후 과산화수소를 뿌려 살살 비벼준 다음 다시 찬물로 헹구어 세탁한다.", + "따뜻한 물과 비누로 얼룩 부위를 살짝 문지른 뒤, 소금물에 담가 거품을 내며 세탁한다.", + "피가 굳은 경우, 치약을 발라 10분간 둔 뒤 굳은 부분을 찬물로 헹구어 제거한다.", +] +label_expls = [ + "회전식 건조기 사용 금지.", + "세탁 금지: 물세탁을 하지 마세요.", + "표백 금지: 산소계, 염소계 표백제를 모두 사용하지 마세요.", + "다림질 금지: 열에 의해 손상될 수 있습니다.", + "드라이클리닝 가능.", +] +label_warnings = [desc for desc in label_expls if "금지" in desc] + +# ───── LLM 실행 ───── +prompt = build_llm_prompt(stain_class, stain_advices, label_expls) + +input_ids = tokenizer(prompt, return_tensors="pt").to("cuda")["input_ids"] +with torch.no_grad(): + output = model.generate( + input_ids, + max_new_tokens=256, + do_sample=True, + temperature=0.6, + top_p=0.85, + top_k=30, + pad_token_id=tokenizer.eos_token_id, + ) +decoded = tokenizer.decode(output[0], skip_special_tokens=True) + +if "세탁 방법:" in decoded: + result = decoded.split("세탁 방법:")[-1].strip() +else: + result = decoded.strip() + +print("───────────────────── LLM 결과 ─────────────────────") +print(result) +print("─────────────────────────────────────────────────────") diff --git a/ai/stain/stain_cls.pt b/ai/stain/stain_cls.pt new file mode 100644 index 000000000..1d6c01291 Binary files /dev/null and b/ai/stain/stain_cls.pt differ diff --git a/ai/stain/stain_washing_guidelines.json b/ai/stain/stain_washing_guidelines.json new file mode 100644 index 000000000..6444e6206 --- /dev/null +++ b/ai/stain/stain_washing_guidelines.json @@ -0,0 +1,52 @@ +{ + "blood": [ + "찬물로 씻은 후 과산화수소를 뿌려 살살 비벼준 다음 다시 찬물로 헹구어 세탁한다.", + "따뜻한 물과 비누로 얼룩 부위를 살짝 문지른 뒤, 소금물에 담가 거품을 내며 세탁한다.", + "피가 굳은 경우, 치약을 발라 10분간 둔 뒤 굳은 부분을 찬물로 헹구어 제거한다." + ], + "coffee": [ + "소금을 미지근한 물에 녹여 얼룩 부위에 묻혀 가볍게 문질러 세탁한다.", + "무당·무색소 탄산수를 얼룩에 적신 뒤 티슈로 두드려 흡수시켜 세탁한다.", + "글리세린을 얼룩에 바른 후 20~30분 방치한 뒤 찬물로 헹구어 세탁한다." + ], + "earth": [ + "알코올을 얼룩에 바른 후 비누로 손세탁하여 제거한다.", + "마른 흙을 털어낸 후 식초와 주방세제를 1:1로 섞어 문지르고 과탄산소다에 담가 세탁한다.", + "얼룩 부위를 찬물로 헹군 뒤 세제를 직접 바르고 10분 후 문질러 세탁한다.", + "과탄산소다와 주방세제를 푼 따뜻한 물에 1시간 담근 뒤 솔로 문질러 세탁한다.", + "식빵을 얼룩 부위에 문질러 흡착시켜 제거한다.", + "감자를 문질러 전분 성분을 입힌 후 주방세제를 바르고 문질러 세탁한다.", + "구연산 발포제를 뿌린 뒤 얼룩을 닦아내어 제거한다." + ], + "ink": [ + "알콜솜을 얼룩 부위에 대고 두드려가며 잉크를 흡수시켜 제거한다.", + "헤어스프레이를 뿌린 뒤 수건으로 톡톡 두드려 흡수시켜 제거한다.", + "차가운 우유를 뿌려 30분간 방치한 후 기존 세제로 세탁하여 제거한다.", + "아세톤을 천에 묻혀 얼룩 부위를 꾹꾹 눌러 흡수시켜 제거한다." + ], + "kimchi": [ + "베이킹소다와 세제를 혼합해 문질러 미지근한 물로 세탁한다.", + "주방세제와 식초를 혼합해 얼룩 부위를 문질러 미지근한 물로 세탁한다.", + "세탁 후 잔여 얼룩이 있다면 햇볕에 말려 자연 탈색시켜 제거한다." + ], + "lipstick": [ + "알코올을 탈지면에 묻혀 얼룩 부위를 문질러 제거한다.", + "클렌징 티슈로 얼룩 부위를 반복적으로 문질러 제거한다.", + "헤어스프레이를 뿌려 말린 뒤 물티슈로 닦아내어 제거한다." + ], + "mustard": [ + "찬물에 적신 뒤 중성세제로 문지르고 산소계 표백제에 담가 세탁한다.", + "과탄산 소다 또는 베이킹 소다를 얼룩에 바른 후 물로 헹구어 세탁한다.", + "식초, 주방세제, 물을 1:1:2로 혼합해 바르고 10분 후 헹구어 세탁한다." + ], + "oil": [ + "식초를 얼룩 부위에 바르고 가볍게 문질러 바로 세탁한다.", + "레몬즙을 수건에 적셔 얼룩을 두드린 뒤 5~10분 후 세탁한다.", + "색 옷을 콜라에 담갔다가 얼룩 부위를 문질러 세탁한다." + ], + "wine": [ + "젖은 티슈로 얼룩을 찍어낸 후 주방세제로 문질러 60°C 물로 세탁한다.", + "산소계 표백제에 10분간 담갔다가 손세탁 또는 세탁기로 세탁한다.", + "따뜻한 소금물로 얼룩 부위를 문지르고 탄산수로 헹구어 세탁한다." + ] +} diff --git a/ai/symbol/label_symbol_guide.json b/ai/symbol/label_symbol_guide.json new file mode 100644 index 000000000..9553b0a15 --- /dev/null +++ b/ai/symbol/label_symbol_guide.json @@ -0,0 +1,45 @@ +{ + "30C": "30도에서 약하게 세탁하세요. 울이나 섬세한 의류에 적합합니다.", + "40C": "40도 이하에서 일반 세탁 가능합니다.", + "50C": "50도 이하에서 세탁 가능합니다. 약간 강한 세탁이 가능합니다.", + "60C": "60도 이하에서 세탁 가능합니다. 속옷이나 침구류 등 위생 세탁에 적합합니다.", + "70C": "70도 이하 고온 세탁 가능. 세균 제거 목적에 적합합니다.", + "95C": "95도 고온 세탁 가능. 삶는 세탁도 가능합니다.", + "DN_bleach": "표백 금지: 산소계, 염소계 표백제를 모두 사용하지 마세요.", + "DN_dry": "건조 금지: 열 건조나 자연 건조 모두 피해야 합니다.", + "DN_dry_clean": "드라이클리닝 금지: 전문가 세탁소에 맡기는 것도 금지입니다.", + "DN_iron": "다림질 금지: 열에 의해 손상될 수 있습니다.", + "DN_steam": "스팀 금지: 스팀 다림질은 하지 마세요.", + "DN_tumble_dry": "회전식 건조기 사용 금지.", + "DN_wash": "세탁 금지: 물세탁을 하지 마세요.", + "DN_wet_clean": "습식 세탁 금지: 전문가용 습식 세탁도 금지입니다.", + "DN_wring": "짜지 마세요: 탈수나 손으로 비틀어 짜는 행위는 금지입니다.", + "bleach": "표백 가능: 필요 시 산소계 또는 염소계 표백제 사용 가능합니다.", + "chlorine_bleach": "염소계 표백제 사용 가능.", + "non_chlorine_bleach": "염소계 표백제 금지, 산소계 표백제만 허용됩니다.", + "drip_dry": "물기가 뚝뚝 떨어지게 널어 말리세요. 탈수하지 마세요.", + "drip_dry_in_shade": "그늘에서 뚝뚝 떨어지게 말리세요.", + "dry_flat": "편평하게 눕혀서 건조하세요. 옷의 변형 방지를 위해 적합합니다.", + "dry_flat_in_shade": "그늘에 눕혀서 건조하세요.", + "line_dry": "옷걸이나 줄에 널어 말리세요.", + "line_dry_in_shade": "그늘에서 옷걸이나 줄에 널어 말리세요.", + "natural_dry": "자연 건조 가능: 일반적인 실내 혹은 야외 건조.", + "shade_dry": "직사광선을 피하고 그늘에서 말리세요.", + "dry_clean": "드라이클리닝 가능.", + "dry_clean_any_solvent_except_trichloroethylene": "트리클로로에틸렌 제외 모든 용제로 드라이클리닝 가능.", + "dry_clean_petrol_only": "석유계 용제만 사용한 드라이클리닝 가능.", + "hand_wash": "손세탁 권장: 약한 세제와 미온수 사용.", + "machine_wash": "세탁기 사용 가능.", + "iron": "다림질 가능. 온도에 유의하세요.", + "iron_high": "고온 다림질 가능: 약 200°C 이하에서 사용.", + "iron_medium": "중온 다림질 가능: 약 150°C 이하 권장.", + "iron_low": "저온 다림질 가능: 약 110°C 이하 권장.", + "steam": "스팀 다림질 가능.", + "tumble_dry_normal": "회전식 건조기 사용 가능 (보통 온도).", + "tumble_dry_low": "회전식 건조기 저온 사용 권장.", + "tumble_dry_medium": "회전식 건조기 중온 사용 가능.", + "tumble_dry_high": "회전식 건조기 고온 사용 가능.", + "tumble_dry_no_heat": "열 없이 회전 건조만 가능합니다.", + "wet_clean": "습식 세탁 가능: 전문가용 습식 세탁 허용.", + "wring": "비틀어 짜기 가능." +} diff --git a/ai/symbol/laundry_labels_cls.pt b/ai/symbol/laundry_labels_cls.pt new file mode 100644 index 000000000..35605439b Binary files /dev/null and b/ai/symbol/laundry_labels_cls.pt differ diff --git a/ai/t_main.py b/ai/t_main.py new file mode 100644 index 000000000..e01f0833a --- /dev/null +++ b/ai/t_main.py @@ -0,0 +1,377 @@ +import os +import json +import cv2 +import numpy as np +from pathlib import Path +from ultralytics import YOLO +import torch +import sys +import random +from transformers import AutoTokenizer, AutoModelForCausalLM + +# ───── 경로 설정 ───── +BASE_DIR = os.path.dirname(os.path.abspath(__file__)) +STAIN_MODEL_PATH = os.path.join(BASE_DIR, "stain", "stain_cls.pt") +LABEL_MODEL_PATH = os.path.join(BASE_DIR, "symbol", "laundry_labels_cls.pt") +STAIN_GUIDE_PATH = os.path.join(BASE_DIR, "stain", "stain_washing_guidelines.json") +LABEL_GUIDE_PATH = os.path.join(BASE_DIR, "symbol", "label_symbol_guide.json") +OUT_DIR = os.path.abspath(os.path.join(BASE_DIR, "..", "images")) + +# 로컬 LLM 모델 경로 설정 (사전에 다운로드된 모델 디렉토리) +LLM_MODEL_DIR = os.path.join(BASE_DIR, "llm/kanana-nano-2.1b-base") +# LLM 모델 로딩 +llm_tokenizer = AutoTokenizer.from_pretrained(LLM_MODEL_DIR, padding_side="left") +llm_tokenizer.pad_token = llm_tokenizer.eos_token + +try: + llm_model = AutoModelForCausalLM.from_pretrained( + LLM_MODEL_DIR, torch_dtype=torch.bfloat16, trust_remote_code=True + ).to("cuda") +except (RuntimeError, ValueError) as e: + print("⚠️ bfloat16 미지원 → float32로 재시도") + llm_model = AutoModelForCausalLM.from_pretrained( + LLM_MODEL_DIR, torch_dtype=torch.float32, trust_remote_code=True + ).to("cuda") + + +# ───── 클래스 및 설정 ───── +STAIN_CLASSES = [ + "blood", + "coffee", + "earth", + "ink", + "kimchi", + "lipstick", + "mustard", + "oil", + "wine", +] +CLASS_CONF_TH = { + "blood": 0.260, + "coffee": 0.350, + "earth": 0.230, + "ink": 0.190, + "kimchi": 0.500, + "lipstick": 0.330, + "mustard": 0.160, + "oil": 0.360, + "wine": 0.100, +} +GLOBAL_CONF = min(CLASS_CONF_TH.values()) +LABEL_CONF = 0.5 +TOP_K = 3 + + +def build_llm_prompt(stain_class, stain_advices, label_expls): + if not stain_class or not stain_advices: + return "" + + # 얼룩 제거법 후보 정리 + stain_list_text = "\n".join( + [f"{i+1}. {advice}" for i, advice in enumerate(stain_advices)] + ) + + # 세탁 기호 요약 설명 정리 + label_text = ( + "세탁 조건이 감지되지 않았습니다." + if not label_expls + else "\n" + "\n".join(f"- {e}" for e in label_expls) + ) + + # 프롬프트 템플릿 + prompt = f"""당신은 얼룩 제거 전문가입니다. + +다음은 옷의 얼룩 종류와 세탁 조건에 대한 정보입니다: + +▸ 얼룩 종류: {stain_class} +▸ 얼룩 제거법 후보: +{stain_list_text} +▸ 옷의 세탁 조건: +{label_text} + +이 정보를 참고하여 얼룩 제거 방법을 아래 조건에 맞게 안내해 주세요: + +- **가장 적절한 제거 방법 하나만 선택**하여 설명하세요. 나머지는 언급하지 마세요. +- '세탁 기호'나 '기호명' 같은 표현은 사용하지 마세요. +- 세탁 조건은 자연스럽게 문장 안에 녹여 설명하세요. + 예: '표백 금지' → '표백제는 사용하지 마세요' + '회전식 건조 금지' → '자연 건조를 권장합니다' +- 인사말 없이, 친절하고 명확한 한 문단으로 작성하세요. + +세탁 방법:""" + return prompt + + +# ───── 모델 및 가이드 로딩 ───── +stain_model = YOLO(STAIN_MODEL_PATH) +label_model = YOLO(LABEL_MODEL_PATH) +with open(STAIN_GUIDE_PATH, "r", encoding="utf-8") as f: + stain_guide = json.load(f) +with open(LABEL_GUIDE_PATH, "r", encoding="utf-8") as f: + label_guide = json.load(f) + + +# ───── stain 예측 ───── +def predict_stain(image_path): + result = stain_model(image_path, conf=GLOBAL_CONF, imgsz=320)[0] + if result.boxes is None or len(result.boxes) == 0: + return None, None + + classes = result.boxes.cls.cpu().numpy().astype(int) + probs = result.boxes.conf.cpu().numpy() + boxes = result.boxes.xyxy.cpu().numpy() + + keep = np.array( + [ + probs[i] >= CLASS_CONF_TH[STAIN_CLASSES[cls]] + for i, cls in enumerate(classes) + ], + dtype=bool, + ) + + if not keep.any(): + return None, None + classes, probs, boxes = classes[keep], probs[keep], boxes[keep] + if len(classes) == 0: + return [], "" + + sorted_idx = probs.argsort()[::-1] + top3 = [ + (STAIN_CLASSES[classes[i]], round(float(probs[i]), 3)) + for i in sorted_idx[:TOP_K] + ] + top1_idx = sorted_idx[0] + + # 시각화 + img = cv2.imread(image_path) + h, w = img.shape[:2] + for i in range(len(classes)): + x1, y1, x2, y2 = map(int, boxes[i]) + cls_id = classes[i] + label = f"{STAIN_CLASSES[cls_id]} {probs[i]:.2f}" + cv2.rectangle(img, (x1, y1), (x2, y2), (0, 0, 255), 2) + cv2.putText( + img, label, (x1, y1 - 5), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 0, 255), 2 + ) + + name = Path(image_path).stem + out_dir = os.path.join(OUT_DIR, "output", "stain") + os.makedirs(os.path.join(out_dir, "images"), exist_ok=True) + os.makedirs(os.path.join(out_dir, "labels"), exist_ok=True) + + image_out = os.path.join(out_dir, "images", f"{name}_stain.jpg") + label_out = os.path.join(out_dir, "labels", f"{name}.txt") + + # Top-1 라벨 저장 + with open(label_out, "w") as f: + i = top1_idx + x1, y1, x2, y2 = map(int, boxes[i]) + xc = ((x1 + x2) / 2) / w + yc = ((y1 + y2) / 2) / h + bw = (x2 - x1) / w + bh = (y2 - y1) / h + f.write(f"{classes[i]} {xc:.6f} {yc:.6f} {bw:.6f} {bh:.6f}\n") + + cv2.imwrite(image_out, img) + return top3, os.path.relpath(image_out, os.path.dirname(OUT_DIR)).replace("\\", "/") + + +# ───── symbol 예측 ───── +def predict_label(image_path): + result = label_model.predict( + source=image_path, + imgsz=2048, + conf=LABEL_CONF, + iou=0.35, + max_det=1000, + agnostic_nms=True, + augment=True, + device="cuda" if torch.cuda.is_available() else "cpu", + verbose=False, + )[0] + + if result.boxes is None or len(result.boxes) == 0: + return None, None + boxes = result.boxes.xyxy.cpu().numpy() + classes = result.boxes.cls.cpu().numpy().astype(int) + probs = result.boxes.conf.cpu().numpy() + + img = cv2.imread(image_path) + h, w = img.shape[:2] + name = Path(image_path).stem + + out_dir = os.path.join(OUT_DIR, "output", "symbol") + os.makedirs(os.path.join(out_dir, "images"), exist_ok=True) + os.makedirs(os.path.join(out_dir, "labels"), exist_ok=True) + + image_out = os.path.join(out_dir, "images", f"{name}_symbol.jpg") + label_out = os.path.join(out_dir, "labels", f"{name}.txt") + + with open(label_out, "w") as f: + for cls_id, conf, box in zip(classes, probs, boxes): + x1, y1, x2, y2 = map(int, box) + class_name = label_model.names[cls_id] + label = f"{class_name} {conf:.2f}" + cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2) + cv2.putText( + img, label, (x1, y1 - 20), cv2.FONT_HERSHEY_SIMPLEX, 2.0, (0, 255, 0), 4 + ) + + xc = ((x1 + x2) / 2) / w + yc = ((y1 + y2) / 2) / h + bw = (x2 - x1) / w + bh = (y2 - y1) / h + f.write(f"{cls_id} {xc:.6f} {yc:.6f} {bw:.6f} {bh:.6f}\n") + + cv2.imwrite(image_out, img) + label_names = list(set(label_model.names[cls] for cls in classes)) + return label_names, os.path.relpath(image_out, os.path.dirname(OUT_DIR)).replace( + "\\", "/" + ) + + +# ───── 실행 진입점 ───── +def main(): + if len(sys.argv) < 3: + print("사용법: python laundry_pipeline.py ") + sys.exit(1) + + analysis_type = sys.argv[1] + image_path = sys.argv[2] + + if analysis_type == "stain_only": + top3, output_path = predict_stain(image_path) + if top3 is None: + output = { + "detected_stain": { + "top3": [{"class": "", "confidence": ""} for _ in range(3)] + }, + "washing_instructions": [{"class": "", "instructions": ["", "", ""]}], + "output_image_path": "", + } + else: + output = { + "detected_stain": { + "top3": [{"class": c, "confidence": s} for c, s in top3] + }, + "washing_instructions": [], + "output_image_path": output_path, + } + + seen_classes = set() + + for stain, _ in top3: + if stain in seen_classes: + continue # 중복 방지 + seen_classes.add(stain) + + methods = stain_guide.get(stain, []) + if isinstance(methods, list) and len(methods) > 0: + first = methods[0] + remaining = methods[1:] + rand = random.sample(remaining, k=min(2, len(remaining))) + combined = [first] + rand + else: + combined = ["정보 없음"] + + output["washing_instructions"].append( + {"class": stain, "instructions": combined} + ) + + print(json.dumps(output, ensure_ascii=False, indent=2)) + + elif analysis_type == "label_only": + labels, output_path = predict_label(image_path) + if labels is None: + output = { + "detected_labels": [], + "label_explanation": [], + "output_image_path": "", + } + else: + output = { + "detected_labels": labels, + "label_explanation": [ + label_guide.get(lbl, "정보 없음") for lbl in labels + ], + "output_image_path": output_path, + } + print(json.dumps(output, ensure_ascii=False, indent=2)) + + elif analysis_type == "stain_and_label": + if len(sys.argv) < 4: + print( + "⚠️ stain_and_label 분석에는 이미지 2장(stain, label) 경로가 필요합니다." + ) + sys.exit(1) + + stain_img = sys.argv[2] + label_img = sys.argv[3] + + top3, stain_out = predict_stain(stain_img) + labels, label_out = predict_label(label_img) + + if top3 is None: + stain_class = "" + stain_advices = [] + else: + stain_class = top3[0][0] + all_methods = stain_guide.get(stain_class, []) + if isinstance(all_methods, list) and len(all_methods) > 0: + first = all_methods[0] + remaining = all_methods[1:] + rand = random.sample(remaining, k=min(2, len(remaining))) + stain_advices = [first] + rand + else: + stain_advices = ["정보 없음"] + + label_expls = [label_guide.get(lbl, "") for lbl in labels] if labels else [] + + # DN_wash가 포함되어 있다면 고정된 멘트 출력 + if any("세탁 금지" in expl for expl in label_expls): + llm_output = "감지된 세탁 기호에 따라 물세탁이 불가하여 가정에서 얼룩 제거가 어려운 제품입니다. 반드시 전문 세탁소에 의뢰하시기 바랍니다." + elif not stain_class: + llm_output = "" + else: + prompt = build_llm_prompt(stain_class, stain_advices, label_expls) + input_ids = llm_tokenizer(prompt, return_tensors="pt").to("cuda")[ + "input_ids" + ] + with torch.no_grad(): + output = llm_model.generate( + input_ids, + max_new_tokens=256, + do_sample=True, + temperature=0.6, + top_p=0.85, + top_k=30, + pad_token_id=llm_tokenizer.eos_token_id, + ) + decoded = llm_tokenizer.decode(output[0], skip_special_tokens=True) + llm_output = ( + decoded.split("세탁 방법:")[-1].strip() + if "세탁 방법:" in decoded + else decoded.strip() + ) + + output = { + "top1_stain": stain_class, + "washing_instructions": stain_advices, + "detected_labels": labels if labels else [], + "label_explanation": label_expls, + "output_image_paths": { + "stain": stain_out if top3 else "", + "label": label_out if labels else "", + }, + "llm_generated_guide": llm_output, + } + print(json.dumps(output, ensure_ascii=False, indent=2)) + + else: + print( + "⚠️ analysis_type은 'stain_only', 'label_only', 또는 'stain_and_label' 중 하나여야 합니다." + ) + + +if __name__ == "__main__": + main() diff --git a/ai/test.py b/ai/test.py new file mode 100644 index 000000000..d175f0361 --- /dev/null +++ b/ai/test.py @@ -0,0 +1,15 @@ +import os +from transformers import AutoTokenizer, AutoModelForCausalLM + +model_id = "kakaocorp/kanana-nano-2.1b-base" +save_dir = "./llm/kanana-nano-2.1b-base" + +# 1. 저장 경로 디렉토리 생성 (존재하지 않으면 생성) +os.makedirs(save_dir, exist_ok=True) + +# 2. 모델과 토크나이저 다운로드 및 저장 +tokenizer = AutoTokenizer.from_pretrained(model_id) +model = AutoModelForCausalLM.from_pretrained(model_id) + +tokenizer.save_pretrained(save_dir) +model.save_pretrained(save_dir) diff --git a/ai/train/train_stain_model.py b/ai/train/train_stain_model.py new file mode 100644 index 000000000..a562779d2 --- /dev/null +++ b/ai/train/train_stain_model.py @@ -0,0 +1,72 @@ +import os +import torch +import random +import numpy as np +from ultralytics import YOLO + +# ───── 경로 설정 ───── +DATA_YAML = "/content/drive/MyDrive/dataset_stain/data.yaml" +PROJECT_DIR = "/content/drive/MyDrive/yolov8m_stain" +PRETRAINED = os.path.join(PROJECT_DIR, "stain_yolov8s_1600_a1", "weights", "last.pt") + +# ───── 재현성용 시드 고정 ───── +seed = 0 +random.seed(seed) +np.random.seed(seed) +torch.manual_seed(seed) + +# ───── 모델 로드 (이전 체크포인트) ───── +model = YOLO(PRETRAINED) + +# ───── 학습 파라미터 ───── +train_params = dict( + data=DATA_YAML, + epochs=500, # 전체 에폭 수 (이어서: 이전 훈련 포함) + patience=15, # 조기종료 patience + batch=8, + imgsz=1600, + save=True, + save_period=-1, + cache=False, + device="cuda:0", + workers=1, + project=PROJECT_DIR, + name="stain_yolov8s_1600_a1", + exist_ok=False, + pretrained=True, + optimizer="auto", + verbose=True, + seed=seed, + deterministic=True, + single_cls=False, + rect=False, + cos_lr=False, + close_mosaic=10, + resume=True, # ← 이전 훈련 이어서 + amp=True, + fraction=1.0, + profile=False, + freeze=None, + multi_scale=False, + overlap_mask=True, + mask_ratio=4, + dropout=0.0, + val=True, + split="val", + save_json=False, + save_hybrid=False, + conf=None, + iou=0.7, + max_det=300, + half=False, + dnn=False, + plots=True, + augment=False, + agnostic_nms=False, + classes=None, + retina_masks=False, + show=False, + save_frames=False, + save_txt=False, + save_conf=False, +) diff --git a/ai/train/train_symbol_model.py b/ai/train/train_symbol_model.py new file mode 100644 index 000000000..efcf61274 --- /dev/null +++ b/ai/train/train_symbol_model.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python3 +import os +# (선택) 메모리 단편화 방지 +os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "max_split_size_mb:128" + +# ─── Ray 2.x 세션 이름 바인딩 패치 ───────────────────────── +try: + import ray.train._internal.session as _internal_session + if hasattr(_internal_session, 'get_session') and not hasattr(_internal_session, '_get_session'): + _internal_session._get_session = _internal_session.get_session + print("[Patch] Ray 2.x 호환성 패치 완료") +except Exception as e: + print(f"[Warning] Ray 패치 실패 ({e}), RayTuneCallback 에러가 발생할 수 있음") +# ─────────────────────────────────────────────────────────── + +import torch +from ultralytics import YOLO + + +def main(): + # 디바이스 설정 + device = 'cuda:0' if torch.cuda.is_available() else 'cpu' + print(f"[Train] Using device: {device}") + + # 모델 로드: yolov8m (medium) + model = YOLO("yolov8m.pt").to(device) + + # 학습 파라미터 최적화 설정 + train_params = { + 'data': "/home/t25119/aiLab/labels_detect_cls/data/version1/data.yaml", + 'epochs': 100, # 충분한 에폭 증가 + 'imgsz': 2048, # 고해상도로 안정적 검출 + 'batch': 4, # VRAM 상황에 맞춰 조정 + 'device': device, + 'optimizer': 'SGD', # 모멘텀 활성화된 SGD 사용 + 'lr0': 0.01, # 초기 학습률 + 'lrf': 0.2, # 최종 학습률 비율 + 'momentum': 0.937, # SGD 모멘텀 + 'weight_decay': 0.0005, # 가중치 감쇠 + 'warmup_epochs': 3, # 워밍업 에폭 + 'warmup_momentum': 0.8, + 'warmup_bias_lr': 0.1, + 'augment': True, # 데이터 증강 활성화 + 'cos_lr': True, # Cosine Annealing LR 스케줄러 + 'patience': 25, # Early stopping patience + 'project': "/home/t25119/aiLab/labels_detect_cls/model", + 'name': "label43_yolov8m_2048", + # 추가 하이퍼파라미터 옵션 + 'hsv_h': 0.015, # HSV 색상 변형 범위 + 'hsv_s': 0.7, + 'hsv_v': 0.4, + 'degrees': 5.0, # 회전 범위 + 'translate': 0.1, # 이동 범위 + 'scale': 0.5, # 축소/확대 범위 + 'shear': 2.0, + 'flipud': 0.0, # 수직 뒤집기 비율 + 'fliplr': 0.5, # 수평 뒤집기 비율 + 'mosaic': True, # 모자이크 증강 + 'mixup': 0.3, # MixUp 증강 비율 + # Early stopping은 patience로 자동 적용 + } + + # 학습 실행 + model.train(**train_params) + + +if __name__ == "__main__": + main() diff --git a/ai_train/label/laundry_labels_cls.pt b/ai_train/label/laundry_labels_cls.pt new file mode 100644 index 000000000..450fa4199 Binary files /dev/null and b/ai_train/label/laundry_labels_cls.pt differ diff --git a/ai_train/label/model/laundry_data_2_yolov8m_2048_train/args.yaml b/ai_train/label/model/laundry_data_2_yolov8m_2048_train/args.yaml new file mode 100644 index 000000000..edd4005b5 --- /dev/null +++ b/ai_train/label/model/laundry_data_2_yolov8m_2048_train/args.yaml @@ -0,0 +1,106 @@ +task: detect +mode: train +model: yolov8m.pt +data: /home/t25119/aiLab/labels_detect_cls/data/laundry_data_2/data.yaml +epochs: 150 +time: null +patience: 15 +batch: 4 +imgsz: 2048 +save: true +save_period: -1 +cache: false +device: cuda:0 +workers: 8 +project: /home/t25119/aiLab/labels_detect_cls/model +name: laundry_data_2_yolov8m_2048_train +exist_ok: false +pretrained: true +optimizer: SGD +verbose: true +seed: 0 +deterministic: true +single_cls: false +rect: false +cos_lr: true +close_mosaic: 10 +resume: false +amp: true +fraction: 1.0 +profile: false +freeze: null +multi_scale: false +overlap_mask: true +mask_ratio: 4 +dropout: 0.0 +val: true +split: val +save_json: false +save_hybrid: false +conf: null +iou: 0.7 +max_det: 300 +half: false +dnn: false +plots: true +source: null +vid_stride: 1 +stream_buffer: false +visualize: false +augment: false +agnostic_nms: false +classes: null +retina_masks: false +embed: null +show: false +save_frames: false +save_txt: false +save_conf: false +save_crop: false +show_labels: true +show_conf: true +show_boxes: true +line_width: null +format: torchscript +keras: false +optimize: false +int8: false +dynamic: false +simplify: false +opset: null +workspace: 4 +nms: false +lr0: 0.012 +lrf: 0.2 +momentum: 0.937 +weight_decay: 0.0005 +warmup_epochs: 3 +warmup_momentum: 0.8 +warmup_bias_lr: 0.1 +box: 7.5 +cls: 0.5 +dfl: 1.5 +pose: 12.0 +kobj: 1.0 +label_smoothing: 0.0 +nbs: 64 +hsv_h: 0.015 +hsv_s: 0.5 +hsv_v: 0.4 +degrees: 5.0 +translate: 0.1 +scale: 0.8 +shear: 2.0 +perspective: 0.0 +flipud: 0.0 +fliplr: 0.5 +bgr: 0.0 +mosaic: 0.8 +mixup: 0.1 +copy_paste: 0.1 +auto_augment: randaugment +erasing: 0.4 +crop_fraction: 1.0 +cfg: null +tracker: botsort.yaml +save_dir: /home/t25119/aiLab/labels_detect_cls/model/laundry_data_2_yolov8m_2048_train diff --git a/ai_train/label/model/laundry_data_2_yolov8m_2048_train/events.out.tfevents.1747654063.ceprj.281903.0 b/ai_train/label/model/laundry_data_2_yolov8m_2048_train/events.out.tfevents.1747654063.ceprj.281903.0 new file mode 100644 index 000000000..a07ff493b Binary files /dev/null and b/ai_train/label/model/laundry_data_2_yolov8m_2048_train/events.out.tfevents.1747654063.ceprj.281903.0 differ diff --git a/ai_train/label/model/laundry_data_2_yolov8m_2048_train/labels.jpg b/ai_train/label/model/laundry_data_2_yolov8m_2048_train/labels.jpg new file mode 100644 index 000000000..8d8484fce Binary files /dev/null and b/ai_train/label/model/laundry_data_2_yolov8m_2048_train/labels.jpg differ diff --git a/ai_train/label/model/laundry_data_2_yolov8m_2048_train/labels_correlogram.jpg b/ai_train/label/model/laundry_data_2_yolov8m_2048_train/labels_correlogram.jpg new file mode 100644 index 000000000..786bb20b9 Binary files /dev/null and b/ai_train/label/model/laundry_data_2_yolov8m_2048_train/labels_correlogram.jpg differ diff --git a/ai_train/label/model/laundry_data_2_yolov8m_2048_train/results.csv b/ai_train/label/model/laundry_data_2_yolov8m_2048_train/results.csv new file mode 100644 index 000000000..b1a34b78f --- /dev/null +++ b/ai_train/label/model/laundry_data_2_yolov8m_2048_train/results.csv @@ -0,0 +1,62 @@ + epoch, train/box_loss, train/cls_loss, train/dfl_loss, metrics/precision(B), metrics/recall(B), metrics/mAP50(B), metrics/mAP50-95(B), val/box_loss, val/cls_loss, val/dfl_loss, lr/pg0, lr/pg1, lr/pg2 + 1, 1.7773, 3.759, 1.6957, 0.47375, 0.55609, 0.48547, 0.24793, 1.6852, 1.7362, 1.9188, 0.070678, 0.0039984, 0.0039984 + 2, 1.5335, 1.5444, 1.4059, 0.64841, 0.47878, 0.57619, 0.32478, 1.4213, 1.4883, 1.7359, 0.041344, 0.0079977, 0.0079977 + 3, 1.5211, 1.5293, 1.4147, 0.67014, 0.49081, 0.54911, 0.28468, 1.5539, 1.6238, 1.8717, 0.012007, 0.011994, 0.011994 + 4, 1.5285, 1.4725, 1.3851, 0.50776, 0.46254, 0.47858, 0.24907, 1.6321, 1.6251, 2.0249, 0.011991, 0.011991, 0.011991 + 5, 1.4847, 1.328, 1.3523, 0.69947, 0.566, 0.59808, 0.27413, 1.7601, 1.4143, 2.1537, 0.011983, 0.011983, 0.011983 + 6, 1.4492, 1.2363, 1.3234, 0.56886, 0.61249, 0.59797, 0.36328, 1.5036, 1.2785, 1.8345, 0.011974, 0.011974, 0.011974 + 7, 1.3955, 1.145, 1.3051, 0.61626, 0.57783, 0.60822, 0.32416, 1.6551, 1.2894, 2.01, 0.011962, 0.011962, 0.011962 + 8, 1.3927, 1.0958, 1.2884, 0.6216, 0.66352, 0.66219, 0.41452, 1.4814, 1.1114, 1.856, 0.011949, 0.011949, 0.011949 + 9, 1.3649, 1.0504, 1.2739, 0.6006, 0.69387, 0.66033, 0.40108, 1.5243, 1.0824, 1.893, 0.011933, 0.011933, 0.011933 + 10, 1.3595, 1.0044, 1.259, 0.6961, 0.6505, 0.64826, 0.40725, 1.4927, 1.1053, 1.8891, 0.011915, 0.011915, 0.011915 + 11, 1.3555, 0.97488, 1.2544, 0.74893, 0.67723, 0.68543, 0.42934, 1.4988, 1.0111, 1.8852, 0.011895, 0.011895, 0.011895 + 12, 1.3165, 0.92394, 1.246, 0.69042, 0.67396, 0.69942, 0.45017, 1.4812, 0.99953, 1.8638, 0.011873, 0.011873, 0.011873 + 13, 1.3196, 0.89887, 1.2382, 0.70878, 0.67947, 0.69323, 0.45701, 1.3575, 0.93299, 1.766, 0.011849, 0.011849, 0.011849 + 14, 1.3164, 0.90038, 1.2369, 0.79717, 0.65717, 0.73625, 0.45737, 1.4885, 0.9322, 1.9021, 0.011823, 0.011823, 0.011823 + 15, 1.3212, 0.86724, 1.2201, 0.76053, 0.73008, 0.73549, 0.47494, 1.3774, 0.90578, 1.7459, 0.011795, 0.011795, 0.011795 + 16, 1.2882, 0.82878, 1.2215, 0.70473, 0.72276, 0.73719, 0.46296, 1.4422, 0.89313, 1.8706, 0.011765, 0.011765, 0.011765 + 17, 1.289, 0.82779, 1.2047, 0.80161, 0.67643, 0.71893, 0.46666, 1.4126, 0.91742, 1.8029, 0.011733, 0.011733, 0.011733 + 18, 1.2881, 0.80276, 1.204, 0.7542, 0.68988, 0.72175, 0.47099, 1.4372, 0.87439, 1.8247, 0.011699, 0.011699, 0.011699 + 19, 1.2548, 0.75883, 1.1965, 0.75454, 0.64107, 0.69753, 0.46904, 1.3582, 0.90284, 1.7577, 0.011663, 0.011663, 0.011663 + 20, 1.246, 0.75933, 1.1942, 0.71165, 0.69996, 0.71044, 0.47372, 1.3703, 0.84018, 1.7776, 0.011625, 0.011625, 0.011625 + 21, 1.2567, 0.75739, 1.1917, 0.83645, 0.6896, 0.75238, 0.49844, 1.3837, 0.8118, 1.7649, 0.011585, 0.011585, 0.011585 + 22, 1.2318, 0.73612, 1.183, 0.78185, 0.67547, 0.74424, 0.50125, 1.3698, 0.88271, 1.7988, 0.011543, 0.011543, 0.011543 + 23, 1.2419, 0.72869, 1.1854, 0.76647, 0.69734, 0.7506, 0.50592, 1.3474, 0.87051, 1.8201, 0.011499, 0.011499, 0.011499 + 24, 1.2524, 0.71022, 1.1681, 0.85103, 0.65597, 0.73582, 0.4825, 1.4261, 0.89142, 1.8314, 0.011454, 0.011454, 0.011454 + 25, 1.2235, 0.72325, 1.1821, 0.74238, 0.71535, 0.73475, 0.48605, 1.3968, 0.83903, 1.8398, 0.011406, 0.011406, 0.011406 + 26, 1.209, 0.68358, 1.1639, 0.74362, 0.72168, 0.74458, 0.49429, 1.3678, 0.8066, 1.8194, 0.011357, 0.011357, 0.011357 + 27, 1.1921, 0.67201, 1.1546, 0.80599, 0.70942, 0.75041, 0.51694, 1.3369, 0.76431, 1.757, 0.011306, 0.011306, 0.011306 + 28, 1.202, 0.67108, 1.1542, 0.73901, 0.72879, 0.73349, 0.49833, 1.2951, 0.79092, 1.7114, 0.011253, 0.011253, 0.011253 + 29, 1.1816, 0.65333, 1.1534, 0.72377, 0.756, 0.74825, 0.52012, 1.3009, 0.7673, 1.7554, 0.011198, 0.011198, 0.011198 + 30, 1.2006, 0.64647, 1.1489, 0.80057, 0.70194, 0.71023, 0.4978, 1.3015, 0.78166, 1.72, 0.011142, 0.011142, 0.011142 + 31, 1.2007, 0.64935, 1.1485, 0.68987, 0.71719, 0.73089, 0.50871, 1.315, 0.8031, 1.7318, 0.011083, 0.011083, 0.011083 + 32, 1.1842, 0.63978, 1.1406, 0.80398, 0.71376, 0.75391, 0.51959, 1.3153, 0.77245, 1.7395, 0.011023, 0.011023, 0.011023 + 33, 1.1747, 0.63192, 1.1317, 0.84393, 0.73535, 0.76126, 0.52696, 1.3273, 0.75244, 1.7625, 0.010962, 0.010962, 0.010962 + 34, 1.1638, 0.62715, 1.1252, 0.80668, 0.70091, 0.75194, 0.51768, 1.3583, 0.78652, 1.8046, 0.010898, 0.010898, 0.010898 + 35, 1.1583, 0.61525, 1.1237, 0.75047, 0.67668, 0.72539, 0.50841, 1.308, 0.78074, 1.7622, 0.010834, 0.010834, 0.010834 + 36, 1.1516, 0.61424, 1.1291, 0.79033, 0.71312, 0.74736, 0.52046, 1.3114, 0.75931, 1.7636, 0.010767, 0.010767, 0.010767 + 37, 1.1432, 0.60804, 1.1168, 0.75908, 0.70344, 0.72148, 0.50468, 1.3085, 0.79944, 1.7645, 0.010699, 0.010699, 0.010699 + 38, 1.1427, 0.60555, 1.1122, 0.79275, 0.69368, 0.74433, 0.51562, 1.2961, 0.76338, 1.7582, 0.010629, 0.010629, 0.010629 + 39, 1.1279, 0.58439, 1.1075, 0.82199, 0.71185, 0.74274, 0.51369, 1.2929, 0.76474, 1.7434, 0.010558, 0.010558, 0.010558 + 40, 1.1455, 0.59111, 1.1172, 0.83901, 0.67625, 0.72543, 0.50828, 1.2849, 0.78696, 1.7419, 0.010486, 0.010486, 0.010486 + 41, 1.1488, 0.59521, 1.1167, 0.80909, 0.67363, 0.73938, 0.52151, 1.2905, 0.77356, 1.741, 0.010412, 0.010412, 0.010412 + 42, 1.1075, 0.57364, 1.1029, 0.71541, 0.73598, 0.75321, 0.52519, 1.3024, 0.75234, 1.7654, 0.010336, 0.010336, 0.010336 + 43, 1.1208, 0.57587, 1.103, 0.7681, 0.72352, 0.72179, 0.50783, 1.3081, 0.76423, 1.7882, 0.01026, 0.01026, 0.01026 + 44, 1.1131, 0.5853, 1.0988, 0.78911, 0.7339, 0.74455, 0.52935, 1.2869, 0.7278, 1.7471, 0.010182, 0.010182, 0.010182 + 45, 1.1255, 0.56662, 1.0992, 0.8296, 0.67395, 0.73058, 0.51968, 1.2816, 0.75378, 1.7594, 0.010102, 0.010102, 0.010102 + 46, 1.1085, 0.57117, 1.0952, 0.76438, 0.71934, 0.71424, 0.50719, 1.2762, 0.74877, 1.7698, 0.010021, 0.010021, 0.010021 + 47, 1.1199, 0.5718, 1.0991, 0.76078, 0.70329, 0.73254, 0.52485, 1.2797, 0.76129, 1.76, 0.0099394, 0.0099394, 0.0099394 + 48, 1.1024, 0.55619, 1.0831, 0.82784, 0.65658, 0.73563, 0.51643, 1.2803, 0.75019, 1.7581, 0.0098563, 0.0098563, 0.0098563 + 49, 1.0895, 0.54921, 1.0877, 0.76016, 0.73677, 0.74287, 0.52504, 1.2883, 0.7457, 1.7655, 0.009772, 0.009772, 0.009772 + 50, 1.0973, 0.55369, 1.0775, 0.80126, 0.71052, 0.75169, 0.53585, 1.2912, 0.74178, 1.7666, 0.0096865, 0.0096865, 0.0096865 + 51, 1.0925, 0.5479, 1.0793, 0.80089, 0.70668, 0.74811, 0.52508, 1.3031, 0.74039, 1.7897, 0.0096, 0.0096, 0.0096 + 52, 1.0953, 0.54068, 1.0784, 0.77154, 0.73289, 0.74421, 0.52424, 1.2947, 0.76599, 1.7727, 0.0095124, 0.0095124, 0.0095124 + 53, 1.0936, 0.54994, 1.075, 0.81281, 0.70074, 0.73929, 0.51804, 1.2875, 0.75717, 1.7738, 0.0094238, 0.0094238, 0.0094238 + 54, 1.0914, 0.54306, 1.0603, 0.83676, 0.68259, 0.73218, 0.51447, 1.2912, 0.75367, 1.7858, 0.0093342, 0.0093342, 0.0093342 + 55, 1.1018, 0.53715, 1.0652, 0.81456, 0.68767, 0.73071, 0.51431, 1.2813, 0.7395, 1.7913, 0.0092437, 0.0092437, 0.0092437 + 56, 1.0873, 0.53767, 1.0657, 0.79287, 0.69814, 0.73601, 0.51776, 1.287, 0.74987, 1.7968, 0.0091523, 0.0091523, 0.0091523 + 57, 1.0624, 0.52724, 1.0601, 0.80285, 0.70576, 0.72195, 0.51093, 1.2702, 0.73784, 1.7781, 0.0090601, 0.0090601, 0.0090601 + 58, 1.0708, 0.52644, 1.054, 0.8431, 0.69594, 0.73252, 0.5166, 1.2796, 0.7436, 1.7937, 0.008967, 0.008967, 0.008967 + 59, 1.0707, 0.5286, 1.0657, 0.8687, 0.66697, 0.73581, 0.5181, 1.2816, 0.74922, 1.7912, 0.0088731, 0.0088731, 0.0088731 + 60, 1.0696, 0.51933, 1.0463, 0.83638, 0.70004, 0.74004, 0.52042, 1.2836, 0.73524, 1.8021, 0.0087786, 0.0087786, 0.0087786 + 61, 1.0579, 0.51312, 1.0463, 0.78128, 0.73206, 0.74031, 0.52268, 1.2753, 0.73359, 1.7981, 0.0086833, 0.0086833, 0.0086833 diff --git a/ai_train/label/model/laundry_data_2_yolov8m_2048_train/train_batch0.jpg b/ai_train/label/model/laundry_data_2_yolov8m_2048_train/train_batch0.jpg new file mode 100644 index 000000000..5107dd11b Binary files /dev/null and b/ai_train/label/model/laundry_data_2_yolov8m_2048_train/train_batch0.jpg differ diff --git a/ai_train/label/model/laundry_data_2_yolov8m_2048_train/train_batch1.jpg b/ai_train/label/model/laundry_data_2_yolov8m_2048_train/train_batch1.jpg new file mode 100644 index 000000000..747022874 Binary files /dev/null and b/ai_train/label/model/laundry_data_2_yolov8m_2048_train/train_batch1.jpg differ diff --git a/ai_train/label/model/laundry_data_2_yolov8m_2048_train/train_batch2.jpg b/ai_train/label/model/laundry_data_2_yolov8m_2048_train/train_batch2.jpg new file mode 100644 index 000000000..81e5c2fce Binary files /dev/null and b/ai_train/label/model/laundry_data_2_yolov8m_2048_train/train_batch2.jpg differ diff --git a/ai_train/label/model/laundry_data_2_yolov8m_2048_train/weights/best.pt b/ai_train/label/model/laundry_data_2_yolov8m_2048_train/weights/best.pt new file mode 100644 index 000000000..214333701 Binary files /dev/null and b/ai_train/label/model/laundry_data_2_yolov8m_2048_train/weights/best.pt differ diff --git a/ai_train/label/model/laundry_data_2_yolov8m_2048_train/weights/last.pt b/ai_train/label/model/laundry_data_2_yolov8m_2048_train/weights/last.pt new file mode 100644 index 000000000..388ffbff3 Binary files /dev/null and b/ai_train/label/model/laundry_data_2_yolov8m_2048_train/weights/last.pt differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/F1_curve.png b/ai_train/label/model/pre_final_yolov8m_2048/F1_curve.png new file mode 100644 index 000000000..08251fd74 Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/F1_curve.png differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/PR_curve.png b/ai_train/label/model/pre_final_yolov8m_2048/PR_curve.png new file mode 100644 index 000000000..887ac6871 Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/PR_curve.png differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/P_curve.png b/ai_train/label/model/pre_final_yolov8m_2048/P_curve.png new file mode 100644 index 000000000..b091eb32b Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/P_curve.png differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/R_curve.png b/ai_train/label/model/pre_final_yolov8m_2048/R_curve.png new file mode 100644 index 000000000..8e6b94a0b Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/R_curve.png differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/args.yaml b/ai_train/label/model/pre_final_yolov8m_2048/args.yaml new file mode 100644 index 000000000..4db9d0f42 --- /dev/null +++ b/ai_train/label/model/pre_final_yolov8m_2048/args.yaml @@ -0,0 +1,106 @@ +task: detect +mode: train +model: /home/t25119/aiLab/labels_detect_cls/model/pre_final_yolov8m_2048/weights/last.pt +data: /home/t25119/aiLab/labels_detect_cls/data/laundry_data_2/data.yaml +epochs: 100 +time: null +patience: 5 +batch: 2 +imgsz: 2048 +save: true +save_period: -1 +cache: false +device: cuda:0 +workers: 4 +project: /home/t25119/aiLab/labels_detect_cls/model +name: pre_final_yolov8m_2048 +exist_ok: false +pretrained: true +optimizer: SGD +verbose: true +seed: 0 +deterministic: true +single_cls: false +rect: false +cos_lr: true +close_mosaic: 10 +resume: /home/t25119/aiLab/labels_detect_cls/model/pre_final_yolov8m_2048/weights/last.pt +amp: true +fraction: 1.0 +profile: false +freeze: null +multi_scale: false +overlap_mask: true +mask_ratio: 4 +dropout: 0.0 +val: true +split: val +save_json: false +save_hybrid: false +conf: null +iou: 0.7 +max_det: 300 +half: true +dnn: false +plots: true +source: null +vid_stride: 1 +stream_buffer: false +visualize: false +augment: true +agnostic_nms: false +classes: null +retina_masks: false +embed: null +show: false +save_frames: false +save_txt: false +save_conf: false +save_crop: false +show_labels: true +show_conf: true +show_boxes: true +line_width: null +format: torchscript +keras: false +optimize: false +int8: false +dynamic: false +simplify: false +opset: null +workspace: 4 +nms: false +lr0: 0.01 +lrf: 0.2 +momentum: 0.937 +weight_decay: 0.0005 +warmup_epochs: 3 +warmup_momentum: 0.8 +warmup_bias_lr: 0.1 +box: 7.5 +cls: 0.5 +dfl: 1.5 +pose: 12.0 +kobj: 1.0 +label_smoothing: 0.0 +nbs: 64 +hsv_h: 0.015 +hsv_s: 0.7 +hsv_v: 0.4 +degrees: 5.0 +translate: 0.1 +scale: 0.5 +shear: 2.0 +perspective: 0.0 +flipud: 0.0 +fliplr: 0.5 +bgr: 0.0 +mosaic: true +mixup: 0.3 +copy_paste: 0.0 +auto_augment: randaugment +erasing: 0.4 +crop_fraction: 1.0 +cfg: null +tracker: botsort.yaml +save_dir: /home/t25119/aiLab/labels_detect_cls/model/pre_final_yolov8m_2048 diff --git a/ai_train/label/model/pre_final_yolov8m_2048/confusion_matrix.png b/ai_train/label/model/pre_final_yolov8m_2048/confusion_matrix.png new file mode 100644 index 000000000..0cbe9da35 Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/confusion_matrix.png differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/confusion_matrix_normalized.png b/ai_train/label/model/pre_final_yolov8m_2048/confusion_matrix_normalized.png new file mode 100644 index 000000000..76a5b87a7 Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/confusion_matrix_normalized.png differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/events.out.tfevents.1747966647.ceprj.1594160.0 b/ai_train/label/model/pre_final_yolov8m_2048/events.out.tfevents.1747966647.ceprj.1594160.0 new file mode 100644 index 000000000..4ae9dd6bf Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/events.out.tfevents.1747966647.ceprj.1594160.0 differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/events.out.tfevents.1748081411.ceprj.3463384.0 b/ai_train/label/model/pre_final_yolov8m_2048/events.out.tfevents.1748081411.ceprj.3463384.0 new file mode 100644 index 000000000..f715e1ee2 Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/events.out.tfevents.1748081411.ceprj.3463384.0 differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/events.out.tfevents.1748082762.ceprj.3499529.0 b/ai_train/label/model/pre_final_yolov8m_2048/events.out.tfevents.1748082762.ceprj.3499529.0 new file mode 100644 index 000000000..7e9ecd794 Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/events.out.tfevents.1748082762.ceprj.3499529.0 differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/events.out.tfevents.1748082830.ceprj.3501389.0 b/ai_train/label/model/pre_final_yolov8m_2048/events.out.tfevents.1748082830.ceprj.3501389.0 new file mode 100644 index 000000000..647ebc029 Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/events.out.tfevents.1748082830.ceprj.3501389.0 differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/labels.jpg b/ai_train/label/model/pre_final_yolov8m_2048/labels.jpg new file mode 100644 index 000000000..8d8484fce Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/labels.jpg differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/labels_correlogram.jpg b/ai_train/label/model/pre_final_yolov8m_2048/labels_correlogram.jpg new file mode 100644 index 000000000..786bb20b9 Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/labels_correlogram.jpg differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/results.csv b/ai_train/label/model/pre_final_yolov8m_2048/results.csv new file mode 100644 index 000000000..2e49bfe2f --- /dev/null +++ b/ai_train/label/model/pre_final_yolov8m_2048/results.csv @@ -0,0 +1,36 @@ + epoch, train/box_loss, train/cls_loss, train/dfl_loss, metrics/precision(B), metrics/recall(B), metrics/mAP50(B), metrics/mAP50-95(B), val/box_loss, val/cls_loss, val/dfl_loss, lr/pg0, lr/pg1, lr/pg2 + 1, 2.067, 4.2631, 1.7658, 0.43898, 0.50889, 0.49936, 0.28682, 1.4775, 1.6829, 1.8117, 0.070006, 0.0033327, 0.0033327 + 2, 1.7833, 1.7664, 1.4133, 0.63584, 0.57284, 0.56955, 0.2641, 1.6827, 1.5335, 2.0414, 0.040004, 0.0066647, 0.0066647 + 3, 1.7668, 1.6701, 1.3948, 0.53774, 0.56162, 0.56109, 0.30381, 1.5259, 1.5768, 1.866, 0.0099979, 0.0099915, 0.0099915 + 4, 1.7595, 1.6039, 1.3875, 0.61272, 0.4808, 0.50859, 0.26128, 1.5682, 1.4933, 1.9308, 0.0099822, 0.0099822, 0.0099822 + 5, 1.7087, 1.4743, 1.348, 0.64692, 0.54847, 0.55228, 0.32345, 1.4571, 1.3351, 1.8162, 0.0099685, 0.0099685, 0.0099685 + 6, 1.6813, 1.3413, 1.3212, 0.59213, 0.62875, 0.61659, 0.37166, 1.5126, 1.2047, 1.9081, 0.0099508, 0.0099508, 0.0099508 + 7, 1.6709, 1.275, 1.2923, 0.69412, 0.59391, 0.64515, 0.35503, 1.5498, 1.2204, 2, 0.0099291, 0.0099291, 0.0099291 + 8, 1.6446, 1.206, 1.2843, 0.62785, 0.69194, 0.65163, 0.38813, 1.5476, 1.1013, 1.9233, 0.0099037, 0.0099037, 0.0099037 + 9, 1.6149, 1.1295, 1.2568, 0.64925, 0.67644, 0.66785, 0.39092, 1.591, 1.1403, 2.0059, 0.0098743, 0.0098743, 0.0098743 + 10, 1.6162, 1.0839, 1.2477, 0.773, 0.62909, 0.68236, 0.43282, 1.433, 1.0293, 1.8616, 0.0098412, 0.0098412, 0.0098412 + 11, 1.5827, 1.0433, 1.2477, 0.72406, 0.6373, 0.70737, 0.41739, 1.6174, 1.0804, 2.0694, 0.0098042, 0.0098042, 0.0098042 + 12, 1.589, 1.011, 1.2354, 0.64007, 0.71322, 0.70299, 0.43067, 1.4372, 0.97937, 1.8479, 0.0097635, 0.0097635, 0.0097635 + 13, 1.5741, 0.98633, 1.2208, 0.70553, 0.62429, 0.65908, 0.41749, 1.4582, 1.0272, 1.9112, 0.0097191, 0.0097191, 0.0097191 + 14, 1.5634, 0.94048, 1.2127, 0.80485, 0.61905, 0.69628, 0.42934, 1.4835, 0.95422, 1.9236, 0.009671, 0.009671, 0.009671 + 15, 1.561, 0.93244, 1.2079, 0.72851, 0.67604, 0.71112, 0.45625, 1.3885, 1.0158, 1.7947, 0.0096193, 0.0096193, 0.0096193 + 16, 1.5467, 0.90609, 1.1986, 0.72399, 0.65016, 0.70239, 0.43577, 1.4212, 0.91916, 1.8732, 0.009564, 0.009564, 0.009564 + 17, 1.5515, 0.88485, 1.1883, 0.8002, 0.6419, 0.70138, 0.42624, 1.4627, 0.92848, 1.9078, 0.0095052, 0.0095052, 0.0095052 + 18, 1.5104, 0.84201, 1.1832, 0.62476, 0.70821, 0.71927, 0.4622, 1.4344, 0.92566, 1.8939, 0.009443, 0.009443, 0.009443 + 19, 1.5181, 0.83574, 1.1764, 0.79636, 0.64823, 0.723, 0.45629, 1.4323, 0.89463, 1.8978, 0.0093773, 0.0093773, 0.0093773 + 20, 1.5189, 0.82198, 1.1658, 0.79387, 0.66343, 0.73352, 0.45688, 1.4277, 0.8691, 1.921, 0.0093083, 0.0093083, 0.0093083 + 21, 1.4979, 0.81586, 1.1571, 0.75308, 0.70163, 0.74585, 0.46202, 1.4872, 0.88153, 1.9598, 0.0092361, 0.0092361, 0.0092361 + 22, 1.4907, 0.79675, 1.1621, 0.76364, 0.64591, 0.72187, 0.4509, 1.4422, 0.96395, 1.8932, 0.0091606, 0.0091606, 0.0091606 + 23, 1.4609, 0.78294, 1.1463, 0.79389, 0.63241, 0.71067, 0.45891, 1.3856, 0.88163, 1.8616, 0.0090821, 0.0090821, 0.0090821 + 24, 1.4702, 0.77624, 1.1417, 0.60887, 0.74333, 0.7154, 0.47228, 1.374, 0.8597, 1.8535, 0.0090004, 0.0090004, 0.0090004 + 25, 1.4615, 0.74364, 1.1294, 0.7613, 0.67244, 0.7373, 0.47984, 1.4125, 0.83274, 1.9191, 0.0089159, 0.0089159, 0.0089159 + 26, 1.3825, 0.6594, 1.0678, 0.76709, 0.63726, 0.71484, 0.46147, 1.3921, 0.80149, 1.93, 0.0088284, 0.0088284, 0.0088284 + 27, 1.4485, 0.73058, 1.1212, 0.68115, 0.72505, 0.73438, 0.46883, 1.3983, 0.83113, 1.9069, 0.0087382, 0.0087382, 0.0087382 + 28, 1.4397, 0.73173, 1.1186, 0.82816, 0.70182, 0.75799, 0.50034, 1.382, 0.78884, 1.8868, 0.0086452, 0.0086452, 0.0086452 + 29, 1.4264, 0.72192, 1.1127, 0.75328, 0.7226, 0.7513, 0.48848, 1.3812, 0.78883, 1.8862, 0.0085497, 0.0085497, 0.0085497 + 30, 1.4111, 0.72093, 1.1153, 0.80192, 0.71496, 0.76342, 0.50112, 1.3651, 0.80185, 1.8697, 0.0084516, 0.0084516, 0.0084516 + 31, 1.4136, 0.70019, 1.1129, 0.70725, 0.76559, 0.75771, 0.48813, 1.4283, 0.8075, 1.9626, 0.0083511, 0.0083511, 0.0083511 + 32, 1.417, 0.70452, 1.0979, 0.81967, 0.70253, 0.75338, 0.49267, 1.378, 0.8289, 1.9133, 0.0082483, 0.0082483, 0.0082483 + 33, 1.4009, 0.68879, 1.0981, 0.85653, 0.65465, 0.74811, 0.49324, 1.3774, 0.77929, 1.9141, 0.0081433, 0.0081433, 0.0081433 + 34, 1.3942, 0.6801, 1.0847, 0.83256, 0.69685, 0.72672, 0.47303, 1.4014, 0.7619, 1.909, 0.0080362, 0.0080362, 0.0080362 + 35, 1.3912, 0.6729, 1.0752, 0.73356, 0.72194, 0.72486, 0.48525, 1.3338, 0.78945, 1.8422, 0.007927, 0.007927, 0.007927 diff --git a/ai_train/label/model/pre_final_yolov8m_2048/results.png b/ai_train/label/model/pre_final_yolov8m_2048/results.png new file mode 100644 index 000000000..33f97dde6 Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/results.png differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/train_batch0.jpg b/ai_train/label/model/pre_final_yolov8m_2048/train_batch0.jpg new file mode 100644 index 000000000..16a33c859 Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/train_batch0.jpg differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/train_batch1.jpg b/ai_train/label/model/pre_final_yolov8m_2048/train_batch1.jpg new file mode 100644 index 000000000..ba464ebd5 Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/train_batch1.jpg differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/train_batch2.jpg b/ai_train/label/model/pre_final_yolov8m_2048/train_batch2.jpg new file mode 100644 index 000000000..1def76cba Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/train_batch2.jpg differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/val_batch0_labels.jpg b/ai_train/label/model/pre_final_yolov8m_2048/val_batch0_labels.jpg new file mode 100644 index 000000000..3a9903004 Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/val_batch0_labels.jpg differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/val_batch0_pred.jpg b/ai_train/label/model/pre_final_yolov8m_2048/val_batch0_pred.jpg new file mode 100644 index 000000000..63ccc0ca6 Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/val_batch0_pred.jpg differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/val_batch1_labels.jpg b/ai_train/label/model/pre_final_yolov8m_2048/val_batch1_labels.jpg new file mode 100644 index 000000000..a1f4c8447 Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/val_batch1_labels.jpg differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/val_batch1_pred.jpg b/ai_train/label/model/pre_final_yolov8m_2048/val_batch1_pred.jpg new file mode 100644 index 000000000..cc487d069 Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/val_batch1_pred.jpg differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/val_batch2_labels.jpg b/ai_train/label/model/pre_final_yolov8m_2048/val_batch2_labels.jpg new file mode 100644 index 000000000..47668895a Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/val_batch2_labels.jpg differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/val_batch2_pred.jpg b/ai_train/label/model/pre_final_yolov8m_2048/val_batch2_pred.jpg new file mode 100644 index 000000000..29d29ebdc Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/val_batch2_pred.jpg differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/weights/best.pt b/ai_train/label/model/pre_final_yolov8m_2048/weights/best.pt new file mode 100644 index 000000000..35605439b Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/weights/best.pt differ diff --git a/ai_train/label/model/pre_final_yolov8m_2048/weights/last.pt b/ai_train/label/model/pre_final_yolov8m_2048/weights/last.pt new file mode 100644 index 000000000..2bf847335 Binary files /dev/null and b/ai_train/label/model/pre_final_yolov8m_2048/weights/last.pt differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final/args.yaml b/ai_train/label/model/yolov8m_1600_optimized_pre_final/args.yaml new file mode 100644 index 000000000..e7ad1ee02 --- /dev/null +++ b/ai_train/label/model/yolov8m_1600_optimized_pre_final/args.yaml @@ -0,0 +1,106 @@ +task: detect +mode: train +model: yolov8m.pt +data: /home/t25119/aiLab/labels_detect_cls/data/laundry_data_2/data.yaml +epochs: 100 +time: null +patience: 20 +batch: 2 +imgsz: 1600 +save: true +save_period: -1 +cache: false +device: cuda:0 +workers: 4 +project: /home/t25119/aiLab/labels_detect_cls/model +name: yolov8m_1600_optimized_pre_final +exist_ok: false +pretrained: true +optimizer: SGD +verbose: true +seed: 0 +deterministic: true +single_cls: false +rect: false +cos_lr: true +close_mosaic: 10 +resume: false +amp: true +fraction: 1.0 +profile: false +freeze: null +multi_scale: false +overlap_mask: true +mask_ratio: 4 +dropout: 0.0 +val: true +split: val +save_json: false +save_hybrid: false +conf: null +iou: 0.7 +max_det: 300 +half: true +dnn: false +plots: true +source: null +vid_stride: 1 +stream_buffer: false +visualize: false +augment: true +agnostic_nms: false +classes: null +retina_masks: false +embed: null +show: false +save_frames: false +save_txt: false +save_conf: false +save_crop: false +show_labels: true +show_conf: true +show_boxes: true +line_width: null +format: torchscript +keras: false +optimize: false +int8: false +dynamic: false +simplify: false +opset: null +workspace: 4 +nms: false +lr0: 0.01 +lrf: 0.2 +momentum: 0.937 +weight_decay: 0.0005 +warmup_epochs: 3 +warmup_momentum: 0.8 +warmup_bias_lr: 0.1 +box: 7.5 +cls: 0.5 +dfl: 1.5 +pose: 12.0 +kobj: 1.0 +label_smoothing: 0.0 +nbs: 64 +hsv_h: 0.015 +hsv_s: 0.7 +hsv_v: 0.4 +degrees: 5.0 +translate: 0.1 +scale: 0.5 +shear: 2.0 +perspective: 0.0 +flipud: 0.0 +fliplr: 0.5 +bgr: 0.0 +mosaic: true +mixup: 0.3 +copy_paste: 0.0 +auto_augment: randaugment +erasing: 0.4 +crop_fraction: 1.0 +cfg: null +tracker: botsort.yaml +save_dir: /home/t25119/aiLab/labels_detect_cls/model/yolov8m_1600_optimized_pre_final diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final/events.out.tfevents.1747882393.ceprj.2436231.0 b/ai_train/label/model/yolov8m_1600_optimized_pre_final/events.out.tfevents.1747882393.ceprj.2436231.0 new file mode 100644 index 000000000..42ed2fb59 Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final/events.out.tfevents.1747882393.ceprj.2436231.0 differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final/labels.jpg b/ai_train/label/model/yolov8m_1600_optimized_pre_final/labels.jpg new file mode 100644 index 000000000..8d8484fce Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final/labels.jpg differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final/labels_correlogram.jpg b/ai_train/label/model/yolov8m_1600_optimized_pre_final/labels_correlogram.jpg new file mode 100644 index 000000000..786bb20b9 Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final/labels_correlogram.jpg differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final/results.csv b/ai_train/label/model/yolov8m_1600_optimized_pre_final/results.csv new file mode 100644 index 000000000..0ce707219 --- /dev/null +++ b/ai_train/label/model/yolov8m_1600_optimized_pre_final/results.csv @@ -0,0 +1,29 @@ + epoch, train/box_loss, train/cls_loss, train/dfl_loss, metrics/precision(B), metrics/recall(B), metrics/mAP50(B), metrics/mAP50-95(B), val/box_loss, val/cls_loss, val/dfl_loss, lr/pg0, lr/pg1, lr/pg2 + 1, 1.7533, 3.277, 1.6783, 0.50484, 0.48831, 0.50687, 0.29222, 1.505, 1.6028, 1.6683, 0.070006, 0.0033327, 0.0033327 + 2, 1.4357, 1.4938, 1.3362, 0.64292, 0.59781, 0.62096, 0.28992, 1.6522, 1.2685, 1.8021, 0.040004, 0.0066647, 0.0066647 + 3, 1.4328, 1.4066, 1.327, 0.58094, 0.54325, 0.59381, 0.30163, 1.5617, 1.5536, 1.7587, 0.0099979, 0.0099915, 0.0099915 + 4, 1.4151, 1.3692, 1.3085, 0.66653, 0.58477, 0.64536, 0.32638, 1.574, 1.2747, 1.7652, 0.0099822, 0.0099822, 0.0099822 + 5, 1.3708, 1.2529, 1.2752, 0.63462, 0.64271, 0.66197, 0.37218, 1.5721, 1.2122, 1.7197, 0.0099685, 0.0099685, 0.0099685 + 6, 1.3439, 1.1426, 1.2362, 0.69914, 0.59088, 0.66068, 0.39741, 1.5345, 1.1456, 1.7248, 0.0099508, 0.0099508, 0.0099508 + 7, 1.3313, 1.0851, 1.2204, 0.74405, 0.63657, 0.69892, 0.38384, 1.6342, 1.1285, 1.8306, 0.0099291, 0.0099291, 0.0099291 + 8, 1.3096, 1.0301, 1.2074, 0.70728, 0.67106, 0.70053, 0.41016, 1.5587, 1.0837, 1.7354, 0.0099037, 0.0099037, 0.0099037 + 9, 1.2795, 0.95372, 1.1838, 0.70302, 0.67403, 0.70535, 0.44259, 1.4841, 1.0337, 1.6785, 0.0098743, 0.0098743, 0.0098743 + 10, 1.2707, 0.91492, 1.1708, 0.79202, 0.66166, 0.7176, 0.47606, 1.3893, 0.94514, 1.6048, 0.0098412, 0.0098412, 0.0098412 + 11, 1.2532, 0.89538, 1.1678, 0.72432, 0.68095, 0.73987, 0.41706, 1.6346, 1.0128, 1.8413, 0.0098042, 0.0098042, 0.0098042 + 12, 1.2505, 0.86096, 1.1651, 0.72511, 0.71136, 0.74488, 0.47084, 1.4126, 0.95314, 1.6168, 0.0097635, 0.0097635, 0.0097635 + 13, 1.2341, 0.83906, 1.1462, 0.6839, 0.72728, 0.71917, 0.4688, 1.404, 0.90361, 1.639, 0.0097191, 0.0097191, 0.0097191 + 14, 1.2218, 0.7976, 1.1392, 0.78872, 0.66981, 0.75983, 0.48847, 1.4246, 0.86234, 1.6326, 0.009671, 0.009671, 0.009671 + 15, 1.2238, 0.79016, 1.1319, 0.77096, 0.67988, 0.74344, 0.48178, 1.3809, 0.87382, 1.5909, 0.0096193, 0.0096193, 0.0096193 + 16, 1.2056, 0.77183, 1.1265, 0.67533, 0.72143, 0.733, 0.47698, 1.3729, 0.85644, 1.602, 0.009564, 0.009564, 0.009564 + 17, 1.2174, 0.75134, 1.1173, 0.71017, 0.73165, 0.74296, 0.46486, 1.455, 0.88369, 1.663, 0.0095052, 0.0095052, 0.0095052 + 18, 1.189, 0.72441, 1.1173, 0.85271, 0.61569, 0.72672, 0.48647, 1.3812, 0.84528, 1.6004, 0.009443, 0.009443, 0.009443 + 19, 1.1919, 0.71316, 1.109, 0.78917, 0.68109, 0.7264, 0.48067, 1.4107, 0.84267, 1.644, 0.0093773, 0.0093773, 0.0093773 + 20, 1.184, 0.69845, 1.1004, 0.87547, 0.6592, 0.74342, 0.47723, 1.3885, 0.81243, 1.6167, 0.0093083, 0.0093083, 0.0093083 + 21, 1.1695, 0.70282, 1.0948, 0.78937, 0.71068, 0.75409, 0.48691, 1.4361, 0.8298, 1.6585, 0.0092361, 0.0092361, 0.0092361 + 22, 1.1617, 0.68087, 1.0933, 0.86224, 0.64936, 0.74833, 0.49801, 1.3903, 0.80604, 1.6452, 0.0091606, 0.0091606, 0.0091606 + 23, 1.1434, 0.67116, 1.0889, 0.81586, 0.66936, 0.75566, 0.4945, 1.3676, 0.77052, 1.6261, 0.0090821, 0.0090821, 0.0090821 + 24, 1.1395, 0.66654, 1.083, 0.75049, 0.6914, 0.75037, 0.50406, 1.3582, 0.78151, 1.6138, 0.0090004, 0.0090004, 0.0090004 + 25, 1.1273, 0.64659, 1.0765, 0.69899, 0.72947, 0.73005, 0.49069, 1.3766, 0.80335, 1.634, 0.0089159, 0.0089159, 0.0089159 + 26, 1.1278, 0.64466, 1.0829, 0.80491, 0.70446, 0.74849, 0.49749, 1.3714, 0.82107, 1.6214, 0.0088284, 0.0088284, 0.0088284 + 27, 1.1172, 0.62035, 1.0642, 0.79202, 0.70038, 0.74935, 0.50705, 1.3681, 0.81446, 1.6321, 0.0087382, 0.0087382, 0.0087382 + 28, 1.1184, 0.6195, 1.0552, 0.74743, 0.7042, 0.74557, 0.49642, 1.3797, 0.78675, 1.6349, 0.0086452, 0.0086452, 0.0086452 diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final/train_batch0.jpg b/ai_train/label/model/yolov8m_1600_optimized_pre_final/train_batch0.jpg new file mode 100644 index 000000000..73f17c8d0 Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final/train_batch0.jpg differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final/train_batch1.jpg b/ai_train/label/model/yolov8m_1600_optimized_pre_final/train_batch1.jpg new file mode 100644 index 000000000..100566d4d Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final/train_batch1.jpg differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final/train_batch2.jpg b/ai_train/label/model/yolov8m_1600_optimized_pre_final/train_batch2.jpg new file mode 100644 index 000000000..06b27bdd2 Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final/train_batch2.jpg differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final/weights/best.pt b/ai_train/label/model/yolov8m_1600_optimized_pre_final/weights/best.pt new file mode 100644 index 000000000..f4fdc06c6 Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final/weights/best.pt differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final/weights/last.pt b/ai_train/label/model/yolov8m_1600_optimized_pre_final/weights/last.pt new file mode 100644 index 000000000..25598b657 Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final/weights/last.pt differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final2/F1_curve.png b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/F1_curve.png new file mode 100644 index 000000000..095cf3cec Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/F1_curve.png differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final2/PR_curve.png b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/PR_curve.png new file mode 100644 index 000000000..8fc9bc9bf Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/PR_curve.png differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final2/P_curve.png b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/P_curve.png new file mode 100644 index 000000000..7c836d434 Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/P_curve.png differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final2/R_curve.png b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/R_curve.png new file mode 100644 index 000000000..d15637491 Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/R_curve.png differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final2/args.yaml b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/args.yaml new file mode 100644 index 000000000..1a702d0d1 --- /dev/null +++ b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/args.yaml @@ -0,0 +1,106 @@ +task: detect +mode: train +model: yolov8m.pt +data: /home/t25119/aiLab/labels_detect_cls/data/laundry_data_2/data.yaml +epochs: 100 +time: null +patience: 5 +batch: 2 +imgsz: 1600 +save: true +save_period: -1 +cache: false +device: cuda:0 +workers: 4 +project: /home/t25119/aiLab/labels_detect_cls/model +name: yolov8m_1600_optimized_pre_final2 +exist_ok: false +pretrained: true +optimizer: SGD +verbose: true +seed: 0 +deterministic: true +single_cls: false +rect: false +cos_lr: true +close_mosaic: 10 +resume: false +amp: true +fraction: 1.0 +profile: false +freeze: null +multi_scale: false +overlap_mask: true +mask_ratio: 4 +dropout: 0.0 +val: true +split: val +save_json: false +save_hybrid: false +conf: null +iou: 0.7 +max_det: 300 +half: true +dnn: false +plots: true +source: null +vid_stride: 1 +stream_buffer: false +visualize: false +augment: true +agnostic_nms: false +classes: null +retina_masks: false +embed: null +show: false +save_frames: false +save_txt: false +save_conf: false +save_crop: false +show_labels: true +show_conf: true +show_boxes: true +line_width: null +format: torchscript +keras: false +optimize: false +int8: false +dynamic: false +simplify: false +opset: null +workspace: 4 +nms: false +lr0: 0.01 +lrf: 0.2 +momentum: 0.937 +weight_decay: 0.0005 +warmup_epochs: 3 +warmup_momentum: 0.8 +warmup_bias_lr: 0.1 +box: 7.5 +cls: 0.5 +dfl: 1.5 +pose: 12.0 +kobj: 1.0 +label_smoothing: 0.0 +nbs: 64 +hsv_h: 0.015 +hsv_s: 0.7 +hsv_v: 0.4 +degrees: 5.0 +translate: 0.1 +scale: 0.5 +shear: 2.0 +perspective: 0.0 +flipud: 0.0 +fliplr: 0.5 +bgr: 0.0 +mosaic: true +mixup: 0.3 +copy_paste: 0.0 +auto_augment: randaugment +erasing: 0.4 +crop_fraction: 1.0 +cfg: null +tracker: botsort.yaml +save_dir: /home/t25119/aiLab/labels_detect_cls/model/yolov8m_1600_optimized_pre_final2 diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final2/confusion_matrix.png b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/confusion_matrix.png new file mode 100644 index 000000000..b4fe937da Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/confusion_matrix.png differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final2/confusion_matrix_normalized.png b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/confusion_matrix_normalized.png new file mode 100644 index 000000000..62d60b4a1 Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/confusion_matrix_normalized.png differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final2/events.out.tfevents.1747904400.ceprj.3045470.0 b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/events.out.tfevents.1747904400.ceprj.3045470.0 new file mode 100644 index 000000000..bde60a703 Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/events.out.tfevents.1747904400.ceprj.3045470.0 differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final2/labels.jpg b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/labels.jpg new file mode 100644 index 000000000..8d8484fce Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/labels.jpg differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final2/labels_correlogram.jpg b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/labels_correlogram.jpg new file mode 100644 index 000000000..786bb20b9 Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/labels_correlogram.jpg differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final2/results.csv b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/results.csv new file mode 100644 index 000000000..7b7539b74 --- /dev/null +++ b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/results.csv @@ -0,0 +1,23 @@ + epoch, train/box_loss, train/cls_loss, train/dfl_loss, metrics/precision(B), metrics/recall(B), metrics/mAP50(B), metrics/mAP50-95(B), val/box_loss, val/cls_loss, val/dfl_loss, lr/pg0, lr/pg1, lr/pg2 + 1, 1.7456, 3.3023, 1.6721, 0.52361, 0.50825, 0.50638, 0.2847, 1.4593, 1.5409, 1.6239, 0.070006, 0.0033327, 0.0033327 + 2, 1.4358, 1.4958, 1.3352, 0.63796, 0.59065, 0.58587, 0.2838, 1.6498, 1.4045, 1.7872, 0.040004, 0.0066647, 0.0066647 + 3, 1.4272, 1.3999, 1.3203, 0.70351, 0.54681, 0.59995, 0.32051, 1.5378, 1.4747, 1.7462, 0.0099979, 0.0099915, 0.0099915 + 4, 1.413, 1.3677, 1.3052, 0.62058, 0.56029, 0.59004, 0.29821, 1.5533, 1.3773, 1.7473, 0.0099822, 0.0099822, 0.0099822 + 5, 1.3696, 1.2483, 1.2715, 0.72462, 0.59825, 0.66224, 0.40205, 1.4612, 1.1737, 1.6248, 0.0099685, 0.0099685, 0.0099685 + 6, 1.3463, 1.1389, 1.2415, 0.7169, 0.59119, 0.67613, 0.41378, 1.4901, 1.1323, 1.6776, 0.0099508, 0.0099508, 0.0099508 + 7, 1.3275, 1.0804, 1.2174, 0.73975, 0.6292, 0.66387, 0.36154, 1.5822, 1.1189, 1.7909, 0.0099291, 0.0099291, 0.0099291 + 8, 1.3076, 1.024, 1.2103, 0.63667, 0.67244, 0.67871, 0.41065, 1.5453, 1.0807, 1.7142, 0.0099037, 0.0099037, 0.0099037 + 9, 1.2772, 0.9535, 1.1845, 0.60921, 0.68148, 0.69342, 0.43912, 1.5162, 1.101, 1.7326, 0.0098743, 0.0098743, 0.0098743 + 10, 1.2736, 0.91888, 1.1736, 0.8188, 0.65482, 0.75078, 0.48282, 1.4071, 0.93464, 1.6523, 0.0098412, 0.0098412, 0.0098412 + 11, 1.252, 0.89536, 1.1696, 0.65738, 0.64685, 0.6802, 0.39464, 1.6118, 1.0211, 1.8226, 0.0098042, 0.0098042, 0.0098042 + 12, 1.2492, 0.85996, 1.1663, 0.68808, 0.67391, 0.71259, 0.45445, 1.4251, 0.97536, 1.6192, 0.0097635, 0.0097635, 0.0097635 + 13, 1.2387, 0.83942, 1.1488, 0.72497, 0.70008, 0.74384, 0.48839, 1.4195, 0.89147, 1.6578, 0.0097191, 0.0097191, 0.0097191 + 14, 1.2241, 0.80497, 1.1422, 0.75208, 0.67886, 0.74227, 0.46107, 1.4544, 0.89753, 1.6643, 0.009671, 0.009671, 0.009671 + 15, 1.2269, 0.79902, 1.1315, 0.72518, 0.72882, 0.74311, 0.49023, 1.3775, 0.87606, 1.5877, 0.0096193, 0.0096193, 0.0096193 + 16, 1.2094, 0.77547, 1.1293, 0.66483, 0.76175, 0.74832, 0.48515, 1.3863, 0.80824, 1.6286, 0.009564, 0.009564, 0.009564 + 17, 1.2239, 0.75864, 1.1213, 0.86009, 0.69384, 0.76133, 0.49348, 1.4122, 0.8494, 1.6238, 0.0095052, 0.0095052, 0.0095052 + 18, 1.1885, 0.72808, 1.114, 0.7038, 0.71755, 0.73056, 0.47243, 1.4148, 0.85339, 1.6582, 0.009443, 0.009443, 0.009443 + 19, 1.1939, 0.7121, 1.1073, 0.77521, 0.67244, 0.71367, 0.45298, 1.4397, 0.9151, 1.6608, 0.0093773, 0.0093773, 0.0093773 + 20, 1.1851, 0.69984, 1.0981, 0.72673, 0.65148, 0.69912, 0.46329, 1.3919, 0.87547, 1.6262, 0.0093083, 0.0093083, 0.0093083 + 21, 1.1709, 0.70112, 1.0946, 0.77189, 0.64503, 0.71914, 0.46184, 1.4469, 0.84629, 1.6848, 0.0092361, 0.0092361, 0.0092361 + 22, 1.1687, 0.68247, 1.0925, 0.75019, 0.65674, 0.72633, 0.49584, 1.3697, 0.84486, 1.6167, 0.0091606, 0.0091606, 0.0091606 diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final2/results.png b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/results.png new file mode 100644 index 000000000..94db9ca49 Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/results.png differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final2/train_batch0.jpg b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/train_batch0.jpg new file mode 100644 index 000000000..73f17c8d0 Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/train_batch0.jpg differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final2/train_batch1.jpg b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/train_batch1.jpg new file mode 100644 index 000000000..100566d4d Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/train_batch1.jpg differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final2/train_batch2.jpg b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/train_batch2.jpg new file mode 100644 index 000000000..06b27bdd2 Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/train_batch2.jpg differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final2/val_batch0_labels.jpg b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/val_batch0_labels.jpg new file mode 100644 index 000000000..706f62c7b Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/val_batch0_labels.jpg differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final2/val_batch0_pred.jpg b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/val_batch0_pred.jpg new file mode 100644 index 000000000..695dd01ea Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/val_batch0_pred.jpg differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final2/val_batch1_labels.jpg b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/val_batch1_labels.jpg new file mode 100644 index 000000000..599861ea7 Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/val_batch1_labels.jpg differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final2/val_batch1_pred.jpg b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/val_batch1_pred.jpg new file mode 100644 index 000000000..c3a76c306 Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/val_batch1_pred.jpg differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final2/val_batch2_labels.jpg b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/val_batch2_labels.jpg new file mode 100644 index 000000000..eef220332 Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/val_batch2_labels.jpg differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final2/val_batch2_pred.jpg b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/val_batch2_pred.jpg new file mode 100644 index 000000000..d2e4a63d2 Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/val_batch2_pred.jpg differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final2/weights/best.pt b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/weights/best.pt new file mode 100644 index 000000000..f0e9c9bda Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/weights/best.pt differ diff --git a/ai_train/label/model/yolov8m_1600_optimized_pre_final2/weights/last.pt b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/weights/last.pt new file mode 100644 index 000000000..b4868e234 Binary files /dev/null and b/ai_train/label/model/yolov8m_1600_optimized_pre_final2/weights/last.pt differ diff --git a/ai_train/label/test/symbol_test.py b/ai_train/label/test/symbol_test.py new file mode 100644 index 000000000..59e7f91cd --- /dev/null +++ b/ai_train/label/test/symbol_test.py @@ -0,0 +1,95 @@ +#!/usr/bin/env python3 +# test_performance_summary_detailed.py + +import time +import torch +import yaml +from ultralytics import YOLO + +# —————————————————————————————————————————————— +# 유저 설정 부분 +MODEL_WEIGHTS = '/home/t25119/aiLab/labels_detect_cls/model/pre_final_yolov8m_2048/weights/best.pt' +DATA_YAML = '/home/t25119/aiLab/rules/data/symbol/data.yaml' +IMG_SIZE = 2048 #1600 # 1056 +CONF_THRESH = 0.3 # 전 클래스 공통 confidence threshold +# —————————————————————————————————————————————— + +def print_table(rows, headers): + # 컬럼 너비 계산 + col_widths = [max(len(str(x)) for x in col) for col in zip(*([headers] + rows))] + # 헤더 + header_line = " | ".join(h.ljust(col_widths[i]) for i, h in enumerate(headers)) + sep_line = "-+-".join("-" * col_widths[i] for i in range(len(headers))) + print(header_line) + print(sep_line) + # 데이터 행 + for row in rows: + print(" | ".join(str(row[i]).ljust(col_widths[i]) for i in range(len(row)))) + + +def evaluate_symbol(model_path: str, data_yaml: str) -> dict: + model = YOLO(model_path) + with open(data_yaml) as f: + data = yaml.safe_load(f) + names = data['names'] + + results = model.val( + data=data_yaml, + split='test', + imgsz=IMG_SIZE, + conf=CONF_THRESH, + device='cuda:0' if torch.cuda.is_available() else 'cpu', + verbose=False + ) + + # ── (1) 전체 메트릭 추출 ───────────────────────── + P, R, mAP50, mAP5095 = results.box.mean_results() + inference_time_ms = results.speed.get('inference', 0.0) + + # ── (2) 카테고리별 mAP50 ───────────────────────── + ap_map = { idx: float(ap) for idx, ap in zip(results.ap_class_index, results.maps) } + per_class = { + name: ap_map.get(i, 0.0) + for i, name in enumerate(names) + } + + return { + "accuracy": mAP50, + "precision": P, + "recall": R, + "mAP50-95": mAP5095, + "inference_time_ms": inference_time_ms, + "per_class": per_class + } + + + +def main(): + # 디바이스 정보 + device = 'cuda:0' if torch.cuda.is_available() else 'cpu' + print(f"실행 디바이스: {device}\n") + + # 평가 실행 + metrics = evaluate_symbol(MODEL_WEIGHTS, DATA_YAML) + + # 전체 지표 테이블 출력 + rows = [ + ("정확도 (mAP50)", f"{metrics['accuracy']*100:6.2f}%"), + ("정밀도 (Precision)", f"{metrics['precision']*100:6.2f}%"), + ("재현율 (Recall)", f"{metrics['recall']*100:6.2f}%"), + ("mAP50-95", f"{metrics['mAP50-95']*100:6.2f}%"), + ("추론 시간 (ms/img)", f"{metrics['inference_time_ms']:.1f} ms"), + ] + print("=== 전체 성능 지표 ===") + print_table(rows, ("메트릭", "값")) + print() + + # 카테고리별 정확도 테이블 출력 + per = metrics['per_class'] + rows = [(name, f"{ap*100:6.2f}%") for name, ap in per.items()] + print("=== 카테고리별 mAP50 (정확도) ===") + print_table(rows, ("카테고리", "정확도")) + print() + +if __name__ == "__main__": + main() diff --git a/ai_train/label/test/test_and_visualize_comp.py b/ai_train/label/test/test_and_visualize_comp.py new file mode 100644 index 000000000..aa0f449bd --- /dev/null +++ b/ai_train/label/test/test_and_visualize_comp.py @@ -0,0 +1,109 @@ +#!/usr/bin/env python3 +# test_and_visualize_gpu.py + +import os +import cv2 +import torch +import yaml +import numpy as np +import csv +from tqdm import tqdm +from ultralytics import YOLO +from pathlib import Path + +# —————————————————————————————————————————————— +# 유저 설정 부분 +MODEL_WEIGHTS = '/home/t25119/aiLab/labels_detect_cls/model/luandry_data_1_yolov8l_640_train/weights/best.pt' +DATA_YAML = '/home/t25119/aiLab/labels_detect_cls/data/luandry_data_1/data.yaml' +IMAGE_DIR = '/home/t25119/aiLab/labels_detect_cls/data/luandry_data_1/test/images' +LABEL_DIR = '/home/t25119/aiLab/labels_detect_cls/data/luandry_data_1/test/labels' +OUTPUT_DIR = '/home/t25119/aiLab/labels_detect_cls/test/output/luandry_data_1_yolov8l_640_pred_test2' +CONF_THRESH = 0.3 +IMG_SIZE = 640 +# —————————————————————————————————————————————— + +# 0) GPU 사용 지정 +device = 'cuda:0' if torch.cuda.is_available() else 'cpu' +print(f"Running on device: {device}") + +# 1) 모델 로드 & CUDA로 이동 +model = YOLO(MODEL_WEIGHTS).to(device) + +# 전체 평가(metrics) +metrics = model.val(data=DATA_YAML, imgsz=IMG_SIZE, conf=CONF_THRESH, device=device) +print(metrics) + +# 2) 이미지 리스트 수집 및 출력 +image_paths = sorted(Path(IMAGE_DIR).glob('*.*')) +total_images = len(image_paths) +print(f"Total number of test images: {total_images}") + +# 3) 출력 디렉토리 및 예측 저장 리스트 초기화 +os.makedirs(OUTPUT_DIR, exist_ok=True) +predictions = [] # (image_name, class_id, confidence, x1, y1, x2, y2) + +# 컬러 정의 (BGR) +GT_COLOR = (0, 0, 255) +PRED_COLOR = (0, 255, 0) + +# 4) 이미지별 시각화 및 예측 저장 +for img_path in tqdm(image_paths): + img = cv2.imread(str(img_path)) + h, w = img.shape[:2] + + # 4.1) GT 박스 + label_path = Path(LABEL_DIR) / (img_path.stem + '.txt') + if label_path.exists(): + for line in open(label_path, 'r'): + tokens = line.split() + if len(tokens) < 5: + continue + cls = int(float(tokens[0])) + xc, yc, bw, bh = map(float, tokens[1:5]) + x1 = int((xc - bw/2) * w) + y1 = int((yc - bh/2) * h) + x2 = int((xc + bw/2) * w) + y2 = int((yc + bh/2) * h) + cv2.rectangle(img, (x1, y1), (x2, y2), GT_COLOR, 2) + cv2.putText(img, f"gt:{cls}", (x1, y1 - 5), + cv2.FONT_HERSHEY_SIMPLEX, 0.5, GT_COLOR, 1) + + # 4.2) 예측 박스 (개선된 파라미터 반영) + results = model.predict( + source=str(img_path), + imgsz=IMG_SIZE, + conf=0.03, # 낮은 threshold로 Recall ↑ + iou=0.35, # 완만한 NMS + max_det=1000, # 탐지 가능한 박스 수 ↑ + agnostic_nms=True, # 클래스 간 억압 방지 + augment=True, # TTA + device=device, + verbose=False + ) + r = results[0] + for box, cls_id, conf in zip(r.boxes.xyxy, r.boxes.cls, r.boxes.conf): + x1, y1, x2, y2 = map(int, box.cpu().numpy()) + # 시각화 + cv2.rectangle(img, (x1, y1), (x2, y2), PRED_COLOR, 2) + cv2.putText(img, f"p:{int(cls_id)} {conf:.2f}", (x1, y2 + 15), + cv2.FONT_HERSHEY_SIMPLEX, 0.5, PRED_COLOR, 1) + # 예측 결과 저장 + predictions.append([ + img_path.name, + int(cls_id), + float(conf), + x1, y1, x2, y2 + ]) + + # 4.3) 시각화 이미지 저장 + out_path = Path(OUTPUT_DIR) / img_path.name + cv2.imwrite(str(out_path), img) + +# 5) 예측 결과 CSV로 저장 +csv_path = Path(OUTPUT_DIR) / 'predictions.csv' +with open(csv_path, 'w', newline='') as f: + writer = csv.writer(f) + writer.writerow(['image', 'class_id', 'confidence', 'x1', 'y1', 'x2', 'y2']) + writer.writerows(predictions) +print(f"✔ Predictions saved to '{csv_path}'") +print(f"✔ Visualizations saved to '{OUTPUT_DIR}'") diff --git a/ai_train/label/test/test_and_visualize_gpu.py b/ai_train/label/test/test_and_visualize_gpu.py new file mode 100644 index 000000000..98d9dff6b --- /dev/null +++ b/ai_train/label/test/test_and_visualize_gpu.py @@ -0,0 +1,82 @@ +#!/usr/bin/env python3 +# test_and_visualize_gpu.py + +import os +import cv2 +import torch +import yaml +import numpy as np +from tqdm import tqdm +from ultralytics import YOLO +from pathlib import Path + +# —————————————————————————————————————————————— +# 유저 설정 부분 +MODEL_WEIGHTS = '/home/t25119/aiLab/labels_detect_cls/model/label_detect_yolov8m_optimized/weights/best.pt' +DATA_YAML = '/home/t25119/aiLab/labels_detect_cls/data/version1/data.yaml' +IMAGE_DIR = '/home/t25119/aiLab/labels_detect_cls/data/version1/test/images' +LABEL_DIR = '/home/t25119/aiLab/labels_detect_cls/data/version1/test/labels' +OUTPUT_DIR = '/home/t25119/aiLab/labels_detect_cls/test/output/yolov8m_1600_pred_test' +CONF_THRESH = 0.1 +IMG_SIZE = 1600 +# —————————————————————————————————————————————— + +# 0) GPU 사용 지정 +device = 'cuda:0' if torch.cuda.is_available() else 'cpu' +print(f"Running on device: {device}") + +# 1) 모델 로드 & CUDA로 이동 +model = YOLO(MODEL_WEIGHTS).to(device) + +# 전체 평가(metrics) +metrics = model.val(data=DATA_YAML, imgsz=IMG_SIZE, conf=CONF_THRESH, device=device) +print(metrics) + +# 컬러 정의 (BGR) +GT_COLOR = (0, 0, 255) +PRED_COLOR = (0, 255, 0) + +os.makedirs(OUTPUT_DIR, exist_ok=True) + +# 2) 이미지별 시각화 +for img_path in tqdm(sorted(Path(IMAGE_DIR).glob('*.*'))): + img = cv2.imread(str(img_path)) + h, w = img.shape[:2] + + # 2.1) GT 박스 (YOLO txt 포맷: cls xc yc w h + 추가 토큰 가능) + label_path = Path(LABEL_DIR) / (img_path.stem + '.txt') + if label_path.exists(): + for line in open(label_path, 'r'): + tokens = line.split() + if len(tokens) < 5: + continue # 좌표 정보가 부족하면 스킵 + cls = int(float(tokens[0])) + xc, yc, bw, bh = map(float, tokens[1:5]) + x1 = int((xc - bw/2) * w) + y1 = int((yc - bh/2) * h) + x2 = int((xc + bw/2) * w) + y2 = int((yc + bh/2) * h) + cv2.rectangle(img, (x1, y1), (x2, y2), GT_COLOR, 2) + cv2.putText(img, f"gt:{cls}", (x1, y1 - 5), + cv2.FONT_HERSHEY_SIMPLEX, 0.5, GT_COLOR, 1) + + # 2.2) 예측 박스 (GPU + 동일한 해상도) + results = model.predict( + source=str(img_path), + conf=CONF_THRESH, + imgsz=IMG_SIZE, + device=device, + verbose=False + ) + r = results[0] + for box, cls_id, conf in zip(r.boxes.xyxy, r.boxes.cls, r.boxes.conf): + x1, y1, x2, y2 = map(int, box.cpu().numpy()) + cv2.rectangle(img, (x1, y1), (x2, y2), PRED_COLOR, 2) + cv2.putText(img, f"p:{int(cls_id)} {conf:.2f}", (x1, y2 + 15), + cv2.FONT_HERSHEY_SIMPLEX, 0.5, PRED_COLOR, 1) + + # 2.3) 저장 + out_path = Path(OUTPUT_DIR) / img_path.name + cv2.imwrite(str(out_path), img) + +print(f"✔ Visualizations saved to '{OUTPUT_DIR}'") diff --git a/ai_train/label/test/test_and_visualize_with_class_thresholds.py b/ai_train/label/test/test_and_visualize_with_class_thresholds.py new file mode 100644 index 000000000..7ab71d6ec --- /dev/null +++ b/ai_train/label/test/test_and_visualize_with_class_thresholds.py @@ -0,0 +1,164 @@ +#!/usr/bin/env python3 +# test_and_visualize_with_class_thresholds.py + +import os +import cv2 +import torch +import yaml +import numpy as np +import csv +from tqdm import tqdm +from ultralytics import YOLO +from pathlib import Path +from torchvision.ops import nms + +# —————————————————————————————————————————————— +# 유저 설정 부분 +MODEL_WEIGHTS = '/home/t25119/aiLab/rules/model/laundry_labels_cls.pt' +DATA_YAML = '/home/t25119/aiLab/rules/data/symbol/data.yaml' +IMAGE_DIR = '/home/t25119/aiLab/rules/data/symbol/test/images' +LABEL_DIR = '/home/t25119/aiLab/rules/data/symbol/test/labels' +OUTPUT_DIR = '/home/t25119/aiLab/labels_detect_cls/test/output/symbol_test_img_class_thres' +IMG_SIZE = 1056 + +# 튜닝 결과: 클래스별 (conf_thresh, iou_thresh) +CLASS_THRESHOLDS = { + 0: (0.75, 0.45), 1: (0.13, 0.20), 2: (0.05, 0.45), 3: (0.05, 0.45), + 4: (0.05, 0.45), 5: (0.13, 0.45), 6: (0.05, 0.45), 7: (0.13, 0.45), + 8: (0.21, 0.45), 9: (0.67, 0.45),10: (0.13, 0.45),11: (0.36, 0.45), + 12: (0.05, 0.45),13: (0.05, 0.45),14: (0.13, 0.45),15: (0.13, 0.45), + 16: (0.13, 0.45),17: (0.13, 0.45),18: (0.13, 0.45),19: (0.13, 0.45), + 20: (0.21, 0.45),21: (0.13, 0.45),22: (0.13, 0.45),23: (0.05, 0.45), + 24: (0.13, 0.45),25: (0.13, 0.45),26: (0.13, 0.45),27: (0.52, 0.45), + 28: (0.05, 0.45),29: (0.05, 0.45),30: (0.00, 0.20),31: (0.05, 0.45), + 32: (0.59, 0.45),33: (0.52, 0.45),34: (0.75, 0.20),35: (0.13, 0.45), + 36: (0.05, 0.45),37: (0.13, 0.45),38: (0.05, 0.20),39: (0.13, 0.45), + 40: (0.13, 0.45),41: (0.13, 0.45),42: (0.05, 0.45), +} +# —————————————————————————————————————————————— + +# 0) GPU 사용 지정 +device = 'cuda:0' if torch.cuda.is_available() else 'cpu' +print(f"Running on device: {device}") + +# 1) 모델 로드 & CUDA로 이동 +model = YOLO(MODEL_WEIGHTS).to(device) + +# 2) 테스트 이미지 목록 +image_paths = sorted(Path(IMAGE_DIR).glob('*.*')) +print(f"Total number of test images: {len(image_paths)}") + +# 3) 출력 준비 +os.makedirs(OUTPUT_DIR, exist_ok=True) +predictions = [] # [img_name, class_id, conf, x1, y1, x2, y2] + +GT_COLOR = (0, 0, 255) +PRED_COLOR = (0, 255, 0) + +# 4) 이미지별 처리 +for img_path in tqdm(image_paths, desc="Test & visualize"): + img = cv2.imread(str(img_path)) + h, w = img.shape[:2] + + # 4.1) GT 박스 그리기 + label_path = Path(LABEL_DIR) / (img_path.stem + '.txt') + if label_path.exists(): + for line in open(label_path, 'r'): + c, xc, yc, bw, bh = map(float, line.split()) + x1 = int((xc - bw/2) * w) + y1 = int((yc - bh/2) * h) + x2 = int((xc + bw/2) * w) + y2 = int((yc + bh/2) * h) + cv2.rectangle(img, (x1, y1), (x2, y2), GT_COLOR, 2) + cv2.putText(img, f"gt:{int(c)}", (x1, y1 - 5), + cv2.FONT_HERSHEY_SIMPLEX, 0.5, GT_COLOR, 1) + + # 4.2) 모델 예측 (아주 낮은 임계값으로 전체 후보 수집) + results = model.predict( + source=str(img_path), + imgsz=IMG_SIZE, + conf=0.0, # 전부 뽑아서 뒤처리 + iou=1.0, # NMS 최소 억제 + max_det=1000, + agnostic_nms=False, + device=device, + verbose=False + ) + r = results[0] + boxes = r.boxes.xyxy.cpu() # Tensor[N,4] + cls_ids = r.boxes.cls.cpu().long() # Tensor[N] + confs = r.boxes.conf.cpu() # Tensor[N] + + # 4.3) 클래스별로 conf 필터 + NMS 후 최종 박스 선택 + final_idx = [] + for cls in torch.unique(cls_ids): + cls = int(cls) + conf_thr, iou_thr = CLASS_THRESHOLDS[cls] + mask = (cls_ids == cls) + b = boxes[mask] + s = confs[mask] + if b.numel() == 0: + continue + keep_conf = s >= conf_thr + b = b[keep_conf] + s = s[keep_conf] + if b.numel() == 0: + continue + keep_nms = nms(b, s, iou_thr) + orig_idxs = torch.nonzero(mask, as_tuple=False).squeeze(1) + final_idx += orig_idxs[keep_conf.nonzero().squeeze(1)][keep_nms].tolist() + + # 4.4) 시각화 & CSV 저장 + for i in final_idx: + x1, y1, x2, y2 = map(int, boxes[i].tolist()) + cls_id = int(cls_ids[i]) + conf = float(confs[i]) + cv2.rectangle(img, (x1, y1), (x2, y2), PRED_COLOR, 2) + cv2.putText(img, f"p:{cls_id} {conf:.2f}", (x1, y2 + 15), + cv2.FONT_HERSHEY_SIMPLEX, 0.5, PRED_COLOR, 1) + predictions.append([ + img_path.name, cls_id, conf, x1, y1, x2, y2 + ]) + + cv2.imwrite(str(Path(OUTPUT_DIR) / img_path.name), img) + +# 5) CSV 저장 +csv_path = Path(OUTPUT_DIR) / 'predictions.csv' +with open(csv_path, 'w', newline='') as f: + writer = csv.writer(f) + writer.writerow(['image','class_id','confidence','x1','y1','x2','y2']) + writer.writerows(predictions) + +print(f"\n✔ Predictions saved to '{csv_path}'") +print(f"✔ Visualizations saved to '{OUTPUT_DIR}'") + +# —————————————— 테스트셋 평가 지표 출력 —————————————— +print("\n=== TEST SET EVALUATION ===") +results = model.val( + data=DATA_YAML, + split='test', + imgsz=IMG_SIZE, + conf=0.0, + iou=1.0, + device=device, + verbose=False +) + +# 전체 지표 +P, R, mAP50, mAP5095 = ( + results.metrics.precision, + results.metrics.recall, + results.metrics.map50, + results.metrics.map5095 +) +print(f"Precision (all) : {P*100:5.2f}%") +print(f"Recall (all) : {R*100:5.2f}%") +print(f"mAP50 (all) : {mAP50*100:5.2f}%") +print(f"mAP50–95 (all) : {mAP5095*100:5.2f}%") + +# 클래스별 mAP50 +print("\n--- Class-wise mAP50 ---") +for idx, ap in zip(results.ap_class_index, results.maps): + name = results.names[int(idx)] + print(f"{idx:02d} {name:20s}: {ap*100:5.2f}%") + diff --git a/ai_train/label/test/test_class_thresholds_2.py b/ai_train/label/test/test_class_thresholds_2.py new file mode 100644 index 000000000..48a722550 --- /dev/null +++ b/ai_train/label/test/test_class_thresholds_2.py @@ -0,0 +1,150 @@ +#!/usr/bin/env python3 +# test_and_visualize_with_class_thresholds.py + +import os +import cv2 +import torch +import yaml +import numpy as np +import csv +from tqdm import tqdm +from ultralytics import YOLO +from pathlib import Path +from torchvision.ops import nms + +# —————————————————————————————————————————————— +# 유저 설정 부분 +MODEL_WEIGHTS = '/home/t25119/aiLab/labels_detect_cls/model/luandry_data_1_yolov8l_640_train/weights/best.pt' +DATA_YAML = '/home/t25119/aiLab/labels_detect_cls/data/luandry_data_1/data.yaml' +IMAGE_DIR = '/home/t25119/aiLab/labels_detect_cls/data/luandry_data_1/test/images' +OUTPUT_DIR = '/home/t25119/aiLab/labels_detect_cls/test/output/luandry_data_1_yolov8l_640_pred_test3' +IMG_SIZE = 640 + +# 튜닝 결과: 클래스별 (conf_thresh, iou_thresh) +CLASS_THRESHOLDS = { + 0: (0.75, 0.45), 1: (0.13, 0.20), 2: (0.05, 0.45), 3: (0.05, 0.45), + 4: (0.05, 0.45), 5: (0.13, 0.45), 6: (0.05, 0.45), 7: (0.13, 0.45), + 8: (0.21, 0.45), 9: (0.67, 0.45),10: (0.13, 0.45),11: (0.36, 0.45), + 12: (0.05, 0.45),13: (0.05, 0.45),14: (0.13, 0.45),15: (0.13, 0.45), + 16: (0.13, 0.45),17: (0.13, 0.45),18: (0.13, 0.45),19: (0.13, 0.45), + 20: (0.21, 0.45),21: (0.13, 0.45),22: (0.13, 0.45),23: (0.05, 0.45), + 24: (0.13, 0.45),25: (0.13, 0.45),26: (0.13, 0.45),27: (0.52, 0.45), + 28: (0.05, 0.45),29: (0.05, 0.45),30: (0.00, 0.20),31: (0.05, 0.45), + 32: (0.59, 0.45),33: (0.52, 0.45),34: (0.75, 0.20),35: (0.13, 0.45), + 36: (0.05, 0.45),37: (0.13, 0.45),38: (0.05, 0.20),39: (0.13, 0.45), + 40: (0.13, 0.45),41: (0.13, 0.45),42: (0.05, 0.45), +} +# —————————————————————————————————————————————— + +# 0) GPU 사용 지정 +device = 'cuda:0' if torch.cuda.is_available() else 'cpu' +print(f"Running on device: {device}") + +# 1) 모델 로드 & CUDA로 이동 +model = YOLO(MODEL_WEIGHTS).to(device) + +# 2) 클래스 이름 로드 +with open(DATA_YAML) as f: + data = yaml.safe_load(f) +class_names = data['names'] + +# 3) 테스트 이미지 목록 +image_paths = sorted(Path(IMAGE_DIR).glob('*.*')) +print(f"Total number of test images: {len(image_paths)}") + +# 4) 출력 준비 +os.makedirs(OUTPUT_DIR, exist_ok=True) +predictions = [] # [img_name, class_name, conf, x1, y1, x2, y2] +PRED_COLOR = (0, 255, 0) +TEXT_COLOR = (0, 0, 255) # 빨간색 + +# 5) 이미지별 처리 +for img_path in tqdm(image_paths, desc="Test & visualize"): + img = cv2.imread(str(img_path)) + h, w = img.shape[:2] + + # 5.1) 모델 예측 (아주 낮은 임계값으로 전체 후보 수집) + results = model.predict( + source=str(img_path), + imgsz=IMG_SIZE, + conf=0.0, # 전부 뽑아서 뒤처리 + iou=1.0, # NMS 최소 억제 + max_det=1000, + agnostic_nms=False, + device=device, + verbose=False + ) + r = results[0] + boxes = r.boxes.xyxy.cpu() # Tensor[N,4] + cls_ids = r.boxes.cls.cpu().long() # Tensor[N] + confs = r.boxes.conf.cpu() # Tensor[N] + + # 5.2) 클래스별로 conf 필터 + NMS 후 최종 박스 선택 + final_idx = [] + for cls in torch.unique(cls_ids): + cls = int(cls) + conf_thr, iou_thr = CLASS_THRESHOLDS[cls] + mask = (cls_ids == cls) + b = boxes[mask]; s = confs[mask] + if b.numel() == 0: continue + + # 1) conf 필터 + keep_conf = s >= conf_thr + b = b[keep_conf]; s = s[keep_conf] + if b.numel() == 0: continue + + # 2) NMS + keep_nms = nms(b, s, iou_thr) + orig_idxs = torch.nonzero(mask, as_tuple=False).squeeze(1) + final_idx += orig_idxs[keep_conf.nonzero().squeeze(1)][keep_nms].tolist() + + # 5.3) 레이블 오프셋 초기화 (이미지별) + label_offsets = {} # {박스 인덱스: 누적 레이블 수} + + # 5.4) 시각화 & CSV 저장 + for i in final_idx: + x1, y1, x2, y2 = map(int, boxes[i].tolist()) + cls_id = int(cls_ids[i]) + conf = float(confs[i]) + name = class_names[cls_id] + + # 박스 그리기 + cv2.rectangle(img, (x1, y1), (x2, y2), PRED_COLOR, 2) + + # 누적된 오프셋 만큼 아래로 텍스트 위치 조정 + offset = label_offsets.get(i, 0) + text_x = x1 + text_y = y2 + 30 + offset * 40 # 각 레이블마다 40px 아래로 이동 + + # 텍스트 그리기 + cv2.putText( + img, + f"{name} {conf:.2f}", + (text_x, text_y), + cv2.FONT_HERSHEY_SIMPLEX, + 1.0, # fontScale + TEXT_COLOR, + 3 # thickness + ) + + # 같은 박스 위에 다음 레이블이 겹치지 않도록 오프셋 +1 + label_offsets[i] = offset + 1 + + # CSV 기록 + predictions.append([ + img_path.name, name, conf, x1, y1, x2, y2 + ]) + + # 5.5) 결과 이미지 저장 + out_path = Path(OUTPUT_DIR) / img_path.name + cv2.imwrite(str(out_path), img) + +# 6) CSV 저장 +csv_path = Path(OUTPUT_DIR) / 'predictions.csv' +with open(csv_path, 'w', newline='') as f: + writer = csv.writer(f) + writer.writerow(['image','class_name','confidence','x1','y1','x2','y2']) + writer.writerows(predictions) + +print(f"✔ Predictions saved to '{csv_path}'") +print(f"✔ Visualizations saved to '{OUTPUT_DIR}'") diff --git a/ai_train/label/test/test_conf_05.py b/ai_train/label/test/test_conf_05.py new file mode 100644 index 000000000..88a9ddf6f --- /dev/null +++ b/ai_train/label/test/test_conf_05.py @@ -0,0 +1,110 @@ +#!/usr/bin/env python3 +# test_and_visualize_with_class_thresholds_fixed_conf.py + +import os +import cv2 +import torch +import yaml +import csv +from tqdm import tqdm +from ultralytics import YOLO +from pathlib import Path + +# —————————————————————————————————————————————— +# 유저 설정 부분 +MODEL_WEIGHTS = '/home/t25119/aiLab/rules/model/laundry_labels_cls.pt' +DATA_YAML = '/home/t25119/aiLab/labels_detect_cls/data/laundry_data_2/data.yaml' +IMAGE_DIR = '/home/t25119/aiLab/labels_detect_cls/data/laundry_data_2/test/images' +OUTPUT_DIR = '/home/t25119/aiLab/labels_detect_cls/test/output/laundry_labels_cls_pred_fixed_conf_05' +IMG_SIZE = 1056 +CONF_THRESH = 0.5 # 전 클래스 공통 confidence threshold +# —————————————————————————————————————————————— + +device = 'cuda:0' if torch.cuda.is_available() else 'cpu' +print(f"Running on device: {device}") + +# 모델 로드 +model = YOLO(MODEL_WEIGHTS).to(device) + +# 클래스 이름 로드 +with open(DATA_YAML) as f: + data = yaml.safe_load(f) +class_names = data['names'] + +# 이미지 리스트 +image_paths = sorted(Path(IMAGE_DIR).glob('*.*')) +print(f"Total number of test images: {len(image_paths)}") + +# 출력 디렉토리 생성 +os.makedirs(OUTPUT_DIR, exist_ok=True) +predictions = [] # [img_name, class_name, conf, x1, y1, x2, y2] + +PRED_COLOR = (0, 255, 0) +TEXT_COLOR = (0, 0, 255) + +# 테스트 & 시각화 +for img_path in tqdm(image_paths, desc="Test & visualize"): + img = cv2.imread(str(img_path)) + h, w = img.shape[:2] + + # 모델 예측: conf=0.3, iou=0.45 (디폴트) + results = model.predict( + source=str(img_path), + imgsz=IMG_SIZE, + conf=CONF_THRESH, + iou=0.45, + max_det=1000, + device=device, + verbose=False + ) + r = results[0] + boxes = r.boxes.xyxy.cpu().numpy().astype(int) # (N,4) + cls_ids = r.boxes.cls.cpu().numpy().astype(int) # (N,) + confs = r.boxes.conf.cpu().numpy() # (N,) + + # 오프셋 초기화 (한 이미지당) + label_offsets = {} + + for idx, (box, cls_id, conf) in enumerate(zip(boxes, cls_ids, confs)): + x1, y1, x2, y2 = box + name = class_names[cls_id] + + # 박스 그리기 + cv2.rectangle(img, (x1, y1), (x2, y2), PRED_COLOR, 2) + + # 텍스트 위치 오프셋 적용 + offset = label_offsets.get(idx, 0) + text_x = x1 + text_y = y2 + 30 + offset * 40 + + cv2.putText( + img, + f"{name} {conf:.2f}", + (text_x, text_y), + cv2.FONT_HERSHEY_SIMPLEX, + 1.0, # 글씨 크기 + TEXT_COLOR, + 3 # 두께 + ) + + # 같은 박스 위에 겹치지 않도록 오프셋 증가 + label_offsets[idx] = offset + 1 + + # CSV 기록 + predictions.append([ + img_path.name, name, float(conf), x1, y1, x2, y2 + ]) + + # 결과 이미지 저장 + out_path = Path(OUTPUT_DIR) / img_path.name + cv2.imwrite(str(out_path), img) + +# CSV 저장 +csv_path = Path(OUTPUT_DIR) / 'predictions.csv' +with open(csv_path, 'w', newline='') as f: + writer = csv.writer(f) + writer.writerow(['image','class_name','confidence','x1','y1','x2','y2']) + writer.writerows(predictions) + +print(f"✔ Predictions saved to '{csv_path}'") +print(f"✔ Visualizations saved to '{OUTPUT_DIR}'") diff --git a/ai_train/label/test/threshold_tuning.py b/ai_train/label/test/threshold_tuning.py new file mode 100644 index 000000000..7263269bd --- /dev/null +++ b/ai_train/label/test/threshold_tuning.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python3 +# threshold_tuning_simple.py + +import numpy as np +import torch +import yaml +from ultralytics import YOLO +from tqdm import tqdm + +# —————————————————————————————————————————————— +# 사용자 설정 +MODEL_WEIGHTS = '/home/t25119/aiLab/labels_detect_cls/model/luandry_data_1_yolov8m_1056_train/weights/best.pt' +DATA_YAML = '/home/t25119/aiLab/labels_detect_cls/data/luandry_data_1/data.yaml' +IMG_SIZE = 1056 + +# 그리드 서치 후보 (필요에 따라 줄여 주세요) +CONF_CANDIDATES = np.linspace(0.05, 0.75, 10) # ← 15→10로 축소 +IOU_CANDIDATES = np.linspace(0.20, 0.65, 8) # ← 10→8로 축소 +FIXED_IOU = 0.45 + +# —————————————————————————————————————————————— + +device = 'cuda' if torch.cuda.is_available() else 'cpu' +print(f"▶ Running on {device}") + +# 1) 모델 로드 +model = YOLO(MODEL_WEIGHTS).to(device) + +# 2) 데이터셋 정보 읽기 +with open(DATA_YAML) as f: + data = yaml.safe_load(f) +num_classes = len(data['names']) + +# 결과 저장 배열 +best_conf = np.zeros(num_classes) +best_iou = np.full(num_classes, FIXED_IOU) +best_map50 = np.zeros(num_classes) + +# 3) 클래스별 confidence 튜닝 (IoU 고정) +print("▶ Step1: Class-wise confidence tuning (IoU=%.2f)" % FIXED_IOU) +for conf in tqdm(CONF_CANDIDATES, desc="conf grid"): + # 모델 평가 (per-class mAP50 은 metrics.maps 에 배열로 담겨 있음) + metrics = model.val( + data=DATA_YAML, + imgsz=IMG_SIZE, + conf=conf, + iou=FIXED_IOU, + device=device, + verbose=False, + plots=False + ) + maps = metrics.maps # numpy array shape=(num_classes,) + # 각 클래스별로 더 좋으면 갱신 + for k in range(num_classes): + if maps[k] > best_map50[k]: + best_map50[k] = maps[k] + best_conf[k] = conf + +# 4) 클래스별 IoU 튜닝 (conf 고정) +print("\n▶ Step2: Class-wise IoU tuning") +for iou in tqdm(IOU_CANDIDATES, desc="iou grid"): + metrics = model.val( + data=DATA_YAML, + imgsz=IMG_SIZE, + conf=None, # None 이면 내부에서 best_conf[k] 를 사용하도록 기본값이 None을 허용합니다. + iou=iou, + device=device, + verbose=False, + plots=False + ) + maps = metrics.maps + for k in range(num_classes): + if maps[k] > best_map50[k]: + best_map50[k] = maps[k] + best_iou[k] = iou + +# 5) 최종 요약 출력 +print("\n✅ 최적 임계값 요약:") +for k, name in enumerate(data['names']): + print(f" [{k:02d}] {name:20s} -> conf_thresh={best_conf[k]:.2f}, iou_thresh={best_iou[k]:.2f}, AP50={best_map50[k]:.3f}") diff --git a/ai_train/label/train/yolov8l_1920.py b/ai_train/label/train/yolov8l_1920.py new file mode 100644 index 000000000..b500a297f --- /dev/null +++ b/ai_train/label/train/yolov8l_1920.py @@ -0,0 +1,70 @@ +#!/usr/bin/env python3 +import os +os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "max_split_size_mb:128" + +# ─── Ray 2.x 세션 이름 바인딩 패치 ───────────────────────── +try: + import ray.train._internal.session as _internal_session + if hasattr(_internal_session, 'get_session') and not hasattr(_internal_session, '_get_session'): + _internal_session._get_session = _internal_session.get_session + print("[Patch] Ray 2.x 호환성 패치 완료") +except Exception as e: + print(f"[Warning] Ray 패치 실패 ({e}), RayTuneCallback 에러가 발생할 수 있음") +# ─────────────────────────────────────────────────────────── + +import torch +from ultralytics import YOLO + + +def main(): + device = 'cuda:0' if torch.cuda.is_available() else 'cpu' + print(f"[Train] Using device: {device}") + + # 🔄 1) 43 클래스용 경량 모델 : yolov8s + model = YOLO("yolov8l.pt").to(device) + + # 🔄 2) 학습 파라미터 (고해상도 + 강한 증강 + 더 많은 epoch) + train_params = { + 'data': "/home/t25119/aiLab/labels_detect_cls/data/version3/data.yaml", + 'epochs': 150, # s 버전은 파라미터 적으니 epoch ↑ + 'imgsz': 1920, # 고해상도로 작은 기호 살리기 + 'batch': 4, # 메모리 여유 → 8 권장(안 되면 4로) + 'device': device, + + # Optimizer & LR schedule + 'optimizer': 'SGD', + 'lr0': 0.012, # 모델이 작으니 약간 ↑ + 'lrf': 0.2, + 'momentum': 0.937, + 'weight_decay': 0.0005, + 'warmup_epochs': 3, + 'warmup_momentum': 0.8, + 'warmup_bias_lr': 0.1, + 'cos_lr': True, + + # Early stopping + 'patience': 25, + + # 증강(Recall 확보용) 🔄 + 'hsv_h': 0.015, + 'hsv_s': 0.7, + 'hsv_v': 0.4, + 'degrees': 5.0, + 'translate': 0.1, + 'scale': 0.5, + 'shear': 2.0, + 'flipud': 0.0, + 'fliplr': 0.5, + 'mosaic': True, + 'mixup': 0.3, + + # 프로젝트 폴더 + 'project': "/home/t25119/aiLab/labels_detect_cls/model", + 'name': "version3_yolov8l_1920_train", + } + + model.train(**train_params) + + +if __name__ == "__main__": + main() diff --git a/ai_train/label/train/yolov8m_2048_3.py b/ai_train/label/train/yolov8m_2048_3.py new file mode 100644 index 000000000..b2c65904e --- /dev/null +++ b/ai_train/label/train/yolov8m_2048_3.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python3 +import os +import torch +from ultralytics import YOLO + +# ─── GPU 메모리 제한 & AMP 활성화 ───────────────────────── +try: + torch.cuda.set_per_process_memory_fraction(0.5, device=0) + print("[Info] GPU 메모리 사용 한도: 50%") +except Exception: + pass +torch.backends.cuda.matmul.allow_tf32 = True +torch.backends.cudnn.benchmark = True + +# ─── Ray 2.x 호환 패치 ───────────────────────── +try: + import ray.train._internal.session as _internal_session + if hasattr(_internal_session, 'get_session') and not hasattr(_internal_session, '_get_session'): + _internal_session._get_session = _internal_session.get_session + print("[Patch] Ray 2.x 호환성 패치 완료") +except Exception as e: + print(f"[Warning] Ray 패치 실패 ({e})") + +def main(): + device = 'cuda:0' if torch.cuda.is_available() else 'cpu' + print(f"[Train] Using device: {device}") + + # last.pt 로 optimizer 상태, epoch 정보까지 함께 불러옵니다. + model = YOLO("/home/t25119/aiLab/labels_detect_cls/model/pre_final_yolov8m_2048/weights/last.pt").to(device) + + train_params = { + 'data': "/home/t25119/aiLab/labels_detect_cls/data/laundry_data_2/data.yaml", + 'epochs': 100, # 총 학습을 마칠 epochs 수 + 'imgsz': 2048, + 'batch': 2, + 'device': device, + 'workers': 4, + 'optimizer': 'SGD', + 'lr0': 0.01, + 'lrf': 0.2, + 'momentum': 0.937, + 'weight_decay': 0.0005, + 'warmup_epochs': 3, + 'warmup_momentum': 0.8, + 'warmup_bias_lr': 0.1, + 'augment': True, + 'cos_lr': True, + 'patience': 5, + 'half': True, + 'project': "/home/t25119/aiLab/labels_detect_cls/model", + 'name': "pre_final_yolov8m_2048", + 'exist_ok': True, # 같은 project/name 폴더 재사용 + 'resume': True, # 이전 체크포인트에서 이어서 학습 + # — 이하 augmentation 하이퍼파라미터 — + 'hsv_h': 0.015, + 'hsv_s': 0.7, + 'hsv_v': 0.4, + 'degrees': 5.0, + 'translate': 0.1, + 'scale': 0.5, + 'shear': 2.0, + 'flipud': 0.0, + 'fliplr': 0.5, + 'mosaic': True, + 'mixup': 0.3, + } + + model.train(**train_params) + +if __name__ == "__main__": + main() diff --git a/ai_train/llm/laundry_pipeline.py b/ai_train/llm/laundry_pipeline.py new file mode 100644 index 000000000..2e67a2664 --- /dev/null +++ b/ai_train/llm/laundry_pipeline.py @@ -0,0 +1,214 @@ +import os +import json +import cv2 +import numpy as np +from pathlib import Path +from ultralytics import YOLO +import torch +import sys +import random + +# ───── 경로 설정 ───── +BASE_DIR = os.path.dirname(os.path.abspath(__file__)) +STAIN_MODEL_PATH = os.path.join(BASE_DIR, "stain", "stain_cls.pt") +LABEL_MODEL_PATH = os.path.join(BASE_DIR, "symbol", "laundry_labels_cls.pt") +STAIN_GUIDE_PATH = os.path.join(BASE_DIR, "stain", "stain_washing_guidelines.json") +LABEL_GUIDE_PATH = os.path.join(BASE_DIR, "symbol", "label_symbol_guide.json") +OUT_DIR = "/home/t25119/tyoon/tyoon/ai/" +# ───── 클래스 및 설정 ───── +STAIN_CLASSES = [ + "blood", + "coffee", + "earth", + "ink", + "kimchi", + "lipstick", + "mustard", + "oil", + "wine", +] +CLASS_CONF_TH = { + "blood": 0.260, + "coffee": 0.350, + "earth": 0.230, + "ink": 0.190, + "kimchi": 0.500, + "lipstick": 0.330, + "mustard": 0.160, + "oil": 0.360, + "wine": 0.100, +} +GLOBAL_CONF = min(CLASS_CONF_TH.values()) +LABEL_CONF = 0.5 +TOP_K = 3 + +# ───── 모델 및 가이드 로딩 ───── +stain_model = YOLO(STAIN_MODEL_PATH) +label_model = YOLO(LABEL_MODEL_PATH) +with open(STAIN_GUIDE_PATH, "r", encoding="utf-8") as f: + stain_guide = json.load(f) +with open(LABEL_GUIDE_PATH, "r", encoding="utf-8") as f: + label_guide = json.load(f) + + +# ───── stain 예측 ───── +def predict_stain(image_path): + result = stain_model(image_path, conf=GLOBAL_CONF)[0] + classes = result.boxes.cls.cpu().numpy().astype(int) + probs = result.boxes.conf.cpu().numpy() + boxes = result.boxes.xyxy.cpu().numpy() + + keep = np.array( + [probs[i] >= CLASS_CONF_TH[STAIN_CLASSES[cls]] for i, cls in enumerate(classes)] + ) + classes, probs, boxes = classes[keep], probs[keep], boxes[keep] + if len(classes) == 0: + return [], "" + + sorted_idx = probs.argsort()[::-1] + top3 = [ + (STAIN_CLASSES[classes[i]], round(float(probs[i]), 3)) + for i in sorted_idx[:TOP_K] + ] + top1_idx = sorted_idx[0] + + # 시각화 + img = cv2.imread(image_path) + h, w = img.shape[:2] + for i in range(len(classes)): + x1, y1, x2, y2 = map(int, boxes[i]) + cls_id = classes[i] + label = f"{STAIN_CLASSES[cls_id]} {probs[i]:.2f}" + cv2.rectangle(img, (x1, y1), (x2, y2), (0, 0, 255), 2) + cv2.putText( + img, label, (x1, y1 - 5), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 0, 255), 2 + ) + + name = Path(image_path).stem + out_dir = os.path.join(OUT_DIR, "output", "stain") + os.makedirs(os.path.join(out_dir, "images"), exist_ok=True) + os.makedirs(os.path.join(out_dir, "labels"), exist_ok=True) + + image_out = os.path.join(out_dir, "images", f"{name}_stain.jpg") + label_out = os.path.join(out_dir, "labels", f"{name}.txt") + + # Top-1 라벨 저장 + with open(label_out, "w") as f: + i = top1_idx + x1, y1, x2, y2 = map(int, boxes[i]) + xc = ((x1 + x2) / 2) / w + yc = ((y1 + y2) / 2) / h + bw = (x2 - x1) / w + bh = (y2 - y1) / h + f.write(f"{classes[i]} {xc:.6f} {yc:.6f} {bw:.6f} {bh:.6f}\n") + + cv2.imwrite(image_out, img) + return top3, os.path.relpath(image_out, OUT_DIR).replace("\\", "/") + + +# ───── symbol 예측 ───── +def predict_label(image_path): + result = label_model.predict( + source=image_path, + imgsz=1600, + conf=LABEL_CONF, + iou=0.35, + max_det=1000, + agnostic_nms=True, + augment=True, + device="cuda" if torch.cuda.is_available() else "cpu", + verbose=False, + )[0] + + boxes = result.boxes.xyxy.cpu().numpy() + classes = result.boxes.cls.cpu().numpy().astype(int) + probs = result.boxes.conf.cpu().numpy() + + img = cv2.imread(image_path) + h, w = img.shape[:2] + name = Path(image_path).stem + + out_dir = os.path.join(OUT_DIR, "output", "symbol") + os.makedirs(os.path.join(out_dir, "images"), exist_ok=True) + os.makedirs(os.path.join(out_dir, "labels"), exist_ok=True) + + image_out = os.path.join(out_dir, "images", f"{name}_symbol.jpg") + label_out = os.path.join(out_dir, "labels", f"{name}.txt") + + with open(label_out, "w") as f: + for cls_id, conf, box in zip(classes, probs, boxes): + x1, y1, x2, y2 = map(int, box) + class_name = label_model.names[cls_id] + label = f"{class_name} {conf:.2f}" + cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2) + cv2.putText( + img, label, (x1, y1 - 20), cv2.FONT_HERSHEY_SIMPLEX, 2.0, (0, 255, 0), 4 + ) + + xc = ((x1 + x2) / 2) / w + yc = ((y1 + y2) / 2) / h + bw = (x2 - x1) / w + bh = (y2 - y1) / h + f.write(f"{cls_id} {xc:.6f} {yc:.6f} {bw:.6f} {bh:.6f}\n") + + cv2.imwrite(image_out, img) + label_names = list(set(label_model.names[cls] for cls in classes)) + return label_names, os.path.relpath(image_out, OUT_DIR).replace("\\", "/") + + +# ───── 실행 진입점 ───── +def main(): + if len(sys.argv) < 3: + print("사용법: python laundry_pipeline.py ") + sys.exit(1) + + analysis_type = sys.argv[1] + image_path = sys.argv[2] + + if analysis_type == "stain_only": + top3, output_path = predict_stain(image_path) + output = { + "detected_stain": { + "top3": [{"class": c, "confidence": s} for c, s in top3] + }, + "washing_instructions": [], + "output_image_path": output_path, + } + + seen_classes = set() + + for stain, _ in top3: + if stain in seen_classes: + continue # 중복 방지 + seen_classes.add(stain) + + methods = stain_guide.get(stain, []) + if isinstance(methods, list) and len(methods) > 0: + first = methods[0] + remaining = methods[1:] + rand = random.sample(remaining, k=min(2, len(remaining))) + combined = [first] + rand + else: + combined = ["정보 없음"] + + output["washing_instructions"].append( + {"class": stain, "instructions": combined} + ) + + print(json.dumps(output, ensure_ascii=False, indent=2)) + + elif analysis_type == "label_only": + labels, output_path = predict_label(image_path) + output = { + "detected_labels": labels, + "label_explanation": [label_guide.get(lbl, "정보 없음") for lbl in labels], + "output_image_path": output_path, + } + print(json.dumps(output, ensure_ascii=False, indent=2)) + + else: + print("⚠️ analysis_type은 'stain_only' 또는 'label_only' 중 하나여야 합니다.") + + +if __name__ == "__main__": + main() diff --git a/ai_train/llm/lm_test.py b/ai_train/llm/lm_test.py new file mode 100644 index 000000000..06e21d134 --- /dev/null +++ b/ai_train/llm/lm_test.py @@ -0,0 +1,128 @@ +import os +import time +import json +import torch +import gc +from dotenv import load_dotenv +from transformers import AutoTokenizer, AutoModelForCausalLM + +# ─── 환경변수 로딩 ─── +load_dotenv() +HF_TOKEN = os.getenv("HUGGINGFACE_TOKEN") + +# ─── 모델 리스트 ─── +MODELS = [ + "kakaocorp/kanana-nano-2.1b-base", +] + +# ─── 샘플 입력 ─── +SAMPLES = [ + { + "stain": {"class": "blood", "advice": "찬물에 불린 후 단백질 분해 효소가 포함된 세제로 세탁하세요."}, + "labels": [ + "40도 이하에서 일반 세탁 가능합니다.", + "표백 금지: 산소계, 염소계 표백제를 모두 사용하지 마세요.", + "그늘에서 옷걸이나 줄에 널어 말리세요." + ] + }, + { + "stain": {"class": "coffee", "advice": "즉시 찬물로 헹군 후 산소계 표백제를 사용해 세탁하세요."}, + "labels": [ + "30도에서 섬세 세탁하세요.", + "건조기 사용 금지", + "중간 온도에서 다림질하세요." + ] + } +] + +# ─── 프롬프트 구성 ─── +def build_prompt(sample): + return ( + f"다음은 옷의 얼룩과 세탁 기호에 대한 분석 결과입니다.\n" + f"- 얼룩 종류: {sample['stain']['class']}\n" + f"- 추천 세탁법: {sample['stain']['advice']}\n" + f"- 세탁 기호 해석: {', '.join(sample['labels'])}\n\n" + "위 정보를 참고하여 사용자에게 친절하고 자연스러운 세탁 가이드를 작성해주세요.\n\n답변:" + ) + +# ─── 모델 벤치마크 ─── +def benchmark_model(model_name, samples): + print(f"\n📥 모델 로딩 중: {model_name}") + try: + tokenizer = AutoTokenizer.from_pretrained(model_name, token=HF_TOKEN, padding_side="left") + tokenizer.pad_token = tokenizer.eos_token + + # dtype 우선순위: float16 → float32 (bfloat16은 생략) + try: + model = AutoModelForCausalLM.from_pretrained( + model_name, + torch_dtype=torch.float16, + trust_remote_code=True + ).to("cuda") + except (RuntimeError, ValueError) as e: + print("⚠️ float16 오류 → float32로 fallback") + model = AutoModelForCausalLM.from_pretrained( + model_name, + torch_dtype=torch.float32, + trust_remote_code=True + ).to("cuda") + + except Exception as e: + print(f"❌ 모델 로딩 실패: {e}") + return {"model": model_name, "error": str(e), "results": []} + + results = [] + for i, sample in enumerate(samples): + try: + prompt = build_prompt(sample) + input_ids = tokenizer(prompt, return_tensors="pt")["input_ids"].to("cuda") + + start = time.time() + output = model.generate( + input_ids, + max_new_tokens=128, + do_sample=True, + temperature=0.7, + top_k=50, + top_p=0.9, + pad_token_id=tokenizer.eos_token_id + ) + elapsed = time.time() - start + + decoded = tokenizer.decode(output[0], skip_special_tokens=True).split("답변:")[-1].strip() + + results.append({ + "input": sample, + "elapsed_time_sec": round(elapsed, 2), + "guide": decoded + }) + + except Exception as e: + print(f"⚠️ 샘플 {i+1} 처리 오류: {e}") + results.append({ + "input": sample, + "error": str(e) + }) + + del model, tokenizer + torch.cuda.empty_cache() + gc.collect() + + return {"model": model_name, "results": results} + +# ─── 실행 ─── +def run_benchmark(): + for model in MODELS: + print(f"\n⏳ 모델 실행 시작: {model}") + try: + result = benchmark_model(model, SAMPLES) + save_path = f"benchmark_result_fixed_{model.replace('/', '_')}.json" + with open(save_path, "w", encoding="utf-8") as f: + json.dump(result, f, ensure_ascii=False, indent=2) + print(f"✅ 저장 완료: {save_path}") + except Exception as e: + print(f"❌ {model} 전체 처리 실패: {e}") + +# ─── 시작점 ─── +if __name__ == "__main__": + run_benchmark() diff --git a/ai_train/preprocessing/data_preprocessing.py b/ai_train/preprocessing/data_preprocessing.py new file mode 100644 index 000000000..36ef0ff6d --- /dev/null +++ b/ai_train/preprocessing/data_preprocessing.py @@ -0,0 +1,44 @@ +import os +import cv2 +import numpy as np + +def crop_pad_resize(image, target_size=640): + h, w, _ = image.shape + + # 중심 기준으로 정사각형 crop + side = min(h, w) + center_x, center_y = w // 2, h // 2 + x1 = max(center_x - side // 2, 0) + y1 = max(center_y - side // 2, 0) + x2 = x1 + side + y2 = y1 + side + cropped = image[y1:y2, x1:x2] + + # 정사각형으로 resize + resized = cv2.resize(cropped, (target_size, target_size)) + return resized + +# ✅ 전체 폴더 경로들 +base_path = "/home/t25119/aiLab/data/stain" +split_list = ["train", "val", "test"] +target_size = 640 + +for split in split_list: + input_dir = os.path.join(base_path, split, "images") + output_dir = os.path.join(base_path + "_preprocessed", split, "images") + os.makedirs(output_dir, exist_ok=True) + + image_files = [f for f in os.listdir(input_dir) if f.lower().endswith((".jpg", ".jpeg", ".png"))] + + for fname in image_files: + img_path = os.path.join(input_dir, fname) + image = cv2.imread(img_path) + + if image is None: + print(f"[경고] 이미지 로딩 실패: {img_path}") + continue + + processed = crop_pad_resize(image, target_size=target_size) + + save_path = os.path.join(output_dir, fname) + cv2.imwrite(save_path, processed) diff --git a/ai_train/preprocessing/remap_yolo_labels.py b/ai_train/preprocessing/remap_yolo_labels.py new file mode 100644 index 000000000..01ac12233 --- /dev/null +++ b/ai_train/preprocessing/remap_yolo_labels.py @@ -0,0 +1,81 @@ +# remap_yolo_labels_flexible.py +import argparse, json, yaml, os, shutil +from pathlib import Path +from tqdm import tqdm + +IMG_EXT = {".jpg", ".jpeg", ".png", ".bmp", ".webp"} + +def load_master(master_yaml: Path): + with master_yaml.open(encoding="utf-8") as f: + names = yaml.safe_load(f)["names"] + return {n: i for i, n in enumerate(names)} + +def try_subdir(root: Path, split: str, sub: str): + """root/train/images → Path or None""" + p = root / split / sub + return p if p.exists() else None + +def main(src_root, dst_root, map_json, master_yaml, hardlink=False): + src = Path(src_root) + dst = Path(dst_root) + dst.mkdir(parents=True, exist_ok=True) + + # --- 사전 로드 + master2idx = load_master(Path(master_yaml)) + mapping = json.load(open(map_json, encoding="utf-8")) # old → {master_name, master_id} + + # 원본 data.yaml이 없어도 되도록 names 리스트를 map_json에서 역추적 + id2old = list(mapping.keys()) # old_id → old_name (가정) + + # --- 새 data.yaml 작성 + yaml.safe_dump({ + "path": str(dst.resolve()), + "train": "train/images", + "val": "val/images", + "test": "test/images", + "nc": len(master2idx), + "names": list(master2idx.keys()) + }, open(dst/"data.yaml", "w", encoding="utf-8"), allow_unicode=True) + + # --- 존재하는 split만 순회 + for split in ["train", "val", "test"]: + img_src = try_subdir(src, split, "images") + lbl_src = try_subdir(src, split, "labels") + if not img_src: # 이 split은 없다는 뜻 + continue + + # 대상 폴더 생성 + (dst/split/"images").mkdir(parents=True, exist_ok=True) + (dst/split/"labels").mkdir(parents=True, exist_ok=True) + + for img_path in tqdm(img_src.iterdir(), desc=f"{split}"): + if img_path.suffix.lower() not in IMG_EXT: + continue + + # 1) 이미지 복사/링크 + target_img = dst/split/"images"/img_path.name + if hardlink: + os.link(img_path, target_img) + else: + shutil.copy2(img_path, target_img) + + # 2) 라벨 변환 + if lbl_src: + label_txt = lbl_src/(img_path.stem + ".txt") + if label_txt.exists(): + new_lines = [] + for ln in label_txt.read_text().splitlines(): + old_id, *rest = ln.split() + old_name = id2old[int(old_id)] + master_id = mapping[old_name]["master_id"] + new_lines.append(" ".join([str(master_id)] + rest)) + (dst/split/"labels"/label_txt.name).write_text("\n".join(new_lines)) + +if __name__ == "__main__": + ap = argparse.ArgumentParser() + ap.add_argument("--src_root", required=True) + ap.add_argument("--dst_root", required=True) + ap.add_argument("--map_json", required=True) + ap.add_argument("--master_yaml", required=True) + ap.add_argument("--hardlink", action="store_true") + main(**vars(ap.parse_args())) diff --git a/ai_train/preprocessing/symbol_crop_count.py b/ai_train/preprocessing/symbol_crop_count.py new file mode 100644 index 000000000..618ddab5b --- /dev/null +++ b/ai_train/preprocessing/symbol_crop_count.py @@ -0,0 +1,36 @@ +import os +import matplotlib.pyplot as plt + +# 데이터셋 경로 설정 (윈도우 경로) +dataset_path = "C:\LAB\python\original_washtag_dataset" + +# 클래스 번호와 카운트를 저장할 리스트 초기화 +class_labels = [str(i) for i in range(43)] +class_counts = [] + +# 각 클래스 디렉토리(0~42) 내 파일 개수 계산 +for i in range(43): + class_dir = os.path.join(dataset_path, str(i)) + if os.path.isdir(class_dir): + files = [f for f in os.listdir(class_dir) + if os.path.isfile(os.path.join(class_dir, f))] + count = len(files) + else: + count = 0 + class_counts.append(count) + +# 그래프 그리기 +plt.figure(figsize=(12, 6)) +plt.bar(class_labels, class_counts) +plt.xlabel("Class") +plt.ylabel("Number of images") +plt.title("Number of images per class") +plt.xticks(rotation=90) +plt.tight_layout() + +# 저장 및 출력 +output_path = "class_distribution.png" +plt.savefig(output_path) +plt.show() + +print(f"Saved bar chart to {output_path}") diff --git a/ai_train/preprocessing/visualize/stain_rgb_dist.py b/ai_train/preprocessing/visualize/stain_rgb_dist.py new file mode 100644 index 000000000..f1b51ccad --- /dev/null +++ b/ai_train/preprocessing/visualize/stain_rgb_dist.py @@ -0,0 +1,129 @@ +import os +from PIL import Image +import numpy as np +import matplotlib.pyplot as plt + +# —————————————————————————————————————————————— +# 설정만 바꿔주세요 +DATASET_DIR = '/home/t25119/aiLab/visualization/data/stain_data_crop' # 예: /home/t25119/aiLab/data/stain, 클래스별 폴더 아래에 images/, labels/ 폴더 존재 +OUTPUT_DIR = '/home/t25119/aiLab/visualization/output' # 저장될 그래프 폴더 +CLASSES = ['blood','coffee','earth','ink','kimchi','lipstick','mustard','oil','wine'] +# —————————————————————————————————————————————— + +os.makedirs(OUTPUT_DIR, exist_ok=True) + +# 크롭 영역 불러오기 +# YOLO 포맷 라벨(images가름)/labels 폴더 사용 + +def load_crops_from_class(cls_name): + crops = [] + img_dir = os.path.join(DATASET_DIR, cls_name, 'images') + lbl_dir = os.path.join(DATASET_DIR, cls_name, 'labels') + for fname in os.listdir(img_dir): + if not fname.lower().endswith(('.png','.jpg','.jpeg')): + continue + img_path = os.path.join(img_dir, fname) + lbl_path = os.path.join(lbl_dir, os.path.splitext(fname)[0] + '.txt') + try: + img = Image.open(img_path).convert('RGB') + except: + continue + w, h = img.size + if not os.path.exists(lbl_path): + continue + with open(lbl_path) as f: + for line in f: + parts = line.strip().split() + if len(parts) < 5: + continue + # class_id 필요한 경우 parts[0] + _, xc, yc, bw, bh = map(float, parts) + x1 = int((xc - bw/2) * w) + y1 = int((yc - bh/2) * h) + x2 = int((xc + bw/2) * w) + y2 = int((yc + bh/2) * h) + crop = img.crop((x1, y1, x2, y2)) + if crop.width == 0 or crop.height == 0: + continue + crops.append(np.array(crop)) + return crops + +# 클래스별 RGB 히스토그램 + +def plot_rgb_histograms(crops, cls_name): + pixels = np.concatenate([crop.reshape(-1,3) for crop in crops], axis=0) + colors = ('r','g','b') + plt.figure(figsize=(6,4)) + for i, c in enumerate(colors): + plt.hist(pixels[:,i], bins=256, color=c, alpha=0.6, label=f'{c.upper()} channel') + plt.title(f'{cls_name} RGB Histogram (Crops)') + plt.xlabel('Pixel intensity') + plt.ylabel('Count') + plt.legend() + plt.tight_layout() + plt.savefig(os.path.join(OUTPUT_DIR, f'{cls_name}_rgb_hist.png')) + plt.close() + +# 평균 색상 막대그래프 + +def plot_mean_color_bar(mean_colors, classes): + plt.figure(figsize=(8,2)) + positions = np.arange(len(classes)) + colors = mean_colors / 255.0 + plt.bar(positions, [1]*len(classes), color=colors, edgecolor='k') + plt.xticks(positions, classes, rotation=45, ha='right') + plt.yticks([]) + plt.title('Class-wise Mean Color (Crops)') + plt.tight_layout() + plt.savefig(os.path.join(OUTPUT_DIR, 'mean_color_bar.png')) + plt.close() + +# 클래스 분포 + +def plot_class_distribution(counts, classes): + plt.figure(figsize=(6,4)) + plt.bar(classes, counts, color='skyblue', edgecolor='k') + plt.xticks(rotation=45, ha='right') + plt.ylabel('Number of crops') + plt.title('Crop Count per Class') + plt.tight_layout() + plt.savefig(os.path.join(OUTPUT_DIR, 'class_distribution.png')) + plt.close() + +# 평균 밝기 히스토그램 + +def plot_mean_brightness_hist(crops, cls_name): + pixels = np.concatenate([crop.reshape(-1,3) for crop in crops], axis=0) + brightness = pixels.mean(axis=1) + plt.figure(figsize=(6,4)) + plt.hist(brightness, bins=256, color='gray', alpha=0.7) + plt.title(f'{cls_name} Brightness Histogram (Crops)') + plt.xlabel('Brightness') + plt.ylabel('Count') + plt.tight_layout() + plt.savefig(os.path.join(OUTPUT_DIR, f'{cls_name}_brightness_hist.png')) + plt.close() + +# 메인 함수 + +def main(): + counts = [] + mean_colors = [] + for cls in CLASSES: + print(f'Processing class: {cls}') + crops = load_crops_from_class(cls) + counts.append(len(crops)) + if not crops: + continue + plot_rgb_histograms(crops, cls) + # 이미지별 평균 색상 계산 후 클래스 평균 + img_means = np.vstack([crop.reshape(-1,3).mean(axis=0) for crop in crops]) + class_mean = img_means.mean(axis=0) + mean_colors.append(class_mean) + plot_mean_brightness_hist(crops, cls) + mean_colors = np.array(mean_colors) + plot_class_distribution(counts, CLASSES) + plot_mean_color_bar(mean_colors, CLASSES) + +if __name__ == '__main__': + main() diff --git a/ai_train/preprocessing/visualize/stain_tnse.py b/ai_train/preprocessing/visualize/stain_tnse.py new file mode 100644 index 000000000..d5d3b4c19 --- /dev/null +++ b/ai_train/preprocessing/visualize/stain_tnse.py @@ -0,0 +1,141 @@ +import os +import random +import numpy as np +import pandas as pd +from PIL import Image +#from skimage.feature import hog +from sklearn.manifold import TSNE +import matplotlib.pyplot as plt + +# —————————————————————————————————————————————— +# 설정 +DATASET_DIR = '/home/t25119/aiLab/visualization/data/stain_data_crop' # 예시: /home/t25119/aiLab/data/stain/test +OUTPUT_DIR = '/home/t25119/aiLab/visualization/output' # 그래프 저장 경로 +CLASSES = ['blood', 'coffee', 'earth', 'ink', 'kimchi', 'lipstick', 'mustard', 'oil', 'wine'] +PIXELS_PER_CLASS = 5000 # t-SNE 샘플 픽셀 수/클래스 +# —————————————————————————————————————————————— + +os.makedirs(OUTPUT_DIR, exist_ok=True) + +# 1) 클래스별 크롭된 얼룩 영역 불러오기 +def load_crops(cls): + crops = [] + img_dir = os.path.join(DATASET_DIR, cls, 'images') + lbl_dir = os.path.join(DATASET_DIR, cls, 'labels') + for fname in os.listdir(img_dir): + if not fname.lower().endswith(('.png', '.jpg', '.jpeg')): + continue + img_path = os.path.join(img_dir, fname) + lbl_path = os.path.join(lbl_dir, os.path.splitext(fname)[0] + '.txt') + try: + img = Image.open(img_path).convert('RGB') + except: + continue + w, h = img.size + # 레이블 파일을 읽어, bbox 단위로 크롭 + if not os.path.exists(lbl_path): + continue + with open(lbl_path) as f: + for line in f: + parts = line.strip().split() + if len(parts) < 5: + continue + # YOLO 포맷: class_id x_center y_center width height (정규화) + _, xc, yc, bw, bh = map(float, parts) + x1 = int((xc - bw/2) * w) + y1 = int((yc - bh/2) * h) + x2 = int((xc + bw/2) * w) + y2 = int((yc + bh/2) * h) + crop = np.array(img.crop((x1, y1, x2, y2))) + if crop.size == 0: + continue + crops.append(crop) + return crops + +# 2) 클래스별 평균 RGB 막대그래프 +def plot_class_mean_rgb(mean_colors): + x = np.arange(len(CLASSES)) + width = 0.25 + fig, ax = plt.subplots(figsize=(8, 4)) + for i, col in enumerate(['R', 'G', 'B']): + ax.bar(x + i * width, mean_colors[:, i], width, label=col) + ax.set_xticks(x + width) + ax.set_xticklabels(CLASSES, rotation=45, ha='right') + ax.set_ylabel('Mean Intensity') + ax.set_title('Class-wise Mean RGB (Cropped Regions)') + ax.legend() + fig.tight_layout() + fig.savefig(os.path.join(OUTPUT_DIR, 'class_mean_rgb.png')) + plt.close(fig) + +# 3) t-SNE 기반 RGB 분포 시각화 +def plot_rgb_tsne(): + all_pixels = [] + labels = [] + for idx, cls in enumerate(CLASSES): + crops = load_crops(cls) + pixels = np.concatenate([crop.reshape(-1, 3) for crop in crops], axis=0) + sel = pixels[np.random.choice(len(pixels), PIXELS_PER_CLASS, replace=False)] + all_pixels.append(sel) + labels += [cls] * PIXELS_PER_CLASS + data = np.vstack(all_pixels) + tsne = TSNE(n_components=2, random_state=0) + proj = tsne.fit_transform(data.astype(np.float32)) + plt.figure(figsize=(6, 6)) + for cls in CLASSES: + idxs = [i for i, l in enumerate(labels) if l == cls] + plt.scatter(proj[idxs, 0], proj[idxs, 1], s=2, label=cls, alpha=0.6) + plt.legend(markerscale=4, fontsize='small') + plt.title('t-SNE on RGB Pixels (Cropped Regions)') + plt.tight_layout() + plt.savefig(os.path.join(OUTPUT_DIR, 'rgb_pixels_tsne.png')) + plt.close() + +# 4) 통합 피처 기반 t-SNE 시각화 +def plot_integrated_tsne(): + feats = [] + labs = [] + for cls in CLASSES: + crops = load_crops(cls) + for crop in crops: + h, w = crop.shape[:2] + # 1) mean RGB + mean_rgb = crop.reshape(-1, 3).mean(axis=0) + # 2) HOG (grayscale placeholder) + gray = np.dot(crop[..., :3], [0.2989, 0.5870, 0.1140]) + # hog_feat = hog(gray, pixels_per_cell=(32, 32), cells_per_block=(2, 2), feature_vector=True) + hog_feat = np.zeros(1) + # 3) 위치/비율 기본값(중앙, 종횡비 1) + cx, cy, ar = 0.5, 0.5, 1.0 + feats.append(np.hstack([mean_rgb, hog_feat, cx, cy, ar])) + labs.append(cls) + X = np.vstack(feats).astype(np.float32) + tsne = TSNE(n_components=2, random_state=0) + proj = tsne.fit_transform(X) + plt.figure(figsize=(6, 6)) + for cls in CLASSES: + idxs = [i for i, l in enumerate(labs) if l == cls] + plt.scatter(proj[idxs, 0], proj[idxs, 1], s=5, label=cls, alpha=0.7) + plt.legend(markerscale=4, fontsize='small') + plt.title('t-SNE on Integrated Features (Cropped Regions)') + plt.tight_layout() + plt.savefig(os.path.join(OUTPUT_DIR, 'integrated_tsne.png')) + plt.close() + + +def main(): + mean_colors = [] + for cls in CLASSES: + crops = load_crops(cls) + if not crops: + continue + class_mean = np.vstack([crop.reshape(-1, 3).mean(axis=0) for crop in crops]).mean(axis=0) + mean_colors.append(class_mean) + mean_colors = np.array(mean_colors) + + plot_class_mean_rgb(mean_colors) + plot_rgb_tsne() + plot_integrated_tsne() + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/ai_train/retrain/data/stain/data.yaml b/ai_train/retrain/data/stain/data.yaml new file mode 100644 index 000000000..966b8f5a4 --- /dev/null +++ b/ai_train/retrain/data/stain/data.yaml @@ -0,0 +1,6 @@ +train: /home/t25119/aiLab/test/rushWash/ai/data/stain/train/images +val: /home/t25119/aiLab/test/rushWash/ai/data/stain/val/images +test: /home/t25119/aiLab/test/rushWash/ai/data/stain/test/images + +nc: 9 +names: [blood, coffee, earth, ink, kimchi, lipstick, mustard, oil, wine] diff --git a/ai_train/retrain/data/stain/test/images/blood_0001.jpg b/ai_train/retrain/data/stain/test/images/blood_0001.jpg new file mode 100644 index 000000000..4d532bb19 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/blood_0001.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/blood_0002.jpg b/ai_train/retrain/data/stain/test/images/blood_0002.jpg new file mode 100644 index 000000000..4b5b80efb Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/blood_0002.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/blood_0003.jpg b/ai_train/retrain/data/stain/test/images/blood_0003.jpg new file mode 100644 index 000000000..c08e9c41a Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/blood_0003.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/blood_0004.jpg b/ai_train/retrain/data/stain/test/images/blood_0004.jpg new file mode 100644 index 000000000..e70f67e02 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/blood_0004.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/blood_0005.jpg b/ai_train/retrain/data/stain/test/images/blood_0005.jpg new file mode 100644 index 000000000..a858d07ca Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/blood_0005.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/blood_0006.jpg b/ai_train/retrain/data/stain/test/images/blood_0006.jpg new file mode 100644 index 000000000..f7cdf48f5 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/blood_0006.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/blood_0007.jpg b/ai_train/retrain/data/stain/test/images/blood_0007.jpg new file mode 100644 index 000000000..fb0825f3c Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/blood_0007.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/blood_0008.jpg b/ai_train/retrain/data/stain/test/images/blood_0008.jpg new file mode 100644 index 000000000..bf6ac0ef0 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/blood_0008.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/blood_0009.jpg b/ai_train/retrain/data/stain/test/images/blood_0009.jpg new file mode 100644 index 000000000..510ac2ca0 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/blood_0009.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/blood_0010.jpg b/ai_train/retrain/data/stain/test/images/blood_0010.jpg new file mode 100644 index 000000000..db383b62a Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/blood_0010.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/blood_0011.jpg b/ai_train/retrain/data/stain/test/images/blood_0011.jpg new file mode 100644 index 000000000..4b3f77f75 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/blood_0011.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/blood_0012.jpg b/ai_train/retrain/data/stain/test/images/blood_0012.jpg new file mode 100644 index 000000000..ed3cd44fc Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/blood_0012.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/blood_0013.jpg b/ai_train/retrain/data/stain/test/images/blood_0013.jpg new file mode 100644 index 000000000..f0b0b223b Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/blood_0013.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/blood_0014.jpg b/ai_train/retrain/data/stain/test/images/blood_0014.jpg new file mode 100644 index 000000000..6448e7e2f Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/blood_0014.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/blood_0015.jpg b/ai_train/retrain/data/stain/test/images/blood_0015.jpg new file mode 100644 index 000000000..bd2f82d93 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/blood_0015.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/coffee_0001.jpg b/ai_train/retrain/data/stain/test/images/coffee_0001.jpg new file mode 100644 index 000000000..23ff1c90d Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/coffee_0001.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/coffee_0002.jpg b/ai_train/retrain/data/stain/test/images/coffee_0002.jpg new file mode 100644 index 000000000..ca64fc15e Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/coffee_0002.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/coffee_0003.jpg b/ai_train/retrain/data/stain/test/images/coffee_0003.jpg new file mode 100644 index 000000000..31f631fa3 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/coffee_0003.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/coffee_0004.jpg b/ai_train/retrain/data/stain/test/images/coffee_0004.jpg new file mode 100644 index 000000000..ea639d8a4 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/coffee_0004.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/coffee_0005.jpg b/ai_train/retrain/data/stain/test/images/coffee_0005.jpg new file mode 100644 index 000000000..ff59a25a6 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/coffee_0005.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/coffee_0006.jpg b/ai_train/retrain/data/stain/test/images/coffee_0006.jpg new file mode 100644 index 000000000..4634446dd Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/coffee_0006.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/coffee_0007.jpg b/ai_train/retrain/data/stain/test/images/coffee_0007.jpg new file mode 100644 index 000000000..38e09878f Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/coffee_0007.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/coffee_0008.jpg b/ai_train/retrain/data/stain/test/images/coffee_0008.jpg new file mode 100644 index 000000000..f379b5897 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/coffee_0008.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/coffee_0009.jpg b/ai_train/retrain/data/stain/test/images/coffee_0009.jpg new file mode 100644 index 000000000..c1569323f Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/coffee_0009.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/coffee_0010.jpg b/ai_train/retrain/data/stain/test/images/coffee_0010.jpg new file mode 100644 index 000000000..999cdfe3b Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/coffee_0010.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/coffee_0011.jpg b/ai_train/retrain/data/stain/test/images/coffee_0011.jpg new file mode 100644 index 000000000..96a24b2c9 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/coffee_0011.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/coffee_0012.jpg b/ai_train/retrain/data/stain/test/images/coffee_0012.jpg new file mode 100644 index 000000000..e1f83e635 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/coffee_0012.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/coffee_0013.jpg b/ai_train/retrain/data/stain/test/images/coffee_0013.jpg new file mode 100644 index 000000000..e29daa462 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/coffee_0013.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/coffee_0014.jpg b/ai_train/retrain/data/stain/test/images/coffee_0014.jpg new file mode 100644 index 000000000..71edbc364 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/coffee_0014.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/coffee_0015.jpg b/ai_train/retrain/data/stain/test/images/coffee_0015.jpg new file mode 100644 index 000000000..de85fca1f Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/coffee_0015.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/coffee_0016.jpg b/ai_train/retrain/data/stain/test/images/coffee_0016.jpg new file mode 100644 index 000000000..1ae8290a7 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/coffee_0016.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/coffee_0017.jpg b/ai_train/retrain/data/stain/test/images/coffee_0017.jpg new file mode 100644 index 000000000..d756a477d Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/coffee_0017.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/coffee_0018.jpg b/ai_train/retrain/data/stain/test/images/coffee_0018.jpg new file mode 100644 index 000000000..8dddcc7e4 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/coffee_0018.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/earth_0001.jpg b/ai_train/retrain/data/stain/test/images/earth_0001.jpg new file mode 100644 index 000000000..35c7eebf2 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/earth_0001.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/earth_0002.jpg b/ai_train/retrain/data/stain/test/images/earth_0002.jpg new file mode 100644 index 000000000..3171d5724 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/earth_0002.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/earth_0003.jpg b/ai_train/retrain/data/stain/test/images/earth_0003.jpg new file mode 100644 index 000000000..5b14e2b68 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/earth_0003.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/earth_0004.jpg b/ai_train/retrain/data/stain/test/images/earth_0004.jpg new file mode 100644 index 000000000..70440a86f Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/earth_0004.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/earth_0005.jpg b/ai_train/retrain/data/stain/test/images/earth_0005.jpg new file mode 100644 index 000000000..e90b1790a Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/earth_0005.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/earth_0006.jpg b/ai_train/retrain/data/stain/test/images/earth_0006.jpg new file mode 100644 index 000000000..91d774225 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/earth_0006.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/earth_0008.jpg b/ai_train/retrain/data/stain/test/images/earth_0008.jpg new file mode 100644 index 000000000..1a4a14a26 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/earth_0008.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/earth_0009.jpg b/ai_train/retrain/data/stain/test/images/earth_0009.jpg new file mode 100644 index 000000000..5186812f6 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/earth_0009.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/earth_0010.jpg b/ai_train/retrain/data/stain/test/images/earth_0010.jpg new file mode 100644 index 000000000..9dc8031c8 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/earth_0010.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/earth_0011.jpg b/ai_train/retrain/data/stain/test/images/earth_0011.jpg new file mode 100644 index 000000000..73db2884d Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/earth_0011.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/earth_0012.jpg b/ai_train/retrain/data/stain/test/images/earth_0012.jpg new file mode 100644 index 000000000..f2d43c28e Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/earth_0012.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/earth_0013.jpg b/ai_train/retrain/data/stain/test/images/earth_0013.jpg new file mode 100644 index 000000000..2869f8ae9 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/earth_0013.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/earth_0014.jpg b/ai_train/retrain/data/stain/test/images/earth_0014.jpg new file mode 100644 index 000000000..eb12140df Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/earth_0014.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/earth_0015.jpg b/ai_train/retrain/data/stain/test/images/earth_0015.jpg new file mode 100644 index 000000000..d3a74bc59 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/earth_0015.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/ink_0001.jpg b/ai_train/retrain/data/stain/test/images/ink_0001.jpg new file mode 100644 index 000000000..6a483ab9b Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/ink_0001.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/ink_0002.jpg b/ai_train/retrain/data/stain/test/images/ink_0002.jpg new file mode 100644 index 000000000..67ea9a68b Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/ink_0002.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/ink_0003.jpg b/ai_train/retrain/data/stain/test/images/ink_0003.jpg new file mode 100644 index 000000000..c900b0669 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/ink_0003.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/ink_0004.jpg b/ai_train/retrain/data/stain/test/images/ink_0004.jpg new file mode 100644 index 000000000..681bee4a0 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/ink_0004.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/ink_0005.jpg b/ai_train/retrain/data/stain/test/images/ink_0005.jpg new file mode 100644 index 000000000..dcc70b012 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/ink_0005.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/ink_0006.jpg b/ai_train/retrain/data/stain/test/images/ink_0006.jpg new file mode 100644 index 000000000..03e89fdd6 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/ink_0006.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/ink_0007.jpg b/ai_train/retrain/data/stain/test/images/ink_0007.jpg new file mode 100644 index 000000000..6a12c083f Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/ink_0007.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/ink_0008.jpg b/ai_train/retrain/data/stain/test/images/ink_0008.jpg new file mode 100644 index 000000000..84558c37f Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/ink_0008.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/ink_0009.jpg b/ai_train/retrain/data/stain/test/images/ink_0009.jpg new file mode 100644 index 000000000..7ff1b7fdb Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/ink_0009.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/ink_0010.jpg b/ai_train/retrain/data/stain/test/images/ink_0010.jpg new file mode 100644 index 000000000..cf62f68a3 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/ink_0010.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/ink_0011.jpg b/ai_train/retrain/data/stain/test/images/ink_0011.jpg new file mode 100644 index 000000000..15c43830c Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/ink_0011.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/ink_0012.jpg b/ai_train/retrain/data/stain/test/images/ink_0012.jpg new file mode 100644 index 000000000..ea988d3eb Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/ink_0012.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/ink_0013.jpg b/ai_train/retrain/data/stain/test/images/ink_0013.jpg new file mode 100644 index 000000000..4e53db5b1 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/ink_0013.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/ink_0014.jpg b/ai_train/retrain/data/stain/test/images/ink_0014.jpg new file mode 100644 index 000000000..1a379677d Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/ink_0014.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/ink_0015.jpg b/ai_train/retrain/data/stain/test/images/ink_0015.jpg new file mode 100644 index 000000000..a096f66ea Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/ink_0015.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/kimchi_0001.jpg b/ai_train/retrain/data/stain/test/images/kimchi_0001.jpg new file mode 100644 index 000000000..fe6144a35 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/kimchi_0001.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/kimchi_0002.jpg b/ai_train/retrain/data/stain/test/images/kimchi_0002.jpg new file mode 100644 index 000000000..702b40291 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/kimchi_0002.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/kimchi_0003.jpg b/ai_train/retrain/data/stain/test/images/kimchi_0003.jpg new file mode 100644 index 000000000..8fce2966e Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/kimchi_0003.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/kimchi_0004.jpg b/ai_train/retrain/data/stain/test/images/kimchi_0004.jpg new file mode 100644 index 000000000..4ac5aaa7f Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/kimchi_0004.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/kimchi_0005.jpg b/ai_train/retrain/data/stain/test/images/kimchi_0005.jpg new file mode 100644 index 000000000..4513b75af Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/kimchi_0005.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/kimchi_0006.jpg b/ai_train/retrain/data/stain/test/images/kimchi_0006.jpg new file mode 100644 index 000000000..4f27af95e Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/kimchi_0006.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/kimchi_0007.jpg b/ai_train/retrain/data/stain/test/images/kimchi_0007.jpg new file mode 100644 index 000000000..3de777627 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/kimchi_0007.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/kimchi_0008.jpg b/ai_train/retrain/data/stain/test/images/kimchi_0008.jpg new file mode 100644 index 000000000..434363e70 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/kimchi_0008.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/kimchi_0009.jpg b/ai_train/retrain/data/stain/test/images/kimchi_0009.jpg new file mode 100644 index 000000000..5fc94a20a Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/kimchi_0009.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/kimchi_0010.jpg b/ai_train/retrain/data/stain/test/images/kimchi_0010.jpg new file mode 100644 index 000000000..f223f5e92 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/kimchi_0010.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/kimchi_0011.jpg b/ai_train/retrain/data/stain/test/images/kimchi_0011.jpg new file mode 100644 index 000000000..39a8f551b Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/kimchi_0011.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/kimchi_0012.jpg b/ai_train/retrain/data/stain/test/images/kimchi_0012.jpg new file mode 100644 index 000000000..3b35e0ac7 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/kimchi_0012.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/kimchi_0013.jpg b/ai_train/retrain/data/stain/test/images/kimchi_0013.jpg new file mode 100644 index 000000000..2b5144057 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/kimchi_0013.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/kimchi_0014.jpg b/ai_train/retrain/data/stain/test/images/kimchi_0014.jpg new file mode 100644 index 000000000..b4c8e74b3 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/kimchi_0014.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/lipstick_0001.jpg b/ai_train/retrain/data/stain/test/images/lipstick_0001.jpg new file mode 100644 index 000000000..1c873203e Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/lipstick_0001.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/lipstick_0003.jpg b/ai_train/retrain/data/stain/test/images/lipstick_0003.jpg new file mode 100644 index 000000000..56233fb0e Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/lipstick_0003.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/lipstick_0004.jpg b/ai_train/retrain/data/stain/test/images/lipstick_0004.jpg new file mode 100644 index 000000000..0daf5fdb3 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/lipstick_0004.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/lipstick_0005.jpg b/ai_train/retrain/data/stain/test/images/lipstick_0005.jpg new file mode 100644 index 000000000..27984e328 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/lipstick_0005.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/lipstick_0006.jpg b/ai_train/retrain/data/stain/test/images/lipstick_0006.jpg new file mode 100644 index 000000000..2d8944e06 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/lipstick_0006.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/lipstick_0007.jpg b/ai_train/retrain/data/stain/test/images/lipstick_0007.jpg new file mode 100644 index 000000000..9b54cc1e5 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/lipstick_0007.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/lipstick_0008.jpg b/ai_train/retrain/data/stain/test/images/lipstick_0008.jpg new file mode 100644 index 000000000..109eef86f Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/lipstick_0008.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/lipstick_0009.jpg b/ai_train/retrain/data/stain/test/images/lipstick_0009.jpg new file mode 100644 index 000000000..329611d0d Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/lipstick_0009.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/lipstick_0010.jpg b/ai_train/retrain/data/stain/test/images/lipstick_0010.jpg new file mode 100644 index 000000000..334b8577f Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/lipstick_0010.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/lipstick_0011.jpg b/ai_train/retrain/data/stain/test/images/lipstick_0011.jpg new file mode 100644 index 000000000..f1b239809 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/lipstick_0011.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/lipstick_0012.jpg b/ai_train/retrain/data/stain/test/images/lipstick_0012.jpg new file mode 100644 index 000000000..e9316f3cd Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/lipstick_0012.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/mustard_0001.jpg b/ai_train/retrain/data/stain/test/images/mustard_0001.jpg new file mode 100644 index 000000000..0894e479e Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/mustard_0001.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/mustard_0002.jpg b/ai_train/retrain/data/stain/test/images/mustard_0002.jpg new file mode 100644 index 000000000..700eaa290 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/mustard_0002.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/mustard_0003.jpg b/ai_train/retrain/data/stain/test/images/mustard_0003.jpg new file mode 100644 index 000000000..97a20766f Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/mustard_0003.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/mustard_0004.jpg b/ai_train/retrain/data/stain/test/images/mustard_0004.jpg new file mode 100644 index 000000000..8da259cc1 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/mustard_0004.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/mustard_0005.jpg b/ai_train/retrain/data/stain/test/images/mustard_0005.jpg new file mode 100644 index 000000000..f2b7b9708 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/mustard_0005.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/mustard_0006.jpg b/ai_train/retrain/data/stain/test/images/mustard_0006.jpg new file mode 100644 index 000000000..403ddf983 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/mustard_0006.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/mustard_0007.jpg b/ai_train/retrain/data/stain/test/images/mustard_0007.jpg new file mode 100644 index 000000000..e75dc7991 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/mustard_0007.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/mustard_0009.jpg b/ai_train/retrain/data/stain/test/images/mustard_0009.jpg new file mode 100644 index 000000000..1174d7e86 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/mustard_0009.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/mustard_0010.jpg b/ai_train/retrain/data/stain/test/images/mustard_0010.jpg new file mode 100644 index 000000000..5de7ec63d Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/mustard_0010.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/oil_0001.jpg b/ai_train/retrain/data/stain/test/images/oil_0001.jpg new file mode 100644 index 000000000..5c2eabba4 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/oil_0001.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/oil_0002.jpg b/ai_train/retrain/data/stain/test/images/oil_0002.jpg new file mode 100644 index 000000000..377deabbf Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/oil_0002.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/oil_0003.jpg b/ai_train/retrain/data/stain/test/images/oil_0003.jpg new file mode 100644 index 000000000..79f2098af Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/oil_0003.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/oil_0004.jpg b/ai_train/retrain/data/stain/test/images/oil_0004.jpg new file mode 100644 index 000000000..7ab9793c0 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/oil_0004.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/oil_0005.jpg b/ai_train/retrain/data/stain/test/images/oil_0005.jpg new file mode 100644 index 000000000..016f85de2 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/oil_0005.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/oil_0006.jpg b/ai_train/retrain/data/stain/test/images/oil_0006.jpg new file mode 100644 index 000000000..398e8144f Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/oil_0006.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/oil_0007.jpg b/ai_train/retrain/data/stain/test/images/oil_0007.jpg new file mode 100644 index 000000000..023cfa603 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/oil_0007.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/oil_0008.jpg b/ai_train/retrain/data/stain/test/images/oil_0008.jpg new file mode 100644 index 000000000..7fd42475c Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/oil_0008.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/oil_0009.jpg b/ai_train/retrain/data/stain/test/images/oil_0009.jpg new file mode 100644 index 000000000..295bd5d8d Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/oil_0009.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/oil_0010.jpg b/ai_train/retrain/data/stain/test/images/oil_0010.jpg new file mode 100644 index 000000000..e10642f9f Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/oil_0010.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/oil_0011.jpg b/ai_train/retrain/data/stain/test/images/oil_0011.jpg new file mode 100644 index 000000000..bb10be182 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/oil_0011.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/oil_0012.jpg b/ai_train/retrain/data/stain/test/images/oil_0012.jpg new file mode 100644 index 000000000..5dd390968 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/oil_0012.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/wine_0001.jpg b/ai_train/retrain/data/stain/test/images/wine_0001.jpg new file mode 100644 index 000000000..4429e9ebd Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/wine_0001.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/wine_0002.jpg b/ai_train/retrain/data/stain/test/images/wine_0002.jpg new file mode 100644 index 000000000..0e89c835e Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/wine_0002.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/wine_0003.jpg b/ai_train/retrain/data/stain/test/images/wine_0003.jpg new file mode 100644 index 000000000..76be1abe7 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/wine_0003.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/wine_0004.jpg b/ai_train/retrain/data/stain/test/images/wine_0004.jpg new file mode 100644 index 000000000..46aacd6fe Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/wine_0004.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/wine_0005.jpg b/ai_train/retrain/data/stain/test/images/wine_0005.jpg new file mode 100644 index 000000000..2a7c82b49 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/wine_0005.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/wine_0006.jpg b/ai_train/retrain/data/stain/test/images/wine_0006.jpg new file mode 100644 index 000000000..68b568e44 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/wine_0006.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/wine_0007.jpg b/ai_train/retrain/data/stain/test/images/wine_0007.jpg new file mode 100644 index 000000000..934adf0f4 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/wine_0007.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/wine_0008.jpg b/ai_train/retrain/data/stain/test/images/wine_0008.jpg new file mode 100644 index 000000000..7a684d5cd Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/wine_0008.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/wine_0009.jpg b/ai_train/retrain/data/stain/test/images/wine_0009.jpg new file mode 100644 index 000000000..12219d205 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/wine_0009.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/wine_0010.jpg b/ai_train/retrain/data/stain/test/images/wine_0010.jpg new file mode 100644 index 000000000..783717535 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/wine_0010.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/wine_0011.jpg b/ai_train/retrain/data/stain/test/images/wine_0011.jpg new file mode 100644 index 000000000..8084b4416 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/wine_0011.jpg differ diff --git a/ai_train/retrain/data/stain/test/images/wine_0012.jpg b/ai_train/retrain/data/stain/test/images/wine_0012.jpg new file mode 100644 index 000000000..588505378 Binary files /dev/null and b/ai_train/retrain/data/stain/test/images/wine_0012.jpg differ diff --git a/ai_train/retrain/data/stain/train/images/IMG_9156.png b/ai_train/retrain/data/stain/train/images/IMG_9156.png new file mode 100644 index 000000000..3835fd35d Binary files /dev/null and b/ai_train/retrain/data/stain/train/images/IMG_9156.png differ diff --git a/ai_train/retrain/data/stain/train/images/KakaoTalk_20250521_142303394.png b/ai_train/retrain/data/stain/train/images/KakaoTalk_20250521_142303394.png new file mode 100644 index 000000000..ec0d5ddd0 Binary files /dev/null and b/ai_train/retrain/data/stain/train/images/KakaoTalk_20250521_142303394.png differ diff --git a/ai_train/retrain/data/stain/train/images/KakaoTalk_20250521_142539060.png b/ai_train/retrain/data/stain/train/images/KakaoTalk_20250521_142539060.png new file mode 100644 index 000000000..5870cc92c Binary files /dev/null and b/ai_train/retrain/data/stain/train/images/KakaoTalk_20250521_142539060.png differ diff --git a/ai_train/retrain/data/stain/train/images/KakaoTalk_20250528_224900684.png b/ai_train/retrain/data/stain/train/images/KakaoTalk_20250528_224900684.png new file mode 100644 index 000000000..60f3b78ca Binary files /dev/null and b/ai_train/retrain/data/stain/train/images/KakaoTalk_20250528_224900684.png differ diff --git a/ai_train/retrain/data/stain/train/images/KakaoTalk_20250528_224913300.png b/ai_train/retrain/data/stain/train/images/KakaoTalk_20250528_224913300.png new file mode 100644 index 000000000..1165bb042 Binary files /dev/null and b/ai_train/retrain/data/stain/train/images/KakaoTalk_20250528_224913300.png differ diff --git a/ai_train/retrain/data/stain/train/images/KakaoTalk_20250528_224952037.png b/ai_train/retrain/data/stain/train/images/KakaoTalk_20250528_224952037.png new file mode 100644 index 000000000..73c51a16d Binary files /dev/null and b/ai_train/retrain/data/stain/train/images/KakaoTalk_20250528_224952037.png differ diff --git a/ai_train/retrain/data/stain/train/images/KakaoTalk_20250528_225024338.png b/ai_train/retrain/data/stain/train/images/KakaoTalk_20250528_225024338.png new file mode 100644 index 000000000..bce3d296e Binary files /dev/null and b/ai_train/retrain/data/stain/train/images/KakaoTalk_20250528_225024338.png differ diff --git a/ai_train/retrain/data/stain/train/images/blood_0005.jpg b/ai_train/retrain/data/stain/train/images/blood_0005.jpg new file mode 100644 index 000000000..a858d07ca Binary files /dev/null and b/ai_train/retrain/data/stain/train/images/blood_0005.jpg differ diff --git a/ai_train/retrain/data/stain/train/images/earth_0010.jpg b/ai_train/retrain/data/stain/train/images/earth_0010.jpg new file mode 100644 index 000000000..9dc8031c8 Binary files /dev/null and b/ai_train/retrain/data/stain/train/images/earth_0010.jpg differ diff --git a/ai_train/retrain/data/stain/train/images/lipstick_0001.jpg b/ai_train/retrain/data/stain/train/images/lipstick_0001.jpg new file mode 100644 index 000000000..1c873203e Binary files /dev/null and b/ai_train/retrain/data/stain/train/images/lipstick_0001.jpg differ diff --git a/ai_train/retrain/data/stain/train/images/mustard_0003.jpg b/ai_train/retrain/data/stain/train/images/mustard_0003.jpg new file mode 100644 index 000000000..97a20766f Binary files /dev/null and b/ai_train/retrain/data/stain/train/images/mustard_0003.jpg differ diff --git a/ai_train/retrain/data/stain/train/images/oil_0007.jpg b/ai_train/retrain/data/stain/train/images/oil_0007.jpg new file mode 100644 index 000000000..023cfa603 Binary files /dev/null and b/ai_train/retrain/data/stain/train/images/oil_0007.jpg differ diff --git a/ai_train/retrain/data/stain/train/labels.cache b/ai_train/retrain/data/stain/train/labels.cache new file mode 100644 index 000000000..4fe61281c Binary files /dev/null and b/ai_train/retrain/data/stain/train/labels.cache differ diff --git a/ai_train/retrain/data/stain/train/labels/IMG_9156.txt b/ai_train/retrain/data/stain/train/labels/IMG_9156.txt new file mode 100644 index 000000000..85d49c9a3 --- /dev/null +++ b/ai_train/retrain/data/stain/train/labels/IMG_9156.txt @@ -0,0 +1 @@ +6 0.596094 0.487500 0.632812 0.953125 diff --git a/ai_train/retrain/data/stain/train/labels/KakaoTalk_20250521_142303394.txt b/ai_train/retrain/data/stain/train/labels/KakaoTalk_20250521_142303394.txt new file mode 100644 index 000000000..b5f1c238f --- /dev/null +++ b/ai_train/retrain/data/stain/train/labels/KakaoTalk_20250521_142303394.txt @@ -0,0 +1 @@ +8 0.536719 0.285156 0.235937 0.364063 diff --git a/ai_train/retrain/data/stain/train/labels/KakaoTalk_20250521_142539060.txt b/ai_train/retrain/data/stain/train/labels/KakaoTalk_20250521_142539060.txt new file mode 100644 index 000000000..c94c76470 --- /dev/null +++ b/ai_train/retrain/data/stain/train/labels/KakaoTalk_20250521_142539060.txt @@ -0,0 +1 @@ +0 0.339062 0.721094 0.425000 0.482812 diff --git a/ai_train/retrain/data/stain/train/labels/KakaoTalk_20250528_224900684.txt b/ai_train/retrain/data/stain/train/labels/KakaoTalk_20250528_224900684.txt new file mode 100644 index 000000000..f96cffa47 --- /dev/null +++ b/ai_train/retrain/data/stain/train/labels/KakaoTalk_20250528_224900684.txt @@ -0,0 +1 @@ +4 0.107031 0.253906 0.185938 0.198437 diff --git a/ai_train/retrain/data/stain/train/labels/KakaoTalk_20250528_224913300.txt b/ai_train/retrain/data/stain/train/labels/KakaoTalk_20250528_224913300.txt new file mode 100644 index 000000000..4840d3630 --- /dev/null +++ b/ai_train/retrain/data/stain/train/labels/KakaoTalk_20250528_224913300.txt @@ -0,0 +1 @@ +3 0.446094 0.619531 0.614062 0.542188 diff --git a/ai_train/retrain/data/stain/train/labels/KakaoTalk_20250528_224952037.txt b/ai_train/retrain/data/stain/train/labels/KakaoTalk_20250528_224952037.txt new file mode 100644 index 000000000..68a85eddf --- /dev/null +++ b/ai_train/retrain/data/stain/train/labels/KakaoTalk_20250528_224952037.txt @@ -0,0 +1 @@ +0 0.581250 0.368750 0.300000 0.231250 diff --git a/ai_train/retrain/data/stain/train/labels/KakaoTalk_20250528_225024338.txt b/ai_train/retrain/data/stain/train/labels/KakaoTalk_20250528_225024338.txt new file mode 100644 index 000000000..e05a2fdad --- /dev/null +++ b/ai_train/retrain/data/stain/train/labels/KakaoTalk_20250528_225024338.txt @@ -0,0 +1 @@ +8 0.630469 0.828125 0.167187 0.181250 diff --git a/ai_train/retrain/data/stain/train/labels/blood_0005.txt b/ai_train/retrain/data/stain/train/labels/blood_0005.txt new file mode 100644 index 000000000..17a12f77d --- /dev/null +++ b/ai_train/retrain/data/stain/train/labels/blood_0005.txt @@ -0,0 +1 @@ +0 0.623437 0.276562 0.231250 0.156250 diff --git a/ai_train/retrain/data/stain/train/labels/earth_0010.txt b/ai_train/retrain/data/stain/train/labels/earth_0010.txt new file mode 100644 index 000000000..123efca8c --- /dev/null +++ b/ai_train/retrain/data/stain/train/labels/earth_0010.txt @@ -0,0 +1 @@ +2 0.583594 0.486719 0.576562 0.626563 diff --git a/ai_train/retrain/data/stain/train/labels/lipstick_0001.txt b/ai_train/retrain/data/stain/train/labels/lipstick_0001.txt new file mode 100644 index 000000000..7a9a3c64c --- /dev/null +++ b/ai_train/retrain/data/stain/train/labels/lipstick_0001.txt @@ -0,0 +1 @@ +5 0.597656 0.585938 0.270313 0.265625 diff --git a/ai_train/retrain/data/stain/train/labels/mustard_0003.txt b/ai_train/retrain/data/stain/train/labels/mustard_0003.txt new file mode 100644 index 000000000..4d741c5cb --- /dev/null +++ b/ai_train/retrain/data/stain/train/labels/mustard_0003.txt @@ -0,0 +1 @@ +6 0.416406 0.546094 0.145313 0.326562 diff --git a/ai_train/retrain/data/stain/train/labels/oil_0007.txt b/ai_train/retrain/data/stain/train/labels/oil_0007.txt new file mode 100644 index 000000000..2b01c279f --- /dev/null +++ b/ai_train/retrain/data/stain/train/labels/oil_0007.txt @@ -0,0 +1 @@ +7 0.418750 0.642969 0.393750 0.682813 diff --git a/ai_train/retrain/data/stain/val/images/blood_005.jpg b/ai_train/retrain/data/stain/val/images/blood_005.jpg new file mode 100644 index 000000000..fc979e365 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/blood_005.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/blood_008.jpg b/ai_train/retrain/data/stain/val/images/blood_008.jpg new file mode 100644 index 000000000..f39b6bc0f Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/blood_008.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/blood_013.jpg b/ai_train/retrain/data/stain/val/images/blood_013.jpg new file mode 100644 index 000000000..e635b4f98 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/blood_013.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/blood_027.jpg b/ai_train/retrain/data/stain/val/images/blood_027.jpg new file mode 100644 index 000000000..f781f2ef5 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/blood_027.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/blood_029.jpg b/ai_train/retrain/data/stain/val/images/blood_029.jpg new file mode 100644 index 000000000..03afbcfab Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/blood_029.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/blood_034.jpg b/ai_train/retrain/data/stain/val/images/blood_034.jpg new file mode 100644 index 000000000..7f61e553a Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/blood_034.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/blood_036.jpg b/ai_train/retrain/data/stain/val/images/blood_036.jpg new file mode 100644 index 000000000..989c8157e Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/blood_036.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/blood_048.jpg b/ai_train/retrain/data/stain/val/images/blood_048.jpg new file mode 100644 index 000000000..4694956a1 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/blood_048.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/blood_050.jpg b/ai_train/retrain/data/stain/val/images/blood_050.jpg new file mode 100644 index 000000000..190947a18 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/blood_050.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/blood_052.jpg b/ai_train/retrain/data/stain/val/images/blood_052.jpg new file mode 100644 index 000000000..31b1d3c51 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/blood_052.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/blood_061.jpg b/ai_train/retrain/data/stain/val/images/blood_061.jpg new file mode 100644 index 000000000..9a64d4a15 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/blood_061.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/blood_069.jpg b/ai_train/retrain/data/stain/val/images/blood_069.jpg new file mode 100644 index 000000000..b504c031c Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/blood_069.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/blood_071.jpg b/ai_train/retrain/data/stain/val/images/blood_071.jpg new file mode 100644 index 000000000..06736584d Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/blood_071.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/blood_075.jpg b/ai_train/retrain/data/stain/val/images/blood_075.jpg new file mode 100644 index 000000000..c38683a59 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/blood_075.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/blood_077.jpg b/ai_train/retrain/data/stain/val/images/blood_077.jpg new file mode 100644 index 000000000..0288bf304 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/blood_077.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/blood_084.jpg b/ai_train/retrain/data/stain/val/images/blood_084.jpg new file mode 100644 index 000000000..3ee499d15 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/blood_084.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/blood_085.jpg b/ai_train/retrain/data/stain/val/images/blood_085.jpg new file mode 100644 index 000000000..3124c3839 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/blood_085.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/blood_093.jpg b/ai_train/retrain/data/stain/val/images/blood_093.jpg new file mode 100644 index 000000000..94f611380 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/blood_093.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/blood_097.jpg b/ai_train/retrain/data/stain/val/images/blood_097.jpg new file mode 100644 index 000000000..a613bd7fc Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/blood_097.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/blood_099.jpg b/ai_train/retrain/data/stain/val/images/blood_099.jpg new file mode 100644 index 000000000..f47409069 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/blood_099.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/coffee_001.jpg b/ai_train/retrain/data/stain/val/images/coffee_001.jpg new file mode 100644 index 000000000..ba1e0d8d9 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/coffee_001.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/coffee_005.jpg b/ai_train/retrain/data/stain/val/images/coffee_005.jpg new file mode 100644 index 000000000..34e4f3377 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/coffee_005.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/coffee_010.jpg b/ai_train/retrain/data/stain/val/images/coffee_010.jpg new file mode 100644 index 000000000..d087e3e21 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/coffee_010.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/coffee_011.jpg b/ai_train/retrain/data/stain/val/images/coffee_011.jpg new file mode 100644 index 000000000..aa27be57e Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/coffee_011.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/coffee_019.jpg b/ai_train/retrain/data/stain/val/images/coffee_019.jpg new file mode 100644 index 000000000..2e1b4f635 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/coffee_019.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/coffee_021.jpg b/ai_train/retrain/data/stain/val/images/coffee_021.jpg new file mode 100644 index 000000000..d8f7531e1 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/coffee_021.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/coffee_024.jpg b/ai_train/retrain/data/stain/val/images/coffee_024.jpg new file mode 100644 index 000000000..5b87f2094 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/coffee_024.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/coffee_035.jpg b/ai_train/retrain/data/stain/val/images/coffee_035.jpg new file mode 100644 index 000000000..2db158c60 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/coffee_035.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/coffee_050.jpg b/ai_train/retrain/data/stain/val/images/coffee_050.jpg new file mode 100644 index 000000000..f19642b8a Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/coffee_050.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/coffee_051.jpg b/ai_train/retrain/data/stain/val/images/coffee_051.jpg new file mode 100644 index 000000000..5ae0103b4 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/coffee_051.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/coffee_055.jpg b/ai_train/retrain/data/stain/val/images/coffee_055.jpg new file mode 100644 index 000000000..80d60d163 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/coffee_055.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/coffee_067.jpg b/ai_train/retrain/data/stain/val/images/coffee_067.jpg new file mode 100644 index 000000000..a17066358 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/coffee_067.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/coffee_070.jpg b/ai_train/retrain/data/stain/val/images/coffee_070.jpg new file mode 100644 index 000000000..001a7bdc9 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/coffee_070.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/coffee_072.jpg b/ai_train/retrain/data/stain/val/images/coffee_072.jpg new file mode 100644 index 000000000..26338b6b4 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/coffee_072.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/coffee_075.jpg b/ai_train/retrain/data/stain/val/images/coffee_075.jpg new file mode 100644 index 000000000..820cf7260 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/coffee_075.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/coffee_078.jpg b/ai_train/retrain/data/stain/val/images/coffee_078.jpg new file mode 100644 index 000000000..c01f8f626 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/coffee_078.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/coffee_079.jpg b/ai_train/retrain/data/stain/val/images/coffee_079.jpg new file mode 100644 index 000000000..c403f4474 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/coffee_079.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/coffee_087.jpg b/ai_train/retrain/data/stain/val/images/coffee_087.jpg new file mode 100644 index 000000000..72a352010 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/coffee_087.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_109.jpg b/ai_train/retrain/data/stain/val/images/earth_109.jpg new file mode 100644 index 000000000..dfd33e64c Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_109.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_115.jpg b/ai_train/retrain/data/stain/val/images/earth_115.jpg new file mode 100644 index 000000000..6a3f8c759 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_115.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_125.jpg b/ai_train/retrain/data/stain/val/images/earth_125.jpg new file mode 100644 index 000000000..286ae8b43 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_125.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_127.jpg b/ai_train/retrain/data/stain/val/images/earth_127.jpg new file mode 100644 index 000000000..3e881e73d Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_127.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_128.jpg b/ai_train/retrain/data/stain/val/images/earth_128.jpg new file mode 100644 index 000000000..92337fecd Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_128.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_130.jpg b/ai_train/retrain/data/stain/val/images/earth_130.jpg new file mode 100644 index 000000000..7d621633a Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_130.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_133.jpg b/ai_train/retrain/data/stain/val/images/earth_133.jpg new file mode 100644 index 000000000..04fb199e9 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_133.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_134.jpg b/ai_train/retrain/data/stain/val/images/earth_134.jpg new file mode 100644 index 000000000..d3920e704 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_134.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_135.jpg b/ai_train/retrain/data/stain/val/images/earth_135.jpg new file mode 100644 index 000000000..5eed2d711 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_135.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_138.jpg b/ai_train/retrain/data/stain/val/images/earth_138.jpg new file mode 100644 index 000000000..aa23de842 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_138.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_142.jpg b/ai_train/retrain/data/stain/val/images/earth_142.jpg new file mode 100644 index 000000000..5b1d408c2 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_142.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_143.jpg b/ai_train/retrain/data/stain/val/images/earth_143.jpg new file mode 100644 index 000000000..422c6d6aa Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_143.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_147.jpg b/ai_train/retrain/data/stain/val/images/earth_147.jpg new file mode 100644 index 000000000..2771c1c3a Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_147.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_19.jpg b/ai_train/retrain/data/stain/val/images/earth_19.jpg new file mode 100644 index 000000000..2aa247907 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_19.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_20.jpg b/ai_train/retrain/data/stain/val/images/earth_20.jpg new file mode 100644 index 000000000..b008e90e4 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_20.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_25.jpg b/ai_train/retrain/data/stain/val/images/earth_25.jpg new file mode 100644 index 000000000..03d8d9db8 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_25.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_36.jpg b/ai_train/retrain/data/stain/val/images/earth_36.jpg new file mode 100644 index 000000000..d3a74bc59 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_36.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_37.jpg b/ai_train/retrain/data/stain/val/images/earth_37.jpg new file mode 100644 index 000000000..70d73b47f Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_37.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_38.jpg b/ai_train/retrain/data/stain/val/images/earth_38.jpg new file mode 100644 index 000000000..042d9b7c2 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_38.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_4.jpg b/ai_train/retrain/data/stain/val/images/earth_4.jpg new file mode 100644 index 000000000..28ec74e0b Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_4.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_40.jpg b/ai_train/retrain/data/stain/val/images/earth_40.jpg new file mode 100644 index 000000000..5942d4264 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_40.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_42.jpg b/ai_train/retrain/data/stain/val/images/earth_42.jpg new file mode 100644 index 000000000..298c152f3 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_42.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_47.jpg b/ai_train/retrain/data/stain/val/images/earth_47.jpg new file mode 100644 index 000000000..608c9c1b8 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_47.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_5.jpg b/ai_train/retrain/data/stain/val/images/earth_5.jpg new file mode 100644 index 000000000..5f4f551fa Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_5.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_60.jpg b/ai_train/retrain/data/stain/val/images/earth_60.jpg new file mode 100644 index 000000000..e08b65e12 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_60.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_64.jpg b/ai_train/retrain/data/stain/val/images/earth_64.jpg new file mode 100644 index 000000000..6cf60c49f Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_64.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_84.jpg b/ai_train/retrain/data/stain/val/images/earth_84.jpg new file mode 100644 index 000000000..52507bd47 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_84.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_85.jpg b/ai_train/retrain/data/stain/val/images/earth_85.jpg new file mode 100644 index 000000000..1432c4ba3 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_85.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/earth_93.jpg b/ai_train/retrain/data/stain/val/images/earth_93.jpg new file mode 100644 index 000000000..ebd7dcb86 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/earth_93.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/ink_008.jpg b/ai_train/retrain/data/stain/val/images/ink_008.jpg new file mode 100644 index 000000000..f7342e4dd Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/ink_008.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/ink_013.jpg b/ai_train/retrain/data/stain/val/images/ink_013.jpg new file mode 100644 index 000000000..34e3f8bb1 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/ink_013.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/ink_018.jpg b/ai_train/retrain/data/stain/val/images/ink_018.jpg new file mode 100644 index 000000000..3222b5b45 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/ink_018.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/ink_033.jpg b/ai_train/retrain/data/stain/val/images/ink_033.jpg new file mode 100644 index 000000000..a2770bf93 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/ink_033.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/ink_037.jpg b/ai_train/retrain/data/stain/val/images/ink_037.jpg new file mode 100644 index 000000000..edae4623e Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/ink_037.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/ink_041.jpg b/ai_train/retrain/data/stain/val/images/ink_041.jpg new file mode 100644 index 000000000..deda375f7 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/ink_041.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/ink_044.jpg b/ai_train/retrain/data/stain/val/images/ink_044.jpg new file mode 100644 index 000000000..77dcf8373 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/ink_044.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/ink_052.jpg b/ai_train/retrain/data/stain/val/images/ink_052.jpg new file mode 100644 index 000000000..250230696 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/ink_052.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/ink_061.jpg b/ai_train/retrain/data/stain/val/images/ink_061.jpg new file mode 100644 index 000000000..ad43d945a Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/ink_061.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/ink_062.jpg b/ai_train/retrain/data/stain/val/images/ink_062.jpg new file mode 100644 index 000000000..c5ce6b511 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/ink_062.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/ink_063.jpg b/ai_train/retrain/data/stain/val/images/ink_063.jpg new file mode 100644 index 000000000..c3cf67152 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/ink_063.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/ink_065.jpg b/ai_train/retrain/data/stain/val/images/ink_065.jpg new file mode 100644 index 000000000..d218b2aeb Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/ink_065.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/ink_069.jpg b/ai_train/retrain/data/stain/val/images/ink_069.jpg new file mode 100644 index 000000000..4d3855518 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/ink_069.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/ink_083.jpg b/ai_train/retrain/data/stain/val/images/ink_083.jpg new file mode 100644 index 000000000..c6e81da49 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/ink_083.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/ink_086.jpg b/ai_train/retrain/data/stain/val/images/ink_086.jpg new file mode 100644 index 000000000..fe9f8f83f Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/ink_086.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/ink_088.jpg b/ai_train/retrain/data/stain/val/images/ink_088.jpg new file mode 100644 index 000000000..8d9c79ab1 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/ink_088.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/kimchi_003.jpg b/ai_train/retrain/data/stain/val/images/kimchi_003.jpg new file mode 100644 index 000000000..5b5a9bda3 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/kimchi_003.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/kimchi_009.jpg b/ai_train/retrain/data/stain/val/images/kimchi_009.jpg new file mode 100644 index 000000000..4d8e4f5c2 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/kimchi_009.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/kimchi_013.jpg b/ai_train/retrain/data/stain/val/images/kimchi_013.jpg new file mode 100644 index 000000000..256ae4ddc Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/kimchi_013.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/kimchi_033.jpg b/ai_train/retrain/data/stain/val/images/kimchi_033.jpg new file mode 100644 index 000000000..7a5a03dbb Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/kimchi_033.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/kimchi_038.jpg b/ai_train/retrain/data/stain/val/images/kimchi_038.jpg new file mode 100644 index 000000000..1f2a8041f Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/kimchi_038.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/kimchi_041.jpg b/ai_train/retrain/data/stain/val/images/kimchi_041.jpg new file mode 100644 index 000000000..e85b17330 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/kimchi_041.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/kimchi_043.jpg b/ai_train/retrain/data/stain/val/images/kimchi_043.jpg new file mode 100644 index 000000000..f3839057e Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/kimchi_043.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/kimchi_050.jpg b/ai_train/retrain/data/stain/val/images/kimchi_050.jpg new file mode 100644 index 000000000..f1b70367e Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/kimchi_050.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/kimchi_057.jpg b/ai_train/retrain/data/stain/val/images/kimchi_057.jpg new file mode 100644 index 000000000..f48acd64e Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/kimchi_057.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/kimchi_058.jpg b/ai_train/retrain/data/stain/val/images/kimchi_058.jpg new file mode 100644 index 000000000..210bbe4b7 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/kimchi_058.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/kimchi_062.jpg b/ai_train/retrain/data/stain/val/images/kimchi_062.jpg new file mode 100644 index 000000000..1fbe4fc04 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/kimchi_062.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/kimchi_066.jpg b/ai_train/retrain/data/stain/val/images/kimchi_066.jpg new file mode 100644 index 000000000..9202ff4ea Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/kimchi_066.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/kimchi_072.jpg b/ai_train/retrain/data/stain/val/images/kimchi_072.jpg new file mode 100644 index 000000000..5d7686d54 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/kimchi_072.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/kimchi_083.jpg b/ai_train/retrain/data/stain/val/images/kimchi_083.jpg new file mode 100644 index 000000000..71bc95171 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/kimchi_083.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/kimchi_089.jpg b/ai_train/retrain/data/stain/val/images/kimchi_089.jpg new file mode 100644 index 000000000..2bef2d090 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/kimchi_089.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/kimchi_090.jpg b/ai_train/retrain/data/stain/val/images/kimchi_090.jpg new file mode 100644 index 000000000..8c09c4bda Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/kimchi_090.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/kimchi_095.jpg b/ai_train/retrain/data/stain/val/images/kimchi_095.jpg new file mode 100644 index 000000000..2fbd34538 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/kimchi_095.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/kimchi_096.jpg b/ai_train/retrain/data/stain/val/images/kimchi_096.jpg new file mode 100644 index 000000000..88e9558ad Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/kimchi_096.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/lipstick_10.jpg b/ai_train/retrain/data/stain/val/images/lipstick_10.jpg new file mode 100644 index 000000000..6b9e4e6f0 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/lipstick_10.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/lipstick_16.jpg b/ai_train/retrain/data/stain/val/images/lipstick_16.jpg new file mode 100644 index 000000000..e8d3286d8 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/lipstick_16.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/lipstick_18.jpg b/ai_train/retrain/data/stain/val/images/lipstick_18.jpg new file mode 100644 index 000000000..2f0d0ef94 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/lipstick_18.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/lipstick_22.jpg b/ai_train/retrain/data/stain/val/images/lipstick_22.jpg new file mode 100644 index 000000000..2c8e6e371 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/lipstick_22.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/lipstick_31.jpg b/ai_train/retrain/data/stain/val/images/lipstick_31.jpg new file mode 100644 index 000000000..5375cd08f Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/lipstick_31.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/lipstick_4.jpg b/ai_train/retrain/data/stain/val/images/lipstick_4.jpg new file mode 100644 index 000000000..6203072f2 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/lipstick_4.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/lipstick_40.jpg b/ai_train/retrain/data/stain/val/images/lipstick_40.jpg new file mode 100644 index 000000000..6fb54771a Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/lipstick_40.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/lipstick_47.jpg b/ai_train/retrain/data/stain/val/images/lipstick_47.jpg new file mode 100644 index 000000000..6910cd5e2 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/lipstick_47.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/lipstick_50.jpg b/ai_train/retrain/data/stain/val/images/lipstick_50.jpg new file mode 100644 index 000000000..d3fcf4c29 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/lipstick_50.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/lipstick_51.jpg b/ai_train/retrain/data/stain/val/images/lipstick_51.jpg new file mode 100644 index 000000000..1ab7a11d5 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/lipstick_51.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/lipstick_52.jpg b/ai_train/retrain/data/stain/val/images/lipstick_52.jpg new file mode 100644 index 000000000..c67370055 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/lipstick_52.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/lipstick_54.jpg b/ai_train/retrain/data/stain/val/images/lipstick_54.jpg new file mode 100644 index 000000000..7c4e3f85a Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/lipstick_54.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/lipstick_59.jpg b/ai_train/retrain/data/stain/val/images/lipstick_59.jpg new file mode 100644 index 000000000..8a9bb3f34 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/lipstick_59.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/lipstick_60.jpg b/ai_train/retrain/data/stain/val/images/lipstick_60.jpg new file mode 100644 index 000000000..899efafea Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/lipstick_60.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/lipstick_66.jpg b/ai_train/retrain/data/stain/val/images/lipstick_66.jpg new file mode 100644 index 000000000..7bfb858f9 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/lipstick_66.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/lipstick_71.jpg b/ai_train/retrain/data/stain/val/images/lipstick_71.jpg new file mode 100644 index 000000000..a829edecd Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/lipstick_71.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/lipstick_8.jpg b/ai_train/retrain/data/stain/val/images/lipstick_8.jpg new file mode 100644 index 000000000..c090f683e Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/lipstick_8.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/lipstick_85.jpg b/ai_train/retrain/data/stain/val/images/lipstick_85.jpg new file mode 100644 index 000000000..d528d2a98 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/lipstick_85.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/lipstick_89.jpg b/ai_train/retrain/data/stain/val/images/lipstick_89.jpg new file mode 100644 index 000000000..329611d0d Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/lipstick_89.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/lipstick_90.jpg b/ai_train/retrain/data/stain/val/images/lipstick_90.jpg new file mode 100644 index 000000000..334b8577f Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/lipstick_90.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/lipstick_91.jpg b/ai_train/retrain/data/stain/val/images/lipstick_91.jpg new file mode 100644 index 000000000..109eef86f Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/lipstick_91.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/lipstick_93.jpg b/ai_train/retrain/data/stain/val/images/lipstick_93.jpg new file mode 100644 index 000000000..bc0e6d497 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/lipstick_93.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/mustard_003.jpg b/ai_train/retrain/data/stain/val/images/mustard_003.jpg new file mode 100644 index 000000000..7cbb083be Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/mustard_003.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/mustard_018.jpg b/ai_train/retrain/data/stain/val/images/mustard_018.jpg new file mode 100644 index 000000000..bce333ebb Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/mustard_018.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/mustard_024.jpg b/ai_train/retrain/data/stain/val/images/mustard_024.jpg new file mode 100644 index 000000000..08b233478 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/mustard_024.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/mustard_027.jpg b/ai_train/retrain/data/stain/val/images/mustard_027.jpg new file mode 100644 index 000000000..977978237 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/mustard_027.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/mustard_045.jpg b/ai_train/retrain/data/stain/val/images/mustard_045.jpg new file mode 100644 index 000000000..d6b439981 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/mustard_045.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/mustard_050.jpg b/ai_train/retrain/data/stain/val/images/mustard_050.jpg new file mode 100644 index 000000000..f439ad49a Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/mustard_050.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/mustard_051.jpg b/ai_train/retrain/data/stain/val/images/mustard_051.jpg new file mode 100644 index 000000000..394cb894e Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/mustard_051.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/mustard_053.jpg b/ai_train/retrain/data/stain/val/images/mustard_053.jpg new file mode 100644 index 000000000..fc44d03a3 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/mustard_053.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/mustard_054.jpg b/ai_train/retrain/data/stain/val/images/mustard_054.jpg new file mode 100644 index 000000000..7782f7e52 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/mustard_054.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/mustard_065.jpg b/ai_train/retrain/data/stain/val/images/mustard_065.jpg new file mode 100644 index 000000000..ed682ff66 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/mustard_065.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/mustard_066.jpg b/ai_train/retrain/data/stain/val/images/mustard_066.jpg new file mode 100644 index 000000000..8bb009b9b Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/mustard_066.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/mustard_074.jpg b/ai_train/retrain/data/stain/val/images/mustard_074.jpg new file mode 100644 index 000000000..dcf0f8a37 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/mustard_074.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/mustard_083.jpg b/ai_train/retrain/data/stain/val/images/mustard_083.jpg new file mode 100644 index 000000000..00c5ec612 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/mustard_083.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/mustard_084.jpg b/ai_train/retrain/data/stain/val/images/mustard_084.jpg new file mode 100644 index 000000000..32ec9625b Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/mustard_084.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/oil_001.jpg b/ai_train/retrain/data/stain/val/images/oil_001.jpg new file mode 100644 index 000000000..8ad0c8d20 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/oil_001.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/oil_003.jpg b/ai_train/retrain/data/stain/val/images/oil_003.jpg new file mode 100644 index 000000000..5ddaef445 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/oil_003.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/oil_013.jpg b/ai_train/retrain/data/stain/val/images/oil_013.jpg new file mode 100644 index 000000000..f61889c8d Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/oil_013.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/oil_015.jpg b/ai_train/retrain/data/stain/val/images/oil_015.jpg new file mode 100644 index 000000000..c0c482356 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/oil_015.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/oil_018.jpg b/ai_train/retrain/data/stain/val/images/oil_018.jpg new file mode 100644 index 000000000..04a795abe Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/oil_018.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/oil_022.jpg b/ai_train/retrain/data/stain/val/images/oil_022.jpg new file mode 100644 index 000000000..044a3e420 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/oil_022.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/oil_028.jpg b/ai_train/retrain/data/stain/val/images/oil_028.jpg new file mode 100644 index 000000000..54ff7383d Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/oil_028.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/oil_034.jpg b/ai_train/retrain/data/stain/val/images/oil_034.jpg new file mode 100644 index 000000000..2f1d22fe5 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/oil_034.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/oil_037.jpg b/ai_train/retrain/data/stain/val/images/oil_037.jpg new file mode 100644 index 000000000..b9706c1ab Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/oil_037.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/oil_077.jpg b/ai_train/retrain/data/stain/val/images/oil_077.jpg new file mode 100644 index 000000000..0745868ae Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/oil_077.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/oil_078.jpg b/ai_train/retrain/data/stain/val/images/oil_078.jpg new file mode 100644 index 000000000..1a7e7d0c7 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/oil_078.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/oil_079.jpg b/ai_train/retrain/data/stain/val/images/oil_079.jpg new file mode 100644 index 000000000..86fa54665 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/oil_079.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/oil_081.jpg b/ai_train/retrain/data/stain/val/images/oil_081.jpg new file mode 100644 index 000000000..4b68f4966 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/oil_081.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/oil_096.jpg b/ai_train/retrain/data/stain/val/images/oil_096.jpg new file mode 100644 index 000000000..21dacce37 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/oil_096.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_006.jpg b/ai_train/retrain/data/stain/val/images/wine_006.jpg new file mode 100644 index 000000000..da7970ed9 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_006.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_007.jpg b/ai_train/retrain/data/stain/val/images/wine_007.jpg new file mode 100644 index 000000000..9ad9cf0d9 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_007.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_023.jpg b/ai_train/retrain/data/stain/val/images/wine_023.jpg new file mode 100644 index 000000000..8a9add6ab Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_023.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_025.jpg b/ai_train/retrain/data/stain/val/images/wine_025.jpg new file mode 100644 index 000000000..48daae3c6 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_025.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_026.jpg b/ai_train/retrain/data/stain/val/images/wine_026.jpg new file mode 100644 index 000000000..96e3b1fe5 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_026.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_027.jpg b/ai_train/retrain/data/stain/val/images/wine_027.jpg new file mode 100644 index 000000000..b76baed26 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_027.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_032.jpg b/ai_train/retrain/data/stain/val/images/wine_032.jpg new file mode 100644 index 000000000..1c78eaec0 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_032.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_044.jpg b/ai_train/retrain/data/stain/val/images/wine_044.jpg new file mode 100644 index 000000000..c8f0ead2e Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_044.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_049.jpg b/ai_train/retrain/data/stain/val/images/wine_049.jpg new file mode 100644 index 000000000..b625c467d Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_049.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_051.jpg b/ai_train/retrain/data/stain/val/images/wine_051.jpg new file mode 100644 index 000000000..b0cf8b3a6 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_051.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_052.jpg b/ai_train/retrain/data/stain/val/images/wine_052.jpg new file mode 100644 index 000000000..07090e38b Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_052.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_053.jpg b/ai_train/retrain/data/stain/val/images/wine_053.jpg new file mode 100644 index 000000000..7e7b4b9a6 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_053.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_055.jpg b/ai_train/retrain/data/stain/val/images/wine_055.jpg new file mode 100644 index 000000000..158220ee5 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_055.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_057.jpg b/ai_train/retrain/data/stain/val/images/wine_057.jpg new file mode 100644 index 000000000..8868a26dd Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_057.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_062.jpg b/ai_train/retrain/data/stain/val/images/wine_062.jpg new file mode 100644 index 000000000..a52a6d2b2 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_062.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_068.jpg b/ai_train/retrain/data/stain/val/images/wine_068.jpg new file mode 100644 index 000000000..ada1325ae Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_068.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_072.jpg b/ai_train/retrain/data/stain/val/images/wine_072.jpg new file mode 100644 index 000000000..9f59031d4 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_072.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_074.jpg b/ai_train/retrain/data/stain/val/images/wine_074.jpg new file mode 100644 index 000000000..8d66ecc8b Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_074.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_077.jpg b/ai_train/retrain/data/stain/val/images/wine_077.jpg new file mode 100644 index 000000000..c8b6b3393 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_077.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_082.jpg b/ai_train/retrain/data/stain/val/images/wine_082.jpg new file mode 100644 index 000000000..ae8067ad1 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_082.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_083.jpg b/ai_train/retrain/data/stain/val/images/wine_083.jpg new file mode 100644 index 000000000..8e515ef5d Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_083.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_086.jpg b/ai_train/retrain/data/stain/val/images/wine_086.jpg new file mode 100644 index 000000000..5ab3117a0 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_086.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_091.jpg b/ai_train/retrain/data/stain/val/images/wine_091.jpg new file mode 100644 index 000000000..213965a25 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_091.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_093.jpg b/ai_train/retrain/data/stain/val/images/wine_093.jpg new file mode 100644 index 000000000..e05102e11 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_093.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_095.jpg b/ai_train/retrain/data/stain/val/images/wine_095.jpg new file mode 100644 index 000000000..dc5d40af2 Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_095.jpg differ diff --git a/ai_train/retrain/data/stain/val/images/wine_099.jpg b/ai_train/retrain/data/stain/val/images/wine_099.jpg new file mode 100644 index 000000000..1caa340ca Binary files /dev/null and b/ai_train/retrain/data/stain/val/images/wine_099.jpg differ diff --git a/ai_train/retrain/data/stain/val/labels.cache b/ai_train/retrain/data/stain/val/labels.cache new file mode 100644 index 000000000..0034fd533 Binary files /dev/null and b/ai_train/retrain/data/stain/val/labels.cache differ diff --git a/ai_train/retrain/data/stain/val/labels/blood_005.txt b/ai_train/retrain/data/stain/val/labels/blood_005.txt new file mode 100644 index 000000000..9a617ce88 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/blood_005.txt @@ -0,0 +1 @@ +0 0.446094 0.534375 0.545312 0.553125 diff --git a/ai_train/retrain/data/stain/val/labels/blood_008.txt b/ai_train/retrain/data/stain/val/labels/blood_008.txt new file mode 100644 index 000000000..ce92fa6a5 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/blood_008.txt @@ -0,0 +1,4 @@ +0 0.600781 0.550000 0.264062 0.384375 +0 0.303125 0.544531 0.250000 0.239063 +0 0.728125 0.037500 0.075000 0.065625 +0 0.166406 0.765625 0.132812 0.121875 diff --git a/ai_train/retrain/data/stain/val/labels/blood_013.txt b/ai_train/retrain/data/stain/val/labels/blood_013.txt new file mode 100644 index 000000000..b45937a18 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/blood_013.txt @@ -0,0 +1,5 @@ +0 0.414844 0.459375 0.064062 0.146875 +0 0.520312 0.294531 0.065625 0.064062 +0 0.525781 0.389062 0.042188 0.062500 +0 0.576562 0.240625 0.021875 0.046875 +0 0.528906 0.171094 0.026562 0.039062 diff --git a/ai_train/retrain/data/stain/val/labels/blood_027.txt b/ai_train/retrain/data/stain/val/labels/blood_027.txt new file mode 100644 index 000000000..88cb2b975 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/blood_027.txt @@ -0,0 +1,4 @@ +0 0.540000 0.538251 0.076364 0.136612 +0 0.454545 0.707650 0.072727 0.147541 +0 0.463636 0.565574 0.047273 0.114754 +0 0.240000 0.284153 0.043636 0.032787 diff --git a/ai_train/retrain/data/stain/val/labels/blood_029.txt b/ai_train/retrain/data/stain/val/labels/blood_029.txt new file mode 100644 index 000000000..85643ed55 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/blood_029.txt @@ -0,0 +1,2 @@ +0 0.343511 0.489583 0.244275 0.281250 +0 0.656489 0.382812 0.282443 0.348958 diff --git a/ai_train/retrain/data/stain/val/labels/blood_034.txt b/ai_train/retrain/data/stain/val/labels/blood_034.txt new file mode 100644 index 000000000..2a1bae876 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/blood_034.txt @@ -0,0 +1,3 @@ +0 0.593156 0.486979 0.076046 0.078125 +0 0.486692 0.458333 0.091255 0.125000 +0 0.602662 0.653646 0.087452 0.057292 diff --git a/ai_train/retrain/data/stain/val/labels/blood_036.txt b/ai_train/retrain/data/stain/val/labels/blood_036.txt new file mode 100644 index 000000000..49351c4b9 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/blood_036.txt @@ -0,0 +1 @@ +0 0.637405 0.326425 0.274809 0.279793 diff --git a/ai_train/retrain/data/stain/val/labels/blood_048.txt b/ai_train/retrain/data/stain/val/labels/blood_048.txt new file mode 100644 index 000000000..6c46c4d4f --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/blood_048.txt @@ -0,0 +1 @@ +0 0.566794 0.455729 0.270992 0.338542 diff --git a/ai_train/retrain/data/stain/val/labels/blood_050.txt b/ai_train/retrain/data/stain/val/labels/blood_050.txt new file mode 100644 index 000000000..3fb369156 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/blood_050.txt @@ -0,0 +1,3 @@ +0 0.495000 0.351190 0.120000 0.075397 +0 0.407500 0.263889 0.045000 0.035714 +0 0.432500 0.708333 0.095000 0.075397 diff --git a/ai_train/retrain/data/stain/val/labels/blood_052.txt b/ai_train/retrain/data/stain/val/labels/blood_052.txt new file mode 100644 index 000000000..5d0249ee0 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/blood_052.txt @@ -0,0 +1 @@ +0 0.498333 0.577381 0.123333 0.250000 diff --git a/ai_train/retrain/data/stain/val/labels/blood_061.txt b/ai_train/retrain/data/stain/val/labels/blood_061.txt new file mode 100644 index 000000000..594747de8 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/blood_061.txt @@ -0,0 +1 @@ +0 0.450909 0.486339 0.727273 0.655738 diff --git a/ai_train/retrain/data/stain/val/labels/blood_069.txt b/ai_train/retrain/data/stain/val/labels/blood_069.txt new file mode 100644 index 000000000..338999d9c --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/blood_069.txt @@ -0,0 +1 @@ +0 0.477178 0.413876 0.091286 0.081340 diff --git a/ai_train/retrain/data/stain/val/labels/blood_071.txt b/ai_train/retrain/data/stain/val/labels/blood_071.txt new file mode 100644 index 000000000..96e068191 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/blood_071.txt @@ -0,0 +1,6 @@ +0 0.862069 0.367816 0.151724 0.252874 +0 0.817241 0.876437 0.220690 0.247126 +0 0.375862 0.583333 0.641379 0.649425 +0 0.610345 0.045977 0.151724 0.080460 +0 0.977586 0.301724 0.044828 0.120690 +0 0.818966 0.551724 0.113793 0.080460 diff --git a/ai_train/retrain/data/stain/val/labels/blood_075.txt b/ai_train/retrain/data/stain/val/labels/blood_075.txt new file mode 100644 index 000000000..098e8feab --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/blood_075.txt @@ -0,0 +1,3 @@ +0 0.692460 0.750000 0.059524 0.060000 +0 0.845238 0.487500 0.039683 0.065000 +0 0.779762 0.575000 0.043651 0.090000 diff --git a/ai_train/retrain/data/stain/val/labels/blood_077.txt b/ai_train/retrain/data/stain/val/labels/blood_077.txt new file mode 100644 index 000000000..6488a6fc3 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/blood_077.txt @@ -0,0 +1,3 @@ +0 0.346021 0.480000 0.145329 0.137143 +0 0.553633 0.602857 0.089965 0.108571 +0 0.638408 0.394286 0.058824 0.091429 diff --git a/ai_train/retrain/data/stain/val/labels/blood_084.txt b/ai_train/retrain/data/stain/val/labels/blood_084.txt new file mode 100644 index 000000000..4df49b89f --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/blood_084.txt @@ -0,0 +1,4 @@ +0 0.232727 0.491803 0.087273 0.153005 +0 0.396364 0.513661 0.123636 0.153005 +0 0.340000 0.685792 0.120000 0.169399 +0 0.214545 0.721311 0.101818 0.120219 diff --git a/ai_train/retrain/data/stain/val/labels/blood_085.txt b/ai_train/retrain/data/stain/val/labels/blood_085.txt new file mode 100644 index 000000000..358c2cd15 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/blood_085.txt @@ -0,0 +1,2 @@ +0 0.547273 0.497268 0.090909 0.262295 +0 0.518182 0.825137 0.134545 0.338798 diff --git a/ai_train/retrain/data/stain/val/labels/blood_093.txt b/ai_train/retrain/data/stain/val/labels/blood_093.txt new file mode 100644 index 000000000..cc5368f41 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/blood_093.txt @@ -0,0 +1,4 @@ +0 0.432990 0.498069 0.051546 0.123552 +0 0.543814 0.306950 0.067010 0.034749 +0 0.670103 0.250965 0.072165 0.061776 +0 0.726804 0.324324 0.051546 0.038610 diff --git a/ai_train/retrain/data/stain/val/labels/blood_097.txt b/ai_train/retrain/data/stain/val/labels/blood_097.txt new file mode 100644 index 000000000..b083d6e76 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/blood_097.txt @@ -0,0 +1,3 @@ +0 0.540000 0.560109 0.156364 0.224044 +0 0.743636 0.565574 0.170909 0.497268 +0 0.796364 0.254098 0.072727 0.125683 diff --git a/ai_train/retrain/data/stain/val/labels/blood_099.txt b/ai_train/retrain/data/stain/val/labels/blood_099.txt new file mode 100644 index 000000000..649dc6f05 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/blood_099.txt @@ -0,0 +1,2 @@ +0 0.417526 0.306950 0.268041 0.235521 +0 0.615979 0.548263 0.283505 0.223938 diff --git a/ai_train/retrain/data/stain/val/labels/coffee_001.txt b/ai_train/retrain/data/stain/val/labels/coffee_001.txt new file mode 100644 index 000000000..b7acbad9c --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/coffee_001.txt @@ -0,0 +1 @@ +1 0.282609 0.538690 0.150502 0.363095 diff --git a/ai_train/retrain/data/stain/val/labels/coffee_005.txt b/ai_train/retrain/data/stain/val/labels/coffee_005.txt new file mode 100644 index 000000000..bd542fb86 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/coffee_005.txt @@ -0,0 +1 @@ +1 0.195423 0.646893 0.214789 0.310734 diff --git a/ai_train/retrain/data/stain/val/labels/coffee_010.txt b/ai_train/retrain/data/stain/val/labels/coffee_010.txt new file mode 100644 index 000000000..2c9acdbf8 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/coffee_010.txt @@ -0,0 +1 @@ +1 0.669091 0.532787 0.254545 0.879781 diff --git a/ai_train/retrain/data/stain/val/labels/coffee_011.txt b/ai_train/retrain/data/stain/val/labels/coffee_011.txt new file mode 100644 index 000000000..d059c24b8 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/coffee_011.txt @@ -0,0 +1 @@ +1 0.554054 0.365639 0.108108 0.123348 diff --git a/ai_train/retrain/data/stain/val/labels/coffee_019.txt b/ai_train/retrain/data/stain/val/labels/coffee_019.txt new file mode 100644 index 000000000..552b7a320 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/coffee_019.txt @@ -0,0 +1 @@ +1 0.091525 0.163743 0.074576 0.233918 diff --git a/ai_train/retrain/data/stain/val/labels/coffee_021.txt b/ai_train/retrain/data/stain/val/labels/coffee_021.txt new file mode 100644 index 000000000..dbb113b95 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/coffee_021.txt @@ -0,0 +1 @@ +1 0.330909 0.215847 0.065455 0.213115 diff --git a/ai_train/retrain/data/stain/val/labels/coffee_024.txt b/ai_train/retrain/data/stain/val/labels/coffee_024.txt new file mode 100644 index 000000000..1fbb1d488 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/coffee_024.txt @@ -0,0 +1,2 @@ +1 0.543750 0.631250 0.062500 0.100000 +1 0.450000 0.691406 0.096875 0.110937 diff --git a/ai_train/retrain/data/stain/val/labels/coffee_035.txt b/ai_train/retrain/data/stain/val/labels/coffee_035.txt new file mode 100644 index 000000000..33a32f482 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/coffee_035.txt @@ -0,0 +1,4 @@ +1 0.822115 0.206731 0.110577 0.149038 +1 0.655048 0.259615 0.117788 0.216346 +1 0.789663 0.677885 0.161058 0.096154 +1 0.901442 0.532452 0.062500 0.209135 diff --git a/ai_train/retrain/data/stain/val/labels/coffee_050.txt b/ai_train/retrain/data/stain/val/labels/coffee_050.txt new file mode 100644 index 000000000..fc23e5c9b --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/coffee_050.txt @@ -0,0 +1,2 @@ +1 0.632212 0.645433 0.274038 0.242788 +1 0.758413 0.456731 0.209135 0.105769 diff --git a/ai_train/retrain/data/stain/val/labels/coffee_051.txt b/ai_train/retrain/data/stain/val/labels/coffee_051.txt new file mode 100644 index 000000000..bc4e596b8 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/coffee_051.txt @@ -0,0 +1,2 @@ +1 0.840144 0.754808 0.185096 0.134615 +1 0.804087 0.890625 0.112981 0.112981 diff --git a/ai_train/retrain/data/stain/val/labels/coffee_055.txt b/ai_train/retrain/data/stain/val/labels/coffee_055.txt new file mode 100644 index 000000000..ced5e1f09 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/coffee_055.txt @@ -0,0 +1 @@ +1 0.768029 0.370192 0.079327 0.125000 diff --git a/ai_train/retrain/data/stain/val/labels/coffee_067.txt b/ai_train/retrain/data/stain/val/labels/coffee_067.txt new file mode 100644 index 000000000..7bb3cce1a --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/coffee_067.txt @@ -0,0 +1,3 @@ +1 0.753606 0.418269 0.218750 0.115385 +1 0.635817 0.313702 0.060096 0.074519 +1 0.721154 0.520433 0.100962 0.064904 diff --git a/ai_train/retrain/data/stain/val/labels/coffee_070.txt b/ai_train/retrain/data/stain/val/labels/coffee_070.txt new file mode 100644 index 000000000..1552e3645 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/coffee_070.txt @@ -0,0 +1,3 @@ +1 0.475962 0.378606 0.144231 0.156250 +1 0.508413 0.593750 0.151442 0.129808 +1 0.461538 0.813702 0.100962 0.084135 diff --git a/ai_train/retrain/data/stain/val/labels/coffee_072.txt b/ai_train/retrain/data/stain/val/labels/coffee_072.txt new file mode 100644 index 000000000..545b7370e --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/coffee_072.txt @@ -0,0 +1 @@ +1 0.651442 0.718750 0.100962 0.091346 diff --git a/ai_train/retrain/data/stain/val/labels/coffee_075.txt b/ai_train/retrain/data/stain/val/labels/coffee_075.txt new file mode 100644 index 000000000..cca24f65b --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/coffee_075.txt @@ -0,0 +1,7 @@ +1 0.558894 0.510817 0.040865 0.069712 +1 0.622596 0.389423 0.048077 0.163462 +1 0.545673 0.342548 0.024038 0.026442 +1 0.362981 0.355769 0.038462 0.024038 +1 0.324519 0.554087 0.024038 0.031250 +1 0.325721 0.685096 0.026442 0.028846 +1 0.388221 0.259615 0.060096 0.052885 diff --git a/ai_train/retrain/data/stain/val/labels/coffee_078.txt b/ai_train/retrain/data/stain/val/labels/coffee_078.txt new file mode 100644 index 000000000..58c4a26cc --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/coffee_078.txt @@ -0,0 +1 @@ +1 0.656250 0.395433 0.182692 0.194712 diff --git a/ai_train/retrain/data/stain/val/labels/coffee_079.txt b/ai_train/retrain/data/stain/val/labels/coffee_079.txt new file mode 100644 index 000000000..263f8bb94 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/coffee_079.txt @@ -0,0 +1,2 @@ +1 0.602163 0.290865 0.084135 0.158654 +1 0.480769 0.342548 0.057692 0.112981 diff --git a/ai_train/retrain/data/stain/val/labels/coffee_087.txt b/ai_train/retrain/data/stain/val/labels/coffee_087.txt new file mode 100644 index 000000000..e9bee8d65 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/coffee_087.txt @@ -0,0 +1,2 @@ +1 0.580529 0.772837 0.262019 0.132212 +1 0.912260 0.544471 0.098558 0.074519 diff --git a/ai_train/retrain/data/stain/val/labels/earth_109.txt b/ai_train/retrain/data/stain/val/labels/earth_109.txt new file mode 100644 index 000000000..8d7300553 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_109.txt @@ -0,0 +1,4 @@ +2 0.408879 0.625000 0.079439 0.131356 +2 0.621495 0.622881 0.074766 0.127119 +2 0.338785 0.489407 0.070093 0.122881 +2 0.738318 0.512712 0.037383 0.076271 diff --git a/ai_train/retrain/data/stain/val/labels/earth_115.txt b/ai_train/retrain/data/stain/val/labels/earth_115.txt new file mode 100644 index 000000000..0875b40bb --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_115.txt @@ -0,0 +1,4 @@ +2 0.708763 0.291506 0.139175 0.096525 +2 0.884021 0.418919 0.097938 0.166023 +2 0.595361 0.555985 0.108247 0.077220 +2 0.530928 0.461390 0.061856 0.073359 diff --git a/ai_train/retrain/data/stain/val/labels/earth_125.txt b/ai_train/retrain/data/stain/val/labels/earth_125.txt new file mode 100644 index 000000000..0337a902d --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_125.txt @@ -0,0 +1,2 @@ +2 0.427273 0.513661 0.301818 0.218579 +2 0.343636 0.677596 0.105455 0.087432 diff --git a/ai_train/retrain/data/stain/val/labels/earth_127.txt b/ai_train/retrain/data/stain/val/labels/earth_127.txt new file mode 100644 index 000000000..5ef9c0b95 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_127.txt @@ -0,0 +1,3 @@ +2 0.429260 0.543210 0.073955 0.308642 +2 0.665595 0.614198 0.070740 0.277778 +2 0.350482 0.509259 0.025723 0.104938 diff --git a/ai_train/retrain/data/stain/val/labels/earth_128.txt b/ai_train/retrain/data/stain/val/labels/earth_128.txt new file mode 100644 index 000000000..195e82a91 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_128.txt @@ -0,0 +1,2 @@ +2 0.738095 0.545000 0.095238 0.083333 +2 0.279762 0.523333 0.083333 0.080000 diff --git a/ai_train/retrain/data/stain/val/labels/earth_130.txt b/ai_train/retrain/data/stain/val/labels/earth_130.txt new file mode 100644 index 000000000..ddb7a6805 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_130.txt @@ -0,0 +1,2 @@ +2 0.240000 0.593333 0.222222 0.191111 +2 0.777778 0.480000 0.231111 0.364444 diff --git a/ai_train/retrain/data/stain/val/labels/earth_133.txt b/ai_train/retrain/data/stain/val/labels/earth_133.txt new file mode 100644 index 000000000..208f9a658 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_133.txt @@ -0,0 +1,7 @@ +2 0.536260 0.791667 0.103053 0.156250 +2 0.509542 0.914062 0.087786 0.067708 +2 0.698473 0.533854 0.083969 0.109375 +2 0.458015 0.778646 0.030534 0.067708 +2 0.425573 0.830729 0.034351 0.046875 +2 0.633588 0.979167 0.045802 0.041667 +2 0.204198 0.583333 0.072519 0.062500 diff --git a/ai_train/retrain/data/stain/val/labels/earth_134.txt b/ai_train/retrain/data/stain/val/labels/earth_134.txt new file mode 100644 index 000000000..26e2d99fe --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_134.txt @@ -0,0 +1,2 @@ +2 0.341818 0.896175 0.116364 0.207650 +2 0.472727 0.945355 0.036364 0.098361 diff --git a/ai_train/retrain/data/stain/val/labels/earth_135.txt b/ai_train/retrain/data/stain/val/labels/earth_135.txt new file mode 100644 index 000000000..9c66113b5 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_135.txt @@ -0,0 +1,2 @@ +2 0.416667 0.398810 0.073333 0.369048 +2 0.661667 0.473214 0.063333 0.208333 diff --git a/ai_train/retrain/data/stain/val/labels/earth_138.txt b/ai_train/retrain/data/stain/val/labels/earth_138.txt new file mode 100644 index 000000000..c5c13aab4 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_138.txt @@ -0,0 +1,5 @@ +2 0.330909 0.057377 0.116364 0.103825 +2 0.532727 0.062842 0.112727 0.114754 +2 0.641818 0.155738 0.069091 0.125683 +2 0.698182 0.584699 0.050909 0.065574 +2 0.214545 0.857923 0.240000 0.218579 diff --git a/ai_train/retrain/data/stain/val/labels/earth_142.txt b/ai_train/retrain/data/stain/val/labels/earth_142.txt new file mode 100644 index 000000000..8a6e1b4f0 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_142.txt @@ -0,0 +1 @@ +2 0.505618 0.743386 0.284644 0.386243 diff --git a/ai_train/retrain/data/stain/val/labels/earth_143.txt b/ai_train/retrain/data/stain/val/labels/earth_143.txt new file mode 100644 index 000000000..25c5dfe25 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_143.txt @@ -0,0 +1 @@ +2 0.503636 0.538251 0.134545 0.224044 diff --git a/ai_train/retrain/data/stain/val/labels/earth_147.txt b/ai_train/retrain/data/stain/val/labels/earth_147.txt new file mode 100644 index 000000000..bca96fef3 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_147.txt @@ -0,0 +1 @@ +2 0.698997 0.205357 0.086957 0.184524 diff --git a/ai_train/retrain/data/stain/val/labels/earth_19.txt b/ai_train/retrain/data/stain/val/labels/earth_19.txt new file mode 100644 index 000000000..86de398fb --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_19.txt @@ -0,0 +1 @@ +2 0.488679 0.384211 0.147170 0.284211 diff --git a/ai_train/retrain/data/stain/val/labels/earth_20.txt b/ai_train/retrain/data/stain/val/labels/earth_20.txt new file mode 100644 index 000000000..84258d80f --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_20.txt @@ -0,0 +1 @@ +2 0.666023 0.471649 0.088803 0.139175 diff --git a/ai_train/retrain/data/stain/val/labels/earth_25.txt b/ai_train/retrain/data/stain/val/labels/earth_25.txt new file mode 100644 index 000000000..69b1865d9 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_25.txt @@ -0,0 +1,2 @@ +2 0.478333 0.574405 0.056667 0.148810 +2 0.325000 0.607143 0.070000 0.154762 diff --git a/ai_train/retrain/data/stain/val/labels/earth_36.txt b/ai_train/retrain/data/stain/val/labels/earth_36.txt new file mode 100644 index 000000000..881d478e9 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_36.txt @@ -0,0 +1,2 @@ +2 0.352830 0.368421 0.056604 0.189474 +2 0.743396 0.534211 0.075472 0.173684 diff --git a/ai_train/retrain/data/stain/val/labels/earth_37.txt b/ai_train/retrain/data/stain/val/labels/earth_37.txt new file mode 100644 index 000000000..f08cc9982 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_37.txt @@ -0,0 +1,4 @@ +2 0.366667 0.542411 0.040000 0.049107 +2 0.502222 0.571429 0.017778 0.044643 +2 0.477778 0.616071 0.031111 0.026786 +2 0.542222 0.580357 0.026667 0.026786 diff --git a/ai_train/retrain/data/stain/val/labels/earth_38.txt b/ai_train/retrain/data/stain/val/labels/earth_38.txt new file mode 100644 index 000000000..c76db3c4c --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_38.txt @@ -0,0 +1,6 @@ +2 0.183636 0.357923 0.156364 0.224044 +2 0.563636 0.871585 0.320000 0.256831 +2 0.925455 0.267760 0.120000 0.196721 +2 0.785455 0.442623 0.072727 0.262295 +2 0.660000 0.065574 0.105455 0.120219 +2 0.534545 0.267760 0.174545 0.174863 diff --git a/ai_train/retrain/data/stain/val/labels/earth_4.txt b/ai_train/retrain/data/stain/val/labels/earth_4.txt new file mode 100644 index 000000000..ca2ce4ad8 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_4.txt @@ -0,0 +1,2 @@ +2 0.670968 0.496933 0.103226 0.134969 +2 0.874194 0.582822 0.083871 0.171779 diff --git a/ai_train/retrain/data/stain/val/labels/earth_40.txt b/ai_train/retrain/data/stain/val/labels/earth_40.txt new file mode 100644 index 000000000..1097165a5 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_40.txt @@ -0,0 +1,2 @@ +2 0.590909 0.379781 0.069091 0.125683 +2 0.101818 0.636612 0.065455 0.158470 diff --git a/ai_train/retrain/data/stain/val/labels/earth_42.txt b/ai_train/retrain/data/stain/val/labels/earth_42.txt new file mode 100644 index 000000000..8f2836417 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_42.txt @@ -0,0 +1 @@ +2 0.503448 0.511494 0.131034 0.310345 diff --git a/ai_train/retrain/data/stain/val/labels/earth_47.txt b/ai_train/retrain/data/stain/val/labels/earth_47.txt new file mode 100644 index 000000000..77d4010db --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_47.txt @@ -0,0 +1,2 @@ +2 0.420755 0.194737 0.056604 0.126316 +2 0.773585 0.155263 0.045283 0.100000 diff --git a/ai_train/retrain/data/stain/val/labels/earth_5.txt b/ai_train/retrain/data/stain/val/labels/earth_5.txt new file mode 100644 index 000000000..f9ec9be66 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_5.txt @@ -0,0 +1 @@ +2 0.604247 0.530928 0.212355 0.309278 diff --git a/ai_train/retrain/data/stain/val/labels/earth_60.txt b/ai_train/retrain/data/stain/val/labels/earth_60.txt new file mode 100644 index 000000000..8764c8b44 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_60.txt @@ -0,0 +1,2 @@ +2 0.505000 0.544643 0.063333 0.101190 +2 0.400000 0.491071 0.046667 0.065476 diff --git a/ai_train/retrain/data/stain/val/labels/earth_64.txt b/ai_train/retrain/data/stain/val/labels/earth_64.txt new file mode 100644 index 000000000..a0ec2a450 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_64.txt @@ -0,0 +1,2 @@ +2 0.200000 0.666667 0.046667 0.107143 +2 0.770000 0.836310 0.073333 0.136905 diff --git a/ai_train/retrain/data/stain/val/labels/earth_84.txt b/ai_train/retrain/data/stain/val/labels/earth_84.txt new file mode 100644 index 000000000..db0d0ba4e --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_84.txt @@ -0,0 +1 @@ +2 0.518333 0.422619 0.223333 0.226190 diff --git a/ai_train/retrain/data/stain/val/labels/earth_85.txt b/ai_train/retrain/data/stain/val/labels/earth_85.txt new file mode 100644 index 000000000..9a570f3f5 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_85.txt @@ -0,0 +1,5 @@ +2 0.271795 0.488372 0.112821 0.116279 +2 0.258974 0.116279 0.117949 0.062016 +2 0.612821 0.255814 0.087179 0.062016 +2 0.671795 0.449612 0.102564 0.054264 +2 0.266667 0.286822 0.071795 0.077519 diff --git a/ai_train/retrain/data/stain/val/labels/earth_93.txt b/ai_train/retrain/data/stain/val/labels/earth_93.txt new file mode 100644 index 000000000..80762832b --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/earth_93.txt @@ -0,0 +1,3 @@ +2 0.656364 0.551913 0.207273 0.327869 +2 0.481818 0.625683 0.112727 0.333333 +2 0.358182 0.658470 0.105455 0.147541 diff --git a/ai_train/retrain/data/stain/val/labels/ink_008.txt b/ai_train/retrain/data/stain/val/labels/ink_008.txt new file mode 100644 index 000000000..836dbe9f5 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/ink_008.txt @@ -0,0 +1 @@ +3 0.514706 0.612903 0.080882 0.182796 diff --git a/ai_train/retrain/data/stain/val/labels/ink_013.txt b/ai_train/retrain/data/stain/val/labels/ink_013.txt new file mode 100644 index 000000000..5b2627cc1 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/ink_013.txt @@ -0,0 +1 @@ +3 0.285455 0.352459 0.083636 0.092896 diff --git a/ai_train/retrain/data/stain/val/labels/ink_018.txt b/ai_train/retrain/data/stain/val/labels/ink_018.txt new file mode 100644 index 000000000..e3ada1850 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/ink_018.txt @@ -0,0 +1 @@ +3 0.748188 0.434426 0.228261 0.278689 diff --git a/ai_train/retrain/data/stain/val/labels/ink_033.txt b/ai_train/retrain/data/stain/val/labels/ink_033.txt new file mode 100644 index 000000000..d96b1564f --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/ink_033.txt @@ -0,0 +1 @@ +3 0.478448 0.344828 0.071839 0.151724 diff --git a/ai_train/retrain/data/stain/val/labels/ink_037.txt b/ai_train/retrain/data/stain/val/labels/ink_037.txt new file mode 100644 index 000000000..0e35d4e02 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/ink_037.txt @@ -0,0 +1 @@ +3 0.662116 0.462209 0.129693 0.156977 diff --git a/ai_train/retrain/data/stain/val/labels/ink_041.txt b/ai_train/retrain/data/stain/val/labels/ink_041.txt new file mode 100644 index 000000000..1ada053a6 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/ink_041.txt @@ -0,0 +1 @@ +3 0.721992 0.461722 0.024896 0.033493 diff --git a/ai_train/retrain/data/stain/val/labels/ink_044.txt b/ai_train/retrain/data/stain/val/labels/ink_044.txt new file mode 100644 index 000000000..8496d8d53 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/ink_044.txt @@ -0,0 +1 @@ +3 0.464883 0.824405 0.073579 0.184524 diff --git a/ai_train/retrain/data/stain/val/labels/ink_052.txt b/ai_train/retrain/data/stain/val/labels/ink_052.txt new file mode 100644 index 000000000..2658073e7 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/ink_052.txt @@ -0,0 +1 @@ +3 0.482692 0.837629 0.157692 0.077320 diff --git a/ai_train/retrain/data/stain/val/labels/ink_061.txt b/ai_train/retrain/data/stain/val/labels/ink_061.txt new file mode 100644 index 000000000..0853a3570 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/ink_061.txt @@ -0,0 +1 @@ +3 0.636364 0.631148 0.210909 0.311475 diff --git a/ai_train/retrain/data/stain/val/labels/ink_062.txt b/ai_train/retrain/data/stain/val/labels/ink_062.txt new file mode 100644 index 000000000..22cf2f2a9 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/ink_062.txt @@ -0,0 +1 @@ +3 0.460000 0.464481 0.120000 0.131148 diff --git a/ai_train/retrain/data/stain/val/labels/ink_063.txt b/ai_train/retrain/data/stain/val/labels/ink_063.txt new file mode 100644 index 000000000..74c6a05fc --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/ink_063.txt @@ -0,0 +1 @@ +3 0.742222 0.828889 0.133333 0.128889 diff --git a/ai_train/retrain/data/stain/val/labels/ink_065.txt b/ai_train/retrain/data/stain/val/labels/ink_065.txt new file mode 100644 index 000000000..da663a9ed --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/ink_065.txt @@ -0,0 +1 @@ +3 0.529963 0.441489 0.123596 0.138298 diff --git a/ai_train/retrain/data/stain/val/labels/ink_069.txt b/ai_train/retrain/data/stain/val/labels/ink_069.txt new file mode 100644 index 000000000..3379b646b --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/ink_069.txt @@ -0,0 +1 @@ +3 0.490909 0.546448 0.058182 0.076503 diff --git a/ai_train/retrain/data/stain/val/labels/ink_083.txt b/ai_train/retrain/data/stain/val/labels/ink_083.txt new file mode 100644 index 000000000..105b3ce09 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/ink_083.txt @@ -0,0 +1,2 @@ +3 0.610825 0.447876 0.149485 0.092664 +3 0.590206 0.577220 0.149485 0.142857 diff --git a/ai_train/retrain/data/stain/val/labels/ink_086.txt b/ai_train/retrain/data/stain/val/labels/ink_086.txt new file mode 100644 index 000000000..22d222b8b --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/ink_086.txt @@ -0,0 +1,7 @@ +3 0.536082 0.362934 0.061856 0.038610 +3 0.603093 0.416988 0.041237 0.030888 +3 0.592784 0.619691 0.092784 0.111969 +3 0.530928 0.779923 0.051546 0.038610 +3 0.515464 0.861004 0.041237 0.054054 +3 0.414948 0.291506 0.077320 0.027027 +3 0.559278 0.293436 0.046392 0.030888 diff --git a/ai_train/retrain/data/stain/val/labels/ink_088.txt b/ai_train/retrain/data/stain/val/labels/ink_088.txt new file mode 100644 index 000000000..639eb16d9 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/ink_088.txt @@ -0,0 +1,3 @@ +3 0.567010 0.438224 0.041237 0.034749 +3 0.551546 0.625483 0.061856 0.038610 +3 0.525773 0.777992 0.103093 0.065637 diff --git a/ai_train/retrain/data/stain/val/labels/kimchi_003.txt b/ai_train/retrain/data/stain/val/labels/kimchi_003.txt new file mode 100644 index 000000000..441b53d2e --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/kimchi_003.txt @@ -0,0 +1,9 @@ +4 0.216406 0.124219 0.032813 0.032813 +4 0.289062 0.312500 0.028125 0.021875 +4 0.521094 0.207813 0.026562 0.028125 +4 0.521875 0.287500 0.028125 0.034375 +4 0.648438 0.393750 0.059375 0.065625 +4 0.614062 0.489844 0.100000 0.092188 +4 0.328906 0.643750 0.307812 0.312500 +4 0.259375 0.886719 0.056250 0.035937 +4 0.362500 0.872656 0.062500 0.042188 diff --git a/ai_train/retrain/data/stain/val/labels/kimchi_009.txt b/ai_train/retrain/data/stain/val/labels/kimchi_009.txt new file mode 100644 index 000000000..b75d0a4af --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/kimchi_009.txt @@ -0,0 +1,2 @@ +4 0.451562 0.432031 0.262500 0.242188 +4 0.514062 0.615625 0.106250 0.078125 diff --git a/ai_train/retrain/data/stain/val/labels/kimchi_013.txt b/ai_train/retrain/data/stain/val/labels/kimchi_013.txt new file mode 100644 index 000000000..c255e374e --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/kimchi_013.txt @@ -0,0 +1,4 @@ +4 0.417969 0.293750 0.129688 0.090625 +4 0.463281 0.430469 0.204687 0.151562 +4 0.268750 0.419531 0.125000 0.064062 +4 0.701562 0.614062 0.056250 0.062500 diff --git a/ai_train/retrain/data/stain/val/labels/kimchi_033.txt b/ai_train/retrain/data/stain/val/labels/kimchi_033.txt new file mode 100644 index 000000000..eaca11d51 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/kimchi_033.txt @@ -0,0 +1,9 @@ +4 0.442308 0.360577 0.091346 0.076923 +4 0.588942 0.451923 0.115385 0.139423 +4 0.599760 0.562500 0.050481 0.052885 +4 0.467548 0.848558 0.156250 0.139423 +4 0.284856 0.843750 0.055288 0.043269 +4 0.443510 0.524038 0.170673 0.168269 +4 0.760817 0.500000 0.079327 0.062500 +4 0.731971 0.552885 0.117788 0.062500 +4 0.689904 0.604567 0.024038 0.026442 diff --git a/ai_train/retrain/data/stain/val/labels/kimchi_038.txt b/ai_train/retrain/data/stain/val/labels/kimchi_038.txt new file mode 100644 index 000000000..eea2b27a7 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/kimchi_038.txt @@ -0,0 +1,3 @@ +4 0.331731 0.483173 0.062500 0.076923 +4 0.322115 0.600962 0.038462 0.043269 +4 0.631010 0.677885 0.223558 0.346154 diff --git a/ai_train/retrain/data/stain/val/labels/kimchi_041.txt b/ai_train/retrain/data/stain/val/labels/kimchi_041.txt new file mode 100644 index 000000000..20aa182f6 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/kimchi_041.txt @@ -0,0 +1,7 @@ +4 0.632212 0.352163 0.052885 0.040865 +4 0.551683 0.408654 0.050481 0.043269 +4 0.460337 0.485577 0.098558 0.115385 +4 0.629808 0.562500 0.096154 0.076923 +4 0.861779 0.447115 0.098558 0.096154 +4 0.824519 0.524038 0.086538 0.062500 +4 0.522837 0.368990 0.093750 0.026442 diff --git a/ai_train/retrain/data/stain/val/labels/kimchi_043.txt b/ai_train/retrain/data/stain/val/labels/kimchi_043.txt new file mode 100644 index 000000000..072f1d327 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/kimchi_043.txt @@ -0,0 +1 @@ +4 0.530048 0.426683 0.069712 0.064904 diff --git a/ai_train/retrain/data/stain/val/labels/kimchi_050.txt b/ai_train/retrain/data/stain/val/labels/kimchi_050.txt new file mode 100644 index 000000000..125d9aa33 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/kimchi_050.txt @@ -0,0 +1,3 @@ +4 0.555288 0.510817 0.225962 0.213942 +4 0.537260 0.784856 0.026442 0.026442 +4 0.555288 0.510817 0.307692 0.382212 diff --git a/ai_train/retrain/data/stain/val/labels/kimchi_057.txt b/ai_train/retrain/data/stain/val/labels/kimchi_057.txt new file mode 100644 index 000000000..e469339ad --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/kimchi_057.txt @@ -0,0 +1,3 @@ +4 0.584135 0.453125 0.197115 0.189904 +4 0.475962 0.578125 0.057692 0.093750 +4 0.472356 0.450721 0.055288 0.093750 diff --git a/ai_train/retrain/data/stain/val/labels/kimchi_058.txt b/ai_train/retrain/data/stain/val/labels/kimchi_058.txt new file mode 100644 index 000000000..807e2b265 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/kimchi_058.txt @@ -0,0 +1,3 @@ +4 0.230769 0.532452 0.048077 0.165865 +4 0.346154 0.614183 0.129808 0.156250 +4 0.725962 0.707933 0.091346 0.199519 diff --git a/ai_train/retrain/data/stain/val/labels/kimchi_062.txt b/ai_train/retrain/data/stain/val/labels/kimchi_062.txt new file mode 100644 index 000000000..ac6a70468 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/kimchi_062.txt @@ -0,0 +1,8 @@ +4 0.545673 0.276442 0.052885 0.052885 +4 0.644231 0.324519 0.033654 0.057692 +4 0.581731 0.408654 0.100962 0.100962 +4 0.498798 0.360577 0.060096 0.062500 +4 0.481971 0.490385 0.036058 0.028846 +4 0.572115 0.492788 0.038462 0.048077 +4 0.593750 0.544471 0.038462 0.026442 +4 0.576923 0.354567 0.091346 0.045673 diff --git a/ai_train/retrain/data/stain/val/labels/kimchi_066.txt b/ai_train/retrain/data/stain/val/labels/kimchi_066.txt new file mode 100644 index 000000000..cad6c4ac2 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/kimchi_066.txt @@ -0,0 +1,7 @@ +4 0.483173 0.320913 0.052885 0.060096 +4 0.554087 0.514423 0.151442 0.105769 +4 0.455529 0.647837 0.069712 0.108173 +4 0.355769 0.665865 0.091346 0.072115 +4 0.266827 0.872596 0.129808 0.076923 +4 0.163462 0.795673 0.038462 0.033654 +4 0.320913 0.753606 0.026442 0.016827 diff --git a/ai_train/retrain/data/stain/val/labels/kimchi_072.txt b/ai_train/retrain/data/stain/val/labels/kimchi_072.txt new file mode 100644 index 000000000..5a3af7497 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/kimchi_072.txt @@ -0,0 +1,3 @@ +4 0.457933 0.596154 0.088942 0.110577 +4 0.533654 0.521635 0.019231 0.048077 +4 0.540865 0.468750 0.019231 0.019231 diff --git a/ai_train/retrain/data/stain/val/labels/kimchi_083.txt b/ai_train/retrain/data/stain/val/labels/kimchi_083.txt new file mode 100644 index 000000000..c3a1995d3 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/kimchi_083.txt @@ -0,0 +1,3 @@ +4 0.361779 0.258413 0.045673 0.074519 +4 0.432692 0.358173 0.158654 0.177885 +4 0.429087 0.362981 0.108173 0.057692 diff --git a/ai_train/retrain/data/stain/val/labels/kimchi_089.txt b/ai_train/retrain/data/stain/val/labels/kimchi_089.txt new file mode 100644 index 000000000..f1cd69be2 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/kimchi_089.txt @@ -0,0 +1,2 @@ +4 0.324519 0.591346 0.163462 0.086538 +4 0.353365 0.527644 0.052885 0.060096 diff --git a/ai_train/retrain/data/stain/val/labels/kimchi_090.txt b/ai_train/retrain/data/stain/val/labels/kimchi_090.txt new file mode 100644 index 000000000..7c14cfce2 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/kimchi_090.txt @@ -0,0 +1,4 @@ +4 0.544471 0.472356 0.084135 0.069712 +4 0.697115 0.462740 0.028846 0.026442 +4 0.265625 0.457933 0.036058 0.026442 +4 0.080529 0.468750 0.060096 0.043269 diff --git a/ai_train/retrain/data/stain/val/labels/kimchi_095.txt b/ai_train/retrain/data/stain/val/labels/kimchi_095.txt new file mode 100644 index 000000000..4e7ce22c1 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/kimchi_095.txt @@ -0,0 +1,6 @@ +4 0.147837 0.010817 0.036058 0.016827 +4 0.331731 0.271635 0.052885 0.072115 +4 0.033654 0.176683 0.019231 0.016827 +4 0.485577 0.531250 0.062500 0.091346 +4 0.479567 0.704327 0.031250 0.033654 +4 0.337740 0.826923 0.026442 0.024038 diff --git a/ai_train/retrain/data/stain/val/labels/kimchi_096.txt b/ai_train/retrain/data/stain/val/labels/kimchi_096.txt new file mode 100644 index 000000000..e5db54238 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/kimchi_096.txt @@ -0,0 +1,9 @@ +4 0.167067 0.275240 0.093750 0.088942 +4 0.155048 0.406250 0.117788 0.125000 +4 0.137019 0.212740 0.019231 0.016827 +4 0.185096 0.217548 0.024038 0.016827 +4 0.828125 0.323317 0.146635 0.141827 +4 0.754808 0.406250 0.028846 0.033654 +4 0.721154 0.441106 0.033654 0.040865 +4 0.052885 0.330529 0.033654 0.036058 +4 0.096154 0.313702 0.019231 0.031250 diff --git a/ai_train/retrain/data/stain/val/labels/lipstick_10.txt b/ai_train/retrain/data/stain/val/labels/lipstick_10.txt new file mode 100644 index 000000000..6962099a0 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/lipstick_10.txt @@ -0,0 +1 @@ +5 0.640000 0.530055 0.109091 0.207650 diff --git a/ai_train/retrain/data/stain/val/labels/lipstick_16.txt b/ai_train/retrain/data/stain/val/labels/lipstick_16.txt new file mode 100644 index 000000000..aee6775b1 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/lipstick_16.txt @@ -0,0 +1,3 @@ +5 0.449091 0.521858 0.185455 0.191257 +5 0.543636 0.428962 0.040000 0.060109 +5 0.643636 0.527322 0.065455 0.103825 diff --git a/ai_train/retrain/data/stain/val/labels/lipstick_18.txt b/ai_train/retrain/data/stain/val/labels/lipstick_18.txt new file mode 100644 index 000000000..4a81a8c94 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/lipstick_18.txt @@ -0,0 +1 @@ +5 0.589091 0.669399 0.080000 0.060109 diff --git a/ai_train/retrain/data/stain/val/labels/lipstick_22.txt b/ai_train/retrain/data/stain/val/labels/lipstick_22.txt new file mode 100644 index 000000000..174f6d8e8 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/lipstick_22.txt @@ -0,0 +1 @@ +5 0.708333 0.464883 0.071429 0.026756 diff --git a/ai_train/retrain/data/stain/val/labels/lipstick_31.txt b/ai_train/retrain/data/stain/val/labels/lipstick_31.txt new file mode 100644 index 000000000..6d3aa9480 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/lipstick_31.txt @@ -0,0 +1 @@ +5 0.755952 0.576923 0.154762 0.103679 diff --git a/ai_train/retrain/data/stain/val/labels/lipstick_4.txt b/ai_train/retrain/data/stain/val/labels/lipstick_4.txt new file mode 100644 index 000000000..5729d7851 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/lipstick_4.txt @@ -0,0 +1 @@ +5 0.437778 0.717778 0.448889 0.200000 diff --git a/ai_train/retrain/data/stain/val/labels/lipstick_40.txt b/ai_train/retrain/data/stain/val/labels/lipstick_40.txt new file mode 100644 index 000000000..337c97d37 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/lipstick_40.txt @@ -0,0 +1 @@ +5 0.405462 0.554245 0.298319 0.221698 diff --git a/ai_train/retrain/data/stain/val/labels/lipstick_47.txt b/ai_train/retrain/data/stain/val/labels/lipstick_47.txt new file mode 100644 index 000000000..fe76bc097 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/lipstick_47.txt @@ -0,0 +1,3 @@ +5 0.341085 0.520513 0.317829 0.282051 +5 0.288760 0.323077 0.127907 0.153846 +5 0.428295 0.402564 0.151163 0.138462 diff --git a/ai_train/retrain/data/stain/val/labels/lipstick_50.txt b/ai_train/retrain/data/stain/val/labels/lipstick_50.txt new file mode 100644 index 000000000..c8a23530f --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/lipstick_50.txt @@ -0,0 +1,2 @@ +5 0.238235 0.469595 0.088235 0.222973 +5 0.316176 0.760135 0.197059 0.195946 diff --git a/ai_train/retrain/data/stain/val/labels/lipstick_51.txt b/ai_train/retrain/data/stain/val/labels/lipstick_51.txt new file mode 100644 index 000000000..aad322427 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/lipstick_51.txt @@ -0,0 +1,2 @@ +5 0.315217 0.478142 0.094203 0.081967 +5 0.324275 0.442623 0.054348 0.054645 diff --git a/ai_train/retrain/data/stain/val/labels/lipstick_52.txt b/ai_train/retrain/data/stain/val/labels/lipstick_52.txt new file mode 100644 index 000000000..ed3e7c5e3 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/lipstick_52.txt @@ -0,0 +1,3 @@ +5 0.356982 0.340708 0.069820 0.238938 +5 0.476351 0.128319 0.033784 0.115044 +5 0.581081 0.336283 0.166667 0.460177 diff --git a/ai_train/retrain/data/stain/val/labels/lipstick_54.txt b/ai_train/retrain/data/stain/val/labels/lipstick_54.txt new file mode 100644 index 000000000..9e1f1ab85 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/lipstick_54.txt @@ -0,0 +1,7 @@ +5 0.587121 0.321990 0.166667 0.225131 +5 0.700758 0.565445 0.143939 0.104712 +5 0.717803 0.672775 0.178030 0.120419 +5 0.634470 0.764398 0.132576 0.104712 +5 0.609848 0.866492 0.196970 0.151832 +5 0.371212 0.717277 0.181818 0.104712 +5 0.371212 0.801047 0.151515 0.136126 diff --git a/ai_train/retrain/data/stain/val/labels/lipstick_59.txt b/ai_train/retrain/data/stain/val/labels/lipstick_59.txt new file mode 100644 index 000000000..0566723a7 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/lipstick_59.txt @@ -0,0 +1 @@ +5 0.445000 0.508929 0.243333 0.279762 diff --git a/ai_train/retrain/data/stain/val/labels/lipstick_60.txt b/ai_train/retrain/data/stain/val/labels/lipstick_60.txt new file mode 100644 index 000000000..2fe9fe9a5 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/lipstick_60.txt @@ -0,0 +1,2 @@ +5 0.500000 0.590164 0.294545 0.349727 +5 0.552727 0.382514 0.101818 0.142077 diff --git a/ai_train/retrain/data/stain/val/labels/lipstick_66.txt b/ai_train/retrain/data/stain/val/labels/lipstick_66.txt new file mode 100644 index 000000000..35f9887ff --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/lipstick_66.txt @@ -0,0 +1,4 @@ +5 0.715847 0.485455 0.185792 0.098182 +5 0.109290 0.474545 0.065574 0.025455 +5 0.284153 0.820000 0.065574 0.061818 +5 0.836066 0.825455 0.032787 0.072727 diff --git a/ai_train/retrain/data/stain/val/labels/lipstick_71.txt b/ai_train/retrain/data/stain/val/labels/lipstick_71.txt new file mode 100644 index 000000000..b5067bc9c --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/lipstick_71.txt @@ -0,0 +1 @@ +5 0.484496 0.366667 0.093023 0.117949 diff --git a/ai_train/retrain/data/stain/val/labels/lipstick_8.txt b/ai_train/retrain/data/stain/val/labels/lipstick_8.txt new file mode 100644 index 000000000..a2b43398b --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/lipstick_8.txt @@ -0,0 +1,3 @@ +5 0.494932 0.494118 0.077703 0.141176 +5 0.547297 0.635294 0.060811 0.105882 +5 0.596284 0.955882 0.050676 0.088235 diff --git a/ai_train/retrain/data/stain/val/labels/lipstick_85.txt b/ai_train/retrain/data/stain/val/labels/lipstick_85.txt new file mode 100644 index 000000000..c85872e73 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/lipstick_85.txt @@ -0,0 +1 @@ +5 0.530909 0.450820 0.101818 0.136612 diff --git a/ai_train/retrain/data/stain/val/labels/lipstick_89.txt b/ai_train/retrain/data/stain/val/labels/lipstick_89.txt new file mode 100644 index 000000000..bdf91befa --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/lipstick_89.txt @@ -0,0 +1 @@ +5 0.344262 0.263636 0.338798 0.207273 diff --git a/ai_train/retrain/data/stain/val/labels/lipstick_90.txt b/ai_train/retrain/data/stain/val/labels/lipstick_90.txt new file mode 100644 index 000000000..1e12af151 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/lipstick_90.txt @@ -0,0 +1 @@ +5 0.380000 0.508889 0.244444 0.120000 diff --git a/ai_train/retrain/data/stain/val/labels/lipstick_91.txt b/ai_train/retrain/data/stain/val/labels/lipstick_91.txt new file mode 100644 index 000000000..4bda92c98 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/lipstick_91.txt @@ -0,0 +1 @@ +5 0.583333 0.593333 0.357143 0.193333 diff --git a/ai_train/retrain/data/stain/val/labels/lipstick_93.txt b/ai_train/retrain/data/stain/val/labels/lipstick_93.txt new file mode 100644 index 000000000..2ab767b39 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/lipstick_93.txt @@ -0,0 +1,12 @@ +5 0.433333 0.571111 0.164444 0.146667 +5 0.562222 0.675556 0.164444 0.142222 +5 0.377778 0.806667 0.097778 0.102222 +5 0.571111 0.902222 0.111111 0.097778 +5 0.742222 0.366667 0.133333 0.111111 +5 0.960000 0.462222 0.071111 0.115556 +5 0.953333 0.717778 0.075556 0.137778 +5 0.755556 0.691111 0.062222 0.093333 +5 0.048889 0.802222 0.071111 0.093333 +5 0.051111 0.473333 0.057778 0.057778 +5 0.766667 0.228889 0.084444 0.057778 +5 0.713333 0.315556 0.128889 0.080000 diff --git a/ai_train/retrain/data/stain/val/labels/mustard_003.txt b/ai_train/retrain/data/stain/val/labels/mustard_003.txt new file mode 100644 index 000000000..d5ccb9ed5 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/mustard_003.txt @@ -0,0 +1,9 @@ +6 0.587329 0.248555 0.058219 0.046243 +6 0.642123 0.745665 0.133562 0.358382 +6 0.496575 0.907514 0.068493 0.127168 +4 0.270548 0.196532 0.041096 0.080925 +4 0.311644 0.306358 0.034247 0.080925 +4 0.304795 0.433526 0.041096 0.057803 +4 0.239726 0.560694 0.054795 0.104046 +4 0.210616 0.696532 0.044521 0.179191 +6 0.753425 0.696532 0.054795 0.121387 diff --git a/ai_train/retrain/data/stain/val/labels/mustard_018.txt b/ai_train/retrain/data/stain/val/labels/mustard_018.txt new file mode 100644 index 000000000..fb5a114b9 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/mustard_018.txt @@ -0,0 +1 @@ +6 0.485119 0.503333 0.244048 0.266667 diff --git a/ai_train/retrain/data/stain/val/labels/mustard_024.txt b/ai_train/retrain/data/stain/val/labels/mustard_024.txt new file mode 100644 index 000000000..9d94be63c --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/mustard_024.txt @@ -0,0 +1,6 @@ +6 0.289091 0.390710 0.076364 0.213115 +6 0.209091 0.568306 0.032727 0.054645 +6 0.312727 0.540984 0.036364 0.054645 +6 0.341818 0.633880 0.050909 0.109290 +6 0.363636 0.795082 0.036364 0.038251 +6 0.380000 0.860656 0.025455 0.038251 diff --git a/ai_train/retrain/data/stain/val/labels/mustard_027.txt b/ai_train/retrain/data/stain/val/labels/mustard_027.txt new file mode 100644 index 000000000..709d3e604 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/mustard_027.txt @@ -0,0 +1,2 @@ +6 0.511905 0.353333 0.130952 0.060000 +6 0.452381 0.786667 0.047619 0.033333 diff --git a/ai_train/retrain/data/stain/val/labels/mustard_045.txt b/ai_train/retrain/data/stain/val/labels/mustard_045.txt new file mode 100644 index 000000000..9939d1c9e --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/mustard_045.txt @@ -0,0 +1 @@ +6 0.402222 0.893333 0.146667 0.186667 diff --git a/ai_train/retrain/data/stain/val/labels/mustard_050.txt b/ai_train/retrain/data/stain/val/labels/mustard_050.txt new file mode 100644 index 000000000..b8bcda5a2 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/mustard_050.txt @@ -0,0 +1,4 @@ +6 0.401818 0.513661 0.323636 0.207650 +6 0.730909 0.450820 0.174545 0.234973 +6 0.641818 0.713115 0.149091 0.224044 +6 0.349091 0.606557 0.065455 0.131148 diff --git a/ai_train/retrain/data/stain/val/labels/mustard_051.txt b/ai_train/retrain/data/stain/val/labels/mustard_051.txt new file mode 100644 index 000000000..8fe603c13 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/mustard_051.txt @@ -0,0 +1 @@ +6 0.672131 0.496364 0.065574 0.069091 diff --git a/ai_train/retrain/data/stain/val/labels/mustard_053.txt b/ai_train/retrain/data/stain/val/labels/mustard_053.txt new file mode 100644 index 000000000..de23ed534 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/mustard_053.txt @@ -0,0 +1,2 @@ +6 0.637066 0.399485 0.115830 0.128866 +6 0.704633 0.768041 0.057915 0.103093 diff --git a/ai_train/retrain/data/stain/val/labels/mustard_054.txt b/ai_train/retrain/data/stain/val/labels/mustard_054.txt new file mode 100644 index 000000000..b84dcdb14 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/mustard_054.txt @@ -0,0 +1,6 @@ +6 0.717778 0.271111 0.253333 0.204444 +6 0.495556 0.586667 0.084444 0.533333 +6 0.862222 0.813333 0.151111 0.364444 +6 0.608889 0.542222 0.782222 0.906667 +6 0.673333 0.557778 0.120000 0.066667 +6 0.835556 0.522222 0.106667 0.200000 diff --git a/ai_train/retrain/data/stain/val/labels/mustard_065.txt b/ai_train/retrain/data/stain/val/labels/mustard_065.txt new file mode 100644 index 000000000..cec5754d9 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/mustard_065.txt @@ -0,0 +1,4 @@ +6 0.412568 0.641818 0.081967 0.054545 +6 0.344262 0.776364 0.153005 0.178182 +6 0.486339 0.769091 0.054645 0.047273 +6 0.510929 0.670909 0.038251 0.047273 diff --git a/ai_train/retrain/data/stain/val/labels/mustard_066.txt b/ai_train/retrain/data/stain/val/labels/mustard_066.txt new file mode 100644 index 000000000..ce31e123a --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/mustard_066.txt @@ -0,0 +1 @@ +6 0.511194 0.454787 0.067164 0.101064 diff --git a/ai_train/retrain/data/stain/val/labels/mustard_074.txt b/ai_train/retrain/data/stain/val/labels/mustard_074.txt new file mode 100644 index 000000000..59434df9f --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/mustard_074.txt @@ -0,0 +1,6 @@ +6 0.218182 0.415301 0.225455 0.426230 +6 0.327273 0.603825 0.269091 0.355191 +6 0.541818 0.721311 0.298182 0.284153 +6 0.761818 0.650273 0.229091 0.207650 +6 0.240000 0.163934 0.123636 0.142077 +6 0.485455 0.513661 0.767273 0.972678 diff --git a/ai_train/retrain/data/stain/val/labels/mustard_083.txt b/ai_train/retrain/data/stain/val/labels/mustard_083.txt new file mode 100644 index 000000000..9ceace350 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/mustard_083.txt @@ -0,0 +1,9 @@ +6 0.262548 0.172680 0.092664 0.128866 +6 0.370656 0.265464 0.115830 0.149485 +6 0.428571 0.376289 0.092664 0.103093 +6 0.484556 0.471649 0.042471 0.046392 +6 0.743243 0.579897 0.050193 0.087629 +6 0.656371 0.659794 0.108108 0.144330 +6 0.727799 0.690722 0.027027 0.041237 +6 0.799228 0.796392 0.069498 0.128866 +6 0.727799 0.804124 0.104247 0.144330 diff --git a/ai_train/retrain/data/stain/val/labels/mustard_084.txt b/ai_train/retrain/data/stain/val/labels/mustard_084.txt new file mode 100644 index 000000000..a0766336c --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/mustard_084.txt @@ -0,0 +1,4 @@ +6 0.196429 0.590000 0.095238 0.060000 +6 0.455357 0.643333 0.089286 0.046667 +6 0.735119 0.721667 0.065476 0.063333 +6 0.666667 0.255000 0.071429 0.050000 diff --git a/ai_train/retrain/data/stain/val/labels/oil_001.txt b/ai_train/retrain/data/stain/val/labels/oil_001.txt new file mode 100644 index 000000000..885916e72 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/oil_001.txt @@ -0,0 +1 @@ +7 0.750000 0.729167 0.393333 0.529762 diff --git a/ai_train/retrain/data/stain/val/labels/oil_003.txt b/ai_train/retrain/data/stain/val/labels/oil_003.txt new file mode 100644 index 000000000..bccc0133b --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/oil_003.txt @@ -0,0 +1 @@ +7 0.484556 0.440722 0.552124 0.314433 diff --git a/ai_train/retrain/data/stain/val/labels/oil_013.txt b/ai_train/retrain/data/stain/val/labels/oil_013.txt new file mode 100644 index 000000000..446d33e86 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/oil_013.txt @@ -0,0 +1 @@ +7 0.590909 0.560109 0.156364 0.191257 diff --git a/ai_train/retrain/data/stain/val/labels/oil_015.txt b/ai_train/retrain/data/stain/val/labels/oil_015.txt new file mode 100644 index 000000000..b7e4e2201 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/oil_015.txt @@ -0,0 +1,3 @@ +7 0.251366 0.738182 0.262295 0.240000 +7 0.584699 0.734545 0.371585 0.472727 +7 0.311475 0.436364 0.491803 0.174545 diff --git a/ai_train/retrain/data/stain/val/labels/oil_018.txt b/ai_train/retrain/data/stain/val/labels/oil_018.txt new file mode 100644 index 000000000..b527c79c0 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/oil_018.txt @@ -0,0 +1,2 @@ +7 0.486622 0.866071 0.137124 0.220238 +7 0.687291 0.773810 0.090301 0.142857 diff --git a/ai_train/retrain/data/stain/val/labels/oil_022.txt b/ai_train/retrain/data/stain/val/labels/oil_022.txt new file mode 100644 index 000000000..ec59efeae --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/oil_022.txt @@ -0,0 +1,2 @@ +7 0.557778 0.395556 0.164444 0.088889 +7 0.500000 0.753333 0.288889 0.315556 diff --git a/ai_train/retrain/data/stain/val/labels/oil_028.txt b/ai_train/retrain/data/stain/val/labels/oil_028.txt new file mode 100644 index 000000000..adffd85ea --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/oil_028.txt @@ -0,0 +1,4 @@ +7 0.443452 0.528333 0.125000 0.096667 +7 0.392857 0.638333 0.130952 0.076667 +7 0.747024 0.306667 0.089286 0.073333 +7 0.729167 0.383333 0.113095 0.073333 diff --git a/ai_train/retrain/data/stain/val/labels/oil_034.txt b/ai_train/retrain/data/stain/val/labels/oil_034.txt new file mode 100644 index 000000000..5f762d333 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/oil_034.txt @@ -0,0 +1 @@ +7 0.551237 0.199438 0.176678 0.252809 diff --git a/ai_train/retrain/data/stain/val/labels/oil_037.txt b/ai_train/retrain/data/stain/val/labels/oil_037.txt new file mode 100644 index 000000000..4234ea66e --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/oil_037.txt @@ -0,0 +1,3 @@ +7 0.455598 0.358247 0.123552 0.118557 +7 0.364865 0.582474 0.073359 0.092784 +7 0.563707 0.636598 0.054054 0.067010 diff --git a/ai_train/retrain/data/stain/val/labels/oil_077.txt b/ai_train/retrain/data/stain/val/labels/oil_077.txt new file mode 100644 index 000000000..59d063736 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/oil_077.txt @@ -0,0 +1 @@ +7 0.198454 0.845560 0.345361 0.247104 diff --git a/ai_train/retrain/data/stain/val/labels/oil_078.txt b/ai_train/retrain/data/stain/val/labels/oil_078.txt new file mode 100644 index 000000000..a2eaba60e --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/oil_078.txt @@ -0,0 +1,3 @@ +7 0.396907 0.416988 0.226804 0.200772 +7 0.533505 0.297297 0.190722 0.162162 +7 0.515464 0.637066 0.103093 0.123552 diff --git a/ai_train/retrain/data/stain/val/labels/oil_079.txt b/ai_train/retrain/data/stain/val/labels/oil_079.txt new file mode 100644 index 000000000..49f583af4 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/oil_079.txt @@ -0,0 +1 @@ +7 0.438144 0.449807 0.185567 0.150579 diff --git a/ai_train/retrain/data/stain/val/labels/oil_081.txt b/ai_train/retrain/data/stain/val/labels/oil_081.txt new file mode 100644 index 000000000..50e5677c0 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/oil_081.txt @@ -0,0 +1 @@ +7 0.492268 0.583012 0.190722 0.247104 diff --git a/ai_train/retrain/data/stain/val/labels/oil_096.txt b/ai_train/retrain/data/stain/val/labels/oil_096.txt new file mode 100644 index 000000000..b50e47224 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/oil_096.txt @@ -0,0 +1,4 @@ +7 0.800000 0.342014 0.171429 0.100694 +7 0.711429 0.612847 0.337143 0.184028 +7 0.422857 0.590278 0.148571 0.090278 +7 0.705714 0.835069 0.108571 0.079861 diff --git a/ai_train/retrain/data/stain/val/labels/wine_006.txt b/ai_train/retrain/data/stain/val/labels/wine_006.txt new file mode 100644 index 000000000..76d992d8b --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_006.txt @@ -0,0 +1 @@ +8 0.574545 0.295082 0.312727 0.229508 diff --git a/ai_train/retrain/data/stain/val/labels/wine_007.txt b/ai_train/retrain/data/stain/val/labels/wine_007.txt new file mode 100644 index 000000000..8a1a839a9 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_007.txt @@ -0,0 +1,2 @@ +8 0.254545 0.472678 0.145455 0.202186 +8 0.321818 0.849727 0.200000 0.300546 diff --git a/ai_train/retrain/data/stain/val/labels/wine_023.txt b/ai_train/retrain/data/stain/val/labels/wine_023.txt new file mode 100644 index 000000000..2bc6918e3 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_023.txt @@ -0,0 +1 @@ +8 0.403010 0.723214 0.143813 0.136905 diff --git a/ai_train/retrain/data/stain/val/labels/wine_025.txt b/ai_train/retrain/data/stain/val/labels/wine_025.txt new file mode 100644 index 000000000..f684bc140 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_025.txt @@ -0,0 +1,3 @@ +8 0.675000 0.571429 0.043333 0.107143 +8 0.655000 0.699405 0.043333 0.089286 +8 0.646667 0.806548 0.053333 0.077381 diff --git a/ai_train/retrain/data/stain/val/labels/wine_026.txt b/ai_train/retrain/data/stain/val/labels/wine_026.txt new file mode 100644 index 000000000..eae92870c --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_026.txt @@ -0,0 +1,4 @@ +8 0.609434 0.418421 0.215094 0.363158 +8 0.554717 0.678947 0.233962 0.242105 +8 0.722642 0.563158 0.079245 0.442105 +8 0.866038 0.423684 0.109434 0.152632 diff --git a/ai_train/retrain/data/stain/val/labels/wine_027.txt b/ai_train/retrain/data/stain/val/labels/wine_027.txt new file mode 100644 index 000000000..dc9e7ace0 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_027.txt @@ -0,0 +1,3 @@ +8 0.441818 0.480874 0.265455 0.404372 +8 0.545455 0.448087 0.036364 0.087432 +8 0.652727 0.532787 0.149091 0.114754 diff --git a/ai_train/retrain/data/stain/val/labels/wine_032.txt b/ai_train/retrain/data/stain/val/labels/wine_032.txt new file mode 100644 index 000000000..154025b81 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_032.txt @@ -0,0 +1 @@ +8 0.520000 0.644809 0.290909 0.163934 diff --git a/ai_train/retrain/data/stain/val/labels/wine_044.txt b/ai_train/retrain/data/stain/val/labels/wine_044.txt new file mode 100644 index 000000000..a73db417b --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_044.txt @@ -0,0 +1,2 @@ +8 0.451737 0.221649 0.084942 0.123711 +8 0.774131 0.293814 0.081081 0.103093 diff --git a/ai_train/retrain/data/stain/val/labels/wine_049.txt b/ai_train/retrain/data/stain/val/labels/wine_049.txt new file mode 100644 index 000000000..d2c64ac18 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_049.txt @@ -0,0 +1 @@ +8 0.345455 0.756831 0.276364 0.355191 diff --git a/ai_train/retrain/data/stain/val/labels/wine_051.txt b/ai_train/retrain/data/stain/val/labels/wine_051.txt new file mode 100644 index 000000000..1fd776a0d --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_051.txt @@ -0,0 +1 @@ +8 0.600583 0.302721 0.064140 0.346939 diff --git a/ai_train/retrain/data/stain/val/labels/wine_052.txt b/ai_train/retrain/data/stain/val/labels/wine_052.txt new file mode 100644 index 000000000..4ea4e23e4 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_052.txt @@ -0,0 +1,2 @@ +8 0.363806 0.321809 0.108209 0.196809 +8 0.363806 0.585106 0.070896 0.095745 diff --git a/ai_train/retrain/data/stain/val/labels/wine_053.txt b/ai_train/retrain/data/stain/val/labels/wine_053.txt new file mode 100644 index 000000000..86eae1c7b --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_053.txt @@ -0,0 +1,6 @@ +8 0.218750 0.394578 0.101974 0.162651 +8 0.273026 0.563253 0.092105 0.271084 +8 0.304276 0.756024 0.108553 0.150602 +8 0.536184 0.864458 0.256579 0.090361 +8 0.720395 0.650602 0.065789 0.349398 +8 0.366776 0.301205 0.121711 0.084337 diff --git a/ai_train/retrain/data/stain/val/labels/wine_055.txt b/ai_train/retrain/data/stain/val/labels/wine_055.txt new file mode 100644 index 000000000..fb96b8b94 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_055.txt @@ -0,0 +1 @@ +8 0.312709 0.291667 0.056856 0.095238 diff --git a/ai_train/retrain/data/stain/val/labels/wine_057.txt b/ai_train/retrain/data/stain/val/labels/wine_057.txt new file mode 100644 index 000000000..1a0ed1e41 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_057.txt @@ -0,0 +1,3 @@ +8 0.676364 0.366120 0.065455 0.142077 +8 0.605455 0.606557 0.178182 0.240437 +8 0.672727 0.775956 0.065455 0.109290 diff --git a/ai_train/retrain/data/stain/val/labels/wine_062.txt b/ai_train/retrain/data/stain/val/labels/wine_062.txt new file mode 100644 index 000000000..37055c32a --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_062.txt @@ -0,0 +1,5 @@ +8 0.696335 0.676136 0.188482 0.094697 +8 0.481675 0.821970 0.115183 0.219697 +8 0.549738 0.818182 0.115183 0.181818 +8 0.722513 0.840909 0.157068 0.196970 +8 0.387435 0.566288 0.052356 0.026515 diff --git a/ai_train/retrain/data/stain/val/labels/wine_068.txt b/ai_train/retrain/data/stain/val/labels/wine_068.txt new file mode 100644 index 000000000..0dd3df904 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_068.txt @@ -0,0 +1,2 @@ +8 0.592727 0.644809 0.196364 0.557377 +8 0.541818 0.775956 0.254545 0.295082 diff --git a/ai_train/retrain/data/stain/val/labels/wine_072.txt b/ai_train/retrain/data/stain/val/labels/wine_072.txt new file mode 100644 index 000000000..02d859eb2 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_072.txt @@ -0,0 +1 @@ +8 0.280822 0.427746 0.171233 0.751445 diff --git a/ai_train/retrain/data/stain/val/labels/wine_074.txt b/ai_train/retrain/data/stain/val/labels/wine_074.txt new file mode 100644 index 000000000..e2f88fdff --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_074.txt @@ -0,0 +1,5 @@ +8 0.488462 0.074742 0.046154 0.056701 +8 0.628846 0.188144 0.280769 0.077320 +8 0.409615 0.577320 0.119231 0.154639 +8 0.776923 0.505155 0.215385 0.134021 +8 0.786538 0.706186 0.165385 0.226804 diff --git a/ai_train/retrain/data/stain/val/labels/wine_077.txt b/ai_train/retrain/data/stain/val/labels/wine_077.txt new file mode 100644 index 000000000..970d01962 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_077.txt @@ -0,0 +1,3 @@ +8 0.603636 0.483607 0.414545 0.256831 +8 0.267273 0.639344 0.083636 0.306011 +8 0.523636 0.625683 0.116364 0.169399 diff --git a/ai_train/retrain/data/stain/val/labels/wine_082.txt b/ai_train/retrain/data/stain/val/labels/wine_082.txt new file mode 100644 index 000000000..f310ae200 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_082.txt @@ -0,0 +1,4 @@ +8 0.605000 0.422619 0.490000 0.452381 +8 0.573333 0.729167 0.320000 0.541667 +8 0.835000 0.610119 0.330000 0.446429 +8 0.693333 0.151786 0.286667 0.184524 diff --git a/ai_train/retrain/data/stain/val/labels/wine_083.txt b/ai_train/retrain/data/stain/val/labels/wine_083.txt new file mode 100644 index 000000000..b722c4715 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_083.txt @@ -0,0 +1,7 @@ +8 0.685567 0.463320 0.154639 0.115830 +8 0.481959 0.482625 0.108247 0.084942 +8 0.206186 0.671815 0.103093 0.061776 +8 0.608247 0.146718 0.082474 0.061776 +8 0.551546 0.723938 0.185567 0.081081 +8 0.597938 0.650579 0.041237 0.281853 +8 0.548969 0.847490 0.067010 0.042471 diff --git a/ai_train/retrain/data/stain/val/labels/wine_086.txt b/ai_train/retrain/data/stain/val/labels/wine_086.txt new file mode 100644 index 000000000..ccfe4bbe5 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_086.txt @@ -0,0 +1 @@ +8 0.472973 0.427835 0.104247 0.082474 diff --git a/ai_train/retrain/data/stain/val/labels/wine_091.txt b/ai_train/retrain/data/stain/val/labels/wine_091.txt new file mode 100644 index 000000000..299d30797 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_091.txt @@ -0,0 +1,5 @@ +8 0.251667 0.407738 0.256667 0.327381 +8 0.725000 0.330357 0.543333 0.184524 +8 0.588333 0.580357 0.223333 0.482143 +8 0.241667 0.735119 0.410000 0.529762 +8 0.740000 0.758929 0.306667 0.482143 diff --git a/ai_train/retrain/data/stain/val/labels/wine_093.txt b/ai_train/retrain/data/stain/val/labels/wine_093.txt new file mode 100644 index 000000000..fdc084f97 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_093.txt @@ -0,0 +1,4 @@ +8 0.293814 0.279923 0.195876 0.119691 +8 0.451031 0.386100 0.242268 0.138996 +8 0.659794 0.494208 0.257732 0.123552 +8 0.824742 0.571429 0.226804 0.131274 diff --git a/ai_train/retrain/data/stain/val/labels/wine_095.txt b/ai_train/retrain/data/stain/val/labels/wine_095.txt new file mode 100644 index 000000000..7b9a6330c --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_095.txt @@ -0,0 +1 @@ +8 0.536364 0.543716 0.214545 0.311475 diff --git a/ai_train/retrain/data/stain/val/labels/wine_099.txt b/ai_train/retrain/data/stain/val/labels/wine_099.txt new file mode 100644 index 000000000..54e94e302 --- /dev/null +++ b/ai_train/retrain/data/stain/val/labels/wine_099.txt @@ -0,0 +1 @@ +8 0.427336 0.540230 0.169550 0.436782 diff --git a/ai_train/retrain/data/symbol/data.yaml b/ai_train/retrain/data/symbol/data.yaml new file mode 100644 index 000000000..05209aa52 --- /dev/null +++ b/ai_train/retrain/data/symbol/data.yaml @@ -0,0 +1,49 @@ +train: /home/t25119/aiLab/test/rushWash/ai/data/symbol/train/images +val: /home/t25119/aiLab/test/rushWash/ai/data/symbol/val/images +test: /home/t25119/aiLab/test/rushWash/ai/data/symbol/test/images + +nc: 43 +names: + - 30C # 0 + - 40C # 1 + - 50C # 2 + - 60C # 3 + - 70C # 4 + - 95C # 5 + - DN_bleach # 6 + - DN_dry # 7 + - DN_dry_clean # 8 + - DN_iron # 9 + - DN_steam # 10 + - DN_tumble_dry # 11 + - DN_wash # 12 + - DN_wet_clean # 13 + - DN_wring # 14 + - bleach # 15 + - chlorine_bleach # 16 + - non_chlorine_bleach # 17 + - drip_dry # 18 + - drip_dry_in_shade # 19 + - dry_flat # 20 + - dry_flat_in_shade # 21 + - line_dry # 22 + - line_dry_in_shade # 23 + - natural_dry # 24 + - shade_dry # 25 + - dry_clean # 26 ← 통합됨 (원래 26+27) + - dry_clean_any_solvent_except_trichloroethylene # 27 + - dry_clean_petrol_only # 28 + - hand_wash # 29 + - machine_wash # 30 + - iron # 31 + - iron_high # 32 + - iron_medium # 33 + - iron_low # 34 + - steam # 35 + - tumble_dry_normal # 36 + - tumble_dry_low # 37 + - tumble_dry_medium # 38 + - tumble_dry_high # 39 + - tumble_dry_no_heat # 40 + - wet_clean # 41 + - wring # 42 diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873.jpg new file mode 100644 index 000000000..a9402084c Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_01.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_01.jpg new file mode 100644 index 000000000..30a9d5707 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_01.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_02.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_02.jpg new file mode 100644 index 000000000..0afaf3770 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_02.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_03.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_03.jpg new file mode 100644 index 000000000..ba761ef5d Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_03.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_04.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_04.jpg new file mode 100644 index 000000000..d2c77243d Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_04.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_05.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_05.jpg new file mode 100644 index 000000000..6985d37b1 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_05.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_06.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_06.jpg new file mode 100644 index 000000000..4dff94a5c Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_06.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_07.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_07.jpg new file mode 100644 index 000000000..09a7b7c34 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_07.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_08.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_08.jpg new file mode 100644 index 000000000..896eab4b3 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_08.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_09.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_09.jpg new file mode 100644 index 000000000..518c17c6d Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_09.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_10.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_10.jpg new file mode 100644 index 000000000..2db0d312b Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_10.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_11.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_11.jpg new file mode 100644 index 000000000..14eb8b808 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250514_212707873_11.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393.jpg new file mode 100644 index 000000000..0175d3146 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_01.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_01.jpg new file mode 100644 index 000000000..2d4056a64 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_01.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_02.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_02.jpg new file mode 100644 index 000000000..95e0668d6 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_02.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_04.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_04.jpg new file mode 100644 index 000000000..a62e66268 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_04.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_05.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_05.jpg new file mode 100644 index 000000000..e9f32e6a2 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_05.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_06.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_06.jpg new file mode 100644 index 000000000..f82201000 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_06.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_07.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_07.jpg new file mode 100644 index 000000000..62eb2ccc5 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_07.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_08.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_08.jpg new file mode 100644 index 000000000..30fa39ede Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_08.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_09.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_09.jpg new file mode 100644 index 000000000..51a152ca4 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_09.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_10.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_10.jpg new file mode 100644 index 000000000..ca6cf473b Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_111821393_10.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372.jpg new file mode 100644 index 000000000..373f5802c Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_01.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_01.jpg new file mode 100644 index 000000000..38a59f1ce Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_01.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_02.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_02.jpg new file mode 100644 index 000000000..d2423c42e Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_02.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_03.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_03.jpg new file mode 100644 index 000000000..341f26806 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_03.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_04.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_04.jpg new file mode 100644 index 000000000..191e461e3 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_04.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_05.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_05.jpg new file mode 100644 index 000000000..07ca347f1 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_05.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_06.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_06.jpg new file mode 100644 index 000000000..a9f180e1a Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_06.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_07.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_07.jpg new file mode 100644 index 000000000..2c382a86c Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_07.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_08.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_08.jpg new file mode 100644 index 000000000..990e27979 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_08.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_09.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_09.jpg new file mode 100644 index 000000000..d0b001f94 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_09.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_10.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_10.jpg new file mode 100644 index 000000000..7b18428f0 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_144454372_10.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765.jpg new file mode 100644 index 000000000..979483e15 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_01.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_01.jpg new file mode 100644 index 000000000..a5c1ef59f Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_01.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_02.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_02.jpg new file mode 100644 index 000000000..339887dd6 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_02.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_03.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_03.jpg new file mode 100644 index 000000000..c9077a85b Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_03.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_04.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_04.jpg new file mode 100644 index 000000000..cf6674d5b Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_04.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_05.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_05.jpg new file mode 100644 index 000000000..be3a165ed Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_05.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_06.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_06.jpg new file mode 100644 index 000000000..25276f3a8 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_06.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_07.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_07.jpg new file mode 100644 index 000000000..84d1ab3b9 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_07.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_08.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_08.jpg new file mode 100644 index 000000000..1d3fc571e Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_08.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_09.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_09.jpg new file mode 100644 index 000000000..56a77a5d1 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_09.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_10.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_10.jpg new file mode 100644 index 000000000..0a63968ef Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_221400765_10.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225.jpg new file mode 100644 index 000000000..6fd649048 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_01.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_01.jpg new file mode 100644 index 000000000..5022f5a5b Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_01.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_02.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_02.jpg new file mode 100644 index 000000000..ab7d9d216 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_02.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_03.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_03.jpg new file mode 100644 index 000000000..c5990bdee Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_03.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_04.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_04.jpg new file mode 100644 index 000000000..6701626f4 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_04.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_05.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_05.jpg new file mode 100644 index 000000000..6fa6632b3 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_05.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_06.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_06.jpg new file mode 100644 index 000000000..889a022ec Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_06.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_07.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_07.jpg new file mode 100644 index 000000000..4216c5bcd Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_07.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_09.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_09.jpg new file mode 100644 index 000000000..751bd8139 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_09.jpg differ diff --git a/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_10.jpg b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_10.jpg new file mode 100644 index 000000000..c0a7a0696 Binary files /dev/null and b/ai_train/retrain/data/symbol/test/images/KakaoTalk_20250516_223034225_10.jpg differ diff --git a/ai_train/retrain/data/symbol/test/labels.cache b/ai_train/retrain/data/symbol/test/labels.cache new file mode 100644 index 000000000..393faa1bf Binary files /dev/null and b/ai_train/retrain/data/symbol/test/labels.cache differ diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873.txt new file mode 100644 index 000000000..c56048587 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873.txt @@ -0,0 +1,4 @@ +12 0.267692 0.802331 0.145172 0.099206 +6 0.420800 0.803075 0.152447 0.099206 +33 0.589451 0.807912 0.150463 0.094494 +26 0.751488 0.808036 0.139881 0.099206 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_01.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_01.txt new file mode 100644 index 000000000..6f6860426 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_01.txt @@ -0,0 +1,5 @@ +0 0.170635 0.702753 0.130291 0.066220 +6 0.305556 0.700769 0.146164 0.076637 +37 0.434689 0.699157 0.114087 0.083333 +33 0.562169 0.703125 0.140873 0.071925 +8 0.708995 0.703869 0.156746 0.078373 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_02.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_02.txt new file mode 100644 index 000000000..8f4ed20bc --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_02.txt @@ -0,0 +1,6 @@ +29 0.248016 0.481151 0.308201 0.138393 +17 0.531250 0.486731 0.237103 0.148065 +9 0.772817 0.467510 0.257275 0.128968 +21 0.788360 0.621156 0.205026 0.153026 +42 0.535549 0.630332 0.286045 0.108879 +11 0.261905 0.640749 0.259259 0.171379 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_03.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_03.txt new file mode 100644 index 000000000..365c14541 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_03.txt @@ -0,0 +1,5 @@ +12 0.248181 0.775174 0.103505 0.086558 +6 0.349868 0.789187 0.113095 0.096726 +11 0.461475 0.807912 0.105489 0.100942 +9 0.576554 0.825149 0.116071 0.088790 +27 0.693452 0.830357 0.093915 0.071925 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_04.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_04.txt new file mode 100644 index 000000000..39751c213 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_04.txt @@ -0,0 +1,15 @@ +0 0.221892 0.580357 0.117063 0.082341 +6 0.340939 0.580729 0.128968 0.091022 +6 0.346230 0.670387 0.126984 0.083333 +6 0.346065 0.754712 0.112103 0.075893 +0 0.224041 0.677951 0.110780 0.089038 +0 0.226190 0.765997 0.115079 0.087054 +11 0.458829 0.578373 0.136574 0.094246 +11 0.463624 0.750744 0.118386 0.077381 +11 0.696098 0.669891 0.116402 0.075893 +8 0.578208 0.676711 0.121362 0.095982 +8 0.696098 0.575149 0.120370 0.107143 +8 0.697751 0.757192 0.123677 0.074405 +34 0.581349 0.583085 0.123677 0.076885 +34 0.585152 0.761533 0.133267 0.080109 +34 0.461310 0.670263 0.128968 0.073661 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_05.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_05.txt new file mode 100644 index 000000000..3709229b2 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_05.txt @@ -0,0 +1,3 @@ +0 0.317791 0.491443 0.085317 0.056796 +6 0.467262 0.494296 0.100529 0.057540 +31 0.627315 0.501860 0.104497 0.048859 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_06.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_06.txt new file mode 100644 index 000000000..6a6219d4d --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_06.txt @@ -0,0 +1,5 @@ +26 0.148313 0.553943 0.136574 0.115823 +6 0.304563 0.550719 0.169312 0.136657 +11 0.479993 0.551959 0.176918 0.129712 +9 0.651786 0.555556 0.166667 0.112599 +12 0.827216 0.560764 0.178241 0.099206 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_07.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_07.txt new file mode 100644 index 000000000..4a0a4f8ff --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_07.txt @@ -0,0 +1,5 @@ +1 0.208003 0.553447 0.149471 0.081597 +6 0.369544 0.550719 0.161045 0.112847 +11 0.517857 0.545883 0.139550 0.103175 +34 0.663029 0.544643 0.137566 0.078373 +27 0.805390 0.543155 0.102183 0.073413 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_08.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_08.txt new file mode 100644 index 000000000..db27e4713 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_08.txt @@ -0,0 +1,5 @@ +0 0.167493 0.414311 0.149140 0.080109 +6 0.318452 0.418279 0.125000 0.075149 +37 0.450728 0.416419 0.105820 0.074405 +9 0.602183 0.421503 0.148148 0.083085 +8 0.772321 0.420759 0.138558 0.086558 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_09.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_09.txt new file mode 100644 index 000000000..eb14e456e --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_09.txt @@ -0,0 +1,5 @@ +1 0.152612 0.462302 0.108796 0.079861 +17 0.261905 0.467138 0.105820 0.067212 +33 0.383929 0.467138 0.121693 0.088046 +26 0.503968 0.469122 0.109788 0.079117 +23 0.621858 0.471602 0.110780 0.084077 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_10.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_10.txt new file mode 100644 index 000000000..0b3ce2eb6 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_10.txt @@ -0,0 +1,5 @@ +1 0.255126 0.696057 0.089616 0.081597 +17 0.362269 0.693576 0.114087 0.072173 +33 0.483796 0.696305 0.125000 0.084077 +26 0.596396 0.710813 0.100198 0.088790 +23 0.711971 0.737599 0.109788 0.079861 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_11.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_11.txt new file mode 100644 index 000000000..108ccf3ae --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250514_212707873_11.txt @@ -0,0 +1,12 @@ +1 0.269841 0.573909 0.085317 0.052083 +6 0.358962 0.578745 0.071759 0.051835 +11 0.447421 0.577133 0.069444 0.045635 +21 0.532407 0.577877 0.066138 0.047123 +34 0.612269 0.577629 0.091601 0.049603 +8 0.687996 0.573909 0.068452 0.044147 +8 0.700231 0.650670 0.075728 0.050347 +10 0.614418 0.656002 0.068122 0.062500 +21 0.526951 0.658358 0.072421 0.055804 +11 0.433532 0.658730 0.088624 0.058532 +6 0.340939 0.656746 0.090608 0.056052 +1 0.245370 0.653522 0.089286 0.063988 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393.txt new file mode 100644 index 000000000..88b7f7505 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393.txt @@ -0,0 +1,6 @@ +0 0.073578 0.711062 0.091601 0.070437 +8 0.170635 0.711930 0.093915 0.068700 +6 0.273644 0.715154 0.114087 0.062252 +34 0.379795 0.711930 0.104828 0.059276 +11 0.480159 0.707589 0.093915 0.061508 +21 0.672123 0.702753 0.087632 0.068204 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_01.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_01.txt new file mode 100644 index 000000000..e6b5ccbe4 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_01.txt @@ -0,0 +1,5 @@ +29 0.170635 0.850694 0.102513 0.080853 +17 0.287037 0.851562 0.106481 0.080605 +34 0.398975 0.851066 0.108796 0.075149 +8 0.515708 0.853919 0.114087 0.090278 +23 0.629299 0.856771 0.113095 0.080109 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_02.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_02.txt new file mode 100644 index 000000000..21d751fa7 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_02.txt @@ -0,0 +1,5 @@ +12 0.205357 0.813864 0.105820 0.071181 +17 0.316799 0.816716 0.093915 0.071925 +34 0.419808 0.815104 0.092923 0.065724 +11 0.316799 0.883929 0.093915 0.059028 +28 0.212302 0.880828 0.089286 0.046379 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_04.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_04.txt new file mode 100644 index 000000000..8dca967b0 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_04.txt @@ -0,0 +1,5 @@ +29 0.769221 0.636243 0.114335 0.156746 +8 0.648934 0.644345 0.118304 0.140542 +17 0.517733 0.651290 0.129712 0.167659 +9 0.393229 0.650132 0.114335 0.139550 +42 0.253224 0.647983 0.147817 0.143849 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_05.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_05.txt new file mode 100644 index 000000000..47dacfe41 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_05.txt @@ -0,0 +1,5 @@ +0 0.515708 0.673983 0.073743 0.072669 +6 0.597388 0.677455 0.100198 0.075149 +34 0.692791 0.677579 0.097222 0.068948 +42 0.796792 0.675223 0.110780 0.052827 +23 0.900298 0.676339 0.091601 0.067956 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_06.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_06.txt new file mode 100644 index 000000000..ceb98e1d6 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_06.txt @@ -0,0 +1,6 @@ +12 0.244709 0.705481 0.118386 0.094494 +17 0.360615 0.712674 0.110780 0.094494 +34 0.470073 0.714782 0.122685 0.083829 +28 0.581515 0.717510 0.108796 0.086310 +42 0.689649 0.717510 0.116071 0.062500 +11 0.800595 0.720734 0.118386 0.092758 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_07.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_07.txt new file mode 100644 index 000000000..438bb6cc2 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_07.txt @@ -0,0 +1,6 @@ +29 0.193122 0.331225 0.087302 0.067212 +6 0.279597 0.339906 0.081019 0.059276 +34 0.353671 0.343874 0.077712 0.068700 +42 0.433201 0.347966 0.083333 0.036706 +23 0.513228 0.354663 0.074735 0.052083 +11 0.592593 0.359127 0.080026 0.059028 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_08.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_08.txt new file mode 100644 index 000000000..7c2b99a2c --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_08.txt @@ -0,0 +1,5 @@ +1 0.569610 0.389509 0.079034 0.068700 +17 0.651290 0.401538 0.094907 0.065476 +36 0.735119 0.404390 0.076720 0.064732 +33 0.829365 0.412698 0.111772 0.071925 +26 0.922784 0.416295 0.087632 0.063244 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_09.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_09.txt new file mode 100644 index 000000000..96530b2bb --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_09.txt @@ -0,0 +1,6 @@ +12 0.391534 0.638641 0.064153 0.045635 +7 0.395172 0.694320 0.062831 0.039931 +17 0.397983 0.753844 0.072421 0.042411 +31 0.395668 0.810764 0.070437 0.040675 +14 0.396329 0.867188 0.071759 0.039931 +26 0.395172 0.927579 0.052249 0.040675 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_10.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_10.txt new file mode 100644 index 000000000..97704f38b --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_111821393_10.txt @@ -0,0 +1,5 @@ +29 0.392526 0.899926 0.076720 0.060764 +17 0.475198 0.902282 0.078042 0.063988 +33 0.560516 0.901910 0.080026 0.056796 +28 0.635251 0.898438 0.073413 0.052827 +23 0.713624 0.898810 0.083333 0.060020 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372.txt new file mode 100644 index 000000000..38ff1b5ce --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372.txt @@ -0,0 +1,5 @@ +12 0.339352 0.523264 0.095370 0.075694 +6 0.439815 0.515972 0.088889 0.080556 +33 0.537963 0.515625 0.088889 0.068750 +28 0.639352 0.511458 0.087963 0.067361 +23 0.742130 0.507986 0.095370 0.070139 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_01.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_01.txt new file mode 100644 index 000000000..2257710f8 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_01.txt @@ -0,0 +1,6 @@ +29 0.172685 0.240278 0.117593 0.097222 +6 0.290278 0.244097 0.125000 0.092361 +34 0.404167 0.239236 0.117593 0.099306 +28 0.516667 0.241319 0.111111 0.090972 +42 0.634722 0.239931 0.125000 0.068750 +23 0.751852 0.239931 0.122222 0.089583 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_02.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_02.txt new file mode 100644 index 000000000..cd4e7544f --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_02.txt @@ -0,0 +1,5 @@ +29 0.192130 0.250000 0.134259 0.088889 +6 0.355093 0.249653 0.147222 0.093750 +8 0.512963 0.246181 0.140741 0.097917 +33 0.676852 0.241319 0.135185 0.095139 +23 0.842130 0.229861 0.123148 0.101389 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_03.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_03.txt new file mode 100644 index 000000000..ee1ad13a5 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_03.txt @@ -0,0 +1,5 @@ +29 0.218056 0.278125 0.106481 0.093750 +6 0.330093 0.284375 0.123148 0.090972 +34 0.439352 0.286806 0.121296 0.090278 +28 0.550000 0.285764 0.109259 0.081250 +23 0.666667 0.285764 0.111111 0.088194 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_04.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_04.txt new file mode 100644 index 000000000..aa8dc4f10 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_04.txt @@ -0,0 +1,4 @@ +0 0.317177 0.586503 0.113946 0.093252 +17 0.443878 0.590798 0.122449 0.072393 +33 0.581633 0.584663 0.122449 0.067485 +36 0.715136 0.585276 0.110544 0.078528 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_05.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_05.txt new file mode 100644 index 000000000..8df95b285 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_05.txt @@ -0,0 +1,6 @@ +29 0.390741 0.432639 0.075926 0.061111 +6 0.459722 0.435417 0.067593 0.055556 +34 0.530556 0.431597 0.068519 0.059028 +8 0.599537 0.435764 0.076852 0.059028 +42 0.672685 0.435069 0.076852 0.040972 +11 0.744907 0.434028 0.082407 0.062500 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_06.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_06.txt new file mode 100644 index 000000000..ba8585882 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_06.txt @@ -0,0 +1,7 @@ +1 0.129167 0.192361 0.117593 0.093056 +6 0.249074 0.194444 0.116667 0.090278 +33 0.365741 0.195833 0.122222 0.097222 +8 0.485648 0.196528 0.113889 0.090278 +42 0.605556 0.195486 0.124074 0.060417 +23 0.724074 0.197222 0.112963 0.083333 +11 0.849537 0.198264 0.121296 0.093750 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_07.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_07.txt new file mode 100644 index 000000000..b9e983ddb --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_07.txt @@ -0,0 +1,7 @@ +29 0.271759 0.351042 0.084259 0.064583 +6 0.349074 0.353819 0.081481 0.064583 +33 0.424537 0.355208 0.078704 0.061806 +8 0.500000 0.357292 0.075926 0.059028 +42 0.573611 0.357639 0.078704 0.045833 +23 0.647685 0.358681 0.073148 0.052083 +11 0.722685 0.360417 0.071296 0.056944 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_08.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_08.txt new file mode 100644 index 000000000..a265206e9 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_08.txt @@ -0,0 +1,5 @@ +0 0.192771 0.355015 0.132530 0.106831 +6 0.331325 0.352471 0.130522 0.111919 +33 0.467369 0.344113 0.133534 0.102471 +21 0.613454 0.330669 0.124498 0.100291 +11 0.757530 0.321221 0.155622 0.120640 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_09.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_09.txt new file mode 100644 index 000000000..6f997ed49 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_09.txt @@ -0,0 +1,5 @@ +0 0.441667 0.745139 0.048148 0.047222 +17 0.493981 0.739236 0.050926 0.039583 +34 0.548148 0.725347 0.050000 0.036806 +8 0.602315 0.721875 0.050926 0.040972 +11 0.654630 0.716319 0.051852 0.038194 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_10.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_10.txt new file mode 100644 index 000000000..11326d76a --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_144454372_10.txt @@ -0,0 +1,6 @@ +29 0.313889 0.414583 0.077778 0.058333 +6 0.386111 0.418056 0.077778 0.056944 +34 0.456019 0.418750 0.069444 0.056944 +8 0.529167 0.421528 0.071296 0.056944 +42 0.601852 0.422917 0.074074 0.038889 +21 0.671296 0.428125 0.064815 0.056250 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765.txt new file mode 100644 index 000000000..95d8f6149 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765.txt @@ -0,0 +1,5 @@ +12 0.280556 0.606597 0.092593 0.068750 +14 0.390278 0.623264 0.119444 0.056250 +25 0.494444 0.628472 0.088889 0.068056 +34 0.592593 0.632986 0.096296 0.072917 +26 0.683333 0.639583 0.085185 0.056944 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_01.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_01.txt new file mode 100644 index 000000000..2406cfb4d --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_01.txt @@ -0,0 +1,11 @@ +29 0.229880 0.129861 0.049029 0.040278 +6 0.293247 0.130556 0.051804 0.038889 +34 0.357539 0.131250 0.045328 0.040278 +8 0.421369 0.130903 0.050879 0.040972 +11 0.485199 0.130208 0.054579 0.040972 +21 0.549491 0.128472 0.048104 0.033333 +29 0.250694 0.181597 0.053654 0.038194 +6 0.325624 0.182986 0.055504 0.040972 +11 0.401018 0.182986 0.058279 0.040972 +20 0.477798 0.181944 0.056429 0.040278 +8 0.550416 0.179167 0.057354 0.043056 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_02.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_02.txt new file mode 100644 index 000000000..97effdef4 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_02.txt @@ -0,0 +1,4 @@ +30 0.362963 0.297569 0.096296 0.065972 +9 0.478704 0.286806 0.098148 0.063889 +6 0.598611 0.281597 0.099074 0.064583 +8 0.719907 0.279514 0.100926 0.070139 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_03.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_03.txt new file mode 100644 index 000000000..4aec88ab3 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_03.txt @@ -0,0 +1,4 @@ +26 0.421296 0.479167 0.059259 0.051389 +11 0.498148 0.477083 0.059259 0.047222 +34 0.577315 0.480903 0.073148 0.047917 +6 0.650926 0.478472 0.061111 0.045833 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_04.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_04.txt new file mode 100644 index 000000000..71ef054af --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_04.txt @@ -0,0 +1,5 @@ +30 0.259722 0.781597 0.112037 0.065972 +6 0.376852 0.788542 0.116667 0.067361 +31 0.490278 0.787500 0.104630 0.069444 +28 0.601389 0.784028 0.106481 0.081944 +18 0.715741 0.794444 0.098148 0.094444 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_05.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_05.txt new file mode 100644 index 000000000..a3c9e7c4c --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_05.txt @@ -0,0 +1,7 @@ +29 0.248148 0.379861 0.133333 0.095833 +6 0.378704 0.371181 0.127778 0.093750 +11 0.510185 0.362847 0.120370 0.097917 +21 0.643056 0.363542 0.132407 0.085417 +9 0.330093 0.465278 0.150926 0.095833 +8 0.468056 0.457639 0.119444 0.098611 +41 0.590741 0.456597 0.122222 0.096528 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_06.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_06.txt new file mode 100644 index 000000000..d66e7cb40 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_06.txt @@ -0,0 +1,4 @@ +29 0.143386 0.703472 0.085106 0.063889 +26 0.226642 0.705903 0.072155 0.053472 +6 0.298335 0.707639 0.071230 0.047222 +25 0.379741 0.707986 0.076781 0.057639 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_07.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_07.txt new file mode 100644 index 000000000..6f9259310 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_07.txt @@ -0,0 +1,5 @@ +12 0.336574 0.711806 0.084259 0.065278 +6 0.442593 0.710417 0.090741 0.069444 +34 0.545370 0.700347 0.094444 0.057639 +28 0.643056 0.688542 0.076852 0.057639 +11 0.741667 0.681597 0.094444 0.078472 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_08.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_08.txt new file mode 100644 index 000000000..3a92721e9 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_08.txt @@ -0,0 +1,4 @@ +29 0.376389 0.550694 0.106481 0.066667 +17 0.488889 0.569444 0.112963 0.073611 +33 0.610185 0.574653 0.112963 0.075694 +23 0.732870 0.588194 0.119444 0.076389 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_09.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_09.txt new file mode 100644 index 000000000..e9c678590 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_09.txt @@ -0,0 +1,5 @@ +29 0.393981 0.292014 0.091667 0.072917 +6 0.529167 0.296528 0.113889 0.068056 +20 0.667593 0.294097 0.096296 0.067361 +9 0.449074 0.365972 0.107407 0.063889 +8 0.585648 0.361806 0.106481 0.063889 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_10.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_10.txt new file mode 100644 index 000000000..b76cf393a --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_221400765_10.txt @@ -0,0 +1,4 @@ +29 0.302778 0.757986 0.094444 0.078472 +6 0.426389 0.753125 0.100926 0.079861 +33 0.544444 0.744097 0.087037 0.070139 +11 0.655093 0.747569 0.097222 0.077083 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225.txt new file mode 100644 index 000000000..a7e6b4a98 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225.txt @@ -0,0 +1,9 @@ +6 0.375000 0.479911 0.062831 0.044643 +36 0.445437 0.482639 0.082011 0.060020 +34 0.529101 0.490699 0.093915 0.064732 +8 0.614914 0.492684 0.077712 0.060764 +0 0.377646 0.090774 0.044974 0.047123 +6 0.445933 0.079489 0.061839 0.037450 +37 0.516204 0.079985 0.055556 0.038442 +34 0.588294 0.097098 0.058862 0.045387 +8 0.662533 0.106399 0.061839 0.041667 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_01.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_01.txt new file mode 100644 index 000000000..f3239b437 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_01.txt @@ -0,0 +1,6 @@ +1 0.348876 0.535094 0.057540 0.051339 +6 0.415013 0.536334 0.064153 0.045387 +33 0.485450 0.539931 0.066138 0.046627 +8 0.557374 0.531498 0.084325 0.055060 +23 0.631448 0.526290 0.072421 0.049603 +11 0.350860 0.585565 0.066138 0.049603 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_02.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_02.txt new file mode 100644 index 000000000..f2b1d1f12 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_02.txt @@ -0,0 +1,5 @@ +29 0.184400 0.693783 0.056796 0.044974 +6 0.184276 0.636243 0.039187 0.050926 +34 0.181176 0.581845 0.040923 0.055225 +21 0.185144 0.523148 0.042411 0.050926 +11 0.187128 0.468750 0.043403 0.051257 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_03.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_03.txt new file mode 100644 index 000000000..e051c5b2e --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_03.txt @@ -0,0 +1,15 @@ +1 0.341435 0.370288 0.059854 0.051091 +6 0.413856 0.372024 0.072421 0.043155 +11 0.487599 0.369916 0.070437 0.050347 +34 0.562169 0.371900 0.074735 0.044891 +27 0.641700 0.371156 0.067130 0.044891 +11 0.642196 0.436012 0.074735 0.049603 +26 0.559524 0.439112 0.058862 0.043403 +27 0.635747 0.497148 0.063823 0.053819 +34 0.559524 0.497520 0.067460 0.051091 +34 0.481151 0.440228 0.076720 0.045635 +11 0.484954 0.497892 0.067130 0.055308 +6 0.408069 0.441096 0.067460 0.048859 +6 0.409722 0.496776 0.074735 0.048115 +1 0.334491 0.433160 0.054563 0.050347 +1 0.337136 0.493180 0.061839 0.055308 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_04.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_04.txt new file mode 100644 index 000000000..e1fd45b49 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_04.txt @@ -0,0 +1,6 @@ +28 0.435185 0.511161 0.057540 0.035218 +23 0.433201 0.551959 0.064153 0.043403 +17 0.548776 0.513517 0.067130 0.043403 +12 0.545635 0.550719 0.067460 0.040923 +12 0.658234 0.554688 0.061839 0.043899 +33 0.657242 0.515129 0.070437 0.041667 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_05.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_05.txt new file mode 100644 index 000000000..260f7c86c --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_05.txt @@ -0,0 +1,6 @@ +1 0.369544 0.419891 0.067130 0.057540 +11 0.372354 0.484375 0.106481 0.069444 +17 0.447917 0.419519 0.089616 0.053819 +33 0.524306 0.421503 0.084325 0.051339 +8 0.597388 0.417535 0.077050 0.059276 +23 0.667824 0.415551 0.079034 0.061756 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_06.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_06.txt new file mode 100644 index 000000000..c101bbae9 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_06.txt @@ -0,0 +1,5 @@ +29 0.172950 0.748264 0.057540 0.039187 +26 0.238922 0.742436 0.059854 0.038442 +11 0.298611 0.739211 0.055556 0.038442 +14 0.365410 0.728051 0.064815 0.031994 +6 0.431548 0.723090 0.050265 0.033482 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_07.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_07.txt new file mode 100644 index 000000000..6aebd9699 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_07.txt @@ -0,0 +1,6 @@ +29 0.340774 0.363219 0.073743 0.060764 +17 0.485780 0.366319 0.080026 0.061012 +23 0.338624 0.423611 0.088624 0.060020 +8 0.486442 0.426711 0.087302 0.061756 +33 0.625661 0.368676 0.090608 0.051339 +12 0.621528 0.427827 0.075728 0.063988 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_09.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_09.txt new file mode 100644 index 000000000..a8fa4f0e6 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_09.txt @@ -0,0 +1,5 @@ +29 0.282242 0.771577 0.092923 0.067956 +17 0.374504 0.771205 0.091601 0.060764 +33 0.474041 0.765625 0.103505 0.071925 +42 0.573413 0.759177 0.111772 0.041667 +23 0.674107 0.755952 0.089616 0.059028 diff --git a/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_10.txt b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_10.txt new file mode 100644 index 000000000..d0fb2b720 --- /dev/null +++ b/ai_train/retrain/data/symbol/test/labels/KakaoTalk_20250516_223034225_10.txt @@ -0,0 +1,4 @@ +26 0.324239 0.742808 0.059854 0.040675 +11 0.392526 0.738839 0.064153 0.039187 +14 0.461310 0.731523 0.069444 0.037450 +6 0.530754 0.732391 0.058862 0.039187 diff --git a/ai_train/retrain/data/symbol/train/images/IMG_9107.jpeg b/ai_train/retrain/data/symbol/train/images/IMG_9107.jpeg new file mode 100644 index 000000000..1fda2702b Binary files /dev/null and b/ai_train/retrain/data/symbol/train/images/IMG_9107.jpeg differ diff --git a/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250514_212707873_02.jpg b/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250514_212707873_02.jpg new file mode 100644 index 000000000..2cfcf7aa0 Binary files /dev/null and b/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250514_212707873_02.jpg differ diff --git a/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250514_212707873_07.jpg b/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250514_212707873_07.jpg new file mode 100644 index 000000000..4148afc88 Binary files /dev/null and b/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250514_212707873_07.jpg differ diff --git a/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250514_212707873_10.jpg b/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250514_212707873_10.jpg new file mode 100644 index 000000000..48db5e49f Binary files /dev/null and b/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250514_212707873_10.jpg differ diff --git a/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_111821393_07.jpg b/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_111821393_07.jpg new file mode 100644 index 000000000..2b6ab5e64 Binary files /dev/null and b/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_111821393_07.jpg differ diff --git a/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_111821393_08.jpg b/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_111821393_08.jpg new file mode 100644 index 000000000..b3025afa2 Binary files /dev/null and b/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_111821393_08.jpg differ diff --git a/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_111821393_09.jpg b/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_111821393_09.jpg new file mode 100644 index 000000000..d3f91b0a6 Binary files /dev/null and b/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_111821393_09.jpg differ diff --git a/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_111821393_10.jpg b/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_111821393_10.jpg new file mode 100644 index 000000000..48ed367cf Binary files /dev/null and b/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_111821393_10.jpg differ diff --git a/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_144454372_02.jpg b/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_144454372_02.jpg new file mode 100644 index 000000000..106063a6e Binary files /dev/null and b/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_144454372_02.jpg differ diff --git a/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_144454372_04.jpg b/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_144454372_04.jpg new file mode 100644 index 000000000..5ba8ed409 Binary files /dev/null and b/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_144454372_04.jpg differ diff --git a/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_144454372_08.jpg b/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_144454372_08.jpg new file mode 100644 index 000000000..d7a464fb1 Binary files /dev/null and b/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_144454372_08.jpg differ diff --git a/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_221400765_07.jpg b/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_221400765_07.jpg new file mode 100644 index 000000000..ed356d6a4 Binary files /dev/null and b/ai_train/retrain/data/symbol/train/images/KakaoTalk_20250516_221400765_07.jpg differ diff --git a/ai_train/retrain/data/symbol/train/labels.cache b/ai_train/retrain/data/symbol/train/labels.cache new file mode 100644 index 000000000..757ef0e10 Binary files /dev/null and b/ai_train/retrain/data/symbol/train/labels.cache differ diff --git a/ai_train/retrain/data/symbol/train/labels/IMG_9107.txt b/ai_train/retrain/data/symbol/train/labels/IMG_9107.txt new file mode 100644 index 000000000..bdfe10f08 --- /dev/null +++ b/ai_train/retrain/data/symbol/train/labels/IMG_9107.txt @@ -0,0 +1,4 @@ +11 0.398611 0.202778 0.123148 0.093056 +26 0.250000 0.214931 0.127778 0.093750 +6 0.693056 0.185069 0.121296 0.092361 +34 0.547685 0.197222 0.136111 0.090278 diff --git a/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250514_212707873_02.txt b/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250514_212707873_02.txt new file mode 100644 index 000000000..6db559661 --- /dev/null +++ b/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250514_212707873_02.txt @@ -0,0 +1,7 @@ +11 0.271495 0.636905 0.309524 0.190476 +9 0.774140 0.469866 0.233466 0.136161 +21 0.789021 0.617808 0.210979 0.160218 +42 0.522983 0.630952 0.264220 0.120040 +42 0.618552 0.623388 0.124008 0.105903 +6 0.529762 0.484995 0.228175 0.164931 +21 0.262070 0.487847 0.272817 0.139881 diff --git a/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250514_212707873_07.txt b/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250514_212707873_07.txt new file mode 100644 index 000000000..a9210ccc1 --- /dev/null +++ b/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250514_212707873_07.txt @@ -0,0 +1,5 @@ +27 0.801091 0.543527 0.112103 0.080109 +34 0.663690 0.544643 0.132937 0.088790 +11 0.520833 0.547123 0.139550 0.108631 +1 0.207341 0.550719 0.156746 0.085069 +6 0.367394 0.550719 0.152778 0.110367 diff --git a/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250514_212707873_10.txt b/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250514_212707873_10.txt new file mode 100644 index 000000000..bc9494c34 --- /dev/null +++ b/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250514_212707873_10.txt @@ -0,0 +1,5 @@ +21 0.712798 0.734995 0.098876 0.077133 +26 0.596065 0.709573 0.094907 0.089782 +6 0.363095 0.690352 0.111772 0.081101 +34 0.480324 0.689856 0.104167 0.079117 +1 0.260086 0.691592 0.093585 0.087054 diff --git a/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_111821393_07.txt b/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_111821393_07.txt new file mode 100644 index 000000000..a55355fbb --- /dev/null +++ b/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_111821393_07.txt @@ -0,0 +1,6 @@ +11 0.592593 0.359127 0.077381 0.065972 +42 0.430886 0.346602 0.081349 0.045883 +34 0.354663 0.341022 0.073743 0.064484 +29 0.196759 0.331225 0.086640 0.069196 +21 0.512897 0.354043 0.069444 0.057788 +6 0.280919 0.336062 0.083664 0.068452 diff --git a/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_111821393_08.txt b/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_111821393_08.txt new file mode 100644 index 000000000..348df6aa0 --- /dev/null +++ b/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_111821393_08.txt @@ -0,0 +1,4 @@ +26 0.921131 0.413690 0.087632 0.062500 +34 0.826720 0.408234 0.099206 0.065476 +36 0.739418 0.399802 0.083995 0.065476 +17 0.648313 0.395709 0.083664 0.066220 diff --git a/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_111821393_09.txt b/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_111821393_09.txt new file mode 100644 index 000000000..0651409eb --- /dev/null +++ b/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_111821393_09.txt @@ -0,0 +1,6 @@ +14 0.395007 0.866815 0.069775 0.045139 +6 0.396495 0.750992 0.062831 0.044643 +20 0.396660 0.807540 0.065146 0.043155 +12 0.394511 0.635293 0.064815 0.043403 +27 0.396825 0.926091 0.057540 0.042163 +12 0.395668 0.692708 0.054563 0.040675 diff --git a/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_111821393_10.txt b/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_111821393_10.txt new file mode 100644 index 000000000..1ce4f3cd0 --- /dev/null +++ b/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_111821393_10.txt @@ -0,0 +1,5 @@ +28 0.634094 0.896701 0.067130 0.056796 +21 0.718419 0.894593 0.079696 0.064484 +29 0.392030 0.896949 0.083664 0.058780 +17 0.476521 0.898562 0.084656 0.067956 +34 0.557870 0.899182 0.072751 0.059276 diff --git a/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_144454372_02.txt b/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_144454372_02.txt new file mode 100644 index 000000000..d33217fca --- /dev/null +++ b/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_144454372_02.txt @@ -0,0 +1,5 @@ +29 0.190741 0.250000 0.138889 0.088889 +23 0.843981 0.229861 0.145370 0.105556 +34 0.680093 0.238889 0.139815 0.094444 +8 0.515278 0.245486 0.149074 0.096528 +6 0.350463 0.247222 0.158333 0.097222 diff --git a/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_144454372_04.txt b/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_144454372_04.txt new file mode 100644 index 000000000..d969f8711 --- /dev/null +++ b/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_144454372_04.txt @@ -0,0 +1,3 @@ +36 0.713435 0.585890 0.130952 0.087117 +34 0.579932 0.584663 0.122449 0.069939 +17 0.443027 0.588344 0.134354 0.087117 diff --git a/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_144454372_08.txt b/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_144454372_08.txt new file mode 100644 index 000000000..7b68c52ff --- /dev/null +++ b/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_144454372_08.txt @@ -0,0 +1,5 @@ +21 0.609438 0.327762 0.138554 0.110465 +11 0.758032 0.320494 0.160643 0.117733 +34 0.470884 0.340116 0.142570 0.103198 +6 0.332831 0.349201 0.149598 0.112645 +0 0.191265 0.355741 0.143574 0.108285 diff --git a/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_221400765_07.txt b/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_221400765_07.txt new file mode 100644 index 000000000..4179029da --- /dev/null +++ b/ai_train/retrain/data/symbol/train/labels/KakaoTalk_20250516_221400765_07.txt @@ -0,0 +1,5 @@ +11 0.743519 0.682639 0.098148 0.069444 +27 0.643056 0.687500 0.087963 0.061111 +34 0.545833 0.700347 0.093519 0.052083 +12 0.333333 0.715278 0.101852 0.068056 +6 0.442593 0.709722 0.101852 0.070833 diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00003.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00003.jpg new file mode 100644 index 000000000..33cf88484 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00003.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00007.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00007.jpg new file mode 100644 index 000000000..f8c342108 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00007.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00010.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00010.jpg new file mode 100644 index 000000000..fd15c8afa Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00010.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00011.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00011.jpg new file mode 100644 index 000000000..72faa1c91 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00011.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00017.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00017.jpg new file mode 100644 index 000000000..b5f2a4ede Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00017.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00030.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00030.jpg new file mode 100644 index 000000000..12fe833e8 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00030.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00049.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00049.jpg new file mode 100644 index 000000000..cbe8be104 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00049.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00052.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00052.jpg new file mode 100644 index 000000000..50525c032 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00052.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00057.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00057.jpg new file mode 100644 index 000000000..a7c7ba12f Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00057.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00062.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00062.jpg new file mode 100644 index 000000000..e719bd79d Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00062.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00077.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00077.jpg new file mode 100644 index 000000000..df0d2160f Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00077.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00079.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00079.jpg new file mode 100644 index 000000000..35a71e397 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00079.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00097.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00097.jpg new file mode 100644 index 000000000..ef56ce453 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00097.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00110.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00110.jpg new file mode 100644 index 000000000..4fcb17a68 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00110.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00112.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00112.jpg new file mode 100644 index 000000000..4a890ada0 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00112.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00116.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00116.jpg new file mode 100644 index 000000000..b4f0cdaba Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00116.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00123.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00123.jpg new file mode 100644 index 000000000..82cb42e3b Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00123.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00127.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00127.jpg new file mode 100644 index 000000000..88bad4ffe Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00127.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00137.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00137.jpg new file mode 100644 index 000000000..efdb408e6 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00137.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00149.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00149.jpg new file mode 100644 index 000000000..48a43d73e Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00149.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00157.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00157.jpg new file mode 100644 index 000000000..ea677f7de Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00157.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00160.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00160.jpg new file mode 100644 index 000000000..9e2c09ba9 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00160.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00175.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00175.jpg new file mode 100644 index 000000000..438da27aa Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00175.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00178.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00178.jpg new file mode 100644 index 000000000..8c076086e Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00178.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00179.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00179.jpg new file mode 100644 index 000000000..67ba0e129 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00179.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00187.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00187.jpg new file mode 100644 index 000000000..cb3c35bb0 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00187.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00189.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00189.jpg new file mode 100644 index 000000000..efa22beb0 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00189.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00193.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00193.jpg new file mode 100644 index 000000000..35d78f6b3 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00193.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00196.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00196.jpg new file mode 100644 index 000000000..d7e60073e Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00196.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00199.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00199.jpg new file mode 100644 index 000000000..8c92557d8 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00199.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00200.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00200.jpg new file mode 100644 index 000000000..d14f06b4f Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00200.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00206.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00206.jpg new file mode 100644 index 000000000..cfb08128c Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00206.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00207.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00207.jpg new file mode 100644 index 000000000..a79acf48d Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00207.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00211.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00211.jpg new file mode 100644 index 000000000..0289fccd6 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00211.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00213.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00213.jpg new file mode 100644 index 000000000..15801245b Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00213.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00218.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00218.jpg new file mode 100644 index 000000000..1997d80e4 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00218.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00228.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00228.jpg new file mode 100644 index 000000000..a25d33425 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00228.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00243.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00243.jpg new file mode 100644 index 000000000..07f62e16b Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00243.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00245.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00245.jpg new file mode 100644 index 000000000..64a803de4 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00245.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00286.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00286.jpg new file mode 100644 index 000000000..f7e66f397 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00286.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00287.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00287.jpg new file mode 100644 index 000000000..0292fadee Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00287.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00288.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00288.jpg new file mode 100644 index 000000000..dda24e2f7 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00288.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00312.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00312.jpg new file mode 100644 index 000000000..a529b2c23 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00312.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00313.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00313.jpg new file mode 100644 index 000000000..71c5e301a Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00313.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00317.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00317.jpg new file mode 100644 index 000000000..5340b2cf8 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00317.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00319.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00319.jpg new file mode 100644 index 000000000..ad63e395b Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00319.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00332.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00332.jpg new file mode 100644 index 000000000..c5e72d387 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00332.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00343.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00343.jpg new file mode 100644 index 000000000..3d6ff94e2 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00343.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00359.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00359.jpg new file mode 100644 index 000000000..e05c553ec Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00359.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00361.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00361.jpg new file mode 100644 index 000000000..c47ef13b6 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00361.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00370.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00370.jpg new file mode 100644 index 000000000..7d0ff3487 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00370.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00372.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00372.jpg new file mode 100644 index 000000000..0ba4b3813 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00372.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00391.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00391.jpg new file mode 100644 index 000000000..51873137d Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00391.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00402.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00402.jpg new file mode 100644 index 000000000..26cf997dc Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00402.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00415.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00415.jpg new file mode 100644 index 000000000..dd8aa3df4 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00415.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00420.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00420.jpg new file mode 100644 index 000000000..204ebb903 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00420.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00430.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00430.jpg new file mode 100644 index 000000000..b6bb7d2ca Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00430.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00432.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00432.jpg new file mode 100644 index 000000000..8dc0a822d Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00432.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00456.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00456.jpg new file mode 100644 index 000000000..3c6d6fa7b Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00456.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00457.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00457.jpg new file mode 100644 index 000000000..0fdce97a7 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00457.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00475.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00475.jpg new file mode 100644 index 000000000..05bfee01a Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00475.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00497.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00497.jpg new file mode 100644 index 000000000..1b7ef8690 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00497.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00514.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00514.jpg new file mode 100644 index 000000000..630089198 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00514.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00518.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00518.jpg new file mode 100644 index 000000000..09051fec6 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00518.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00521.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00521.jpg new file mode 100644 index 000000000..759e8f5ce Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00521.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00528.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00528.jpg new file mode 100644 index 000000000..c5de69586 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00528.jpg differ diff --git a/ai_train/retrain/data/symbol/val/images/symbol_00532.jpg b/ai_train/retrain/data/symbol/val/images/symbol_00532.jpg new file mode 100644 index 000000000..11d4c1bcc Binary files /dev/null and b/ai_train/retrain/data/symbol/val/images/symbol_00532.jpg differ diff --git a/ai_train/retrain/data/symbol/val/labels.cache b/ai_train/retrain/data/symbol/val/labels.cache new file mode 100644 index 000000000..7d8a7f2e5 Binary files /dev/null and b/ai_train/retrain/data/symbol/val/labels.cache differ diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00003.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00003.txt new file mode 100644 index 000000000..5d2b6f752 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00003.txt @@ -0,0 +1,5 @@ +11 0.548958 0.435417 0.047917 0.037500 +8 0.613542 0.409375 0.039583 0.039583 +9 0.671875 0.427083 0.068750 0.054167 +12 0.656250 0.477083 0.066667 0.054167 +6 0.598958 0.455208 0.052083 0.043750 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00007.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00007.txt new file mode 100644 index 000000000..69437509d --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00007.txt @@ -0,0 +1,6 @@ +1 0.646875 0.284375 0.097917 0.093750 +17 0.547917 0.310417 0.070833 0.104167 +9 0.530208 0.221875 0.097917 0.089583 +21 0.417708 0.248958 0.093750 0.085417 +11 0.439583 0.332292 0.091667 0.093750 +42 0.331250 0.348958 0.100000 0.072917 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00010.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00010.txt new file mode 100644 index 000000000..98c8596b2 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00010.txt @@ -0,0 +1,5 @@ +9 0.384375 0.314583 0.110417 0.100000 +17 0.451042 0.410417 0.072917 0.100000 +23 0.500000 0.496875 0.066667 0.093750 +9 0.563542 0.578125 0.089583 0.089583 +28 0.631250 0.669792 0.095833 0.093750 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00011.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00011.txt new file mode 100644 index 000000000..87d94161f --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00011.txt @@ -0,0 +1,4 @@ +12 0.512500 0.310417 0.116667 0.100000 +6 0.591667 0.375000 0.095833 0.079167 +34 0.673958 0.438542 0.093750 0.064583 +28 0.751042 0.520833 0.114583 0.087500 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00017.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00017.txt new file mode 100644 index 000000000..95e1b2866 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00017.txt @@ -0,0 +1,15 @@ +28 0.335417 0.415625 0.066667 0.047917 +6 0.419792 0.416667 0.081250 0.058333 +32 0.495833 0.420833 0.079167 0.058333 +11 0.581250 0.423958 0.083333 0.056250 +21 0.670833 0.426042 0.087500 0.064583 +28 0.330208 0.485417 0.068750 0.041667 +6 0.416667 0.488542 0.079167 0.056250 +9 0.494792 0.495833 0.072917 0.058333 +11 0.578125 0.500000 0.081250 0.054167 +20 0.665625 0.507292 0.072917 0.043750 +12 0.317708 0.589583 0.077083 0.054167 +6 0.397917 0.602083 0.075000 0.050000 +20 0.484375 0.606250 0.089583 0.050000 +9 0.571875 0.612500 0.081250 0.054167 +28 0.667708 0.622917 0.089583 0.054167 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00030.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00030.txt new file mode 100644 index 000000000..48989ca8c --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00030.txt @@ -0,0 +1,5 @@ +1 0.391667 0.662500 0.100000 0.087500 +17 0.418750 0.581250 0.083333 0.066667 +9 0.437500 0.504167 0.079167 0.091667 +8 0.460417 0.402083 0.095833 0.095833 +23 0.492708 0.304167 0.081250 0.079167 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00049.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00049.txt new file mode 100644 index 000000000..d9a83c5c7 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00049.txt @@ -0,0 +1,4 @@ +30 0.170833 0.514583 0.129167 0.112500 +26 0.321875 0.465625 0.093750 0.143750 +21 0.478125 0.405208 0.131250 0.102083 +6 0.634375 0.354167 0.143750 0.100000 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00052.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00052.txt new file mode 100644 index 000000000..600f8ca11 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00052.txt @@ -0,0 +1,4 @@ +21 0.239583 0.221875 0.191667 0.114583 +14 0.457292 0.303125 0.210417 0.106250 +17 0.671875 0.393750 0.160417 0.141667 +29 0.884375 0.477083 0.189583 0.120833 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00057.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00057.txt new file mode 100644 index 000000000..47612a12a --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00057.txt @@ -0,0 +1,2 @@ +6 0.190625 0.193750 0.177083 0.141667 +9 0.083333 0.368750 0.162500 0.191667 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00062.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00062.txt new file mode 100644 index 000000000..fc819282f --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00062.txt @@ -0,0 +1,5 @@ +0 0.120833 0.769792 0.104167 0.114583 +17 0.267708 0.772917 0.114583 0.129167 +31 0.427083 0.770833 0.108333 0.125000 +31 0.587500 0.771875 0.141667 0.097917 +11 0.739583 0.766667 0.116667 0.133333 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00077.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00077.txt new file mode 100644 index 000000000..0b259ea4f --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00077.txt @@ -0,0 +1,4 @@ +12 0.213542 0.784375 0.085417 0.089583 +6 0.295833 0.792708 0.079167 0.102083 +34 0.367708 0.782292 0.060417 0.093750 +28 0.456250 0.776042 0.079167 0.097917 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00079.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00079.txt new file mode 100644 index 000000000..be5f28001 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00079.txt @@ -0,0 +1,6 @@ +29 0.113542 0.859375 0.077083 0.106250 +6 0.182292 0.863542 0.068750 0.110417 +34 0.243750 0.863542 0.066667 0.102083 +23 0.307292 0.867708 0.060417 0.093750 +42 0.370833 0.870833 0.075000 0.075000 +11 0.439583 0.870833 0.075000 0.108333 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00097.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00097.txt new file mode 100644 index 000000000..a39e08afc --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00097.txt @@ -0,0 +1,6 @@ +12 0.266667 0.478125 0.058333 0.081250 +6 0.332292 0.530208 0.060417 0.077083 +11 0.393750 0.567708 0.062500 0.060417 +33 0.457292 0.619792 0.064583 0.052083 +27 0.519792 0.659375 0.077083 0.068750 +13 0.585417 0.700000 0.070833 0.075000 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00110.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00110.txt new file mode 100644 index 000000000..a0aece579 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00110.txt @@ -0,0 +1,5 @@ +0 0.623958 0.218750 0.052083 0.062500 +17 0.640625 0.276042 0.056250 0.047917 +37 0.657292 0.321875 0.047917 0.052083 +34 0.669792 0.372917 0.060417 0.062500 +8 0.695833 0.425000 0.050000 0.054167 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00112.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00112.txt new file mode 100644 index 000000000..3ca10b8dc --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00112.txt @@ -0,0 +1,5 @@ +30 0.388542 0.413542 0.056250 0.060417 +6 0.461458 0.414583 0.056250 0.054167 +9 0.537500 0.414583 0.062500 0.062500 +8 0.610417 0.420833 0.075000 0.062500 +11 0.685417 0.418750 0.066667 0.058333 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00116.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00116.txt new file mode 100644 index 000000000..c6f9eb6d9 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00116.txt @@ -0,0 +1,4 @@ +23 0.376042 0.475000 0.097917 0.095833 +33 0.387500 0.389583 0.075000 0.079167 +17 0.382292 0.310417 0.089583 0.070833 +29 0.400000 0.217708 0.083333 0.093750 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00123.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00123.txt new file mode 100644 index 000000000..4689e4f1c --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00123.txt @@ -0,0 +1,5 @@ +37 0.229167 0.657292 0.154167 0.152083 +21 0.380208 0.604167 0.131250 0.137500 +11 0.531250 0.541667 0.150000 0.154167 +6 0.681250 0.482292 0.125000 0.185417 +26 0.821875 0.410417 0.127083 0.154167 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00127.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00127.txt new file mode 100644 index 000000000..dfe8604f4 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00127.txt @@ -0,0 +1,6 @@ +12 0.231250 0.270833 0.170833 0.166667 +17 0.428125 0.345833 0.168750 0.129167 +23 0.320833 0.462500 0.204167 0.154167 +34 0.628125 0.443750 0.247917 0.145833 +11 0.655208 0.589583 0.197917 0.154167 +28 0.889583 0.518750 0.158333 0.187500 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00137.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00137.txt new file mode 100644 index 000000000..2f933f1a6 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00137.txt @@ -0,0 +1,6 @@ +29 0.137500 0.537500 0.145833 0.125000 +6 0.291667 0.533333 0.150000 0.129167 +33 0.435417 0.533333 0.129167 0.116667 +8 0.567708 0.520833 0.135417 0.133333 +42 0.701042 0.514583 0.131250 0.095833 +23 0.833333 0.505208 0.125000 0.114583 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00149.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00149.txt new file mode 100644 index 000000000..cc908ff63 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00149.txt @@ -0,0 +1,5 @@ +29 0.306250 0.219792 0.170833 0.168750 +6 0.425000 0.350000 0.175000 0.179167 +34 0.543750 0.483333 0.162500 0.154167 +42 0.665625 0.601042 0.168750 0.135417 +11 0.780208 0.735417 0.197917 0.183333 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00157.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00157.txt new file mode 100644 index 000000000..a4bee317f --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00157.txt @@ -0,0 +1,5 @@ +29 0.150000 0.620833 0.129167 0.137500 +17 0.301042 0.619792 0.131250 0.147917 +9 0.447917 0.633333 0.133333 0.133333 +42 0.607292 0.631250 0.135417 0.079167 +23 0.758333 0.635417 0.120833 0.125000 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00160.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00160.txt new file mode 100644 index 000000000..b3e89a3df --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00160.txt @@ -0,0 +1,4 @@ +29 0.332292 0.239583 0.131250 0.137500 +17 0.347917 0.428125 0.125000 0.172917 +23 0.404167 0.592708 0.120833 0.114583 +14 0.456250 0.757292 0.112500 0.139583 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00175.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00175.txt new file mode 100644 index 000000000..cf5e48fcd --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00175.txt @@ -0,0 +1,5 @@ +29 0.455208 0.871875 0.181250 0.181250 +17 0.469792 0.684375 0.156250 0.168750 +34 0.468750 0.504167 0.145833 0.170833 +11 0.485417 0.329167 0.154167 0.141667 +8 0.490625 0.158333 0.160417 0.141667 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00178.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00178.txt new file mode 100644 index 000000000..c7a08db77 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00178.txt @@ -0,0 +1,4 @@ +29 0.633333 0.741667 0.095833 0.162500 +17 0.709375 0.806250 0.114583 0.158333 +23 0.841667 0.836458 0.116667 0.156250 +11 0.646875 0.948958 0.110417 0.102083 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00179.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00179.txt new file mode 100644 index 000000000..dffcb389e --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00179.txt @@ -0,0 +1,5 @@ +0 0.551042 0.559375 0.060417 0.052083 +9 0.602083 0.619792 0.075000 0.060417 +11 0.656250 0.675000 0.079167 0.062500 +6 0.705208 0.745833 0.068750 0.066667 +8 0.755208 0.805208 0.064583 0.056250 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00187.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00187.txt new file mode 100644 index 000000000..8716d5730 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00187.txt @@ -0,0 +1,15 @@ +29 0.332292 0.540625 0.064583 0.047917 +6 0.416667 0.536458 0.066667 0.047917 +33 0.488542 0.534375 0.064583 0.047917 +21 0.564583 0.533333 0.070833 0.054167 +11 0.641667 0.525000 0.070833 0.050000 +29 0.338542 0.616667 0.081250 0.058333 +29 0.351042 0.708333 0.072917 0.054167 +6 0.423958 0.612500 0.072917 0.050000 +6 0.431250 0.707292 0.062500 0.052083 +33 0.503125 0.605208 0.064583 0.052083 +33 0.589583 0.695833 0.075000 0.045833 +20 0.510417 0.698958 0.062500 0.052083 +20 0.575000 0.604167 0.066667 0.050000 +11 0.654167 0.600000 0.079167 0.054167 +8 0.672917 0.689583 0.075000 0.050000 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00189.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00189.txt new file mode 100644 index 000000000..0c4db1a4f --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00189.txt @@ -0,0 +1,15 @@ +26 0.135417 0.789583 0.037500 0.045833 +11 0.175000 0.782292 0.041667 0.047917 +31 0.216667 0.778125 0.033333 0.035417 +6 0.251042 0.783333 0.031250 0.041667 +12 0.288542 0.782292 0.035417 0.039583 +12 0.584375 0.779167 0.039583 0.050000 +12 0.869792 0.772917 0.039583 0.041667 +6 0.547917 0.780208 0.037500 0.043750 +6 0.830208 0.772917 0.035417 0.045833 +31 0.511458 0.779167 0.031250 0.041667 +31 0.794792 0.769792 0.035417 0.043750 +11 0.471875 0.779167 0.043750 0.045833 +11 0.757292 0.770833 0.039583 0.045833 +26 0.434375 0.780208 0.039583 0.039583 +26 0.716667 0.772917 0.045833 0.045833 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00193.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00193.txt new file mode 100644 index 000000000..281256f76 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00193.txt @@ -0,0 +1,5 @@ +6 0.359375 0.416667 0.072917 0.070833 +34 0.428125 0.420833 0.064583 0.070833 +26 0.495833 0.427083 0.062500 0.075000 +14 0.568750 0.434375 0.075000 0.072917 +23 0.641667 0.443750 0.066667 0.066667 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00196.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00196.txt new file mode 100644 index 000000000..8994701c5 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00196.txt @@ -0,0 +1,5 @@ +8 0.356250 0.338542 0.100000 0.114583 +25 0.432292 0.390625 0.093750 0.093750 +6 0.583333 0.491667 0.087500 0.091667 +31 0.498958 0.441667 0.081250 0.095833 +0 0.651042 0.558333 0.077083 0.091667 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00199.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00199.txt new file mode 100644 index 000000000..ba38715e5 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00199.txt @@ -0,0 +1,12 @@ +12 0.472917 0.251042 0.037500 0.043750 +12 0.478125 0.435417 0.043750 0.045833 +12 0.468750 0.633333 0.041667 0.041667 +17 0.472917 0.284375 0.045833 0.035417 +17 0.476042 0.473958 0.039583 0.031250 +17 0.468750 0.668750 0.041667 0.033333 +34 0.473958 0.320833 0.035417 0.037500 +34 0.479167 0.506250 0.045833 0.033333 +34 0.470833 0.705208 0.041667 0.031250 +21 0.475000 0.355208 0.041667 0.031250 +21 0.481250 0.541667 0.037500 0.037500 +21 0.470833 0.741667 0.037500 0.033333 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00200.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00200.txt new file mode 100644 index 000000000..42fab9126 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00200.txt @@ -0,0 +1,5 @@ +1 0.542708 0.203125 0.077083 0.060417 +6 0.601042 0.258333 0.064583 0.070833 +11 0.666667 0.307292 0.070833 0.077083 +33 0.735417 0.359375 0.070833 0.068750 +8 0.798958 0.407292 0.068750 0.060417 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00206.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00206.txt new file mode 100644 index 000000000..1873ceb7c --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00206.txt @@ -0,0 +1,12 @@ +26 0.621875 0.037500 0.043750 0.041667 +6 0.677083 0.056250 0.045833 0.041667 +11 0.740625 0.072917 0.056250 0.045833 +9 0.800000 0.090625 0.050000 0.047917 +12 0.861458 0.109375 0.052083 0.039583 +12 0.452083 0.432292 0.045833 0.027083 +12 0.460417 0.406250 0.041667 0.029167 +27 0.407292 0.430208 0.039583 0.022917 +27 0.415625 0.403125 0.027083 0.027083 +6 0.502083 0.434375 0.045833 0.031250 +11 0.548958 0.434375 0.047917 0.031250 +9 0.601042 0.438542 0.043750 0.031250 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00207.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00207.txt new file mode 100644 index 000000000..edba9f784 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00207.txt @@ -0,0 +1,10 @@ +28 0.176042 0.541667 0.072917 0.075000 +6 0.222917 0.592708 0.070833 0.068750 +33 0.262500 0.636458 0.079167 0.072917 +21 0.296875 0.682292 0.072917 0.068750 +11 0.333333 0.730208 0.070833 0.081250 +11 0.239583 0.817708 0.079167 0.064583 +20 0.198958 0.770833 0.077083 0.070833 +33 0.155208 0.730208 0.068750 0.060417 +6 0.110417 0.687500 0.075000 0.066667 +28 0.071875 0.635417 0.072917 0.066667 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00211.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00211.txt new file mode 100644 index 000000000..9dc62a20b --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00211.txt @@ -0,0 +1,22 @@ +27 0.391667 0.379167 0.062500 0.066667 +27 0.470833 0.470833 0.066667 0.066667 +27 0.610417 0.662500 0.062500 0.075000 +34 0.436458 0.355208 0.052083 0.068750 +34 0.506250 0.444792 0.070833 0.068750 +34 0.658333 0.630208 0.062500 0.060417 +34 0.722917 0.727083 0.070833 0.079167 +34 0.642708 0.542708 0.068750 0.077083 +37 0.503125 0.344792 0.068750 0.089583 +37 0.567708 0.429167 0.085417 0.087500 +37 0.706250 0.610417 0.062500 0.066667 +37 0.773958 0.697917 0.060417 0.070833 +17 0.532292 0.298958 0.060417 0.064583 +17 0.600000 0.385417 0.058333 0.066667 +17 0.683333 0.492708 0.062500 0.064583 +17 0.742708 0.573958 0.060417 0.056250 +17 0.806250 0.656250 0.058333 0.062500 +1 0.589583 0.281250 0.066667 0.079167 +1 0.663542 0.368750 0.081250 0.083333 +1 0.735417 0.460417 0.062500 0.087500 +1 0.793750 0.537500 0.079167 0.087500 +1 0.868750 0.635417 0.087500 0.104167 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00213.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00213.txt new file mode 100644 index 000000000..2bdb1294e --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00213.txt @@ -0,0 +1,3 @@ +29 0.430208 0.403125 0.085417 0.102083 +17 0.528125 0.396875 0.093750 0.127083 +42 0.639583 0.398958 0.112500 0.089583 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00218.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00218.txt new file mode 100644 index 000000000..176bbaa3d --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00218.txt @@ -0,0 +1,5 @@ +1 0.141667 0.418750 0.100000 0.133333 +17 0.256250 0.381250 0.116667 0.162500 +34 0.368750 0.367708 0.095833 0.110417 +8 0.475000 0.316667 0.091667 0.154167 +23 0.585417 0.310417 0.104167 0.137500 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00228.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00228.txt new file mode 100644 index 000000000..5dbfb9a86 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00228.txt @@ -0,0 +1,5 @@ +0 0.420312 0.377344 0.081250 0.039062 +6 0.499219 0.384375 0.057813 0.040625 +11 0.582031 0.386719 0.067187 0.039062 +34 0.666406 0.392969 0.067187 0.035937 +8 0.751563 0.394531 0.062500 0.032813 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00243.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00243.txt new file mode 100644 index 000000000..255020924 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00243.txt @@ -0,0 +1,4 @@ +12 0.353125 0.599219 0.093750 0.098437 +6 0.451562 0.588281 0.084375 0.076563 +33 0.539062 0.580469 0.075000 0.085938 +27 0.620313 0.567969 0.078125 0.089063 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00245.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00245.txt new file mode 100644 index 000000000..7ff3f5192 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00245.txt @@ -0,0 +1,18 @@ +0 0.271875 0.448437 0.068750 0.059375 +0 0.281250 0.506250 0.081250 0.043750 +0 0.284375 0.625000 0.065625 0.062500 +0 0.292187 0.689844 0.081250 0.076563 +6 0.356250 0.451562 0.075000 0.059375 +6 0.356250 0.510156 0.062500 0.054688 +6 0.364844 0.626563 0.079687 0.068750 +38 0.443750 0.450781 0.078125 0.060937 +38 0.428906 0.508594 0.076563 0.048438 +32 0.525000 0.455469 0.078125 0.057813 +32 0.511719 0.510938 0.089063 0.053125 +33 0.448437 0.629687 0.090625 0.062500 +26 0.534375 0.635156 0.084375 0.076563 +31 0.473438 0.701562 0.087500 0.062500 +26 0.567969 0.699219 0.085938 0.064062 +27 0.600000 0.458594 0.065625 0.051562 +27 0.590625 0.514062 0.056250 0.056250 +36 0.623437 0.632031 0.090625 0.067187 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00286.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00286.txt new file mode 100644 index 000000000..1691d49a8 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00286.txt @@ -0,0 +1,5 @@ +0 0.398438 0.539844 0.065625 0.045312 +6 0.473438 0.543750 0.062500 0.040625 +11 0.548438 0.550000 0.062500 0.046875 +34 0.623437 0.550000 0.068750 0.046875 +8 0.696875 0.552344 0.053125 0.039062 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00287.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00287.txt new file mode 100644 index 000000000..3b7431065 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00287.txt @@ -0,0 +1,10 @@ +0 0.375000 0.683594 0.075000 0.051562 +0 0.374219 0.735156 0.085938 0.045312 +6 0.471875 0.688281 0.078125 0.042188 +6 0.468750 0.735156 0.071875 0.039062 +11 0.551562 0.688281 0.059375 0.042188 +11 0.554688 0.735156 0.059375 0.045312 +34 0.635156 0.689063 0.076563 0.040625 +34 0.634375 0.733594 0.078125 0.042188 +8 0.723437 0.685937 0.065625 0.050000 +8 0.727344 0.732812 0.076563 0.040625 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00288.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00288.txt new file mode 100644 index 000000000..acfd35518 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00288.txt @@ -0,0 +1,5 @@ +1 0.425000 0.603906 0.056250 0.042188 +6 0.484375 0.614844 0.050000 0.048438 +37 0.542188 0.624219 0.050000 0.042188 +33 0.600000 0.635156 0.046875 0.032813 +8 0.660156 0.642969 0.051562 0.035937 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00312.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00312.txt new file mode 100644 index 000000000..213f44740 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00312.txt @@ -0,0 +1,5 @@ +29 0.597656 0.443750 0.060937 0.046875 +6 0.653906 0.458594 0.064062 0.045312 +11 0.716406 0.467187 0.064062 0.043750 +34 0.773438 0.477344 0.062500 0.039062 +27 0.825000 0.480469 0.050000 0.035937 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00313.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00313.txt new file mode 100644 index 000000000..f8cab43c5 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00313.txt @@ -0,0 +1,5 @@ +1 0.522656 0.707812 0.089063 0.068750 +6 0.577344 0.664062 0.082812 0.068750 +33 0.635156 0.617969 0.070312 0.073438 +8 0.692969 0.561719 0.085938 0.079687 +11 0.767969 0.500000 0.114062 0.112500 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00317.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00317.txt new file mode 100644 index 000000000..139ffa7ad --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00317.txt @@ -0,0 +1,5 @@ +1 0.337500 0.659375 0.093750 0.062500 +6 0.431250 0.660937 0.081250 0.065625 +11 0.522656 0.661719 0.079687 0.064062 +33 0.621094 0.660156 0.085938 0.057813 +8 0.707812 0.652344 0.075000 0.060937 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00319.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00319.txt new file mode 100644 index 000000000..1934c3fbf --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00319.txt @@ -0,0 +1,4 @@ +1 0.369792 0.363672 0.097917 0.069531 +6 0.468229 0.352734 0.094792 0.075781 +34 0.563542 0.345703 0.087500 0.069531 +27 0.644271 0.339062 0.071875 0.054688 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00332.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00332.txt new file mode 100644 index 000000000..e3f037d04 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00332.txt @@ -0,0 +1,5 @@ +8 0.417187 0.514062 0.065625 0.050000 +34 0.490625 0.514844 0.081250 0.051562 +37 0.558594 0.512500 0.060937 0.050000 +6 0.613281 0.512500 0.048438 0.040625 +0 0.667188 0.514844 0.065625 0.045312 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00343.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00343.txt new file mode 100644 index 000000000..ed7f12445 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00343.txt @@ -0,0 +1,19 @@ +30 0.294531 0.178906 0.039062 0.048438 +30 0.296875 0.226562 0.025000 0.050000 +30 0.303125 0.272656 0.040625 0.045312 +30 0.308594 0.317969 0.029687 0.045312 +6 0.347656 0.312500 0.032813 0.037500 +6 0.342187 0.269531 0.031250 0.042188 +6 0.332813 0.171094 0.034375 0.045312 +11 0.368750 0.163281 0.031250 0.045312 +11 0.376563 0.260937 0.034375 0.043750 +11 0.458594 0.297656 0.032813 0.039062 +34 0.383594 0.306250 0.032813 0.034375 +34 0.410156 0.154688 0.045312 0.046875 +34 0.414062 0.253906 0.040625 0.039062 +8 0.410156 0.206250 0.039062 0.046875 +8 0.454688 0.148438 0.034375 0.046875 +8 0.457031 0.246875 0.042188 0.037500 +14 0.453906 0.201563 0.045312 0.040625 +31 0.367969 0.214844 0.042188 0.039062 +8 0.421875 0.302344 0.034375 0.045312 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00359.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00359.txt new file mode 100644 index 000000000..7f8cfa1a8 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00359.txt @@ -0,0 +1,24 @@ +1 0.301563 0.208594 0.059375 0.070312 +1 0.332813 0.256250 0.056250 0.065625 +1 0.376563 0.342969 0.059375 0.045312 +1 0.350000 0.305469 0.050000 0.051562 +1 0.396094 0.386719 0.057813 0.060937 +6 0.347656 0.185156 0.048438 0.048438 +6 0.376563 0.232813 0.046875 0.056250 +6 0.389844 0.279687 0.048438 0.053125 +6 0.419531 0.322656 0.042188 0.042188 +6 0.442969 0.360156 0.048438 0.051562 +38 0.484375 0.334375 0.056250 0.056250 +38 0.455469 0.303125 0.042188 0.037500 +38 0.417187 0.211719 0.053125 0.045312 +38 0.393750 0.165625 0.056250 0.046875 +36 0.531250 0.202344 0.059375 0.060937 +34 0.436719 0.136719 0.054688 0.057813 +34 0.460156 0.182031 0.060937 0.051562 +34 0.489063 0.275781 0.050000 0.042188 +34 0.525000 0.310156 0.056250 0.045312 +8 0.483594 0.111719 0.054688 0.054688 +8 0.507812 0.158594 0.056250 0.048438 +8 0.535156 0.256250 0.048438 0.046875 +8 0.575000 0.285156 0.050000 0.048438 +34 0.434375 0.245312 0.059375 0.053125 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00361.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00361.txt new file mode 100644 index 000000000..4190ad617 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00361.txt @@ -0,0 +1,4 @@ +9 0.610156 0.478906 0.054688 0.039062 +37 0.671875 0.482031 0.050000 0.032813 +17 0.719531 0.485156 0.039062 0.032813 +0 0.775781 0.487500 0.054688 0.031250 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00370.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00370.txt new file mode 100644 index 000000000..c42332bd6 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00370.txt @@ -0,0 +1,5 @@ +3 0.316406 0.632031 0.057813 0.051562 +34 0.389062 0.631250 0.062500 0.046875 +6 0.454688 0.626563 0.040625 0.046875 +27 0.510156 0.624219 0.048438 0.048438 +37 0.575000 0.620313 0.062500 0.053125 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00372.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00372.txt new file mode 100644 index 000000000..eaef3669f --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00372.txt @@ -0,0 +1,5 @@ +12 0.129688 0.414844 0.090625 0.082812 +6 0.221875 0.375781 0.084375 0.089063 +11 0.303906 0.321094 0.092188 0.082812 +33 0.394531 0.272656 0.076563 0.085938 +27 0.471875 0.218750 0.068750 0.068750 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00391.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00391.txt new file mode 100644 index 000000000..b575a31e5 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00391.txt @@ -0,0 +1,5 @@ +1 0.429688 0.567187 0.075000 0.059375 +6 0.506250 0.567187 0.062500 0.062500 +33 0.575000 0.563281 0.068750 0.064062 +27 0.642969 0.562500 0.060937 0.056250 +36 0.714844 0.560937 0.073438 0.068750 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00402.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00402.txt new file mode 100644 index 000000000..a2bc546db --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00402.txt @@ -0,0 +1,5 @@ +1 0.337500 0.378906 0.093750 0.070312 +6 0.417187 0.428125 0.078125 0.062500 +11 0.485938 0.483594 0.078125 0.076563 +33 0.570312 0.531250 0.090625 0.084375 +8 0.642188 0.591406 0.087500 0.082812 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00415.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00415.txt new file mode 100644 index 000000000..897576ca7 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00415.txt @@ -0,0 +1,5 @@ +1 0.379688 0.121094 0.062500 0.045312 +6 0.433594 0.121094 0.045312 0.039062 +38 0.487500 0.121094 0.040625 0.039062 +33 0.542969 0.129688 0.045312 0.037500 +8 0.585156 0.140625 0.035937 0.034375 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00420.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00420.txt new file mode 100644 index 000000000..875d50d70 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00420.txt @@ -0,0 +1,5 @@ +1 0.276173 0.534714 0.123947 0.129111 +6 0.429603 0.512180 0.139591 0.130329 +11 0.562575 0.478685 0.162455 0.126675 +34 0.735860 0.453715 0.155235 0.115713 +27 0.879663 0.423264 0.113117 0.084044 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00430.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00430.txt new file mode 100644 index 000000000..49f4ae883 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00430.txt @@ -0,0 +1,5 @@ +0 0.528125 0.591406 0.040625 0.048438 +6 0.577344 0.571094 0.051562 0.042188 +38 0.619531 0.539844 0.048438 0.048438 +33 0.667969 0.508594 0.042188 0.042188 +8 0.707031 0.482031 0.042188 0.042188 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00432.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00432.txt new file mode 100644 index 000000000..f8394eb82 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00432.txt @@ -0,0 +1,5 @@ +0 0.471875 0.621094 0.068750 0.048438 +6 0.546875 0.629687 0.062500 0.050000 +11 0.613281 0.639844 0.060937 0.048438 +9 0.495312 0.678906 0.068750 0.048438 +8 0.570312 0.685937 0.065625 0.050000 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00456.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00456.txt new file mode 100644 index 000000000..32cf0f799 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00456.txt @@ -0,0 +1,5 @@ +2 0.267188 0.726562 0.096875 0.078125 +3 0.357812 0.735938 0.084375 0.071875 +3 0.446094 0.743750 0.082812 0.075000 +2 0.529687 0.749219 0.087500 0.076563 +4 0.626563 0.753906 0.100000 0.070312 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00457.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00457.txt new file mode 100644 index 000000000..dcb7391d1 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00457.txt @@ -0,0 +1,5 @@ +2 0.304688 0.614062 0.081250 0.068750 +3 0.388281 0.617188 0.076563 0.056250 +3 0.469531 0.620313 0.076563 0.062500 +2 0.552344 0.619531 0.076563 0.064062 +4 0.639844 0.621875 0.089063 0.065625 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00475.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00475.txt new file mode 100644 index 000000000..74c7b1d5b --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00475.txt @@ -0,0 +1,4 @@ +1 0.553906 0.303906 0.129688 0.145313 +6 0.658594 0.403125 0.095312 0.171875 +33 0.778125 0.499219 0.125000 0.179688 +8 0.905469 0.572656 0.107813 0.148438 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00497.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00497.txt new file mode 100644 index 000000000..11c435edf --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00497.txt @@ -0,0 +1,15 @@ +1 0.328000 0.178000 0.108000 0.064000 +1 0.324000 0.484000 0.112000 0.072000 +1 0.334000 0.736000 0.108000 0.064000 +6 0.435000 0.184000 0.090000 0.068000 +6 0.431000 0.474000 0.094000 0.072000 +6 0.439000 0.737000 0.086000 0.066000 +11 0.531000 0.188000 0.094000 0.076000 +11 0.527000 0.464000 0.086000 0.076000 +11 0.535000 0.741000 0.090000 0.066000 +32 0.630000 0.203000 0.084000 0.050000 +32 0.620000 0.465000 0.084000 0.058000 +32 0.626000 0.754000 0.088000 0.052000 +27 0.712000 0.202000 0.072000 0.056000 +27 0.705000 0.455000 0.074000 0.062000 +27 0.713000 0.758000 0.070000 0.060000 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00514.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00514.txt new file mode 100644 index 000000000..6f40fe52a --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00514.txt @@ -0,0 +1,5 @@ +1 0.441406 0.320312 0.054688 0.046875 +6 0.498437 0.332813 0.062500 0.053125 +11 0.557813 0.344531 0.056250 0.054688 +33 0.618750 0.353906 0.053125 0.054688 +8 0.681250 0.363281 0.062500 0.051562 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00518.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00518.txt new file mode 100644 index 000000000..866b56c62 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00518.txt @@ -0,0 +1,5 @@ +29 0.308594 0.506250 0.079687 0.093750 +6 0.378125 0.515625 0.065625 0.093750 +34 0.452344 0.524219 0.070312 0.092188 +27 0.520312 0.532031 0.056250 0.089063 +11 0.586719 0.534375 0.067187 0.096875 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00521.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00521.txt new file mode 100644 index 000000000..b5d7ade1e --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00521.txt @@ -0,0 +1,6 @@ +29 0.381667 0.380000 0.076667 0.090000 +11 0.376667 0.482500 0.080000 0.095000 +6 0.498333 0.385000 0.070000 0.090000 +25 0.490000 0.485000 0.073333 0.100000 +14 0.616667 0.390000 0.100000 0.110000 +9 0.611667 0.495000 0.090000 0.100000 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00528.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00528.txt new file mode 100644 index 000000000..774a63649 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00528.txt @@ -0,0 +1,5 @@ +0 0.208594 0.815625 0.164062 0.231250 +6 0.390625 0.786719 0.162500 0.245312 +37 0.556250 0.711719 0.168750 0.245312 +34 0.729688 0.638281 0.156250 0.273438 +27 0.864844 0.538281 0.114062 0.192188 diff --git a/ai_train/retrain/data/symbol/val/labels/symbol_00532.txt b/ai_train/retrain/data/symbol/val/labels/symbol_00532.txt new file mode 100644 index 000000000..a9311ad89 --- /dev/null +++ b/ai_train/retrain/data/symbol/val/labels/symbol_00532.txt @@ -0,0 +1,5 @@ +1 0.228906 0.614844 0.117188 0.117188 +6 0.331250 0.663281 0.087500 0.120313 +33 0.438281 0.699219 0.107813 0.123438 +8 0.550781 0.728125 0.082812 0.118750 +37 0.653125 0.750781 0.100000 0.114062 diff --git a/ai_train/retrain/front/fe-rw/public/performance/stain/performance.json b/ai_train/retrain/front/fe-rw/public/performance/stain/performance.json new file mode 100644 index 000000000..caf7a9621 --- /dev/null +++ b/ai_train/retrain/front/fe-rw/public/performance/stain/performance.json @@ -0,0 +1,75 @@ +{ + "model_version": "v2.8", + "model_type": "stain", + "weights_path": "/home/t25119/aiLab/test/rushWash/ai/model/stain/28/weights/best.pt", + "metrics": { + "per_class": { + "blood": { + "samples": 15, + "miss": 0, + "top1_acc": 0.6, + "top3_acc": 0.6667 + }, + "coffee": { + "samples": 18, + "miss": 0, + "top1_acc": 0.7778, + "top3_acc": 0.7778 + }, + "earth": { + "samples": 14, + "miss": 0, + "top1_acc": 0.7857, + "top3_acc": 0.8571 + }, + "ink": { + "samples": 15, + "miss": 0, + "top1_acc": 0.8667, + "top3_acc": 0.9333 + }, + "kimchi": { + "samples": 14, + "miss": 0, + "top1_acc": 0.6429, + "top3_acc": 0.7143 + }, + "lipstick": { + "samples": 11, + "miss": 0, + "top1_acc": 0.9091, + "top3_acc": 0.9091 + }, + "mustard": { + "samples": 9, + "miss": 0, + "top1_acc": 1.0, + "top3_acc": 1.0 + }, + "oil": { + "samples": 12, + "miss": 0, + "top1_acc": 0.9167, + "top3_acc": 0.9167 + }, + "wine": { + "samples": 12, + "miss": 0, + "top1_acc": 0.75, + "top3_acc": 0.75 + } + }, + "overall": { + "samples": 120, + "miss": 0, + "top1_acc": 0.7917, + "top3_acc": 0.825, + "precision": 0.7917, + "recall": 0.7917, + "inference_time": { + "total_s": 11.8248, + "avg_per_image_s": 0.0985 + } + } + } +} \ No newline at end of file diff --git a/ai_train/retrain/front/fe-rw/public/performance/symbol/performance.json b/ai_train/retrain/front/fe-rw/public/performance/symbol/performance.json new file mode 100644 index 000000000..88ff9b5f2 --- /dev/null +++ b/ai_train/retrain/front/fe-rw/public/performance/symbol/performance.json @@ -0,0 +1,57 @@ +{ + "model_version": "v1.5", + "model_type": "symbol", + "weights_path": "/home/t25119/aiLab/test/rushWash/ai/model/symbol/15/weights/best.pt", + "metrics": { + "precision": 0.5303194674355073, + "recall": 0.643846622742401, + "mAP50": 0.6258890776793921, + "mAP50-95": 0.4691993676271597, + "inference_time_ms": 104.80581389533148, + "per_class": { + "30C": 0.3955634316560633, + "40C": 0.5024233713824412, + "50C": 0.0, + "60C": 0.0, + "70C": 0.0, + "95C": 0.0, + "DN_bleach": 0.4691993676271597, + "DN_dry": 0.4691993676271597, + "DN_dry_clean": 0.4691993676271597, + "DN_iron": 0.4691993676271597, + "DN_steam": 0.6258427250608409, + "DN_tumble_dry": 0.0, + "DN_wash": 0.0, + "DN_wet_clean": 0.0, + "DN_wring": 0.681571041064264, + "bleach": 0.0, + "chlorine_bleach": 0.0, + "non_chlorine_bleach": 0.0, + "drip_dry": 0.4427960995670996, + "drip_dry_in_shade": 0.0, + "dry_flat": 0.0, + "dry_flat_in_shade": 0.4691993676271597, + "line_dry": 0.0, + "line_dry_in_shade": 0.6520804784688994, + "natural_dry": 0.0, + "shade_dry": 0.4691993676271597, + "dry_clean": 0.5226309523809524, + "dry_clean_any_solvent_except_trichloroethylene": 0.4691993676271597, + "dry_clean_petrol_only": 0.0, + "hand_wash": 0.4691993676271597, + "machine_wash": 0.4691993676271597, + "iron": 0.9949999999999999, + "iron_high": 0.0, + "iron_medium": 0.4691993676271597, + "iron_low": 0.3822, + "steam": 0.0, + "tumble_dry_normal": 0.42676500000000006, + "tumble_dry_low": 0.0, + "tumble_dry_medium": 0.0, + "tumble_dry_high": 0.0, + "tumble_dry_no_heat": 0.0, + "wet_clean": 0.4691993676271597, + "wring": 0.7203786577418035 + } + } +} \ No newline at end of file diff --git a/ai_train/retrain/model/stain/27/F1_curve.png b/ai_train/retrain/model/stain/27/F1_curve.png new file mode 100644 index 000000000..70f48051b Binary files /dev/null and b/ai_train/retrain/model/stain/27/F1_curve.png differ diff --git a/ai_train/retrain/model/stain/27/PR_curve.png b/ai_train/retrain/model/stain/27/PR_curve.png new file mode 100644 index 000000000..3fc9139ab Binary files /dev/null and b/ai_train/retrain/model/stain/27/PR_curve.png differ diff --git a/ai_train/retrain/model/stain/27/P_curve.png b/ai_train/retrain/model/stain/27/P_curve.png new file mode 100644 index 000000000..922333249 Binary files /dev/null and b/ai_train/retrain/model/stain/27/P_curve.png differ diff --git a/ai_train/retrain/model/stain/27/R_curve.png b/ai_train/retrain/model/stain/27/R_curve.png new file mode 100644 index 000000000..488096e85 Binary files /dev/null and b/ai_train/retrain/model/stain/27/R_curve.png differ diff --git a/ai_train/retrain/model/stain/27/args.yaml b/ai_train/retrain/model/stain/27/args.yaml new file mode 100644 index 000000000..0cd96b16f --- /dev/null +++ b/ai_train/retrain/model/stain/27/args.yaml @@ -0,0 +1,106 @@ +task: detect +mode: train +model: /home/t25119/aiLab/test/rushWash/ai/stain/stain_cls.pt +data: /home/t25119/aiLab/test/rushWash/ai/data/stain/data.yaml +epochs: 5 +time: null +patience: 2 +batch: 2 +imgsz: 1600 +save: true +save_period: -1 +cache: false +device: cuda:0 +workers: 1 +project: /home/t25119/aiLab/test/rushWash/ai/model/stain +name: '27' +exist_ok: false +pretrained: true +optimizer: auto +verbose: true +seed: 0 +deterministic: true +single_cls: false +rect: false +cos_lr: false +close_mosaic: 10 +resume: false +amp: true +fraction: 1.0 +profile: false +freeze: null +multi_scale: false +overlap_mask: true +mask_ratio: 4 +dropout: 0.0 +val: true +split: val +save_json: false +save_hybrid: false +conf: null +iou: 0.7 +max_det: 300 +half: false +dnn: false +plots: true +source: null +vid_stride: 1 +stream_buffer: false +visualize: false +augment: false +agnostic_nms: false +classes: null +retina_masks: false +embed: null +show: false +save_frames: false +save_txt: false +save_conf: false +save_crop: false +show_labels: true +show_conf: true +show_boxes: true +line_width: null +format: torchscript +keras: false +optimize: false +int8: false +dynamic: false +simplify: false +opset: null +workspace: 4 +nms: false +lr0: 0.01 +lrf: 0.01 +momentum: 0.937 +weight_decay: 0.0005 +warmup_epochs: 3.0 +warmup_momentum: 0.8 +warmup_bias_lr: 0.1 +box: 7.5 +cls: 0.5 +dfl: 1.5 +pose: 12.0 +kobj: 1.0 +label_smoothing: 0.0 +nbs: 64 +hsv_h: 0.015 +hsv_s: 0.7 +hsv_v: 0.4 +degrees: 0.0 +translate: 0.1 +scale: 0.5 +shear: 0.0 +perspective: 0.0 +flipud: 0.0 +fliplr: 0.5 +bgr: 0.0 +mosaic: 1.0 +mixup: 0.0 +copy_paste: 0.0 +auto_augment: randaugment +erasing: 0.4 +crop_fraction: 1.0 +cfg: null +tracker: botsort.yaml +save_dir: /home/t25119/aiLab/test/rushWash/ai/model/stain/27 diff --git a/ai_train/retrain/model/stain/27/confusion_matrix.png b/ai_train/retrain/model/stain/27/confusion_matrix.png new file mode 100644 index 000000000..6c2d677fd Binary files /dev/null and b/ai_train/retrain/model/stain/27/confusion_matrix.png differ diff --git a/ai_train/retrain/model/stain/27/confusion_matrix_normalized.png b/ai_train/retrain/model/stain/27/confusion_matrix_normalized.png new file mode 100644 index 000000000..53bb853ee Binary files /dev/null and b/ai_train/retrain/model/stain/27/confusion_matrix_normalized.png differ diff --git a/ai_train/retrain/model/stain/27/events.out.tfevents.1748614622.ceprj.337914.0 b/ai_train/retrain/model/stain/27/events.out.tfevents.1748614622.ceprj.337914.0 new file mode 100644 index 000000000..1b826aa9f Binary files /dev/null and b/ai_train/retrain/model/stain/27/events.out.tfevents.1748614622.ceprj.337914.0 differ diff --git a/ai_train/retrain/model/stain/27/labels.jpg b/ai_train/retrain/model/stain/27/labels.jpg new file mode 100644 index 000000000..adcf6a159 Binary files /dev/null and b/ai_train/retrain/model/stain/27/labels.jpg differ diff --git a/ai_train/retrain/model/stain/27/labels_correlogram.jpg b/ai_train/retrain/model/stain/27/labels_correlogram.jpg new file mode 100644 index 000000000..e597efe75 Binary files /dev/null and b/ai_train/retrain/model/stain/27/labels_correlogram.jpg differ diff --git a/ai_train/retrain/model/stain/27/results.csv b/ai_train/retrain/model/stain/27/results.csv new file mode 100644 index 000000000..4d61cc5ff --- /dev/null +++ b/ai_train/retrain/model/stain/27/results.csv @@ -0,0 +1,4 @@ + epoch, train/box_loss, train/cls_loss, train/dfl_loss, metrics/precision(B), metrics/recall(B), metrics/mAP50(B), metrics/mAP50-95(B), val/box_loss, val/cls_loss, val/dfl_loss, lr/pg0, lr/pg1, lr/pg2 + 1, 2.1753, 3.4581, 3.0747, 0.56583, 0.36531, 0.38927, 0.16266, 2.3114, 2.3835, 2.4026, 3.845e-05, 3.845e-05, 3.845e-05 + 2, 2.0202, 3.7779, 2.6046, 0.54742, 0.38576, 0.39253, 0.15826, 2.3147, 2.4028, 2.4237, 6.7841e-05, 6.7841e-05, 6.7841e-05 + 3, 2.2062, 3.5209, 3.0665, 0.54314, 0.38842, 0.38917, 0.15537, 2.324, 2.4497, 2.44, 7.8961e-05, 7.8961e-05, 7.8961e-05 diff --git a/ai_train/retrain/model/stain/27/results.png b/ai_train/retrain/model/stain/27/results.png new file mode 100644 index 000000000..fdfb7534e Binary files /dev/null and b/ai_train/retrain/model/stain/27/results.png differ diff --git a/ai_train/retrain/model/stain/27/train_batch0.jpg b/ai_train/retrain/model/stain/27/train_batch0.jpg new file mode 100644 index 000000000..ee9243676 Binary files /dev/null and b/ai_train/retrain/model/stain/27/train_batch0.jpg differ diff --git a/ai_train/retrain/model/stain/27/train_batch1.jpg b/ai_train/retrain/model/stain/27/train_batch1.jpg new file mode 100644 index 000000000..dbcd9f7d8 Binary files /dev/null and b/ai_train/retrain/model/stain/27/train_batch1.jpg differ diff --git a/ai_train/retrain/model/stain/27/train_batch2.jpg b/ai_train/retrain/model/stain/27/train_batch2.jpg new file mode 100644 index 000000000..1651c3aae Binary files /dev/null and b/ai_train/retrain/model/stain/27/train_batch2.jpg differ diff --git a/ai_train/retrain/model/stain/27/val_batch0_labels.jpg b/ai_train/retrain/model/stain/27/val_batch0_labels.jpg new file mode 100644 index 000000000..83fa528ef Binary files /dev/null and b/ai_train/retrain/model/stain/27/val_batch0_labels.jpg differ diff --git a/ai_train/retrain/model/stain/27/val_batch0_pred.jpg b/ai_train/retrain/model/stain/27/val_batch0_pred.jpg new file mode 100644 index 000000000..843d161c7 Binary files /dev/null and b/ai_train/retrain/model/stain/27/val_batch0_pred.jpg differ diff --git a/ai_train/retrain/model/stain/27/val_batch1_labels.jpg b/ai_train/retrain/model/stain/27/val_batch1_labels.jpg new file mode 100644 index 000000000..49e54e1fa Binary files /dev/null and b/ai_train/retrain/model/stain/27/val_batch1_labels.jpg differ diff --git a/ai_train/retrain/model/stain/27/val_batch1_pred.jpg b/ai_train/retrain/model/stain/27/val_batch1_pred.jpg new file mode 100644 index 000000000..5e76bf60d Binary files /dev/null and b/ai_train/retrain/model/stain/27/val_batch1_pred.jpg differ diff --git a/ai_train/retrain/model/stain/27/val_batch2_labels.jpg b/ai_train/retrain/model/stain/27/val_batch2_labels.jpg new file mode 100644 index 000000000..3de234987 Binary files /dev/null and b/ai_train/retrain/model/stain/27/val_batch2_labels.jpg differ diff --git a/ai_train/retrain/model/stain/27/val_batch2_pred.jpg b/ai_train/retrain/model/stain/27/val_batch2_pred.jpg new file mode 100644 index 000000000..5dad5e3c5 Binary files /dev/null and b/ai_train/retrain/model/stain/27/val_batch2_pred.jpg differ diff --git a/ai_train/retrain/model/stain/27/weights/best.pt b/ai_train/retrain/model/stain/27/weights/best.pt new file mode 100644 index 000000000..b080955f9 Binary files /dev/null and b/ai_train/retrain/model/stain/27/weights/best.pt differ diff --git a/ai_train/retrain/model/stain/27/weights/last.pt b/ai_train/retrain/model/stain/27/weights/last.pt new file mode 100644 index 000000000..3e2359f89 Binary files /dev/null and b/ai_train/retrain/model/stain/27/weights/last.pt differ diff --git a/ai_train/retrain/model/symbol/14/F1_curve.png b/ai_train/retrain/model/symbol/14/F1_curve.png new file mode 100644 index 000000000..939493e18 Binary files /dev/null and b/ai_train/retrain/model/symbol/14/F1_curve.png differ diff --git a/ai_train/retrain/model/symbol/14/PR_curve.png b/ai_train/retrain/model/symbol/14/PR_curve.png new file mode 100644 index 000000000..45afb6f9f Binary files /dev/null and b/ai_train/retrain/model/symbol/14/PR_curve.png differ diff --git a/ai_train/retrain/model/symbol/14/P_curve.png b/ai_train/retrain/model/symbol/14/P_curve.png new file mode 100644 index 000000000..22c295483 Binary files /dev/null and b/ai_train/retrain/model/symbol/14/P_curve.png differ diff --git a/ai_train/retrain/model/symbol/14/R_curve.png b/ai_train/retrain/model/symbol/14/R_curve.png new file mode 100644 index 000000000..c9b7390a0 Binary files /dev/null and b/ai_train/retrain/model/symbol/14/R_curve.png differ diff --git a/ai_train/retrain/model/symbol/14/args.yaml b/ai_train/retrain/model/symbol/14/args.yaml new file mode 100644 index 000000000..831bf98f1 --- /dev/null +++ b/ai_train/retrain/model/symbol/14/args.yaml @@ -0,0 +1,106 @@ +task: detect +mode: train +model: /home/t25119/aiLab/test/rushWash/ai/symbol/laundry_labels_cls.pt +data: /home/t25119/aiLab/test/rushWash/ai/data/symbol/data.yaml +epochs: 5 +time: null +patience: 2 +batch: 2 +imgsz: 2048 +save: true +save_period: -1 +cache: false +device: cuda:0 +workers: 4 +project: /home/t25119/aiLab/test/rushWash/ai/model/symbol +name: '14' +exist_ok: false +pretrained: true +optimizer: SGD +verbose: true +seed: 0 +deterministic: true +single_cls: false +rect: false +cos_lr: true +close_mosaic: 10 +resume: false +amp: true +fraction: 1.0 +profile: false +freeze: null +multi_scale: false +overlap_mask: true +mask_ratio: 4 +dropout: 0.0 +val: true +split: val +save_json: false +save_hybrid: false +conf: null +iou: 0.7 +max_det: 300 +half: false +dnn: false +plots: true +source: null +vid_stride: 1 +stream_buffer: false +visualize: false +augment: true +agnostic_nms: false +classes: null +retina_masks: false +embed: null +show: false +save_frames: false +save_txt: false +save_conf: false +save_crop: false +show_labels: true +show_conf: true +show_boxes: true +line_width: null +format: torchscript +keras: false +optimize: false +int8: false +dynamic: false +simplify: false +opset: null +workspace: 4 +nms: false +lr0: 0.01 +lrf: 0.01 +momentum: 0.937 +weight_decay: 0.0005 +warmup_epochs: 3.0 +warmup_momentum: 0.8 +warmup_bias_lr: 0.1 +box: 7.5 +cls: 0.5 +dfl: 1.5 +pose: 12.0 +kobj: 1.0 +label_smoothing: 0.0 +nbs: 64 +hsv_h: 0.015 +hsv_s: 0.7 +hsv_v: 0.4 +degrees: 0.0 +translate: 0.1 +scale: 0.5 +shear: 0.0 +perspective: 0.0 +flipud: 0.0 +fliplr: 0.5 +bgr: 0.0 +mosaic: true +mixup: 0.3 +copy_paste: 0.0 +auto_augment: randaugment +erasing: 0.4 +crop_fraction: 1.0 +cfg: null +tracker: botsort.yaml +save_dir: /home/t25119/aiLab/test/rushWash/ai/model/symbol/14 diff --git a/ai_train/retrain/model/symbol/14/confusion_matrix.png b/ai_train/retrain/model/symbol/14/confusion_matrix.png new file mode 100644 index 000000000..7aece1fd7 Binary files /dev/null and b/ai_train/retrain/model/symbol/14/confusion_matrix.png differ diff --git a/ai_train/retrain/model/symbol/14/confusion_matrix_normalized.png b/ai_train/retrain/model/symbol/14/confusion_matrix_normalized.png new file mode 100644 index 000000000..09a8777bc Binary files /dev/null and b/ai_train/retrain/model/symbol/14/confusion_matrix_normalized.png differ diff --git a/ai_train/retrain/model/symbol/14/events.out.tfevents.1748614701.ceprj.337914.1 b/ai_train/retrain/model/symbol/14/events.out.tfevents.1748614701.ceprj.337914.1 new file mode 100644 index 000000000..5247a864d Binary files /dev/null and b/ai_train/retrain/model/symbol/14/events.out.tfevents.1748614701.ceprj.337914.1 differ diff --git a/ai_train/retrain/model/symbol/14/labels.jpg b/ai_train/retrain/model/symbol/14/labels.jpg new file mode 100644 index 000000000..806d63f4e Binary files /dev/null and b/ai_train/retrain/model/symbol/14/labels.jpg differ diff --git a/ai_train/retrain/model/symbol/14/labels_correlogram.jpg b/ai_train/retrain/model/symbol/14/labels_correlogram.jpg new file mode 100644 index 000000000..63c65813f Binary files /dev/null and b/ai_train/retrain/model/symbol/14/labels_correlogram.jpg differ diff --git a/ai_train/retrain/model/symbol/14/results.csv b/ai_train/retrain/model/symbol/14/results.csv new file mode 100644 index 000000000..62b65bdc6 --- /dev/null +++ b/ai_train/retrain/model/symbol/14/results.csv @@ -0,0 +1,4 @@ + epoch, train/box_loss, train/cls_loss, train/dfl_loss, metrics/precision(B), metrics/recall(B), metrics/mAP50(B), metrics/mAP50-95(B), val/box_loss, val/cls_loss, val/dfl_loss, lr/pg0, lr/pg1, lr/pg2 + 1, 1.0789, 1.5375, 1.5051, 0.68737, 0.68696, 0.71557, 0.48096, 1.3065, 1.2042, 1.8264, 0.0955, 0.0005, 0.0005 + 2, 1.1542, 1.6566, 1.6621, 0.6943, 0.67192, 0.71397, 0.47958, 1.3153, 1.2, 1.8451, 0.089996, 0.00099601, 0.00099601 + 3, 1.1516, 1.2558, 1.4242, 0.69575, 0.69599, 0.71554, 0.47589, 1.3229, 1.1957, 1.8557, 0.084119, 0.0011185, 0.0011185 diff --git a/ai_train/retrain/model/symbol/14/results.png b/ai_train/retrain/model/symbol/14/results.png new file mode 100644 index 000000000..cfa5c8bc6 Binary files /dev/null and b/ai_train/retrain/model/symbol/14/results.png differ diff --git a/ai_train/retrain/model/symbol/14/train_batch0.jpg b/ai_train/retrain/model/symbol/14/train_batch0.jpg new file mode 100644 index 000000000..b329f520d Binary files /dev/null and b/ai_train/retrain/model/symbol/14/train_batch0.jpg differ diff --git a/ai_train/retrain/model/symbol/14/train_batch1.jpg b/ai_train/retrain/model/symbol/14/train_batch1.jpg new file mode 100644 index 000000000..2101cd2c0 Binary files /dev/null and b/ai_train/retrain/model/symbol/14/train_batch1.jpg differ diff --git a/ai_train/retrain/model/symbol/14/train_batch2.jpg b/ai_train/retrain/model/symbol/14/train_batch2.jpg new file mode 100644 index 000000000..e7bec61b7 Binary files /dev/null and b/ai_train/retrain/model/symbol/14/train_batch2.jpg differ diff --git a/ai_train/retrain/model/symbol/14/val_batch0_labels.jpg b/ai_train/retrain/model/symbol/14/val_batch0_labels.jpg new file mode 100644 index 000000000..a81bd102f Binary files /dev/null and b/ai_train/retrain/model/symbol/14/val_batch0_labels.jpg differ diff --git a/ai_train/retrain/model/symbol/14/val_batch0_pred.jpg b/ai_train/retrain/model/symbol/14/val_batch0_pred.jpg new file mode 100644 index 000000000..643a1c38e Binary files /dev/null and b/ai_train/retrain/model/symbol/14/val_batch0_pred.jpg differ diff --git a/ai_train/retrain/model/symbol/14/val_batch1_labels.jpg b/ai_train/retrain/model/symbol/14/val_batch1_labels.jpg new file mode 100644 index 000000000..6a00ff4ac Binary files /dev/null and b/ai_train/retrain/model/symbol/14/val_batch1_labels.jpg differ diff --git a/ai_train/retrain/model/symbol/14/val_batch1_pred.jpg b/ai_train/retrain/model/symbol/14/val_batch1_pred.jpg new file mode 100644 index 000000000..48f11b16d Binary files /dev/null and b/ai_train/retrain/model/symbol/14/val_batch1_pred.jpg differ diff --git a/ai_train/retrain/model/symbol/14/val_batch2_labels.jpg b/ai_train/retrain/model/symbol/14/val_batch2_labels.jpg new file mode 100644 index 000000000..baaedc0c3 Binary files /dev/null and b/ai_train/retrain/model/symbol/14/val_batch2_labels.jpg differ diff --git a/ai_train/retrain/model/symbol/14/val_batch2_pred.jpg b/ai_train/retrain/model/symbol/14/val_batch2_pred.jpg new file mode 100644 index 000000000..1fe69a37c Binary files /dev/null and b/ai_train/retrain/model/symbol/14/val_batch2_pred.jpg differ diff --git a/ai_train/retrain/model/symbol/14/weights/best.pt b/ai_train/retrain/model/symbol/14/weights/best.pt new file mode 100644 index 000000000..0b3d4ecf0 Binary files /dev/null and b/ai_train/retrain/model/symbol/14/weights/best.pt differ diff --git a/ai_train/retrain/model/symbol/14/weights/last.pt b/ai_train/retrain/model/symbol/14/weights/last.pt new file mode 100644 index 000000000..0f79d93f4 Binary files /dev/null and b/ai_train/retrain/model/symbol/14/weights/last.pt differ diff --git a/ai_train/retrain/pipe_final.py b/ai_train/retrain/pipe_final.py new file mode 100644 index 000000000..fc9015db6 --- /dev/null +++ b/ai_train/retrain/pipe_final.py @@ -0,0 +1,453 @@ +#!/usr/bin/env python3 +""" +MariaDB → YOLO 데이터 복사 → (Re)Train → Optimal per-class conf 찾기 → Evaluate → JSON 저장 + - Ray-tune 콜백 패치 포함 + - stain, symbol 모델 모두 fp32→fp16 로드 + - DB 접속 정보는 실행 시 인자로 전달 + +""" +import os +import sys +import shutil +import json +import time +import logging +import types +import yaml +import torch +import numpy as np +import pymysql +import argparse +from PIL import Image, ImageOps +from collections import defaultdict +from ultralytics import YOLO + +# ──────────────────────────── CLI 인자 파싱 ──────────────────────────── +parser = argparse.ArgumentParser(description="YOLO 파이프라인 실행") +parser.add_argument("--db-host", required=True, help="DB 호스트") +parser.add_argument("--db-port", type=int, required=True, help="DB 포트") +parser.add_argument("--db-user", required=True, help="DB 사용자") +parser.add_argument("--db-password", required=True, help="DB 비밀번호") +parser.add_argument("--db-name", required=True, help="DB 이름") +args = parser.parse_args() + +# ──────────────────────────── DB 설정 ──────────────────────────── +DB_HOST = args.db_host +DB_PORT = args.db_port +DB_USER = args.db_user +DB_PASSWORD = args.db_password +DB_NAME = args.db_name +SQL_QUERY = ( + "SELECT stain_image_url, label_image_url " + "FROM washing_history " + "WHERE estimation = 1 " + " AND (stain_image_url IS NOT NULL OR label_image_url IS NOT NULL);" +) + +# ──────────────────────────── Ray 콜백 패치 (반드시 최상단) ──────────────────────────── +try: + import ray + try: + import ray.train._internal.session as _session + except ImportError: + internal = getattr(ray.train, "_internal", types.ModuleType("_internal")) + ray.train._internal = internal + session = getattr(internal, "session", types.ModuleType("session")) + internal.session = session + _session = session + if not hasattr(_session, "_get_session"): + _session._get_session = lambda: None + logging.basicConfig(level=logging.INFO) + logging.getLogger(__name__).info("✅ Patched ray.train._internal.session._get_session") +except ModuleNotFoundError: + pass + +# ──────────────────────────── 로깅 설정 ──────────────────────────── +logging.basicConfig( + level=logging.DEBUG, + format="%(asctime)s [%(levelname)s] %(message)s", + handlers=[logging.StreamHandler(sys.stdout)], +) +logger = logging.getLogger(__name__) + +# ──────────────────────────── 경로 및 설정 ──────────────────────────── +BASE_DIR = os.path.dirname(os.path.abspath(__file__)) +SRC_ROOT = os.path.abspath(os.path.join(BASE_DIR, os.pardir)) + +STAIN_MODEL_PATH = os.path.join(BASE_DIR, "stain", "stain_cls.pt") +SYMBOL_MODEL_PATH = os.path.join(BASE_DIR, "symbol", "laundry_labels_cls.pt") +STAIN_LABEL_DIR = os.path.join(SRC_ROOT, "images", "output", "stain", "labels") +SYMBOL_LABEL_DIR = os.path.join(SRC_ROOT, "images", "output", "symbol", "labels") + +TRAIN_STAIN_IMG_DIR = os.path.join(BASE_DIR, "data", "stain", "train", "images") +TRAIN_STAIN_LABEL_DIR = os.path.join(BASE_DIR, "data", "stain", "train", "labels") +TRAIN_SYM_IMG_DIR = os.path.join(BASE_DIR, "data", "symbol", "train", "images") +TRAIN_SYM_LABEL_DIR = os.path.join(BASE_DIR, "data", "symbol", "train", "labels") + +TEST_STAIN_IMG_DIR = os.path.join(BASE_DIR, "data", "stain", "test", "images") +SYMBOL_TEST_DIR = os.path.join(BASE_DIR, "data", "symbol", "test", "images") + +STAIN_DATA_YAML = os.path.join(BASE_DIR, "data", "stain", "data.yaml") +SYMBOL_DATA_YAML = os.path.join(BASE_DIR, "data", "symbol", "data.yaml") + +MODEL_BASE_STAIN = os.path.join(BASE_DIR, "model", "stain") +MODEL_BASE_SYM = os.path.join(BASE_DIR, "model", "symbol") +PERF_ROOT = os.path.join(BASE_DIR, os.pardir, "front", "fe-rw", "public", "performance") +for p in [STAIN_LABEL_DIR, SYMBOL_LABEL_DIR, TRAIN_STAIN_IMG_DIR, TRAIN_STAIN_LABEL_DIR, + TRAIN_SYM_IMG_DIR, TRAIN_SYM_LABEL_DIR, TEST_STAIN_IMG_DIR, SYMBOL_TEST_DIR, + MODEL_BASE_STAIN, MODEL_BASE_SYM, + os.path.join(PERF_ROOT, "stain"), os.path.join(PERF_ROOT, "symbol")]: + os.makedirs(p, exist_ok=True) + +# ──────────────────────────── 학습 파라미터 ──────────────────────────── +STAIN_CFG = dict( + data=STAIN_DATA_YAML, + epochs=5, + patience=2, + batch=2, + imgsz=1600, + device="cuda:0", + workers=1, + optimizer="auto", + amp=True, + mosaic=1.0, + mixup=0.0, + auto_augment="randaugment", + erasing=0.4, +) +SYMBOL_CFG = dict( + data=SYMBOL_DATA_YAML, + epochs=5, + patience=2, + batch=2, + imgsz=2048, + device="cuda:0", + workers=4, + optimizer="SGD", + amp=True, + cos_lr=True, + augment=True, + mosaic=True, + mixup=0.3, +) + +EVAL_STAIN_SIZE = 320 +CLASS_NAMES_STAIN = [ + "blood", "coffee", "earth", "ink", "kimchi", + "lipstick", "mustard", "oil", "wine", +] +CLASS_CONF_THRESH = { + "blood": 0.26, + "coffee": 0.35, + "earth": 0.23, + "ink": 0.19, + "kimchi": 0.5, + "lipstick": 0.33, + "mustard": 0.16, + "oil": 0.36, + "wine": 0.1, +} +GLOBAL_CONF = min(CLASS_CONF_THRESH.values()) + +# ──────────────────────────── Symbol 평가 설정 ──────────────────────────── +SYMBOL_CONF = 0.1 # Confidence threshold for symbol evaluation +SYMBOL_AUG = True # Augmentation flag for symbol evaluation + +# ──────────────────────────── 유틸 함수 ──────────────────────────── +def get_next_run(root: str) -> str: + runs = [int(d) for d in os.listdir(root) if d.isdigit()] + return str(max(runs) + 1) if runs else "1" + + +def copy_pair(url: str, dst_img_dir: str, src_lbl_dir: str, dst_lbl_dir: str): + """ + 이미지 URL과 대응 라벨(.txt)을 src_lbl_dir에서 찾아 + dst_img_dir, dst_lbl_dir로 복사 + """ + logger.debug(f"DB URL: {url}") + if not url: + logger.warning("Empty URL, skip.") + return + # 이미지 경로 해석 + if os.path.isabs(url) and os.path.exists(url): + src_img = url + logger.debug(f"Absolute path used: {src_img}") + else: + rel = url.lstrip("/") + src_img = os.path.join(SRC_ROOT, rel) + logger.debug(f"Resolved relative to SRC_ROOT: {src_img}") + name = os.path.splitext(os.path.basename(src_img))[0] + src_lbl = os.path.join(src_lbl_dir, f"{name}.txt") + img_exists = os.path.exists(src_img) + lbl_exists = os.path.exists(src_lbl) + logger.debug(f"Exists? Image: {img_exists}, Label: {lbl_exists}") + if img_exists and lbl_exists: + shutil.copy2(src_img, os.path.join(dst_img_dir, os.path.basename(src_img))) + shutil.copy2(src_lbl, os.path.join(dst_lbl_dir, f"{name}.txt")) + logger.info(f"Copied {name} → images and labels dirs") + else: + if not img_exists: + logger.error(f"[MISS-IMG] {src_img} not found") + if not lbl_exists: + logger.error(f"[MISS-LBL] {src_lbl} not found") + +# ──────────────────────────── DB에서 이미지 + 라벨 복사 ──────────────────────────── +def db_fetch(): + logger.info("DB fetch 시작") + conn = pymysql.connect( + host=DB_HOST, + port=DB_PORT, + user=DB_USER, + password=DB_PASSWORD, + database=DB_NAME, + charset="utf8mb4", + ) + with conn: + cur = conn.cursor() + cur.execute(SQL_QUERY) + rows = cur.fetchall() + for stain_url, label_url in rows: + copy_pair(stain_url, TRAIN_STAIN_IMG_DIR, STAIN_LABEL_DIR, TRAIN_STAIN_LABEL_DIR) + copy_pair(label_url, TRAIN_SYM_IMG_DIR, SYMBOL_LABEL_DIR, TRAIN_SYM_LABEL_DIR) + logger.info("DB fetch 완료") + +# ──────────────────────────── Ray 콜백 제거 및 모델 로드 ──────────────────────────── +def load_yolo(weights: str, want_gpu: bool = True): + if want_gpu and torch.cuda.is_available(): + try: + model = YOLO(weights).to("cuda:0") + model.fuse() + model = model.to("cuda:0", dtype=torch.float16) + logger.info(f"Loaded {weights} on GPU (fp16)") + return model, "cuda:0" + except RuntimeError as e: + if "out of memory" in str(e).lower(): + logger.warning("GPU OOM → CPU fallback") + torch.cuda.empty_cache() + else: + raise + logger.info(f"Loaded {weights} on CPU") + return YOLO(weights), "cpu" + +# ──────────────────────────── per-class conf 튜닝 ──────────────────────────── +def optimize_conf_thresh(weights_path: str): + logger.info("Optimizing per-class conf thresholds") + model, device = load_yolo(weights_path) + records = [] # (gt_idx, pred_idx, pred_conf) + resize_pad = lambda im: ImageOps.expand( + im, + ( + (max(im.size) - im.size[0]) // 2, + (max(im.size) - im.size[1]) // 2, + max(im.size) - im.size[0] - (max(im.size) - im.size[0]) // 2, + max(im.size) - im.size[1] - (max(im.size) - im.size[1]) // 2, + ), + fill=(0, 0, 0), + ).resize((EVAL_STAIN_SIZE,) * 2) + + # 1) 모든 테스트 이미지에 대해 top1 예측 저장 + for fn in os.listdir(TEST_STAIN_IMG_DIR): + if not fn.lower().endswith((".jpg", ".png")): + continue + gt = fn.split("_")[0].lower() + if gt not in CLASS_NAMES_STAIN: + continue + gt_idx = CLASS_NAMES_STAIN.index(gt) + img = Image.open(os.path.join(TEST_STAIN_IMG_DIR, fn)).convert("RGB") + img = resize_pad(img) + res = model(img, conf=0.0, device=device)[0] + if not res.boxes: + records.append((gt_idx, None, 0.0)) + continue + cls = res.boxes.cls.cpu().numpy().astype(int) + confs = res.boxes.conf.cpu().numpy() + top_idx = confs.argmax() + records.append((gt_idx, cls[top_idx], float(confs[top_idx]))) + + # 2) 클래스별 F1-opt 임계치 탐색 + new_thresh = {} + for c_idx, c_name in enumerate(CLASS_NAMES_STAIN): + total = sum(1 for gt, _, _ in records if gt == c_idx) + best_t, best_f1 = 0.0, -1.0 + for t in np.linspace(0, 1, 101): + tp = sum( + 1 + for gt, pred, conf in records + if gt == c_idx and pred == c_idx and conf >= t + ) + pred_as_c = sum( + 1 for _, pred, conf in records if pred == c_idx and conf >= t + ) + fp = pred_as_c - tp + fn = total - tp + P = tp / (tp + fp) if (tp + fp) > 0 else 0.0 + R = tp / (tp + fn) if (tp + fn) > 0 else 0.0 + f1 = 2 * P * R / (P + R) if (P + R) > 0 else 0.0 + if f1 > best_f1: + best_f1, best_t = f1, t + new_thresh[c_name] = round(best_t, 3) + logger.debug(f"Class {c_name}: best_t={best_t:.3f}, F1={best_f1:.4f}") + + new_global = min(new_thresh.values()) + logger.info(f"Optimized thresholds: {new_thresh}, GLOBAL_CONF={new_global:.3f}") + return new_thresh, new_global + +# ──────────────────────────── 평가: Stain (miss 제외) ──────────────── +def evaluate_stain(weights_path: str): + logger.info(f"Evaluating stain: {weights_path}") + model, device = load_yolo(weights_path) + + def resize_pad(im): + w, h = im.size + m = max(w, h) + pad = ((m - w) // 2, (m - h) // 2, m - w - (m - w) // 2, m - h - (m - h) // 2) + return ImageOps.expand(im, pad, fill=(0, 0, 0)).resize((EVAL_STAIN_SIZE,) * 2) + + stats = {"s":defaultdict(int), "m":defaultdict(int), "t1":defaultdict(int), "t3":defaultdict(int)} + inf_t = 0.0 + for fn in os.listdir(TEST_STAIN_IMG_DIR): + if not fn.lower().endswith((".jpg", ".png")): continue + gt = fn.split("_")[0].lower() + if gt not in CLASS_NAMES_STAIN: continue + idx = CLASS_NAMES_STAIN.index(gt) + stats["s"][idx] += 1 + img = resize_pad(Image.open(os.path.join(TEST_STAIN_IMG_DIR, fn)).convert("RGB")) + t0 = time.time() + res = model(img, conf=GLOBAL_CONF, device=device)[0] + inf_t += time.time() - t0 + if not res.boxes: + stats["m"][idx] += 1 + continue + cls = res.boxes.cls.cpu().numpy().astype(int) + confs = res.boxes.conf.cpu().numpy() + keep = np.array([confs[i] >= CLASS_CONF_THRESH[CLASS_NAMES_STAIN[c]] for i,c in enumerate(cls)], dtype=bool) + cls, confs = cls[keep], confs[keep] + if cls.size == 0: + stats["m"][idx] += 1 + continue + order = confs.argsort()[::-1] + top3 = cls[order[:3]] + if idx == top3[0]: stats["t1"][idx] += 1 + if idx in top3: stats["t3"][idx] += 1 + + per, tot_s, tot_m, tot1, tot3 = {}, 0, 0, 0, 0 + for i,name in enumerate(CLASS_NAMES_STAIN): + s = stats["s"][i]; m=stats["m"][i]; non_miss=s-m; o1=stats["t1"][i]; o3=stats["t3"][i] + if non_miss>0: + per[name] = {"samples":s, "miss":m, "top1_acc":round(o1/non_miss,4), "top3_acc":round(o3/non_miss,4)} + tot_s+=s; tot_m+=m; tot1+=o1; tot3+=o3 + overall={} + total_non_miss=tot_s-tot_m + if total_non_miss>0: + overall={"samples":tot_s, "miss":tot_m, "top1_acc":round(tot1/total_non_miss,4), "top3_acc":round(tot3/total_non_miss,4), "precision":round(tot1/total_non_miss,4), "recall":round(tot1/total_non_miss,4), "inference_time":{"total_s":round(inf_t,4), "avg_per_image_s":round(inf_t/tot_s,4)}} + logger.info(f"Stain overall (miss excluded): {overall}") + return {"per_class":per, "overall":overall} + +# ──────────────────────────── 평가: Symbol (속도+메모리 균형 최적화) ──────────────────────────── +def evaluate_symbol(weights_path: str): + """ + Symbol 모델 평가 (속도와 메모리 균형) + - GPU fp16 사용 + - batch 크기 2, workers 2 + - with torch.no_grad()로 계산 그래프 미생성 + - CUDA 캐시 비우기 + """ + logger.info(f"Evaluating symbol (balanced speed & memory): {weights_path}") + # GPU 사용 및 fp16 변환 + model, device = load_yolo(weights_path, want_gpu=True) + if torch.cuda.is_available(): + torch.cuda.empty_cache() + + # 그래디언트 비활성화하여 메모리 절약 + with torch.no_grad(): + # 1) support 계산 + first = model.val( + data=SYMBOL_DATA_YAML, + split="test", + imgsz=SYMBOL_CFG["imgsz"], + conf=SYMBOL_CONF, + augment=False, + device=device, + verbose=False, + batch=2, + workers=2, + half=True, + ) + initial_maps = dict(zip(first.ap_class_index, first.maps)) + valid_ids = [int(idx) for idx, ap in initial_maps.items() if ap > 0.0] + logger.debug(f"Symbol valid IDs (AP>0): {valid_ids}") + + # 2) 실제 평가 수행 + final = model.val( + data=SYMBOL_DATA_YAML, + split="test", + imgsz=SYMBOL_CFG["imgsz"], + conf=SYMBOL_CONF, + augment=SYMBOL_AUG, + classes=valid_ids, + device=device, + verbose=False, + batch=2, + workers=2, + half=True, + ) + + # 결과 추출 + P, R, mAP50, mAP5095 = final.box.mean_results() + inf_ms = final.speed.get("inference", 0.0) + names = yaml.safe_load(open(SYMBOL_DATA_YAML))["names"] + ap_map = {int(idx): float(ap) for idx, ap in zip(final.ap_class_index, final.maps)} + per_cls = {name: ap_map.get(i, 0.0) for i, name in enumerate(names)} + + metrics = { + "precision": P, + "recall": R, + "mAP50": mAP50, + "mAP50-95": mAP5095, + "inference_time_ms": inf_ms, + "per_class": per_cls, + } + logger.info(f"Symbol metrics (balanced): {metrics}") + return metrics + +# ──────────────────────────── 학습 & 평가 파이프라인 ──────────────────────────── +def retrain_and_eval(): + logger.info("Starting retrain & eval pipeline") + # Stain 모델 재학습 + conf 튜닝 + 평가 + if os.listdir(TRAIN_STAIN_IMG_DIR): + run=get_next_run(MODEL_BASE_STAIN) + model=YOLO(STAIN_MODEL_PATH); model.callbacks=[] + model.train(project=MODEL_BASE_STAIN, name=run, save=True, **STAIN_CFG) + best=os.path.join(MODEL_BASE_STAIN, run, "weights", "best.pt") + logger.info(f"[Stain] Trained -> {best}") + new_thresh,new_global=optimize_conf_thresh(best) + CLASS_CONF_THRESH.clear(); CLASS_CONF_THRESH.update(new_thresh) + global GLOBAL_CONF; GLOBAL_CONF=new_global + res=evaluate_stain(best) + out={"model_version":f"v{float(run) / 10}", "model_type":"stain", "weights_path":best, "metrics":res} + p=os.path.join(PERF_ROOT,"stain","performance.json") + json.dump(out, open(p,"w",encoding="utf8"), ensure_ascii=False, indent=2) + logger.info(f"[Stain] Report -> {p}") + else: + logger.error("No stain train images found; skipping stain") + # Symbol 모델 재학습 + 평가 + if os.listdir(TRAIN_SYM_IMG_DIR): + run=get_next_run(MODEL_BASE_SYM) + model=YOLO(SYMBOL_MODEL_PATH); model.callbacks=[] + model.train(project=MODEL_BASE_SYM, name=run, save=True, **SYMBOL_CFG) + best=os.path.join(MODEL_BASE_SYM, run, "weights", "best.pt") + logger.info(f"[Symbol] Trained -> {best}") + res=evaluate_symbol(best) + out={"model_version":f"v{float(run) / 10}", "model_type":"symbol", "weights_path":best, "metrics":res} + p=os.path.join(PERF_ROOT,"symbol","performance.json") + json.dump(out, open(p,"w",encoding="utf8"), ensure_ascii=False, indent=2) + logger.info(f"[Symbol] Report -> {p}") + else: + logger.error("No symbol train images found; skipping symbol") + logger.info("Retrain & eval pipeline complete") + +if __name__ == "__main__": + logger.info("── PIPELINE START ──") + db_fetch() + retrain_and_eval() + logger.info("── PIPELINE COMPLETE ──") diff --git a/ai_train/retrain/stain/stain_cls.pt b/ai_train/retrain/stain/stain_cls.pt new file mode 100644 index 000000000..1d6c01291 Binary files /dev/null and b/ai_train/retrain/stain/stain_cls.pt differ diff --git a/ai_train/retrain/symbol/laundry_labels_cls.pt b/ai_train/retrain/symbol/laundry_labels_cls.pt new file mode 100644 index 000000000..450fa4199 Binary files /dev/null and b/ai_train/retrain/symbol/laundry_labels_cls.pt differ diff --git a/ai_train/stain/model/stain_yolov8s_1280_b2/args.yaml b/ai_train/stain/model/stain_yolov8s_1280_b2/args.yaml new file mode 100644 index 000000000..9d9e885f5 --- /dev/null +++ b/ai_train/stain/model/stain_yolov8s_1280_b2/args.yaml @@ -0,0 +1,106 @@ +task: detect +mode: train +model: yolov8s.pt +data: /home/t25119/aiLab/data/stain/data.yaml +epochs: 200 +time: null +patience: 100 +batch: 2 +imgsz: 1280 +save: true +save_period: 5 +cache: false +device: cuda:0 +workers: 1 +project: /home/t25119/aiLab/exp/stain/opt_final_trial +name: stain_yolov8s_1280_b2 +exist_ok: false +pretrained: true +optimizer: auto +verbose: true +seed: 0 +deterministic: true +single_cls: false +rect: false +cos_lr: false +close_mosaic: 10 +resume: false +amp: true +fraction: 1.0 +profile: false +freeze: null +multi_scale: false +overlap_mask: true +mask_ratio: 4 +dropout: 0.0 +val: true +split: val +save_json: false +save_hybrid: false +conf: null +iou: 0.7 +max_det: 300 +half: false +dnn: false +plots: true +source: null +vid_stride: 1 +stream_buffer: false +visualize: false +augment: false +agnostic_nms: false +classes: null +retina_masks: false +embed: null +show: false +save_frames: false +save_txt: false +save_conf: false +save_crop: false +show_labels: true +show_conf: true +show_boxes: true +line_width: null +format: torchscript +keras: false +optimize: false +int8: false +dynamic: false +simplify: false +opset: null +workspace: 4 +nms: false +lr0: 0.001 +lrf: 0.01 +momentum: 0.937 +weight_decay: 0.0002 +warmup_epochs: 2 +warmup_momentum: 0.8 +warmup_bias_lr: 0.1 +box: 7.5 +cls: 0.5 +dfl: 1.5 +pose: 12.0 +kobj: 1.0 +label_smoothing: 0.01 +nbs: 64 +hsv_h: 0.015 +hsv_s: 0.7 +hsv_v: 0.4 +degrees: 0.0 +translate: 0.2 +scale: 0.6 +shear: 4.0 +perspective: 0.001 +flipud: 0.2 +fliplr: 0.5 +bgr: 0.0 +mosaic: 1.0 +mixup: 0.0 +copy_paste: 0.0 +auto_augment: randaugment +erasing: 0.4 +crop_fraction: 1.0 +cfg: null +tracker: botsort.yaml +save_dir: /home/t25119/aiLab/exp/stain/opt_final_trial/stain_yolov8s_1280_b2 diff --git a/ai_train/stain/model/stain_yolov8s_1280_b2/events.out.tfevents.1744630578.ceprj.107948.0 b/ai_train/stain/model/stain_yolov8s_1280_b2/events.out.tfevents.1744630578.ceprj.107948.0 new file mode 100644 index 000000000..8ce568fb3 Binary files /dev/null and b/ai_train/stain/model/stain_yolov8s_1280_b2/events.out.tfevents.1744630578.ceprj.107948.0 differ diff --git a/ai_train/stain/model/stain_yolov8s_1280_b2/labels.jpg b/ai_train/stain/model/stain_yolov8s_1280_b2/labels.jpg new file mode 100644 index 000000000..ba01e9232 Binary files /dev/null and b/ai_train/stain/model/stain_yolov8s_1280_b2/labels.jpg differ diff --git a/ai_train/stain/model/stain_yolov8s_1280_b2/labels_correlogram.jpg b/ai_train/stain/model/stain_yolov8s_1280_b2/labels_correlogram.jpg new file mode 100644 index 000000000..95571d9ac Binary files /dev/null and b/ai_train/stain/model/stain_yolov8s_1280_b2/labels_correlogram.jpg differ diff --git a/ai_train/stain/model/stain_yolov8s_1280_b2/results.csv b/ai_train/stain/model/stain_yolov8s_1280_b2/results.csv new file mode 100644 index 000000000..d945a5fef --- /dev/null +++ b/ai_train/stain/model/stain_yolov8s_1280_b2/results.csv @@ -0,0 +1,11 @@ + epoch, train/box_loss, train/cls_loss, train/dfl_loss, metrics/precision(B), metrics/recall(B), metrics/mAP50(B), metrics/mAP50-95(B), val/box_loss, val/cls_loss, val/dfl_loss, lr/pg0, lr/pg1, lr/pg2 + 1, 2.2507, 4.2014, 2.1294, 0.28249, 0.22416, 0.15362, 0.06523, 2.2374, 3.0845, 2.1757, 0.0049986, 0.0049986, 0.0049986 + 2, 2.1997, 3.2481, 2.0597, 0.27443, 0.18113, 0.13659, 0.04477, 2.4104, 3.3451, 2.3305, 0.0099492, 0.0099492, 0.0099492 + 3, 2.2248, 3.1981, 2.0768, 0.48127, 0.17214, 0.1614, 0.06083, 2.2484, 3.1064, 2.2516, 0.009901, 0.009901, 0.009901 + 4, 2.1813, 3.0296, 2.0549, 0.22238, 0.26854, 0.21557, 0.08356, 2.2252, 3.025, 2.1982, 0.0098515, 0.0098515, 0.0098515 + 5, 2.1539, 2.9195, 2.038, 0.27082, 0.29971, 0.24315, 0.10299, 2.1619, 2.745, 2.1686, 0.009802, 0.009802, 0.009802 + 6, 2.1255, 2.7895, 2.0125, 0.43204, 0.26304, 0.22916, 0.09014, 2.1332, 2.9073, 2.1561, 0.0097525, 0.0097525, 0.0097525 + 7, 2.0888, 2.6981, 1.9807, 0.34455, 0.31515, 0.28797, 0.10992, 2.2066, 2.7151, 2.2159, 0.009703, 0.009703, 0.009703 + 8, 2.059, 2.6145, 1.9608, 0.30616, 0.32081, 0.26593{"code":"internal","msg":"git-diff-tree: context deadline exceeded","meta":{"cause":"*fmt.wrapError"}}