在windows系统用Anaconda搭建运行PyTorch识别安全帽项目的环境

一.背景

我期望基于开源项目实现工业场景中安全帽识别。之前的各种尝试,也不太顺利。发现安全帽识别的开源项目使用的是基于Python的PyTorch实现训练的。上一篇写了Python的安装,发现后续安装其他的并不方便。我为什么选择,下面再详细说原因。

二.为何选择Anaconda来搭建PyTorch运行环境?

上一篇写了Python的安装,发现Python的版本是3.13.0。但是我看PyTorch官网的版本要求却是3.9-3.12。

因为我是初学者,我看到PyTorch官网写了有使用Anaconda来安装,所以,我决定选择它了。

三.Anaconda的下载和安装

1.Anaconda的下载

你可以直接点击这里的官方下载,也可以去Anaconda官网自己找。

2.Anaconda的下载

就是一路向下,建议默认路径,记住一下默认路径。安装有点慢,耐心等待完成。

3.Anaconda安装后的确认

输入命令,看看Anaconda安装好了没有。

bash 复制代码
conda --version

另外,还要输入命令,看看Python和pip安装好了没有。

bash 复制代码
python --version

pip --version

如果没有安装好,就手动配置一下环境变量。我主要配置了3个,配置环境变量不要让我再截图步骤了吧。。。

bash 复制代码
C:\ProgramData\anaconda3\condabin
C:\ProgramData\anaconda3\Scripts
C:\ProgramData\anaconda3

4.使用Anaconda管理Python环境

主要用到了下面3行命令:

bash 复制代码
#创建一个名字为myenv的环境,一次性的,不用每次进bat都去创建
conda create --name myenv 

#激活(使用)环境
conda activate myenv

#安装 python 需要的包  
conda install package_name

我cmd中输入 conda activate myenv后,就在最开始多了(myenv)。

bash 复制代码
(myenv) D:\zsp\works\temp\20241119-赵仕平-安全帽\Safety-Helmet-Detection-main>

四.开源安全帽识别项目Safety-Helmet-Detection的下载

1.Safety-Helmet-Detection的下载

项目主页是https://github.com/jomarkow/Safety-Helmet-Detection。里面训练用的图片有5千张,太大了,压缩下载下来都是1个多G,我们只是用结果,我也准备了一个结果的版本(删除了图片的)在这里下载

五.运行测试Safety-Helmet-Detection

1.Safety-Helmet-Detection解压

我是解压到这里的D:\zsp\works\temp\20241119-赵仕平-安全帽\Safety-Helmet-Detection-main。

2.安装PyTorch

bash 复制代码
#激活(使用)环境
conda activate myenv

#安装 python 需要的包  
conda install PyTorch

3.安装ultralytics

我在后面尝试运行模型时又出现了如下错误,说明这个组件没有安装。

bash 复制代码
ModuleNotFoundError: No module named 'ultralytics'

我用的pip install ultralytics 安装的,我觉得上面的命令 conda install ultralytics也应该可以。

4.了解本次模型的python运行代码

打开Safety-Helmet-Detection-main\model\predict.py文件。我大概阅读了一下代码,是从test目录中遍历文件,然后去执行模型,分为图片和视频两种,图片以.jpg后缀的就会执行,视频是在文件名字包含了dfgdfg的就会执行。结果输出到test_output目录。因为test_output本身有内容,我给清空了。

python 复制代码
import os
from ultralytics import YOLO
import cv2

PROY_FOLDER = os.getcwd().replace("\\","/")

INPUT_FOLDER =  f"{PROY_FOLDER}/test/"
OUTPUT_FOLDER = f"{PROY_FOLDER}/test_output/"
MODEL_PATH =    f"{PROY_FOLDER}/output/best.pt"

if not os.path.exists(OUTPUT_FOLDER):
    os.mkdir(OUTPUT_FOLDER)
    
model = YOLO(MODEL_PATH) 
files = os.listdir(INPUT_FOLDER)


def draw_box(params, frame, threshold = 0.5):
    
    x1, y1, x2, y2, score, class_id = params
    
    if score > threshold:
        cv2.rectangle(frame, (int(x1), int(y1)), (int(x2), int(y2)), (0, 255, 0), 4)
        cv2.putText(frame, results.names[int(class_id)].upper(), (int(x1), int(y1 - 10)),
            cv2.FONT_HERSHEY_SIMPLEX, 1.3, (0, 255, 0), 3, cv2.LINE_AA)  
    
    return frame


