基于yolo提取车和人的检测与图像裁剪

   这次换一个严谨的写作风格。因为之前在做yolo算法移植到ros上面,已经成功了,但是实验室老师又出了做姿势识别的幺蛾子。我真是一万个。。。。无语了。感觉,对深度学习只有一个简单的了解,现在还在读很多有关的论文,一边看cs231n的课程,在自学着入门。但是奈何自己的实战能力太差,实战经验太少了,只是学过那一年的c,很多关于指针的操作什么的,真的太差了,现在还在教一个小孩c语言,我都不好意思教人家了,决定从这星期开始,每天刷一些c的基础知识题,真的得好好补补了。

    回到正题,环境仍然是ubuntu16.04+cuda9.0+NVIDIA GTX1050+OPENCV3.4.1,首先解决第一个问题,在yolo的基础上,提取人和车,其他的标签过滤掉。有两个解决方法,一个是自己训练车和人的训练库,另一个就是在程序中剔除出人和车以外的标签。第一个方法原来想做一下,但是看网上真正做过的,可能要训练一个星期,而且可能需要在服务器上训练,因为真的没做过,时间催的很紧,只能采取第二种方法了,等后面有时间了,一定自己训练一下,试一下,真正做过才能有话语权。那就来说一下,是怎么在程序里面实现的剔除其他标签的。首先,要明确是在,image.c里面的draw_detections这个函数里面去改动。

for(i = 0; i < num; ++i){
        char labelstr[4096] = {0};
        int class = -1;
        for(j = 0; j < classes; ++j){
            if (probs[i][j] > thresh){
            printf("probs:%f\n", probs[i][j]);
                if (class < 0) {
                    strcat(labelstr, names[j]);
                    class = j;
                } else {
                    strcat(labelstr, ", ");
                    strcat(labelstr, names[j]);
                }
                printf("%s: %.0f%%\n", names[j], probs[i][j]*100);
            }

        }

    在这个for循环里,num是检测到的物体个数,classes是能够检测的物体种类,这里的classes是80,说明yolov2能检测80个种类的物体,这里的for循环在筛选概率大于阈值然后输出概率的类别和大小。

int left  = (b.x-b.w/2.)*im.w;
            int right = (b.x+b.w/2.)*im.w;
   

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: 基于YOLO算法的辆违停检测可以分为以下几个步骤: 1. 数据收集与预处理:收集包含辆违停的图像和视频数据集,并对图像进行预处理,如缩放、裁剪和灰度化等操作。 2. 标注数据集:对收集的图像进行标注,标注辆位置和是否违停等信息。 3. 训练模型:使用标注好的数据集训练YOLO模型,以识别辆位置并判断是否违停。 4. 模型测试与优化:对训练好的模型进行测试,并根据测试结果对模型进行优化。 5. 部署模型:将训练好的模型部署到实际环境中进行辆违停检测。 具体来说,针对辆违停检测,可以采用以下具体步骤: 1. 收集辆违停的图像和视频数据集; 2. 对图像进行裁剪和缩放等预处理操作; 3. 标注辆位置和是否违停等信息; 4. 利用标注好的数据集进行训练,调整模型的参数和结构,提高模型的准确率和召回率; 5. 对模型进行测试,并根据测试结果对模型进行优化; 6. 部署模型到实际环境中进行辆违停检测。 ### 回答2: 基于YOLO算法的辆违停检测可以通过以下步骤来实现: 1. 数据采集和准备:收集大量辆图片,并标注出违停辆的位置。这些图片可以来自于不同的场景和角度,以增加算法的泛化能力。同时,还需要标注出辆的边界框和相关属性。 2. 模型训练:使用YOLO算法对收集到的数据进行训练。首先,将图片和标注数据集分为训练集和验证集。然后,使用训练集训练YOLO模型,通过多次迭代来优化模型的权重和偏置。在训练过程中,可以使用数据增强技术,如平移、缩放和旋转来增加训练集的多样性,并进一步提升模型的性能。 3. 模型评估和调优:使用验证集对训练好的模型进行评估,计算出模型的性能指标,如精确度和召回率。根据评估结果,可以进行模型调优,如调整超参数,改变网络结构或增加训练数据,以提高模型的性能。 4. 辆违停检测:使用训练好的YOLO模型进行辆违停检测。将对应场景的图像输入到模型中,模型将输出辆边界框和相关属性。根据模型的输出,可以判断是否存在违停辆,并标注出其位置。 5. 后处理和结果展示:对模型输出的边界框进行后处理,如非极大值抑制(NMS),以消除多余的重叠边界框。最后,将检测到的违停辆和标注框绘制在原始图像上,以便于可视化展示和进一步处理。 需要注意的是,以上步骤仅为概述,实际实现中可能还涉及到其他技术和细节处理。此外,模型训练和调优是一个迭代的过程,需要根据实际情况进行多次实验和优化,以获得最佳的检测性能。 ### 回答3: 基于YOLO算法的辆违停检测可以通过以下步骤来实现: 1. 数据收集:收集包含违停和非违停辆的图像和标签数据集。这些图像应包含各种违停场景和不同角度的辆。 2. 数据预处理:对收集的图像进行预处理,包括图像增强、尺寸调整和数据标准化等操作。同时,需要将图像标签转换为适合YOLO算法输入的格式。 3. 构建YOLO模型:使用深度学习框架(如TensorFlow或PyTorch),通过搭建YOLO模型来实现辆违停检测YOLO模型由主干网络和检测头组成,主干网络提取图像特征,检测头进行目标检测。 4. 模型训练:将预处理后的数据集划分为训练集和验证集,使用训练集对YOLO模型进行训练。训练过程中,通过优化损失函数来调整模型参数,使其能够准确地检测违停辆。 5. 模型评估:使用验证集对训练好的模型进行评估,计算准确率、召回率和F1分数等指标,以评估模型的性能和效果,并对模型进行调优。 6. 测试与优化:使用测试集对模型进行测试,评估其在真实场景中的表现。根据测试结果,对模型进行优化和改进。 7. 部署与应用:将训练好的模型部署到实际环境中,通过摄像头或视频流实时获取图像,使用YOLO模型进行辆违停检测,并进行相应的报警或记录。 基于YOLO算法的辆违停检测步骤如上所述,通过数据收集、预处理、建立模型、训练调优以及实际应用等环节,可以实现准确、高效的辆违停检测

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值