问题描述:有多个request_images对应多个register_images,我们需要通过彼此的关系将同一个人的request_images和register_images添加到sample中

request_images                                                   register_images

这里我们用request_images和register_images代表节点,边代表映射关系


import os
import networkx as nx
import json
#感谢天宇哥全程支援
#天宇哥代码,非原创#生成register_name对应的request_name图
def gen_graph(annotation_result: list) -> nx.Graph:G = nx.Graph()for line in annotation_result:line_list = line.strip().split(',')did = line_list[1]request_name = did.lstrip('00-')register_list = line_list[2:]G.add_node(request_name)if register_list[0]:for register_name in register_list:G.add_edge(register_name, request_name)return Gdef create_sample(register_list: list, request_list: list, register_path: str, request_path: str, ids=None) -> dict:"""生成sample@param register_list:@param request_list:@param register_path: register图片的地址前缀@param request_path: request图片的地址前缀@param ids: 若ids为None,则生成p_sample,若ids为数字,则n_sample@return: sample"""register_images = [os.path.join(register_path, img) for img in register_list]request_images = [os.path.join(request_path, img) for img in request_list]group_id = 'airport_did_check_20210409_10wan'if not isinstance(ids, int):register_name = os.path.basename(register_images[0]).rstrip('.jpg')ids = [f"{group_id}_{register_name}"]else:ids = [f"{group_id}_impose{ids}"]sample = {'ids': ids,'group_id': group_id,'register_images': register_images,'request_images': request_images}return sampledef np_from_g_list(g_list, register_path, request_path):n_data = {'images': []}p_data = {'images': []}counter = 0for g in g_list:img_name_list = list(g.nodes)register_list = []request_list = []for img_name in img_name_list:if "___0_" in img_name:           # pattern "___0_" is check/register_imageregister_list.append(img_name)elif "___ch" in img_name:         # pattern "___ch" is did/request_imagerequest_list.append(img_name)else:passif register_list:sample = create_sample(register_list, request_list, register_path, request_path)p_data['images'].append(sample)else:sample = create_sample(register_list, request_list, register_path, request_path, ids=counter)n_data['images'].append(sample)counter += 1return p_data, n_dataif __name__ == '__main__':txt_path = './airport_did_check0401/bm_files/annotation_result.txt'register_path = '/Users/huhao/Documents/Aibee/datasetcope/study_project/'request_path = '/Users/huhao/Documents/Aibee/datasetcope/study_project/'with open(txt_path, 'r') as txt:result= txt.readlines() # 读取全部行G = gen_graph(result)g_list = list(G.subgraph(c) for c in nx.connected_components(G))print(f"The total nodes number is: ", len(g_list))p_data, n_data = np_from_g_list(g_list, register_path, request_path)    with open('n_samples.json', 'w') as f:json.dump(n_data, f, indent=4)with open('p_samples.json', 'w') as fp:json.dump(p_data, fp, indent=4)print('done!')

