操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    1 介紹

    ncnn是騰訊開發的一個為手機端極致優化的高性能神經網絡前向計算框架,無第三方依賴,跨平臺,但是通常都需要protobuf和opencv。ncnn目前已在騰訊多款應用中使用,如 QQ,Qzone,微信,天天P圖等。ncnn主要基于C++和caffe,ncnn項目地址見:

    ?https://github.com/Tencent/ncnn??

    本文主要介紹ncnn在Ubuntu 18和Windows10下安裝和使用。ncnn實測win10和Ubuntu18下C++調用squeezenet進行分類越比opencv dnn模塊調用squeeznet快3到5倍。

    ncnn常見的主流系統平臺和常見硬件平臺都支持,包括樹莓派。

    其他平臺安裝教程見:

    ??https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-windows-x64-using-visual-studio-community-2017??

    2 Ubuntu 18下ncnn安裝和使用

    2.1 Ubuntu 18下ncnn編譯安裝

    ncnn在linux平臺需要protobuf和較低的gcc版本支持(根據評論區baiyu33的回復,最新ncnn版本在gcc/g++ 7.5環境,不需要降級為4.8.5,就可以編譯安裝protobuf 2.6.1和ncnn,2020年7月7日更新),如果你的系統可以運行caffe,可以跳過第一第二步,直接第三步。第一第二步具體安裝protobuf見:


    (1)將gcc、g++降級為4.8.5版本(最新版本ncnn可以跳過該階段)。

    (2)安裝protobuf

    (3)編譯源碼

    先下載源碼

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

    然后進入ncnn安裝即可

    cd ncnn
    
    mkdir build
    
    cd build
    
    cmake ..
    
    make –j12 
    
    make install

    2.2 Ubuntu 18下ncnn使用

    (1) 模型更新

    ncnn對caffe模型支持度比其他平臺模型支持度更高。所以一般都是將caffe的模型轉為ncnn格式。對于比較老的caffe模型需要將其轉換為最新的caffe模型(相對來說),不過一般都不需要。以alexnet為例

    alexnet 的 deploy.prototxt 可以在這里下載:

    ??https://github.com/BVLC/caffe/tree/master/models/bvlc_alexnet??

    alexnet 的 caffemodel 可以在這里下載 :

    ??http://dl.caffe.berkeleyvision.org/bvlc_alexnet.caffemodel??

    caffe自帶了工具可以把老版本的caffe 網絡和模型轉換為新版(ncnn的工具只認識新版),轉換方法為將你需要轉換的prototxt和caffemodel放在你電腦的caffe/build/tools目錄下,然后終端進入caffe/build/tools,執行命令:.

    ./upgrade_net_proto_text old_deploy.prototxt new_deploy.prototxt
    ./upgrade_net_proto_binary old.caffemodel new.caffemodel

    執行完成之后你就可以在caffe/build/tools下找到你的new_deploy.prototxt和new.caffemodel文件了。注意完成之后打開你的new_deploy.prototxt文件看一下,因為一般每次只需要做一個數據樣本的識別,所以如果第一個 dim 不為1,要將其設為

    layer {
    
      name: "data"
    
      type: "Input"
    
      top: "data"
    
      input_param { shape: { dim: 1 dim: 3 dim: 227 dim: 227 } }
    
    }

    (2)模型轉換

    模型轉換具體使用見:

    new.caffemodel文件后,需要將prototxt轉換為ncnn支持的param文件,caffemodel轉換為bin文件。Ncnn中使用 caffe2ncnn 工具轉換為ncnn的網絡描述和模型。將上面轉化的new_deploy.prototxt和new.caffemodel放到ncnn/build/tools/caffe下。然后命令行輸入以下命令:

    ./caffe2ncnn new_deploy.prototxt new.caffemodel ncnn.param ncnn.bin

    或者在以下網站轉換模型:

    ??https://convertmodel.com/?tdsourcetag=s_pcqq_aiomsg??

    (3)運用模型分類

    上面提到的是alexnet,在實際本文使用的是squeezenet。ncnn調用模型的一般過程都是參考ncnn/examples/下各個示例cpp文件,選擇自己的模型,然后根據該目錄下的CMakeLists.txt文件修改參數。本文就不修改參數了,直接選用squeezenet.cpp使用。

    然后打開ncnn根目錄下的CMakeLists.txt文件,將編譯examples語句的注釋打開(默認是被注釋掉的),如圖:

    終端進入ncnn/build后執行:

    make

    然后把所獲得ncnn參數和模型文件復制到ncnn/build/examples目錄下,本文所用的squeezenet的ncnn文件在ncnn/examples中有提供。將模型.param和.bin文件復制到ncnn/build/examples目錄下,然后終端cd到ncnn/build/examples,執行:

    ./squeezenet imagepath

    Imagepath為圖像路徑。就可以得到結果。

    具體調用代碼直接參考ncnn/examples中的示例cpp文件,但是使用時最好使用examples所提到的模型。

    (4)ncnn工程使用

    如果想建立工程,需要自己新建一個目錄然后編寫你自己的cpp文件。比如使用ncnn/examples/squeezenet.cpp,將其放入本機任意路徑新的文件夾。對于ncnn編譯,需要添加opencv和openmp,編寫如下CMakeLists.txt進行編譯,然后cmake .就可以在當前目錄運行生成的可執行文件ncnnTest。

    # 設置cmake版本
    cmake_minimum_required(VERSION 3.2)
    
    # ncnn工程
    project(ncnnTest)
    
    # 調用opencv
    find_package(OpenCV REQUIRED)
    # 調用openmp
    FIND_PACKAGE( OpenMP REQUIRED)  
    if(OPENMP_FOUND)  
        message("OPENMP FOUND")  
        set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")  
        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")  
        set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")  
    endif()  
    
    # 包含ncnn的頭文件
    include_directories(/home/user/ncnn/build/install/include/ncnn)
    # 包含ncnn的鏈接文件
    link_directories(/home/user/ncnn/build/install/lib)
    # 生成可執行文件
    add_executable(ncnnTest squeezenet.cpp)
    # 鏈接ncnn靜態鏈接庫
    target_link_libraries(ncnnTest ncnn ${OpenCV_LIBS} /home/user/ncnn/build/install/lib/libncnn.a)

    3 Windows 10下ncnn安裝和使用

    Win10下安裝和ncnn最好都基于visual studio2015以上平臺,本文用的vs2017。

    3.1 Windows 10下ncnn編譯安裝

    (1)protobuf編譯

    Win10下需要首先編譯ncnn所使用到的protobuf庫。Protobuf3.4.0下載路徑為:??https://github.com/google/protobuf/archive/v3.4.0.zip??

    然后選擇vs2017自帶的命令提示符工具,對于命令提示符工具選擇,用于后期可能會用到opencv或者其他軟件包。需要確定是x86還是x64平臺,本文由于用的x64平臺,選擇適用于vs2017的x64本機工具。如下所示:

    特別要注意的在編譯文件前,一定要確定命令工具所使用的是x64還是x86。

    protobuf編譯步驟為:

    cd <protobuf-root-dir>
    
    mkdir build-vs2017
    
    cd build-vs2017
    
    cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%cd%/install -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_MSVC_STATIC_RUNTIME=OFF ../cmake
    
    nmake
    
    nmake install

    上面protobuf-root-dir為你的protobuf文件路徑,比如我的是D:/packages/protobuf-3.4.0,文件路徑最好純英文,protobuf設置的release格式。

    (2)ncnn編譯

    下載ncnn源碼,??https://github.com/Tencent/ncnn?? 然后用上面提到的開發工具進入ncnn安裝即可,具體步驟如下:

    cd <ncnn-root-dir>
    
    mkdir build-vs2017
    
    cd build-vs2017
    
    cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%cd%/install -DProtobuf_INCLUDE_DIR=<protobuf-root-dir>/build-vs2017/install/include -DProtobuf_LIBRARIES=<protobuf-root-dir>/build-vs2017/install/lib/libprotobuf.lib -DProtobuf_PROTOC_EXECUTABLE=<protobuf-root-dir>/build-vs2017/install/bin/protoc.exe -DNCNN_VULKAN=OFF ..
    
    nmake
    
    nmake install

    注意<protobuf-root-dir>要替換為你的protobuf文件絕對路徑,比如我的是D:/packages/protobuf-3.4.0。DCMAKE_BUILD_TYPE=Release確定編譯的是release文件。

    3.2 Windows 10下ncnn使用

    ncnn使用類似opencv在windows下的使用。打開vs2017建立工程文件。項目-屬性-VC++目錄。設置配置文件,VC++目錄在包含目錄下輸入以下路徑,調用opencv,ncnn,protobuf頭文件。

    d:\opencv\build\include\opencv
    
    d:\opencv\build\include
    
    d:\opencv\build\include\opencv2
    
    d:\packages\ncnn\build-vs2017\install\include
    
    d:\packages\ncnn\build-vs2017\install\include\ncnn
    
    d:\packages\protobuf-3.4.0\build-vs2017\install\include
    
    d:\packages\protobuf-3.4.0\build-vs2017\install\include\google

    具體如圖所示:

    接著配置庫目錄,輸入以下路徑配置鏈接文件

    d:\opencv\build\x64\vc15\lib
    
    d:\packages\ncnn\build-vs2017\install\lib
    
    d:\packages\protobuf-3.4.0\build-vs2017\install\lib

    但是額外要配置配置Windows運行庫目錄,主要是要protobuf配置文件:

    d:\packages\protobuf-3.4.0\build-vs2017\install\bin

    最后鏈接器-輸入-附加依賴項配置附加依賴項。Protobuf相關依賴項已經調用了其動態庫,就不需要再調用了。

    opencv_world341.lib
    
    ncnn.lib

    這樣ncnn就配置好了。輸入代碼,直接ncnn/examples中選用一個示例調用cpp就行了。但是只能在release x64下調用ncnn,具體編譯ncnn時所選擇的編譯模式。比如squeezenet.cpp,直接復制過來,設置param和bin文件路徑就行了。其他模型依葫蘆畫瓢。

    // Tencent is pleased to support the open source community by making ncnn available.
    //
    // Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved.
    //
    // Licensed under the BSD 3-Clause License (the "License"); you may not use this file except
    // in compliance with the License. You may obtain a copy of the License at
    //
    // https://opensource.org/licenses/BSD-3-Clause
    //
    // Unless required by applicable law or agreed to in writing, software distributed
    // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
    // CONDITIONS OF ANY KIND, either express or implied. See the License for the
    // specific language governing permissions and limitations under the License.
    
    #include <stdio.h>
    #include <algorithm>
    #include <vector>
    #include <opencv2/core/core.hpp>
    #include <opencv2/highgui/highgui.hpp>
    
    // linux平臺調用
    // #include "platform.h"
    // #include "net.h"
    
    // windows平臺調用
    #include <net.h>
    #include <platform.h>
    
    #if NCNN_VULKAN
    #include "gpu.h"
    #endif // NCNN_VULKAN
    
    static int detect_squeezenet(const cv::Mat& bgr, std::vector<float>& cls_scores)
    {
        ncnn::Net squeezenet;
    
    #if NCNN_VULKAN
        squeezenet.opt.use_vulkan_compute = true;
    #endif // NCNN_VULKAN
        
        // squeezenet的ncnn模型文件路徑
        squeezenet.load_param("squeezenet_v1.1.param");
        squeezenet.load_model("squeezenet_v1.1.bin");
    
        ncnn::Mat in = ncnn::Mat::from_pixels_resize(bgr.data, ncnn::Mat::PIXEL_BGR, bgr.cols, bgr.rows, 227, 227);
    
        const float mean_vals[3] = {104.f, 117.f, 123.f};
        in.substract_mean_normalize(mean_vals, 0);
    
        ncnn::Extractor ex = squeezenet.create_extractor();
    
        ex.input("data", in);
    
        ncnn::Mat out;
        ex.extract("prob", out);
    
        cls_scores.resize(out.w);
        for (int j=0; j<out.w; j++)
        {
            cls_scores[j] = out[j];
        }
    
        return 0;
    }
    
    static int print_topk(const std::vector<float>& cls_scores, int topk)
    {
        // partial sort topk with index
        int size = cls_scores.size();
        std::vector< std::pair<float, int> > vec;
        vec.resize(size);
        for (int i=0; i<size; i++)
        {
            vec[i] = std::make_pair(cls_scores[i], i);
        }
    
        std::partial_sort(vec.begin(), vec.begin() + topk, vec.end(),
                          std::greater< std::pair<float, int> >());
    
        // print topk and score
        for (int i=0; i<topk; i++)
        {
            float score = vec[i].first;
            int index = vec[i].second;
            fprintf(stderr, "%d = %f\n", index, score);
        }
    
        return 0;
    }
    
    int main()
    {
        String imagepath = "./image/cat.jpg";
        cv::Mat m = cv::imread(imagepath);
        if (m.empty())
        {
            fprintf(stderr, "cv::imread %s failed\n", imagepath);
            return -1;
        }
    
    #if NCNN_VULKAN
        ncnn::create_gpu_instance();
    #endif // NCNN_VULKAN
    
        std::vector<float> cls_scores;
        detect_squeezenet(m, cls_scores);
    
    #if NCNN_VULKAN
        ncnn::destroy_gpu_instance();
    #endif // NCNN_VULKAN
    
        print_topk(cls_scores, 3);
    
        return 0;
    }

    4 參考

    1. ??https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-linux-x86??
    2. ??https://github.com/Tencent/ncnn/wiki/ncnn??


    win 10系統探秘備忘錄

    第五部分


    2024年1月2日 星期二

    前幾天每次安裝office的時候,這個特殊的安裝程序總是警告說:系統還有其它版本的office存在,它總是要求先把多余的office卸載或刪掉;剛才我在安裝了深度技術的win7操作系統的時候終于發現還真地有倆地方安裝了office;一個在D盤根目錄,另一個在PF86目錄。現在把根目錄的文件夾保留了,另外的刪除了。這回再安裝就不會有沖突啦。

    我有個非常獨特的office軟件

    2024年1月5日 星期五

    這兩天在臺式機電腦上面搞試驗。今天中午做出了一個尚未觸網的系統盤可用空間90.6GB的好成績,也就是說,win10操作系統的占空下降到了10GB以下,僅僅只有9.4GB了。

    2024年1月11日 星期四

    20:11:25今晚在臺式機上面用迷你win10試驗了安裝用于winxp系統的剪映專業版的版本。再一次以失敗告終。從此,對于使用俄羅斯大神的win10系統的不切實際的想法徹底死了心。

    win10當然要又小又好用 但是不能脫離實際


    2024年1月14日 星期日

    臺式機搞試驗,忙了個不亦樂乎。筆記本電腦被騰訊電腦管家給黑了一家伙。可能是虛驚一場。不過也讓我風聲鶴唳草木皆兵。當我把那個騰訊電腦管家的天氣時間顯示煙幕彈關閉了以后,那個鼠標不受控制地亂竄的問題好像也消失了。再找那個煙幕彈藏在哪里了,也找不著了。

    在路徑C:\Users\Administrator\AppData\Roaming下的Tencent文件夾有9個子文件夾在其中,微信的文件夾體量較大:達148M。欲將Tencent徹底刪除,原來想用六爻八卦測算一下,得了,不算了。馬上刪除!14:25:50,刪完了。

    2024年1月17日 星期三

    11:33:01:當前有五個鏡像文件,第一個.240114鏡像文件5.66GB;第二個.230802鏡像文件4.15GB;第三個.20240114鏡像文件6.01GB;第四個.20240116鏡像文件8.67GB;第五個.20240117剛剛制作的鏡像文件7.11GB。決定:保留倆,刪除仨。2024年以前的都升級不能使用了,所以都刪除了。其實,20240114也沒有保留的必要了干脆也刪除了吧!

    舊的問題解決了 新的問題發生了

    2024年1月20日 星期六

    8:22:07:今天凌晨開機寫作。昨天新系統在關機時告知勿關機在更新;現在開機新系統又告知勿關機正完成更新。不過,瞬間就結束了更新。立即查看系統是84.7GB可用;打開C盤,共有七個文件夾,這七個文件夾的大小分別是:

    1.Compass=0字節,2.Intel占空12KB,3.PerfLogs=0字節,

    4.Program Files大小1.14 GB (1,234,727,411 字節),占用空間750 MB (787,091,456 字節),包含8,305 個文件,1,077 個文件夾,創建時間?2019?年?12?月?7日?,??17:14:52。

    5.Program Files(x86)大小722 MB (757,918,474 字節),占用空間725 MB (760,995,840 字節),包含2,316 個文件,413 個文件夾,創建時間2019年??12月??7日?,??17:14:52。

    6.Windows大小14.8 GB (15,901,853,774 字節),占用空間14.4 GB (15,497,699,328 字節),包含96,594 個文件,29,212 個文件夾,創建時間2019?年?12?月?7?日,??17:03:44。

    7.用戶 大小2.37 GB (2,554,974,723 字節),占用空間2.39 GB (2,576,740,352 字節),包含15,119 個文件,4,210 個文件夾,創建時間?2019?年?12?月?7?日,??17:03:44。

    這七個文件夾都具有只讀屬性。那么,1和3兩個沒有內容的文件夾刪除嗎?先將其刪除到回收站吧。

    即使是空文件夾 也不能貿然刪除

    2024年1月20日 星期五

    13:58:06:現在開機,系統盤84.8GB可用;可用空間多出來了0.1GB可用空間。在此期間沒有上網。于是將午前刪除到回收站的兩個根目錄的空文件夾1號Compass文件夾和3號PerfLogs文件夾做了永久刪除操作。

    發現,這里面有點奇怪的是:1.四個具有實質性內容的大文件夾都有所膨脹,而其總可用空間反而增加了。2.分別把系統盤已用空間和可用空間加起來,其結果超過了總大小100GB!這多出來的空間是哪里來的?3.根目錄下的文件夾既然都是只讀文件性質,它們為什么會不斷變化?Windows的規定的嚴肅性哪里去了?

    奇怪問題 誰說得清楚

    15:38:35:將路徑全部位于 C:\Users\Administrator\AppData\LocalLow下的搜狗輸入法的倆文件夾總計大小125 MB (131,300,103 字節),占用空間126 MB (132,313,088 字節)的內容先放到了回收站。還剩下了25MB沒刪除。看看再說。

    本次win10探秘節選,到此結束。此前產生的新問題留待以后探索吧。

    達視 2024年1月28日16:21:14

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有