背景
导师给的一个项目任务,要求对卡口拍摄的车辆监控图片进行自动识别,识别目标包括:
- 车牌号
- 车辆颜色
- 车辆品牌,具体到如奥迪A6之类
- 驾驶人是否系安全带
- 是否贴有年检标志
- 等等……
相当有挑战性的任务,哈?
打算先实现相对简单一些的任务,如颜色、安全带等。至于车辆品牌识别,Whatever,能做到哪里算哪里了,品牌实在太多。
实验平台
开发平台使用Caffe,参考了博客小咸鱼_的实现(pretrained CaffeNet+finetune),本文主要在其基础上补充一些实现的细节。训练好的模型已经分享到百度云。
链接: https://pan.baidu.com/s/1eRSDFlo 密码: ahyx
1. 训练数据准备
在caffe/examples下建立目录car_color,并在其下面建立几个子目录:
car_color/data:存放训练和验证数据
car_color/models:存放prototxt和训练得到的模型
car_color/pre_train_models:存放预训练的CaffeNet
data目录
首先新建文件color_map.txt,存放待分类的颜色,这里我们划分了8种颜色:
black
white
red
blue
green
gray
yellow
brown
对每种颜色划分train和valid数据:
# ratio for train and valid data
train_ratio = 0.8
val_ratio = 0.2
if not os.path.exists('train/' + color):
os.makedirs('train/' + color)