计算机

计算机 · 圈子

8559 位酷友已加入

计算机圈子中包含常用的技术文档、源代码、模型、数据集、学习教程、技术报告等干货资料,加入圈子可以上传、下载资料,也可以使用提问来寻求资料或分享你认为有价值的站外链接~

关注推荐最新

热门标签

资源

【毕业设计】利用机械臂下五子棋、倒水、物品分拣

项目概述 本项目实现了安卓端语音控制机器人完成下五子棋、倒水、物品分拣、智能示教、身份认证以及颜值检测。 演示视频 五子棋:https://www.bilibili.com/video/av70817190 倒水:https://www.bilibili.com/video/av70817949 物品分拣:https://www.bilibili.com/video/av71569842 智能示教:https://www.bilibili.com/video/av74145669 主要内容 代码分为3个部分: 1、机械臂运动学控制 2、物品识别、位置检测及人脸识别 3、安卓平板app 硬件价格以及购买地址放在:小憨机器人硬件价格表以及购买网址.xlsx 教程 【视觉机械臂抓取入门教程】第一次课 :流程总览https://www.bilibili.com/video/BV1dE411T73U 【如何快速制作自己的视觉抓取机械臂】视觉机械臂抓取入门教程 第二次课 https://www.bilibili.com/video/BV11t4y1C76N Tips: 由于项目时间仓促,只用了不到两个月,项目只是完成了一些简单的功能,也还未来得及整理代码,若有问题,可以加QQ了解:965295412 本项目转载自:https://github.com/Kkoutianwu/RISE-Robot 作者的B站主页:https://space.bilibili.com/109454273?spm_id_from=333.788.b_765f7570696e666f.1

资源

目标检测数据集制作

objectDetectionDatasets 目标检测数据集制作:VOC,COCO,YOLO等常用数据集格式的制作和互相转换脚本,demo/目录提供的原始的voc格式的20张原图和对应20个.xml标注。下面的脚本都可以通过这个demo数据跑通。 voc_split_trainVal.py 该脚本用于生成voc/目录下的ImageSets/..目录,分割了训练和验证集 voc_to_coco_V1.py 和 voc_to_coco_V2.py 这两个脚本都是实现从voc的.xml标注格式转换到coco的.json格式,只是有所区别 v1版本实现了转换的同时进行训练/验证的分割 v2版本包含了segemetation字段(当训练htc等需要分割的任务时候网络需要用到) convert_voc_to_yoloV5.py 和 convert_voc_to_yoloV3.py 两个脚本实现的功能几乎相同,灵活取用 V5脚本实现将voc格式的数据转化为yoloV5需要的.txt标注文件,运行该脚本,会在voc/目录下生成 worktxt/目录(yolo需要的格式)。 V3这个脚本除了生成.txt的标注(同上),还会生成一个trianval.txt的索引,以前的yolov3系列用的多一点 coco_split_trainVal.py 该脚本实现coco格式的数据分割出训练集和验证集,同时里面还实现了一个去除背景图的方法(没有标注框的图),可以结合上面的 voc_to_coco_v2.py使用。 make_voc.py(其余各种格式转voc) 前面没有写coco转voc格式的脚本,make_voc.py就提供了一个制作voc格式数据的通用套路(核心代码)。 来源https://github.com/DLLXW/objectDetectionDatasets

计算机

计算机·圈子   首发

阿托 更新了
资源

【Demo】对PASCAL VOC 数据集进行数据增强

对PASCAL VOC 数据集进行数据增强 目的:对VOC数据集的对象检测的数据进行数据增强。 项目目录解析 使用script对数据集增强 1.获取帮助 显示结果: 2.增强例子 hvs调节 随机亮度调节 高斯噪点 旋转指定角度 水平翻转 结果展示: 来源https://github.com/Mygithub-Yao/tools-VOC

资源

个性化新闻推荐系统

