基于AidLux+Android的智慧交通项目部署实战1

前面我们学习了aidlux的相关课程,并在课程的最后实现了人流统计算法的部署实战:道阻且长:人体检测+人体追踪的人流统计AI项目在android端部署落地的实战心得

车辆违规泊车可以参考:道阻且长:基于AidLux+Android的智慧交通项目部署实战2

现在利用自己的模型和应用场景简单实现一个车辆结构化项目,可以计算车流,识别车牌号,车身颜色,车的类型等,视频效果可以看:基于AidLux+Android的智慧交通项目部署实战1_哔哩哔哩_bilibili

代码思路:

1.车框信息:

1.前面我们都实现了人流统计,那么车辆统计只需要更改模型就能实现,根据前第三节课的内容把自己训练的车辆模型或者官方模型转换成tflite格式并加载使用,要注意因为输出不一样了,所以要更改输出,这里我用的coco数据集,将输出out_shape改成[1* 25200 * 85*4],数据维度转换改成(1,25200,85)[0]

2.获取coco数据集中的车辆框结果,包含行人框,一共是pred[0], pred[1], pred[2], pred[3], pred[5], pred[7],分别代表coco_class的'person', 'bicycle', 'car', 'motorcycle', 'bus', 'truck'。

2.车流统计:

1.取出所有的框信息后照着人流统计的方法去跟踪统计就好了。

3.车牌号识别:

1.前面我们获取到了车辆框信息,现在可以利用车辆框信息找到车牌位置并识别出车牌。

以下是在aidlux平台投影到网页端的效果,非常方便友好,编辑操作文件时很方便,也方便模型迁移调试以及部署等操作。

可以在aidlux的网页端查看效果,非常方便模型部署到android

2.这里为了识别车牌更准确,不能直接识别,应该把车辆全部截取下来,然后挨个识别才能达到比较好的效果,车牌识别大家可以去训练模型,也可以直接用hyperlpr包,都能达到不错的效果。

获取车辆框截图并识别车牌信息

3.车牌号识别一般有中文,但是opencv不太支持中文库,这时候可以利用PIL 工具包:

4.车颜色识别:

1.前面我们获取到了车辆框,可以利用该博主的方法计算出车身颜色:http://t.csdn.cn/h3aWT

2.并且在计算出车辆信息时,我们已经获得了车辆类别信息。

5.车信息绘制:

1.前面我们获取到了车辆信息,现在就可以在获取的帧上绘制出来了,首先车辆框很好解决,车牌信息主要是要得到车牌相对原图的位置,这时候只需要将车牌在车辆框中的坐标加上车辆框左上角坐标即可

绘制信息代码参考:

应用场景:

在该视频中效果车牌号识别效果并不是很好,这是因为我没有找到合适的视频测试,视频中的摄像头距离太远了导致车牌号识别不准确,所以该应用适合商场,园区的卡口,近距离识别效果不错,感兴趣的朋友可以用自己的手机试试aidlux部署。在aidlux平台测试的性能不错,速度非常快,完全够实际应用。

获得车辆的一系列信息后,我们就可以利用这些信息做一些应用方面的操作。

?

多谢