рд╕рд┐рдореЗрдВрдЯрд┐рдХ рд╕реЗрдЧрдореЗрдВрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдбрд╝рдХ рдХреА рдкрд╣рдЪрд╛рди

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

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

рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдЪреАрдЬреЗрдВ рдкрд╣рд▓реЗ рдФрд░ рдереЛрдбрд╝рд╛ рд╕рд╛ рдЙрдкрдХрд░рдгред

рд╡рд┐рднрд╛рдЬрди


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

рдпрд╣рд╛рдБ рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦ рд╣реИ рдЬреЛ рдЖрджрд┐рдо рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред

рд╢рдмреНрджрд╛рд░реНрде рд╡рд┐рднрд╛рдЬрди


рд╕рд┐рдореЗрдВрдЯрд┐рдХ рд╡рд┐рднрд╛рдЬрди - рдЗрди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдЫрд╡рд┐ рдХреЛ рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ред

рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:



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

рдпреВ-рдиреЗрдЯ


рд╕рдмрд╕реЗ рдкреНрд░рд╕рд┐рджреНрдз рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ, рдореВрд▓ рд░реВрдк рд╕реЗ рджрд╡рд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдкреНрд░рд╛рдердорд┐рдХ рд╕реНрд░реЛрдд

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

рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХрдИ рд▓реЗрдЦ рд╣реИрдВ рдЬреЛ рдбреЗрдЯрд╛ рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпреВ-рдиреЗрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:


рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рдЬрд▓реНрджреА рд╕реЗ рд▓реЗрдиреЗ рдФрд░ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдпреВ-рдиреЗрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдирд╣реАрдВ рдорд┐рд▓рд╛ред

рдИ-рдиреЗрдЯ


рдПрдХ рдЫреЛрдЯрд╛ рдФрд░ рдХрдо рдЬреНрдЮрд╛рдд рдиреЗрдЯрд╡рд░реНрдХред рд╕рд┐рд░реНрдл рд╢рд╣рд░ рдХреА рд╕рдбрд╝рдХреЛрдВ рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдбреЗрдЯрд╛


рд╕рдбрд╝рдХ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдбреЗрдЯрд╛рд╕реЗрдЯ (рдЙрдиреНрд╣реЛрдВрдиреЗ рд╢реБрд░реВ рдореЗрдВ рдИ-рдиреЗрдЯ рд╕рд┐рдЦрд╛рдпрд╛ рдерд╛):


рдЙрдиреНрд╣реАрдВ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ рдЕрдм рдпреВ-рдиреЗрдЯ рдХрд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рджрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд▓реНрдк


рд╡рд┐рднрд╛рдЬрди рдкрд░ рдирдИ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдмрд╛рдврд╝ рдмрд╣реБрдд рднрд╛рд░реА рдереАред рд╕рд╣рдЬ рд░реВрдк рд╕реЗ, рдореИрдВ рдХреБрдЫ рд╕рд░рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдореИрдВрдиреЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рд╕рдордЭрдиреЗ рдФрд░ рд╕реАрдЦрдиреЗ рдореЗрдВ рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рдЬрд╝реЗрди рдХреЛ рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди PyImageSearch рдХреЗ рд▓реЗрдЦ рдореЗрдВ OpenCV-DNN рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рддреИрдпрд╛рд░ рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдерд╛ред

рддреЛ рдЪреБрдирд╛рд╡ рдХрдо рд╕реЗ рдХрдо рдкреНрд░рддрд┐рд░реЛрдз рдХреА рдУрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЙрдкрдпреЛрдЧ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:
(рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЪрд┐рдВрддрд╛ рдХреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ 1024x512 рдЪрд┐рддреНрд░реЛрдВ рдореЗрдВ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдпрд╣, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХреИрдорд░рд╛ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд░ рдЕрдзрд┐рдХ рджреЗрддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдбреЗрдЯрд╛ рдХреА рдЗрд╕ рд░рд╛рд╢рд┐ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рджрд░реНрд╢рди рдХреБрдЫ рднреНрд░рд╛рдордХ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдмрд┐рд▓реНрдХреБрд▓ рдпрд╣реА рд╣реЛрдЧреА)ред

рд╣рдо рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкрдврд╝рддреЗ рд╣реИрдВ (рдПрдХ рдореЗрдВ, рдореЙрдбрд▓ рдЦреБрдж, рдЕрдиреНрдп рд╡рд░реНрдЧ рдирд╛рдореЛрдВ рдореЗрдВ, рддреАрд╕рд░реЗ - рд░рдВрдЧреЛрдВ рдореЗрдВ)ред

def load_segment_model(): try: classes = None with open(PiConf.SEGMENT_CLASSES) as f: classes = f.read().strip().split("\n") colors = None with open(PiConf.SEGMENT_COLORS) as f: colors= f.read().strip().split("\n") colors = [np.array(c.split(",")).astype("int") for c in colors] colors = np.array(colors, dtype="uint8") print("[INFO] loading model...") net = cv2.dnn.readNet(PiConf.SEGMENT_MODEL) return net, classes, colors except Exception as e: logging.exception("Cannot load segment model") return None, None, None 

