目标检测应用竞赛

2023-10-31

点击上方“AI算法修炼营”,选择加星标或“置顶”

标题以下,全是干货

目标检测应用竞赛——天池铝型材表面瑕疵

数据集下载链接:

https://tianchi.aliyun.com/competition/entrance/231682/information

数据介绍:在铝型材的实际生产过程中,由于各方面因素的影响,铝型材表面会产生裂纹、起皮、划伤等瑕疵,这些瑕疵会严重影响铝型材的质量。为保证产品质量,需要人工进行肉眼目测。然而,铝型材的表面自身会含有纹路,与瑕疵的区分度不高。传统人工肉眼检查十分费力,不能及时准确的判断出表面瑕疵,质检的效率难以把控。近年来,深度学习在图像识别等领域取得了突飞猛进的成果。铝型材制造商迫切希望采用最新的AI技术来革新现有质检流程,自动完成质检任务,减少漏检发生率,提高产品的质量,使铝型材产品的生产管理者彻底摆脱了无法全面掌握产品表面质量的状态。

大赛数据集里有1万份来自实际生产中有瑕疵的铝型材监测影像数据,每个影像包含一个或多种瑕疵。供机器学习的样图会明确标识影像中所包含的瑕疵类型。

解决方案与答辩情况

 这是在天池大数据平台上一个比赛的决赛答辩笔记。比赛的名字:广东工业制造大数据创新大赛,智能算法赛。比赛的初赛是分类,物体识别;复赛:目标检测。

视频地址:https://b23.tv/av66819151


  • 第一组  shuzhilian ai

1 模型faster rcnn + fpn + cascade   basebone:resnet152

2 数据:原始的数据分布不平衡,用了图像处理的方法将每一类做到了5000张。大体上分为两种数据集,有瑕疵的一类,无瑕疵的10类。各种类别之间的瑕疵规格相差很大,类别内的瑕疵大小规格相差也没有规律。

3 创新点

(1)多阶段的训练:先是用负样本来训练模型,然后用正样本验证学到的模型,最后将正样本中训练错误的和负样本一起来训练模型。

(2)Scale Normalization for training : 使用rpn 。理由:缺陷里面有很多正确的纹理,这些正确的纹理将会是判别缺陷的噪音。所以使用一个合适大小的框来减少这种噪音。

(3)cascade结构

4 项目落地

1 时间太长(多尺度输入) 

2 自动检测,增量学习,重新训练。 

3 充分运用云(1流失处理,2灵活调度,3松耦合高内聚,4日志收集)

5 问答

1 改进三部分哪一个部分提升的效果最好?cascade 结构

2 cascade为什么会表现更好,它可能不会收敛? 因为在级联前它保存了传统的方法,只是在传统的结构上加了额外的级联结构,所以可以在调参后收敛。

          

3 cascade结构中每一级都是哪些样本进入到了该级?按照阈值来决定那些样本来进入该级

          

 4 cascade结构是怎么样来划分每一级的正负样本的?端到端训练的。(答辩的人没有说出来,其实论文中讲到阈值其实也就决定了正负样本。和上一个问题基本上是一样的。)

5 负样本是怎么取的?负样本对于提升有多大?77.8%,加上以后就是80.3%。

6 图像增强的时候,数据量增加到多少能达到一个最终的结果,这时增加图片就没有提升效果了?这要看数据集的复杂度,平常做的上下翻转,高斯模糊等等不能够做的太多,如果做的太多实际上训练样本对于最终的真实样本分布已经不一致了。复杂度小,增强小,复杂度高,增强多。这次做了一些的尝试,最后定在了4000到5000张左右。

  • 第二组  风不动

1 模型backbone:resnet101(快速版本),两阶段模型Faster rcnn。模型版本:快速模型到最高精度模型的比较,基模型的数量从1达到了4;从单尺度测试改为6尺度测试;框的过滤阈值从0.05降低到0.01。

2 数据分析:图片分辨率高,缺陷的尺寸差异大,瑕疵的形状不规则,标注不贴合 。

   

出发点

(1)由于缺陷长款比例分布不均匀采用两阶段回归,适应更多长宽比。

