рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 3 рдкрд░ рдордЫрд▓реА рдХреА рдЖрдВрдЦ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛: рдХрдВрдкреНрдпреВрдЯрд░ рджреГрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡-рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдбреАрдПрд▓ рдореЙрдбрд▓ рд▓реЙрдиреНрдЪ рдХрд░рдирд╛

рд╢реБрдн рджреЛрдкрд╣рд░

рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рдирд┐рд░рдВрддрд░рддрд╛ рдореЗрдВ: рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 3 рдФрд░ рдЖрд░рдУрдПрд╕ рдХреЗ рд╕рд╛рде рдордЫрд▓реА рдЖрдИ рдХреИрдорд░рд╛ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓рд╛ рдФрд░ рджреВрд╕рд░рд╛ , рдореИрдВ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рдордЫрд▓реА рдХреА рдЖрдВрдЦреЛрдВ рдХреЗ рдХреИрдорд░реЗ рдХреЗ рд╕рд╛рде рдХрдВрдкреНрдпреВрдЯрд░ рджреГрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡-рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдбреАрдк рд▓рд░реНрдирд┐рдВрдЧ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред 3. рдХреМрди рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ, рдореИрдВ рдмрд┐рд▓реНрд▓реА рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реВрдВред

рдЫрд╡рд┐ рд╡рд░реНрдЧреАрдХрд░рдг


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

рд╣рдо рдкреЗрдЬ рдкрд░ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ DOWNLOAD THE CODE рдмрдЯрди рджрдмрд╛рдПрдВрдЧреЗ! рдкреГрд╖реНрда рдХреЗ рдиреАрдЪреЗред рдЖрдкрдХреЛ рд╕реНрд░реЛрдд рдХреЗ рд╕рд╛рде рдПрдХ рдИрдореЗрд▓ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред

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

cd pi-deep-learning/ python pi_deep_learning.py --prototxt models/bvlc_googlenet.prototxt \ --model models/bvlc_googlenet.caffemodel --labels synset_words.txt \ --image images/barbershop.png 

рд╣рдореЗрдВ рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ

 [INFO] loading model... [ INFO:0] Initialize OpenCL runtime... [INFO] classification took 1.7103 seconds [INFO] 1. label: barbershop, probability: 0.78055 [INFO] 2. label: barber chair, probability: 0.2194 [INFO] 3. label: rocking chair, probability: 3.4663e-05 [INFO] 4. label: restaurant, probability: 3.7257e-06 [INFO] 5. label: hair spray, probability: 1.4715e-06 

рдЫрд╡рд┐

рдпрд╣ OpenCV 3.3 рд╕реЗ рдбреАрдк рдиреНрдпреВрд░рд▓ рдиреЗрдЯрд╡рд░реНрдХ (DNN) рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдм рдкреВрд░реНрд╡-рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рд╕реНрдХреНрд╡реАрдЬрд╝рдиреЗрдЯ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╡рд░реНрдЧреАрдХреГрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

 python pi_deep_learning.py --prototxt models/squeezenet_v1.0.prototxt \ --model models/squeezenet_v1.0.caffemodel --labels synset_words.txt \ --image images/barbershop.png 

 [INFO] loading model... [ INFO:0] Initialize OpenCL runtime... [INFO] classification took 0.86275 seconds [INFO] 1. label: barbershop, probability: 0.80578 [INFO] 2. label: barber chair, probability: 0.15124 [INFO] 3. label: half track, probability: 0.0052873 [INFO] 4. label: restaurant, probability: 0.0040124 [INFO] 5. label: desktop computer, probability: 0.0033352 

рдЫрд╡рд┐

рдореЗрд░реЗ рд╡рд░реНрдЧреАрдХрд░рдг рдиреЗ 0.86 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред

рдЖрдЗрдП рдЕрдм cobra.png рдЪрд┐рддреНрд░ рдкрд░ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

 python pi_deep_learning.py --prototxt models/squeezenet_v1.0.prototxt \ --model models/squeezenet_v1.0.caffemodel --labels synset_words.txt \ --image images/cobra.png 

рдирд┐рд╖реНрдХрд░реНрд╖:

 [INFO] classification took 0.87402 seconds [INFO] 1. label: Indian cobra, probability: 0.47972 [INFO] 2. label: leatherback turtle, probability: 0.16858 [INFO] 3. label: water snake, probability: 0.10558 [INFO] 4. label: common iguana, probability: 0.059227 [INFO] 5. label: sea snake, probability: 0.046393 

рдЫрд╡рд┐

рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди


рдЕрдм рдордЫрд▓реА рдХреА рдЖрдВрдЦреЛрдВ рдХреЗ рдХреИрдорд░реЗ рдХреЗ рд╕рд╛рде рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЗ рд╕рд╛рде рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред рд╣рдо рдкреЗрдЬ рдкрд░ рдЬрд╛рдПрдБрдЧреЗ рдФрд░ DOWNLOAD THE CODE рдмрдЯрди рджрдмрд╛рдПрдВрдЧреЗ! рдкреГрд╖реНрда рдХреЗ рдиреАрдЪреЗред рдЖрдкрдХреЛ рд╕реНрд░реЛрдд рдХреЗ рд╕рд╛рде рдПрдХ рдИрдореЗрд▓ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред

рд╡рд░реНрдЧреАрдХрд░рдг рдХреЗ рд╕рдорд╛рди, рдбрд╛рдЙрдирд▓реЛрдб, рдЕрдирдЬрд╝рд┐рдк, рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдЬрд╛рдПрдВред рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБ:

 python pi_object_detection.py --prototxt MobileNetSSD_deploy.prototxt.txt --model MobileNetSSD_deploy.caffemodel 

рдирд┐рд╖реНрдХрд░реНрд╖:

 [INFO] loading model... [INFO] starting process... [INFO] starting video stream... [ INFO:0] Initialize OpenCL runtime... libEGL warning: DRI3: failed to query the version libEGL warning: DRI2: failed to authenticate 

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддреЗ рд╕рдордп, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 Error: AttributeError: 'NoneType' object has no attribute 'shape' (comment to post) 

рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ pi_object_detection.py рдЦреЛрд▓реЗрдВ рдФрд░ рд▓рд╛рдЗрди 74 рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ:

 vs = VideoStream(src=0).start() 

рдФрд░ рдЕрдирдХрдВрдлреЗрдВрд╕ рд▓рд╛рдЗрди 75

 vs = VideoStream(usePiCamera=True).start() 

рдЫрд╡рд┐

рдЫрд╡рд┐

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

рд╣рдо real_time_object_detection.py рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднреА рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, pi_object_detection.py рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреЛрд╣рд░рд╛рдПрдВ: рд▓рд╛рдЗрди 38 рдФрд░ рдЕрдирдХреИрдкрдореЗрдВрдЯ рд▓рд╛рдЗрди 39 рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВред рдкрд░рд┐рдгрд╛рдо

рдЫрд╡рд┐

рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдирд╛ рд╣реАред рд╕рднреА рдХреЛ рд╢реБрднрдХрд╛рдордирд╛рдПрдБ рдФрд░ рдЖрдкрдХреЛ рдЬрд▓реНрдж рд╣реА рдорд┐рд▓рддреЗ рд╣реИрдВ!

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


All Articles