рд╣рдо рдЫрд╡рд┐ рдХреЛ рдЦрдВрдбрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдореВрд▓ рдЫрд╡рд┐ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЦрдВрдбреЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреЗ рд╣реИрдВ
(рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдбрд╝рдХ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рд╡рд░реНрдЧ рдЕрджреГрд╢реНрдп рд╣реИрдВ)ред

 def segment_image(image_path, seg_net, seg_classes, seg_colors): image0 = cv2.imread(image_path) image = cv2.resize(image0, (1024, 512),interpolation=cv2.INTER_NEAREST) blob = cv2.dnn.blobFromImage(image, 1 / 255.0, (1024, 512), 0, swapRB=True, crop=False) seg_net.setInput(blob) start = time.time() output = seg_net.forward() end = time.time() print("[INFO] inference took {:.4f} seconds".format(end - start)) (numClasses, height, width) = output.shape[1:4] classMap = np.argmax(output[0], axis=0) mask = seg_colors[classMap] mask = cv2.resize(mask, (image0.shape[1], image0.shape[0]),interpolation=cv2.INTER_NEAREST) classMap = cv2.resize(classMap, (image0.shape[1], image0.shape[0]), interpolation=cv2.INTER_NEAREST) gmask = cv2.cvtColor(mask, cv2.COLOR_BGR2GRAY) gmask = cv2.resize(gmask, (128, 64), interpolation=cv2.INTER_NEAREST) gmask = gmask[0:64,32:96] output = ((0.6 * image0) + (0.4 * mask)).astype("uint8") return output, gmask 

рдирд┐рд░реАрдХреНрд╖рдг


рд╣рдо рдЯреИрдВрдХ рд╕реЗ рддреИрдпрд╛рд░ рдЪрд┐рддреНрд░ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЙрди рдкрд░ рдПрдХ рдЦрдВрдбрд┐рдд рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред

1



рдХреЗрд╡рд▓ рдлреБрдЯрдкрд╛рде рдХреЗ рдмрд╛рдИрдВ рдУрд░ рдорд╣рдВрдЧрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реИред

рд╣рдо рдЪрд┐рддреНрд░ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рд╕реЗ 64x64 рдХрд╛ рдХреЗрдВрджреНрд░ рдЖрдХрд╛рд░ рд▓реЗрддреЗ рд╣реИрдВ:
(рдпрд╣ рдЖрдХрд╛рд░ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ, рдЬреЛ рджрд┐рд╢рд╛ рдмрджрд▓рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ)



рджрд┐рд╢рд╛ рдХрд╛ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ - рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░рд┐рдпрд░) рдмрд╛рдИрдВ рдУрд░ рд▓реЗ рдЬрд╛рдиреЗ рдХреА рдЖрдЬреНрдЮрд╛ рджреЗрддрд╛ рд╣реИред рдмрд╣реБрдд рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрд╕реНрдХрд░рд╛рддреЗ рд╣реБрдПред

2



рдЗрд╕реА рддрд░рд╣ рдХреА рд╕реНрдерд┐рддрд┐, рдлрд┐рд░ рд╕реЗ, рдирд┐рдЪрд▓рд╛ рджрд╛рдпрд╛рдВ рдХреЛрдирд╛ рдЦреЛ рдЬрд╛рддрд╛ рд╣реИ (рдбрд╛рдорд░ рдЧреАрд▓рд╛ рднреА рд╣реЛрддрд╛ рд╣реИ)ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдбрд╝рдХ рдЕрднреА рднреА рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реИред



рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рд╕реАрдзреЗ рдЬрд╛рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддрд╛ рд╣реИред

3

рд╡рд╣ рд╕реНрдерд┐рддрд┐ рдЬрдм рд░реЛрдмреЛрдЯ рдлреБрдЯрдкрд╛рде рдХреЗ рдмреАрдЪ рдореЗрдВ рдерд╛ред



рд╕рдбрд╝рдХ рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реИред



рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рд╕рд╣реА (рдЕрдЧрд▓реА рдмрд╛рд░ рд╕рдбрд╝рдХ рдХрд╛ рдХрд┐рдирд╛рд░рд╛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП) рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢ рджреЗрддрд╛ рд╣реИред

рдЖрд╡реЗрджрди


рдЯреИрдВрдХ рдлрд░реНрдорд╡реЗрдпрд░ рдкрд░ рдереЛрдбрд╝рд╛ рд╕рд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдПрдХ рдЦрдВрдбрд┐рдд рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рд░рдВрдЧ рд╕рдбрд╝рдХ рдбрд┐рдЯреЗрдХреНрдЯрд░ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ред

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

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



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

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


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


All Articles