๊น์ฌํ | ์ด์ฑ์ฐ |
---|---|
Item | local (๊น์ฌํ) | local (์ด์ฑ์ฐ) | AWS Server | Google Colab |
---|---|---|---|---|
CPU | Apple M1(10core) | i7-8565U | i7 4core | Xeon(R)cpu 2.3GHz |
RAM | 32GB | 16GB | 16GB | 13~52GB |
Storage | 512GB | 512GB | 250GB | 166GB |
OS | macOS ventura | Window 10 | - | - |
MOBILE | Iphone 13 Mini | Galaxy S10 | - | - |
- ๐Project Summary
- ๐ Dataset Summary
- ๐Procedures
- ๐จโ๐ฉโ๐งโ๐งTeam Roles
- โFeatures
- ๐Result
- โRequirements
- ๐Folder Structure
- ๐งพReference
ํ๋ก์ ํธ ์ฃผ์
- ๊ฐ์ ๋ฐ ๊ธฐ๋ํจ๊ณผ
- ๋ฌผ๋ฅ์ผํฐ(HUB, CAMP) ๋ด ์ปจ๋ฒ ์ด์ด ๋ฒจํธ์์ ๋ฐ์ค ํฌ์ฅ์ ์ฐข์ด์ง๊ฑฐ๋ ์ ์ ๋ฑ์ Detection ํ์ฌ ์ฌํฌ์ฅ์ด ํ์ํ ๊ฒฝ์ฐ๋ฅผ ์ ๋ณํ๋ ํ๋ก๊ทธ๋จ ๊ตฌํ
- ๋ฌผ๋ฅ์ผํฐ์์ ์ค์๊ฐ์ผ๋ก ์ฌ์ฉํ๋ ํ๋ก๊ทธ๋จ์ ๋ชฉํ๋ก ํ์์. ๋ฐ๋ผ์ Realtime Detection์ ์ ์ฉ์ด ํ์ํจ.
- ์คํ ์ํฐ๊ฐ์ ๊ธฐ์กด ๋ถ๋ฅ ์์คํ ์ ๋นํด ์ ๋ ดํ ๋น์ฉ์ผ๋ก ์์คํ ๊ตฌ์ถ์ ํ ์ ์์.
- ์ค์์ฐจ ์ค๋ฐฐ์ก์ ๋ํ ๋ฐ์ดํฐ ์ถ์ ์ผ๋ก ๋ด๋ถ ํ๋ก์ธ์ค ํ๊ฐ ๋ฐ์์ ํ ์ ์์ผ๋ฉฐ ์ด๋ฅผ ๋ฐํ์ผ๋ก ๊ณ ๊ฐ ๊ฒฝํ ํฅ์ ํจ๊ณผ๋ ๊ธฐ๋๋๋ ๋งํผ, B2B, B2C ๊ด์ ๋ชจ๋์์ ์ธ์ , ๊ฒฝ์ ์ ์ธ ์ด๋์ ๋ณผ ์ ์์.
-
์์ ๋ฐ์ดํฐ
-
๋ผ๋ฒจ : Hole(๊ตฌ๋ฉ, ์ฐข์ด์ง), Wet(์ ์)
-
์์ง ๋ฐฉ๋ฒ
- 1๋จ๊ณ : ์น ํฌ๋กค๋ง ์ ํตํ์ฌ ๋ฐ์ดํฐ ์์ง (987์ฅ)
- 2๋จ๊ณ : ์น ํฌ๋กค๋ง ๊ณ์ + ์์ฒด์ ์ธ ๊ธธ๊ฑฐ๋ฆฌ ํ์ ๋ฐ์ดํฐ ์์ง (1684์ฅ)
- 3๋จ๊ณ : ๊ฐ์๋ฐ์ค ์์ ๊ตฌ๋งคํ ์์ฒด์ ์ธ ๋ฐ์ดํฐ์ ์ ์ (3287์ฅ)
-
์ ์ฒด ์ด๋ฏธ์ง ๊ฐ์ : 3,287์ฅ
-
๊ฐ์ฒด ์ข ๋ฅ ๋ฐ ๊ฐ์ฒด๋น BBox ๊ฐ์ : 4,837๊ฐ (Hole(๊ตฌ๋ฉ,์ฐข์ด์ง) 2,226๊ฐ , Wet(์ ์) 2,611๊ฐ)
-
์ด๋ฏธ์ง ํฌ๊ธฐ : (640, 640) -> (1280, 1280)
-
๋ฐ์ดํฐ์ ํํ : ํ๋ฐฐ ์์ (๊ฐ์ ํ์ง)
-
-
ํ๋ฐฐ์ก์ฅ ๋ฐ์ดํฐ
๋ฐ์ดํฐ์ ์ด๋ฏธ์ง
image size & resize
640 x 640 -> 1280 x 1280 -> 2048 x 2048
--> yolov7 ๋
ผ๋ฌธ ์ฐธ์กฐ์ ๋ฐ์ดํฐ์
640 x 640 ํ์ต ์ถํ ๋ฐ์ดํฐ ํธ๋ค๋ง์ ํตํ์ฌ resize ์์
์งํ
Augmentation
crop 10ยฐ -> ๋ฐ์ดํฐ ์ฆ๊ฐ์ ์ํ Augmentation
yolov7, yolov8 hyper param ๊ธฐ๋ฅ augmentation: True
(Mosaic : 1.0, fliplr : 0.5, scale : 0.5, translate : 0.1, hsv_h : 0.015, hsv_s = 0.7, hsv_v = 0.4)
[2023.01.02 ~ 2023.01.06]
- ํ๋ก์ ํธ ์ฃผ์ ํ์ ๋ฐ ์ ์
- ํ๋ก์ ํธ ๊ณํ ๊ตฌ์
[2023.01.06 ~ 2023.01.18]
- ๋ฐ์ดํฐ ์์ง ๋ฐ ์ ์ฒ๋ฆฌ
- Detection ํน์ฑ์ ๋ถ๋๋ฐ์ดํฐ๋ฅผ ๊ตฌํ๊ธฐ ์ด๋ ค์ ์ผ๋ฏ๋ก ์ด๋ฅผ ์ง์ ๋ง๋ค์ด๋.
- ๊ฐ์ฅ ๋ณดํธ์ ์ธ ํ๋ฐฐ ์์(๊ฐ์ ํ์ง ์์)์ ๋ฐ์ดํฐ๋ง์ ๊ณ ๋ ค
[2023.01.14 ~ 2023.01.16]
- 1์ฐจ Model training and testing
- Real Time Detection
- Train, valid dataset split
- Data Augmentation
[2023.01.17 ~ 2023.01.24]
- 1์ฐจ Detection model result ๋ถ์, ํ๊ฐ
- Annotating ๋ํญ ์์
- OCR / Model serving Reference Searching ์์
- App service ๊ณํ์ด ์์์ผ๋ ์ฐจํ๋ก ๋ฏธ๋ฃธ.
[2023.01.25 ~ 2023.01.27]
- 2์ฐจ Detection Model training and testing
- ์์ ๋ Annotating ์ ์ฉ
- Resolution ์กฐ์ (640640 -> 12801280)
- ๊ฒฐ๊ณผ ๋ถ์, ํ๊ฐ ํ 3์ฐจ๋ก ๋์ด๊ฐ
- Github repository ๊ฒฐ๊ณผ๋ฌผ ์ ๋ฆฌ
- Readme ์์ฑ ์์
[2023.01.28 ~ 2023.02.06]
- OCR model ์ค๋น
- ํ๋ฐฐ ์ด์ก์ฅ ๋ฐ์ดํฐ ์ค๋น (์์์ ์ฃผ์๋ฐ์ดํฐ ์์ฑ, ์ก์ฅ ์ธ์)
- OCR API test (Google Cloud Vision, Naver Clova)
- OCR model searching (EazyOCR, Tesseract ๋ฑ)
- 3์ฐจ Detection model training and testing
- use EfficientDet models. (D0, D1)
- also used Yolo models : Yolo๊ฐ Eff.Det๋ณด๋ค ๋์ ํ์ธ
- App ๊ตฌํ ๊ณํ์ Web Serving์ผ๋ก ์์ . (Insight ๋ค์๋ณด๊ธฐ)
- ๊ณ ๊ฐ์๊ฒ ์๋ฆผ์ ๋ฐ์กํ๋ ๊ธฐ๋ฅ์ด ํ์์์.
- ๋ฌผ๋ฅํ์ฌ(๊ณต์ฅ) ๋ด๋ถ์์๋ง ์ฌ์ฉํ๋ ํ๋ก๊ทธ๋จ์ผ๋ก ์ฌ์ฉ : ์น์ผ๋ก๋ง ๊ตฌํํด๋ ๋จ.
[2023.02.07 ~ 2023.02.13]
- Web Serving ๊ตฌ์ถ (Flask)
- ์ค์๊ฐ ๊ตฌ์ถ ์น ์ฌ์ดํธ ๊ตฌํ
- ์น UI ์ ์ (๋ถ๋๊ฒ์ถ : ๊ฒ์ถํ๋ ๊ฒ ๋ณด์ฌ์ฃผ๊ธฐ / ์ก์ฅ์ธ์ : OCR bbox ์ ์ฅ+crop)
- OCR Data train + inference ์์
- Tesseract, Naver Clova API, EazyOCR ๋ฑ ์ฌ์ฉ
- ์ก์ฅ ์ฌ์ง 100์ฌ ์ฅ์์ ๊ฐ ์ซ์ + "์ด์ก์ฅ๋ฒํธ" ๊ธ์์ bounding box ์ง์ , inference
- Yolo v8 ๊ธฐ๋ฐ์ผ๋ก ๋ชจ๋ธ ๋ง๋ค๊ธฐ ๋์ . 20,000 Epoch ์๋.
[2023.02.13 ~ 2023.02.16]
Presentation ์ค๋น
- Data, Model, OCR, Git, any other process ์ ๋ฆฌ
- ๋ฐํ ๋๋ณธ ์ ์, ๋์์ธ ๊ตฌ์
DB ๊ตฌ์ถ
OCR ์์
[2023.02.17]
- ๋ฐํ ๋ฐ ์ ๊ฒ.
Member | Role |
---|---|
๊น์ฌํ | Data Processing(Box Data), Model testing (Yolo v7, v8), OCR Modeling, Model web serving, Making Presentation File |
์ด์ฑ์ฐ | Data Processing(Box Data, WayBill Data), Model testing (Yolo v4, EfficientDet), Reference Searching and studying, Presentation |
- Detection ์ต์ ์ ๋ชจ๋ธ์ ์ฐพ๊ธฐ ์ํ YOLO, efficientDet, CoreML๋ฑ ๊ฐ์ฒด๋ชจ๋ธ ํ์ต ๋ฐ ํ ์คํธ
- Make Data Set ๊ตฌ์ถ์ ์ํ ํ์ค์์์ ๋ฐ์ดํฐ ์ Searh & Make
- EasyOCR, Tesseract, MMOCR ๋ฑ ์คํ์์ค๊ธฐ๋ฐ์ OCR ๋ชจ๋ธ ์ฌ์ ํ ์คํธ ๋ฐ fine tune
- NAVER Clova AI, KAKAO ๋ฑ ๊ตญ๋ด ๊ธฐ์ ์ OCR API ์ฌ์ฉ
MODEL | CoreML | YOLOv4 | YOLOv5 | YOLOv7 | YOLOv8 | EfficientDet |
---|---|---|---|---|---|---|
imgsize | 1280x1280 | 640x640 | 640x640,1280x1280 | 640x640,1280x1280 | 640x640,1280x1280 | 1280x1280 |
epochs(best) | 3200 | 6000 | 100(78) | 100(83) | 100(87) | 10000(9752) |
data | 3๋จ๊ณ | 2๋จ๊ณ | 3๋จ๊ณ | 3๋จ๊ณ | 3๋จ๊ณ | 3๋จ๊ณ |
mAP50 | 0.78 | 0.57 | 0.81, 0.85 | 0.45 | 0.81,0.86 | 0.79 |
augmentation | crop 10 | crop10 | crop10, hyper params | crop10, hyper params | crop10, hyper params |
# pip install -r requrements.txt
gitpython
ipython # interactive notebook
matplotlib>=3.2.2
numpy>=1.18.5
opencv-python>=4.1.1
Pillow>=7.1.2
psutil # system resources
PyYAML>=5.3.1
requests>=2.23.0
scipy>=1.4.1
thop>=0.1.1 # FLOPs computation
torch>=1.7.0 # see https://pytorch.org/get-started/locally (recommended)
torchvision>=0.8.1
tqdm>=4.64.0
# protobuf<=3.20.1 # https://github.com/ultralytics/yolov5/issues/8012
# pip install -r requrements.txt
matplotlib>=3.2.2
numpy>=1.18.5,<1.24.0
opencv-python>=4.1.1
Pillow>=7.1.2
PyYAML>=5.3.1
requests>=2.23.0
scipy>=1.4.1
torch>=1.7.0,!=1.12.0
torchvision>=0.8.1,!=0.13.0
tqdm>=4.41.0
protobuf<4.21.3
# pip install Ultralytics
pip install -r requrements.txt
matplotlib>=3.2.2
numpy>=1.18.5
opencv-python>=4.6.0
Pillow>=7.1.2
PyYAML>=5.3.1
requests>=2.23.0
scipy>=1.4.1
torch>=1.7.0
torchvision>=0.8.1
tqdm>=4.64.0
โโโ BoxDetection
โ โโโ Yolo โฌโโ v4 (DarkNet)
โ โ โโโ v5
โ โ โโโ v7
โ โ โโโ v8
โ โโโ CoreML (yolo v2, v3 based)
โ โโโ EfficientDet โฌโโ D0
โ โโโ D1
โ
โโโ TrackingDetection
โ โโโ Yolov8
|
โ
โโโ Serving
โ โโโ YOLOv8s
โ
โโโ OCR (Optical Character Recognition)
โ โโโ EazyOCR
โ โโโ TesseractOCR
โ โโโ mmOCR
| โโโ Naver Clova A.I.
| โโโ Google Cloud Vision
โ โโโ Kakao
|
|
โโโโ Dataset
โโโโ train.txt
โโโโ valid.txt
โโโโ test.txt