Project/ML-헬스 기구 분류 및 운동법 추천

헬스기구 분류 AI API로 만들기

CoderHan 2023. 6. 20. 20:40
반응형
import io
from PIL import Image
from flask_ngrok import run_with_ngrok
from flask import Flask, jsonify, request

def get_predict(image_bytes) : 
  image = Image.open(io.BytesIo(image_bytes))
  image = transforms_test(image).unsqueeze(0).to(device)

  with torch.no_grad() :
    outputs = model(image)
    _, preds = torch.max(outputs, 1)
    imshow(image.cup().data[0], title='예측결과' + class_names[preds[0]])

  return class_names[preds[0]]

app = Flask(__name__)

@app.route('/post', methods=['POST'])
def predict() :
  res = request.get
  if request.method == 'POST' :
    file = request.files['file']
    image_bytes = file.read()

    class_name = get_predict(image_bytes=image_bytes)
    print("결과 : ", {'class_name' : class_name})
    return jsonify({'class_name' : class_name})

파이썬 이미지 라이브러리로 전달받은 이미지를 byte화 하여 torch가 읽을 수 있는 형식으로 전환해준 뒤에

모델이 이를 예측하고 결과인 클래스이름을 리턴하는 함수를 만들었다.

 

그리고 삼성전자 주가 분석모델과 비슷하게 flask로 post요청을 받을 수 있는 함수를 작성했는데

HTTPConnectionPool(host='localhost', port=4040): Max retries exceeded with url: /api/tunnels (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f5d913c5540>: Failed to establish a new connection: [Errno 111] Connection refused')) 위 에러와 함께 호기롭게 막혀버렷다..

 

구글링을 열심히 해봤는데 요청이 많아지면 그럴 수 있다고 한다..시간이 많이 없는데 테스트해보고 싶었지만

다음으로 미뤄둔다.. 지금 회사에서 진행하는 상담유형분류 모델도 작업해야하고 여행도 있기 때문에

일정을 소화한 뒤에 다시 돌아와 완성하도록 하자.

 

반응형