首页 文章 精选 留言 我的

精选列表

搜索[卡证文字识别],共10000篇文章
优秀的个人博客,低调大师

Hugging Face 发布 Open Computer Agent,文字指令远程操控虚拟电脑

Hugging Face 推出了免费云端 AI 智能体工具 Open Computer Agent,支持用户通过文本指令,远程操控基于 Linux 的虚拟计算机,使用 Firefox 等应用。 https://huggingface.co/spaces/smolagents/computer-agent 据介绍,Open Computer Agent 工具集成 smolagents、Qwen2-VL-72B(一款视觉语言模型)以及 E2B Desktop 等技术,可以远程执行打开应用等简单指令。 Open Computer Agent 内置了火狐 Firefox 浏览器等常用应用,能轻松响应打开某个网站或搜索导航路线等简单英文指令,但面对复杂任务时,工具的表现尚不理想。早期测试中,用户反馈其响应速度较慢,性能不稳定,甚至在处理 CAPTCHA 验证时频频出错。 该工具已向公众开放,但由于需求量大,用户可能需要在虚拟队列中等待体验机会。Hugging Face 坦言,这款工具并非追求完美,而是为了展示开源模型在云端运行的竞争力和成本优势。

优秀的个人博客,低调大师

开源中文字体推荐 —— 霞鹜新致宋

霞鹜文楷的作者最近发布了新作品:霞鹜新致宋,这是一款衍生于「IPAmj明朝」的中文宋体字型。 据介绍,「霞鹜新致宋」是一款基于「IPAmj明朝」的中文开源字体,是将日本写法的字体改造成中国大陆规范写法的尝试。 项目地址:https://github.com/lxgw/LxgwNeoZhiSong 本字体是「霞鹜新晰黑」的姊妹字体,尝试在「IPAmj明朝」原有字形的基础上,将其改造成中国大陆规范字形。除此之外,重做了希腊字母和西里尔字母,与原字体拉丁字母部分风格基本一致,更适合现代希腊文及西里尔文的排版;新增对越南语拉丁字的显示支持。 符号方面,支持易经八卦和六十四卦符号、太玄经八十一卦符号、麻将符号、中国象棋符号、算筹数字、「正」字计数等特殊符号。 最后,推荐一波由 OSCHINA 整理的精品开源字体:https://www.oschina.net/project/awesome?columnId=2

优秀的个人博客,低调大师

Kakao Brain 的开源 ViT、ALIGN 和 COYO 文字-图片数据集