for file_name in files:

    file_path = INPUT_FOLDER + file_name
    
    if "dfgdfg" in file_name:

        video_path_out = OUTPUT_FOLDER + file_name[:-4] + "_out.mp4"

        cap = cv2.VideoCapture(file_path)
        ret, frame = cap.read()
        H, W, _ = frame.shape
        out = cv2.VideoWriter(video_path_out, cv2.VideoWriter_fourcc(*'MP4V'), int(cap.get(cv2.CAP_PROP_FPS)), (W, H))

        while ret:

            results = model(frame)[0]
            for result in results.boxes.data.tolist():
                frame = draw_box(result, frame)
            out.write(frame) 
            ret, frame = cap.read()
            
        cap.release()
        out.release()
    
    elif ".jpg" in file_name:
        
        image_path_out = OUTPUT_FOLDER + file_name[:-4] + "_out.jpg"
        
        image = cv2.imread(file_path,cv2.IMREAD_COLOR) 
        results = model(image)[0]
        for result in results.boxes.data.tolist():
            image = draw_box(result, image)
            
        cv2.imwrite(image_path_out, image) 
    
    cv2.destroyAllWindows()
            

5.运行开源项目

本质很简单,就是用Python去执行它的程序文件predict.py。我没有学习过Python,简单了解了一下,就是输入命令 python xxx.py就可以执行了。于是,我动手了。

bash 复制代码
C:\Users\Dell>cd /d D:\zsp\works\temp\20241119-赵仕平-安全帽\Safety-Helmet-Detection-main
D:\zsp\works\temp\20241119-赵仕平-安全帽\Safety-Helmet-Detection-main>conda activate  myenv

(myenv) D:\zsp\works\temp\20241119-赵仕平-安全帽\Safety-Helmet-Detection-main>python ./model/predict.py

0: 384x640 6 helmets, 1 head, 54.3ms
Speed: 3.0ms preprocess, 54.3ms inference, 1.0ms postprocess per image at shape (1, 3, 384, 640)

(myenv) D:\zsp\works\temp\20241119-赵仕平-安全帽\Safety-Helmet-Detection-main>

我去了test_output目录查看,发现输出图片如下:

视频运行慢,我试过了,就不写了。。。看程序就知道,只要把mp4文件的名字修改一下,包含dfgdfg就会运行的。

6.我加了张自己的照片看看

放到test目录,结果如下:

六.总结

使用Anaconda来搭建PyTorch运行模型比较方便。就是我的机器太差了,估计训练很难,运行问题不大。为后续免费搭建工业场景安全帽检测的方案奠定了基础。本人没有学过AI和Python,过程中使用到了豆包和文心一言帮助我找思路,帮我快速实现了我的初步探索结论。最近在矿山上多,学习更新有点慢,见谅

相关推荐
爱喝奶茶的企鹅6 分钟前
Ethan独立开发产品日报 | 2025-04-16
人工智能·程序员·开源
OpenBayes贝式计算19 分钟前
教程上新丨媲美 o3-mini,开源代码推理模型 DeepCoder-14B-Preview 狂揽 3k stars
人工智能·开源·llm
拖拉机25 分钟前
Python(八)类(下)
后端·python
晓13131 小时前
第三章 爬虫提速、selenium模块、requests模块进阶(终)
爬虫·python·selenium·测试工具·http
新智元1 小时前
o3 全网震撼实测:AGI 真来了?最强氛围编程秒杀人类,却被曝捏造事实
人工智能·openai
新智元1 小时前
何恺明 ResNet 登顶,Transformer 加冕!Nature 独家揭秘 25 篇高被引论文
人工智能·openai
noravinsc1 小时前
python 使用rabbitmq
python·rabbitmq·ruby
新智元1 小时前
OpenAI 震撼发布 o3/o4-mini,直逼视觉推理巅峰!首用图像思考,十倍算力爆表
人工智能·openai
newxtc1 小时前
【随行付-注册安全分析报告-无验证方式导致隐患】
人工智能·安全·网易易盾·极验
计算所陈老师2 小时前
基于论文的大模型应用:基于SmartETL的arXiv论文数据接入与预处理(二)
人工智能·个人开发·信息抽取