本次学习任务主要如下:
- 赛题了解
- 视频处理方法和目标检测模型了解
- 算力云平台的使用
1 赛题了解
参与的比赛:2024“大运河杯”数据开发应用创新大赛——城市治理 网址:MARS大数据服务平台
选择的赛道是城市违规行为的智能检测,要求选手研究开发高效可靠的计算机视觉算法,提升违规行为检测识别的准确度,降低对大量人工的依赖,提升检测效果和效率,从而推动城市治理向更高效、更智能、更文明的方向发展,为居民创造一个安全、和谐、可持续的居住环境。
初赛提供城管视频监控数据与对应违规行为标注。违规行为包括垃圾桶满溢、机动车违停、非机动车违停等。
视频数据为mp4格式,标注文件为json格式,每个视频对应一个json文件。
json文件的内容是每帧检测到的违规行为,包括以下字段:
- frame_id:违规行为出现的帧编号
- event_id:违规行为ID
- category:违规行为类别
- bbox:检测到的违规行为矩形框的坐标,[xmin,ymin,xmax,ymax]形式
标注示例如下:
[ { "frame_id": 20, "event_id": 1, "category": "机动车违停", "bbox": [200, 300, 280, 400]
},
{
"frame_id": 20,
"event_id": 2,
"category": "机动车违停",
"bbox": [600, 500, 720, 560]
},
{
"frame_id": 30,
"event_id": 3,
"category": "垃圾桶满溢",
"bbox": [400, 500, 600, 660]
}
]
违规行为示例如下:
垃圾桶满溢
机动车违停
非机动车违停
2 视频处理方法和目标检测模型了解
2.1 视频处理方法
深度学习模型是对图片进行的检测,因此,要想对视频进行处理,则需要进行抽帧,对每一张图片进行目标检测,最后对处理后的图片进行合帧。在视频和图片的相关操作中,主要使用到python库opencv。
# 读取到视频的每一帧
cap = cv2.VideoCapture(video_path)
ret, frame = cap.read()
2.2 目标检测模型
本次使用的目标检测模型为Yolov8,通过已经封装好的python库ultralytics,调用YOLO模型,预训练模型使用到官网所给的yolov8n.pt,如下:
from ultralytics import YOLO
model = YOLO("yolov8n.pt")
results = model.train(data="yolo-dataset/yolo.yaml", epochs=2, imgsz=1080, batch=16)
3 算力云平台的使用
算力云平台提供强大的计算资源服务,适用于各种计算密集型任务,如大数据分析、深度学习训练等。国内常见的大平台有阿里云、腾讯云、华为云、京东云等等,本次学习任务主要使用了厚德云,它是专业的AI算力云平台,为用户提供稳定、可靠、易用、省钱的A I算力解决方案及生态服务。海量AI算力资源,就在厚德云。厚德云-专业 AI 算力云⎮GPU算力租赁首选厚德云
(1)注册、登录并租用NVIDIA 4090
(2)资源下载
apt install git-lfs
git lfs install
git clone https://www.modelscope.cn/datasets/Datawhale/AI_Camp5_baseline_CV.git
(3)运行所给baseline
(4)提高结果,获取分数