๐Ÿš—

labelme+YOLOXใง่‡ชไฝœใƒ‡ใƒผใ‚ฟใ‚ปใƒƒใƒˆใฎๅญฆ็ฟ’๏ผ

ใซๅ…ฌ้–‹3ไปถ

ๅ‰ๅ›ž่จ˜ไบ‹ใฎ็ต‚ใ‚ใ‚Šใงใ€ŒYOLOXใฎ่จ˜ไบ‹ๆ›ธใใŸใ„ใชใใƒปใƒปใƒปใ€ใจ่จ€ใฃใฆใ„ใพใ—ใŸใŒใ€ไปŠๅ›žใฏใใฎYOLOXใ‚’ๅฎŸ้š›ใซๅ‹•ใ‹ใ—ใฆใฟใŸใ„ใจๆ€ใ„ใพใ™๏ผ

ใŸใ ใ€ใ€ŒCOCOใƒ‡ใƒผใ‚ฟใ‚ปใƒƒใƒˆใ‚’ไฝฟใฃใฆYOLOXใ‚’ๅญฆ็ฟ’ใ€ใ ใจใฟใ‚“ใชใ‚„ใฃใฆใ‚‹ๅ‘ณๆฐ—ใชใ„ใฎใงใ€่‡ชไฝœใƒ‡ใƒผใ‚ฟใ‚ปใƒƒใƒˆใ‚’็”จใ„ใฆYOLOXใฎๅญฆ็ฟ’ใ‚’่กŒใฃใฆใฟใŸใ„ใจๆ€ใ„ใพใ™๏ผ

็’ฐๅขƒ

ๅ‰ๅ›žใฎ่จ˜ไบ‹ใงไฝœๆˆใ—ใŸDocker็’ฐๅขƒๅ†…ใงๅญฆ็ฟ’ใ—ใฆใ„ใใŸใ„ใจๆ€ใ„ใพใ™๏ผ
https://zenn.dev/opamp/articles/7880812d78226f

็”ปๅƒใƒ‡ใƒผใ‚ฟใซใƒฉใƒ™ใƒซไป˜ใ‘ใ‚’่กŒใ†

YOLOXใ‚’ๅญฆ็ฟ’ใ•ใ›ใ‚‹ใŸใ‚ใซใฏใƒ‡ใƒผใ‚ฟใ‚ปใƒƒใƒˆใŒๅฟ…่ฆใจใชใ‚Šใพใ™ใ€‚ไปŠๅ›žใฏใƒ‡ใƒผใ‚ฟใ‚ปใƒƒใƒˆใ‚’่‡ชๅ‰ใงไฝœๆˆใ™ใ‚‹ใจใ“ใ‚ใ‹ใ‚‰ๅง‹ใ‚ใฆใ„ใใพใ™ใ€‚
ไปฅ้™ใฎไฝœๆฅญใฏใ€็”ปๅƒใƒ‡ใƒผใ‚ฟใŒใ™ใงใซๅญ˜ๅœจใ™ใ‚‹๏ผˆใ™ใงใซๆ’ฎๅฝฑๆธˆใฟ๏ผ‰ใงใ‚ใ‚‹ใจไปฎๅฎšใ—ใฆ้€ฒใ‚ใฆใ„ใใพใ™ใ€‚

ไปŠๅ›žใฏใ‚ขใƒŽใƒ†ใƒผใ‚ทใƒงใƒณใซใ‚ˆใๅˆฉ็”จใ•ใ‚Œใ‚‹labelmeใจใ„ใ†ใƒ„ใƒผใƒซใ‚’็”จใ„ใฆใ‚ขใƒŽใƒ†ใƒผใ‚ทใƒงใƒณใ—ใพใ™ใ€‚

labelmeใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซ

labelmeใฏใƒญใƒผใ‚ซใƒซใฎ็’ฐๅขƒใซใ‚คใƒณใ‚นใƒˆใƒผใƒซใ—ใพใ™ใ€‚

pip install labelme

Successfully installedใจ่กจ็คบใ•ใ‚Œใ‚Œใฐใ‚คใƒณใ‚นใƒˆใƒผใƒซใฏๅฎŒไบ†ใงใ™๏ผ

labelmeใฎ่ตทๅ‹•

labelmeใ‚’ๅˆฉ็”จใ™ใ‚‹้š›ใฏใ€ใ‚ฟใƒผใƒŸใƒŠใƒซใซใฆ

labelme

ใจๅ…ฅๅŠ›ใ™ใ‚‹ใ“ใจใงใ€GUIใŒ็ซ‹ใกไธŠใŒใ‚Šใพใ™ใ€‚ใ“ใ‚“ใชๆ„Ÿใ˜ใงใ™ใญใ€‚

ใ‚ขใƒŽใƒ†ใƒผใ‚ทใƒงใƒณใ‚’้–‹ๅง‹ใ™ใ‚‹ใซใฏใ€ๅทฆใฎใƒกใƒ‹ใƒฅใƒผใƒใƒผใ‹ใ‚‰OpenDirใ‚’้ธๆŠžใ—ใ€็”ปๅƒใŒไฟๅญ˜ใ•ใ‚Œใฆใ„ใ‚‹ใƒ•ใ‚ฉใƒซใƒ€ใ‚’้ธๆŠžใ—ใพใ™ใ€‚
ใƒ•ใ‚ฉใƒซใƒ€ใ‚’้ธๆŠžใ™ใ‚‹ใจใ€ไฟๅญ˜ใ•ใ‚Œใฆใ„ใ‚‹็”ปๅƒใŒ่กจ็คบใ•ใ‚Œใ‚‹ใจๆ€ใ„ใพใ™ใ€‚
็ญ†่€…็’ฐๅขƒใงใฏใ€ไป•ไบ‹็Œซใฎๆคœๅ‡บใ‚’่กŒใฃใฆใฟใŸใ„ใจๆ€ใ„ใพใ™ใ€‚

ใ‚ขใƒŽใƒ†ใƒผใ‚ทใƒงใƒณ

