인공지능 AI

인공신경망을 이용한 USB 인식 시스템

Managemnet S/W saehyeong.woo 2022. 8. 26. 10:18
SMALL

1) 전체 구성

USB 기반의 IoT 디바이스 환경에서 디바이스 제어 드라이버의 Plug & Play를 위한 기 본 모듈로서 USB 자동 인식 기능을 개발한다. USB의 자동 인식을 위하여 딥러닝 인공신경망을 이용한다. 인공신경망 학습을 위한 충분한 데이터를 확보하기 위 하여 이미지 처리를 수행하며, 다양한 종류의 인공신경망 모델을 구현하여서 그 성능을 비교한다.

 

 

 

충분한 양의 이미지를 확보하기 위하여 Crawling을 통해 USB 이미지를 가져오고, 설계 하는 인공지능 신경망을 충분히 학습시키기 위해서 충분한 양의 데이터가 필요하기에 Open CV 라이브러리를 이용하여 USB 이미지를 추가생성 후 인공신경망을 통해 훈련 한다. 훈련된 인공신경망을 이용하여 USB 이미지에 대한 인식 결과를 도출한다.

 

2) USB 이미지 크롤링

USB 이미지 인식을 위한 인공신경망을 학습시키기 위해 USB A, B, C Type의 이미지를 모으기 위해 Google Chrome Crawling을 사용하여 이미지 모으기를 진행한다. 개발 환 경으로 Python Selenium, Visual Studio Code 1.62.3 version, Chrome Driver 96.0.4664.45 를 사용했다.

-USB Type 별 이미지 크롤링 개수

USB A Type : 1,767

USB B Type: 1,070

USB C Type: 1,335

4,172장을 수집하였다. 이 과정에서 쓰레기 이미지 데이터가 있어 Photo Pad 프로그 램을 이용하여 이미지 편집 작업을 추가로 진행하였다.

 

3) USB 이미지 데이터 생성

크롤링을 통해 모은 이미지 4,172장의 데이터로는 인식 훈련에 부족하기에 이미지 데이 터 증강이 필요하다. 이미지 데이터 증강 전에 모은 이미지 4,172장의 사이즈를 가장 적합하게 256*256으로 맞추어 진행하였다. Python Open CV의 라이브러리를 통해 Random 난수를 생성해 각도를 주어 USB Type 별 이미지를 회전하였고, Flip을 통해 회전한 이미지를 상하좌우 반전을 통해 데이터 증강했다.

-USB Type 별 이미지 데이터 생성 개수

USB A Type : 35,300

USB B Type: 29,960

USB C Type: 32,040

97,300장의 데이터를 확보하였다.

 

4) 실험 구성

학습은 Ubuntu 18.04.05 LTS 서버에서 RTX 3080, 1대와 pytorch를 사용해서 진행한다. 실험 환경은 표 1과 같다. 모델은 CNN, VGG 19, ResNet 34152, Dense Net 사용하였다.

 

5) USB A, B, C Type 이미지 딥러닝

97,300장의 이미지 데이터를 다양한 인공신경망 모델을 통하여 훈련과 평가를 진행하였다. 전체 데이터 중에서 80%를 학습에 사용하였으며, 나머지를 평가에 사용하였다. 딥러닝 모델 중 하나인 합성곱 신경망은 이미지 분류 기술에서 높은 성능을 보인다. 이미지로부터 특징을 추출하고 정보를 처리하기에는 최적의 방법이다. 이와 더불어서 여러 개의 층과 비선형 흐름 등을 이용한 VGG, ResNet, Dense Net 같은 심층 인공신경망 들이 개발되어서 그 성능을 보여주었다. 다양한 인공신경망 모델에서의 성능 평가를 통하여 최적의 인식기를 개발한다. 그렇기에 다양한 인공신경망 비교를 위해 Dense net, ResNet 34, ResNet 152, VGG 19의 모델별 성능을 비교하였다.

 

-모델별 성능 비교

CNN Model Training : epoch:50 Loss: 0.0063 Acc: 0.9980 Time: 69760.4581

CNN Model Test: Loss: 0.0395 Acc=0.9919

ResNet 34 Model Training : epoch:50 Loss: 0.0005 Acc: 0.9999 Time: 56117.4069

ResNet 34 Model Training : Loss: 0.0031, Acc: 0.9991

ResNet 152 Model Training : epoch:50 Loss: 0.0012 Acc:0.9997 Time: 104710.0896

ResNet 152 Model Training : Loss: 0.0019 Acc: 0.9993

VGG 19 Model Training : epoch:50 Loss: 0.0010 Acc: 0.9997 Time: 107347.3888

VGG 19 Model Training : Loss: 0.0032 Acc: 0.9990

Dense Net Model Training : epoch:50 Loss: 0.0003 Acc:0.9999 Time: 95494.1272

Dense Net Model Training : Loss: 0.0014 Acc: 0.9997

 
 

이러한 그림을 확인하면 초록색 선인 (CNN) 을 제외하곤 모두 비슷하게 잘 수렴하는 것을 확인할 수 있다.

 

하지만 모델별 평가 결과는 파란색 선인 Dense Net이 가장 좋은 수렴과 정확도를 보였 .

 

6) 테스트 결과 예시

CNN 모델을 예시로 들어 USB A, B, C Type에 관한 결과를 보면 USB B, USB C는 이 미지 인식을 하였지만, USB AUSB C라고 예측하였다.

USB A -> USB C
 
 
USB B -> USB B
 

USB C - > USB C

 

가장 정확도가 높은 Dense Net 모델의 결과를 보면 모든 타입의 USB 이미지를 인식하 는 것을 확인할 수 있다.

 

USB A -> USB A

USB B -> USB B
USB C -> USB C
 

 

7) 결과 및 결론

IoT 디바이스의 Plug in Play를 위한 기본 모듈로서 대표적인 유선 인터페이스인 USB 인식 모듈을 개발하였다. 효과적인 USB 인식을 위하여 심층 인공신경망을 포함한 다양 한 인공신경망의 성능을 실험을 통하여 비교하였다. 인공신경망을 훈련하기 위한 충분 한 양의 데이터를 확보하기 위하여 크롤링 기법과 Open CV 이미지 회전 및 상하좌우 반전 기법을 사용하였다. 대부분의 인공신경망에서 높은 성능을 보여주었으며 Dense net에서 99.97%의 정확성을 얻을 수 있었으며, 실제 적용 가능성과 활용성에 대한 기대 치를 높일 수 있었다. 실제 촬영 USB 이미지의 평가 정확도를 확인 후 인식 모델의 신 뢰성도 한 단계 더 발전시킬 수 있을 것으로 기대할 수 있다.

 

8) 정보통신학회 논문 포스터

 
LIST