NMM-data-preprocess / manual /ARCHITECTURE.html
HanWangTJU's picture
Publish NMM data preprocessing v0.3.1 with Chinese tutorials
cd2952f verified
Raw History Blame Contribute Delete
21.1 kB
<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>&#20195;&#30721;&#35828;&#26126; &#183; NMM-data-preprocess</title><link rel="stylesheet" href="../assets/style.css"><script defer src="../assets/app.js"></script></head><body><header class="topbar"><a class="brand" href="../index.html">NMM<span> / </span>data-preprocess</a><nav><a href="https://huggingface.co/spaces/HanWangTJU/NMM-data-preprocess/tree/main">&#28304;&#20195;&#30721; &#8599;</a><a href="../downloads/NMM-data-preprocess-0.3.1.zip" download>&#19979;&#36733;&#28304;&#30721; &#8595;</a></nav></header><div class="manual-layout"><aside class="sidebar"><a href="../index.html">&#8592; &#36820;&#22238;&#39318;&#39029;</a><a class="" href="QUICKSTART.html">&#36880;&#27493;&#25945;&#31243;</a><a class="" href="USAGE.html">&#23436;&#25972;&#25163;&#20876;</a><a class="" href="PARAMETERS.html">&#21442;&#25968;&#21442;&#32771;</a><a class="" href="DEPLOYMENT.html">&#37096;&#32626;&#25351;&#21335;</a><a class="active" href="ARCHITECTURE.html">&#20195;&#30721;&#35828;&#26126;</a><h2>&#26412;&#39029;&#30446;&#24405;</h2><div class="toc">
<ul>
<li><a href="#1-&#24403;&#21069;&#29256;&#26412;&#19982;&#25968;&#25454;&#27969;">1. &#24403;&#21069;&#29256;&#26412;&#19982;&#25968;&#25454;&#27969;</a></li>
<li><a href="#2-&#21151;&#33021;&#30697;&#38453;">2. &#21151;&#33021;&#30697;&#38453;</a></li>
<li><a href="#3-&#28304;&#30721;&#25991;&#20214;&#35828;&#26126;">3. &#28304;&#30721;&#25991;&#20214;&#35828;&#26126;</a></li>
<li><a href="#4-&#35760;&#24405;&#26684;&#24335;&#19982;&#29366;&#24577;">4. &#35760;&#24405;&#26684;&#24335;&#19982;&#29366;&#24577;</a></li>
<li><a href="#5-&#20026;&#20160;&#20040;&#32479;&#35745;&#21518;&#33021;&#21453;&#22797;&#31579;&#36873;">5. &#20026;&#20160;&#20040;&#32479;&#35745;&#21518;&#33021;&#21453;&#22797;&#31579;&#36873;</a></li>
<li><a href="#6-&#24182;&#34892;&#21435;&#37325;&#21644;&#20869;&#23384;">6. &#24182;&#34892;&#12289;&#21435;&#37325;&#21644;&#20869;&#23384;</a></li>
<li><a href="#7-&#24403;&#21069;&#27809;&#26377;&#35206;&#30422;&#30340;&#35757;&#32451;&#21069;&#23457;&#26680;">7. &#24403;&#21069;&#27809;&#26377;&#35206;&#30422;&#30340;&#35757;&#32451;&#21069;&#23457;&#26680;</a></li>
<li><a href="#8-&#39564;&#35777;&#19982;&#29256;&#26412;">8. &#39564;&#35777;&#19982;&#29256;&#26412;</a></li>
</ul>
</div>
</aside><main class="manual"><h1 id="&#20195;&#30721;&#32467;&#26500;&#21151;&#33021;&#19982;&#23454;&#29616;&#36793;&#30028;">&#20195;&#30721;&#32467;&#26500;&#12289;&#21151;&#33021;&#19982;&#23454;&#29616;&#36793;&#30028;</h1>
<h2 id="1-&#24403;&#21069;&#29256;&#26412;&#19982;&#25968;&#25454;&#27969;">1. &#24403;&#21069;&#29256;&#26412;&#19982;&#25968;&#25454;&#27969;</h2>
<p>&#24403;&#21069;&#28165;&#27927;&#24211;&#29256;&#26412; 0.3.1&#65292;&#38754;&#21521;&#22270;&#29255;&#8212;&#25991;&#26412;&#23545;&#12290;0.3.1 &#20462;&#22797;&#36879;&#26126;&#22270;&#29255;&#23548;&#20986;&#26102; JSON &#25968;&#32452;&#32972;&#26223;&#33394;&#22238;&#35835;&#30340;&#31867;&#22411;&#38382;&#39064;&#12290;&#20027;&#35201;&#27969;&#31243;&#65306;</p>
<pre><code class="language-text">&#22270;&#29255;&#25991;&#20214;&#22841; / &#22270;&#25991; JSONL
&#9474; prepare&#65306;&#31283;&#23450;&#32534;&#21495;&#12289;&#22266;&#23450;&#28165;&#21333;&#19982; SHA-256
&#9660;
input.jsonl + input.jsonl.meta.json
&#9474; analyze&#65306;rank &#20998;&#29255;&#12289;&#26412;&#26426;&#36827;&#31243;&#27744;&#12289;&#35268;&#33539;&#21270;&#12289;&#27979;&#37327;
&#9660;
&#21508; rank &#30340; SQLite + JSONL
&#9474; merge/filter&#65306;&#37325;&#31639;&#35268;&#21017;&#12289;&#20840;&#23616;&#21435;&#37325;&#12289;&#27969;&#24335;&#32479;&#35745;
&#9660;
kept / rejected / duplicate / error + HTML/JSON &#25253;&#21578;
&#9474; export&#65306;&#28304;&#21704;&#24076;&#26657;&#39564;&#12289;&#36755;&#20986;&#35268;&#33539;&#21270; RGB
&#9660;
&#26631;&#20934;&#21270;&#22270;&#29255; + exported.jsonl &#8594; &#35757;&#32451;&#25968;&#25454;&#21152;&#36733;&#22120;
</code></pre>
<p><code>run</code> &#23558;&#21333;&#26426; prepare&#12289;analyze&#12289;merge &#39034;&#24207;&#20018;&#32852;&#65292;&#21487;&#36873; export&#12290;&#38745;&#24577; Space &#20165;&#23637;&#31034;&#25991;&#26723;&#19982;&#21629;&#20196;&#65292;&#31639;&#27861;&#22312;&#29992;&#25143;&#26426;&#22120;&#36816;&#34892;&#12290;</p>
<h2 id="2-&#21151;&#33021;&#30697;&#38453;">2. &#21151;&#33021;&#30697;&#38453;</h2>
<table>
<thead>
<tr>
<th>&#29615;&#33410;</th>
<th>&#24050;&#23454;&#29616;</th>
<th>&#36755;&#20986;/&#38480;&#21046;</th>
</tr>
</thead>
<tbody>
<tr>
<td>&#25209;&#37327;&#23548;&#20837;</td>
<td>&#36882;&#24402;&#22270;&#29255;&#30446;&#24405;&#12289;&#21516;&#21517; txt&#12289;&#22270;&#25991; JSONL</td>
<td>&#22266;&#23450;&#28165;&#21333;&#65292;&#36335;&#24452;&#21644;&#21407;&#22987; ID &#21487;&#36861;&#28335;</td>
</tr>
<tr>
<td>&#35299;&#30721;&#26816;&#26597;</td>
<td>&#22351;&#25991;&#20214;&#12289;&#25130;&#26029;&#12289;&#20687;&#32032;&#23481;&#37327;&#12289;&#21160;&#30011;/&#22810;&#39029;</td>
<td>&#21333;&#22270;&#22833;&#36133;&#36827;&#20837; error&#65292;&#19981;&#21024;&#38500;&#28304;&#22270;</td>
</tr>
<tr>
<td>&#26631;&#20934;&#21270;</td>
<td>EXIF&#12289;ICC&#8594;sRGB&#12289;RGB&#12289;&#36879;&#26126;&#21512;&#25104;&#12289;Unicode/&#31354;&#30333;</td>
<td>&#26080;&#27169;&#22411;&#25512;&#29702;&#65292;&#26080;&#40664;&#35748;&#35009;&#21098;</td>
</tr>
<tr>
<td>&#23610;&#23544;&#32479;&#35745;</td>
<td>&#23485;&#39640;&#12289;&#30701;/&#38271;&#36793;&#12289;&#20687;&#32032;&#12289;&#27604;&#20363;&#12289;&#26041;&#21521;&#20998;&#31867;</td>
<td>&#20840;&#37327;&#30452;&#26041;&#22270;&#65292;&#26368;&#22810; 20000 &#26679;&#26412;&#20272;&#35745;&#20998;&#20301;&#25968;</td>
</tr>
<tr>
<td>&#23610;&#23544;&#31579;&#36873;</td>
<td>&#30701;&#36793; &gt;=Np&#12289;&#31934;&#30830; WxH&#12289;&#20854;&#20182;&#23610;&#23544;&#38408;&#20540;</td>
<td>&#26465;&#20214;&#21462;&#20132;&#38598;&#65292;&#21253;&#21547;&#36793;&#30028;</td>
</tr>
<tr>
<td>&#23485;&#39640;&#27604;&#26742;</td>
<td>&#20843;&#26742;&#12289;&#22810;&#36873;/&#20840;&#36873;&#12289;&#20005;&#26684;/&#23485;&#26494;&#12289;&#21487;&#35843;&#23481;&#24046;</td>
<td>&#22266;&#23450;&#26742;&#65292;&#19981;&#20570;&#26742;&#22343;&#34913;&#37319;&#26679;</td>
</tr>
<tr>
<td>&#25216;&#26415;&#36136;&#37327;</td>
<td>&#27169;&#31946;&#12289;&#22122;&#22768;&#12289;SNR&#12289;&#22359;&#25928;&#24212;&#20195;&#29702;</td>
<td>&#26368;&#22810;&#20116;&#20010;&#21407;&#29983;&#20687;&#32032;&#21306;&#22495;&#65292;&#19981;&#26159;&#20154;&#24037;&#36136;&#37327;&#32467;&#35770;</td>
</tr>
<tr>
<td>&#25991;&#26412;&#26816;&#26597;</td>
<td>&#38271;&#24230;&#12289;Unicode&#12289;&#24191;&#21578;&#31561;&#27491;&#21017;</td>
<td>&#19981;&#35780;&#20272;&#22270;&#25991;&#35821;&#20041;&#19968;&#33268;&#24615;</td>
</tr>
<tr>
<td>&#31934;&#30830;&#21435;&#37325;</td>
<td>&#21407;&#23383;&#33410;&#12289;&#35268;&#33539;&#21270;&#20687;&#32032;</td>
<td>&#36328;&#20840;&#37096;&#20998;&#29255;&#20840;&#23616;&#22788;&#29702;</td>
</tr>
<tr>
<td>&#36817;&#37325;&#22797;</td>
<td>pHash&#12289;dHash&#12289;&#27604;&#20363;&#12289;RGB RMSE &#32852;&#21512;</td>
<td>&#21551;&#21457;&#24335;&#65292;&#19981;&#26159; embedding &#35821;&#20041;&#21435;&#37325;</td>
</tr>
<tr>
<td>&#24182;&#34892;/&#32493;&#36305;</td>
<td>&#26412;&#26426;&#36827;&#31243;&#27744;&#12289;&#22810;&#26426;&#38745;&#24577; rank&#12289;SQLite &#26816;&#26597;&#28857;</td>
<td>&#21512;&#24182;&#30001;&#21333;&#21327;&#35843;&#33410;&#28857;&#65292;&#26080;&#33258;&#21160;&#35843;&#24230;</td>
</tr>
<tr>
<td>&#23548;&#20986;</td>
<td>&#29420;&#31435; RGB PNG/JPEG&#12289;&#32553;&#23567;&#38271;&#36793;&#12289;&#28165;&#21333;&#12289;&#32493;&#36305;&#26657;&#39564;</td>
<td>&#21407;&#22270;&#19981;&#25913;&#21160;&#65292;&#22266;&#23450;&#35009;&#21098;&#30001;&#35757;&#32451;&#31471;&#23436;&#25104;</td>
</tr>
</tbody>
</table>
<p>&#29992;&#25143;&#25552;&#21040;&#30340;&#8220;&#27491;&#21017;&#21270;&#8221;&#22312;&#27492;&#23454;&#29616;&#20013;&#26159;&#25968;&#25454;&#35268;&#33539;&#21270;&#21644;&#35268;&#21017;&#26657;&#39564;&#65307;&#19981;&#21253;&#21547;&#35757;&#32451;&#25439;&#22833;&#27491;&#21017;&#21270;&#12289;&#25968;&#25454;&#22686;&#24378;&#25110;&#24352;&#37327;&#26631;&#20934;&#21270;&#12290;</p>
<h2 id="3-&#28304;&#30721;&#25991;&#20214;&#35828;&#26126;">3. &#28304;&#30721;&#25991;&#20214;&#35828;&#26126;</h2>
<table>
<thead>
<tr>
<th>&#25991;&#20214;</th>
<th>&#20027;&#35201;&#32844;&#36131;</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>image_cleaner/cli.py</code></td>
<td>argparse &#23376;&#21629;&#20196;&#12289;CLI &#35206;&#30422;&#12289;run &#20018;&#32852;&#19982;&#36820;&#22238;&#30721;</td>
</tr>
<tr>
<td><code>image_cleaner/config.py</code></td>
<td>&#19981;&#21487;&#21464; Config&#12289;JSON &#21152;&#36733;&#12289;&#23383;&#27573;&#19982;&#25968;&#20540;&#26657;&#39564;&#12289;&#37197;&#32622;&#25351;&#32441;</td>
</tr>
<tr>
<td><code>image_cleaner/io.py</code></td>
<td>&#30446;&#24405;&#23548;&#20837;&#12289;JSONL&#12289;&#28165;&#21333;&#36523;&#20221;&#12289;&#21407;&#23376;&#20889;&#20837;&#12289;&#38145;&#12289;SQLite&#12289;&#38480;&#27969;&#36827;&#31243;&#27744;</td>
</tr>
<tr>
<td><code>image_cleaner/images.py</code></td>
<td>EXIF/&#33394;&#24425;/&#36879;&#26126;&#24230;/&#25991;&#26412;&#35268;&#33539;&#21270;&#12289;&#21333;&#22270;&#20998;&#26512;&#19982;&#31579;&#36873;&#21407;&#22240;</td>
</tr>
<tr>
<td><code>image_cleaner/aspect.py</code></td>
<td>&#31934;&#30830;&#20998;&#25968;&#27604;&#36739;&#12289;&#23545;&#31216;&#20559;&#24046;&#12289;&#30830;&#23450;&#24615;&#26742;&#20998;&#37197;</td>
</tr>
<tr>
<td><code>image_cleaner/metrics.py</code></td>
<td>&#21407;&#29983;&#21306;&#22495;&#36136;&#37327;&#27979;&#37327;&#12289;pHash/dHash&#12289;&#32553;&#30053;&#22270;&#19982; RMSE</td>
</tr>
<tr>
<td><code>image_cleaner/jobs.py</code></td>
<td>&#20998;&#29255;&#20998;&#26512;&#12289;&#20840;&#23616;&#36807;&#28388;&#12289;&#33853;&#30424;&#21435;&#37325;&#32034;&#24341;&#12289;&#23548;&#20986;&#19982;&#32493;&#36305;</td>
</tr>
<tr>
<td><code>image_cleaner/stats.py</code></td>
<td>&#22686;&#37327;&#32479;&#35745;&#12289;&#33988;&#27700;&#27744;&#20998;&#20301;&#25968;&#12289;&#20869;&#23884; SVG HTML &#25253;&#21578;</td>
</tr>
<tr>
<td><code>tests/test_pipeline.py</code></td>
<td>&#23548;&#20837;/&#28165;&#27927;/&#21435;&#37325;/&#23548;&#20986;/&#20998;&#29255;/&#32493;&#36305;/&#23481;&#37327;&#31561;&#27979;&#35797;</td>
</tr>
<tr>
<td><code>tests/test_aspect.py</code></td>
<td>&#23481;&#24046;&#36793;&#30028;&#12289;&#27178;&#31446;&#26742;&#12289;&#37325;&#21472;&#20998;&#37197;&#12289;CLI&#12289;&#32531;&#23384;&#37325;&#31579;&#36873;</td>
</tr>
<tr>
<td><code>configs/</code></td>
<td>&#32479;&#35745;&#12289;&#23610;&#23544;&#12289;&#26742;&#12289;&#21435;&#37325;&#12289;&#29983;&#25104;&#25968;&#25454;&#31034;&#20363;&#37197;&#32622;</td>
</tr>
<tr>
<td><code>examples/</code></td>
<td>&#29983;&#25104;&#21512;&#25104;&#28436;&#31034;&#26679;&#26412;</td>
</tr>
<tr>
<td><code>docker/Dockerfile</code></td>
<td>CLI &#23481;&#22120;&#37096;&#32626;&#65292;&#19981;&#21551;&#21160; Web &#26381;&#21153;</td>
</tr>
<tr>
<td><code>tools/build_space.py</code></td>
<td>&#25991;&#26723;&#36716;&#25442;&#12289;&#38745;&#24577;&#39029;&#38754;&#12289;&#28304;&#30721; ZIP&#12289;&#21457;&#24067;&#25991;&#20214;&#26657;&#39564;&#28165;&#21333;</td>
</tr>
<tr>
<td><code>tools/publish_space.py</code></td>
<td>&#20174;&#29615;&#22659;&#21464;&#37327;&#35835;&#21462; Token&#65292;&#26816;&#26597;&#36134;&#21495;&#24182;&#21457;&#24067;&#30333;&#21517;&#21333;&#25991;&#20214;</td>
</tr>
<tr>
<td><code>web/</code></td>
<td>Space &#39318;&#39029;&#27169;&#26495;&#12289;&#26679;&#24335;&#19982;&#20132;&#20114;&#33050;&#26412;</td>
</tr>
</tbody>
</table>
<p><code>index.html</code>&#12289;<code>manual/*.html</code> &#19982; <code>downloads/*.zip</code> &#26159;&#21457;&#24067;&#26500;&#24314;&#20135;&#29289;&#12290;&#36816;&#34892;&#32467;&#26524;&#22312; runs&#65292;&#34394;&#25311;&#29615;&#22659;&#22312; .venv&#65292;&#20004;&#32773;&#19981;&#21457;&#24067;&#12290;</p>
<h2 id="4-&#35760;&#24405;&#26684;&#24335;&#19982;&#29366;&#24577;">4. &#35760;&#24405;&#26684;&#24335;&#19982;&#29366;&#24577;</h2>
<p>&#22806;&#37096; JSONL &#27599;&#26465;&#24517;&#39035;&#26377;&#23383;&#31526;&#20018; path&#65307;text &#20026;&#23383;&#31526;&#20018;&#25110; null&#65292;metadata &#20026;&#23545;&#35937;&#12290;&#36755;&#20837; id &#20250;&#20445;&#23384;&#20026; source_id&#65292;&#31243;&#24207;&#29983;&#25104;&#31283;&#23450; <code>sample-000000000000</code> &#31561; ID &#19982; seq&#12290;&#20854;&#20182;&#22806;&#37096;&#23383;&#27573;&#25918;&#20837; metadata&#65292;&#36991;&#20813;&#35206;&#30422;&#35745;&#31639;&#25351;&#26631;&#12290;</p>
<p>&#20998;&#26512;&#35760;&#24405;&#21253;&#21547;&#28304;&#36335;&#24452;&#12289;&#35268;&#33539;&#21270;&#25991;&#26412;&#12289;&#21407;&#22987;/&#26657;&#27491;&#23485;&#39640;&#12289;&#25991;&#20214;/&#20687;&#32032;&#21704;&#24076;&#12289;&#36136;&#37327;&#25351;&#26631;&#12289;&#39044;&#22788;&#29702;&#20803;&#25968;&#25454;&#12289;&#35686;&#21578;&#21644;&#31579;&#36873;&#21407;&#22240;&#12290;&#26368;&#32456;&#29366;&#24577;&#65306;</p>
<table>
<thead>
<tr>
<th>&#29366;&#24577;</th>
<th>&#21547;&#20041;</th>
</tr>
</thead>
<tbody>
<tr>
<td>kept</td>
<td>&#25152;&#26377;&#35268;&#21017;&#36890;&#36807;&#65292;&#19988;&#27809;&#26377;&#24402;&#24182;&#21040;&#20854;&#20182;&#20195;&#34920;</td>
</tr>
<tr>
<td>rejected</td>
<td>&#33267;&#23569;&#19968;&#20010;&#23610;&#23544;/&#26742;/&#36136;&#37327;/&#25991;&#26412;&#35268;&#21017;&#19981;&#36890;&#36807;</td>
</tr>
<tr>
<td>duplicate</td>
<td>&#35268;&#21017;&#36890;&#36807;&#65292;&#20294;&#31934;&#30830;&#25110;&#36817;&#37325;&#22797;&#21028;&#23450;&#24402;&#24182;&#21040;&#20195;&#34920;</td>
</tr>
<tr>
<td>error</td>
<td>&#26080;&#27861;&#25104;&#21151;&#35299;&#30721;&#12289;&#35268;&#33539;&#21270;&#25110;&#27979;&#37327;</td>
</tr>
</tbody>
</table>
<p>&#26368;&#32456;&#28385;&#36275; <code>input_count=kept+rejected+duplicate+error</code>&#12290;&#21516;&#19968;&#25298;&#32477;&#35760;&#24405;&#21487;&#20197;&#26377;&#22810;&#20010;&#21407;&#22240;&#65292;&#21407;&#22240;&#35745;&#25968;&#19981;&#21487;&#24403;&#25104;&#26679;&#26412;&#25968;&#30456;&#21152;&#12290;</p>
<h2 id="5-&#20026;&#20160;&#20040;&#32479;&#35745;&#21518;&#33021;&#21453;&#22797;&#31579;&#36873;">5. &#20026;&#20160;&#20040;&#32479;&#35745;&#21518;&#33021;&#21453;&#22797;&#31579;&#36873;</h2>
<p>analyze &#20445;&#23384;&#25104;&#21151;&#22788;&#29702;&#30340;&#23436;&#25972;&#25351;&#26631;&#65292;&#21363;&#20351;&#24403;&#26102;&#34987;&#38408;&#20540;&#25298;&#32477;&#20063;&#20889;&#20837; SQLite&#12290;filter &#20174;&#20840;&#37096;&#35760;&#24405;&#37325;&#26032;&#35745;&#31639;&#35268;&#21017;&#65292;&#32780;&#19981;&#26159;&#20165;&#35835;&#21462;&#19978;&#19968;&#27425; kept&#12290;&#22240;&#27492;&#25918;&#23485;&#38408;&#20540;&#33021;&#24674;&#22797;&#20197;&#21069;&#34987;&#25298;&#32477;&#30340;&#35760;&#24405;&#65292;&#25910;&#32039;&#38408;&#20540;&#20063;&#26080;&#38656;&#35835;&#28304;&#22270;&#29255;&#12290;</p>
<p>&#20845;&#39033;&#27979;&#37327;&#35774;&#32622;&#65288;reject_animated&#12289;max_decode_pixels&#12289;metric_patch_size&#12289;alpha_background&#12289;convert_icc&#12289;text_unicode_form&#65289;&#19981;&#20801;&#35768;&#22312;&#37325;&#31579;&#36873;&#20013;&#25913;&#21464;&#12290;&#21464;&#21270;&#20250;&#20351;&#32531;&#23384;&#25351;&#26631;&#19981;&#20877;&#23545;&#24212;&#26032;&#22788;&#29702;&#36923;&#36753;&#65292;&#38656;&#35201;&#37325;&#26032;&#20998;&#26512;&#12290;</p>
<h2 id="6-&#24182;&#34892;&#21435;&#37325;&#21644;&#20869;&#23384;">6. &#24182;&#34892;&#12289;&#21435;&#37325;&#21644;&#20869;&#23384;</h2>
<p>&#36827;&#31243;&#27744;&#24182;&#21457;&#38431;&#21015;&#32422;&#20026; workers &#30340;&#20004;&#20493;&#65292;&#32467;&#26524;&#36880;&#26465;&#20889;&#20837; SQLite&#12290;rank &#20351;&#29992; <code>seq % world_size</code>&#65292;&#27599;&#20010; rank &#20889;&#21333;&#29420;&#25968;&#25454;&#24211;&#12290;&#20840;&#23616; merge &#26657;&#39564;&#23436;&#25972;&#20998;&#29255;&#24182;&#25353;&#31283;&#23450;&#20248;&#20808;&#32423;&#22788;&#29702;&#20505;&#36873;&#12290;</p>
<p>&#31934;&#30830;&#21435;&#37325;&#32034;&#24341;&#22522;&#20110;&#21704;&#24076;&#65292;&#36817;&#37325;&#22797;&#20351;&#29992; pHash &#30340; r+1 &#20998;&#27573;&#32034;&#24341;&#21484;&#22238;&#20505;&#36873;&#65292;&#20877;&#22797;&#26680;&#32852;&#21512;&#26465;&#20214;&#12290;&#32034;&#24341;&#21644;&#25490;&#24207;&#20027;&#35201;&#33853;&#30913;&#30424;&#65292;&#19981;&#23558;&#20840;&#37327;&#22270;&#29255;&#25110;&#20840;&#37327;&#25351;&#26631;&#36733;&#20837;&#20869;&#23384;&#65307;&#27809;&#26377;&#20840;&#25968;&#25454;&#20004;&#20004;&#27604;&#36739;&#12290;</p>
<p>&#21512;&#24182;&#25209;&#37327;&#22788;&#29702; 500 &#26465;&#20505;&#36873;&#65292;SQLite &#32531;&#23384;&#32422; 32 MiB&#65292;&#20998;&#20301;&#25968;&#25277;&#26679;&#19978;&#38480; 20000&#12290;&#22270;&#29255;&#35299;&#30721;&#20869;&#23384;&#20173;&#38543;&#21407;&#22270;&#20687;&#32032;&#19982; workers &#22686;&#38271;&#12290;&#22823;&#37327;&#30456;&#20284;&#22270;&#29255;&#12289;&#32431;&#33394;&#22270;&#25110;&#39640;&#21322;&#24452;&#35774;&#32622;&#20250;&#22686;&#21152;&#22797;&#26680;&#25104;&#26412;&#65292;&#19981;&#33021;&#25454;&#27492;&#25215;&#35834;&#30334;&#19975;/&#20159;&#32423;&#21534;&#21520;&#37327;&#12290;</p>
<h2 id="7-&#24403;&#21069;&#27809;&#26377;&#35206;&#30422;&#30340;&#35757;&#32451;&#21069;&#23457;&#26680;">7. &#24403;&#21069;&#27809;&#26377;&#35206;&#30422;&#30340;&#35757;&#32451;&#21069;&#23457;&#26680;</h2>
<p>&#24403;&#21069;&#19981;&#21253;&#21547; OCR&#12289;&#27700;&#21360;/&#20154;&#33080;/&#38544;&#31169;&#35782;&#21035;&#12289;NSFW/&#29256;&#26435;&#21028;&#23450;&#12289;CLIP &#35821;&#20041;&#19968;&#33268;&#24615;&#12289;&#32654;&#23398;&#27169;&#22411;&#12289;&#35821;&#20041; embedding &#21435;&#37325;&#12289;&#35757;&#32451;/&#39564;&#35777;&#38598;&#38450;&#27844;&#28431;&#12289;WebDataset/Parquet &#36755;&#20837;&#12289;&#35270;&#39057;/&#38899;&#39057;&#12289;&#35757;&#32451;&#37319;&#26679;&#37197;&#39069;&#12289;&#21160;&#24577;&#38598;&#32676;&#35843;&#24230;&#12290;</p>
<p>&#21021;&#31579;&#20445;&#30041;&#20165;&#20195;&#34920;&#36890;&#36807;&#24050;&#37197;&#32622;&#35268;&#21017;&#65307;&#35757;&#32451;&#21069;&#20173;&#24212;&#25353;&#26469;&#28304;&#12289;&#20869;&#23481;&#31867;&#21035;&#21644;&#20219;&#21153;&#38656;&#27714;&#25277;&#26597;&#65292;&#30830;&#35748;&#22270;&#25991;&#23545;&#40784;&#21450;&#26679;&#26412;&#21487;&#29992;&#24615;&#12290;&#33509;&#21518;&#32493;&#25193;&#23637;&#65292;&#24212;&#20445;&#30041;&#29616;&#26377; source_id&#12289;&#31283;&#23450;&#28165;&#21333;&#21644;&#27599;&#26465;&#20915;&#31574;&#21407;&#22240;&#20415;&#20110;&#36861;&#28335;&#12290;</p>
<h2 id="8-&#39564;&#35777;&#19982;&#29256;&#26412;">8. &#39564;&#35777;&#19982;&#29256;&#26412;</h2>
<p>&#29616;&#26377; 22 &#39033;&#28165;&#27927;&#27979;&#35797;&#35206;&#30422;&#27491;&#22909; 5% &#36793;&#30028;&#12289;&#38646;&#23481;&#24046;&#12289;&#26742;&#37325;&#21472;&#12289;&#28304;&#25991;&#20214;&#21024;&#38500;&#21518;&#30340;&#32531;&#23384;&#31579;&#36873;&#12289;&#22810;&#36827;&#31243;/&#21452;&#20998;&#29255;&#19968;&#33268;&#24615;&#12289;&#21435;&#37325;&#12289;&#22810;&#25991;&#26412;&#12289;&#26029;&#28857;&#32493;&#36305;&#12289;&#36879;&#26126;&#22270;&#23548;&#20986;&#19982;&#37197;&#32622;&#22238;&#35835;&#12289;&#23548;&#20986;&#26657;&#39564;&#12289;&#20998;&#36776;&#29575;&#21253;&#21547;&#36793;&#30028;&#31561;&#12290;&#21457;&#24067;&#26102;&#21478;&#26680;&#39564;&#25991;&#26723;&#21442;&#25968;&#19982;&#20195;&#30721;&#12289;ZIP &#30333;&#21517;&#21333;&#21644;&#39029;&#38754;&#38142;&#25509;&#12290;</p>
<p>&#24674;&#22797;&#20998;&#26512;&#35201;&#27714;&#36719;&#20214;&#29256;&#26412;&#19982;&#37197;&#32622;&#25351;&#32441;&#19968;&#33268;&#12290;&#21512;&#24182;&#26087;&#20998;&#29255;&#38656;&#35201;&#21516;&#19968;&#25209;&#20998;&#29255;&#36523;&#20221;&#19968;&#33268;&#19988;&#24403;&#21069;&#20195;&#30721;&#33021;&#22815;&#35835;&#21462;&#20854;&#23383;&#27573;&#65307;&#19981;&#35201;&#28151;&#29992;&#19981;&#21516;&#36719;&#20214;&#29256;&#26412;&#12289;&#19981;&#21516;&#28165;&#21333;&#25110;&#19981;&#21516; world-size &#30340;&#20998;&#29255;&#12290;&#29256;&#26412;&#21495;&#19981;&#20195;&#34920;&#25968;&#25454;&#28165;&#27927;&#26631;&#20934;&#25110;&#27169;&#22411;&#25928;&#26524;&#20445;&#35777;&#12290;</p></main></div><footer>NMM-data-preprocess &#183; v0.3.1<span>&#22270;&#29255;&#25991;&#26412;&#25968;&#25454;&#21021;&#31579;&#25945;&#31243;</span></footer></body></html>