Mercedes-Benz - 심층 신경망을 사용한 하드웨어 센서 시뮬레이션 사례
과제
심층 신경망을 사용하여 자동차 하드웨어 센서 시뮬레이션
솔루션
MATLAB, Simulink, Deep Learning Toolbox, Fixed-Point Designer를 사용하여 QKeras 딥러닝 모델을 자동차 ECU에 배포할 수 있는 코드로 변환
결과
- CPU, 메모리 및 성능 요구사항 충족
- 유연한 공정 수립
- 개발 속도 600% 향상
많은 자동차 제조업체는 개발용 자동차에 수많은 추가 하드웨어 센서를 탑재하여 문제를 진단하고 설계를 개선하기 위한 데이터를 수집합니다. 개발용 자동차가 프로덕션 단계로 전환된 후에는 비용을 절감하기 위해 이 중 많은 센서를 제거합니다. 하지만 일부 사례에서는 하드웨어 센서를 가상 센서로 교체할 수 있습니다. 가상 센서는 소프트웨어로 구현되는 더 저렴한 대안으로 안전성, 효율성 및 운전자의 쾌적함을 크게 향상할 수 있습니다.
Mercedes-Benz는 최근 MATLAB®과 Simulink®를 사용하여 가상 센서(예: 피스톤 압력 센서의 기능을 시뮬레이션하는 센서)를 배포하기 위한 새로운 워크플로를 구축했습니다. 이러한 센서는 리소스가 제한된 ECU 마이크로컨트롤러에서 실행되도록 설계된 딥러닝 신경망을 기반으로 하고 있습니다. 이 자동화된 워크플로는 더 느리고 시행착오 접근법을 사용하는 수동 워크플로를 대체했습니다.
"MathWorks 팀은 우리가 신경망을 만들고 이를 차량 제어 장치에 통합하는 데 사용하기 쉬운 파이프라인을 개발하도록 도와주었습니다." Mercedes-Benz의 AI 개발자인 Katja Deuschl의 말입니다. "이제 이 파이프라인을 통해 우리는 가상 센서와 기타 다양한 응용 프로그램을 위한 다양한 유형의 신경망을 만들고 배포할 수 있습니다."
과제
대부분의 심층 신경망은 자동차 ECU보다 훨씬 더 많은 처리 능력과 메모리 용량을 가진 컴퓨터에서 실행하도록 설계됩니다. 게다가 ECU는 TensorFlow™ 및 PyTorch®와 같은 일반적으로 사용되는 딥러닝 프레임워크 또는 딥러닝 프레임워크에서 필요한 부동소수점 연산을 지원하지 않습니다.
ECU에서 이러한 프레임워크에 기반한 모델을 실행하려면 개발자는 먼저 Python® 코드를 C로 변환하고 모델 파라미터와 계산을 고정소수점 연산으로 변환해야 합니다. Mercedes-Benz에서 이 공정을 완료하는 데 몇 주가 걸렸을 뿐만 아니라 신뢰할 수 없는 결과가 나왔으며 새로운 팀원에게 가르치는 것도 어려웠습니다.
Python 모델을 변환하기 위해 많은 수동 단계를 거쳐야 했기 때문에 팀은 C로 구현된 모델이 ECU의 제한된 메모리 공간 내에서 구동되고 시간에 민감한 작업(예: 피스톤 압력 감지)에 맞는 실시간 추론을 제공하도록 빠른 구동을 보장해야 했습니다. 이 팀은 더 안정적이고 더 자동화된 공정을 원했습니다.
솔루션
Mercedes-Benz 팀은 MathWorks 엔지니어와 협업하여 Python 딥러닝 모델을 ECU 통합 파이프라인으로 전송될 수 있는 코드와 파라미터로 변환하는 최적화된 워크플로를 구현했습니다.
이 워크플로에서 Mercedes-Benz 팀은 QKeras 라이브러리를 사용하여 Python으로 구현된 양자화된 LSTM(장단기 기억) 신경망을 훈련합니다.
또한 Deep Learning Toolbox™를 사용하여 훈련된 신경망을 MATLAB으로 가져옵니다. 그런 다음 사용자 지정 MATLAB 스크립트를 실행하여 가져온 신경망을 Simulink 모델로 변환합니다.
이후 Fixed-Point Designer™를 사용하여 모델의 모든 파라미터를 부동소수점 데이터형에서 고정소수점 데이터형으로 변환하여 자동차 ECU에 배포할 준비를 합니다.
Simulink에서 시뮬레이션을 통해 고정소수점 모델을 검증한 후 모델을 타사 소프트웨어 통합업체에 전달합니다. 이 통합업체는 다른 소프트웨어 구성요소와 함께 이 모델을 ECU에 구현합니다.
이 워크플로를 사용하여 첫 번째 활용 사례(피스톤 압력용 가상 센서)를 성공적으로 구현한 Mercedes-Benz 팀은 이제 동일한 공정을 ECU 타겟에 맞는 더 많은 센서와 다른 딥러닝 응용 분야에 적용하고 있습니다.
결과
- CPU, 메모리, 성능 요구사항 충족. "우리는 MATLAB 및 Simulink를 사용하여 ECU에 담을 수 있고 벤치마크 요구사항을 충족하는 가상 센서 신경망을 구현했습니다." Deuschl이 말합니다. "기존의 소프트웨어 개발 방식으로는 비슷한 가상 센서를 만들지 못했을 것입니다."
- 유연한 공정 수립. "우리는 MATLAB 및 Simulink를 사용하여 만든 자동화된 워크플로를 다른 활용 사례에 이미 사용하고 있습니다." "우리는 2개의 서로 다른 파워트레인 컨트롤러에 배포하기 위해 워크플로를 약간 수정했는데 이 워크플로는 게이트 순환 유닛 및 완전 연결 신경망 등의 딥러닝 모델의 다른 유형에 적용할 수도 있습니다."
- 개발 속도 600% 향상. "Deep Learning Toolbox와 Fixed-Point Designer를 사용하여 개발 속도를 이전 수동 개발 공정 대비 6배 향상할 수 있었습니다." Deuschl의 말입니다. "또한 수동 개발이 줄어들면서 모델과 코드를 만들 때 오류가 더 적어졌습니다."