ไปŠๅ›žใฏ็‰ฉไฝ“ๆคœๅ‡บใชใฎใง้•ทๆ–นๅฝขใฎใ‚ขใƒŽใƒ†ใƒผใ‚ทใƒงใƒณใซใชใ‚Šใพใ™ใ€‚
็”ปๅƒไธŠใงๅณใ‚ฏใƒชใƒƒใ‚ฏใ™ใ‚‹ใจใƒกใƒ‹ใƒฅใƒผใŒ่กจ็คบใ•ใ‚Œใพใ™ใŒใ€ใใฎไธญใ‹ใ‚‰Create Rectangleใ‚’้ธๆŠžใ—ใพใ™ใ€‚
ใ‚ซใƒผใ‚ฝใƒซใŒๅๅญ—ใซๅค‰ๅŒ–ใ—ใŸใ‚‰ใ€ๆคœๅ‡บใ—ใŸใ„็‰ฉไฝ“ใฎๅทฆไธŠใ‚’ใ‚ฏใƒชใƒƒใ‚ฏใ—ใพใ™ใ€‚ใ™ใ‚‹ใจ้•ทๆ–นๅฝขใŒๆ็”ปใ•ใ‚Œใ‚‹ใจๆ€ใ†ใฎใงใ€ๆคœๅ‡บใ—ใŸใ„็‰ฉไฝ“ใ‚’ใ™ในใฆๅ›ฒใ‚ใ‚‹ใ‚ˆใ†ใซใƒžใ‚ฆใ‚นใ‚’ๅ‹•ใ‹ใ—ใ€ใ‚‚ใ†ไธ€ๅบฆใ‚ฏใƒชใƒƒใ‚ฏใ—ใพใ™ใ€‚

ใ™ใ‚‹ใจๆ–ฐใŸใชใ‚ฆใ‚ฃใƒณใƒ‰ใ‚ฆใŒ่กจ็คบใ•ใ‚Œใพใ™ใ€‚ใ“ใฎใ‚ฆใ‚ฃใƒณใƒ‰ใ‚ฆใฏไปŠๅ›ฒใฃใŸๅฏพ่ฑกใฎใƒฉใƒ™ใƒซใ‚’้ธๆŠžใ™ใ‚‹็”ป้ขใงใ™ใ€‚ใƒฉใƒ™ใƒซใ‚’ใพใ ็™ป้Œฒใ—ใฆใ„ใชใ„ๅ ดๅˆใฏใ€Enter object labelใซๅฏพ่ฑกใฎใƒฉใƒ™ใƒซๅใ‚’ๅ…ฅๅŠ›ใ€ใ™ใงใซๅญ˜ๅœจใ™ใ‚‹ๅ ดๅˆใฏไธ‹ใ‹ใ‚‰้ธๆŠžใ—okใ‚’ใ‚ฏใƒชใƒƒใ‚ฏใ—ใพใ™ใ€‚

ใ“ใ‚Œใงใ‚ขใƒŽใƒ†ใƒผใ‚ทใƒงใƒณใฏๅฎŒไบ†ใงใ™๏ผใปใ‹ใฎ็”ปๅƒใซๅฏพใ—ใฆใ‚‚ๅŒๆง˜ใซ่กŒใ„ใพใ—ใ‚‡ใ†๏ผ๏ผˆ้ ใ„็›ฎ๏ผ‰

ใ‚ขใƒŽใƒ†ใƒผใ‚ทใƒงใƒณใŒ็ต‚ใ‚ใ‚Œใฐใ€ๅญฆ็ฟ’ใซๅˆฉ็”จใ™ใ‚‹ใƒ‡ใƒผใ‚ฟใจๆคœ่จผใซๅˆฉ็”จใ™ใ‚‹ใƒ‡ใƒผใ‚ฟใ‚’ๅˆฅใ€…ใฎใƒ•ใ‚ฉใƒซใƒ€ใซๆ ผ็ดใ—ใฆไฟๅญ˜ใ—ใฆใŠใใพใ™ใ€‚

ใพใŸใ€ๅˆฉ็”จใ—ใŸใ‚ฏใƒฉใ‚นใ‚’่จ˜่ผ‰ใ—ใŸtextใƒ‡ใƒผใ‚ฟใ‚’ไฝœๆˆใ—ใฆใŠใใพใ—ใ‚‡ใ†ใ€‚

classes.txt
__ignore__
class1
class2
class3

ใ‚ขใƒŽใƒ†ใƒผใ‚ทใƒงใƒณใƒ‡ใƒผใ‚ฟใฎๅค‰ๆ›

็ถšใ„ใฆใƒ‡ใƒผใ‚ฟใ‚ปใƒƒใƒˆใฎๅค‰ๆ›ใ‚’่กŒใ„ใพใ™ใ€‚ใพใšใฏๅค‰ๆ›ใฎ้š›ใซๅฟ…่ฆใจใชใ‚‹pycocotoolsใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใ‹ใ‚‰ๅง‹ใ‚ใพใ—ใ‚‡ใ†ใ€‚
ใ“ใกใ‚‰ใฏwindowsใซใ‚คใƒณใ‚นใƒˆใƒผใƒซใ—ใพใ™ใ€‚

pip install pycocotools

ใ‚‚ใ—ใ‚คใƒณใ‚นใƒˆใƒผใƒซใฎ้š›ใซไปฅไธ‹ใฎใ‚ˆใ†ใชใ‚จใƒฉใƒผใŒ็™บ็”Ÿใ—ใŸๅ ดๅˆใฏใ€

error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/

https://visualstudio.microsoft.com/visual-cpp-build-tools/
ใซใ‚ขใ‚ฏใ‚ปใ‚นใ—ใ€ใ‚คใƒณใ‚นใƒˆใƒผใƒซใƒฉใƒผใ‚’ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ—ใพใ™ใ€‚

็ถšใ„ใฆ
https://self-development.info/ใ€Œmicrosoft-visual-c-14-0-or-greater-is-required-ใ€ใŒๅ‡บใŸๅ ดๅˆใฎๅฏพๅ‡ฆๆ–นๆณ•/
ใซๅพ“ใ„ใชใŒใ‚‰ๆบ–ๅ‚™ใ‚’้€ฒใ‚ใฆใใ ใ•ใ„๏ผๅ†่ตทๅ‹•ใ—ใฆใใ ใ•ใ„ใจๅ‡บใ‚‹ใจๆ€ใ†ใฎใงใ€ๅฟ…ใšๅ†่ตทๅ‹•ใ‚’ใ—ใฆไธ‹ใ•ใ„ใ€‚๏ผˆใ‚ปใƒƒใƒˆใ‚ขใƒƒใƒ—ใŒ็ต‚ใ‚ใ‚Šใพใ›ใ‚“ใƒปใƒปใƒป๏ผ‰

