рдЕрд╡рдзрд╛рд░рдгрд╛рддреНрдордХ рд╣реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛

рдпрд╣ рдЖрд▓реЗрдЦ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдЧрд╛ рдХрд┐ рдХрд┐рд╕реА рдЪрд┐рддреНрд░ рдХреЗ рдЯреБрдХрдбрд╝реЗ рдпрд╛ рдлрд╕рд▓ рджреНрд╡рд╛рд░рд╛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЦреЛрдЬрдиреЗ рдХрд╛ рдЫреЛрдЯрд╛ рдХрд╛рд░реНрдп рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред





рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛


рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдХрдмреНрд░рд┐рд╕реНрддрд╛рди рд╣реИ рдЬрд╣рд╛рдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрднреА-рдХрднреА рдЕрдкрдиреА рд░рд╛рдп рдореЗрдВ, рд╕реБрдВрджрд░ рдЪрд┐рддреНрд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
рдЬреЛ рддрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдпрдВ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдФрд░ рдХрдИ рдмрд╛рд░ рдПрдХ рд╣реА рддрд╕реНрд╡реАрд░ рдХреЛ рдХрдИ рдмрд╛рд░ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░ рдкреЛрд╕реНрдЯ-рдореЙрдбрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд▓реЗрдХрд┐рди рд╡рд╣ рд╕рдордп рдЖрдпрд╛ рдЬрдм рд╣рд░ рдмрд╛рд░ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдХреНрдпрд╛ рдПрдХ рд╕рдорд╛рди рдпрд╛ рдПрдХ рд╣реА рддрд╕реНрд╡реАрд░ рдкрд╣рд▓реЗ рд╕реЗ рднрд░реА рд╣реБрдИ рдереАред
рдФрд░ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛ рдХрд┐ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЦреЛрдЬ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдХрд╛ рд╕рдордп рдерд╛ред

рдЬрд╛рдВрдЪ


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдБрдЦреЗрдВ SURF рдХреЗ рд╡рд░реНрдгрдирдХрд░реНрддрд╛рдУрдВ рдкрд░ рдЧрд┐рд░реАрдВ, рдЬрд┐рдирд╕реЗ рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓реЗред
рд▓реЗрдХрд┐рди рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдХрд╛рд░рдг, рдореИрдВрдиреЗ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдФрд░ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджрдмрд╛рдЬрд╝реА рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ SIFT / SURF рдХреЗ рд╡рд░реНрдгрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рдорд╛рди рдЪрд┐рддреНрд░ рдореЗрдВ рдХреБрдЫ рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рд╕рдВрдпреЛрдЧ рдХреА рдЬрд▓реНрджреА рд╕реЗ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рдеред

рдереЛрдбрд╝реЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЕрд╡рдзрд╛рд░рдгрд╛рддреНрдордХ рд╣реИрд╢ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛ред
рд╡реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдиреЗ рдФрд░ рдЦреЛрдЬрдиреЗ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рд░рд▓ рд▓рдЧ рд░рд╣реЗ рдереЗред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдПрдХ рдЕрд╡рдзрд╛рд░рдгрд╛рддреНрдордХ рд╣реИрд╢ рдХреБрдЫ рд╕рдВрдХреЗрддреЛрдВ рдХрд╛ рдПрдХ рджреГрдврд╝ рд╕рдВрдХрд▓реНрдк рд╣реИ рдЬреЛ рдПрдХ рддрд╕реНрд╡реАрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рддрд░рд╣ рдХреЗ рд╣реИрд╢ рдХрд╛ рдореБрдЦреНрдп рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рд╣реИрдорд┐рдВрдЧ рджреВрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреНрдп рд╣реИрд╢ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред

рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдпрджрд┐ рджреЛ рдЪрд┐рддреНрд░реЛрдВ рдХреА рд╣реИрд╢ рджреВрд░реА рд╢реВрдиреНрдп рд╣реИред рдлрд┐рд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпреЗ рдЪрд┐рддреНрд░ (рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛) рд╕рдорд╛рди рд╣реИрдВред
рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдордиреЛрд░рдо рдерд╛ рдХрд┐ рдЗрд╕ рджреВрд░реА рдХреА рдЧрдгрдирд╛ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ SQL рдХреНрд╡реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:

