• [问题求助] 昇腾AI算法挑战赛群已满加不进去!
    昇腾AI算法挑战赛群已满加不进去!
  • [技术干货] RTRC 4S小车激光雷达的怎么使用?
    解决方案: step1:开机后进入系统界面; step2:插拔激光雷达通信线; step3:打开一个终端,使用ls指令查询两次串口号,确定激光雷达串口号; step4:找到激光雷达ros包,launch目录下的rplidar.launch文件; step5:修改正确串口号; step6:执行命令roslaunch rplidar_ros rpliar.luanch启动激光雷达;
  • [技术干货] RTRC 4S小车超声波如何接线?
    解决方案: 对应Jetson Nano上的引脚号进行接线,检查代码定义引脚与物理接线是否一致,若不一致就修改代码定义引脚或者接线位置,保证代码定义引脚与实际接线处一致。 step1:查看超声波代码是否正确:LEFT_TRIG_PIN=11 ,LEFT_ECHO=13 ,RIGHT_TRIG=31 ,RIGHT_ECHO_PIN=33;step2:查看超声波接线位置是否正确:左侧超声波的Trig针脚接GPIO11,Echo针脚接GPIO13,右侧超声波的Trig针脚接GPIO31,Echo针脚接GPIO33;  
  • [技术干货] RTRC 4S小车的车道保持程序(LKAS),过弯道时如何调整转向角度?
    解决方案: step1:若转弯时压线,则调整LKAS代码文件里draw_lines函数中描绘直线的一次函数常数项 ag_right = 0.7 * right_err + 75 和 ag_left = - 0.7 * left_err + 75 ,其范围65~85(舵机补偿值)。 step2:转弯压车道外线,舵机补偿值增大step3:转弯压车道内线,舵机补偿值减小
  • [技术干货] RTRC 4S小车的车道保持程序(LKAS),车辆居中车道线怎么调?
    解决方案: step1:观察车辆在直道内行驶时整个车身是偏左还是偏右,那么调整LKAS代码文件中err_generator函数中的k = float((servo_position_range - 1500) / err_range中的常数值,这是车轮摆正的舵机数值,范围为1400~1600,出厂标定的车轮置中值为1500,舵机转向范围在(1000~2000),(1000~1500)车轮向左打,(1500~2000)车轮向右打。step2:车辆靠左行驶时,说明车辆置中值1500小了,调大后使小车向右偏移行驶在车道线中间,范围(1500~1600)step3:车辆靠右行驶时,说明车辆置中值1500大了,调小后使小车向左偏移行驶在车道线中间,范围(1400~1500)
  • [问题求助] 34期还有结果嘛
     不是说重新评估base分嘛。。。
  • [技术干货] RTRC 4S小车的车道保持程序(LKAS)感兴趣区域怎么调节?
    解决方案: step1:感兴趣区域调节是为了摄像头只检测到车道线,首先观察图像中车道线是否在感兴趣区域(蓝色区域)内。如下图:图像偏低或者肉眼发现摄像头下垂,那么就调整摄像头的高度。 step2:若调节摄像头的高度后,车道线依旧不在感兴趣区域内,或者区域太大识别到其他部分,影响到舵机控制,则调整LKAS代码文件中region_of_interest函数的vertices = np.array([[(10, imshape[0]), (imshape[1] * 5 / 34, imshape[0] * 2 / 3), (imshape[1] * 29 / 34, imshape[0] * 2 / 3), (imshape[1] - 20, imshape[0])]], dtype=np.int32)感兴趣区域四个坐标,保证车道线在感兴趣区域内或者截取掉多余区域。 左下角:(10, imshape[0])左上角:(imshape[1] * 5 / 34, imshape[0] * 2 / 3)右上角:(imshape[1] * 29 / 34, imshape[0] * 2 / 3)右下角:(imshape[1] - 20, imshape[0])连接这些点,形成一个梯形的感兴趣区域,更改这些点,改变区域的大小和形状。
  • [问题求助] 请问 35 期每个测试案例的时限是多少?
    由于 Python 运行很慢,O(nlogn)的算法也可能超时导致超时测例为 0 分,请问每个测试案例的时限是多少?
  • [技术干货] RTRC 4S小车摄像头打不开,无法运行车道保持程序(LKAS)代码文件?
    解决方案: step1:调整LKAS代码文件中cap = cv.VideoCapture(0)参数(1或者0),改完后ctrl+s保存,再运行代码。 step2:若打不开,用命令ls /dev/video*查看串口号是多少(1或者0)。 step3:若查不到,检查摄像头接线是否连接正确(或更换一根摄像头接线),再查看串口并修改代码参数。
  • [技术干货] 运行RTRC 4S小车的车道保持程序(LKAS),调参界面怎么用?
    解决方案: 1. binary_value作用:控制二值化处理的阈值,二值化会把灰度图中大于该值的像素设为 0,小于等于的设为 255(因为用了THRESH_BINARY_INV),用于区分前景(车道线)和背景。调节逻辑:数值太大:会把部分浅色车道线也当成背景过滤掉,导致车道线缺失; 数值太小:背景噪声会被保留,干扰后续检测。 2.canny_low_threshold作用:控制Canny 边缘检测的低阈值(高阈值是它的 3 倍)。Canny 算法通过两个阈值筛选边缘:梯度值大于高阈值的是强边缘,介于高低阈值之间且与强边缘连通的是弱边缘,其余被丢弃。调节逻辑:数值太大:边缘会被过度过滤,车道线边缘不完整;数值太小:会保留大量噪声边缘,干扰后续直线检测。 3.hof_threshold作用:控制霍夫直线检测的 “累加阈值”。霍夫变换中,只有累加器数值(代表该直线被多少像素支持)超过此阈值的直线才会被检测出来。调节逻辑:数值太大:只有长且明显的直线会被检测,可能漏掉短车道线;数值太小:会检测出大量干扰直线(比如噪声、背景纹理)。 4. hof_min_line_len作用:控制霍夫检测出的直线的最小长度。长度小于该值的直线会被直接丢弃。调节逻辑:数值太大:会过滤掉短的车道线段(比如车道线断裂处);数值太小:会保留很多短的干扰线段。 5. hof_max_line_gap作用:控制霍夫检测中,两条直线被合并为一条的直线最大间隔阈值。若两条直线的间隔小于该值,会被视为同一条直线并合并。调节逻辑:数值太大:会把不相关的直线(比如左右车道线)错误合并;数值太小:原本连续的车道线会被拆分成多条短直线,不利于后续拟合。   
  • [问题求助] 36 期的判题器更新了吗?
    36 期的判题器更新了吗?同样的方案现在是 0 分。是拓扑生成失败?
  • [问题求助] 34期时限问题
    这道题涉及百万数量的浮点数运算考虑到python的执行速度本身就比c++等语言慢,题目时间限制可以放开一些吗?比如20秒或者40秒现在的时限真的很难使用数据结构算法,一用就超时,有点难以施展。 
  • [技术干货] 鲲鹏BoostKit大数据Spark算法加速分享
    一、 命题:鲲鹏BoostKit大数据算法优化【命题内容】∶基于Spark 2.4.5和Hadoop 3.2.0版本,Spark GraphX中Betweenness介数中心性算法,用于描述图数据中每个节点在图中与其它节点的连通程度,体现了结点在图中的重要程度。介数中心性算法可以支撑的应用包括:金融行业中用于评价客户的信贷风险;互联网行业中用于评价社交网络中的用户影响力及活跃度;政府行业中用于识别疾病传播的关键人员、地点;运营商行业中用于识别潜在关键客户。服务器规格限制:一个队伍3台虚拟机,每台虚拟机的规格:华为云鲲鹏通用计算增强型Kc18核、32GB内存。系统盘:高IO 40GB;数据盘:高IO 500GB;带宽4Mbit/s。操作系统: openEuler 20.03 64bit with ARMSpark开源组件中Betweenness算法采用公开网络数据集com-Amazon(点数量33万,边数量92万,http://snap.stanford.edu/data/com-Amazon.html),算法精度为75%,计算耗时为60Os,精度低、计算效率差,无法满足实际业务需求,期望从算法技术原理、鲲鹏亲和性适配角度,优化算法的精度和效率,精度提升到90%以上,计算耗时降低到90s以下【答题要求】:1、 算法交付软件需要可以运行在Spark平台上,并提供部署运行的指导文档。2、 保持Betweenness算法的对外使用接口,与开源Spark算法一致。【提示】从鲲鹏亲和性(多核并发、数据结构优化、通信优化)和算法原理(降低算法计算复杂度)优化Spark分布式组件的Betweenness算法二、鲲鹏BoostKit大数据介绍Spark - 基本组成和概念① spark core: 实现了spark的基础功能(任务调度,内存管理。错误恢复,与存储系统交互等),以及对弹性api数据集的API定义。② spark SQL: 是spark用来操作结构化数据的程序包,支持多种数据源hive,parquet,josn等。 Spark SQL 通常用于交互式查询,但这一领域同类产品太多,更多作为MapReduce的替代者,用于批量作业。③ spark streaming: 对实时数据进行流式计算的组件,提供了用来操作数据流的API,并于spark core中的RDD API高度对应。 Spark Streaming 流式batch处理。主要同类产品为storm。④ spark MUib: 提供常见的机器学习(ML)功能的程序库。 提供了机器学习相关的统计、分类、回归等领域的多种算法实现。其一致的 API 接口大大降低了用户的学习成本。⑤ GraphX 是spark面向图像计算提供的框架和算法库, 支持分布式,Pregel 提供的 API 可以解决图计算中的常见问题。资源管理组件Cluster Manager(集群资源管理器): 是指在集群上获取资源的外部服务,目前有以下几种。Standalone : Spark原生的资源管理,由Master负责资源的管理。Hadoop Yarn : 由YARN中的ResourceManager负责资源的管理。Mesos : 由Mesos中的Mesos Master负责资源的管理。应用程序Application (应用程序)︰ 是指用户编写的Spark应用程序,包含驱动程序( Driver )和分布在集群中多个节点上运行的Executor代码,在执行过程中由一个或多个作业组成。Driver(驱动程序) : Spark中的Driver即运行上述Application的main()函数并且创建SparkContext,其中创建SparkContext的目的是为了准备Spark应用程序的运行环境。ClusterManager通信,进行资源的申请、任务的分配和监控等;当Executor部分运行完毕后,Driver负责将SparkContext关闭。通常用SparkContext代表Driver。作业执行Worker(工作节点)∶ 集群中任何可以运行Application代码的节点,类似于YARN中的NodeManager节点。在Standalone模式中指的就是通过Slave文件配置的Worker节点,在Spark on Yarn模式中指的就是NodeManager节点。Master(总控进程): Spark Standalone运行模式下的主节点,负责管理和分配集群资源来运行SparkAppliation。Executor(执行进程): Application运行在Worker节点上的一个进程,该进程负责运行Task,并负责将数据存在内存或者磁盘上,每个Application都有各自独立的一批Executor。在Spark on Yarn模式下,其进程名称为CoarseGrainedExecutorBackend,类似于Hadoop MapReduce中的YarnChild。作业(Job ) : RDD中由行动操作所生成的一个或多个调度阶段。调度阶段( Stage ): 每个作业会因为RDD之间的依赖关系拆分成多组任务集合,称为调度阶段,也叫做住务集。( TaskSet )。调度阶段的划分是由DAGScheduler来划分的调度阶段有Shuffle Map Stage和Result Stage两种。任务(Task): 具体执行任务。 分发到Executor上的工作任务,是Spark实际执行应用的最小单元。DAGScheduler : DAGScheduler是面向调度阶段的任务调度器,负责接收Spark应用提交的作业,根据RDD的依赖关系划分调度阶段,并提交调度阶段给TaskScheduler。TaskScheduler : TaskScheduler是面向任务的调度器,它接受DAGScheduler提交过来的调度阶段,然后以把任务分发到Work节点运行,由Worker节点的Executor来运行该任务。三、 鲲鹏Spark算法加速库开源Spark组件在鲲鹏平台的部署运行编译Spark组件: cid:link_3编译Hadoop组件: cid:link_2编译Zookeeper组件: 编译Zookeeper组件: cid:link_1安装部署Spark组件: cid:link_4鲲鹏的Maven仓库: cid:link_8华为云的中央仓库: cid:link_7开源Spark组件性能调优Spark平台调优cid:link_5Spark算法调优cid:link_6开源Spark组件Betweenness算法测试1、 开源Betweenness算法下载地址:源码: cid:link_02、 添加MainApp.scala主程序,执行betweenness算法,获取结果,计算精度和执行时间3、 在鲲鹏服务器上编译打包hbse_2.11-0.1.jar4、 wget http://snap.stanford.edu/data/com-Amazon.html上传到HDFShdfs put com-amazon.txt/betweenness/com-amazon.txt*开源代码工程及运行脚本会发送给参数队列3、 运行算法spark-submit \--master yarn --deploy-mode client\--name "Betweenness_opensource" \--num-executors 6 --executor-memory 14G --executor-cores 4 --driver-memory 4G\--jars "./lib/scopt_2.11-3.2.0.jar" \./lib/hbse_2.11-0.1.jar-i hdfs://betweenness/com-amazon.txt -g hdfs://betweenness/com-amazon-groundTruth.txt其中hbse_2.11-0.1.jar是开源betweenness算法软件包scopt 2.11-3.2.0.jar是依赖包,下载地址: http://www.java2s.com/example/iar/s/download-scopt211320 j ar-file.html-i是标明原始数据集在hdfs的路径﹐-g是标明数据集求解结果在hdfs的路径,用来计算精度。Betweenness算法介绍(介数中心性算法)算法原理介数中心性算法计算图中介数中心性值最大的K个结点,是网络中心性重要的度量参数之一,同时也是图计算领域的基础算法。介数中心性算法的目的是衡量图中每一个结点与其它结点之间的互动程度,经过结点的最短路径数越多,该结点的介数中心性值越大,结点在图中的重要性也就越高。结点的介数中心性值是基于图中最短路径经过该结点的次数计算,最后选取图中介数中心性值最大的K个结点,输出这K个结点的编号和介数中心性值。算法定义介数中心性的定义: 图中每个结点的介数中心性等于图中所有结点对的最短路径经过该结点的次数除以结点对之间所有最短路径总条数。每个节点v的介数中心性可通过以下公式计算:σst(v) 是从结点s到t的最短路径的数量,   σst(v) 是从结点s到t且经过结点v的最短路径数量。其中 σst(v)表示经过节点 v的s→t的最短路径条数, σst表示 s→t的最短路径条数。直观上来说,betweenness反映了节点v作为“桥梁”的重要程度。算法应用介数中心性算法可用于识别图上最重要的一批结点,可以支撑的应用包括:安平行业: 用于识别欺诈团伙中的核心成员、识别谣言传播的关键人员。金融行业: 用于评价客户的信贷风险。互联网行业: 用于评价社交网络中的用户影响力及活跃度。政府机关: 用于识别疾病传播的关键人员、地点。电信运营商: 用于识别潜在关键客户。鲲鹏BoostKit大数据:积极建设开源软件生态全面支持开源大数据支持开源Apache大数据各场景组件开源社区接纳ARM生态Hadoop、Hive、Hbase、Spark和Flink、ElasticSearch、Kudu等核心组件的开源社区支持ARM备注: Hadoop、ElasticSearch开源社区已经提供官方版本的ARM软件包鲲鹏镜像仓: cid:link_9开源数据虚拟化引擎openLooKeng , openLooKeng致力于为大数据用户提供极简的数据分析体验,让用户像使用“数据库”一样使用“大数据”。openLooKeng是一款开源的高性能数据虚拟化引擎。提供统一SQL接口,具备跨数据源/数据中心分析能力以及面向交互式、批、流等融合查询场景。同时增强了前置调度、跨源索引、动态过滤、跨源协同、水平拓展等能力。Spark组件提供原生的机器学习MLlib和图GraphX算法库,支持在分布式集群上运行。鲲鹏基于算法原理和芯片特征针对机器学习和图分析算法进行深入优化,实现相比原生算法性能提升50%。机器学习&图分析算法加速库提供以下算法优化,后续版本会持续更新增加算法。机器学习算法: 分类回归(随机森林、GBDT、SVM、逻辑回归、线性回归、决策树、PreFixSpan、KNN、XGBoost)算法、聚类(Kmeans、LDA、DBScan)算法、推荐(ALS)算法、特征工程(PCA、SVD、Pearson、Covariance、Spearman)算法图分析算法: 群体分析(极大团、弱团、Louvain、标签传播、连接组件、CC)、拓扑度量(三角形计数、Cluster Coefficient)算法、路径分析(最短路径、循环检测、广度优先搜索)、骨干分析(PageRank、亲密度、Kcore、Degree、TrustRank、PersonPageRank、Betweenness)算法、相似分类算法(子图匹配)、图表示学习类算法(Node2Vec)BoostKit图算法,加速亿级图谱分析某省级项目9000万节点,20亿边关系图谱社团发现类:基于业务场景选择实体,确定实体间的关系,从而构成具备业务属性的关系图谱。社团发现类算法能在此关系图谱上,挖掘抽象图中的关系稠密团体,为挖掘目标团伙提供数据基础。全量极大团挖掘算法:耗时1小时内,执行性能较友商提升6倍,局部稠密场景,友商是非精确求解,且无法算出结果。基于团渗透的社区发现算法:耗时1小时内,执行性能较友商提升5倍。BoostKit机器学习算法,加速十亿级样本特征分析某运营商局点,全量样本~10亿条,中标样本~10万条,模型精度由80%提升至99.9%。特征降维算法(PCA)∶提炼关键特征,降低计算复杂度,将 计算时间由5小时降低为1小时 ;聚类算法(DBSCAN)︰提取重要样本,降低专家复核成本, 从10万级样本规模降低为千级样本规模 。SVD的英文全称是Singular Value Decomposition,翻译过来是奇异值分解。这其实是一种线性代数算法,用来对矩阵进行拆分。拆分之后可以提取出关键信息,从而降低原数据的规模。因此广泛利用在各个领域当中,例如信号处理、金融领域、统计领域。在机器学习当中也有很多领域用到了这个算法,比如推荐系统、搜索引擎以及数据压缩等等。SVD算法不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域。是很多机器学习算法的基石。图分析算法优化方案:分布式PageRank算法1. 内存占用优化:基于稀疏压缩的数据表示,使得算法的内存占用下降30%,有效解决大数据规模下的内存瓶颈问题2. 收敛检测优化:简化收敛检测过程,使整体任务量减少5%-10%。3. 全量迭代+残差迭代组合优化:有效降低前期数据膨胀带来的shuffle瓶颈,整体性能可提升 0.5X-2X 。通过算法计算模式的自适应切换,整体shuffle量减少50%,性能较优化前平均提升50%+
  • [问题求助] 36期实战营的拓展资料
    能不能将这个赛题的一些专业名词给一些拓展资料,胖树、ring算法这些感觉读到之后都有点不明所以然(指完全没接触过AI infra的人)。希望组委会可以考虑一下
  • 33期有问题,main.cpp写错了,不反编译就是-1。35期这周还改的好吗
        main 中有两处错误:        1、3ms写成了3s,2ms写成了2s,导致运行超时        2、HAC 线程在完成一次任务后没有把 state 恢复为 HAC_IDLE,           这意味着每个 HAC 最多只运行一次就不运行了(hac_enc/hac_merge 里将 state 置为 BUSY,但线程完成后并未复位)