(2)由于缺陷尺度分布差异大,采用FPN结构适应更多的大小尺度

(3)缺陷往往是独立且以不规则的形状组合出现,利用可形变卷积有着更强的针对性。

(4)在训练中利用可形变卷积(DCN)能够学习到瑕疵更多形态。不规则卷积对应不规则形状有更好的针对性。( ps:通过对卷积核学习一个位置偏移权重,使得卷积核不再是标准的3*3卷积核,而是通过位置偏移实现出不规则形状的卷积核。)

(5)由于小瑕疵的缺陷定位不准确,导致被判为误检;不完全的ROIPooling可能会未学到瑕疵的特征。  解决方案:利用ROIAlign 使得特征与空间有着更准确的对应关系;通过线性插值获得对应位置的特征值。

3 训练和测试

由于瑕疵中有非常细长的box,所以在anchor中预设一个细长的框子,他的长宽比是5:1。

困难样本学习:(1)无困难样本增强(2)困难样本增强(3)Batch级别的困难样本增强,这个提升最强

最后的框体预测:Soft-NMS,NMS,投票平均三种方法的比较

经验:阈值的设置影响了召回率,但是在精度上面的提升非常有限。

4 实用性分析

怎样更快?更小的基网路(resnet50,VGG);更小的输入尺度(640*480);更少的候选框(1000到50)

  

实际场景中应用:可以采用多级分类纠正,在保证相同的MAP的情况下,删除三分之二的冗余框,大大减少对正常类的误报。

5. 问答 

1 目的?验证算法;奖金比较吸引人的;数据不容易;

          

2 如果提升的话,只做一个你会选择哪个方面提升? 选择使用ResNet50;其次就是更少的候选框。

              

3 anchor虽然使用了一些狭长框体,但是这并不能够全部的包含所有的情况?本来就是一个大体上的框体。已经能够近似包含所有的情况。

          

4 多级分类纠正在时间统计上是怎么考虑的?提交的模型不包含该模块,只是在部署的时候可以使用该部署方式。该方法对精度的提升不明显。


  • 第三组  树根互联AILab

1 模型backbone:resnet101(快速版本),两阶段模型Faster rcnn+FPN

   

  模型改进

(1)用聚类算法获取定制anchors尺寸;

(2)用RoI Align替换掉ROIPooling;   

                                                         

(3)用softNMS替换掉NMS

2 数据分析:数据分布不平衡,瑕疵面积占比小,瑕疵的尺度分布变化大 。工作:数据增强采用了左右翻转,随机剪裁,中心剪裁。

3 创新点

(1)kmeans聚类算法分析训练集中真实框的分布;

 

(2)ROI Align 替换掉ROI Pooling,作用:消除ROIPooling过程中的量化,获取更精准的候选框的特征,从而提高检测性能。

(3)softNMS替换掉NMS,作用:针对脏点等容易大数量集中在某个区域的小瑕疵进行更好的检测。

结论:是一个较高准确度最快且高速度的检测算法。

4 实用性分析

(1)图片分辨率降低,光纤变化?加入更多的样本。

  

(2)流水线吞吐量?使用一个更加轻量化的模型;MobileNet、shuffleNet、模型剪枝&压缩

(3)如何分拣?滑道型二叉流水线

(4)硬件成本太高?更实时:Nvidia jetson tx2 4000元、Pynq z2 1800元、更经济:多Zigbee网关+中央gpu服务器

(5)云计算?流水线拍摄图片,zigbee网关传输,中央GPU检测图片,流水线分拣。有点性价比高,可迁移性强,批量检测速度快,容易维护。

5 问题 

           

1 图像上尺寸的分布怎么会有代表性?其中一种主要分布在左下角,一部分集中在右部一条线;

 2 当分辨率降低以后,如何在数据增强中体现出应对的策略? 亮度变化,测试集中没有加入亮度差异变化,所以效果不明显,后期加入。

3 聚类的anchor和原来的anchor之间的差别有多大?提升了大概1个百分点,尺寸大小变化了,比例不变。


  • 第四组  GDUT-WWW

1 模型: 

平台Detectron;框架Faster RCNN+FPN;Backbone:resnet50

