рд░реЛрдмреЛрдЯ рдореЗрдВ рдЖрдБрдЦреЗрдВ рдЬреЛрдбрд╝реЗрдВ

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

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗ рдХрд┐ рд░реЛрдмреЛрдЯ рдХреЛрдСрд░реНрдбрд┐рдиреЗрдЯ рд╕рд┐рд╕реНрдЯрдо рдФрд░ 3 рдбреА рдХреИрдорд░рд╛ рдПрд╕рдХреЗ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд░реЛрдмреЛрдЯ рдХреЛ рдХреИрд╕реЗ рдХреИрд▓рд┐рдмреНрд░реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПред



рдЪрд░рдг 1. рд░реЛрдмреЛрдЯ рд▓реЗ рд▓реЛ

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдбреЛрдмреЛрдЯ рдЬрд╛рджреВрдЧрд░ рдХреЗ рдЖрдЗрдЯрдо рд╣реЛрдВрдЧреЗред рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдХреИрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдЧрд╛ - рдЗрдВрдЯреЗрд▓ рд░рд┐рдпрд▓реЗрдВрд╕ рдбреА 435ред рдФрд░ рдХреИрд▓рд┐рдмреНрд░реЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рд▓рд╛рд▓ рдЧреЗрдВрдж рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕ рддрд░рд╣ рд╡реЗ рдПрдХ рд╕рд╛рде рджрд┐рдЦрддреЗ рд╣реИрдВред



рд▓рд╛рд▓ рдЧреЗрдВрдж рдХреЛ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ рди рдХрд┐ рдХрд┐рд╕реА рдХреЛ рдХреНрд░рд┐рд╕рдорд╕ рдЯреНрд░реА рдХреЛ рд╕рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП ред рд▓рд╛рд▓ - рддрд╛рдХрд┐ рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ рдЫрд╡рд┐ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ (рджреВрд╕рд░реЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рд╕реАрдЦреЗ рдмрд┐рдирд╛)ред рдЧреЗрдВрдж - рдЫрд╡рд┐ рдореЗрдВ рдЗрд╕рдХреЗ рдХреЗрдВрджреНрд░ рдХреА рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд▓реЗрдХрд┐рди рд╣рдо рдмрд╛рдж рдореЗрдВ рдЗрд╕ рдкрд░ рд╡рд╛рдкрд╕ рдЖрдПрдВрдЧреЗред

рдЪрд░рдг 2. рдЬрд╣рд╛рдВ рд░реЛрдмреЛрдЯ рдЧреЗрдВрдж рдХреЛ рдШреБрдорд╛рддрд╛ рд╣реИ

рдЕрдВрд╢рд╛рдВрдХрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  1. рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдПрдБ
  2. рд░реЛрдмреЛрдЯ рдЧреЗрдВрдж рдХреЛ рд╕реВрдЪреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд╕рд╛рде рдЪрд┐рддреНрд░ рд▓реЗрддрд╛ рд╣реИред
  3. рдкреНрд░рддреНрдпреЗрдХ рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЧреЗрдВрдж рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдорд┐рд▓рддреЗ рд╣реИрдВ
  4. рд╣рдо рд░реЛрдмреЛрдЯ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд▓рд┐рдП рдХреИрдорд░рд╛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ

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

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

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

рдЪрд░рдг 3. рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

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



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

def get_center(image): #       image = cv2.GaussianBlur(image, (7, 7), 0) #     HSV hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) #    saturation = hsv[...,1] saturation[(hsv[..., 0] > 15) & (hsv[..., 0] < 165)] = 0 _, image1 = cv2.threshold(saturation, 92, 255, cv2.THRESH_BINARY) #     contours = cv2.findContours(image1, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)[0] contour = max(contours, key=cv2.contourArea) #    b_circle = cv2.minEnclosingCircle(contour) return b_circle[0] 

рдЖрдЗрдП рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред

рдЗрд╕ рддрд░рд╣ рдЕрдВрддрд░рд┐рдХреНрд╖ рдПрдЪрдПрд╕рд╡реА рдЫрд╡рд┐ рджрд┐рдЦрддрд╛ рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдмрд╛рдж:



рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрдВрдзреЗрд░реЗ рдкрд┐рдХреНрд╕реЗрд▓ рдЫрд╛рдпрд╛ (рд░рдВрдЧ) рд╢реЛрд░ рдкрд░реНрдпрд╛рдкреНрдд рдХреЗ рд▓рд┐рдП рдФрд░ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╕реМрдЯреА рдХреА рдЬрд░реВрд░рдд рд╣реИред рдХреЗрд╡рд▓ рд▓рд╛рд▓ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ  texthue[u,v] рдореЗрдВ[тИТ15;резрел], рдФрд░ рд╕рдВрддреГрдкреНрддрд┐ рдЪреИрдирд▓ рдХреЛ рджреЗрдЦреЛред рдЗрд╕ рдЪреИрдирд▓ рдкрд░, рдЕрдВрд╢рд╛рдВрдХрди рдЧреЗрдВрдж рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрд╛рд╣рд░ рдЦрдбрд╝реА рд╣реИред

