首页 文章 精选 留言 我的

精选列表

搜索[知识库增强],共10000篇文章
优秀的个人博客,低调大师

美国计划进一步增强对中国出口 AI 计算芯片的禁令

据《华尔街日报》报道,美国计划进一步收紧对中国出口 AI 计算显卡的限制。美国商务部最早可能在 7 月初采取行动,在未获得许可证的情况下,英伟达等 AI 芯片厂商将被禁止向中国和其他相关国家的客户销售多种型号的 AI 计算芯片和显卡等产品。 去年秋天,美国出台了 AI 芯片相关的首轮贸易限制措施,对 Nvidia 和 AMD 等公司施加出口许可证要求。当时限制贸易的产品覆盖了 Nvidia A100、H100 等高端 GPU 产品。英伟达方面表示,美国的限制令是在担心先进的 AI 芯片可能会被竞争对手用于训练强大的 AI 应用程序中,继而对美国的 AI 领先地位产生影响。 为了在不丢掉中国市场的同时满足限制令,芯片制造商开始生产功能较弱的计算显卡产品,比如 Nvidia 向中国客户提供 A800 GPU,该系列计算卡于 2022 年第三季度投入生产,它既可作为 A100 的替代品,又低于美国政府的禁令门槛。 但美国政府似乎对显卡厂商变相绕过监管的做法相当不满,相关立法者正计划扩大禁令范围,第二轮禁令限制的类型甚至会覆盖到 A800 等性能较差的计算显卡。 (其实 A800 和 A100 的硬件参数并没有差多少,只是 A800 为了过禁令阉割了卡间通信带宽,可以理解为 A100 特供版) 扩大 AI 芯片限制令的消息一经报道便不胫而走,虽然截止目前还没有任何美国政府的官方公告,但消息传出来一天之内,英伟达股价下跌 3.2%,AMD 股价下跌约 3%。

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

Hugging Face 每周速递: Space 支持创建模版应用、Hub 搜索功能增强、BioGPT-Large 还有更多

