Агуулгын хүснэгт:

K210 самбар болон Arduino IDE/Micropython ашиглан зураг таних: 6 алхам (зурагтай)
K210 самбар болон Arduino IDE/Micropython ашиглан зураг таних: 6 алхам (зурагтай)

Видео: K210 самбар болон Arduino IDE/Micropython ашиглан зураг таних: 6 алхам (зурагтай)

Видео: K210 самбар болон Arduino IDE/Micropython ашиглан зураг таних: 6 алхам (зурагтай)
Видео: Today lunch box menu/சாதம், முருங்கைக்காய் சாம்பார், வெண்டைக்காய் பொரியல், கீரை தோசை பூண்டுசட்னி 2024, Оны зургадугаар сарын
Anonim
Image
Image

Би Sipeed Maix Bit дээр OpenMV демо програмыг хэрхэн ажиллуулах талаар нэг нийтлэл бичсэн бөгөөд энэ самбар ашиглан объект илрүүлэх демо видео хийсэн. Хүмүүсийн асуусан олон асуултын нэг бол мэдрэлийн сүлжээнд сургагдаагүй объектыг яаж таних вэ? Өөрөөр хэлбэл, зургийн ангилагчийг хэрхэн өөрийн гараар хийж, тоног төхөөрөмжийн хурдатгал ашиглан ажиллуулах талаар.

Энэ бол ойлгомжтой асуулт, учир нь таны төслийн хувьд муур, нохой, нисэх онгоц гэх мэт ерөнхий объектуудыг таних шаардлагагүй байж магадгүй юм. Та тодорхой зүйлийг, жишээлбэл, гэрийн тэжээвэр амьтдын автомат хаалганы нохойны үүлдэр, ангилах зориулалттай ургамлын төрөл зүйл, эсвэл таны бодож болох бусад гарах програмыг танихыг хүсч байна!

Би чамайг авсан! Энэ нийтлэлд би Keras -д дамжуулах сургалтаар өөрийн хүссэн зургийн ангилагчийг хэрхэн бий болгох, бэлтгэгдсэн загварыг.kmodel формат руу хөрвүүлэх, Micropython эсвэл Arduino IDE. Зөвхөн таны төсөөлөл л энэ мэдлэгээр хийж чадах ажлуудын хязгаар байх болно.

2020 оны 5-Р САРЫГ ШИНЭЧЛЭХ: K210 самбар бүхий зураг таних тухай миний нийтлэл, видео бичлэг маш алдартай хэвээр байгаа бөгөөд YouTube, Google-ийн шилдэг үр дүнгийн дунд байгаа тул aXeleRate, AI-д зориулсан AI-ийн хүрээний талаархи мэдээллийг оруулахаар нийтлэлээ шинэчлэхээр шийдлээ. Би хөгжиж байна.

aXeleRate нь үндсэндээ дүрс таних/объект илрүүлэх загварыг сургахад ашигласан скриптүүдийн цуглуулгад суурилсан бөгөөд нэг хүрээ болгон нэгтгэж, Google Colab дээрх ажлын урсгалыг оновчтой болгосон. Энэ нь ашиглахад илүү тохиромжтой бөгөөд илүү шинэчлэгдсэн байдаг.

Өгүүллийн хуучин хувилбарын хувьд та үүнийг steemit.com дээрээс харж болно.

Алхам 1: CNN ба дамжуулах сургалт: Зарим онол

CNN ба дамжуулах сургалт: Зарим онол
CNN ба дамжуулах сургалт: Зарим онол

Convolutional Neural Networks буюу CNN бол харааны дүрслэлийг шинжлэхэд ихэвчлэн хэрэглэгддэг гүн мэдрэлийн сүлжээний анги юм. Интернет дээр энэ сэдвээр маш олон уран зохиол байдаг бөгөөд би өгүүллийн сүүлийн хэсэгт хэдэн линк өгөх болно. Товчоор хэлбэл, та CNN -ийг зураг дээр ашигласан цуврал шүүлтүүр гэж үзэж болно, шүүлтүүр бүр нь зураг дээрх тодорхой онцлогийг хайж байдаг - доод эргэлтийн давхаргад шинж чанарууд нь ихэвчлэн шугам, энгийн хэлбэр, дээд давхаргад онцлог шинж чанарууд байдаг. илүү тодорхой байж болно, жишээ нь биеийн хэсгүүд, өвөрмөц бүтэц, амьтан, ургамлын эд анги гэх мэт. Тодорхой онцлог шинж чанарууд байгаа нь зураг дээрх объект юу болохыг олж мэдэх боломжтой болно. Сахал, хоёр нүд, хар хамар уу? Муур байх ёстой! Ногоон навч, модны их бие үү? Мод шиг харагдаж байна!

CNN -ийн ажиллах зарчмын талаар та одоо ойлголттой болсон гэж найдаж байна. Ихэвчлэн гүн мэдрэлийн сүлжээнд хүссэн объектын төрлийг танихад хэрэгтэй шүүлтүүрийг "хөгжүүлэх" тулд хэдэн мянган зураг, хэдэн цаг бэлтгэл хийх шаардлагатай байдаг (таны ашиглаж буй техник хангамжаас хамаарна). Гэхдээ товчлол байна.