SELECT * FROM image_hash WHERE BIT_COUNT( 0x2f1f76767e5e7f33 ^ hash ) <= 10

рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдмрд╛рдХреА рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╣реИрд╢ рдХреЛ рдмреЗрд╣рддрд░ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдПрдХ рдмрд╛рдж рдХреЗ рд▓реЗрдЦ рдореЗрдВ , рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реИрд╢ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рддреАрди рддрд░реАрдХреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдФрд╕рдд рдорд╛рди рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓рддрдо рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрд┐рд╕реЗ рд╣рд╢ (рдФрд╕рдд рд╣реИрд╢) рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛ рдФрд░ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлреЗрд╢ ( рдкрд░рд╕реЗрдкреНрдЯрд▓ рд╣реИрд╢) рдореЗрдВ рд▓рд╛рдЧреВ рд╕рдмрд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╡рд┐рдХрд▓реНрдк, рдПрдХ рдФрд░ рд╡рд┐рд╡рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - dash (рдбрд┐рдлрд░реЗрдВрдЯ рд╣реИрд╢, рдбреЗрд╡рд┐рдб рдУрд╕реНрдЯреЗрдбрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд,) рдЕрд░реНрдерд╛рддреН, рдФрд╕рдд рдкрд┐рдХреНрд╕реЗрд▓ рдорд╛рди рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рд╛рдеред

рдХреБрдЫ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдмрд╛рдж, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐
рд╣рд╢ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реИ рдФрд░ рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХрддрд╛ рдХреА рдПрдХ рдмрдбрд╝реА рд░рд╛рд╢рд┐ рджреЗрддрд╛ рд╣реИ,
dHash рдкрд░рд┐рдорд╛рдг рдХреЗ рдХреНрд░рдо рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдмрд╣реБрдд рд╕реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЕрд╕рдВрддреЛрд╖рдЬрдирдХ рд╣реИрдВ,
рд╕рдмрд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдкреАрдПрдЪрдПрд╢ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рд╛рдмрд┐рдд рд╣реБрдЖ, рд▓реЗрдХрд┐рди рдЫрд╡рд┐ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрджрд┐ рдХреЛрдИ рдЫреЛрдЯрд╛ рдХреЙрдкреАрд░рд╛рдЗрдЯ рдЪрд┐рд╣реНрди рдЗрд╕рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддрдм рднреА рдлрд╝реЛрдЯреЛрд╢ рдХрд┐рд╕реА рдЪрд┐рддреНрд░ рдХреА рдкрд╣рдЪрд╛рди рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд░рдВрдЧ, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЪрдордХ, рдЖрдХрд╛рд░ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдорд╛рдореВрд▓реА рдЬреНрдпрд╛рдорд┐рддреАрдп рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИред

рдЗрди рд╕рднреА рдлрд╛рдпрджреЛрдВ рдХреЗ рд╕рд╛рде, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡реИрдз рд╕реАрдорд╛ рд╣реИ: рд╣реИрд╢ рдкреВрд░реА рддрд╕реНрд╡реАрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдзрд┐рдХ рдкреВрд░реНрдг рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХреА рд╣реИрд╢ рдлрд╕рд▓ рдХреЗ рд╕рд╛рде рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рддрд╕реНрд╡реАрд░реЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ, рдкреИрдорд╛рдиреЗ рдХреЗ рд╕рд╛рде рд╕рдВрд╢реЛрдзрдиреЛрдВ, рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рдкрдХреНрд╖реЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдпрд╛ рддрд╕реНрд╡реАрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рд╕реАрдзреЗ рдЖрдВрд╢рд┐рдХ рдпрд╛ рдЧрдВрднреАрд░ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИрдВред

рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕


рд╕реНрдерд┐рддрд┐ рдХреЗ рдереЛрдбрд╝рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪрд╛ рдХрд┐ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рд╕рдВрд╢реЛрдзрди рдХреЗ рд╕рд╛рде рдЪрд┐рддреНрд░ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдлреВрд▓, рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдЧреАрд▓рд╛ рдЯреИрдЧ рдпрд╛ рдлреЛрдЯреЛ рдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдмрджрд▓реЗрдВред

рд▓реЗрдХрд┐рди рдлрд╕рд▓ рдХреЗ рд╕рд╛рде рдЪрд┐рддреНрд░ рдЬреЛрдбрд╝рдирд╛ рдХрд╛рдлреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднрд╛рдЧ рдХреЛ рдХрд╛рдЯреЗрдВ, рдкрд╣рд▓реВ рдЕрдиреБрдкрд╛рдд рдХреЛ рдмрджрд▓реЗрдВ, рдХреБрдЫ рдмрдврд╝рд╛рдПрдВ, рдЖрджрд┐ред
рдЗрд╕рд▓рд┐рдП, рдкреВрд░реНрдг рдпрд╛ рдЖрдВрд╢рд┐рдХ рдореИрдЪ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдлрд╕рд▓ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЫреЛрдЯрд╛ред

рдПрдХ рдЪрд┐рддреНрд░ рдкреНрд░рддрд┐ рд╣реИрд╢ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рдЕрд╕рдорд░реНрде рд╣реИред

рд▓реЗрдХрд┐рди, рдЗрд╕ рддрд░рд╣ рдХреЗ рд╣реИрд╢ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рд╕рд╛рджрдЧреА рдХреЗ рдХрд╛рд░рдг, рдореИрдВ рдереЛрдбрд╝рд╛ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдЖрдк рдЗрд╕ рд╕реАрдорд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреА рдорджрдж рд╕реЗ рдЫрд╡рд┐ рдХреА рдлрд╕рд▓ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЪреВрдВрдХрд┐ рдПрдХ рд╣реИрд╢ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рд╣реИрд╢ рдХреА рдПрдХ рд╕реВрдЪреА рдорд┐рд▓рдиреА рдЪрд╛рд╣рд┐рдПред рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рд╣реИрд╢ рдХреЗрд╡рд▓ рдЫрд╡рд┐ рдХреЗ рдЕрдкрдиреЗ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рд╣рдо рдпрд╣ рдХреИрд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рддрд╕реНрд╡реАрд░ рдХреЛ рдХрд╣рд╛рдБ рдФрд░ рдХреИрд╕реЗ рдХрд╛рдЯрдирд╛ рд╣реИ?
рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ SURF рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдХрд╛рдо рдореЗрдВ рдЖ рд░рд╣реА рд╣реИрдВред

рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдкрд╛рдпрд╛ рдмрд┐рдВрджреБрдУрдВ рд╕реЗ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдХрд╛рдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛ред


рдЪрд┐рддреНрд░ 1. рдЕрдиреБрд░реЛрдзрд┐рдд рдЫрд╡рд┐ рд╕реЗ рдЕрдВрдХ рдорд┐рд▓реЗред


рдЪрд┐рддреНрд░ 2. рд╕рд╣реЗрдЬреА рдЧрдИ рдЫрд╡рд┐ рд╕реЗ рдЕрдВрдХ рдорд┐рд▓реЗ

рдЪреВрдВрдХрд┐ рд╣рдореЗрдВ рдЪрд┐рддреНрд░ рдХреЛ рдХрд╛рдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ (рдХрдо рд╕реЗ рдХрдо рдереЛрдбрд╝рд╛) рд╕рдорд╛рди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рд╕рдВрдпреЛрдЧ рд╣реЛ, рдХреБрдВрдЬреА рдмрд┐рдВрджреБрдУрдВ (рд╕реБрд╡рд┐рдзрд╛рдУрдВ) рдХреЗ k- рд╕рд╛рдзрди рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЧрдИ рдереАред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рдерд╛ рдХрд┐ рдпрджрд┐ рдЪрд┐рддреНрд░ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реБрдЖ рдФрд░ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдХрд┐ рд╕реНрдерд╛рдиреАрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд▓рдЧрднрдЧ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣реАрдВ, рддреЛ рд╕рдВрднрд╡рддрдГ рдЗрди рд╕реНрдерд╛рдиреАрдп рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдХреЗрдиреНрджреНрд░рдХ рднреА рд▓рдЧрднрдЧ рд╕рдВрдпреЛрдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рд╣реИред


