Vi-System密钥压缩包avi-16568t.zip解压指南

版权申诉
0 下载量 8 浏览量 更新于2024-10-14 收藏 1KB ZIP 举报
资源摘要信息: "AVI_-_16568t.zip是一个压缩文件,采用ZIP格式进行数据封装和压缩。该文件可能包含与Vi-System相关的密钥或配置信息,Vi-System可能是一个特定的软件系统或框架。ZIP压缩是一种广泛使用的文件压缩方法,它可以减少文件大小,从而节省存储空间,并便于文件在网络中传输。在这个上下文中,'Key for Vi-System'可能指的是一个用于该系统认证或授权的密钥文件。文件名称列表中仅提供了一个文件:AVI - 16568t.xml,这表明压缩包内可能仅包含一个XML格式的文件。XML(可扩展标记语言)是一种用于存储和传输数据的标记语言,它在数据交换、配置文件以及Web服务中有着广泛的应用。" 知识点: 1. ZIP压缩格式:ZIP是一种广泛使用的文件压缩格式,具有较高的压缩率和良好的压缩兼容性,支持无损压缩。ZIP格式的文件通常具有.zip作为文件扩展名,它能够将多个文件或文件夹压缩成一个压缩包,以减少文件大小,便于文件传输和存储。ZIP格式的压缩和解压缩工具在各种操作系统平台上都有提供,如Windows上的WinRAR、7-Zip,macOS和Linux上的7-Zip等。 2. Vi-System软件系统:虽然没有具体说明Vi-System是一个什么类型的软件系统,但从标题和描述中可以推测它可能是一个特定的软件平台或应用程序,需要密钥文件来实现某些认证或授权功能。密钥文件一般用于系统配置、加密、解密或验证用户身份等操作。 3. 文件压缩与解压缩:文件压缩是将一个或多个文件或文件夹通过特定算法减少其存储空间的过程,常见的压缩算法有ZIP、RAR、7z、TAR等。压缩文件可以有效节省磁盘空间和网络带宽。解压缩则是压缩的逆过程,即将压缩包还原成原文件的过程。压缩和解压缩在日常计算机操作中是非常常见的,涉及到的文件类型有.zip、.rar、.7z等。 4. XML格式:XML(Extensible Markup Language)是一种标记语言,用于存储和传输数据。与HTML(用于在网页浏览器中显示数据的标记语言)不同,XML不提供数据的显示方式,而是专注于描述数据的结构和含义。XML文件通常以.xml为文件扩展名。在文件压缩包中出现的AVI - 16568t.xml文件表明此压缩包可能用于存储与Vi-System系统相关的一些配置或数据信息。 5. 文件传输与存储:文件压缩在数据传输和存储中有显著优势。在数据传输方面,较小的文件大小意味着更快的下载和上传速度,特别是通过网络或电子邮件发送文件时,压缩可以显著减少传输时间。在存储方面,文件压缩能够使更多的文件存储在有限的空间内,从而提高存储效率。这是文件压缩技术被广泛应用的重要原因之一。

import torch, os, cv2 from model.model import parsingNet from utils.common import merge_config from utils.dist_utils import dist_print import torch import scipy.special, tqdm import numpy as np import torchvision.transforms as transforms from data.dataset import LaneTestDataset from data.constant import culane_row_anchor, tusimple_row_anchor if __name__ == "__main__": torch.backends.cudnn.benchmark = True args, cfg = merge_config() dist_print('start testing...') assert cfg.backbone in ['18','34','50','101','152','50next','101next','50wide','101wide'] if cfg.dataset == 'CULane': cls_num_per_lane = 18 elif cfg.dataset == 'Tusimple': cls_num_per_lane = 56 else: raise NotImplementedError net = parsingNet(pretrained = False, backbone=cfg.backbone,cls_dim = (cfg.griding_num+1,cls_num_per_lane,4), use_aux=False).cuda() # we dont need auxiliary segmentation in testing state_dict = torch.load(cfg.test_model, map_location='cpu')['model'] compatible_state_dict = {} for k, v in state_dict.items(): if 'module.' in k: compatible_state_dict[k[7:]] = v else: compatible_state_dict[k] = v net.load_state_dict(compatible_state_dict, strict=False) net.eval() img_transforms = transforms.Compose([ transforms.Resize((288, 800)), transforms.ToTensor(), transforms.Normalize((0.485, 0.456, 0.406), (0.229, 0.224, 0.225)), ]) if cfg.dataset == 'CULane': splits = ['test0_normal.txt', 'test1_crowd.txt', 'test2_hlight.txt', 'test3_shadow.txt', 'test4_noline.txt', 'test5_arrow.txt', 'test6_curve.txt', 'test7_cross.txt', 'test8_night.txt'] datasets = [LaneTestDataset(cfg.data_root,os.path.join(cfg.data_root, 'list/test_split/'+split),img_transform = img_transforms) for split in splits] img_w, img_h = 1640, 590 row_anchor = culane_row_anchor elif cfg.dataset == 'Tusimple': splits = ['test.txt'] datasets = [LaneTestDataset(cfg.data_root,os.path.join(cfg.data_root, split),img_transform = img_transforms) for split in splits] img_w, img_h = 1280, 720 row_anchor = tusimple_row_anchor else: raise NotImplementedError for split, dataset in zip(splits, datasets): loader = torch.utils.data.DataLoader(dataset, batch_size=1, shuffle = False, num_workers=1) fourcc = cv2.VideoWriter_fourcc(*'MJPG') print(split[:-3]+'avi') vout = cv2.VideoWriter(split[:-3]+'avi', fourcc , 30.0, (img_w, img_h)) for i, data in enumerate(tqdm.tqdm(loader)): imgs, names = data imgs = imgs.cuda() with torch.no_grad(): out = net(imgs) col_sample = np.linspace(0, 800 - 1, cfg.griding_num) col_sample_w = col_sample[1] - col_sample[0] out_j = out[0].data.cpu().numpy() out_j = out_j[:, ::-1, :] prob = scipy.special.softmax(out_j[:-1, :, :], axis=0) idx = np.arange(cfg.griding_num) + 1 idx = idx.reshape(-1, 1, 1) loc = np.sum(prob * idx, axis=0) out_j = np.argmax(out_j, axis=0) loc[out_j == cfg.griding_num] = 0 out_j = loc # import pdb; pdb.set_trace() vis = cv2.imread(os.path.join(cfg.data_root,names[0])) for i in range(out_j.shape[1]): if np.sum(out_j[:, i] != 0) > 2: for k in range(out_j.shape[0]): if out_j[k, i] > 0: ppp = (int(out_j[k, i] * col_sample_w * img_w / 800) - 1, int(img_h * (row_anchor[cls_num_per_lane-1-k]/288)) - 1 ) cv2.circle(vis,ppp,5,(0,255,0),-1) vout.write(vis) vout.release()

2023-04-23 上传