机器学习实战:用 SVD 压缩图像(已上线)
↓↓↓点击关注,回复资料,10个G的惊喜
SVD前文我们了解了奇异值分解(SVD)的原理,今天就实战一下,用矩阵的奇异值分解对图片进行压缩.
Learn by doing
我做了一个在线的图像压缩应用,大家可以感受一下。
功能很简单,上传需要压缩的图片,选择压缩比,提交即可。
下面咱们就一起看看实现过程
用SVD压缩图像原理很简单:将图片分解为RGB三颜色矩阵,将每个颜色矩阵进行奇异值分解,然后选择指定数量的特征对矩阵进行压缩。
核心代码完整代码大家可以clone我的huggingface
https://huggingface.co/spaces/beihai/Image-Compression-with-SVD
核心代码1:
p表示奇异值的百分比,根据指定的清晰度提取奇异值清晰度越高,压缩比越低,提取的奇异值的个数也就越多,图片也就越不会失真)
defrebuild_img(u,sigma,v,percent):m=len(u)n=len(v)a=np.zeros((m,n))count=(int)(sum(sigma))curSum=0k=0whilecurSum<=count*percent:uk=u[:,k].reshape(m,1)vk=v[k].reshape(1,n)a+=sigma[k]*np.dot(uk,vk)curSum+=sigma[k]k+=1a[a<0]=0a[a>255]=255
核心代码2:主要就是定义inderence函数和gradio前端的实现
importosos.system("pipinstall--upgradepip")os.system("pipinstallopencv-python-headless")importcv2importnumpyasnpimportgradioasgrfromfuncimportrebuild_imgdefinference(img,k):input_img=cv2.imread(img,cv2.IMREAD_COLOR)u,sigma,v=np.linalg.svd(input_img[:,:,0])R=rebuild_img(u,sigma,v,k)u,sigma,v=np.linalg.svd(input_img[:,:,1])G=rebuild_img(u,sigma,v,k)u,sigma,v=np.linalg.svd(input_img[:,:,2])B=rebuild_img(u,sigma,v,k)restored_img=np.stack((R,G,B),2)returnImage.fromarray(restored_img[:,:,::-1])gr.Interface(inference,[gr.inputs.Image(type="filepath",label="Input"),gr.inputs.Slider(0,1,0.1,default=0.6,label="Compressionratio")],gr.outputs.Image(type="pil",label="Output"),title=title,description=description,article=article).launch(enable_queue=True,cache_examples=True,share=True)上线
Gradio + Huggingface 上线机器学习应用(纯免费)我已经介绍过很多遍了,这里就不赘述了,还不太熟悉的同学请移步我这篇文章:腾讯的这个算法,我搬到了网上,随便玩!
这里就提一下遇到的小问题及解决方法吧。
由于用了cv2,所以要安装opencv-python,但是运行中报错如下:
File"/home/user/.local/lib/python3.8/site-packages/cv2/__init__.py",line8,infrom.cv2import*ImportError:libGL.so.1:cannotopensharedobjectfile:Nosuchfileordirectory
针对这个错误,网上有以下方法:
1 yum安装:
yuminstalllibglvnd-glx
2 重新安装opencv包:
pipuninstallopencv-pythonpipinstallopencv-python-headless
第一种方法需要root权限,建议直接第二种方法吧,省事。
参考:https://blog.razrlele.com/p/1920https://blog.csdn.net/qq_42192693/article/details/121392195
用Excel玩机器学习!用浏览器玩机器学习LightGBM 可视化调参AI黑科技!从此只看高清视频比 Tesorflow 还强的机器学习库AI 黑科技,老照片修复,模糊变高清相关阅读
-
世界热推荐:今晚7:00直播丨下一个突破...
今晚19:00,Cocos视频号直播马上点击【预约】啦↓↓↓在运营了三年... -
NFT周刊|Magic Eden宣布支持Polygon网...
Block-986在NFT这样的市场,每周都会有相当多项目起起伏伏。在过去... -
环球今亮点!头条观察 | DeFi的兴衰与...
在比特币得到机构关注之后,许多财务专家预测世界将因为加密货币的... -
重新审视合作,体育Crypto的可靠关系才能双赢
Block-987即使在体育Crypto领域,人们的目光仍然集中在FTX上。随着... -
简讯:前端单元测试,更进一步
前端测试@2022如果从2014年Jest的第一个版本发布开始计算,前端开发... -
焦点热讯:刘强东这波操作秀
近日,刘强东发布京东全员信,信中提到:自2023年1月1日起,逐步为...