Raspberry Pi が yolo をデプロイし、最速の ncnn 記録を達成

書かれた要約を無事に読み終える

導入環境
1.ubuntu18
2.opencv4.5.1
3.raspberry pie 4b

1. ncnn のコンパイル
1.ncnn 環境設定

sudo apt-get install -y gfortran
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev libatlas-base-dev

2.NCNNコードを取得する

git clone https://github.com/Tencent/ncnn
cd ncnn

3.
ncnn ディレクトリでコンパイルします。

mkdir build
cd build
cmake ../
make -j4
make install 

ビルド ディレクトリに 3 つのフォルダーが表示されます。例ではツールをインストールします。これまでのところ、ncnn コンパイルの最初のステップは成功しています。
次に、ncnn を使用してファイルを変換できます。

2. ファイル変換テスト

1. .cfg ファイルと .weights ファイルをダウンロードします。(どのバージョンでも問題ありません。私は yolo-fastest-xl を使用しています。プライベート メッセージを送って送信することもできます)
ファイル リンク: https://download.csdn.net/download/weixin_43096365/81557457

2. ターゲットファイルの生成

1). ncnn のルート ディレクトリに新しい Model フォルダーを作成し、yolo-fastest-xl.cfg ファイルと yolo-fastest-xlweights ファイルをこのフォルダーにコピーします。
2). ncnn/build/tools/darknet のパスでターミナルを開き、次のように入力します。

./darknet2ncnn ../../../Model/yolo-fastest-xl.cfg ../../../Model/yolo-fastest-xl.weights ../../../Model/yolo-fastest-xl.param ../../../Model/yolo-fastest-xl.bin

yolov4.param ファイルと yolov4.bin ファイルが Model フォルダーに生成されます。

Model フォルダーに bin ファイルと param ファイルがあることが確認できたら成功です。2 番目のステップが完了しました。

3、走る

1. 新しいフォルダー yolo-fastest-ncnn を作成します。
2. ファイルをコピーします。

         1.将yolo-fastest-xl.param和yolo-fastest-xl.bin文件拷贝到yolo-fastest-ncnn/model下。
         
         2.并将ncnn/build/install文件拷贝到yolo-fastest-ncnn下。**注意是复制install文件夹下的文件夹,不是直接复制install文件夹。**
         
         3.把 dog-qiuqiu / Yolo-Fastest /sample/ncnn文件夹下的除了model文件夹,都拷贝到yolo-fastest-ncnn/mode
         		网址链接::  https://gitcode.net/mirrors/dog-qiuqiu/Yolo-Fastest/-/tree/master/sample/ncnn

ここに画像の説明を挿入

3. コードを変更し
、デモ ファイルを開きます。

int testCam() {
    YoloDet api;
    //Init model
    api.init("model/yolo-fastest-xl.param", 
              "model/yolo-fastest-xl.bin");

独自のファイル パスを確認してください。ここでのモデルは、yolo-fastest-ncnn フォルダーの下に構築されたサブフォルダーです。

4. テスト

1. yolo-fastest-ncnn フォルダーの下のターミナルを開き、次のように入力します。

sh build.sh

2. 端末入力を続行します

./demo

この時点で、Raspberry Pi でプログラムを実行することも、Ubuntu でも使用することもできますが、
速度が非常に遅いことがわかります。

4: 最適化

1. 変換モデル:

 [优化文件模型](https://blog.csdn.net/weixin_43096365/article/details/123001666)

2. コードの追加と変更

src ファイルの下を変更します。

ここに画像の説明を挿入
2.1 Raspberry Pi のコア数に応じて実行スレッドの数を構成します。
ここに画像の説明を挿入
2.2 Raspberry Pi でのモデル推論速度を向上させるために、NCNN モデルは可能な限り FP16 モデルを使用し、モデルの初期化時に FP16 モデルのアクセラレーションをオンにします。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_43096365/article/details/123027424