最近 Kakao Brain 在 Hugging Face 发布了一个全新的开源图像文本数据集 COYO,包含 7 亿对图像和文本,并训练了两个新的视觉语言模型 ViT 和 ALIGN ViT 和 ALIGN。 这是 ALIGN 模型首次公开发布供开源使用,同时 ViT 和 ALIGN 模型的发布都附带有训练数据集。 Google 的 ViT 和 ALIGN 模型都使用了巨大的数据集 (ViT 训练于 3 亿张图像,ALIGN 训练于 18 亿个图像 - 文本对) 进行训练,因为数据集不公开导致无法复现。Kakao Brain 的 ViT 和 ALIGN 模型采用与 Google 原始模型相同的架构和超参数,不同的是其在开源 COYO 数据集上进行训练。对于想要拥有数据并复现视觉语言模型的研究人员有很大的价值。详细的 Kakao ViT 和 ALIGN 模型信息可以参照: COYO 数据集仓库地址: https://github.com/kakaobrain/coyo-dataset Kakao Brain 文档地址: https://hf.co/kakaobrain 这篇博客将介绍新的 COYO 数据集、Kakao Brain 的 ViT 和 ALIGN 模型,以及如何使用它们!以下是主要要点: 第一个开源的 ALIGN 模型! 第一个在开源数据集 COYO 上训练的开源 ViT 和 ALIGN 模型。 Kakao Brain 的 ViT 和 ALIGN 模型表现与 Google 版本相当。 ViT 模型在 HF 上可演示!您可以使用自己的图像样本在线体验 ViT! 性能比较 Kakao Brain 发布的 ViT 和 ALIGN 模型与 Google 的模型表现相当,某些方面甚至更好。Kakao Brain 的 ALIGN-B7-Base 模型虽然训练的数据对少得多 ( 7 亿 VS 1.8 亿),但在图像 KNN 分类任务上表现与 Google 的 ALIGN-B7-Base 相当,在 MS-COCO 图像 - 文本检索、文本 - 图像检索任务上表现更好。Kakao Brain 的 ViT-L/16 在 384×512 的 ImageNet 和 ImageNet-ReaL 数据上的表现与 Google 的 ViT-L/16 相当。这意味着同行可以使用 Kakao Brain 的 ViT 和 ALIGN 模型来复现 Google 的 ViT 和 ALIGN ,尤其是当用户需要训练数据时。所以我们很高兴开源这些与现有技术相当的模型! COYO 数据集 本次发布的模型特别之处在于都是基于开源的 COYO 数据集训练的。COYO 数据集包含 7 亿图像 - 文本对,类似于 Google 的 ALIGN 1.8B图像 - 文本数据集,是从网页上收集的“嘈杂”的 html 文本 (alt-text) 和图像对。 COYO-700M 和 ALIGN 1.8B都是“嘈杂”的,只使用了适当的清洗处理。 COYO 类似于另一个开源的图像–文本数据集 LAION,但有一些区别。尽管 LAION 2B是一个更大的数据集,包含 20 亿个英语配对,但 COYO的附带有更多元数据,为用户提供更多灵活性和更细粒度的使用。以下表格显示了它们之间的区别: COYO所有数据对都提供了美感评分,更健壮的水印评分和面部计数信息 (face count data)。 COYO LAION 2B ALIGN 1.8B Image-text similarity score calculated with CLIP ViT-B/32 and ViT-L/14 models, they are provided as metadata but nothing is filtered out so as to avoid possible elimination bias Image-text similarity score provided with CLIP (ViT-B/32) - only examples above threshold 0.28 Minimal, Frequency based filtering NSFW filtering on images and text NSFW filtering on images Google Cloud API Face recognition (face count) data provided as meta-data No face recognition data NA 700 million pairs all English 2 billion English 1.8 billion From CC 2020 Oct - 2021 Aug From CC 2014-2020 NA Aesthetic Score Aesthetic Score Partial NA More robust Watermark score Watermark Score NA Hugging Face Hub Hugging Face Hub Not made public English English English? ViT 和 ALIGN 是如何工作的 这些模型是干什么的?让我们简要讨论一下 ViT 和 ALIGN 模型的工作原理。 ViT—Vision Transformer 是谷歌于 2020 年提出的一种视觉模型,类似于文本 Transformer 架构。这是一种与卷积神经网络不同的视觉方法 (AlexNet 自 2012 年以来一直主导视觉任务)。同样表现下,它的计算效率比 CNN 高达四倍,且具有域不可知性 (domain agnostic)。ViT 将输入的图像分解成一系列图像块 (patch),就像文本 Transformer 输入文本序列一样,然后为每个块提供位置嵌入以学习图像结构。ViT 的性能尤其在于具有出色的性能 - 计算权衡。谷歌的一些 ViT 模型是开源的,但其训练使用的 JFT-300 百万图像 - 标签对数据集尚未公开发布。Kakao Brain 的训练模型是基于公开发布的 COYO-Labeled-300M 进行训练,对应的 ViT 模型在各种任务上具有相似表现,其代码、模型和训练数据 (COYO-Labeled-300M) 完全公开,以便能够进行复现和科学研究。 谷歌在 2021 年推出了 ALIGN,它是一种基于“嘈杂”文本–图像数据训练的视觉语言模型,可用于各种视觉和跨模态任务,如文本 - 图像检索。ALIGN 采用简单的双编码器架构,通过对比损失函数学习图像和文本对,ALIGN 的“嘈杂”训练语料特点包括用语料规模弥补其噪音以及强大的鲁棒性。之前的视觉语言表示学习都是在手动标注的大规模数据集上进行训练,这就需要大量的预先处理和成本。ALIGN 的语料库使用 HTML 文本 (alt-text) 数据作为图像的描述,导致数据集不可避免地嘈杂,但更大的数据量 (18 亿对) 使 ALIGN 能够在各种任务上表现出 SoTA 水平。Kakao Brain 的模型是第一个 ALIGN 开源版本,它在 COYO 数据集上训练,表现比谷歌的结果更好。 如何使用 COYO 数据集 我们可以使用 Hugging Face 🤗 数据集库的一行代码方便地下载 COYO 数据集。要预览 COYO 数据集并了解数据处理过程和包含的元属性,请前往 Hub 数据集页面。 开始前,请安装 Hugging Face 🤗 数据集库: pip install datasets,然后下载数据集。 from datasets import load_dataset dataset = load_dataset('kakaobrain/coyo-700m') dataset 由于 COYO 数据集非常庞大,包含 747M 个图像 - 文本对,您可能无法在本地下载整个数据集。或者可能只需要下载和使用数据集的子集。为此,可以简单地将 streaming=True 参数传递给 load_dataset()方法,以创建可迭代数据集,并在需要时下载数据实例。 from datasets import load_dataset dataset = load_dataset('kakaobrain/coyo-700m', streaming=True) print(next(iter(dataset['train']))) {'id': 2680060225205, 'url': 'https://cdn.shopify.com/s/files/1/0286/3900/2698/products/TVN_Huile-olive-infuse-et-s-227x300_e9a90ffd-b6d2-4118-95a1-29a5c7a05a49_800x.jpg?v=1616684087', 'text': 'Olive oil infused with Tuscany herbs', 'width': 227, 'height': 300, 'image_phash': '9f91e133b1924e4e', 'text_length': 36, 'word_count': 6, 'num_tokens_bert': 6, 'num_tokens_gpt': 9, 'num_faces': 0, 'clip_similarity_vitb32': 0.19921875, 'clip_similarity_vitl14': 0.147216796875, 'nsfw_score_opennsfw2': 0.0058441162109375, 'nsfw_score_gantman': 0.018961310386657715, 'watermark_score': 0.11015450954437256, 'aesthetic_score_laion_v2': 4.871710777282715} 如何使用 Hub 中的 ViT 和 ALIGN 让我们尝试一下新的 ViT 和 ALIGN 模型。由于 ALIGN 是新加入 Hugging Face 🤗 Transformers 的,我们先安装最新版本的库: pip install -q git+https://github.com/huggingface/transformers.git然后导入我们将要使用的模块和库,开始使用 ViT 进行图像分类。请注意,新添加的 ALIGN 模型将会包含到下一版 PyPI 包。 import requests from PIL import Image import torch from transformers import ViTImageProcessor, ViTForImageClassification 接下来,我们将从 COCO 数据集中随机下载一张有沙发图像,上边有两只猫和一个遥控器,并对图像进行预处理为模型所期望的输入格式,我们可以方便地使用相应的预处理器类 (ViTProcessor) 实现这一步。初始化模型和预处理器,可以使用 Hub 中 Kakao Brain ViT repos 之一。请注意使用 Hub 中的库预处理器,确保预处理后的图像符合特定预训练模型所需的格式。 url = 'http://images.cocodataset.org/val2017/000000039769.jpg' image = Image.open(requests.get(url, stream=True).raw) processor = ViTImageProcessor.from_pretrained('kakaobrain/vit-large-patch16-384') model = ViTForImageClassification.from_pretrained('kakaobrain/vit-large-patch16-384') 接下来将图像预处理并将其输入到模型,实现检索类别标签。Kakao Brain ViT 图像分类模型是在 ImageNet 标签上训练的,输出形状为 batch_size×1000 维度的类别 (logits)。 # preprocess image or list of images inputs = processor(images=image, return_tensors="pt") # inference with torch.no_grad(): outputs = model(**inputs) # apply SoftMax to logits to compute the probability of each class preds = torch.nn.functional.softmax(outputs.logits, dim=-1) # print the top 5 class predictions and their probabilities top_class_preds = torch.argsort(preds, descending=True)[0, :5] for c in top_class_preds: print(f"{model.config.id2label[c.item()]} with probability {round(preds[0, c.item()].item(), 4)}") 到这里就完成了!为了更加简单和简洁,还可以使用图像分类管道 (pipeline) 并将 Kakao Brain ViT 仓库名称作为目标模型传递给初始化管道。然后,我们可以传入图像的 URL 或本地路径,或 Pillow 图像,可选“top_k”参数表述返回前 k 个预测。让我们继续对猫和遥控器图片获取前 5 个预测结果。 from transformers import pipeline classifier = pipeline(task='image-classification', model='kakaobrain/vit-large-patch16-384') classifier('http://images.cocodataset.org/val2017/000000039769.jpg', top_k=5) 如果您想更多地尝试 Kakao Brain ViT 模型,请前往 🤗 Hub 中心的项目空间。 我们开始实验 ALIGN,它可用于检索文本或图像的多模态嵌入或执行零样本图像分类。ALIGN 的 Transformer 实现和用法类似于 CLIP。首先,下载预训练模型和其处理器 (processor),处理器预处理图像和文本,使它们符合 ALIGN 的预期格式,以便将其输入到视觉和文本编码器中。这步导入了我们将要使用的模块并初始化预处理器和模型。 import requests from PIL import Image import torch from transformers import AlignProcessor, AlignModel url = 'http://images.cocodataset.org/val2017/000000039769.jpg' image = Image.open(requests.get(url, stream=True).raw) processor = AlignProcessor.from_pretrained('kakaobrain/align-base') model = AlignModel.from_pretrained('kakaobrain/align-base') 先从零样本图像分类开始。为此,我们将提供候选标签 (自由格式文本),并使用 AlignModel 找出更好地描述图像的表述。我们将首先预处理图像和文本输入,并将预处理后的输入送到 AlignModel 中。 candidate_labels = ['an image of a cat', 'an image of a dog'] inputs = processor(images=image, text=candidate_labels, return_tensors='pt') with torch.no_grad(): outputs = model(**inputs) # this is the image-text similarity score logits_per_image = outputs.logits_per_image # we can take the softmax to get the label probabilities probs = logits_per_image.softmax(dim=1) print(probs) 完成了,就这么简单。要进一步尝试 Kakao Brain ALIGN 模型进行零样本图像分类,只需前往 Hugging Face 🤗 Hub 上的 demo 演示。请注意, AlignModel 的输出包括 text_embeds 和 image_embeds (参阅 ALIGN 的 文档)。如果不需要计算用于零样本分类的每个图像和每个文本的逻辑 (logits),可以使用 AlignModel 类中的 get_image_features() 和 get_text_features() 方法便捷地检索视觉和文本嵌入。 text_embeds = model.get_text_features( input_ids=inputs['input_ids'], attention_mask=inputs['attention_mask'], token_type_ids=inputs['token_type_ids'], ) image_embeds = model.get_image_features( pixel_values=inputs['pixel_values'], ) 或者,我们可以使用 ALIGN 的独立视觉和文本编码器获取多模态嵌入。然后可以使用这些嵌入用于各种下游任务的模型训练,例如目标检测、图像分割和图像字幕生成。让我们看看如何使用 AlignTextModel 和 AlignVisionModel 获取这些嵌入。请注意,我们可以使用便捷的 AlignProcessor 类分别对文本和图像进行预处理。 from transformers import AlignTextModel processor = AlignProcessor.from_pretrained('kakaobrain/align-base') model = AlignTextModel.from_pretrained('kakaobrain/align-base') # get embeddings of two text queries inputs = processor(['an image of a cat', 'an image of a dog'], return_tensors='pt') with torch.no_grad(): outputs = model(**inputs) # get the last hidden state and the final pooled output last_hidden_state = outputs.last_hidden_state pooled_output = outputs.pooler_output 我们也可以在推理过程中设置 output_hidden_states 和 output_attentions 参数为 True,以返回所有隐藏状态和注意力值。 with torch.no_grad(): outputs = model(**inputs, output_hidden_states=True, output_attentions=True) # print what information is returned for key, value in outputs.items(): print(key) 在 AlignVisionModel 中执行相同的操作,获取图像的多模态嵌入。 from transformers import AlignVisionModel processor = AlignProcessor.from_pretrained('kakaobrain/align-base') model = AlignVisionModel.from_pretrained('kakaobrain/align-base') url = 'http://images.cocodataset.org/val2017/000000039769.jpg' image = Image.open(requests.get(url, stream=True).raw) inputs = processor(images=image, return_tensors='pt') with torch.no_grad(): outputs = model(**inputs) # print the last hidden state and the final pooled output last_hidden_state = outputs.last_hidden_state pooled_output = outputs.pooler_output 与 ViT 类似,使用零样本图像分类管道 (pipeline) 可以让过程更加轻松。以下实现了如何使用此流程使用自由文本候选标签在野外执行图像分类。 from transformers import pipeline classifier = pipeline(task='zero-shot-image-classification', model='kakaobrain/align-base') classifier( 'https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png', candidate_labels=['animals', 'humans', 'landscape'], ) classifier( 'https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png', candidate_labels=['black and white', 'photorealist', 'painting'], ) 结论 近年来,多模态取得了令人难以置信的进展,例如 CLIP 和 ALIGN 等模型赋能了各种下游任务,例如图像描述、零样本图像分类和开放世界目标检测。本博客,我们介绍了由 Kakao Brain 贡献的最新开源代码 ViT 和 ALIGN 模型,以及新的 COYO 文本 - 图像数据集。展示了如何使用这些模型执行各种任务,只需几行代码即可单独使用或作为 🤗 Transformers pipeline 的一部分使用。 我们正在继续整合最有影响力的计算机视觉和多模型模型,并乐于听取您的反馈。要了解计算机视觉和多模态研究的最新消息,作者及 Twitter: @adirik、@a_e_roberts、@NielsRogge、@RisingSayak 和 @huggingface。 英文原文: https://huggingface.co/blog/vit-align 作者: Alara Dirik、Unso Eun Seo Jo、Minwoo Byeon、sungjunlee 译者: Cony Zhang (张聪聪) 审校、排版: zhongdongy (阿东)

