Catatan |
|
Toolkit OpenVINO™ dengan cepat menerapkan aplikasi dan solusi yang meniru visi manusia. Toolkit ini memperluas beban kerja visi komputer (CV) di seluruh perangkat keras Intel® berbasis Convolutional Neural Networks (CNN), yang memaksimalkan performa. Langkah-langkah ini umumnya mengikuti plugin How to Build ARM CPU yang tersedia. Namun, perubahan spesifik diperlukan untuk menjalankan semuanya di Raspberry Pi 4*. Panduan ini menyediakan langkah-langkah untuk membangun distribusi sumber terbuka kit peralatan OpenVINO™ untuk Raspbian* 32-bit OS dengan metode kompilasi silang.
Klik pada topik untuk detailnya:
Nota | Panduan ini mengasumsikan board Raspberry Pi* Anda aktif dan berjalan dengan sistem operasi yang tercantum di bawah ini. |
Perangkat keras
Sistem operasi target
Nota | Panduan ini berisi perintah yang perlu dijalankan sebagai akses root atau sudo untuk menginstal dengan benar. |
Pastikan perangkat lunak perangkat Anda sudah diperbarui:
sudo apt update && sudo apt upgrade -y
Nota | Anda dapat mengikuti instruksi instalasi berdasarkan dokumentasi resmi buruh pelabuhan https://docs.docker.com/engine/install |
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo groupadd docker
sudo usermod -aG docker ${USER}
sudo systemctl restart docker
Nota | Versi toolkit openvino_contrib dan OpenVINO untuk artikel ini didasarkan pada 2022.1 |
Unduh kode sumber dan ubah file konfigurasi:
git clone --recurse-submodules --single-branch --branch=2022.1 https://github.com/openvinotoolkit/openvino_contrib.git
Buka direktori arm_plugin:
cd openvino_contrib/modules/arm_plugin
Ubah konten file Dockerfile.RPi32_buster seperti di bawah ini dengan alat editor:
vim dockerfiles/Dockerfile.RPi32_buster
Tambahkan "RUN pip install protobuf==3.20.0" di baris 114, seperti yang ditunjukkan pada diagram di bawah ini.
Simpan file yang telah diedit.
Ubah konten file arm_cpu_plugin_build.sh seperti yang ditunjukkan di bawah ini dengan alat editor:
vim scripts/arm_cpu_plugin_build.sh
Edit baris 77, 78, 79 dan 136 dan tambahkan perubahan seperti yang ditunjukkan dalam huruf tebal di bawah ini:
77 checkSrcTree $OPENCV_HOME https://github.com/opencv/opencv.git 4.5.5-openvino-2022.1 4.x
78 checkSrcTree $OPENVINO_HOME https://github.com/openvinotoolkit/openvino.git 2022.1.0 releases/2022/1
81 checkSrcTree $OMZ_HOME https://github.com/openvinotoolkit/open_model_zoo.git 2022.1.0 releases/2022/1
136 -DENABLE_INTEL_MYRIAD=ON -DCMAKE_BUILD_TYPE=$BUILD_TYPE \
Simpan file yang telah diedit.
Pada langkah ini, kita akan menjalankan skrip untuk mengunduh dan mengkompilasi silang toolkit OpenVINO™ dan komponen lain seperti OpenCV* di lingkungan kontainer Docker:
Buka direktori plugin CPU ARM:
cd openvino_contrib/modules/arm_plugin
Buat gambar Docker*:
docker image build -t arm-plugin -f dockerfiles/Dockerfile.RPi32_buster .
Buat plugin dalam kontainer Docker*:
Proses build dilakukan oleh skrip /arm_cpu_plugin_build.sh dijalankan di dalam direktori /arm_cpu_plugin (perintah kontainer default untuk dijalankan). Semua hasil antara dan artefak build disimpan di dalam direktori kerja.
Jadi seseorang dapat memasang seluruh direktori kerja untuk mendapatkan semua hasil yang disimpan di luar kontainer:
mkdir build
docker container run --rm -ti -v $PWD/build:/arm_cpu_plugin arm-plugin
Nota | Ada beberapa variabel lingkungan yang mengontrol eksekusi skrip /arm_cpu_plugin_build.sh .
|
Di folder build , OV_ARM_package.tar.gz dihasilkan
ls build
Transfer OV_ARM_package.tar.gz ke perangkat target (Raspberry Pi 4* 32-bit Buster)
Ada berbagai cara untuk mentransfer paket ke perangkat target (Raspberry Pi 4*), salinan aman langsung ke perangkat target, salin paket ke USB thumb drive dan transfer.
Artikel ini akan menunjukkan cara memasang USB thumb drive di mesin host dan menyalin paket build ke thumb drive yang terpasang.
Masukkan USB thumb drive ke port USB sistem, lalu periksa boot perangkat menggunakan perintah di bawah ini;
sudo fdisk -l
Setelah memverifikasi boot perangkat, pasang boot perangkat (misalnya /dev/sda) ke /mnt;
sudo mount /dev/sda /mnt
Selanjutnya, salin paket OpenVINO ke USB thumb drive;
sudo cp -rf build/OV_ARM_package.tar.gz /mnt/
Setelah menyelesaikan kompilasi silang, dan berhasil menyalin OV_ARM_package.tar.gz ke perangkat target (Raspberry Pi 4*).
Instal alat kompilasi
sudo apt update
sudo apt menginstal cmake -y
Ekstrak OV_ARM_package.tar.gzpackage
mkdir ~/openvino_dist/
tar -xvzf OV_ARM_package.tar.gz -C ~/openvino_dist/
Sumber Variabel Pengaturan
source ~/openvino_dist/setupvars.sh
Mengompilasi kode Sampel
cd ~/openvino_dist/samples/cpp
./build_samples.sh
Untuk memverifikasi bahwa toolkit dan Intel® Neural Compute Stick 2 serta plugin ARM* berfungsi di perangkat Anda, selesaikan langkah-langkah berikut:
Kit peralatan Intel® OpenVINO™ mencakup aplikasi sampel yang menggunakan Mesin Inferensi dan Intel® Neural Compute Stick 2. Salah satu aplikasinya adalah hello_query_device, yang dapat ditemukan di direktori berikut:
~/inference_engine_cpp_samples_build/armv7l/Release
Jalankan perintah berikut untuk menguji hello_query_device:
cd ~/inference_engine_cpp_samples_build/armv7l/Release
./hello_query_device
Ini harus mencetak dialog, menggambarkan perangkat yang tersedia untuk inferensi yang ada pada sistem.
Aplikasi membutuhkan model untuk melewati input. Anda dapat memperoleh model untuk kit peralatan Intel® OpenVINO™ dalam format IR dengan:
Untuk tujuan kami, mengunduh secara langsung adalah yang termudah. Gunakan perintah berikut untuk mengambil model deteksi orang-kendaraan-sepeda:
wget https://storage.openvinotoolkit.org/repositories/open_model_zoo/2022.1/models_bin/3/person-vehicle-bike-detection-crossroad-0078/FP16/person-vehicle-bike-detection-crossroad-0078.bin -O ~/Downloads/person-vehicle-bike-detection-crossroad-0078.bin
wget https://storage.openvinotoolkit.org/repositories/open_model_zoo/2022.1/models_bin/3/person-vehicle-bike-detection-crossroad-0078/FP16/person-vehicle-bike-detection-crossroad-0078.xml -O ~/Downloads/person-vehicle-bike-detection-crossroad-0078.xml
Nota | Intel® Neural Compute Stick 2 memerlukan model yang dioptimalkan untuk format floating point 16-bit yang dikenal sebagai FP16. Jika berbeda dari contoh, model Anda mungkin memerlukan konversi menggunakan Pengoptimal Model ke FP16 pada mesin terpisah karena Pengoptimal Model tidak didukung pada Raspberry Pi*. |
Item terakhir yang dibutuhkan adalah input untuk jaringan saraf. Untuk model yang telah kami unduh, Anda memerlukan gambar dengan tiga saluran warna. Unduh file yang diperlukan ke papan Anda:
wget https://cdn.pixabay.com/photo/2018/07/06/00/33/person-3519503_960_720.jpg -O ~/Downloads/person.jpg
Beberapa aturan udev harus ditambahkan untuk memungkinkan sistem mengenali perangkat USB Intel® NCS2.
Nota | Jika pengguna saat ini bukan anggota grup pengguna, jalankan perintah berikut dan reboot perangkat Anda. |
sudo usermod -a -G users "$(whoami)"
Menyiapkan lingkungan OpenVINO™:
source /home/pi/openvino_dist/setupvars.sh
Untuk melakukan inferensi pada Intel® Neural Compute Stick 2, instal aturan USB dengan menjalankan skrip install_NCS_udev_rules.sh :
sh /home/pi/openvino_dist/install_dependencies/install_NCS_udev_rules.sh
Driver USB harus diinstal dengan benar sekarang. Jika Intel® Neural Compute Stick 2 tidak terdeteksi saat menjalankan demo, mulai ulang perangkat Anda dan coba lagi.
Saat model diunduh, gambar input tersedia, dan Intel® Neural Compute Stick 2 dicolokkan ke port USB, gunakan perintah berikut untuk menjalankan benchmark_app:
cd ~/inference_engine_cpp_samples_build/armv7l/Release
./benchmark_app -i ~/Downloads/person.jpg -m ~/Downloads/person-vehicle-bike-detection-crossroad-0078.xml -d MYRIAD
Ini akan menjalankan aplikasi dengan opsi yang dipilih. Bendera -d memberi tahu program perangkat mana yang akan digunakan untuk inferensi. Menentukan MYRIAD mengaktifkan plugin MYRIAD , memanfaatkan Intel® Neural Compute Stick 2. Setelah perintah berhasil dijalankan, terminal akan menampilkan statistik untuk inferensi. Anda juga dapat menggunakan plugin CPU untuk menjalankan inferensi pada CPU ARM perangkat Raspberry Pi 4* Anda, lihat spesifikasi rangkaian operasi plugin ARM* untuk dukungan operasi karena model yang digunakan dalam contoh ini tidak didukung oleh plugin ARM*.
[ INFO ] First inference took 410.75 ms
[Step 11/11] Dumping statistics report
[ INFO ] Count: 388 iterations
[ INFO ] Duration: 60681.72 ms
[ INFO ] Latency:
[ INFO ] Median: 622.99 ms
[ INFO ] Average: 623.40 ms
[ INFO ] Min: 444.03 ms
[ INFO ] Max: 868.18 ms
[ INFO ] Throughput: 6.39 FPS
Jika aplikasi berhasil dijalankan di Intel® NCS2 Anda, toolkit dan Intel® Neural Compute Stick 2 OpenVINO™ disiapkan dengan benar untuk digunakan pada perangkat Anda.
Anda harus memperbarui beberapa variabel lingkungan sebelum mengkompilasi dan menjalankan aplikasi toolkit OpenVINO. Jalankan skrip berikut untuk mengatur variabel lingkungan sementara:
source /home/pi/openvino_dist/setupvars.sh
**(Opsional)** Variabel lingkungan OpenVINO™ dihapus saat Anda menutup shell. Sebagai opsi, Anda dapat mengatur variabel lingkungan secara permanen sebagai berikut:
echo "source /home/pi/openvino_dist/setupvars.sh" >> ~/.bashrc
Untuk menguji perubahan Anda, buka terminal baru. Anda akan melihat yang berikut ini:
[setupvars.sh] OpenVINO environment initialized
Ini melengkapi prosedur kompilasi silang dan build untuk distribusi sumber terbuka toolkit OpenVINO™ untuk Raspbian* OS, dan penggunaan dengan plugin Intel® Neural Compute Stick 2 dan ARM*.