简单详细搭建网站教程视频教程广告制作简介
CSPVD SDK适用于为各种智慧工地应用增加安全防护穿戴合规的检测能力,能够有效检测未戴安全帽和未穿 安全背心的人员,提供Web API和原生API。官方下载:CSPVD工地安全防护检测
1、目录组织
CSPVD开发包的目录组织说明如下:
xlpr_sdk    | - core                      # 核心代码目录| - violation_code.py       # 违规代码定义| - violation_detector.py   # 违规识别网络| - violation_mixer.py      # 违规图像合成器| - weights                   # 预训练权重目录| - model.pt                # d_net权重| - assets| - hardhat.png             # 安全帽图标| - vest.png                # 安全背心图标  | - samples                   # 测试图片目录| - test-1.jpg                | - ....| - serve.py                  # Web UI及API服务| - api_test.py               # Web API调用示例代码| - requirements.txt          # 依赖声明文件
 
在第一次使用之前,首先安装依赖文件:
pip install -r requirements.txt
 
2、使用Web UI
执行如下命令启动Web UI:
python serve.py
 
然后使用浏览器访问 http://127.0.0.1:7860,即可打开Web UI。
在Web UI中打开一个图像文件,然后点击[Submit]按钮,就可以进行检测,如下图所示:

右侧的输出图像上叠加了检测到的违规信息,绿色包围框表示人员着装合规,红色包围框 表示人员着装违规,左下角的图标表示违规类别,图标含义说明如下:
| 图标 | 说明 | 
|---|---|
|   
  | 未戴安全帽 | 
|   
  | 未穿安全背心 | 
输出结果为一个数组,每个成员包含如下字段:
- box: 违规人员的包围框
 - codes: 违规代码。 2:未带安全帽 | 4:未穿安全背心
 - conf:置信度,越高越好
 
CSPVD能识别各种颜色的安全帽:

CSPVD也能检测不同样式的安全背心:

3、使用Web API
api_name: /predict
输入参数:
img_in:输入图像
输出结果:
- [0] :输出图像文件路径
 - [1] :检测结果数组,每个成员包含如下字段: 
box|codes|conf 
Python调用示例如下:
from gradio_client import Client, handle_fileclient = Client("http://127.0.0.1:7860/")
result = client.predict(img_in=handle_file('./samples/test-1.jpg'),api_name="/predict" )
print(result)
 
执行结果如下:

Web API特别适合将车牌识别能力集成到Java、C#、Javascript等其他语言开发的应用中。
4、使用原生API
除了Web API,CSPVD SDK也提供了Python原生API。
4.1 合规检测器
ViolationDetector是合规检测器类,使用其predict()方法对传入的图片进行处理,并返回检测结果数据。
ViolationDetector实例的predict()调用示例代码如下:
from core import ViolationDetector
import cv2vd = ViolationDetector()img_in = cv2.imread('samples/test-1.jpg')
results = vd.predict(img_in)
 
4.2 合规检测结果合成器
ViolationMixer是检测结果合成类,使用其mix()方法将检测结果叠加到图片上,返回叠加后 的合成图片。
ViolationMixer实例的mix()方法调用示例代码如下:
from core import ViolationDetector, ViolationMixer
import cv2vd = ViolationDetector()img_in = cv2.imread('samples/test-1.jpg')
results = vd.predict(img_in)vm = ViolationMixer()
img_out = vm.mix(img_in, results) 
原文链接:CSPVD工地安全防护检测 - 汇智网
