mirror of
https://github.com/gaomingqi/Track-Anything.git
synced 2025-12-16 08:27:49 +01:00
flask is kind of web application tool, stronger than gradio, but need to write html and javascript -- li
This commit is contained in:
72
text_server.py
Normal file
72
text_server.py
Normal file
@@ -0,0 +1,72 @@
|
||||
import os
|
||||
import sys
|
||||
import cv2
|
||||
import time
|
||||
import json
|
||||
import queue
|
||||
import numpy as np
|
||||
import requests
|
||||
import concurrent.futures
|
||||
from PIL import Image
|
||||
from flask import Flask, render_template, request, jsonify, send_file
|
||||
import torchvision
|
||||
import torch
|
||||
|
||||
from demo import automask_image_app, automask_video_app, sahi_autoseg_app
|
||||
sys.path.append(sys.path[0] + "/tracker")
|
||||
sys.path.append(sys.path[0] + "/tracker/model")
|
||||
from track_anything import TrackingAnything
|
||||
from track_anything import parse_augment
|
||||
|
||||
# ... (all the functions defined in the original code except the Gradio part)
|
||||
|
||||
app = Flask(__name__)
|
||||
app.config['UPLOAD_FOLDER'] = './uploaded_videos'
|
||||
app.config['ALLOWED_EXTENSIONS'] = {'mp4', 'avi', 'mov', 'mkv'}
|
||||
|
||||
|
||||
def allowed_file(filename):
|
||||
return '.' in filename and filename.rsplit('.', 1)[1].lower() in app.config['ALLOWED_EXTENSIONS']
|
||||
|
||||
@app.route("/")
|
||||
def index():
|
||||
return render_template("index.html")
|
||||
|
||||
@app.route("/upload_video", methods=["POST"])
|
||||
def upload_video():
|
||||
# ... (handle video upload and processing)
|
||||
return jsonify(status="success", data=video_data)
|
||||
|
||||
@app.route("/template_select", methods=["POST"])
|
||||
def template_select():
|
||||
# ... (handle template selection and processing)
|
||||
return jsonify(status="success", data=template_data)
|
||||
|
||||
@app.route("/sam_refine", methods=["POST"])
|
||||
def sam_refine_request():
|
||||
# ... (handle sam refine and processing)
|
||||
return jsonify(status="success", data=sam_data)
|
||||
|
||||
@app.route("/track_video", methods=["POST"])
|
||||
def track_video():
|
||||
# ... (handle video tracking and processing)
|
||||
return jsonify(status="success", data=tracking_data)
|
||||
|
||||
@app.route("/track_image", methods=["POST"])
|
||||
def track_image():
|
||||
# ... (handle image tracking and processing)
|
||||
return jsonify(status="success", data=tracking_data)
|
||||
|
||||
@app.route("/download_video", methods=["GET"])
|
||||
def download_video():
|
||||
try:
|
||||
return send_file("output.mp4", attachment_filename="output.mp4")
|
||||
except Exception as e:
|
||||
return str(e)
|
||||
|
||||
if __name__ == "__main__":
|
||||
app.run(debug=True, host="0.0.0.0", port=args.port)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run(host="0.0.0.0",port=12212, debug=True)
|
||||
Reference in New Issue
Block a user