
рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рдЕрдкрдиреЗ рдЧреГрд╣рдирдЧрд░ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдПрдХ рдХрд╛рд░ рдЪрд▓рд╛рдХрд░ рдФрд░ рджреВрд╕рд░реЗ рдЧрдбреНрдвреЗ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЬрд╛рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛: рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рджреЗрд╢ рдореЗрдВ рд╣рд░ рдЬрдЧрд╣ рдРрд╕реА "рдЕрдЪреНрдЫреА" рд╕рдбрд╝рдХреЗрдВ рдореМрдЬреВрдж рд╣реИрдВ рдФрд░ рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЕрдкрдиреЗ рджреЗрд╢ рдХреА рд╕рдбрд╝рдХреЛрдВ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрдХреНрд╖ рд░реВрдк рд╕реЗ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЖрдХрд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХрд╛рд░реНрдп рдФрдкрдЪрд╛рд░рд┐рдХрддрд╛
рд░реВрд╕ рдореЗрдВ, рд╕рдбрд╝рдХреЛрдВ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ GOST R 50597-2017 "рд╕рдбрд╝рдХреЛрдВ рдФрд░ рд╕рдбрд╝рдХреЛрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рдбрд╝рдХ рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд рд╕реНрд╡реАрдХрд╛рд░реНрдп рдкрд░рд┐рдЪрд╛рд▓рди рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБред рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рддрд░реАрдХреЗред " рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреИрд░рд┐рдЬрд╡реЗ, рд░реЛрдбрд╕рд╛рдЗрдб, рдбрд┐рд╡рд╛рдЗрдбрд┐рдВрдЧ рд╕реНрдЯреНрд░рд┐рдкреНрд╕, рдлреБрдЯрдкрд╛рде, рдкреИрджрд▓ рдпрд╛рддреНрд░реА рдорд╛рд░реНрдЧ, рдЖрджрд┐ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреНрд╖рддрд┐ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рднреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЪреВрдВрдХрд┐ рд╕рдбрд╝рдХреЛрдВ рдХреЗ рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдХрд╛рдлреА рд╡реНрдпрд╛рдкрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рд▓рд┐рдП рд╕рдВрдХреАрд░реНрдг рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдФрд░ рдХреЗрд╡рд▓ рд╕рдбрд╝рдХ рдорд╛рд░реНрдЧ рдХреЗ рдХрд╡рд░реЗрдЬ рдореЗрдВ рджреЛрд╖реЛрдВ рдХреЗ рдирд┐рд░реНрдзрд╛рд░рдг рдХреА рд╕рдорд╕реНрдпрд╛ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ред GOST R 50597-2017 рд╕рдбрд╝рдХ рдорд╛рд░реНрдЧ рдХреА рдХреЛрдЯрд┐рдВрдЧ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЛрд╖реЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИ:
- рдЧрдбреНрдвреЗ
- рдЙрд▓реНрд▓рдВрдШрдиреЛрдВ
- рдШрдЯрд╛рд╡
- рдмрджрд▓рд╛рд╡
- рдХрдВрдШреА
- рдЯреНрд░реИрдХ
- рдкрд╕реАрдирд╛ рдЖрдирд╛ рдмрд╛рдВрдзрдиреЗ рдХреА рдорд╢реАрди
рдореИрдВрдиреЗ рдЗрди рджреЛрд╖реЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣
рдореБрдЭреЗ рдРрд╕реА рддрд╕реНрд╡реАрд░реЗрдВ рдХрд╣рд╛рдБ рдорд┐рд▓ рд╕рдХрддреА рд╣реИрдВ рдЬреЛ рд╕рдбрд╝рдХ рдХреЗ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рджрд░реНрд╢рд╛рддреА рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рднреА? рдЬрд╡рд╛рдм рд╕реНрдлрдЯрд┐рдХреЛрдВ рдореЗрдВ рдЖрдпрд╛ - рдпрд╛рдВрдбреЗрдХреНрд╕ (рдпрд╛ Google) рдХреЗ рдирдХреНрд╢реЗ рдкрд░ рдкреИрдиреЛрд░рдорд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдереЛрдбрд╝реА рдЦреЛрдЬ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдХрдИ рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдХрд▓реНрдк рдорд┐рд▓реЗ:
- рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдЗрдВрдЬрди рдЬрд╛рд░реА рдХрд░рдирд╛;
- рд╢рд┐рдХрд╛рдпрддреЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рддрд╕реНрд╡реАрд░реЗрдВ (рд░реЛрд╢реНрдпрд╛рдорд╛, рдЧреБрд╕реНрд╕реЗ рдореЗрдВ рдирд╛рдЧрд░рд┐рдХ, рдкреБрдгреНрдп, рдЖрджрд┐)
- Opendatascience рдиреЗ рдПрдХ рдЪрд┐рд╣реНрдирд┐рдд рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рд╕рдбрд╝рдХ рджреЛрд╖ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ - github.com/sekilab/RoadDamageDetector
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╡реЗ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИрдВ: рдЦреЛрдЬ рдЗрдВрдЬрди рдЬрд╛рд░реА рдХрд░рдиреЗ рд╕реЗ рдмрд╣реБрдд рд╢реЛрд░ рд╣реЛрддрд╛ рд╣реИ (рдмрд╣реБрдд рд╕рд╛рд░реА рддрд╕реНрд╡реАрд░реЗрдВ рдЬреЛ рд╕рдбрд╝рдХ рдирд╣реАрдВ рд╣реИрдВ, рд╡рд┐рднрд┐рдиреНрди рд░реЗрдВрдбрд░, рдЖрджрд┐), рд╢рд┐рдХрд╛рдпрддреЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдЯреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рддрд╕реНрд╡реАрд░реЛрдВ рдореЗрдВ рдХреЗрд╡рд▓ рдбрд╛рдорд░ рдХреА рд╕рддрд╣ рдХреЗ рдмрдбрд╝реЗ рдЙрд▓реНрд▓рдВрдШрди рдХреЗ рд╕рд╛рде рддрд╕реНрд╡реАрд░реЗрдВ рд╣реИрдВред , рдХрд╡рд░реЗрдЬ рдХреА рдереЛрдбрд╝реА рд╕реА рднреА рдЙрд▓реНрд▓рдВрдШрди рдХреЗ рд╕рд╛рде рдФрд░ рдЗрди рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдЙрд▓реНрд▓рдВрдШрди рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдлреА рдХрдо рддрд╕реНрд╡реАрд░реЗрдВ рд╣реИрдВ, рд░реЛрдбрдбреИрдореЗрдЬрдбреЗрдХреНрдЯрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдЬрд╛рдкрд╛рди рдореЗрдВ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдХрд╡рд░реЗрдЬ рдХреЗ рдмрдбрд╝реЗ рдЙрд▓реНрд▓рдВрдШрди рдХреЗ рд╕рд╛рде рдирдореВрдиреЗ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдмрд┐рдирд╛ рдХрд╡рд░реЗрдЬ рдХреЗ рд╕рдбрд╝рдХреЗрдВ рднреА рд╣реИрдВред
рдЪреВрдВрдХрд┐ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдХрд▓реНрдк рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИрдВ, рд╣рдо рдпреИрдВрдбреЗрдХреНрд╕ рдкреИрдиреЛрд░рд╛рдорд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ (рдореИрдВрдиреЗ Google рдкреИрдиреЛрд░рдорд╛ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдмрд╛рд╣рд░ рд░рдЦрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд░реВрд╕ рдореЗрдВ рдХрдо рд╢рд╣рд░реЛрдВ рдореЗрдВ рд╕реЗрд╡рд╛ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрдо рдмрд╛рд░ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдЙрдиреНрд╣реЛрдВрдиреЗ 100 рд╣рдЬрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рд▓реЛрдЧреЛрдВ рдХреА рдЖрдмрд╛рджреА рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╕рдВрдШреАрдп рдХреЗрдВрджреНрд░реЛрдВ рдореЗрдВ рд╢рд╣рд░реЛрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдореИрдВрдиреЗ рд╢рд╣рд░ рдХреЗ рдирд╛рдореЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдИ - рдЙрдирдореЗрдВ рд╕реЗ 176 рдереЗ, рдмрд╛рдж рдореЗрдВ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ 149 рдореЗрдВ рдкреИрдиреЛрд░рдорд╛ рд╣реИред рдореИрдВ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдЯрд╛рдЗрд▓реЛрдВ рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рддрд▓реНрд▓реАрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдЕрдВрдд рдореЗрдВ рдореБрдЭреЗ 149 рдлрд╝реЛрд▓реНрдбрд░реНрд╕ (рдкреНрд░рддреНрдпреЗрдХ рд╢рд╣рд░ рдХреЗ рд▓рд┐рдП рдПрдХ) рдорд┐рд▓рд╛ рдЬрд┐рд╕рдореЗрдВ рдХреБрд▓ 1.7 рдорд┐рд▓рд┐рдпрди рддрд╕реНрд╡реАрд░реЗрдВ рдереАрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреЛрд╡реЛрдХреБрдЬрд╝рдиреЗрдЯреНрд╕рдХ рдХреЗ рд▓рд┐рдП, рдлрд╝реЛрд▓реНрдбрд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рдерд╛:

рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рддрд╕реНрд╡реАрд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ, рд╢рд╣рд░реЛрдВ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
рддрд╛рд▓рд┐рдХрд╛рд╢рд╣рд░
| рдлрд╝реЛрдЯреЛ рдХреА рд╕рдВрдЦреНрдпрд╛, рдкреАрд╕реА
|
---|
рдорд╛рд╕реНрдХреЛ
| 86,048
|
рд╕реЗрдВрдЯ рдкреАрдЯрд░реНрд╕рдмрд░реНрдЧ
| 41,376
|
рд╕рд░рд╛рдВрд╕реНрдХ
| 18,880
|
рдкреЛрдбреЙрд▓реНрд╕реНрдХ
| 18,560
|
Krasnogorsk
| 18,208
|
рд▓реНрдпреВрдмреЗрд░реНрддреНрд╕реА
| 17,760
|
рдХреИрд▓рд┐рдирд┐рдирдЧреНрд░рд╛рдж
| 16,928
|
рдХреЛрд▓реЙрдореНрдирд╛
| 16,832
|
Mytishchi
| 16,192
|
рд╡реНрд▓рд╛рджрд┐рд╡реЛрд╕реНрддреЛрдХ
| 16096
|
рдмрд╛рд▓рд╛рд╢реАрдЦрд╛
| 15,968
|
рдкреЗрдЯреНрд░реЛрдЬрд╝рд╛рд╡реЛрджреНрд╕реНрдХ
| 15,968
|
Ekaterinburg
| 15808
|
рд╡реЗрд▓рд┐рдХрд┐ рдиреЛрд╡рдЧреЛрд░реЛрдб
| 15,744
|
рдирдмреЗрд░реЗрдЬрд╝реНрдирд┐рд╢ рдЪреЗрд▓реНрдиреА
| 15680
|
рдХреНрд░рд╛рд╕реНрдиреЛрдбрд╛рд░
| 15520
|
рдирд┐рдЬрд╝рдиреА рдиреЛрд╡рдЧреЛрд░реЛрдб
| 15,488
|
Khimki
| 15296
|
рддреБрд▓рд╛
| 15296
|
рдиреЛрд╡реЛрд╕рд┐рдмрд┐рд░реНрд╕реНрдХ
| 15,264
|
Tver
| 15200
|
Miass
| 15104
|
рдЗрд╡рд╛рдирд╡рд╛
| 15072
|
рд╡реЛрд▓реЛрдЧреНрджрд╛
| 15,008
|
Zhukovsky
| 14,976
|
рдХреЛрд╕реНрддрд░реЛрдорд╛
| 14,912
|
рд╕рдореЗрд░рд╛
| 14,880
|
рдХреЛрд░реЛрд▓реЗрд╡
| 14,784
|
рдХрд▓реБрдЧрд╛
| 14,720
|
рдЪреЗрд░реЗрдкреЛрд╡реЗрдЯреНрд╕
| 14,720
|
рд╕реЗрд╡рд╕реНрддреЛрдкреЛрд▓
| 14,688
|
Pushkino
| 14,528
|
рдпрд░реЛрд╕реНрд▓рд╛рд╡
| 14,464
|
рдЙрд▓реНрдпрд╛рдиреЛрд╕реНрдХ
| 14400
|
рд░реЛрд╕реНрддреЛрд╡-рдСрди-рдбреЙрди
| 14,368
|
Domodedovo
| 14304
|
Kamensk-Uralsky
| 14208
|
рдкреНрд╕рдХреЛрд╡
| 14144
|
Yoshkar-Ola
| 14080
|
рдХреЗрд░реНрдЪ
| 14080
|
рдорд░рдордВрд╕реНрдХ
| 13,920
|
рдЯреЙрд▓рд┐рдпрд╛рдЯреА
| 13,920
|
рд╡реНрд▓рд╛рджрд┐рдореАрд░
| 13,792
|
Orel
| 13,792
|
рд╕рд┐рдХреНрддрд┐рд╡рдХрд╛рд░
| 13,728
|
рдорд╛рд╕реНрдХреЛ рдореЗрдВ
| 13,696
|
Khanty-Mansiysk
| 13664
|
рдХрдЬрд╝рд╛рди
| 13600
|
рдПрдВрдЧреЗрд▓реНрд╕
| 13440
|
рдЖрд░реНрдХрд╛рдиреНрдЬреЗрд╕реНрдХ
| 13280
|
рдмреНрд░рд╛рдВрд╕реНрдХ
| 13,216
|
рдУрдореНрд╕реНрдХ
| 13120
|
рд╕рд┐рдЬрд╝рд░рд╛рди
| 13088
|
рдХреНрд░рд╛рд╕реНрдиреЛрдпрд╛рд░реНрд╕реНрдХ
| 13056
|
Shchelkovo
| 12928
|
рдкреЗрдиреНрдЬрд╝рд╛
| 12,864
|
рдЪреЗрд▓реНрдпрд╛рдмрд┐рдВрд╕реНрдХ
| 12,768
|
рдЪреЗрдмреЙрдХреНрд╕рд╛рд░реА
| 12,768
|
рдирд┐рдЬрд╝рдиреА рдЯреИрдЧрд┐рд▓
| 12672
|
рд╕реНрдЯрд╛рд╡рд░реЛрдкреЛрд▓
| 12672
|
рдорд╛рд╕реНрдХреЛ рдореЗрдВ
| 12640
|
рдЗрд░рдХреБрддреНрд╕реНрдХ
| 12608
|
рдПрдВрдЧрд╛рд░реНрд╕реНрдХ
| 12608
|
Tyumen
| 12512
|
Odintsovo
| 12512
|
рдКрдлрд╝рд╛
| 12512
|
рдореИрдЧрд╛рдбрди
| 12512
|
рдкреЗрд░реНрдо
| 12,448
|
рдХреАрд░реЙрдлрд╝
| 12,256
|
рдХрдЬрд╝рд╛рди
| 12,224
|
Makhachkala
| 12,096
|
Nizhnevartovsk
| 11936
|
рдХреБрд░реНрд╕реНрдХ
| 11,904
|
рд╕реЛрдЪреА
| 11,872
|
рддрд╛рдВрдмреЛрд╡
| 11840
|
рдкреНрдпрддрд┐рдЧреЛрд░реНрд╕реНрдХ
| 11,808
|
рд╡реЛрд▓реНрдЧреЛрдбреЛрдиреНрд╕реНрдХ
| 11712
|
рд░рд┐рдпрд╛рдЬрд╝рд╛рди
| 11680
|
рд╕реЗрд░рд╛рдЯреЛрд╡
| 11616
|
рдЬрд╝рд░реНрдЬрд╝рд┐рд╕реНрдХ
| 11,456
|
рдСрд░реЗрдирдмрд░реНрдЧ
| 11,456
|
рдареЗрд▓рд╛
| 11,424
|
рд╡реЛрд▓реНрдЧреЛрдЧреНрд░рд╛рдб
| 11,264
|
рдЗрдЬрд╝рд╛рд╕реНрдХ
| 11,168
|
Zlatoust
| 11,136
|
рд▓рд┐рдкреЗрддреНрд╕реНрдХ
| 11,072
|
рдХрд┐рд╕реНрд▓реЛрд╡реЛрджреНрд╕реНрдХ
| 11,072
|
Surgut
| 11040
|
Magnitogorsk
| 10,912
|
рд╕реНрдореЛрд▓реЗрдВрд╕реНрдХ
| 10,784
|
рдЦрд╛рдмрд░реЛрд╡рд╕реНрдХ
| 10752
|
Kopeysk
| 10,688
|
Maikop
| 10,656
|
рдкреЗрддреНрд░реЛрдкрд╛рд╡реНрд▓реЗрд╡реНрд╕реНрдХ-рдХрдордЪреЗрддреНрд╕реНрдХреА
| 10,624
|
рддрдЧрд╛рдирд░реЛрдЧ
| 10560
|
рдмрд░реНрдирдКрд▓
| 10528
|
рд╕рд░реНрдЧрд┐рд╡ рдкреЛрд╕рдб
| 10368
|
Elista
| 10304
|
Sterlitamak
| 9920
|
рд╕рд┐рдореНрдлрд╝рд░реЛрдкреЛрд▓
| 9824
|
рдЯреЙрдореНрд╕реНрдХ
| 9760
|
рдЕрдЦрд░реЛрдЯ-Zuevo
| 9728
|
рдЖрд╕реНрдЯреНрд░рд╛рдЦрд╛рди
| 9664
|
рдпреЗрд╡реНрдкреЗрддреЛрд░рд┐рдпрд╛
| 9568
|
рдиреЛрдЧрд┐рдВрд╕реНрдХ
| 9344
|
рдЪреАрддрд╛
| 9216
|
рдмреЗрд▓рдЧреЙрд░реЙрдб
| 9120
|
Biisk
| 8928
|
Rybinsk
| 8896
|
рд╕реЗрд╡реЗрд░реЙрджреНрд╡реАрдиреНрд╕реНрдХ
| 8832
|
рд╡реЛрд░реЛрдирд┐рд╢
| 8768
|
Blagoveshchensk
| 8672
|
рдиреЛрд╡реЛрд░реЛрд╕реНрд╕рд┐рдпреНрд╕реНрдХ
| 8608
|
Ulan-Ude
| 8576
|
рд╕реЗрд░рдкреБрдЦреЛрд╡
| 8320
|
On-рдЕрдореВрд░
| 8192
|
Abakan
| 8128
|
рдиреЛрд░рд┐рд▓реНрд╕реНрдХ
| 8096
|
рдпреБрдЬрд╝рдиреЛ-рд╕рдЦрд▓реАрдВрд╕реНрдХ
| 8032
|
рдУрдмрдирд┐рдВрд╕реНрдХ
| 7904
|
Essentuki
| 7712
|
рдбреЙрди рдореЗрдВ
| 7648
|
Volzhsky
| 7584
|
рдиреЛрд╡реЛрдЪреЗрд░реНрдХрд╕реНрдХ
| 7488
|
Berdsk
| 7456
|
рдЕрд░рдЬрд╝рд╛рдорд╛рд╕
| 7424
|
Pervouralsk
| 7392
|
рдХреЗрдорд░реЛрд╡реЛ
| 7104
|
рдмрд┐рдЬрд▓реА рд╕реНрдЯреАрд▓
| 6720
|
Derbent
| 6592
|
рдпрд╛рдХреБрддреНрд╕реНрдХ
| 6528
|
рдореВрд░
| 6240
|
Nefteyugansk
| 5792
|
Reutov
| 5696
|
Birobidzhan
| 5440
|
Novokuibyshevsk
| 5248
|
рд╕рд▓реЗрдЦрд░реНрдб
| 5184
|
рдиреЛрд╡реЛрдХреБрдЬрд╝рдиреЗрдЯреНрд╕рдХ
| 5152
|
рдиреЛрд╡реА рдЙрд░реЗрдВрдЧреЙрдп
| 4736
|
Noyabrsk рдореЗрдВ
| 4416
|
рдиреЛрд╡реЛрдЪреЗрдмреЙрдХреНрд╕рд░реНрд╕реНрдХ
| 4352
|
рдореАрдареЗ рдкрд╛рдиреА рдХреА рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЫреЛрдЯреА рдордЫрд▓реА
| 3968
|
Kaspiysk
| 3936
|
рд╕реНрдЯрд╛рд░реА Oskol
| 3840
|
Artyom
| 3744
|
Zheleznogorsk
| 3584
|
Salavat
| 3584
|
Prokopevsk
| 2816
|
рдЧрд╝реЛрд░реНрдиреЛ-Altaisk
| 2464
|
рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рд╕реЗрдЯ рддреИрдпрд╛рд░ рдХрд░рдирд╛
рдФрд░ рдЗрд╕рд▓рд┐рдП, рдбреЗрдЯрд╛рд╕реЗрдЯ рдЗрдХрдЯреНрдареЗ рд╣реБрдП рд╣реИрдВ, рдЕрдм рдХреИрд╕реЗ, рд╕рдбрд╝рдХ рдЦрдВрдб рдФрд░ рд╕рдВрд▓рдЧреНрди рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рддрд╕реНрд╡реАрд░ рд╣реЛрдиреЗ рдкрд░, рдЙрд╕ рдкрд░ рдЪрд┐рддреНрд░рд┐рдд рдбрд╛рдорд░ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ? рдореИрдВрдиреЗ рдордзреНрдп рдХреЗ рдареАрдХ рдиреАрдЪреЗ рдореВрд▓ рдлрд╝реЛрдЯреЛ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ 350 * 244 рдкрд┐рдХреНрд╕реЗрд▓ рдорд╛рдкрдиреЗ рд╡рд╛рд▓реЗ рдлрд╝реЛрдЯреЛ рдХреЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдХрд╛рдЯрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдлрд┐рд░ рдХрдЯреЗ рд╣реБрдП рдЯреБрдХрдбрд╝реЗ рдХреЛ рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ 244 рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рдЖрдХрд╛рд░ рддрдХ рдХрдо рдХрд░реЗрдВред рдкрд░рд┐рдгрд╛рдореА рдЫрд╡рд┐ (244 * 244 рдЖрдХрд╛рд░ рдореЗрдВ) рдЗрдиреЛрд╡реЗрдЯрд┐рд╡ рдПрдирдХреЛрдбрд░ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рд╣реЛрдЧреА:

рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдореИрдВ рдХрд┐рд╕ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рдкрд╣рд▓реЗ 2000 рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдореИрдВрдиреЗ рдЦреБрдж рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдерд╛, рдмрд╛рдХреА рдЪрд┐рддреНрд░реЛрдВ рдХреЛ Yandex.Tolki рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЙрдирд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рдмреНрджреЛрдВ рдореЗрдВ рдПрдХ рдкреНрд░рд╢реНрди рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдерд╛ред
рдлреЛрдЯреЛ рдореЗрдВ рдЖрдкрдХреЛ рдХреМрди рд╕реА рд╕рдбрд╝рдХ рдХреА рд╕рддрд╣ рджрд┐рдЦрддреА рд╣реИ:
- рдорд┐рдЯреНрдЯреА / рдорд▓рдмреЗ
- рдлрд╝рд░реНрд╢ рдкрддреНрдерд░, рдЯрд╛рдЗрд▓, рдлреБрдЯрдкрд╛рде
- рд░реЗрд▓, рд░реЗрд▓ рдХреА рдкрдЯрд░рд┐рдпрд╛рдБ
- рдкрд╛рдиреА, рдмрдбрд╝реЗ рдкреЛрдЦрд░
- рдбрд╛рдорд░
- рдлреЛрдЯреЛ рдореЗрдВ рдХреЛрдИ рд╕рдбрд╝рдХ рдирд╣реАрдВ рд╣реИ / рд╡рд┐рджреЗрд╢реА рд╡рд╕реНрддреБрдПрдВ / рдХрд╡рд░реЗрдЬ рдХрд╛рд░реЛрдВ рдХреЗ рдХрд╛рд░рдг рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреА рд╣реИ
рдпрджрд┐ рдХрд▓рд╛рдХрд╛рд░ рдиреЗ "рдбрд╛рдорд░" рдЪреБрдирд╛, рддреЛ рдПрдХ рдореЗрдиреВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рдЬреЛ рдЗрд╕рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддрд╛ рд╣реИ:
- рдЙрддреНрдХреГрд╖реНрдЯ рдХрд╡рд░реЗрдЬ
- рдереЛрдбрд╝рд╛ рдПрдХрд▓ рджрд░рд╛рд░реЗрдВ / рдЙрдерд▓реЗ рдПрдХрд▓ рдЧрдбреНрдвреЗ
- рдмрдбрд╝реА рджрд░рд╛рд░реЗрдВ / рдЧреНрд░рд┐рдб рджрд░рд╛рд░реЗрдВ / рдПрдХрд▓ рдорд╛рдореВрд▓реА рдЧрдбреНрдвреЗ
- рдмрдбрд╝реЗ рдЧрдбреНрдвреЗ / рдЧрд╣рд░реЗ рдЧрдбреНрдвреЗ / рдирд╖реНрдЯ рдХрд┐рдП рдЧрдП рд▓реЗрдк
рджрд┐рдЦрд╛рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рд░рди рдХреЗ рд░реВрдк рдореЗрдВ, рд╡рд╛рдИ рдЯреЛрд▓реЛрдХреА рдирд┐рд╖реНрдкрд╛рджрдХ рдХрд╛рд░реНрдп рдХреА рдЕрдЦрдВрдбрддрд╛ рдореЗрдВ рднрд┐рдиреНрди рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ - рд╡реЗ рдЧрд▓рддреА рд╕реЗ рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рдЦреЗрддреЛрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╢реНрди рдЬреЛрдбрд╝рдирд╛ рдерд╛ (рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдореЗрдВ 46 рддрд╕реНрд╡реАрд░реЗрдВ рдереАрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ 12 рдирд┐рдпрдВрддреНрд░рдг рдереАрдВ) рдФрд░ рд╡рд┐рд▓рдВрдмрд┐рдд рд╕реНрд╡реАрдХреГрддрд┐ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдерд╛ред рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдЙрди рдЪрд┐рддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ рд╕реНрд╡рдпрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдерд╛ред рдореИрдВрдиреЗ рд╡рд┐рд▓рдВрдмрд┐рдд рд╕реНрд╡реАрдХреГрддрд┐ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░ рджрд┐рдпрд╛ - Y. Toloka рдЖрдкрдХреЛ рдХрд╛рд░реНрдп рдХреЗ рдкрд░рд┐рдгрд╛рдо CSV рдлрд╝рд╛рдЗрд▓ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ, рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЬрд╡рд╛рдмреЛрдВ рдХрд╛ рд╕рддреНрдпрд╛рдкрди рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдпрджрд┐ рдХрд╛рд░реНрдп рдореЗрдВ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 5% рд╕реЗ рдЕрдзрд┐рдХ рдЧрд▓рдд рдЙрддреНрддрд░ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдЕрдзреВрд░рд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдареЗрдХреЗрджрд╛рд░ рдиреЗ рдПрдХ рдЙрддреНрддрд░ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рд╕рддреНрдп рдХреЗ рдХрд░реАрдм рд╣реИ, рддреЛ рдЙрд╕рдХрд╛ рдЙрддреНрддрд░ рд╕рд╣реА рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдирддреАрдЬрддрди, рдореБрдЭреЗ рд▓рдЧрднрдЧ 30 рд╣рдЬрд╛рд░ рдЯреИрдЧ рдХрд┐рдП рдЧрдП рдлреЛрдЯреЛ рдорд┐рд▓реЗ, рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рддреАрди рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛:
- "рдЕрдЪреНрдЫрд╛" - "рдбрд╛рдорд░: рдЙрддреНрдХреГрд╖реНрдЯ рдХреЛрдЯрд┐рдВрдЧ" рдФрд░ "рдбрд╛рдорд░: рдорд╛рдореВрд▓реА рдПрдХрд▓ рджрд░рд╛рд░реЗрдВ" рд▓реЗрдмрд▓ рд╡рд╛рд▓реА рддрд╕реНрд╡реАрд░реЗрдВ
- "рдордзреНрдп" - "рдкрддреНрдерд░, рдЯрд╛рдЗрд▓реНрд╕, рдлреБрдЯрдкрд╛рде", "рд░реЗрд▓, рд░реЗрд▓рд╡реЗ рдЯреНрд░реИрдХ" рдФрд░ "рдбрд╛рдорд░: рдмрдбрд╝реА рджрд░рд╛рд░реЗрдВ / рдЧреНрд░рд┐рдб рджрд░рд╛рд░реЗрдВ / рдПрдХрд▓ рдорд╛рдЗрдирд░ рдбреЗрдВрдЯ" рд▓реЗрдмрд▓ рд╡рд╛рд▓реА рддрд╕реНрд╡реАрд░реЗрдВ
- "рдмрдбрд╝реЗ" - "рдорд┐рдЯреНрдЯреА / рдХреБрдЪрд▓ рдкрддреНрдерд░", "рдкрд╛рдиреА, рдмрдбрд╝реЗ рдкреЛрдЦрд░" рдФрд░ "рдбрд╛рдорд░" рд▓реЗрдмрд▓ рд╡рд╛рд▓реА рддрд╕реНрд╡реАрд░реЗрдВ: рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЧрдбреНрдвреЗ / рдЧрд╣рд░реЗ рдЧрдбреНрдвреЗ / рдирд╖реНрдЯ рдлреБрдЯрдкрд╛рде "
- рдЯреИрдЧ рдХреА рдЧрдИ рддрд╕реНрд╡реАрд░реЗрдВ "рдлреЛрдЯреЛ рдореЗрдВ рдХреЛрдИ рд╕рдбрд╝рдХ рдирд╣реАрдВ рд╣реИ / рд╡рд┐рджреЗрд╢реА рд╡рд╕реНрддреБрдПрдВ / рдХрд╡рд░реЗрдЬ рдХрд╛рд░реЛрдВ рдХреЗ рдХрд╛рд░рдг рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣реА рд╣реИ" рдмрд╣реБрдд (22 рдкреАрд╕реА) рдереЗ рдФрд░ рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдЖрдЧреЗ рдХреЗ рдХрд╛рдо рд╕реЗ рдмрд╛рд╣рд░ рд░рдЦрд╛ред
рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг
рдЗрд╕рд▓рд┐рдП, рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдФрд░ рд▓реЗрдмрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░рд┐рдпрд░ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдЖрдорддреМрд░ рдкрд░, рдЫрд╡рд┐ рд╡рд░реНрдЧреАрдХрд░рдг рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрдм рдЫреЛрдЯреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдПрдХ рддреИрдпрд╛рд░-рдХрд┐рдП рдЧрдП рджреГрдврд╝ рдПрдирдХреЛрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдПрдХ рдирдпрд╛ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдПрдХ рдЫрд┐рдкреА рд╣реБрдИ рдкрд░рдд рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЖрдХрд╛рд░ рдХреА рдПрдХ рдЗрдирдкреБрдЯ рдкрд░рдд 128 рдФрд░ рдЖрдХрд╛рд░ рдХреА рдПрдХ рдЖрдЙрдЯрдкреБрдЯ рдкрд░рдд 3. рдореИрдВрдиреЗ рддреБрд░рдВрдд рдЗрдореЗрдЬрдиреЗрдЯ рдкрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрдИ рддреИрдпрд╛рд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬреЛ рдПрдирдХреЛрдбрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИрдВ:
- Xception
- Resnet
- рдЖрд░рдВрдн
- Vgg16
- Densenet121
- Mobilenet
рдпрд╣рд╛рдБ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рджрд┐рдП рдЧрдП рдПрдирдХреЛрдбрд░ рдХреЗ рд╕рд╛рде рдХреЗрд░рд╕ рдореЙрдбрд▓ рдмрдирд╛рддрд╛ рд╣реИ:
def createModel(typeModel): conv_base = None if(typeModel == "nasnet"): conv_base = keras.applications.nasnet.NASNetMobile(include_top=False, input_shape=(224,224,3), weights='imagenet') if(typeModel == "xception"): conv_base = keras.applications.xception.Xception(include_top=False, input_shape=(224,224,3), weights='imagenet') if(typeModel == "resnet"): conv_base = keras.applications.resnet50.ResNet50(include_top=False, input_shape=(224,224,3), weights='imagenet') if(typeModel == "inception"): conv_base = keras.applications.inception_v3.InceptionV3(include_top=False, input_shape=(224,224,3), weights='imagenet') if(typeModel == "densenet121"): conv_base = keras.applications.densenet.DenseNet121(include_top=False, input_shape=(224,224,3), weights='imagenet') if(typeModel == "mobilenet"): conv_base = keras.applications.mobilenet_v2.MobileNetV2(include_top=False, input_shape=(224,224,3), weights='imagenet') if(typeModel == "vgg16"): conv_base = keras.applications.vgg16.VGG16(include_top=False, input_shape=(224,224,3), weights='imagenet') conv_base.trainable = False model = Sequential() model.add(conv_base) model.add(Flatten()) model.add(Dense(128, activation='relu', kernel_regularizer=regularizers.l2(0.0002))) model.add(Dropout(0.3)) model.add(Dense(3, activation='softmax')) model.compile(optimizer=keras.optimizers.Adam(lr=1e-4), loss='binary_crossentropy', metrics=['accuracy']) return model
рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ (рдХреНрдпреЛрдВрдХрд┐
рдХреЗрд░рд╕ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рд╡реГрджреНрдзрд┐ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдореБрдЭреЗ рдЕрдкрд░реНрдпрд╛рдкреНрдд рд▓рдЧ рд░рд╣реА
рдереАрдВ , рддрдм рдореИрдВрдиреЗ
рдСрдЧрдореЗрдВрдЯреЛрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛):
- рдврд▓рд╛рдиреЛрдВ
- рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡рд┐рдХреГрддрд┐
- рд░реЛрдЯреЗрд╢рди
- рд░рдВрдЧ рд╕реНрд╡реИрдк
- рдмрджрд▓рд╛рд╡
- рд╡рд┐рдкрд░реАрдд рдФрд░ рдЪрдордХ рдмрджрд▓реЗрдВ
- рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╢реЛрд░ рдЬреЛрдбрд╝рдирд╛
- рдЫрд┐рдбрд╝рдХрдирд╛
рд╡реГрджреНрдзрд┐ рдХреЗ рдмрд╛рдж, рддрд╕реНрд╡реАрд░реЗрдВ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИрдВ:

рдЬрдирд░реЗрдЯрд░ рдХреЛрдб:
def get_datagen(): train_dir='~/data/train_img' test_dir='~/data/test_img' testDataGen = ImageDataGenerator(rescale=1. / 255) train_generator = datagen.flow_from_directory( train_dir, target_size=img_size, batch_size=16, class_mode='categorical') p = Augmentor.Pipeline(train_dir) p.skew(probability=0.9) p.random_distortion(probability=0.9,grid_width=3,grid_height=3,magnitude=8) p.rotate(probability=0.9, max_left_rotation=5, max_right_rotation=5) p.random_color(probability=0.7, min_factor=0.8, max_factor=1) p.flip_left_right(probability=0.7) p.random_brightness(probability=0.7, min_factor=0.8, max_factor=1.2) p.random_contrast(probability=0.5, min_factor=0.9, max_factor=1) p.random_erasing(probability=1,rectangle_area=0.2) p.crop_by_size(probability=1, width=244, height=244, centre=True) train_generator = keras_generator(p,batch_size=16) test_generator = testDataGen.flow_from_directory( test_dir, target_size=img_size, batch_size=32, class_mode='categorical') return (train_generator, test_generator)
рдХреЛрдб рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рд╡реГрджреНрдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдПрдХ рдЯреНрдпреВрди рдХрд┐рдП рдЧрдП рдЬрдирд░реЗрдЯрд░ рдХреЗ рдмрд╛рдж, рдЖрдк рдореЙрдбрд▓ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рдЗрд╕реЗ рджреЛ рдЪрд░рдгреЛрдВ рдореЗрдВ рдкреВрд░рд╛ рдХрд░реЗрдВрдЧреЗ: рдкрд╣рд▓рд╛, рдХреЗрд╡рд▓ рд╣рдорд╛рд░реЗ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░рд┐рдпрд░ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░реЗрдВ, рдлрд┐рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреВрд░реЗ рдореЙрдбрд▓ рдХреЛред
def evalModelstep1(typeModel): K.clear_session() gc.collect() model=createModel(typeModel) traiGen,testGen=getDatagen() model.fit_generator(generator=traiGen, epochs=4, steps_per_epoch=30000/16, validation_steps=len(testGen), validation_data=testGen, ) return model def evalModelstep2(model): early_stopping_callback = EarlyStopping(monitor='val_loss', patience=3) model.layers[0].trainable=True model.trainable=True model.compile(optimizer=keras.optimizers.Adam(lr=1e-5), loss='binary_crossentropy', metrics=['accuracy']) traiGen,testGen=getDatagen() model.fit_generator(generator=traiGen, epochs=25, steps_per_epoch=30000/16, validation_steps=len(testGen), validation_data=testGen, callbacks=[early_stopping_callback] ) return model def full_fit(): model_names=[ "xception", "resnet", "inception", "vgg16", "densenet121", "mobilenet" ] for model_name in model_names: print("#########################################") print("#########################################") print("#########################################") print(model_name) print("#########################################") print("#########################################") print("#########################################") model = evalModelstep1(model_name) model = evalModelstep2(model) model.save("~/data/models/model_new_"+str(model_name)+".h5")
Full_fit () рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВ рдФрд░ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред рд╣рдо рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЫрд╣ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдореЙрдбрд▓ рд╣реЛрдВрдЧреЗ, рд╣рдо рд▓реЗрдмрд▓ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рдПрдХ рдЕрд▓рдЧ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдЗрди рдореЙрдбрд▓реЛрдВ рдХреА рд╕рдЯреАрдХрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗ;
рдореЙрдбрд▓ рдХрд╛ рдирд╛рдо
| рд╢реБрджреНрдзрддрд╛%
|
Xception
| 87.3
|
Resnet
| 90.8
|
рдЖрд░рдВрдн
| 90.2
|
Vgg16
| 89.2
|
Densenet121
| 90.6
|
Mobilenet
| 86.5
|
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдирдореВрдиреЗ рдХреЗ рд╕рд╛рде, рдХреЛрдИ рднреА рдЕрдзрд┐рдХ рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕рдЯреАрдХрддрд╛ рдХреЛ рдереЛрдбрд╝рд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдФрд╕рдд рд╕реЗ рдореЙрдбрд▓ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╕рдВрдпреБрдХреНрдд рдХрд┐рдпрд╛:
def create_meta_model(): model_names=[ "xception", "resnet", "inception", "vgg16", "densenet121", "mobilenet" ] model_input = Input(shape=(244,244,3)) submodels=[] i=0; for model_name in model_names: filename= "~/data/models/model_new_"+str(model_name)+".h5" submodel = keras.models.load_model(filename) submodel.name = model_name+"_"+str(i) i+=1 submodels.append(submodel(model_input)) out=average(submodels) model = Model(inputs = model_input,outputs=out) model.compile(optimizer=keras.optimizers.Adam(lr=1e-4), loss='binary_crossentropy', metrics=['accuracy']) return model
рдкрд░рд┐рдгрд╛рдореА рд╕рдЯреАрдХрддрд╛ 91.3% рдереАред рдЗрд╕ рдкрд░рд┐рдгрд╛рдо рдкрд░, рдореИрдВрдиреЗ рд░реБрдХрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдЕрдВрдд рдореЗрдВ рдХреНрд▓рд╛рд╕рд┐рдлрд╝рд╛рдпрд░ рддреИрдпрд╛рд░ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ! рдореИрдВ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХреЛ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ - рдПрдХ рджрд┐рди рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдФрд░ 1.7 рдорд┐рд▓рд┐рдпрди рддрд╕реНрд╡реАрд░реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдм рдордЬреЗрджрд╛рд░ рд╣рд┐рд╕реНрд╕рд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред рдЕрдЪреНрдЫреЗ рдХрд╡рд░реЗрдЬ рд╡рд╛рд▓реЗ рд╕рдбрд╝рдХреЛрдВ рдХреА рд╕рд╛рдкреЗрдХреНрд╖ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд╣рд▓реЗ рдФрд░ рдЕрдВрддрд┐рдо рджрд╕ рд╢рд╣рд░реЛрдВ рдХреЛ рддреБрд░рдВрдд рд▓рд╛рдПрдБ:

рдкреВрд░реНрдг рддрд╛рд▓рд┐рдХрд╛ (рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЪрд┐рддреНрд░) рдФрд░ рдпрд╣рд╛рдБ рд╕рдВрдШреАрдп рд╡рд┐рд╖рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдбрд╝рдХ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рд░реЗрдЯрд┐рдВрдЧ рд╣реИ:

рд╕рдВрдШреАрдп рдЬрд┐рд▓реЛрдВ рджреНрд╡рд╛рд░рд╛ рд░реЗрдЯрд┐рдВрдЧ:

рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд░реВрд╕ рдореЗрдВ рд╕рдбрд╝рдХ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рд╡рд┐рддрд░рдг:

рдЦреИрд░, рдпрд╣ рд╕рдм, рд╣рд░ рдХреЛрдИ рдЦреБрдж рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓ рд╕рдХрддрд╛ рд╣реИред
рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рд╢реНрд░реЗрдгреА рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рддрд╕реНрд╡реАрд░реЗрдВ рджреВрдВрдЧрд╛ (рдЬрд┐рдиреНрд╣реЗрдВ рдЙрдирдХреА рдХрдХреНрд╖рд╛ рдореЗрдВ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ):
рдкреАрдПрд╕ рдиреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рддрд╕реНрд╡реАрд░реЛрдВ рдХреА рдкреНрд░рд╛рдкреНрддрд┐ рдХреЗ рд╡рд░реНрд╖реЛрдВ рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХреА рдХрдореА рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ред рдореИрдВ рд╕рд╣реА рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рджреЗрддрд╛ рд╣реВрдВ:
рд╕рд╛рд▓
| рдлрд╝реЛрдЯреЛ рдХреА рд╕рдВрдЦреНрдпрд╛, рдкреАрд╕реА
|
2008 | 37 |
2009 | 13 |
2010 | 157,030 |
2011 | 60,724 |
2012 | 42,387 |
2013 | 12148
|
2014 | 141,021
|
2015 | 46143
|
2016 | 410,385
|
2017 | 324,279
|
2018 | 581,961
|