Yolov5是一个流行的实时对象检测算法,它在速度和性能方面有很好的表现。有时,您可能希望将Yolov5模型打包成一个独立的EXE应用程序,以便在没有Python环境的情况下在Windows系统上运行。这篇文章将指导您完成这一过程。我们将使用PyInstaller来生成EXE应用程序。
**环境准备:**
1. 安装Python: 首先需要安装Python,建议使用3.7+版本。Python下载链接: https://www.python.org/downloads/
2. 安装Yolov5库: 需要安装yolov5库,可以通过以下命令安装:
```
pip install yolov5
```
3. 安装PyTorch: 根据您的系统和CUDA版本安装PyTorch,从官方网站查看安装命令: https://pytorch.org/get-started/locally/
4. Cloning Yolov5 Repository: 从GitHub克隆Yolov5的仓库。
```
git clone https://github.com/ultralytics/yolov5.git
```
5. 安装依赖: 进入到yolov5目录中,并安装其他依赖项。
```
cd yolov5
pip install -r requirements.txt
```
**制作EXE应用程序:**
1. 安装PyInstaller库:
```
pip install pyinstaller
```
2. 为了演示目的,假设您已经训练好了一个Yolov5自定义对象检测器(或使用预训练模型),存储为`yolov5_model.pt`。我们将编写一个名为`yolov5_detector.py`的简单脚本,用于加载模型并检测给定图像的对象。
3. 在'yolov5'目录中创建一个新的python文件,命名为`yolov5_detector.py`,并添加以下代码:
```python
import torch
from PIL import Image
import argparse
from yolov5.models.experimental import attempt_load
from yolov5.utils.general import check_img_size, non_max_suppression, scale_coords
from yolov5.utils.torch_utils import select_device, time_sync
def detect(image_path, model_path):
# Initialize model and load weights
device = select_device('')
model = attempt_load(model_path, map_location=device)
imgsz = check_img_size(640, s=model.stride.max()) # check img_size
# Load image
img = Image.open(image_path)
img = img.resize((imgsz, imgsz))
img = torch.from_numpy(np.array(img)).to(device)
img = img.float() / 255.0
img = img.permute(2, 0, 1).unsqueeze(0)
# Inference
pred = model(img, augment=False)[0]
# Apply NMS
pred = non_max_suppression(pred, conf_thres=0.25)
return pred.numpy()
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--image', type=str, help='path to input image')
parser.add_argument('--model', type=str, help='path to yolov5 model file (pt format)')
args = parser.parse_args()
image_path = args.image
model_path = args.model
detections = detect(image_path, model_path)
print('Detections:', detections)
```
4. 打开命令提示符或终端,导航到存储包含`yolov5_detector.py`的yolov5目录,并运行以下命令创建EXE文件:
```
pyinstaller --onefile yolov5_detector.py
```
5. 编译后的EXE文件将在'./dist'子目录中生成。将`yolov5_detector.exe`复制到包含`yolov5_model.pt`(或任何其他您想要检测的相关文件)的目录中。
如此,您已经成功将Yolov5打包成了一个EXE文件。您可以将该文件放在一个文件夹里,并在Windows上运行它,即使在没有Python环境的计算机上也能正常运行。
注意:如果您需要将预训练的Yolov5模型文件(如yolov5s.pt)与EXE文件一起打包,可以在'pyinstaller'命令中添加'--add-data'参数,如下所示:
```
pyinstaller --onefile --add-data "yolov5s.pt;./" yolov5_detector.py
```