模型改进:Faster R-CNN默认的RPN_ASPECT_RATIONS为[1,0.5,2]手动改宽高比是[0.125,0.25,0.5,1,2,4,8]

2 数据处理:制作成coco格式的数据集,数据增强(水平翻转,旋转[range(0,30,360)]),多尺度训练

3 创新点 

        (1)模型宽高比的优化;

        (2)训练的时候讲train.scales参数优化为:[500,550,600,650,700,750,800,850,900,950,1000]实现多尺度训练

        (3)在预测的时候讲test.scales的参数优化为:[400,450,500,550,600,650,700,750,800,850,900,950,1000,1050,1100,1150,1200];水平翻转;NMS

4 实用性分析

(1)使用人工智能专用计算芯片,降低成本。

(2)将传感器与模型融合,即软件硬件化。

5 优劣性分析

(1)优点:泛化能力强,模型较小。

(2)缺点:多尺度预测,耗费了大量的时间。

6 落地实例:酷睿I7处理器cpu的使用情况是25%;8个Movidius Myriad X VPU加速器  占用了7%。

7 落地构想  

(1)构建云计算平台

(2)在平台搭建上,采用“1+1+n”的模式,从底层开始,一个合作伙伴用一套共 性技术,服务于N个垂直行业。

(3)底层的共性技术是开发平台、数据平台,资源管理平台,中间是与客户共建的SaaS级产品。

(4)SaaS级产品包括与用户共建的能效云,与客户共建的工业大脑。

(5)在平台上,做一个垂直的应用服务,服务于广大中小企业。

(6)最后打造工业云平台的生态,构建国家级工业物联网平台。

8 问答 

1 为什么50层的网络要比更深层次的好?单块的1080Ti不够;

          

2 数据增强方面只是简单的旋转吗? 只是简单的旋转,另外标注啊框也跟着旋转。

3 你说可以做迁移学习到其他任务,怎么做?提升了大概1个百分点,尺寸大小变化了,比例不变。

  • 第五组  打怪升级

1 模型

Mask-rcnn ,Caffe2,Caffe2go(可以部署在一个手机上,4G到6G内存)

2 数据分析

尺寸差异大,数据不平衡,形状不规则,人工标注则不统一。ps:标框的规则就是没有规则,按心情标。

3 方案设计思路

4 功能模块介绍

思路解析:

(1)由于考虑到害怕把小的瑕疵切掉,所以没有使用切片。

           

(2)网络的输入尺度不同,对结果的影响是很大的。随机尺度输入相当于做了增强,而且也加快了速度,适合比赛用。

          

(3)Soft-NMS可以减少重叠框误删的问题。

 测试思路:

5 问题 

1 box voting提升怎么样,会造成误检提升吗?map提高0.8个百分点,弊大于益;

2 你认为什么是创新?box stacking,多尺度预测

3 detection中常用随机扰动?是的,从原始的精调到了600。

4 传统方法和deeplearnning比较?传统方法部署没有更多的灵活性,精度上也没有deeplearnning高。


  • 第六组(第一)  Are you OK?

1 模型:Faster R-CNN

2 数据分析:尺寸差异大,形状不规则,背景和瑕疵差异小。

3 模型结构创新

4 数据利用和训练处理:

5 问题 

 1 deformable convolution?每个点都有一个偏移量,这样更好的拟合瑕疵的形状,计算量会有差别;

 2 图片处理的部分,是两张图片做一个融合来进入模型的吗? 两张图片是两路输入,瑕疵候选框只能通过瑕疵照片,无瑕疵照片只能够生成背景类,这样能够让RPN能够更好的学习瑕疵和背景的区别。


  • 第七组 都都都都都都

1 模型:Faster R-CNN

 

模型变化:将maskrcnn中的Align Pooling加入到该模型中;加入空洞卷积;

3 两种方案

(1)双路集成的目标检测特征提取:从两路上进行特征提取。1.2fps

(2)多层Align Pooling

4 问题分析和采用的措施

数据增强:


水平或者竖直翻转;color jitter;Multi-scales Training:scaling invariance;Transfer Learning:Pretrained on Coco dataset

