当前位置: 首页 > news >正文

YOLOv8 Flask整合问题

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()

解决!!!

相关文章:

  • 什么是Agent智能体?
  • 2024年信息安全企业CRM选型与应用研究报告
  • 探索 Android DataBinding:实现数据与视图的完美融合
  • 中间件:maxwell、canal
  • SpinalHDL之语义(Semantic)(一)
  • Python办公自动化案例:将Excel数据批量保存到Word表格中
  • spring boot启动报错:so that it conforms to the canonical names requirements
  • 验收测试:从需求到交付的全程把控!
  • 从自身经历浅谈对于C++/Java的认识
  • HttpServletRequestWrapper这个类有什么作用?
  • 深圳锐明技术前端开发笔试题
  • 音视频入门基础:FLV专题(3)——FLV header简介
  • springBoot --> 学习笔记
  • USB 3.1 Micro-A 与 Micro-B 插头,Micro-AB 与 Micro-B 插座,及其引脚定义
  • 职业技能大赛-单元测试笔记(assertThat)分享
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • 5、React组件事件详解
  • Android Studio:GIT提交项目到远程仓库
  • Consul Config 使用Git做版本控制的实现
  • MySQL数据库运维之数据恢复
  • Redis 懒删除(lazy free)简史
  • Spring声明式事务管理之一:五大属性分析
  • vue--为什么data属性必须是一个函数
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 突破自己的技术思维
  • 一起参Ember.js讨论、问答社区。
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #stm32整理(一)flash读写
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • %@ page import=%的用法
  • (160)时序收敛--->(10)时序收敛十
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (done) 声音信号处理基础知识(2) (重点知识:pitch)(Sound Waveforms)
  • (vue)el-cascader级联选择器按勾选的顺序传值,摆脱层级约束
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (黑马C++)L06 重载与继承
  • (回溯) LeetCode 40. 组合总和II
  • (十)c52学习之旅-定时器实验
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • .net Application的目录
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .net wcf memory gates checking failed
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .NET4.0并行计算技术基础(1)
  • .net6 webapi log4net完整配置使用流程
  • .Net多线程总结
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • /*在DataTable中更新、删除数据*/
  • @html.ActionLink的几种参数格式
  • [ JavaScript ] JSON方法