산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

라즈베리 파이로 텐서플로와 OpenCV를 활용한 숫자 인식기 만들기

손글씨 숫자를 인식하는 딥 컨볼루션 신경망을 훈련하고, 파이 카메라, OpenCV, 텐서플로를 사용하여 라즈베리 파이에 배포하는 방법을 알아보세요.

개요

이 프로젝트에서는 데이터 준비와 모델 훈련(노트북)에서부터 파이 카메라를 이용한 실시간 숫자 인식까지 전체 AI 파이프라인을 다룹니다. 이 솔루션은 이미지 조작을 위해 Scikit-Learn과 OpenCV 3.3을, 딥러닝 구성 요소로는 Keras(텐서플로 백엔드)를 사용합니다.

MNIST 데이터셋(28×28 픽셀 그레이스케일 숫자 이미지 6만 장 훈련용, 1만 장 테스트용)을 사용합니다. 파이 카메라로 촬영한 이미지는 훈련된 네트워크에 입력되기 전에 이 형식에 맞게 전처리됩니다.

네트워크 아키텍처는 표준 컨볼루션 스택과 10개의 뉴런을 가진 완전 연결 출력 레이어로 구성되며, 각 뉴런은 0~9까지의 숫자 하나를 나타냅니다.

모델 훈련이 완료되면 가중치를 라즈베리 파이로 전송합니다. 가벼운 파이썬 스크립트가 프레임을 캡처하고, 그레이스케일 변환, 임계값 처리, 리사이징, 반전 등을 적용한 후 추론을 수행합니다.

하드웨어 설정

시연을 위해 파이 카메라를 간이 홀더(단일 숫자에 초점을 유지하는 간단한 핸드헬드 장치)에 장착했습니다. 실제로는 고정 마운트나 소형 인클로저를 사용하면 안정성이 향상됩니다.

소프트웨어 설치

라즈베리 파이에서 파이썬 가상 환경을 생성하고 필수 라이브러리를 설치하세요. 아래 명령어는 작동하는 라즈베리 파이 OS와 파이썬 3.7+이 있다고 가정합니다.

source ~/.profile
workon cv
python PiCameraApp.py --picamera 1

텐서플로 설치

pip install tensorflow

Keras 설치

pip install keras

OpenCV 3.3 설치

OpenCV는 라즈베리 파이에서 완전한 최적화를 활성화하기 위해 소스에서 컴파일해야 합니다. 단계별 가이드는 PyImageSearch에서 확인할 수 있습니다.

https://www.pyimagesearch.com/2017/09/04/raspbian-stretch-install-opencv-3-python-on-your-raspberry-pi/

마지막으로 NumPy 최적화가 포함된 PiCamera 라이브러리를 설치하세요:

pip install "picamera[array]"

모델 훈련

노트북에서 훈련 스크립트를 실행하세요(GPU가 있으면 더 좋습니다). 스크립트는 Keras에서 CNN을 정의하고, 컴파일하고, MNIST 데이터로 훈련하고, 성능을 검증한 후 가중치를 model_weights.h5에 저장합니다.

python Train_MNIST.py

NVIDIA GPU가 있다면 GPU 지원 텐서플로와 CUDA 드라이버를 설치하여 훈련을 가속화하세요. GPU가 없어도 프로세스는 완료되지만 더 오래 걸립니다.

훈련 후 model_weights.h5를 scp나 WinSCP로 파이에 전송하세요.

실시간 숫자 인식

파이에서 인식 스크립트를 실행하세요. 프로그램은 t 키를 누르면 프레임을 캡처하고 q 키로 종료합니다. 정확도는 주로 조명, 각도, 필기체 선명도에 따라 달라집니다. 깨끗하고 고대비 숫자에서 일반적으로 95% 이상의 정확도를 달성합니다.

이미지 전처리 파이프라인

모델은 길이 10의 확률 벡터를 출력합니다. 가장 높은 확률을 가진 인덱스가 예측된 숫자입니다.

핵심 요약

이 예제는 데이터 준비, 모델 훈련, 배포, 단일 보드 컴퓨터에서의 추론까지 완전한 엔드투엔드 워크플로를 보여줍니다. 코드는 GitHub에서 확인할 수 있으며, 누구나 실험하거나 시스템을 확장할 수 있습니다.

참고 자료

출처: AI Digit Recognition with PiCamera

제조공정

  1. Acceed IGS-9822DGP: 4개 SFP 포트 갖춘 12포트 기가비트 스위치 - 고성능 산업용 네트워크 솔루션
  2. AAEON과 Intel, FWS-8600 제공: 40코어 2U 네트워크 어플라이언스, 400Gbps 처리량
  3. 래너(Lanner), 2세대 인텔 제온 스케일러블 프로세서로 네트워크 어플라이언스 성능 강화
  4. 라즈베리 파이 2에서 DS18B20으로 온도 읽기
  5. 라즈베리 파이에서 Maxim 1-Wire 센서와 DS2482 I2C 브리지로 온도 측정하기
  6. 라즈베리 파이로 서버실 정확한 온도 모니터링하기
  7. Walabot 기반 Posture Pal: 실시간 거리 모니터링으로 목·허리 통증 예방
  8. TJBot 시작하기: 나만의 AI 로봇 제작, 설정, 음성 제어
  9. 라즈베리 파이로 셀프 밸런싱 세그웨이 만들기
  10. 고피고(GoPiGo) v2 윈도우 10 IoT 코어 라즈베리파이 3 확장 프로젝트