利用图将同一个人的request_images和register_images添加到sample中相关推荐

  1. 微软熊辰炎:如何利用图神经网络解决半结构化数据问题?

    对于许多信息检索和知识图谱研究者来说,究竟应该使用抽象的结构化信息进行表示学习还是使用海量的文本信息始终是一个富有争议的话题.在本届智源大会上,来自微软研究院的高级研究员熊辰炎博士带来了题为" ...

  2. excel中如何对矩阵得对角线进行求和_如何利用图卷积网络进行图形深度学习(第2部分)...

    图上的机器学习是一项艰巨的任务,由于高度复杂但信息量丰富,本文是关于如何利用图卷积网络(GCN)进行深度学习的系列文章中的第二篇.我将简要回顾一下上一篇文章: 图形卷积网络的高级介绍 具有谱图卷积的半 ...

  3. C语言利用图的邻接矩阵的存储方式实现拓扑排序

    C语言利用图的邻接矩阵的存储方式实现拓扑排序 在拓扑排序中,我们的对象是有向无环图,这种图是描述工程进行过程的有效工具.比如"课程开课顺序,施工进程,软件开发进程",我们在使用有向 ...

  4. [EGNN] Exploiting Edge Features for Graph Neural Networks 利用图神经网络的边特征 论文详解 CVPR 2019

    文章目录 1 简介 1.1 GAT和GCN的局限性 1.2 EGNN的创新点 2 相关工作 3 EGNN网络 3.1 符号定义 3.2 EGNN和GNN的对比 3.3 Doubly stochasti ...

  5. Typora写作上传图失败怎么解决,利用图床教你解决问题

    Typora写作上传图失败怎么解决,利用图床教你解决问题 Typora是一款非常好用的富文本Markdown编辑器,笔者在它转为买断制后,依然选择了付费使用.但是写作过程中发现有一个很大的问题,就是当 ...

  6. 风险管理系列课程二:利用图技术优化反洗钱解决方案

    风险管理系列课程 随着相互关联的全球金融市场在规模和复杂性上快速增加,风险评估和监控所面临的挑战变得日益艰巨.一些复杂的金融工具数量激增,如信用违约互换和抵押担保证券,而且一旦出错,就会付出数以万亿的 ...

  7. 5.4.2_利用图块复制技术来处理动画背景

    5.4.2_利用图块复制技术来处理动画背景 <!DOCTYPE html> <html><head><meta charset="UTF-8&quo ...

  8. Information Sciences 2022 | 利用图嵌入和图神经网络实现社交网络中的影响力最大化

    目录 前言 1. 影响力最大化 2. SGNN 2.1 标签生成 2.2 struc2vec 2.3 GNN特征处理 2.4 回归预测 2.5 整体框架 3. 实验 3.1 数据集 3.2 评价指标 ...

  9. IGNN图卷积超分网络:挖掘隐藏在低分辨率图像中的高清纹理

    本文转载自商汤泰坦公开课. 摘要 · 看点 在NeurIPS 2020上,南洋理工大学.商汤和哈工大研究员联合提出了跨尺度的图卷积超分网络IGNN.近些年来,Non-local方法利用同尺度的自相似性 ...

最新文章

  1. 日志文件列表 读书笔记《Linux 系统管理技术手册(第二版)》
  2. mysql连接池_基于Swoole的通用连接池 - 数据库连接池(life)
  3. Highlighting System
  4. 五种方式让你在java中读取properties文件内容不再是难题
  5. python whl安装 缺少dll 查看具_解决Python安装时报缺少DLL问题【两种解决方法】
  6. 程序员选择公司的8个标准
  7. springboot的学习笔记,这个很重要
  8. python 异常处理高级形式例子_Python 异常处理的实例详解
  9. 关于Win7 x64下过TP保护(应用层)
  10. 设计模式08—模板方法模式
  11. 基于密度峰值的聚类(DPCA)
  12. GESD 离群值检验——理论与 Python 实现
  13. oracle 中将number类型的数据转化成指定格式的小数
  14. axios和ajax的区别是什么
  15. window统计文本字节_在线字数统计工具-统计字符字节汉字数字标点符号-计算word文章字数-使用帮助-字的区别...
  16. 怎样删除软件残留在添加或删除程序中的信息?
  17. Java项目源码下载SSM水果蔬菜商城批发网站|电商购物系统
  18. SAP NetWeaver 7.01 SR1 SP3 ABAP Developer Edition 电驴下载
  19. 目标检测YOLO实战应用案例100讲-基于卷积神经网络的可见光遥感影像船只目标检测研究
  20. 互联网数据泛滥下,你的隐私数据要如何保护?

热门文章

  1. Paint 滤镜效果
  2. 音乐相册如何制作?一步一步教会你
  3. 2014年武汉的IT行情好像不太好(续):20个月过后,再看当时面试过的几个公司--武汉财富基石-崩盘,辣妈萌宝-创业失败,朋友公司转交他人管理
  4. 剪映导出SRT字幕超详细图文教程
  5. java中的null的基本含义
  6. Detectron2系列:如何为detectron2做贡献
  7. 【Adobe xd】windows11安装的Adobe XD打不开解决方案
  8. 阿里云服务器安装MYSQL数据库并远程连接访问
  9. 软件开发速学计网:入门
  10. 走近源码:神奇的HyperLogLog