如何把照片压缩到20k一下_如何将图像压缩10倍?阿里工程师有个大胆的想法!...
生活随笔
收集整理的這篇文章主要介紹了
如何把照片压缩到20k一下_如何将图像压缩10倍?阿里工程师有个大胆的想法!...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
小嘰導讀:如何將單張圖片由120k 壓縮到了平均13k?阿里工程師做到了!并且將歐式距離計算平均耗時做到9微秒。今天,阿里巴巴技術專家蕭冷將公開從初步嘗試到優化的過程,希望對你有所幫助。背景在手機上用戶隨手拍一張衣服的照片,去找類似圖片的需求比較明顯,以圖搜圖項目目的就是滿足用戶的這部分需求。該項目初步預計5個類目,每個類目500萬圖片用于檢索。經過特征提取,每張圖片可以表示為30976維空間中的一個點,即可以用30976個float值表示,為了便于處理,我們將特征值乘以100000,在不損失float值精度的情況下,用int32_t存儲圖片特征。圖片檢索時需要計算query 圖片和索引圖片的歐式距離,圖片之間計算歐式距離的耗時為50微秒,經過cpu指令集優化(sse),歐式距離計算耗時減少到13微秒。在壓縮之前,所有圖片的大小為 3T( 4 * 30k * 25000000),每臺機器30G內存用于存儲圖片,需要100臺機器存儲全量圖片。需要在計算歐式距離效率不降低的情況下,對圖片進行壓縮,大規模減少機器的占用。我們的目標是壓縮到500G左右,即壓縮之后每張圖片20k左右,歐式距離計算耗時為15微秒左右。歐式距離計算要求耗時在微秒級別,已有的壓縮方法,比如p4delta、valgrind壓縮等在性能上不滿足要求,需要我們根據數據特點自己定制壓縮方法。成果? 這么靠譜的成果是如何做到的呢?初步嘗試
目前的壓縮方法單張圖片由120k 壓縮到了平均13k。
歐式距離計算平均耗時為9微秒。
- bitmap的方法
- 采用offset的壓縮方式
- 兩個壓縮圖片計算 --> 一個壓縮一個非壓縮
- 確定采用off_set壓縮方式
- 做法
- 舉例:
- olength += (6 - 0) * (6 - 0) olength += (sqrt[2] - sqrt[0])
- olength += (6 - 4) * (6 - 4)olength += (sqrt[3] - sqrt[3])
- olength += (6 - 0) * (6 - 0)?olength += (sqrt[4] - sqrt[4])
- 效率:20微秒
- 代碼如下:
- 有沒有更優化的方法呢?
- 舉例,上面的例子:
- multi += 6 * 0
- multi += 6 * 4
- multi += 6 * 0
- 效率 :11微秒
代碼
- 方法
- 效果
- 舉例
- 方法
- 效果
- 舉例:
- 方法
- 效果
- 舉例
- 方法
- 效果
- 舉例
- 方法
- 效果
- 舉例
多視圖多標記算法SIMM
10億節點異構網絡中,GCN 如何應用?
當個不“佛系”的推薦系統,CTR 預估要做哪些?
關注機器智能把握未來可能總結
以上是生活随笔為你收集整理的如何把照片压缩到20k一下_如何将图像压缩10倍?阿里工程师有个大胆的想法!...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新风系统风速推荐表_家用新风常用管道规格
- 下一篇: 本期缴纳上期应纳税额是什么意思