每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等,我们将其称之为「Hugging News」。 产品更新 🤗Space 应用支持使用模版了 只需点击几下,即可轻松构建、部署和共享你最喜爱的开源项目,Hugging Face Spaces 已经支持使用 Docker 构建,现在它又增加了模版的支持。 我们的第一个 Space 模版是和 Argilla 合作完成,你可以在 Space SDK 中选择 Docker,然后就可以选择 Argilla 模版了。 Argilla 是一个开源的、以数据为中心的 NLP 平台,可以用于数据标注、机器学习运维和反馈循环,刚刚获得一轮 160 万美元的投资,查看 Argilla 官网了解更多: https://www.argilla.io/ 🤗Hub 上的搜索功能更强了 本月初上线的 Hugging Face Hub 的全文搜索功能现已支持实时反馈查询结果、暗色模式以及可分享的搜索链接等,帮助用户更快速在 Hub 上找到所需要的内容,仅上线一周,就有超过 7.5 万次搜索!快来试试看吧: https://hf.co/search 一个新的 GitHub Action 发布,将你的代码仓库同步到 🤗Hub 那废话,不多说;那同步,来一波! https://github.com/marketplace/actions/sync-with-hugging-face-hub 🤗Hub 分类新增图机器学习 如果你对图机器学习还不熟悉的话,我们之前发过一篇关于 图机器学习相关的文章 可以了解一下,🤗Hub 的分类新增了图机器学习的分类,可以去看看相关的数据集和模型找找灵感啦 https://bit.ly/HFGraphML 开源库更新 PEFT 开源!低成本高效微调模型不是梦 🤗 PEFT (Parameter-Efficient Fine-Tuning) 是 Hugging Face 开发的一个库,旨在用更少的可训练参数对大型语言模型进行微调,从而显着节省成本和时间。关于 PEFT,我们也有一篇博客介绍,会在之后的微信推文中发布。 🤗Transformers 增加了第一个文本转语音模型 SpeechT5 是我们添加到 🤗 Transformers 的第一个文本转语音模型,我们计划在不久的将来添加更多的 TTS 模型。 「看图说话」模型合集 在这个 Space 应用中,Hugging Face 的机器学习工程师 Niels 向大家对比了几种不同的图生文模型: GIT、BLIP、CoCa 和 BLIP-2,你可以上传一个图片来查看每个模型根据图片生成的图片文字描述结果,小编用了一个红包封面图片让几个模型说说看是啥内容,你觉得哪个更准呢? 在 🤗 Diffusers 库中使用 Latent Upscaler 生成更高分辨率的图片 Stable Diffusion Latent Upscaler 模型由 Katherine Crowson 与 Stability AI 合作构建。它可以在任何 StableDiffusionUpscalePipeline checkpoint 之上使用,以将其输出图像分辨率提高 2 倍。 查看模型卡片: https://hf.co/stabilityai/sd-x2-latent-upscaler 查看文档: https://hf.co/docs/diffusers/api/pipelines/stable_diffusion/latent_upscale 查看 Space 应用: https://hf.co/spaces/huggingface-projects/stable-diffusion-latent-upscaler 你可以在 🤗 Transformers 中使用 BLIP-2 啦! 上周我们介绍了一个能够教会 ChatGPT 看图的、由 Salesforce Research 开源的大语言模型 BLIP-2,大家开源在上面的聊天截图里看看它的强大之处。 现在你已经可以在 🤗 Transformers 中使用它了,详见文档: https://hf.co/docs/transformers/main/en/model_doc/blip-2 没有试过的朋友们,可以在 Space 应用中试试看: https://hf.co/spaces/Salesforce/BLIP2 学习资源 & 内容更新 LAION.ai 团队制作了一个 CoCa (Contrastive Captioners) 的 Space 应用,快来试试看: https://hf.co/spaces/laion/CoCa 本月初微软发布的 BioGPT-Large 已经发布到 Hugging Face Hub 上啦,欢迎使用: https://hf.co/microsoft/BioGPT-Large 在生成文本时,大语言模型会输出每个词在其生成的文本序列中出现的概率分布,这些概率分布反映了模型在生成每个词时的置信度。如果它在「一本正经的胡说八道」,那么它生成的文本中每个词的概率分布可能与正确答案的概率分布有较大的差异。 你可以用这个 Space 应用通过为语言模型的输出文字进行着色,例如,对于某个给定的单词,如果其概率很低,那么可以使用红色高亮显示该单词。这样,用户可以更加直观地了解模型输出的每个单词的置信度和概率分布,从而更好地识别可能存在的错误。 https://hf.co/spaces/joaogante/color-coded-text-generation <hr> 以上就是上周的 Hugging News!

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

Proxy-Go v8.7 发布,增强 socks5 代理 UDP 功能,DNS 支持 TCP 方式查询!

