자유게시판

SENSING1코드의 ASC 동작을 위해 수정을 해야 하는 부분
2022. 10. 11 (화) 19:10 자작공작소 조회 30 좋아요 1 스크랩 0 댓글 2

케라스를 이용해서 모델을 만들고 X-Cube-AI를 이용해서 C코드로 변경시 입출력 가중치 파라미터 타입은 AI_BUFFER_FORMAT_FLOAT (AI_BUFFER_FMT_TYPE_FLOAT) 입니다.

그런데 ASC_NN_Run()함수에서 사용하는 aiConvertInputFloat_2_Int8(), aiConvertOutputInt8_2_Float()함수에서는 AI_BUFFER_FMT_TYPE_FLOAT 타입 데이터 처리시 오류가 발생합니다. 그래서 이부분을 수정 하던지 아니면 이 두 함수의 호출을 막아야 합니다.

아래는 마지막 과제 수행시 수정하여 사용한 코드입니다.

/**
 * @brief      ASC Convolutional Neural Net inference
 * @param[in]  pSpectrogram The CNN feature input
 * @param[out] pNetworkOut  The CNN output
 *
  * @retval ASC Status
 */
ASC_StatusTypeDef ASC_NN_Run(float32_t *pSpectrogram, float32_t *pNetworkOut)
{
  /* Z-Score Scaling on input feature */
  for (uint32_t i = 0; i < SPECTROGRAM_ROWS * SPECTROGRAM_COLS; i++)
  {
    pSpectrogram[i] = (pSpectrogram[i] - featureScalerMean[i]) / featureScalerStd[i];
  }

  aiRun(AI_ASC_MODEL_NAME, AI_ASC_MODEL_CTX, pSpectrogram, pNetworkOut);

  return ASC_OK;
}

이 코드를 수정하지 않으면 ASC프로세싱이 제대로 실행되지 못합니다.

ASC를 시도하실때 참고하시기 바랍니다.

 

 

칩헤드 2022.10.11 23:02 답글  | 
https://community.st.com/s/question/0D50X0000BJ2O2MSQV/spectrogram-recognition-with-xcube-ai-on-stm32f746 (Spectrogram recognition with X-Cube AI on STM32F746), FYI. ^^
자작공작소 2022.10.12 09:01
댓글
링크해 주신 글은 저도 읽어 보았습니다. 내용 중에도 소스 코드 내에 버그가 있다고 언급이 되었는데 터미널 프로그램을 통해서 디버깅을 해보면 ASC 실행시 "E: no meta info(1)" 메세지가 발생하며 위에 안내해 드린 내용은 이 메세지를 해결하는 방법입니다. :)

로그인 후
참가 상태를 확인할 수 있습니다.