рдЪрд┐рддреНрд░рд╛ 3. рдмрд┐рдВрджреБ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдХреЗрдВрджреНрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИред


рдЕрдВрдЬреАрд░ред 4. рдЕрдВрдХ рддреАрди рд╕рдореВрд╣реЛрдВ рдХреЗ рдХреЗрдВрджреНрд░реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдмрд╛рд░реАрдХреА рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдКрдкрд░реА рд╕реЗрдВрдЯреНрд░реЛрдЗрдб рд▓рдЧрднрдЧ рдЫрд╡рд┐ 3 рд╕реЗ рдХреЗрдВрджреНрд░ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред

рдРрд╕реЗ рд╕реЗрдВрдЯреНрд░реЛрдЗрдбреНрд╕ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рд▓рдЧрднрдЧ рдЕрднрд┐рд╕рд░рдг рдХрд░реЗрдВрдЧреЗ, рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 20 рдмрд╛рд░, рдХреНрд▓рд╕реНрдЯрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдмрджрд▓рдирд╛ред

рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдЪрд░рдо рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдХрдЯреМрддреА рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ред

20 рд╕рдореВрд╣реЛрдВ рдХреА рд╕реАрдорд╛ рдХреЗ рд╕рд╛рде, 21 * 20/2 = 210 рд╕реЗрдВрдЯреНрд░реЛрдЗрдб рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред рдФрд░ рдХреБрд▓ рдЪрд┐рддреНрд░ рдкреНрд░рддрд┐ рд╣реИрд╢ 210 = рд╣реИрд╢ рдХреА рдкреВрд░реА рддрд╕реНрд╡реАрд░ = 211 рд╣реИрд╢ред
рд▓реЗрдХрд┐рди рд╣рдо 32 рдкрд┐рдХреНрд╕реЗрд▓ рд╕реЗ рдХрдо рдХреА рдХрддрд░рдиреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдЕрдВрдд рдореЗрдВ рд╣рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 191 рд╣реИрд╢ рдорд┐рд▓рддрд╛ рд╣реИред

рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдиреЗ рдкреВрд░реА рддрд╕реНрд╡реАрд░реЛрдВ рдХреЗ рд╣реИрд╢ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рд╕реЗ рдмреЗрд╣рддрд░ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рдП, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд╕реНрдкрд╖реНрдЯ рдпрд╛рджреЛрдВ рдХреЗ рдХрд╛рд░рдг рдЕрд╕рдВрддреЛрд╖рдЬрдирдХ рдирд┐рдХрд▓рд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдиреЗрддреНрд░рд╣реАрди рд╕реНрд▓рд╛рдЗрд╕ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рд╣реИрд╢ рдХреА рдЬрд╛рдБрдЪ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред

рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рдЙрджреНрдпрдо рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдФрд░ рджреВрд╕рд░реА рджрд┐рд╢рд╛ рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ, рдореИрдВрдиреЗ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХрд┐ рдкрдХреНрд╖реЛрдВ рдХреА рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рд╛рд░реВрдк рдХреА рднреВрдорд┐рдХрд╛ рдХреНрдпрд╛ рд╣реИ рдпрд╛ рдирд╛рдЯрдХреЛрдВ рдХрд╛ рд╕рдордиреНрд╡рдп рдХрд░рддрд╛ рд╣реИред рдФрд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЗрд╕рд╕реЗ рдореИрдЪреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реБрдИред

