소스 검색

dockerfile seems ok

LeoDu 4 년 전
부모
커밋
c7a3a87399

+ 9 - 3
backend_refactor/Dockerfile

@@ -1,14 +1,20 @@
-FROM python:3.9.13-bullseye
+FROM pytorch/pytorch:1.12.1-cuda11.3-cudnn8-runtime
 
 RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone
 
 WORKDIR /pose
 
+RUN sed -i 's/archive.ubuntu.com/mirrors.nju.edu.cn/g' /etc/apt/sources.list && \ 
+    sed -i 's/security.ubuntu.com/mirrors.nju.edu.cn/g' /etc/apt/sources.list && \
+    apt update && \
+    apt install -y libgl1-mesa-glx libglib2.0-dev && \
+    rm -rf /var/lib/apt/lists/*
+
 COPY requirements.txt .
 RUN pip3 install --no-cache-dir -i https://mirror.nju.edu.cn/pypi/web/simple -r requirements.txt
-RUN python -m pip install detectron2 --no-cache-dir -i https://mirror.nju.edu.cn/pypi/web/simple -f https://dl.fbaipublicfiles.com/detectron2/wheels/cpu/torch1.10/index.html
+# RUN python -m pip install detectron2 --no-cache-dir -i https://mirror.nju.edu.cn/pypi/web/simple -f https://dl.fbaipublicfiles.com/detectron2/wheels/cpu/torch1.10/index.html
 
-# RUN sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
+VOLUME /data
 
 COPY . .
 

+ 4 - 5
backend_refactor/app.py

@@ -1,16 +1,13 @@
-from concurrent.futures import ThreadPoolExecutor
 import logging
-
+from nturl2path import url2pathname
 from flask import Flask
-
-import route.upload
+import route.upload, route.analyze, route.result
 from config import VERSION_PREFIX, MAX_CONTENT_LENGTH
 from route.util import make_response
 
 app = Flask(__name__)
 app.config['MAX_CONTENT_LENGTH'] = MAX_CONTENT_LENGTH
 
-pool = ThreadPoolExecutor(max_workers=2)
 
 
 @app.route("/")
@@ -19,6 +16,8 @@ def hello_world():
 
 
 app.register_blueprint(route.upload.bp, url_prefix=VERSION_PREFIX)
+app.register_blueprint(route.analyze.bp, url_prefix=VERSION_PREFIX)
+app.register_blueprint(route.result.bp, url_prefix=VERSION_PREFIX)
 
 
 @app.errorhandler(413)

+ 1 - 1
backend_refactor/config/__init__.py

@@ -1,5 +1,5 @@
 VERSION_PREFIX = "/v1/"
-UPLOAD_DIR = "./upload/"
+UPLOAD_DIR = "/data/"
 MAX_CONTENT_LENGTH = 100 * 1024 * 1024
 
 CACHE_DIR = "/tmp/"

+ 4 - 2
backend_refactor/requirements.txt

@@ -1,5 +1,7 @@
 flask==2.1.2
 gunicorn==20.1.0
 Pillow==9.1.0
-numpy==1.22.3
-torch==1.10.1
+numpy==1.21.6
+opencv-python==4.6.0.66
+matplotlib==3.5.3
+scipy==1.7.3

+ 3 - 6
backend_refactor/route/analyze.py

@@ -1,11 +1,8 @@
-
-
-
 from flask import request
 
-from app import pool
-from backend_refactor.route.util import make_response
-
+from worker.thread_pool import pool
+from route.util import make_response
+from flask import Blueprint
 from service.photo import StandingPhotoAnalyzer
 
 

+ 1 - 2
backend_refactor/route/result.py

@@ -1,7 +1,6 @@
-from sys import last_traceback
 from flask import Blueprint
 
-bp = Blueprint("result", __name__, url_prefix='/results')
+bp = Blueprint("result", __name__, url_prefix='/result')
 
 
 @bp.route("/{task_uuid}", methods=["GET"])

+ 6 - 6
backend_refactor/service/photo/StandingPhotoAnalyzer.py

@@ -1,5 +1,5 @@
-from ast import arg, main
-import BasePhotoAnalyzer
+
+from service.photo import BasePhotoAnalyzer
 
 import cv2
 import matplotlib.pyplot as plt
@@ -11,10 +11,10 @@ import os
 
 CACHE_DIR = "/tmp/"
 
-import src1.util2 as util
-from src1.body import Body
-from src1.torch_openpose import torch_openpose
-import src1
+import service.photo.src1.util2 as util
+from service.photo.src1.body import Body
+from service.photo.src1.torch_openpose import torch_openpose
+import service.photo.src1 as src1
 # from src.infer_video_d2 import infer_image,load_predictor
 # from video_pose.inference.infer_video_d2 import run_3d
 # from video_pose.data.prepare_data_2d_custom import custom

+ 2 - 2
backend_refactor/service/photo/src1/body.py

@@ -6,8 +6,8 @@ import numpy as np
 import torch
 from scipy.ndimage.filters import gaussian_filter
 
-from src1 import util
-from src1.model import bodypose_model
+from service.photo.src1 import util
+from service.photo.src1.model import bodypose_model
 
 
 class Body(object):

+ 2 - 2
backend_refactor/service/photo/src1/torch_openpose.py

@@ -4,8 +4,8 @@ import math
 from scipy.ndimage.filters import gaussian_filter
 import torch
 
-from src1 import util
-from src1.model import bodypose_model,bodypose_25_model
+from service.photo.src1 import util
+from service.photo.src1.model import bodypose_model,bodypose_25_model
 
 model_coco = 'model/body_coco.pth'
 model_body25 = 'model/body_25.pth'

+ 5 - 0
backend_refactor/worker/thread_pool.py

@@ -0,0 +1,5 @@
+from concurrent.futures import ThreadPoolExecutor
+
+pool = ThreadPoolExecutor(max_workers=2)
+
+