效果:3个点的提升

5 小的创新点:(1)加入stochastic weight averaging这个和SGD比较有更好的准确度和更快的收敛速度。(2)Hierachical Feature Ensembling

6 问答 

1 第二个阶段在经过RoiAlignPooling的时候极限长宽比的?每个点都有一个偏移量,这样更好的拟合瑕疵的形状,计算量会有差别;

         

2 去背景是比赛前做的还是比赛后做的?是在比赛后做的,减少的输入面积,map上有一点波动,但是速度提升了,map实际上是降低了。

3 模型将有些脏点是定位到了背景上了,分数应该是上升啊?去掉一个背景padding以后就会影响原来的铝材图片。可以考虑将背景的颜色去掉,换成一个新的数据集。

4 最后做的落地这个图片转换后方向是固定的切割的,但是如果改变了方向呢?假设在流水线上这种情况是可控的。

5 用数字图像处理过后将对光照等等有一个很好的鲁棒性。场景中的全部背景基本上都是蓝色背景。

  • 第八组 BOOMBOOM

1 整体分析

 (1)和传统的目标检测的任务差别

  (2)为什么要用Deep Learning?弱语义信息不代表没有语义信息;规则无穷尽,不能遍举

  (3)最大的困难是什么?数据,数据,数据。其次困难是什么?进场困难,缺陷样本少,标记困难。

  (4)为什么coco预训练模型比imagenet预训练模型好(大家基本上都是用fpn加上coco预训练模型)?

  (5)FPN为什么是杀手级的结构?除了加上多尺度,其实还是增强了较底层的纹理。和深度学习中语义不断深化相比这里更像是一个浅层网络级联起来的一个网络。低层次的特征在这次更加接近输出结果。

  (6)瑕疵检测需要很细化的特征。

  (7)同类型的模型融合SWA;不同类模型之间的融合:DCN+G-R-CNN

2 模型:Faster R-CNN

3 问题 

1 这个框合适吗?做缺陷或者瑕疵来说,什么框最好,最好的是Segment其实是最好的方式,但是选择框其实是一种无奈的选择;

2 对于划痕来说这东西很难学到的,你觉得这种东西该怎么标框呢?可以在外标一个框,然后在内用一个弱监督的方式来聚焦这些瑕疵。



目标检测系列秘籍一:模型加速之轻量化网络秘籍二:非极大值抑制及回归损失优化秘籍三:多尺度检测秘籍四:数据增强秘籍五:解决样本不均衡问题秘籍六:Anchor-Free
语义分割系列一篇看完就懂的语义分割综述最新实例分割综述:从Mask RCNN 到 BlendMask
面试求职系列决战春招!算法工程师面试问题及资料超详细合集

一起学C++系列内存分区模型、引用、函数重载
竞赛与工程项目分享系列如何让笨重的深度学习模型在移动设备上跑起来基于Pytorch的YOLO目标检测项目工程大合集点云配准领域全面资料、课程、数据集合集分享10万奖金天文数据挖掘竞赛!0.95高分Baseline分享
SLAM系列视觉SLAM前端:视觉里程计和回环检测视觉SLAM后端:后端优化和建图模块视觉SLAM中特征点法开源算法:PTAM、ORB-SLAM
视觉注意力机制系列Non-local模块与Self-attention之间的关系与区别?视觉注意力机制用于分类网络:SENet、CBAM、SKNetNon-local模块与SENet、CBAM的融合:GCNet、DANetNon-local模块如何改进?来看CCNet、ANN



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

