Lewatkan ke Konten Utama
Dasar Pengetahuan Dukungan

Kompilasi Silang OpenVINO™ Toolkit dan Plugin NCS2 Menggunakan Dockerfile yang telah dikonfigurasi sebelumnya untuk OS Debian* 32-bit

Jenis Konten: Instal & Pengaturan   |   ID Artikel: 000057005   |   Terakhir Ditinjau: 20/02/2025
Catatan
  • Semua langkah diperlukan dalam instalasi.
  • Langkah-langkah ini telah diuji dengan board Raspberry Pi 4* dan Raspbian* Buster, 32-bit.
  • Koneksi internet diperlukan untuk mengikuti langkah-langkah dalam panduan ini.
  • Artikel diverifikasi menggunakan rilis 2022.1 dari distribusi sumber terbuka toolkit OpenVINO™.

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:

Persyaratan sistem
Nota Panduan ini mengasumsikan board Raspberry Pi* Anda aktif dan berjalan dengan sistem operasi yang tercantum di bawah ini.

Perangkat keras

  • Raspberry Pi* 4 (Raspberry Pi* 3 Model B+ seharusnya berfungsi.)
  • Setidaknya Kartu microSD 16 GB
  • Intel® Neural Compute Stick 2
  • Koneksi Internet Ethernet atau jaringan nirkabel yang kompatibel
  • Mesin host dengan kontainer buruh pelabuhan terpasang

Sistem operasi target

  • Raspbian* Buster, 32-bit
Menyiapkan lingkungan build Anda
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

Menginstal Kontainer Docker
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

Clone openvino_contrib repositor
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.

Screenshot

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.

Kompilasi silang OpenVINO™ toolkit di lingkungan kontainer Docker

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 .

  • BUILD_JOBS mengontrol jumlah thread untuk kompilasi simultan
  • Kontrol BUILD_TYPE Konfigurasi Debug/Rilis (Rilis secara default)
  • UPDATE_SOURCES mengontrol pengambilan sumber
    • Clean - Jangan memuat ulang sumber jika sudah dimuat. Cukup bersihkan folder build (default)
    • Muat Ulang - Hapus semua sumber yang dimuat dan ambil kembali
    • Periksa - Jangan memuat ulang atau membersihkan sumber
  • WITH_OMZ_DEMO build demo C++ Open Model Zoo (AKTIF secara default)

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/

Memverifikasi paket build

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:

  1. Jalankan aplikasi sampel hello_query_device untuk mengonfirmasi bahwa semua pustaka dimuat dengan benar.
  2. Unduh model yang telah dilatih sebelumnya.
  3. Pilih input untuk jaringan neural (yaitu file gambar).
  4. Konfigurasikan driver USB Intel® Neural Compute Stick 2 Linux*.
  5. Jalankan benchmark_app dengan model dan input yang dipilih.

Contoh aplikasi

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.

Mengunduh model

Aplikasi membutuhkan model untuk melewati input. Anda dapat memperoleh model untuk kit peralatan Intel® OpenVINO™ dalam format IR dengan:

  • Menggunakan Pengoptimal Model untuk mengonversi model yang ada dari salah satu kerangka kerja yang didukung ke dalam format IR untuk Mesin Inferensi. Catatan Paket Model Optimizer tidak tersedia untuk Raspberry Pi*.
  • Menggunakan alat Model Downloader untuk mengunduh dari Open Model Zoo. Hanya model pra-terlatih publik.
  • Unduh file IR langsung dari storage.openvinotookit.org

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*.

Input untuk jaringan neural

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

Mengkonfigurasi Driver USB Linux Intel® Neural Compute Stick 2

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.

Menjalankan benchmark_app

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.

Variabel lingkungan

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*.

Produk Terkait

Artikel ini berlaku untuk 2 produk.

Pelepasan Tanggung Jawab

Isi halaman ini adalah kombinasi terjemahan manusia dan komputer dari konten berbahasa Inggris. Konten ini diberikan hanya untuk kenyamanan Anda serta sebagai informasi umum dan tidak bisa dianggap sebagai lengkap atau akurat. Jika terdapat kontradiksi antara versi bahasa Inggris halaman ini dan terjemahannya, versi bahasa Inggris akan didahulukan. Lihat versi bahasa Inggris halaman ini.