Олон янзын нийтлэг объектыг (муур, нохой, гэр ахуйн цахилгаан хэрэгсэл, тээвэр гэх мэт) танихаар бэлтгэгдсэн загварт маш олон ашигтай шүүлтүүрүүд "боловсруулагдсан" байдаг тул үндсэн хэлбэр, эд ангиудыг таньж сурахад бидэнд хэрэггүй. объектуудын дахин. Бидэнд чухал ач холбогдолтой объектуудын тодорхой ангиллыг танихын тулд сүлжээний сүүлийн хэдэн давхаргыг дахин сургаж болно. Үүнийг "шилжүүлэх сургалт" гэж нэрлэдэг. Зөвхөн хэдэн зуун нейроноос бүрдсэн сүлжээний сүүлийн хэдэн давхаргыг сургаж байгаа тул танд сургалтын өгөгдөл, дамжуулах сургалтанд хамрагдах хугацааг тооцоолох нь хамаагүй бага байх болно.

Гайхалтай сонсогдож байна, тийм үү? Үүнийг хэрхэн хэрэгжүүлэх талаар авч үзье.

Алхам 2: Орчноо бэлтгэ

Орчноо бэлтгэ
Орчноо бэлтгэ

AXeleRate -ийг ашиглах хоёр арга бол: Ubuntu машин эсвэл Google Colab дээр локал хэлбэрээр ажиллуулах. Google Colab дээр ажиллахын тулд энэ жишээг үзнэ үү.

Зургийн ангилал Colab Notebook

Загвараа дотооддоо сургаж, тоног төхөөрөмжийн хурдатгалд ашиглахын тулд экспортлох нь одоо илүү хялбар болсон.

Миний ажиллах орчин бол Ubuntu 16.04, 64bit. Бид GPU -г сургалтанд ашиглахгүй тул та Ubuntu дүрсийг ажиллуулахын тулд виртуал машин ашиглаж болно. Зарим өөрчлөлтийн тусламжтайгаар та сургалтын скриптийг Windows дээр ажиллуулж болно, гэхдээ загварыг хөрвүүлэхийн тулд та Линукс системийг ашиглах шаардлагатай болно. Тиймээс энэ хичээлийг хийх хамгийн тохиромжтой орчин бол төрөлх эсвэл виртуал машин дээр ажилладаг Ubuntu 16.04 юм.

Python -ийн орчны менежер Miniconda -ийг суулгаж эхэлье. Бид тусгаарлагдсан орчинг бий болгох тул таны системийн Python орчинд санамсаргүйгээр юу ч өөрчлөхгүй.

Суулгагчийг эндээс татаж авна уу

Суулгаж дууссаны дараа шинэ орчин үүсгэнэ үү.

conda үүсгэх -n ml python = 3.7

Шинэ орчинг идэвхжүүлцгээе

мл -ийг идэвхжүүлнэ үү

Таны bash бүрхүүлийн өмнөх угтвар орчны нэрээр гарч ирэх бөгөөд энэ нь та одоо тэр орчинд ажиллаж байгааг илтгэнэ.

Алхам 3: AXeleRate суулгаж, тестүүдийг ажиллуулна уу

AXeleRate суулгаж, тестүүдийг ажиллуулна уу
AXeleRate суулгаж, тестүүдийг ажиллуулна уу

AXeleRate -ийг өөрийн компьютер дээр суулгаарай

pip install git+https://github.com/AIWintermuteAI/aXeleRate

Жишээ татаж авахын тулд ажиллуулна уу:

git clone

Та aXeleRate фолдерт test_training.py ашиглан хурдан тест хийж болно. Энэ нь загвар бүрийн хувьд сургалт, дүгнэлт хийх, бэлтгэгдсэн загваруудыг хадгалах, хөрвүүлэх болно. Энэ нь зөвхөн 5 эрин үеийг хамарсан сургалт бөгөөд өгөгдлийн сан нь маш бага тул та ашигтай загварыг авах боломжгүй болно, гэхдээ энэ скрипт нь зөвхөн алдаа байхгүй эсэхийг шалгахад зориулагдсан болно.

Алхам 4: Загварыг дахин сургах, Keras загварыг.kmodel болгон хөрвүүлэх

Загварыг дахин сургах, Keras Model-ийг.kmodel болгон хөрвүүлэх
Загварыг дахин сургах, Keras Model-ийг.kmodel болгон хөрвүүлэх

Энэхүү тоглоомын жишээнд бид загвар өмсөгчийг Санта Клаус, Ардуино Уно нарыг танихад сургах болно. Мэдээж та өөр ангиудыг сонгож болно. Мэдээллийн санг эндээс татаж авна уу. Classifier.json файлын хуулбарыг тохиргооны фолдерт үүсгээд дэлгэцийн агшин дахь тохиргооны файлтай адилаар өөрчилнө үү - сургалт, баталгаажуулах фолдеруудын зам зөв эсэхийг шалгаарай!

AXeleRate фолдероос дараах тушаалыг ажиллуулна уу.

