CV之目标检测模型初探(Datawhale X AI夏令营)

103 阅读3分钟

‌‌‌‌  本次学习任务主要如下:

  • 赛题了解
  • 视频处理方法和目标检测模型了解
  • 算力云平台的使用

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]
  }
 ]

违规行为示例如下:

img

垃圾桶满溢

img

机动车违停

img

非机动车违停

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 image.png

(2)资源下载

apt install git-lfs
git lfs install
git clone https://www.modelscope.cn/datasets/Datawhale/AI_Camp5_baseline_CV.git

(3)运行所给baseline image.png (4)提高结果,获取分数 image.png

后续目标是模型优化,提高分数