您的位置:首页 > 文旅 > 旅游 > 郑州短视频推广_在东莞建公司网站_网站搭建流程_苏州seo报价

郑州短视频推广_在东莞建公司网站_网站搭建流程_苏州seo报价

2024/12/22 19:34:55 来源:https://blog.csdn.net/MAI44/article/details/142566590  浏览:    关键词:郑州短视频推广_在东莞建公司网站_网站搭建流程_苏州seo报价
郑州短视频推广_在东莞建公司网站_网站搭建流程_苏州seo报价

YOLOv8 Flask整合问题

yolov8 + flask 后代码没有进行推理问题。

Bug model.predict()+pyinstaller+HTTPServer/flask: not executing

yolov8是异步线程调用了,flask打包exe后会应该异步问题,model.predict()不会进行返回,导致没有看着没有执行而已。

Behind the scenes, ultralytics (or one of its dependencies) is using multiprocessing, and if you want to use multiprocessing in a PyInstaller-frozen application, you need to call multiprocessing.freeze_support before making any use of multiprocessing functionality.

In the case of your non-flask example:

from http.server import BaseHTTPRequestHandler, HTTPServer
import json
import cv2
import multiprocessing  # For multiprocessing.freeze_support()
import numpy as np
import base64
import time
from ultralytics import YOLOclass MyServer(BaseHTTPRequestHandler):def do_POST(self):self.send_response(200)self.send_header("Content-type", "text/html")self.end_headers()content_length = int(self.headers['Content-Length'])post_data = json.loads(self.rfile.read(content_length))img = post_data['img']nparr = np.frombuffer(base64.b64decode(img), np.uint8)img_np = cv2.imdecode(nparr, cv2.IMREAD_COLOR)print('starting..')model = YOLO('best.pt')print('model loaded')results = model.predict(source=img_np, show=False, save=False, save_conf=False, show_conf=False, save_txt=False)print('model predicted')self.wfile.write(bytes(f"ok", "utf-8"))if __name__ == "__main__":multiprocessing.freeze_support()  # <--- Addedprint('starting server..')    webServer = HTTPServer(('localhost', 5000), MyServer)try:webServer.serve_forever()except KeyboardInterrupt:passfinally:print('aborted')time.sleep(2)webServer.server_close()

解决!!!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com