สารบัญ:
- ขั้นตอนที่ 1: ข้อกำหนด
- ขั้นตอนที่ 2: การติดตั้งการ์ด MicroSD (เฉพาะ W/ DB410c)
- ขั้นตอนที่ 3: การติดตั้งเฟรมเวิร์กที่จำเป็น
- ขั้นตอนที่ 4: เรียกใช้ API การตรวจจับวัตถุ
วีดีโอ: การตรวจจับวัตถุด้วย Dragonboard 410c หรือ 820c โดยใช้ OpenCV และ Tensorflow.: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
คำแนะนำนี้อธิบายวิธีการติดตั้งเฟรมเวิร์ก OpenCV, Tensorflow และการเรียนรู้ของเครื่องสำหรับ Python 3.5 เพื่อเรียกใช้แอปพลิเคชัน Object Detection
ขั้นตอนที่ 1: ข้อกำหนด
คุณจะต้องมี itens ต่อไปนี้:
- DragonBoard™ 410c หรือ 820c;
-
การติดตั้ง Linaro-alip ใหม่ทั้งหมด:
- DB410c: ทดสอบในเวอร์ชัน v431. Link:
- DB820c: ทดสอบในเวอร์ชัน v228. Link:
- การ์ด MicroSD ความจุอย่างน้อย 16GB (หากใช้ 410c)
ดาวน์โหลดไฟล์ (ในตอนท้ายของขั้นตอนนี้) เปิดเครื่องรูดและคัดลอกไปยังการ์ด MicroSD;Obs: หากใช้ DB820c ให้ดาวน์โหลดไฟล์ คลายซิปและย้ายไปที่ /home/*USER*/ เพื่อทำให้การใช้คำสั่งง่ายขึ้น
- ฮับ USB;
- กล้อง USB (รองรับ Linux);
- เมาส์และคีย์บอร์ด USB;
- การเชื่อมต่ออินเทอร์เน็ต
Obs: ทำตามคำแนะนำนี้ในเบราว์เซอร์ DragonBoard ถ้าเป็นไปได้ อำนวยความสะดวกในการคัดลอกคำสั่ง
ขั้นตอนที่ 2: การติดตั้งการ์ด MicroSD (เฉพาะ W/ DB410c)
- เปิดเทอร์มินัลใน Dragonboard;
- ในเทอร์มินัลรัน fdisk:
$ sudo fdisk -l
- ใส่การ์ด MicroSD ลงในช่องเสียบการ์ด DragonBoard MicroSD;
- เรียกใช้ fdisk อีกครั้ง โดยมองหาชื่อ (และพาร์ติชัน) ของอุปกรณ์ใหม่ในรายการ (เช่น mmcblk1p1)
$ sudo fdisk -l
ไปที่ไดเรกทอรีราก:
$ cd ~
สร้างโฟลเดอร์:
$ mkdir sdfolder
ติดตั้งการ์ด MicroSD:
$ mount /dev/sdfolder
ขั้นตอนที่ 3: การติดตั้งเฟรมเวิร์กที่จำเป็น
- เปิดเทอร์มินัลใน Dragonboard;
- ในเทอร์มินัล ไปที่ไดเร็กทอรีที่เลือก (โดยใช้ "~" สำหรับ 820c และ SDCard ที่ต่อเชื่อมสำหรับ 410c):
(820c) $ cd ~
(410c) $ cd ~/sdfolder
ไปที่โฟลเดอร์สคริปต์ Object Detector:
$ cd object_detector_tensorflow_opencv/scripts/
เรียกใช้สคริปต์การตั้งค่าสภาพแวดล้อม:
$ sudo bash set_Env.sh
อัพเดทระบบ:
$ sudo apt update
ติดตั้งแพ็คเกจเหล่านี้:
$ sudo apt ติดตั้ง -y protobuf-compiler gcc-aarch64-linux-gnu
g++-aarch64-linux-gnu debootstrap schroot git curl pkg-config zip เปิดเครื่องรูด python python-pip g++ zlib1g-dev default-jre libhdf5-dev libatlas-base-dev gfortran v4l-utils hdf5* libhdf5* build-libespng-cm libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libjpeg-dev libtiff5-dev libavcodec-dev libavformat-dev libswscale-dev libxcore-dev libv4l-vid libgtk2.0-dev libgtk-3-dev ffmpeg python-opengl
ไปที่ไดเร็กทอรีนี้:
$ cd /usr/src
ดาวน์โหลด Python 3.5:
$ sudo wgetแยกแพ็คเกจ:
$ sudo tar xzf Python-3.5.6.tgz
ลบแพ็คเกจที่บีบอัด:
$ sudo rm Python-3.5.6.tgz
ไปที่ไดเร็กทอรี Python 3.5:
$ cd Python-3.5.6
เปิดใช้งานการปรับให้เหมาะสมสำหรับการรวบรวม Python 3.5:
$ sudo./configure --enable-optimizations
รวบรวม Python 3.5:
$ sudo สร้าง altinstall
อัปเกรด pip และเครื่องมือตั้งค่า:
$ sudo python3.5 -m pip install --upgrade pip && python3.5 -m pip install --upgrade setuptools
ติดตั้งจำนวน:
$ python3.5 -m pip ติดตั้ง numpy
ไปที่ไดเร็กทอรีที่เลือก:
(820c) $ cd ~
(410c) $ cd ~/sdfolder
ดาวน์โหลด Tensorflow 1.11 whl:
$ wgetติดตั้งเทนเซอร์โฟลว์:
$ sudo python3.5 -m pip ติดตั้ง tensorflow-1.11.0-cp35-none-linux_aarch64.whl
โคลนที่เก็บ OpenCV และ OpenCV Contrib:
$ sudo git clone -b 3.4 https://github.com/opencv/opencv.git && sudo git clone -b 3.4ไปที่ไดเรกทอรี:
$ cd opencv
สร้างไดเร็กทอรี build และไปที่:
$ sudo mkdir build && cd build
เรียกใช้ CMake:
$ sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_opencv_java=OFF -D BUILD_opencv_python=OFF -D BUILD_opencv_python3=ON -UthABLETHLE_ON3_DE_$ ซึ่ง EXpython3_D: $ sudo cmake ซึ่ง python3.5) -D PYTHON_INCLUDE_DIR=/usr/local/include/python3.5m/ -D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON3_EXAMPLES=OFF -D BUILD_EXAMPLES=OFF -D WITH_CUDA=OFF -D BUILD -_TEST_=OFF -DBUILD_TBB=ON -D OPENCV_ENABLE_NONFREE=ON -DBUILD_opencv_xfeatures2d=OFF -D OPENGL=ON -D OPENMP=ON -D ENABLE_NEON=ON -D BUILD_PERF_TESTS= ปิด -D BUILD_OPENCV_DNC_DON. โมดูล..
รวบรวม OpenCV ด้วย 4 คอร์:
$ sudo make -j 4
ติดตั้ง OpenCV:
$ sudo ทำการติดตั้ง
ไปที่ไดเร็กทอรีที่เลือก:
(820c) $ cd ~
(410c) $ cd ~/sdfolder
ไปที่ไดเรกทอรีสคริปต์:
$ cd object_detector_tensorflow_opencv/scripts/
ติดตั้งข้อกำหนด Python3.5:
$ sudo python3.5 -m pip install -r requirements.txt --no-cache-dir
นำเข้าทดสอบ:
$ python3.5
> นำเข้า cv2 >> นำเข้าเทนเซอร์โฟลว์
Obs: หาก cv2 ส่งคืนข้อผิดพลาดในการนำเข้า ให้เรียกใช้ make install ในโฟลเดอร์บิลด์ OpenCV แล้วลองอีกครั้ง
ไปที่ไดเร็กทอรีที่เลือก:
(820c) $ cd ~
(410c) $ cd ~/sdfolder
ดาวน์โหลดที่เก็บโคโคปี:
$ git cloneดาวน์โหลดที่เก็บโมเดล Tensorflow:
$ git cloneไปที่ไดเร็กทอรีนี้:
ไปที่ไดเร็กทอรีนี้:
$ cd cocoapi/PythonAPI
แก้ไขไฟล์ Makefile เปลี่ยน python เป็น python3.5 ในบรรทัดที่ 3 และ 8 จากนั้นบันทึกไฟล์ (โดยใช้ nano เป็นตัวอย่าง):
$ nano Makefile
รวบรวมโกโก้ปิ:
$ sudo make
Obs: หากคำสั่ง 'make' ไม่คอมไพล์ให้ลองติดตั้ง cython ใหม่ด้วย:
$ sudo python3.5 -m pip ติดตั้ง cython
คัดลอก pycocotools ไปยังไดเร็กทอรี tensorflow /models/research:
(820c) $ cp -r pycocotools ~/models/research/
(410c) $ cp -r pycocotools ~/sdfolder/models/research/
ไปที่ไดเร็กทอรีที่เลือก:
(820c) $ cd ~
(410c) $ cd ~/sdfolder
ไปที่รุ่น/ไดเร็กทอรีการวิจัย:
$ cd รุ่น/งานวิจัย
รวบรวมด้วยโปรโตคอล:
$ protoc object_detection/protos/*.proto --python_out=.
ตัวแปรสภาพแวดล้อมการส่งออก:
$ ส่งออก PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
ทดสอบสภาพแวดล้อม:
$ python3.5 object_detection/builders/model_builder_test.py
Obs: ต้องส่งคืน OK มิฉะนั้น aplication จะไม่ทำงาน หากไม่เป็นเช่นนั้น ให้ค้นหาข้อผิดพลาดในกระบวนการติดตั้งเฟรมเวิร์กที่ต้องการอย่างระมัดระวัง
ขั้นตอนที่ 4: เรียกใช้ API การตรวจจับวัตถุ
เมื่อกำหนดค่าเฟรมเวิร์กทั้งหมดแล้ว ตอนนี้คุณสามารถเรียกใช้ API การตรวจหาวัตถุที่ใช้ OpenCV ร่วมกับ Tensorflow ได้แล้ว
ไปที่ไดเร็กทอรีที่เลือก:
(820c) $ cd ~
(410c) $ cd ~/sdfolder
ไปที่ไดเร็กทอรีการตรวจจับวัตถุ:
$ cd object_detector_tensorflow_opencv/
ตอนนี้เรียกใช้แอปพลิเคชัน:
$ python3.5 app.py
ตอนนี้ Dragonboard จะสตรีมวิดีโอผ่านเครือข่าย หากต้องการดูวิดีโอที่ส่งออก ให้เปิดเบราว์เซอร์ในฐานข้อมูลและไปที่ "0.0.0.0:5000"
แนะนำ:
วิธีใช้ Neopixel Ws2812 LED หรือ LED STRIP หรือ Led Ring กับ Arduino: 4 ขั้นตอน
วิธีใช้ Neopixel Ws2812 LED หรือ LED STRIP หรือ Led Ring กับ Arduino: สวัสดีทุกคนเนื่องจาก Neopixel led Strip เป็นที่นิยมอย่างมากและเรียกอีกอย่างว่า ws2812 led strip เช่นกัน พวกเขาเป็นที่นิยมอย่างมากเพราะในแถบนำเหล่านี้เราสามารถระบุแต่ละ LED แยกจากกัน ซึ่งหมายความว่าหากคุณต้องการให้ไฟ LED สองสามดวงเรืองแสงเป็นสีเดียว
Augmented Reality (AR) สำหรับ Dragonboard410c หรือ Dragonboard820c โดยใช้ OpenCV และ Python 3.5: 4 ขั้นตอน
Augmented Reality (AR) สำหรับ Dragonboard410c หรือ Dragonboard820c โดยใช้ OpenCV และ Python 3.5: คำแนะนำนี้จะอธิบายวิธีการติดตั้ง OpenCV, Python 3.5 และการพึ่งพาสำหรับ Python 3.5 เพื่อเรียกใช้แอปพลิเคชัน Augmented Reality
การอ่านค่าจากอุปกรณ์ BLE โดยใช้ CSR1010 และ Dragonboard 410c: 6 ขั้นตอน
การอ่านค่าจากอุปกรณ์ BLE โดยใช้ CSR1010 และ Dragonboard 410c: บทช่วยสอนนี้แสดงวิธีอ่านค่าจากอุปกรณ์ BLE CSR1010 โดยใช้ Dragonboard 410c กับ Linaro ในตัวอย่างนี้ CSR1010 กำลังเลียนแบบเซ็นเซอร์วัดอัตราการเต้นของหัวใจ
เครื่องวัดระยะสูง Arduino โดยใช้ BMP และ SPI หรือ I2C OLED: 5 ขั้นตอน
เครื่องวัดระยะสูง Arduino โดยใช้ BMP และ SPI หรือ I2C OLED: เป็นเวลานานที่ฉันได้ค้นหาเครื่องวัดระยะสูงและอุณหภูมิโดยใช้เซ็นเซอร์ตัวเดียวและแสดงไปยัง OLED ที่ใช้ SPI เนื่องจากฉันไม่พบสิ่งใดที่แม่นยำ จึงคิดว่าฉันจะสร้างของตัวเองโดยใช้ไลบรารี U8glib มีหนึ่งบทเรียนใน youtube
วิธีทำลายการเชื่อมต่ออินเทอร์เน็ต Xbox 360, Wii และ PS3 โดยใช้ Nintendo Ds หรือ Ds Lite: 4 ขั้นตอน
วิธีทำลายการเชื่อมต่ออินเทอร์เน็ต Xbox 360, Wii และ PS3 โดยใช้ Nintendo Ds หรือ Ds Lite: ในคำแนะนำนี้ฉันจะสอนวิธีง่าย ๆ ในการสูญเสียการเชื่อมต่ออินเทอร์เน็ตไปยัง xbox 360 โดยใช้การเชื่อมต่อ wi-fi บน Ds มีคนยืนยันว่าใช้งานได้กับ ps3 แต่ฉันไม่มี ps3 ดังนั้นฉันจึงใช้คำพูดของเขา ลองใช้ขั้นตอนเดียวกันกับ