目标检测应用竞赛 的相关文章

  • 蜂群算法论文【matlab代码与仿真】

    一 算法流程 蜂群算法 Bee Algorithm 是一种启发式优化算法 灵感来源于蜜蜂在寻找食物和选择巢穴的行为 这种算法模拟了蜜蜂群体中的集体智能 用于解决各种优化问题 蜂群算法的基本思想是通过模拟蜜蜂的搜索行为来寻找最优解 算法中的蜜
  • 仙境传说RO:添加自定义道具

    仙境传说RO 添加自定义道具 大家好 我是艾西今天和大家聊一下仙境传说RO怎么添加自定义道具 在我们开服时加入一些道具模组等往往会让我们的服务器更有特色以及消费点 那么让我们直接进入正题开始操作 此处我们讲的过程中以红色药水举例 喜欢的可以
  • php弹窗一次,网站广告弹出层(每天弹出一次)

    网站广告弹出层 每天弹出一次 可以有两种做法 一 是标识符存入数据库 二 利用Jquery cookie 我这里做的是比较简单的用到的知识是Jquery cookie 这里要注意的一点是jquery cookie的值 火狐能够获取 IE 3
  • VMware桥接模式无法识别英特尔AX200无线网卡解决办法

    1 先到英特尔网站下载最新驱动 更新网卡驱动适用于 Intel 无线网络卡的 Windows 10 和 Windows 11 Wi Fi 驱动程序 2 到控制面板查看无线网卡属性是否有下图组件 没有的话 依次操作 安装 服务 添加 从磁盘安
  • Unidbg系列--Ollvm字符串解密

    Ollvm字符串解密 原理 使用unidbg框架 模拟调用So文件 并Hook内存写操作 当so解密操作写入内存时 回调获取解密字符串 并将其写入新so文件中 达到反OLLVM字符串加密的目的 解密脚本 package com xCrack
  • openmvs编译

    OpenMVG 和OpenMVS在Widows下使用Vs2019编译 black world 博客园 cnblogs com cmake src G Visual Studio 16 2019 A x64 DCMAKE TOOLCHAIN
  • pyspark-ml学习笔记:模型评估

    问题是这样的 如果我们想基于pyspark开发一个分布式机器训练平台 那么肯定需要对模型进行评估 而pyspark本身自带模型评估的api很少 想进行扩展的话有几种方案 1 使用udf自行编写代码进行扩展 2 使用现有的 像sklearn中
  • CentOS安装Docker

    Docker是一个开源的容器引擎 它有助于更快地交付应用 Docker可将应用程序和基础设施层隔离 并且能将基础设施当作程序一样进行管理 使用 Docker可更快地打包 测试以及部署应用程序 并可以缩短从编写到部署运行代码的周期 CentO
  • 相机标定实战之双目标定

    相机标定原理 文章目录 相机标定原理 前言 一 采集图像 二 基于Matlab单双目标定流程 采集棋盘图 三 基于OpenCV Python双目标定流程 检测棋盘格角点 对角点进行亚像素精细化 单目标定 双目标定 双目校正 保存标定参数 读
  • 服务器系统怎么设置第一启动项,服务器怎么设置启动项

    服务器怎么设置启动项 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 您需要在源端服务器上安装迁移Agent并且输入目的端
  • java: 非法字符: ‘\ufeff‘解决方法

    出现问题 在使用idea时候会出现java 非法字符 ufeff 这样的情况 原因 出现这样的问题来源于这个BOM 一般在编写时候会给你默认添加这样的一个BOM头 是隐藏起来的 编译时候会给出现编码混乱问题 详见了解BOM 隐藏字符 百度百
  • 三调与二调图斑叠加分析,筛选不同地类面积占比,筛选举证图斑

    主要步骤 标识数据 叠加分析 用标识 生成所有相交图斑 属性有原图斑的地类和国家的地类 以及原图斑的面积 生成的面域 增加4个字段 图斑的三调一级类 图斑的国家NYYPDL 是否相同 标识后的图斑面积 转换三调地类为二调的一级类 转换国家地
  • 《最强大脑第九季》C#手撸傅立叶残影题目

    在最新一季的最强大脑总决赛中 有一个比赛项目 傅立叶残影 感觉印象深刻 原理就是五根针首尾相连 按照自身的转速和杆长运动 根据提供的每根杆的转速和杆长来判断出尾部运动的残影轨迹 原理比较简单 就是一个连杆运行 好吧 知道原理就可以动手开始撸
  • 整数除法JS

    param number a param number b return number var divide function a b const MIN Math pow 2 31 const MAX Math pow 2 31 1 判断
  • Redis的事务学习及用Redis实现乐观锁,redis数据类型总结

    一 Redis的事务操作 1 Redis 事务可以一次执行多个命令 并且带有以下三个重要的保证 批量操作在发送 EXEC 命令前被放入队列缓存 收到 EXEC 命令后进入事务执行 事务中任意命令执行失败 其余的命令 依然被执行 但是如果队列
  • C语言基础知识--变量

    目录 一 C语言变量 1 局部变量 1 什么是局部变量 2 代码示例 3 代码讲解 2 全局变量 1 什么是全局变量 2 代码示例 3 代码讲解 3 静态变量 1 全局静态变量 2 局部静态变量 3 代码示例 4 代码讲解 4 const常
  • 用Python制作一个自动抢票脚本

    前言 大麦网 是中国综合类现场娱乐票务营销平台 业务覆盖演唱会 话剧 音乐剧 体育赛事等领域 但是因为票数有限 还有黄牛们不能丢了饭碗 所以导致了 很多人都抢不到票 那么 今天带大家用Python来制作一个自动抢票的脚本小程序 知识点 面向
  • 死锁产生的条件及其如何处理

    一 原因与条件 产生死锁的原因主要是 因为系统资源不足 进程运行推进的顺序不合适 资源分配不当等 发生死锁的四个必要条件 相互排斥 所涉及的资源必须不可共享 否则 将不会阻止进程在必要时使用资源 保留并等待或部分分配 进程在等待其他 请求的
  • Quartus II 操作入门

    使用Quartus设计FPGA 简单包括以下流程 新建工程 写代码 编译工程 找错误 分配引脚 重编译 下载配置 到硬件 为保证设计的正确性 在编译后 一般还需要做仿真验证 然后下载至硬件 有两种仿真方式 功能仿真 时序仿真 新建工程 写代
  • (数学)GCD总结

    目录 简介 算法实现 代码 应用 简介 GCD即Greatest Common Divisor 例如 12和30的公约数有 1 2 3 6 其中6就是12和30的最大公约数 两个整数的最大公约数主要有两种寻找方法 两数各分解质因子 然后取出

