Python 연동 문의드립니다.

뭔가 질문이 추상적일지도 있으니 양해 부탁드립니다 ㅜㅜ

현재 빅데이터 처리 관련 업무를 하고 있습니다. 거창한건 아니고… 큰 데이터를 원하는 데이터양식으로 전처리하고… 분석하고 AI 학습하고 이런 업무 입니다. 파이썬을 통해 진행하고 있습니다

Python을 C# 앱에 embed 하려고 하는데요. 간단히 설명하자면 C# 에서 매개변수 값을 파이썬 코드에보내고 데이터 처리 후 리턴값인 데이터프레임을 C# 데이터 테이블에 저장하고… GUI를 통해 보여주고… 이런 방법입니다. 파이썬은 데이터 처리용, C# 은 GUI 용 이라고 보시면 되겠습니다

파이썬으로 GUI 를 짜려고 했으나…구성이나 사용이 편리하지 않은거같고… 라이센스도 걸리는게 많아 사용이 어렵고 C# 은 데이터 처리를 하기가 너무 어려워서ㅠㅠ 위 방식대로 하려고 합니다…

가능한 방법인지… 추천하시는지 문의드립니다

  1. Python py 를 직접 c# 코드로 실행시켜 리턴값을 받는방법…
  2. Pythonnet 패키지를 이용해서 파이썬 코드를 짜서 실행하는방법…

이렇게 문의드리는 이유는… 현재 AI 학습용으로 PC 를 모두 쓰고 있어서ㅠㅠ 테스트를 못해보고 있습니다 ㅜㅜ 양해부탁드립니다

파이썬 코드에 소켓서버나 API 서버를 열어두고

C# 코드에서 요청하는 방식으로도 생각해보시면 어떨까요?

2 Likes

음… 소켓이라는걸 써보진않아서 한번 해보겠습니다

이미 python 코드는 api로 만들긴햇는데… 서버쪽은 제가 잘몰라서 공부를 해야겠네요 ㅜㅜ 감사합니다

1 Like

거의 실시간 응답을 기대한다면,

c# 에서 pythonnet Py.GIL() 쓰레드 안에 c# 요청 응답을 위한 루프를 돌리고,
c# 데이터 공유를 이용하여, c# 요청 변수를 할당하면 됩니다.

최근,
c# 에서 opencv 이미지 취득(30 FPS), 취득한 이미지를 pythonnet Py.GIL() 쓰레드로 보내어,
google mediapipe 이용하여 신체좌표 추출(25~28 FPS)할 때 쓴 방법입니다.

4 Likes

AI 모델 및 모델 입출력 데이터의 구조가 많이 복잡하지 않다면 모델을 ONNX 모델로 변환시키고 C# 안에서 ONNX Runtime을 이용해 직접 모델을 이용하는 것도 괜찮습니다.

2 Likes