个性化新闻推荐系统 说明 本推荐系统使用的推荐算法包括协同过滤(Collaborative Filtering)、基于内容相似度的推荐(Content-based Recommendation)与热点新闻推荐(Hot News Recommendation): 协同过滤的实现依托于Mahout的提供库; 基于内容的相似度推荐在原始算法上基于相关论文做了自主的改进; 热点新闻推荐顾名思义是取最近被最多用户浏览过的新闻进行推荐。 主要使用的库(Lib): Ansj:基于内容的推荐部分用以分词,以及其内含的TFIDF算法。 Quartz:推荐系统定时运行的设定。 Mahout:使用内置的协同过滤算法。 Jfinal:使用内置的ActiveRecord与Db工具,对推荐系统中的数据库表做了实体类映射,以简化数据库相关操作。 本推荐系统需要基于【新闻模块】使用,此处对于【新闻模块】的定义是:**有规律地进行新闻采集,并通过公共平台对用户进行新闻展示与推送的应用。**当然,这是实际应用的需求,如果只是自己做研究或者实验的话,可以只使用测试数据即可。 使用 预备工作 数据库配合 (该步骤主要是为了说明推荐系统要求交互的数据。真实建库的话,直接在新建的数据库中运行测试数据,即可完成所有建表工作,附带提供的测试数据。) 本推荐系统目前只支持与MYSQL数据库进行交互 本系统需要与五个表进行交互:用户表(users),新闻表(news),新闻模块表(newsmodules),浏览记录表(newslogs),推荐结果表(Recommendations)。 用户表users 存储用户基本信息的表。要求至少拥有两个字段:用户id(id:bigint),用户喜好关键词列表(pref_list:json),用户最近登录时间(latest_log_time:timestamp)。 新闻表news 存储新闻基本信息的表。要求至少拥有三个字段:新闻id(id:bigint),新闻文本内容(content:text),所属模块(module_id)。 新闻模块表newsmodules 存储新闻模块信息的表。要求至少拥有两个字段:模块id(id:int),模块名称(name:text),抓取时间/新闻日期(news_time:timestamp)。 浏览记录表newslogs 存储用户浏览新闻记录的表。要求至少拥有三个字段:记录id(id:bigint),用户id(user_id:bigint),新闻id(news_id:bigint),浏览时间(view_time:timestamp),用户对新闻的偏好程度(prefer_degree[0:仅仅浏览,1:评论,2:收藏])。 推荐结果表Recommendations 存储推荐系统为用户生成的推荐结果及用户反馈的表。要求至少拥有五个字段:推荐结果id(id:bigint),用户id(user_id:bigint),新闻id(news_id:bigint),推荐结果生成时间戳(derive_time:timestamp),用户反馈(feedback:bit[0:用户未浏览,1:用户进行了浏览]),结果生成的对应推荐算法(derive_algorithm:int[0:协同过滤,1:基于内容的推荐,2:热点新闻推荐]) 数据库连接配置 在项目根目录下的res目录下,修改dbconfig.properties文件中有关数据库的配置: 注意,数据库的编码设置应为utf8mb4。(mb4支持emoji字符) 系统启动-Quick Start 完成数据库配置后,依次四个步骤: 1.在com.qianxinyao.TomNewsRecommender包下,找到类Main; 2.选择推荐算法。设置boolean类型的enableCB,enableCF,enableHR变量,分别代表推荐过程中是否启用协同过滤推荐算法、基于内容的推荐算法、基于热点新闻的推荐算法。若均设为true,表示三种算法均工作,一起为用户生成推荐结果; 3.选择推荐对象。推荐对象分为三种:全体用户,活跃用户(最近一段时间有登录行为)与自定义用户(自己指定的用户),若选择自定义用户,需要构建包含目标用户id(long)的List; 4.选择系统运行方式。运行方式分为两种:一次运行和定时运行。一次运行即只为用户进行一次推荐生成,生成结束后则系统停止,若要再生成推荐,需要重新启动系统。而定时运行则可以定时为用户生成推荐结果,若不强制停止系统,则系统会一直运行下去。(定时运行时间在paraConfig.properties文件中设定) 以下是示例代码: 日常使用 系统运行的各类参数都可以在根目录下src/main/res目录下的paraConfig.properties文件中进行配置。默认配置是推荐配置。 若需要推荐系统能在每次生成有效的推荐,只要【新闻模块】保持以一定频率抓取一定量的新闻并入库news表。(最好与推荐系统定时推荐的频率相同,并在推荐系统运行之前完成一次抓取,推荐每天抓取一次新闻,并进行一次推荐生成。) 注意:入库的新闻要标注module_id,详情可参见数据库表与com.qianxinyao.TomNewsRecommender包下的NewsScraper类中的代码。 测试数据 在Mysql数据库中运行data.sql中的sql语句,可生成数据库结构与测试数据。 测试数据中包含以下几个部分: users表:7个测试用户 news表:306个2017-12-12日从网易首页抓取的测试新闻 newsmodules表:17个测试模块 newslogs:测试推荐算法效果用的9条浏览记录 要查看推荐系统在测试数据上运行的效果,只需在Main类下执行: 预期的推荐生成结果如下: 若对测试数据进行一次协同过滤,将生成0条推荐。 若对测试数据进行一次基于内容的推荐,将为用户1(id=1)推荐85,87,89,104这四条新闻(有重复标题的新闻,新闻标题中的“合同”关键词匹配上了用户的喜好关键词),为用户2推荐89新闻(重复标题的新闻),推荐用户3推荐87,85,100这三条新闻(新闻标题中的“合同”关键词匹配上了用户的喜好关键词)。 若对测试数据进行一次基于热点新闻的推荐,将分别为用户1推荐103,104,为用户2推荐100,104,为用户3推荐100,101,因为最近被浏览得最多的新闻就是这三个拥有浏览记录的用户看过的那些新闻(100,101,102,103,104)。 额外说明 1.com.qianxinyao.TomNewsRecommender下的NewsScraper类是抓取网易的测试新闻时用的类,大家也可以用这个类继续采集新闻。该类默认对网易新闻首页的所有新闻进行一次抓取入库。 2.协同过滤的效果目前不太稳定/可控,因为采用的是Mahout内置的协同过滤工具。一般来说,新闻模块的活跃用户越多,则协同过滤效果越好,也越明显。若有需求,我会在后期自己实现能稳定生成指定数量的推荐结果的协同过滤算法。 3.一般当协同过滤与基于内容的推荐算法生成的推荐数目不足时,可以用基于热点新闻的推荐进行数量补充。 转载自:https://github.com/bluemapleman/NewsRecommendSystem