рдореИрдВрдиреЗ рдЗрд╕реЗ рдкреНрд░рд╣рд╛рд░ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдард╛рдпрд╛, рддрд╛рдХрд┐ рдХрдЯ рдЪрд┐рддреНрд░ рдХрд╛ рд╕рдордиреНрд╡рдп рдЖрда рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛред


рдЪрд┐рддреНрд░ 5. рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдорд┐рд▓рд╛рди рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдХрд╛рдЯреЗрдВ

рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк


рдЕрдЧрд▓рд╛, рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдореЙрдбрд▓ рдХреА рдкрд░рд┐рдЪрд╛рд▓рдирддрд╛ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред
рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдЬрд▓реНрджреА рд╕реЗ рдХрдмреНрд░рд┐рд╕реНрддрд╛рди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдкреВрд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред
рдЗрд╕рдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ 1,235 рдЪрд┐рддреНрд░ рдФрд░ 194,710 рд╣реИрд╢ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ред

рдФрд░ рдлрд┐рд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ BIT_COUNT (hash1 ^ hash2) рдПрдХ рдорд╣рдВрдЧрд╛ рдСрдкрд░реЗрд╢рди рд╣реИ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдФрд░ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рднреА 200 рд╣реИрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдбрд╝реЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 200 рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред

рдореЗрд░реЗ рдХрдордЬреЛрд░ рд╕рд░реНрд╡рд░ рдкрд░, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдмрдбрд╝реЗ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдХрдо рд╕реЗ рдХрдо 2 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред

рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдПрдХ рддрд╕реНрд╡реАрд░ рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рд╣реИрдорд┐рдВрдЧ рджреВрд░реА рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП 200 * 194 710 = 38 942 000 рд╕рдВрдЪрд╛рд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдЕрдЧрд░ рдореИрдВрдиреЗ MySQL рдореЗрдВ рджреВрд░реА рдХреА рдЧрдгрдирд╛ рдХреЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд▓рд┐рдЦрд╛ рддреЛ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реЛрдЧрд╛ред
рдпрд╣ рдЕрдВрддрд░ рдирдЧрдгреНрдп рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд╕реНрдЯрдо рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдирд╣реАрдВ рд╣реИред

рд░реБрдЪрд┐ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ C ++ рдореЗрдВ рд╣реИрд╢ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдкрд░ рдПрдХ рдЦреЛрдЬ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред
рдЬрд╣рд╛рдВ рд╡рд┐рдЪрд╛рд░ рдЕрд╕рдВрднрд╡ рд░реВрдк рд╕реЗ рд╕рд░рд▓ рд╣реИ: рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд╣реИрд╢ рдХреА рдкреВрд░реА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рджреВрд░реА рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реБрдП, рдЙрдирдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдПрдВред

C ++ рдореЗрдВ рд╣реЗрдорд┐рдВрдЧ рдХреА рджреВрд░реА рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг
 typedef unsigned long long longlong; inline longlong hamming_distance( longlong hash1, longlong hash2 ) { longlong x = hash1 ^ hash2; const longlong m1 = 0x5555555555555555ULL; const longlong m2 = 0x3333333333333333ULL; const longlong h01 = 0x0101010101010101ULL; const longlong m4 = 0x0f0f0f0f0f0f0f0fULL; x -= (x >> 1) & m1; x = (x & m2) + ((x >> 2) & m2); x = (x + (x >> 4)) & m4; return (x * h01)>>56; } 



