2024“大运河杯”数据开发应用创新大赛——城市治理 [Datawhale AI 夏令营]


赛题

赛题源自 2024“大运河杯”数据开发应用创新大赛——城市治理
简单而言,利用已有标注的违规(违规行为包括垃圾桶满溢、机动车违停、非机动车违停等)视频数据来有效对未标注视频标注,赛题提供了以下三个数据集:
训练集(有标注)、
训练集(无标注)、
测试集。

数据处理

由于视频数据为mp4格式,标注文件为json格式,每个视频对应一个json文件,需要将mp4等视频有效文件转化为图片形式保存(下面代码中给出作为train数据具体的注释和注意事项,val数据也类似):

import os, sys
import cv2, glob, json
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

anno_df = pd.read_json(anno_path)
# 读取json文件
cap = cv2.VideoCapture(video_path)
# 同时读取视频文件

### 这里需要自定义读取多少内容作为trai样本
frame_idx = 0 
while True:
	ret, frame = cap.read()
	# 帧图片流
	if not ret:
	   break
	
	img_height, img_width = frame.shape[:2]
	        
	frame_anno = anno_df[anno_df['frame_id'] == frame_idx]
	cv2.imwrite('./dataset/train/' + anno_path.split('/')[-1][:-5] + '_' + str(frame_idx) + '.jpg', frame)

    if len(frame_anno) != 0:
    with open('./dataset/train/' + anno_path.split('/')[-1][:-5] + '_' + str(frame_idx) + '.txt', 'w') as up:
         for category, bbox in zip(frame_anno['category'].values, frame_anno['bbox'].values):
               category_idx = category_labels.index(category)
                    
               x_min, y_min, x_max, y_max = bbox
               x_center = (x_min + x_max) / 2 / img_width
               y_center = (y_min + y_max) / 2 / img_height
               width = (x_max - x_min) / img_width
               height = (y_max - y_min) / img_height

               if x_center > 1:
                    print(bbox)
               up.write(f'{category_idx} {x_center} {y_center} {width} {height}\n')
        
    frame_idx += 1

模型使用

YOLOv8 是 ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本,支持图像分类、物体检测和实例分割任务。
具体模型如下:

yolo

图1. YOLOv8架构

YOLOv8有以下几个版本:

YOLOv8版本

图2. YOLOv8版本及参数说明 同时,在训练时涉及众多参数,官网提供给的部分参数如下:

在这里插入图片描述

图3. YOLOv8参数说明

以yolov8n(其中,yolov8n.pt需要下载)为例,具体配置如下官方说明

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"

import warnings
warnings.filterwarnings('ignore')

from ultralytics import YOLO
model = YOLO("yolov8n.pt")

model=YOLO('yolov8n.pt')
results = model.train(data="dataset/yolo.yaml", epochs=5, imgsz=1080, batch=32,plots=True)

训练完后即可测试结果。

参考文献

  1. 2024“大运河杯”数据开发应用创新大赛——城市治理
  2. https://github.com/ultralytics/ultralytics
  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值