计算机

计算机·圈子   首发

阿托 更新了
资源

一键中文数据增强

NLP Chinese Data Augmentation 一键中文数据增强工具 使用:pip install nlpcda pypi:https://pypi.org/project/nlpcda/ 介绍 一键中文数据增强工具,支持: 随机实体替换 近义词 近义近音字替换 随机字删除(内部细节:数字时间日期片段,内容不会删) NER类 BIO 数据增强 随机置换邻近的字:研表究明,汉字序顺并不定一影响文字的阅读理解<<是乱序的 中文等价字替换(1 一 壹 ①,2 二 贰 ②) 翻译互转实现的增强 使用simbert做生成式相似句生成 Cluster2Cluster生成更多样化的新数据 经过细节特殊处理,比如不改变年月日数字,尽量保证不改变原文语义。即使改变也能被猜出来、能被猜出来、能被踩出来、能被菜粗来、被菜粗、能菜粗来 计划中的未来内容 增加多线程操作,一键操作 使用 WordNet数据库 来做同义词替换 随机噪声注入?随机插入一些字符,太简单实现了。 利用pingyin?https://github.com/mozillazg/python-pinyin 基于Word2Vec、BERT等词向量的词语近距离的替换、MASK猜测置换 ??但是无法控制它生成,以及缺点MASK位置。 引入TF-IDF、TextRank、关键词字典等,可以选择:替换/不替换关键词 ?? 意义 在不改变原文语义的情况下,生成指定数量的训练语料文本 对NLP模型的泛化性能、对抗攻击、干扰波动,有很好的提升作用 参考比赛(本人用此策略+base bert拿到:50+-/1000):https://www.biendata.com/competition/2019diac/ ⚠️ 单纯刷准确率分数的比赛,用此包一般不会有分数提升 API 1.随机(等价)实体替换 参数: base_file :缺省时使用内置(公司)实体。对公司实体进行替换 是文本文件路径,内容形如: 实体1 实体2 ... 实体n create_num=3 :返回最多3个增强文本 change_rate=0.3 : 文本改变率 seed : 随机种子 from nlpcda import Randomword test_str = '''这是个实体:58同城;今天是2020年3月8日11:40,天气晴朗,天气很不错,空气很好,不差;这个nlpcad包,用于方便一键数据增强,可有效增强NLP模型的泛化性能、减少波动、抵抗对抗攻击''' 2.随机同义词替换 参数: base_file :缺省时使用内置同义词表,你可以设定/自己指定更加丰富的同义词表: 是文本文件路径,内容形如(空格隔开): Aa01A0 人类 生人 全人类 id2 同义词b1 同义词b2 ... 同义词bk ... idn 同义词n1 同义词n2\ create_num=3 :返回最多3个增强文本 change_rate=0.3 : 文本改变率 seed : 随机种子 3.随机近义字替换 参数: base_file :缺省时使用内置【同义同音字表】,你可以设定/自己指定更加丰富的同义同音字表: 是文本文件路径,内容形如(\t隔开): de 的 地 得 德 嘚 徳 锝 脦 悳 淂 鍀 惪 恴 棏 拼音2 字b1 字b2 ... 字bk ... 拼音n 字n1 字n2\ create_num=3 :返回最多3个增强文本 change_rate=0.3 : 文本改变率 seed : 随机种子 4.随机字删除 参数: create_num=3 :返回最多3个增强文本 change_rate=0.3 : 文本改变率 seed : 随机种子 5.NER命名实体 数据增强 输入标注好的NER数据目录,和需要增强的标注文件路径,和增强的数量,即可一键增强 Ner类参数: ner_dir_name='ner_data' : 在ner数据放在ner_data目录下(里面很多.txt) ner_dir_name提供的目录下是各种标注数据文件,文件内容以标准的NER 的BIO格式分开: 字1 \t TAG 北 \t B-LOC 京 \t I-LOC 今 \t O 天 \t O 很 \t O 热 \t O 。 \t O ignore_tag_list=['O'] : 数据里面O标签的不需要管 data_augument_tag_list=['P', 'LOC'] : 只对P、LOC标签的实体做增强 augument_size=3 : 每条标注数据,最多新增强数量 seed=0 : 随机种子/ 可缺省 调用函数augment()参数 file_name: 1条标注训练文件的路径,如0.txt ner.augment(file_name='0.txt') 例子: 6.随机置换邻近的字 char_gram=3:某个字只和邻近的3个字交换 内部细节:遇到数字,符号等非中文,不会交换 7.等价字替换 参数: base_file :缺省时使用内置【等价数字字表】,你可以设定/自己指定更加丰富的等价字表(或者使用函数:add_equivalent_list): 是文本文件路径,内容形如((\t)隔开): 0 零 〇 1 一 壹 ① ... 9 九 玖 ⑨ create_num=3 :返回最多3个增强文本 change_rate=0.3 : 文本改变率 seed : 随机种子 添加自定义词典 用于使用之前,增加分词效果 8.翻译互转实现的增强 1.百度中英翻译互转实现的增强 note: 申请你的 appid、secretKey: http://api.fanyi.baidu.com/api/trans 2.谷歌翻译互转实现的增强 pip 包:py-googletrans 免费的谷歌翻译API,需要翻墙且不稳定 https://py-googletrans.readthedocs.io/en/latest pip install googletrans 9.simbert 来源:https://github.com/ZhuiyiTechnology/pretrained-models 参考:https://github.com/ZhuiyiTechnology/simbert 下载其中任意模型,解压到任意位置赋值给model_path变量: 名称 训练数据大小 词表大小 模型大小 下载地址 SimBERT Tiny 2200万相似句组 13685 26MB 百度网盘(1tp7) SimBERT Small 2200万相似句组 13685 49MB 百度网盘(nu67) SimBERT Base 2200万相似句组 13685 344MB 百度网盘(6xhq) 参数: config:model_path(上述下载的模型位置),设备(cpu/cuda...)、最大长度、随机种子 sent:需要增强的句子 create_num:构造的句子数量 10.Cluster2Cluster 参考:数据增强没效果?试试用Cluster-to-Cluster生成更多样化的新数据吧 来源https://github.com/425776024/nlpcda