рдФрд░ рдРрд╕рд╛ рд╡рд┐рдЪрд╛рд░ SQL рдХреНрд╡реЗрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЛрдЧреБрдирд╛ рддреЗрдЬреА рд╕реЗ рдкреВрд░рд╛ рд╣реЛрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╣реИрд╢ рдХреЗ рдХрд╛рд░рдг, рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЗ рдирд┐рд░реНрдзрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рддреИрдпрд╛рд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рджреЛ рд╕реМ рдореИрдЪреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИрд╢, рдЪрд┐рддреНрд░ рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдорд╛рдирддреЗ рд╣реИрдВ? рд╢рд╛рдпрдж рдирд╣реАрдВред
рдРрд╕реЗ рдорд╛рдорд▓реЗ рднреА рдереЗ рдЬрдм 20% рд╕реЗ рдЕрдзрд┐рдХ рд╣реИрд╢ рдиреЗ рд╕рдВрдпреЛрдЧ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рддрд╕реНрд╡реАрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдирд╣реАрдВ рд╣реИред
рдФрд░ 10% рдореИрдЪ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реИред
рддреЛ рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдорд┐рд▓реА рд╣реИрд╢ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕рддреНрдпрд╛рдкрди рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИред

рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЧрд▓рдд рдорд┐рд▓рд╛рди рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдкрд╛рдП рдЧрдП рдЪрд┐рддреНрд░реЛрдВ рдХреЗ SURF рд╡рд┐рд╡рд░рдгреЛрдВ рдХреА рдЧрдгрдирд╛ рдФрд░ рдЕрдиреБрд░реЛрдз рдХрд┐рдП рдЧрдП рдореИрдЪреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХреАред
рдпрд╣ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХ рдЗрд╖реНрдЯрддрдо рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред

рдЙрдкрд╕рдВрд╣рд╛рд░


рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдиреЗ рд╣рдореЗрдВ рдЙрди рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬреЛ рд╕рдВрддреЛрд╖рдЬрдирдХ рд╕рдордп рдореЗрдВ рдЙрдЪрд┐рдд рд╕реАрдорд╛ рддрдХ рдлрд╕рд▓реА рдереАрдВред
рдпрджреНрдпрдкрд┐ рдпрд╣ рдЗрд╖реНрдЯрддрдо рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИ рдФрд░ рдпреБрджреНрдзрд╛рднреНрдпрд╛рд╕ рдпрд╛ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрдорд░реЗ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдХреЗ рдмрд╛рдж рд╣реИрд╢ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдФрд░ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЛ рддреНрдпрд╛рдЧрдирд╛ рдХрд╛рдлреА рдЙрдЪрд┐рдд рд╣реИ, рдЬреЛ рджреЛ рдпрд╛ рддреЛ рдпрд╛ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рд╣реИрд╢ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдо рдХрд░ рджреЗрдЧрд╛)ред
рд▓реЗрдХрд┐рди, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ, рдпрд╣ рд╕рд░рд▓ рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдпрджреНрдпрдкрд┐ рдЧреИрд░-рд╢реИрдХреНрд╖рдгрд┐рдХред

рд╕рдВрджрд░реНрдн

habrahabr.ru/post/120562 - рд╣реИрд╢ рдХрд╛ рд╡рд░реНрдгрди, рдЕрдиреБрд╡рд╛рдж
en.wikipedia.org/wiki/ Hamming_Distance - рд╣реИрдорд┐рдВрдЧ рджреВрд░реА
en.wikipedia.org/wiki/SURF - SURF рдкреНрд░рдореБрдЦ рдмрд┐рдВрджреБ
en.wikipedia.org/wiki/K-means - рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ
phash.org - рдкреАрдПрдЪрдПрдПрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛
www.hackerfactor.com/blog/index.php?/archives/529-Kind-of-Like-That.html - рд╣реИрд╢ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛
01101001.net/differencehash.php - рдЕрдВрддрд░ рд╣реИрд╢
github.com/valbok/img.chk/blob/master/bin/example.py - рдЫрд╡рд┐ рд╕реЗ рд╣реИрд╢ рдирд┐рд╖реНрдХрд░реНрд╖рдг рдХрд╛ рдореЗрд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
github.com/valbok/leie/blob/master/classes/image/leieImage.php - рдореЗрд░реЗ рд╣реИрд╢ рдХрд╛ рдПрдХ рдФрд░ рдкреНрд░рдХрд╛рд░, рд▓реЗрдХрд┐рди PHP рдореЗрдВ

Source: https://habr.com/ru/post/In205398/


All Articles