python axelerate/train.py - c configs/santa_uno.json

Сургалт эхэлнэ. Хэрэв баталгаажуулалтын нарийвчлал (бидний баталгаажуулалтын хэмжүүр) 20 эрин үед сайжрахгүй бол сургалт хугацаанаасаа өмнө зогсох болно. Баталгаажуулалтын нарийвчлал сайжирах тусам загварыг төслийн хавтсанд хадгалдаг. Сургалт дууссаны дараа aXeleRate нь хамгийн сайн загварыг автоматаар тогтоосон формат руу хөрвүүлдэг бөгөөд та одоогоор "tflite", "k210" эсвэл "edgetpu" -г сонгож болно.

Алхам 5: Загварыг Sipeed Maix Bit дээр ажиллуулна уу

Загварыг Sipeed Maix Bit дээр ажиллуулна уу
Загварыг Sipeed Maix Bit дээр ажиллуулна уу
Sipeed Maix Bit дээр загварыг ажиллуулна уу
Sipeed Maix Bit дээр загварыг ажиллуулна уу
Загварыг Sipeed Maix Bit дээр ажиллуулна уу
Загварыг Sipeed Maix Bit дээр ажиллуулна уу

Sipeed Maix тоног төхөөрөмж дээр байгаа загварыг ажиллуулах хоёр арга бий: micropython firmware болон Arduino IDE. Micropython тоног төхөөрөмжийг ашиглах нь илүү хялбар боловч санах ойн ихээхэн хэсгийг эзэлдэг тул загварт бага зай үлдсэн байна. Arduino IDE нь үндсэндээ C код бөгөөд илүү үр дүнтэй бөгөөд санах ойн багтаамж багатай байдаг. Миний загвар ердөө 1.9Mb тул хоёр сонголт хоёулаа тохиромжтой. Та 2.9 Mb хэмжээтэй загварыг Micropython ашиглан ашиглаж болно, том хэмжээтэй бол Arduino IDE -ийг ашиглах хэрэгтэй.

Эндээс OpenMV IDE, хамгийн бага микропитоны програмыг татаж аваарай.

Програмыг kflash_gui хэрэгслээр шарна уу. Та мөн дэлгэцийн агшинд үзүүлсэн шиг бэлтгэгдсэн загвараа шарахаар сонгож болно. Эсвэл үүнийг SD карт руу хуулах (энэ тохиолдолд.kmodel -ийг SD картны эх рүү хуулж, SD картыг Sipeed Maix Bit -д оруулах)

OpenMV IDE -ийг нээгээд холбогдох товчийг дарна уу. Example_scripts фолдероос santa_uno.py скриптийг нээгээд Start товчийг дарна уу. Та камераас шууд дамжуулалтыг харж байх ёстой бөгөөд хэрэв та Serial Terminal -ийг нээвэл итгэл үнэмшилтэйгээр зураг таних дээд үр дүнд хүрэх болно!

Arduino IDE -ийг ашиглахын тулд эхлээд энд бичигдсэн Arduino IDE дээр Sipeed хавтан нэмэх процедурыг дагаж мөрдөх шаардлагатай. Таны Arduino IDE хувилбар нь дор хаяж 1.8.12 байх ёстой. Самбаруудыг нэмсний дараа mobilenet_v1_transfer_learning.ino нооргийг нээж Sipeed Maix Bit -д байршуулна уу. SD карт дээрх загварын нэрийг "загвар" болгон өөрчлөх (эсвэл ийм нэртэй хуулбар хийх). Та names.cpp хаягийн нэрийг өөрчилж болно. Энэ нь Sipeed Maix дэлгэц дээрх камерын шууд дамжуулалтыг, зураг таних дээд үр дүнг харуулах болно.

Алхам 6: Дүгнэлт

Энд CNN болон дамжуулах сургалтын сэдвээр унших бусад материалууд байна:

Mobilenet болон Keras ашиглан дамжуулах сургалтыг дамжуулах сургалтын гайхалтай тайлбар болох энэхүү гарын авлагад тухайн өгүүллийн кодын өөрчилсөн хувилбарыг ашигласан болно.

Муур, нохой, мэдрэлийн мэдрэлийн сүлжээ CNN -ийн арын үндсийг тайлбарлаж, зарим шүүлтүүрийг дүрслэн харуулдаг. Мууртай хамт!

Sipeed MaixPy болон MaixDuino дээр MobileNet -ийг сургах, хөрвүүлэх, ажиллуулах! Mobilenet 1000 ангийг эхнээс нь хэрхэн сургах талаар Sipeed багийн зааварчилгаа (шилжүүлэх сургалт байхгүй). Та тэдний урьдчилан бэлтгэсэн загварыг татаж аваад туршиж үзээрэй!

Та одоо байгаа мэдлэгээ ашиглан машины алсын хараатай гайхалтай төслүүдийг бүтээж чадна гэж найдаж байна! Та эндээс Sipeed самбар худалдаж авах боломжтой бөгөөд эдгээр нь суулгагдсан систем дээр ML -ийн хамгийн хямд сонголтуудын нэг юм.

Зөвлөмж болгож буй: