深圳商城网站设计公司数字化营销模式及特点
news/
2025/9/30 17:29:48/
文章来源:
深圳商城网站设计公司,数字化营销模式及特点,百度一下百度主页官网,科技大学全国排名YOLO TT100K: 基于YOLO训练的交通标志检测模型 在原始代码基础上#xff1a;
修改数据加载类#xff0c;支持CoCo格式#xff08;使用cocoapi#xff09;#xff1b;修改数据增强#xff1b;validation增加mAP计算#xff1b;修改anchor#xff1b;
注: 实验开启weig…YOLO TT100K: 基于YOLO训练的交通标志检测模型 在原始代码基础上
修改数据加载类支持CoCo格式使用cocoapi修改数据增强validation增加mAP计算修改anchor
注: 实验开启weight_decay或是 不对conv层和FC层的bias参数以及BN层的参数进行权重衰减mAP下降很大mAP[.5:.95]0.244
训练集
[Tsinghua-Tencent 100K] 下载的训练集主要包含train和test两部分分别为6107和3073张图片。统计标注文件共221类。详细统计每类标志个数发现很多类的数量为0所以清楚了部分数量为0的label剩下类别为151其中仍存在很多类数量5. TT100k转为CoCo格式
交通标志类别 数据集中包含数百种不同类型的交通标志实例例如停止标志、限速标志、方向指示标志等。截至某个时间点数据集有超过232种不同的交通标志类别这意味着每种类别都有一定数量的样本图片用于训练和测试模型。i2r类别 这个类别涉及图像到文本的匹配任务提供一张图像及五个候选文字描述目标是确定哪一描述最准确地匹配该图像的内容。i2 类别 这个类别代表图像到图像的匹配给定两张图像判断这两张图像是否描述的是同一场景或物体适用于图像检索和匹配任务。Other 类别 可能包括不属于上述特定任务的其他类型的数据或者是为了填充和扩充数据集而添加的样本 参考 [yolo-v3脚本]
python scripts/tt100k2coco.py
测试
pretrained model 密码: lcou
下载到model_data,运行:python predict.py
结果 mAP of yolo
对比yolov3: 如上mAP不高分析原因可能如下
数据集分辨率2048x2048yolov4输入为608,且交通标志中存在很多小物体原图resize到608很多目标太小难以检测某些类别数量过少
可优化:
借鉴YOLT方法检测小物体数据集扩充/增强使用更优秀的检测方法改进loss解决类别不均衡可参考
主要代码
# ----------------------------------------------------#
# 对视频中的predict.py进行了修改
# 将单张图片预测、摄像头检测和FPS测试功能
# 整合到了一个py文件中通过指定mode进行模式的修改。
# ----------------------------------------------------#
import timeimport cv2
import numpy as np
from PIL import Imagefrom yolo import YOLOif __name__ __main__:yolo YOLO()# -------------------------------------------------------------------------## mode用于指定测试的模式# predict表示单张图片预测# video表示视频检测# fps表示测试fps# -------------------------------------------------------------------------#mode predict# -------------------------------------------------------------------------## video_path用于指定视频的路径当video_path0时表示检测摄像头# video_save_path表示视频保存的路径当video_save_path时表示不保存# video_fps用于保存的视频的fps# video_path、video_save_path和video_fps仅在modevideo时有效# 保存视频时需要ctrlc退出才会完成完整的保存步骤不可直接结束程序。# -------------------------------------------------------------------------#video_path 0video_save_path video_fps 25.0if mode predict:1、该代码无法直接进行批量预测如果想要批量预测可以利用os.listdir()遍历文件夹利用Image.open打开图片文件进行预测。具体流程可以参考get_dr_txt.py在get_dr_txt.py即实现了遍历还实现了目标信息的保存。2、如果想要进行检测完的图片的保存利用r_image.save(img.jpg)即可保存直接在predict.py里进行修改即可。 3、如果想要获得预测框的坐标可以进入yolo.detect_image函数在绘图部分读取topleftbottomright这四个值。4、如果想要利用预测框截取下目标可以进入yolo.detect_image函数在绘图部分利用获取到的topleftbottomright这四个值在原图上利用矩阵的方式进行截取。5、如果想要在预测图上写额外的字比如检测到的特定目标的数量可以进入yolo.detect_image函数在绘图部分对predicted_class进行判断比如判断if predicted_class car: 即可判断当前目标是否为车然后记录数量即可。利用draw.text即可写字。while True:img input(Input image filename:)try:image Image.open(img)except:print(Open Error! Try again!)continueelse:r_image yolo.detect_image(image)r_image.save(img.split(/)[-1])r_image.show()elif mode video:capture cv2.VideoCapture(video_path)if video_save_path ! :fourcc cv2.VideoWriter_fourcc(*XVID)size (int(capture.get(cv2.CAP_PROP_FRAME_WIDTH)), int(capture.get(cv2.CAP_PROP_FRAME_HEIGHT)))out cv2.VideoWriter(video_save_path, fourcc, video_fps, size)fps 0.0while (True):t1 time.time()# 读取某一帧ref, frame capture.read()# 格式转变BGRtoRGBframe cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)# 转变成Imageframe Image.fromarray(np.uint8(frame))# 进行检测frame np.array(yolo.detect_image(frame))# RGBtoBGR满足opencv显示格式frame cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)fps (fps (1. / (time.time() - t1))) / 2print(fps %.2f % (fps))frame cv2.putText(frame, fps %.2f % (fps), (0, 40), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)cv2.imshow(video, frame)c cv2.waitKey(1) 0xffif video_save_path ! :out.write(frame)if c 27:capture.release()breakcapture.release()out.release()cv2.destroyAllWindows()elif mode fps:test_interval 100img Image.open(img/street.jpg)tact_time yolo.get_FPS(img, test_interval)print(str(tact_time) seconds, str(1 / tact_time) FPS, batch_size 1)else:raise AssertionError(Please specify the correct mode: predict, video or fps.)最后计算机视觉、图像处理、毕业辅导、作业帮助、代码获取私聊会回复!↓↓↓↓↓↓
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/923098.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!