ใ‚คใƒณใ‚นใƒˆใƒผใƒซใŒ็ต‚ใ‚ใ‚Œใฐใ€็ถšใ„ใฆ
https://github.com/wkentaro/labelme
ใ‚’ใ‚ฏใƒญใƒผใƒณใ—ใพใ™ใ€‚

git clone https://github.com/wkentaro/labelme

ใ‚ฏใƒญใƒผใƒณใŒ็ต‚ใ‚ใ‚‹ใจใ€ใ„ใ‚ˆใ„ใ‚ˆๅค‰ๆ›ใซ็งปใ‚Šใพใ™ใ€‚
ๅค‰ๆ›ใซใฏlabelme2coco.pyใจใ„ใ†ใ‚‚ใฎใ‚’ไฝฟใ„ใพใ™ใ€‚labelme2coco.pyใฏ/labelme/examples/instance_segmentationใซๅ…ฅใฃใฆใ„ใพใ™ใฎใงใ€ใใ“ใพใง็งปๅ‹•ใ—ใพใ—ใ‚‡ใ†๏ผ

็งปๅ‹•ๅ…ˆใซไฝœๆˆใ—ใŸใƒ‡ใƒผใ‚ฟ้กžใ‚’็งปๅ‹•ใ•ใ›ใพใ™ใ€‚ใ“ใ‚“ใชๆ„Ÿใ˜ใงใ™ใญใ€‚

ใงใฏๅค‰ๆ›ใ—ใฆใ„ใใพใ—ใ‚‡ใ†๏ผๅค‰ๆ›ใฏ

python labelme2coco.py [ใƒ‡ใƒผใ‚ฟใ‚ปใƒƒใƒˆใฎใƒ•ใ‚ฉใƒซใƒ€] [ไฟๅญ˜ๅ] --labels classes.txt

ใฎใ‚ˆใ†ใซๆ›ธใใ“ใจใŒใงใใพใ™ใ€‚
็ญ†่€…ใฎ็’ฐๅขƒใงใ™ใจใ€

python labelme2coco.py 01.train train_dataset --labels classes.txt
python labelme2coco.py 02.val val_dataset --labels classes.txt

ใฎใ‚ˆใ†ใซใชใ‚Šใพใ™ใ€‚

ๆฌกใซ็”Ÿๆˆใ•ใ‚ŒใŸใƒ‡ใƒผใ‚ฟใ‚ปใƒƒใƒˆใ‚’YOLOX็”จใซๅค‰ๆ›ดใ—ใพใ™ใ€‚
ใพใšใฏใ˜ใ‚ใซใƒ•ใ‚ฉใƒซใƒ€ใ‚’ไฝœๆˆใ—ใพใ™ใ€‚

mkdir -p dataset/train2017/
mkdir -p dataset/val2017/
mkdir -p dataset/annotations

็ถšใ„ใฆ็”Ÿๆˆใ•ใ‚ŒใŸๅญฆ็ฟ’ใƒ‡ใƒผใ‚ฟใ‚ปใƒƒใƒˆใฎไธญใซใ‚ใ‚‹็”ปๅƒ(JPEGImagesใฎไธญใฎ็”ปๅƒ)ใ‚’dataset/train2017/ใซ็งปๅ‹•ใ—ใพใ™ใ€‚
ๅŒๆง˜ใซๆคœ่จผใƒ‡ใƒผใ‚ฟใ‚ปใƒƒใƒˆใฎไธญใซใ‚ใ‚‹็”ปๅƒใ‚’dataset/val2017/ใธ็งปๅ‹•ใ—ใพใ™ใ€‚
ๆœ€ๅพŒใซๅ„ใƒ‡ใƒผใ‚ฟใ‚ปใƒƒใƒˆใƒ•ใ‚ฉใƒซใƒ€ใฎไธญใซใ‚ใ‚‹annotations.jsonใ‚’train_annotations.jsonใ€val_annotations.jsonใซๅค‰ๆ›ดใ—ใ€dataset/annotationsใซๆ ผ็ดใ—ใพใ™ใ€‚
ใ“ใ“ใพใงใงใƒ•ใ‚ฉใƒซใƒ€ๆง‹ๆˆใฏๆฌกใฎใ‚ˆใ†ใซใชใฃใฆใ„ใพใ™ใ€‚

dataset
โ”œโ”€โ”€ train2017
โ”‚   โ””โ”€โ”€ ็”ปๅƒ.jpg ... (ๅญฆ็ฟ’็”จ็”ปๅƒ็พค)
โ””โ”€โ”€ val2017
โ”‚   โ””โ”€โ”€ ็”ปๅƒ.jpg ... (่ฉ•ไพก็”จ็”ปๅƒ่ป)
โ””โ”€โ”€ annotations
ใ€€ใ€€โ”œโ”€โ”€ train_annotations.json
ใ€€ใ€€โ””โ”€โ”€ val_annotations.json

ๆœ€ๅพŒใซใ‚ขใƒŽใƒ†ใƒผใ‚ทใƒงใƒณใƒ‡ใƒผใ‚ฟใฎไฟฎๆญฃใ‚’่กŒใ„ใพใ™ใ€‚
datasetใƒ•ใ‚ฉใƒซใƒ€ๅ†…ใซfix_annot.pyใƒ•ใ‚กใ‚คใƒซใ‚’ไฝœๆˆใ—ใ€ไปฅไธ‹ใ‚’่จ˜่ฟฐใ—ใพใ™ใ€‚

fix_annot.py
import os 
import glob

annot_list = glob.glob(os.path.join('./annotations/','*.json'))

for path in annot_list:
    with open(path , 'r' ,encoding = 'utf-8') as f:
        jf = json.load(f)
    for data in jf['images']:
        data['file_name'] = data['file_name'].split('\\')[-1]
    with open(path , 'w' ,encoding = 'utf-8') as f:
        json.dump(jf , f)

ใ“ใ‚Œใงใƒ‡ใƒผใ‚ฟใ‚ปใƒƒใƒˆใฏๅฎŒๆˆใงใ™๏ผ

YOLOXใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซ

