import torch
import numpy as np
import cv2
from torchvision.transforms import transforms
from torchvision.models import detection
# 预处理
transformer = transforms.Compose([transforms.ToTensor()])
# 运行设备
DEVICE = 'cuda' if torch.cuda.is_available() else 'cpu'
# 类名转换
id_to_class = {'1':'A'}
# 加载网络模型
model = detection.fasterrcnn_mobilenet_v3_large_fpn(weight=None, progress=True,num_classes=2)
model.load_state_dict(torch.load('./log/pretrained_epoch_16,train_iou_0.978933572769165,test_iou_0.652420699596405.pth'))
model.to(DEVICE)
# 读取视频
video_path = './video/ezgif-2-e9741894d1.mp4'
cap = cv2.VideoCapture(video_path)
while cap.isOpened():
ret,fram = cap.read() # 读取一帧数据
img = fram
img = np.array(img)
img_formodel = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 模型是单通道
# object detection 部分
with torch.no_grad():
model.eval() # 测试模式
img_tensor = transformer(img_formodel) # 预处理变换
img_tensor = img_tensor.to(DEVICE)
predict = model([img_tensor]) # 网络预测,输入应该是一个list
boxes = predict[0]['boxes'].cpu().detach().numpy().astype(int) # 获取边界框
labels = predict[0]['labels'].cpu().detach().numpy().astype(np.uint8) # 获取类别
scores = predict[0]['scores'].cpu().detach().numpy() # 置信度
for idx in range(boxes.shape[0]):
if scores[idx] > 0.5: # 显示高得置信度
x1, y1, x2, y2 = boxes[idx][0], boxes[idx][1], boxes[idx][2], boxes[idx][3]
names = id_to_class[str(labels[idx])]
score_out = round(scores[idx], 3)
cv2.rectangle(img, (x1, y1), (x2, y2), (255, 0, 0), 2) # 绘制矩形边界框
cv2.putText(img, text='{},{}'.format(names, str(score_out)), org=(x1, y1 + 10),
fontFace=cv2.FONT_HERSHEY_SIMPLEX,
fontScale=0.5, thickness=1, lineType=cv2.LINE_AA, color=(0, 0, 255))
cv2.imshow('video_detection', img)
# 退出检测
if cv2.waitKey(1) & 0xFF == ord('q'):
cap.release()
cv2.destroyAllWindows()
break
没有合适的资源?快使用搜索试试~ 我知道了~
通过cv对视频文件的读取,进行肺结节的实时目标检测
共12个文件
dcm:7个
py:2个
mp4:2个
需积分: 12 0 下载量 60 浏览量
2023-03-23
14:23:20
上传
评论
收藏 71.93MB ZIP 举报
温馨提示
通过cv对视频文件的读取,进行肺结节的实时目标检测
资源推荐
资源详情
资源评论
收起资源包目录
demo.zip (12个子文件)
demo
picture
R1.3.6.1.4.1.14519.5.2.1.6655.2359.100580691708822138145046680808.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.100076578137995108916608372154.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.100536901127280009255094350715.dcm 515KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.100563540589982020589334970337.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.100104689180023465599548262677.dcm 515KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.100199112995438635843231609895.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.100119697645714392522767629509.dcm 516KB
video_detection.py 2KB
object_detection.py 2KB
video
ezgif-2-e9741894d1.mp4 2.05MB
ezgif-2-b64237d6a1.mp4 1021KB
log
pretrained_epoch_16,train_iou_0.978933572769165,test_iou_0.652420699596405.pth 72.53MB
共 12 条
- 1
资源评论
听风吹等浪起
- 粉丝: 1w+
- 资源: 1434
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于GUI+MYSQL+JAVA票务管理系统文档介绍+源码+数据库(高分大作业).zip
- 优先编码器除法电微分运算电路 全加器函数发生电路等电路经典Multisim仿真实验源文件合集(25个).zip
- 2331308JS课堂案例.zip
- STM32H750VBT6单片机最小系统开发板AD设计硬件(原理图+PCB+3D封装库)工程文件.zip
- 基于74LS161+ 74LS192芯片实现倒计时定时器Multisim仿真源文件,Multisim10以上版本可打开运行
- 科大讯飞语音引擎 jar包 demo,科大讯飞语音合成引擎3.0,支持4.0系统以上,文字转语音输出.zip
- Java架构面试笔试专题资料及经验(含答案)SpringBoot面试Linux面试专题及答案 合集.zip
- 头歌c语言实验答案tion-model-for-ne开发笔记
- docker配置使用-model-for-networK开发demo
- docker配置使用vaWeb-mas笔记
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功