随机推荐

  • Python + Selenium 练习篇 - 获取页面所有邮箱

    代码如下 coding utf 8import re python中利用正则 需要导入re模块from selenium import webdriverdriver webdriver Chrome driver maximize win
  • [python爬虫] BeautifulSoup和Selenium对比爬取豆瓣Top250电影信息

    这篇文章主要对比BeautifulSoup和Selenium爬取豆瓣Top250电影信息 两种方法从本质上都是一样的 都是通过分析网页的DOM树结构进行元素定位 再定向爬取具体的电影信息 通过代码的对比 你可以进一步加深Python爬虫的印
  • Spring boot 注册过滤器的方式

    方式一 import jakarta servlet import jakarta servlet annotation WebFilter import java io IOException WebFilter public class
  • mysql 多线程查询全部数据_python使用多线程查询数据库的实现示例

    一 背景 当数据量过大时 一个程序的执行时间就会主要花费在等待单次查询返回结果 在这个过程中cpu无疑是处于等待io的空闲状态的 这样既浪费了cpu资源 又花费了大量时间 当然这里主要说多线程 批量查询不在考虑范围 总会存在不能批量查询的情
  • 使用Windows的cmd命令打包java项目为jar文件

    在操作前请确保你的电脑已配置java环境 即在环境变量中添加jdk的bin的路径 首先运行java文件检查源码是否有误 生成 class后在当前目录下打开cmd窗口 输入jar help检查环境是否配置好 如出现 无法将 jar help
  • 为什么使用$.ajax()中的data传参到后台取值为null

    注意 在调试时可以使用FF浏览器 因为他可以在调试时查看到请求中的内容和详情 场景如下 ajax url business RuleDef getKylinChartData 请求地址 type POST 请求类型 cache false
  • deepfake-faceswap第一篇论文-2016摘要

    核心目标 给定一个人的单张图片A 另一个人的单张图片B 在保持姿势 面部表情 视线方向 发型和光照不变的条件下 将A图片中的人物换成B图片中的人物 2016年 文章 1 实现了这个目标 德国的蒂宾根大学L A Gatys小组实现了对图片艺术
  • 2023华为od机试B卷【计算误码率】

    题目描述 误码率是最常用的数据通信传输质量指标 它可以理解为 在多少位数据中出现一位差错 移动通信 网络中的误码率主要是指比特误码率 其计算公式如下 比特误码率 错误比特数 传输总比特数 为了简单 我们使用字符串来标识通信的信息 一个字符错
  • 计算机组成原理大题简答题,常见问题总结(必背)

    计算机中采用二进制主要原因 技术实现简单 计算机由逻辑电路组成 逻辑电路通常只有两个状态 开关的接通与断开 这两种状态正好可以用 1 和 0 表示 简化运算规则 两个二进制数和 积运算组合各有三种 运算规则简单 有利于简化计算机内部结果 提
  • 环球新材国际:新业务增长点不断凸显 未来业绩增长稳定可期

    11月13日 环球新材国际 6616 HK 发布自愿性公告 披露了业务发展最新情况 从公告内容不难发现 未来公司有几大强力增长点 首先 在新能源电池业务方面年内已实现重大突破 尤其是在中期业绩报告中已有初具规模的收入体现 且具有十分乐观的未
  • base64编码上传图片java后台接收实例

    思路 前台传以data image jpeg base64 开头的base64编码的String字符串 后台接收字符串以后先进行base64解码 decodeBuffer 转换成二进制编码 然后使用字节输出流FileOutputStream
  • 杂记——记录一次参加华为OD研发岗位的面试过程

    流程 一 在线机试 二 性格测试 三 技术一面 四 技术二面 五 技术三面 六 资格面试 七 综合面试 关于od 自己去论坛上面看吧 褒贬不一 自个儿衡量 一 在线机试 1 在 牛客网 上完成三道题目 多是字符串和排列相关的题目 总分在15
  • GRIDVIEW多行多列合并单元格(合并列)

    GitHub项目地址 https github com mingceng merge gridviewcell 去年的时候 我写了两篇文章 GridView多行多列合并单元格 完整代码和例子 和 GridView多行多列合并单元格 指定列合
  • 13.Linux下sbt编译打包Spark程序 和 Maven编译打包Scala程序

    本案例软件包 链接 https pan baidu com s 1zABhjj2umontXe2CYBW DQ 提取码 1123 若链接失效在下面评论 我会及时更新 目录 1 sbt编译打包 1 创建文件夹 2 在 sparkapp src
  • 无法将“gulp”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 gulp报错

    最近在项目中使用到Gulp 官网https www gulpjs com cn docs getting started 在用vscode去打包项目过程中 执行在gulpfile文件中定义的指令 gulp clean 报错如下 gulp 无
  • LeetCode-在O(1)时间删除链表结点

    本题没有给出前驱节点 所以不能采用让前驱节点的next指针指向当前节点的next指针这种方法 因为当前节点不是最后一个节点 所以下一个节点一定不是空节点 我们可以采用 用下一个节点的值把当前节点的覆盖掉 并且把下一个节点删掉 效果与删除当前
  • (一)图像的表示与通道数问题、读取并展示图片

    图像的表示与通道数问题 数字图像的基本概念 对于一幅的数字图像 我们看到的是 肉眼可见的一幅真正的图片 但是计算机看来 这副图像只是一堆亮度各异的点 一副尺寸为 M N 的图像可以用一个 M N 的矩阵来表示 矩阵元素的值表示这个位置上的像
  • Git基本介绍

    一 Git简介 Git是一个版本控制的工具 我们可以把每天的工作代码放到Git上 同时Git的特点是分布式的 可以搭建集群 以保证一个Git宕机 导致数据丢失 可以实现本地提交 避免网络问题造成不可使用的状况 SVN和Git的区别 1 SV
  • WebSocket 动态获取

    initSocket function initSocket webSocket new WebSocket ws window location host header soc imageSocket new WebSocket ws w
  • 目标检测应用竞赛

    点击上方 AI算法修炼营 选择加星标或 置顶 标题以下 全是干货 目标检测应用竞赛 天池铝型材表面瑕疵 数据集下载链接 https tianchi aliyun com competition entrance 231682 informa