资源

基于tensorflow深度学习的中文的命名实体识别

NER 当前版本基于双向循环神经网络(BiRNN) + 条件随机场(CRF)来完成实体的标注。 基本思路是利用深度神经网络提取特征,从而避免了手动提取特征的麻烦。 第二部和传统的方式一样,使用CRF在做最后的标注。 该程序使用Tensorflow完成,使用了当前较新的DataSet API,使数据预处理和feed更优雅。 由于使用了新的API, Tensorflow版本必须大于1.2.0,代码升级后使用的是TensorFlow1.4,不确定原来Tensorflow1.2是否还兼容。 如何使用? 建议安装tensorflow >= 1.4.1 提供训练所需的数据,具体格式在resource文件夹里有展示。但是需要自行分词。只需提供3个文件: source.txt target.txt 和 预训练的词向量。 训练词向量,训练工具可以是gensim的word2vector或者glove等等,然后将词和对应的词向量以以下格式保存。 具体格式是: 单词A:0.001,0.001,0.001,.... 单词B:0.001,0.001,0.001,.... 单词C:0.001,0.001,0.001,.... . . . 有些训练工具得出的文件结果就是以上格式不需要修改. 程序默认embedding size是300, 可以按需求做更改 (注意:训练词向量的数据量越大越好,不只限于当前语聊,如果需要训练好的词向量可以联系作者。) 修改config.py里的文件存路径,所有的配置都在这个文件里。 训练:修改config.py tf.app.flags.DEFINE_string("action", 'train', "train | predict") $ python rnn.py

