아두이노 정도의 CPU 파워로 딥러닝을 이용해 OCR을 구현할 수 있을까요? 한번 도전해봅시다.
※ 실제 MCU를 사용하지는 않고 특정 메모리량을 가정하고 부동소숫점을 지원하지않는다는 전제로 PC에서 C#으로 인공신경망을 디자인합니다
아두이노 정도의 CPU 파워로 딥러닝을 이용해 OCR을 구현할 수 있을까요? 한번 도전해봅시다.
※ 실제 MCU를 사용하지는 않고 특정 메모리량을 가정하고 부동소숫점을 지원하지않는다는 전제로 PC에서 C#으로 인공신경망을 디자인합니다
몇십 KB 메모리를 가진 MCU에서는 임베디드 바이너리 신경망
을 사용할 수 있습니다.
Binary neural network - Simple English Wikipedia, the free encyclopedia
인공지능, 머신러닝, 딥러닝 그리고 뉴럴네트워크 이런 이야기를 들었을 때 평소에 관심있게 관련내용을 보시지 않았다면 마냥 어렵게 느껴질 수도 있습니다. 저도 깊게 들어가면 눈앞이 노랗게 됩니다 ;;
아래의 그림을 보시면 입력층(Input Layer), 은닉층(Hidden Layer), 출력층 (Output Layer)으로 구성되어 있는것을 알 수 있습니다. 여기서 Hidden Layer가 인공신경망이 됩니다. Hidden Layer의 노드에 가중치를 결정하는 행휘가 바로 학습
이 됩니다. 학습으로 결정된 가중치를 이용해 OCR 등을 할 수 있게 됩니다.
마이크로컨트롤러에서 입력으로 받는 카메라 이미지는 숫자(중간의 소수점 포함)로 한정합니다.
[0 ~ 9]+([.][0 ~ 9]+)*
MCU 처럼 제한된 환경에서 OCR를 구현하려면 입력 정보를 가공하여 최소화 해야 합니다.