็ถšใ„ใฆYOLOXใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใ‚’่กŒใ„ใพใ™ใ€‚ใ“ใ“ใ‹ใ‚‰ใฏDockerใงไฝœๆฅญใ—ใฆใ„ใใพใ™ใ€‚
YOLOXใฎGithubใ‚ตใ‚คใƒˆ
https://github.com/Megvii-BaseDetection/YOLOX
ใ‹ใ‚‰ใ‚คใƒณใ‚นใƒˆใƒผใƒซๆ–นๆณ•ใ‚’็ขบ่ชใ€‚ใกใ‚‡ใฃใจๅค‰ๆ›ดใƒปใƒปใƒปใ€‚

git clone https://github.com/Megvii-BaseDetection/YOLOX
cd YOLOX
pip3 install -U pip && pip3 install -r requirements.txt
pip3 install -v -e .  # or  python3 setup.py develop
pip3 install cython; pip3 install 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'

ใ“ใฎใ‚ณใƒžใƒณใƒ‰ใงไธ€้€šใ‚Šๅ…ฅใ‚Šใพใ™๏ผ

ๅญฆ็ฟ’ๅฎš็พฉใƒ•ใ‚กใ‚คใƒซใฎไฝœๆˆ

ไปŠๅ›žใฏๅฐใ•ใชใƒขใƒ‡ใƒซใ€YOLOX-Sใƒขใƒ‡ใƒซใงๅฎŸ่ฃ…ใ—ใฆใ„ใใพใ™๏ผ
YOLOXใฏๅญฆ็ฟ’ใฎ้š›ใซๅญฆ็ฟ’ๅ†…ๅฎนใ‚’ๅฎš็พฉใ—ใŸใƒ•ใ‚กใ‚คใƒซใ‚’ๅฟ…่ฆใจใ—ใพใ™ใ€‚
YOLOXใฎๅญฆ็ฟ’ๅฎš็พฉใƒ•ใ‚กใ‚คใƒซใฏYOLOX/yolox/exp/yolox_base.pyใ‚’่ฆชใ‚ฏใƒฉใ‚นใจใ—ใŸๆง‹็ฏ‰ใ•ใ‚Œใพใ™ใ€‚
ใพใšใฏyolox_base.pyใ‚’็ขบ่ชใ—ใฆใฟใพใ—ใ‚‡ใ†ใ€‚

yolox_base.py
        self.num_classes = 80
        self.depth = 1.00
        self.width = 1.00
        self.act = 'silu'

        # ---------------- dataloader config ---------------- #
        # set worker to 4 for shorter dataloader init time
        self.data_num_workers = 4
        self.input_size = (640, 640)  # (height, width)
        # Actual multiscale ranges: [640-5*32, 640+5*32].
        # To disable multiscale training, set the
        # self.multiscale_range to 0.
        self.multiscale_range = 5
        # You can uncomment this line to specify a multiscale range
        # self.random_size = (14, 26)
        self.data_dir = None
        self.train_ann = "instances_train2017.json"
        self.val_ann = "instances_val2017.json"

        # --------------- transform config ----------------- #
        self.mosaic_prob = 1.0
        self.mixup_prob = 1.0
        self.hsv_prob = 1.0
        self.flip_prob = 0.5
        self.degrees = 10.0
        self.translate = 0.1
        self.mosaic_scale = (0.1, 2)
        self.mixup_scale = (0.5, 1.5)
        self.shear = 2.0
        self.enable_mixup = True

        # --------------  training config --------------------- #
        self.warmup_epochs = 5
        self.max_epoch = 300
        self.warmup_lr = 0
        self.basic_lr_per_img = 0.01 / 64.0
        self.scheduler = "yoloxwarmcos"
        self.no_aug_epochs = 15
        self.min_lr_ratio = 0.05
        self.ema = True

        self.weight_decay = 5e-4
        self.momentum = 0.9
        self.print_interval = 10
        self.eval_interval = 10
        self.exp_name = os.path.split(os.path.realpath(__file__))[1].split(".")[0]

        # -----------------  testing config ------------------ #
        self.test_size = (640, 640)
        self.test_conf = 0.01
        self.nmsthre = 0.65

dataloader configใซใฏๅญฆ็ฟ’ใƒ‡ใƒผใ‚ฟใฎ้…็ฝฎๅ ดๆ‰€ใ€ไฝฟ็”จใ™ใ‚‹CPUๆ•ฐใ‚„็”ปๅƒใ‚ตใ‚คใ‚บใชใฉใŒๅฎš็พฉใ•ใ‚Œใฆใ„ใพใ™ใ€‚
transform configใซใฏๅญฆ็ฟ’ๆ™‚ใฎใƒ‡ใƒผใ‚ฟๆ‹กๅผตใฎๆ–นๆณ•ใŒๅฎš็พฉใ•ใ‚Œใฆใ„ใพใ™ใ€‚
training configใซใฏๅญฆ็ฟ’ๆ™‚ใฎๆˆฆ็•ฅใŒๆ›ธใ‹ใ‚Œใฆใ„ใพใ™ใ€‚๏ผˆๆœ€ๅคงEpochๆ•ฐใ‚„ๅญฆ็ฟ’็އใชใฉ๏ผ‰
testing configใซใฏใƒ†ใ‚นใƒˆๆ™‚ใฎ่จญๅฎšใŒ่จ˜่ผ‰ใ•ใ‚Œใฆใ„ใพใ™ใ€‚

ไปŠๅ›žใฏdataloader configใฎใฟๅค‰ๆ›ดใ—ใฆใ„ใใพใ™ใ€‚

็‹ฌ่‡ชใฎใƒขใƒ‡ใƒซ่จญๅฎšใ‚’ไฝœใ‚‹ๅ‰ใซใ€ใฒใชๅฝขใฎ่จญๅฎšใ‚’ใ‚ณใƒ”ใƒผใ—ใพใ—ใ‚‡ใ†ใ€‚
ใฒใชๅฝขใฎ่จญๅฎšใฏYOLOX/exp/defaultใซไฟๅญ˜ใ•ใ‚Œใฆใ„ใพใ™ใ€‚

ใ“ใฎไธญใ‹ใ‚‰ไปŠๅ›žใฏyolox_s.pyใ‚’YOLOX็›ดไธ‹ใซใ‚ณใƒ”ใƒผใ—ใพใ™ใ€‚
ใงใฏใ‚ณใƒ”ใƒผใ—ใŸใƒ•ใ‚กใ‚คใƒซใ‚’็ทจ้›†ใ—ใฆใ„ใใพใ™ใ€‚
ไปฅไธ‹ใฎใ‚ณใƒผใƒ‰ๅ†…ใฎใ‚ณใƒกใƒณใƒˆใ‚’ๅ‚่€ƒใซใ—ใชใŒใ‚‰่จญๅฎšใ‚’ๅค‰ๆ›ดใ—ใฆใใ ใ•ใ„๏ผ

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
# Copyright (c) Megvii, Inc. and its affiliates.