Proxy 是 golang 实现的高性能 http、https、websocket、tcp、udp、socks5 代理服务器,支持正向代理、反向代理、透明代理、内网穿透、TCP/UDP 端口映射、SSH 中转、TLS 加密传输、协议转换、DNS 防污染智能代理、前置 CDN/Nginx 反代、代理连接重定向、API动态调用上级代理、限速限连接数。提供全平台的命令行版本,友好易用的Windows&Linux&macOS控制面板,强大的安卓版。 Proxy-Go进入 2019 年最受欢迎中国开源软件评选候选名单,喜欢 Proxy-Go 的快来投上你宝贵的一票吧! 走过路过不要错过。 更新内容 1.优化了所有服务map高并发下某些情况不能准确工作的问题。 2.优化了所有服务的监听,高并发下端口更稳定。 3.修复了sps反向代理https不能正确工作的问题。 4.增加了dns代理,本地TCP查询dns。 5.udp转发,增加了指定出口IP功能。 6.socks5、sps代理增加了固定UDP功能端口参数--udp-port 端口号,默认为空,使用协议握手过程中随机指定。 特色功能 链式代理,程序本身可以作为一级代理,如果设置了上级代理那么可以作为二级代理,乃至N级代理。 通讯加密,如果程序不是一级代理,而且上级代理也是本程序,那么可以加密和上级代理之间的通讯,采用底层tls高强度加密,安全无特征。 智能HTTP代理,HTTPS代理,SOCKS5代理,会自动判断访问的网站是否屏蔽,如果被屏蔽那么就会使用上级代理(前提是配置了上级代理)访问网站;如果访问的网站没有被屏蔽,为了加速访问,代理会直接访问网站,不使用上级代理。 域名黑白名单,更加自由的控制网站的访问方式。 跨平台性,无论你是widows,linux,还是mac,甚至是树莓派,都可以很好的运行proxy。 多协议支持,支持HTTP(S),TCP,UDP,Websocket,SOCKS5代理。 TCP/UDP端口转发。 游戏盾,游戏代理,高仿服务器。 内网穿透,P2P传输,协议支持TCP和UDP,针对HTTP的优化穿透。 SSH中转,HTTP(S),SOCKS5代理支持SSH中转,上级Linux服务器不需要任何服务端,本地一个proxy即可开心上网。 KCP协议支持,HTTP(S),SOCKS5代理支持KCP协议传输数据,降低延迟,提升浏览体验。 动态选择上级代理,通过外部API,HTTP(S),SOCKS5,SPS代理可以实现基于用户或者IP的限速,连接数限制,动态获取上级。 灵活的上级分配,HTTP(S),SOCKS5,SPS代理可以通过配置文件实现基于用户或者IP的限速,连接数限制,指定上级。 反向代理,支持直接把域名解析到proxy监听的ip,然后proxy就会帮你代理访问需要访问的HTTP(S)网站。 透明HTTP(S)代理,配合iptables,在网关直接把出去的80,443方向的流量转发到proxy,就能实现无感知的智能路由器代理。 协议转换,可以把已经存在的HTTP(S)或SOCKS5或SS代理转换为一个端口同时支持HTTP(S)和SOCKS5和SS代理,转换后的SOCKS5和SS代理如果上级是SOCKS5代理,那么支持UDP功能,同时支持强大的级联认证功能。 自定义底层加密传输,http(s)\sps\socks代理在tcp之上可以通过tls标准加密以及kcp协议加密tcp数据,除此之外还支持在tls和kcp之后进行自定义加密,也就是说自定义加密和tls|kcp是可以联合使用的,内部采用AES256加密,使用的时候只需要自己定义一个密码即可。 底层压缩高效传输,http(s)\sps\socks代理在tcp之上可以通过自定义加密和tls标准加密以及kcp协议加密tcp数据,在加密之后还可以对数据进行压缩,也就是说压缩功能和自定义加密和tls|kcp是可以联合使用的。 安全的DNS代理,可以通过本地的proxy提供的DNS代理服务器与上级代理加密通讯实现安全防污染的DNS查询。 负载均衡,高可用,HTTP(S)\SOCKS5\SPS代理支持上级负载均衡和高可用,多个上级重复-P参数即可。 指定出口IP,HTTP(S)\SOCKS5\SPS\TCP代理支持客户端用入口IP连接过来的,就用入口IP作为出口IP访问目标网站的功能。如果入口IP是内网IP,出口IP不会使用入口IP 支持限速,HTTP(S)\SOCKS5\SPS\TCP代理支持限速。 支持限连接数,HTTP(S)\SOCKS5\SPS\TCP代理支持限连接数。 SOCKS5代理支持级联认证。 证书参数使用base64数据,默认情况下-C,-K参数是crt证书和key文件的路径,如果是base64://开头,那么就认为后面的数据是base64编码的,会解码后使用。 支持客户端IP黑白名单,更加安全的控制客户端对代理服务的访问,如果黑白名单同时设置,那么只有白名单生效。socks/http(s)/sps/tcp/udp/dns/内网穿透bridge/内网穿透tbridge,都支持客户端IP黑白名单。 端口范围批量监听,HTTP(S)\SOCKS5\SPS\TCP代理支持指定端口范围监听,避免启动过多进程,提高性能。 下载地址: Gitee GAYHUB

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

[雪峰磁针石博客]python opencv3实例(对象识别和增强现实)1-图像几何转换