优秀的个人博客,低调大师

小心被文字游戏忽悠

上个月月末,英特尔进行了“工艺与封装路线”在线直播,同时对工艺路线图进行了更新,原10ESF改名Intel 7,原7nm改名Intel 4,7SF改名Intel 3, 5nm GAA改名Intel 20A。看起来好像和以前没啥变化,就是终于可以不用10nm+++来调侃英特尔的制程了,看起来简单明晰了不少,但细看之下,是不是有种不对劲的感觉?明明还是10nm的实际节点,怎么突然就叫Intel 7了? 事实上,Intel不是第一个这么做的,而且很大程度上来讲,Intel几乎是主流芯片制造商里动作最慢的一批,而屏幕前的你们,实际上已经被忽悠很久了。 即便你不知道CPU的完整工艺,也一定听说过“刻蚀”“光刻”这样的名词,作为集成电路制造过程中最直接体现工艺先进程度的技术,光刻主要是对半导体晶片表面的掩蔽物(如二氧化硅)进行开孔,以便进行杂质的定域扩散的一种加工技术,而且也是最能直接体现工艺先进程度的技术,而光刻技术的分辨率是指光刻系统能分辨和加工的最小尺寸,决定了硅片上形成符合质量规范要求的最小特征图形尺寸。 而我们平日里最关心的纳米制程,用在不同的半导体元件上,又有不同的含义。对CPU来说,一般指晶体管中的最小栅极线宽。因为栅极线宽越小,那么单个晶体管的尺寸就越小,CPU die也会越小,意味着在相同的die面积下可以集成更多的晶体管,性能自然是蹭蹭地往上涨。另一方面,由于栅极线宽变小,相应地工作电压也会变低,CPU的功耗也会随之降,而频率则会上升,这也就是我们平时听的最多的几句话:“xx纳米制程,性能提升xx%,功耗降低xx%,频率提升xx%”。 但就这几年的情况来看,芯片制造商们的境地,似乎也能用一个流行词来概括:内卷。 首当其冲的,就是这个纳米制程。就算你对各大厂的技术细节不太了解,也一定听过Intel 14nm+++++的传说,从Skylake到Kaby Lake,一直磨蹭到第十代酷睿,居然还在打磨14nm工艺,简直是匠心届的传奇,以至于外界一度传出了“Intel 10纳米工艺难产”之类的传言,但事情真有这么简单吗? 当然没有了。事实上真要说起来,Intel其实还挺冤的,因为他的老对头们台积电、三星的工艺数字,其实是经过“修饰”的,线宽仅仅代表工艺节点,但要衡量工艺的好坏,栅极间距、鳍片间距、最小金属间距以及逻辑单元高度都有关系。 以Intel 10nm工艺(现Intel 7)为例,其逻辑晶体管密度为100.8MTrfm�O,即每平方毫米1亿晶体管,而且实际节点也是规规整整的10nm,相比之下,三星的10nm实际节点是13.9,台积电则是12.9,逻辑晶体管密度更是被吊打,三星只有51.8,台积电稍好一些,但也只有60.3。 而顺着这条线索看下去,就会发现很多有意思的事情,拿台积电说,其7nm的实际节点是10.5nm,5nm的实际节点是7.7nm,3nm的实际节点则约为4.5nm,这里不谈论台积电的制程加强版,仅以初次公布制程和工艺信息时披露的消息为准。 如果你还对IBM有印象,那你也应该知道,IBM在不久之前对外公布了全球首个2nm工艺制造技术,它采用纳米片堆叠的晶体管(GAA晶体管),与7nm的技术相比,预计将带来45%的性能提升或75%的能耗降低,而比起当前最尖端的5nm芯片,2nm芯片的体积更小、速度更快。 虽然理论上看,IBM的2nm芯片每平方毫米有大约3.33亿个晶体管,但现如今的IBM,早已没有了自己的晶圆业务及技术、专利,还要面临新节点成本攀升的情况,如此看来,这个2nm,在现如今的情况下,也只是个吉祥物而已了。 看到这里,相信你也明白,目前半导体制程所谓的7nm、5nm早就偏离了最初的范畴,不再是严格意义上的线宽,此前的老实人Intel,也是迫于市场压力,不得已跟上了“潮流”,更新了自己的工艺制程路线图叫法。 而且,根据目前国外的一些爆料,12代的酷睿移动处理器很有可能迎来一次史诗级突破,毕竟有着11代酷睿在移动端的优良表现,极大程度上印证了Intel 10ESF工艺的扎实进步。但如果你问我买哪个,我肯定会告诉你,谁性价比高就买谁啦!

优秀的个人博客,低调大师

iOS7修改UISearchBar的Cancel按钮的颜色和文字

两行代码搞定: [[UIBarButtonItem appearanceWhenContainedIn: [UISearchBar class], nil] setTintColor:[UIColor whiteColor]]; [[UIBarButtonItem appearanceWhenContainedIn: [UISearchBar class], nil] setTitle:@"取消"]; 查了很多,试了很多。唯一work的东东。就是这两行代码。 enjoy 欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 572064792 | Nodejs:329118122 做人要厚道,转载请注明出处! 本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sunshine-anycall/p/4185304.html ,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册