Project & Kaggle

불량 타이어 검출을 위한 CNN 모델 개발 및 PYQT(EXE 실행 프로그램) 배포 프로젝트

판교데싸 2021. 6. 21. 18:54

 

 

Project

타이어 정상/불량 판정 자동화를 위한 이미지 처리 + 설비 내장 가능한 서비스 구현

 

프로젝트 관련 설명

 

1. 딥러닝 모델 개발


다음과 같은 최적의 딥러닝 모델을 구하기 위해 30여번의 실험을 진행

그림 1



대략적인 코드는 다음과 같다

코드 1
코드 2
코드3



CNN 모델 최적화 과정을 간단하게 정리하자면
1. 먼저 data를 argumentaion 진행 (코드1, 이미지를 증폭, 변화를 주어 모델 적용 -> 보통 데이터 부족 할 때 사용)
2. 각각의 이미지에 대해 폴더별로 labeling( 정상 /비정상)
3. 이후 일반적인 딥러닝 모델을 정의한다 ( 지금 같은경우는 Vggnet 을 기본으로잡고 거기서 변화를 주고 실험)
4. 정의된 모델을 테스트 해가며 accuracy를 확인하고 이 과정에서 val acc set의 과적합을 확인한다
5. Hyper parmeter를 바꿔가며 실험을 진행하고 최종적으로 그림 1과 같은 파라미터 생성
6. 생성한 모델을 저장하고 배포
7. 이미지를 수직/수평으로 뒤집고 각도를 조절하여 단순한 Training set에 적합 시키지 않고 더 많은 예시에 fitting 시킴
-> (코드3, Trend를 잃지 않게하기 위해)

2. 파이썬 앱(exe)개발 및 Xml parsing

 

xml1 (예시)



이것도 간단하게 과정을 설명하자면
1. Raw 데이터를 XML 파싱으로 특정 부분 추출 (xml 1 참고)
2. 추출한 후 이전에 배포한 CNN 모델 적용후 학습 내장 (개발 1 참고)
3. 이후 Front End 코드 적용 ( EX) text , label 등 )
4. 실제 이미지를 적용하여 모델을 돌리고 결과 값을 반환하는 코드 설계
5. Model output을 따로 파일에 자동저장 하도록 설계 (개발 2 참고 , 결과 저장 참고)

개발 1
개발 2
결과 저장




향후 프로젝트 고도화 과제


1. Directory 선택
2. 하위 디렉토리 경로 reading ex) 1월 1일 folder -> A조 -> 특정 타이어
3. 각 Directory 마다 XML 읽는 인터페이스(코드) 구현
6. Raw 데이터를 폴더 별로 접근하여 Reading 까지 자동화 (서비스 고도화 - 그리드 형식 )


구체적으로는 앞서 구현한 하단 딥러닝 EXE 모델 파일 전 단계를 Directory 설정 으로 구성하는 것



밑에 처럼 각 이미지가 생성 된 날짜와 그 날짜에 찍힌 8각도별 타이어를 개별적으로
결과를 낼 수 있는 디렉토리 설정을 EXE 파일 안에서 구현..










앞으로 계속 고도화 시키면서 수정할 예정이다.

반응형
반응형