精华内容
下载资源
问答
  • 交通标志识别

    万次阅读 2017-05-17 21:00:00
    交通标志识别,采用GTSRB数据集MCDNN多列卷积神经网络进行识别实验。

    交通标志识别实际上包括交通标志的检测和识别两个过程,检测是在图像中寻找到感兴趣目标并定位,识别是对感兴趣目标进行分类。现在R-CNN系列、YOLO、SSD能够很好的将检测和分类两个过程融合到一起,并且在PASCAL VOC等数据集上取得了很好的效果,但对像交通标志这种小目标的检测效果并不好。就交通标志检测而言,如果在Faster RCNN的anchor中,将scale调小一点,ratio调下再做训练,是可以很好的检测到图像中尺寸较小的交通标志;也可以训练级联CNN,将目标检测问题转化为分类问题。传统的检测方法中,可以人工设计特征来检测感兴趣目标,例如可以利用交通标志的颜色和形状等信息来检测并定位到交通标志;然后对检测到的标志进行识别或分类,判断它是哪种交通标志。
    我们暂时先不考虑检测问题,先做分类实验。利用卷积神经网络来试试交通标志识别的效果如何。
    The German Traffic Sign Recognition Benchmark是IJCNN 2011举办的一个图像分类挑战赛,其提供了GTSRB数据集,共包含了43类交通标志,训练样本39209张,测试样本12630张。提供的样本图像中包含了标志区域及其周围10%的区域(这是为采用边缘方法者所考虑),样本图像尺寸范围为15x15到250x250,当然它不一定是正方形。
    这里写图片描述
    该挑战赛的冠军是IDSIA团队所采用的Multi-column Deep Neural Network即多列深度神经网络的方法来进行交通标志识别,最后在43类交通标志的识别准确率达到了99.46%,超过了人类表现的98.84%。该方法采用了25个具有完全相同网络结构的DNN(实际上是总共9层的卷积神经网络) Paper地址
    这25个DNN分别对应了五种输入数据,包括原图像以及原图经过四种不同的预处理后得到的图像共五种;然后每种都采用五个不同的随机网络初始值来训练,得到网络结构和参数相同但训练得到的网络权重不同的DNN模型。
    测试时将每张图像做四种预处理得到共五张输入图像,再将每张图象都送入到其对应的五种网络初始值不同的DNN中,然后将求得的共25个分数做平均得到最后的识别结果。
    其DNN结构实际上是在三个卷积层后面跟上两个全连接层做分类,输入图像固定尺寸为48x48。GTSRB数据集下载地址如下,分别下载训练集和测试集。数据集下载地址
    下载得到的GTSRB数据集的格式是ppm格式,需要转换成jpg格式。注解标签存放在csv文件中,包括了位置标签(包围标志的最小矩形框位置)和类别标签,通过位置标签进行裁剪并缩放到固定尺寸,固定尺寸大小48x48,下图为裁剪缩放后测试集的部分图像,有的标志人眼都很难分辨,若将其进行直方图均衡等预处理则可能会更容易识别。IDSIA团队采用的多列DNN方法所达到的99.46%的超过人眼的识别水平确实很高。
    接下来我们来做交通标志的识别实验,暂时先不考虑多列问题。这里提供 项目下载地址
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    1.数据集准备

    暂时先不考虑数据增广(后面会提到有关预处理)。
    如果你对数据集的制作不感兴趣,可以跳过后面的制作过程,项目中提供已经转换好的可以直接作为caffe输入,解压‘GTSRB数据集’文件夹,包含了tran_lmdb文件夹、val_lmdb文件夹和mean.binaryproto文件,将上述三个文件放在data\gtsrb文件夹下
    这里写图片描述
    下面简单介绍数据集的制作过程。
    由于GTSRB提供的下载数据集格式是ppm格式,需要转化成jpg格式,数据集中的图像是带有周围背景的,需要根据提供的csv文件裁剪出感兴趣区域即最小包围框,然后缩放到固定尺寸(这一步也可以在用caffe转换成lmdb格式时来归一化尺寸)。可以用下图所示的matlab脚本实现之,包括如何读取csv中图像标签信息、转换PPM文件为jpg格式,三种图像预处理(后面会提到),以及生成train.txt、val.txt。
    这里写图片描述
    这里也提供转化后的图片数据集以及制作好的类别标注文本,下载链接,解压得到‘GTSRB数据集’文件夹,将其放在data\gtsrb目录下。需要注意的是,如果是在windows下使用caffe,train.txt中的’/’要替换成反斜杠’\’。
    这里写图片描述
    这里写图片描述
    这样就准备好了训练和测试数据集以及对应的train.txt、val.txt。
    因为博主的前期预处理在windows下进行的,所以只介绍windows系统下转化成lmdb文件。首先在caffe-master/data/gtsrb目录下新建了一个create_gtsrb.txt,打开后加入以下代码,其中包括了转化训练集、测试集(直接将测试集作为验证集,在验证模型好坏的同时得到测试效果)、生成均值向量文件三个过程,关闭保存,修改后缀名为.bat得到create_gtsrb.bat文件,直接双击执行就可以了。完成后会发现data/gtsrb文件夹下多出了tran_lmdb文件夹、val_lmdb文件夹和mean.binaryproto文件。

    2.训练卷积神经网络

    在models\gtsrb文件夹下,准备好网络模型文件train_val.prototxt、训练超参数文件solver.prototxt,测试时还需要用到deploy.prototxt,需要注意的是不要在prototxt中对样本进行镜像。卷积神经网络结构如下图:
    这里写图片描述
    经过多次调整参数实验后确定,我的训练超参数solver.prototxt文件内容如图,学习率0.001,步进式衰减,4000次迭代衰减10倍,最大迭代20000次,train_val.prototxt中训练集和验证集batchsize分别为50和20,test_iter为632次(12630/20),每次20个刚好能覆盖12630个测试样本,每5000次打印一次快照。
    这里写图片描述

    3 实验初步效果

    以不做预处理的原图训练单列DNN最后的测试(验证),迭代20000次后,准确率可以达到96%左右,由于随机初始化最后的结果会稍有差异。
    

    这里写图片描述
    下图给出了部分识别出错的标志图像,可以发现,部分图像中标志人眼很好识别但算法识别出错,说明网络在极端情况还有提升空间,还有一些倾斜严重、图像质量太差、最小包围框不够准确等情况。
    这里写图片描述

    4 实验改进

    考虑两种改进思路:
    (1)对数据集进行数据增广,例如部分交通标志具有水平镜像或垂直镜像的不变性,还可以对训练样本图像随机旋转一个较小的角度来应对真实场景下图像中的标志倾斜问题(上图中就有因标志倾斜而出现识别出错),训练耗时增加而测试时耗时不变,泛化能力提高。
    (2)采用多列深度网络的思路,对原始数据集进行多种预处理得到多个数据集,对每个数据集采用同样的网络结构进行训练,在测试时对测试图像进行多种预处理,分别送入到各自的卷积神经网络中,最后将输出结果取平均。

    博主首先对数据进行了增广,对具有水平镜像或垂直镜像的不变性的标志进行了镜像,对所有标志额外进行了随机旋转某个小角度,单列DNN的测试结果提高到96.79%。
    然后采用了原数据集和经过三种预处理(图像调整、直方图均衡、自适应直方图均衡)共四种数据源,每种采用两个不同初始化的DNN网络构成了的8列DNN,对8列DNN求平均的结果作为输出,最后将准确率提高到了97.88%(也牺牲了速度),12630张测试图像中有268张识别出错,相比于人类表现还有一段距离。
    其中在做图像预处理时,对彩色图像进行对比度拉伸、直方图均衡化和自适应直方图均衡化,实际上先将RGB空间转换到Lab颜色空间,其中L为图像亮度,取值范围0~100,表示从纯黑到纯白,然后对亮度通道L进行对比度拉伸、直方图均衡化和自适应直方图均衡化,然后再转回到RGB空间。
    另外也曾尝试在网络中加入Relu层、Norm层和dropout层但效果均不理想,大家也可以试试改改网络参数来刷准确率。

    展开全文
  • TSR交通标志检测与识别

    千次阅读 2020-03-11 10:12:37
    TSR交通标志检测与识别 说明: 传统图像处理算法的TSR集成在在ARM+DSP上运行,深度学习开发的TSR集成到FPGA上运行。 输入输出接口 Input: (1)图像视频分辨率(整型int) (2)图像视频格式(RGB,YUV,MP4等) ...

    TSR交通标志检测与识别

    说明:

    传统图像处理算法的TSR集成在在ARM+DSP上运行,深度学习开发的TSR集成到FPGA上运行。

    输入输出接口

    Input:

    (1)图像视频分辨率(整型int)

    (2)图像视频格式(RGB,YUV,MP4等)

    (3)摄像头标定参数(中心位置(x,y)和5个畸变

    系数(2径向,2切向,1棱向),浮点型float)

    (4)摄像头初始化参数(摄像头初始位置和三个坐标方向

    的旋转角度,车辆宽度高度车速等等,浮点型float)

    Output:

    (1)BandingBox左上右下的坐标位置(浮点型float)

    (2)Type类型:人,车,…,… (整型int)

    (3)执行度:是指判别目标物为某种类型的比率。

    比如为人,车,…,…的比率。(浮点型float)

    (4)需要遮挡目标区域的左上右下的坐标位置(浮点型float)

    (5)摄像头与目标物距离 (浮点型float)

    1. 功能定义

    检测道路上的交通标牌,根据需要进行分类。

    功能模块包括TSR的坐标位置,IOU比率,摄像头与TSR的距离等等。

    (1)辅助驾驶。交通标志识别的概念最早就是作为辅助驾驶工具被提出的。TSR系统在识别交通标志后,客队驾驶员进行语音和视频等方式的提醒,甚至可以在必要时候对车辆驾驶系统直接做出控制,从而确保驾驶安全。

    (2)交通标志维护。由于交通标志通常放置于室外环境中,受自然环境(如风吹雨淋)及人为因素(如涂抹)影响,难免出现褪色,变形甚至堕落失踪现象,需要进行定期检查维护。通常,这一工作需安排专人专岗,工作量巨大且很难保证实时性和准确性。显然,一个有效的TSR系统是完成这一工作的理想方案。

    (3)无人驾驶。无人驾驶汽车在今年收到越来越多的关注。从上世纪90年代起,国内外相继研发出了一系列无人驾驶汽车,其智能化逐渐提高,能够自动规划路线,避让障碍物等。使无人驾驶汽车具备辨认交通标志的能力交通标志的能力显然是使其实用化的一个重要步骤。

    技术路线方案

    组成结构

    交通标志颜色外观

    一般情况下交通标志颜色的基本含义如下:

    a. 红色:表示禁止、停止、危险,用于禁令标志的边框、底色、斜杠,也用于叉形符号和斜杠符号、警告性线性诱导标的底色等。

    b. 黄色或荧光黄色:表示警告,用于警告标志的底色。

    c. 蓝色:表示指令、遵循,用于指示标志的底色;表示地名、路线、方向等行车信息,用于一般道路指路标志的底色。

    d. 绿色:表示地名、路线、方向等行车信息,用于高速公路和城市快速路指路标志的底色。

    e. 棕色:表示旅游区及景点项目的指示,用于旅游区标志的底色。

    f. 黑色:用于标志的文字、图形符号和部分标志的边框。

    g. 白色:用于标志的底色、文字和图形符号以及部分标志的边框。

    h. 橙色或荧光橙色:用于道路作业区的警告、指路标志。

    i. 荧光黄绿色:表示警告,用于注意行人、注意儿童警告标志。

    交通标志的形状一般使用规则如下:

    a. 正等边三角形:用于警告标志;

    b. 圆形:用于禁令和指示标志;

    c. 倒等边三角形:用于“减速让行”禁令标志;

    d. 八角形:用于“停车让行”禁令标志;

    e. 叉形:用于“铁路平交道口叉形符号”警告标志:

    f. 方形:用于指路标志,部分警告、禁令和指示标志,旅游区标志,辅助标志,告示标志灯。

    交通标志照明标识

    a)
    内部照明标志

    标志板内装照明装置,采用半透明材料制作标志面板,有单面显示和两面显示两种。内部照明标志可根据标志板的大小,承受的风力进行结构设计。确保标志面照度均匀,在夜间具有150m 的视认距离。灯箱结构合理,金属构件经防腐处理,防雨防尘,电器元件耐久可靠,检修方便。

    b)
    外部照明标志

    外部光源照亮标志面的方式。

    外部照明标志的光源应进行专门设计。照明灯具及其影阴不能影响标志认读。外部光源在标志面上的照度不得有明显不均匀,均匀度(最大照度/最小照度)须在4 以下,确保在夜间具有150m
    的视认距离。外部照明光源不能给路上司机造成眩目。

    支撑灯具的构件应进行防锈处理,照明器件耐久可靠,性能优良,检修方便。

    交通标志板可采用铝合金板、挤压成型的铝合金型材、薄钢板、合成树脂类板材等制造,所用材料应符合现行《公路交通标志板》( TI’/T 279 )的规定,厚度应根据计算确定。

    交通标志支撑结构

    (1)交通标志立柱、横梁等可采用钢管、H型钢、槽钢及钢筋混凝土等材料制作,钢管顶端应设置柱帽。钢构件应进行防腐处理。

    (2)交通标志应设置钢筋混凝土基础,位于桥梁段的单柱式交通标志可采用钢结构附着在桥梁上。

    结构设计

    1)设计基本风速应采用当地平坦空旷地面,离地面lOm高,重现期为50年lOmin平均最大风速值,并不得小于22m/s。

    2)交通标志结构应按承载能力极限状态和正常使用极限状态进行设计,并应同时满足构造和工艺方面的要求。

    3)交通标志的结构重要性系数可分为两个等级:

    (1)位于高速公路、一级公路七的悬臂式、门架式交通标志,结构重要性系数

    (2)位于高速公路、一级公路上的其他类型的交通标志及位于其他等级公路上的交通标志,结构重要性系数Y=0.9。

    4)交通标志结构的荷载计算与组合、极限状态设计方法、地基基础的设计应符合现行《公路桥涵设计通用规范》( JTC D60 )、《公路桥涵地基与基础设计规范》(JTJ 024)、《钢结构设计规范》(JB 50017)和《道路交通标志和标线》( JB 5768)等的规定。

    交通标志制作材料

    (1)公路交通标志板均应采用符合现行《公路交通标志反光膜》(GB/T 18833)要求的反光膜或其他逆反射材料制作。

    (2)交通标志板采用反光膜材料时,高速公路、一级公路上宜采用一、二级反光膜,二、三级公路的交通标志宜采用三、四级反光膜,四级公路宜采用四、五级反光膜。

    (3)门架、悬臂型等悬空类交通标志,宜采用比路侧交通标志等级高的反光膜。

    (4)在保证均匀性和条件容许时,可以采用照明或发光二极管增加重要标志的视认效果。

    a)
    反光材料的种类及性能

    用于标志面的反光材料按其结构的不同可以分为透镜埋入型、密封胶囊型、微棱镜型等品种。其反光原理为:射向标志面的光线应沿入射光线的反方向反回光源。由于标志位置和车辆行驶条件的不同,用于标志面的反光材应具有优良的广角性和逆反射性能。在不同入射角(汽车前照灯光线与标志表面法线之间的夹角)、不同观测角(汽车前照灯光线与标志反射回驾驶者眼睛的光线间的夹角)的条件下,用于标志面的反光膜的逆反射系数值应符合JT/T279 的规定。

    b)
    反光材料的应用与选择

    1) 各级道路的交通标志原则上均应采用反光材料制作标志面。

    2) 高速公路、一级公路及城市主干路的交通标志宜采用一~三级反光膜;二、三级公路及一般城市道路的交通标志宜采用四级以上的反光膜。四、五级反光膜可用于四级公路和交通量很小的其他道路。

    3) 高速公路、一级公路、城市快速路上的曲线段标志,及城市地区的多路交叉路口,宜采用三级以上反光材料。

    4) 高速公路、城市快速路上的门架标志和悬臂标志,为获得与路侧标志相当的反光效果,宜选用比路侧标志所用反光膜等级为高的反光材料,或把门架标志和悬臂标志上的字符改用反射器,以改善其夜间视认性。在有条件的重要路段,也可采用照明标志。

    c)
    交通标志的颜色规定及参考相关色样。

    交通标志技术要求

    交通标志指导思想

    1)交通标志应体现公路及周边路网的特点,使驾驶员准确确定自己所处的位置、找到正确的目的地,并对路网中的交通量进行合理分配;

    2)交通标志应能加强驾驶员安全行车的意识;

    3)交通标志应容易识别、易于理解;

    4)交通标志的设置应系统、连续、均衡、避免信息过载;

    5)动态交通标志的设置不应妨碍静态交通标志的使用。

    6)收集公路的道路、交通、气象、环境及周边路网等基础资料;

    7)确定公路交通标志的实施标准、规模;

    8)从安全、环保、技术、经济、美观等方面进行方案比较,选择最佳方案。

    交通标志设置原则

    1)公路交通标志的设置,应以不熟悉

    在这里插入图片描述

    图1. 交通标志设置

    周围路网体系的公路使用者为设计对象,综合考虑周边路网与公路条件、交通条件、气象和环境条件等因素,制定合理的设置标准,根据各种交通标志的功能和驾驶人员的行为特征进行合理设置。

    2)对二级及以上等级的公路和其他等级的国、省道公路应优先设置指路标志,其他公路或未设置相关指路标志的公路,经论证可设置必要的警告标志。禁令标志应设置在交通法律、法规发生作用的地点附近醒目的位置,并应避免与其他交通标志的互相影响。限速标志应根据不同路段的通行能力、车型构成比例、车辆的运行速度等分段进行设置。

    3)在选择路网中指路标志标示的目的地信息时,应根据路网密度、公路等级、公路功能、目的地知名度等进行统一考虑。不同种类的交通标志信息应互相呼应,不得出现信息中断。

    4)交通标志沿公路纵、横向设置的位置应符合现行《道路交通标志和标线》( GB5768)的规定。位于高速、一级公路路侧安全净区内的交通标志应根据标志结构规格采用解体消能结构或设置护栏加以防护,位于其他公路路侧安全净区内的交通标志宜进行必要的诱导。

    5)公路交通标志的任何部分不得侵入公路建筑限界以内,路侧柱式交通标志的安装高度应考虑其板面规格、所在位置的线形特点和地形特征、是否有行人通行等因素,悬臂、门架式等悬空标志净空高度应较公路净空预留20-50cm的余量。

    6)交通标志安装时,标志板面的法线应与公路中心线平行或成一定角度。路侧安装的禁令标志和指示标志为0°-45°,指路标志和警告标志为0°-10°。悬臂、门架或附着式悬空标志安装时,标志的安装角度应与道路中心线垂直或前倾0°-10°。

    交通标志设计原则

    (1)应正确处理颜色、文字、箭头、编号、图形及边框的关系,使标志版面清晰、美观;

    (2)同类交通标志应采用同一类型的标志版面;

    (3)门架式交通标志的各交通标志板宜统一高度、统一边框规格。

    交通标志主要种类

    交通标志的支撑方式可分为柱式、悬臂式、门架式、附着式四种。

    交通标志支撑方式应根据交通量、车型构成、车道数、沿线构造物分布、

    在这里插入图片描述

    图2. 实际交通标志示例

    支撑方式

    风荷载大小以及路侧条件等因素综合确定。

    (1)警告、禁令、指示标志和小尺寸指路标志宜采用单柱式支撑方式,中、大型指路标志可采用双柱或多柱式支撑方式。

    (2)当符合下列条件时,根据需要可采用悬臂式或门架式等悬空支撑方式(版面内容少时,宜采用悬臂式):

    ①交通量达到或接近设计通行能力时;

    ②互通式立交的设计很复杂时;

    ③单向有三个或三个以上车道时;

    ④互通式立体交叉间距较近时;

    ⑤出口为多车道时;

    ⑥大型车辆所占比例很大时;

    ⑦穿越多个互通式立体交叉、为保持标志信息设置位置的一致性时;

    ⑧路侧安装空间不足或受遮挡时;

    ⑨连接两条高速公路之间的枢纽互通时;

    ⑩出口匝道为左向出口时;

    ⑧平面交叉口标志或位于互通式立体交叉减速车道起点处的出口预告标志。

    (3)公路沿线设置有上跨天桥等构造物,路侧设置有高挡土墙、照明灯杆等时,交通标志在满足公路建筑限界要求的前提下,可以采用附着式支撑方式。

    交通标志技术标准

    交通标志采用的颜色、形状、图形符号应符合现行《道路交通标志和标线》(GB5768)的规定。

    交通标志箭头规定

    指路标志上使用的箭头应以一定角度反映车辆的正确行驶方向。

    (1)门架式标志或跨线桥上附着式标志的箭头,用来指示车道的用途或行驶目的地时,箭头应向下,并指向该车道的中心线;用来指示出口方向时,箭头应倾斜向上,倾斜角度应能反映出口车道的线形。

    (2)路侧安装的指路标志,表示直行方向的箭头应指向上方,表示转向方向的箭头应与转向车道的线形保持一致。同时出现向上和向左、向右的三个箭头时,指向右侧的箭头应放置在最右侧,指向上、左的箭头应放置在最左侧。

    (3)箭头可以放置在主要标志文字的下方,或文字一侧的适当部位。

    交通标志文字规定

    公路的指路标志应采用汉字,根据需要可与其他文字并用。当标志采用中、英两种文字时,地名应用汉语拼音,专用名词应用英文。因版面规格限制时,部分英文可以采用缩写。

    交通标志尺寸规定

    警告、禁令、指示标志的板面尺寸和指路标志的文字高度,应由公路的设计速度决定,指路标志的板面尺寸,还应考虑字符数量、图形符号、其他文字和版面美化等因素,其他文字与汉字高度的关系,地点应放在最左侧,地名由近而远、从上到下排列。如果几个独立的标志板组成一组,则各板的长度应相同。地点、方向标志中,直行标志应设置在最上部,其下为向左、向右可以到达的地点。

    当路段运行速度与设计速度之差大于20}n/h时,宜按运行速度对交通标志的版面规格及视认性加以检验。

    交通标志有效功能

    交通标志的设置应考虑人的行为特征。人的行为在交通工程和道路安全中的作用主要表现在视觉信息、信息需求、信息处理等三个方面。

    视觉信息

    据估计,驾驶员在驾驶车辆行驶时所需要的信息中,占90%的为视觉信息。人的视觉特征如视野的深度、宽度,眼睛的移动、色彩的识别、亮度和眩光的影响、速度的判断等,是交通标志设置的基本考虑要素。

    信息需求

    对公路使用者来说,几乎所有的信息都是通过视觉的传递接收的,因此设置交通标志时,应注意其显著性、易理解性、可信性和定位性。

    信息处理

    驾驶员的驾驶任务包括获取信息、处理信息、选择行动方案、实施行动方案,并通过重复这一

    过程来观察决策的结果。

    由于人的行为的局限性和驾驶员、车辆和公路环境之间的关系使得上述过程非常复杂。设置交通标志时,还应考虑驾驶员的预期值、反应时间和短期记忆等特征。只有充分考虑公路使用者的行为特征,交通标志的设置才具有有效性。

    本条所指的“不熟悉周围路网体系的公路使用者”并不是说公路使用者对周围环坛无所知,而是指通过地图或其他查询手段,对前往的目的地和途经路线有所了解,然后肋交通标志的指引能够顺利抵达目的地。

    相关制作

    图案

    交通标志必须严格按本标准规定的图案按比例放大制作,不得任意修改图案。

    参数

    交通标志形状、尺寸、图案、文字应符合本标准的规定。标志板的制作应符合JT/T
    279的有关规定。

    检测

    厂商生产的交通标志需经持有CMA 标志的国家计量认证单位检测。

    交通标志作用

    (1)有利于调节交通流量、疏导交通,提高道路通行能力

    (2)预示道路状况,减少交通事故

    (3)节约能源,减少污染物

    汽车安全系统的交通标志识别系统,英文翻译为:Traffic Sign Recogni- tion,简称TSR,是利用前置摄像头结合模式,可以识别常见的交通标志(限速、停车、掉头等)。这一功能会提醒驾驶员注意前面的交通标志,以便驾驶员遵守这些标志。TSR 功能降低了驾驶员不遵守停车标志等交通法规的可能,避免了违法左转或者无意的其它交通违法行为,从而提高了安全性。这些系统需要灵活的软件平台来增强探测算法,根据不同地区的交通标志来进行调整。

    在这里插入图片描述

    图3. 告知限速、禁止超车信息,提高驾驶过程中的安全性及安心感

    有了TSR交通标识智能识别系统,能瞬间鉴别各种交通标识,并进行显示,提醒限速、禁止超车等行车信息。违章越来越少,安全越来越高。

    交通标志识别系统一般包括检测和识别两部分。检测一般是利用交通标志的形状和颜色特征,从自然场景中把交通标志提取出来。识别是把检测出来的交通标志的内容识别出来。交通标志识别在规范交通行为、确保安全驾驶等方面具有重要的意义。交通标志通常处于室外复杂的环境条件下,识别的过程中容易受环境光照、方向旋转的影响。

    交通标志识别系统是智能交通系统与先进辅助驾驶系统的重要组成部分,提高交通标志检测与识别算法的准确率和实时性是走向实际应用进程中需要解决的关键问题。算法的准确率是交通标志识别研究中一个十分重要的因素,错误的识别结果不仅不能起到辅助驾驶作用,还会导致严重的安全事故。而算法的实时性决定了研究成果能否转化为具有实际应用价值的产品。在汽车数量日益增加、交通安全事故居高不下,要求不断提升汽车的驾驶智能化的现实压力面前,开展以实时应用为目标的交通标志检测与识别技术研究,对于增加驾驶安全具有重大的意义。

    交通标志检测是进行交通标志分类的前提,同时还压缩了计算目标的空间,减少后续特征提取算法的运算量,还可以获得更高的识别准确率。在图像的特征提取领域,常见的特征提取与选择方法有:

    PCA主成分分析法
    
    
    Gabor特征提取算法
    
    
    SIFT特征提取算法
    
    
    SURF特征提取算法
    
    
    Haar小波特征提取算法/类Haar小波特征提取算法
    
    不变矩特征提取算法
    

    直方图特征提取算法

    交通标志分类与识别方法主要有:基于各种距离的模板匹配识别方法,基于大量数据样本的机器学习识别方法以及基于粒子群算法、遗传算法等智能算法的识别方法。

    交通标志是一种图形与文字相结合的公共标识,用图形符号和文字传递特定信息,用以管理交通,指示行车方向以保证道路畅通与行车安全的设施。有很显著的颜色和形状特征,起到指示,禁止和警示等作用。适用于公路,城市道路以及一切专用公路,具有法令的性质,车辆,行人都必须遵守。

    我国的交通标志有警告标志,禁令标志,指示标志,指路标志,指示标志,旅游去标志,作业区标志,告示标志,辅助标志8种。根据交通标志的颜色与形状的确定关系,我们可以对三种不同作用交通标志做进一步的分类,并且把颜色形状分类的结果作为先验知识用于交通标志的检测与识别中去。

    1)禁令标志:起到禁止某种行为的作用。共有43种。禁止或限制车辆,行人交通行为的标志。除个别标志外,颜色为白底,红圈,红杠,黑图案,图案亚杠;形状为圆形,八角形,顶角朝下的等边三角形。设置在需要禁止或限制车辆,行人交通行为的路段或交叉口附近。如图27所示的禁令标志,红色在自然环境下比较少见,故以红色作为特征颜色检测禁令标志通常具有较好的效果。

    2)警告标志:起警告作用。共有49种。警告车辆,行人注意危险地点的标志。颜色为黄底,黑边,黑图案,形状为顶角朝上的等边三角形。如图28所示的警告标志,由于外沿与图案的颜色均为黑色,某些图案面积较大的标志与外沿几乎相连,给检测带来一定困难。

    3)指示标志:起指示作用。共有29种。指示车辆,行人行进的标志。颜色为蓝底,白图案;形状分为圆形,长方形和正方形;设置在需要指示车辆,行人行进的路段或交叉口附近。如图29所示的指示标志没有特定的外沿颜色,某些标志的图案几乎将蓝底分为了几个部分,给检测带来一定困难。

    在这里插入图片描述

    图4. 禁止标志

    在这里插入图片描述

    图5. 警告标志

    在这里插入图片描述

    图6. 指示标志

    1. 关键技术参数和性能指标

    交通标志识别实际上包括交通标志的检测和识别两个过程,检测是在图像中寻找到感兴趣目标并定位,识别是对感兴趣目标进行分类。现在R-CNN系列、YOLO、SSD能够很好的将检测和分类两个过程融合到一起,并且在PASCAL VOC等数据集上取得了很好的效果,但对像交通标志这种小目标的检测效果并不好。就交通标志检测而言,如果在Faster RCNN的anchor中,将scale调小一点,ratio调下再做训练,是可以很好的检测到图像中尺寸较小的交通标志;也可以训练级联CNN,将目标检测问题转化为分类问题。传统的检测方法中,可以人工设计特征来检测感兴趣目标,例如可以利用交通标志的颜色和形状等信息来检测并定位到交通标志;然后对检测到的标志进行识别或分类,判断它是哪种交通标志。

    展开全文
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    -m,--mode=模式:自行设定权限模式 (chmod),而不是rwxr-xr-x。 -o,--owner=所有者:自行设定所有者 (只适用于超级用户)。 -p,--preserve-timestamps:以<来源>文件的访问/修改时间作为相应的...
  • ZF标志

    千次阅读 热门讨论 2018-01-17 14:21:58
    ZF标志标志位,记录相关运算的结果是否为0,如果为0—>zf=1,如果不为0—–>zf=0 比如:mov ax,1 sub ax,1 执行结果:ax=0,所以zf=1 注意: 在8086cpu指令集中,有些指令是不会影响psw的,这些指令多半是传送...

    ZF标志

    零标志位,记录相关运算的结果是否为0,如果为0—>zf=1,如果不为0—–>zf=0
    比如:

    mov ax,1
    sub ax,1
    执行结果:ax=0,所以zf=1
    注意:
    在8086cpu指令集中,有些指令是不会影响psw的,这些指令多半是传送指令(mov,push,pop),像运算指令,无论是逻辑运算还是算术运算(add,sub,mul,div,inc,or,and等)一般会影响psw。

    展开全文
  • 目录基本概念进程同步进程互斥软件实现方法单标志法双标志法先检查双标志后检查Peterson's Algorithm硬件实现方法中断屏蔽方法TestAndSet指令Swap指令信号量机制实现进程互斥实现进程同步实现前驱关系 早期的操作...


    早期的操作系统学习笔记📗

    主要参考来源

    操作系统_清华大学(向勇、陈渝)

    Operating systems: internals and design principles

    Operating System Concepts

    还有其余的一些网络博文


    博客记录

    操作系统-Operating-System第一章:概述

    操作系统-Operating-System第二章:启动、中断、异常和系统调用

    操作系统-Operating-System第三章01:计算机体系结构及内存分层体系

    操作系统-Operating-System第三章02:地址空间和地址生成

    操作系统-Operating-System第三章03:内存管理方式(连续内存分配)

    作为非科班,前两个月学习操作系统的时候由于很多知识点不是很了解,所以学习起来有点吃力。为打好基础,本人补习了一下《计算机组成原理》的相关知识,并在博客专栏中做了记录。事实证明,先学一点计组知识有助于理解《操作系统》这门课。

    《计算机组成原理》笔记可参考:计算机组成原理,博客内容如下:

    计算机组成原理-计算机硬件的基本组成

    计算机组成原理-计算机的功能部件及层次结构

    计算机组成原理-计算机性能指标

    计算机组成原理-数制与编码(进制转换)

    计算机组成原理-定点数的表示和运算

    计算机组成原理-浮点数的表示与运算

    计算机组成原理-算术逻辑单元ALU

    计算机组成原理-存储系统

    计算机组成原理-高速缓冲存储器

    计算机组成原理-指令系统 (指令、操作码、地址码、指令寻址、数据寻址)

    计算机组成原理-总线(系统总线、总线仲裁、总线操作和定时)

    Tips: 个人感觉学习完《计算机组成》和《操作系统》再去看《Java虚拟机》,也许会有更清晰的思路,而不是像大多数非科班一样直接背面筋,效果并不是很好。

    资源💾

    王道考研

    链接: https://pan.baidu.com/s/1Dsk6KjJEwBBgNGLFWrIQDQ 密码: nmo1

    英文书籍

    Operating System Concepts

    Operating systems: internals and design principles

    现在的操作系统学习笔记📗

    操作系统-处理机调度(调度层次、基本准则、先来先服务、最短作业优先、高响应比、时间片轮转、优先级调度、多级反馈队列)


    基本概念

    在多道程序环境下,程序的执行是「并发执行」的,不同的进程之间存在着不同的相互制约关系。而进程的并发需要共享的支持,而并发操作避免不了需要共享一些系统资源,例如内存、打印机、摄像头等I/O设备。

    两种资源共享的方式:

    资源共享
    互斥共享
    同时共享

    「互斥共享」:系统中的某些资源虽然可以提供给多个进程使用,但是同一个时间段内只允许一个进程访问该资源,该类型的资源叫做「临界资源」。

    「同时共享」:系统中的某些资源,允许一个时间段内,多个进程同时访问

    临界资源的访问过程可以分为4个部分:

    1. 进入区。进入临界区之前需要检查是否可以进入该区域。如果可以进入,则需要设置正在访问该资源的标志,防止其他进程同时进入。
    2. 临界区。进程中正在访问临界资源的那段代码,称为临界段或临界区。
    3. 退出区。将正在访问临界区的标志清除。
    4. 剩余区。代码中的其余部分。
    do{
        entry section; 		// 进入区
        critical section;   // 临界区
        exit section; 		// 退出区
        remainder section;  // 剩余区
    }while(true)
    

    进程同步

    「进程同步」是指直接制约关系,在多个进程中,相互之间存在着因为某些位置协调它们的工作次序而产生的制约关系。


    进程互斥

    「进程互斥」是指一种间接的制约关系。对于「临界资源」,在一个时间段只有一个进程可以去使用,例如许多物理硬件资源(摄像头、打印机),我们无法做到在一条电脑上同时进行qq和微信的视频聊天功能。当一个进程访问某临界资源的时候,另外一个想要访问该资源的进程必须等待。只有当前访问临界资源的进程访问结束并且释放该资源的时候,另外一个进程才可以访问该临界资源。

    为防止两个进程同时进入临界区,同步机制需要遵循以下的准则:

    1. 空闲让进。临界区空闲的时候,允许一个请求进入临界区的进程立即进入临界区。
    2. 忙则等待。如果有进程进入了临界区,其他试图访问临界区的进程必须等待。
    3. 有限等待。对于访问的进程,必须保证在有限时间内进入临界区。
    4. 让权等待。如果一个进程无法进入临界区,则需要释放处理机,防止进程处于忙等待情况。

    软件实现方法

    单标志法

    P0进程

    while(trun!=0);
    critical section;
    trun=1;
    remainder section;
    

    P1进程

    while(trun!=1);
    critical section;
    trun=0;
    remainder section;
    

    设置一个公共整型变量trun,代表是否允许进入临界区的进程编号。如果trun=0,则P0可以进入临界区,只要P0没有退出临界区,而另外一个进程将会一直停留在while循环,无法访问临界区资源。

    如果P0进程无法进入临界区,P1则也会无法进入(trun值未修改),出现临界区资源空闲的状态,违背了「空闲让进」原则

    如果P0进入临界区离开后,P1却没有进入临界区的打算,则trun始终无法修改为0,P0无法再次进入临界区。

    双标志法先检查

    P i P_i Pi进程

    while(flag[j]);①
    flag[i]=TRUE;③
    critical section;
    flag[i]=FALSE;
    remainder section;
    

    P j P_j Pj进程

    while(flag[i]);②
    flag[j]=TRUE;④
    critical section;
    flag[j]=FALSE;
    remainder section;
    

    基本思想:在每个进程访问临界区资源之前,先检查一下临界资源是否被其他进程占用,如果flag为true,则当前进程需要等待。flag[i]代表i进程是否访问临界资源,true代表正在访问,false代表未进入临界区。

    优点:不用交替的进入,两个进程在时间片轮转下并发执行,可以连续使用。

    缺点:如果并发过程中按照①②③④的顺序进行,此时有没进程访问临界区资源,则进程代码块会跳过while循环等待,会出现flag[i]=true并且flag[j]=true,则两个进程会同时进入临界区,违背了「忙则等待」的原则。主要问题来源于,在检查flag并切换自己flag之前有一段时间,导致两个进程都检查通过。

    双标志后检查

    P i P_i Pi进程

    flag[i]=TRUE;
    while(flag[j]);
    critical section;
    flag[i]=FLASE;
    remainder section;
    

    P j P_j Pj进程

    flag[j]=TRUE;
    while(flag[i]);
    critical section;
    flag[j]=FALSE;
    remainder section;
    

    双标志前检查是先检查对方的状态,再设置自己的状态。而双标志后检查是先设置自己的状态,表明自己想要进临界区的意愿,然后再进行检查其他进程的状态。在该算法下,两个进程都会表明自己想要进入临界区的意愿,但是在检查过程中发现,大家都想进去,两个进程都处于等待的状态,导致「饥饿」现象

    Peterson’s Algorithm

    P i P_i Pi进程

    flag[i]=TRUE;turn=j;while(flag[j] && turn==j);③
    critical section;
    flag[i]=FALSE;
    remainder section;
    

    P j P_j Pj进程

    flag[j]=TRUE;turn=i;while(flag[i]&&turn=i);④
    critical section;
    flag[j]=FALSE;
    remainder section;
    

    为了防止两个进程为了进入临界区而出现无限等待的现象,在设置一个变量turn,在设置该进程是否进入临界区的标志后,再设置turn标志。while()循环中,同时考虑另一个进程状态当前进程的不允许进入临界标志

    假如按照①②③④的顺序执行,则执行完①②后,flag[i]=TRUE, flag=TRUE, trun=i,此时遇到④是会一直处于循环状态的,而③可以顺利跳出while循环,进入临界区。利用trun值可以很好的解决「双标志后检查」算法引起的饥饿现象,Peterson算法是「单标志法」和「双标志后检查」算法的结合,利用flag解决临界资源的互斥访问,利用turn解决饥饿现象

    硬件实现方法

    中断屏蔽方法

    利用“开/关中断指令”的方式实现。和原语的实现思想类似,在整个指令执行过程中,不允许发生进程切换,因此不可能存在两个进程同时都在临界区的情况。

    ...
    关中断   ---->   关闭中断后,就不允许当前的进程被中断,也不会发生进程切换
    临界区
    开中断	  ---->   当前进程访问完临界区之后,开启中断,经过处理机调度,给需要访问临界资源的进程提供机会
    ...
    

    该方法简单高效,但是不适合多处理机,只适合操作系统内核进程,不适合用户进程(开/关中断指令只能在内核态运行),如果这组指令让用户随意使用会很危险,可能会影响整个CPU的调度。

    TestAndSet指令

    // 布尔型变量lock表示该临界区是否被加锁
    // true表示加锁,false表示未加锁
    bool TestAndSet(bool *lock){
        bool old;
        old = *lock; // old用来存放lock原来的值
        *lock = true; // 给临界区上锁,给lock设置为true
        return old; // 返回lock原来的值
    }
    
    // 使用TSL指令实现进程互斥的算法逻辑
    while(TestAndSet(&lock));
    临界区代码段...
    lock = false; // 解锁
    剩余区代码段...
    

    简称TS指令,或者TestAndSetLock指令,或者TSL指令。

    TSL指令是通过硬件实现的,执行过程为原子操作,不允许被中断。

    如果lock初始为false,while循环条件不满足,直接跳出循环,当前进程进入临界区。

    如果lock初始为true,说明当前临界资源被其余的进程访问,等到正在运行的进程在退出区将lock设置为false对临界区进行解锁。

    优点:实现简单,不需要想软件实现方法一样严格检查逻辑漏洞(设置标志位表明自己想要用这临界资源,还要考虑饥饿情况,需要设置turn变量);TSL指令适用于多处理机环境。

    缺点:不满足“让权等待”原则,对于暂时无法进入临界区的进程会占用CPU并且循环执行TSL指令,从而导致“忙等”。

    Swap指令

    // Swap 指令的作用是交换两个变量的值
    Swap(bool *a, bool *b){
        bool temp;
        temp = *a;
        *a = *b;
        *b = temp;
    }
    
    // 以下是用Swap指令实现互斥的算法逻辑
    // lock表示当前临界区是否被加载
    bool old = true;
    while(old == true)
        Swap(&lock, &old);
    临界代码段...
    lock = false;
    剩余代码段...
    

    逻辑上Swap指令和TSL指令并无太大的区别。old变量先设置为true,进入while循环,交换old值和lock值。当前临界区资源被占用,则lock值为true,此时交换后,依然进入while循环。如果当前临界资源空闲,则old值被替换为false,跳出循环,该进程进入临界区代码。优缺点方面与TSL指令类似。


    信号量机制

    信号量机制是一种功能较强的机制,可以用来解决互斥与同步问题。并且只能被两个标准的原语wait(S)signal(S),也就是P操作和V操作,PV的命名出自荷兰语,细节可参考WIKI: Semaphore (programming)

    The canonical names V and P come from the initials of Dutch words. V is generally explained as verhogen (“increase”). Several explanations have been offered for P, including proberen (“to test” or “to try”),[4] passeren (“pass”), and pakken (“grab”). Dijkstra’s earliest paper on the subject[2] gives passering (“passing”) as the meaning for P, and vrijgave (“release”) as the meaning for V. It also mentions that the terminology is taken from that used in railroad signals. Dijkstra subsequently wrote that he intended P to stand for prolaag,[5] short for probeer te verlagen, literally “try to reduce”, or to parallel the terms used in the other case, “try to decrease”.[6][7][8]

    In ALGOL 68, the Linux kernel,[9] and in some English textbooks, the V and P operations are called, respectively, up and down. In software engineering practice, they are often called signal and wait,[10] release and acquire[10] (which the standard Java library[11] uses), or post and pend. Some texts[12][13] call them vacate and procure to match the original Dutch initials.

    通俗的讲,P操作对应加锁,V操作对应解锁。

    P(S) --> 加锁对应的P操作将信号量减1,申请一个资源S,如果资源不够就执行block原语主动阻塞等待

    V(S) --> 解锁对应的V操作将信号量加1,释放一个资源S,如果有进程在等待,则执行wakeup原语唤醒该进程

    实现进程互斥

    // 记录信号量的定义
    typedef struct{
        int value; // 剩余资源数
        struct process *L; // 等待队列
    } semaphore;
    
    semaphore mutex = 1; // 初始化信号量
    
    P1(){
        ...
        P(mutex); // 使用临界资源前需要加锁  mutex - 1
        临界区代码段...
        V(mutex); // 使用临界资源后需要解锁 mutex +1
    }
    
    P2(){
        ...
        P(mutex); // 使用临界资源前需要加锁  mutex - 1
        临界区代码段...
        V(mutex); // 使用临界资源后需要解锁 mutex +1
    }
    

    注意:对于不同的临界资源需要设置不同的互斥信号量,P、V操作必须成对出现。

    没有P操作则无法保证临界资源的互斥访问

    没有V操作则无法释放占用的资源,而且等待资源的队里中的进程也不会被唤醒

    实现进程同步

    对于两个进程P1,P2,含有如下的代码段:

    P1(){
        代码①;
        代码②;
        代码③;
    }
    
    P2(){
        代码④;
        代码⑤;
        代码⑥;
    }
    

    在并发执行进程下,访问临界区资源的进程可以按照一定顺序执行,但是里面的代码是无法控制先后顺序的,所以说会涉及到之前提到的同步问题。

    而采用信号量机制的PV操作可以很好实现进程的同步,比如我们要求代码的执行顺序是①② | ④⑤,则只需要在②后面进行V操作,④之前执行P操作即可:

    P1(){
        代码①;
        代码②;
        V(S);
        代码③;
    }
    
    P2(){
        P(S);
        代码④;
        代码⑤;
        代码⑥;
    }
    

    假设信号量初始值为0: semaphore S=0;

    如果先进入P1()进程的代码段,则首先执行P操作,S–,此时S=-1,没有可用资源,P操作则会执行block原语,P2进程主动请求阻塞。进入P1()代码段,执行完②之后,释放资源S++,S=0,并且在V操作中执行wakeup原语唤醒阻塞队列中的P2进程,P2继续执行④⑤⑥…

    简单来记就是前V后P

    • 在"前操作"之后加V(S)
    • 在"后操作"之前加P(S)

    实现前驱关系

    进程并发需要考虑代码间的同步问题

    展开全文
  • 《人工智能杂记》人工智能时间简史

    万次阅读 多人点赞 2018-03-13 08:54:55
    人工智能(Artificial Intelligence,AI)是指计算机人一样拥有智能能力,是一个融合计算机科学、统计学、脑神经学社会科学的前沿综合学科,可以代替人类实现识别、认知,分析决策等多种功能。如当你说一句话...
  • office2019专业增强版64位32位安装包收集整理

    万次阅读 多人点赞 2019-05-18 17:59:10
    8、装置方式技术支持周期 Office2019不再提供MSI本地装置包,仅经过Click-to-Run网络装置包的方式发放,也就是说用户每次装置的时分,都必需经过网络下载大量的装置组件,Office2019的技术支持周期也会发作变化...
  • 为了提高大视场靶标场标志点自动编码的容量效率,设计自编码标志和普通标志,建立以自编码标志作为编码基准、以普通标志点作为控制点靶标的室内靶标标定场。基于“同名点同编号”的原则,提出自编码标志和普通标志点...
  • 图片里的标志化的构造执行

    千次阅读 2016-04-29 17:59:37
    图片里的标志化的构造执行 这是一篇解释在图片里面的进行标志化构造执行的文章。你最好这篇文章一起阅读 Symbolic API. 标志构成 标志是我们想做的计算的描述。标志构造API生成计算图源来描述计算的需要。...
  • 灵敏,快速的命令行标志解析,对子命令位置值的出色支持。 标志可以在任何位置。 Flaggy没有一样需要的项目或程序包布局,也没有外部依赖项! 查看 , 以快速入门。 您还可以阅读Flaggy简介文章,并附上有用...
  • TCP标志位 RST作用、原理、攻击

    千次阅读 2018-12-25 22:20:53
    TCP报头的标志位  TCP报头中一共有六个标志位:URG/ACK/PSH/RST/SYN/FIN。  SYN  TCP三次握手中,如果A是发起端,则A就对服务器发一个SYN报文。表示建立连接。 ACK  收到数据或请求后发送响应时发送ACK报文。 ...
  • 使用TensorFlow识别交通标志

    千次阅读 2018-05-18 14:46:36
    作者:chen_h 微信号 &amp; QQ:862251340 微信公众号:coderpai ...本系列的目的是学习如何使用深度模型去构建一个系统,如何你也有兴趣可以我一起学习。在网上,你能找到很多的讲解神经网络...
  • 【寒江雪】边界标志算法

    千次阅读 2016-11-17 00:08:32
    边界标志算法对多边形的每条边进行扫描并对该像素打上标志。然后再利用扫描线扫描该多边形,对于与多边形相交的扫描线依从左到右的顺序,逐个访问该扫描线上的像素。使用一个布尔值量inside来表示当前点是否在多边形...
  • 聊一聊TCP协议中的tcp push标志

    万次阅读 2018-08-23 21:11:42
    结合实际的通信过程阐述 tcp push标志位的含义
  • 字符串与字符串结束标志

    千次阅读 2020-02-05 16:20:33
    1、在C语言中,是将字符串作为字符数组来处理的。例1就是用一个一 维的字符数 来存放字符串I am a student. ”的,字符串中的字符是逐个存放到数组元素中的。...语言规定了个“字符串结束标志”。...
  • 【Unity】Unity中的枚举和标志

    千次阅读 2016-02-16 17:23:03
    枚举和标志 今天的主题是枚举,它是C#语言中的一个很有帮助的工具,可以增强代码的清晰度以及准确性。 枚举一系列值 C#中最经常使用枚举的地方就是用来定义一系列可能值的时候。例如在制作一个角色类游戏中,角色...
  • 利用tensorflow进行德国交通标志识别》

    千次阅读 热门讨论 2018-08-28 16:09:26
    利用暑假学习了一段时间的DL,德国交通标志马上实践一下,下面主要提到我用的模型以及数据处理,如果有哪些地方大佬们觉得哪些地方做得不好或者可以改进得,非常欢迎直接在评论里提出来,初学需要一起努力。...
  • 一般软件都有登录注册的页面,都有2个输入框,输入框前一般会有一个图标代表用户名的头像密码的锁 这个功能如何实现? 可以在UITextField的前面添加一张图片UIImageView 再做约束即可。 但是 UITextField...
  • 循迹小车的制作

    万次阅读 多人点赞 2017-11-30 11:24:36
    图中一样,一开始我也是如此愚蠢的排列这些红外对管。。。。 结果当然是发现这种安装红外对管的方法相当糟糕,,,不仅有时候黑线检测不到,而且精度时好时坏,即使一直在调滑变...
  • 字符串字符串结束标志

    千次阅读 2013-06-20 16:51:50
    在C语言中,将字符串作为字符数组来处理,例如定义一个字符数组长度为100,而实际有效字符只有40个,为了测定字符串的实际长度,C语言规定了一个字符串结束标志,以字符 '\0' 代表,如果有一个字符串,其中第10个...
  • 在前面学习了天空盒纯背景颜色的清除方法,这两个方法都比较常用的,一般情况下使用这两个选项,就基本满足了。但是你或许有点好奇心,一个小学生一样,不断地为什么,比如为什么太阳会发亮,为什么月亮只有晚上...
  • 序列号为当前端成功发送的数据位数,确认号为当前端成功接收的数据位数,SYN标志FIN标志位也要占1位 如果你正在读这篇文章,很可能你对TCP“非著名”的“三次握手”或者说“SYN,SYN/ACK,ACK”已经很熟悉了。不幸...
  • FPGA数字信号处理(一)数字混频(NCO与DDS的使用)

    万次阅读 多人点赞 2018-05-30 16:27:36
    本文不是课本那样介绍这些基础概念,而是介绍很实际的设计方法。 借助于数字混频这个设计,本文还会介绍用途非常广泛的Altera公司Quartus中的NCO IP核、Xilinx公司Vivado中的DDS Compiler IP核的具体使用方法。 ...
  • 本文主要讲如何通过HOG特征SVM分类器实现部分交通标志的检测。本文中的所有代码都可以在我的github主页上下载:https://github.com/ZhouJiaHuan。由于能力有限,本文的检测思路很简单,主要是用来自己练习编程用,...
  • 原文地址:http://www.jb51.net/os/MAC/238628.html Mac键盘图标与对应快捷按键 ⌘——Command () ⌃ ——Control ⌥——Option (alt) ⇧——Shift ⇪——Caps Lock ...前进后退文本文件⌘+⌃ +←or
  • 不仅仅是企业,国内陆续提出多个人工智能相关的国家级战略规划,将人工智能的发展提高到了一个前所未有的高度,各种重大成果突破性的进展不断涌现,下面就来看看2017人工智能发展的十大标志事件。最惨的棋局...
  • CSS 列表 从某种意义上讲,不是描述性的文本的任何内容都可以认为是列表。人口普查、太阳系、家谱、参观菜单,甚至你的所有朋友都可以表示为一个列表或者是列表...例如,在一个无序列表中,列表项的标志 (marker) ...
  • 这些交通标志,你认识几个?随手查交通标志应用可能要出炉了!

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 275,224
精华内容 110,089
关键字:

和的标志像8