書かれた要約を無事に読み終える
導入環境
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 モデルのアクセラレーションをオンにします。