资源

基于字符级卷积神经网络的细粒度的中文情感分析以及具体的应用

C-CNN-for-Chinese-Sentiment-Analysis 一个简单的NLP项目(文本情感分析)的flask后端API,修改了全局model load的方式,增加了模型推理的速度,使用nginx搭配Gunicorn启动Flask,使用虚拟环境搭配sh的启动方式,可以直接对model进行一键重启,并有错误日志监控。 使用方法 首先在服务器上部署虚拟环境 ,假设虚拟环境在/home,cd /home 进入home 在hoem文件夹中使用python3 -m venv v1创建虚拟环境,v1就是虚拟环境的名字,然后使用souce v1/bin/activate加载虚拟环境 在虚拟环境下使用pip install -r requirement.txt 安装所需要的库,然后使用chmod +777 restart.sh部署模型的后端 使用ip:8000/predict是post的地址,使用python C-CNN-SA-client.py即可模拟请求,注意模型第一次初始化的时间因为需要加载预训练模型,推理速度有些慢,目前单机单线曾运行的正常推理速度在100ms之内,多进程部署会继续提速 代码结构:使用前后分离的结构,完全使用Python实现 C-CNN-SA-server.py表示后端的model api,直接通过get传参的形式进行,直接搭配nginx+Gunicorn部署即可 C-CNN-SA-client.py表示模型前端的调用,传入用户的UGC内容,然后使用TextCNN的模型进行识别,模型第一次初始化的时间因为需要加载预训练模型,推理速度有些慢,目前单机单线曾运行的正常推理速度在100ms之内,多进程部署会继续提速 后端启动打印的log: 前端启动打印的结果: Jupyter notebook 打印的结果: 本地Pycharm输出的结果: 基于字符级卷积神经的中文情感分析: 1.将顾客打分和评论情感进行两极映射,使用数据自动标注和基于弱监督预训练的数据增强方式自动扩充和优化数据集,实验证实了在情感分类中,使用本文的字符级卷积神经网络(C-CNN-SA)可以在不依赖分词的情况下,达到的精度和 F 值均高于词级粒度 2.在字符级向量化分类模型中,结果显示卷积神经网络在短文本情感分类中效果最好,字符级卷积神经网络在训练速度和效果上优势明显 3.模型的最后一层改写输出为积极标签的概率,这种输出方式符合情感强度的表达,即输出0.9位这段文字的情感强度,一般大于0.5即视为积极,数字越大,强度越强烈,反则反之,文本分数为0.1的则为消极情感,极性较强 转载自:https://github.com/CarryChang/C-CNN-for-Chinese-Sentiment-Analysis