import os

from yolox.exp import Exp as MyExp


class Exp(MyExp):
    def __init__(self):
        super(Exp, self).__init__()
        self.depth = 0.33
        self.width = 0.50
        self.exp_name = os.path.split(os.path.realpath(__file__))[1].split(".")[0]

	## ใƒ‡ใƒผใ‚ฟใ‚ปใƒƒใƒˆใฎๅ ดๆ‰€ใ‚’ๅฎš็พฉ(./datasets/ใƒ•ใ‚ฉใƒซใƒ€ใซ้…็ฝฎใ—ใŸๅ ดๅˆใฏไปฅไธ‹ใฎใ‚ˆใ†ใซใชใ‚‹)
	self.data_dir = "./datasets/dataset"
        self.train_ann = "train_annotations.json"
        self.val_ann = "val_annotations.json"
	
	## ใ‚ฏใƒฉใ‚นๆ•ฐใฎๅค‰ๆ›ด
	self.num_classes = 3
	
	## ่ฉ•ไพก้–“้š”ใ‚’ๅค‰ๆ›ด๏ผˆๅˆๆœŸใงใฏ10epochใ”ใจใซใ—ใ‹่ฉ•ไพกใŒๅ›žใ‚‰ใชใ„๏ผ‰
	self.eval_interval = 1

ใ“ใ‚ŒใŒๅฎŒๆˆใ™ใ‚Œใฐใ€ใ„ใ‚ˆใ„ใ‚ˆๅญฆ็ฟ’ใงใ™๏ผ

YOLOXใฎๅญฆ็ฟ’

ใงใฏๅญฆ็ฟ’ใ—ใฆใ„ใใพใ—ใ‚‡ใ†๏ผ
ๅญฆ็ฟ’ใซใฏYOLOX/tools/train.pyใŒๅฟ…่ฆใชใฎใงใ€YOLOXใฎ็›ดไธ‹ใซใ‚ณใƒ”ใƒผใ—ใฆใŠใใพใ—ใ‚‡ใ†ใ€‚

cp ./tools/train.py ./

ใพใŸๅญฆ็ฟ’ๆธˆใฟใƒขใƒ‡ใƒซใ‚’ๅˆฉ็”จใ™ใ‚‹้š›ใฏใ€ๅ…ˆใซใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ—ใฆใŠใใพใ™ใ€‚
GithubใฎBenchmarkใฎใจใ“ใ‚ใ‹ใ‚‰ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใงใใพใ™ใ€‚
YOLOX-sใ‚’ไฝฟใ†ๅ ดๅˆใฏไปฅไธ‹ใฎใ‚ณใƒžใƒณใƒ‰ใงใ‚‚ๅคงไธˆๅคซใงใ™๏ผ

wget https://github.com/Megvii-BaseDetection/YOLOX/releases/download/0.1.1rc0/yolox_s.pth

ๅญฆ็ฟ’ใฏไปฅไธ‹ใฎใ‚ณใƒžใƒณใƒ‰ใง่กŒใ„ใพใ™๏ผ

python train.py -f yolox_s.py -d 1 -b 16 --fp16 -o -c ./yolox_s.pth --cache

ๅผ•ๆ•ฐใฎ่ชฌๆ˜Žใฏ

  • -f๏ผš่จญๅฎšใƒ•ใ‚กใ‚คใƒซใฎใƒ‘ใ‚น
  • -d๏ผšๅˆฉ็”จใ™ใ‚‹GPUใฎๆ•ฐ
  • -b๏ผšใƒใƒƒใƒใ‚ตใ‚คใ‚บ
  • -o๏ผšๅญฆ็ฟ’ๅ‰ใซๅˆฉ็”จใ™ใ‚‹GPUใƒกใƒขใƒชใ‚’ไบˆ็ด„ใ™ใ‚‹
  • -c๏ผšๅญฆ็ฟ’ๆธˆใฟใƒขใƒ‡ใƒซใฎใƒ‘ใ‚น
  • --fp16๏ผš็•ณใฟ่พผใฟๅฑคใชใฉใฎ่จˆ็ฎ—ใ‚’float16ใง่กŒใ†ใ€‚็ฒพๅบฆใฏ่‹ฅๅนฒ่ฝใกใ‚‹ใŒใ€ๅญฆ็ฟ’ใŒ้ซ˜้€Ÿใซใชใ‚‹
  • --cache๏ผšๅญฆ็ฟ’ๆธˆใฟใƒ‡ใƒผใ‚ฟใ‚’YOLOXใŒ้ซ˜้€Ÿใซ่ชญใฟๅ‡บใ›ใ‚‹ๅฝขใซๅค‰ๅฝขใ™ใ‚‹ใ€‚ๅญฆ็ฟ’ใƒ‡ใƒผใ‚ฟใ‚’ๅค‰ๆ›ดใ™ใ‚‹้š›ใฏใƒ‡ใƒผใ‚ฟใ‚ปใƒƒใƒˆใƒ•ใ‚ฉใƒซใƒ€ๅ†…ใซ็”Ÿๆˆใ•ใ‚ŒใŸใ‚ญใƒฃใƒƒใ‚ทใƒฅใƒ‡ใƒผใ‚ฟใ‚’ๅ‰Š้™คใ—ใชใ„ใจใ€ใƒ‡ใƒผใ‚ฟใŒๅค‰ๆ›ดใ•ใ‚Œใชใ„ใฎใงๆณจๆ„ใŒๅฟ…่ฆใ€‚

ใ‚‚ใ—OpenCVใฎใ‚จใƒฉใƒผใŒๅ‡บๅŠ›ใ•ใ‚ŒใŸๅ ดๅˆใฏ

apt-get install -y libgl1-mesa-dev
apt-get install -y libglib2.0-0

ใ‚’ๅฎŸ่กŒใ—ใฆใฟใฆใใ ใ•ใ„ใ€‚

็„กไบ‹ๅญฆ็ฟ’ใŒ้–‹ๅง‹ใ•ใ‚Œ

