tree_canopy / app.py
vignesh
inital commit
fa8a573
Raw
History Blame Contribute Delete
1.48 kB
from flask import Flask, request, Response
import pandas as pd
import os
import cv2
import numpy as np
import yolo_app_predict
import mask2former_app_predict
import argparse
app = Flask(__name__)
@app.route('/tree_canopy/health')
def health_check():
return 'dont worry i m there'
def get_np_array(file):
file_bytes = np.frombuffer(file.read(), np.uint8)
img_arr = cv2.imdecode(file_bytes, cv2.IMREAD_COLOR_RGB)
return img_arr
@app.route('/tree_canopy/mask2former_prediction', methods=['POST'])
def get_mask2former_prediction():
img_file = request.files['image']
img_arr = get_np_array(img_file)
res_img_arr = mask2former_app_predict.predict(img_arr)
_, buffer = cv2.imencode(".png", cv2.cvtColor(res_img_arr, cv2.COLOR_RGB2BGR))
return Response(buffer.tobytes(), mimetype="image/png")
@app.route('/tree_canopy/yolo_prediction', methods=['POST'])
def get_yolo_prediction():
img_file = request.files['image']
img_arr = get_np_array(img_file)
res_img_arr = yolo_app_predict.predict(img_arr)
_, buffer = cv2.imencode(".png", cv2.cvtColor(res_img_arr, cv2.COLOR_RGB2BGR))
return Response(buffer.tobytes(), mimetype="image/png")
if __name__ == '__main__':
parser = argparse.ArgumentParser(description="Run the FastAPI application.")
parser.add_argument("--port", type=int, default=5050, help="Port to run the app on")
args = parser.parse_args()
app.run(host='0.0.0.0', port=args.port)