Mercedes-Benz - 심층 신경망을 사용한 하드웨어 센서 시뮬레이션 사례

​"우리의 파워트레인 ECU에 대해 신경망을 사용하여 센서를 시뮬레이션한 것은 이번이 처음이었습니다. MATLAB 및 Simulink를 사용하지 않았다면 우리는 매우 느리고 오류가 발생하기 쉬운 지루한 수동 코딩 과정을 거쳐야 했을 것입니다."

과제

심층 신경망을 사용하여 자동차 하드웨어 센서 시뮬레이션

솔루션

MATLAB, Simulink, Deep Learning Toolbox, Fixed-Point Designer를 사용하여 QKeras 딥러닝 모델을 자동차 ECU에 배포할 수 있는 코드로 변환

결과

  • CPU, 메모리 및 성능 요구사항 충족
  • 유연한 공정 수립
  • 개발 속도 600% 향상
가상 센서를 파워트레인 ECU에 배포하기 위한 자동화된 워크플로 모델을 나타내는 다이어그램.

가상 센서를 파워트레인 ECU에 배포하기 위한 자동화된 워크플로.

많은 자동차 제조업체는 개발용 자동차에 수많은 추가 하드웨어 센서를 탑재하여 문제를 진단하고 설계를 개선하기 위한 데이터를 수집합니다. 개발용 자동차가 프로덕션 단계로 전환된 후에는 비용을 절감하기 위해 이 중 많은 센서를 제거합니다. 하지만 일부 사례에서는 하드웨어 센서를 가상 센서로 교체할 수 있습니다. 가상 센서는 소프트웨어로 구현되는 더 저렴한 대안으로 안전성, 효율성 및 운전자의 쾌적함을 크게 향상할 수 있습니다.

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의 말입니다. "또한 수동 개발이 줄어들면서 모델과 코드를 만들 때 오류가 더 적어졌습니다."