2022-01-09 14:46:09 | INFO     | yolox.core.trainer:126 - args: Namespace(batch_size=16, cache=True, ckpt='./yolox_s.pth', devices=1, dist_backend='nccl', dist_url=None, exp_file='yolox_s.py', experiment_name='yolox_s', fp16=True, machine_rank=0, name=None, num_machines=1, occupy=True, opts=[], resume=False, start_epoch=None)
2022-01-09 14:46:09 | INFO     | yolox.core.trainer:127 - exp value:
โ•’โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•คโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ••
โ”‚ keys             โ”‚ values                                                  โ”‚
โ•žโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ชโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ก
โ”‚ seed             โ”‚ None                                                    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ output_dir       โ”‚ './YOLOX_outputs'                                       โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ print_interval   โ”‚ 10                                                      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ eval_interval    โ”‚ 1                                                       โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ num_classes      โ”‚ 3                                                       โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ depth            โ”‚ 0.33                                                    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ width            โ”‚ 0.5                                                     โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ act              โ”‚ 'silu'                                                  โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ data_num_workers โ”‚ 4                                                       โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ input_size       โ”‚ (640, 640)                                              โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ multiscale_range โ”‚ 5                                                       โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ data_dir         โ”‚ './datasets/dataset/images'                             โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ train_ann        โ”‚ './datasets/dataset/annotations/train_annotations.json' โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ val_ann          โ”‚ './dataset/dataset/annotations/val_annotations.json'    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ mosaic_prob      โ”‚ 1.0                                                     โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ mixup_prob       โ”‚ 1.0                                                     โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ hsv_prob         โ”‚ 1.0                                                     โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ flip_prob        โ”‚ 0.5                                                     โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ degrees          โ”‚ 10.0                                                    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ translate        โ”‚ 0.1                                                     โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ mosaic_scale     โ”‚ (0.1, 2)                                                โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ mixup_scale      โ”‚ (0.5, 1.5)                                              โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ shear            โ”‚ 2.0                                                     โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ enable_mixup     โ”‚ True                                                    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ warmup_epochs    โ”‚ 5                                                       โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ max_epoch        โ”‚ 300                                                     โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ warmup_lr        โ”‚ 0                                                       โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ basic_lr_per_img โ”‚ 0.00015625                                              โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ scheduler        โ”‚ 'yoloxwarmcos'                                          โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ no_aug_epochs    โ”‚ 15                                                      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ min_lr_ratio     โ”‚ 0.05                                                    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ ema              โ”‚ True                                                    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ weight_decay     โ”‚ 0.0005                                                  โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ momentum         โ”‚ 0.9                                                     โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ exp_name         โ”‚ 'yolox_s'                                               โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ test_size        โ”‚ (640, 640)                                              โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ test_conf        โ”‚ 0.01                                                    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ nmsthre          โ”‚ 0.65                                                    โ”‚
โ•˜โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•งโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•›

ใฎใ‚ˆใ†ใช็”ป้ขใŒๅ‡บใ‚ŒใฐๆˆๅŠŸใงใ™๏ผใ‚ใจใฏๆฐ—้•ทใซๅพ…ใกใพใ—ใ‚‡ใ†ใƒปใƒปใƒปใ€‚

ๆŽจ่ซ–ใ™ใ‚‹๏ผ

ใงใฏใŠๅพ…ใกใ‹ใญใฎๆŽจ่ซ–ใ‚ฟใ‚คใƒ ใงใ™๏ผ
YOLOXใƒ•ใ‚ฉใƒซใƒ€ๅ†…ใซYOLOX_outputs/yolox_sใŒไฝœๆˆใ•ใ‚Œใฆใ„ใ‚‹ใจๆ€ใ„ใพใ™ใ€‚๏ผˆyolox_s้ƒจๅˆ†ใฏ่จญๅฎšใƒ•ใ‚กใ‚คใƒซใฎๅๅ‰ใซใ‚ˆใฃใฆๅค‰ๅŒ–ใ—ใพใ™ใ€‚ไพ‹๏ผš่จญๅฎšใƒ•ใ‚กใ‚คใƒซใ‚’ylx_s.pyใซใ—ใฆใ„ใ‚‹ใจใ€YOLOX_outputs/ylx_sใซใชใ‚Šใพใ™ใ€‚๏ผ‰

ใใฎไธญใ‹ใ‚‰best_ckpt.pthใ‚’YOLOX็›ดไธ‹ใซใ‚ณใƒ”ใƒผใ—ใพใ™ใ€‚

cp ./YOLOX_outputs/yolox_s/best_ckpt.pth/ ./

ใงใฏๆŽจ่ซ–ใ—ใฆใฟใพใ—ใ‚‡ใ†๏ผ

cp tools/demo.py ./
python demo.py image -f [่จญๅฎšใƒ•ใ‚กใ‚คใƒซ].py --device gpu --fp16 --path [ๆคœๆŸป็”ปๅƒใพใงใฎใƒ‘ใ‚น] -c ./best_ckpt.pth --save_result

ใƒปใƒปใƒปใ€‚็ฒพๅบฆใฏใ‚ˆใใชใ„ใงใ™ใญใƒปใƒปใƒปใ€‚ๅญฆ็ฟ’ใฎๆ„Ÿใ˜ใ‚’่ฆ‹ใฆใ„ใ‚‹ใจๆ—ฉใ€…ใซ้Žๅญฆ็ฟ’ใ—ใฆใ„ใ‚‹ๅ‚พๅ‘ใซใ‚ใฃใŸใฎใงใ€22ๆžšใฎ็”ปๅƒใงใฏใ ใ‚ใงใ—ใŸใƒปใƒปใƒปใ€‚
ๅคšๅˆ†YOLOX-Sใฏใ“ใฎใƒ‡ใƒผใ‚ฟใ‚ปใƒƒใƒˆใซๅฏพใ—ใฆๅคงใใ™ใŽใ‚‹ใƒขใƒ‡ใƒซใ ใฃใŸใฎใงใ—ใ‚‡ใ†ใ€‚Nanoใจใ‹ไฝฟใˆใฐใ‚ˆใ‹ใฃใŸใฎใ‹ใช๏ผŸ

ใ‚ใจใ€ใ“ใฎ็”ปๅƒใ‚’่ฆ‹ใฆใ‚‚ใ‚‰ใ†ใจใ‚ใ‹ใ‚‹้€šใ‚Šใ€่กจ็คบใ•ใ‚Œใ‚‹ใƒฉใƒ™ใƒซใŒใŠใ‹ใ—ใ„ใ“ใจใซใชใฃใฆใพใ™ใ€‚๏ผˆcarใฃใฆๅ‡บใฆใพใ™ใญ๏ผ‰

