분류 전체보기 (21) 썸네일형 리스트형 YOLO v5 - 자동차 번호판(License Plate) 인식 - 5. Custom Dataset 으로 학습 시키기 이제 까지 만든 번호판 Dataset으로 YOLO로 학습 시켜볼 차례입니다. YOLO를 학습시킬때 Pretrained Weight는 small/medium/large/eXtra large로 나뉠 수 있습니다. 저는 RTX 3080TI 그래픽 카드를 사용하고 있는데 그래픽 카드의 RAM이 12GB 입니다. eXtra large로 했을때 Batch size가 4정도 밖에 나오지 않아서 이번에는 Large의 Weight로 Batch size 8로 학습해 보겠습니다. epochs 100번 정도 반복하며 이미지 사이즈는 836x836 입니다. yolov5-master 디렉토리로 이동한 다음 아래와 같이 입력합니다. python train.py --img 832 --batch 8 --epochs 100 --data.. YOLO v5 - 자동차 번호판(License Plate) 인식 - 4. Custom Dataset 만들기 1. 자동차 번호판 Image 모으기 자동차 번호판 Custom Dataset을 만들기 위해서는 우선 이미지를 모아야 합니다. 저는 구글에서 자동차 번호판 / License Plate로 검색해서 이미지를 모았으며 https://www.kaggle.com/tustunkok/license-plate-detection의 일부 이미지도 사용했습니다. 2. Image resizing 이미지들을 YOLO가 Training 할 수 있도록 Resize를 해줘야 합니다. Resize 이미지는 416, 608, 836 픽셀입니다.(Width, Height 동일) 제가 만든 이미지 데이터 프로세스 프로그램을 받습니다. https://github.com/amahiner7/ImageDatasetProcess-Yolov5에서 직.. YOLO v5 - 자동차 번호판(License Plate) 인식 - 3. Vehicles Detection 하기 학습이 완료 되면 yolov5-master 디렉토리의 runs/train/vehicls_yolov5s_results를 확인 합니다. val_batch2_pred의 내용입니다. 모델이 Validation set을 predict한 내용인데요 학습이 잘된것을 확인 할수 있습니다. 역시 Small 모델이라서 Large/eXtra Large보다 Detection 성능이 조금 떨어지지만 인식 속도는 빠릅니다. Detetion할때 weight 파일은 best.pt을 쓸 예정입니다. 테스트할 이미지 파일이나 동영상 파일을 구해옵니다. yolov5-master 디렉토리로 가서 아래의 명령어를 입력합니다. 테스트할 동영상은 road1.mp4 입니다. python detect.py --source ./test_data/mo.. YOLO v5 - 자동차 번호판(License Plate) 인식 - 2. Public Dataset으로 학습 시키기 Public Dataset으로 학습시키기 다운로드 한 공개된 Dataset인 Vehicles-OpenImages로 YOLO를 학습 시켜 보겠습니다. 1. yolov5 가상환경을 activate 합니다. 그다음 YOLO v5를 다운로드 받은 디렉토리로 이동합니다. conda activate yolov5 cd yolov5-master 2. 다운로드 받은 Dataset을 yolov5-master/dataset으로 복사합니다. 3. Dataset 폴더에 압축을 풀어 줍니다. test/train/valid 각 폴더안에는 images/labels 디렉토리가 있습니다. images 디렉토리 안에는 Dataset의 이미지들이 있습니다. labels 디렉토리에 있는 레이블 파일의 확장자는 txt 파일입니다. label .. YOLO v5 - 자동차 번호판(License Plate) 인식 - 1. 환경 준비 환경 준비 YOLO v5를 이용하여 자동차 번호(License plate)를 인식해보겠습니다. 참고로 제 컴퓨터 환경 입니다. Anaconda 2021.05 Python 3.8 PyTorch 1.9.0 / CUDA 11.3 PyCharm 2021.2.3 (Professional Edition) 1. YOLO v5 소스 다운로드 소스는 https://github.com/ultralytics/yolov5 여기서 직접 다운로드 받으시거나 또는 git bash를 실행 하신 다음 소스를 받습니다. $ git clone https://github.com/ultralytics/yolov5 2. 가상환경(Virtual Environment) 만들기 requirements.txt의 대로 install 했더니 오류가 나서.. YOLO v5를 이용한 자동차 번호판(License Plate) 인식 - Introduction YOLO v5 모델을 사용하여 Custom dataset을 직접 만들어서 자동차 번호판(License plate)를 인식해 보았습니다. 자동차 번호판 이미지는구글의 License plate 이미지 또는 Kaggle에서 얻었으며 레이블링 작업은 labelimg을 사용했습니다. labelimg에서 레이블링한 좌표를 Convert하는 Tool은 직접 코딩해서 사용하였습니다. Dataset의 입력 이미지 사이즈는 416, 832로 해봤는데 역시 832의 Detection 성능이 좋았습니다. Weight는 small / large / eXtra large 사이즈로 해봤을때 역시 예상대로 eXtra large로 했을때 인식률이 제일 좋았습니다. YOLOv5에서 번호판 인식을 어떻게 하는지 Turtorial 형식으로.. SPP (Spatial Pyramid Pooling) Net SPP Net 이란? R-CNN에서 CNN의 입력으로 이미지가 들어가기전 Warping/Crop 작업을 수행해줘야 했습니다. (R-CNN의 CNN의 구조인 AlexNet에서는 224x224로 입력 이미지의 크기가 고정) Warping 작업을 하면 이미지 왜곡이 일어나서 원본 이미지의 특성이 손상됩니다. 사실 CNN의 필터들은 입력 이미지가 고정될 필요가 없습니다. 필터들은 Sliding window 방식으로 작동되기 때문에, 입력 이미지의 크기나 비율에 관계없이 작동합니다. 입력 이미지의 크기가 고정이 필요한 이유는 CNN에 바로 뒤에 이어진 FCL(Fully Connected Layer)가 고정된 크기로 입력을 받기 때문입니다. SPP Net은 SPP(Spatial Pyramid Pooling)을 사용.. Inductive Bias Inductive Bias를 이해하기 위해서는 우선 Bias와 Variance 글을 읽어 보시길 추천 드립니다. Bias와 Variance Bias (편향)이란? 모델이 Predict가 Ground truth와 얼마나 떨어져 있는지에 대한 Error 입니다. Bias는 지나치게 단순한 모델로 인해서 Under fitting을 일으킵니다. 모델에서 Bias가 크다는 의미는 Data에서.. gentleman-blog.tistory.com Inductive Bias란? 학습시에는 만나보지 않았던 데이터에 대하여 정확한 예측을 하기 위해 사용하는 추가적인 가정(additional assumptions)을 의미합니다. Machine learning에서는 어떤 Target를 예측하기 위해 학습할 수 있는 알고리즘 .. Bias와 Variance Bias (편향)이란? 모델이 Predict가 Ground truth와 얼마나 떨어져 있는지에 대한 Error 입니다. Bias는 지나치게 단순한 모델로 인해서 Under fitting을 일으킵니다. 모델에서 Bias가 크다는 의미는 Data에서 중요한 특성을 제대로 학습을 하지 못하고 있다는 뜻입니다. Variance (분산)이란? 데이터에 비해서 지나치게 복잡한 모델로 인해서 발생하는 Error 입니다. Variance는 모델을 Training data에 지나치게 Overfitting 시켜서 모델이 일반화 특성을 가지기 어렵게 합니다. 왼쪽 그래프는 분산이 오른쪽에 비하여 작으며 일반화가 잘 되어 있기 때문에 예측 값이 일정한 패턴을 나타냅니다. 오른쪽 그래프는 Variance가 커서 Training.. Dice coefficient Dice coefficient란? Semantic segmentation 모델에서 사용하는 평가 지표 입니다. Ground truth와 모델의 Predict 값 사이의 차이를 평가하기 위해 사용합니다. Dice coefficient의 식은 다음과 같습니다. Dice의 유래는 사람 이름이며 Dice coefficient를 Binary segmentation map에 적용하면, F1 Score와 동일합니다. 이전 1 2 3 다음