YOLO-NAS
æŠèŠ
Deci AI ã«ãã£ãŠéçºãããYOLO-NAS ã¯ãç»æçãªç©äœæ€åºã®åºç€ã¢ãã«ã§ããããã¯é«åºŠãªãã¥ãŒã©ã«ã»ã¢ãŒããã¯ãã£ãŒã»ãµãŒãæè¡ã®ç£ç©ã§ãããåŸæ¥ã®YOLO ã¢ãã«ã®éçã«å¯ŸåŠããããã«ç¶¿å¯ã«èšèšãããŠãããéååãµããŒããšç²ŸåºŠãšã¬ã€ãã³ã·ã®ãã¬ãŒããªãã®å€§å¹ ãªæ¹åã«ãããYOLO-NAS ã¯ç©äœæ€åºã«ããã倧ããªé£èºãæå³ããŸãã
YOLO-NASã®æŠèŠã YOLO-NASã¯éååãæèãããããã¯ãšéžæçéååãæ¡çšããæé©ãªããã©ãŒãã³ã¹ãå®çŸããã®ã¢ãã«ãINT8éååããŒãžã§ã³ã«å€æãããšã粟床ã®äœäžãæå°éã«æããããä»ã®ã¢ãã«ãããå€§å¹ ã«æ¹åãããŸãããããã®é²åã¯ãåäŸã®ãªãç©äœæ€åºèœåãšåè¶ããæ§èœãåããåªããã¢ãŒããã¯ãã£ã«çµå®ããŠããã
äž»ãªç¹åŸŽ
- éååã«é©ããåºæ¬ãããã¯ïŒ YOLO-NASã¯ãéååã«é©ããæ°ããåºæ¬ãããã¯ãå°å ¥ããåŸæ¥ã®YOLO ã¢ãã«ã®é倧ãªå¶éã®ã²ãšã€ã«å¯ŸåŠããŠããã
- æŽç·Žããããã¬ãŒãã³ã°ãšéåå: YOLO-NASã¯ãé«åºŠãªãã¬ãŒãã³ã°ã¹ããŒã ãšãã¬ãŒãã³ã°åŸã®éååã掻çšããŠããã©ãŒãã³ã¹ãåäžãããã
- AutoNACæé©åãšäºåãã¬ãŒãã³ã°: YOLO-NASã¯AutoNACæé©åãå©çšããCOCOãObjects365ãRoboflow 100ãªã©ã®èåãªããŒã¿ã»ããã§äºåãã¬ãŒãã³ã°ãããŠããŸãããã®äºååŠç¿ã«ãããæ¬çªç°å¢ã«ãããäžæµã®ç©äœæ€åºã¿ã¹ã¯ã«éåžžã«é©ããŠããŸãã
èšç·Žæžã¿ã¢ãã«
Ultralytics ãæäŸããäºååŠç¿æžã¿ã®YOLO-NAS ã¢ãã«ã§ã次äžä»£ã®ç©äœæ€åºã®ãã¯ãŒãäœéšããŠãã ããããããã®ã¢ãã«ã¯ãé床ãšç²ŸåºŠã®äž¡é¢ã§äžæµã®ããã©ãŒãã³ã¹ãæäŸããããã«èšèšãããŠããŸããã客æ§ã®ããŒãºã«åãããæ§ã ãªãªãã·ã§ã³ãããéžã³ãã ããïŒ
ã¢ãã« | ããã | åŸ ã¡æé (ms) |
---|---|---|
YOLO-NAS S | 47.5 | 3.21 |
YOLO-NAS M | 51.55 | 5.85 |
YOLO-NAS L | 52.22 | 7.87 |
YOLO-NAS S INT-8 | 47.03 | 2.36 |
YOLO-NAS M INT-8 | 51.0 | 3.78 |
YOLO-NAS L INT-8 | 52.1 | 4.78 |
åã¢ãã«ã®ããªãšãŒã·ã§ã³ã¯ãå¹³åå¹³å粟床ïŒmAPïŒãšã¬ã€ãã³ã·ã®ãã©ã³ã¹ãæäŸããããã«èšèšãããŠãããæ§èœãšé床ã®äž¡é¢ããç©äœæ€åºã¿ã¹ã¯ãæé©åããã®ã«åœ¹ç«ã¡ãŸãã
䜿çšäŸ
Ultralytics ã¯ãYOLO-NASã¢ãã«ãPython ã¢ããªã±ãŒã·ã§ã³ã«ç°¡åã«çµ±åã§ããããã«ããŸããã ultralytics
python ããã±ãŒãžã§æäŸãããããã®ããã±ãŒãžã¯ãããã»ã¹ãåçåããããã®ãŠãŒã¶ãŒãã¬ã³ããªãŒãªPython APIãæäŸããã
以äžã®äŸã§ã¯ãYOLO-NASã¢ãã«ã ultralytics
ããã±ãŒãžã§æšè«ãšæ€èšŒãè¡ãïŒ
æšè«ãšæ€èšŒã®äŸ
ãã®äŸã§ã¯ãYOLO-NAS-sãCOCO8ããŒã¿ã»ããã§æ€èšŒããã
äŸ
ãã®äŸã§ã¯ãYOLO-NASã®ç°¡åãªæšè«ãšæ€èšŒã³ãŒããæäŸãããæšè«çµæã®åŠçã«ã€ããŠã¯ äºæž¬ãã ã¢ãŒãã§äœ¿çšã§ããŸããYOLO-NASãšãã®ä»ã®ã¢ãŒãã®äœµçšã«ã€ããŠã¯ã以äžãåç
§ã®ããšã ãã« ãã㊠茞åº.YOLO-ã®NAS ultralytics
ããã±ãŒãžã¯ãã¬ãŒãã³ã°ããµããŒãããŠããªãã
PyTorch ãã
ããããã *.pt
ã¢ãã«ãã¡ã€ã«ã NAS()
ã¯ã©ã¹ã䜿çšããŠãpython ã«ã¢ãã«ã®ã€ã³ã¹ã¿ã³ã¹ãäœæããŸãïŒ
from ultralytics import NAS
# Load a COCO-pretrained YOLO-NAS-s model
model = NAS("yolo_nas_s.pt")
# Display model information (optional)
model.info()
# Validate the model on the COCO8 example dataset
results = model.val(data="coco8.yaml")
# Run inference with the YOLO-NAS-s model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
CLI ã³ãã³ãã§ã¢ãã«ãçŽæ¥å®è¡ã§ããïŒ
ãµããŒããããã¿ã¹ã¯ãšã¢ãŒã
YOLO-NASã¢ãã«ã«ã¯3ã€ã®ããªãšãŒã·ã§ã³ããããŸãïŒã¹ã¢ãŒã«(s)ãããã£ã¢ã (m)ãã©ãŒãž(l)ã§ããåããªãšãŒã·ã§ã³ã¯ãç°ãªãèšç®ãšããã©ãŒãã³ã¹ã®ããŒãºã«å¯Ÿå¿ããããã«èšèšãããŠããŸãïŒ
- YOLO-NAS-sïŒèšç®ãªãœãŒã¹ã¯éãããŠããããå¹çãéèŠãªç°å¢åãã«æé©åãããŠããã
- YOLO-NAS-mïŒããé«ã粟床ã§æ±çšçãªç©äœæ€åºã«é©ããããã©ã³ã¹ã®åããã¢ãããŒããæäŸã
- YOLO-NAS-lïŒèšç®æ©è³æºã®å¶çŽãå°ãªããæé«ã®ç²ŸåºŠãèŠæ±ãããã·ããªãªåãã
以äžã¯åã¢ãã«ã®è©³çŽ°ãªæŠèŠã§ãäºåã«èšç·Žãããéã¿ãžã®ãªã³ã¯ããµããŒãããã¿ã¹ã¯ãããŸããŸãªåäœã¢ãŒããšã®äºææ§ãå«ãã
ã¢ãã«ã¿ã€ã | äºåã«èšç·ŽããããŠã§ã€ã | 察å¿ã¿ã¹ã¯ | æšè« | ããªããŒã·ã§ã³ | ãã¬ãŒãã³ã° | èŒžåº |
---|---|---|---|---|---|---|
YOLO-NAS-s | yolo_nas_s.pt | ç©äœæ€åº | â | â | â | â |
YOLO-NAS-m | yolo_nas_m.pt | ç©äœæ€åº | â | â | â | â |
YOLO-NAS-l | yolo_nas_l.pt | ç©äœæ€åº | â | â | â | â |
åŒçšãšè¬èŸ
ç 究éçºã§YOLO-NAS ã䜿çšããå Žåã¯ãSuperGradients ãåŒçšããŠãã ããïŒ
@misc{supergradients,
doi = {10.5281/ZENODO.7789328},
url = {https://zenodo.org/record/7789328},
author = {Aharon, Shay and {Louis-Dupont} and {Ofri Masad} and Yurkova, Kate and {Lotem Fridman} and {Lkdci} and Khvedchenya, Eugene and Rubin, Ran and Bagrov, Natan and Tymchenko, Borys and Keren, Tomer and Zhilko, Alexander and {Eran-Deci}},
title = {Super-Gradients},
publisher = {GitHub},
journal = {GitHub repository},
year = {2021},
}
Deci AI ã®SuperGradientsããŒã ããã³ã³ãã¥ãŒã¿ããžã§ã³ã³ãã¥ããã£ã®ããã«ãã®è²ŽéãªãªãœãŒã¹ãäœæããç¶æããŠãããŠããããšã«æè¬ã®æãè¡šããŸããé©æ°çãªã¢ãŒããã¯ãã£ãšåªããç©äœæ€åºèœåãæã€YOLO-NAS ã¯ãéçºè ãç 究è ã«ãšã£ãŠéèŠãªããŒã«ã«ãªããšä¿¡ããŠããŸãã
ããããã質å
YOLO YOLO -NASãšã¯äœã§ãã?
YOLO-Deci AI ã«ãã£ãŠéçºãããNASã¯ãé«åºŠãªãã¥ãŒã©ã«ã»ã¢ãŒããã¯ãã£ã»ãµãŒãïŒNASïŒæè¡ã掻çšããæå 端ã®ç©äœæ€åºã¢ãã«ã§ãããéååã«é©ããåºæ¬ãããã¯ãæŽç·ŽãããåŠç¿ã¹ããŒã ãªã©ã®ç¹åŸŽãå°å ¥ããããšã§ãåŸæ¥ã®YOLO ã¢ãã«ã®éçã«å¯ŸåŠããŠããããã®çµæãç¹ã«èšç®è³æºãéãããç°å¢ã«ãããŠãæ§èœãå€§å¹ ã«åäžããŠããŸããYOLO-NASã¯éååããµããŒãããŠãããINT8ããŒãžã§ã³ã«å€æããŠãé«ã粟床ãç¶æãããããã¯ã·ã§ã³ç°å¢ãžã®é©åæ§ãé«ããŠããã詳现ã¯ãæŠèŠããåç §ã
Python ã¢ããªã±ãŒã·ã§ã³ã«YOLO-NAS ã¢ãã«ãçµ±åããã«ã¯ïŒ
Python ã¢ããªã±ãŒã·ã§ã³ã«YOLO-NAS ã¢ãã«ãç°¡åã«çµ±åã§ããŸãã ultralytics
ããã±ãŒãžã䜿çšããã以äžã¯ãäºåã«èšç·ŽãããYOLO-NASã¢ãã«ãããŒãããæšè«ãå®è¡ããæ¹æ³ã®ç°¡åãªäŸã§ããïŒ
from ultralytics import NAS
# Load a COCO-pretrained YOLO-NAS-s model
model = NAS("yolo_nas_s.pt")
# Validate the model on the COCO8 example dataset
results = model.val(data="coco8.yaml")
# Run inference with the YOLO-NAS-s model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
詳现ã«ã€ããŠã¯ãæšè«ãšæ€èšŒã®äŸãåç §ããŠãã ããã
YOLO-NASã®äž»ãªç¹é·ãšã䜿çšãæ€èšããçç±ã¯äœã§ããïŒ
YOLO-NASã¯ãç©äœæ€åºã¿ã¹ã¯ã«åªããéžæè¢ãšãªãããã€ãã®éèŠãªæ©èœãå°å ¥ããŠããïŒ
- éååã«é©ããåºæ¬ãããã¯ïŒéåååŸã®ç²ŸåºŠäœäžãæå°éã«æããã¢ãã«æ§èœãåäžãããæ¡åŒµã¢ãŒããã¯ãã£ã
- æŽç·Žããããã¬ãŒãã³ã°ãšéååïŒé«åºŠãªãã¬ãŒãã³ã°ã¹ããŒã ãšãã¬ãŒãã³ã°åŸã®éååæè¡ãæ¡çšã
- AutoNACæé©åãšäºåãã¬ãŒãã³ã°ïŒAutoNACæé©åãå©çšããCOCOãObjects365ãRoboflow 100ã®ãããªèåãªããŒã¿ã»ããã§äºååŠç¿ãããŠããŸãã ãããã®æ©èœã«ãããé«ã粟床ãå¹ççãªããã©ãŒãã³ã¹ãæ¬çªç°å¢ã§ã®å±éã«é©ããŠããŸãã詳ããã¯ããäž»ãªç¹é·ãã®ã»ã¯ã·ã§ã³ãã芧ãã ããã
YOLO-NAS ã¢ãã«ã§ã¯ãã©ã®ã¿ã¹ã¯ãšã¢ãŒãããµããŒããããŠããŸããïŒ
YOLO-NASã¢ãã«ã¯ãæšè«ãæ€èšŒããšã¯ã¹ããŒããªã©ãããŸããŸãªãªããžã§ã¯ãæ€åºã¿ã¹ã¯ãšã¢ãŒãããµããŒãããŠããŸãããã¬ãŒãã³ã°ã¯ãµããŒãããŠããªãããµããŒããããŠããã¢ãã«ã«ã¯ãYOLO-NAS-sãYOLO-NAS-mãYOLO-NAS-lããããããããç°ãªãèšç®èœåãšæ§èœã®ããŒãºã«åãããŠèª¿æŽãããŠããã詳现ãªæŠèŠã«ã€ããŠã¯ãããµããŒããããã¿ã¹ã¯ãšã¢ãŒããã®ã»ã¯ã·ã§ã³ãåç §ã
äºåã«ãã¬ãŒãã³ã°ãããYOLO-NAS ã¢ãã«ã¯ãããŸããïŒ
ã¯ããUltralytics ã¯äºåã«ãã¬ãŒãã³ã°ãããYOLO-NAS ã¢ãã«ãæäŸããŠãããçŽæ¥ã¢ã¯ã»ã¹ããããšãã§ããŸãããããã®ã¢ãã«ã¯COCOã®ãããªããŒã¿ã»ããã§äºåã«èšç·ŽãããŠãããé床ãšç²ŸåºŠã®äž¡æ¹ã§é«ãããã©ãŒãã³ã¹ãä¿èšŒããŸãããããã®ã¢ãã«ã¯Pre-trained Modelsã»ã¯ã·ã§ã³ã«ãããªã³ã¯ããããŠã³ããŒãã§ããŸãã以äžã¯ãã®äŸã§ãïŒ