ใ“ใ‚ŒใฏCOCOใƒ‡ใƒผใ‚ฟใ‚ปใƒƒใƒˆใฎใƒฉใƒ™ใƒซใŒๅˆฉ็”จใ•ใ‚Œใฆใ„ใ‚‹ใ“ใจใŒๅŽŸๅ› ใงใ™ใ€‚
ใงใฏๆœ€ๅพŒใซใ“ใ‚Œใ‚’ไฟฎๆญฃใ—ใพใ—ใ‚‡ใ†ใ€‚

demo.py
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
# Copyright (c) Megvii, Inc. and its affiliates.

import argparse
import os
import time
from loguru import logger

import cv2

import torch

from yolox.data.data_augment import ValTransform
#from yolox.data.datasets import COCO_CLASSES #ใ“ใ“ใ‚’ใ‚ณใƒกใƒณใƒˆใ‚ขใ‚ฆใƒˆ
from yolox.exp import get_exp
from yolox.utils import fuse_model, get_model_info, postprocess, vis

COCO_CLASSES = ('class1','class2','class3') #ใ“ใ“ใซ่ฟฝ่จ˜

ๅค‰ๅŒ–ใ—ใพใ—ใŸใญ๏ผ๏ผˆ่ฆ‹ๅˆ‡ใ‚Œใฆใฆใ™ใฟใพใ›ใ‚“ใƒปใƒปใƒปใ€‚ใŠๆ‰‹ๅ…ƒใฎ็”ปๅƒใง็ขบ่ชใ—ใฆใ‚‚ใ‚‰ใˆใ‚Œใฐใจๆ€ใ„ใพใ™๏ผ๏ผ‰

ใพใจใ‚

ไปŠๅ›žใฏlabelmeใจYOLOXใง่‡ชไฝœใƒ‡ใƒผใ‚ฟใ‚ปใƒƒใƒˆใฎๅญฆ็ฟ’ใซใƒใƒฃใƒฌใƒณใ‚ธใ—ใพใ—ใŸ๏ผ
YOLOv5ใฏไฝฟใ„ใ‚„ใ™ใ„ใŸใ‚ใ„ใ‚ใ„ใ‚ใชไบบใŒๅˆฉ็”จใ—ใฆใ„ใพใ™ใŒใ€YOLOXใฏYOLOv5ใจๆฏ”ในใ‚‹ใจไฝฟใ„ใซใใ„ใฎใงใพใ ใพใ ๆ—ฅๆœฌ่ชž่จ˜ไบ‹ใŒๅฐ‘ใชใ„ใ‚คใƒกใƒผใ‚ธใงใ™ใ€‚

ใ“ใฎ่จ˜ไบ‹ใŒ็š†ๆง˜ใฎ้–‹็™บใฎไธ€ๅŠฉใซใชใ‚Œใฐๅนธใ„ใงใ™๏ผ

ใงใฏใพใŸ๏ผๆฌกใฏCenterNetใฎๅฎŸ่ฃ…่จ˜ไบ‹ใ‚’ๆ›ธใใŸใ„ใชใƒปใƒปใƒป

Discussion

K.MK.M

ๅˆใ‚ใพใ—ใฆใ€OPampใ•ใ‚“ใ€
็งใ‚‚yoloxใงๅฎŸ่ฃ…ใ—ใฆใ„ใ‚‹ใฎใงใ™ใŒใ€่‡ชๅˆ†ใฏWindowsใฎVoTTใงใƒ‡ใƒผใ‚ฟใ‚ปใƒƒใƒˆใ‚’่‡ชไฝœใ—ใฆใ€ๅญฆ็ฟ’ใ•ใ›ใพใ—ใŸใ€‚
็งใ“ใฎๅˆ†้‡Žใฏใ‚ใพใ‚Š็ตŒ้จ“ใŒๆต…ใ„ใ‚‚ใฎใงใ—ใฆใ€ๅฐ‘ใ—็›ธ่ซ‡ใจใ„ใ„ใพใ™ใ‹ใ€ใ‚ขใƒ‰ใƒใ‚คใ‚นใŒๆฌฒใ—ใ„ใ‚“ใงใ™ใ€‚ๅญฆ็ฟ’ๅพŒใฎ
ๆŽจ่ซ–ใงใ€่‡ชๅˆ†ใŒ่จญๅฎšใ—ใŸใ‚ขใƒŽใƒ†ใƒผใ‚ทใƒงใƒณๅๅ‰ใŒๅ…จใ้•ใฃใฆ(ใปใจใ‚“ใฉใฎใƒ‡ใƒผใ‚ฟใŒ)ๅ‡บใ‚‹ใ‚“ใงใ™ใ€‚ใ‚ขใƒŽใƒ†ใƒผใ‚ทใƒงใƒณใฎใ‚ฟใ‚ฐใฎๅๅ‰ใ ใ‘ใฏใ™ในใฆ่กจ็คบใซๆˆๅŠŸใ—ใฆใ„ใ‚‹ใฎใงใ™ใŒใ€ไพ‹ใˆใฐ่‡ชไฝœใƒ‡ใƒผใ‚ฟใ‚ปใƒƒใƒˆใ‚’ใƒชใƒณใ‚ดใฎ็”ปๅƒใŒ"apple"ใ€ใ‚ชใƒฌใƒณใ‚ธใฎ็”ปๅƒใ‚’"orange"ใจVoTTใงๅ„20ๆžšไฝœๆˆใ—ใ€yoloxใงๅญฆ็ฟ’ใ•ใ›ใŸใจใ—ใพใ™ใ€‚ใ™ใ‚‹ใจ็งใฎๅ ดๅˆใƒชใƒณใ‚ดใŒ"orange"ใ€ใ‚ชใƒฌใƒณใ‚ธใŒ"apple"ใจๅ‡บใ‚‹ใ‚“ใงใ™ใ€‚็งใฎๅ ดๅˆ

python tools/train.py -f yolox_ใ€‡ใ€‡ใ€‡.py -d 1 -b 16 --fp16 -o -c model/yolox_tiny.pth