资源

基于CIFAR10图像的深度卷积生成对抗网络实现

背景 作者曾尝试使用cifar10建立GAN模型,这与MNIST图像集有所不同。因此结果不够好于预期。也许颜色尺寸是更复杂的生成因素。根据许多其他实现,网站和博客的介绍,cifar10的深度卷积模型是由自己的例程创建的。并添加一些重要提示。 编码条件 python 3.5.2 tensorflow 1.3.0 cifa10 python image set (https://www.cs.toronto.edu/~kriz/cifar.html) 构建模型 判别器 D: (100, 32, 32, 3) // input image shape with batch size 100 D: (100, 16, 16, 64) // after conv2d 5x5 stride 2 D: (100, 8, 8, 128) // after conv2d 5x5 stride 2 D: (100, 4, 4, 256) // after conv2d 5x5 stride 2 D: (100, 2, 2, 512) // after conv2d 5x5 stride 2 D: (100, 2048) // flatten D: (100, 1) // sigmoid out 生成器 G: (100, 100) // noise vector with batch size 100 G: (100, 2048) // after linear G: (100, 2, 2, 512) // reshape G: (100, 4, 4, 256) // after deconv2d 5x5 stride 2 G: (100, 8, 8, 128) // after deconv2d 5x5 stride 2 G: (100, 16, 16, 64) // after deconv2d 5x5 stride 2 G: (100, 32, 32, 3) // after deconv2d 5x5 stride 2 and tanh out 注意 除最后一层外的所有层。在描述符中使用relu, 对判别器(1e-3)和生成器(1e-4)使用不同的学习率 使用axis =“ channel index”的批处理归一化 在生成器中使用tanh输出 在第一层和最后一层不使用批处理规范化 一次训练鉴别器,两次生成器 结果样本 视频结果参考:https://www.youtube.com/watch?v=_REVVMWa9aE CIFAR10图像数据集可参考: https://www.ligongku.com/resource/737 转载自:https://github.com/4thgen/DCGAN-CIFAR10

资源

OpenCL逐步实现

OpenCL示例 OpenCL安装指南 可以选择一种或两种方式使用OpenCL: 1.在Ubuntu 16.04 64位上安装OpenCL 2.Docker使用OpenCL 在Ubuntu 16.04 64位上安装OpenCL 通过Docker使用OpenCL 使用Docker十分方便,你无需为所有OpenCL进行配置和安装环境。当然,首先安装Docker https://docs.docker.com/Community Edition,然后在DockerHub中搜索相关映像。 https://hub.docker.com/ 完成Docker安装后,请按照chihchun / opencl-intel中的说明进行操作。如果一切正常,请在命令行中使用以下命令: 它将打印与验证安装类似的消息。 验证安装 使用以下说明,成功安装将显示以下相同消息: 如何在GCC中编译OpenCL示例? 准确地说,OpenCL中的内核编译是在运行时进行的(库调用)。 在Gcc中,仅需标头(Kronos站点上的可用标头)即可进行编译。但是,要进行链接,您必须安装与OpenCL兼容的驱动程序。 在Makefile中: 对于Mac OSX:-framework OpenCL 对于Linux:-lOpenCL 其他问题 git错误:无法自动检测电子邮件地址 按照上面的说明进行操作后,它仍然出现相同的错误消息。本项目重置user.email并user.name使用git config --local user.email "you@example.com",git config --local user.name "Your name" 转载自:https://github.com/ysh329/OpenCL-101

问答

使用均值平移的图像分割如何实现?

谁能帮助我了解“均值漂移”细分实际上是如何工作的? 这是我制作的8x8矩阵 可以使用上面的矩阵解释均值移位分割如何将3个不同级别的数字分开吗?

  • 1
  • 96
  • 97
  • 98
  • 168
前往