原书代码地址 在本章中,我们将学习如何应用酷的几何效果到图像。 知识点 如何安装OpenCV-Python 如何读取,显示和保存图像 如何转换到多个颜色空间 如何应用几何变换,例如平移,旋转,和缩放 如何使用仿射和投影变换来应用几何效果 本书英文版本:OpenCV 3.x with Python By Example 2nd 2018.pdf 更多opencv相关书籍:最佳人工智能图像处理工具OpenCV书籍下载 安装OpenCV-Python 安装 本教程基于python3,ubuntu 16,在windows环境可能可以运行。 Linux #!python pip3 install opencv-python Windows #!python pip install opencv-python 文档: [官网](http://docs.opencv.org/) [opencv-python官方文档](http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html) 读取显示和保存图片 01_reading_image.py 读取显示图片 import cv2 img = cv2.imread('./images/input.jpg') cv2.imshow('Input image', img) cv2.waitKey() 02_saving_image.py 保存为灰度图 import cv2 gray_img = cv2.imread('images/input.jpg', cv2.IMREAD_GRAYSCALE) cv2.imshow('Grayscale', gray_img) cv2.imwrite('images/output.jpg', gray_img) cv2.waitKey() 转换格式 03_convert_image_format.py In [1]: import cv2 In [2]: print([x for x in dir(cv2) if x.startswith('COLOR_')]) ['COLOR_BAYER_BG2BGR', 'COLOR_BAYER_BG2BGRA', 'COLOR_BAYER_BG2BGR_EA', 'COLOR_BAYER_BG2BGR_VNG', 'COLOR_BAYER_BG2GRAY', 'COLOR_BAYER_BG2RGB', 'COLOR_BAYER_BG2RGBA', 'COLOR_BAYER_BG2RGB_EA', 'COLOR_BAYER_BG2RGB_VNG', 'COLOR_BAYER_GB2BGR', 'COLOR_BAYER_GB2BGRA', 'COLOR_BAYER_GB2BGR_EA', 'COLOR_BAYER_GB2BGR_VNG', 'COLOR_BAYER_GB2GRAY', 'COLOR_BAYER_GB2RGB', 'COLOR_BAYER_GB2RGBA', 'COLOR_BAYER_GB2RGB_EA', 'COLOR_BAYER_GB2RGB_VNG', 'COLOR_BAYER_GR2BGR', 'COLOR_BAYER_GR2BGRA', 'COLOR_BAYER_GR2BGR_EA', 'COLOR_BAYER_GR2BGR_VNG', 'COLOR_BAYER_GR2GRAY', 'COLOR_BAYER_GR2RGB', 'COLOR_BAYER_GR2RGBA', 'COLOR_BAYER_GR2RGB_EA', 'COLOR_BAYER_GR2RGB_VNG', 'COLOR_BAYER_RG2BGR', 'COLOR_BAYER_RG2BGRA', 'COLOR_BAYER_RG2BGR_EA', 'COLOR_BAYER_RG2BGR_VNG', 'COLOR_BAYER_RG2GRAY', 'COLOR_BAYER_RG2RGB', 'COLOR_BAYER_RG2RGBA', 'COLOR_BAYER_RG2RGB_EA', 'COLOR_BAYER_RG2RGB_VNG', 'COLOR_BGR2BGR555', 'COLOR_BGR2BGR565', 'COLOR_BGR2BGRA', 'COLOR_BGR2GRAY', 'COLOR_BGR2HLS', 'COLOR_BGR2HLS_FULL', 'COLOR_BGR2HSV', 'COLOR_BGR2HSV_FULL', 'COLOR_BGR2LAB', 'COLOR_BGR2LUV', 'COLOR_BGR2Lab', 'COLOR_BGR2Luv', 'COLOR_BGR2RGB', 'COLOR_BGR2RGBA', 'COLOR_BGR2XYZ', 'COLOR_BGR2YCR_CB', 'COLOR_BGR2YCrCb', 'COLOR_BGR2YUV', 'COLOR_BGR2YUV_I420', 'COLOR_BGR2YUV_IYUV', 'COLOR_BGR2YUV_YV12', 'COLOR_BGR5552BGR', 'COLOR_BGR5552BGRA', 'COLOR_BGR5552GRAY', 'COLOR_BGR5552RGB', 'COLOR_BGR5552RGBA', 'COLOR_BGR5652BGR', 'COLOR_BGR5652BGRA', 'COLOR_BGR5652GRAY', 'COLOR_BGR5652RGB', 'COLOR_BGR5652RGBA', 'COLOR_BGRA2BGR', 'COLOR_BGRA2BGR555', 'COLOR_BGRA2BGR565', 'COLOR_BGRA2GRAY', 'COLOR_BGRA2RGB', 'COLOR_BGRA2RGBA', 'COLOR_BGRA2YUV_I420', 'COLOR_BGRA2YUV_IYUV', 'COLOR_BGRA2YUV_YV12', 'COLOR_BayerBG2BGR', 'COLOR_BayerBG2BGRA', 'COLOR_BayerBG2BGR_EA', 'COLOR_BayerBG2BGR_VNG', 'COLOR_BayerBG2GRAY', 'COLOR_BayerBG2RGB', 'COLOR_BayerBG2RGBA', 'COLOR_BayerBG2RGB_EA', 'COLOR_BayerBG2RGB_VNG', 'COLOR_BayerGB2BGR', 'COLOR_BayerGB2BGRA', 'COLOR_BayerGB2BGR_EA', 'COLOR_BayerGB2BGR_VNG', 'COLOR_BayerGB2GRAY', 'COLOR_BayerGB2RGB', 'COLOR_BayerGB2RGBA', 'COLOR_BayerGB2RGB_EA', 'COLOR_BayerGB2RGB_VNG', 'COLOR_BayerGR2BGR', 'COLOR_BayerGR2BGRA', 'COLOR_BayerGR2BGR_EA', 'COLOR_BayerGR2BGR_VNG', 'COLOR_BayerGR2GRAY', 'COLOR_BayerGR2RGB', 'COLOR_BayerGR2RGBA', 'COLOR_BayerGR2RGB_EA', 'COLOR_BayerGR2RGB_VNG', 'COLOR_BayerRG2BGR', 'COLOR_BayerRG2BGRA', 'COLOR_BayerRG2BGR_EA', 'COLOR_BayerRG2BGR_VNG', 'COLOR_BayerRG2GRAY', 'COLOR_BayerRG2RGB', 'COLOR_BayerRG2RGBA', 'COLOR_BayerRG2RGB_EA', 'COLOR_BayerRG2RGB_VNG', 'COLOR_COLORCVT_MAX', 'COLOR_GRAY2BGR', 'COLOR_GRAY2BGR555', 'COLOR_GRAY2BGR565', 'COLOR_GRAY2BGRA', 'COLOR_GRAY2RGB', 'COLOR_GRAY2RGBA', 'COLOR_HLS2BGR', 'COLOR_HLS2BGR_FULL', 'COLOR_HLS2RGB', 'COLOR_HLS2RGB_FULL', 'COLOR_HSV2BGR', 'COLOR_HSV2BGR_FULL', 'COLOR_HSV2RGB', 'COLOR_HSV2RGB_FULL', 'COLOR_LAB2BGR', 'COLOR_LAB2LBGR', 'COLOR_LAB2LRGB', 'COLOR_LAB2RGB', 'COLOR_LBGR2LAB', 'COLOR_LBGR2LUV', 'COLOR_LBGR2Lab', 'COLOR_LBGR2Luv', 'COLOR_LRGB2LAB', 'COLOR_LRGB2LUV', 'COLOR_LRGB2Lab', 'COLOR_LRGB2Luv', 'COLOR_LUV2BGR', 'COLOR_LUV2LBGR', 'COLOR_LUV2LRGB', 'COLOR_LUV2RGB', 'COLOR_Lab2BGR', 'COLOR_Lab2LBGR', 'COLOR_Lab2LRGB', 'COLOR_Lab2RGB', 'COLOR_Luv2BGR', 'COLOR_Luv2LBGR', 'COLOR_Luv2LRGB', 'COLOR_Luv2RGB', 'COLOR_M_RGBA2RGBA', 'COLOR_RGB2BGR', 'COLOR_RGB2BGR555', 'COLOR_RGB2BGR565', 'COLOR_RGB2BGRA', 'COLOR_RGB2GRAY', 'COLOR_RGB2HLS', 'COLOR_RGB2HLS_FULL', 'COLOR_RGB2HSV', 'COLOR_RGB2HSV_FULL', 'COLOR_RGB2LAB', 'COLOR_RGB2LUV', 'COLOR_RGB2Lab', 'COLOR_RGB2Luv', 'COLOR_RGB2RGBA', 'COLOR_RGB2XYZ', 'COLOR_RGB2YCR_CB', 'COLOR_RGB2YCrCb', 'COLOR_RGB2YUV', 'COLOR_RGB2YUV_I420', 'COLOR_RGB2YUV_IYUV', 'COLOR_RGB2YUV_YV12', 'COLOR_RGBA2BGR', 'COLOR_RGBA2BGR555', 'COLOR_RGBA2BGR565', 'COLOR_RGBA2BGRA', 'COLOR_RGBA2GRAY', 'COLOR_RGBA2M_RGBA', 'COLOR_RGBA2RGB', 'COLOR_RGBA2YUV_I420', 'COLOR_RGBA2YUV_IYUV', 'COLOR_RGBA2YUV_YV12', 'COLOR_RGBA2mRGBA', 'COLOR_XYZ2BGR', 'COLOR_XYZ2RGB', 'COLOR_YCR_CB2BGR', 'COLOR_YCR_CB2RGB', 'COLOR_YCrCb2BGR', 'COLOR_YCrCb2RGB', 'COLOR_YUV2BGR', 'COLOR_YUV2BGRA_I420', 'COLOR_YUV2BGRA_IYUV', 'COLOR_YUV2BGRA_NV12', 'COLOR_YUV2BGRA_NV21', 'COLOR_YUV2BGRA_UYNV', 'COLOR_YUV2BGRA_UYVY', 'COLOR_YUV2BGRA_Y422', 'COLOR_YUV2BGRA_YUNV', 'COLOR_YUV2BGRA_YUY2', 'COLOR_YUV2BGRA_YUYV', 'COLOR_YUV2BGRA_YV12', 'COLOR_YUV2BGRA_YVYU', 'COLOR_YUV2BGR_I420', 'COLOR_YUV2BGR_IYUV', 'COLOR_YUV2BGR_NV12', 'COLOR_YUV2BGR_NV21', 'COLOR_YUV2BGR_UYNV', 'COLOR_YUV2BGR_UYVY', 'COLOR_YUV2BGR_Y422', 'COLOR_YUV2BGR_YUNV', 'COLOR_YUV2BGR_YUY2', 'COLOR_YUV2BGR_YUYV', 'COLOR_YUV2BGR_YV12', 'COLOR_YUV2BGR_YVYU', 'COLOR_YUV2GRAY_420', 'COLOR_YUV2GRAY_I420', 'COLOR_YUV2GRAY_IYUV', 'COLOR_YUV2GRAY_NV12', 'COLOR_YUV2GRAY_NV21', 'COLOR_YUV2GRAY_UYNV', 'COLOR_YUV2GRAY_UYVY', 'COLOR_YUV2GRAY_Y422', 'COLOR_YUV2GRAY_YUNV', 'COLOR_YUV2GRAY_YUY2', 'COLOR_YUV2GRAY_YUYV', 'COLOR_YUV2GRAY_YV12', 'COLOR_YUV2GRAY_YVYU', 'COLOR_YUV2RGB', 'COLOR_YUV2RGBA_I420', 'COLOR_YUV2RGBA_IYUV', 'COLOR_YUV2RGBA_NV12', 'COLOR_YUV2RGBA_NV21', 'COLOR_YUV2RGBA_UYNV', 'COLOR_YUV2RGBA_UYVY', 'COLOR_YUV2RGBA_Y422', 'COLOR_YUV2RGBA_YUNV', 'COLOR_YUV2RGBA_YUY2', 'COLOR_YUV2RGBA_YUYV', 'COLOR_YUV2RGBA_YV12', 'COLOR_YUV2RGBA_YVYU', 'COLOR_YUV2RGB_I420', 'COLOR_YUV2RGB_IYUV', 'COLOR_YUV2RGB_NV12', 'COLOR_YUV2RGB_NV21', 'COLOR_YUV2RGB_UYNV', 'COLOR_YUV2RGB_UYVY', 'COLOR_YUV2RGB_Y422', 'COLOR_YUV2RGB_YUNV', 'COLOR_YUV2RGB_YUY2', 'COLOR_YUV2RGB_YUYV', 'COLOR_YUV2RGB_YV12', 'COLOR_YUV2RGB_YVYU', 'COLOR_YUV420P2BGR', 'COLOR_YUV420P2BGRA', 'COLOR_YUV420P2GRAY', 'COLOR_YUV420P2RGB', 'COLOR_YUV420P2RGBA', 'COLOR_YUV420SP2BGR', 'COLOR_YUV420SP2BGRA', 'COLOR_YUV420SP2GRAY', 'COLOR_YUV420SP2RGB', 'COLOR_YUV420SP2RGBA', 'COLOR_YUV420p2BGR', 'COLOR_YUV420p2BGRA', 'COLOR_YUV420p2GRAY', 'COLOR_YUV420p2RGB', 'COLOR_YUV420p2RGBA', 'COLOR_YUV420sp2BGR', 'COLOR_YUV420sp2BGRA', 'COLOR_YUV420sp2GRAY', 'COLOR_YUV420sp2RGB', 'COLOR_YUV420sp2RGBA', 'COLOR_mRGBA2RGBA'] 04_image_color_split.py import cv2 img = cv2.imread('./images/input.jpg', cv2.IMREAD_COLOR) gray_img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) yuv_img = cv2.cvtColor(img, cv2.COLOR_BGR2YUV) y,u,v = cv2.split(yuv_img) cv2.imshow('Grayscale image', gray_img) cv2.imshow('Y channel', y) cv2.imshow('U channel', u) cv2.imshow('V channel', v) cv2.waitKey() 合并图像色带 05_image_color_merge.py import cv2 img = cv2.imread('./images/input.jpg', cv2.IMREAD_COLOR) g,b,r = cv2.split(img) gbr_img = cv2.merge((g,b,r)) rbr_img = cv2.merge((r,b,r)) cv2.imshow('Original', img) cv2.imshow('GRB', gbr_img) cv2.imshow('RBR', rbr_img) cv2.waitKey() 移动translation 06_image_translation.py import cv2 import numpy as np img = cv2.imread('images/input.jpg') num_rows, num_cols = img.shape[:2] translation_matrix = np.float32([ [1,0,70], [0,1,110] ]) img_translation = cv2.warpAffine(img, translation_matrix, (num_cols + 70, num_rows + 110)) translation_matrix = np.float32([ [1,0,-30], [0,1,-50] ]) img_translation = cv2.warpAffine(img_translation, translation_matrix, (num_cols + 70 + 30, num_rows + 110 + 50)) cv2.imshow('Translation', img_translation) cv2.waitKey() 旋转 07_image_rotation.py import cv2 import numpy as np img = cv2.imread('images/input.jpg') num_rows, num_cols = img.shape[:2] translation_matrix = np.float32([ [1,0,70], [0,1,110] ]) img_translation = cv2.warpAffine(img, translation_matrix, (num_cols + 70, num_rows + 110)) translation_matrix = np.float32([ [1,0,-30], [0,1,-50] ]) img_translation = cv2.warpAffine(img_translation, translation_matrix, (num_cols + 70 + 30, num_rows + 110 + 50)) cv2.imshow('Translation', img_translation) cv2.waitKey() 缩放 08_image_scaling.py import cv2 img = cv2.imread('images/input.jpg') img_scaled = cv2.resize(img,None,fx=1.2, fy=1.2, interpolation = cv2.INTER_LINEAR) cv2.imshow('Scaling - Linear Interpolation', img_scaled) img_scaled = cv2.resize(img,None,fx=1.2, fy=1.2, interpolation = cv2.INTER_CUBIC) cv2.imshow('Scaling - Cubic Interpolation', img_scaled) img_scaled = cv2.resize(img,(450, 400), interpolation = cv2.INTER_AREA) cv2.imshow('Scaling - Skewed Size', img_scaled) cv2.waitKey() 仿射变换 09_affine_transformation.py import cv2 import numpy as np img = cv2.imread('images/input.jpg') rows, cols = img.shape[:2] src_points = np.float32([[0,0], [cols-1,0], [0,rows-1]]) dst_points = np.float32([[0,0], [int(0.6*(cols-1)),0], [int(0.4*(cols-1)),rows-1]]) affine_matrix = cv2.getAffineTransform(src_points, dst_points) img_output = cv2.warpAffine(img, affine_matrix, (cols,rows)) cv2.imshow('Input', img) cv2.imshow('Output', img_output) cv2.waitKey() 射影变换 10_projective_transformation.py import cv2 import numpy as np img = cv2.imread('images/input.jpg') rows, cols = img.shape[:2] src_points = np.float32([[0,0], [cols-1,0], [0,rows-1], [cols-1,rows-1]]) dst_points = np.float32([[0,0], [cols-1,0], [int(0.33*cols),rows-1], [int(0.66*cols),rows-1]]) projective_matrix = cv2.getPerspectiveTransform(src_points, dst_points) img_output = cv2.warpPerspective(img, projective_matrix, (cols,rows)) cv2.imshow('Input', img) cv2.imshow('Output', img_output) cv2.waitKey() 图像变形 11_image_warping.py import numpy as np import math img = cv2.imread('images/input.jpg', cv2.IMREAD_GRAYSCALE) rows, cols = img.shape ##################### # Vertical wave img_output = np.zeros(img.shape, dtype=img.dtype) for i in range(rows): for j in range(cols): offset_x = int(25.0 * math.sin(2 * 3.14 * i / 180)) offset_y = 0 if j+offset_x < rows: img_output[i,j] = img[i,(j+offset_x)%cols] else: img_output[i,j] = 0 cv2.imshow('Input', img) cv2.imshow('Vertical wave', img_output) ##################### # Horizontal wave img_output = np.zeros(img.shape, dtype=img.dtype) for i in range(rows): for j in range(cols): offset_x = 0 offset_y = int(16.0 * math.sin(2 * 3.14 * j / 150)) if i+offset_y < rows: img_output[i,j] = img[(i+offset_y)%rows,j] else: img_output[i,j] = 0 cv2.imshow('Horizontal wave', img_output) ##################### # Both horizontal and vertical img_output = np.zeros(img.shape, dtype=img.dtype) for i in range(rows): for j in range(cols): offset_x = int(20.0 * math.sin(2 * 3.14 * i / 150)) offset_y = int(20.0 * math.cos(2 * 3.14 * j / 150)) if i+offset_y < rows and j+offset_x < cols: img_output[i,j] = img[(i+offset_y)%rows,(j+offset_x)%cols] else: img_output[i,j] = 0 cv2.imshow('Multidirectional wave', img_output) ##################### # Concave effect img_output = np.zeros(img.shape, dtype=img.dtype) for i in range(rows): for j in range(cols): offset_x = int(128.0 * math.sin(2 * 3.14 * i / (2*cols))) offset_y = 0 if j+offset_x < cols: img_output[i,j] = img[i,(j+offset_x)%cols] else: img_output[i,j] = 0 cv2.imshow('Concave', img_output) cv2.waitKey() 参考资料 讨论qq群144081101 591302926 567351477 钉钉免费群21745728 本文最新版本地址 本文涉及的python测试开发库 谢谢点赞! 本文相关海量书籍下载

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

低代码平台做GEO别只堆关键词:用意图路由+结构化知识库让AI主动推荐你

当开发者在豆包、元宝、千问里问"低代码平台怎么选""低代码和零代码到底有什么区别""制造业低代码方案哪家稳",你的官网再热闹,AI 也可能一句不提你。原因不是你没写内容,而是你写的内容没有被组织成 AI 能"按意图精准召回"的形态。本文从意图路由(Intent Routing)的工程逻辑出发,讲清楚低代码厂商如何做 GEO(生成式引擎优化)才算有效。

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

GraphRAG详解:基于图检索增强生成,打通大模型关联推理,落地复杂知识图谱问答25.6

现在大家做RAG落地时,经常会碰到一类棘手问题:普通向量RAG擅长匹配语义相似的文本,但面对多实体之间层层嵌套的关联问题就容易断片。比如查询某产业链上下游企业关系、人物事件的因果脉络、复杂设备组件依赖,向量检索只能零散召回独立文本,大模型很难自动梳理清楚实体间的逻辑链路,很容易出现事实错乱、推理断层。

资源下载

更多资源
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应用均可从中受益。

用户登录
用户注册