99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

Unity C#實(shí)現(xiàn)pHash感知哈希:圖片相似度計(jì)算與查重實(shí)戰(zhàn)

Unity C#實(shí)現(xiàn)pHash感知哈希:圖片相似度計(jì)算與查重實(shí)戰(zhàn) 做游戲或者工具鏈開(kāi)發(fā)的朋友應(yīng)該都遇到過(guò)一種需求明明是一張圖用戶上傳的是縮略圖、你本地存的是原圖卻要判斷它們“是不是同一個(gè)東西”。換到Unity工程里就是素材查重、自動(dòng)化測(cè)試截圖比對(duì)、玩家上傳圖片內(nèi)容過(guò)濾這一類的場(chǎng)景。你要是拿MD5去對(duì)縮放過(guò)、轉(zhuǎn)碼過(guò)、調(diào)過(guò)色的圖片哈希值全都不一樣直接沒(méi)法用。這種時(shí)候就輪到感知哈希pHash出場(chǎng)了。pHash的全稱是Perceptual Hash感知哈希。它不比較圖片的字節(jié)是否一樣而是比較圖片“看起來(lái)像不像”。兩張圖哪怕尺寸不同、分辨率不同、壓縮率不同只要視覺(jué)內(nèi)容一致算出來(lái)的哈希值就會(huì)非常接近。這篇文章我把Unity C#里實(shí)現(xiàn)pHash的完整思路、代碼、還有實(shí)際工程里的坑和閾值選擇全部整理出來(lái)給有同樣需求的人一個(gè)可以直接抄作業(yè)的版本。1. 為什么圖片“相似”不能用MD5來(lái)判斷1.1 MD5這類精確哈希的適用邊界MD5、SHA1這類哈希算法設(shè)計(jì)目標(biāo)就是讓內(nèi)容“哪怕只有一個(gè)bit的變化最終哈希值也完全不同”這就是所謂的雪崩效應(yīng)。這個(gè)特性用來(lái)校驗(yàn)文件完整性、判斷賬號(hào)密碼是否匹配是完美的但用來(lái)判斷圖片相似度就是災(zāi)難。舉個(gè)例子一張?jiān)瓐D你用JPEG壓縮到90%質(zhì)量理論上視覺(jué)上幾乎看不出區(qū)別但MD5值已經(jīng)完全變了。壓縮再給圖片加個(gè)幾像素的白邊MD5又變了一次。在素材查重場(chǎng)景里最常見(jiàn)的重復(fù)素材恰恰是“同一張圖的不同分辨率、不同壓縮率版本”用MD5去重等于漏掉了所有真正該去掉的重復(fù)項(xiàng)。我在實(shí)際項(xiàng)目里見(jiàn)過(guò)最典型的案例美術(shù)同學(xué)導(dǎo)出了一大批量貼圖其中有相當(dāng)一部分是同一張圖的不同尺寸版本用MD5腳本跑了一次結(jié)果一個(gè)重復(fù)的都沒(méi)標(biāo)出來(lái)。倒不是說(shuō)MD5沒(méi)用是它壓根不適合這個(gè)場(chǎng)景。相似度判斷需要一個(gè)“允許小變化”的度量方式而不是“完全相等”的嚴(yán)格校驗(yàn)。1.2 感知哈希家族aHash、pHash、dHash怎么選感知哈希不是一個(gè)單獨(dú)的算法而是一族。最常見(jiàn)的三個(gè)是aHash、pHash、dHash它們都把圖片最終映射成一組二進(jìn)制位通常64位區(qū)別在于中間的特征提取方式aHash平均值哈希把圖片縮小后轉(zhuǎn)灰度計(jì)算所有像素的平均值然后每個(gè)像素跟平均值比較大于等于記為1小于記為0。實(shí)現(xiàn)最簡(jiǎn)單但對(duì)細(xì)節(jié)變化很敏感。pHash感知哈希核心是DCT離散余弦變換從頻域提取低頻特征。對(duì)壓縮、縮放、輕微顏色變化的魯棒性最好也是目前最主流的方案。dHash差異哈希比較相鄰像素之間的灰度差速度快對(duì)漸變和模糊有一定容忍度但對(duì)裁剪和縮放相對(duì)敏感。在Unity里做素材相似度計(jì)算我首選pHash。原因很簡(jiǎn)單游戲素材最常見(jiàn)的變體就是“被壓縮過(guò)”“被縮放過(guò)分辨率”“被調(diào)過(guò)亮度”這三類變化pHash扛得住其他兩個(gè)沒(méi)那么穩(wěn)。1.3 pHash的底層邏輯從像素值到頻率特征的抽象pHash比aHash高明在哪里aHash比較的是像素的絕對(duì)亮度分布一旦圖片整體變亮或者變暗很多像素的閾值判定就會(huì)翻轉(zhuǎn)哈希值直接就崩了。pHash做了一次DCT變換把圖片從像素域轉(zhuǎn)換到頻率域提取的是“圖像在低頻部分的能量分布”??梢赃@么理解把圖片想象成一個(gè)起伏的地形像素值是海拔。像素域看到的是每個(gè)點(diǎn)的具體高度而頻率域看到的是一圈一圈的“起伏輪廓”。低頻分量對(duì)應(yīng)大范圍的地形走勢(shì)比如一個(gè)物體整體是亮還是暗、色塊怎么分布高頻分量對(duì)應(yīng)細(xì)微的紋理細(xì)節(jié)比如草地上的每一根草。pHash只保留低頻部分相當(dāng)于把地形圖簡(jiǎn)化成一張只有大輪廓的素描那些“局部微調(diào)”造成的高頻變化就被過(guò)濾掉了。這正是它抗壓縮、抗縮放的原理。JPEG壓縮丟掉的多半是高頻細(xì)節(jié)縮放過(guò)程也會(huì)抹掉一部分高頻但這些對(duì)低頻輪廓影響很小。所以兩張內(nèi)容相同但經(jīng)過(guò)不同處理的圖在頻域的低頻部分依然非常接近。2. pHash的完整計(jì)算鏈路2.1 縮小到32×32尺寸歸一化是第一道檻pHash第一步把任意尺寸的圖片統(tǒng)一縮放到32×32像素。這一步有兩個(gè)目的。第一個(gè)目的是消除尺寸差異。一張1920×1080的截圖和一張320×180的縮略圖內(nèi)容相同但像素?cái)?shù)量差了36倍。如果不統(tǒng)一尺寸后續(xù)計(jì)算的基準(zhǔn)就不一致。第二個(gè)目的是剔除高頻細(xì)節(jié)。32×32只有1024個(gè)像素這在信息量上已經(jīng)丟失了大量細(xì)節(jié)但保留了足夠描述圖像結(jié)構(gòu)的低頻信息。這一步等價(jià)于“讓參與比較的每一張圖都站到同一條起跑線上”。縮放質(zhì)量在這個(gè)階段其實(shí)沒(méi)那么苛刻。因?yàn)楹罄m(xù)還要做灰度化、DCT、二值化很多細(xì)節(jié)在中間環(huán)節(jié)就被抹掉了。實(shí)測(cè)下來(lái)最近鄰采樣和雙線性采樣的最終哈希值差異很小但雙線性會(huì)更穩(wěn)一些尤其是圖片里存在明顯斜線或邊緣的時(shí)候。代碼部分我給出的就是雙線性采樣實(shí)現(xiàn)。2.2 灰度化與DCT把圖像從像素世界搬到頻率世界縮小到32×32之后把每個(gè)像素轉(zhuǎn)成灰度值。標(biāo)準(zhǔn)公式是Y 0.299R 0.587G 0.114B這個(gè)加權(quán)系數(shù)不是隨便來(lái)的對(duì)應(yīng)人眼對(duì)紅、綠、藍(lán)三種顏色的敏感度差異。直接取RGB平均值RGB/3當(dāng)然也能跑但得到的結(jié)果會(huì)更偏向亮度均勻的色塊不如加權(quán)公式貼近人眼感知?;叶然笞鯠CT。DCT全稱Discrete Cosine Transform離散余弦變換把1024個(gè)灰度值組成的一個(gè)32×32矩陣變換成同樣大小的頻域系數(shù)矩陣。變換后的矩陣左上角是低頻分量右下角是高頻分量。為什么用DCT而不是DFT離散傅里葉變換DCT只使用余弦函數(shù)作為基變換結(jié)果是純實(shí)數(shù)計(jì)算量更小、能量更集中。JPEG圖像壓縮內(nèi)部用的也是DCT它對(duì)自然圖像的頻域特征提取效果很好。pHash的標(biāo)準(zhǔn)實(shí)現(xiàn)里DCT這一步就是核心也是整個(gè)算法計(jì)算開(kāi)銷(xiāo)最大的部分。2.3 取低頻系數(shù)與二值化64位指紋是怎么來(lái)的DCT變換完成后矩陣是32×32共1024個(gè)系數(shù)。pHash只取左上角8×8的系數(shù)塊也就是64個(gè)低頻系數(shù)。這64個(gè)值濃縮了圖像在八個(gè)方向上的低頻能量分布足以刻畫(huà)圖像的整體結(jié)構(gòu)。接下來(lái)計(jì)算這64個(gè)系數(shù)的平均值然后把每個(gè)系數(shù)跟平均值比較大于平均值記為1小于等于平均值記為0。最終得到一個(gè)64位的二進(jìn)制串通常用一個(gè)ulong類型存儲(chǔ)每一位代表一個(gè)低頻系數(shù)的二值化結(jié)果。這里有個(gè)容易誤解的點(diǎn)平均值二值化跟aHash的“像素均值”二值化看起來(lái)一樣但語(yǔ)義完全不同。aHash比較的是像素亮度均值對(duì)整體曝光變化敏感pHash比較的是頻域系數(shù)均值每個(gè)系數(shù)代表的是一類頻率模式的強(qiáng)度整體亮度變化主要影響DC分量第一個(gè)系數(shù)對(duì)其他系數(shù)的影響相對(duì)有限。這就是pHash對(duì)亮度變化不敏感的根本原因。2.4 漢明距離兩個(gè)指紋怎么算“差多少”得到兩張圖的64位哈希之后用漢明距離來(lái)衡量相似度。漢明距離的定義很簡(jiǎn)單兩個(gè)二進(jìn)制數(shù)對(duì)應(yīng)位不同的數(shù)量。比如哈希A是1100哈希B是1010逐位比較第一位都是1第二位1和0不同第三位0和1不同第四位0和0相同所以距離是2。距離越小說(shuō)明兩張圖的低頻特征越接近視覺(jué)上越相似。在C#里計(jì)算ulong類型的漢明距離最經(jīng)典的方式是先做異或再統(tǒng)計(jì)異或結(jié)果里1的個(gè)數(shù)。后續(xù)代碼里的實(shí)現(xiàn)用了Brian Kernighan算法每次把最低位的1清零循環(huán)次數(shù)等于1的個(gè)數(shù)比逐位右移判斷快不少。3. Unity里的C#實(shí)現(xiàn)與踩坑記錄3.1 拿到像素的第一個(gè)坑紋理不可讀在Unity里做圖像處理第一步就有一道坎Texture2D的getPixels方法要求在紋理導(dǎo)入設(shè)置里勾選Read/Write Enabled。如果你加載的是AssetBundle里的紋理、或者運(yùn)行時(shí)通過(guò)WWW加載的Texture2D默認(rèn)情況下這個(gè)選項(xiàng)是沒(méi)開(kāi)的直接調(diào)用GetPixels會(huì)直接拋異常。我開(kāi)始實(shí)現(xiàn)pHash的時(shí)候就在這上面栽過(guò)一次。那段代碼在編輯器里跑得好好的一到運(yùn)行時(shí)加載AssetBundle紋理就崩報(bào)錯(cuò)就是“Texture is not readable”。查了半天解決方案是在讀取像素之前判斷isReadable如果不可讀就先通過(guò)RenderTexture過(guò)一道“拷貝”把像素讀出來(lái)。RenderTexture拷貝的方式非常穩(wěn)定但要注意釋放臨時(shí)RT否則持續(xù)加載圖片時(shí)內(nèi)存會(huì)一點(diǎn)點(diǎn)漲上去。代碼里的ReadPixelsThroughRenderTexture方法就是處理這條路的。3.2 完整實(shí)現(xiàn)代碼下面是完整的pHash計(jì)算類可以在Unity工程里直接使用。核心流程嚴(yán)格遵循標(biāo)準(zhǔn)pHash縮放→灰度化→DCT→取低頻→均值二值化→ulong哈希。using System; using UnityEngine; namespace ImageCompare { public static class PHashCalculator { private const int SmallSize 32; private const int LowFreqSize 8; public static ulong ComputeHash(Texture2D source) { if (source null) throw new ArgumentNullException(nameof(source)); float[] grayscale DownscaleToGrayscale(source); float[,] dct Dct2D(grayscale); float[] lowFreq new float[LowFreqSize * LowFreqSize]; float sum 0f; for (int i 0; i LowFreqSize; i) { for (int j 0; j LowFreqSize; j) { lowFreq[i * LowFreqSize j] dct[i, j]; sum dct[i, j]; } } float average sum / lowFreq.Length; ulong hash 0; for (int i 0; i lowFreq.Length; i) { if (lowFreq[i] average) hash | 1UL i; } return hash; } private static float[] DownscaleToGrayscale(Texture2D source) { Color[] pixels source.isReadable ? source.GetPixels() : ReadPixelsThroughRenderTexture(source); float[] grayscale new float[SmallSize * SmallSize]; float stepX source.width / (float)SmallSize; float stepY source.height / (float)SmallSize; for (int y 0; y SmallSize; y) { for (int x 0; x SmallSize; x) { float srcX (x 0.5f) * stepX - 0.5f; float srcY (y 0.5f) * stepY - 0.5f; int x0 Mathf.Clamp(Mathf.FloorToInt(srcX), 0, source.width - 1); int y0 Mathf.Clamp(Mathf.FloorToInt(srcY), 0, source.height - 1); int x1 Mathf.Clamp(x0 1, 0, source.width - 1); int y1 Mathf.Clamp(y0 1, 0, source.height - 1); float fx srcX - x0; float fy srcY - y0; Color c00 pixels[y0 * source.width x0]; Color c10 pixels[y0 * source.width x1]; Color c01 pixels[y1 * source.width x0]; Color c11 pixels[y1 * source.width x1]; Color blended Color.Lerp( Color.Lerp(c00, c10, fx), Color.Lerp(c01, c11, fx), fy); grayscale[y * SmallSize x] 0.299f * blended.r 0.587f * blended.g 0.114f * blended.b; } } return grayscale; } private static float[,] Dct2D(float[] input) { int n SmallSize; float[,] output new float[n, n]; float scale 2f / n; for (int u 0; u n; u) { for (int v 0; v n; v) { float cu u 0 ? 1f / Mathf.Sqrt(2f) : 1f; float cv v 0 ? 1f / Mathf.Sqrt(2f) : 1f; float sum 0f; for (int x 0; x n; x) { for (int y 0; y n; y) { float cosU Mathf.Cos((2f * x 1f) * u * Mathf.PI / (2f * n)); float cosV Mathf.Cos((2f * y 1f) * v * Mathf.PI / (2f * n)); sum input[y * n x] * cosU * cosV; } } output[u, v] scale * cu * cv * sum; } } return output; } public static int HammingDistance(ulong a, ulong b) { ulong diff a ^ b; int count 0; while (diff ! 0) { diff diff - 1; count; } return count; } private static Color[] ReadPixelsThroughRenderTexture(Texture2D source) { RenderTexture rt RenderTexture.GetTemporary( source.width, source.height, 0, RenderTextureFormat.ARGB32); Graphics.Blit(source, rt); RenderTexture previous RenderTexture.active; RenderTexture.active rt; Texture2D temp new Texture2D(source.width, source.height, TextureFormat.RGBA32, false); temp.ReadPixels(new Rect(0, 0, source.width, source.height), 0, 0); temp.Apply(); Color[] pixels temp.GetPixels(); RenderTexture.active previous; RenderTexture.ReleaseTemporary(rt); if (Application.isPlaying) UnityEngine.Object.Destroy(temp); else UnityEngine.Object.DestroyImmediate(temp); return pixels; } } }調(diào)用方式也很簡(jiǎn)單using UnityEngine; public class PHashDemo : MonoBehaviour { public Texture2D sourceA; public Texture2D sourceB; [ContextMenu(計(jì)算相似度)] private void Compute() { ulong hashA PHashCalculator.ComputeHash(sourceA); ulong hashB PHashCalculator.ComputeHash(sourceB); int distance PHashCalculator.HammingDistance(hashA, hashB); Debug.Log($A的哈希: {hashA:X16}); Debug.Log($B的哈希: {hashB:X16}); Debug.Log($漢明距離: {distance}, 判定結(jié)果: {(distance 10 ? 相似 : 不相似)}); } }3.3 雙線性縮放為什么自己寫(xiě)Unity自帶的Texture2D有一個(gè)GetPixelsBilinear方法看起來(lái)可以一步到位做縮放采樣但實(shí)際用下來(lái)有兩個(gè)問(wèn)題。第一這個(gè)方法對(duì)紋理格式有要求在某些平臺(tái)上只支持ARGB32格式一旦紋理是壓縮格式返回的數(shù)據(jù)可能是不正確的。第二它在移動(dòng)端的表現(xiàn)跟編輯器端存在差異我用Android真機(jī)測(cè)試過(guò)一次得到的像素值跟PC上對(duì)不上這就導(dǎo)致同一張圖在兩臺(tái)設(shè)備上算出的哈希值可能不同。所以我在代碼里手動(dòng)實(shí)現(xiàn)了雙線性采樣。邏輯不復(fù)雜對(duì)于目標(biāo)像素點(diǎn)映射回原圖坐標(biāo)找到周?chē)膫€(gè)像素按距離做兩次線性插值。這樣不依賴Unity內(nèi)部API所有平臺(tái)行為一致。3.4 主線程卡頓和異步方案DCT計(jì)算包含四層循環(huán)雖然32×32的規(guī)模不算大C#跑一次大概幾毫秒但如果你在編輯器里批量處理幾百?gòu)埶夭拿繌埗紟缀撩爰悠饋?lái)還是有明顯卡頓。更關(guān)鍵的是GetPixels返回的Color數(shù)組一張4096×4096的貼圖會(huì)有1600萬(wàn)個(gè)Compressed顏色結(jié)構(gòu)體光這份數(shù)組就占幾百M(fèi)B內(nèi)存主線程上折騰這個(gè)非常不劃算。我實(shí)際項(xiàng)目里采用的策略是分兩段走主線程只負(fù)責(zé)讀取像素和轉(zhuǎn)灰度把1024個(gè)float數(shù)組準(zhǔn)備好耗時(shí)短且可控DCT和二值化放到后臺(tái)線程。灰度數(shù)組本身不依賴Unity API后臺(tái)線程可以安全計(jì)算。如果用的是協(xié)程可以這樣組織private IEnumerator ComputeHashAsync(Texture2D texture, Actionulong onDone) { float[] grayscale null; // 主線程讀取像素并轉(zhuǎn)灰度 grayscale ConvertToGray(texture); yield return null; // 后臺(tái)線程計(jì)算DCT與哈希 bool finished false; ulong hash 0; ThreadPool.QueueUserWorkItem(delegate { float[,] dct Dct2D(grayscale); hash BuildHash(dct); finished true; }); while (!finished) yield return null; onDone?.Invoke(hash); }這里的第一步在主線程因?yàn)門(mén)exture2D不能跨線程訪問(wèn)但轉(zhuǎn)灰度之后產(chǎn)生的float數(shù)組就跟Unity徹底解耦了線程隨便用。4. 閾值與實(shí)測(cè)多少距離算“相似”4.1 一組有代表性的對(duì)比測(cè)試算法實(shí)現(xiàn)出來(lái)之后最重要的事情是確定判定閾值。我拿一組測(cè)試圖跑了一遍涵蓋了最常見(jiàn)的圖片變化場(chǎng)景得到的結(jié)果大致如下處理方式漢明距離直觀判斷原圖 vs 原圖0完全一致原圖 vs 把尺寸縮小50%再放大0~2幾乎看不出區(qū)別原圖 vs JPEG質(zhì)量80壓縮2~4視覺(jué)上基本一致原圖 vs 亮度提升20%1~3視覺(jué)輕微發(fā)亮原圖 vs 對(duì)比度提升30%3~6能看出調(diào)過(guò)色但內(nèi)容清晰原圖 vs 四周裁剪比例5%4~8構(gòu)圖略變但主體還在原圖 vs 畫(huà)面中加了一小段字幕6~12主體內(nèi)容相同但新增元素明顯原圖 vs 水平翻轉(zhuǎn)30鏡像圖像視覺(jué)相同但結(jié)構(gòu)翻轉(zhuǎn)原圖 vs 旋轉(zhuǎn)90度40內(nèi)容方向變化巨大原圖 vs 另一張完全不相關(guān)的圖30~50內(nèi)容無(wú)關(guān)從數(shù)據(jù)能看出來(lái)絕大部分“同一張圖的不同形態(tài)”距離都能壓在10以內(nèi)。4.2 結(jié)合場(chǎng)景確定閾值閾值怎么定取決于你的業(yè)務(wù)對(duì)誤殺和漏放的容忍度。做素材查重我建議閾值設(shè)在10。這個(gè)區(qū)間能抓到絕大多數(shù)重復(fù)項(xiàng)同時(shí)誤判率很低。同一目錄下兩張恰好距離小于10但內(nèi)容無(wú)關(guān)的圖片我印象里還沒(méi)遇到過(guò)。做自動(dòng)化測(cè)試截圖比對(duì)閾值建議收緊到5。測(cè)試截圖通常是同一分辨率、同一環(huán)境下的對(duì)比如果距離超過(guò)5往往確實(shí)發(fā)生了可見(jiàn)變化。設(shè)得寬松反而會(huì)漏掉細(xì)微的UI偏移。做玩家上傳圖片過(guò)濾這類業(yè)務(wù)可以分兩級(jí)距離小于5直接判定為同一張圖距離小于10進(jìn)入人工審核隊(duì)列。這樣既避免誤殺又不至于漏得太厲害。4.3 pHash的已知短板和補(bǔ)救pHash有三個(gè)明顯的弱點(diǎn)用之前要有心理準(zhǔn)備。第一對(duì)旋轉(zhuǎn)和翻轉(zhuǎn)沒(méi)有抵抗力。旋轉(zhuǎn)90度后頻域分布完全不同漢明距離直接飆到30以上。如果業(yè)務(wù)里需要識(shí)別旋轉(zhuǎn)過(guò)的圖片需要提前做方向歸一化或者干脆不用pHash。第二對(duì)裁剪比較敏感。裁剪超過(guò)10%之后畫(huà)面構(gòu)圖變化會(huì)顯著影響低頻分布。不過(guò)“輕微裁剪縮放”這種常見(jiàn)的縮略圖場(chǎng)景距離仍然在可接受范圍內(nèi)。第三對(duì)大面積純色圖片判別效果有限。比如一張漸變背景的UI圖64個(gè)低頻系數(shù)可能大部分都趨近二值化結(jié)果的區(qū)分度就弱了。處理這類素材時(shí)我會(huì)額外疊加一個(gè)尺寸或?qū)捀弑忍卣髯鳛檩o助判斷。5. 從Demo到工程緩存、批量查重和擴(kuò)展5.1 給哈希結(jié)果加緩存哈希計(jì)算本身有開(kāi)銷(xiāo)在工程里不可能每次都現(xiàn)算。我的做法是對(duì)每個(gè)文件維護(hù)一個(gè)哈希緩存鍵用文件路徑拼接文件修改時(shí)間。文件沒(méi)變就直接從緩存里取結(jié)果只有新增或被修改的文件才重新計(jì)算。緩存的存儲(chǔ)格式很簡(jiǎn)單直接存ulong的字符串表示[Serializable] public class HashCacheEntry { public string path; public long lastWriteTicks; public string hashHex; }實(shí)際操作時(shí)可以直接序列化成Json文件。如果項(xiàng)目比較小用Dictionary存在內(nèi)存里就夠了如果幾百上千個(gè)素材要長(zhǎng)期管理落盤(pán)緩存能省掉大量重復(fù)計(jì)算時(shí)間。5.2 批量查重與性能批量查重的核心邏輯是兩兩比較N張圖片就是N×(N-1)/2次漢明距離比較。漢明距離是位運(yùn)算速度極快一萬(wàn)次比較也就在毫秒級(jí)別瓶頸全部在哈希計(jì)算上。假設(shè)庫(kù)里有1000張圖需要跑1000次哈希計(jì)算。我的測(cè)試機(jī)上一次完整哈希大概5毫秒總耗時(shí)5秒左右作為離線工具完全可接受。如果想更快可以把哈希計(jì)算并行化用ThreadPool開(kāi)Worker Thread分片處理。但兩兩比較本身就是O(N2)的問(wèn)題N到了5000以上就比較吃緊了。這種規(guī)??梢园垂V捣滞叭?4位哈希的前16位作為桶索引把哈希值接近的圖片放到同一桶里只對(duì)桶內(nèi)圖片做兩兩比較。前16位相同意味著漢明距離最多48直接排除了大量無(wú)關(guān)的比較。5.3 還能往哪擴(kuò)展這套方法不局限于Unity內(nèi)部。哈希結(jié)果是一個(gè)ulong完全可以在服務(wù)器端實(shí)現(xiàn)一套圖片查重服務(wù)??蛻舳松蟼鲌D片時(shí)計(jì)算哈希服務(wù)端拿哈希去數(shù)據(jù)庫(kù)里做比對(duì)就能實(shí)現(xiàn)“用戶上傳的圖片是否和庫(kù)中違規(guī)圖相似”這類需求。另一個(gè)方向是截圖回歸測(cè)試。游戲運(yùn)行過(guò)程中自動(dòng)截圖用pHash跟上一版本的基準(zhǔn)截圖對(duì)比距離超過(guò)閾值就說(shuō)明這次改動(dòng)影響到了畫(huà)面表現(xiàn)。這在UI自動(dòng)化里很好用比逐像素比較靠譜得多因?yàn)楣庹?、抗鋸齒、細(xì)微時(shí)序都會(huì)產(chǎn)生像素級(jí)差異但這些差異在pHash眼里只是幾個(gè)bit的距離波動(dòng)不會(huì)隨便誤報(bào)。最后說(shuō)點(diǎn)個(gè)人體會(huì)。pHash不是銀彈它對(duì)旋轉(zhuǎn)、翻轉(zhuǎn)沒(méi)有抵抗力對(duì)純色大塊面圖片區(qū)分度也一般但在絕大多數(shù)“素材查重、截圖比對(duì)、相似檢索”的場(chǎng)景里性價(jià)比高得離譜。我在實(shí)際項(xiàng)目里是先拿一小批真實(shí)素材把閾值驗(yàn)證好了再鋪開(kāi)這個(gè)習(xí)慣幫我少走了很多彎路。如果你在Unity里也有類似需求照著上面的代碼改一版基本就能直接落地。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
五月丁香六月激情视频| 丁香五月天堂网| 中文字幕久久婷九女同| 狠狠干狠狠干| 天天操无码| 日批在线看| 99热狠狠操| 激情又色又爽又黄的A片| 丁香五月av在线| 色播播婷婷| 无码99| 五月天激情视频网站| 久久婷婷五月天蜜桃| 五月婷婷激情| 欧美色九| 玖玖午夜视频| 五月天婷婷在线视频| 玖玖伦理电影| 97丁香花五月天激情小说| 97干在线观看| 国产精品国产| 五月丁香色婷基地综合久久| 久久一伦| 九九中文字幕九| 少妇人妻偷人精品无码视频新浪| 婷婷激情五月综合| 五月天激情综合| 五月天六月色| 欧美日本黄色| 色5月婷婷| 26uuu亚洲欧美日本| 广东99色在线| 天天热夜夜操| 天天婷婷色六月| 婷婷五月综合色中文字幕| 日韩国产AV播放| 亚洲妇女熟BBW| 九九视频在线观看| 国产成人网址| 亚洲亚洲人成综合网络| 成人午夜天| 欧美日韩成人在线| 99热这里只有精品4| 九色91视频| 色色色色色色网| 天天操,夜夜骑| a69在线视频| www.精品99| 九九久久污| 99精品视频免费观看近期发布| 激情九月婷婷| 亚洲成人无码专区| 五月婷婷丁香五月| 99热1| 激情综合国产| 99热热九九| 玖玖国产视频一区| 日本www五月婷婷| 丁香色六月| 色色吧综合| 另类激情五月| 激情综合网,五月| 天天做天天视天天谢| 欧美性二区| 青草青草久热这里只有精品| 伊人天天色| 深爱网深爱综合网| 99爱在线免费视频| 精品久久艹| 天天日天天爽| 亚洲天堂玖玖| 九九伊人网| 丁香花五月天激情| 伊人丁香花综合影院| 激情五月婷婷伊人| 丁香婷婷九月| 人与禽A片啪啪| 逼特逼在线免费播放| 丁香五月深爱五月婷婷| 综合久久六月| 色五月婷婷老师| 欧美人与性动交CCOO| 久久久精品人妻| 婷婷色五月丁香六月欧美啪| 亚洲日本韩国| 成人午夜免费电影| 99热这里精| 六月婷婷亚洲| 色五月婷婷在线| 免费看欧美成人A片无码| 丰满少妇猛烈A片免费看观看| 国产肥白大熟妇BBBB视频 | 久久33视频| 婷婷五月色惰| 99亚洲色| 久久激情视频| 丁香婷婷六月天| 色 丁香婷婷| 天天爽免费视频| 午夜成人综合| 91亚洲免费片| 久久机热这里只有 | 婷婷伊人| 天天爱综合网| 真实的国产乱XXXX在线91| 婷婷成人在线| 激情综合色五月丁香六月亚洲| 色偷偷色婷婷| 婷婷五月免费在线| 丁香五月伊人| 99re66热这里只有精品| 狠狠色丁香婷婷久久综合| 中文字幕在线日亚州9| 成人五月丁香花| 成人丁香色| 开心激情久久久久久久| 亚洲久热| 精热在线综合网| 99热激情| 欧美月久久| 亚洲尤物在线| 69凹凸成人综合网| www.狠狠操.co m| 五月婷婷在线观看黄| 99re在线播放| 七七九九色色| 激情五月天色色| 99热久97| 婷婷五月免费视频| 东北黄色一级| 久久婷婷五月综合色丁香| av操逼网| 激情网综合| AV中文在线| 97视频.干com| 天天肏夜夜肏| 97香蕉碰碰人妻国产欧美| www.五月天社区| 欧美韩国日本| 色狠狠六月| 九九热在线99| 青青热久精品视频在线观看| 亚洲成av人影院| 伊人久久婷婷| 婷婷在线播放| 欧洲亚洲免费视频9| 久久精品4| av第一二区| 亚洲成人在线五月天| 色婷婷成人做爰A片免费看网站| 99久久久久| 婷婷大乡焦噜噜| 99啪视频在线观看| 婷婷综合成人| 婷婷五月天久久| 六月婷婷久久| 久久天天天| 黄网免费观看| 激情五月第四色| 偷拍五月丁香| 天天日夜夜夜操操操操| 婷婷WWW久久| 五月天激情.com| 4438亚洲欧美| 五月婷婷五月| 五月婷婷亚洲天堂激情在线| 综合色、色综合| 六月丁香婷婷尤物| 婷婷五月丁香香蕉| 丁香六月啪| 热久久思思热思思| 97超级碰| 99色婷婷视频| 激情五月色综合国产精品| 欧美大片| 五月天最新网| 久久五月视频| 性综合网| 狠狠狠婷婷五月综合| 激情丁香五月婷婷| 99热这里只有精品青草| 夜夜人妻五月天| 大伊香蕉精品视频在线| 丁香在线视频| 国产夫妻操逼内射视频| 色婷婷无吗| 欧美啪啪9| 99成人网一区| av一区二区电影免费在线观看| 99综合| 色婷婷19| 美女被操一区二区| 婷婷丁香在线| 99热无码| 青青草原中文字幕| 色五月,婷婷大香蕉| 久久五月激情| 五月激情五月婷婷五月天在线| 婷婷综合偷拍| 风流少妇A片一区二区蜜桃| 色区域网站视频| 六月婷婷香蕉| www.婷婷五月.com| 99这里只有精品| 久久开心五月天激情| 99自拍视频网站| 久久久久久久久久久久久9| 99视频久久| 永久的网站AAAA| 久9热插入| 思思re99视频在线观看| 天天做天天爽| 五月丁香淫淫婷婷婷| 91一起艹| 草榴视频网| 被男人添B超爽视频| 亚洲婷婷免费| 五月天婷婷爱| 久久精品日| 久久久五月天| www.99热这里只有精品| 久久九九大香蕉电院| 色婷精品91| 九九热狼人| 五月丁香| 亚洲最大视频| 久久婷五月婷| 91久久久久久久久久久| 久9免费视频| 久久久久久五月天| 婷婷激情欧美| 开心五月婷婷激情网| 超碰97人人操| 91在线日| 综合五月婷婷| 99欧美| 伊人综合婷婷| 热热99爱爱| www.婷婷久久五月天| 亚洲五月婷婷| 丁香婷婷大香蕉| 五月丁香六月香香蕉| 婷婷五月av| 五月天婷婷久色| 激情丁香婷婷六月天| 欧洲综合视频| 性五月激情| 丁香六月狠狠干| 日韩人人操| www激情com| 色婷婷丁香五月观看| 亚洲va欧美| 九九狠狠干| 五月丁香综合成人社区| 精品网站:999WWW| 亚洲AVDVD| 极品嫩草| 欧美日比视频| 五月六月播婷婷| 在线网黄| 婷婷丁香六月五月天| 亚洲九区| 天天摸,天天爽| 日日操夜夜爽天天天| 婷婷丁香六月五月天| WWW,激情五月天,COM| 婷婷综合网| 久久久久久久丁香五月天婷婷| 色五月激情综合网| 五月婷久久| 婷婷丁香五| 五月丁香六月婷婷中文版| 婷婷丁香午夜综合影视| 99r这里只有精品在线观看| 婷婷激情啪啪| 国产午夜精品一区二区| 99爱视频| 大鸡巴伊人网| 涩综合网| 丁香久久五月天视频在线观看| 欧美综合在线五月天色婷婷| 深爱五月激情| 六月婷婷中文字幕| 天天插综合网| 亚洲精品色| 婷婷亚洲综合| 五月丁香偷拍| 这里有精品99| 亚洲综合激情五月| 五月丁香五月综合欧美| 婷婷久久欧美| 色就是色婷婷五月亚洲激情| 青青草日本亚洲| 婷婷五月丁香手机在线视频| 天天做夜夜爽| 色播色丁香五月| 成人Av在线大片| 久久久妻人人人| 日日操,夜夜撸| 六月婷婷综合| 国产成人精品亚洲线观看| 久久久五月天婷婷| 人人爽在线视频综合网| 国产va视频| 婷婷五月综合激情| 五月天婷婷涩涩| 99色激| 66精品成人免费网站在线观看| 狠狠色五月| 超碰狠狠操| 久久六月综合| 五月天婷婷黄色| 中文字幕丰满乱孑伦无码专区| 五月天色婷婷视频| 9久精品| 内射 无码 伊人| 色玖玖综合网| 99热这里只有精品5| 色欲久久综合| 久久丁香五月婷婷| 五月婷婷综合网| 国产69久久久欧美黑人A片| 激情综合网站| 久99热| 99精品视频网| 九九久久五月天| 久久色五月天综合网| 激情性爱五月天| 久久全色| 日日狠狠久久偷偷四色综合免费 | 色婷婷丁香五月| 五月婷婷九九热| 五月婷婷香蕉| 天天插天天干| 欧洲激情网站| 亚洲天堂99| av在线观看网址| 五月丁香久久综合精品| 婷婷综合五月天| www激情| 色婷婷五月影视| 激情综合五月色丁香婷婷 | 久久亚洲网| 99九九在线精品热动漫| 超碰在线中文字幕| 婷婷色综合| 狠狠噪| 天天草狠狠擦| 成人国产欧美大片一区| 99热在线里有精品| 国色天香成人网| 中文网AV| 六月丁香啪啪| 《》【无码】想被搞到爽AV应募而来的超M素人 西纯子 10musume-011723-01 | 色婷婷六月| 影音先锋男人av资源站| 婷婷色五月丁香六月欧美啪| 中文字幕五月久久婷婷| 四月婷婷五月丁香| 激情AV在线| 五月天六月婷婷电影| 在线只有精品| 丁香六月成人网| 思思久久99热只有频精品66| 手机激情网| 人与禽A片啪啪| 色。 日日日| JAPANRCEP老熟妇乱子伦视频 | 香蕉五月婷婷| www夜夜| 免费超碰在线| 五月婷婷三级| 99热这里只有精品国产免费| 狠狠色噜噜狠| 囯产精品久久欠久久久久久九大| 97干欧美| 亚洲蜜桃精久久久久久久久久久久 | 欧美成人精品三区综合A片| 亚洲午夜精品久久久久久人妖| 大香蕉啪啪| 婷婷久久综合| 九九丁香社区欧美激情| 五月丁香六月天| 成人一级片| 久热91| 五月婷婷六月爱| 成人无码髙潮喷水A片| 超碰renrenai| 手机旧版看人妻1025| 天堂久久精品| 欧美成人网婷婷综合在线| 国产九月婷婷| 天天日夜夜爽| 天天色天天色天天色天天色天天色| 任我肏视频精品| 婷婷色五月开心五月| 人人操日| 久久久潮喷-久久久九九-成人AV| 91九色|疯狂|高潮|对白|| 亚洲色色色色色| 五月天丁香色色| 色五月天在线观看| 99精品在线观看| 电影91久久久| 成人精品在线| 婷婷色Av| 国产一级片| 无码人妻丰满熟妇奶水区码| 97九色视频| 多精窝99在线视频| 久久总和99| 全部老头和老太XXXXX| 天天爽天天日天天舔| 五月婷啪| 亚洲av无码影院| 激情www| 四月婷婷丁香| 亚洲性图一区二区三区| 97色图片中文字幕视频在线观看 | 六月婷婷中文字幕| 亚洲婷婷激情888精品久| 丁香五月综合激情啪啪| 国内精品免费一区二区2009| 五月天激情久久| 婷婷五点亚洲| 96性爱视频| 99精品视频偷拍| 超碰亚洲欧美| 99久久综合| 琪琪色五月天| 操骚货在线| 99热日本| 丁香婷婷激情五月| 99久久婷婷| 一级性爱大片| 一区二区乱视频码| 色综啪啪网| 99精品无码| 五月丁香久久久久| 色噜噜狠狠色综无码久久合欧美 | 亚洲色啪| 色情五月婷婷| 亚洲欧美婷婷五月色综合| 99精品无码| 99热在线中文字幕| 最新激情五月天| 色五月色五天色情网| 人操91在线| 国产黄大片在线观看画质优化| 99精品久久| 色小说婷婷五月天天天| 丁香婷婷久| 99在线观看精彩视频| 99久在线精品99re8热| 婷婷五月综合色中文字幕| 最近中文字幕2019视频1| 激情综合色五月丁香六月亚洲| 五月丁香久久婷| www.五月婷婷.com| 中文字幕日韩无码制服诱或| 婷婷综合一二三| 婷婷色五月天在线观看| 深爱五月日韩| 97色婷婷| 久久婷婷的综合色丁香五月| 99热9| 另类五月激情| 五月天激情国产综合婷婷婷就去爱| 超碰9799| VA色婷婷| 激情深爱五月| 婷婷五月天成人动漫| 九月婷婷激情久久| 午夜少妇在线观看视频| 日本色图综合| 2025年最新亚洲在线欧美| 亚洲在线资源| 五月色亭丁香| 99色综合| 五月丁香色色| 五月激情婷婷在线| 婷婷丁香水多多视频| www.99热这里精品| 一级片无码| 九九热这里只有精品6| 色婷婷色五月天| 人妻射精AV| 色五月,婷婷大香蕉| 女人高潮内射99精品| 日本天堂免费99| 米奇影视资源婷婷狠狠色激情欧美五月丁香 | 五月丁香淫淫婷婷婷| 六月色婷婷色| 狼人狠狠操| 97久久婷婷色| 国产精产国品一二三在观看 | 久久五月人人摸| 色婷婷五月天偷拍| 超碰在线个人观看| 日韩AV中文在线观看| 91狠狠综合久久久| 999精品乱码77777| 婷婷基地爱| 六月天六月婷| 99在线观看精彩视频| 97人人操人人| 成人免费在线电影| 婷婷中文字幕网| 99精品丰满| 午夜不卡久久精品无码免费| 噜噜在线| 五月色网| 色播五月婷婷| 97操碰| 99操无码视频观看| 五月天久久综合婷婷| 色婷婷香蕉丁丁网| 无码激情精品色婷婷久久久久| 色婷婷香蕉| 五月天婷婷狂暴白浆| 九色婷婷| 六月婷婷开心| 91操人| 精品人妻伦一二三区久| 色婷婷六月丁香综合欲精品| 天天射色五月天| 婷婷五月天日逼| 九九国产视频| 26uuu欧美日韩| 91九色国产| 亚洲婷婷激情综合激情999精品| 殴美97色| av一区二区电影免费在线观看| 国产精品a无线| 婷婷亚洲综合| 狠狠操天天干| 欧美交换配乱吟粗大25P| 亚洲色色色| 97人人草| 人人草人人爱| 99国产精品久久久久久久久久久| 欧美成人精品A片免费一区99| 99热精品观看| 國語久久婷| 久草a片| 99在线热| 色色五月婷| 中文字幕在线播放视频| 日韩无码专区| 日本人妻伦在线中文字幕| 九九色色| 超碰免费观看| 婷五月天丁香婷五月| 天天肏天天肏| 91色在线/日韩| 操操天堂| 狠狠操天天操综合| 天天综合亚洲综合| 激情五月天伊人av| 日韩久热| 婷婷五月天AV| 伊人五月婷| 色五月婷婷影视| 综合色吧| 中文久久婷婷| www.粉嫩av.com| 激情5月婷婷狠狠干| 五月天欧美激情| 综合久久人妻| 婷婷五月综激情| www.狠狠| 色色色宗合网| 91婷婷色| 噜噜噜噜在线| 色五月婷婷老师| 五月天综合激情网| 丁香五月影院| 超碰成人在线免费观看| www久久久| 亚州欧美国产久精国产99综合视频| 色五月婷婷天天干| 丁香六月婷婷色XXXXX| 99精品视频偷拍| 国产成人+综合亚洲+天堂| 久久R激情| 99色久| 婷婷国产日本欧美| 六月综合在线| 色综合激情| 婷婷丁香六月天| 91丁香婷婷综合资源| 99久久婷婷国产综合| 99秘 在线| 99热免费观看| 超碰97在线操| 黄色精品五月婷婷| 色情播放| 99久久6| 综合久久婷婷99| 亚洲婷婷丁香| 久久视频在线| 99成人| 嫩草国产| 国产精品色色色色| 久热人妻| 久草九九| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | www.五月天婷婷| 久热2025无码| 五月天婷婷AV| 少妇人妻偷人精品无码视频新浪| 狠狠色97| 色五月婷婷久久| 色五月六月| 草草色情综合网| 婷婷五月天AV网| 开心五月网 | 91九色欧美| 人人看人人要| 婷婷丁香六月天| 草久私拍| 五月永久激情| www.色婷婷.com| 色综合狠狠色| www.开心激情| 五月丁香六月婷婷a v| 大香蕉欧美在线| 久久9热好| 在线亚洲综合| 四月婷婷丁香| 国产日韩欧美| 五月婷婷在线视频免费观看| 日韩在线一级| 月丁香久久久| 色婷婷基地| 亚洲精品又粗又大又爽A片| 亚洲综合久| 成年人丁香五月| 色五月亚洲| 人妻五月天激情开心网| 午夜色婷婷| 五月六月播婷婷| 色色亚洲| 99碰碰中文| 欧美黄色AA片哗啦啦啦| 在线不卡AC| 可以直接看的AV网站| 久久色五月天综合网| www.久久久久| 丁香五月在线视频| 国内外色色色色色成人视频| 丁香五月婷婷99| 夜夜爱网站| 丁香五月婷婷香| 丁香5月婷婷| 9久热精品在线视频| 久久婷婷五月国产色综合激情| 久久免片| 久热只有这里有精品| 五月婷婷开心网| 97福利视频| 久久久久久久久久8888| 五月丁香六月综合情在线观看| 亚洲五月天婷婷| 超碰在线国产| 九九99久久| 精品久色| 伊人综合网站| 激情五月天婷婷视频| 丁香婷婷综合影院| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 丝袜人妻| 五月婷丁香花| 色色色欧美| 激情婷婷内射| WwW色婷婷| 开心五月丁香婷婷| 999九九九久久久99HD| 99热这里有精力| 国产婷婷久久| 丁香九月久久| 夜夜骑操AV| 丁香婷婷九月在线| 噜噜网免费视频| 青青草Avb在线| 欧洲亚洲免费视频9| 色婷婷操逼| 色色99| 丁香5月啪啪| 欧美三级韩国三级日本三斤| 亚洲天堂大香蕉| 久久综合爱| 成熟妇人A片免费看网站| 色综合久久天天综合网| 婷五月天| 玖玖婷婷五月天| 激情五月激情综合网一级丸片| 超极99精品| 激情五月综合婷婷| 、激情六月天| 色婷婷播放| 伊人网碰碰| 五月丁香少妇网| 久久久久九九九九视屏小说88| 婷婷五月丁香91| 亚洲精品色色| 激情综合文学| 日韩无码色色| 色综合综合色| 热九九精品| 国产无遮挡又黄又爽免费网站| 五月婷丁香在线视频在线| 日韩无码系列| 亚洲激情av| 这里只有精品1| 丁香六月啪啪| 大胆伊人久久| 色婷婷影院| 婷婷伊人网| 成人噜噜网| www.婷婷久久五月天| 日韩人妻无码精品| 色婷婷色情| 精品热九九| 91丨九色丨东北熟女| 99re思思精品在线观看| 婷婷伊人网| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 五月激情偷拍婷婷| 国产成人AV在线播放| 五月婷婷色欲| 99啪啪视频| 99热99热在线| 亚洲激情丁香五月天色| 色婷婷综合成人| 日韩人妻AV在线| 99综合在线| 色综合色色色| 狠狠狠狠狠狠狠狠狠狠狠色宗合图片| 色婷婷免费观看| 色婷婷小视频| 日韩少妇内射免费播放| 婷婷亚洲影院| 婷婷五月天在婷| 婷婷丁香色五月天久久88| caopeng97人人| 91大操| 99在线免费观看| 久久久激情视频| 99在线精品免费视频| 337p午夜影院| 色综合久| 日本九九视频| 国产在线自| 爆乳熟妇一区二区三区四区| www.夜夜| 婷婷五月色播放| 欧美97色| 色婷婷六月天| 婷婷丁香五月综合免费视频百花| 五月丁香欧美综合免费视频| 思思99热热热99| 99久久综合网| 99狠狠| 色爽九九| 婷婷狠狠97| 夫妻超碰在线| 就爱日五月天| 7777久久亚洲中文字幕| 亚洲日韩成人三级av| 中文字幕成人| 国产精品美女久久久久AV超清| 国产91视频| 激情综合五月天| 色五月婷婷91| 久久婷婷啪啪视频| 国产婷婷五月天| 丁香婷婷91在线观看视频| www.com五月天| www.开心激情| 99热这里只有精品3| 婷婷开心六月| 开心深爱激情网| 深爱激清网| 热99这就是精品视频| 五月天久久丁香| 四色五月婷婷在线观看| 91wwmm导航| 久久久这里有精品| 26uuu成人网| 五月丁香另类网| 五月情色天| 五月婷婷丁香网| EEUSS鲁片一区二区三区| 天天澡天天狠天天天做| 五月丁香六月婷婷久久肏| 久久婷婷五月综合| 婷婷五月天黄色| 99久久九九| 久久99久久99久久99人受| 99热网站| 婷婷五月丁香国产| 色婷婷五月天无码视频| 国产精品操| 日本不卡中文字幕| 天堂久久性| 婷婷五月天av| 播五月婷婷开心| 一级A片天天操夜夜操| 99热只有精| WWW.99视频| 亚洲情欲| 成人免费黄色短视频| 亚洲色频| 激情婷婷五月| a色色片| 一本伊人色婷| 天天色天天日| 狠狠操天天干| 婷婷五月天VI| 成人网在线视频| 99婷婷| 亚洲va欧美| 9这里只有精品| 婷婷九月丁香| 婷婷伊人网| 久久婷婷五月天大香蕉| 麻豆雪千夏| 天天做天天爱天天爽夜夜揉| 大香蕉院线| 激情五月丁香婷婷| 久久538| 色婷婷8| 六月丁香av| 欧美综合激情五月丁香| 99热这里只有精品9| 欧美色色色| 影音 五月 婷婷 久久| 99九九中文字幕视频| 少妇日麻屄| 五月天俺去也| 这里只有精彩视频| 婷婷五月天av小说| 操操操操操操婷婷五月天| 最新亚洲色色网| 色综合久久99色| 熟妇人妻中文字幕无码老熟妇| 九九 激情 网| 婷婷五月开心中文字幕色| 亭亭五月天成人| 丁香五月成人社区| 亚洲欧洲美女在线观| 99色在线视频| 99成人免费热视频| 色婷婷成人| 99伊人婷婷在线| 天天干夜夜b| 色婷婷综合亚洲| 九色亚洲| 亚洲色色色色色色色色色| 婷婷五月天狠狠| 婷婷亚洲综合| 五月丁香色婷婷久久| 婷婷瑟五月天久久综合| 久久综合中文| 日本97在线观看| 激情婷婷内射| 激情六月天婷婷| 丁香五月激情五月色综合| 99色在线视频| 婷婷六月色开 | 天天操天天干天天日| 五月天婷婷网站| www.色9| 夜夜夜夜撸夜夜操| 免费无码毛片一区二区A片| 激情久久久久久| 五月婷婷六月开心| 亚洲网在线观看| 超碰在线99| 91成人看片| 中国女人做爰A片| 日日干五月天婷婷| 99人妻碰碰碰久久久久视| 日噜噜色| 色婷婷五月天亚洲| 超碰操网| 欧美色色日韩| 一区二区三区四区无码| 熟女激情网| 久操大屁股女人av| 日韩操| 大陆极品少妇内射AAAAAA| 婷婷五月在线免费| 大香蕉天堂| 丝袜激情网| 99热这里只有精品3| 无毒黄色网址| 久久99热精品a片在线观看| 极品人妻VIDEOSSS人妻| 大香蕉久| 26uuu欧美日本| 性生活视频98791| 色色色综合| 天啪色| 天天操天天操天天操天天操天天操 | 五月丁香色婷婷伊人| 婷婷97碰碰| 婷婷免费无马| 99综合自拍| 欧美色宗和激情| 五月激情在线| 一区视频网站| 久久婷婷网| www久久99| 97在线碰| 99色综合网| 色色色色色网| 六月婷婷视频| 性一交一乱一交A片久| 无码中文一区二区三区| www.色五月| 五月丁香WWW| 天天做夜夜爽| 亚洲avjiujiur91| 国产成人AV| 亚洲99视频| 91呦呦呦| 五月色色激情网| www.五月天色色色| 激情五月天综合网| 久久性视频| 泰州成人视频| 五月丁香六月婷婷综合网| http:色情日本com| 九九精品视频在线观看| 婷婷干六月综合旧址| 影音先锋91资源站| 欧美色宗和激情| 色色五月天激情| 欧美激情五月天在线观看| 亚洲国产精品VA在线看黑人| 996热re视频精品视频这里| 久久月天堂| 婷婷操超碰| 五月丁香啪啪激情| 五月丁香久久| 色99综合视频| 亚洲爱婷婷| 五月天天综合| 婷香五月网在线| 99国产精品白浆在线观看免费| 五月丁香激情婷婷综合| 久久五月天丁香花| 99视频内射三四| 激情校园 亚洲| αV电影| 天天看A片| 国产 A片 自拍| 丁香婷婷五月综合欧美另类| 丁香五月偷拍| 丁香五月色色色色| a性生活久久无| 九九热精品视频在线观看| 日韩黄色电影| 亚洲色五月天| 久久久精品人妻录| 日韩精品一品二区三区的使用体验| 激情五月小说婷婷| 欧美色小说婷婷| 丁香婷婷综合激情五月色| 影音先锋色婷婷| 另类丁香五月天区图| 日韩视频女神99| 婷婷五月激情中文字幕| 亚洲夜夜操| 婷婷综合色图| 99在线资源视频| 日本久久人人| 久久欧洲综合网| 色吊丝中文字幕| 久99久视频| 五月婷婷五月天| 激情五月图| 日韩黄色电影| 五月丁香六月激情| 五月丁香影院| 丁香五月另类小说在线阅读| 国产激情在线| 久久婷婷丁香花综合网| 超碰成人在线观看| 巴基斯坦粉嫩无码视频| 色五月天激情| 久热99久热| 97色婷| 欧美日韩成人高清在线| 性色欲情 网站| 色蜜婷婷| 狠狠色丁香乆乆| 超碰超碰在线| 五月情色天| 五月激情六月| 五月丁香久久呀| 色网五月婷婷| 色婷婷影视| 久久激情五月天| 五月婷婷色吧!| 五月丁香六月婷婷精品| 影音先锋综合网| 在线中文AV| 思思久久精品| 丁香五月AV| 色婷婷视频综合| 在线观看五月婷婷网| 亚洲一区国产传媒| 九九色网| 成人婷婷色综合| 九九热精品在线| 大香蕉啪啪| 天天爱天天狠天天透| 婷婷五月激情欧美大胆视频| 色激情综合狠狠婷婷| 色五月婷婷91| 五月婷婷导航| 婷婷五月激情欧美大胆视频| 久久久免费精彩视频| 色婷婷亚洲| jiZZdr| 九九性视频| 天天拍夜夜爽| 婷婷六月丁香综合| 五月天婷婷综合久久| 99ri在线视频| 色婷六月| 色综合久久88| 97成人在线视频| 91人妻人人操| a久久免费视频| 五月天激情无码高清| 国产欧美日韩一区二区三区| 五月婷婷深深的爱| 香蕉综合网| 亚洲成人av在线| 婷婷五月综合网| 综合性爱网| 97精品自拍视频| 婷婷五月天午夜激情影院| 亚洲av电影在线| 国成人网| 激情婷婷黄色五月| 久久天堂女人| 亚洲色图啪啪| 丁香婷婷老司机久操| 日本97在线观看| 亚洲精品444久久久久久| 91大操| 婷婷五月综合丁香久久| 九热网站| 超碰在线观看caop| 在线看av| 欧美啪啪五月天| 亚洲性爱电影| 國語久久婷| 婷婷激情小说网| 欧美成人热| 六月婷婷色五月| 午夜电影网VA内射| 99热这里只有免费| 天天日夜夜曹| 五月婷婷综合久久| 色五月婷婷在线| 婷婷深爱五月天| 天天操天天插| 99超超碰| 加勒比久热| 99热欧美精品| 婷婷无码视频| 丁香五月综合激情性爱| 99自拍视频在线观看| 青青草a在线| 夜夜噜夜夜奇| 九九热精品6| 精品99视频| 99啪| 五月综合激情婷婷六月色窝| 天天色综网| 性爱五月婷婷| 色色色999| 这里只有精品热| 国产色五月婷婷| 激情五月天天狠狠久久| 婷婷九月丁香| 亚洲视频一区| 91女人18毛片水多国产| 91porn一起草| 【乱子伦】黄色| 五月婷婷激情69| www.99热在线| 激情六月天婷婷| 另类在线| 久久伊人婷| www.91九色| 操逼福利视频| 亭亭玉月丁香| 思思热精品在线视频| 日本二级毛片二级毛片| 国产FREESEXVIDEOS性中国| 91亚洲免费片| 这里只有精品在线视频精品| 天天日人人爽| 影视av久久久噜噜噜噜噜三级| 中文字幕永久在线| 九九99热精品| 大香蕉久久伊人婷婷五月丁香| 另类精品视频在线观看| 97操男人的天堂| 丁香五月久久| 亚洲中文乱字字幕线在永久| 日本99在线| 97操操网| 超级黄色片| 五月色丁香国产在线视频| 五月第四色| 夜夜干夜夜操| 一区二区三区四区牛| 亚洲综合字幕色色| 久久五月天色| 国产精产国品一二三在观看| www.九九婷婷| 广东99色在线| 天天插天天插| 亚洲国产精品SUV| 婷婷免费无马| 欧美激情综合色丁香婷婷五月天| 九九精品99| 婷婷丁香五月在线观看91| 99久久久国产大片| 直接看的AV| 无码少妇高潮喷水A片免费| 午夜福利8055| 综合综合色色| 久热AA| 色婷婷五月天| 五月丁香精品| 色婷婷亚洲精品天天综| 色一情一乱一乱一区91Av| 亚洲成Av人片乱码色第1集| 97操在线视频| 天天激情| 极品人妻VIDEOSSS人妻| 九热久| 九热视频| 婷婷丁香18| 激情五月婷黄版| 日韩色五月| 无码一级片| 六月丁香综合网| 婷婷啪啪| 五月婷色| 久久五月丁香| 就去色色五月丁香婷婷久久久| 夜夜涩涩涩| 丁香色综合| 亚洲 欧洲 国产 伦综合| 99热这里只有精品 搜| 另类专区在线观看| 久久久久久久久久8888| 91视频五月丁香| 狠狠色婷婷综合开心影视| 丁香五月老师| 丁香五月电影| 激情九月婷婷| 综合99综合久久久久久久| CAoub青青超碰| 国精产品久久| 操人妻AV| 91热er| 九九视频这里只有精品| 亚洲色夜| 99视频在线精品| 五月婷婷干干干| 婷婷国产成人| 色婷青青| 五月婷婷内射网| 人妻无码精品一区| 综合网啪| 人人播| 亚洲第二AV| 九色色| 日韩野外 无套| 色情一区二区播放| 99国产精品久久久久久久久久久| 久久久中文| 91碰碰| 99精品国产热久久91色欲| 成人五月丁香社区| 國語久久婷| 五月天伊人综合| 96精品久久久久久久久| 久久 婷婷 五月天| 丁香五月婷婷操逼| 色色色国产| 丁香婷婷老司机久操| 亚洲免费婷婷| 婷婷五月天涩涩| 色99在线视频| 超碰在线综合| 色婷婷五月天在线观看| 久久五月婷婷丁香| 五月丁香精品| 婷婷五月丁香久久| 丁香五月婷婷网| 欧美99热| 成人午夜视频精品一区| 欧美婷婷五月天综合| 五月丁香色色色| 婷婷五月天网| 玖玖五月| 狠狠草狠狠草| 婷婷舔| 国产婷婷婷| 啪啪小说五月天| 久综合九| 婷婷五月天综合网| 涩综合在线| 色色婷婷综合| 久热这里只有精品6| 日韩精品99久久| 日本啪啪天堂| 五月天激情站| 免费视频在线观看的网站| 天天色激情| 五月丁香色综合| 99性爱| 五月丁香手机在线| 成人无码免费一区二区中文| 99热这里只有精品1| 欧美日韩成人在线网| 色色色色色色色色网站| 丁香五月婷婷成人综合| 99超碰欧美| 五月亭亭开心网| 日日噜人人人做人| 精品国产乱码久久久久久免费| 五月天婷婷永久免费视频| 97超级操操| 久久综合激情| 色六月天| 伊人婷婷色| 可以免费观看的av| 久久精品只有这| 久久久99视频| 久99999热视频在线观看免费| 色色COm| 黄色片区子| 色色网站毛片| 国产婷婷五月天| 激情综合网激情五月网| 国产精品 的国产| 婷婷五月天av| 中文不卡一二区| 激情人妻综合| 四季8848精品成人免费网站| 五月婷婷深深爱| 丁香五月天激情综合网| 激情五月婷黄版|