рддрдм рдЕрдВрддрд┐рдо рдорд╛рдирджрдВрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

  • рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рд╢реЗрдб рд▓рдЧрднрдЧ рд▓рд╛рд▓ рд╣реИ
  • рд╣рдо рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрддреГрдкреНрддрд┐ рдХреЗ рд╕рд╛рде рд╣реА рдкрд┐рдХреНрд╕рд▓ рдЫреЛрдбрд╝
  • рдЫрд╡рд┐ рдХреЛ рдмрдбрд╝рд╛ рдХрд░реЗрдВ

рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреИрд╕рд╛ рдХреБрдЫ рдорд┐рд▓рддрд╛ рд╣реИ:



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

рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдпрд╣рд╛рдВ рдЧреЗрдВрдж рдХрд┐ - рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдЬреБрдбрд╝рд╛ рдХреНрд╖реЗрддреНрд░ред рдлрд┐рд░ рд╣рдо рдЗрд╕рдХрд╛ рдХреЗрдВрджреНрд░ рдвреВрдВрдврддреЗ рд╣реИрдВ рдФрд░ рдЪреИрдирд▓ рдХреА рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЧреЗрдВрдж рдХреА рд╕рддрд╣ рдкрд░ рдЗрд╕ рдмрд┐рдВрджреБ рдХреА рдЧрд╣рд░рд╛рдИ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВред рдФрд░ рд╕реНрдЯреАрд░рд┐рдпреЛрдореАрдЯрд░ рд╕реЗ рдереЛрдбрд╝реА рдорджрдж рдХреЗ рд╕рд╛рде, рдЧреЗрдВрдж рдХреА рд╕рддрд╣ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдмрд┐рдВрджреБ рд╕реЗ рдЙрд╕рдХреЗ рдХреЗрдВрджреНрд░ рддрдХ рдЪрд▓рддреЗ рд╣реИрдВред

рдЧреЗрдВрдж рдХреЗ рдХреЗрдВрджреНрд░ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреНрдЮрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐ рдкреНрд░рдХреНрд╖реЗрдкрдг рдПрдХ рдЪрдХреНрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╣рдо (рд╣рдореЗрдВ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗрдХрд┐рди рдЪреВрд╕рдиреЗ рд╡рд╛рд▓рд╛ рд░реЛрдмреЛрдЯ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛) рдХреЗрдВрджреНрд░ рдХреЗ рдПрдХ рдирд┐рд╖реНрдкрдХреНрд╖ рдЕрдиреБрдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдпрд╣ рдиреНрдпреВрдирддрдо рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдПрдХ рд╕рд░реНрдХрд▓ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдЬреЛ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА opencv - minEnclosingCircle рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

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

 def get_world_coords(u, v, depth, camera_matrix): f = np.linalg.inv(camera_matrix) l = np.array([u,v,1]) * depth return np.dot(f,l) 

camera_matrix - рд╕реВрддреНрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдХреИрдорд░реЗ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ред

рдЪрд░рдг 4. рдЕрдВрд╢рд╛рдВрдХрди рдкреНрд░рджрд░реНрд╢рди рдХрд░реЗрдВ

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

рдФрд░ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдЗрди рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЧреЗрдВрдж рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛ рд╣реИред рдорд╛рдкрдиреЗ рддреНрд░рд┐рдЬреНрдпрд╛ r = 24mmред рддрдм рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╕реНрдкрд░реНрд╢рд░реЗрдЦрд╛ K рдХреЗ рдмрд┐рдВрджреБ рд╕реЗ рдЧреЗрдВрдж O рдХреЗ рдХреЗрдВрджреНрд░ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ - Z рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рд╕реНрдкрд░реНрд╢ рд╣рдореЗрд╢рд╛ 1 рддреНрд░рд┐рдЬреНрдпрд╛ рдЕрдзрд┐рдХ рд╣реЛрддрд╛ рд╣реИред

рдпрд╣ рджреГрд╢реНрдп рдХреНрд╖реЗрддреНрд░ рдХреЗ V рдХреЗрдВрджреНрд░ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рдЧреЗрдВрдж O рдХреЗ рдХреЗрдВрджреНрд░ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ ред рдпрд╣ рдХреИрд╕реЗ рдХрд░реЗрдВ, рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдХреГрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:



рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЧреЗрдВрдж рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЗрдВрджреНрд░ рд╣реЗ рд╣рдореЗрд╢рд╛ рд╕реНрдкрд╖реНрдЯ рд╡реА рдмрд┐рдВрджреБ рд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 1 glbuzhe рддреНрд░рд┐рдЬреНрдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдкрд╛рдпрд╛ рддреНрд░рд┐рдЬреНрдпрд╛ рд╡реЗрдХреНрдЯрд░ 24 рдорд┐рдореА рд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

 рд╡реАрдЗрд╕реАрд╕реАрдУ= vecрд╕реАрд╡реА+ frac vecрд╕реАрд╡реА| vecрд╕реАрд╡реА|r



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

 transformation = cv2.estimateAffine3D(camera_coords, robot_coords) 

рдЖрдЙрдЯрдкреБрдЯ рдПрдХ 3x4 рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдореЗрд╢рди рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ, рдкрд╣рд▓реЗ 3x3 рдШрдЯрдХ рдПрдХреНрд╕рд┐рд╕ рдХреЗ рд╕рд╛рде рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд рд░реЛрдЯреЗрд╢рди рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИрдВред рд╕рд╣реА рдХреИрдорд░рд╛ рдЕрдВрд╢рд╛рдВрдХрди рдФрд░ рдЕрдЪреНрдЫреЗ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЛ рд░реЛрдЯреЗрд╢рди рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдХрд░реАрдм рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╢реЗрд╖ 3 рдирдВрдмрд░ рдХреИрдорд░реЗ рдФрд░ рд░реЛрдмреЛрдЯ рдХреЗ рдмреАрдЪ рд╡рд┐рд╕реНрдерд╛рдкрди рд╡реЗрдХреНрдЯрд░ рд╣реИрдВред

рдЪрд░рдг 5. рд╣рдо рдЕрдВрд╢рд╛рдВрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ

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

  1. рд╣рдо рдЖрд░рдЬреАрдбреА рдЫрд╡рд┐ рдкрд░ рдмрд┐рдВрджреБ рдпреВ, рд╡реА, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмреНрдпрд╛рдЬ рдХреА рдЧрд╣рд░рд╛рдИ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкрд╛рддреЗ рд╣реИрдВ
  2. рдЙрдиреНрд╣реЗрдВ рдореЗрдВ рд╢рд╛рд░реАрд░рд┐рдХ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдПрдХреНрд╕, рд╡рд╛рдИ, рдмреНрд░рд┐рдЯреЗрди рдореЗрдВ рдЬреЗрдб рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреИрдорд░рд╛ рдЖрдВрддрд░рд┐рдХ рдорд╛рдирдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░реЗрдВ
  3. рдПрдХ рдЧреЗрдВрдж рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд░реБрдЪрд┐ рдХрд╛ рдмрд┐рдВрджреБ рдЧреЗрдВрдж рдХреА рдЧрд╣рд░рд╛рдИ рдореЗрдВ рд╣реИ vтА▓= frac|v|+r|v| cdotv,v=[x,y,z]
  4. рд╣рдо рдкрд╛рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдо рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЯреА рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ
    vтА│=T рдЯрд╛рдЗрдореНрд╕[v0тА▓,v1тА▓,v2тА▓,1]T
  5. рд╣рдо рдмреНрд░рд┐рдЯреЗрди рд░реЛрдмреЛрдЯ рдореЗрдВ рдЧреЗрдВрдж рдХреЗ рдХреЗрдВрджреНрд░ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдорд┐рд▓рд╛ рд╣реИред рддрд╛рдХрд┐ рд░реЛрдмреЛрдЯ рдЧреЗрдВрдж рдХреЛ рдЫреЗрджрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рди рдХрд░реЗ, рд╣рдо рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪ рдмрд┐рдВрджреБ 1 рддреНрд░рд┐рдЬреНрдпрд╛ рднреЗрдЬрддреЗ рд╣реИрдВ vтА┤=[v0тА│,v1тА│,v2тА│+r]

рдЕрдВрд╢рд╛рдВрдХрди рд╕рдЯреАрдХрддрд╛

рд╣рдордиреЗ 9 рдкрджреЛрдВ рдкрд░ рдЕрдВрд╢рд╛рдВрдХрди рдХреА рдЧрдгрдирд╛ рдХреАред 6 рдФрд░ рдкрджреЛрдВ рдХреЗ рд╕рддреНрдпрд╛рдкрди рд╕реЗрдЯ рдкрд░, 2.5x рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде 16x30x5 рд╕реЗрдореА рдХреЗ рдХрд╛рд░реНрдп рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рд╢реЗрд╖ рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдФрд░ рддреНрд░реБрдЯрд┐ рд╡реЗрдХреНрдЯрд░ рдХреА рдФрд╕рдд рд▓рдВрдмрд╛рдИ рдХреА рдЧрдгрдирд╛ рдХреАред

рдЪрд░рдг 6. рд╣рдо рд▓рд╛рдЧреВ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ

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


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

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

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


All Articles