参加江大白手把手教你-----AidLux智慧安防AI训练营

本次大作业是⼈体检测+⼈体追踪+业务逻辑

一、人体检测,首先先要训练一个识别人体的模型,我们这里选用的是yolov5n网络模型,主要操步骤如下

1.下载人体数据集,然后转换为yolo网络的数据集格式,这里是将annotation_val.odgt->xml(在这一步可以用labelimg查看一些图片,看框标的对不对)->txt,其中txt中是人体框的中心坐标和宽高,都是归一化的。

2.划分数据集和训练集,按照8:2的⽅式来切分,即80%是训练集,20%是验证集,也可以按照别的比例。

3.修改data/person.yaml中训练数据位置,标注种类nc:1,标注名字names: ['person']

4.修改train.py中一些配置,如下图,别的修改看大家自己:

参加江大白手把手教你-----AidLux智慧安防AI训练营_第1张图片

5.接着就等训练完成出模型

二、⼈体追踪

其实我没接触过人体追踪,但是课堂上我知道了多⽬标跟踪算法,发展路径是:sort->deepsort->bytetrack

这个多目标跟踪算法,想详细了解还需要多读论文和开源代码,大白老师也提供了如下经典论文:

(1)带你⼊⻔多⽬标跟踪(⼀)领域概述

https://zhuanlan.zhihu.com/p/62827974

(2)带你⼊⻔多⽬标跟踪(⼆)SORT&DeepSORT

https://zhuanlan.zhihu.com/p/62858357

(3)带你⼊⻔多⽬标跟踪(三)匈⽛利算法&KM算法

https://zhuanlan.zhihu.com/p/62981901

(4)带你⼊⻔多⽬标跟踪(四)外观模型 Appearance Model

https://zhuanlan.zhihu.com/p/63189011

(5)ByteTrack: Multi-Object Tracking by Associating Every Detection Box阅读笔记

ECCV2022 ByteTrack: Multi-Object Tracking by Associating Every Detection Box - 知乎

三、业务逻辑

大白老师这里是统计经过一个人流线人的数量。具体操作步骤如下:

1. 先截取视频上一帧图片保存

# !usr/bin/env python
# -*- coding: utf-8 -*-
import csv
from cvs import *
import cv2
from utils import process_points

# ### 保存图片 ###
cap = cvs.VideoCapture("/mask.mp4")
frame = cap.read()
cv2.imwrite("/saveImage.jpg",frame)
cap.release()
cvs.destroyAllWindows()

 2.后通过画图或者读图软件找到想画线段位置的两个断点坐标:

参加江大白手把手教你-----AidLux智慧安防AI训练营_第2张图片

3.通过步骤2中记录的位置,在视频上画出位置(这里我绘制的是从上往下的直线,颜色为绿色):

4.我们是要统计经过上图绿色线的人数,并把结果发生到微信上,这里是借助于“喵提醒”这个公众号(大白老师也是详细讲解了怎么注册使用)

# 5.越界识别+喵提醒
# 填写对应的喵码
id = 'tP48aPC'
# 填写喵提醒中,发送的消息,这里放上前面提到的图片外链
text = "有人越界识别!!"
ts = str(time.time())  # 时间戳
type = 'json'  # 返回内容格式
request_url = "http://miaotixing.com/trigger?"
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.47'}
result = requests.post(request_url + "id=" + id + "&text=" + text + "&ts=" + ts + "&type=" + type,headers=headers)

 5.这里我把文件中需要修改的参数提取出来,也把功能放到了一个方法里

if __name__ == '__main__':
    inModelPath = '/lesson5_codes/aidlux/yolov5n_best-fp16.tflite'
    inVideoPath = '/mask.mp4'
    miaoId = 'xxx' # 填自己的喵提醒码
    CountPersonNum(inModelPath, inVideoPath, miaoId)

 6.接着把代码上传到手机,然后借助于vscode远程调试代码,就可以在AidLux软件上看到效果了。

以下是截图效果,下图两个箭头分别是统计人数,和运行完通过喵提醒发生给微信。

以下是运行视频效果:

完整视频-CSDN直播

多目标跟踪业务逻辑_哔哩哔哩_bilibili

完整代码地址:GitHub - HonestyBrave/objectTrackerAndCountNum: 这个仓库是利用yolov5n网络模型,利用训练好的行人检测模型进行检测行人,然后再利用BYTETracker算法进行多目标跟踪,然后统计经过某个区域的人数,最后发送到手机

其中,所用视频在lesson5_codes/video目录下,模型在/lesson5_codes/aidlux/yolov5n_best-fp16.tflite目录下。

参加训练营心得:

一直关注江大白的个人公众号,也有幸能加到他的微信,后来在他公众号上发现了他开设的《AidLux智慧安防AI训练营》,大白的能力是不用怀疑的,这里还是手把手,果断参加。大白的训练营方式很特别,是采用文字+图片的直播方式。很能理解大白的用心,因为视频一句话可能不经意听就过去了,但是文字+图片可以很直观看。

训练营共六节课,第一节课比较轻松,后面在第二和第五次课分别有一个作业。这两个作业其实只要认真看大白的讲解,可以说,任何一个无基础的人都可以完成作业。因为大白老师讲解的太细了,真的是保姆式教程。点赞。

第二次课作业是用大白老师给的数据集,然后基于yolov5n网络训练一个行人识别。训练就要用到GPU,有些人没有GPU,大白训练营还提供一个AutoDL AI算⼒云,官⽹链接是:https://www.autodl.com/,给大家免费训练。很用心!在这个训练过程中,其实数据上传是比较费时间的,别的还好,因为数据的转换,模型怎么训练,大白老师都讲的很仔细,服务器上的Pytorch环境都是现成的,可能需要pip一些库,不过还是很快的。

第五次课的作业是⼈体检测+⼈体追踪+业务逻辑,完成⼈流统计的业务功能。其实我是做目标检测的,对于目标跟踪和业务逻辑这是我的空白。但是在第四节课大白老师细心讲解了目标追踪的一些主流框架和难点,以及在第五节课讲解了业务逻辑,让我收获颇多,特别是目标追踪,在这里很感谢大白老师的课程!

虽然短短五节课程+一节毕业典礼,收获很多,对AI能做的事和业务逻辑有了个大概的框架。不过这里很佩服大白,很细心,而且每节课的内容都是上课前花费了很多时间来准备,大家不要觉的课程内容简单,但是每一步都很细,让人能够懂,这是很需要花费精力的,再次为大白点赞,也感谢AiLux开发了这么好的软件,省去了写App和编译库等很多步骤,让算法人员可以直接调试,看效果。可以让我们把手机作为边缘设备,这样可以直接电脑上远程调试手机,看到实际效果!!!

通过课堂上下面这张图的学习,我知道了⽬标追踪算法的场景应⽤

参加江大白手把手教你-----AidLux智慧安防AI训练营_第3张图片

下面这张图,我知道了是哪些业务场景用到了AI算法功能。

参加江大白手把手教你-----AidLux智慧安防AI训练营_第4张图片

这里也感谢训练营里面小伙伴提供的行人视频网站:https://www.vcg.com/creative-video-search/xingren/ 

你可能感兴趣的:(图像识别与目标检测,图像处理,人工智能,深度学习,机器学习)