ใง่ตฐใ‚‰ใ›ใพใ—ใŸใ€‚ๅฎŸ้š›ใฎๅญฆ็ฟ’ใฏใ‚ฏใƒฉใ‚นๆ•ฐ=4 ๅ„20ๆžšใšใคใงใ™ใ€‚
ไธ€ๅฟœyolox_โ—‹โ—‹โ—‹.pyใฎ่ฟฝๅŠ ๆ–‡ใฏไปฅไธ‹ใงใ™ใ€ใ‚ใจใ€YOLOX\yolox\data\datasets\coco_classes.pyใฎๅๅ‰ใฏใ‚ชใƒชใ‚ธใƒŠใƒซใซๅค‰ใˆใพใ—ใŸใ€‚

self.num_classes = 4 #ไปŠๅ›žใฏใ‚ฏใƒฉใ‚น=4ใฎๆคœๅ‡บใฎใŸใ‚4
self.max_epoch = 50
self.data_num_workers = 4
self.eval_interval = 1

็‰นใซใ‚จใƒฉใƒผใงๆญขใพใ‚‹ใจใ„ใ†ใ“ใจใฏใชใ„ใงใ™ใ€‚ๅญฆ็ฟ’ใŒ่ถณใ‚Šใชใ„ใฎใงใ—ใ‚‡ใ†ใ‹๏ผŸใ—ใ‹ใ—ใ€ๅ…จใ้€†ใซ่กจ็คบใ•ใ‚ŒใŸใ‚Š
ใ™ใ‚‹ใฎใฏไฝ•ใ‹ไธๅ…ทๅˆใชใฎใ‹ใ€ใ€ใจใ„ใ†ใจใ“ใ‚ใชใ‚“ใงใ™ใŒใ€ไธ€ๅบฆๆžšๆ•ฐใ‚’ๆธ›ใ‚‰ใ—ใฆใ‚ใ‹ใ‚Šใ‚„ใ™ใ„ใƒ†ใ‚นใƒˆใซใ—ใฆใฟใ‚‹ในใใงใ—ใ‚‡ใ†ใ‹๏ผŸใ€€(ๆทปไป˜ใชใฎใงใ™ใŒใ€ใ“ใฎwarningใŒๆฐ—ใซใชใ‚Šใพใ™ใ€‚)
้•ทๆ–‡ใงๆœฌๅฝ“ใซใ”ใ‚ใ‚“ใชใ•ใ„ใ€‚ใŠ่ฟ”ไบ‹ใŠๅพ…ใกใ—ใฆใŠใ‚Šใพใ™ใ€‚

1
OPampOPamp

ใ‚ณใƒกใƒณใƒˆใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚
ใƒฉใƒ™ใƒซใŒๅค‰ๅŒ–ใ™ใ‚‹ใฎใฏๅธธใซไธ€ๅฎšใงใใฎใ‚ˆใ†ใซใชใ‚‹ๆ„Ÿใ˜ใงใ™ใ‹๏ผŸ

ไพ‹ใงๆŒ™ใ’ใฆใ„ใŸใ ใ„ใŸใƒชใƒณใ‚ดใซOrangeใ€ใ‚ชใƒฌใƒณใ‚ธใซAppleใฎใ‚ˆใ†ใซๅธธใซใใฎๅ‰ฒใ‚Šๅฝ“ใฆใซใชใฃใฆใ„ใ‚‹ๆ„Ÿใ˜ใงใ—ใ‚‡ใ†ใ‹๏ผŸ
ใ‚‚ใ—ใ“ใฎใ‚ˆใ†ใชๅ ดๅˆใงใ—ใŸใ‚‰ใ€COCO_CLASSES = ('class1','class2','class3')ใฎ้ †็•ชใŒ้•ใ†ๅฏ่ƒฝๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚
ๅญฆ็ฟ’ๆ™‚ใซๅ‰ฒใ‚ŠๆŒฏใฃใŸ็•ชๅทใจๅˆใ†ใ‚ˆใ†ใซ่จ˜่ผ‰("Apple", "Orange")ใซใ—ใฆใ„ใŸใ ใใจๆฒปใ‚‹ใ‹ใจๆ€ใ„ใพใ™๏ผˆใŸใถใ‚“ใงใ™ใŒใƒปใƒปใƒป๏ผ‰

ไธ€ๆ–นใงใ€ใƒฉใƒณใƒ€ใƒ ใซใƒฉใƒ™ใƒซใŒๅค‰ใ‚ใ‚‹ๅ ดๅˆใงใฏใใฎใปใ‹ใฎๅŽŸๅ› ใŒใ‚ใ‚Šใใ†ใงใ™๏ผ

K.MK.M

ใŠ่ฟ”ไบ‹ๅคงๅค‰ใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚
ๅทฆๆง˜ใงใ™ใ€‚ไธ€ๅฟœใ‚ฏใƒฉใ‚น2ใพใงๆธ›ใ‚‰ใ—ใฆๅ„400ๆžš็จ‹ๅบฆVoTTใงไฝœใฃใฆๅญฆ็ฟ’ใ•ใ›ใŸใ‚“ใงใ™ใŒใ€ๆทปไป˜ใฎใ‚ˆใ†ใซๅ…จใใ‚ขใƒ™ใ‚ณใƒ™ใซใƒฉใƒ™ใƒชใƒณใ‚ฐใ•ใ‚Œไธ€ไฝ“ใชใœใƒปใƒปใƒปใจๆ‚ฉใ‚“ใงใŠใ‚Šใพใ™ใ€‚ใ€€
ใใ‚Œใจใ€coco_classesใงใ™ใŒใ€ใ“ใ‚Œใซใ‚ˆใฃใฆใ‚‚ใ—ใ‚นใƒผใƒˆใŒๅค‰ใ‚ใฃใฆใ—ใพใ†ใชใ‚‰ใ€ใ‚‚ใฃใจใ‚ฏใƒฉใ‚นใ‚’ๅข—ใ‚„ใ—ใฆใ—ใพใ†ใจใ€ใ™ในใฆ็•ฐใชใฃใŸ่กจ็คบใซใชใ‚‹ใƒปใƒปใƒปใ“ใ‚ŒใŒๅฝฑ้Ÿฟใ—ใฆใ„ใ‚‹ใจใ„ใ†ใ“ใจใฏ่€ƒใˆใซใใ„ใจๆ€ใ†ใฎใงใ™ใŒใ€ใ€ใ€ไปŠๅ›žใฏ่ฉฆใ—ใฆใฟใพใ™ใ€‚
ใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚

1