1. Colab

- 구글에서 제공하는 클라우드 기반 주피터 노트북 개발환경

- 브라우저에서 python을 작성하고 실행이 가능

 

YOLO가 이미지를 처리하는 과정이기 떄문에 개인의 pc환경에서 학습하고자 한다.

이 때, cpu만을 사용한다면 학습시간은 현저하게 낮아지게 된다. gpu의 성능에 따라서도 학습시간이 달라진다.

Colab을 통해 학습을 시킨다면 자신의 pc환경과 상관없이 제공받는 GPU로 딥러닝 환경을 간편하게 설정할 수 있다.

개인 PC의 성능이 좋지않으므로 Colab을 통해 학습시간을 단축시켰다.

 


2. YOLO 트레이닝하기

- YOLO 트레이닝을 위해서는 이미지외 라벨, 두가지 데이터가 필요

- 이미지파일은 존재하므로, 각 이미지에 해당하는 라벨이 필요

 

※라벨이란?

출처 :  https://blog.testworks.co.kr/data-labeling/

그림과 같이 탐지를 원하는 객체에 Bounding Box를 그려 표현, 딥러닝모델에 학습데이터로 쓰임.

이 때, 이 라벨값은 좌표값으로 변환되어 라벨파일(txt) 형태로 저장된다.   


3. YOLO mark 사용하기

- 각 이미지에 해당하는 라벨을 쉽게 얻기위해 쓰는 툴

- YOLO Mark GitHub : https://github.com/AlexeyAB/Yolo_mark

- Darknet 환경에서 구동가능하며 GPU를 쓰는 것이 아닌 단순 작업이므로 개인 PC에서 진행

출처:  https://news.sbs.co.kr/news/endPage.do?news_id=N1002301509

보기와 같이 차량의 번호판부분에 Bounding Box로 처리하여 번호판을 학습할 수 있도록 이미지를 라벨링을 해준다.

차량이미지 400개를 가져와 각 이미지에 해당하는 번호판 라벨을 400개를 만들어 학습시켰다.

 

 

참고 : [YOLO - darknet] Window 10에서 YOLO_MARK로 YOLO 학습(Custom) - 19.8.26. 수정 완료 (tistory.com)

             colab에서 yolo 트레이닝하기 : 네이버 블로그 (naver.com)

1. YOLO

 You Only Look Once의 준말, Objection detection 분야의 합성곱 신경망 기반의 모델중 하나

 

 

 

 

 

 

 

 

 

 

 

 

 

 

그림과 같이 사진속 객체를 인식하여 객체를 Bounding Box로 구분짓고 이름을 붙여 분류함.

이 YOLO를 사용하여 차량 사진속에서 번호판 객체를 인식하게하여 번호판 부분만을 추출할 것

 


2. YOLO를 위한 개발환경세팅

YOLO 학습 / 검출을 위해 Darknet Project를 사용할 것

  https://github.com/AlexeyAB/darknet 를 통해 다운로드
 ※ Darknet : 신경망 프레임워크, 테이터들을 학습시키고 실행시킬 수 있는 틀

Darknet 빌드를 위한 프로그램

  • Visual Studio 2015 (2017,2019면 2015툴을 다운받아 2015버전으로 돌아가도록 설정
  • NVIDIA CUDA 10.0, NVIDIA cuDNN(CUDA와 호환 가능한 버전) : GPU로 돌리기위해 필수 - CPU와 차이 큼.
  • OpenCV 4.5.2 (영상처리 라이브러리-영상처리관련 API와 툴제공) 

Darknet 빌드 완료 후 YOLO 예제 실행

사진속의 개체를 인식하여 검출한 결과

 

참고 : https://darkpgmr.tistory.com/170

목표

1. 차량의 사진 업로드시 차량의 번호판 부분을 따로 인식하여 추출

2. 차량 번호판의 번호를 인식하여 번호 출력

 

차량 이미지 출처 : http://www.autoherald.co.kr/news/articleView.html?idxno=31997 

 


설계

1. YOLO를 이용한 딥러닝을 통해 차량번호판 데이터 학습

 - YOLO에 대한 자료수집

 - 딥러닝을 위한 환경세팅

2. 데이터 학습 후 , 샘플 이미지로 테스트. 번호판 탐지가 되는지 확인후 수정

 - YOLO를 Colab환경을 통해 학습 후 weight값 반환 

 - local환경에서 얻어낸 weight 값을 이용하여 차량사진에서 번호판 추출

 - 텍스트를 올바르게 추출 할 수 있도록 이미지 전처리 필요 

3. 번호판에서 글자 인식하여 텍스트로 최종 출력

 - tesseract를 이용하여 글자 추출

+ Recent posts