赞
踩
一、前言
本节实验将官方yolov10推理程序打包为exe运行
二、代码
首先下载官方代码至本机,并使用conda创建虚拟环境,并安装好yolov10所需库
- conda create --prefix E:/pyenv/myYolo10 python=3.8
- pip install -r requirements.txt
下载官方模型权重 yolov10m.pt ,并在根目录下创建推理代码
- # -*- coding: utf-8 -*-
- """
- Created on Fri Feb 2 15:50:32 2024
- @author: WIN10
- detect.py
- """
-
- import time , cv2
- import multiprocessing
- from ultralytics import YOLOv10
-
- model_path = "./yolov10m.pt"
-
- if __name__ == '__main__':
- multiprocessing.freeze_support()
- model = YOLOv10( model_path )
-
- cv_img = cv2.imread( "./demo.png" )
-
- results = model.predict( #初始化第一次比较慢。需要2秒多,后续较快
- source= cv_img ,
- conf = 0.2 ,
- imgsz=640 ,
- show = True
- )
-
- cv2.waitKey()
- cv2.destroyAllWindows()
确认创建环境无误,运行可得到显示结果
三、打包步骤
接下来将该代码打包为exe,
(1)代码禁用多进程,在main下方加上一句multiprocessing.freeze_support()
- if __name__ == '__main__':
- multiprocessing.freeze_support()
(2)将根目录下的ultralytics/utils/__init__.py 的 238 行 if判断改为
if WINDOWS and sys.stdout and sys.stdout.encoding != "utf-8":
(3)安装pyinstall ,并执行打包指令
pip install pyinstaller
pyinstaller打包指令不要用 -F ,-F是打包为一整个exe,容易出现问题,使用以下指令
pyinstaller detect.py --noconsole -p 'E:\pyenv\myYolo10\Lib\site-packages' -p 'E:\pyenv\myYolo10\Lib\site-packages\torch\lib' --hidden-import torchvision
(4)关闭防火墙
打包过程,可能会被防火墙拦截,报病毒错误
关闭防火墙
统统关掉,重新执行指令
四、结果
打包将在dist文件夹下生成exe,以及相应独立包文件,运行exe
将 模型文件和图片拷贝至和detect.exe同一目录
运行若提示错误 无default.yaml ,如:
- File "ultralytics\utils\__init__.py", line 363, in yaml_load
- FileNotFoundError: [Errno 2] No such file or directory: 'E:\\py_test\\yolov10\\dist\\detect\\_internal\\ultralytics\\cfg\\default.yaml'
将根目录下的ultralytics文件夹,复制拷贝到打包生成的_internal 文件夹中去,再次双击运行detect.exe,可成功运行
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。